METHOD OF MANAGING IMPLICIT CERTIFICATES USING A DISTRIBUTED PUBLIC KEYS INFRASTRUCTURE
20170250822 · 2017-08-31
Assignee
Inventors
Cpc classification
H04L9/3066
ELECTRICITY
H04L9/3265
ELECTRICITY
H04L9/0891
ELECTRICITY
H04L9/3263
ELECTRICITY
International classification
H04L9/32
ELECTRICITY
H04L9/30
ELECTRICITY
Abstract
A method of managing implicit certificates of an elliptical curve encryption (ECQV). The implicit certificates are stored in different nodes of the network as a function of a distributed hash table (DHT) and not with a single certification authority. The implicit certificate of the public key associated with a node is obtained by chaining elementary certification operations with a sequence of indexing nodes of the network. Chaining of elementary certification operations can reinforce authentication of network nodes.
Claims
1. A method of managing implicit certificates of public keys for a communication network, the public keys being related to an elliptic curve cryptosystem, each implicit certificate being unable to identify a public key of a node on the network and each node being identified by an identifier, wherein: a first implicit certificate (γ.sub.A.sub.
2. The method of managing implicit certificates according to claim 1, in which the identifier condensate is obtained by h(ID.sub.A∥keyword) where ID.sub.A is the identifier of node A, keyword is a known password of network nodes, ∥ is a concatenation operation and h is a hash function.
3. The method of managing implicit certificates according to claim 1, wherein: first public key of node A is calculated by Q.sub.A.sub.
4. The method of managing implicit certificates according to claim 1, wherein a plurality of implicit certificates are generated for node A during a plurality of successive iterations, and in that at iteration i:1 an (i+1).sup.th indexing node (B.sub.I ) calculates a (i+1).sup.th implicit certificate (γ.sub.A.sub.
5. The method of managing implicit certificates according to claim 4, wherein the (i+1).sup.th certificate condensate is obtained by e.sub.A.sub.
6. The method of managing implicit certificates according to claim 4, wherein the (i+1).sup.th certificate condensate is obtained by e.sub.A.sub.
7. The method of managing implicit certificates according to claim 4, wherein the (i+1).sup.th public key of node A is calculated by Q.sub.A.sub.
8. The method of managing implicit certificates according to claim 4, wherein the interval between two successive iterations has a predetermined fixed duration.
9. The method of managing implicit certificates according to claim 4, wherein the (i+1).sup.th implicit certificate (γ.sub.A.sub.
10. The method of managing implicit certificates according to claim 4, wherein the interval between successive iterations has a pseudo-random duration.
11. The method of managing implicit certificates according to claim 4, wherein, in iteration i, the first indexing node stores a list of implicit certificates γ.sub.A.sub.
12. The method of managing implicit certificates according to claim 11, wherein, in iteration i, the first indexing node stores a list of validity dates D.sub.A.sub.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0036] Other characteristics and advantages of the invention will become clear after reading a preferred embodiment of the invention with reference to the appended figures among which:
[0037]
[0038]
[0039]
DETAILED PRESENTATION OF PARTICULAR EMBODIMENTS
[0040] In the following, we will consider a plurality of network nodes, for example a 6LoWPAN network in the domain of the Internet of Things connected to the Internet IP through a gateway. However, the man skilled in the art will understand that the invention can be applied to any type of network.
[0041] A first concept on which the invention is based is to not store implicit certificates in a single node, for example on a dedicated server, but rather to store them distributed in a plurality of nodes by means of a Distributed Hash Table (DHT).
[0042] It should be remembered that a DHT can be used to find the address of a node (of the addresses of several nodes) on which the information (also called value in the context of a DHT) associated with this key is stored. An introduction to DHT techniques is given in the paper by S. Sarmady entitled “A Survey on Peer-to-Peer and DHT”, arXiv preprint arXiv:1006.4708, 2010.
[0043] The storage of implicit certificates using the Chord protocol will be described below. However, an expert in the subject will understand that other DHT storage protocols could be used alternatively without going outside the scope of protection of the invention.
[0044] As mentioned above, the implicit certificates are generated using a hash function h (for example SHA hashing). If the number of condensate bits is denoted m, the values of function h lie within the interval [0,2.sup.m−1]. This interval can be looped back on itself (the value 2.sup.m then coinciding with the value 0) and represented in the form of a circle as illustrated in
[0045] According to a first example embodiment, the interval [0,2.sup.m−1] is divided into a plurality of consecutive segments (ring portions in
[0046] Preferably, according to a second example embodiment, the interval [0,2.sup.m−1] is covered by a plurality of segments, these segments possibly overlapping with a degree of overlap, K, in other words said point in this interval belongs to at least K distinct segments.
[0047] The nodes associated with the different segments are called indexing nodes and contain a copy of the DHT table. For each segment, the DHT table gives the indexing node that will manage implicit certificates belonging to the segment.
[0048] Thus, in order to recover the implicit certificate of a public key belonging to a node characterised by its identifier ID, for example its IPv6 address, the hash value h(ID)) is calculated and the DHT table is searched for an indexing node A.sub.I responsible for managing a segment containing h(ID)). The implicit certificate can be retrieved from this indexing node.
[0049] The indexing nodes could possibly be organised hierarchically, a coarse indexing level being made by first level indexing nodes pointing to indexing nodes on a second level responsible for finer indexing (in other words a finer segmentation). In the domain of the Internet of Things, the root indexing node can be the gateway between the 6LoWPAN network and Internet.
[0050] In any case, it will be understood that the second example embodiment has the advantage of providing storage redundancy due to overlapping of segments. Thus, if one of said indexing nodes responsible for the relevant segment leaves the network or stops functioning, the implicit certificate can alternatively be retrieved from the K−1 other nodes.
[0051] If required, each segment can be managed by several indexing nodes, a priority level then being assigned to each indexing node. Thus, the first step could be to address a first high priority indexing node managing the segment that contains h(Id) and, if this first indexing node is overloaded, a second lower priority indexing node managing the same segment.
[0052] Storage and management of implicit certificates are thus distributed to a plurality of network nodes. These nodes are advantageously chosen from among nodes that have the highest memory capacity.
[0053] To prevent an indexing node from being able to allocate a segment of the DHT to itself, a password keyword known to all nodes in the network can advantageously be added to the node identifier, ID, before the hash function is applied to it. More precisely, for a given segment [a,b[, the indexing node of this segment (consequently managing implicit certificates falling in this segment) will then be chosen from among nodes B.sub.I such that h(ID.sub.B.sub.
[0054] A second concept on which this invention is based is to chain implicit certificates to reinforce the security of certificates and authentication of the public keys contained in them.
[0055]
[0056] It is assumed that a node A (Alice) would like to obtain an implicit certificate for a public key using an elliptical curve cryptosystem ECC. The Elliptic Curve Cryptography ECC cryptosystem is defined by a set of given domain parameters, in other words constants involved in the elliptical equation defined on Z.sub.p (in which p is prime), the generating point G and the order n of the cyclic group generated by the generating point.
[0057] In step 210, node A calculates the hash value h(ID.sub.A), in which ID.sub.A is a identifier of node A. This is why the value h(Id.sub.A) will be called the identifier condensate. Node A uses the DHT table to determine an indexing node responsible for management of a segment containing h(ID.sub.A). Optionally, a password can be concatenated with the identifier before hashing in all cases, this indexing node is denoted B.sub.0.
[0058] In step 220, node A generates an integer α.sub.0 and sends α.sub.0G to node B.sub.0. In practice, only coordinate x.sub.0 of α.sub.0G can be transmitted, since node B.sub.0 knows the domain parameters.
[0059] Node B.sub.0 has a private key b.sub.0 and a corresponding public key Q.sub.B.sub.
[0060] In step 230, node B.sub.0 calculates private key and public key reconstruction data as follows:
[0061] Node B.sub.0 generates an integer k.sub.0 within the interval [1,n−1] and calculates public key reconstruction data γ.sub.0 using:
γ.sub.0=α.sub.0G+k.sub.0G (4-1)
[0062] This public key reconstruction data forms the first implicit certificate (of the public key) for node A.
[0063] The indexing node B.sub.0 then calculates the condensate e.sub.A.sub.
s.sub.A.sub.
[0064] In step 240, the indexing node B.sub.0 sends the pair (s.sub.A.sub.
[0065] In step 250, node A builds a first private key and a first pubic key using private key and public key reconstruction data respectively, as follows:
a.sub.A.sub.
Q.sub.A.sub.
[0066] In step 255, an indexing node B.sub.I is generated managing the first implicit certificate in the DHT. More precisely, the node B.sub.I is a DHT indexing node for a segment containing the first certificate condensate, namely e.sub.A.sub.
[0067] In step 260, node generates an integer α.sub.I and sends α.sub.IG to node B.sub.I. Node B.sub.I has a private key b.sub.I and a corresponding public key Q.sub.B.sub.
[0068] In step 270, node B.sub.I calculates private key and public key reconstruction data: More precisely, node B.sub.I generates an integer k.sub.B.sub.
γ.sub.A.sub.
[0069] This public key reconstruction data forms the second implicit certificate for node A.
[0070] The indexing node B.sub.I then calculates a second certificate condensate defined by e.sub.A.sub.
[0071] The indexing node B.sub.I determines private key reconstruction data from the second condensate:
s.sub.A.sub.
[0072] In step 280, the indexing node B.sub.I sends the pair (s.sub.A.sub.
[0073] Furthermore, node B.sub.I transmits the second implicit certificate γ.sub.A.sub.
[0074] It is thus understood that the first and second implicit certificates γ.sub.A.sub.
[0075] In step 290, node A constructs a second private key from the private key reconstruction data s.sub.A.sub.
a.sub.A.sub.
[0076] Similarly, node A constructs a second public key from the public key reconstruction data γ.sub.A.sub.
Q.sub.A.sub.
[0077] It can be shown that relation Q.sub.A.sub.
[0078]
[0079] We will assume that the elliptical curve cryptosystem is the same as in the first embodiment. Node A once again would like to obtain an implicit certificate for a public key related to this cryptosystem.
[0080] Generation of the implicit certificate and the keys for node A is initialised by steps 310 to 350. Steps 310 to 350 are identical to steps 210 to 250 respectively and therefore they will not be described again herein.
[0081] Some time after the initialisation phase that can correspond to the validity duration of the implicit certificate, or to the expiration of a repetition period, or a duration obtained by a pseudo-random drawer, the implicit certificate is enriched by a recurrence chaining process related to steps 360 to 390. In general, the interval between two successive iterations can be fixed or it can depend on the validity duration of the certificate or it may be pseudo-random.
[0082] We will now assume that the (i−1).sup.th iteration has already been done and we will consider the i.sup.th iteration.
[0083] In step 355, node A searches for node B.sub.I that manages the condensate e.sub.A.sub.
[0084] In step 360, node A generates and integer α.sub.I and sends α.sub.IG to node B.sub.I.
[0085] Node B.sub.I has a private key b.sub.I and a corresponding public key Q.sub.B.sub.
[0086] In step 370, node B.sub.I calculates private key and pubic key reconstruction data as follows:
[0087] Node B.sub.I generates an integer k.sub.B.sub.
γ.sub.A.sub.
[0088] The indexing node B.sub.I calculates the condensate e.sub.A.sub.
[0089] Regardless of the form selected far the condensate, node B.sub.I uses it to determine private key reconstruction data for iteration i:
s.sub.A.sub.
[0090] In step 380, the indexing node B.sub.I sends the pair (s.sub.A.sub.
[0091] Furthermore, node B.sub.I transmits the implicit certificate γ.sub.AI and possibly the validity date D.sub.A.sub.
[0092] In step 390, node A constructs a new private key from the private key reconstruction data for the current iteration i and the private key for the previous iteration, i−1, by:
a.sub.A.sub.
[0093] Similarly, node A constructs a new public key from the public key reconstruction data for iteration i and the public key for iteration i−1:
Q.sub.A.sub.
[0094] It can be demonstrated by recurrence that Q.sub.A.sub.
Q.sub.A.sub.
and according to (9-1) and (8-2): a.sub.A.sub.
[0095] It will be noted for a current iteration i, node B.sub.0 that manages h(ID.sub.A) in the DHT, stores the list of implicit certificates γ.sub.A.sub.
[0096] The last implicit certificate of node A, γ.sub.A.sub.
[0097] Under these conditions, it will be understood that if a “man in the middle” type attack is to be successful, it would have to operate between node A and its indexer, B.sub.0, between C and its indexer D.sub.0 and between A and C simultaneously, which is very difficult unless the entire network is controlled. Furthermore, each node A and C can check that the public key of the other is coherent by checking if the chaining of implicit certificates is valid. Thus, node C will be able to check that the public key Q.sub.A.sub.
[0098] Therefore according to this invention, the certificates are not stored with a single certification authority but instead with indexing nodes participating in the DHT.
[0099] Distributed storage of implicit certificates and chaining of these certificates to obtain pubic and private keys of nodes make the network particularly resistant to “man in the middle” type attacks.