加密总结

2022-01-17  本文已影响0人  看谷秀

搞清楚这个算法之前先认识几个量

EDN

公钥(E,N):公开

私钥(D,N)

秘钥对(E,D,N)

什么是RSA算法

常见的秘钥加密算法分为对称加密算法和非对称加密算法。对称加密算法是指加密和解密使用同一个秘钥。非对称加密算法是指加密和解密使用不同的两个秘钥,公钥和私钥。

RSA是一种非对称加密算法。

RSA加密

密文=明文^E mod N

就是明文的E次方取余除以N求余数的过程。(E,N)这一对是加密秘钥,也就是公钥,只要知道公钥,任何人都可以对明文进行加密。当然E和N是经过严格的计算得出,计算方法在下面。

RSA解密

明文=密文^D mod N

解密的步骤和加密一样。(D,N)就是私钥,知道私钥就可以将密文解密。

生成秘钥对即公钥和私钥

随机找两个质数PQ,数越大越安全

假设P = 7,Q = 17 计算乘积 n = P*Q = 119,119的二进制:1110111,即该加密算法为7位,位数越高,安全系数越高。

计算n的欧拉函数 φ(n)

φ(n) 表示在小于等于 n 的正整数之中,与 n 构成互质关系的数的个数。例如:在 1 到 8 之中,与 8 形成互质关系的是1、3、5、7,所以 φ(n) = 4。
如果 n = P * Q,P 与 Q 均为质数,则 φ(n) = φ(P * Q)= φ(P - 1)φ(Q - 1) = (P - 1)(Q - 1) 。
本例中 φ(n) = 7 * 17= 119,这里记为 m, m = φ(n) = 96

随机选一个数e,要求在1到m之间,并且与M互为质数

选择e = 5

有一个整数 d,可以使得 e*d 除以 m 的余数为 1。

计算公式:(e * d ) % m = 1

5 * 77 % 96 = 1

由此可知:d = 77

由上述计算可知:E = 5 ;D = 77;N = 119

结合开头的概念:

公钥【5,119】 私钥【77,119】秘钥对【5,77,119】

取一个明文m = 19 (m<n)。注意要加解密的文不能超过n。

加密:
c = m^E mod n = 66 mod 119

解密:

c = m^D mod n = 16 mod 119
————————————————
原文链接:https://blog.csdn.net/hujinlong6930/article/details/102490442

上一篇 下一篇

猜你喜欢

热点阅读