温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

RSA算法及其数学原理 证明

发布时间:2020-08-01 19:18:52 来源:网络 阅读:3156 作者:wh6926981 栏目:安全技术
RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。
RSA的算法涉及三个参数,n、e1、e2。
其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。
e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(e2*e1)mod((p-1)*(q-1))=1。
(n,e1),(n,e2)就是密钥对。其中 (n,e1)为公钥,(n,e2)为私钥。
RSA加解密的算法完全相同,设A为明文,B为密文,则:BA^e2 mod n;A=B^e1 mod n;
e1和e2可以互换使用,即:BA^e1 mod n;A=B^e2 mod n;
 
"":同余符号 
含义:两个整数a,b,若它们除以整数m所得的余数相等,则称a,b对于模m同余
记作 a ≡ b (mod m)
读作a同余于b模m,或读作a与b关于模m同余
比如 26 ≡ 14 (mod 12)
 
 同余性质定理:
1 反身性 a ≡ a (mod m)
2 对称性 若a ≡ b(mod m) 则b ≡ a (mod m)
3 传递性 若a ≡ b (mod m),b ≡ c (mod m),则a ≡ c (mod m)
4 同余式相加若a ≡ b (mod m),c≡d(mod m),则a+-c≡b+-d(mod m)
5 同余式相乘 若a ≡ b (mod m),c≡d(mod m),则ac≡bd(mod m)
6 乘方如果a ≡ b (mod m),那么a^n ≡ b^n (mod m)
7 欧拉定理
设a,m∈N,(a,m)=1,则a^(φ(m))≡1(mod m)
(注:φ(m)指模m的简系个数, φ(m)=m-1, 如果m是素数;φ(m=q1^r1 * q2^r2 * ...*qi^ri)=m (1-1/q1)(1-1/q2)...(1-1/qi))
推论: 费马小定理: 若p为质数,则a^p ≡ a (mod p) 即a^(p-1) ≡ 1 (mod p)
(但是当p|a时不等价)
 
RSA证明过程:

<前提>

若 p, q 是相异质数, rm == 1 mod (p-1)(q-1),
a 是任意一个正整数, b == a^m mod pq, c == b^r mod pq

gcd(m,pq)=1
<结论>

 c == a mod pq

<使用定理>

证明的过程, 会用到费马小定理, 叙述如下:
m 是任一质数, n 是任一整数, 则 n^m == n mod m
(换另一句话说, 如果 n 和 m 互质, 则 n^(m-1) == 1 mod m)

<证明>
因为 rm == 1 mod (p-1)(q-1), 所以 rm = k(p-1)(q-1) + 1, 其中 k 是整数
因为在 modulo 中是 preserve 乘法的
(x == y mod z   and   u == v mod z   =>   xu == yv mod z),
所以, c == b^r == (a^m)^r == a^(rm) == a^(k(p-1)(q-1)+1) mod pq

1. 如果 a 不是 p 的倍数, 也不是 q 的倍数时,
    则 a^(p-1) == 1 mod p (费马小定理)   =>   a^(k(p-1)(q-1)) == 1 mod p
       a^(q-1) == 1 mod q (费马小定理)   =>   a^(k(p-1)(q-1)) == 1 mod q
    所以 p, q 均能整除 a^(k(p-1)(q-1)) - 1   =>   pq | a^(k(p-1)(q-1)) - 1
    即 a^(k(p-1)(q-1)) == 1 mod pq
    =>   c == a^(k(p-1)(q-1)+1) == a mod pq

2. 如果 a 是 p 的倍数, 但不是 q 的倍数时,
    则 a^(q-1) == 1 mod q (费马小定理)
    =>   a^(k(p-1)(q-1)) == 1 mod q
    =>   c == a^(k(p-1)(q-1)+1) == a mod q
    =>   q | c - a
    因 p | a
    =>   c == a^(k(p-1)(q-1)+1) == 0 mod p
    =>   p | c - a
    所以, pq | c - a   =>   c == a mod pq

3. 如果 a 是 q 的倍数, 但不是 p 的倍数时, 证明同上

4. 如果 a 同时是 p 和 q 的倍数时,
    则 pq | a
    =>   c == a^(k(p-1)(q-1)+1) == 0 mod pq
    =>   pq | c - a
    =>   c == a mod pq


这个定理说明 a 经过编码为 b 再经过解码为 c 时, a == c mod n   (n = pq)....
但我们在做编码解码时, 限制 0 <= a < n, 0 <= c < n,
所以这就是说 a 等於 c, 所以这个过程确实能做到编码解码的功能.....

 

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI