ATBECHDEDKESFRGBGRITLILUNLSEMCPTIESILTLVFIROMKCYALTRBGCZEEHUPLSKBAHRIS..MT..RS..
J
DIM360 Ver 2.15 (14 Jul 2008) - 1100000/0
Amended claims in accordance with Rule 137(2) EPC.
2003813
EUROPEAN PATENT APPLICATION
A1
20081217
EP
07110405.3
20070615
20080328
en
en
en
20081217
200851
20081217
200851
20080811
H04L 9/32 20060101AFI20071123BHEP
de
Verfahren und Vorrichtung zur Authentifizierung
en
Method and Apparatus for Authentication
fr
Procédé et appareil destinés à l'authentification
1
NTT DoCoMo, Inc.
03031182
DCE 060 EP
11-1, Nagatacho 2-chome, Chiyoda-ku
Tokyo
JP
Kounga, Gina
Hirmerweg 10
81245, Munich
DE
Lachmund, Sven
Rapotostr. 8
80687, Munich
DE
Walter, Thomas
Thaddaeus-Robl-Str. 9A
80935, Munich
DE
Betten & Resch
00101033
Patentanwälte Theatinerstrasse 8 (Fünf Höfe)
80333 München
DE
AT
BE
BG
CH
CY
CZ
DE
DK
EE
ES
FI
FR
GB
GR
HU
IE
IS
IT
LI
LT
LU
LV
MC
MT
NL
PL
PT
RO
SE
SI
SK
TR
AL
BA
HR
MK
RS
A method for authentication of a first terminal k towards a second terminal in an ad-hoc network, said method comprising:
generating the public/private key pairs which said first terminal will have to use based on a unique secret value s_k based on repeatedly applying a one way hash function on said secret value s_k, whereas the number of repeatedly applying said hash function depends on the time within said time frame when said authentication is performed;
checking the authenticity of a so generated public key by verifying that the public key is bound to a public hash-code value V signed by a trusted authority.

FIELD OF INVENTION
The present invention relates to a method and an apparatus for authentication, in particular in a vehicular ad-hoc network.

BACKGROUND OF THE INVENTION
Vehicular ad hoc networks (VANET) are expected to improve the transmission of traffic information and, thus, to improve the performance of private transportation system as well as safety of both car drivers and passengers. They rely on vehicles with wireless communication capabilities to exchange traffic information using multi-hop communications. However, before they are used in large scale some security issues must be solved. One of these is providing privacy while permitting vehicles to check the authenticity of the messages they receive as discussed in P. Papadimitratos, A. Kung, J.-P. Hubaux, and F. Kargl, "Privacy and identity management for vehicular communication systems: A position paper," in Workshop on Standards for Privacy in User-Centric Identity Management, July 2006; or M. Raya, P. Papadimitratos, and J.-P. Hubaux, "Securing Vehicular Communications," in IEEE Wireless Communications Magazine, Special Issue on Inter-Vehicular Communications, 2006. Since messages received from other vehicles may have an impact on individuals' safety, it is important that their reliability is checked. However, since in VANET authorities may not always be present that are able to guarantee that a given information is true, vehicles must be able to evaluate the reliability of received information by themselves.
One approach to achieve this is to define a threshold corresponding to the minimum number of different vehicles that must have sent signed messages containing the same information within a certain timeframe to consider that information as valid. However, messages must not be signed with private keys that are bound to their owner's identity since this permits an attacker to trace a vehicle by checking whether a digital signature can be verified with a specific public key on all received messages. One possibility for solving this problem would be that vehicles use many public/private key pairs whose corresponding certificates do not contain any identity and are valid during a short time interval only. Then, an attacker will not be able anymore to link some digital signatures to a given vehicle. This solution is interesting. However, it requires vehicles to store in advance all the public/private key pairs they will need to use. Considering that vehicles may need to use many different public/private key pairs each day, the storage space required to store all the key pairs that the vehicle will have to use within a certain time frame (e.g. a year), may reach hundreds of Megabits. This solution first increases the car manufacturing costs and second introduces a scalability problem at the certification authority (CA), as it will have to maintain hundreds of Megabits for each vehicle. Considering the fact that one car manufacturer may sell several hundred thousands cars each year, this solution introduces some certificate management problems at the CA side.

SUMMARY OF THE INVENTION
According to one embodiment there is provided a method for authentication of a first terminal k towards a second terminal in an ad-hoc network, said method comprising:
- generating the public/private key pairs which said first terminal will have to use based on a unique secret value s_k based on repeatedly applying a one way hash function on said secret value s_k, whereas the number of repeatedly applying said hash function depends on the time when said authentication is performed;
- checking the authenticity of a so generated public key by verifying that the public key is bound to a public hash-code value V signed by a trusted authority.
Repeatedly applying the hash function for generating the public/private key pair depending on the time avoids the need for storing many key pairs in the terminals in advance. Moreover, checking by verifying the binding to a public hash-code value provides the necessary security and still is easy to handle by one public hash-code value being used for many terminals.
According to one embodiment the method comprises:
- generating an initialization value P_k by said first terminal k based on repeatedly applying m times a one-way hash function on a secret value s_k which is specific for said first terminal k;
- calculating by a trusted authority one or more derived initialization values based on a secret value K only known to said trusted authority or certified by a trusted authority and further based on said value P_k ;
- generating a public/private key pair by said first terminal based on a secret value s_k whereas said public/private key pair is generated based on repeatedly applying a one-way hash function on said secret value s_k a number of times n, n<m, and further based on said one or more derived values, whereas the number of times n which said hash function is applied depends on the time at which said authentication is to be performed, and whereas said authentication comprises:
  - verifying by said second terminal that the public key generated by said first terminal is bound to said secret value K based on using a value derived by applying m-n times said one-way hash function on the value obtained by applying said hash function n times on said secret value S_k, thereby verifying that the public key is bound to said public hash-code value V which is derived based on said secret value K.
The initialization values and the one or more derived values provide the binding to the secret value K.
According to one embodiment the number how many times the hash function has to be applied depends on how many time intervals of fixed length have passed until the authentication is performed.
In this manner fixed time intervals are provided into which the "total usage time" is divided. Depending on the interval into which a certain instantaneous use falls, the hash function is applied the corresponding number of times.
According to one embodiment the method comprises:
- generating said initialization value based on
P
k
=
∏
j
=
0
m
f
j
s
k
- generating said private key K_i of said public/private key pair based on
∏
j
=
0
m
- i
- 1
f
j
s
k
and further based on said one or more derived values;
- generating said public key of said public/private key pair based on g^{Ki} ;
- generating a helper value H_i based on
∏
j
=
m
- i
m
f
j
s
k
;
whereas said verification by said second terminal comprises:
- calculating (g^{Ki})^{Hi} to verify that the public key g^{Ki} generated by said first terminal is bound to said secret value K.
The helper value links the initialization value and the public/private key at time interval T_i so that when they are combined the binding to the value K can be proven.
According to one embodiment said one or more derived initialization values comprise a value Q_k being derived based on a division of the secret value K by P_k and said private key of public/private key pair is generated based on
Q
k
*
∏
j
=
0
m
- i
- 1
f
j
s
k
.
According to one embodiment said private key of public/private key pair is generated based on
a
i
*
∏
j
=
0
m
- i
- 1
f
j
s
k
with a_i # a_{i+n} for i∈0,1,...,m-1 and n ∈ 1,2,...,m-i-1, and whereas said helper value is generated based on
1
a
i
*
∏
j
=
m
- i
m
f
j
s
k
.
The value a_i introduces anonymity into the mechanism.
According to one embodiment said one or more derived initialization values comprise a value Q_k being derived based on K = P_k *Q_k + r_k, and whereas for verifying the authentication said second terminal calculates
g
K
i
*
g
A
*
a
i
*
r
k
P
k
*
∏
j
=
0
m
- i
- 1
f
j
s
k
H
i
According to a further embodiment the second terminal instead calulates
g
K
i
*
g
A
*
a
i
*
r
k
P
k
*
∏
j
=
0
m
- i
- 1
f
j
s
k
H
i
whereas the value A is a large integer.
According to one embodiment the method comprises:
- dividing a certain time period into n intervals, whereas in the i-th interval the private key K_i is calculated based on
∏
j
=
0
m
- i
- 1
f
j
s
k
.
According to one embodiment authentication is only considered to be successful if the number of valid signatures received within a certain time period by the second terminal exceeds a certain threshold.
This introduces a further security check and enables to check the reliability of the message.
According to one embodiment the value K is chosen by said first terminal or by an authority related to said terminal like a car manufacturer and a hash value derived from this secret value is certified by a trusted authority and used for verifying the authentication.
This reduces the communication efforts necessary between the terminals and the certification authority acting as "trusted authority".
According to one embodiment the ad-hoc network is a vehicular ad-hoc network, and said method comprises:
- during an initialization phase, for a car k, calculating P_k and the one or more derived initialization values,
- in a time interval i, calculating the private key K_i, the public key, and the helper value and generating a certificate containing the public key corresponding to the private key with which a message is encrypted and being signed with the private key K_i ;
- transmitting the encrypted message and the certificate, the helper value and
g
a
i
*
r
k
P
k
*
∏
j
=
0
m
- i
- 1
f
j
s
k
to the second terminal;
verifying the authentication by the second terminal by verifying that the public key of the certificate is bound to said secret value K.
According to one embodiment instead of
g
a
i
*
r
k
P
k
*
∏
j
=
0
m
- i
- 1
f
j
s
k
the term
g
A
*
a
i
*
r
k
P
k
*
∏
j
=
0
m
- i
- 1
f
j
s
k
is calculated and transmitted to the second terminal, whereas A is a large integer.
According to one embodiment the private key with which the message is signed is different from the private key used for signing the certificate being used for the verification.
This avoids the need to send the private key from the secure environment (black box) to the car.
According to one embodiment there is provided an apparatus for authentication of a first terminal k towards a second terminal in an ad-hoc network, said apparatus comprising:
- a module for generating the public/private key pairs which said first terminal will have to use based on a unique secret value S_k based on repeatedly applying a one way hash function on said secret value S_k, whereas the number of repeatedly applying said hash function depends on the time within said time frame when said authentication is performed;
- a module for transmitting the public key thus generated to a terminal for checking the authenticity of the thus generated public key by verifying that the public key is bound to a public hash-code value V signed by a trusted authority.
According to one embodiment there is provided an apparatus for authentication of a first terminal k towards a second terminal in an ad-hoc network, said apparatus comprising:
- a module for receiving a public key which has been generated by said first terminal by generating the public/private key pairs which said first terminal will have to use based on a unique secret value s_k based on repeatedly applying a one way hash function on said secret value s_k, whereas the number of repeatedly applying said hash function depends on the time when said authentication is performed;
- a module for checking the authenticity of the thus received public key by verifying that the public key is bound to a public hash-code value V signed by a trusted authority.
- According to one embodiment there is provided an apparatus further comprising:
  - one or more modules for implementing the further features of a method according to one of the embodiments of the invention.
According to one embodiment there is provided a computer program comprising computer program code which when being executed by a computer enables said computer to carry out a method according to one of the embodiments of the invention.

DESCRIPTION OF THE DRAWINGS
- Fig. 1 schematically illustrates a timing scheme for generating keys according to an embodiment of the invention.
- Fig. 2 schematically illustrates an authentication method according to an embodiment of the invention
- Fig. 3 schematically illustrates a timing scheme according to a further embodiment of the invention.
- Fig. 4 schematically illustrates the relationship of parameters and equations used in an embodiment of the invention.
- Fig. 5 schematically illustrates the messages generated and sent in an embodiment of the invention.

DETAILED DESCRIPTION
The present invention will be described in the following by means of exemplary embodiments.
Before describing in detail the embodiments of the invention, some terms which will be used hereinafter are summarily compiled and somewhat explained in the following:
m | Number of time intervals within one maintenance interval (plus some grace period)
T_i | The i -th time interval
C_k | The k -th car manufactured
BB_k | The black box in the k -th car manufactured
nbSignatures | The number of valid signatures that must be received to reach the threshold t
max time | The time during which the threshold t must be reached
lifetime | The validity period of each certificate
t | The threshold of valid messages to be received from different cars within time interval of length max time
K_i | Private key valid in time interval T_i
g^{Ki} | Public key valid in time interval T_i
Cert_i | Certificate valid in time interval T_i
H_i | Helper value valid in time interval T_i
A | Large integer
a_i | Randomly chosen integer
pub_{Ti} | The public key used by C_k in time interval T_i
priv_{Ti} | The private key used by C_k to sign the messages broadcasted in time interval T_i
According to one embodiment there is provided a mechanism that permits vehicles to generate all the public/private key pairs they will have to use within a certain time frame (e.g. a year) based on a unique secret value. The authenticity of so generated public keys can be checked by verifying that these public keys are uniquely bound to a public hash-code value V signed by a trusted CA (certification authority). The public hash-code value is the same for all cars manufacturers that use the same CA (or for all cars manufactured by the same manufacturer). All cars prove the validity of their public keys based on the same hash-code value. Therefore, V does not permit to identify which vehicle has generated a public key. This avoids the unlikely situation that the one car of one specific manufacturer is traced among a number of cars (from different car manufacturers). Further, there is no need of a CA for verification.
When a car verifies the authenticity of a message, it cannot deduce which entity has sent the message. The authenticity of a message can be verified but without tracing the message back to a specific entity, thus providing anonymity. At the CA side, the solution does not increase the management requirements, since the CA just has only to store one hash-code value (or to store only one hash-code value per manufacturer, as will become apparent somewhat later) and because cars manage their certificates by themselves. This reduces significantly the storing capabilities required at the vehicle side. According to one embodiment the mechanism further prevents cars from signing a large number of messages with different keys within a short period of time to give the impression that many different cars have sent this message. Moreover, according to a further embodiment the mechanism provides interoperability between cars that are manufactured by different entities.
According to a further embodiment there is additionally defined a threshold so that information contained in messages received from other cars are considered reliable if the number of valid messages received from different cars that contain the same information exceeds the threshold. This further improves the reliability of the information contained in the message.
Now some embodiments will be described in somewhat more detail. In one embodiment the authentication method is applied to a vehicular ad-hoc network (VANET) where one car (being a "first terminal") has to be authenticated by a second car (a "second terminal"). In this embodiment it is assumed that vehicles are equipped with black boxes that are configured during the manufacturing process to permit the generation of anonymous public/private key pairs -as will be explained later. Further it is assumed that these black boxes can operate securely and that they are tamper resistant. Black boxes in one embodiment store security parameters that can be updated regularly, e.g. once a year when the car is undergoing maintenance. It is further assumed that these black boxes are able to generate public/private key pairs and to issue certificates.
In this embodiment, each car C_k has a black box BB_k that generates, in each time interval T_i of length lifetime :
- pub_{Ti} /priv_{Ti} the public/private key pair that the car C_k must use in T_i ;
- The corresponding certificate Cert_i signed with BB_k 's private key K_i that is only valid in interval T_i as it will be explained later ;
- Public parameters - such as the public key g^{Ki} corresponding to the private key used by the black box to sign the certificate - to use for checking the validity of the certificate.
These values are sent to the car C_k.
According to one embodiment the private key K_i used by the black box to sign certificates and the corresponding public key g^{Ki} are generated based on a secret value s_k securely transferred to BB_k during the manufacturing process in such a way that:
- Different black boxes can not generate the same key pairs;
- Certificates are only valid if they are generated by a black box that respects the "security requirements" or "security parameters" defined by the car manufacturer, whereas for simplicity it is considered that all car manufacturers use the same security requirements. The term security requirements here may refer to such parameters like lifetime and maxtime which may be required to be the same for all cars. According to one embodiment, however, they may also use different security requirements or security parameters.
The aforementioned security requirements or parameters prevent a car from being able to sign the same message with different keys to pretend that it was signed by different cars, and they thereby enhance reliability of information contained in a message.
After C_k has received the key pair pub_{Ti} /priv_{Ti} it can use it during a certain time period of length lifetime to authenticate the messages it sends. For that it signs its message with the private key priv_{Ti} received from the black box and sends the signed message to other cars along with Cert_i and the public parameters issued by BB_k. The time intervals lifetime are schematically illustrated in Fig. 1.
When the other cars receive the signed message, they verify that the received certificate Cert_i (generated during interval T_i) is valid and was issued by a black box that respects the defined security requirements. If it is the case, the cars use the pub_{Ti} contained in the certificate to verify that the signature on the message is valid. If it is valid, then the cars know that the message was sent by a car that is not able to sign the same message many times to pretend it was signed by different cars. The cars can use the newly received message to evaluate the reliability of the information previously received from other cars and/or to evaluate the reliability of the information that will be received in the future.
The process that permits to verify the reliability of information contained in received messages according to one embodiment will now be described in somewhat more detail in connection with Fig. 2. As shown in Fig. 1, the first time interval T_0 may begin when the car is sold and will be renewed during maintenance like s_k.
At first the black box of car k generates the currently valid public/private key pair, the corresponding certificate and public parameters such as a helper value (explained later). These are then sent from the black box to the car. The car then signs messages with the currently valid private key and broadcasts the messages and the corresponding certificate to other cars. The other car C_{k'} verifies that the received certificate was issued by a black box that respects the security requirements defined by a trusted car manufacturer and verifies that the signature on the message is correct. According to one embodiment this is done by checking that the signature on the certificate is valid and that the public key is bound to V by the right relation. This will prove that the car was manufactured by an entity whose check value had been certified by the CA and therefore, by an entity that respects the requirement regarding maxtime and lifetime.
If both are correct the message may be regarded as validly authenticated.
According to one embodiment there may be used a further mechanism which is directed to avoid cars to sign many times a given message using different public/private key pairs. This will now be explained in the following.
To avoid that a given car is able to sign the same message many times with different private keys, a threshold t may be defined that corresponds to the minimum number of different cars that must have signed a message during a timeframe max time. max time preferably is shorter than the lifetime of issued certificates, preferably even much shorter. We have:
t
=
nbSignatures
max
⁢
time
The relationship between maxtime and lifetime is exemplarily shown in Fig. 3. The values for lifetime and t may be specified when the car is manufactured. The smaller the value of maxtime is, the lesser is the likelihood of cars using different keys for signing the same message. However, in order to have still a certain likelihood that the same message is received from different cars at all, maxtime should not be made too small. The distinct value chosen for maxtime may depend on the weight given by the system designed to these two conflicting requirements.
With this basic configuration cars are able to use different private keys to sign their messages, however, if maxtime is chosen sufficiently small they are not able to sign the same message with enough different keys to make the information contained in that message reliable, i.e. exceeding the threshold t.
Now there will be described in somewhat more detail an embodiment which is capable of distinguishing message emitters and providing anonymity at the same time.
Prior to use of the authentication scheme according to an embodiment of the invention, certain system parameters need to be agreed by all parties, as follows.
- G=(G,*) is a finite cyclic group of order q (for some large q), g ∈ G is a generator of G, and we assume that computing discrete logarithms in G with respect to g is computationally infeasible. For example, G might be a large multiplicative subgroup of
Z
p
*
for some large prime p, where q is a large prime dividing p-1; alternatively G could be the group of points on an elliptic curve (usually written additively).
- h is a cryptographic (one way) hash-function mapping arbitrary length binary strings to strings of a fixed length (ℓ say, where a typical value for ℓ might be 224).
- f is a cryptographic (one-way) hash-function mapping the set {0,1,...,q-1} onto itself. In practice, f might, for example, be derived from h.
- m ≥1 is a positive integer that determines the number of key pairs available to the terminal over the intervals T_i.
In this embodiment, to avoid cars to be traced with the check value used by their black boxes, the manufacturer is issued a certificate by a CA that contains a check value V:
V
=
h
g
A
*
K
Here K is a secret value only known by CA, A is a large integer which serves the purpose of making exponents an integer for easier calculation during the later steps, g is some generator which will be explained in somewhat more detail later, and h is a one-way hash function for which it is computationally unfeasible to perform reverse computation or a cryptographic hash function.
That certificate is securely transferred to black boxes during the manufacturing process. This approach permits cars that are manufactured by different car manufacturers to use a same check value to verify the reliability of some received information.
In the following it will be explained how cars according to one embodiment can generate anonymous key pairs that are uniquely bound to V (or bound to K through which they are also bound to V). The solution is based on a repeated application of one-way hash functions similar to the approach described in European patent application no. 06122041.4 of the same applicant as the present one which is incorporated herein by reference and from which further explanations of the one-way hash functions and the key generators used may be taken.
According to one embodiment, in Equation 1, K is a positive large integer such that for any positive integer
P
k
*
∏
j
=
0
m
f
j
s
k
,
K > P_k (i.e. K is larger than P_k). Preferably there is even K >> P_k. A is a large integer and m is the maximum number of different key pairs that a car uses until the next maintenance (with a bit of reserve) -it also corresponds to the number of time intervals within one maintenance interval (plus some grace period). In other words, m is an integer which is at least as large as the total number of time intervals T_i. Then, it always exist positive integers Q_k and r_k such that:
K
=
P
k
*
Q
k
+
r
k
=
P
k
*
Q
k
+
r
k
P
k
In other words, the values Q_k and r_k are "derived values" which are derived based on the secret value K and further on P_k which is based on repeatedly applying the one-way hash function f on the secret value s_k. The relationship in equation 2 binds the secret value to the derived values Q_k and r_k and further to some value obtained by repeatedly applying the one-way hash function f to s_k.
Through equation 2 the value K is expressed as a product of P_k and Q_k plus some remainder
^r
_k
. This makes clear why it is preferable to have K >> P_k because this makes it easier to find values Q_k and r_k for the different cars.
However, it may happen that the product in equation 2 has no remainder
^r
_k
, in this case K is just the product of P_k and Q_k. This, however, from a security point of view is less preferable than if equation 2 has a remainder, and according to one embodiment if equation 2 has no remainder the CA asks for P_k to be changed..According to one embodiment EINBETTEN Q_k should be such that K >> P_k * Q_k in such a way that r_k is large.
Every car C_k has a black box BB_k which receives a secret value S_k. The manufacturing process should guarantee that S_k is not used by another black box BB_{k'}, k ≠ k'.
P_k is generated with S_k as follows:
P
k
=
∏
j
=
0
m
f
j
s
k
Then P_k is sent to the CA that issued the certificate containing V to the manufacturer. The CA has a secret value K -cf Equation 2- such that K >> P_k. After having received P_k the CA computes g^{rk} and Q_k, where Q_k and r_k fulfill Equation 2 and send it back to the manufacturer. Then, the manufacturer securely transfers the following parameters into the black box BB_k of car C_k :
- Certificate containing V
- P_k
- g^{rk}
- Q_k
- S_k
- A
- nbSignatures
- maxtime
These values are securely stored by BB_k.
The parameters used in an embodiment of the invention and their relationship is schematically summarized in Fig. 4.
In time interval T_i, BB_k chooses a random integer a_i that it never discloses. a_i is chosen such that:
- (A * a_i * r_k) mod P_k = 0 or P_k is a multiple of A * a_i r_k
- a_i ≠ a_{i+n} for i ∈ 0,1,..., m - 1 and n ∈1,2,..., m - i - 1
The usage of the value a_i provides anonymity to the mechanism because it makes it difficult to trace the sent messages in a manner which could lead to a hint of how the sequence of repeated applications of one-way hash function f operates. This is because in the publicly sent values a_i introduces a further element unknown to an attacker which makes it extremely difficult to trace an individual terminal or car based on the messages sent by it.
Then, BB_k generates the private key K_i that it uses to sign the certificate Cert_i as follows:
K
i
=
A
*
a
i
*
Q
k
*
∏
j
=
0
m
- i
- 1
f
j
s
k
The corresponding public key is:
g
K
i
=
g
A
*
a
i
*
Q
k
*
∏
j
=
0
m
- i
- 1
f
j
s
k
BB_k further generates the helper value:
H
i
=
A
*
1
a
i
*
∏
j
=
m
- 1
m
f
j
s
k
Then BB_k issues the certificate Cert_i to C_k - the car k . Cert_i contains the public key pub_{Ti} and the hash-code value V signed by the CA and is signed with K_i. The signed hash-code V is put in the certificate to permit this embodiment to be used by cars whose check values were issued by different CA that trust each other.
BB_k also sends:
- The private key priv_{Ti} that C_k uses to sign its messages
- g^{ki} ;
- H
_{i;}
- g
A
*
a
i
*
r
k
P
k
*
∏
j
=
0
m
- i
- 1
f
j
s
k
to car C_k.
C_k uses priv_{Ti} to sign messages being sent to other cars. Then when C_k sends the signed message msg, it also sends along with it its public key certificate Cert_i that contains pub_{Ti} , g^{Ki} , H_i and
g
A
*
a
i
*
r
k
P
k
*
∏
j
=
0
m
- i
- 1
f
j
s
k
When a car receives the previous elements, it verifies that Cert_i was correctly signed by BB_k and that it is valid. In order to perform these verifications, the car computes:
V*
=
g
K
i
*
g
A
*
a
i
*
r
k
P
k
*
∏
j
=
0
m
- i
- 1
f
j
s
k
H
i
=
g
A
*
a
i
*
Q
k
*
∏
j
=
0
m
- i
- 1
f
j
s
k
*
g
A
*
a
i
*
r
k
P
k
*
∏
j
=
0
m
- i
- 1
f
j
s
k
A
*
1
a
i
*
∏
j
=
m
- i
m
f
j
s
k
=
g
A
*
Q
k
+
r
k
P
k
*
∏
j
=
0
m
- i
- 1
f
j
s
k
*
∏
j
=
m
- i
m
f
j
s
k
=
g
A
*
Q
k
+
r
k
P
k
*
P
k
=
g
A
*
K
The messages generated and sent according to one embodiment of the invention are illustrated in Fig. 5.
The following is noted here:
We have:
- g^{Ki} is defined in Equation 5
- H_i is defined in Equation 6
Moreover it should be noted that in the above solution the private key K_i is not used for signing the messages, for that purpose a separate private key priv_{Ti} is used. K_i is only used to sign the certificate Cert_i which is used for proving the validity of the public key g^{Ki}. The reason for using a different public key priv_{Ti} for signing message msg is that with this approach the sensitive private key K_i needs not to be distributed to the outside of the black box (to the car). Otherwise the car might be able to generate its "own" certificate and try to sign one message multiple times by using the thus generated certificates. This can be avoided by keeping the private key K_i inside the black box and sending only the certificate Cert_i to the car. The private key priv_{Ti} and its corresponding public key may be generated by any suitable manner and then be sent by the black box to the car and are then used for signing/checking. The real authentication is done then with the public key contained in the certificate Cert_i .
For that purpose, after the car has computed V * , it verifies whether h(V*) = V. If it is the case, then the car checks the signature on Cert_i with g^{Ki}. If the signature is valid, the car knows that the signature was generated by a car whose black box operates in a way that respects the time requirements specified before, in other words in a way that follows the security requirements of the mechanism, i.e. that in a time interval T_i there is generated a corresponding private/public key pair based on values which have been transferred into the terminal (or a black box thereof) in a secure and tamper resistant manner, which are bound to secret value K of the CA and which represents the relation between maxtime and lifetime as represented in Figure 3. Then, if Cert_i 's expiration date is not passed, the car can use it to verify the signature on msg. If one of the previous verifications fails, the car considers that the signature on the received message is invalid. This verification process is repeated for each message received by the car.
If the mechanism uses further a threshold as mentioned before, i.e. when t is reached, in other words when the car has received at least nbSignatures messages during a time maxtime that contain a same information, it considers that the information contained in the messages that were signed by nbSignatures different signatures is reliable.
It should be noted that a car only needs to check the validity of Cert_i the first time that it receives Cert_i in the interval T_i. This is because a valid certificate stays valid for the entire time interval.
In the following some remarks on the security of the mechanism are made.
In the described mechanism, each black box BB_k only knows the value h(g^{A*K}). Since one-way hash functions are computationally infeasible to reverse in practice and since finding K from g^{A*K} is as well computationally infeasible when K is large, black boxes cannot find K. Similarly since the BB_k only knows g^{rk}, it cannot find r_k. Therefore, it can not find K by knowing Q_k .
If one focuses on the verifying car, it does not know Q_k and can not find it from g^{Ki}. Moreover, the verifying car neither know K nor ^rk, and can not find them from
g
A
*
a
i
*
r
k
P
k
*
∏
j
=
0
m
- i
- 1
f
j
s
k
since a_i is not disclosed by BB_k.
Tracing cars by exploiting the existing linkage between helper values is also not possible here since, by devising H_{i+1} by H_i and H_{i+2} by H_{i+1} the car will obtain
a
i
a
i
+
1
*
f
m
- i
- 1
s
k
and
a
i
+
1
a
i
+
2
*
f
m
- i
- 2
s
k
.
Since
a
i
a
i
+
1
≠
a
i
+
1
a
i
+
2
,
we have
a
i
a
i
+
1
*
f
m
- i
- 1
s
k
≠
f
⁢
a
i
+
1
a
i
+
2
*
f
m
- i
- 2
s
k
In the following there will be described an embodiment which provides a somewhat modified mechanism directed at reducing the interactions with the CA during the manufacturing process
In order to simplify the process that permits to transfer security parameters to black boxes, one can e.g. reduce the number of interactions between the manufacturer and the CA. This is achieved if the generation of the check value is done by each manufacturer and not anymore by the CA. In this case each manufacturer should:
- Have a secret value K that it must manage (keep secret, protect from compromise)
- Choose a large integer A
- Generate its own check value V
After V has been generated, the manufacturer sends it to a CA that issues it a certificate containing V.
Then, during the manufacturing process, the manufacturer can always define P_k such that K >> P_k since the manufacturer knows K . It can also generate all the values that must be transferred to the black boxes. According to one embodiment Q_k should be such that K >> P_k * Q_k in such a way that r_k is large
The CA can manage a list containing the check values of all the manufacturers that manufacture some cars whose black boxes respect some given security mechanisms or security requirements. This list should not contain the name of the manufacturers that are using the check value to avoid one car of one specific manufacturer is traced among a number of cars (from different car manufacturers). This list will permit that the solution defined in this document can be used even by different car manufacturers.
The list should be issued to car manufacturers before the manufacturing process begins. Then, each manufacturer can transfer it in its black boxes that can use it to verify the reliability of received messages. Then it may not be necessary that V is contained in the certificate Cert_i issued in T_i.
In the following there will be described a further embodiment directed to reducing the number of certificates stored by cars in each time interval.
The mechanism defined in the previous section can be improved to reduce the number of key pairs that needs to be stored by C_k . This is achieved if BB_k signs the messages sent by C_k . Then BB_k does not need to issue Pub_{Ti} /priv_{Ti} to C_k anymore. BB_k only sends:
- Cert_i that contains the public key EINBETTEN g^{Ki} ;
- H_i ;
- g
A
*
a
i
*
r
k
P
k
*
∏
j
=
0
m
- i
- 1
f
j
s
k
to C_k. After BB_k has signed a message, it sends it to C_k that broadcasts it along with Cert_i , H_i and
g
A
*
a
i
*
r
k
P
k
*
∏
j
=
0
m
- i
- 1
f
j
s
k
Then, the cars that will check the validity of the messages sent by C_k will use g^{Ki} to verify the validity of the signature on the messages.
It will be understood by the skilled person that the embodiments described hereinbefore may be implemented by hardware, by software, or by a combination of software and hardware. The modules and functions described in connection with embodiments of the invention may be as a whole or in part implemented by microprocessors or computers which are suitably programmed such as to act in accordance with the methods explained in connection with embodiments of the invention. An apparatus implementing an embodiment of the invention may e.g. comprise a node or element in a network which is suitably programmed such that it is able to carry out an authentication as described in the embodiments of the invention.
According to an embodiment of the invention there is provided a computer program, either stored in a data carrier or in some other way embodied by some physical means such as a recording medium or a transmission link which when being executed on a computer enables the computer to operate in accordance with the embodiments of the invention described hereinbefore.
Embodiments of the invention may be implemented e.g. by nodes in a network or any entities in a network which are programmed to operate in accordance with the authentication mechanisms as described before.
1. A method for authentication of a first terminal k towards a second terminal in an ad-hoc network, said method comprising:
generating the public/private key pairs which said first terminal will have to use based on a unique secret value S_k based on repeatedly applying a one-way hash function on said secret value S_k, whereas the number of repeatedly applying said hash function depends on the time when said authentication is performed;
checking the authenticity of a so generated public key by verifying that the public key is bound to a public hash-code value V signed by a trusted authority.
2. The method of claim 1, method comprising:
generating an initialization value P_k by said first terminal k based on repeatedly applying m times a one-way hash function on a secret value S_k which is specific for said first terminal k;
calculating by a trusted authority one or more derived initialization values based on a secret value K only known to said trusted authority or certified by a trusted authority and further based on said value P_k;
generating a public/private key pair by said first terminal based on a secret value s_k whereas said public/private key pair is generated based on repeatedly applying a one-way hash function on said secret value s_k a number of times n, n<m, and further based on said one or more derived values, whereas the number of times n which said hash function is applied depends on the time at which said authentication is to be performed, and whereas said authentication comprises:
verifying by said second terminal that the public key generated by said first terminal is bound to said secret value K based on using a value derived by applying m-n times said one-way hash function on the value obtained by applying said hash function n times on said secret value s_k, thereby verifying that the public key is bound to said public hash code value V which is derived based on said secret value K.
3. The method of claim 1 or 2, wherein
the number how many times the hash function has to be applied depends on how many time intervals of fixed length have passed until the authentication is performed.
4. The method of claim 1, 2, or 3, further comprising:
generating said initialization value based on
P
k
=
∏
j
=
0
m
f
j
s
k
generating said private key K_i of said public/private key pair based on
∏
j
=
0
m
- i
- 1
f
j
s
k
and further based on said one or more derived values;
generating said public key of said public/private key pair based on g^{Ki}
generating a helper value H_i based on
∏
j
=
m
- i
m
f
j
s
k
;
whereas said verification by said second terminal comprises: calculating (g^{Ki})^{Hi} to verify that the public key g^{Ki} generated by said first terminal is bound to said secret value K.
5. The method of one of claims 1 to 4, wherein said one or more derived initialization values comprise a value Q_k being derived based on a division of the secret value K by P_k and said private key of public/private key pair is generated based on
Q
k
*
∏
j
=
0
m
- i
- 1
f
j
s
k
.
6. The method of one of the preceding claims, wherein said private key of public/private key pair is generated based on
a
i
*
∏
j
=
0
m
- i
- 1
f
j
s
k
with a_i ≠a_{i+n} for i ∈ 0,1,...,m -1 and n ∈1,2,...,m-i-1, and whereas said helper value is generated based on
1
a
i
*
∏
j
=
m
- i
m
f
j
s
k
.
7. The method of one of claims 1 to 6, wherein said one or more derived initialization values comprise a value Q_k being derived based on K = P_k * Q_k + r_k, and whereas for verifying the authentication said second terminal calculates
g
K
i
*
g
a
i
*
r
k
P
k
*
∏
j
=
0
m
- i
- 1
f
j
s
k
H
i
.
8. The method of one of the preceding claims, comprising:
dividing a certain time period into m intervals, whereas in the i-th interval the private key K_i is calculated based on
∏
j
=
0
m
- i
- 1
f
j
s
k
.
9. The method of one of the preceding claims, wherein an authentication is only considered to be successful if the number of valid signatures received within a certain time period by the second terminal exceeds a certain threshold.
10. The method of one of the preceding claims, wherein
the value K is chosen by said first terminal and a hash value derived from this secret value is certified by a trusted authority and used for verifying the authentication.
11. The method of one of the preceding claims, wherein
the ad-hoc network is a vehicular ad-hoc network, and wherein said method comprises:
during an initialization phase, for a car k, calculating P_k and the one or more derived initialization values,
in a time interval i, calculating the private key K_i, the public key, and the helper value and generating a certificate containing the public key corresponding to the private key with which a message is encrypted and
being signed with the private key K_i ;
transmitting the encrypted message and the certificate, the helper value and
g
a
i
*
r
k
P
k
*
∏
j
=
0
m
- i
- 1
f
j
s
k
to the second terminal;
verifying the authentication by the second terminal by verifying that the public key of the certificate is bound to said secret value K.
12. The method of claim 11, wherein the private key with which the message is signed is different from the private key used for signing the certificate being used for the verification.
13. An apparatus for authentication of a first terminal k towards a second terminal in an ad-hoc network, said apparatus comprising:
a module for generating the public/private key pairs which said first terminal will have to use based on a unique secret value s_k based on repeatedly applying a one way hash function on said secret value s_k, whereas the number of repeatedly applying said hash function depends on the time within said time frame when said authentication is performed;
a module for transmitting the public key thus generated to a terminal for checking the authenticity of the thus generated public key by verifying that the public key is bound to a public hash-code value V signed by a trusted authority.
14. An apparatus for authentication of a first terminal k towards a second terminal in an ad-hoc network, said apparatus comprising:
a module for receiving a public key which has been generated by said first terminal by generating the public/private key pairs which said first terminal will have to use based on a unique secret value S_k based on repeatedly applying a one way hash function on said secret value S_k, whereas the number of repeatedly applying said hash function depends on the time within said time frame when said authentication is performed;
a module for checking the authenticity of the thus received public key by verifying that the public key is bound to a public hash-code value V signed by a trusted authority.
15. The apparatus of claim 13 or 14, further comprising:
one or more modules for implementing the further features of one of claims 2 to 12.
16. A computer program comprising computer program code which when being executed by a computer enables said computer to carry out a method of one of claims 1 to 12.

Amended claims in accordance with Rule 137(2) EPC.
1. A method for authentication of a first terminal k towards a second terminal in an ad-hoc network, said method comprising:
generating the public/private key pairs which said first terminal will have to use based on a unique secret value s_k based on repeatedly applying a one-way hash function on said secret value s_k, whereas the number of repeatedly applying said hash function depends on the time when said authentication is performed;
checking the authenticity of a so generated public key by verifying that the public key is bound to a public hash-code value V signed by a trusted authority
generating an initialization value P_k by said first terminal k based on repeatedly applying m times a one-way hash function on a secret value s_k which is specific for said first terminal k;
calculating by a trusted authority one or more derived initialization values based on a secret value K only known to said trusted authority or certified by a trusted authority and further based on said value P_k;
generating a public/private key pair by said first terminal based on a secret value s_k whereas said public/private key pair is generated based on repeatedly applying a one-way hash function on said secret value s_k a number of times n, n<m, and further based on said one or more derived values, whereas the number of times n which said hash function is applied depends on the time at which said authentication is to be performed, and whereas said authentication comprises:
verifying by said second terminal that the public key generated by said first terminal is bound to said secret value K based on using a value derived by applying m-n times said one-way hash function on the value obtained by applying said hash function n times on said secret value s_k, thereby verifying that the public key is bound to said public hash code value V which is derived based on said secret value K.
2. The method of claim 1 , wherein
the number how many times the hash function has to be applied depends on how many time intervals of fixed length have passed until the authentication is performed.
3. The method of claim 1 or 2, further comprising:
generating an initialization value based on
P
k
=
∏
j
=
0
m
f
j
S
k
generating a private key K_i of said public/private key pair based on
∏
j
=
0
m
- i
- 1
f
j
S
k
and further based on said one or more derived values;
generating said public key of said public/private key pair based on g^{Ki};
generating a helper value H_i based on
∏
j
=
m
- i
m
f
j
S
k
;
whereas said verification by said second terminal comprises: calculating (g^{Ki})^{Hi} to verify that the public key g^{Ki} enerated by said first terminal is bound to said secret value K, wherein f is a cryptographic (one-way) hash-function and wherein G=(G,*) is a finite cyclic group of order q for some large q and g ∈ G is a generator of G.
4. The method of one of claims 1 to 3, wherein said one or more derived initialization values comprise a value Q_k being derived based on a division of the secret value K by P_k and said private key of public/private key pair is generated based on
Q
k
*
∏
j
=
0
m
- i
- 1
f
j
S
k
,
, wherein f is a cryptographic (one-way) hash-function.
5. The method of one of the preceding claims, wherein said private key of public/private key pair is generated based on
a
i
*
∏
j
=
0
m
- i
- 1
f
j
S
k
with a_i≠a_{i+}_n for i ∈ 0,1,...,m-1 and n ∈ 1,2,...,m - i-1, and whereas a helper value is generated based on
1
a
i
*
∏
j
=
m
- i
m
f
j
S
k
,
, wherein f is a cryptographic (one-way) hash-function.
6. The method of one of claim5, wherein said one or more derived initialization values comprise a value Q_k being derived based on K = P_k*Q_k +r_k, and whereas for verifying the authentication said second terminal calculates
g
K
i
*
g
a
i
*
r
k
P
k
*
Π
j
=
0
m
- i
- 1
⁢
f
j
s
k
H
i
7. The method of one of the preceding claims, comprising:
dividing a certain time period into m intervals, whereas in the i-th interval the private key K_i is calculated based on
∏
j
=
0
m
- i
- 1
f
j
S
k
,
, wherein f is a cryptographic (one-way) hash-function.
8. The method of one of the preceding claims, wherein an authentication is only considered to be successful if the number of valid signatures received within a certain time period by the second terminal exceeds a certain threshold.
9. The method of one of the preceding claims, wherein
the value K is chosen by said first terminal and a hash value derived from this secret value is certified by a trusted authority and used for verifying the authentication.
10. The method of one of the preceding claims, wherein
the ad-hoc network is a vehicular ad-hoc network, and wherein said method comprises:
during an initialization phase, for a car k, calculating P_k and the one or more derived initialization values,
in a time interval i, calculating the private key K_i, the public key, and the helper value and generating a certificate containing the public key corresponding to the private key with which a message is encrypted and being signed with the private key K_i ;
transmitting the encrypted message and the certificate, the helper value and
g
a
i
*
r
k
P
k
*
Π
j
=
0
m
- i
- 1
⁢
f
j
S
k
to the second terminal;
verifying the authentication by the second terminal by verifying that the public key of the certificate is bound to said secret value K, wherein f is a cryptographic (one-way) hash-function and wherein G=(G,*) is a finite cyclic group of order q for some large q and g ∈ G is a generator of G.
11. The method of claim 10, wherein the private key with which the message is signed is different from the private key used for signing the certificate being used for the verification.
12. An apparatus for authentication of a first terminal k towards a second terminal in an ad-hoc network, said apparatus comprising:
a module for generating the public/private key pairs which said first terminal will have to use based on a unique secret value s_k based on repeatedly applying a one way hash function on said secret value s_k, whereas the number of repeatedly applying said hash function depends on the time when said authentication is performed;
a module for transmitting the public key thus generated to a terminal for checking the authenticity of the thus generated public key by verifying that the public key is bound to a public hash-code value V signed by a trusted authority, said apparatus further comprising:
means for generating an initialization value P_k by said first terminal k based on repeatedly applying m times a one-way hash function on a secret value s_k which is specific for said first terminal k, wherein
there have been calculated by a trusted authority one or more derived initialization values based on a secret value K only known to said trusted authority or certified by a trusted authority and further based on said value P_k;
means for generating a public/private key pair by said first terminal based on a secret value s_k whereas said public/private key pair is generated based on repeatedly applying a one-way hash function on said secret value s_k a number of times n, n<m, and further based on said one or more derived values, whereas the number of times n which said hash function is applied depends on the time at which said authentication is to be performed.
13. An apparatus for authentication of a first terminal k towards a second terminal in an ad-hoc network, said apparatus comprising:
a module for receiving a public key which has been generated by said first terminal by generating the public/private key pairs which said first terminal will have to use based on a unique secret value s_k based on repeatedly applying a one way hash function on said secret value s_k, whereas the number of repeatedly applying said hash function depends on the time when said authentication is performed;
a module for checking the authenticity of the thus received public key by verifying that the public key is bound to a public hash-code value V signed by a trusted authority , wherein
there have been calculated by a trusted authority one or more derived initialization values based on a secret value K only known to said trusted authority or certified by a trusted authority and further based on said value P_k; wherein
there has been generated a public/private key pair by said first terminal based on a secret value s_k whereas said public/private key pair has been generated based on repeatedly applying a one-way hash function on said secret value s_k a number of times n, n<m, and further based on said one or more derived values, whereas the number of times n which said hash function is applied depends on the time at which said authentication is to be performed,
wherein said apparatus further comprises:
means for verifying by said second terminal that the public key generated by said first terminal is bound to said secret value K based on using a value derived by applying m-n times said one-way hash function on the value obtained by applying said hash function n times on said secret value s_k, thereby verifying that the public key is bound to said public hash code value V which is derived based on said secret value K.
14. The apparatus of claim 12 or 13, further comprising:
one or more modules for implementing the further features of one of claims 2 to 11..
15. A computer program comprising computer program code which when being executed by a computer enables said computer to carry out a method of one of claims 1 to 11.

REFERENCES CITED IN THE DESCRIPTION
This list of references cited by the applicant is for the reader's convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard.

Patent documents cited in the description
- WO
06122041
A
[0054]

Non-patent literature cited in the description
- P. PAPADIMITRATOS
A. KUNG
J.-P. HUBAUX
F. KARGL
Privacy and identity management for vehicular communication systems: A position paper
Workshop on Standards for Privacy in User-Centric Identity Management
20060700
[0002]
- M. RAYA
P. PAPADIMITRATOS
J.-P. HUBAUX
Securing Vehicular Communications
IEEE Wireless Communications Magazine, Special Issue on Inter-Vehicular Communications
20060000
[0002]