WO2016187690A1 - Key agreement protocol - Google Patents

Key agreement protocol Download PDF

Info

Publication number
WO2016187690A1
WO2016187690A1 PCT/CA2015/050477 CA2015050477W WO2016187690A1 WO 2016187690 A1 WO2016187690 A1 WO 2016187690A1 CA 2015050477 W CA2015050477 W CA 2015050477W WO 2016187690 A1 WO2016187690 A1 WO 2016187690A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
value
entity
protocol
session
Prior art date
Application number
PCT/CA2015/050477
Other languages
French (fr)
Inventor
Adrian Antipa
Original Assignee
Infosec Global Inc.
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 Infosec Global Inc. filed Critical Infosec Global Inc.
Priority to PCT/CA2015/050477 priority Critical patent/WO2016187690A1/en
Publication of WO2016187690A1 publication Critical patent/WO2016187690A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics

Definitions

  • the present invention relates to data communication systems and protocols utilized in such systems.
  • Data communication systems are used to exchange information between devices.
  • the information to be exchanged comprises data that is organized as strings of digital bits formatted so as to be recognizable by other devices and to permit the information to be processed and/or recovered.
  • the exchange of information may occur over a publically accessible network, such as a communication link between two devices, over a dedicated network within an organization, or may be between two devices within the same dedicated component, such as within a computer or point of sale device.
  • a publically accessible network such as a communication link between two devices
  • a dedicated network within an organization or may be between two devices within the same dedicated component, such as within a computer or point of sale device.
  • the devices may range from relatively large computer systems through to
  • telecommunication devices cellular phones, monitoring devices, sensors, electronic wallets and smart cards, and a wide variety of devices that are connected to transfer data between two or more of such devices.
  • a large number of communication protocols have been developed to allow the exchange of data between different devices.
  • the communication protocols permit the exchange of data in a robust manner, often with error correction and error detection functionality, and for the data to be directed to the intended recipient and recovered for further use.
  • symmetric key cryptosystems There are two main types of cryptosystems that implement the protocols, symmetric key cryptosystems and asymmetric or public key cryptosystems.
  • a symmetric key cryptosystem the devices exchanging information share a common key that is known only to the devices intended to share the information.
  • Symmetric key systems have the advantage that they are relatively fast and therefore able to process large quantities of data in a relatively short time, even with limited computing power.
  • the keys must be distributed in a secure manner to the different devices, which leads to increased overhead and vulnerability if the key is compromised.
  • Asymmetric or public key cryptosystems utilize a key pair, one of which is public and the other private, associated with each device.
  • the public key and private key are related by a "hard" mathematical problem so that even if the public key and the underlying problem are known, the private key cannot be recovered in a feasible time.
  • One such problem is the factoring of the product of two large primes, as utilized in RSA cryptosystems.
  • Another is the discrete log problem in a finite group.
  • a generator, a, of the underlying group is identified as a system parameter and a random integer, k, generated for use as a private key.
  • Different groups may be used in discrete log cryptosystems including the multiplicative group of a finite field, the group of integers in a finite cyclic group of order p, usually denoted Zp* and consisting of the integers 0 to p-1.
  • the elliptic curve group consists of pairs of elements, one of which is designated x and the other y, in a field that satisfy the equation of the chosen elliptic curve.
  • Other curves are used for different groups, as is well known.
  • Each such pair of elements is a point on the curve, and a generator of the group is designated as a point P.
  • the group operation is addition, so a private key k will have a corresponding public key f(kP).
  • Public key cryptosystems reduce the infrastructure necessary with symmetric key cryptosystems.
  • a device may generate an integer k, and generate the corresponding public key kP.
  • the public key is published so it is available to other devices.
  • the device may then use a suitable signature protocol to sign a message using the private key k and other devices can confirm the integrity of the message using the public key kP.
  • a device may encrypt a message to be sent to another device using the other devices public key. The message can then be recovered by the other device using the private key.
  • these protocols are computationally intensive, and therefore relatively slow, compared with symmetric cryptosystem protocols.
  • Public key cryptosystems may also be used to establish a key that is shared between two devices. In its simplest form, as proposed by Diffie-Hellman, each device sends a public key to the other device. Both devices then combine the received public key with their private key to obtain a shared key.
  • One device usually referred to as an entity (or correspondent), Alice, generates a private key k a and sends another device, or entity, Bob, the public key k a P.
  • entity or correspondent
  • Alice computes k a ' k b P and Bob computes k b ' k a P so they share a common key
  • the shared key may then be used in a symmetric key protocol. Neither Alice nor Bob may recover the private key of the other, and third parties cannot reconstruct the shared key.
  • Key establishment is the process by which two (or more) entities establish a shared secret key. The key is subsequently used to achieve some cryptographic goal such as confidentiality or data integrity.
  • key transport protocols in which a key is created by one entity and securely transmitted to the second entity
  • key agreement protocols in which both parties contribute information which jointly establish the shared secret key.
  • the present application is directed to key agreement protocols for the asymmetric (public-key) cryptosystems.
  • a key agreement protocol is said to provide implicit key authentication (of Bob to Alice) if entity Alice is assured that no other entity aside from a specifically identified second entity Bob can possibly learn the value of a particular secret key.
  • the property of implicit key authentication does not necessarily mean that Alice is assured of Bob actually possessing the key, but is assured that no one other than Bob possesses the key.
  • a key agreement protocol which provides implicit key authentication to both participating entities is called an authenticated key agreement (AK)protocol.
  • a key agreement protocol is said to provide key confirmation (of Bob to Alice) if entity A is assured that the second entity Bob actually has possession of a particular secret key. If both implicit key authentication and key confirmation (of Bob to Alice) are provided, then the key establishment protocol is said to provide explicit key authentication (of Bob to Alice).
  • a key agreement protocol which provides explicit key authentication to both participating entities is called an authenticated key agreement with key confirmation (AKC) protocol.
  • Entity A cannot be coerced into sharing a key with entity B without A's knowledge, i.e. when A believes the key is shared with some entity C ⁇ B, and B (correctly) believes the key is shared with A.
  • Desirable performance attributes of AK and AKC protocols include a minimal number of passes (the number of messages exchanged in a run of the protocol), low communication overhead (total number of bits transmitted), and low computation overhead.
  • Other attributes that may be desirable in some circumstances include role-symmetry (the messages transmitted between entities have the same structure), non-interactiveness (the messages transmitted between the two entities are independent of each other), and the non-reliance on encryption, hash functions (since these are notoriously hard to design), and timestamping (since it is difficult to implement securely in practice).
  • a key agreement protocol performed between a pair of entities communicating over a data communication system each of the entities having associated therewith a long term private key, a cryptographic corresponding long term public key generated using the long term private key, and an identity, the protocol comprising:
  • a cryptographic communication system comprising a pair of cryptographic correspondents configured to implement embodiments of the key agreement protocol.
  • a cryptographic correspondent device comprising a processor and a memory
  • the memory having stored thereon a long term private key
  • the device further having associated therewith a cryptographic corresponding long term public key generated using the long term private key, and an identity
  • the memory further having stored thereon computer instructions which when executed by the processor cause the processor to implement a key agreement protocol comprising: generating a session private key and cryptographic corresponding session public key; communicating over a data communication system to another cryptographic correspondent device the session public key; obtaining from the other cryptographic correspondent device its session public key; obtaining the identity of the both correspondents; generating a common value comprising combining the session public key of the correspondent, the session public key of the other correspondent and the identities of each correspondent; generating a secret value comprising multiplying the common value with the correspondent's session private key and summing the result with the long term private key; computing an ephemeral value comprising multiplying the session public key of the other correspondent and the common value, and summing the result with the long term private key; computing
  • the protocol combines session public keys of each entity and the identities of each entity to obtain a common value that binds the two entities. This is used by each entity to generate a respective secret value by combining the common value and both the session and long term private keys of the entity.
  • the secret value is used as an ephemeral private key.
  • the other entity computes an ephemeral public key corresponding to the secret value of the one entity, using the common value.
  • Each entity may then generate a shared secret from its ephemeral private key and the ephemeral public key of the other entity.
  • the shared secret is used as an input to a key derivation function to obtain a shared key.
  • the protocol is implemented in an elliptic curve cryptosystem and the combination of the public keys is performed by point addition.
  • the identity of the entities is obtained from a cryptographic certificate issued by a trusted party.
  • each run will generate a new secret value, and with proper selection of the parameters having regard to normal cryptographic practices, the desirable attributes will be attained.
  • Figure 1 is a schematic representation of a data communication system
  • Figure 2 is a representation of a device used in the data communication system of Figure 1 ;
  • Figure 3 is a flow chart showing the protocol implemented between a pair of devices shown in Figure 1.
  • a data communication system 10 includes a plurality of devices 12 interconnected by communication links 14.
  • the devices 12 may be of any known type including a computer 12a, a server 12b, a cellphone 12c, ATM 12d, and smart card 12e.
  • the communication links 14 may be conventional fixed telephone lines, wireless connections implemented between the devices 12, near field communication connections such as Blue tooth or other conventional form of communication.
  • the devices 12 will differ according to their intended purpose, but typically will include a communication module 20 (figure 2) for communication to the links 14.
  • a memory 22 provides a storage medium for non-transient instructions to implement protocols and to store data as required. The instructions are executed by a cryptographic processor (30).
  • An arithmetic logic unit (ALU) 26 is provided to perform the arithmetic operations instruction by the memory 22 using data stored in the memories 22, 24.
  • a random or pseudo random number generator 28 is also incorporated to generate bit strings representing random numbers in a cryptographically secure manner.
  • the device 12 illustrated in Figure 2 is highly schematic and representative of a conventional device used in a data communication system.
  • the memory 22 stores system parameters for the cryptosystem to be implemented and a set of computer readable instructions to implement the required protocol.
  • elliptic curve domain parameters consist of six quantities q, a, b, P, n, and h, which are:
  • the field size q The elliptic curve coefficients a and b
  • the cofactor h which is the number such that hn is the number of points on the elliptic curve.
  • the parameters will be represented as bit strings, and the representation of the base point G as a pair of bit strings, each representing an element of the underlying field. As is conventional, one of those strings may be truncated as the full representation may be recovered from the other co-ordinate and the truncated representation.
  • the secure memory module 24 contains a bit string representing a long term private key d, and the corresponding public key Q.
  • the key Q dP.
  • Secure memory 24 will also include an identification ID of the device 12. Conveniently this will be a certificate issued by a trusted authority to permit third party verification of the identity.
  • a convenient form of certificate is an ECQV certificate, as set out in the SEC 4 standard.
  • Ephemeral values computed by the ALU may also be stored within the secure module 24 if their value is intended to be secret.
  • the key agreement protocol is shown in figure 3, performed between a pair of devices referred to as the entity Alice and the entity Bob. Values associated with Alice will be denoted by the suffix A and those of Bob by the suffix B. Alice has a long term private key d A and corresponding public key Q A stored in the secure memory module 24. Similarly Bob has a private key d B and corresponding public key Q B stored in his secure memory module 24.
  • Entities Alice and Bob want to share a common key, and therefore implement through the instructions stored in the memory 22, the protocol shown in Figure 3.
  • Alice generates a random integer using the RNG 28 and stores the integer value a as session private key in the secure module 24.
  • Alice's ALU 26 computes, at 102, a corresponding session public key aP which she sends over a communication link 16 to Bob.
  • the session public key aP is a representation of a point on the curve and has a pair of bit strings, each representing an element in the underlying field.
  • the x co-ordinate is in that situation representative of the public key aP.
  • the y co-ordinate may be recovered from the x co-ordinate if required.
  • Point compression techniques in which an indication of the value of the y coordinate is sent with the x co-ordinate, may also be used if preferred to reduce the bandwidth in transmission.
  • the combination of the public keys is performed by point addition in the Jacobian of the hyperelliptic curve.
  • Both Alice and Bob obtain copies of the others identity I D (106, 206). This may be done prior to the implementation of the protocol or the certificate may be sent with the session public keys. The certificate may be verified by the recipient if required.
  • H a cryptographically secure hash function, such as a SHA2 hash function.
  • H a cryptographically secure hash function, such as a SHA2 hash function.
  • the value c is stored in the memory 22.
  • the common value c binds Alice and Bob.
  • Alice and Bob each have a component computed from private information and the common value and a component computed from public information. These can be combined to provide a shared secret.
  • Alice has computed s B P from public information and has stored the value s A.
  • the protocol described above therefore establishes a shared secret K between two entities.
  • a key derivation function should then be used to derive a secret key from the shared secret. This is necessary because the shared secret K may have some weak bit - bits of information about K that can be predicted correctly with non-negligible advantage.
  • One way to derive a key from the shared secret K is to apply a one-way hash function such as SHA-1 to K.
  • a one-way hash function such as SHA-1
  • other key derivation functions may be used as detailed more fully at Chapter XX of the Handbook of Applied Cryptography, the contents of which are incorporated by reference.
  • the key agreement protocol may be implemented using the following technique:-
  • Bob generates a random integer b, (0 ⁇ b ⁇ n).
  • the shared secret may be used as the input to a key derivation function, if required.
  • K s A ' s B P, ignoring the cofactor h. This is useful when the value of h is small, e.g. 1 , or there is resistance against the small subgroup attack.

Abstract

A key agreement protocol between a pair of entities wherein the entities have a long term private key, a long term public key generated using said private key and a generator point, and an identity. The protocol comprises: generating a session private key and corresponding session public key for each entity; communicating to the other entity, each entity's session public key; obtaining the identifier of the both entities; generating a common value comprising the session public key of both entities and the identities of each entity. The protocol further comprises generating for each entity: a respective secret value comprising combining the common value with the entity's session private key and long term private key; an ephemeral value comprising combining the session public key of the other entity, the common value and the long term public key of the other entity; a shared secret from the entity's secret value and the ephemeral value.

Description

KEY AGREEMENT PROTOCOL
TECHNICAL FIELD
[0001] The present invention relates to data communication systems and protocols utilized in such systems.
BACKGROUND
[0002] Data communication systems are used to exchange information between devices. The information to be exchanged comprises data that is organized as strings of digital bits formatted so as to be recognizable by other devices and to permit the information to be processed and/or recovered.
[0003] The exchange of information may occur over a publically accessible network, such as a communication link between two devices, over a dedicated network within an organization, or may be between two devices within the same dedicated component, such as within a computer or point of sale device.
[0004] The devices may range from relatively large computer systems through to
telecommunication devices, cellular phones, monitoring devices, sensors, electronic wallets and smart cards, and a wide variety of devices that are connected to transfer data between two or more of such devices.
[0005] A large number of communication protocols have been developed to allow the exchange of data between different devices. The communication protocols permit the exchange of data in a robust manner, often with error correction and error detection functionality, and for the data to be directed to the intended recipient and recovered for further use.
[0006] Because the data may be accessible to other devices, it is vulnerable to interception and observation or manipulation. The sensitive nature of the information requires that steps are taken to secure the information and ensure its integrity.
[0007] A number of techniques collectively referred to as encryption protocols and
authentication protocols have been developed to provide the required attributes and ensure security and/or integrity in the exchange of information. These techniques utilize a key that is combined with the data.
[0008] There are two main types of cryptosystems that implement the protocols, symmetric key cryptosystems and asymmetric or public key cryptosystems. In a symmetric key cryptosystem, the devices exchanging information share a common key that is known only to the devices intended to share the information. Symmetric key systems have the advantage that they are relatively fast and therefore able to process large quantities of data in a relatively short time, even with limited computing power. However, the keys must be distributed in a secure manner to the different devices, which leads to increased overhead and vulnerability if the key is compromised.
[0009] Asymmetric or public key cryptosystems utilize a key pair, one of which is public and the other private, associated with each device. The public key and private key are related by a "hard" mathematical problem so that even if the public key and the underlying problem are known, the private key cannot be recovered in a feasible time. One such problem is the factoring of the product of two large primes, as utilized in RSA cryptosystems. Another is the discrete log problem in a finite group. A generator, a, of the underlying group is identified as a system parameter and a random integer, k, generated for use as a private key. To obtain a public key, K, a k-fold group operation is performed so that K=f(a,k).
[0010] Different groups may be used in discrete log cryptosystems including the multiplicative group of a finite field, the group of integers in a finite cyclic group of order p, usually denoted Zp* and consisting of the integers 0 to p-1. The group operation is multiplication so that K=f(ak).
[001 1] Another group that is used for enhanced security is an elliptic curve group. The elliptic curve group consists of pairs of elements, one of which is designated x and the other y, in a field that satisfy the equation of the chosen elliptic curve. For an elliptic curve group of order p, the elliptic curve would generally be defined by the relationship y2 mod p = x3 + ax + b mod p. Other curves are used for different groups, as is well known. Each such pair of elements is a point on the curve, and a generator of the group is designated as a point P. The group operation is addition, so a private key k will have a corresponding public key f(kP).
[0012] Public key cryptosystems reduce the infrastructure necessary with symmetric key cryptosystems. A device may generate an integer k, and generate the corresponding public key kP. The public key is published so it is available to other devices. The device may then use a suitable signature protocol to sign a message using the private key k and other devices can confirm the integrity of the message using the public key kP.
[0013] Similarly, a device may encrypt a message to be sent to another device using the other devices public key. The message can then be recovered by the other device using the private key. However, these protocols are computationally intensive, and therefore relatively slow, compared with symmetric cryptosystem protocols. [0014] Public key cryptosystems may also be used to establish a key that is shared between two devices. In its simplest form, as proposed by Diffie-Hellman, each device sends a public key to the other device. Both devices then combine the received public key with their private key to obtain a shared key.
[0015] One device, usually referred to as an entity (or correspondent), Alice, generates a private key ka and sends another device, or entity, Bob, the public key kaP.
[0016] Bob generates a private key kb and sends Alice the public key kbP
[0017] Alice computes ka ' kbP and Bob computes kb ' kaP so they share a common key
K=kakbP=kbkaP. The shared key may then be used in a symmetric key protocol. Neither Alice nor Bob may recover the private key of the other, and third parties cannot reconstruct the shared key.
[0018] In order to ensure integrity of the shared key, and to rebut attacks that have been developed to recover or substitute the shared key and/or the private keys within the shared key, key establishment protocols have been developed.
[0019] Key establishment is the process by which two (or more) entities establish a shared secret key. The key is subsequently used to achieve some cryptographic goal such as confidentiality or data integrity.
[0020] Broadly speaking, there are two kinds of key establishment protocols: key transport protocols in which a key is created by one entity and securely transmitted to the second entity, and key agreement protocols in which both parties contribute information which jointly establish the shared secret key. The present application is directed to key agreement protocols for the asymmetric (public-key) cryptosystems.
[0021] If Alice and Bob are two honest entities, i.e., legitimate entities who execute the steps of a protocol correctly, then informally speaking, a key agreement protocol is said to provide implicit key authentication (of Bob to Alice) if entity Alice is assured that no other entity aside from a specifically identified second entity Bob can possibly learn the value of a particular secret key. The property of implicit key authentication does not necessarily mean that Alice is assured of Bob actually possessing the key, but is assured that no one other than Bob possesses the key. A key agreement protocol which provides implicit key authentication to both participating entities is called an authenticated key agreement (AK)protocol. [0022] Informally speaking, a key agreement protocol is said to provide key confirmation (of Bob to Alice) if entity A is assured that the second entity Bob actually has possession of a particular secret key. If both implicit key authentication and key confirmation (of Bob to Alice) are provided, then the key establishment protocol is said to provide explicit key authentication (of Bob to Alice). A key agreement protocol which provides explicit key authentication to both participating entities is called an authenticated key agreement with key confirmation (AKC) protocol. An extensive survey on key establishment is provided at Chapter 12 of Menezes, van Oorshot and Vanstone's Handbook of Applied Cryptography, the contents of which are incorporated by reference.
[0023] Extreme care must be exercised when separating key confirmation from implicit key authentication. If an AK protocol which does not offer key confirmation is used, then, as pointed out in the 1997 paper by S. Blake-Wilson, D. Johnson, and A. Menezes entitled "Key agreement protocols and their security analysis", it is desirable that the agreed key be confirmed prior to cryptographic use. This can be done in a variety of ways. For example, if the key is to be subsequently used to achieve confidentiality, then encryption with the key can begin on some (carefully chosen) known data. Other systems may provide key confirmation during a "real-time" telephone conversation. Separating key confirmation from implicit key authentication is sometimes desirable because it permits flexibility in how a particular implementation chooses to achieve key confirmation, and thus moves the burden of key confirmation from the
establishment mechanism to the application.
[0024] Numerous Diffie-Hellman-based AK and AKC protocols have been proposed over the years; however, many have subsequently been found to have security flaws. The main problems were that appropriate threat models and the goals of secure AK and AKC protocols lacked a formal definition. Blake-Wilson, Johnson and Menezes, adapting earlier work of Bellare and Rogaway in the symmetric setting, provided a formal model of distributed computing and rigorous definitions of the goals of secure AK and AKC protocols within this model. Concrete AK and AKC protocols were proposed, and proven secure within this framework in the random oracle model.
[0025] It is expected that a secure protocol should be able to withstand both passive attacks (where an adversary attempts to prevent a protocol from achieving its goals by merely observing honest entities carrying out the protocol) and active attacks (where an adversary additionally subverts the communications by injecting, deleting, altering or replaying messages). [0026] In addition to implicit key authentication and key confirmation, a number of desirable security attributes of AK and AKC protocols have been identified:
1. known-key security. Each run of a key agreement protocol between A and B should produce a unique secret key; such keys are called session keys. A protocol should still achieve its goal in the face of an adversary who has learned some other session keys.
2. (perfect) forward secrecy. If long-term keys of one or more entities are
compromised, the secrecy of previous session keys established by honest entities are not affected.
3. key-compromise impersonation. Suppose A's long-term key is disclosed. Clearly an adversary that knows this value can now impersonate A, since it is precisely this value that identifies A. However, it may be desirable that this loss does not enable an adversary to impersonate other entities to A.
4. unknown key-share. Entity A cannot be coerced into sharing a key with entity B without A's knowledge, i.e. when A believes the key is shared with some entity C ≠ B, and B (correctly) believes the key is shared with A.
5. key control. Neither entity should be able to force the session key to a
preselected value.
[0027] Desirable performance attributes of AK and AKC protocols include a minimal number of passes (the number of messages exchanged in a run of the protocol), low communication overhead (total number of bits transmitted), and low computation overhead. Other attributes that may be desirable in some circumstances include role-symmetry (the messages transmitted between entities have the same structure), non-interactiveness (the messages transmitted between the two entities are independent of each other), and the non-reliance on encryption, hash functions (since these are notoriously hard to design), and timestamping (since it is difficult to implement securely in practice).
[0028] It is therefore an object of the present invention to provide a key agreement protocol in which the above disadvantages are obviated or mitigated and attainment of the desirable attributes is facilitated.
SUMMARY [0029] In one aspect a key agreement protocol performed between a pair of entities communicating over a data communication system is provided, each of the entities having associated therewith a long term private key, a cryptographic corresponding long term public key generated using the long term private key, and an identity, the protocol comprising:
generating for each entity a respective session private key and cryptographic corresponding session public key; communicating to the other entity each entity's session public key; obtaining at each entity the identity of the both entities; generating a common value comprising combining at each entity the session public key of the entity, the session public key of the other entity and the identities of each entity; generating for each entity a respective secret value comprising multiplying the common value with the entity's session private key and summing the result with the entity's long term private key; computing at each entity an ephemeral value comprising multiplying the session public key of the other entity with the common value and summing the result with the long term public key of the other entity; and generating at each entity a shared secret by combining the entity's secret value and the ephemeral value.
[0030] In another aspect, a cryptographic communication system is provided, the system comprising a pair of cryptographic correspondents configured to implement embodiments of the key agreement protocol.
[0031] In a further aspect, a cryptographic correspondent device comprising a processor and a memory is provided, the memory having stored thereon a long term private key, the device further having associated therewith a cryptographic corresponding long term public key generated using the long term private key, and an identity, the memory further having stored thereon computer instructions which when executed by the processor cause the processor to implement a key agreement protocol comprising: generating a session private key and cryptographic corresponding session public key; communicating over a data communication system to another cryptographic correspondent device the session public key; obtaining from the other cryptographic correspondent device its session public key; obtaining the identity of the both correspondents; generating a common value comprising combining the session public key of the correspondent, the session public key of the other correspondent and the identities of each correspondent; generating a secret value comprising multiplying the common value with the correspondent's session private key and summing the result with the long term private key; computing an ephemeral value comprising multiplying the session public key of the other correspondent and the common value, and summing the result with the long term public key of the other correspondent; and generating a shared secret from the correspondent's secret value and the ephemeral value.
[0032] In general terms, the protocol combines session public keys of each entity and the identities of each entity to obtain a common value that binds the two entities. This is used by each entity to generate a respective secret value by combining the common value and both the session and long term private keys of the entity. The secret value is used as an ephemeral private key. The other entity computes an ephemeral public key corresponding to the secret value of the one entity, using the common value. Each entity may then generate a shared secret from its ephemeral private key and the ephemeral public key of the other entity.
[0033] Preferably, the shared secret is used as an input to a key derivation function to obtain a shared key.
[0034] Preferably also the protocol is implemented in an elliptic curve cryptosystem and the combination of the public keys is performed by point addition.
[0035] As a further preference, the identity of the entities is obtained from a cryptographic certificate issued by a trusted party.
[0036] By binding the entities as described above, each run will generate a new secret value, and with proper selection of the parameters having regard to normal cryptographic practices, the desirable attributes will be attained.
DESCRIPTION OF THE DRAWINGS
[0037] An embodiment of the present invention will now be described by way of example only with reference to the accompanying drawings, in which:
[0038] Figure 1 is a schematic representation of a data communication system;
[0039] Figure 2 is a representation of a device used in the data communication system of Figure 1 ; and
[0040] Figure 3 is a flow chart showing the protocol implemented between a pair of devices shown in Figure 1.
DETAILED DESCRIPTION
[0041] As described below, an efficient two-pass AK protocol is proposed which is based on Diffie-Hellman key agreement and has many of the desirable security and performance attributes discussed in the 1997 paper by S. Blake-Wilson, D. Johnson, and A. Menezes entitled "Key agreement protocols and their security analysis".
[0042] The protocol described below has been described in the setting of the group of points on an elliptic curve defined over a finite field. However, it can be easily modified to work in any finite group in which the discrete logarithm problem appears intractable. Suitable choices include the multiplicative group of a finite field, subgroups of Z*n, where n is a composite integer, and non-trivial subgroups of Z*p of prime order q. Elliptic curve groups are advantageous because they offer equivalent security as the other groups but with smaller key sizes and faster computation times.
[0043] Referring therefore to figure 1 , a data communication system 10 includes a plurality of devices 12 interconnected by communication links 14. The devices 12 may be of any known type including a computer 12a, a server 12b, a cellphone 12c, ATM 12d, and smart card 12e. The communication links 14 may be conventional fixed telephone lines, wireless connections implemented between the devices 12, near field communication connections such as Blue tooth or other conventional form of communication.
[0044] The devices 12 will differ according to their intended purpose, but typically will include a communication module 20 (figure 2) for communication to the links 14. A memory 22 provides a storage medium for non-transient instructions to implement protocols and to store data as required. The instructions are executed by a cryptographic processor (30). A secure memory module 24, which may be part of memory 22 or may be a separate module, is used to store private information, such as the private keys used in the encryption protocols and withstand tampering with that data. An arithmetic logic unit (ALU) 26 is provided to perform the arithmetic operations instruction by the memory 22 using data stored in the memories 22, 24. A random or pseudo random number generator 28 is also incorporated to generate bit strings representing random numbers in a cryptographically secure manner.
[0045] It will be appreciated that the device 12 illustrated in Figure 2, is highly schematic and representative of a conventional device used in a data communication system.
[0046] The memory 22 stores system parameters for the cryptosystem to be implemented and a set of computer readable instructions to implement the required protocol. In the case of an elliptic curve cryptosystem, elliptic curve domain parameters consist of six quantities q, a, b, P, n, and h, which are:
The field size q The elliptic curve coefficients a and b
The base point generator P
The order n of the base point generator
The cofactor h, which is the number such that hn is the number of points on the elliptic curve.
[0047] The parameters will be represented as bit strings, and the representation of the base point G as a pair of bit strings, each representing an element of the underlying field. As is conventional, one of those strings may be truncated as the full representation may be recovered from the other co-ordinate and the truncated representation.
[0048] The secure memory module 24 contains a bit string representing a long term private key d, and the corresponding public key Q. For an elliptic curve cryptosystem, the key Q=dP.
[0049] Secure memory 24 will also include an identification ID of the device 12. Conveniently this will be a certificate issued by a trusted authority to permit third party verification of the identity. A convenient form of certificate is an ECQV certificate, as set out in the SEC 4 standard.
[0050] Ephemeral values computed by the ALU may also be stored within the secure module 24 if their value is intended to be secret.
[0051] The key agreement protocol is shown in figure 3, performed between a pair of devices referred to as the entity Alice and the entity Bob. Values associated with Alice will be denoted by the suffix A and those of Bob by the suffix B. Alice has a long term private key dA and corresponding public key QA stored in the secure memory module 24. Similarly Bob has a private key dB and corresponding public key QB stored in his secure memory module 24.
[0052] Entities Alice and Bob want to share a common key, and therefore implement through the instructions stored in the memory 22, the protocol shown in Figure 3.
[0053] At 100, Alice generates a random integer using the RNG 28 and stores the integer value a as session private key in the secure module 24. Alice's ALU 26 computes, at 102, a corresponding session public key aP which she sends over a communication link 16 to Bob. The session public key aP is a representation of a point on the curve and has a pair of bit strings, each representing an element in the underlying field. In some implementations of the computations performed by the ALU 26, it is only necessary to use the x co-ordinate of the point, in which case the y co-ordinate is not required. The x co-ordinate is in that situation representative of the public key aP. The y co-ordinate may be recovered from the x co-ordinate if required. Point compression techniques, in which an indication of the value of the y coordinate is sent with the x co-ordinate, may also be used if preferred to reduce the bandwidth in transmission.
[0054] Similarly, at 200, Bob generates a random integer with his RNG 28 which he stores in his secure module 24 as session private key b. A corresponding session public key bP is computed at 202 and sent to Alice over a communication link 16.
[0055] Both Alice and Bob perform a point addition using the ALU 26 to compute y=bP+aP, as shown at 104, 204. This will in turn be a further point, γ, on the curve, and thus represented as a pair of elements. In embodiments, it is possible to use only the x-coordinate of the sum of the public keys in the computation of γ.
[0056] In further embodiments, wherein the protocol is implemented in a hyperelliptic curve cryptosystem, the combination of the public keys is performed by point addition in the Jacobian of the hyperelliptic curve.
[0057] Both Alice and Bob obtain copies of the others identity I D (106, 206). This may be done prior to the implementation of the protocol or the certificate may be sent with the session public keys. The certificate may be verified by the recipient if required.
[0058] At 108, 208, Alice and Bob each compute a common value c = H(Y//I DA//I Db), where H is a cryptographically secure hash function, such as a SHA2 hash function. The value c is stored in the memory 22. The common value c binds Alice and Bob. By concatenating the identities I D, it is necessary to determine the order in which the string representing c is assembled, a common option being to use the lexicographic order. As an alternative therefore the identities may be combined by XORing the I D's and thereby permit the string to be assembled without concern for their order. Similarly γ may be XOR'd with the I D's if preferred.
[0059] Alice computes at 1 10 a component sA = dA + c«a (mod n) which uses the long term and short term private keys stored in the secure module 24.
[0060] Similarly, Bob, at 210, computes sB=dB +c«b (mod n).
[0061] From public information, including the session public key bP received from Bob, Alice can compute sBP= QB + c«bP, as shown at 1 12.
[0062] Similarly, Bob can compute sAP=QA + caP(212). [0063] Alice and Bob each have a component computed from private information and the common value and a component computed from public information. These can be combined to provide a shared secret.
[0064] Therefore, at 1 14, 214, Alice and Bob can both compute, as the shared secret, the value K = h ' SA ' SB' P
[0065] Alice has computed sBP from public information and has stored the value sA.
[0066] Similarly, Bob has computed sAP and has stored the value sB.
[0067] Another option to compute the shared secret is for Alice to compute K = sA ' sBP and for Bob to compute K = sB ' sAP, ignoring the cofactor h. This is useful when the value of h is small, e.g. 1 , or there is resistance against the small group attack.
[0068] The protocol described above therefore establishes a shared secret K between two entities. A key derivation function should then be used to derive a secret key from the shared secret. This is necessary because the shared secret K may have some weak bit - bits of information about K that can be predicted correctly with non-negligible advantage.
[0069] One way to derive a key from the shared secret K is to apply a one-way hash function such as SHA-1 to K. Alternatively, other key derivation functions may be used as detailed more fully at Chapter XX of the Handbook of Applied Cryptography, the contents of which are incorporated by reference.
[0070] In summary, the key agreement protocol may be implemented using the following technique:-
1. Alice obtains an authentic copy of Bob's long term public key QB
2. Alice generates a random integer to provide a session private key a (0<a<n) .
3. Alice computes aP and sends this to Bob.
4. Bob obtains an authentic copy of Alice's public key QA.
5. Bob generates a random integer b, (0<b<n).
6. Bob computes bP and sends this to Alice.
7. Both Alice and Bob compute v=bP+aP. 8. Both Alice and Bob compute c = H(v//IDA//IDB). (Note he IDA and IDB may contain the public keys of Alice and Bob respectively, and they are lexicographically ordered).
9. Alice computes sA = dA + c«a(mod n).
10. Alice computes sBP=QB +c«bP. (Note: Bob sent Alice bP and she obtained an authentic copy of QB).
1 1. Bob computes sB=dB +c«b (mod n)
12. Bob computes from public information sAP= QA + c«aP.
13. Alice can now compute h ' sA ' sBP and Bob can now compute h ' sB ' sAP. In both cases, the result is the same shared secret K = h ' sA ' sB ' P.
14. The shared secret may be used as the input to a key derivation function, if required.
Another option to compute the shared secret is K = sA ' sB P, ignoring the cofactor h. This is useful when the value of h is small, e.g. 1 , or there is resistance against the small subgroup attack.

Claims

Claims. We claim:
1. A key agreement protocol performed between a pair of entities communicating over a data communication system, each of the entities having associated therewith a long term private key, a cryptographic corresponding long term public key generated using the long term private key and a generator point, and an identity, the protocol comprising:
generating for each entity a respective session private key and cryptographic
corresponding session public key;
communicating to the other entity each entity's session public key;
obtaining at each entity the identity of the both entities;
generating a common value comprising combining at each entity the session public key of the entity, the session public key of the other entity and the identities of each entity;
generating for each entity a respective secret value comprising multiplying the common value with the entity's session private key and summing the result with the entity's long term private key;
computing at each entity an ephemeral value comprising multiplying the session public key of the other entity with the common value and summing the result with the long term public key of the other entity; and
generating at each entity a shared secret by combining the entity's secret value and the ephemeral value.
2. The protocol of claim 1 wherein the shared secret is used as an input to a key derivation function to obtain a shared key.
3. The protocol of claim 1 wherein generating a common value comprises applying an XOR operation to the identities of each entity.
4. The protocol of claim 1 wherein the protocol is implemented in an elliptic curve cryptosystem and the combination of the session public keys is performed by point addition.
5. The protocol of claim 1 wherein the protocol is implemented in an elliptic curve cryptosystem and the generation of the common value comprises obtaining an x-coordinate of the sum of the public keys.
6. The protocol of claim 1 wherein the protocol is implemented in a hyperelliptic curve cryptosystem and the combination of the public keys is performed by point addition in the Jacobian of the hyperelliptic curve.
7. The protocol of claim 1 wherein the generating of the session public key comprises scalar multiplication of the session private key and the generator point.
8. The protocol of claim 1 wherein the combination of the secret value and the ephemeral value is the scalar multiplication of the secret value and the ephemeral value.
9. The protocol of claim 1 wherein the combination of the secret value and the ephemeral value is the scalar multiplication of the cofactor, the secret value and the ephemeral value.
10. The protocol of claim 1 wherein the identity of the entities is obtained from a cryptographic certificate issued by a trusted party.
1 1. A cryptographic communication system comprising a pair of cryptographic correspondents configured to implement the key agreement protocol of claim 1.
12. A cryptographic correspondent device comprising a processor and a memory, the memory having stored thereon a long term private key, the device further having associated therewith a cryptographic corresponding long term public key generated using the long term private key and a generator point, and an identity, the memory further having stored thereon computer instructions which when executed by the processor cause the processor to implement a key agreement protocol comprising:
generating a session private key and cryptographic corresponding session public key; communicating over a data communication system to another cryptographic
correspondent device the session public key;
obtaining from the other cryptographic correspondent device its session public key; obtaining the identity of the both correspondents; generating a common value comprising combining the session public key of the correspondent, the session public key of the other correspondent and the identities of each correspondent;
generating a secret value comprising multiplying the common value with the
correspondent's session private key and summing the result with the long term private key; computing an ephemeral value comprising multiplying the session public key of the other correspondent and the common value, and summing the result with the long term public key of the other correspondent; and
generating a shared secret from the correspondent's secret value and the ephemeral value.
13. The device of claim 12 wherein the shared secret is used as an input to a key derivation function to obtain a shared key.
14. The device of claim 12 wherein generating a common value comprises applying an XOR operation to the identities of each correspondent.
15. The device of claim 12 wherein the protocol is implemented in an elliptic curve cryptosystem and the combination of the session public keys is performed by point addition.
16. The device of claim 12 wherein the protocol is implemented in an elliptic curve cryptosystem and the generation of the common value comprises obtaining an x-coordinate of the sum of the public keys.
17. The device of claim 12 wherein the protocol is implemented in a hyperelliptic curve cryptosystem and the combination of the public keys is performed by point addition in the Jacobian of the hyperelliptic curve.
18. The device of claim 12 wherein the generating of the session public key comprises scalar multiplication of the session private key and the generator point.
19. The device of claim 12 wherein the combination of the secret value and the ephemeral value is the scalar multiplication of the secret value and the ephemeral value.
20. The device of claim 12 wherein the combination of the secret value and the ephemeral value is the scalar multiplication of the cofactor, the secret value and the ephemeral value.
21. The device of claim 12 wherein the identity of the correspondents is obtained from a cryptographic certificate issued by a trusted party.
PCT/CA2015/050477 2015-05-26 2015-05-26 Key agreement protocol WO2016187690A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CA2015/050477 WO2016187690A1 (en) 2015-05-26 2015-05-26 Key agreement protocol

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CA2015/050477 WO2016187690A1 (en) 2015-05-26 2015-05-26 Key agreement protocol

Publications (1)

Publication Number Publication Date
WO2016187690A1 true WO2016187690A1 (en) 2016-12-01

Family

ID=57392290

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CA2015/050477 WO2016187690A1 (en) 2015-05-26 2015-05-26 Key agreement protocol

Country Status (1)

Country Link
WO (1) WO2016187690A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111698238A (en) * 2020-06-05 2020-09-22 中国电力科学研究院有限公司 Management method, system and storage medium for terminal layer equipment key of power internet of things
CN113179153A (en) * 2021-03-22 2021-07-27 淮阴工学院 User authentication and key agreement method based on certificateless
CN114422256A (en) * 2022-01-24 2022-04-29 南京南瑞信息通信科技有限公司 High-performance security access method and device based on SSAL/SSL protocol

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040030932A1 (en) * 2002-08-09 2004-02-12 Ari Juels Cryptographic methods and apparatus for secure authentication
US20080077976A1 (en) * 2006-09-27 2008-03-27 Rockwell Automation Technologies, Inc. Cryptographic authentication protocol
US20100023771A1 (en) * 2006-11-15 2010-01-28 Marinus Struik Implicit certificate verification
EP2395698A1 (en) * 2010-06-11 2011-12-14 Certicom Corp. Implicit certificate generation in the case of weak pseudo-random number generators
CA2855099A1 (en) * 2013-06-27 2014-12-27 Infosec Global Inc. Key agreement protocol for generating a shared secret key for use by a pair of entities in a data communication system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040030932A1 (en) * 2002-08-09 2004-02-12 Ari Juels Cryptographic methods and apparatus for secure authentication
US20080077976A1 (en) * 2006-09-27 2008-03-27 Rockwell Automation Technologies, Inc. Cryptographic authentication protocol
US20100023771A1 (en) * 2006-11-15 2010-01-28 Marinus Struik Implicit certificate verification
EP2395698A1 (en) * 2010-06-11 2011-12-14 Certicom Corp. Implicit certificate generation in the case of weak pseudo-random number generators
CA2855099A1 (en) * 2013-06-27 2014-12-27 Infosec Global Inc. Key agreement protocol for generating a shared secret key for use by a pair of entities in a data communication system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111698238A (en) * 2020-06-05 2020-09-22 中国电力科学研究院有限公司 Management method, system and storage medium for terminal layer equipment key of power internet of things
CN113179153A (en) * 2021-03-22 2021-07-27 淮阴工学院 User authentication and key agreement method based on certificateless
CN113179153B (en) * 2021-03-22 2022-07-15 淮阴工学院 User authentication and key agreement method based on certificateless
CN114422256A (en) * 2022-01-24 2022-04-29 南京南瑞信息通信科技有限公司 High-performance security access method and device based on SSAL/SSL protocol
CN114422256B (en) * 2022-01-24 2023-11-17 南京南瑞信息通信科技有限公司 High-performance security access method and device based on SSAL/SSL protocol

Similar Documents

Publication Publication Date Title
US9571274B2 (en) Key agreement protocol
US8429408B2 (en) Masking the output of random number generators in key generation protocols
US20230074927A1 (en) Password based threshold token generation
CN101641905B (en) Implicit certificate verification
US9705683B2 (en) Verifiable implicit certificates
US9800418B2 (en) Signature protocol
US20110208970A1 (en) Digital signature and key agreement schemes
CA2984390A1 (en) Elliptic curve isogeny-based cryptographic scheme
US20120221858A1 (en) Accelerated Key Agreement With Assisted Computations
CN104270249A (en) Signcryption method from certificateless environment to identity environment
CN104301108A (en) Signcryption method based from identity environment to certificateless environment
US20160352689A1 (en) Key agreement protocol
Scott Unbalancing pairing-based key exchange protocols
KR100989185B1 (en) A password authenticated key exchange method using the RSA
US20150006900A1 (en) Signature protocol
US20050135610A1 (en) Identifier-based signcryption
CN108055134B (en) Collaborative computing method and system for elliptic curve point multiplication and pairing operation
WO2016187690A1 (en) Key agreement protocol
WO2019056103A1 (en) Three-party supersingular elliptic curve cryptography key agreement scheme
EP2363976A1 (en) Improved digital signature and key agreement schemes
EP2395698B1 (en) Implicit certificate generation in the case of weak pseudo-random number generators
Hwang et al. EPA: An efficient password-based protocol for authenticated key exchange
WO2016187689A1 (en) Signature protocol
Chen et al. Blockchain as a CA: A provably secure signcryption scheme leveraging blockchains
CA2892787A1 (en) Key agreement protocol

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15892809

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15892809

Country of ref document: EP

Kind code of ref document: A1