Cryptography With Python 简明教程

Understanding RSA Algorithm

RSA 算法是一种公钥加密技术,被认为是最安全的加密方式。它由 Rivest、Shamir 和 Adleman 于 1978 年发明,因此得名 RSA 算法。

Algorithm

RSA 算法具有以下特点:

  1. RSA 算法是在整数上的有限域内的流行幂运算,其中包括质数。

  2. 此方法使用的整数足够大,因而难以求解。

  3. 此算法中有两组密钥:私钥和公钥。

您必须执行以下步骤才能使用 RSA 算法:

Step 1: Generate the RSA modulus

初始步骤从选择两个质数 p 和 q 开始,然后计算它们的乘积 N,如下所示:

N=p*q

此处,令 N 为指定的大数。

Step 2: Derived Number (e)

将数字 e 视为一个派生数字,它应该大于 1 且小于 (p-1) 和 (q-1)。主要条件是 (p-1) 和 (q-1) 不存在 1 之外的公因子

Step 3: Public key

指定的数字对 ne 构成 RSA 公钥,并且公之于众。

Step 4: Private Key

私钥 d 根据数字 p、q 和 e 计算。数字之间的数学关系如下:

ed = 1 mod (p-1) (q-1)

以上公式是扩展欧几里得算法的基本公式,它把 p 和 q 作为输入参数。

Encryption Formula

考虑一个发送者,他给拥有公钥 (n,e). 的某人发送明文消息。要在给定的场景中加密明文消息,请使用以下语法:

C = Pe mod n

Decryption Formula

解密过程非常简单,包括分析以便按照系统方式进行计算。假设接收器 C 拥有私钥 d ,则结果模数将被计算为:

Plaintext = Cd mod n