CN101247224A - Public key promising concurrent MQV cryptographic key exchange protocol without being able to forging safety - Google Patents

Public key promising concurrent MQV cryptographic key exchange protocol without being able to forging safety Download PDF

Info

Publication number
CN101247224A
CN101247224A CNA200810032507XA CN200810032507A CN101247224A CN 101247224 A CN101247224 A CN 101247224A CN A200810032507X A CNA200810032507X A CN A200810032507XA CN 200810032507 A CN200810032507 A CN 200810032507A CN 101247224 A CN101247224 A CN 101247224A
Authority
CN
China
Prior art keywords
user
key
agreement
session
pki
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA200810032507XA
Other languages
Chinese (zh)
Inventor
赵运磊
姚期智
储枫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CNA200810032507XA priority Critical patent/CN101247224A/en
Publication of CN101247224A publication Critical patent/CN101247224A/en
Priority to PCT/CN2008/072794 priority patent/WO2009056048A1/en
Priority to CN2008801222327A priority patent/CN102017510B/en
Priority to US12/766,431 priority patent/US8464060B2/en
Priority to HK11110843.5A priority patent/HK1156750A1/en
Pending legal-status Critical Current

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

The present invention belongs to cipher code agreement technology field, specially is a MQV cipher key exchange agreement of concurrent incoagulable forge work safe public key. based on MQV and HMQV consultative conversation, cipher key computing formula (YB<SUP>c</SUP>)<SUP>x+da</SUP>=(XA<SUP>d</SUP>)<SUP>y+cb</SUP> and MQV and HMQV consultative concurrent intermediator attack discovered by inventor, in the invention agreement, input of function c must contain public key B of user B, DH cipher key ingredient Y and user A identity I<SUB>A</SUB>; input of function d must contain public key A of user A, DH cipher key ingredient X and user B identity I<SUB>B</SUB>. The key of the present invention is: function d must promises public key of user A, and function c must promises public key of user B. The present invention agreement provides stronger concurrent incoagulable forge work safety, still more suitable for protecting cipher key exchange agreement safety operating in concurrent surroundings such as internet etc.

Description

The concurrent of PKI promise can not be forged safe MQV IKE
Technical field
The invention belongs to cipher protocol, be specifically related to the concurrent of a kind of PKI promise and can not forge safe MQV IKE.
Background technology
At present, the Diffie-Hellman IKE of the most frequently used in the world (simultaneously by extensively standardization) is MQV and HMQV agreement.The operational mode of MQV and HMQV agreement is as follows:
Has identity I AUser " A " have PKI A=g a, have identity I BUser " B " have PKI B=g bUser " A " sends X=g in the agreement first round xUser " B " takes turns in agreement second and sends Y=g yThis is basic Diffie-Hellman IKE.User " A " checks that the rank of Y are q and session key K=H K((YB c) X+da), user " B " checks that the rank of X are q and calculating K=H K((XA d) Y+cb).D=2 in MQV wherein l+ (X mod 2 l), c=2 l+ (Ymod 2 l), l equals half of x or y length.D=H in HMQV (X, I B), c=H (Y, I A).
The up-to-date research work of inventor shows that there are bigger security breaches in MQV and HMQV agreement.Specifically, we find the concurrent man-in-the-middle attack at MQV and HMQV of some danger, show that MQV and HMQV can not accomplish can not forge fail safe fully.The MQV that we find and the security breaches of HMQV agreement can be saved with the following method: function c must promise to undertake PKI B, the DH key composition Y of user bound " B " and user's " A " identity I AFunction d must be promised to undertake PKI A, DH key component X and the user's " B " of user bound " A " identity I BCompare with MQV and HMQV, the crucial difference of agreement of the present invention is: user's " A " PKI A must be as the input of function d, and user's " B " PKI B must be as the input of function c; That is: function c must promise to undertake that the PKI B of user bound " B " and function d must promise to undertake the PKI A of user bound " A ".
Summary of the invention
The objective of the invention is to propose that a kind of PKI promises to undertake concurrently can not forge safe MQV IKE, more strong can not forge fail safe to improve.
Agreement of the present invention has following characteristics:
On the basis of MQV and HMQV agreement; promise to undertake user's " A " PKI by making function d; and function c promises to undertake user's " B " PKI; the concurrent man-in-the-middle attack that agreement of the present invention can be resisted the inventor effectively and found at MQV and HMQV agreement; can provide more strong and concurrently can not forge fail safe, the fail safe when being more suitable for protecting IKE in concurrent environment such as the Internet, to move.
The system works environment of agreement of the present invention is:
(1). system parameters: system parameters: (p, q, g, H, H KMAC), wherein p and q are big prime number, and q aliquot p-1, and g is a Z * pScala media (order) is the element of q, makes at Z * pIn by discrete logarithm (discrete logarithm DL) on the subgroup of g definition and to calculate Diffie-Hellman (computational Diffie-Hellman CDH) problem be difficult.Generally speaking, the length of p is 1024 or 2048, and the length of q is 160 or 1024.All exponent arithmetics and (not on index) multiplying be mould (mod) p computing, and the multiplication on addition and the index is that mould (mod) q computing is (such as g DaExpression g Da mod qMod p).Here, Z * pRefer to all than p little and with the set of the coprime positive integer of p, i.e. Z * p=1,2 ..., p-1}.Defined function DL:Z q→ Z * p, make h=DL (w)=g wMod p.W is called the discrete logarithm of h.We require the given h that calculates at random, do not have polynomial time algorithm to calculate the discrete logarithm w of h, and this is called discrete logarithm problem.Calculating the Diffie-Hellman problem refers to: given g at random xWith g y, do not have polynomial time algorithm to calculate g XyGenerally speaking, for the people who is familiar with this area, discrete logarithm problem and calculating Diffie-Hellman problem also can be defined in by elliptic curve or bilinearity on the group to (bilineartity) definition.H be from 0,1} *→ 0,1,2 ..., the hash function of q-1}.For increasing computational speed, the output length of H can be l=( log 2Q +1)/2.H KBe from 0,1} *→ 0,1} kHash function, k is the length of session key, such as k=128 or 160; For character string s 1..., s m, m>1, H (s 1, s 2..., s m) expression be: with s 1..., s mRepresent that with Binary Zero-1 string then all 0-1 polyphones are connect (that is, series connection) and get up, the string that will obtain after will connecting at last is as the input (series sequence of element can change) of H.MAC is a message authentication code calculation.(p, q, g, H, H KMAC) both can be the overall situation or part common parameter of overall importance, can also hold consultation by the user of any a pair of this agreement of execution.
(2). unless otherwise specified, have identity ID I AUser " A " a PKI A=g is arranged a, wherein a by user " A " at Z qMiddle picked at random.Correspondingly, has ID I BUser's " B " PKI be designated as B=g b, by that analogy; Here, Z q=0,1,2 ..., q-1}.
(3). agreement is based on the Diffie-Hellman IKE; Note X=g xMod p is user's a " A " DH key composition, and x is the discrete logarithm of DH key component X, x by user " A " from Z q=0,1 ..., picked at random among the q-1}.Note Y=g yMod p is user's a " B " DH key composition, and y is the discrete logarithm of DH key composition Y, y by user " B " from Z q=0,1 ..., picked at random among the q-1}.
(4). a believable certificate authority CA is arranged, issue certificate CERT, be used for identity and corresponding PKI thereof the user, such as: (I A, A=g a), carry out the binding that can openly verify.Binding realizes with the electronic signature of CA.The CA verification public key is Z during binding * pScala media is the element of q and non-1.User's " A " certificate is designated as CERT A, comprise that user's " A " PKI and CA are to (I A, A=g a) electronic signature.
(5). the execution each time of agreement is called a session (session).We suppose that the execution each time (that is, session each time) of agreement has one to indicate number (session-identifier): sid, and the agreement that is used for the mark concurrent running is carried out.The formulation of sid with consult can be with the running environment of agreement different and change to some extent: such as sid can be that the merging of two random trains of agreement operation two sides transmission is connected.Generally speaking, sid is included in the information of agreement operation user's exchange before or the Ha Xi value of exchange message.Sid can produce in the agreement running in some environment; Sid also can omit when session can be indicated automatically by linguistic context in some environment, for example (X=g in some cipher key change is used x, Y=g y) can hold concurrently indicates number when session.
(6). carry out relevant out of Memory pub with agreement: except (sid, I A, A=g a, I B, B=g b, X=g x, Y=g y) outside, other is carried out relevant information with agreement and represents with pub.Pub is a character string, generally is user's IP address, public key certificate, the information that other need authenticate, the series connection of timestamp etc.Pub can be sky.In all agreements with MAC realize, in order to improve computational efficiency, can be only with the input part of pub as MAC, and not as H, H KInput.
This agreement implementation method:
User " A " reaches " B " and exchanges their DH key component X=g separately mutually xAnd Y=g yAnd public key certificate.Suppose that user " A " is the promoter of agreement, user " B " is the respondent of agreement.That is: user " A " sends X in the first round, and user after receiving X " B " checks X ∈ Z * pAnd take turns second and to send Y; After receiving Y, user " A " checks Y ∈ Z * p
With user's identity ID, their DH key composition, particularly their PKI are promised to undertake binding with two function c and d.Promise to undertake that binding realizes by hash function H.The point of promising to undertake the key of binding is: function c must promise to undertake PKI B, the DH key composition Y of user bound " B " and user's " A " identity I AFunction d must be promised to undertake PKI A, DH key component X and the user's " B " of user bound " A " identity I B
Session-key computation comprises citation form and simple form:
The citation form of session-key computation: user " A " calculating K A=(YB c) Tx+tda, check K A≠ 1 and session key K=H K(K A); User " B " calculating K B=(XA d) Ty+tcb, check K B≠ 1 and session key K=H K(K B); Wherein, d=H (A, X, I B), c=H (B, Y, I A), t=(p-1)/q.
The simple form of session-key computation: user " A " sends X, calculating K in the first round A=B X+daAnd session key K=H K(K A); User " B " checks that X is Z after receiving X * pScala media is non-1 element of q, calculating K B=X bA DbAnd session key K=H K(K B); Wherein, d=H (I A, A, I B, B, X).
Session-key computation form with identity and key confirmation function: in order further to confirm identity and session key mutually, user " A " calculates the MAC-key K m=H K(K A, 0), " B " calculating K m=H K(K B, 0); Protocol responses person " B " takes turns second and sends MAC Km(0).For the citation form of session-key computation, agreement initiator " A " sends MAC in the third round that other adds Km(1); For the simple form of session-key computation, " A " sends MAC in the first round Km(1), user " B " takes turns second and sends MAC Km(0).When following identity and key confirmation function, session key is set to K=H K(K A, 1)=H K(K B, 1).
The specific implementation step of agreement of the present invention:
In following protocol description, the information that the value representation in the braces sends.The PKI of noting user " A " is A=g aAnd has a certificate CERT that CA issues AUser's " B " PKI is B=g bAnd has a certificate CERT that CA issues BSuppose that user " A " is agreement operation initiator, user " B " is agreement operation respondent.
Agreement-1: the agreement performing step of session-key computation citation form:
The first round, from " A " to " B ": { sid, I A, A, CERT A, X=g x(mod p) }.
Wherein x is from Z qMiddle picked at random; X is called the DH key composition of " A ".After receiving the information of " A " transmission, identity, PKI and the certificate of " B " checking " A ", X are Z * pIn element; Checking is unsuccessful, and " B " refusal continues to carry on an agreement, otherwise, enter next round.
Second takes turns, from " B " to " A ": { sid, I B, B, CERT B, Y=g y.
Y is from Z qMiddle picked at random and Y are called the DH key composition of " B ".After receiving the information of " B " transmission, identity, PKI and the certificate of " A " checking " B ", Y are Z * pIn element; Checking is unsuccessful, " A " termination protocol.
Session-key computation: user " A " calculating K A=(YB c) Tx+tda, check K A≠ 1 and session key K=H K(K A).User " B " calculating K B=(XA d) Ty+tcb, check K B≠ 1 and session key K=H K(K B).Wherein, d=H (A, X, I B), c=H (B, Y, I A), t=(p-1)/q.Here, d=H (A, X, I B) that represent is d=H (A ‖ X ‖ I B), c=H (B, Y, I A) that represent is c=H (B ‖ Y ‖ I A), what " ‖ " represented is being linked in sequence of character string.Session key is in case calculating finishes, and user " B " deletes (y, K B), user " A " deletes (x, K A).
Agreement-2: the agreement performing step of session-key computation simple form:
The first round: from " A " to " B ": { sid, I A, A, CERT A, X=g x(mod p) }.
Wherein x is from Z qMiddle picked at random; X is called the DH key composition of " A "; User " A " calculating K A=B X+da, session key K=H K(K A) and deletion (x, K A); Wherein, d=H (I A‖ A ‖ I B‖ B ‖ X).
After receiving the information of " A " transmission, identity, PKI and the certificate of " B " checking " A ", X are Z * pIn rank be non-1 element of q; Checking is unsuccessful, and " B " terminate agreement is carried out; Otherwise, user " B " calculating K B=X bA Db, session key K=H K(K B) and deletion (y, K B).
Agreement-3: agreement performing step with identity and key confirmation function:
The first round, from " A " to " B ": { sid, I A, A, CERT A, X=g x(mod p) }.
Wherein x is from Z qMiddle picked at random; X is called the DH key composition of " A ".After receiving the information of " A " transmission, identity, PKI and the certificate of " B " checking " A ", X are Z * pIn element; Checking is unsuccessful, and " B " refusal continues to carry on an agreement; Otherwise, enter next round.
Second takes turns, from " B " to " A ": { sid, I B, B, CERT B, Y=g y, MAC Km(0) }.
Y is from Z qMiddle picked at random and Y are called the DH key composition of " B ".User " B " calculating K B=(XA d) Ty+tcbAnd inspection K B≠ 1, calculate the MAC-key K m=H K(K B, 0) and MAC Km(0); At last, user " B " session key K=H K(K B, 1), delete (y, K B) and enter next round.Here H K(K B, 0) and that represent is H K(K B‖ 0), K=H K(K B, 1) and that represent is K=H K(K B‖ 1).
After receiving the information of " B " transmission, identity, PKI and the certificate of " A " checking " B ", Y are Z * pIn element; Checking is unsuccessful, " A " termination protocol; Be proved to be successful user " A " calculating K A=(YB c) Tx+tdaAnd inspection K A≠ 1, calculate the MAC-key K m=H K(K A, 0) and verify MAC Km(0) correctness; Checking is unsuccessful, and user " A " terminate agreement is carried out; Be proved to be successful user " A " session key K=H K(K A, 1), calculate MAC Km(1), deletes (x, K A, K m) and enter next round.
Third round, from " A " to " B ": { sid, MAC Km(1) }.
After receiving the information of " A " transmission, " B " verifies MAC Km(1) correctness; Checking is unsuccessful, and user " A " terminate agreement is carried out, otherwise, delete K mAnd protocol finishes is carried out.
Among the present invention, agreement-1, agreement-2 and agreement-3 can have following variant:
(1). in agreement-1 and agreement-3, other method to set up of function d and c: d=H (I A, A, I B, B, X, Y), c=H (d); Perhaps, d=H (I A, A, X, I B), c=H (I B, B, Y, I A); Perhaps, d=H (A, X, Y, I B), c=H (B, Y, X, I A).No matter be which kind of method to set up, its key point is: user's " A " PKI A must be as the input of function d, and user's " B " PKI B must be as the input of function c.
In actual applications, with (I A, A) be changed to user's " A " public key certificate Cert AThe Ha Xi value, with (I B, B) be changed to user's " B " public key certificate Cert BThe Ha Xi value; Perhaps, with (I A, A, I B, B) be changed to Cert A, Cert BAnd the Ha Xi value of other cookie, random number and IP address information that before the agreement operation, is exchanged; With the part of sid as function c and d input.
(2). in agreement-1 and agreement-3, the t in session key and the MAC-cipher key calculation is saved; That is: K A=(YB c) X+da, K B=(XA d) Y+cbAt this moment, user " B " must check that X is Z * pIn rank be non-1 element of q, user " A " must check that Y is Z * pIn rank be non-1 element of q; Realize that for agreement the user can only check that X and Y are the point of the non-infinity on the corresponding elliptic curve based on elliptic curve.
(3). in the session-key computation and MAC-cipher key calculation of agreement-1, agreement-2 and agreement-3, with c and d as H KThe part of input.
(4). with hash function H and H KInput in the order of element change.
Embodiment
Suppose to have identity I AUser's " A " PKI be A=g aAnd has a certificate CERT A, have identity I BUser's " B " PKI be B=g bAnd has a certificate CERT BCertificate CERT ARefer to the identity I of CA to A AAnd PKI A=g aAn electronic signature, all the other with.We suppose that A is agreement operation initiator (initiator), and B is agreement operation respondent (responder).
In the concrete enforcement of following agreement, No. 2104 the Internet suggestion that message authentication code MAC employing is announced by IETF (Internet Engineering TaskForce) solicited the HMAC authentication code described in the document (Internet RFC 2104).HMAC only need do two and breathe out western computings, and be proved to be message authentication code be again pseudo-random function.In the concrete enforcement of agreement, HMAC and hash function H, H KRealize by the SHA-1 hash function.In the concrete enforcement of following agreement, session indications sid saves.
Agreement-1: the agreement embodiment of session-key computation citation form:
The first round, from " A " to " B ": { I A, A, CERT A, X=g x(mod p) }.
Wherein x is from Z qMiddle picked at random; X is called the DH key composition of " A ".After receiving the information of " A " transmission, (that is: authentication certificate issuing organization CA is to (I for identity, PKI and the certificate of " B " checking " A " A, A) Qian Ming validity), X is Z * pIn element (that is: 1≤X≤p-1); Checking is unsuccessful, and " B " refusal continues to carry on an agreement, otherwise, enter next round.
Second takes turns, from " B " to " A ": { I B, B, CERT B, Y=g y.
Y is from Z qMiddle picked at random and Y are called the DH key composition of " B ".After receiving the information of " B " transmission, identity, PKI and the certificate of " A " checking " B ", Y are Z * pIn element; Checking is unsuccessful, " A " termination protocol.
Session-key computation: user " A " calculating K A=(YB c) Tx+tda mod qModp checks K A≠ 1 and session key K=H K(K A).User " B " calculating K B=(XA d) Ty+tcb mod qModp checks K B≠ 1 and session key K=H K(K B).Wherein, d=H (A ‖ X ‖ I B), c=H (B ‖ Y ‖ I A), t=(p-1)/q.Here, " ‖ " expression is being linked in sequence of character string.Session key is in case calculating finishes, and user " B " deletes (y, K B), user " A " deletes (x, K A).
Agreement-2: the agreement embodiment of session-key computation simple form:
The first round: from " A " to " B ": { I A, A, CERT A, X=g x(mod p) }.
Wherein x is from Z qMiddle picked at random; X is called the DH key composition of " A "; User " A " calculating K A=B X+da mod qMod p, session key K=H K(K A) and deletion (x, K A); Wherein, d=H (I A‖ A ‖ I B‖ B ‖ X).
After receiving the information of " A " transmission, identity, PKI and the certificate of " B " checking " A ", X are Z * pIn non-1 element and X q=1 mod p (that is: the rank of X are q); Checking is unsuccessful, and " B " terminate agreement is carried out; Otherwise, user " B " calculating K B=X bA Db, session key K=H K(K B) and deletion (y, K B).
Agreement-3: agreement embodiment with identity and key confirmation function:
The first round, from " A " to " B ": { I A, A, CERT A, X=g x(mod p) }.
Wherein x is from Z qMiddle picked at random; X is called the DH key composition of " A ".After receiving the information of " A " transmission, identity, PKI and the certificate of " B " checking " A ", X are Z * pIn element; Checking is unsuccessful, and " B " refusal continues to carry on an agreement; Otherwise, enter next round.
Second takes turns, from " B " to " A ": { I B, B, CERT B, Y=g y, HMAC Km(0) }.
Y is from Z qMiddle picked at random and Y are called the DH key composition of " B ".User " B " calculating K B=(XA d) Ty+tcb mod qMod p also checks K B≠ 1, calculate the MAC-key K m=H K(K B‖ 0) and HMAC Km(0); At last, user " B " session key K=H K(K B‖ 1), delete (y, K B) and enter next round.
After receiving the information of " B " transmission, identity, PKI and the certificate of " A " checking " B ", Y are Z * pIn element; Checking is unsuccessful, " A " termination protocol; Be proved to be successful user " A " calculating K A=(YB c) Tx+tda mod qMod p also checks K A≠ 1, calculate the MAC-key K m=H K(K A‖ 0) and verify HMAC Km(0) correctness; Checking is unsuccessful, and user " A " terminate agreement is carried out; Be proved to be successful user " A " session key K=H K(K A‖ 1), calculate HMAC Km(1), deletes (x, K A, K m) and enter next round.
Third round, from " A " to " B ": { HMAC Km(1) }.
After receiving the information of " A " transmission, " B " verifies HMAC Km(1) correctness; Checking is unsuccessful, and user " A " terminate agreement is carried out, otherwise, delete K mAnd protocol finishes is carried out.
The embodiment of protocol variations:
(1). in agreement-1 and agreement-3, function d and c can have other method to set up: d=H (I A‖ A ‖ I B‖ B ‖ X ‖ Y), c=H (d); Perhaps, d=H (I A‖ A ‖ X ‖ I B), c=H (I B‖ B ‖ Y ‖ I A); Perhaps, d=H (A ‖ X ‖ Y ‖ I B), c=H (B ‖ Y ‖ X ‖ I A).No matter be which kind of method to set up, its key point is: user's " A " PKI A must be as the input of function d, and user's " B " PKI B must be as the input of function c.
In concrete enforcement, can be with (I A‖ A) is changed to user's " A " public key certificate Cert AThe Ha Xi value, with (I B‖ B) is changed to user's " B " public key certificate Cert BThe Ha Xi value; The execution mode of another recommendation is: with (I A‖ A ‖ I B‖ B) is changed to Cert A, Cert BAnd the Ha Xi value (being the cryptographic Hash of pub) of the series connection (being pub) of other information such as cookie, random number and IP address that before the agreement operation, exchanged or series connection information.
(2). in agreement-1 and agreement-3, the t in session key and the MAC-cipher key calculation is saved; That is: K A=(YB c) X+damod qMod p, K B=(XA d) Y+cb mod qMod p.At this moment, user " B " is except checking that X is Z * pIn non-1 element outside, also must check X q=1 mod p (that is: the rank of X are q); User " A " is except checking that Y is Z * pIn non-1 element outside, also must check Y q=1 mod p (that is: the rank of Y are q).Realize that for agreement the user can only check that X and Y are the point of the non-infinity on the corresponding elliptic curve based on elliptic curve.
(3). in the session-key computation and MAC-cipher key calculation of agreement-1, agreement-2 and agreement-3, with c and d as H KThe part of input.Such as, K m=H K(c ‖ d ‖ K A‖ 0)=H K(c ‖ d ‖ K B‖ 0), K=H K(c ‖ d ‖ K A‖ 1)=H K(c ‖ d ‖ K B‖ 1).
(4). with hash function H and H KInput in the order of element change.Such as: K=H K(1 ‖ K A‖ c ‖ d)=H K(1 ‖ K B‖ c ‖ d), etc.

Claims (3)

1. the concurrent of a PKI promise can not be forged safe MQV IKE, it is characterized in that:
The system works environment is:
(1). system parameters: (p, q, g, H, H K, MAC), wherein p and q are big prime number, and q aliquot p-1, g is a Z * pScala media is the element of q, makes at Z * pIn by discrete logarithm DL on the subgroup of g definition and to calculate Diffie-Hellman CDH problem be difficult; MAC is a message authentication code calculation; It is mod p computing that all exponent arithmetics reach the not multiplying on index, and the multiplication on addition and the index is mod q computing; Here, Z * p=1,2 ..., p-1}; H be from 0,1} *→ 0,1,2 ..., (q-1)/hash function of 2}; H KBe from 0,1} *→ 0,1} kHash function, k is the length of session key; For character string s 1..., s m, m>1, H (s 1, S 2..., s m) expression be: with s 1..., s mRepresent that with Binary Zero-1 string all 0-1 strings are linked in sequence is together in series then, the 0-1 string that will obtain after will connecting at last is as the input of H;
(2). unless otherwise specified, have identity ID I AUser " A " a PKI A=g is arranged a, wherein a by user " A " at Z qMiddle picked at random; Correspondingly, has ID I BUser's " B " PKI be designated as B=g b, by that analogy; Here, Z q=0,1,2 ..., q-1};
(3). agreement is based on the Diffie-Hellman IKE; Note X=g xMod p is user's a " A " DH key composition, and x is the discrete logarithm of DH key component X, x by user " A " from Z q=0,1 ..., picked at random among the q-1}; Note Y=g yMod p is user's a " B " DH key composition, and y is the discrete logarithm of DH key composition Y, y by user " B " from Z q=0,1 ..., picked at random among the q-1};
(4). a believable certificate authority CA is arranged, issue certificate CERT, be used for user's identity and corresponding PKI thereof are carried out the binding that can openly verify; Binding realizes with the electronic signature of CA; The CA verification public key is Z during binding * pScala media is the element of q and non-1; User's " A " certificate is designated as CERT A
(5). the execution each time of supposition agreement has one to indicate number: sid; Sid is a character string, and the agreement that is used for the mark concurrent running is carried out; The formulation of sid with consult can be with the running environment of agreement different and variation to some extent; Generally speaking, sid is included in the information of agreement operation user's exchange before or the Ha Xi value of exchange message;
(6). carry out relevant out of Memory pub with agreement: except sid, I A, A=g a, I B, B=g b, X=g x, Y=g yOutward, other information relevant with the agreement execution is represented with pub; Pub is a character string, is the series connection of user's IP address, public key certificate, other information that need authenticate, timestamp;
The concrete grammar that agreement realizes is: user " A " reaches " B " and exchanges their DH key component X=g separately mutually xAnd Y=g yAnd public key certificate; Suppose that user " A " is the promoter of agreement, user " B " is the respondent of agreement; That is: user " A " sends X in the first round, and user after receiving X " B " checks X ∈ Z * pAnd take turns second and to send Y; After receiving Y, user " A " checks Y ∈ Z * p
With user's identity ID, their DH key composition is so that their PKI is promised to undertake binding with two function c and d; Promise to undertake that binding realizes by hash function H; Wherein, function c must promise to undertake PKI B, the DH key composition Y of user bound " B " and user's " A " identity I AFunction d must be promised to undertake PKI A, DH key component X and the user's " B " of user bound " A " identity I B
Session-key computation comprises citation form and simple form:
The citation form of session-key computation: user " A " calculating K A=(YB c) Tx+tda, check K A≠ 1 and session key K=H K(K A); User " B " calculating K B=(XA d) Ty+tcb, check K B≠ 1 and session key K=H K(K B); Wherein, d=H (A, X, I B), c=H (B, Y, I A), t=(p-1)/q;
The simple form of session-key computation: user " A " sends X, calculating K in the first round A=B X+daAnd session key K=H K(K A); User " B " checks that X is Z after receiving X * pScala media is non-1 element of q, calculating K B=X bA DbAnd session key K=H K(K B); Wherein, d=H (I A, A, I B, B, X);
Session-key computation form with identity and key confirmation function: in order further to confirm identity and session key mutually, user " A " calculates the MAC-key K m=H K(K A, 0), " B " calculating K m=H K(K B, 0); Protocol responses person " B " takes turns second and sends MAC Km(0); For the citation form of session-key computation, agreement initiator " A " sends MAC in the third round that other adds Km(1); For the simple form of session-key computation, " A " sends MAC in the first round Km(1), user " B " takes turns second and sends MAC Km(0); When following identity and key confirmation function, session key is set to K=H K(K A, 1)=H K(K B, 1).
2. the concurrent of PKI promise according to claim 1 can not be forged safe MQV IKE, it is characterized in that the performing step of agreement is:
In following protocol description, the information that the value representation in the braces sends; Wherein, user's " A " PKI is A=g aAnd has a certificate CERT that CA issues A, user's " B " PKI is B=g bAnd has a certificate CERT that CA issues BSuppose that user " A " is agreement operation initiator, user " B " is agreement operation respondent;
Agreement-1: the agreement performing step of session-key computation citation form:
The first round, from " A " to " B ": { sid, I A, A, CERT A, X=g x(mod p) };
Wherein x is from Z qMiddle picked at random; X is called the DH key composition of " A "; After receiving the information of " A " transmission, identity, PKI and the certificate of " B " checking " A ", X are Z * pIn element; Checking is unsuccessful, and " B " refusal continues to carry on an agreement, otherwise, enter next round;
Second takes turns, from " B " to " A ": { sid, I B, B, CERT B, Y=g y;
Y is from Z qMiddle picked at random and Y are called the DH key composition of " B "; After receiving the information of " B " transmission, identity, PKI and the certificate of " A " checking " B ", Y are Z * pIn element; Checking is unsuccessful, " A " termination protocol;
Session-key computation: user " A " calculating K A=(YB c) Tx+tda, check K A≠ 1 and session key K=H K(K A); User " B " calculating K B=(XA d) Ty+tcb, check K B≠ 1 and session key K=H K(K B); Wherein, d=H (A, X, I B), c=H (B, Y, I A), t=(p-1)/q; Here, d=H (A, X, I B) that represent is d=H (A ‖ X ‖ I B), c=H (B, Y, I A) that represent is c=H (B ‖ Y ‖ I A), what " ‖ " represented is being linked in sequence of character string; Session key is in case calculating finishes, and user " B " deletes (y, K B), user " A " deletes (x, K A);
Agreement-2: the agreement performing step of session-key computation simple form:
The first round: from " A " to " B ": { sid, I A, A, CERT A, X=g x(mod p) };
Wherein x is from Z qMiddle picked at random; X is called the DH key composition of " A "; User " A " calculating K A=B X+da, session key K=H K(K A) and deletion (x, K A); Wherein, d=H (I A‖ A ‖ I B‖ B ‖ X);
After receiving the information of " A " transmission, identity, PKI and the certificate of " B " checking " A ", X are Z * pIn rank be non-1 element of q; Checking is unsuccessful, and " B " terminate agreement is carried out; Otherwise, user " B " calculating K B=X bA Db, session key K=H K(K B) and deletion (y, K B);
Agreement-3: agreement performing step with identity and key confirmation function:
The first round, from " A " to " B ": { sid, I A, A, CERT A, X=g x(mod p) };
Wherein x is from Z qMiddle picked at random; X is called the DH key composition of " A "; After receiving the information of " A " transmission, identity, PKI and the certificate of " B " checking " A ", X are Z * pIn element; Checking is unsuccessful, and " B " refusal continues to carry on an agreement; Otherwise, enter next round;
Second takes turns, from " B " to " A ": { sid, I B, B, CERT B, Y=g y, MAC Km(0) };
Y is from Z qMiddle picked at random and Y are called the DH key composition of " B "; User " B " calculating K B=(XA d) Ty+tcbAnd inspection K B≠ 1, calculate the MAC-key K m=H K(K B, 0) and MAC Km(0); At last, user " B " session key K=H K(K B, 1), delete (y, K B) and enter next round; Here H K(K B, 0) and that represent is H K(K B‖ 0), K=H K(K B, 1) and that represent is K=H K(K B‖ 1);
After receiving the information of " B " transmission, identity, PKI and the certificate of " A " checking " B ", Y are Z * pIn element; Checking is unsuccessful, " A " termination protocol; Be proved to be successful user " A " calculating K A=(YB c) Tx+tdaAnd inspection K A≠ 1, calculate the MAC-key K m=H K(K A, 0) and verify MAC Km(0) correctness; Checking is unsuccessful, and user " A " terminate agreement is carried out; Be proved to be successful user " A " session key K=H K(K A, 1), calculate MAC Km(1), deletes (x, K A, K m) and enter next round;
Third round, from " A " to " B ": { sid, MAC Km(1) };
After receiving the information of " A " transmission, " B " verifies MAC Km(1) correctness; Checking is unsuccessful, and user " A " terminate agreement is carried out, otherwise, delete K mAnd protocol finishes is carried out.
3. the concurrent of PKI promise according to claim 2 can not be forged safe MQV IKE, it is characterized in that agreement-1, agreement-2 and agreement-3 have following variant:
(1). in agreement-1 and agreement-3, other method to set up of function d and c: d=H (I A, A, I B, B, X, Y), c=H (d); Perhaps, d=H (I A, A, X, I B), c=H (I B, B, Y, I A); Perhaps, d=H (A, X, Y, I B), c=H (B, Y, X, I A); No matter be which kind of method to set up, wherein: user's " A " PKI A must be as the input of function d, and user's " B " PKI B must be as the input of function c;
With (I A, A) be changed to user's " A " public key certificate Cert AThe Ha Xi value, with (I B, B) be changed to user's " B " public key certificate Cert BThe Ha Xi value; Perhaps, with (I A, A, I B, B) be changed to Cert A, Cert BAnd the Ha Xi value of the series connection of other cookie, random number and IP address information that before the agreement operation, is exchanged or series connection information; With the part of sid as function c and d input;
(2). in agreement-1 and agreement-3, the t in session key and the MAC-cipher key calculation is saved; That is: K A=(YB c) X+da, K B=(XA d) Y+cbAt this moment, user " B " must check that X is Z * pIn rank be non-1 element of q, user " A " must check that Y be Z * pIn rank be non-1 element of q;
(3). in the session-key computation and MAC-cipher key calculation of agreement-1, agreement-2 and agreement-3, with c and d as H KThe part of input;
(4). with hash function H and H KInput in the order of element change.
CNA200810032507XA 2007-10-23 2008-01-10 Public key promising concurrent MQV cryptographic key exchange protocol without being able to forging safety Pending CN101247224A (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CNA200810032507XA CN101247224A (en) 2008-01-10 2008-01-10 Public key promising concurrent MQV cryptographic key exchange protocol without being able to forging safety
PCT/CN2008/072794 WO2009056048A1 (en) 2007-10-23 2008-10-23 Method and structure for self-sealed joint proof-of-knowledge and diffie-hellman key-exchange protocols
CN2008801222327A CN102017510B (en) 2007-10-23 2008-10-23 Method and structure for self-sealed joint proof-of-knowledge and Diffie-Hellman key-exchange protocols
US12/766,431 US8464060B2 (en) 2007-10-23 2010-04-23 Method and structure for self-sealed joint proof-of-knowledge and diffie-hellman key-exchange protocols
HK11110843.5A HK1156750A1 (en) 2007-10-23 2011-10-12 Method and structure for self-sealed joint proof-of-knowledge and diffie- hellman key-exchange protocols

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA200810032507XA CN101247224A (en) 2008-01-10 2008-01-10 Public key promising concurrent MQV cryptographic key exchange protocol without being able to forging safety

Publications (1)

Publication Number Publication Date
CN101247224A true CN101247224A (en) 2008-08-20

Family

ID=39947456

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA200810032507XA Pending CN101247224A (en) 2007-10-23 2008-01-10 Public key promising concurrent MQV cryptographic key exchange protocol without being able to forging safety

Country Status (1)

Country Link
CN (1) CN101247224A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009056048A1 (en) * 2007-10-23 2009-05-07 Yao Andrew C Method and structure for self-sealed joint proof-of-knowledge and diffie-hellman key-exchange protocols

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009056048A1 (en) * 2007-10-23 2009-05-07 Yao Andrew C Method and structure for self-sealed joint proof-of-knowledge and diffie-hellman key-exchange protocols
US8464060B2 (en) 2007-10-23 2013-06-11 Andrew C. Yao Method and structure for self-sealed joint proof-of-knowledge and diffie-hellman key-exchange protocols

Similar Documents

Publication Publication Date Title
CN102017510B (en) Method and structure for self-sealed joint proof-of-knowledge and Diffie-Hellman key-exchange protocols
KR102024531B1 (en) Apparatus and method for anonymity-based authentication and key agreement with message binding properties
US7908482B2 (en) Key confirmed authenticated key exchange with derived ephemeral keys
US7694141B2 (en) Extended authenticated key exchange with key confirmation
CN101247394A (en) Improved cryptographic key exchanging protocol
EP2120393A1 (en) Shared secret verification method
CN101626364A (en) Method for authentication for resisting secrete data disclosure and key exchange based on passwords
CN101175076B (en) High-efficiency, deniable, safety-unforgeable cryptographic key exchanging method of on-line computation
CN111447065B (en) Active and safe SM2 digital signature two-party generation method
CN101060530A (en) Repudiation Internet key exchange protocol
CN110278088A (en) A kind of SM2 collaboration endorsement method
CN102883325B (en) Authentication server, mobile terminal and end to end authentication communication channel method for building up
CN1260664C (en) Method for exchanging pins between users&#39; computers
CN101116281A (en) Challenge-response signatures and secure diffie-hellman protocols
WO2022116176A1 (en) Method and device for generating digital signature, and server
CN101217549A (en) A SSH transport layer certification protocol of high efficiency, non-forging and without digital signature
CN101247224A (en) Public key promising concurrent MQV cryptographic key exchange protocol without being able to forging safety
CN101645870B (en) Method for exchanging secret key effectively and fairly
Bohli et al. Deniable group key agreement
CN101938491B (en) Password-based three-party key exchange method
Park et al. Classification of authentication protocols: A practical approach
US9054861B2 (en) Enhanced key agreement and transport protocol
Youn et al. Signcryption with fast online signing and short signcryptext for secure and private mobile communication
Ni et al. A pairing-free identity-based authenticated key agreement mechanism for sip
Martínez-Peláez et al. Efficient and secure dynamic ID-based remote user authentication scheme with session key agreement for multi-server environment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20080820