Batch verifying multiple RSA digital signatures

  1. Harn

Indexing terms: RSA digital signature, Signature verification, SET

__________________________________________________________________

A digital signature is analogous to an ordinary hand-written signature used in signing messages. The RSA digital signatures have been adopted by Visa and Master Cards in the Secure Electronic Transactions (SET) standard for providing security of electronic transfers of credit and payment information over the Internet. In SET, signatures are used to provide certificates for public keys and to authenticate messages. In this paper, we propose an efficient way for verifying RSA digital signatures. Instead of verifying one signature at a time, we propose to verify batch RSA signatures simultaneously. This approach maintains the same computational load as to verify a single signature. Thus, a significant reduction in time for signature verification can be achieved.

Introduction:

A digital signature is analogous to an ordinary hand-written signature used for signing messages. It must be unique and private to the signer. More specifically, suppose that B is the recipient of a message m signed by A. Then, A’s signature must satisfy three requirements [1]:

  1. B must be able to validate A’s signature on m easily.
  2. It must be impossible for anyone, including B, to forge A’s signature.
  3. It must be possible for a judge or third party to resolve any dispute between A and B.

At this time, there are two most popular public-key algorithms which can provide digital signatures: (a) the RSA scheme [2], in which the difficulty of breaking the scheme is based on solving the factoring a large integer into two large prime factors, and (b) the ElGamal scheme [3], in which the difficulty of breaking the scheme is based on solving the discrete logarithm problem.

The RSA digital signature has been adopted by Visa and Master Cards in the Secure Electronic Transactions (SET) standard [4] for providing security of electronic transfers of credit and payment information over the Internet. In SET, signatures are used to provide certificates for public keys and to authenticate messages. Since public-key cryptography requires intensive computations, it is desirable to speed up these public-key computations by using either special-purpose hardware or efficient software algorithms. In this paper, we propose an efficient algorithm to verify batch RSA signatures signed by the same private key. Instead of verifying one signature at a time, we propose to verify multiple signatures simultaneously. This approach maintains the same computational load as to verify a single signature. Thus, a significant reduction in time for signature verification can be achieved. The application of our scheme can be used in the Electronic Commerce to reduce the computational load significantly. For example, multiple public-key certificates signed by the same certificate authority (CA), or multiple authenticate messages signed by the same payment gateway can be verified based on our scheme.

The Algorithm:

The scheme is based on the property that RSA signatures satisfy the multiplicative property. We use the following example to illustrate this property.

Assume that the RSA signature scheme has selected the modulus n=pq, where p and q are two large secret primes. Let us denote e as the public key and d as the private key, where ed mod(p-1)(q-1)=1, and h(.) is a one-way hash function. The RSA’s signature of a message mi i is Si=h(mi)d mod n. The signature verification is performed by checking whether h(mi)= Sie mod n. We assume that the RSA signatures of m1, i m2, …, i mt are S1, i S2, …, i St. Due to the multiplicative homomorphism, we can easily prove the following theorem.

Theorem 1. If the signatures S1, i S2, …, i St, of m1, i m2, …, i mt are all valid, then we have

(pi=1t Si)e= pi=1t h(mi) mod n.

We call the product of individual signatures pi=1t Si mod n as the "multiplicative signature" of m1, i m2, …, i mt. To verify this multiplicative signature needs only to compute one exponentiation. The objective of this paper is to prove that the multiplicative signature is a valid signature of messages m1, i m2, …, i mt.

Theorem 2. If the multiplicative signature satisfies (pi=1t Si)e= pi=1t h(mi) mod n, then we say that the multiplicative signature is a valid signature of messages m1, i m2, …, i mt.

{proof} A valid signature should satisfy three properties as we have stated in the introduction section. Due to its homomorphic property, the multiplicative RSA signature can be easily verified according to Theorem 1. Thus, it satisfies the first requirement.

Since the multiplicative signature is the product of all individual signatures and it requires a secret key to generate all these individual signatures, any arbitrator is able to resolve any dispute between the signer and the verifier. Thus, it satisfies the third requirement.

The only concern is whether the attacker (i.e., including the verifier) can forge a valid multiplicative signature without knowing the secret key. If the signer signs each message directly without applying the one-way hash function, there is a possible attack to forge a valid multiplicative signature. The attacker can ask the signer to sign each message mi individually such that M= pi=1t mi mod n, and then the multiplicative signature becomes the valid signature of the message M. However, incorporating the one-way hash function into the signature scheme, it is computationally infeasible (i.e., even for the signer) to obtain messages m1, i m2, …, i mt such that h(M)= pi=1t h(mi) mod n.

Thus, we conclude that the multiplicative RSA signature is a valid signature for all individual messages. Q. E. D.

We would like to point out that the signer can generate two individual signatures S1’= S1/2 and S2’= 2S2 such that their product satisfies S1’ S2’= S1 S2. Since this ability can only be associated with the signer with proper secret key, any related dispute can be easily solved. In addition, in case the batch verification is failed, all individual signatures need to be verified separately.

Conclusion:

We have proposed an efficient way to verify batch RSA signatures simultaneously. The performance of our scheme is almost constant.

Sep.13, 1997

  1. Harn (Racal Datacom Group, Sunrise, FL 33323-2899, USA)

References

[1] D. E. Denning. Cryptography and Data Security. Addison-Wesley, Reading, MA, 1982.

[2] R. L. Rivest, A. Shamir and L. Adelman. A method for obtaining digital signatures and public-key cryptosystem. In Commun. Of ACM, Vol. 21, No. 2, pp. 120-126, Feb. 1978.

[3] T. ElGamal. A public-key cryptosystem and a signature scheme based on discrete logarithms. In IEEE Trans. Inform. Theory, Vol. IT-31, pp. 469-472, July, 1985.

[4] SET Specification. http://www.visa.com/cgi-bin/vee/ht/ecomm/set/downloads.html?2+0#specs.