天天看點

RSA算法簡單執行個體

2020-07-05

10:41:51

rsa算法過程:

(1)選擇一對不同的、足夠大的素數p,q。

(2)計算n=pq。

(3)計算f(n)=(p-1)(q-1),同時對p, q嚴加保密,不讓任何人知道。

(4)找一個與f(n)互質的數e,且1<e<f(n)。

(5)計算d,使得de≡1 mod f(n)。

(6)公鑰KU=(e,n),私鑰KR=(d,n)。

(7)加密時,先将明文變換成0至n-1的一個整數M。若明文較長,可先分割成适當的組,然後再進行交換。設密文為C,則加密過程為:C≡Me(mod n)。

(8)解密過程為:M≡Cd(mod n)。

MOD,是一個數學運算符号。指求餘運算符,例如a mod b=c,表明a除以b餘數為c。

兩個整數a,b,若它們除以正整數m所得的餘數相等,則稱a,b對于模m同餘,記作: a ≡ b (mod m);

RSA算法簡單執行個體

rsa 算法執行個體

取p =3 ,q = 11; 則 n = pq = 33; f(n) = (p-1)(q-1) = 20, 在1到20中取e與20互質,取e=3(也可以取其他);

d*3≡1 mod 20 ;取d = 7(d也可以為27等)

公鑰KU為e,n : 3,33

私鑰KR為d, n : 7, 33

原文11,5,25進行加密

113 mod 33 = 11

53 mod 33 = 26

253 mod 33 = 16

對11,26, 16解密

117 mod 33 = 11

267 mod 33 = 5

167 mod 33 = 25

引用自:https://segmentfault.com/a/1190000016836514