rsa算法的数论基础

rsa算法的数论基础

ID:10118288

大小:191.74 KB

页数:6页

时间:2018-06-11

rsa算法的数论基础_第1页
rsa算法的数论基础_第2页
rsa算法的数论基础_第3页
rsa算法的数论基础_第4页
rsa算法的数论基础_第5页
资源描述:

《rsa算法的数论基础》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、RSA算法的数论基础一、公钥密码体制基础一个好的密码体系的必要条件是合法用户能够很容易对秘密消息进行加密和解密,而这些过程对于其他人则是非常难的。公钥密码体制的实现基于单向陷门函数。单向陷门函数:设f是一个函数,t是与f有关的一个参数。对于任意给定的x,计算y,使得y=f(x)是容易的。如果当不知道参数t时,计算f的逆函数是难解的。但当知道参数t时,计算f的逆函数是容易的。则称f是一个单向陷门函数,参数t称为陷门。二、RSA算法的安全基础计算机科学家Rivest、Shamir和Adleman提出了基于素性检测和整数分

2、解的第一个使用公钥密码体制。算法的安全性建立这一数论难题基础上:将两个大素数相乘是容易计算的,而将该乘积分解成两个大素数因子是困难的。素性检测问题:检测n的素性的最好额判定算法运行时间为,关于输入长度呈超越多项式速度增长。整数因子分解问题:分解一个一般的整数n的最好的算法运行时间为,关于输入长度呈亚指数速度增长。三、RSA算法实现的基础定理算术基本定理:任何大于1的整数n能被因式分解为如下唯一形式:n=p1p2…pl(p1,p2,…,pl为素数)费马小定理:若p是素数,a与p互素,则欧拉定理:欧拉函数表示不大于n且与

3、n互素的正整数的个数。当n是素数,。,p,q均为素数时,则对于互素的a和n,有四、RSA算法的实现1.密钥的产生①选两个互异的大素数p和q。②计算n=p×q,φ(n)=(p-1)(q-1),其中φ(n)是n的欧拉函数值。③选一随机整数e,满足1

4、十进制数小于n,即分组长度小于。然后对每个明文m,作加密运算:3.解密对密文分组的解密运算为:五、证明RSA算法中解密过程的正确性设p,q是不同的素数,n=pq记φ(n)=(p-1)(q-1),如果e,d是与φ(n)互素的两个正整数(e,d<φ(n)),并满足ed≡1(modφ(n)),则对于每个整数x,都有。分析:为了证明,只要证明φ(n)是的因数即可。又因为n=pq,而p,q都是素数,故只要证明p和q都是的因数即可,即(1)(2)证明:证明式1,若p是x的因数则式1必然成立若p不是x的因数,则由ed≡1(modφ

5、(n))得ed-1=k(p-1)(q-1),k为任意整数则根据费马小定理因为x与p互素所以所以同理可证即证六、RSA算法中的计算问题1.模运算性质RSA的加密、解密过程的运算都为求一个整数的整数次幂,再取模。如果按其含义直接计算,则中间结果非常大,有可能超出计算机所允许的整数取值范围。而用模运算的性质:(a×b)modn=[(amodn)×(bmodn)]modn就可减小中间结果。2.模重复平方计算法例如求,直接计算的话需做15次乘法。然而如果重复对每个部分结果做平方运算即求x,,,,则只需4次乘法。3、乘法逆元的求

6、法(欧几里德算法)整数e,满足1

7、.继续选取另一个随机整数b,(b)否则,有以及,计算4.(a)如果,则通过检验,可能为素数。回到1.继续选取另一个随机整数b,(b)否则,有,计算如此继续下去。需要检测多少个随机整数(特定)才能找到一个素数。定义为不超过x的素数的个数,素数定理:在1~x中随机选取一个整数,其为素数的概率大约为1/Inx。八、因子分解分解任意正整数n是,要寻找n的一个非平凡因子。对RSA的公开模数n,找到其任意一个非平凡因子即意味这彻底分解n和该RSA密码的破解。举例Pollardp-1分解算法:1.选择一个界B2.选择一个整数k,k

8、是大部分b的乘积满足3.选择一个随机整数4.计算5.计算d=gcd(r-1,n)6.如果1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。