e- Technology Program ʳ
2. Self-certified key distribution protocols 1 System model of the self-certified key distribution protocols
The self-certified key distribution protocol can be divided into three stages: system setup, user registration, and key distribution. The system requires a system authority (SA) that is responsible for defining system parameters and dealing with the user registration. In the system setup stage, SA generates his/her private-key/public-key pair that will be used in the latter time and defines system parameters. In the user registration stage, the registering user prepares his/her identity information such as the identifier, name, and address, etc. and then performs a zero-knowledge proof protocol in collaboration with SA to determine his/her self-certified private-key/public-key pair by randomly choosing a master key. Here, we elaborate an exponentiation function to construct the zero-knowledge proof protocol where computing the discrete logarithm over finite field is computationally infeasible [10]. Hence, SA cannot obtain the master key from the registering commitment sent from the registering user. After completing the zero-knowledge proof protocol, the registering user will obtain his/her self-certified public key and witness for the public key sent from SA via a secret channel. He/she can derive his/her private key with the knowledge of the witness issued by SA as well as his/her chosen master key. Meanwhile he/she can use the derived private key to check the validity of the self-certified public key issued by SA.
Thereafter, the self-certified private-key/public-key pair will be used in the key distribution stage. Note that SA cannot derive the private key of the registering user and masquerade as him/her in the latter time due to the unknown master key.
Illustration of the user registration stage is depicted in Figure 1.
January 25-27, 2010, Grand Lisboa, Macau
2535
Fig. 1. User registration stage
To establish a secret shared key between two communicating users in key distribution stage, two key distribution protocols will be proposed. In the first key distribution protocol (being abbreviated as KDP1), the shared key established by two communicating users is fixed and the same for every session initiated by the same users. That is, the shared key is computed from user’s private key and the other user’s self-certified public key. Illustration of KDP1 is depicted in Figure 2(a). In contrast to KDP1, the shared key established by two communicating users for every session is variable in the second key distribution protocol (being abbreviated as KDP2). In KDP2, each communicating user randomly chooses an integer (protected by discrete logarithm problem) and sends the corresponding commitment together with his/her identity information and self-certified public key to the other. Thereafter, they can use respective private keys to derive the shared key from the received messages.
Illustration of KDP2 is showed in Figure 2(b). Notice that: (i) Verification of respective public keys and the shared keys established in KDP1/KDP2 are implicitly integrated. (ii) The identities of participants can be corroborated. (iii) KDP2 is secure against the known-key attack (i.e., if compromise of the past shared key, then the adversary can compromise the future shared key or plot impersonation [8]), but KDP1 is not.
Fig. 2. Key distribution protocols User’s self-certified public key and witness for the public key
User’s identity information and registering commitment
User SA
User j User i’s identity information, self-certified public key
(a) KDP1 (b) KDP2
User j’s identity information, self-certified public key
User i User i User j
User i’s identity information, self-certified public key, commitment
User j’s identity information, self-certified public key,
January 25-27, 2010, Grand Lisboa, Macau
2536
2.2 Realization of the self-certified key distribution protocols
The system setup, user registration, and key distribution stages of the proposed self-certified key distribution protocols are stated below:
System setup -- For system setup, SA randomly selects two large primes p and q, where q|p1, and a generator D of order q over GF(p). Meanwhile, SA also chooses a one-way hash function h that accepts a variable length input and produces a fixed length output. After that, SA publishes p, q, D , and h. SA also determines a private-key/public-key pair (J ,E), where JZq* and E DJ modp, to be used in the remaining stages.
User registration -- Let u be the registering user and i I be the identity i information with respect to u such as the identifier, name, and address, etc. i ui could send a registration request to SA and then collaborate with SA to determine his/her self-certified private-key/public-key pair as follows. First, u computes a i registering commitment v asi
p
vi Dh(ki||Ii)mod (1)
where kiR Zq (that is regarded as a secret master key) and then transmits {Ii,vi} to SA. Upon receiving {Ii,vi} transmitted from u , SA should check whether or not i
I has been registered. If i I has been registered, SA must request i u to re-send i new identity information and registering commitment until the chosen identity information has not been registered. Furthermore, SA computes a self-certified public key y and a witness i w with respect to i u as.i
With above equality holding, (xi,yi) will be regarded as a valid self-certified private-key/public-key pair of u . Otherwise, i u performs this stage renewedly. i Note that the private key x is unknown to SA due to the unknown master key i k .i
January 25-27, 2010, Grand Lisboa, Macau
2537
Theorem 1. The authenticity of the key pair (xi,yi) with respect to u will be i verified correctly by eqn. 5.
Proof: Substituting eqn. 3 into eqn. 4, we can have
Raising both sides of above equation to exponents to based D , we have
)
which implies eqn. 5. Q.E.D.
Key distribution protocols. Let u and i u be two users who want to establish a j secret shared key between them by applying either KDP1 or KDP2. Details of these two protocols are described respectively as follows.
The first key distribution protocol (KDP1): Each user transmits his/her identity information and public key to his/her correspondent, i.e., u transmits {i I ,i y } to i uj and u send {j I ,i y } to i u as Figure 2. Thereafter, i u and i u can compute the j shared key by himself/herself from the following equality respectively:
p KDP1 is showed as follows. From eqn. (6), we can have
SK =ij ((yj h(Ij))Eyjh(Ij))xi
=((vjDzj)Eyjh(Ij))xi by eqn. (2)
January 25-27, 2010, Grand Lisboa, Macau
2538
=((vjDzj)DJ(yjh(Ij)))xi
=((Dh(kj,Ij)Dzj)DJ(yjh(Ij)))xi by eqn. (1)
=(Dwjh(kj,Ij))xi by eqn. (3)
=Dxjxi(mod p) by eqn. (4) Similarly, eqn. (7) can also be rewritten as SKji Dxixj modp that implies any two communicating users can share a secret key with knowing identity information and his/her correspondent’s public key.
The second key distribution protocol (KDP2) -- To establish a shared key, ui computes ti Dri modp, where riR Zq, and sends {Ii,yi,ti} to u . Meanwhile, j
u also computes j tj Drj modp, where rjR Zq, and sends {Ij,yj,tj} to u .i Finally, u and i u computes the shared key by the following equality respectively: j
p t
I h y
SKij (( j ( j))Eyjh(Ij))ri jximod (10) p
t I
h y
SKji (( i ( i))Eyih(Ii))rj ixj mod (11) Notice that, t and i t are variable according to time-variant parameters j r and i r .j
Thus, the shared key SK (or ij SK ) is variable and different for each session since ji they are computed from t and i t . From eqns. (10) and (11), If j SK is equal to ij
SK , then it implies that the authenticity of public keys ji y and i y are verified. j The correctness of the protocol is showed as follows.
SK =ij ((yjh(Ij))Eyjh(Ij))ri tjxi
=((viDzj)Eyjh(Ij))ri tjxi by eqn. (2)
=((viDzj)DJ(yjh(Ij)))ri tjxi
January 25-27, 2010, Grand Lisboa, Macau
2539
=((Dh(kj,Ij)zj)DJ(yjh(Ij)))ri tjxi by eqn. (1)
=(Dwjh(kj,Ij))ri tjxi by eqn. (3)
=Dxjri tjxi by eqn. (4)
=Dxjri Drjxi(mod p) by eqn. (9) Similarly, eqn. (11) can also be written as SKji Dxirj Drixj(mod p) which implies eqn. (10).