多素数RSA系统简介

普通的 RSA系统,在生成密钥时使用两个大素数,以它们的乘积作为模。本文介绍一种PKCS#1 V2.1中描述的“多素数RSA系统”,它可以使用超过两个素数的乘积作为模。  

多素数RSA密钥产生算法如下:
1.       
生成k个素数p1, p2, …, pk
2.       
k个素数的乘积n=pi, i=1,2,…,k
3.       
Euler函数值φ(n)=(pi-1)
4.       
选择指数e, 使得gcd(e,φ(n))=1
5.       
求指数d=e-1 mod φ(n)
6.       
输出公钥(e,n)和私钥(d,n)

多素数RSA加密和解密算法与普通RSA的相同:
加密 c=me mod n
解密 m=cd mod n

例如,在三素数RSA系统中,设p1=3,p2=7,p3=13,则
n=3
×7×13=273,φ(n)= 2×6×12=144,选择e=5,推出d=29。
得到公钥为(5,273),私钥为(29,273)。
设明文为m=18,则加密过程为
c= me mod n=185 mod 273=135,
解密过程为
m= cd mod n =13529 mod 273=18

显然,要达到相同的密钥位数(模的位数),多素数RSA系统比普通RSA系统所需要的素数要小。因此,多素数RSA算法的优点主要表现在两个方面:
1.       
能够减少生成密钥的计算量。
2.       
应用孙子定理(中国剩余定理),能够减少解密、签名的计算量。

另一方面,素因子越小,大数分解就越容易。RSA实验室公布的数据显示,使用的素数越多,RSA强度越低。下表列出了攻破2至多素数RSA系统所需要的运算量(单位:MIPS·)。 

密钥长度

2素数(普通)

3素数

4素数

5素数

512 bits

2.1 x 106

容易

很容易

非常容易

768 bits

4.0 x 1011

1.2 x 108

容易

很容易

1024 bits

1.4 x 1016

3.0 x 1011

2.1 x 108

容易

1536 bits

8.2 x 1023

1.8 x 1017

1.9 x 1013

4.2 x 1010

2048 bits

3.8 x 1030

1.5 x 1022

3.2 x 1017

2.3 x 1014

可见,多素数RSA系统还是具有一定实用价值的。在实际应用中,采取普通还是多素数RSA系统,应视具体情况而定。

 

[相关资源]

l         RFC 3447 - PKCS #1: RSA Cryptography Specifications Version 2.1

l         A Cost-Based Security Analysis of Symmetric and Asymmetric Key Lengths

l         bhw98的专栏:http://www.csdn.net/develop/author/netauthor/bhw98/


首次发布: 2003-10-24
最后修订: 2003-10-24

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值