Hacking - The Art of Exploitation, 2nd Edition

(Romina) #1
Cryptology 403

The numbers in the previous example were chosen for their relevance to


RSA. Assuming the values for P and Q are 11 and 13, N would be 143. There-


fore, φ(N) = 120 = (11 − 1) · (13 − 1). Since 7253 is relatively prime to 120,


that number makes an excellent value for E.


If you recall, the goal was to find a value for D that satisfies the following


equation:


E· D= S·φ(N)+1


Some basic algebra puts it in a more familiar form:


D · E+ S·φ(N)=1


D ·7253±S·120=1


Using the values from the extended Euclidean algorithm, it’s apparent


that D = −43. The value for S doesn’t really matter, which means this math


is done modulo φ(N), or modulo 120. That, in turn, means that a positive


equivalent value for D is 77, since 120 − 43 = 77. This can be put into the


prior equation from above:


E· D= S·φ(N)+1


7253 · 77 = 4654 · 120 + 1


The values for N and E are distributed as the public key, while D is


kept secret as the private key. P and Q are discarded. The encryption and


decryption functions are fairly simple.


Encryption: C= ME(modN)


Decryption: M= CD(modN)


For example, if the message, M, is 98, encryption would be as follows:


987253 = 76(mod143)


The ciphertext would be 76. Then, only someone who knew the value for


D could decrypt the message and recover the number 98 from the number 76,


as follows:


7677 = 98(mod143)


Obviously, if the message, M, is larger than N, it must be broken down


into chunks that are smaller than N.


This process is made possible by Euler’s totient theorem. It states that


ifM and N are relatively prime, with M being the smaller number, then


when M is multiplied by itself φ(N) times and divided by N, the remainder


will always be 1:


If gcd(M, N) = 1 and M < N then Mφ(N) = 1(modN)

Free download pdf