密码方法及系统的制作方法

文档序号:7937074阅读:178来源:国知局
专利名称:密码方法及系统的制作方法
技术领域
本发明係关于在具有相关联软件的电子处理硬件中实施的密码方法及系统。
背景技术

发明内容


图1是根据本发明的某些实施例用于执行密码术方法(包括基于CRT的模幂运 算)的处理器硬件的实施例的示意性平面图;及
图2是图解说明根据本发明的例示性实施例用于模幂运算的一般步骤的流程图。
具体实施例方式
许多密码算法基于类型m^;d(modn)的模幂计算,其中c及m可对应于各种种类 的数据(明文及密文消息、签名、消息摘要、验证代码等)且其中d及n可对应于用 于处理所述数据的公用或秘密密钥的元素。模数n通常是保持为秘密的两个非常大的 素数p及q的乘积。RSA算法是使用模幂运算的加密系统(及相关数字签名方案)的 一个实例。迪菲-赫尔曼(Diffie-Hellman)密钥一致协议是另一实例。
在RSA算法中,提供公用密钥《e, n)及对应的秘密密钥(d, p, q》用于加密及解密, 其中d.e三l(mod小(n)),n-p-q,小(n) = (p-1) (q-l),且其中整数e与小(n)是互素的。或 者,经常使用函数X(n) = LCM (p-1, q-l)来替代原始小(n)。 (i &4 i^CS*#/ v.2./)对于加密来说,可根据关系c二me(modn)使用公用密钥(e,n)来从明文消息m获得密文c。公 用密钥指数e通常是出于加密的方便性及速度而选择的小值(例如,3、 5、 35或216 + 1 = 65537)。对于解密来说,可根据关系mEcd(mod(p'q))使用秘密密钥(d,p,q)来从 密文c恢复明文消息m。
经常使用中国剩余定理(CRT)来加速解密中所涉及的模幂计算,因为用户知道另 外秘密的素因子p及q。所述定理通常表述给出一组联立同余式x:a,(modn,),其 中i = 1到r,且其中模数n,是两两互素,解是x , a,.bi (N/nO] (mod N),其中N = n!'n2-... 且根据b,(N/ni) =1 (mod rii)确定b1<3对于两个互素的正整数p及q以及两个整数a及 b (即,1" = 2的情况)来说,存在按p'q的模唯一地确定的整数m,使得m三a(modp) Eb (mod q)。也就是说,对于GCD (p, q) = 1 ,每一对模p及q剩余类对应于简单的模 p-q剩余类。所述解求得m E[a'(q" mod p》q + b'(p" mod q》p] (mod p'q)。(界定整数x" 模z的模逆,使得x,x"e1 (modz)。对于素模数,不是所述模数的倍数的每一非零整 数具有逆。)
RSA算法的CRT实施方案如下计算模幂m := cd (mod (p'q))。首先界定一对秘密 密钥导出的指数为d, ^d(mod(p-l》及d2Fd(mod(q-l))。然后,计算nn,cd' (modp) 及m2 := cd2 (mod q)。最终,m = CRT (m!,m2) := + p' {[(nvmO'R] (mod q)},其中R =p-1 (mod q)。
CRT实施方案的最后公式(即m二CRT(m,,m2))具有许多变体。这些变体中的三 个实例是
CRT2( n^,m2): = (mrRrq + m2.R2.p) (mod p.q)'其中R!三q" (mod p)且R2三p.1 (mod
q);
CRT3(n^,m2) := ([(m!.R,) (mod p)].q + [(m2'R2) (mod q)]'p]} (mod p'q),其中也是 R4 = q" (mod p)且R2三p" (mod q);及
CRT4(m!,m2) := (q'U(m广m2)-R4] (mod p)} + m2) (mod p'q),其中R4 = p-1 (mod q)。
变体CRT实施方案以经设计以阻止密码分析的方式执行模幂计算,尤其是在其 中攻击者可以存取实施所述密码计算的硬件的票证(例如,智能卡)的背景下。攻击 者可在计算过程期间采用对装置的电磁发射、功率消耗或其它可存取参数的非侵入性 测量及计时分析以抽取关于秘密密钥的有用信息。所述变体实施方案通常在密码算法 的各个阶段采用伪随机变量以掩盖基础数学运算而不影响最终结果。
举例来说,在模幂运算的CRT实施方案中,某些变体通过在计算过程中的某个 较早阶段使消息变量m或其CRT成分mi及m2乘以随机值来变换所述消息变量m或 其CRT成分m,及m2,然后在稍后的阶段使所述消息变量除以所述同一随机值或除以 从所述随机值导出的相关值以获得真正的结果。其它变体可通过使秘密密钥指数d或 其CRT成分及d2加上(p-l)或(q-l)的随机倍数来变换所述秘密密钥指数d或其CRT 成分山及d2,以获得所述秘密密钥成分的同余类的另一 (随机)元。使用分别是(p-l) 及(q-l)的对应随机倍数的模数同样可将所述秘密密钥指数d约化为经变换的CRT成分山'及d2'。在所有这些情况下,变换的设计经选择以获得真正的最终结果,同时以利用 同余算术中的等价性的方式来随机改变中间计算。遗憾的是,这些变体中的许多可能 是相当复杂且计算密集的。
参照图1,本发明的实施例的密码方法可在各种各样的数字处理系统、逻辑电路 或电子硬件中实施或通过在数据处理器或计算机中执行等效固件或软件程序来执行。 根据本发明的实施例的计算处理器硬件可包括算术-逻辑单元(ALU) 10或含有硬件乘 法器以用于对所提供的数据执行数字运算(包括模幂运算)的类似计算电路。ALU 10 通常可以存取存储器(RAM) 12及各种工作寄存器14。运算定序器16包含用于根据用 于密码算法的运算集合的固件或软件指令来控制ALU (包括向及从存储器12及寄存 器14的数据传送)的逻辑电路。运算定序器16可存取存储在寄存器18中呈指针形式 的运算参数,所述运算参数使得运算定序器16能够定位RAM 12内的操作数以及其它 控制信息及中间结果的目的地地址。所述硬件还可包括执行计算并输出随机数值的伪 随机数产生器(PRNG)电路20。 ALU 10可如所述运算定序器根据密码算法且尤其是其 模幂运算步骤所引导的那样存取此随机产生器20。
参照图2,通过前述硬件且根据本发明实施例的例示性基于CRT的模幂计算M := cd (mod (p,q))通常通过将秘密密钥值(d, p, q)加载到处理硬件可存取的数据存储装置 中(例如,加载到图1中的RAM12中)来开始(步骤IO)。此后,可如需地将所述 值传送到工作寄存器14中供ALU 10使用。随机产生器(例如,图1中的PRNG电路 20)产生变换因子s的随机值(步骤ll),然后使用所述随机值来通过乘法变换的方 式将秘密密钥模数值p及q随机化(步骤12):
p':=p.s;
q':=q.s。
处理硬件以类似于现有版本的基于CRT的模幂运算中已知的逆R := p" (mod q) 的计算的方式计算逆值R'^(p')"modq (步骤14)。
将在稍后的步骤中使用这些经变换的值P'及q'以及逆R'。使用秘密密钥值W, p, q} 的每一解密会话将涉及不同的随机值s,且因此涉及模数p'及q'以及逆R'的不同随机 化值,从而保护涉及模幂运算的密码运算免遭密码分析。(注意,随机值s与原始模 数p及q必须是互素的,以使得针对互素性的标准整除性测试应是随机产生步骤11 的一部分,以清除任何不合适的随机值。)如果需要,可将随机值s的大小选择为在 所规定的范围内,以使得值p'、 q'、 di及d2将是大致相同大小。
或者,变换因子s可以是来自有限预选固定值集合的随机选择,而不是从每一会 话的痕迹中随机产生。此可节约大量处理时间,尤其是在也针对所述集合中s的每一 可能选择预计算P'、 q'及R'的情况下。如果因为任何原因,密码安全肯定不会是给定 环境中的问题,那么因子s的选择且因此p'、 q'及R'的选择可以是固定值。
以与现有版本的基于CRT的模幂运算中已知的相同方式来从秘密密钥指数d中 计算CRT指数d!及d2 (步骤14),艮口山=d (mod(p-l)); d2 := d (mod (q-l))。
如果需要,也可方便地将此步骤放置在p及q的随机化之前,即在步骤12之前。 事实上,由于CRT指数d及d2仅直接与秘密密钥值d、 p及q相关,因此可预计算所 述CRT指数d,及d2且将其加载到硬件数据存储装置中来代替秘密密钥指数d (在步 骤10中),从而从会话计算中去除步骤16。
将用于模幂运算的变量C加载(步骤18)到处理硬件可存取的数据存储装置中, 例如,加载到图1的RAM12中。此后,可如需地将其(通常)作为根据密码程序的 已知大小的块传送到工作寄存器14供ALU 10使用。变量C通常表示将要解密的密文 消息,但也可表示其它密码数据,例如数字签名。至于CRT指数山及d2的计算,此 步骤在其中发生的程序序列中的特定位置可改变,只要其到在步骤20中需要其的时间 时可用。
应用使用经变换的模数p'及q'以及经变换的逆R'的CRT步骤(步骤20及22), 以便获得中间消息结果M'。特定来说,在步骤20中,处理硬件以与来自现有的基于 CRT的模幂运算的方式类似的方式但使用p'及q'作为模数代替原始秘密密钥模数值p 及q来计算CRT消息成分M,'及M2'。也就是说,
M卩:《dV。dp');及
M2':=Cd2(mod q')。
然后,处理硬件使用中国剩余定理从CRT消息成分Mr及M2'中计算(在步骤22 中)中间消息结果M':
M' := M,'十p'. {[(M2,陽M卩)-R'] (mod q')}。
注意,由于针对每一解密会话将p'及q'随机化,因此同样在每一会话中将值M「、 M 及M'随机化,从而阻止通过已知文本攻击(例如,攻击者重复使用已知值C)及 可依赖于对硬件发射的参数(EM发射、时间相依功率消耗等)的偷听的其它密码分 析技术的密码分析。所述计算每次以随机的方式而不同,此外计算并不比基于CRT的 模幂运算的直接应用更密集。
已通过应用CRT(M,',M。的适应CRT公式获得了中间结果M'。如果适应适当的 变换,那么可改为应用其它变体CRT公式(例如,在背景技术部分中给出的三个实例)。 为变换初始CRT公式, 一般规则是总是设定p' p's及q' :=crS。对于所述公式的所有 部分,像R, := q" (mod p)及R2 := p" (mod q),我们变换为R,' := (q')" (mod p)及R2':= (p丁1 (mod q)。如果p或q作为所述公式中的倍增因子出现,那么分别将其改变为p' 或q'。如果p或q并非作为模数((modp)或(modq))出现,那么我们将其改变为(mod p')或(mod q')。举例来说,CRT指数d!及d2总是山=d (mod (p-l》及d2: = d (mod q-l)。 然而,根据本发明的某些实施例,总是使用p'及s'作为模数来变换CRT消息成分M卩 及M2',如上文所说明。因此,对于所述三个例示性变体,我们获得M' = CRTV(mr,ni2') := (nV'Rr'q' + m2'.R2'-p,) (mod p'.q'), M, = CRT3'(mr,m2') := {[(mi'-R,*) (mod p')]'q'
+ [(m2'.R2,) (mod q')].p'} (mod p'.q'), M' = CRT4'(nV,m2') := q'. U(mr-m2O'R4' (mod p1)} + m .
一旦获得中间消息结果M',那么可容易地通过基本模约化运算将其约化为最终消 息M (步骤24):
M := M'(mod(p-q)) := M'(mod n)。
此最终约化模p'q适用于所有变体。注意,乘积p'q先前被作为密钥产生的部分 来计算,且仅仅是所有方可用的公用密钥模数n。因此,在n也已被加载到硬件处理 器可用的数据存储装置中(例如,与先前步骤10相关联)的情况下不需要对其进行重 新计算。此外,由于公用密钥模数n的使用不显露关于秘密密钥的任何东西,因此可 在没有随机变换的情况下计算最终约化且其仍安全地防止密码分析。最终消息M是相 同的,即使p'、 q'、 M'等是随机的,因为使用作为原始模数的随机倍数s的经变换模数 产生尽管是随机的但仍是与通过使用未经变换的模数求得的相同同余类的中间结果。
总结
本发明的实施例涉及使用中国剩余定理(CRT)实施的模运算的计算机硬件实施的 密码术方法,其中变换用于计算的模数以隐蔽对中间结果的密码观察。特定来说,对 于模幂运算,m = Cd(modp.q),使用变换因子s来将互素因子p及q变换为pi-sT及 q' = s.q。应用使用经变换的模数p'及q'的CRT步骤。在获得中间结果m'之后,通过最 终约化模p*q来恢复最终结果m。所述变换因子s可以是随机值、来自有限预选固定 值集合的随机选择,或如果安全在给定环境中不成问题,那么其甚至可以是固定值。 与许多其它变体相比,所述方法相对简单且计算较不密集,此外仍是大致安全的而免 遭密码分析。因此,其适用于智能卡及其它密码票证应用中。其可与依赖于使用CRT 实施方案的模幂运算的任一密码算法一同使用。
可将所述方法的实施例实施为包含密码处理器单元、所述处理器单元可存取的数 据存储装置及提供所述随机因子的伪随机数产生电路的数据处理硬件(例如,智能卡 或其它票证)中的密码术程序。
权利要求
1、一种在电子处理系统中实施的密码方法,其包含将包括至少一个秘密密钥指数及两个秘密密钥模数的秘密密钥值加载到电子处理硬件可存取的数据存储装置中;通过所述电子处理硬件选择变换因子;通过所述电子处理硬件使所述秘密密钥模数乘以所述变换因子以产生经变换的模数;在执行模幂运算之前的任一时间将密文消息第一数据值加载到所述数据存储装置中;通过所述电子处理硬件使用所述至少一个秘密密钥指数及所述经变换的模数对所述第一数据值执行模幂运算以获得中间数据值;且通过所述电子处理硬件按所述两个秘密密钥模数的乘积的模约化所述中间数据值以获得经解密的明文消息最终数据值。
2、 根据权利要求1所述的方法,其中所述变换因子是针对所述方法的每一执行 在随机产生电路中产生的不同随机值。
3、 根据权利要求1所述的方法,其中从有限预选固定值集合中随机地选择所述变换因子。
4、 根据权利要求1所述的方法,其中所述选定变换因子是固定值。
5、 根据权利要求1到4中任一所述的方法,其中执行模幂运算是使用所述中间 数据值的中国剩余定理(CRT)计算来执行的。
6、 根据权利要求1到5中任一所述的方法,其中作为所述执行所述模幂运算的 部分从单个秘密密钥指数中计算一对CRT指数。
7、 根据权利要求1到5中任一所述的方法,其中从单个秘密密钥指数中预计算 一对CRT指数,将所述对CRT指数作为秘密密钥指数加载到所述数据存储装置中。
8、 根据权利要求1到7中任一所述的方法,其中将所述两个秘密密钥模数的所 述乘积预计算为公用密钥模数,也将所述公用密钥模数加载到所述数据存储装置中以 随后在所述中间数据值的所述约化中使用。
9、 根据权利要求1到8中任一所述的方法,其中作为加密程序的部分在所述电 子处理硬件中执行所述模幂运算。
10、 一种在电子处理系统中实施的用于执行模幂计算的密码方法,其包含 将至少一个秘密密钥指数d及两个秘密密钥模数p及q加载到电子处理硬件可存取的数据存储装置中;通过所述电子处理硬件选择变换因子s;通过所述电子处理硬件使所述秘密密钥模数乘以所述变换因子以产生经变换的模数p' :-p's及q' := q's;通过所述电子处理硬件计算逆值R' := (p')"(mod q);在执行模幂运算之前的任一时间将第一数据值C加载到所述数据存储装置中; 使用所述至少一个秘密密钥指数d及所述经变换的模数p'及q'来对所述第一数据值C执行模幂运算以获得中间数据值M',其中执行模幂运算是由所述电子处理硬件使用所述中间数据值的中国剩余定理(CRT)计算来执行的,其涉及(a) 计算CRT指数山=d (mod p-l)及d2 := d (mod q隱l),(b) 计算CRT消息成分M,',Cd1 (modp')及M2'^Cd2 (modq'),及(c) 从所述CRT消息成分M,'及M2'中计算中间数据值M';及 通过所述电子处理硬件按所述两个秘密密钥模数的乘积n = p'q的模约化所述中间数据值M',以获得最终数据值M^M'(modn)。
11、 根据权利要求10所述的方法,其中所述变换因子s是针对所述方法的每一 执行而产生的不同随机值。
12、 根据权利要求10所述的方法,其中从有限预选固定值集合中随机地选择所 述变换因子s。
13、 根据权利要求10所述的方法,其中所述选定变换因子s是固定值。
14、 根据权利要求10到13中任一所述的方法,其中从所述秘密密钥指数d中预 计算所述CRT指数且将其作为一对秘密密钥指数山及d2加载到所述数据存储装置中。
15、 根据权利要求10到14中任一所述的方法,其中M' Mr + p'乂[(M2'-MO'R'] (mod q'"且R' := (p')-1 (mod q)。
16、 根据权利要求10到14中任一所述的方法,其中M' := (m卩'R:q' + m2''R2''p') (mod p'.q'), R!' := (q')-1 (mod p)且R2' := (p')" (mod q)。
17、 根据权利要求10到14中任一所述的方法,其中M' := {[(nV'RO (modp')]'q' + [(m2'.R2,) (mod q')]'p'} (mod p'.q'), R':=(q')-1 (mod p)且R2, := (p')-1 (mod q)。
18、 根据权利要求10到14中任一所述的方法,其中M' ^^{[(nV-mO'RV] (mod p')} + m2'i RV := (p.)—1 (mod q)。
19、 根据权利要求10到18中任一所述的方法,其中预计算所述乘积n:p'q且将其加载到所述数据存储装置中以随后在所述中间数据值的所述约化期间使用。
20、 根据权利要求10到19中任一所述的方法,其中所述第一数据值表示密文消 息,作为加密程序的部分在所述电子处理硬件中执行所述模幂运算,且所述最终数据 值表示经解密的明文消息。
全文摘要
本发明揭示一种执行密码术的系统,其可操作以将包括至少一个秘密密钥指数及两个秘密密钥模数的秘密密钥值加载到电子处理硬件可存取的数据存储装置中且通过所述电子处理硬件选择变换因子。所述电子处理硬件可将所述秘密密钥模数乘以所述变换因子以产生经变换的模数且在执行模幂运算之前的任一时间将密文消息第一数据值加载到所述数据存储装置中,且通过所述电子处理硬件使用所述至少一个秘密密钥指数及所述经变换的模数对所述第一数据值执行模幂运算以获得中间数据值。所述电子处理硬件可按所述两个秘密密钥模数的乘积的模约化所述中间数据值以获得经解密的明文消息最终数据值。
文档编号H04L9/00GK101632255SQ200880008030
公开日2010年1月20日 申请日期2008年3月12日 优先权日2007年3月12日
发明者尼尔·M·麦基奈伊, 米歇尔·杜盖 申请人:爱特梅尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1