– Key Generation KG Clause Samples
– Key Generation KG. For i = 1, 2, choose a random prime integer ei > 2t which is relatively prime to φ(ni) = (pi − 1)(qi − 1), and compute di such that eidi = 1 mod p′ q′. The public key of P is (n1, e1) and his secret key is (p1, q1, d1). The public key of V is (n2, e2) and his secret key is (p2, q2, d2). T randomly chooses an element g˜ ∈ Zn1 and computes g = g˜2 mod n1. The public key of T is (g, y = gx mod n1) and his secret key is x. – Signature Generation SG: Let L be a label, define J = H1(L). To sign n2 a message m, P chooses a random integer u ∈R Z∗ and computes the chameleon hash value M = J H2 (m)ue2 mod n2. He then computes the sig- nature σ = H3(M )d1 mod n1 on message M . – Verifiable Encryption VE: P and V perform the following protocol:
1. P computes C1 = (m||u)2e2 mod n2, where || denotes concatenation.
2. P randomly chooses an integer r and encrypts the chameleon signature σ via the ElGamal encryption scheme with T ’s public key y. That is, P computes C2 = (K1, K2, c, s), where K1 = σ2yr mod n1, K2 = gr mod n1, c = H3(M ||ye1 r ||gr||ye1 ||g||(ye1 )t||gt), and s = t − cr.
3. P sends the ciphertext (C1, C2) to V . V firstly decrypts C1 to obtain the pair (m, u), and then computes M = JH2 (m)ue2 mod n2, W = Ke1 H3(M )−2 mod n1, and c′ = H3(M ||W ||K2||ye1 ||g||(ye1 )sWc||gsKc). If c′ = c, V accepts the fact that C2 is a valid T -verifiable encryption of P ’s chameleon signature on message m.
