RSA 加密算法是 非对称加密算法
1 :离散对数问题
取模运算(余数)
原根,是一个数学符号。
设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根。
数学表达式:
a ^n % m = φ(m)
已知 φ(m), m , a 求解 n的过程就是离散对数问题
附录:
|3^1 %17 = 3 | 3^6%17 = 15 | 3^11 % 17 = 7 | 3^16 %17 =1|
|3^2%17 = 9 | 3^7%17 = 11 | 3^12 % 17 = 4|
|3^3%17 =10 | 3^8%17 = 16 | 3^13%17 = 12|
|3^4%17 =13 | 3^9%17 = 14 | 3^14%17 = 2|
|3^5%17 =5 | 3^10%17 = 8 | 3^15%17 =6|
3就是17的一个原根!
2:欧拉函数
在数论,对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目(因此φ(1)=1)例如φ(8)=4,因为1,3,5,7均和8互质。
欧拉函数的性质:
1:n为质数,φ(n) = n-1;
2: A = M *N ,(M,N均为质数),则 φ(A)= φ(M)✖️φ(N);
3:综上:φ(A) = (m-1)✖️(n-1);
欧拉定理
定义:如果两个正整数m,n互质,那么m的φ(n)次幂 减去1,可以被n整除。
m ^φ(n) mod n ==1
费马小定理
定义:欧拉定理的特殊情况:如果两个正整数m,n互质,而n为质数,那么φ(n)结果就是n-1;
m ^(n-1) mod n ==1.
模反元素
定义:如果两个正整数e,x互质,那么一定可以找到整数D,使得e乘以D减去1 可以X整除。 那么D 就是e对于x的模反元素。
eD mod x ==1, --> eD -1 = K*x; k为倍数
推导过程:
已知:m^ φ(n) mod n ==1 ;
由:1^k ==1
两边同时k次幂-得:
m ^ k·φ(n) mod n ==1;
由:1·m == m;
得:m ^ k·φ(n)+1 mod n == m;
又: 模反元素 e·D mod x ==1 --> e·D = k · x +1;
得:
m^ e·D mod n == m ;( e跟 φ(n)互质)
非对称加密算法 诞生了 !!!
迪菲赫尔曼秘钥交换
看图说话,直观清晰!




鸣谢:Hank 老师
网友评论