CN1377539A - 根据离散对数来部分或全部恢复消息的签名方案 - Google Patents

根据离散对数来部分或全部恢复消息的签名方案 Download PDF

Info

Publication number
CN1377539A
CN1377539A CN 00813678 CN00813678A CN1377539A CN 1377539 A CN1377539 A CN 1377539A CN 00813678 CN00813678 CN 00813678 CN 00813678 A CN00813678 A CN 00813678A CN 1377539 A CN1377539 A CN 1377539A
Authority
CN
China
Prior art keywords
signature
integer
message
mould
calculate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN 00813678
Other languages
English (en)
Inventor
J·S·科伦
D·纳卡彻
J·斯特恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gemplus SA
Original Assignee
Gemplus SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gemplus SA filed Critical Gemplus SA
Publication of CN1377539A publication Critical patent/CN1377539A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明涉及一个根据离散对数来部分或全部恢复消息的签名方案,用于消息的完整恢复的第一方案,用于消息的部分恢复的第二方案。本发明还涉及两个用于减少以最小化将被传输的消息和签名的完整大小的技术。第一技术在于在产生签名对通过适当选择所使用的随机数据来将部分消息包括在签名中。第二技术在于消除表示签名的部分八位字节,在第二验证阶段获得签名的完整恢复。所述方案和所述两种技术的目的在于减少签名和所要传输消息的完整大小。因此它们具体是被设计用于诸如智能卡的便携式介质中的。

Description

根据离散对数来部分或全部恢复消息的签名方案
本发明包括两种基于离散对数问题的新电子签名方案,第一种允许全部恢复消息,第二种允许部分恢复消息,本发明还涉及两种用于减小电子签名长度的技术。
消息的电子签名是与只有签署该消息的人知道的密钥和要签署消息的内容有关的数。电子信号必须是可以验证的,第三人必须可以在不需要知道签署该消息的人的密钥的情况下验证签名的有效性。
存在两种类型的电子签名方案:
-需要原始消息用于验证签名的电子签名方案。
-能够恢复消息的电子签名方案。在签名自身之后获得原始消息。因为不需要原始消息用来验证签名,所以签名的总长度可以更短。
有许多电子签名方法。最熟悉的是:
-RSA签名方案。这是最广泛使用的电子签名方案。它的安全性是基于因式分解大量数字的难度。
-Rabin签名方案。它的安全性也是基于因式分解大量数字的难度。
-El-Gamal类型的签名方案。它的安全性是基于离散对数问题的难度。离散对数问题在于确定一整数r,使得y=gx,其中y和g是具有组结构的一套E的两个元素。
-Schnorr签名方案。这是El-Gamal类型的签名方案的变型。
存在另一种El-Gamal类型的签名方案的变型允许全部恢复消息,叫做Nyberg和Rueppel签名方案。此方案在文章“一种基于DSA的给出消息恢复的新签名方案”中描述,此文章出现在“1993年关于通信和计算机安全的第一次ACM会议会志,58-61”中出现。根据椭圆曲线的另一种方案在文献“IEEE P1363起草的用于公共密钥的标准规范,1998年8月”。这种方案利用冗余函数R、形成零元素记为0的组结构的椭圆曲线和椭圆曲线上的点G,点G是素数r阶子组的发生器。私有密钥是小于r的正整数s,公共密钥是点W=s.G,符号s.G表示取值等于G的s个点在椭圆曲线加法意义上的总和。产生消息m的签名的方法包括下面的五步:
1)生成0和r-1之间的一个随机数u,计算V=u.G;
2)计算整数f=R(m);
3)使点V和整数i相关联并计算c=i+f模r;如果c=0返回步骤1);
4)计算d=u-s*c模r;
5)签名是整数对(c,d)。
验证签名的方法包括下面的四步:
1)如果c不属于区间[1,r-1]或者d不属于区间[0,r-1],则签名不有效;
2)计算点P=d.G+c.W;如果P=0,则签名不有效;
3)使整数i和点P相关联并计算f=c-i模r;
4)从f找到消息m并验证f=R(m);如果是,则消息m的签名有效;否则此签名不有效。
本发明的第一种方法包括El-Gamal类型的签名方案的另一种变型。这种变型允许全部恢复消息。这种变型在使用椭圆曲线的上下文中描述。但是这种变型可用于任何一组值,这组值具有离散对数问题困难的组结构,例如整数的乘法组模一素数,或者整数的大素数r阶的乘法子组模素数p,r除以p-l。这种变型利用冗余函数R,椭圆形曲线形成组结构,该组结构的零元素表示0和曲线上的点G,点G是素数r阶子组的发生器。私有密钥是小于r的正整数s,公共密钥是点W=s.G。这种变型利用非零整常数k。这种产生签名的方法包括下面的四个步骤:
1)产生1和r-1之间的随机数u并计算v=u.G;
2)使整数I与点V相关并计算c=i+f模r;如果c=0,回到步骤1);
3)计算整数d=u-1 *(k+s*c)模r;如果d=0,回到步骤1);
4)签名是整数对(c,d)。
相应的验证该签名的方法包括下面的六个步骤:
1)如果c不属于区间[1,r-1]或者如果d不属于区间[1,r-1],则签名不有效;
2)计算整数h=d-1模r,h1=k*h模r和h2=c*h模r;
3)计算点P=h1G+h2W;如果P=0,则该签名不有效;
4)使整数i与点P相关;
5)计算整数f=c-i模r;
6)从f找到消息m并验证f=R(m);如果是,则消息M的签名是有效的;否则该签名是有效的。
因此先前描述的方法有可能获得这样一种电子签名方案,即它的安全性是根据离散对数问题的难度并允许全部恢复该消息。
本发明还包括第二种电子签名方法允许部分的恢复该消息。先前描述的签名方案允许全部恢复该消息。但是,要签名消息的总的大小受到冗余函数R的参数尺寸的限制。本发明的第二种方法有可能签名任何大小的消息。要签名的消息m被分成两个部分:恒定大小的第一部分m1从签名恢复,第二部分m2与该消息的签名一起传送。签名和要传送消息的总的大小因此减少了部分m1的大小。该签名方案在使用椭圆形曲线的上下文中描述。但是这种方案可用于任何一组值,这组值具有离散对数问题困难的组结构,例如整数的乘法组模一素数,或者整数的大素数r阶的乘法子组模素数p,r除以p-l。该签名方案利用冗余函数r,椭圆形曲线形成一组结构,该组结构的零元素表示成0和曲线上的点G,点G是素数r阶子组的发生器。私有密钥是小于r的正整数s,公共密钥是点W=s.G。由消息m1和m2组成的消息m的签名产生方法包括下面的六个步骤:
1)产生1和r-1之间的随机整数u并计算v=u.G;
2)计算f1=R(m1);
3)使整数i与点V相关并计算c=i+f1模r;如果c=0,回到步骤1;
4)计算f2=H(m2),在此H是一散列函数;
5)计算整数d=u-1 *(f2+s*c)模r;如果d=0,回到步骤1;
6)签名是整数对(c,d)。
验证该签名的方法取整数对(c,d)和部分消息m2作为输入,包括下面的七个步骤:
1)如果c不属于区间[1,r-1]或者如果d不属于区间[1,r-1],则签名不有效;
2)计算f2=H(m2),在此H是一散列函数;
3)计算整数h=d-1模r,h1=f2 *h模r和h2=c*h模r;
4)计算点P=h1G+h2W;如果P=0,则该签名不有效;
5)使整数i与点P相关;
6)计算整数f1=c-i模r;
7)从f1中获得消息m1和验证f1=R(m1);如果是,则消息M的签名是有效的;否则该签名不有效。
因此先前描述的方法有可能获得这样一种电子签名方案,即它的安全性是根据离散对数问题的难度并允许部分恢复该消息。这种方案的优点在于减少签名和要传送消息的总的大小,而不对此消息增加大小的约束。
本发明还包括两个通用技术用于最小化签名和要传送消息的总的大小。第一种技术在于将部分消息包含在签名内部,同时适当地选择在产生签名期间所用的随机数据。第二种技术在于在于删除一些表示签名的字节,在验证阶段发生签名的完整恢复。
本发明的第三种方法包括改进先前提及的Nyberg-Rueppel签名方案,在于将大小为t字节的部分消息包含在先前定义的整数d中,t是一小整数。在此方法中,整数g的t个最低有效字节包含t个字节的消息。因此相比较先前描述的Nyberg-Rueppel签名方案本发明的第三种方法有可能使要签名的消息大小增加t字节。第三种方法使用冗余函数R,椭圆形曲线形成一组结构,该组结构的零元素表示成0和曲线上的点G,点G是素数r阶子组的发生器。私有密钥是小于r的正整数s,公共密钥是点W=s.G。该产生消息m签名的方法包括下面的五个步骤:
1)移去消息m中t个最低有效字节并将结果存储在m′;计算f=R(m′);
2)产生1和r-1之间的随机数u并计算v=u.G;
3)使整数I与点V相关并计算c=i+f模r;如果c=0,回到步骤1);
4)计算整数d=u-s*c模r;如果d不等于m模28t,回到步骤2);
5)签名是整数对(c,d)。
验证该签名的方法包括下面的五个步骤:
1)如果c不属于区间[1,r-1]或者如果d不属于区间[0,r-1],则签名不有效;
2)计算点P=d.G+c.W;如果P=0,则该签名不有效;
3)使整数i与点p相关;
4)计算整数f=c-i模r;
5)从f获得消息m′并验证f=R(m′);如果情况不是这样,则签名不有效;如果情况是这样,则签名有效,消息m与整数d的t个最低有效字节消息m′链接。
根据先前描述的签名方案,对该数据进行预处理有可能加速生成该签名。该预处理方法取密钥s作为输入,在于将大量的值(i,xu)放在存储器的表中,其中xu=u-s*i模r模r、i是与点V=u.G有关的整数,因此该数值可以通过xu模28t的余数访问。具有数据预处理的签名生成方法使用冗余函数R,椭圆形曲线形成一组结构,该组结构的零元素表示成0和曲线上的点G,点G是素数r阶子组的发生器。私有密钥是小于r的正整数s,公共密钥是点W=s.G。
具有数据预处理的签名生成方法包括下面的八个步骤:
1)移去消息m中t个最低有效字节并将结果存储在消息m′;计算f=R(m′)。消息m的t个最低有效字节存储在整数δ中;
2)计算整数y=s*f模r和整数λ=y模28t
3)如果y<r/2,首先执行步骤4然后步骤5;否则首先执行步骤5然后步骤4;
4)访问表中的元素,在此余数模28t是λ+δ模28t,选择一个元素使得xu大于或等于y;如果这个元素存在,则从表中删除,该方法走到步骤6);
5)访问表中的元素,在此余数模28t是λ+δ+r模28t,选择一个元素使得xu小于y;如果这个元素存在,则从表中删除,该方法走到步骤6);
6)计算整数d=xu-y模r;
7)获得与xu相关的整数i并计算c=i+f模r;
8)签名是整数对(c,d)。
本发明的第四种方法包括先前描述的具有部分恢复消息的基于离散对数的签名方案的改进。本发明的第四种方法在于将t字节大小的部分消息包含在先前定义的整数d中,t是一小整数。在此方法中,整数d的t个最低有效字节包含t个字节的消息。因此本发明的第四种方法有可能使签名和要传送消息的总的大小降低t个字节。该签名方案使用冗余函数R,椭圆形曲线形成一组结构,该组结构的零元素表示成0和曲线上的点G,点G是素数r阶子组的发生器。私有密钥是小于r的正整数s,公共密钥是点W=s.G。由消息m1和m2组成的消息m的签名产生方法包括下面的六个步骤:
1)产生1和r-1之间的随机整数u并计算v=u.G;
2)计算f1=R(m1);
3)使整数i与点V相关并计算c=i+f1模r;如果c=0,回到步骤1;
4)计算f2=H(m2),在此H是一散列函数;
5)计算整数d=u-1 *(f2+s*c)模r;如果d=0或者如果d不等于m2模28t,回到步骤1;
6)签名是整数对(c,d),要传送的消息是m′2,包括移去其t个最低有效字节的m2
该签名验证方法取整数对(c,)和部分消息m2作为输入,包括下面的八个步骤:
1)如果c不属于区间[1,r-1]或者如果d不属于区间[1,r-1],则签名不有效;
2)通过使m2加上d的t个最低有效字节组成m′2
3)计算f2=H(m2),在此H是一散列函数;
4)计算整数h=d-1模r,h1=f2 *h模r和h2=c*h模r;
5)计算点P=h1G+h2W;如果P=0,则该签名不有效;
6)使整数i与点P相关;
7)计算整数f1=c-i模r;
8)从f1中获得消息m1和验证f1=R(m1);如果是,则消息M的签名是有效的;否则该签名不有效。
本发明的第五种方法在于当签名是整数对(c,d)时从表示整数d的一连串字节中删除t个字节。此方法适用于Nyberg及Rueppel签名方案和先前描述的允许部分恢复消息的签名方案。改进的签名产生方法包括下面的两个步骤:
1)利用Nyberg和Rueppel签名方案或先前描述的允许部分恢复消息的签名方案产生消息m的签名,以便获得整数对(c,d);
2)计算d′,整数d除以28t的整数商。签名是整数对(c,d′)。
改进的签名验证方法取整数对(c,d′)和消息m2作为输入,在先前描述的部分恢复消息的签名方案的情况下包括下面的两个步骤:
1)对于范围从0到28t-1的i,计算整数d=d′*28t+i和执行先前描述的允许部分恢复消息的签名验证方法,要验证的签名是(c,d);如果该签名验证方法认为签名(c,d)有效,则该签名有效并且该方法结束;
2)如果步骤1)没有成功,则该签名不有效。
在使用Nyberg-Rueppel签名方案的情况下,签名验证方法取整数对(c,d′)作为输入并包括下面的五个步骤:
1)如果c不属于区间[1,r-1],则该签名不有效;
2)计算点P=d′*28t.G+c.W;
3)对于范围从0到28t的j,执行下面的步骤:
3)a)如果P=0,执行步骤3)d);
3)b)使整数i与点P相关并计算整数f=c-i模r;
3)c)从f找到消息m并验证f=R(m);如果是,执行步骤5);
3)d)用P+G替换P;
4)该签名不有效,该方法结束;
5)如果整数d=d′*28t+j不属于区间[0,r-1],则签名不有效;否则该签名有效,该方法结束。
本发明的第六种方法包括Nyberg和Rueppel签名方案的改进,有可能使要签名的消息增加t个字节,t是整变量。第种方法利用冗余函数R,椭圆形曲线形成一组结构,该组结构的零元素表示成0和曲线上的点G,点G是素数r阶子组的发生器。私有密钥是小于r的正整数s,公共密钥是点W=s.G。该产生消息m签名的方法包括下面的五个步骤:
1)产生随机数u并计算V=u.G;
2)通过从消息m中移去t个最低有效字节得到消息M′并计算f=R(m′);
3)使整数I与点V相关并计算c=i+f模r;如果c=0和如果i不等于m模28t,回到步骤1);
4)计算d=u-s*c模r;
5)签名是整数对(c,d)。
签名验证方法包括下面的四个步骤:
1)如果c不属于区间[1,r-1]或者如果d不属于区间[0,r-1],则签名不有效;
2)计算点P=d.G+c.W;如果P=0,则该签名不有效;
3)使整数i与点P相关并计算整数f=c-i模r;
4)从f找到消息m′并验证f=R(m′);如果是,通过链接i的t个最低有效字节与消息m找到该消息m。则消息m的签名有效;否则该签名不有效。
本发明的第七种方法包括先前描述的允许部分恢复消息的签名方案的改进,有可能使从签名恢复的消息m1的大小增加t个字节,t是整变量。第七种方法使用冗余函数R,椭圆形曲线形成一组结构,该组结构的零元素表示成0和曲线上的点G,点G是素数r阶子组的发生器。私有密钥是小于r的正整数s,公共密钥是点W=s.G。由消息m1和m2组成的消息m的签名产生方法包括下面的六个步骤:
1)产生1和r-1之间的随机整数u并计算V=u.G;
2)从消息m1中移去t个最低有效字节得到m′1。计算f1=R(m′1);
3)使整数i与点V相关并计算c=i+f1模r;如果c=0或者如果i不等于m1模28t,回到步骤1;
4)计算f2=H(m2),在此H是一散列函数;
5)计算整数d=u-1 *(f2+s*c)模r;如果d=0,回到步骤1;
6)签名是整数对(c,d)。
该签名验证方法取整数对(c,d)和部分消息m2作为输入,包括下面的七个步骤:
1)如果c不属于区间[1,r-1]或者如果d不属于区间[1,r-1],则签名不有效;
2)计算f2=H(m2),在此H是一散列函数;
3)计算整数h=d-1模r,h1=f2 *h模r和h2=c*h模r;
4)计算点P=h1G+h2W;如果P=0,则此签名不有效;
5)使整数i与点P相关;
6)计算整数f1=c-i模r;
7)从f1中获得消息m′1并验证f1=R(m′1);如果是,通过链接整数i的t个最低有效字节与消息m′1得到m1。则消息m的签名有效;否则该签名不有效。
对于第六和第七种方法,可以通过预处理减少计算时间。这种预处理在于将先前定义的整数对(u,i)放在存储器的表中,因此这些整数可以通过i模28t的值访问。
本发明的第八种方法包括Nyberg和Rueppel签名方案的改进,在于从先前定义的整数c中移去t个字节,t是整变量。该签名产生方法包括下面的两个步骤:
1)利用Nyberg-Rueppel签名方案产生消息m的签名,以便获得整数对(c,d);
2)计算c′,整数c除以28t的整数商。签名是整数对(c′,d)。
签名验证方法取整数对(c′,d)作为输入并包括下面的五个步骤:
1)如果d不属于区间[0,r-1],则签名不有效;
2)计算点P=d.G+c′*28t.W;
3)对于范围从0到28t-1的j,执行下面的步骤:
3)a)如果P=0,执行步骤3)d);
3)b)使整数i与点P相关并计算整数f=c-i模r;
3)c)从f找到消息m并验证f=R(m);如果是,执行步骤5);
3)d)用P+W替换P;
4)该签名不有效,该方法结束;
5)如果整数c=c′*28t+j不属于区间[1,r-1],则签名不有效;否则该签名有效,该方法结束。
本发明的第九种方法是先前定义的允许部分恢复消息的签名方案的改进,在于从先前定义的整数c中移去t个字节,t是整变量。该签名产生方法包括下面的两个步骤:
1)利用允许部分恢复消息的签名方案产生包括两个消息m1和m2的消息m的签名,以便获得整数对(c,d);
2)计算c′,整数c除以28t的整数商。签名是整数对(c′,d)。
该签名验证方法取整数对(c′,d)和消息m2作为输入,包括下面的八步骤:
1)如果d不属于区间[1,r-1],则签名不有效;
2)计算f2=H(m2),在此H是一散列函数;
3)计算整数h=d-1模r,h1=f2 *h模r和h2=c′*28t*h模r;
4)计算点P=h1.G+h2.W;
5)计算点Z=h.W;
6)对于范围从0到28t-1的j,执行下面的步骤:
6)a)如果P=0,执行步骤6)d);
6)b)使整数i与点P相关并计算整数f1=c-i模r;
6)c)从f1中找到消息m1和验证f1=R(m1);如果是,执行步骤8);
6)d)用P+Z替换P;
7)该签名不有效,该方法结束;
8)如果整数c=c′*28t+j不属于区间[1,r-1],则签名不有效;否则该签名有效,该方法结束。
本发明的第十种方法包括允许部分恢复消息的签名方案的改进,在于用签名(h2,d)替换签名(c,d),其中h2=c*d-l模r。此第十种方法的优点在于当此方法用于任何一个先前定义的方法时允许减少计算时间。
本发明的第十一种方法包括先前给出的Nyberg-Rueppel签名方案的改进,在于将大小为t字节的部分消息包含在先前定义的整数d中,t是一小整数,并利用另一个冗余函数。在此方法中,整数d的t个最低有效字节包含t个字节的消息。第十一种方法使用冗余函数R,椭圆形曲线形成一组结构,该组结构的零元素表示成0和曲线上的点G,点G是素数r阶子组的发生器。私有密钥是小于r的正整数s,公共密钥是点W=s.G。消息m的签名产生方法使用整数参数t、a和k并包括下面的七个步骤:
1)计算h=H(m),H是一散列函数;
2)移去消息m中t个最低有效字节和k个最高有效字节并将结果存储在m′;
3)将m′与h个最高有效字节的链接结果存储在f;
4)产生1和r-1之间的随机数u并计算v=u.G;
5)使整数I与点V相关并计算c=i+f模r;如果c=0,回到步骤4);
6)计算整数d=u-s*c模f;如果d不等于m模28t回到步骤4);
7)签名是整数对(c,d)。
签名验证方法包括下面的七个步骤:
1)如果c不属于区间[1,r-1]或者如果d不属于区间[0,r-1],则签名不有效;
2)计算点P=d.G+c.W;如果P=0,则该签名不有效;
3)使整数i与点P相关;
4)计算整数f=c-i模r;
5)链接d的t个最低有效字节与从f移去一个最低有效字节获得的消息m′;
6)对于范围从0到28t-1的b,重复下面的步骤:
6)a)链接消息m′与b,以获得m和计算h=H(m);验证h的最高有效字节和f的最低有效字节是否完全相同;如果是,则消息M的签名有效,该方法结束;
7)否则该签名不有效。
因此所描述的这些方法有可能显著减低签名和要传送消息的总的大小。因此当存储空间有限时,有可能存储更多数目的签名。另外,还有可能实现更迅速的传输签名。这些方法可以特别建立便携式装置中,例如智能卡类型。

Claims (25)

1.一种电子签名方法,包括生成方法和验证方法,允许全部恢复该消息,所述方法利用冗余函数R,一组具有素数r阶的组结构,该组结构的零元素表示成0并产生点G,私有密钥是小于r的正整数s,公共密钥是点W=s.G,所述方法利用非零整常数k,其特征在于该签名产生方法包括下面的四个步骤:
1)产生1和r-1之间的随机数u并计算v=u.G;
2)使整数I与点V相关并计算c=i+f模r;如果c=0,回到步骤1);
3)计算整数d=u-1 *(k+s*c)模r;如果d=0,回到步骤1);
4)签名是整数对(c,d);
和该签名验证方法包括下面的六个步骤:
1)如果c不属于区间[1,r-1]或者如果d不属于区间[1,r-1],则签名不有效;
2)计算整数h=d-1模r,h1=k*h模r和h2=c*h模r;
3)计算点P=h1G+h2W;如果P=0,则该签名不有效;
4)使整数i与点P相关;
5)计算整数f=c-i模r;
6)从f找到消息m并验证f=R(m);如果是,则消息M的签名是有效的;否则该签名是有效的。
2.一种电子签名方法,包括生成方法和签名验证方法,允许部分恢复该消息,要签名的消息m被分成两个部分,恒定大小的第一部分m1由签名恢复,第二部分m2与该方法的签名一起传送,所述方法利用冗余函数R,一组具有素数r阶的组结构,该组结构的零元素表示成0并产生点G,私有密钥是小于r的正整数s,公共密钥是点W=s.G,其特征在于由消息m1和m2组成的消息m的签名产生方法包括下面的六个步骤:
1)产生1和r-1之间的随机整数u并计算V=u.G;
2)计算f1=R(m1);
3)使整数i与点V相关并计算c=i+f1模r;如果c=0,回到步骤1);
4)计算f2=H(m2),在此H是一散列函数;
5)计算整数d=u-1 *(f2+s*c)模r;如果d=0,回到步骤1;
6)签名是整数对(c,d);
和该签名验证方法取整数对(c,d)和部分消息m2作为输入,包括下面的七个步骤:
1)如果c不属于区间[1,r-1]或者如果d不属于区间[1,r-1],则签名不有效;
2)计算f2=H(m2),在此H是一散列函数;
3)计算整数h=d-1模r,h1=f2 *h模r和h2=c*h模r;
4)计算点P=h1G+h2W;如果P=0,则该签名不有效;
5)使整数i与点P相关;
6)计算整数f1=c-i模r;
7)从f1中获得消息m1和验证f1=R(m1);如果是,则消息M的签名是有效的;否则该签名不有效。
3.一种电子签名方法,包括生成方法和签名验证方法,其特征在于它在于通过适当地选择在产生签名期间所用的随机数据,将部分消息包含在签名内部。
4.一种电子签名方法,包括生成方法和签名验证方法,其特征在于它在于删除一些表示签名的字节,在验证阶段发生签名的完整恢复。
5.一种根据权利要求3的用于改进Nyberg-Rueppel签名方案的方法,包括生成方法和验证方法,在于将大小为t个字节的部分消息包含在整数d中,t是一个小整数,签名是整数对(c,d),整数g的t个最低有效字节包含t个字节的消息,所述方法利用冗余函数R,一组具有素数r阶的组结构,该组结构的零元素表示成0并产生点G,私有密钥是小于r的正整数s,公共密钥是点W=s.G,其特征在于该产生消息m签名的方法包括下面的五个步骤:
1)移去消息m中t个最低有效字节并将结果存储在m′;计算f=R(m′);
2)产生1和r-1之间的随机数u并计算v=u.G;
3)使整数I与点V相关并计算c=i+f模r;如果c=0,回到步骤1);
4)计算整数d=u-s*c模r;如果d不等于m模28t,回到步骤2);
5)签名是整数对(c,d);
和该签名验证方法包括下面的五个步骤:
1)如果c不属于区间[1,r-1]或者如果d不属于区间[0,r-1],则签名不有效;
2)计算点P=d.G+c.W;如果P=0,则该签名不有效;
3)使整数i与点P相关;
4)计算整数f=c-i模r;
5)从f获得消息m′并验证f=R(m′);如果情况不是这样,则签名不有效;如果情况是这样,则签名有效,消息m与整数d的t个最低有效字节消息m′链接。
6.一种用于预处理根据权利要求5的签名生成的方法,有可能加速签名的产生,所述方法包括预处理阶段和签名产生阶段,所述预处理阶段取密钥s作为输入,在于将大量的值(i,xu)放在存储器的表中,其中xu=u-s*i模r,i是与点V=u.G相关的整数,因此这些值可以通过xu模28t的余数访问,所述签名产生阶段利用冗余函数R,一组具有素数r阶的组结构,该组结构的零元素表示成0并产生点G,私有密钥是小于r的正整数s,公共密钥是点W=s.G,所述签名产生阶段其特征在于包括下面的八个步骤:
1)移去消息m中t个最低有效字节并将结果存储在消息m′;计算f=R(m′)。消息m的t个最低有效字节存储在整数δ中;
计算整数y=s*f模r和整数λ=y模2;
3)如果Y<r/2,首先执行步骤4和然后步骤5;否则首先执行步骤5然后步骤4;
4)访问表中的元素,在此余数模28t是δ+λ模28t,选择一个元素使得xu大于或等于y;如果这个元素存在,则从表中删除,该方法走到步骤6);
5)访问表中的元素,在此余数模28t是δ+λ+r模28t,选择一个元素使得xu小于y;如果这个元素存在,则从表中删除,该方法走到步骤6);
6)计算整数d=xu-y模r;
7)使得整数i与xu相关并计算c=i+f模r;
8)签名是整数对(c,d)。
7.一种根据权利要求2的用于改进允许部分恢复消息的签名方案的方法,所述方法包括签名产生方法和签名验证方法,所述方法在于将t字节大小的部分消息包含在先前定义的整数d中,t是一小整数,整数d的t个最低有效字节包含t个字节的消息,所速方法利用冗余函数R,一组具有素数r阶的组结构,一个组结构的零元素表示成0并产生点G,私有密钥是小于r的正整数s,公共密钥是点W=s.G,其特征在于由消息m1和m2组成的消息m的签名产生方法包括下面的六个步骤:
1)产生1和r-1之间的随机整数u并计算V=u.G;
2)计算f1=R(m1);
3)使整数i与点V相关并计算c=i+f1模r;如果c=0,回到步骤1;
4)计算f2=H(m2),在此H是一散列函数;
5)计算整数d=u-1 *(f2+s*c)模r;如果d=0或者如果d不等于m2模28t,回到步骤1;
6)签名是整数对(c,d)。
要传送的消息是从m2移去t个最低有效字节的m′2
和该签名验证方法取整数对(c,d)和部分消息M′2作为输入,包括下面的八个步骤:
1)如果c不属于区间[1,r-1]或者如果d不属于区间[1,r-1],则签名不有效;
2)通过使m2加上d的t个最低有效字节组成m′2
3)计算f2=H(m2),在此H是一散列函数;
4)计算整数h=d-1模r,h1=f2 *h模r和h2=c*h模r;
5)计算点P=h1G+h2W;如果P=0,则该签名不有效;
6)使整数i与点P相关;
7)计算整数f1=c-i模r;
8)从f1中获得消息m1和验证f1=R(m1);如果是,则消息M的签名是有效的;否则该签名不有效。
8.一种方法在于当签名是整数对(c,d)时从表示整数d的一连串字节中移去t个字节。所述方法包括签名产生方法和签名验证方法,所述方法用于Nyberg和Rueppel签名方案,其特征在于改进的签名产生方法包括下面的两个步骤:
1)利用Nyberg和Rueppel签名方案产生消息m的签名,以便获得整数对(c,d);
2)计算d′,整数d除以28t的整数商;签名是整数对(c,d′);
和该改进的签名验证方法取整数对(c,d′)作为输入,包括下面的五个步骤:
1)如果c不属于区间[1,r-1],则签名不有效;
2)计算点P=d′*28t.G+c.W;
3)对于范围从0到28t-1的j,执行下面的步骤:
3)a)如果P=0,执行步骤3)d);
3)b)使整数i与点P相关并计算整数f=c-i模r;
3)c)从f找到消息m并验证f=R(m);如果是,执行步骤5);
3)d)用P+G替换P;
4)该签名不有效,该方法结束;
5)如果整数d=d′*28t+j不属于区间[0,r-1],则签名不有效;否则该签名有效,该方法结束。
9.一种方法在于当签名是整数对(c,d)时从表示整数d的一连串字节中移去t个字节,所述方法包括签名产生方法和签名验证方法,所述方法改进根据权利要求2的允许部分恢复消息的签名方案,其特征在于改进的签名产生方法包括下面的两个步骤:
1)利用先前描述的允许部分恢复消息的签名方案产生消息m的签名,以便获得整数对(c,d);
2)计算d′,整数d除以28t的整数商;签名是整数对(c,d′);
和在于该改进的签名验证方法取整数对(c,d′)和消息m2作为输入,包括下面的两个步骤:
1)对于范围从0到28t-1的i,计算整数d=d′*28t+i和执行先前描述的允许部分恢复消息的签名验证方法,要验证的签名是(c,d);如果该签名验证方法认为签名(c,d)有效,则该签名有效并且该方法结束;
2)该签名不有效。
10.一种改进Nyberg和Rueppel签名方案的方法,有可能使要签名的消息大小增加t个字节,t是整变量,所述方法包括签名产生方法和签名验证方法,所述方法利用冗余函数R,一组具有素数r阶的组结构,该组结构的零元素表示成0并产生点G,私有密钥是小于r的正整数s,公共密钥是点W=s.G,其特征在于该产生消息m签名的方法包括下面的五个步骤:
1)产生随机数u并计算V=u.G;
2)通过从消息m中移去t个最低有效字节得到消息M′并计算f=R(m′);
3)使整数I与点V相关并计算c=i+f模r;如果c=0和如果i不等于m模28t,回到步骤1);
4)计算d=u-s*c模r;
5)签名是整数对(c,d);
和该签名验证方法包括下面的四个步骤:
1)如果c不属于区间[1,r-1]或者如果d不属于区间[0,r-1],则签名不有效;
2)计算点P=d.G+c.W;如果P=0,则该签名不有效;
3)使整数i与点P相关并计算整数f=c-i模r;
4)从f找到消息m′并验证f=R(m′);如果是,通过链接i的t个最低有效字节与消息m′找到该消息m,则消息m的签名有效;否则该签名不有效。
11.一种根据权利要求2的用于改进允许部分恢复消息的签名方案的方法,所述方法包括签名产生方法和签名验证方法,所述方法有可能使从签名恢复的消息m1的大小增加t个字节,t是整变量,所述方法利用冗余函数R,一组具有素数r阶的组结构,该组结构的零元素表示成0并产生点G,私有密钥是小于r的正整数s,公共密钥是点W=s.G,其特征在于该产生消息m签名的方法包括下面的六个步骤:
1)产生1和r-1之间的随机整数u并计算V=u.G;
2)通过从消息m1中除去t个最低有效字节获得m′1。计算f1=R(m′1);
3)使整数i与点V相关并计算c=i+f1模r;如果c=0或者如果i不等于m1模28t,回到步骤1;
4)计算f2=H(m2),在此H是一散列函数;
5)计算整数d=u-1 *(f2+s*c)模r;如果d=0,回到步骤1;
6)签名是整数对(c,d);
和该签名验证方法取整数对(c,d)和部分消息m2作为输入,包括下面的七个步骤:
1)如果c不属于区间[1,r-1]或者如果d不属于区间[1,r-1],则签名不有效;
2)计算f2=H(m2),在此H是一散列函数;
3)计算整数h=d-1模r,h1=f2 *h模r和h2=c*h模r;
4)计算点P=h1G+h2W;如果P=0,则此签名不有效。
5)使整数i与点P相关;
6)计算整数f1=c-i模r;
7)从f1中获得消息m′1并验证f1=R(m′1);如果是,通过链接整数i的t个最低有效字节与消息m′1得到m1。则消息m的签名有效;否则该签名不有效。
12.一种预处理计算的方法,有可能增加根据权利要求10和11方法的性能,其特征在于它先前定义的整数对(u,i)放在存储器的表中,因此这些整数可由i模28t的值访问,t是整数参数。
13.一种改进Nyberg和Rueppel签名方案的方法,在于从整数c中t个字节,t是整变量,所述方法包括签名产生方法和签名验证方法,该签名包括整数对(c,d),其特征在于该签名产生方法包括下面的两个步骤:
1)利用Nyberg-Rueppel签名方案产生消息m的签名,以便获得整数对(c,d);
2)计算c′,整数c除以28t的整数商,签名是整数对(c′,d);
和该改进的签名验证方法取整数对(c′,d)作为输入,包括下面的五个步骤:
1)如果d不属于区间[0,r-1],则签名不有效;
2)计算点P=d.G+c′*28t.W;
3)对于范围从0到28t-1的j,执行下面的步骤:
3)a)如果P=0,执行步骤3)d);
3)b)使整数i与点P相关并计算整数f=c-i模r;
3)c)从f找到消息m并验证f=R(m);如果是,执行步骤5);
3)d)用P+W替换P;
4)该签名不有效,该方法结束;
5)如果整数c=c′*28t+j不属于区间[1,r-1],则签名不有效;否则该签名有效,该方法结束。
14.一种根据权利要求2的用于改进允许部分恢复消息的签名方案的方法,在于从根据权利要求2定义的整数c中移去t个字节,t是整变量,所述方法包括签名产生方法和签名验证方法,其特征在于该签名产生方法包括下面的两个步骤:
1)利用允许部分恢复消息的签名方案产生消息m的签名,以便获得整数对(c,d);
2)计算c′,整数c除以28t的整数商;签名是整数对(c′,d);
和该签名验证方法取整数对(c′,d)和消息m2作为输入,包括下面的八个步骤:
1)如果d不属于区间[1,r-1],则签名不有效;
2)计算f2=H(m2),在此H是一散列函数;
3)计算整数h=d-1模r,h1=f2 *h模r和h2=c′*28t*h模r;
4)计算点P=h1.G+h2.W;
5)计算点Z=h.W;
6)对于范围从0到28t的j,执行下面的步骤:
6)a)如果P=0,执行步骤6)d);
6)b)使整数i与点P相关并计算整数f1=c-i模r;
6)c)从f1中找到消息m1和验证f1=R(m1);如果是,执行步骤8);
6)d)用P+Z替换P;
7)该签名不有效,该方法结束;
8)如果整数c=c′*28t+j不属于区间[1,r-1],则签名不有效;否则该签名有效,该方法结束。
15.一种根据前面任何一个权利要求的用于改进允许部分恢复消息的签名方案的方法,其特征在于它用签名(h2,d)替换签名(c,d),其中h2=c*d-l模r。
16.一种用于改进Nyberg-Rueppel签名方案的方法,所述方法包括签名产生方法和签名验证方法,所述方法在于将t字节大小的部分消息包含在整数d中,t是一小整数,整数d的t个最低有效字节包含t个字节的消息,所述方法利用一组具有素数r阶的组结构,该组结构的零元素表示成0并产生点G,私有密钥是小于r的正整数s,公共密钥是点W=s.G,其特征在于该消息m的签名产生方法利用整数参数t、a和k并包括下面的七个步骤:
1)计算h=H(m),H是一散列函数;
2)移去消息m中t个最低有效字节和k个最高有效字节并将结果存储在m′;
3)将m′与h个最高有效字节的链接结果存储在f;
4)产生1和r-1之间的随机数u并计算v=u.G;
5)使整数i与点V相关并计算c=i+f模r;如果c=0,回到步骤4);
6)计算整数d=u-s*c模r;如果d不等于m模28t回到步骤4);
7)签名是整数对(c,d);
和该签名验证方法包括下面的七个步骤:
1)如果c不属于区间[0,r-1]或者如果d不属于区间[0,r-1],则签名不有效;
2)计算点P=d.G+c.W;如果P=0,则该签名不有效;
3)使整数i与点P相关;
4)计算整数f=c-i模r;
5)链接d的t个最低有效字节与从f移去一个最低有效字节获得的消息m′;
6)对于范围从0到28t-1的b,重复下面的步骤:
6)a)链接消息m′与b,以获得m和计算h=H(m);验证h的最高有效字节和f的最低有效字节是否完全相同;如果是,则消息M的签名有效,该方法结束;
7)该签名不有效。
17.根据前面任何一个权利要求的产生和验证电子签名的方法,其特征在于这些操作在椭圆形曲线上实现,该椭圆形曲线形成一组结构并具有至少一个点G,点G是素数r阶子组的发生器。
18.根据前面任何一个权利要求的产生和验证电子签名的方法,其特征在于这些操作实现整数的乘法组模素数p。
19.根据前面任何一个权利要求的产生和验证电子签名的方法,其特征在于这些操作实现为整数乘法组的素数r阶的乘法子组模素数p,r除以p-l。
20.根据前面任何一个权利要求的电子设备,其特征在于执行测试的设备是一便携式装置。
21.根据前面任何一个权利要求的电子设备,其特征在于该设备是一智能卡。
22.根据前面任何一个权利要求的电子设备,其特征在于该设备是一遥控卡。
23.根据前面任何一个权利要求的电子设备,其特征在于该设备是一PCMCIA卡。
24.根据前面任何一个权利要求的电子设备,其特征在于该设备是一徽章。
25.根据前面任何一个权利要求的电子设备,其特征在于该设备是一智能手表。
CN 00813678 1999-07-30 2000-07-12 根据离散对数来部分或全部恢复消息的签名方案 Pending CN1377539A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9910106A FR2797127B1 (fr) 1999-07-30 1999-07-30 Schemas de signature a base de logarithme discret avec reconstitution partielle ou totale du message
FR99/10106 1999-07-30

Publications (1)

Publication Number Publication Date
CN1377539A true CN1377539A (zh) 2002-10-30

Family

ID=9548870

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 00813678 Pending CN1377539A (zh) 1999-07-30 2000-07-12 根据离散对数来部分或全部恢复消息的签名方案

Country Status (5)

Country Link
EP (1) EP1205051A1 (zh)
CN (1) CN1377539A (zh)
AU (1) AU6575300A (zh)
FR (1) FR2797127B1 (zh)
WO (1) WO2001010078A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111030823A (zh) * 2019-10-24 2020-04-17 梁胤豪 超轻量级多次签名的数据处理方法、系统、物联网平台

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7249259B1 (en) * 1999-09-07 2007-07-24 Certicom Corp. Hybrid signature scheme
FR2829333B1 (fr) * 2001-09-05 2004-12-10 Gemplus Card Int Procede de reduction de la taille d'une signature rsa ou rabin
WO2009030021A1 (en) 2007-09-04 2009-03-12 Certicom Corp. Signatures with confidential message recovery

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69327238T2 (de) * 1993-08-17 2000-09-07 Entrust Technologies ( Switzerland) Ltd. Liab. Co., Glattzentrum Verfahren zur digitalen Unterschrift und Verfahren zur Schlüsselübereinkunft

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111030823A (zh) * 2019-10-24 2020-04-17 梁胤豪 超轻量级多次签名的数据处理方法、系统、物联网平台

Also Published As

Publication number Publication date
FR2797127A1 (fr) 2001-02-02
AU6575300A (en) 2001-02-19
FR2797127B1 (fr) 2001-10-12
EP1205051A1 (fr) 2002-05-15
WO2001010078A1 (fr) 2001-02-08

Similar Documents

Publication Publication Date Title
CN1311659C (zh) 单向数据变换装置及机器认证系统
CN1940981A (zh) 电子标书的制作装置和方法、应用系统和方法
CN101038653A (zh) 验证系统
CN1254936C (zh) 多载波码分多址通信装置
CN1104118C (zh) 计算机支持的在两个计算机之间的密码交换方法
CN1187662A (zh) 能变更认证函数的机器认证系统
CN1251715A (zh) 有限域离散对数密码系统的割圆多项式结构
CN1296817C (zh) 模乘方法及装置及模乘计算单元
CN1707999A (zh) 证书撤销列表的分布管理
CN1845213A (zh) 一种实现sms4密码算法中加解密处理的方法
CN1528068A (zh) 用于计算机网络中分布式数据处理的集成式保护的方法与系统
CN1831900A (zh) 解密装置和解密方法
CN1126397A (zh) 纠错编码器、纠错解码器和具有纠错码的数据传输系统
CN1366738A (zh) 交织地址生成装置
CN1870499A (zh) 产生新的多变量公钥密码系统的方法
CN1816154A (zh) 用于运动估计的方法和装置
CN1921384A (zh) 一种公钥基础设施系统、局部安全设备及运行方法
CN1910851A (zh) 零知识检验加密方法与设备
CN1921395A (zh) 提高网络软件安全性的方法和系统
CN1358028A (zh) 图像编码/解码方法,图像编码装置和图像解码装置
CN1112057C (zh) Atm交换器及其自选路由方法
CN1238988C (zh) 密钥信息生成的方法和装置、内容信息加密与解密的方法和装置
CN101060400A (zh) 数据生成装置、数据分析装置、控制方法和数据处理系统
CN1155189C (zh) 双层加权并行干扰对消方法的简化方法
CN1806410A (zh) 加密通信系统

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication