Data encryption with big prime numbers Daniel FreemaN, SLU
Old school codes Full knowledge of the code is needed to both encrypt messages and to decrypt messages. The code can only be used between a small number of trusted people.
Public key encryption If you buy something online, you need to send your credit card number to Amazon. Your computer needs to be able to encrypt your credit card number. Amazon does NOT want you to be able to decrypt other people’s credit card numbers. Everyone needs to be able to encrypt but only Amazon should be able to decrypt. We need a mathematical technique that is computationally very simple to evaluate, but is extremely computationally difficult to invert.
Multiplication is easy, factoring is hard Typing in the following into Wolfram Alpha 3568535685356853568535723 * 7564533681359827542555893 gives an output of 26994308385016394749558484505346578147056894665639 Typing in the following into Wolfram Alpha factor 26994308385016394749558484505346578147056894665639 gives an output of factor 26994308385016394749558484505346578147056894665639
Mod n We think of x mod n as the remainder when x is divided by n. 1≡7 𝑚𝑜𝑑 3 2≡12 𝑚𝑜𝑑 5 0≡15 𝑚𝑜𝑑 5 More generally, x≡y mod n means that x and y have the same remainder when divided by n, or that x-y is a multiple of n. 10≡7 𝑚𝑜𝑑 3 22≡12 𝑚𝑜𝑑 5 30≡15 𝑚𝑜𝑑 5
Modular exponentiation 3 1 ≡3 𝑚𝑜𝑑 5 3 42 ≡ 3 2 5 + 2 3 +2 𝑚𝑜𝑑 5 3 2 ≡9≡4 𝑚𝑜𝑑 5 ≡ 3 2 5 + 2 3 +2 𝑚𝑜𝑑 5 3 3 ≡3∗ 3 2 ≡3∗4 ≡12≡2 𝑚𝑜𝑑 5 ≡ (3 2 ) 5 (3 2 ) 3 3 2 𝑚𝑜𝑑 5 3 4 ≡3∗ 3 3 ≡3∗2 ≡6≡1 𝑚𝑜𝑑 5 ≡ 4 5 ∗4 3 ∗4 𝑚𝑜𝑑 5 ⋮ ≡4 𝑚𝑜𝑑 5 Fermat’s little theorem: Let p be a prime number and let x be an integer that is not divisible by p. Then, 𝑥 𝑝−1 ≡1 mod p or 𝑥 𝑝 ≡x mod p
Key points of modular exponentiation xm mod n can be efficiently calculated by expressing the exponent m in binary. Fermat’s little theorem: Let p be a prime number and let x be an integer that is not divisible by p. Then, 𝑥 𝑝−1 ≡1 mod p Euler’s theorem: Let p and q be distinct prime numbers and let x be an integer that is not divisible by p or q. Then, 𝑥 (𝑝−1)(𝑞−1) ≡1 𝑚𝑜𝑑 𝑝𝑞 𝑥 𝑝−1 𝑞−1 +1 ≡𝑥 𝑚𝑜𝑑 𝑝𝑞 More generally, if m ≡ 1 mod (p-1)(q-1) then 𝑥 𝑚 ≡𝑥 𝑚𝑜𝑑 𝑝𝑞
RSA encryption Choose 2 large prime numbers p and q. Calculate n=pq. p and q should be so large that it is not computationally feasible to factor n. n will be publicly shared, but p and q will be secret. Choose a positive integer e which is relatively prime to (p-1)(q-1). e will be publicly shared. Choose a positive integer d such that ed ≡ 1 mod (p-1)(q-1) d will be secret Suppose someone wants to encrypt the integer x such that 1<x<n-1. They encrypt x as the value y ≡ xe mod n To decrypt, we exponentiate to the power d to get yd ≡ xed ≡ x mod n
RSA example Choose p = 2498359 q = 5418341 p and q are just two big prime numbers Calculate n = pq = 2498359 * 5418341 = 13536961002419 Calculate φ(n) = (p-1)(q-1) = 2498358 * 5418340 = 13536953085720 Choose e = 234234239 e was picked to be a prime number big enough to most likely not a factor of (p-1)(q-1) Solve ed ≡ 1 mod (p-1)(q-1) d = 9846393595559 Suppose you want to send the number x=432564456 to Amazon. You calculate and send y=10021380275883 ≡ xe mod n Amazon then calculates x ≡ yd mod n