Page 324 - Discrete Mathematics and Its Applications
P. 324

4.6 Cryptography  303


                                                                                                        k 1
                                                                                                                     k 2
                                                     because the adversary would need to find k 1 and k 2 from a mod p and a mod p, respec-
                                                     tively. Furthermore, no other method is known for finding the shared key using just the public
                                                     information. We have remarked that this is thought to be computationally infeasible when p
                                                     and a are sufficiently large. With the computing power available now, this system is considered
                                                     unbreakable when p has more than 300 decimal digits and k 1 and k 2 have more than 100 decimal
                                                     digits each.



                                                     DIGITAL SIGNATURES Not only can cryptography be used to secure the confidentiality of
                                                     a message, but it also can be used so that the recipient of the message knows that it came from
                                                     the person they think it came from. We first show how a message can be sent so that a recipient
                                                     of the message will be sure that the message came from the purported sender of the message.
                                                     In particular, we can show how this can be accomplished using the RSA cryptosystem to apply
                                                     a digital signature to a message.
                                                        Suppose thatAlice’s RSA public key is (n, e) and her private key is d.Alice encrypts a plain-
                                                                                                       e
                                                     text message x using the encryption function E (n,e) (x) = x mod n. She decrypts a ciphertext
                                                                                                d
                                                     message y using the decryption function D (n,e) = x mod n. Alice wants to send the message
                                                     M so that everyone who receives the message knows that it came from her. Just as in RSA en-
                                                     cryption, she translates the letters into their numerical equivalents and splits the resulting string
                                                     into blocks m 1 , m 2 ,...,m k such that each block is the same size which is as large as possible
                                                     so that 0 ≤ m i ≤ n for i = 1, 2, ..., k. She then applies her decryption function D (n,e) to each
                                                     block, obtaining D n,e (m i ), i = 1, 2,...,k. She sends the result to all intended recipients of the
                                                     message.
                                                        When a recipient receives her message, they applyAlice’s encryption function E (n,e) to each
                                                     block, which everyone has available because Alice’s key (n, e) is public information. The result
                                                     is the original plaintext block because E (n,e) (D (n,e) (x)) = x. So, Alice can send her message
                                                     to as many people as she wants and by signing it in this way, every recipient can be sure it came
                                                     from Alice. Example 10 illustrates this protocol.




                                     EXAMPLE 10      Suppose Alice’s public RSA cryptosystem key is the same as in Example 8. That is, n =
                                                     43 · 59 = 2537 and e = 13. Her decryption key is d = 937, as described in Example 9. She
                                                     wants to send the message “MEET AT NOON” to her friends so that they are sure it came from
                                                     her. What should she send?

                                                     Solution: Alice first translates the message into blocks of digits, obtaining 1204 0419 0019
                                                     1314 1413 (as the reader should verify). She then applies her decryption transformation
                                                     D (2537,13) (x) = x 937  mod 2537 to each block. Using fast modular exponentiation (with the
                                                     help of a computational aid), she finds that 1204 937  mod 2537 = 817, 419 937  mod 2537 = 555,
                                                     19 937  mod 2537 = 1310, 1314 937  mod 2537 = 2173, and 1413 937  mod 2537 = 1026.
                                                        So, the message she sends, split into blocks, is 0817 0555 1310 2173 1026. When one of
                                                     her friends gets this message, they apply her encryption transformation E (2537,13) to each block.
                                                     When they do this, they obtain the blocks of digits of the original message which they translate
                                                     back to English letters.                                                       ▲


                                                        WehaveshownthatsignedmessagescanbesentusingtheRSAcryptosystem.Wecanextend
                                                     this by sending signed secret messages. To do this, the sender applies RSA encryption using
                                                     the publicly known encryption key of an intended recipient to each block that was encrypted
                                                     using sender’s decryption transformation. The recipient then first applies his private decryption
                                                     transformation and then the sender’s public encryption transformation. (Exercise 32 asks for
                                                     this protocol to be carried out.)
   319   320   321   322   323   324   325   326   327   328   329