Computer Science CSC 774 Advanced Network Security Topic 2.5 Secret Handshake Slides by Tong Zhou CSC 774 Dr. Peng Ning Goals • Authenticate without revealing credentials – Consider two groups G1 and G2, two parties A G1 and B G2. A and B wants to authenticate each other. – If G1 ≠ G2: A and B only know they are not in the same group. – If G1 = G2: A and B can authenticate to each other. – A third party learns nothing by observing conversations between A and B. Computer Science CSC 774 Dr. Peng Ning Preliminaries: Pairing-based Cryptography • Bilinear Maps: – Two cyclic groups of large prime order q: G1 and G2 – eˆ : G1 G1 G 2 is a bilinear map if a, b Z q ; P, Q G1; eˆ(aP, bQ) eˆ( P, Q)ab • ê should be computable, non-degenerate and satisfies Bilinear Diffie-Hellman assumption, i.e., given P, aP, abc ˆ e ( P , P ) bP, cP, it is hard to compute Computer Science CSC 774 Dr. Peng Ning Protocol Sketch • Equipped with bilinear map ê and one-way hash function H1 • CA has a master key t. • Assume a drivers and cops scenario. Computer Science CSC 774 Dr. Peng Ning Protocol Sketch K A eˆ( H1 (“xy6542678 d - cop”), TA ) K B eˆ(TB , H1 (“p65748392 a - driver” )) K A me KDriver’s B Please show licence, your pseudonym.please. xy6542678d p65748392a Driver’s Licence: Traffic cop credential: “p65748392a”,TA “xy6542678d”,TB TB = tH1(“xy6542678d-cop”) TA = tH1(“p65748392a-driver”) Computer Science CSC 774 Dr. Peng Ning Protocol Sketch – Attacker Igor K A eˆ( H1 (“xy6542678 d - cop”), TA ) ??? This guy is me notI aam a cop. Driver’s Please show cop. your pseudonym.licence, please. xy6542678d p65748392a Driver’s Licence: Obtains Bob’s pseudonym “p65748392a”,TA “xy6542678d” TA = tH1(“p65748392a-driver”) Computer Science CSC 774 Dr. Peng Ning Secret-Handshake Scheme (SHS) • SHS.CreateGroup(G): executed by an administrator, generates the group secret GroupSecretG for G. • SHS.AddUser(U,G,GroupSecretG): creates user secret UserSecretU,G for new user U. • SHS.HandShake(A,B): Users A and B authenticates each other. B discovers A G if and only if A discovers B G. • SHS.TraceUser: Administrator tells the user from a transcript T generated during conversation between A and B. • SHS.RemoveUser: Administrator revokes user U Computer Science CSC 774 Dr. Peng Ning Pairing-Based Handshake (PBH) • PBH.CreateGroup: Administrator sets GroupSecretG as a random number sG Z q • PBH.AddUser: Administrator generates pseudonyms for users: {id U 1 ,, id Ut } and then generates the corresponding secret points: {priv U 1 ,, priv Ut } where priv Ui sG H1 (id Ui ) H1 is a one-way hash function. Computer Science CSC 774 Dr. Peng Ning Pairing-Based Handshake (PBH) • PBH.Handshake: • • • A id A , nA B id B , nB ,V0 A B V1 A B V0 H 2 (eˆ( H1 (id A ), priv B ) | id A | id B | nA | nB | 0) V1 H 2 (eˆ(priv A , H1 (id B )) | id A | id B | nA | nB | 1) S H2 (eˆ(priv A ,H1 (id B )) | id A | id B | nA | nB | 2) H2 (eˆ(H1(id B ),priv B ) | id A | id B | nA | nB | 2) Computer Science CSC 774 Dr. Peng Ning Pairing-Based Handshake (PBH) • PBH.TraceUser: Since the conversations of handshaking include the pseudonyms, administrator can easily figure out the users. • PBH.RemoveUser: Administrator removes user U by broadcasting its pseudonyms to all the other users, so that other users won’t accept pseudonyms of U. Computer Science CSC 774 Dr. Peng Ning Computational Diffie-Hellman Instead of Bilinear Diffie-Hellman • CreateGroup: Administrator picks (p,q,g). p and q are primes, g is a generator of a subgroup in Z *p of order q. Also, picks up a private key x, and computes the public key y=gx mod p • AddUser: For user U, administrator generates idU, then generates a pair (w, t ) (Z*p , Z q ) so that g t wy H ( w, ID ) idU, w, t will be given to the user. Computer Science CSC 774 Dr. Peng Ning Computational Diffie-Hellman Instead of Bilinear Diffie-Hellman • AddUser: For user U, administrator generates idU, then generates a pair (w, t ) (Z*p , Z q ) so that g t wy H ( w, ID ) idU, w, t will be given to the user. – How to generate the pair (w,t)? Randomly pick r, compute w g mod p r t r xH ( w, ID ) Computer Science CSC 774 Dr. Peng Ning Computational Diffie-Hellman Instead of Bilinear Diffie-Hellman • Handshake: Assume user A has (idA, wA, tA) and user B has (idB, wB, tB). Define several marks (ElGamal Encryption): – Recover( y, id, w) PK wy H ( w,id) mod p – Enc PK (m) [c1 , c2 ] [ g R mod p, m H ' ( PK R mod p)] – Dec t ([c1 , c2 ]) m c2 H ' (c1t mod p) Computer Science CSC 774 Dr. Peng Ning Computational Diffie-Hellman Instead of Bilinear Diffie-Hellman • Handshake: PKB Recover( y,id B , wB ) randomly picks ra , cha computes Ca Enc PKb (ra ) id B , wB A A id A , wA , C A , cha B B PK A Recover( y,id A , wA ) ra Dec tb (Ca ) randomly picks rb , chb computes verifies respb rb Dec ta (Cb ) A CB , respb , chb respa H (ra , rb , chb ) A Computer Science respa CSC 774 B B Cb Enc PKa (rb ) respb H (ra , rb , cha ) verifies respa Dr. Peng Ning