RSA加密解密数学原理

RSA加密解密数学原理


1,互质关系
两个正整数,除1以外,再没有别的公因子。 比如 2 和3, 2和 9。

2,欧拉函数
任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系?(比如,在1到8之中,有多少个数与8构成互质关系?)

计算上面这个多少个的函数就被成为欧拉函数,以φ(n)表示。在1到8之中,与8形成互质关系的是1、3、5、7,所以 φ(n) = 4。

3,欧拉定理
由上面的欧拉函数可以经过一系列的推导,得到欧拉定理

如果两个正整数a和n互质,则n的欧拉函数 φ(n) 可以让下面的等式成立:

4,特殊情况——费马小定理
欧拉定理的特殊情况,当第二个数n为质数的情况。

假设正整数a与质数p互质,因为质数p的φ§等于p-1,

5,模反元素
如果两个正整数a和n互质,那么一定可以找到整数b,使得 ab-1 被n整除,或者说ab被n除的余数是1。比如a = 3 ,n = 5,则一定有(a*b)%n =1 ,即3b -1 = 5y,即一定存在一个数2,可以满足上式。
在这里插入图片描述

RSA实现原理


第一步,选择两个不等质数p,q(实际密钥一般为1024位或2048位)
这里我们选择 61 和53。

第二步,计算乘积n
n = p*q = 3233 (二进制110010100001,只有12位)

第三步,计算n的欧拉函数φ(n)
φ(n) = φ§*φ(q)= (p-1)(q-1) = 3120 。一个质数p的欧拉函数等于p-1

第四步,随机选择一个整数e,条件是1< e < φ(n),且e与φ(n) 互质。
取e = 17 (实际应用中,常常选择65537)。

第五步,计算e对于φ(n)的模反元素d。
即找出一个d满足 ed互质,且对于φ(n) 取模为1 ,即 ed = 1 (mod φ(n))。

即 ed -1 = kφ(n) ,带入上面已知条件:

17d -1 = k3120 即 17x +3120y = 1 (据说可以使用 扩展欧几里得算法求解)

这里直接给出答案 d = 2753。

第六步,将n和e封装成公钥,n和d封装成私钥。
代入本次的推导过程中的数字,n = 3233,e = 17, d=2753。公钥为(3233,17),私钥为(3233,2723)。

加密使用 (3233,17),解密使用(3233,2723)。

附:

公钥和私钥的区别其实只是d,也就是说d的推导是否可以在已知n,e的情况下推导出来。

由第五步,要得出d,已知n,e。需要φ(n)。

由第三部,要得出φ(n),需要p,q。

而已知n=p*q。而n已知,只需要分解n因子即可。

结论:只要n可以被分解,公私玥加密即可被破解,但在实际中,由n推导出pq是一件十分困难的事情,现代计算机需要花费大量时间(4小时~天)来解密,不太适中(量子计算机除外)。

————————————————
版权声明:本文为CSDN博主「不会汪汪的猫咪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:原文地址

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值