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 之外没有公因数

第三步:公钥

指定的一对数字ne构成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