用于计算压缩rsa模数的方法

文档序号:7692419阅读:209来源:国知局
专利名称:用于计算压缩rsa模数的方法
技术领域
本发明通常涉及加密,具体涉及压縮的RSA模数。
背景技术
该部分意在向读者介绍本领域的各个方面,这些方面与以下描述和/ 或所要求保护的本发明的各个方面相关。相信该讨论会有助于向读者提供 背景信息以便于更好地理解本发明的各个方面。因此,应当理解,将就此 目的阅读这些论述,而并非将其作为对现有技术的认可。
为了产生用于公共加密的所谓Rivest-Shamir-Adleman (RSA)模数,可 以进行如下处理。
令w-;^是两个大质数之积。令e和d表示一对公共和私有指数,满

其中gcd(e,;M;N))-l ,并且人是卡米克尔函数。由于^ = ;^,因而有MN) =lcm(p-l,q-l)。给定x〈N,公共运算(例如消息加密或签名验证)是 将x升到e次幂模N,即,进行y-xemodN计算。然后,给定y,相应 的私有运算(例如,密文解密或签名产生)是计算ydmodN。根据e和d 的定义,显然有yd三x(modN)。可以通过中国剩余定理(CRT模式),以 较高速度执行私有运算。模p和q的计算是独立执行的,然后再进行重新 组合。在这种情况下,私有参数是(p,《,《,^W ,其中
<ip = d mod (p — 1),
^ = dmod (《—1),以及
/ -《一7 mod ; .
然后获得/modN为
CRT(Xp, Xq) = xq +《[//a — W mod ; ], 其中x^y咖mod; 以及Xq二/《mod^概括而言,RSA模数是两个大质数p和《之积,满足gcd(人(N), e)-l。如果n表示N的比特大小,则对于某一K ^,; 必须在范围[2"—Y1/2 2"飞-l]内,以及《在范围[2"o—'/2, 2"f l]内,从而2"—'<7V = ;^<2"。出于安 全原因,通常优选所谓均衡模数,其中^7 = 2"0。
目前典型的RSA模数在1024至4096比特的长度范围内,并对于应 用来说通常需要至少2048比特的模数。然而,仍存在运行设计用于支持 仅1024比特模数的支持RSA的应用程序的程序和/或设备。
将会理解,能够压縮模数、从而可以适合较短的缓冲或带宽的解决方 案将会是极为有利的。除了存储/发送整个RSA模数之外,使用无损失的 压縮表示。这也解决了程序和/或设备的不同版本之间的兼容问题。此外, 这种技术可以用于提高效率节约存储器和/或带宽。
Vanstone禾0 Zuccherato在"Short RSA Keys and Their Generation", Journal of Cryptology, New York, NY, US, vol. 8, no. 8, 1995,第101-114页, XP000853671中描述了一个这样的解决方案。该解决方案实现了高达N/2 个前导比特的规范,但是相当复杂,需要例如由指定比特给出的数字的因 数分解。此外,所产生的模数相对易于进行因数分解。
Lenstra, Arjen K.在"Generating RSA moduli with a predetermined portion"; Advances in Cryptology — ASIACRYPT '98, volume 1514 of Lecture Notes in Computer Science, pp. 1-10; Springer 1998中描述了另一种这样的 解决方案。该解决方案是针对Vanstone和Zuccherato的解决方案的一种改 进,因为它不太复杂,并且所产生的模数较难于进行因数分解。
然而,任何一种现有技术均不允许预先确定RSA模数的多于一半的 比特。
然而,本发明对于Lenstm产生算法的改进在于,例如本发明允许更 大的压縮。

发明内容
在第一方面,本发明提出了一种用于产生RSA模数的因子的方法, 该因子包括能够大于RSA模数的一半的预定部分,该RSA模数包括至少 两个因子。首先,接收RSA模数要共享的预定部分的值。产生至少两个备选因子,其乘积至少共享所述预定部分的第一部分。通过以下步骤,使 用欧几里德型计算对所述至少两个备选因子进行修改,直至所产生的因子 是质数,并且所产生的因子的乘积完全共享所述预定部分使用扩展
(extended)欧几里德算法的扩充(extension)来评估所述至少两个备选 因子中每个的修正值;以及分别将修正值加至所述至少两个备选因子,以 获得至少两个所产生的因子;其中所产生的因子的乘积包括第一共享部 分,并共享所述预定部分的第二部分。最后,输出所产生的因子,以允许 使用所产生的因子进行加密运算。
在第一优选实施例中,RSA模数是三质数RSA模数。 在第二优选实施例中,《^\模数具有^ = /《形式。 在第三优选实施例中,所述产生步骤包括以下步骤选择第一备选因 子;并将第二备选因子计算为一值与第一备选因子的除法的整数结果,从 而备选因子的乘积至少共享所述预定部分的第一部分,该值具有与RSA 模数同样多的比特,并共享所述预定部分。
在第四优选实施例中,扩展欧几里德算法的扩充使用了通过扩展欧几 里德算法(满足fl", + 6v,二《,其中0 = ^和6=; 。)所获得的序列{",, 《},以导出由下式给出的两个伴随序列{^}和[y,}:<formula>formula see original document page 6</formula>
其中z。 = c及z,. = zM mod of,. , c = 2 + (TV// 2 mod / 0)。
在第二方面,本发明提出了一种用于计算RSA模数的因子的设备, 该因子包括能够大于RSA模数的一半的预定部分,该RSA模数包括至少 两个因子。所述设备包括处理器,适于接收RSA模数要共享的预定部 分的值;产生至少两个备选因子,其乘积至少共享所述预定部分的第一部 分;通过以下步骤,使用欧几里德型计算对所述至少两个备选因子进行修 改,直至所产生的因子是质数,并且所产生的因子的乘积完全共享所述预 定部分使用扩展欧几里德算法的扩充来评估所述至少两个备选因子中每 个的修正值;以及分别将修正值加至所述至少两个备选因子,以获得至少两个所产生的因子;其中所产生的因子的乘积包括第一共享部分,并共享 所述预定部分的第二部分。所述处理器还适于输出所产生的因子,以允许 使用所产生的因子进行加密运算。
在第三方面,本发明提出了一种计算机程序产品,包括在所述程序在 处理器上执行时用于执行根据第一方面的方法的步骤的程序代码指令。
"共享"应被理解为针对要共享的部分具有相同的值,例如,十六进制
数1234567890abcdef和123456789abcdefD共享所述数字的前导部分中的 123456789。


现在参照附图,通过示例来描述本发明的优选特征,其中 图1示出了根据本发明的示例性RSA模数10;
图2示出了应用了 RSA-2048 口令(challenge)的本发明的方法示例;
以及
图3示出了用于计算压縮RSA模数的设备。
具体实施例方式
本发明的主要方法概念是一种提供用于产生RSA类型加密方案中的 密钥的n比特RSA模数iV的方法,其中tV的n比特的高达约三分之二是 预定的。
图1示出了根据本发明的示例性RSA模数10。1表示AO的比特长度。 因此"="0 + /(:' + /。
令^ = /^是两个大质数的乘积,其中p是(n-"q)比特的整数,q是 比特的整数,从而iV是n比特的RSA模数。
首先,计算内和^如下。
1. 使用伪随机数发生器,根据随机种子So产生( +;c')比特的整数A^ :
WH := iVh|i\Tra = 2"""'-1 v prnG(s。) e [2"0-、2"0 - 1] || [C' — 1]。 本领域技术人员将会理解,自然也可以选择该值。
2. 随机选择整数p。e『, -〃^2^o _ !|。200810098588.3
说明书第5/6页
3.定义t 。=
本领域技术人员将会理解,针对A)和《。的这种选择
J妾下来,^/ -A) + ;c , g = 0+_y且z=^_y + 2"—M。因]t匕获f导
W = iVH2+ iV:=朋。+ (p0y + qr。x) + o 。x + p0y + - W=WH2J _ Mo O (JqX + _p。y + z = 22-i + (^2〗mod _p0)
现在必须找到满足IW - z| = |M - 2"| < 2"的后一方程的整数解(x,少, z)D为此,考虑通过满足a", + 6v「《(其中^ = ^及Z^w)的扩展欧 几里德算法获得的序列{",, v,,《}。
扩展欧几里德算法产生了三个序列{",.}、 (vj和(dj。以下是对基于扩
、隐式或显式产生的至少一个不同的
展欧几里德算法的序列中的至少 序列的扩展欧几里德算法的扩充。
然后定义z广c及z,-z,.,mod《,其中c:2"+(iV〃2'mod; o),并且 通过下式给出两个伴随(companion)序列".}和化}
{x0 = 0;Xi
+
{ y。 = 0; k = yn + 、
W及
如所需,有
4-d,.
』 4
=a乂H + + z"工_ (z"丄mod dj = ax^—工+ jby"j —! + Zn - z丄
=sx。 + by。 + z0 - ^ = c - &
并且存在所需范围内的解。
图2示出了应用了 RSA-2048 口令(challenge)的本发明的方法示例。 如所见,通过本发明的方法产生的质数和g使得相应的RSA模数iV = ;^ 在其前三分之二上与RSA-2048 口令匹配(由下划线十六进制图表示)。
图3示出了适于计算RSA模数的设备。设备30包括处理器31,该处理器可以是单个处理器或多个处理器的组合;存储器32;适于从存储了程
序代码的存储介质35接收用于执行所述方法的程序代码的通信接口 33; 以及用户接口 34。
优选地,处理器31适于优选根据本发明的方法来产生RSA模数,存 储器32适于存储数据,以及通讯接口 33适于与其他设备通信。
设备30适于通过通信接口 33或用户接口 34来接收预定部分NH作为 用于计算共享预定部分NH的一个或多个RSA模数的输入。当计算了该模 数时,设备通过用户接口输出该模数,或者优选地,输出至另一设备以用 于RSA加密。
将会理解,尽管根据本发明优选实施例的方法固定了该模数的前导比 特,但是也可以固定模数iV的尾部比特。更一般地,可以固定7V的一些前 导比特和一些尾部比特,或者散布在整个TV上的多个比特。
本发明的方法适于容纳由多于2个因子构成的RSA模数,例如3质 数RSA模数或W=/《形式的RSA模数。
根据本发明的方法也应用于在用户之间共享RSA模数W的公共部分 (即A^)、或者A^对于给定应用的所有用户是公共的时。在这种情况下,
不需要传输A^/或者需要构建该公共部分的数据。
本领域技术人员将会理解,使用本发明产生的RSA模数允许数据通 信系统中的通信方仅交换W的比特的大约三分之一、以及覆盖所述预定部 分所需的数据(优选实施例中的种子)。
此外,产生所述RSA类型的加密方案中的密钥的一方也可以仅存储W 的比特的大约三分之一、以及覆盖所述预定部分所需的数据(优选实施例 中的种子)。
本发明的新方法极大地降低了用于RSA类型的加密方案中的密钥产 生中的传输和/或存储需求。
本领域技术人员将会理解,例如,本发明可以产生压縮的RSA模数。
将会理解,仅作为示例描述了本发明。可以单独地或以任何适合的组 合来提供说明书、(适合地)权利要求和附图中公开的每个特征。以硬件 方式实现的特征也可以以软件方式实现,反之亦然。
权禾腰求中出现的参考数字仅作为示例目的,并不会限制权禾腰求的范围。
权利要求
1.一种用于产生RSA模数的因子的方法,所述因子包括能够大于RSA模数的一半的预定部分(NH),所述RSA模数包括至少两个因子,所述方法包括以下步骤接收所述RSA模数要共享的预定部分(NH)的值;产生至少两个备选因子,所述备选因子的乘积共享至少所述预定部分(NH)的第一部分(Nh);通过以下步骤,使用欧几里德型计算对所述至少两个备选因子进行修改,直至所产生的因子是质数,并且所产生的因子的乘积完全共享所述预定部分(NH)使用扩展欧几里德算法的扩充来评估所述至少两个备选因子中每个的修正值;以及分别将修正值加至所述至少两个备选因子,以获得至少两个所产生的因子;其中所产生的因子的乘积包括第一共享部分(Nh),并共享所述预定部分的第二部分(Nm);以及输出所产生的因子,以允许使用所产生的因子进行加密运算。
2. 如权利要求1所述的方法,其中所述RSA模数是三质数RSA模数。
3. 如权利要求l所述的方法,其中所述RSA模数具有A^/ 形式。
4. 如权利要求l所述的方法,其中所述产生步骤包括以下步骤 选择第一备选因子;以及将第二备选因子计算为一值与所述第一备选因子的除法的整数结果, 从而所述备选因子的乘积共享至少所述预定部分的第一部分(A^,所述值 具有与所述RSA模数一样多的比特,并共享所述预定部分(A、)。
5. 如权利要求1所述的方法,其中扩展欧几里德算法的扩充使用通 过满足fl", + 6v,《、其中a = w和Z^A)的扩展欧几里德算法所获得的 序列(",,v,,《},以导出由下式给出的两个伴随序列(;c,)和化)<formula>formula see original document page 3</formula>其中z0 = c及^ = & mod《■ , c = 2" + (TV// 2' mod ; 。)。
6. —种用于计算RSA模数的因子的设备(30),所述因子包括能够 大于RSA模数的一半的预定部分(A^),所述RSA模数包括至少两个因子, 所述设备(30)包括处理器(31),适于接收所述RSA模数要共享的预定部分(A^)的值;产生至少两个备选因子,所述备选因子的乘积共享至少所述预定部分 (A^)的第一部分(A^);通过以下步骤,使用欧几里德型计算对所述至少两个备选因子进行修 改,直至所产生的因子是质数,并且所产生的因子的乘积完全共享所述预使用扩展欧几里德算法的扩充来评估所述至少两个备选因子中 每个的修正值;以及分别将修正值加至所述至少两个备选因子,以获得至少两个所产 生的因子;其中所产生的因子的乘积包括第一共享部分(A^),并共享所述预定部分的第二部分(Ag;以及输出所产生的因子,以允许使用所产生的因子进行加密运算。
7. —种计算机程序产品(35),包括在所述程序在处理器上执行时用 于执行根据权利要求1至5之一的方法的步骤的程序代码指令。
全文摘要
一种用于产生压缩的RSA模数的方法,允许固定高达模数N的比特中的三分之二。N具有预定部分N<sub>H</sub>,包括两个部分N<sub>h</sub>和N<sub>m</sub>。产生共享N<sub>h</sub>部分的备选RSA模数,然后使用欧几里德型计算对该备选进行修改,直至共享N<sub>h</sub>和N<sub>m</sub>。也提供了一种用于根据本方法计算压缩RSA模数的设备(30)和一种计算机程序产品(35)。
文档编号H04L9/30GK101320323SQ200810098588
公开日2008年12月10日 申请日期2008年5月22日 优先权日2007年5月31日
发明者埃里克·迪尔, 马克·乔伊 申请人:汤姆森许可贸易公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1