The present invention relates to digital time stamping systems.
Digital time stamping systems are typically used for applying time stamps on messages or documents by means of a cryptographic digital signature. A typical implementation uses a local time source to determine the time along with hardware which implements a digital signature algorithm and which stores a key for that algorithm.
In general, the digital signatures used for time stamps are created using a public key algorithm. This has the property that the key (the public key) used to check the signature is not the same as the key (the private key) used to produce it. This means that anyone can check that the time-stamp is correct, but only the holder of the private key can issue the time stamps.
Unfortunately, public-key algorithms are mathematically complex and take a lot of time to compute. This means that any one time-stamp issuing device can only issue a small number of time-stamps per second. Obviously, in many situations a time-stamp must be issued swiftly and a processing delay could render the stamp useless.
A conventional approach to this situation is to employ multiple time-stamping devices, so that many requests for time-stamps can be split amongst the different devices. However, this immediately creates another problem: one major use of timestamps is to establish the sequence of events (did the seller change his stock price before or after the buyer committed to buy?): If the time-stamps on these events are generated by different devices, the sequence can only be guaranteed if their clocks are exactly in synchronisation. Synchronising clocks is, in general, a different activity, and as more timestamps per second are required:
It is one object of the present invention at least to alleviate these difficulties. It is a further object to provide a high speed, but secure, digital time-stamping system.
According to the present invention there is provided a digital time-stamping system comprising:
Preferably, the first signature generator uses a cryptographic Message Authentication Code (MAC). This a type of signature where the signer of the message, and the verifier of the message, both use the same key. Although MACs do not have the desirable property that anyone can verify the signature, they are several orders of magnitude faster to compute than a public key signature algorithm. In the preferred embodiment, a fast MAC is used to bind a time stamp to a message, and which is later on converted to a public key signature.
Preferably, the system may include a first secure area, for example a hardware module, containing the first signature generator, and/or a second secure area (for example a hardware module) containing the signature verifier. The second module may also include the public key signature generator. Secure key stores may be provided in both areas/modules, the first for storing the key needed to generate the temporary signed message, and the second the key needed to verify it. Preferably, those keys are the same, as for example where a MAC is used to create the temporary signed message. Where provided, the second key store may also contain the key or keys needed by the second signature generator, and to that end the second signature generator is also preferably contained within the second secure area.
The second key may comprise the private part of a public/private key pair, as used by any convenient public key cryptosystem such as RSA.
A plurality of second secure areas or modules may be provided, with a load balancer being used to spread the load between the modules. The load balancer may, but need not, be contained within the cryptographically secure boundaries of the first and/or second secure areas.
According to a second aspect of the present invention there is provided a method of digital time-stamping comprising:
The invention further extends to a computer program for implementing the above method, and to a computer-readable media on which such a computer program is stored.
The invention may be carried into practice in a number of ways and one specific embodiment will now be described, by way of example, with reference to the accompanying drawings, in which:
The system of the preferred embodiment, as illustrated schematically in
The front end unit 10 contains a time source 20, a MAC generator 30 and a MAC key store 40. Incoming messages to be time-stamped arrive at an input 11, are stamped by the MAC generator 30, and are then passed via an output 12 to the load balancer 50. The MAC generator can use any convenient standard MAC (Message Authentication Code), including HMAC (Hash MAC) or CBC MAC (Block-cipher MAC).
The operation of the MAC generator 30 is shown in more detail in
The ID 14, the hash 13 and a time 15 generated by the time source 20 are concatenated as indicated by the reference numeral 16, and are fed into the MAC generator 30. This uses the appropriate key from the key store 40 to generate a temporary time-stamped message 18 at the output 12.
Because MACs can be generated extremely rapidly, incoming messages can be dealt with promptly and passed on without delay to the load balancer. At the load balancer, the temporary time-stamped messages 18 may be queued if necessary and passed on to the public key signature units 60 at a rate they can handle. If the final time-stamps are not required particularly quickly, so that a single signature unit could eventually “catch up” on the workload, the load balancer 50 may simply make use of a single queue. Alternatively, several signature units 60 may be used, with the load balancer sharing out the workload between them.
The signature units 60 are responsible for converting the temporary time-stamped messages 18 into public key time-stamped messages which can then be output on one or more outputs 22. Conveniently, messages appearing on the output or outputs 22 will then be sent to a central store (not shown) from where they can be publicly accessed in the normal way.
Each signature unit 60 contains a secure key store 90, a MAC verifier 70 and a signature generator 80.
When a temporary time-stamped message arrives it is passed to the MAC verifier 70 which checks the MAC using a copy of the original MAC key, stored in the key store 90. If this verification fails, it is assumed that the message has been tampered with, and the request is discarded. Otherwise, the time of arrival at the front end unit, as indicated by the time string 15, is genuine, and the ID 14, hash 13 and time 15 are passed to the signature generator 80. This applies a public key signature using an appropriate public key, retrieved from the key store 90 to generate the finished time-stamped message. Any type of public key cryptosystem could be used to generate the final signature, such as RSA.
Since the same MAC keys are used both by the front end unit and the public key signature units, it is preferred that those keys are stored in a secure manner. In the preferred embodiment, the front end unit 10 and each of the public key signature units 60 comprise secure hardware modules, the security perimeters of which are illustrated by the dotted lines in
In such an arrangement, the load balancer 50 is outside the security boundaries: that does not pose a security threat since all of the messages which pass outside the secure area are MAC protected, and cannot be modified by any third party who does not have access to the securely-stored MAC keys.
The front end unit, the load balancer and the public key signature units may but need not be located physically within the same computer. Since the MAC encoded messages do not need to be kept within a secure environment, the front end unit, the load balancer and the public key signature units could be widely separated physically, and could even be in different continents. Message passing between the front end unit and the load balancer, and between the load balancer and the public key signature units, could be via any convenient communications medium including a wired or wireless network, or the internet.
Alternatively, in a variant of the embodiment, all of the elements shown in
Number | Date | Country | Kind |
---|---|---|---|
0122169.6 | Sep 2001 | GB | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/GB02/03357 | 7/23/2002 | WO |