RSA遇上中国剩余定理
1.Introduction
最近读论文刚好用到了这个,之前只是有耳闻,没有仔细研究过,这里就好好捋一下,会逐步完善
不过貌似CRT(中国剩余定理)的实现更容易被攻击
2. RSA: Overview
rsa算法描述如下:
选择两个大素数\(p、q\),计算\(N = p*q\)(最好保证N在2048bit以上,最新的研究工作已经可以成功分解762bit的N)
计算\(\phi(N)=(p-1)*(q-1)\)
选择一个\(e\)使得\(gcd(e, \phi(n)) == 1\),e由于是作加密使用,故推荐使用小值,推荐使用3、65537(\(2^{16}+1\)),65537只有两个1bit,所以在幂运算(参加我的另一篇博客:快速指数算法)时只需要两次额外的乘法运算;此外,不需要担心使用固定值会造成的安全问题,RSA的安全性不会受影响
计算\(ed = 1 (\mod\phi(n))\),得到\(d\)值用于解密
公钥:(N, e),私钥:(N, d)
一次RSA加解密:
\[c = m^e \mod N\\
m = d^d \mod N\\
\]解释:
即$ m = (m^e)^d = m^{1\mod\phi(N)}=m^{h*\phi(N)+1}\mod N\(,由欧拉定理\)a^{\phi(n)}=1 \mod n$,得到前式等价于
\(1^h*m^1 = m\)
3. Using CRT
3.1 中国剩余定理
描述起来比较麻烦,见中国剩余定理,可以把大模数变小模数
3.2 在RSA中使用CRT
RSA中计算耗时最大的地方是解密的\(c^d\)操作,由于d值往往较大,故计算难度较高,可以使用中国剩余定理适当降低计算量。
计算私钥
下面几部分会被预计算并存入私钥:
- \(p、q\)
- \(dp = d \mod {p-1}\)
- \(dq = d \mod {q-1}\)
- \(q_{inv} = q^{-1} \mod p\)
这样最后的私钥就是\((p,q,d,dp,dq,q_{inv})\)
解密
- \(m_1 = c^{dp} \mod p\)
- \(m_2 = c^{dq} \mod q\)
- \(h = q_{inv}(m_1-m_2)\mod p\)
- 当\(m_1<m_2\)时,有些实现会这样计算\(h = q_{inv}[(m_1+\lceil{\frac{q}{p}}\rceil p)-m_2]\mod p\)
- \(m = m_2+hq \mod {p*q}\)
这样做虽然要计算两次模幂,但效率依然要比直接计算高得多。因为不管是指数还是模数都要小得多
4. 列几个常见的算法库
5 Reference
RSA遇上中国剩余定理的更多相关文章
- (伪)再扩展中国剩余定理(洛谷P4774 [NOI2018]屠龙勇士)(中国剩余定理,扩展欧几里德,multiset)
前言 我们熟知的中国剩余定理,在使用条件上其实是很苛刻的,要求模线性方程组\(x\equiv c(\mod m)\)的模数两两互质. 于是就有了扩展中国剩余定理,其实现方法大概是通过扩展欧几里德把两个 ...
- 洛谷P2480 [SDOI2010]古代猪文(费马小定理,卢卡斯定理,中国剩余定理,线性筛)
洛谷题目传送门 蒟蒻惊叹于一道小小的数论题竟能涉及这么多知识点!不过,掌握了这些知识点,拿下这道题也并非难事. 题意一行就能写下来: 给定\(N,G\),求\(G^{\sum \limits _{d| ...
- gcd,扩展欧几里得,中国剩余定理
1.gcd: int gcd(int a,int b){ ?a:gcd(b,a%b); } 2.中国剩余定理: 题目:学生A依次给n个整数a[],学生B相应给n个正整数m[]且两两互素,老师提出问题: ...
- 【bzoj3782】上学路线 dp+容斥原理+Lucas定理+中国剩余定理
题目描述 小C所在的城市的道路构成了一个方形网格,它的西南角为(0,0),东北角为(N,M).小C家住在西南角,学校在东北角.现在有T个路口进行施工,小C不能通过这些路口.小C喜欢走最短的路径到达目的 ...
- NOI 2018 屠龙勇士 (拓展中国剩余定理excrt+拓展欧几里得exgcd)
题目大意:略 真是一波三折的一道国赛题,先学了中国剩余定理,勉强看懂了模板然后写的这道题 把取出的宝剑攻击力设为T,可得Ti*x=ai(mod pi),这显然是ax=c(mod b)的形式 这部分用e ...
- POJ 1006:Biorhythms 中国剩余定理
Biorhythms Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 121194 Accepted: 38157 Des ...
- 卢卡斯定理&&中国剩余定理
卢卡斯定理(模数较小,且是质数) 式子C(m,n)=C(m/p,n/p)*C(m%p,n%p)%p 至于证明(我也不会QAQ,只要记住公式也该就好了). 同时卢卡斯定理一般用于组合数取模上 1.首先当 ...
- 《孙子算经》之"物不知数"题:中国剩余定理
1.<孙子算经>之"物不知数"题 今有物不知其数,三三数之剩二,五五数之剩七,七七数之剩二,问物几何? 2.中国剩余定理 定义: 设 a,b,m 都是整数. 如果 m ...
- POJ 1006 中国剩余定理
#include <cstdio> int main() { // freopen("in.txt","r",stdin); ; while(sca ...
随机推荐
- java实现第八届蓝桥杯生命游戏
生命游戏 题目描述 康威生命游戏是英国数学家约翰·何顿·康威在1970年发明的细胞自动机. 这个游戏在一个无限大的2D网格上进行. 初始时,每个小方格中居住着一个活着或死了的细胞. 下一时刻每个细胞的 ...
- java实现第七届蓝桥杯压缩变换
压缩变换 压缩变换 小明最近在研究压缩算法. 他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比. 然而,要使数值很小是一个挑战. 最近,小明需要压缩一些正整数的序列,这些序列的特 ...
- Postgresql DB安装和使用问题记录
2.选择语言后提示: Error: There has been an error. Please put SELinux in permissive mode and then run instal ...
- [转] Ubuntu的apt-get 设置代理的方法
点击阅读原文 新立得软件管理器这种图形化的代理设置很明了,这里介绍下终端命令行的网络代理设置,这样大家就可以通过代理进行apt-get了. 方法一: 如果只是想临时使用http代理,可以在使用apt- ...
- zabbix服务的部署
1.zabbix的介绍 zabbix是一个基于WEB界面分布式系统监视以及网络监视功能的企业的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并且提供灵活的通知机制以让系统管 ...
- 一起读《Java编程思想》(第四版)
空余时间看<Java编程思想>(第四版)这本书,遇到不懂的知识点就记录在本博客内. 1.复用具体实现 Java代码复用的三种常见方式:继承.组合.代理. 1.继承:使用extends关键字 ...
- 附015.Kubernetes其他技巧
一 优化镜像源 1.1 国内镜像源 global proxy in China format example dockerhub (docker.io) dockerhub.azk8s.cn dock ...
- Python实现梯度法(最速上升(下降)法)寻找函数极大(极小)值
首先简介梯度法的原理.首先一个实值函数$R^{n} \rightarrow R$的梯度方向是函数值上升最快的方向.梯度的反方向显然是函数值下降的最快方向,这就是机器学习里梯度下降法的基本原理.但是运筹 ...
- 1、安装配置Git私有服务器
安装并配置一个私有的Git服务器吧,这样自己的代码就可以进行版本控制了,当然版本控制的重要性嘛,Please Baidu. 系统环境:64位Win10 Version 1909 安装步骤: 1.下载j ...
- 多语言工作者の十日冲刺<7/10>
这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 团队作业第五次--Alpha冲刺 这个作业的目标 团队进行Alpha冲刺--第七天(05.06) 作业正文 ...