CRYPTOSYSTEM
Field of the Invention
This invention relates to cryptosystems and methods for encrypting/decrypting and signing messages.
Background of the Invention
In 1976 Diffie and Hellman introduced the public key exchange that is based on the Diffie Hellman Problem (DHP) that is closely related to the well known Discrete Logarithm Problem (DLP). The intractability of DLP is equivalent to the security of the ElGamal public key scheme. The RSA public key cryptosystem was introduced in 1978, and may be used for both secrecy and digital signatures. The RSA cryptosystem works in Zn, where n is the product of two large primes p and q, and its security is based on the difficulty of factoring n, that is, the integer factorization problem. Since then, various ElGamal and RSA type cryptosystems have been proposed to enhance existing defences against "chosen ciphertext attacks".
In 1984 Shamir proposed identity-based cryptosystems and signature schemes that enable simple key management in email systems. For example, when Alice sends an email to Bob at bob@cipherdoctor.com, she simply encrypts her message using the public key string bob@cipherdoctor.com. There is no need for Alice to obtain Bob's public key certificate. When Bob receives the encrypted email he contacts a Trusted Third Party (TTP). Bob authenticates himself to the TTP and obtains his private key from the TTP. Bob can then read his email. This system does not require a Public Key Infrastructure (PKI) so Alice can send encrypted email to Bob even if Bob has not set up his public key certificate. However, this system employs key escrow since the TTP knows Bob's private key.
Summary of the Invention
An object of the invention is to provide an improved cryptosystem which has equivalent functionality to ID based public key cryptosystems, but which avoids the need for key escrow/PKI.
The invention consists in a cryptosystem in which users send and receive messages with the help of a trusted third party for security purposes making use of private keys and public parameters which encapsulate said private keys, each user holding a private key and the trusted third party being entrusted with a corresponding private key for each user, and the trusted third party being adapted so that it is responsive to a challenge from a user by issuing a response which encapsulates the corresponding private key so that the user can use the response in combination with the private key already held by the user to decrypt or sign a message.
When the cryptosystem operates to encrypt/decrypt a message, the transmitting user encrypts the message to a recipient user using the public parameters which encapsulate the private keys of the recipient user. One of these private keys is held by the recipient user, but the other is held by the trusted third party, and thus the recipient user issues a challenge to the trusted third party so as to obtain a response in which the other private key is encapsulated. The private key held by the trusted third party is therefore kept secret, but it can be accessed by the recipient in its encapsulated form and used to decrypt the message.
Preferably, the encryption process also makes use of private parameters generated by the transmitting user, and these are transmitted to the recipient user for use in the challenge and response so that the decryption process is suitably enabled. These private parameters, as well as increasing encryption security, also serve to encapsulate the private key in the response.
When the cryptosystem operates to sign a message, the transmitting user creates a multi-part signature which is transmitted with the message so that a recipient user can check the signature against the signed message. The signature comprises one part generated directly by the transmitting user so as to encapsulate the private key held by the transmitting user, and another part encapsulating the response from the trusted third party following a challenge by the transmitting user, so that it incorporates the private key of the transmitting user held in trust by the trusted third party.
Preferably, the signature also includes a private parameter generated by the transmitting user which is used in generating the other two parts of the signature and which is transmitted with said other two parts to the recipient user for checking the signed message. This serves to increase signature security.
The challenge preferably makes use of the ID of the user issuing the challenge, and this ID is also incorporated in the encryption process or signing process. However, it is a feature of the invention that, although the encryption and signing processes involve private keys, the challenge does not use a private key and thus the private keys held by users are kept secret from the trusted third party.
The invention is further defined in the appended claims and consists in user terminal means for a cryptosystem and trusted third party means for a cryptosystem, as well as the combination of these means in a cryptosystem and a method of enabling users to send and receive encrypted messages and to sign messages using a trusted third party. The user terminal means and trusted third party means may comprise hardware and/or software.
Brief Description of the Drawings
The invention will now be described by way of example with reference to the accompanying drawings in which:
Figure 1 is a schematic drawing showing encryption and decryption of a message, and;
Figure 2 is a schematic drawing showing signing a message.
Description of Embodiments of the Invention
A trusted third party or key center TTP is established and publishes the public system parameters required by users of the cryptosystem to encrypt and sign messages. The cryptosystem is based on the Diffie-Hellman scheme over multiplicative group Zp, which is cyclic. The public system parameters consist of:
p - a large prime,
q - a large prime divisor of p - 1, g! and g2 - integers of order q where (1 <gι, g2 <q), h - a one-way collision-resistance hash-function.
Also, each user has two private keys %, one being held by and being secret to the user, and the other being held by and being secret to the TTP. For example, a typical user Alice has a private key XAX , and the TTP holds a corresponding private XA2, where (1 <%A A2 <q); and a typical user Bob has a private key g, , and the TTP holds a corresponding private key XAχ, where (1 <XB XB2 <q).
Based on these private keys ^A A2, XB XB1 corresponding public parameters P are published as follows:
P
A2 =g
2 Λ2 moά p P
Bl =g
B" mod p
Thus the public system parameters consist of p, q, h, gi, g2, P fh, where i = A, B, I.
In a typical implementation of the invention, the trusted third party TTP comprises a computer TTPM set up as a server with server software so as to be accessible over a network, such as the Internet, to users A, B, I. As illustrated in Figures 1 and 2, the server holds the public parameters and makes them available to users A, B, and holds the user keys XA2, XB2 private in a secure memory for use as described below. Each user A, B, accesses the server TTPM via a user terminal TA, TB which comprises a computer such as a laptop or hand held device. Each user terminal has user software installed, which may be downloaded from the server TTPM when the user A first registers with the cryptosystem. Registration involves the user software running an algorithm that generates each of the private keys X X , XA2 from an input variable selected by the user. One private key XAX is held in a secure memory in the user terminal TA and the other private key XA2 is sent to the server TTPM, which holds it in its secure memory. Registration of user A is then
complete and they can use the cryptosystem to send messages to and receive messages from other registered users such as B.
In order to encrypt a message m e Zp, a user A, such as Alice who wants to send a message to user B, such as Bob, randomly chooses two integers ki and k2, where 1 <kι, k2 <q, and computes the following:
π = g
l kl mod p, = g
2 h mod p,
where IDB is the binary string for the email address of Bob, for example, bob@cipherdoctor.com or a more complex form of identification for additional security. The encrypted message e is then generated as follows:
Alice sends the encrypted message e and the parameters ri and r2 to Bob.
In order to decrypt the encrypted message e, Bob first computes CHA = (ri, r2, EDB) and sends this as a challenge to TTP. TTP then computes H = h(CHA) = h(rι, r2, IDB) and
HXJI2 , sends Bob a response RES = rι moa P.
Bob then uses the response RES together with his private key ._ to decrypt the message as follows:
m = e(rλ ' BχRES) l mod p.
It can be shown by simple substitution that this decryption formulation for m is the inverse function of the encryption formulation of e quoted above, and thus decryption is effective.
In order to sign a message m e Zp, Alice randomly chooses two integers ki and k2, where 1 <kι, k2 <q, and computes the following:
H= h(r,m,IDA) and sι = kι — HXA mod q,
where JDA is the binary string for the email address of Alice.
Alice then computes CHA = (r, m, IDA) and sends this as a challenge to TTP.
-HX 2
TTP then computes H = h(CHA) and sends Alice a response RES = §2
Alice then computes
s2 = g RES mod q = g2 2 Λ mod q.
Alice then sends Bob a signature message Sig(m) = (r, Si, s2) which Bob can use to verify the message m by substitution in the formulation:
Thus if the signatory follows the above signature protocol, the recipient can be certain as to the true identity of the signatory.
In order to add message recovery to a digital signature scheme, a public redundancy function R and its inverse R"1 are introduced, the selection of R being critical to the security of the system.
To sign a message m e Zp, Alice randomly chooses two integers ki and k2, where 1 <kι, k2 <q, and computes the following:
m = R(m), r = m' g"kχ g~ 2 k2 mod p, H= h(r,ID), and sι = k\ - HXAχ mod q.
Alice then computes a challenge CHA = (r, ID) and sends it to TTP. TTP then computes
-HXA2
H = h(CHA) and sends the response RES = £2 to Alice. Alice then computes:
∑ = - g, -HX
S' 2 2RES mod q = g2 2 mod q
Alice then sends the signature message Sig(m) = (r, si, s2) to Bob. After receiving Sig(m), the message is verified by Bob using the formulation:
After checking the validity of m' the message is recovered by computing
m = R"l(m').
Whilst the invention has been described above with reference to a cryptosystem having just one trusted third party TTP, it will be appreciated that two or more TTPs may be provided, each being entrusted with a corresponding unique private key Xa„ for each user, so that a user is required to perform a challenge and response routine with each TTP before the user has all of the encapsulated private keys required for decrypting or signing a message.
Also, whilst the pairs of public parameters P PA2 and B B2 involve system parameters gi and g2, which take different values, gi and g2 could be set at the same value to simplify the system. Also, where there are two or more TTPs, the values of two or more of the system parameters gi, g2, ... g„ could be the same.
The security of the proposed scheme is based on the security of Diffie-Hellman problem and one-way collision resistance hash-functions. Given the fact that there is no known method for "breaking" DHP or for finding collisions on one-way colUsion-resistance hash-functions, it is computationally infeasible to break the proposed scheme.
It will be appreciated that the use of two or more private keys per user, one held by the user and one by each TTP, and the challenge and response technique with each TTP, enables a computationally secure cryptosystem to be set up without embedding key escrow and without any PKI requirement so all users enjoy secure communication with each other without possessing verified certificates. The invention therefore provides an implicitly authenticated public key cryptosystem which avoids disclosing user's private keys even to the TTP.