用于证明实体真实性和消息完整性的专用密钥集的制作方法

文档序号:566065阅读:272来源:国知局
专利名称:用于证明实体真实性和消息完整性的专用密钥集的制作方法
技术领域
本发明涉及用于证明实体的真实性和/或消息的完整性和/或真实性的过程,系统和装置的技术领域。
发明人为Louis Guillou与Jean-Jacques Quisquater的专利EP 0311 470 BL描述了这样的过程。以下将通过术语“GQ专利”或“GQ过程”针对他们的工作进行对比。以下术语“GQ2”,,“GQ2发明”或“GQ2技术”有时将用来表示在GQ技术中新的发展,它们处于申请未决,由France Telecom,TDF和Mathrizk公司与本申请在同日提交,其发明人是Louis Guillou与Jean-Jacques Quisquater。在以下的说明中必要时将回顾这些未决申请的特性性质。
根据GQ过程,被称为“受信当局”的实体向每一被称为“证人”的实体指定一身份,并计算其RSA签字在一定制过程期间,受信当局向证人给出一身份和签字。此后,证人声明“这是我的身份;我知道其RSA签字。”证人无需展现它而证明他知道他的身份的RSA签字。借助于由受信根据分配的RSA公开验证密钥,被称为“控制器”的一个实体无需获知其本身而能够验证RSA签字对应于宣称的身份。使用GQ过程的机制操作“无需知识的转移”。根据GQ过程,证人不知道受信当局使用它签署了大量身份的RSA私人密钥。
以前所描述的GQ技术使用RSA技术。但是如果RSA技术真的依赖于模数n的因子分解,则这种依赖关系不是等价关系,相反,如通过被称为针对实现RSA技术的不同数字签字标准的“乘法”攻击所展示的那样。
GQ2技术的目的是双重的一方面,是为了改进与RSA技术相关的性能;另一方面,则是为了防止RSA技术固有的问题。私人GQ2私人密钥的知识等价于模数n的因子分解的知识。任何在GQ2三件组水平的攻击都是回到模数n的因子分解这时存在等价关系。使用GQ2技术,不论对于签字或鉴别实体本身及对于控制实体都降低了工作负荷。较好地使用因子分解问题,GQ2技术在安全性和性能两方面都避免了RSA技术所出现的缺陷。
GQ过程实现了512位或更高位数的模(modulo)计算。这些计算关系到具有将近提高到大约216+1幂的相同量级的数码。现有的微电子基础结构,特别是在银行卡的领域,使用没有算术协处理器的单片式可自编程微处理器。在象GQ过程这样的过程中所涉及的与复合算术运算相关的工作负荷,导致了对使用银行卡支付他们的消费的顾客不满意的计算时间。这里回顾到在寻求提高支付卡的安全性时,储蓄当局已经提出了特别难以解决的问题。确实,必须解决两个明显矛盾的问题对每一卡使用不断增加的长度及不同密钥而提高安全性,而同时要防止导致对用户太多计算时间的工作负荷。此外这一问题迄今变得特别尖锐,因为要考虑到现有的基础结构及现有的微处理器组件。
GQ2技术带来了对这一问题的解决,同时保持了安全性。
GQ2技术实现了具有特别性质的素因子。不同技术存在产生了这些素因子。本发明的目的是使得能够系统地产生这类素因子的一个过程。它还涉及特别在实现GQ2技术中可由它们构成的应用。现在这里强调,允许它们被获得的这些特定素因子及过程能够用于GQ2技术领域之外。
本发明用于对控制器实体验证的过程,-实体的真实性和/或-与这一实体相关的消息M的完整性。
这种过程实现-由f个素因子p1,p2,...pf(f大于或等于2)的乘积构成的公开模数n,或实现f个素因子,-m个不同的整数基数g1,g2,...gm(m大于或等于1),gi小于f个素因子p1,p2,...pf-m对私人Q1,Q2,...Qm和公开G1,G2,...Gm值(m大于或等于1)或从它们推导的参数。
所述模数和所述私人和公开值通过以下类型的关系联系Gi·Qiv≡1·mod n或Gi≡Qivmod n所述公开值Gi是基数的平方gi2,v表示以下形式的公开指数v=2k其中k是大于1的安全性参数。
根据本发明的过程包括以满足以下条件的方式产生f个素因子p1,p2,...pf和/或m个基数g1,g2,...gm的步骤。
第一个条件根据第一个条件,每一方程式Xv≡g12mod n(1)具有在模n整数环中x的解。
第二个条件根据第二个条件,这里Gi≡Qivmod n,在通过使Qi自乘为平方模n而获得的m个数码qi之中,秩的k-1倍,它们中之一不同于±gi(换言之是非平凡的)。
根据第二个条件,这里Gi·Qiv≡1·mod n,在通过使Qi的逆自乘模n为平方模n而获得的m个数码qi之中,秩的k-1倍,它们中之一不同于±gi(换言之是非平凡的)。
从而可以说,根据通常的计法±gi表示数码gi和n-gi。
第三个条件根据第三个条件,在以下2m个方程式中X2≡gimod n (2)X2≡-gimod n (3)至少它们之一具有整数模n的环中的x解。
根据本发明用于产生f个素因子p1,p2,...pf和/或m个基数g1,g2,...gm的过程包含首先选择的步骤·安全性参数k·m个基数g1,g2,...gm和/或f个素因子p1,p2,...pf,根据是产生f个素因子p1,p2,...pf还是m个基数g1,g2,...gm。
最好至少部分地在第一整数之中选择m个基数g1,g2,...gm。
安全性参数k最好是一个小的整数,具体来说小于100。
模数n的大小最好大于几百位。
f个素因子p1,p2,...pf最好具有接近于模数除以因子个数f的大小。
为了测试第一个条件,通过实现以下给出的算法验证数码k,p,g的相容性,其中h表示一个数,使得2h除尽g的相对于p的秩,而2h+1不能除尽它。h是从勒让德记号(g|p)及从等于CG(p)中第2t个的单位原根的数b计算的,其中勒让德记号(gi|pj)和t在以下说明中具有所定义的意义。
这里是这一算法的步骤·如果(g|p)=-1则h=t·如果(g|p)=+1且t=1,则h=0·如果(g|p)=+1且t>1,则过程如下。
密钥<(p-1+2t)/2t+1,p>施加于G,结果w这样获得·如果w=+g,则h=0·如果w=p-g,则h=+1。
如果w不同于+g或p-g(这种情形下,t大于2),实施计算子模数。变量c因此被初始化为值b,然后计算子模数的以下步骤对于i从t-1到2的值被叠代步骤1密钥<2i,p>施加于w/g(modp),*如果所得结果等于+1,则进到步骤2,*如果所得结果等于-1,则值i赋予h,而w由w·c(modp)代替,步骤2c由c2(modp)代替,所寻求的h的值这样获得,即根据步骤1最后一次施加密钥<2i,p>,产生等于-1的结果。
可能记得
-当h>1时并当k+h>t+1时,则k,g,p是相容的,-当h=0或1时,而不论k的值如何,或者当h>1时并当k+h≤t+1时,则k,g,p是相容的。
为了测试第二个条件,进行一个检验,即至少一个集合{δi,1...δi,f}是变量或零,(以下的说明中δ具有所定义的意义)。
为了测试第三个条件,进行一个检验,即从g1到gm有一个基数gi使得f个勒让德记号(gi|p1)到(gi|pf)都等于+1或者勒让德记号(-gi|p1)到(-gi|pf)都等于+1。
为了计算私人值Q1,Q2,...Qm(Qi,j≡Qimod pj)的f·m私人分量Qi,j,其中Gi≡Qivmod n,过程如下,根据t的值而区分情形。
其中t=1(即如果pj≡3(mod4))。
·计算一个数sj使得sj≡((pj+1)/4)k(mod(pj-1)/2),·其密钥<sj,pj>被推导出,· 密钥<sj,pj>施加于Gi,· 于是有w≡Gisj(modpj)。
Qi,j的两个可能的值是w,pj-w。
其中t=2(即如果pj≡5(mod8))。
·计算一个数sj使得sj≡((Pj+3)/8)k(mod(pj-1)/4),·其密钥<sj,pj>被推导出,·密钥<sj,pj>施加于Gi,·于是有w≡Gisj(modpj),且w’≡w·z(modpj),其中z在以下说明中具有所定义的意义。
Qi,j的四个可能的值是w,pj-w,w’,pj-w’。
其中t>2(即如果pj≡2t+1(mod2t+1)),其中h=0或h=1,·计算一个数sj使得sj≡((pj-1+2t)/2t+1)k(mod(pj-1)/2t),·其密钥<sj,pj>被推导出,·密钥<sj,pj>施加于Gi,·于是有w≡Gisj(modpj)。
Qi,j的2min(k,t)个可能的值等于w乘以CG(pj)中单位第2min(k,t)根任何之一的乘积。
-其中t>2(即如果pj≡2t+1(mod2t+1)),h>1及h+k≤t+1,·计算一个数sj使得sj≡((pj-1+2t)/2t+1)k+h-1(mod(pj-1)/2t),·其密钥<sj,pj>被推导出,·密钥<sj,pj>施加于第2h-1幂Gi,·于是获得w,Qi,j的2k个可能的值属于w乘以CG(pj)中单位第2k+h-1原根的所有乘积。
为了计算私人分量Qi,j,其中Gi·Qiv≡1.mod n,在密钥<sj,pj>中sj由((pj-1)/2t)-sj代替。
本发明还涉及使用该方法允许产生f个素因子p1,p2,...pf或m个基数g1,g2,...gm的过程。
所述过程是要证明控制器实体,-实体的真实性和/或-与这一实体相关的消息M的完整性,借助于私人的Q1,Q2,...Qm和公开的G1,G2,...Gm值的m对(m大于或等于1)或从它们推导出的参数,特别是借助于私人分量Qi,j。
根据以下步骤所述过程实现称为证人的实体。
所述证人实体具有f个素因子pi,和/或素因子的中国余数的参数,和/或公开模数n,和/或m个私人值Qi,和/或f·m个私人值Qi的私人分量Qi,j及公开指数。
证人计算在整数模n环中的委托R。每一委托计算如下·或者通过进行以下类型的运算R≡rvmod n其中r是随机数,使得0<r<n,·或者通过在进行以下类型的运算之后施加中国余数的方法Ri≡rivmod pi其中ri是与pi相关的随机数,使得0<ri<pi,每一ri属于随机数{r1,r2,到rf}的一个集合。
证人接收一个或多个查询d。每一查询d包括以下称为基本查询的m个整数di。证人从每一查询d计算一个响应D,·或者通过以下类型的运算D≡r·Q1d1·Q2d2到Qmdmmod n·或者通过在进行以下类型的运算之后施加中国余数的方法Di≡r·Qi,1d1·Qi,2d2...Q1,mdmmod pi所述过程使得有与查询d及委托R同样多的响应D。每一组数R,d,D构成一个三元组,标记为{R,d,D}。
说明GQ技术的目标是实体和消息的动态鉴别及消息的数字签字。这是“无需知识转移”的技术。一个实体证明它知道一个或多个私人数码。另一个实体控制它知道对应的公开的一个数码或多个数码。证明实体希望不展现私人的一个数码或多个数码而能确信控制实体,于是能够按所需的次数使用它们。
每一GQ模式基于大的机密素数组成的公开模数。公开指数v和公开模数n借助于一个或多个一般方程式共同形成表示着“自乘为幂v模数n”的验证密钥<v,n>并实现,所有相同的直接类型G≡Qv(mod n)或逆G×Qv≡1(mod n)。该类型对控制实体内而不是证明实体内的计算操作有效;实际上安全性分析混淆了这两个类型。每一个一般的方程式把公开数G和私人数码Q联系在一起共同形成一对数码{G,Q}。总之,每一GQ模式对相同的密钥<v,n>实现一个或多个数码对{G,Q}。
这里称为GQ1的GQ模式的传统版本使用RSA数字签字模式。这时验证密钥<v,n>是RSA公开密钥,其中奇数v指数最好是一个素数。每一GQ1模式一般使用单一数码对{G,Q}公开数码G是根据作为RSA数字签字模式的整体部分的格式机制从标识数据推导出来的。私人数码Q或其模n逆是标识数据的RSA签字。证明实体从其自身的识别数据展示RSA签字知识,而这一证明并不揭示签字,从而保持机密而可以按需要多次使用。
GQ1模式通常用于两个密钥水平RSA签字私人密钥是为鉴定实体的当局保留的,实体通过标识数据将它们彼此区别开。一般来说,这种模式是“基于身份的”。于是,芯片卡发放者在发放每一卡时使用其RSA私人密钥,以便计算私人数码Q,该数码是作为多样化的私人密钥刻写在卡中的;或者在计算机网络上的顾客每当登录时使用其RSA私人密钥,以便计算一私人数码Q,这将是顾客在这阶段暂时的私人密钥。证明实体,芯片卡或顾客登录,是知道他们的标识数据的RSA签字的;他们并不知道RSA密钥,该密钥在密钥分级结构中处于紧靠其上的水平。然而,通过GQ1以768位模数在当局的水平对实体的动态鉴别,要求与通过RSA以带有三个素因子的512位模数在每一实体的水平对实体动态鉴别,大约相同的工作负荷,这允许证明实体在计算模乘积的结果之前通过计算模每一素因子的结果,使用中国余数技术。
然而,当局和被鉴定的实体之间密钥的分层结构不是强制性的。GQ1可用于证明实体特定的模数,这允许使用中国余数技术以降低证明实体的工作负荷,这基本不改变控制实体的工作负荷,这与证明实体级的模数可能短于当局级的模数这一事实不同,例如512位与768位相比。
当实体知道其自己模数的素因子时,为何使用数字签字RSA模数呢?这里称为GQ2的GQ模数的另一版本直接使用模数n的因子分解问题。在这种场合,“直接”签字而“不使用RSA签字”。GQ2的目标在于这样的事实,即不仅降低证明实体的负荷,而且降低控制实体的负荷。证明实体表示知道其自身的模数的分解,而这证明并不显示该分解按需要被多次使用,因而保持了机密。GQ2协议的安全性等价于模数的因子分解。
每一证明实体有其自身的模数n。每一GQ2模式实现参数k,这是决定公开指数v=2k的一个大于1的小的数,以及一个或多个数对{G1,Q1}到{Gm,Qm}。每一公开数码Gi是大于1的小的数gi并被称为“基数”的平方。所有证明实体可以使用相同公开数码或数码G1到Gm。这时模数n及私人数码或数码Q1到Qm的因子分解在密钥的分层结构中处于相同等级。GQ2基本密钥的每一集合由两个必要和充分条件所定义。
-对每一基数,两个方程式x2≡±gi(mod n)在模n的整数环中有x的解,即±gi是两个模n非二次剩余。
-对于每一基数,方程式xv≡gi2(mod n),其中v=2k,在模n的整数环中有x的解。私人数码Qi或其模n逆都不是这些解。
给出的第二个条件,对于数±gi作为两个模n非二次剩余,模数n必须包含至少两个与3(mod 4)同余的素因子,相对于它们gi勒让德记号不同。因而,由没有或只一个与3(mod 4)同余的素因子组成的任何模数不允许建立GQ2基本密钥集合,这偏好与3(mod 4)同余的素因子。随机抽取大素数,大约它们的一半证明是与3(mod 4)同余的,而一半与1(mod 4)同余。因而,许多使用中的RSA模数不允许建立基本GQ2密钥集合。
我们这里引入GQ2推广密钥的集合用来克服这一限制,使得能够使用GQ2技术于任何模数,特别是任何RSA模数;它们基于两个必要和充分原理。
第一个原理重复第二GQ2基本条件。
对每一基数g1到gm,方程式x2≡gi2(mod n)其中v=2k,在模n的整数环中有x的解。
因为私人数码Qi或其模n逆是方程式的解,逐次模n求平方,将其转换为数qi,它是Gi在模n整数环中的平方根。根据数qi是否等于两个数gi或n-gi之一,或者不同于两个数gi或n-gi,我们称它为平凡的或非平凡的。当数qi是非平凡时,除得尽qi2-gi2的n则除不尽qi-gi或qi+gi。因而任何非平凡数qi揭示了模数n的因子分解。
n=pgcd(n,qi-gi)×pgcd(n,qi+gi)第二个原理扩大了第一GQ2基本条件。
在数q1到qm之中,至少一个数qi是非平凡的。
要注意,如果当数±gi在模n整数环中是非二次剩余时数qi存在,则数qi明显是非平凡的。于是,基本GQ2密钥集合完全是一般使用中的允许使用任何模数的GQ2密钥集合的一部分,即任何不论与3或1(mod 4)同余的大素数组成。另一方面,一般使用中的许多GQ2集合不是GQ2基本密钥集合。一般使用中的每一GQ2密钥集合是以下两中情形之一。
-当2×m个数±gi到±gm都是非二次剩余时,它是GQ2基本密钥集合。
-当2×m个数±gi到±gm中存在至少一个二次剩余时,它不是GQ2基本密钥集合;它是我们这里称为GQ2互补密钥集合。
本发明涉及GQ2互补密钥集合,按定义,是一般使用中那些不是基本的GQ2密钥集合。与先前的两个原理不同,这种类型的集合必须满足第三个条件。
-在2×m个数±gi到±gm中存在至少一个二次剩余。为了认识该问题并理解我们为其提供的解法,即本发明,首先分析由非平凡数q展现的模数n的分解,然后回忆中国余数技术,然后是伽罗华域CG(p)的秩的概念;然后学习在CG(p)中“自乘到平方”及在CG(p)中二次剩余的“求平方根”的函数;最后分析以上所述三原理的适用性。
模数的分解的分析-正如模数分解为f个素因子p1到pf那样,模n的整数环分解为f个伽罗华域CG(p1)到CG(pf)。在每一个域中有单位即±1的两个平方根。因而在环中,有单位的2f个平方根。每一个私人数码Q1到Qm定义了数Δi=qi/gi(mod n),它是环中单位的2f个平方根之一换言之,n除尽Δi2-1。
·当qi为平凡即Δi=±1时,n除尽Δi-1或Δi+1,因而Δi没有展现模数n的任何分解。
·当qi为非平凡即Δi≠±1时,n除不尽Δi-1与Δi+1,因而Δi展现分解,n=pgcd(n,Δi-1)×pgcd(n,Δi+1),每一域中从Δi的值所得结果一方面是除尽Δi-1的素因子或因子,另一方面是它或它们除尽Δi+1。
让我们考察数q的乘法合成律。两个数{q1,q2}给出一个复合数q1×q2(mod n)。
-当q1为非平凡而q2为平凡时,复合数q1×q2(mod n)是非平凡的;它展现与q1相同的分解。
-当q1和q2为非平凡且Δ1=±Δ2时,复合数q1×q2(mod n)是平凡的;它不展现分解。
-当q1和q2为非平凡且Δ1≠±Δ2时,复合数q1×q2(mod n)是非平凡的;它展现第三个分解。
三个数{q1,q2,q3}给出四个复合数{q1×q2,q1×q3,q2×q3q1×q2×q3(mod n)},即总共七个数;这样m个数给出2m-m-1个复合数,即总共2m-1个数。
让我们考虑一般使用的GQ2密钥的一个集合,包括i个基数和g1到gi及i个给出i个数q1到qi从而i个数Δ1到Δi的私人数Q1到Qi,Δ1到Δi是单位的平方根。让我们通过给出数qi+1从而根Δi+1的私人数Qi+1考虑另一基数gi+1。
·总共2i+1-1个数包括以下两种情形每一个中那么多的非平凡数。
-根Δi+1是平凡的,且至少一个根Δ1到Δi是非平凡的。
-根Δi+1是非平凡的,且出现在2×i个根±Δ1到±Δi中。
·其中根Δi+1是非平凡的,且不出现在2×i个根±Δ1到±Δi中,每一出现qi+1的复合数是非平凡的。
于是,当m个数q1到qm中至少一个是非平凡的时,总共2m-1个数的多一半是非平凡的。
按定义,我们可以说,当2l-l-1对应的复合数的每一个是非平凡时,1<f个非平凡数{q1,q2...qi}是独立于模数n的,换言之,总共2l-1个数都是非平凡的。这时这些2l-1个数的每一个都展现模数n不同的分解。
当f个素因子不同时,有模数n的2f-1-1个分解。这时,如果f-1数q是独立的,则在2f-1-1个分解和包括f-1个独立数及2f-1-f个对应的复合数的总共2f-1-1个数之间有一个一一对应的关系。
中国余数-设两个数a和b是素数,它们之间有0<a<b,且两个数Xa从0到a-1及Xb从0到b-1;要确定从0到a×b-1唯一的一个数X使得Xa≡X(mod a)以及Xb≡X(mod b)。数α≡{b(moda)-1}(mod a)是中国余数的参数。以下是中国余数的基本运算。
x≡Xb(moda)y≡Xa-x;如果y是负数,则以y+a代替yz≡α×y(moda)X=z×b+Xb总之,我们写出X=中国余数(Xa+Xb)当f个素因子置于升序时,从最小的p1到最大的pf,中国余数的参数可以是如下(有一个小于素数因子,即f-1)。
第一个参数是α≡(p2(mod p1))-1(modp1)。
第二个参数是β≡(p1×p2(mod p3))-1(modp3)第i个参数是λ≡(p1×...pi-1(mod p1))-1(modp1)。
等等。
在f-1个基本运算中,数X是从0到n-1建立的,来自从X1到Xf任何f个分量的集合,其中Xf从0到pf-1;-带有第一个参数的第一个结果(mod p1×p2),-带有第二个参数的第一个结果(mod p1×p2×p3),-直到带有最后参数的最后的结果(mod n=p1×p2×...pf)。
总之,给出的素因子p1到pf,整数模n的环的每一元素具有两个相等的表示-f个数X1到Xf,每一个素因子一个分量Xj≡X(mod pj),从0到n-1的一个数X,X=中国余数(X1,X2到Xf)。
CG(p)中数的秩设计它一奇素数p和小于p的数a,即0<a<p。按定义,a相对于p的秩是由{x1=a;然后对于i≥1,xi+1≡a×xi≡(modp)}定义的流{X}的周期。借助于费马定理,我们获得xi+p≡ap×xi≡a×xi≡xi+1(modp)。于是,数a相对于素数p的秩是p-1或者p-1的除数。
例如,当(p-1)/2是一奇素数p’时,伽罗华域CG(p)包括秩为1的数这数是1,秩序为2的数这数是-1,秩为p’的p’-1个数,及秩为2×p’=p-1的p’-1个数。在CG(p)中,秩为p-1的任何数是一个“生成元”。分解是由于这样的事实,即CG(p)中一生成元顺序的幂,即对于从1到p-1的指数的流{X}的项,形成CG(p)的所有非零元素的一个置换。
设有一CG(p)的生成元y。让我们作为i和P-1的函数计算数yi(modp)的秩。当i与p互素时,它是P-1。当i除尽p-1时,它是(p-1)/i。在所有的情形下,它是(p-1)/pgcd(p-1,i)。
按定义,欧拉函数(n)是小于n而与n互素的数。在CG(p)中,有(p-1)个生成元。
通过示例,秩给出对RSA的基础很好的理解。模数n是f个素因子p1到pf与f≥2的乘积。对从p1到pf的每一素因子pj公开指数e必须是与pj-1互素的。这时密钥<e,pj>遵从CG(pj)的元素的秩它置换CG(pj)的元素;存在一个数dj,一般是可能的最小的,使得pj-1除尽e×dj-1。密钥<dj,pj>使CG(pj)的元素置换逆向。这些f个置换,CG(p1)到CG(pf)每一域中一个,在模n整数环中由公开密钥<e,n>相加的RSA置换表示。存在一般来说是最小可能的一个数d,使得ppcm(p1-1,p2-1,...pf-1)除尽d×e-1。对从p1到pf的每一素因子pj,我们有dj≡d(mod pj-1)。由公开密钥<e,n>相加的RSA置换是通过私人密钥<d,n>求逆。
CG(p)中的平方-让我们定义一个数t,使得p-1能够被2t除尽,但是不能被2t+1除尽。每一个大素数出现在一个类别中,并只出现在一个类别中t=1,t=2,t=3,t=4等。如果考虑充分大个数的连续的素数,在p与3(mod 4)同余的第一类别中大约两个数中一个,在p与5(mod 8)同余的第二类别中四个数中一个,在p与9(mod 16)同余的第三类别中8个数中一个,在p与17(mod 32)同余的第四类别中16个数中一个,等等;平均在在p与2t+1(mod 2t+1)同余的第t类别中2t个数中有一个。
因为在CG(p)中x与p-x有相同的平方,<2,p>不会置换CG(p)。CG(p)中的“自乘平方”函数可由一有向图表示,其中域的每一非零元素出现。让我们根据每一元素的秩的奇偶性分析图在分支和循环中的结构。
-零元素是固定的。它是0。对于没有其它元素与其连接的零元素不定义秩;零元素是孤立的。
-单位元素是固定的。它是1,是唯一的秩为1的元素。单位在CG(p)中的所有的根在与1连接的分支中。设y是CG(p)的非二次剩余,这无所谓;密钥<(p-1)/2t,p>转换y为由b标记的-1的第2t-1个原根,我们有y(p-1)/2≡-1(modp)。因而在CG(p)中,b对于从1到2t-1的指数的幂是单位的除去1之外的2t-1个根它们组成与1连接的分支。
-任何偶数秩元素的平方是其秩可由二除尽的另一元素。因而,偶数秩的每一元素位于一个分支中;每一分支包含一个可由二除尽但不能由四除尽的秩数,如果t≥2,则可由四但不可由八除尽的秩的两个数,然后,如果t≥3,则可由八但不可由十六除尽的秩的四个数,然后,如果t≥4,则可由十六但不可由32除尽的秩的八个数,等等。所有的分支类似于与1连接的分支;每一分支的2t-1个树叶是非二次剩余;每一分支包含2t-1个元素并连接到奇数秩的一个元素;有(p-1)/2t个分支都具有相同的长度t。
-非单位元素的奇数秩的然后元素的平方是具有相同秩的另一元素。密钥<2,p>置换所有奇数秩的(p-1)/2t个元素。该置换分解为置换循环。循环的数目取决于(p-1)/2t的因子分解。对于(p-1)/2t的每一除数p’,有一包含秩为p’的(p’)个元素的循环。应当记住,按定义,欧拉函数(p’)是小于p’而与p’互素的数的个数。例如,当p’=(p-1)/2t是素数时,秩为p’的p’-1个数形成大的置换循环。


图1A到1D每一个表示对于分别与3(mod 4)同余,与5(mod 8)同余,与9(mod 16)同余,与17(mod 32)同余的p的图的片断。
-分支上的树叶由白色圆圈表示;这些是非二次剩余。
-分支中的结点由灰色圆圈表示;有偶数秩的二次元素。
-循环中的结点由黑色圆圈表示;有奇数秩的二次元素。
CG(p)中的平方根-已知a是CG(p)的二次剩余,我们来看如何计算方程式x2≡a(mod p)的解,即在CG(p)中“求平方根”。当然,有几种获得相同结果的方法可参照由Henri Cohen的书a Course inComputational Algebraic Number Theory(计算代数数论教程)31到36页,作为Graduate Texts in Mathematics(数学研究生课本)(GTM138)丛书,卷138,1993年由Springer在柏林出版。
数s=(p-1+2t)/2t-1给出密钥<s,p>,其值为<p+1)/4,p>当p与3(mod 4)同余时,<p+3)/8,p>当p与5(mod 8)同余时,<p+7)/16,p>当p与9(mod 16)同余时,<p+15)/32,p>当p与17(mod 32)同余时,等等。
密钥<s,p>把一个循环中的任何元素转换为该循环中先前的元素。当a是奇数秩时,它是奇数的秩的解;我们称之为w。确实,在CG(p)中,w2/a的值是a自乘幂(2×(p-1+2t)/2t+1)=(p-1)/2t。其它解是偶数秩的;它是p-w。
一般,密钥<s,p>把任何二次剩余a转换为一个第一解近似,我们称之为r。由于a是二次剩余,密钥<2t-1,p>一定把r2/a转换为1。为了趋近a的平方根,让我们使r2/a自乘为幂2t-2(mod p)以获得+1或-1。如果结果是+1,则新的近似仍然是r,否则如果结果是-1则成为b×r(mod p),已知b表示1在域CG(p)中的任一第2t个原根。从而,密钥<2t-2,p>把新的近似转换为1。也能够使用密钥<2t- 3,p>并如必要乘以b2(mod p)等求取近似。
以下的算法是求解该方程式。它使用数以上所定义的数a,b,p,r和t及两个变量c表示逐次校正,w表示逐次近似。在算法的开始,c=b及w=r。在计算的结束,两个解是w和p-w。
对于i从t-2到1,除重复以下的顺序-把密钥<2t,p>用于数w2/a(mod p)以获得+1或-1。
-当获得-1时,由w×c(mod p)代替w。
-由c2(mod p)代替c。
原理的可适用性-按定义,我们可以说,当方程式xv≡g2(modp),其中指数v的值为2k,在域CG(p)中对x有解时,参数k,基数g和素因子p是相容的。数k和g是小的整数并大于1。数p是大素数。
-当t=1,即p≡3(mod 4)时,方程式有两个解。
-当t=2,即p≡5(mod 8)时,根据g相对于p的勒让德记号,如果(g|p)=+1,方程式有四个解;如果(g|p)=-1,方程式无解。
-当t>2时,即p≡1(mod 8),设u是这样的数,使得2u相对于p除尽公开数G=g2,但2u+1不能除尽它;因而,u等于从0到t-1的数之一。如果u>0且k+u>t,则方程式没有解;如果k+u≤t,它有2k个解;如果u=0且k>t,则有2t个解。
因而根据G是在循环中还是在分支中适当的位置,有两个进入性的类型。
-当G在循环中时,即u=0不论k的值如何,在循环中有一奇数秩的解,并散布在与循环连接的α=min(k,t)相继分支中有偶数秩解,即总共2α个解。图2A表示这种k≥t=3情形,即与9(mod 16)同余的素因子,这使得u=0。
-当G在分支中适当的位置,即u>0且u+k≤t时,有2k个解,都是偶数解并在分支中。图2B表示这种情形。
给定一个参数k,于是根据t的值低于k还是高于或等于k而有两类素因子。
-对于任何使得t<k的素因子pj,每一Gi必定在一循环中,并在与Gi连接的分支中没有解。让我们定义一个数Δij,取决于是gi还是-gi在循环中,其值为+1或-1。对于m个数Δ1,j到Δm,j任何之一没有选择。图3A表示这样的情形t<k,Gi在有与9(mod 16)同余的素因子pj的循环中,即u=0,t=3使得k>3。
-对于任何使得t≥k的素因子pj,每一Gi必定使得u+k≤t,换言之,或者在u=0的循环中,或者在1≤u≤t-k的分支中适当的位置。让我们定义数Δij,取决于Gi,j是在与gi还是-gj连接的图的部分中,其值为+1或-1。对于m个数Δ1,j到Δm,j每一个有选择;每一数Δij可以从一个值向另一值个别变化。图3B表示t≥k的情形为Gi在有与17(mod 32)同余的素因子p的分支中,即u=1,t=4使得k=3。
每一f个分量{Δi,1到Δi,f}的集合是在CG(Pj)中单位的平方根。根据f个分量是否相等,这根是平凡的或非平凡的。这时我们说,f个分量的集合是常量或变量,这表示qi是平凡的或非平凡的。因而,当数qi是非平凡时,f个分量{Δi,1到Δi,f}的集合使模的置换相加。然后在计算私人分量Qi,j时能够测试原理。
-当公开数Gi在素因子pj的循环中时,根据gi还是-gj在循环中,数Δi,j的值为+1或-1。当pj≡3(mod 4)时,它是勒让德记号Δi,j=(gi|pj)。
-当公开数Gj在在素因子pj的分支中适当的位置时,在计算Qi,j之前,可以确定向Δi,j给定值。
密钥集合的产生-给定参数k,有两个策略。
-或者是生成元需要f个素因子以便确定m个基数。考察第一批素数2,3,5,7...等,以便估计它们与f个素因子p1到pf的每一个的相容性。虽然g=2与p≡5(mod 8)不相容,但是2能够进入基数的组合。确实,当两个数在分支中类似的位置时,它们的乘积较接近循环,正如平方较接近循环那样。这样通过组成分别不是恰当的数能够获得基数。
-或者为了确定f≥2素因子,生成元需要m个基数及这样的模数特征,即位的长度(例如,512,768,1024,1536,2048)和1之后高阶位的一个数(例如,1,8,16,24,32)。由g1,g2...gm表示,基数一般出现在开始的素数2,3,5,7,11...等之中,或者它们是这些开始的素数的组合。除非另外指出,这些是m个开始的素数g1=2,g2=3,g3=5,g4=7...等。应当注意,p≡5(mod 8)与g=2是不相容的。模数n将是邻接长度的f个素因子的乘积即分配给由f除尽的模数的长度。
第一原理-参数k,从p1到pf的每一素因子p,以及从g1到gm的每一基数g必须是相容的。让我们定义一个数h,使得2h相对于p除尽g的秩的而2h+1不能除尽它。为了计算数h,以下过程使用勒让德记号(g|p)和数b,CG(p)中的第2t单位原根。
-如果(g|p)=+1且t=1,返回“h=0”。
-如果(g|p)=+1且t=-1,则向G施加密钥<(p-1+2t)/2t+1,p>,以获得称为w的结果。
-如果w=+g,则返回“h=0”。
-如果w=p-g,则返回“h=1”。
-如果不,则设c为b并对于从t-1到2的i,-向w/g(mod p)施加密钥<2i,p>以获得±1,-如果-1,则设h为i并由w×c(mod P)代替w,-以c2(mod p)代替c。
-返回“h从2到t-1的值”。
-如果(g|p)=-1,返回“h=t”。
让我们回忆起,当u>0有k+u>t时,k,g和p是不相容的;当h=0或1时无论k值如何,且而且当h>1有k+h≤t+1时,它们是相容的。
第二个原理-三个以下过程对应于第二原理的不同的实现。在某些实现中,第二原理能够被加强到要求每一数q1到qm是非平凡的程度。这时基数的作用被平衡;平衡或不平衡的第二原理的事实对模式的安全性表现的某些方面有影响。最后当有f>2个不同的素因子时,在m个数{q1到qm}中,可能要求f-1个独立的数中有至少一个子单位。
三个过程使用如下定义的m×f数δi,j。
-当pj使得t<k时,对于i从1到m,δi,j=Δi,j,即如果hi,j=0,则为+1,且如果hi,j=1,则为-1。
-当pj使得t≥k时,对于i从1到m,δi,j=0,这表明Δ1,j到Δm,j能够被选择作为第二原理的函数。
第一过程验证{δi,1到δi,f}至少一个集合是变量或零,换言之至少一个数q1到qm是非平凡的或可被选择为非平凡的。
-对于i从1到m和j从1到f,-如果δi,j=0,或≠δi,1,则返回“成功”。
-返回“失败”第二过程验证{δi,1到δi,f}每一个集合是变量或零,换言之至少一个数q1到qm是非平凡的或可被选择为非平凡的。
-对于i从1到m-对于j从1到f,-如果δi,j=0,或≠δi,1,则进到i的下一个值。
-返回“失败”返回“成功”。
第三过程,对于每一对素因子pj1和pj2有1≤j1<j2≤f,验证{δi,1到δi,f}至少有一个集合,其中δi,j1是零或不同于δi,j2。当m小于f-1时它明显失败。当它成功时,在m个数q1到qm之中,至少有相对于f个素因子独立的f-1个数的一个集合。
-对于j1从1到f-1及对于j2从j1+1到f,-对于i从1到m,-如果δi,j1=0或≠δi,j2,则进到j1和j2的下一个值。
-返回“失败”-返回“成功”。
当过程失败时,GQ2密钥集合的生成元遵循以下可能的两个策略中一个策略-选择m个基数之一同时保持f个素因子,-改变f个素因子之一同时保持m个基数。
第三原理-以下过程确定所产生的GQ2密钥是否在产生的过程中或已经产生-GQ2基本密钥集合,换言之,2×m个数±g1到±gm都是非二次剩余,-或者,GQ2互补密钥集合,换言之在2×m个数±g1到±gm中至少有一个二次剩余。
该过程对于i从1到m及对于j从1到f使用两个勒让德记号(gi|pj)和(-gi|pj)。
-对于i从1到m-对于j从1到f,-如果(gi|pj)=-1,则进到i的的下一个值。
-返回“GQ2互补密钥集合”-对于j从1到f,-如果(-gi|pj)=-1,则进到i的的下一个值。
-返回“GQ2互补密钥集合”。
-返回“GQ2互补密钥集合”。
私人分量-对于直接类型的方程式xv≡gi2(mod pj),以下计算建立了私人分量Qi,j的所有可能的值。两个最简单的和最普通的情形,即t=1和t=2,之后是最复杂的情形,即t>2。
对于t=1,即pj≡3(mod 4),密钥<(pj+1)/4,pj>给出CG(pj)中任何二次剩余的平方二次根。推导出一个数sj≡((Pj+1)/4)k(mod(pj-1)/2),这给出把G1转换为w≡G1sj(mod pj)的密钥<sj,pj>。Qi,j等于w或等于pj-w。
对于t=2,即pj≡5(mod8),密钥<(pj+3)/8,pj>给出CG(pj)中任何奇数秩元素的奇数秩的平方根。推导出一个数sj≡((Pj+3)/8)k(mod(pj-1)/4),这给出把Gi转换为w≡Gisj(mod pj)的密钥<sj,pj>。应当观察到z≡2(pj-1)/4(modpj)是-1的平方根,因为在CG(pj)中2是非二次剩余。Qi,j等于w,或等于pj-w,或等于w’≡w×z(modpj),或等于Pj-w’。
对于pj≡2t+1(modt+1)有t>2,密钥<pj-1+2t)/2t+1,pj>给出任何奇数秩元素的奇数秩的平方根。可k,g和p之间的相容性测试已经给出h的值,然后是u的值。
-当Gi在一循环中时(u=0,不论k的值如何),数sj≡((pj-1+2t)/2t+1)k(mod(pj-1)/2t)被建立。密钥<sj,pj>把Gi转换为奇数秩的解Gisj(mod pj)。存在偶数秩的解,它分布在捆绑在循环的min(k,t)相继分支中,我们说在α分支中。Qi,j等于w与CG(pj)中任何第2α个单位根的乘积。
-当Gi在分支(u>0,u+k≤t)中一适当的位置时,所有的解与Gi在相同的分支,即由Gi的第2u幂捆绑到一个循环的分支。数sj≡((pj-1+2t)/2t+1)k+u(mod(pj-1)/2t)被建立。密钥<sj,pj>把Gi的第2u幂转换为奇数秩w的一个数。w与CG(pj)中第2k+u单位原根的所有乘积包含Qi,j的2k个值。
当pj使得t≥k时,数bj是CG(pj)中第2t单位原根,存在CG(pj)中bj的第2t-u幂;它是第2k单位原根。以第2k单位原根乘以Qi,j的允许数Δi,j的值摆动。
对于逆类型的的方程式1≡xv×gi2(modpj),只要以((pj-1)/2t)-sj代替密钥<sj,pj>中的数sj即可,它相当于插入在CG(pj)中Qi,j的值。
具有两个与5(mod8)同余的素因子密钥集合的例子p1=E6C83BF428689AF8C3 5E07EDD06F9B39A659829A58B79CD894C435C95F32BF25p2=11BF8A68A0817BFCC00F15731C8B70CEF9204A34133A0DEF862829B2EEA74873Dn=p1×p2=FFFF8263434F173D0F2E76B32D904F56F4A5A6A50008C43D32B650E9AB9AAD2EB713CD4F9A97C4DBDA3828A3954F296458D5F42C0126F5BD6B05478BE0A80ED1这里是最开始一些素数的勒让德记号。
(2|p1)=-1;(3|p1)=-1;(5|p1)=+1;(7|p1)=-1;(11|p1)=+1;(13|p1)=-1;(17|p1)=+1;
在CG(p1)中秩对于-5,-11和17是奇数。
(2|p2)=-1;(3|p2)=+1;(5|p2)=+1;(7|p2)=+1;(11|p2)=+1;(13|p2)=-1;(17|p2)=-1;在CG(p2)中秩对于3,-5,7和11是奇数。
Carmichael函数是λ(n)=ppcm((p1-1)/4,(p2-1)/4)。
λ(n)=33331A13DA4304A5CFD617BD6F834311642121543334F40C3D57A9C8558555D5BDAA2EF6AED17B9E3794F51A65A1B37239B18FA9B0F618627D8C7E1D8499C1B以k=9,数σ≡λ(n)-((1+λ(n))/2)9(modλ(n))作为私人指数,从而使用逆类型的一般方程式。
σ=01E66577BC997CAC273671E187A35EFD25373ABC9FE6770E7446C0CCEF2C72AF6E89D0BE277CC6165F1007187AC58028BD2416D4CC1121E7A7A8B6AE186BB4B0数2,3,7,13和17不适于作为基数。
密钥<σ,n>把g1=5转换为表示没有分解的私人数Q1。确实,在两个域中,-5在一个循环上。
Q1=818C23AF3DE333FAECE88A71C4591A70553F91D6C0DD5538EC0F2AAF909B5BDAD491FD8BF13F18E3DA3774CCE19D0097BC4BD47C5D6E0E7EBF6D89FE3DC5176C密钥<σ,n>把g2=11转换为表示分解的私人数Q2。确实,11在两个域中在相同的位置。
Q2=25F9AFDF177993BE8652CE6E2C728AF31B6D66154D3935AC535196B07C19080DC962E4E86ACF40D01FDC454F2565454F290050DA052089EEC96A1B7DEB92CCA7密钥<σ,n>把g3=21=3×7转换为表示分解的私人数Q3。
Q3=78A8A2F30FEB4A5233BC05541AF7B684C2406415EA1DD67D18A0459A1254121E95D5CAD8A1FE3ECFE0685C96CC7EE86167D99532B3A96B6BF9D93CAF8D4F6AF0
密钥<σ,n>把g4=26=2×13转换为表示分解的私人数Q4。
Q4=6F1748A6280A200C38824CA34C939F97DD2941DAD300030E481B738C62BF8C673731514D1978AF5655FE493D659514A6CE897AB76C01E50B5488C5DAD12332E5私人密钥可由两个素因子,中国余数的参数和八个私人分量静态地表示。
α≡p2(modp1)-1(modp1)=ADE4E77B703F5FDEAC5B9AAE825D649E06692D15FBF0DF737B115DC4D012FD1DQ1,1≡Q1(mod p1)=7751A9EE18A8F5CE44AD73D613A4F465E06C6F9AF4D229949C74DD6C18D76FAFQ1,2≡Q1(mod p2)=A9EB5FA1B2A981AA64CF88C382923DB64376F5FD48152C08EEB6114F31B7665FQ2,1≡Q2(mod p1)=D5A7D33C5FB75A033F2F0E8B20274B957FA34004ABB2C2AC1CA3F5320C5A9049Q2,2≡Q2(mod p2)=76C9F5EFD066C73A2B5CE9758DB512DFC011F5B5AF7DA8D39A961CC876F2DD8FQ3,1≡Q3(mod p1)=2FEC0DC2DCA5BA7290B27BC8CC85C938A514B8F5CFD55820A174FB5E6DF7B883Q3,2≡Q3(mod p2)=010D488E6B0A38A1CC406CEE0D55DE59013389D8549DE493413F34604A160C1369Q4,1≡Q4(mod p1)=A2B32026B6F82B6959566FADD9517DB8ED8524652145EE159DF3DC0C61FE3617Q4,2≡Q4(mod p2)=011A3BB9B607F0BD71BBE25F52B305C224899E5F1F8CDC2FE0D8F9FF62B3C9860FGQ2私人密钥的同素异构性-GQ2私人密钥可能的不同表示证明是等价的它们都回归到作为真正GQ2私人密钥的模数n的因子分解的知识。GQ2私人密钥的表示具有在证明实体内而不是在控制实体内计算操作的实现。这里有GQ2私人密钥的三个主要的可能的表示。1)GQ私人密钥传统的表示在于存储m个私人数Q1和公开验证密钥<v,n>;对于GQ2模式,这个表示与以下两个竞争。2)就工作负载而言最优的表示在于存储参数k,f个素因子pj,m×f个私人分量Qi,j及f-1个中国余数的参数。3)就私人密钥长度而言的最优表示在于参数k,m个基数,f个素因子pj,然后在于通过建立或者是m个私人数Qi及模数n以回到第一表示,或者m×f个私人分量Qi,j及f-1个中国余数的参数以回到第二表示。
因为动态鉴别或数字签字机制的安全性等价于模数的因子分解知识,GQ2模式不允许在使用相同模数的两个实体之间作简单的区分。一般来说,每一证明实体具有其自身的GQ2模数。然而,能够规定带有四个素因子的的GQ2模数,其中两个由一个实体知道我其它两个由另一实体知道。
动态鉴别-动态鉴别机制,这用来证明被称为控制器的实体,被称为演示器的另一实体的真实性,以及任何相关的消息M的真实性,使得控制器能够确认是实际的演示器并可能是他和演示器实际上说出关于相同的消息M。相关的消息M是可选的,这意味着它可以是空的。
动态鉴别机制是四个行动的一个序列委托行动,查询行动,响应行动及检验行动。演示器执行委托和响应行动。控制器执行查询和控制行动。
在演示器内,证人可以是被隔离的,其方式是隔离演示器最敏感的参数和功能,换言之即委托和响应的产生。证人具有可供处理的参数和GQ2私人密钥,换言之,即根据上述三个表示之一的模数n的因子分解·f个素因子和m个基数,·m×f个算分量,f个素因子和f-1个中国余数的参数,·m个私人数及模数n。
证人可以对应于一特定的实施例,例如,·连接到共同形成演示器的PC的芯片卡,或者又,·PC内特别被保护的程序,或者又,·芯片卡内特别被保护的程序。这样被隔离的证人类似于以下在签字人内所定义的证人。使用该机制的每一操作,证人产生一个或多个委托R,然后对查询d同样多的响应D。每一集合{R,d,D}构成一GQ2三元组。
演示器不仅包含证人,而且在必要时有可供处理的散列函数和消息M。
控制器有可供处理的模数n,例如来自公开密钥的目录或又来自公开密钥寄存器;必要时它还有可供处理的相同的散列函数和消息M’。GQ2公开参数,即k,m和g1到gm可通过演示器向控制器给出。控制器能够从任何查询d并从任何响应D恢复委托。参数k和m通知控制器。除非特别指出,来自g1到gm的m个基数是m个开始的素因子。每一查询d必须包含由从d1到dm标记的m个基本查询每一基数一个。从d1到dm的每一基本查询是从0到2k-1-1的一个数(从v/2到v-1的数不使用)。一般,每一查询通过m次k-1位编码(而不是由m次k位)。例子是,k=5及m=4,基数5,11,21,26,每一查询包括四个四元组被传输的16位。当也有可能是(k-1)×m可能的查询时,数(k-1)×m确定由每一GQ2三元组所携带的安全性按定义,不知道模数n的因子分解的欺骗者在2(k-1)×m中恰有1次成功的机会。当(k-1)×m的值从15到20时,一个三元组足以保证动态基本的安全。无论达到任何安全程度,可以并行地产生多个三元组它们还可以按顺序产生,换言之,重复机制的操作。
1)委托行动包括以下操作。
当证人不使用中国余数时,有可供处理的参数k,从Q1到Qm的m个私人数和模数n;它是随机抽取的并是在私人数或更多的随机数r(0<r<n)中抽取;然后,通过k个相继自乘平方(mod n),它把每一随机数r转换为一委托R。
R≡rv(mod n)这里有一例子,带有以前的密钥集合而没有中国余数。
r=5E94B894AC24AF843131F437C1B1797EF562CFA53AB8AD426C1AC016F1C89CFDA13120719477C3E2FB4B4566088E10EF9C010E8F09C60D981512198126091996R=6BBF9FFA5D509778D0F93AE074D36A07D95FFC38F70C8D7E3300EBF234FA0BC20A95152A8FB73DE81FAEE5BF4FD3EB7F5EE3E36D7068D083EF7C93F6FDDF673A当证人使用中国余数时,有可供给处理的参数k,从p1到pf的f个素因子,f-1个中国余数参数和m×f个私人分量Qi,j;它是随机抽取的并是在私人数或更多的r个随机数集中抽取;每一集包含每个素因子pi一个随机数ri(0<ri<pi);然后,通过k个相继自乘平方(modpi),它把每一随机数ri转换为一委托Ri。
Ri≡ri(mod Pi)对于每一f个委托分量收集集,证人根据中国余数技术建立委托。存在与随机数收集集同样多的委托。
R=中国余数(R1,R2,到Rf)这里有一例子,带有上述密钥集合和中国余数。
r1=5C6D37F0E97083C8D120719475E080BBBF9F7392F11F3E244FDF0204E84D8CAER1=3DDF516EE3945CB86D20D9C49E0DA4D42281D07A76074DD4FEC5C7C5E205DF66r2=AC8F85034AC78112071947C457225E908E83A2621B0154ED15DBFCB9A4915AC3R2=01168CEC0F661EAA15157C2C287C6A5B34EE28F8EB4D8D340858079BCAE4ECB016R=中国余数(R1,R2)=0AE51D90CB4FDC3DC757C56E063C9ED86BE153B71FC65F47C123C27F082BC3DD15273D4A923804718573F2F05E991487D17DAE0AAB7DF0D0FFA23E0FE59F95F0在两种情形下,演示器都向控制器传输每一委托R的所有或部分,或者传输通过对每一委托R和消息M求散列而获得的散列代码H。
2)查询行动在于随机抽取一个或多个查询d,其每一个由m个基本查询d1,d2到dm组成;每一基本查询d1是从0到v/2-1数之一。
这里是关于查询的两个例子,换言之k=5,m=4。
d1=1011=11=‘B’;d2=0011=3;d3=0110=6;d4=1001=9,d=d1||d2||d3||d4=1011001101101001=B3 69控制器向演示器传输每一查询d。
3)响应行动包括以下运算。
当证人不使用中国余数时,它有可供处理的参数k,从Q1到Qm的m个私人数和模数n;它使用委托行动的每一随机数r和私人数根据基本查询计算一个或多个响应D。
D≡r×Q1d1×Q2d2×...Qmdm(mod n)这里有一系列没有中国余数的例子。
D=027E6E808425BF2B401FD00B15B642B1A8453BE8070D86C0A7870E6C1940F7A6996C2D871EBE611812532AC5875E0E116CC8BA648FD8E86BE0B2ABCC3CCBBBE4当证人使用中国余数时,它有可供给处理的参数k,从p1到pf的f个素因子,f-1个中国余数参数和m×f个私人分量Qi,j;它使用委托行动的每一随机数收集集计算f个响应分量的一个或多个收集集响应分量的每一收集集包括每素因子一个分量。
Di≡ri×Q1,id1×Q2,id2×...Qm,idm(mod pi)对响应分量的每一收集集,证人根据中国余数技术建立一个响应。存在与查询同样多的响应。
D=中国余数(D1,D2,到Df)这里有带有中国余数的例子的系列。
D1=r1×Q1,1d1×Q2,1d2×Q3,1d3×Q4,1d4(mod p1)=C71F86F6FD8F955E2EE434BFA7706E38E5E715375BC2CD2029A4BD572A9EDEE6D2=r2×Q1,2d×Q2,2d2×Q3,2d3×Q4,2d4(mod p2)=0BE022F4A20523F98E9F5DBEC0E10887902F3AA48C864A6C354693AD0B59D85ED=90CE7EA43CB8EA89ABDD0C814FB72ADE74F02FE6F098ABB98C8577A660B9CFCEAECB93BE1BCC356811BF12DD667E2270134C9073B9418CA5EBF5191218D3FDB3在两种情形下,演示器都向控制器传输每一响应D。
4)检验行动在于检验每一三元组{R,d,D}对非零值验证以下类型的方程式,R×Πi=1mGidi≡D2k(modn)]]>或R≡D2K×Πi=1mGidi(modn)]]>或在重建每一委托中每一不能是零。R′≡D2k/Πi=1mGidi(modn)]]>或R′≡D2k×Πi=1mGidi(modn)]]>然后控制器可能通过使每一重建的委托R’和消息M’散列而计算散列代码H’。当控制器这样恢复它在委托结束时收到的东西,换言之,即所有或部分的每一委托R或散列代码H时,动态鉴别是成功的。
例如,一个基本操作序列把响应D转换为委托R’。该序列包括通过基数的k-1个除法或乘法分开的k个平方(mod n)。对于在第i个平方和第i+1个平方之间进行的第i个除法或乘法,基本查询d1的第i位指出它是否必须使用g1,基本查询d2的第i位指出它是否必须使用g2,直到基本查询dm的第i位指出它是否必须使用gm。
这里不使用中国余数的例子的结束。
D=027E6E808425BF2B401FD00B15B642B1A8453BE8070D86C0A7870E6C1940F7A6996C2D871EBE611812532AC5875E0E116CC8BA648FD8E86BE0B2ABCC3CCBBBE4模n自乘为平方88BA681DD641D37D7A7D9818D0DBEA82174073997C6C32F7FCAB30380C4C6229B0706D1AF6EBD84617771C31B4243C2F0376CAF5DCEB644F098FAF3B1EB49B39以5乘26=130,即’82’模n6ECABA65A91C22431C413E4EC7C7B39FDE14C9782C94FD6FA3CAAD7AFE192B9440C1113CB8DBC45619595D263C1067D3D0A840FDE008B415028AB3520A6AD49D模n自乘为平方0236D25049A5217B13818B39AFB009E4D7D52B17486EBF844D64CF75C4F652031041328B29EBF0829D54E3BD17DAD218174A01E6E3AA650C6FD62CC274426607乘以21,即’15’模n2E7F40960A8BBF1899A06BBB6970CFC5B47C88E8F115B5DA594504A92834BA405559256A705ABAB6E7F6AE82F4F33BF9E91227F0ACFA4A052C91ABF389725E93模n自乘为平方B802171179648AD687E672D3A32640E2493BA2E82D5DC87DBA2B2CC0325E7A71C50E8AE02E299EF868DD3FB916EBCBC0C5569B53D42DAD49C956D8572E1285B0以5乘以11乘以21=1155,即’483’模n3305560276310DEFEC1337EB5BB5810336FDB28E91B350D485B09188E0C4F1D67E68E9590DB7F9F39C22BDB4533013625011248A8DC417C667B419D27CB11F72模n自乘为平方8871C494081ABD1AEB8656C38B9BAAB57DBA72A4BD4EF9029ECBFFF540E55138C9F22923963151FD0753145DF70CE22E9D019990E41DB6104005EEB7B1170559以5乘以11乘以26=1430,即’596’模n2CF5F76EEBF128A0701B56F837FF68F81A6A5D175D0AD67A14DAEC6FB68C362B1DC0ADD6CFC004FF5EEACDF794563BB09A17045ECFFF88F5136C7FBC825BC50C模n自乘为平方6BBF9FFA5D509778D0F93AE074D36A07D95FFC38F70C8D7E3300EBF234FA0BC20A95152A8FB73DE81FAEE5BF4FD3EB7F5EE3E36D7068D083EF7C93F6FDDF673A找到委托R。鉴别成功。这里是使用中国余数例子的结束。D=90CE7EA43CB8EA89ABDD0C814FB72ADE74F02FE6F098ABB98C8577A660B9CFCEAECB93BE1BCC356811BF12DD667E2270134C9073B9418CA5EBF5191218D3FDB3模n自乘为平方770192532E9CED554A8690B88F16D013010C903172B266C1133B136EBE3EB5F13B170DD41F4ABE14736ADD3A70DFA43121B6FC5560CDD4B4845395763C792A68以5乘以26=130,即’82’模n6EE9BEF9E52713004971ABB9FBC31145318E2A703C8A2FB3E144E7786397CD8D1910E70FA86262DB771AD1565303AD6E4CC6E90AE3646B461D3521420E240FD4模n自乘为平方D9840D9A8E80002C4D0329FF97D7AD163D8FA98F6AF8FE2B2160B2126CBBDFC734E39F2C9A39983A426486BC477F20ED2CA59E664C23CA0E04E84F2F0AD65340乘以21,即’15’模nD7DD7516383F78944F2C90116E1BEE0CCDC8D7CEC5D7D1795ED33BFE8623DB3D2E5B6C5F62A56A2DF4845A94F32BF3CAC360C7782B5941924BB4BE91F86BD85F模n自乘为平方DD34020DD0804C0757F29A0CBBD7B46A1BAF949214F74FDFE021B626ADAFBAB5C3F1602095DA39D70270938AE362F2DAE0B914855310C7BCA328A4B2643DCCDF以5乘以11乘以21=1155,即’483’模n038EF55B4C826D189C6A48EFDD9DADBD2B63A7D675A0587C8559618EA2D83DF552D24EAF6BE983FB4AFB3DE7D4D2545190F1B1F946D327A4E9CA258C73A98F57模n自乘为平方D1232F50E30BC6B7365CC2712E5CAE079E47B971DA03185B33E918EE6E99252DB3573CC87C604B327E5B20C7AB920FDF142A8909DBBA1C04A6227FF18241C9FE以5乘以11乘以26=1430,即’596’模n
3CC768F12AEDFCD4662892B9174A21D1F0DD9127A54AB63C984019BED9BF88247EF4CCB56D71E0FA30CFB0FF28B7CE45556F744C1FD751BFBCA040DC9CBAB744模n自乘为平方0AE51D90CB4FDC3DC757C56E063C9ED86BE153B71FC65F47C123C27F082BC3DD15273D4A923804718573F2F05E991487D17DAE0AAB7DF0D0FFA23E0FE59F95F0找到委托R。鉴别成功。
数字签字数字签字机制允许称为签字人的实体产生签署的消息,且允许称为控制器的实体验证签署的消息。对消息M以邻接的签字附录签署,该签字包括一个或多个委托和/或查询,以及对应的响应。
控制器有供处理模数n,例如来自公开密钥目录或来自公开密钥寄存器;它还具有相同的散列函数。GQ2公开参数,即数k,m和g1到gm可以由演示器向控制器给出,例如通过把它们放入签字附录。
数k和m通知给控制器。一方面,从d1到dm的每一基本查询是从0到2k-1-1的一个数(数v/2到v-1不使用)。另一方面,每一查询d必定包含从d1到dm表示的与基数同样多的m个基本查询。此外,除非另外指出,从g1到gmm个基数是m个开始的素数。在(k-1)×m的值从15到20时,能够以并行产生的四个GQ2三元组签署;在(k-1)×m的值从60到更大时,能够以单一GQ2三元组签署。例如k=9和m=8,单一的GQ2三元组是足够的;每一查询包含八字节且基数为2,3,5,7,11,13,17和19。
签字操作是三个行动的序列委托行动,查询行动和响应行动。每一行动产生一个或多个GQ2三元组,每一三元组包含委托R(≠0),由d1,d2...dm表示的m个基本查询组成的查询d以及响应D(≠0)。
签字人具有可供处理的散列函数,参数k和GQ2私人密钥,换言之,就是根据上述三个表示之一的模数n的因子分解。在签字人内,能够隔离进行委托和响应行动的证人,其方式是隔离演示器最敏感的功能和参数。为了计算委托和响应,证人有可供处理的参数k和GQ2私人密钥,换言之,即根据上述三个表示之一的模数n的因子分解。被这样隔离证人与在演示器内定义证人类似。这可以对应于一个具体的实施例,例如·与共同形成签字人的PC连接的芯片卡,或·PC内特别被保护的程序,或·芯片卡内特别被保护的程序。
1)委托行动包括允许操作。
当证人具有可供处理的m个私人数Q1到Qm和模数n时,它随机并私人抽取一个或多个随机数r(0<r<n);然后,通过k个相继的自乘为平方(mod n),它把每一随机数r转换为委托R。
R≡rv(mod n)当证人具有可供处理的f个素因子p1到pf,和m×f私人分量Qi,j时,它随机并私人抽取f个随机数的一个或多个收集集每一个收集集包含每素因子pi(0<ri<pi)一随机数ri;然后,通过k个相继的自乘为平方(mod pi),它把每一随机数ri转换为委托Ri。
Ri≡riv(mod pi)对f个委托分量的每一个收集集,证人根据中国余数技术建立一委托。存在与随机数收集集同样多的委托。
R=中国余数(R1,R2,到Rf)2)查询行动在于使所有委托R和消息散列为M以便获得散列代码,签字人由它们形成一个或多个查询,每一查询包含m个基本查询;每一基本查询是从0到v/2-1的一个数;例如,对于k=9和m=8,每一查询包含八个字节。存在与委托同样多的查询。
d=d1,d2,...dm,它们是从散列结果(M,R)抽取的3)响应行动包括以下操作。
当证人具有可供处理的m个私人数Q1到Qm和模数n时,它使用委托行动的每一随机数r和私人数根据基本查询计算一个或多个响应D。
X≡Q1d1×Q2d2×到Qmdm(mod n)D≡r×X(mod n)
当证人具有可供处理的f个素因子p1到pf,和m×f私人分量Qi,j时,它使用委托行动的随机数的每一个收集集计算f个响应分量的一个或多个收集集响应分量的每一个收集集包含每素因子一随机数。
Xi≡Q1,id1×Q2,id2×到Qm,idm(mod pi)Di≡ri×Xi(mod pi)对响应分量的每一个收集集,证人根据中国余数技术建立一响应。存在与查询同样多的响应。
D=中国余数(D1,D2,到Df)签字人签署消息M将包括以下内容的签字人附录纳入其中-或者,每一GQ2三元组,即每一委托R,每一查询D和每一响应D,-或者,每一委托R和每一对应的响应D,-或者,每一查询d和每一对应的响应D。
验证操作的性能取决于签字附录的内容。可以在三种情形之间作出区别。
其中附录包含一个或多个三元组,控制操作包括两个独立的过程,其时序是不重要的。当且仅当以下两个条件被满足时控制器接收签署的消息。
一方面,每一三元组必须是相关的(必须验证以下类型适当的关系)和可接收的(必须对非零值作出比较)。R×Πi=1mGidi≡D2k(modn)]]>或者R≡D2k×Πi=1mGidi(modn)]]>例如,响应D通过一系列基本操作被转换为通过k-1个乘法或除法(mod n)由基数分开的k个平方(mod n)。对于在第i个平方和第i+1个平方之间进行的第i个乘法或除法,基本查询d1的第i位指示是否必须使用g1,基本查询d2的第i位指示是否必须使用g2,直到基本查询dm的第i位指示是否必须使用gm。这样,每一分量R被发现出现在签字附录中。
另一方面,必须把一个或多个三元组捆绑到消息M。通过对所有委托R和消息M散列,获得了从其找到每一查询d的散列代码。
d=d1d2...dm,等价于从散列结果(M,R)抽取的代码。
其中附录不包含查询,控制操作通过对所有委托R和消息M散列以一个或多个查询d’的表示开始。
d’=d’1d’2...d’m,从散列结果(M,R)抽取然后,当且仅当每一三元组是相关的(以下类型适当的关系被验证)和可接收的(对非零值作出比较),控制器才接收签署的消息。R×Πi=1mGid′i≡D2k(modn)]]>或者R≡D2k×Πi=1mGid′i(modn)]]>其中附录不包含委托,根据以下两个公式中适当的那一个,控制操作以一个或多个委托R’的重构开始。没有被重新建立的委托被动是零。R′≡D2k/Πi=1mGidi(modn)]]>或者R′≡D2k×Πi=1mGidi(modn)]]>然后,控制器必须对所有委托R’和消息M散列,以便重构每一查询d。
d=d1d2...dm,等价于从散列结果(M,R’)抽取的代码当且仅当每一被重构的查询等价于出现在附录中对应的查询,控制器才接受签署的消。
权利要求
1.用于对控制器实体验证的过程,-实体的真实性和/或-与这一实体相关的消息M的完整性;所述过程实现-由f个素因子p1,p2,...pf(f大于或等于2)的乘积构成的公开模数n,或实现f个素因子;-m个不同的整数基数g1,g2,...gm(m大于或等于1),gi小于f个素因子p1,p2,...pf;-m对私人Q1,Q2,...Qm和公开G1,G2,...Gm值(m大于或等于1)或从它们推导的参数;所述模数和所述私人和公开值通过以下类型的关系联系Gi·Qiv≡1·mod n或Gi≡Qivmod n所述公开值Gi是基数的平方gi2,v表示以下形式的公开指数v=2k其中k是大于1的安全性参数;根据本发明的过程包括以满足以下条件的方式产生f个素因子p1,p2,...pf和/或m个基数g1,g2,...gm的步骤,第一个条件根据第一个条件,每一方程式Xv≡gi2mod n(1)具有在模n整数环中x的解,第二个条件这里Gi≡Qivmod n,在通过使Qi自乘为平方模n而获得的m个数qi之中,秩的k-1倍,它们中之一不同于±gi(换言之是非平凡的),这里Gi·Qiv≡1mod n,在通过使Qi的逆自乘为平方模n而获得的m个数qi之中,秩的k-1倍,它们中之一不同于±gi(换言之是非平凡的),第三个条件在以下2m个方程式中X2≡gimod n (2)X2≡-gimod n (3)至少它们之一具有模n整数的环中的x的解,根据本发明用于产生f个素因子p1,p2,...pf和/或m个基数g1,g2,...gm的过程包含一步骤首先选择·安全性参数k·m个基数g1,g2,...gm和/或f个素因子p1,p2,...pf。
2.根据权利要求1的过程,使得m个基数g1,g2,...gm至少部分地在第一整数之中选择。
3.根据权利要求1或2的过程,使得安全性参数k是一小的整数,尤其是小于100。
4.根据权利要求1到3任何之一的过程,使得模数n的大小为大于几百位。
5.根据权利要求1到4任何之一的过程,使得f个素因子p1,p2,...pf具有接近于模数除以因子个数f的大小。
6.根据权利要求1到5任何之一的过程,使得为了测试第一个条件,通过实现以下给出的算法验证数码k,p,g的相容性-通过h表示一个数,使得2h除尽g的相对于p的秩,而2h+1不能除尽它,-h是从勒让德记号(g|p)及从等于CG(p)中第2t单位原根的数码b计算的,·如果(g|p)=-1则h=t·如果(g|p)=+1且t=1,则h=0·如果(g|p)=+1且t>1,则密钥<(p-1+2t)/2t+1,p>施加于G,结果w这样获得··如果w=+g,则 h=0··如果w=p-g,则h=+1,··否则,实施以下计算子模数,通过使变量c初始化将值b赋予它,然后对于i从t-1到2的值叠代以下步骤步骤1密钥<2i,p>施加于w/g(modp),*如果所得结果等于+1,则进到步骤2,*如果所得结果等于-1,则将值i赋予h,而w由w·c(modp)代替,步骤2c由c2(modp)代替,所寻求的h的值这样获得,即根据步骤1最后一次施加密钥<2i,p>,产生等于-1的结果,(可能回顾起-当h>1时并当k+h>t+1时,则k,g,p是相容的,-当h=0或1时,不论k的值如何,或者当h>1时并当k+h≤t+1时,则k,g,p是相容的),(在所述的算法中,勒让德记号和t具有在说明中所定义的意义)。
7.根据权利要求6的过程,使得为了测试第二个条件,进行一个检验,即至少一个集合{δi,1...δi,f}是变量或零,(δ具有在说明中所定义的意义)。
8.根据权利要求7的过程,使得为了测试第三个条件,进行一个检验,即从g1到gm有一个基数gi使得f个勒让德记号(gi|p1)到(gi|pf)都等于+1或者f个勒让德记号(-gi|p1)到(-gi|pf)都等于+1。
9.根据权利要求1到8的任何之一的过程,使得为了计算私人值Q1,Q2,...Qm(Qi,j≡Qimod pj)的f·m私人分量Qi,j,其中Gi≡Qivmod n,过程如下-如果t=1(即如果pj≡3(mod4))·计算一个数sj使得sj≡((pj+1)/4k(mod(pj-1)/2),·其密钥<sj,pj>被推导出,·密钥<sj,pj>施加于Gi,·于是有w≡Gisj(modpj),Qi,j的两个可能的值是w,pj-w,-如果t=2(即如果pj≡5(mod8))·计算一个数sj使得sj≡((pj+3)/8)k(mod(pj-1)/4),·其密钥<sj,pj>被推导出,·密钥<sj,pj>施加于Gi,·于是有w≡Gisj(modpj),且w’≡w·z(mod pj),·Qi,j的四个可能的值是w,pj-w,w’,pj-w’(z具有在说明中所定义的意义),-如果t>2(即如果pj≡2t+1(mod2t+1)),且如果h=0或h=1,·计算一个数sj使得sj≡((pj-1+2t)/2t+1)k(mod(pj-1)/2t),·其密钥<sj,pj>被推导出,·密钥<sj,pj>施加于Gi,·于是有w≡Gisj(modpj)。·Qi,j的2min(k,t)个可能的值等于w乘以CG(pj)中单位第2min(k,t)根任何之一的乘积。-如果t>2(即如果pj≡2t+1(mod2t+1)),h>1及如果h+k≤t+1,·计算sj使得sj≡((pj-1+2t)/2t+1)k+h-1(mod(pj-1)/2t),·其密钥<sj,pj>被推导出,·密钥<sj,pj>施加于2h-1次幂Gi,·于是获得w,·Qi,j的2k个可能的值属于w乘以CG(pj)中单位第2k+h-1原根的所有乘积。
10.根据权利要求9的过程,使得为了计算私人分量Qi,j,其中Gi·Qiv≡1·mod n,在密钥<sj,pj>中sj由((pj-1)/2t)-sj代替。
11.应用根据权利要求1到8任何之一的过程的一个过程,允许产生f个素因子p1,p2,...pf或m个基数g1,g2,...gm所述过程是要证明控制器实体,-实体的真实性和/或-与这一实体相关的消息M的完整性,借助于私人的Q1,Q2,...Qm和公开的G1,G2,...Gm值的m对(m大于或等于1)或从它们推导出的参数,特别是借助于私人分量Qi,j根据以下步骤所述过程实现称为证人的实体;所述证人实体具有f个素因子pi,和/或素因子的中国余数值的参数,和/或公开模数n,和/或m个私人值Qi,和/或f·m个私人值Qi的私人分量Qi,j及公开指数v。-证人计算在整数模n环中的委托R每一委托计算如下·或者通过进行以下类型的运算R≡rvmod n其中r是随机数,使得0<r<n,·或者··通过进行以下类型的运算Ri≡rivmod pi其中ri是与素因子pi相关的随机数,使得0<ri<pi,每一ri属于随机数{r1,r2,到ri}的集合,··然后通过施加中国余数的方法;-证人接收一个或多个查询d;每一查询d包括以下称为基本查询的m个整数di;证人从每一查询d计算一个响应D,·或者通过以下类型的运算D≡r·Q1d1·Q2d2到Qmdmmod n·或者·通过进行以下类型的运算Di≡r·Qi,1d1·Qi,2d2...Qi,mdmmod pi··然后应用中国余数的方法;所述过程使得有与查询d及委托R同样多的响应D,每一组数码R,d,D构成一个三元组,标记为{R,d,D}。
全文摘要
本发明涉及为证明实体的真实性或消息的完整性而设计的特别密钥集。证明是由一密钥集实现的,密钥集包括:m(≥1)对私人Q
文档编号H04L9/32GK1387714SQ0081528
公开日2002年12月25日 申请日期2000年9月29日 优先权日1999年10月1日
发明者路易斯·圭劳, 让-亚奎斯·奎斯瓦特 申请人:法国电信公司, 法国电视传播公司, 马思·里兹克
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1