Python 密码学 - 了解RSA算法
RSA 算法是一种公钥加密技术,被认为是最安全的加密方式。 它由 Rivest、Shamir 和 Adleman 于 1978 年发明,并因此命名为 RSA 算法。
算法
RSA 算法具有以下特点 −
RSA 算法是有限域中对整数(包括素数)求幂的一种流行算法。
此方法使用的整数足够大,难以求解。
该算法中有两组密钥:私钥和公钥。
您必须通过以下步骤才能使用 RSA 算法 −
第 1 步:生成 RSA 模数
初始过程首先选择两个质数 p 和 q,然后计算它们的乘积 N,如图所示 −
N=p*q
这里,设N为指定的大数。
第 2 步:派生号码 (e)
将数字 e 视为派生数,它应该大于 1 且小于 (p-1) 和 (q-1)。 首要条件是 (p-1) 和 (q-1) 除了 1 之外没有公因数
第三步:公钥
指定的一对数字n和e构成RSA公钥并公开。
第 4 步:私钥
私钥 d 是根据数字 p、q 和 e 计算得出的。 数字之间的数学关系如下 −
ed = 1 mod (p-1) (q-1)
上面的公式是扩展欧几里得算法的基本公式,它以p和q为输入参数。
加密公式
考虑将纯文本消息发送给公钥为(n,e) 的发件人。 要在给定场景中加密纯文本消息,请使用以下语法 −
C = Pe mod n
解密公式
解密过程非常简单,包括以系统方法进行计算的分析。 考虑到接收者C有私钥d,结果模数将计算为 −
Plaintext = Cd mod n