The class of exponentiation ciphers was developed by Stephen C. Pohlig and Martin E. Hellman of Stanford University in 1978. Exponentiation ciphers provide an interesting confluence of the euclidean algorithm, modular exponentiation, and Fermat’s little theorem. Let p , the exponentiation modulus, be an odd prime and let e be a positive integer such that (e,p − 1) = 1. Since we use the numbers 00 through 25 to represent the letters of the alphabet, clearly p > 25; thus, p ≥ 29. (In fact, we will observe later that the security of the exponentiation cryptosystem is directly related to the size of p , so in practice we choose p to be extremely large.) As we will see shortly, e uniquely determines the ciphertext numeric string corresponding to a given plaintext numeric string, so e serves as the enciphering exponent. To encrypt a plaintext, first translate it into a numeric string using the two-digit ordinal representations in Table 9.1. Then assemble the numbers into blocks of length 2m such that the numeric face value of every block is 2525 < 3037 < 252525. This makes sense since p is the modulus. Now, convert each plaintext numeric block P of length 2m into a ciphertext numeric block of the same length using the enciphering congruence C ≡ Pe (mod p ) (9.7) where 0 ≤ P, C ≤p − 1. The following example illustrates this encrypting procedure.
đang được dịch, vui lòng đợi..
