13.1 RSA Signatures

Bob has a document m that Alice agrees to sign. They do the following:

  1. Alice generates two large primes p, q, and computes n=pq. She chooses eA such that 1<eA<ϕ(n) with gcd(eA, ϕ(n))=1,  and calculates dA such that eAdA1  (mod ϕ(n)). Alice publishes (eA, n) and keeps private dA, p, q.

  2. Alice’s signature is

    smdA(mod n).
  3. The pair (m, s) is then made public.

Bob can then verify that Alice really signed the message by doing the following:

  1. Download Alice’s (eA, n).

  2. Calculate zseA  (mod n). If z=m, then Bob accepts the signature as valid; otherwise the signature is not valid.

Suppose Eve wants to attach Alice’s signature to another message m1. She cannot simply use the pair (m1, s), since seAm1  (modn). Therefore, she needs s1 with s1eAm1  (mod n). This is the same problem as decrypting an RSA “ciphertext” m1 to obtain the “plaintext” s1. This is believed to be hard to do.

Another possibility is that Eve chooses s1 first, then lets the message be m1s1eA  (mod n). It does not appear that Alice can deny having signed the message m1 under the present scheme. However, it is very unlikely that m1 will be a meaningful message. It will probably be a random sequence of characters, and not a message committing her to give Eve millions of dollars. Therefore, Alice’s claim that it has been forged will be believable.

There is a variation on this procedure that allows Alice to sign a document without knowing its contents. Suppose Bob has made an important discovery. He wants to record publicly what he has done (so he will have priority when it comes time to award Nobel prizes), but he does not want anyone else to know the details (so he can make a lot of money from his invention). Bob and Alice do the following. The message to be signed is m.

  1. Alice chooses an RSA modulus n (n=pq, the product of two large primes), an encryption exponent e, and decryption exponent d. She makes n and e public while keeping p, q, d private. In fact, she can erase p, q, d from her computer’s memory at the end of the signing procedure.

  2. Bob chooses a random integer k  (mod n) with gcd(k, n)=1 and computes tkem  (mod n). He sends t to Alice.

  3. Alice signs t by computing std  (mod n). She returns s to Bob.

  4. Bob computes s/k  (mod n). This is the signed message md.

Let’s show that s/k is the signed message: Note that ked(ke)dk  (mod n), since this is simply the encryption, then decryption, of k in the RSA scheme. Therefore,

s/ktd/kkedmd/kmd(mod n), 

which is the signed message.

The choice of k is random, so ke  (mod n) is the RSA encryption of a random number, and hence random. Therefore, kem  (mod n) gives essentially no information about m (however, it would not hide a message such as m=0). In this way, Alice knows nothing about the message she is signing.

Once the signing procedure is finished, Bob has the same signed message as he would have obtained via the standard signing procedure.

There are several potential dangers with this protocol. For example, Bob could have Alice sign a promise to pay him a million dollars. Safeguards are needed to prevent such problems. We will not discuss these here.

Schemes such as these, called blind signatures, have been developed by David Chaum, who has several patents on them.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset