CA2579259C

Key agreement and transport protocol with implicit signatures

Abstract

A key establishment protocol between a pair of correspondents includes the generation by each correspondent of respective signatures. The signatures are derived from information that is private to the correspondent and information that is public. After exchange of signatures, the integrity of exchange messages can be verified by extracting the public information contained in the signature and comparing it with information used to generate the signature. A common session key may then be generated from the public and private information of respective ones of the correspondents.

CA2579259C, drawing sheet 1
Sheet 1 of 3

Term

Term ended

Expired 16 April 2016, 10.4 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

80 claims: 29 independent, 51 dependent

  1. 1
    CA 02579259 2009-10-09 -15WE CLAIM:1. A method of transporting a session key K between a first correspondent A and a second correspondent Bina public key communication system to permit exchange of information therebetween over a communication channel, said first correspondent A having a private key a and a corresponding public key pA derived from a generator a and said private key a, and said second correspondent B having a private key b and a corresponding public key pB derived from said generator a and said private key b, said method comprising the steps of: (a) said first correspondent A selecting a random integer x and computing a value rA from said generator a and said random integer x;(b) said first correspondent A generating a signature sA from said random integer x, said value rA, and said private key a;(c) said first correspondent A computing a session key K using said random integer x and public information pertaining to said second correspondent B;(d) said first correspondent A forwarding to said second correspondent B a message including said value rA;and (e) said second correspondent B computing said session key K from said value rA and from information private to said second correspondent B, said information private to said second correspondent B being related to said public information pertaining to said second correspondent B.
  2. 4
    The method of any one of claims 1 to 3 wherein said value rA is computed by exponentiating a function /(a), including said generator a, to a power x. 21922475.2 CA 02579259 2009-10-09
  3. 6
    The method of any one of claims 1 to 5 wherein said signature sA is of the form x-rAa mod (p-1).
  4. 7
    The method of any one of claims 1 to 6 wherein said public information pertaining to said second correspondent B is said public key pB of said second correspondent B, wherein said information private to said second correspondent B is said private key b of said second correspondent B, and wherein said public information pertaining to said first correspondent A is said public key pA of said first correspondent A.
  5. 8
    The method of any one of claims 1 to 7 wherein said session key K computed by said first correspondent A is of the form (pB)x.
  6. 9
    The method of any one of claims 1 to 8 wherein said session key K computed by said second correspondent B is of the form (rA)b.
  7. 11
    The method of any one of claims 1 to 10 wherein said second correspondent B forwards a random bit string k to said first correspondent A prior to enciphering of a message with said session key K, said bit string k being XOR’d with said session key K to establish an ephemeral key (k + K) to encrypt said message.
  8. 12
    A method of transporting a session key K from a first correspondent A to a second correspondent B in a public key communication system to permit exchange of information therebetween over a communication channel, said first correspondent A having a private key a and a public key pA derived from a generator a and said private key a, said method comprising the steps of:(a) said first correspondent A selecting a random integer x and computing a value rA from said generator a and said random integer x;21922475.2 CA 02579259 2009-10-09 (b) said first correspondent A generating a signature sA from said random integer x, said value rA, and said private key a;(c) said first correspondent A computing a session key K using said random integer x and public information pertaining to said second correspondent B;and (d) said first correspondent A forwarding to said second correspondent B a message including said value rA;said session key K being computable by said second correspondent B using said value rA and information private to said second correspondent B.
  9. 16
    The method of any one of claims 12 to 15 wherein said signature sA is of the form x-rAa mod (p-1).
  10. 17
    The method of any one of claims 12 to 16 wherein said public information pertaining to said second correspondent B is a public key pB of said second correspondent B.
  11. 18
    The method of any one of claims 12 to 17 wherein said session key K computed by said first correspondent A is of the form (pB)x.
  12. 19
    The method of any one of claims 12 to 18 wherein said first correspondent A receives a random bit string k from said second correspondent B prior to enciphering of a message with said session key K, said bit string k being XOR'd with said session key K to establish an ephemeral key (k + K) to encrypt said message.
  13. 20
    A method of transporting a session key K from a first correspondents A to a second correspondent B in a public key communication system to permit exchange of information therebetween over a communication channel, said second correspondent B having a private 21922475.2 CA 02579259 2009-10-09 -18key b and a public pB derived from a generator a and said private key b, said method comprising the steps of:(a) said second correspondent B receiving from said first correspondent A a message including a value rA, the value rA having been computed by said first correspondent A using a random integer x and said generator a ;and (b) said second correspondent B computing a session key K from said value rA and from information private to said second correspondent B, said information private to said second correspondent B being related to public information pertaining to said second correspondent B, said session key K also computable by said first correspondent A.
  14. 23
    The method of any one of claims 20 to 22 wherein said value rA was computed by said first correspondent A by exponentiating a function f(a\ including said generator cr, to a power x.
  15. 27
    The method of any one of claims 20 to 26 wherein said session key K computed by said second correspondent B is of the form (rA)b.
  16. 29
    The method of any one of claims 20 to 28 wherein said second correspondent B forwards a random bit string k to said first correspondent A prior to said first correspondent A enciphering a message with said session key K, said bit string k being XOR’d with said session key K at said first correspondent A to establish an ephemeral key (k + K) to encrypt said message.
  17. 30
    A cryptographic system comprising a first correspondent A and a second correspondent B, both configured to perform the method steps of any one of claims 1 to 11.
  18. 31
    A device comprising a first correspondent A configured to perform the method steps of any one of claims 12 to 19.
  19. 32
    A device comprising a second correspondent B configured to perform the method steps of any one of claims 20 to 29.
  20. 33
    A computer readable medium having stored thereon computer readable instructions for performing the method of any one of claims 1 to 29.
  21. 34
    A data communication system comprising a first correspondent A and a second correspondent B, said first correspondent A having a private key a and a corresponding public key pA derived from a generator a and said private key a, and said second correspondent B having a private key b and a corresponding public key pB derived from said generator a and said private key b, said data communication system being configured for authenticating said first correspondent A and said second correspondent B to permit exchange of information therebetween by:21922475.2 CA 02579259 2009-10-09 i) said first correspondent A selecting a first random integer x and exponentiating a first function f{a), including said generator a , to a power g(x) to provide a first exponentiated function f(a)g(x) ;ii) said first correspondent A generating a first signature sA from said first random integer x and said first exponentiated function /(a)sW ;iii) said first correspondent A forwarding to said second correspondent B a first message including said first exponentiated function f(a)g(x> and said first signature sA;iv) said second correspondent B selecting a second random integer y and exponentiating a second function f'(a), including said generator a , to a power g(y) to provide a second exponentiated function f'(a)g, and generating a second signature sB obtained from said second integer y and said second exponentiated function /'(cr)s(?) ;v) said second correspondent B forwarding a second message to said first correspondent A including said second exponentiated function /'(α)8ί ι') and said second signature sB;vi) said first correspondent A verifying the integrity of said second message by computing from said second signature sB and said second exponentiated function f'(a)g(y} in said second message a value equivalent to said second exponentiated function f'(a)g(y), and comparing said value and said second exponentiated function transmitted thereto;vii) said second correspondent B verifying the integrity of said first message by computing from said first signature sA and said first exponentiated function f(a)s(x) in said first message a second value equivalent to said first exponentiated function /(a)gW, and comparing said second value and said first exponentiated function f(g)gM transmitted thereto;and viii) said first correspondent A constructing a session key K by exponentiating information made public by said second correspondent B with said first random integer x, and said second correspondent B constructing said session key K by exponentiation information made public by said first correspondent A with said second random integer y.
  22. 51
    A computer readable medium having stored thereon computer readable instructions for performing a method of authenticating a first correspondent A and a second correspondent B, said first correspondent A having a private key a and a corresponding public key pA derived from a generator a and said private key a, and said second correspondent B having a private key b and a corresponding public key pB derived from said generator a and said private key b, said computer readable instructions comprising instructions for:21922475.2 CA 02579259 2009-10-09 i) said first correspondent A selecting a first random integer x and exponentiating a first function /(rz), including said generator a , to a power g(x) to provide a first exponentiated function /(<z)s(x) ;ii) said first correspondent A generating a first signature sA from said first random integer x and said first exponentiated function /(a)gW ;iii) said first correspondent A forwarding to said second correspondent B a first message including said first exponentiated function /(a)g(x) and said first signature sA;iv) said second correspondent B selecting a second random integer y and exponentiating a second function /'(a), including said generator a , to a power g(y) to provide a second exponentiated function , and generating a second signature sB obtained from said second integer y and said second exponentiated function f'(a)g{y} ;v) said second correspondent B forwarding a second message to said first correspondent A including said second exponentiated function and said second signature sB;vi) said first correspondent A verifying the integrity of said second message by computing from said second signature sB and said second exponentiated function in said second message a value equivalent to said second exponentiated function f'(a)gW, and comparing said value and said second exponentiated function f'(a)s(y} transmitted thereto;vii) said second correspondent B verifying the integrity of said first message by computing from said first signature sA and said first exponentiated function f(a)g{x} in said first message a second value equivalent to said first exponentiated function f(a)g{x}, and comparing said second value and said first exponentiated function /(a)g(x) transmitted thereto;and viii) said first correspondent A constructing a session key K by exponentiating information made public by said second correspondent B with said first random integer x, and said second correspondent B constructing said session key K by exponentiation information made public by said first correspondent A with said second random integer y.
  23. 68
    A method of authenticating a first correspondent A and a second correspondent B, said first correspondent A having a private key a and a corresponding public key pA derived from a generator a and said private key a, and said second correspondent B having a private key b and a corresponding public key pB derived from said generator a and said private key b\ said method comprising the steps of:21922475.2 CA 02579259 2009-10-09 i) said first correspondent A selecting a first random integer x and exponentiating a first function /(a), including said generator a , to a power g(x) to provide a first exponentiated function f(a)s(x) ;ii) said first correspondent A generating a first signature sA from said first random integer x and said first exponentiated function /(a)gW ;iii) said first correspondent A forwarding to said second correspondent B a first message including said first exponentiated function f(a)s{x} and said first signature sA;iv) said first correspondent A receiving from said second correspondent B a second message including a second exponentiated function f'(af(y} and a second signature sB, said second exponentiated function f' (a)g(>) having been computed by said second correspondent B using a second random integer y and by exponentiating a second function including said generator a , to a power g(y), and said second signature sB having been obtained by said second correspondent B from said second random integer y and said second exponentiated function /'(a)g(y);v) said first correspondent A verifying the integrity of said second message by computing from said second signature sB and said second exponentiated function f(a)sM a value equivalent to said second exponentiated function f'(a)s(y} and comparing said value and said second exponentiated function /'(a)g(J,);and vii) said first correspondent A constructing a session key K by exponentiating information made public by said second correspondent B with said first random integer x, said session key K also being constructible by said second correspondent B.
  24. 72
    The method of any one of claims 68 to 71 wherein said first function f(a), including said generator a , is said generator a itself.
  25. 73
    The method of any one of claims 68 to 71 wherein said first function /(a), including said generator a , includes the public key pB of said second correspondent B.
  26. 74
    The method of any one of claims 68 to 73 wherein said first signature sA is generated by combining said first random integer x, said first exponentiated function /(α)8(Λ), and the private key a of said first correspondent A.
  27. 78
    The method of any one of claims 68 to 76 further comprising the steps of:(a) said first correspondent A selecting a third integer Χί and forwarding a value = a1' to said second correspondent B;(b) said first correspondent A receiving from said second correspondent B another value rB =ay> where yi is a fourth random integer selected by said second correspondent B;and (c) said first correspondent A computing a pair of keys k;,k2 equivalent to a’9' and ax,r' respectively, said session key K being generated by XORing k! and k2.
  28. 79
    A device comprising a correspondent A configured to perform the method steps of any one of claims 68 to 78. 21922475.2 CA 02579259 2009-10-09
  29. 80
    A computer readable medium having stored thereon instructions for performing the method of any one of claims 68 to 78. 21922475.2
Independent claims29