主题
Search

RSA 加密


一种 公钥密码学 算法,它使用 素因数分解 作为 陷门单向函数。定义

 n=pq
(1)

对于 pq 素数。 还要定义一个私钥 私钥 和一个公钥 公钥 使得

 de=1 (mod phi(n))
(2)
 (e,phi(n))=1,
(3)

其中 欧拉函数欧拉函数, (a,b) 表示 最大公约数 (所以 (a,b)=1 意味着 ab互质), 并且 a=b (mod m) 是一个 同余。 令消息被转换为数字 M。 然后发送者公开 ne 并发送

 E=M^e (mod n).
(4)

为了解码,接收者(知道 d)计算

 E^d=(M^e)^d=M^(ed)=M^(Nphi(n)+1)=M (mod n),
(5)

因为 N 是一个 整数。 为了破解代码,必须找到 d。 但这需要因式分解 n 因为

 phi(n)=(p-1)(q-1).
(6)

应该选择 pq ,使得 p+/-1q+/-1 可以被大的 素数 整除,否则 Pollard p-1 因式分解方法Williams p+1 因式分解方法 可能会很容易地分解 n。 最好 phi(phi(pq)) 也很大并且可以被大的 素数 整除。

如果 Z/phi(n)Z 的单元具有小的 域阶 (Simmons 和 Norris 1977, Meijer 1996),则有可能通过重复加密来破解密码系统,其中 Z/sZ 是 0 到 s-1 之间的 整数环 在加法和乘法下 (模 s)。Meijer (1996) 表明,对于以下 形式 的因子,几乎每个加密指数 e 都是安全的,不会通过重复加密被破解

p=2p_1+1
(7)
q=2q_1+1,
(8)

其中

p_1=2p_2+1
(9)
q_1=2q_2+1,
(10)

并且 p, p_1, p_2, q, q_1, 和 q_2 都是 素数。 在这种情况下,

phi(n)=4p_1q_1
(11)
phi(phi(n))=8p_2q_2.
(12)

Meijer (1996) 还建议 p_2q_2 应该具有 10^(75) 阶数。

使用 RSA 系统,可以在不泄露其私有代码的情况下,将发送者的身份识别为真实的。


另请参阅

同余, 公钥密码学, RSA 数

使用 Wolfram|Alpha 探索

参考文献

Coutinho, S. C. 密码的数学:数论和 RSA 密码学。 Wellesley, MA: A K Peters, 1999.Flannery, S. and Flannery, D. 代码之内:数学之旅。 Profile Books, 2000.Honsberger, R. 数学珍宝 III。 Washington, DC: Math. Assoc. Amer., pp. 166-173, 1985.Meijer, A. R. "群、因式分解和密码学。" Math. Mag. 69, 103-109, 1996.Rivest, R. L. "关于对 MIT 公钥密码系统提出的密码分析攻击的评论。" Cryptologia 2, 62-65, 1978.Rivest, R.; Shamir, A.; and Adleman, L. "一种获取数字签名和公钥密码系统的方法。" MIT Memo MIT/LCS/TM-82, 1977.Rivest, R.; Shamir, A.; and Adleman, L. "一种获取数字签名和公钥密码系统的方法。" Comm. ACM 21, 120-126, 1978.RSA Laboratories. "RSA 因式分解挑战" http://www.rsa.com/rsalabs/node.asp?id=2092.Schnorr, C. P. "通过 SVP 算法快速分解整数。" Cryptology ePrint Archive: Report 2021/232. 2021 年 3 月 1 日. https://eprint.iacr.org/2021/232.Simmons, G. J. and Norris, M. J. "关于 MIT 公钥密码系统的初步评论。" Cryptologia 1, 406-414, 1977.

在 Wolfram|Alpha 中被引用

RSA 加密

引用为

韦斯坦, 埃里克·W. "RSA 加密。" 来自 MathWorld——Wolfram Web 资源。 https://mathworld.net.cn/RSAEncryption.html

主题分类