具体实施方式
参考附图,图1显示了本发明一个实施例生成和验证数字签名方法的流程图。数字签名生成的第一步骤102是选择环R的理想数p和q。更优选的,所有的操作取模数p取自区间(-p/2,p/2),所有的操作取模数q取自区间(-q/2,q/2)。环R的值最好为Z[X]/(XN-1),其中Z为整数的环且N为大于1的整数。在104步骤,选择加密私钥。私钥包含环R的一个或多个多项式。优选的,私钥包含环R的两个多项式f和g。私钥多项式也可以表示为一个行矩阵:
参数N,p和q的值是公知的。优选的,p和q是相对素整数, ,且p<<q。例如,(N,p,q)=(251,3,128)即为优选的公知参数值的选择。另外公知的参数包括Sf和Sg(私钥f和g的优选的多项式的域),以及Sr(签名者在签名过程中用到的中间多项式的域)。这些域用来限制相关多项式为相对短的欧几里得长度值的矩阵(与统一分布地从随机矩阵Zq N中选择相比)。例如,欧几里得范数类似
的多项式为短的,欧几里得范数类似N的多项式为较短的。因而,两个短多项式的卷积典型地产生短多项式。优选的,短的和较短的多项式包含在Sf,Sg和Sr的域。
在本发明的各种实施例中有三种私钥被选用。依照第一种私钥,在此称为私钥类型A,f和g均为短多项式。依照第二种私钥,在此称为私钥类型B,f和g均为短多项式,且对多项式k,f≡g≡k(mod p)(即f,g和k的系数对p取模为相等的)。第三种私钥,主要用作一次性私钥e,在此称为私钥类型C。依照私钥类型C,e为短多项式,但系数e0较大(如q/2p)。
选定私钥后,公钥在106步骤生成。优选的,公钥包括一个或多个公钥多项式。例如,若私钥包含多项式f和g,适当的公钥多项式h可以用这个等式生成:
等式2中的多项式fq -1表示f在Rq=Zq[X]/(XN-1)中的逆运算。”*”代表标准卷积,即多项式乘法,对Zq[X]/(XN-1):
对每个签名不必生成新的私钥和公钥。更有甚的,只要私钥不危及安全,同样的私钥及公钥可以用来重复生成和验证众多的数字签名。照此,私钥多项式f和g,公钥多项式h可称为多重应用的密钥。
在108步骤,辅助的多重应用的私有信息随意地选择。辅助的多重应用的私有信息,可以包含一个或多个环R的辅助私有多项式,为私钥的补充,但本身并不与私钥直接关联。辅助的多重应用的私有信息用来生成的数字签名,可以避免签名泄露私钥的有用信息。它可以防御利用签名泄露私钥的有用信息的弱点带来的二阶平均攻击。
针对NSS签名的平均攻击在NSS密码分析论文中有所描述。简言之,平均的攻击通过分析一些用该私钥的数字签名的收敛性确定私钥的值。因为用来生成数字签名的元素不是私钥本身,而是随机的或公知的,所以用相同的私钥生成的签名序列收敛于私钥相关的一个值。例如,公知的元素收敛于公知的平均数,随机的元素通过大量签名样本是可预知的。把一系列数字签名多项式与它们的反多项式相乘,除去公知的平均值,从而分离出能提供与私钥直接相关的信息f*frev,成为可能。通过对用特定的私钥生成的签名抄本的分析,密码专家已经能够抽取出私钥的相关信息,最终可以得到私钥本身的值。
本发明呈现了对这种一般攻击的多重防御。例如,一种防御致力于通过对签名系列的收敛性操作而欺骗一般的攻击。例如,一个短的或较短的多项式r可以随机的产生,对确定的短矩阵f’,r的值如r=a’*f’。矩阵f’为辅助多重应用私有信息,为私钥的补充,不必为私钥或公钥,且是不优选的。这样,如果攻击者对形式如r+a*f的数字签名多项式的抄本攻击,他只能得到与f*frev+f’*f’rev相关的没用的值,而得不到有用的f*frev的值。
本发明防御一般攻击的程序可以避免这种攻击在合理的时间内收敛。例如,计算中间私有多项式
的值可能是需要的,其中d为随机的短多项式,d多项式为推延f*frev收敛的干扰元素。但是,以这种方式应用多项式d带来了相关数字签名多项式的更大偏离。因而,这种方法更优选的应用于通过欧几里得范数验证的签名多项式,而不是象下面详述的偏离范围限制。
回到图1的方法,步骤110生成一个或多个信息多项式。这一步骤是信息相关的,且每一个新的签名必须重复这一步骤。优选的,信息多项式是环R的,这样使得信息多项式与相关的私钥公钥多项式的互操作较方便。信息多项式可以按公知的方法一个或多个混编(hash)函数生成。
在112步骤选择一次性私钥。与多次使用私钥不同,一次性私钥只用来生成一个签名。下一个签名的生成要选择新的私钥。选择一次性私钥不是必须的,但可以用来增加数字签名的安全性,尤其对于下面详细描述的一般性攻击。
114步骤生成数字签名。优选的,数字签名包含由基于信息多项式及私钥多项式的一个或多个数字签名多项式。数字签名可以用辅助多重应用私有信息和/或一个一次性私钥,及信息多项式和私钥多项式生成。
生成数字签名后,签名者将信息和数字签名一起发送给指定接收者。接收者在116步骤验证数字签名。验证过程可能包括信息,数字签名和公钥间,验证者已知的一种或多种比较。例如,验证者可以验证数字签名多项式和公钥多项式之间的预定关系。另外,验证者可以验证数字签名多项式和信息多项式的偏差值小于或等于预设的偏离阀值。对于a,b∈Zq[x]/(XN-1),a与b的偏差表示为:
Dev(a,b)=#{i:fi≠gi(mod p)} (4)
验证者也可能要确认一个或多个数字签名多项式的范数小于或等于预定的范数阀值。也许需要多个范数来限制数字签名多项式,包括如L1范数,L2(即欧几里得)范数,或任何更高级数的Lp范数。方便起见,欧几里得范数更可取。
在签名验证的过程中,验证者一般使用这些比较类型中的两个的组合或所有三种。例如,签名一般应该确认数字签名与公钥间的预定关系。除此之外,验证者一般应该确认至少另一种与数字签名多项式有关的比较(如,偏差值范围和/或范数范围)。本发明的多种签名生成和验证过程参考图2-5将有更详细的描述。
图2显示了本发明另一个实施例生成和验证数字签名方法的流程图。在202步骤选择私钥。优选的私钥类型为类型B的私钥,包含环R的两个短多项式f和g,其中对某多项式k,f≡g≡k(mod p)。公钥在204步骤根据私钥生成。优选的公钥包含按等式2计算的公钥多项式h。
在206步骤,一个或多个信息多项式m根据要签名的信息生成。例如,优选的信息多项式m由hash函数H(m)得出,其中H为安全hash函数。或者,信息多项式可以包含两个独立的hash函数H1(m)及H2(m)。而且,随机性可以加入到hash函数中。例如,一个信息多项式由H(m,c)得出,其中随机数c将为签名的一部分。
208步骤为任意的,从域Sr中选择随机私有多项式r,如满足r(1)=0。满足r(1)=0的条件不是必须的,但因下面的原因建议满足。优选的r也应该是短的或较短的多项式。假定在208步骤选择任意私钥r,则在210步骤第一中间私钥多项式s的计算方法为:
s=pr*(1-h)-1(mod q) (5)
为了提高效率,参数(1-h)-1的值预先算出并存为s’。在212步骤,第二中间私钥多项式t的计算方法为:
t=s*h(mod q) (6)
通常,s和t应满足s*h=t,且s和t对p取模充分一致。这可以保护按等式8和9得来的数字签名多项式u和v有合适的公钥关系,而且有利于减小信息多项式m和数字签名多项式u和v之间的偏差值。等式5和6给出了一种优选的获得s与t合适关系的方法。
214步骤根据这个等式得出第三中间私有多项式a的值:
通常,第三中间私有多项式a应为小多项式以便减小信息多项式m与等式9得出的数字签名多项式u和v的偏差值。等式7给出了一种优选的得出合适的第三中间私有多项式a的方法。
这三个中间私有多项式s,t和a的计算方法为试图产生与信息多项式m尽可能小的偏差值。如上所述的随机选择满足r(1)=0的私有多项式r确保s和t=s*h(mod q)=s-pr(mod q)以近似的方式偏离(即s和t以相同的系数点偏离)。如果s和t以相同方式偏离,他们的偏差值可以用等式7得出的中间私有多项式a一前一后地得以校正。
给出三个中间私有多项式,第一数字签名多项式u在216步骤根据等式生成:
u=s+a*f(mod q) (8)
第二数字签名多项式v在218步骤根据等式生成:
v=t+a*g(mod q) (9)
多项式对(u,v)即为信息的签名。在生成数字签名多项式u和v的过程中加入私有中间多项式s和t是本发明克服NSS的安全缺陷的一种方法。这是因为NSS签名只是简单的私钥多项式与短多项式w相乘对q取模:(s,t)=(f*w,g*w)(mod q)。结果就是,NSS签名常遭受可以使攻击者得到私钥f和g的成功攻击,见NSS密码分析论文。通过私有中间多项式s和t与签名多项式u和v相加,本发明的实施例确保u和v为不可简化的格式(在简化q模数之前),且不是环R的私钥多项式的倍数。换言之,u和v被环Rq的私钥多项式f和g分开,各自生成短的或长的多项式。本发明的其它实施例以同样的方式采用中间私有多项式。
如果使用两个hash函数H1(m)和H2(m)代替m和H(m)生成签名,等式5中的项pr应由一个短的或较短的,与H1(m)-H2(m)(mod p)全等的任意私有多项式r代替,a应该根据不同于等式7的等式求得:
生成上述的数字签名后,签名者发送信息,信息多项式m及一个或两个数字签名多项式u和v到指定接收者。接收验证者会在220步骤通过至少两个步骤比较验证数字签名。这两个比较共同被称为条件A。在第一比较中,验证者确认数字签名多项式和签名者的公钥满足预定的关系v=u*h(mod q)。二选一地,如果签名者仅发送一个数字签名多项式,以u为例,验证者可以按照上面预定的关系得出另一个数字签名多项式v的值。本发明的多个实施例通常采用的这种互换性,通过减小发送的数字签名的大小提高了传输效率。在任何一种情况下,验证者需要执行第二种比较以便完全满足条件A。
在第二比较中,验证者确认信息多项式m与第一和第二数字签名多项式中u及v的任何一个的偏离小于预定的偏差值阀值。如果两个hash函数H1(m)和H2(m)用来生成签名多项式,则要检查u与hash函数H1(m)的偏差值及v与hash函数H2(m)的偏差值。例如,每个多项式N/5(即,N=251时约为50)的系数可以选作偏离阀值,这样可以大大减小象上述的NSS仿造签名成功攻击的可能性。如果两种比较均满足,验证者认为是真实的签名。
为了提高安全性能,偏离阀值可以设得更低。实验表明,本发明的实施例能够生成小于N/8偏差值(即,N=251时偏差值小于31)的可靠的数字签名,且不泄露签名者私钥的有用信息。另外一个本发明的实施例允许更小的偏离阀值。现参考图3描述这样一个实施例。
图3显示了目前优选的本发明另一个实施例生成和验证数字签名的方法的流程图。在302步骤选择私钥。优选的私钥为类型A,包含两个短多项式f和g。注意,类型A的多项式比类型B短(即更小的欧几里得范数)。这是因为类型B的多项式必须各自不同且必须是同余的p模数。因而类型B的一个多项式必须有更大的系数,这不是类型A的多项式要求的。更短的类型A的私钥多项式因而受对q取模而减小的影响更小,从而,类型A的多项式生成的数字签名多项式最终与信息多项式有更小的偏差值。
304步骤生成公钥。与上一个实施例一样,优选的公钥多项式包含按等式2得出的公钥多项式h。306步骤根据待签名的信息生成一个或多个信息多项式m。例如,如上所述,优选的信息多项式m由hash函数H(m)得出,或者,信息多项式包含两个独立的hash函数H1(m)和H2(m)。而且hash函数中可以加入随机数元素。如信息多项式m可由H(m,c)得出,其中c为将成为签名一部分的随机数。
308步骤从域Sr中选择随机私钥多项式r。优选的多项式r是短的或较短的。在310步骤,第一中间私有多项式t由以下等式得出:
t=r*h(mod q) (11)
312步骤,第二中间私有多项式a由以下等式得出:
与下述的验证过程一致,第二中间私有多项式a是短的,而且两个中间私有多项式t和a的计算方法是为了使得信息多项式m与按等式14得出的数字签名多项式v有尽可能小的偏离。
基于这两个中间多项式,第一数字签名多项式u在314步骤按下等式得出:
u=r+a*f(mod q) (13)
第二数字签名多项式v在316步骤按下等式得出:
v=t+a*g(mod q) (14)
多项式对(u,v)即为信息的签名。如果用两个hash函数H1(m)和H2(m)而不是用信息m生成签名,则a的值用不同于等式12的下列等式得出:
按上述方法生成数字签名后,签名者将信息,信息多项式m,数字签名多项式u和v发送给指定接收方。接收验证者在318步骤通过三个比较验证数字签名。这三种比较统称为条件B。首先,验证者确认数字签名多项式和签名者公钥满足预定关系v=u*h(mod q)。第二,验证者确认第一数字签名多项式u是较短的。第三,验证者确认信息多项式m和第二数字签名多项式v的偏差值小于预定的偏离阀值。如果以上三个比较都满足,验证者认为是真实的签名。
如果两个不同的hash函数H1(m)和H2(m)用来生成签名多项式,则应检查v偏离H2(m)的值,并且须检查u的欧几里得范数范围以确认多项式差值d=u-H1(m)是较短的。
注意,根据这个实施例,只有第二数字签名多项式v必须满足关于信息多项式m的偏离条件。这是因为第一数字签名多项式u单独地被第二要求u是较短的条件比较限制住了。这样一来,条件B是比条件A更严格的标准,因为偏离阀值是局部的计量,这样允许攻击者忽略一些系数条件。而欧几里得范数是全局的标准,将受每一个系数的严重影响。
与上一个实施例一样,偏差阀值可以设为,如每个多项式系数的N/5(即N=251时大约为50的偏差值),这样可以大大降低上述的通过仿造NSS数字签名的成功攻击可能性。为了提高安全性,偏离阀值可以设得更低。实验结果表明,本发明的这个实施例可以将偏离阀值设为N/12或更低(即N=251时小于20的偏差值),能生成可靠的数字签名,不泄露签名者私钥的有用信息。下一个参考图4描述的实施例,能够实现类似的安全签名。
图4显示了本发明另一个实施例生成和验证数字签名的方法的流程图。在402步骤选择私钥。与上一个实施例一样,优选的私钥为类型A的,包含两个短多项式f和g。在404步骤生成一个一次性私钥多项式e。根据f,g,e一对优选的一次性公钥多项式h1,h2在406步骤按下等式生成:
h1=f-1*e(mod q) (16)
h2=g-1*e(mod q) (17)
同样地,h1,h2也可以按下等式生成:
h1=e-1*f(mod q) (18)
h2=e-1*g(mod q) (19)
等式18和19得出合适的多项式h1和h2,但必须计算一次性私钥的逆运算e-1(mod q)。另外,使用等式18和19要求在下面等式21-23和25-27中的e,f,g的类似的替换。
尽管对每一个新的签名,该实施例中用来生成签名的一次性公钥多项式h1和h2都要变化,用来验证签名的多重用公钥多项式h是不变的。
在408步骤根据待签名的信息生成一个或多个信息多项式m。例如,如上所述,优选的信息多项式m用hash函数H(m)得出,其中H为安全的hash函数。同样地,信息多项式也可以包含两个独立的hash函数H1(m)和H2(rm)。一样地,hash函数中可加入随机数。例如,信息多项式m可以用H(m,c)得出,其中c为将成为签名一部分的随机数。
410步骤从域Sr中选择随机私钥多项式r1。优选的多项式r1是短的或较短的。在412步骤,第一中间私有多项式t1由以下等式得出:
t1=r1*h1(mod q) (20)
接着,在414步骤,第二中间私有多项式a1由以下等式得出:
基于这两个中间私有多项式,第一数字签名多项式u1在416步骤按下等式得出:
u1=r1+a1*f(mod q) (22)
第二数字签名多项式v1在418步骤按下等式得出:
v1=t1+a1*e(mod q) (23)
在420步骤,从域Sr中选择第二随机私钥多项式r2。优选的多项式r2是短的或较短的。在422步骤,第三中间私有多项式t2由以下等式得出:
t2=r2*h2(mod q) (24)
在424步骤,第四中间私有多项式a2由以下等式得出:
这四个中间私有多项式t1,t2,a1,a2的计算方法是为了与信息多项式m产生尽可能小的偏离。
基于第三和第四中间私有多项式,第三数字签名多项式u2在426步骤按下等式得出:
u2=r2+a2*g(mod q) (26)
第四数字签名多项式v2在428步骤按下等式得出:
v2=t2+a2*e(mod q) (27)
这四个签名多项式对(u1,u2,v1,v2)一起构成信息的签名。
如上所述,生成数字签名后,签名者发送信息,信息多项式m,数字签名多项式u1,u2,v1,v2给指定接收方。接收验证者在430步骤通过不同于上述的条件B的三个比较验证数字签名。首先,验证者确认数字签名多项式和签名者多重应用公钥满足预定关系
。第二,验证者确认第一和第三数字签名多项式u1,u2是较短的。第三,验证者确认信息多项式m和第二和第四数字签名多项式v1,v2的偏差值小于预定的偏离阀值。如果两个不同的hash函数H1(m)和H2(m)用来生成签名多项式,则应检查v1偏离H1(m)和v2偏离H2(m)的值。如果以上三个比较都满足,验证者认为是真实的签名。
注意,根据该实施例,只须比较第二和第四数字签名多项式v1和v2与信息多项式m的偏差值。因为,类似于上一实施例,第一和第三数字签名多项式u1和u2分别被第二比较的条件更严格的欧几里得范数阀值限制,要求u1和u2是较短的。另外,该实施例一次性私钥的使用可以避免数字签名不受能够发现NSS私钥的一般性攻击。一次性私钥的设计用来避免一般攻击的。因为多项式v仅与一次性使用的私钥有关,卷入这些多项式的一般性攻击无法暴露有用的密码信息。一般性攻击仅限于对多项式u的密码分析。
为了进一步避免多项式u不受一般性攻击,辅助的多重应用私有多项式f’,g’可以用来生成数字签名多项式。特别地,r1的计算方法为r1=a1’*f’,r2的计算方法为r2=a2’*g’。如上所述,辅助的多重应用私有多项式f’和g’的选用处理了数字签名多项式抄本的聚合性,使得通过一般性攻击取得关于私钥多项式f和g的有用信息更加困难。更进一步的保护措施为,多于一个的辅助多重应用私有多项式用来生成每一个数字签名多项式。如,r1的计算方法可以为r1=a1’*f’+a1”*f”,r2的计算方法可以为r2=a2’*g’+a2”*g”。
关于偏差值的限制,如上一个实施例,偏差阀值可以设为,如每个多项式系数的N/5(即N=251时大约为50的偏差值),这样可以大大降低上述的通过仿造NSS数字签名的成功攻击可能性。为了提高安全性,偏离阀值可以设得更低。实验结果表明,与上一个实施例一样,本发明的这个实施例可以将偏离阀值设为N/12或更低(即N=251时小于20的偏差值),能生成可靠的数字签名,不泄露签名者私钥的有用信息。下一个实施例,参考图5给予描述,能够通过进一步降低可接受的偏差值提供更高程度的安全性。
图5显示了本发明另一个实施例生成和验证数字签名的方法的流程图。在502步骤选择私钥。与上一个实施例一样,优选的私钥为类型A的,包含两个短多项式f和g。在504步骤生成一个一次性私钥多项式e,优选的为类型C,一次系数e0较大(如q/2p)。由f,g和e,优选的公钥多项式对h1,h2在506步骤由等式16和17生成,尽管h1,h2也可以相应的依照等式18和19生成。
与上一个实施例一样,尽管对每一个新的签名,该实施例中用来生成签名的一次性公钥多项式h1和h2都要变化,用来验证签名的多重用公钥多项式h是不变的。
在508步骤根据待签名的信息生成一个或多个信息多项式m。例如,如上所述,优选的信息多项式m用hash函数H(m)得出,其中H为安全的hash函数。同样地,信息多项式也可以包含两个独立的hash函数H1(m)和H2(m)。一样地,hash函数中可加入随机数。例如,信息多项式m可以H(m,c)得出,其中c为将成为签名一部分的随机数。
510步骤从域Sr中选择随机私钥多项式r1。优选的多项式r1是短的或较短的。在512步骤,第一中间私有多项式t1由以下等式得出:
t1=r1*h1(mod q) (28)
在514步骤,第二中间私有多项式a1应该是短的,可以使得t1+a1*e(mod q)与信息m有更小的偏差值。更特别地,选择a1的系数,使按等式30得出的v1对信息多项式m偏差值具有的p模数更小或没有。另外,一次性私钥e的选择为,有较大的系数e0,t1+a1*e(mod q)接近于区间(-q/2,q/2]的中央,这样可以防止那些系数对q取模后有所减小,从而进一步降低对p取模后的偏离。
基于这两个中间私有多项式t1和a1,第一数字签名多项式u1在516步骤按下等式得出:
u1=r1+a1*f(mod q) (29)
第二数字签名多项式v1在518步骤按下等式得出:
v1=t1+a1*e(mod q) (30)
在520步骤,从域Sr中选择第二随机私钥多项式r2。优选的多项式r2是短的或较短的。在522步骤,第三中间私有多项式t2由以下等式得出:
t2=r2*h2(mod q) (31)
在524步骤,第四中间私有多项式a2应是短的,选择的值应使得t2+a2*e(mod q)与信息m有较小的或没有偏差值,通过与514步骤得出a1相似的方法得出。在选择多项式a1,a2和e0上,主要集中在防止第二和第四数字签名多项式v1和v2的偏离。尽管a1和a2必须是短的多项式,以确保u1和u2是较短的,不必防止u1和u2的偏离,因为u1和u2的验证限制为欧几里得范数而不是它们与m的偏差值。这样使得对v1和v2系数的操作更加精确,从而有效地避免v1和v2的偏离。
基于第三和第四中间私有多项式,第三数字签名多项式u2在526步骤按下等式得出:
u2=r2+a2*f(mod q) (32)
第四数字签名多项式v2在528步骤按下等式得出:
v2=t2+a2*e(mod q) (33)
这四个签名多项式对(u1,u2,v1,v2)一起构成信息的签名。
如上所述,生成数字签名后,签名者发送信息,信息多项式m,数字签名多项式u1,u2,v1,v2给指定接收方。接收验证者在530步骤通过与上一实施例相同但不同于条件B的三个比较验证数字签名。首先,验证者确认数字签名多项式和签名者多重应用公钥满足预定关系 。第二,验证者确认第一和第三数字签名多项式u1,u2是较短的。第三,验证者确认信息多项式m和第二和第四数字签名多项式v1,v2的偏差值小于预定的偏离阀值。如果以上三个比较都满足,验证者认为是真实的签名。
注意,根据该实施例,只须比较第二和第四数字签名多项式v1和v2与信息多项式m的偏差值。因为,类似于上一实施例,第一和第三数字签名多项式u1和u2分别被第二比较的条件更严格的欧几里得范数阀值限制,这要求u1和u2是较短的。另外,该实施例一次性私钥e的使用可以避免数字签名不受象上一实施例充分说明的那种一般性攻击。
为了进一步避免一般性攻击,象上一实施例一样,辅助的多重应用私有多项式f,g’可以用来生成数字签名多项式。特别地,r1的计算方法为r1=a1’*f’,r2的计算方法为r2=a2’*g’。如上所述,辅助的多重应用私有多项式f’和g’的选用处理了数字签名多项式抄本的聚合性,使得通过一般性攻击取得关于私钥多项式f和g的有用信息更加困难。更进一步的保护措施为,多于一个的辅助多重应用私有多项式用来生成每一个数字签名多项式。如,r1的计算方法可以为r1=a1’*f’+a1”*f”,r2的计算方法可以为r2=a2’*g’+a2”*g”。
如上一个实施例,关于偏差值的限制,偏差阀值可以设为,如每个多项式系数的N/5(即N=251时大约为50的偏差值),这样可以大大降低上述的通过仿造NSS数字签名的成功攻击可能性。为了提高安全性,偏离阀值可以设得更低。主要由于对多项式a1,a2和系数e0的精确控制,实验结果表明,本发明的这个实施例可以将偏离阀值设为N/100或更低(即N=251时为2或更小的偏差值),能生成可靠的数字签名,不泄露签名者私钥的有用信息。事实上,在该实施例中,仔细选择a1,a2和e0的值,签名者可以生成没有偏离,且不泄露私钥有用信息的数字签名。
上面介绍了多种根据本发明生成和验证数字签名的方法。参考图6将介绍根据本发明的另一个实施例实现这些方法的系统。系统有602,604,606,608几个用户,他们中的每一个可能是签名者和/或验证者。每个用户有一个处理器610,和内存612有双向的通信。处理器执行适合的程序代码来执行上述的过程,并生成发送给另一个用户的信息。适合的程序代码可以根据文中的方法生成。内存612存储程序代码,中间结果和数字签名生成和验证执行过程中用到的其它信息。
提供620通信网络可以使用户之间通信。通信网络620可以是各种常用的形式,包括如LAN计算机网络,WAN计算机网络,和/或提供适合的通信网络的移动电话网络。
根据本发明,用户602可以生成和通过通信网络620发送数字签名给用户608。用户608接着可以按照上述的过程验证用户602的签名。用户604和606也可以通过类似的方式通过通信网络620通信。另外,用户604和606可以象图6所示通过直接的通信连接彼此通信。
信任证书授权630用来存储和分发与各个用户602,604,606,608相关的公钥。例如,在验证来自用户608的签名之前,用户602可以要求证书授权630提供一份公钥以便用户608用于上述的验证过程。
[84]虽然已经详细描述了本发明,并且给出了本发明的优选的实施例,应当了解,在本发明的思路和范围内的调整和变化可以是有效的。