Skip to content

RSA 数论背景&证明

Posted on:March 3, 2023 at 09:05 AM

互质

ab 的最大公因子为 1,则称 ab 互质。

互质关系有:

同余

当两个整数除以同一个正整数,若得相同余数,则二整数同余

两个整数a, b若它们除以正整数m所得的余数相等,则称a, b对于模m同余,记作:

相乘:

,则

证明:

除法原理一:

,且c, m互质,则:

证明:

由于c, m互质,则 有因子m,即:

费马小定理

费马小定理

假如 a 是一个整数,p 是一个质数,那么 p 的倍数,可以表示为

如果 a 不是 p 的倍数,这个定理也可以写成

简单证明:

任意取一个质数,比如 7,给定数集 { 1,2,3,4,5,6 } ,给这些数都乘上一个与 7 互质的数,比如 3, 得到 { 6,12,18,24,30,36 }, 对于模 7 来说,这些数同余于 { 6,5,4,3,2,1 } , 这些余数实际上就是集合 { 1,2,3,4,5,6 }

{ 1,2,3,4,5,6 } 做阶乘,得到 { 6,12,18,24,30,36 } 做阶乘,提取公因子3,乘积就是

得:

由于 和 7 互质,由上面同余 除法原理一 可得,

如果用 p 代替 7,用 a 代替 3,就得到 费马小定理

欧拉函数

欧拉函数 小于或等于 n 的正整数中与 n 互质的数的数目

n 为一个质数,那么

欧拉定理

欧拉定理 如果两个正整数 an 互质,则 n 的欧拉函数 可以让下面的等式成立:

欧拉定理中的一种特殊情况,当 n 为质数时,可得 费马小定理:

模反元素

模反元素 如果两个正整数 an 互质,那么一定可以找到整数 b,使得 ab - 1n 整除.

证明: 由 欧拉定理 可得: 则: 可得:

RSA 加密算法

步骤:

在 openssl 中   固定为 65537 > [知识点]费马数: 对于 ,通常可选 3, 5, 17, 257 和 65537。因为它们都是质数,且二进制中只有 2 位是 1,可以加快 d 的计算。这几个 e 的可选值实际是费马数的前 5 个数,费马数定义是, 都是质数,但是从 开始就不是质数了。 例如:,实际应用中通常选择 作为 .

  1. 常用于客户端公钥加密数据然后服务端私钥解密获取原始数据
  2. 常用于服务端私钥加密签名数据,客户端公钥解密获取签名数据并校验签名

实例

可靠性

使用数字:

公钥: ( ne )

私钥: ( nd )

那么已知 ne 的情况下,可以推导出 d 吗?

  1. , 只有知道 才能算出 ;
  2. ,只有知道 ,才能算出 ;
  3. ,只能将 因数分解,才能算出 .

结论:如果 可以被因数分解, 就可以算出,也就意味着私钥被破解。

唯一质数分解定理:任何一个大于 1 的正整数 n 都可以   唯一分解   为一组质数的乘积,其中都是自然数(包括 0) 大数质因数分解

证明

证明其一即可,即证:

证明:

由于

  1. 假设: 互质: 由欧拉定理有:

    由此:

    得证。

  2. 假设: 不是互质关系: 此时,由于 等于质数 的乘积,所以 必然等于 ,假设 ,由于 必然与 互质,由费马小定理得:

    这时 t 必然能被 整除,即 , 得:

    ,得:

    得证。

证毕。

来自量子计算的挑战

RSA 加密系统能够确保安全的前提是,没有一个计算机能够在可接受的时间内分解一个极大整数,即使是超级计算机也要花费数年的时间。

基于量子计算机的质因数分解算法——Shor 算法,这种算法最吸引人的地方是,它能够将质因数分解问题的复杂度,从指数难度降低到近多项式难度

shor 算法 Grover 量子搜索算法

参考: RSA 互质 同余 费马小定理 唯一质数分解定理 整数分解 RSA 算法原理全面解析