加密解密测试时使用的两组密钥
密钥位数并不精确,可能有几位的差距。
512bit私有密钥(两行分别为d、n)
11C6EBA27BEA0A998C517D522DAE7ADA203F7325576C97853584C9253CD867B0FD6217579F8240F7FCB7474F1B532B8532794605C704D94513B240700BF04C9
195F9E4D3ABD729F6C7E7B7B6AF58DA89A10147DB6ADF0F4F3FA988E4C2441C2130C449852A68E19E32768FB3B41775DD4EF97F92674F3D21547249CD6D70C5
512bit公开密钥(两行分别为e、n)
C359
195F9E4D3ABD729F6C7E7B7B6AF58DA89A10147DB6ADF0F4F3FA988E4C2441C2130C449852A68E19E32768FB3B41775DD4EF97F92674F3D21547249CD6D70C5
1024bit私有密钥(两行分别为d、n)
79113601A430BCE489C6CBD825161014211DCC3D090D86C8F56E0F6324C0994A4E22596588C08B38354BA08C31DB6857BF919B8A67FDC0054A2C5BC783EEDEC3C1900A3AE66FAE1498562C6953FD9B7E0DD6EA515FE190D8123C31933328F79A5F1C63320499D09A4AC8F242E06F6BE903349570CE902197E6B24F3B8AB7D59
90640C3AA06DEC9ED00B8C232812B96F51979338282E782E8A10C5650D162781AC030747B0DEF22C42078036DDC6D42BC5728F5300CD6EDA1FFEC01D1F0B4FC06117BEC185E6429CA536D7BFB9B7235C6CC42A5C50C0C4798A04705212FC345170DEAB00A03E27D26292B7DE39F63874DC4FEB13DBE9C40B6DB9B593869EFD3
1024bit公开密钥(两行分别为e、n)
C359
90640C3AA06DEC9ED00B8C232812B96F51979338282E782E8A10C5650D162781AC030747B0DEF22C42078036DDC6D42BC5728F5300CD6EDA1FFEC01D1F0B4FC06117BEC185E6429CA536D7BFB9B7235C6CC42A5C50C0C4798A04705212FC345170DEAB00A03E27D26292B7DE39F63874DC4FEB13DBE9C40B6DB9B593869EFD3
RSA算法可行性的证明
求证:
<命题1-1> 若 p, q 是相异素数, e×d = 1 mod (p-1)×(q-1),
a 是任意一个正整数,
则有 c = a mod (p×q)
证明:
∵ d×e = 1 mod (p-1)×(q-1)
∴ d×e = k×(p-1)×(q-1) + 1, 其中 k 是整数
∵ 在 mod 中是 preserve 乘法的 (x = y mod z and u = v mod z x×u = y×v mod z),
∴
首先,素数p、q要么能整除a,要么与a互素。
1. 如果 a 不是 p 的倍数, 也不是 q 的倍数时,
则 (费马小定理) (根据质数算术基本定理,a与素数p互素,则am也与p互素,m是整数)
(费马小定理)
∴ p, q 均能整除 - 1 p×q | - 1
即 = 1 mod p×q
c = = a mod p×q
2. 如果 a 是 p 的倍数, 但不是 q 的倍数时,
则 (费马小定理)
= 1 mod q
c = = a mod q
q | c - a
∵ p | a
c = = 0 mod p
p | c - a
∴ p×q | c - a c = a mod p×q
3. 如果 a 是 q 的倍数,但不是 p 的倍数时,证明同2理显然
4. 如果 a 同时是 p 和 q 的倍数时,
则 p×q | a
c = = 0 mod p×q
p×q | c - a
c = a mod p×q
证毕□
费马小定理叙述:e 是任一素数, n 是任一整数, 则 = n mod e (即如果 n 和 e 互质, 则 = 1 mod e) 运用群论知识可以证出费马小定理。
命题1-1说明 a 经过编码为 b 再经过解码为 c 时, a = c mod n (n = p×q),但在做编码解码时, 由于限制 0 <= a < n, 0 <= c < n, 此时显然 a = c, 所以这个过程能做到编码解码的功能。中国余数定理的简单介绍
令n=n1n2...nk,其中ni是两两互质的数,则对0<=a<n与0<=ai<ni且ai=a mod ni,a与(a1,a2...,ak)之间有一种一一对应的关系,一切对a的操作均可被等价的转换为对对应k元组中的每一元进行同样的操作。因此我们可以将一种表达经过简单的转换后得出另一种表达,其中从a到(a1,a2...,ak)的转换十分容易,而从(a1,a2...,ak)推得对应的a则要稍微复杂一些。
首先定义mi=n/ni(i=1,2...k),则mi是除了ni以外的所有nj的乘积,接下来令ci=mi与模n意义下mi的逆元的积,则a为(a1c1+a2c2+...+akck) (mod n)。
例如,已知a模5余2 且 模13余3,那么a1=2,n1=m2=5,a2=3,n2=m1=13,则有c1=13*(2 mod 5)=26,c2=5*(8 mod 13)=40,所以a=(2*26+3*40)(mod 65)=42。