您好,欢迎访问山东渔翁信息技术股份有限公司官方网站
渔翁信息

专注密码硬件研发生产定制

咨询热线: 400-6686-188

产品中心

热门产品

联系我们

咨询热线:400-6686-188

市场合作:孙经理:13806311977

售后服务:房经理:0631-5651692

邮箱:support@fisherman-it.com

地址:济南市高新区齐鲁软件园F座

新闻中心 您的位置:首页 > 新闻中心 >

rsa加密算法的实现

文章出处:渔翁信息作者:渔翁信息人气:发表时间:2019-03-21 13:55

RSA公钥密制是一种用数论构造的,安全性能良好的密码体制,到目前为止在理论上最为完善。它的原理是基于大整数分解的数学难题。

实际上,设N是两个大素数的乘积,则大整数N的分解存在以下4个难题。

(1)将N分解为两个大素数。

(2)给定整数m(明文)和c(密文),寻找d满足少md=c mod N。

(3)给定整数e和c,寻找m满足c=memod N。

(4)给定整数x,判定是否存在整数y满足x=y2 mod N。

现在较好的大整数分解算法有二次筛选法、椭圆曲线法、Pollard的蒙特卡罗算法、数域筛选法等,它在计算上存在困难问题。然而,专家预测用数域筛选法分解n为200位的十进制大整数时,用超高速计算机也得108,因此设计良好的RSA算法加密是足够安全的。

RSA公钥密码体制的实现过程如下:

(1)选择大素数。任选两个秘密的大素数p和q(100~200位的十进制数或更大),计算n=pq,再计算n的欧拉函数:Φ(n)=Φ(p)Φ(q)=(p-1)(q-1)计算完后,n可以公开。

(2)产生公钥和私钥。随机选个可作为某用户的公钥的和Φ(n)互素的整数e。求出e的乘法逆元,将该结果作为私钥d,即de=1 mod Φ(n)。显然,公钥和私钥是成对出现的。其他用户的公钥和私钥也能这样产生,但后者是保密的,前者是公开的。

(3)密钥的发布。将d保密,(d,n)作为私钥;将e公开,(e,n)作为公钥。为了安全,此时可以销毁p、q。

(4)加密。加密时先把明文比特串分组,使每个分组对应的十进制数小于n,即组长度小于log2n。之后对每个明文分组m作加密运算:

c=E(m)=me mod n

(5)解密。对密文分组c的解密运算为:

m=D(c)=cd mod n

  1. 一键分享到

返回顶部