CN103270546A - 签名生成装置、签名生成方法以及记录介质 - Google Patents

签名生成装置、签名生成方法以及记录介质 Download PDF

Info

Publication number
CN103270546A
CN103270546A CN2010800708903A CN201080070890A CN103270546A CN 103270546 A CN103270546 A CN 103270546A CN 2010800708903 A CN2010800708903 A CN 2010800708903A CN 201080070890 A CN201080070890 A CN 201080070890A CN 103270546 A CN103270546 A CN 103270546A
Authority
CN
China
Prior art keywords
signature
random number
computing
generating unit
result
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.)
Granted
Application number
CN2010800708903A
Other languages
English (en)
Other versions
CN103270546B (zh
Inventor
内藤祐介
酒井康行
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of CN103270546A publication Critical patent/CN103270546A/zh
Application granted granted Critical
Publication of CN103270546B publication Critical patent/CN103270546B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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
    • H04L9/3252Cryptographic 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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

e以及n是公开信息,而d是秘密信息。基于e×d mod n的计算值来生成电子签名。签名生成装置(100)具备:随机数生成部(103)、第1计算部(111)、第2计算部(112)、签名生成部(121)。随机数生成部(103)生成随机数r。第1计算部(111)计算s1=r×n。第2计算部(112)计算s2=s1+e。签名生成部(121)计算s3=s2×d mod n,并将s3作为e×d mod n的计算值来输出。由此,签名生成装置(100)能够针对差分电力攻击而安全地生成上述电子签名。

Description

签名生成装置、签名生成方法以及记录介质
技术领域
本发明涉及签名生成装置、签名生成方法以及记录介质。
背景技术
使用签名者的秘密密钥来生成电子签名(参照非专利文献1)。秘密密钥是只有签名者本人知道的数据。如果秘密密钥被泄露,则能够伪造签名。
在计算电子签名的时候,发生进行公开信息和秘密信息(例如,秘密密钥)的乘法的步骤。通过参照公开信息的同时针对公开信息和秘密信息的乘法进行差分电力解析(Differential Power Analysis),能够求出秘密信息(参照非专利文献2)。
例如,EC-Schnorr签名算法(Elliptic Curve Schnorr DigitalSignature Algorithm)如以下那样。
步骤0.将G设为椭圆曲线上的生成源,将G的位数设为n。将d设为秘密密钥,将M设为签名对象的消息,将h设为散列(hash)函数。
步骤1.生成随机数k。k是小于n的自然数。
步骤2.计算P=kG,并将P的x坐标设为Px。
步骤3.计算e=h(M||Px)。“||”表示连结。
步骤4.计算s=(e×d+k)mod n。
步骤5.(e,s)成为M的电子签名。
在上述计算方法中,在步骤4中进行e×d的计算。e是公开信息,因此通过进行差分电力解析,能够求出秘密密钥d。
例如,EC-DSA(Elliptic Curve Digital Signature Algorithm)如以下那样。
步骤0.将G设为椭圆曲线上的生成源,将G的位数设为n。将d设为秘密密钥,将M设为签名对象的消息,将h设为散列函数。
步骤1.生成随机数k。k是小于n的自然数。
步骤2.计算P=kG,并将P的x坐标设为Px。
步骤3.计算s=k-1(Px×d+h(M))mod n。
步骤4.(Px,s)成为M的电子签名。
在上述计算方法中,在步骤4中进行Px×d的计算。Px是公开信息,因此通过进行差分电力解析,能够求出秘密密钥d。
非专利文献1:ISO/IEC14888-3:2006/FDAM1,“Informationtechnology-Security techniques-Digital signatures with appendix-Part3:Discrete logarithm based mechanisms-Amendment1:Elliptic Curve Russian Digital Signature Algorithm,Schnorr DigitalSignature Algorithm,Elliptic Curve Schnorr Digital SignatureAlgorithm,Elliptic Curve Full Schnorr Digital Signature Algorithm,”ISO/IEC JTC1/SC27,2009-12-15
非专利文献2:Jean-Sebastien Coron,“Resistance againstDifferential Power Analysis for Elliptic Curve Cryptosystems,”CHES’99,LNCS1717,pp.292-302,1999
发明内容
在上述的例子中,知道d的人无论是谁都能够制作签名。即,如果秘密密钥到其他人手中,则能够伪造签名。但是,在以往的计算方法中,通过进行差分电力解析,能够容易地得到秘密密钥。不仅是EC-Schnorr签名、EC-DSA签名,针对Schnorr签名、DSA(DigitalSignature Algorithm,数字签名算法)签名这样的电子签名的运算,通过同样地进行差分电力解析,秘密密钥被泄露时,也能够伪造签名。
本发明的目的是针对例如差分电力攻击(Differential PowerAttack)安全地生成电子签名。
本发明的一种方式的签名生成装置生成电子签名,该电子签名是通过针对包含公开信息e和秘密信息d的乘法的运算的结果计算以公开信息n为模的余数来得到的,该签名生成装置具备:
输入部,输入所述公开信息e、n;
读取部,从预先保存所述秘密信息d的存储装置读取所述秘密信息d;
第1计算部,通过处理装置进行新的秘密信息r和由所述输入部输入的公开信息n的乘法M1;
第2计算部,通过处理装置进行由所述第1计算部进行的乘法M1的结果和由所述输入部输入的公开信息e的加法M2;以及
签名生成部,通过处理装置进行运算C来作为所述运算,并针对所述运算C的结果,通过处理装置计算以由所述输入部输入的公开信息n为模的余数,由此生成所述电子签名,该运算C包含由所述第2计算部进行的加法M2的结果和由所述读取部读取的秘密信息d的乘法。
根据本发明的一种方式,能够针对差分电力攻击安全地进行EC-Schnorr签名、Schnorr签名、EC-DSA签名、DSA签名这样的电子签名的运算。
附图说明
图1是示出实施方式1以及实施方式2的签名生成装置的结构的框图。
图2是示出实施方式1以及实施方式2的签名生成装置的硬件结构的一个例子的图。
图3是示出实施方式1的签名生成装置的动作的流程图。
图4是示出实施方式2的签名生成装置的动作的流程图。
(附图标记说明)
100:签名生成装置;101:输入部;102:读取部;103:随机数生成部;111:第1计算部;112:第2计算部;121:签名生成部;151:处理装置;152:存储装置;153:输入装置;154:输出装置;901:LCD;902:键盘;903:鼠标;904:FDD;905:CDD;906:打印机;911:CPU;912:总线;913:ROM;914:RAM;915:通信板;920:HDD;921:操作系统;922:视窗系统;923:程序群;924:文件群。
具体实施方式
以下,使用附图说明本发明的实施方式。
实施方式1
本实施方式能够应用于如下电子签名的生成:通过针对运算C的结果t计算以公开信息n为模的余数(即,t mod n)而得到的电子签名,其中,该运算C包含公开信息e和秘密信息d的乘法(即,e×d)。作为那样的电子签名,能够列举出EC-Schnorr签名、Schnorr签名、EC-DSA签名、DSA签名等。在本实施方式中,为了在生成那样的电子签名时不直接进行公开信息e和秘密信息d的乘法,设计计算方法。
图1是示出本实施方式的签名生成装置100的结构的框图。
在图1中,签名生成装置100具备输入部101、读取部102、随机数生成部103、第1计算部111、第2计算部112、签名生成部121。后面记述签名生成装置100的各部分的动作。
签名生成装置100具备处理装置151、存储装置152、输入装置153、输出装置154这样的硬件。硬件被签名生成装置100的各部分利用。例如,处理装置151被利用于在签名生成装置100的各部分中进行数据、信息的运算、加工、读取、写入等。存储装置152被利用于存储该数据、信息。输入装置153被利用于输入该数据、信息。输出装置154被利用于输出该数据、信息。
图2是示出签名生成装置100的硬件结构的一个例子的图。
在图2中,签名生成装置100是计算机,并具备LCD901(LiquidCrystal Display,液晶显示器)、键盘902(K/B)、鼠标903、FDD904(Flexible Disk Drive,软盘驱动器)、CDD905(Compact Disc Drive,压缩盘驱动器)、打印机906这样的硬件设备。这些硬件设备通过电缆、信号线来连接。也可以使用CRT(Cathode Ray Tube,阴极射线管)或者其他的显示装置来代替LCD901。也可以使用触摸面板、触摸板(touch pad)、轨迹球、图形输入板(ペンタブレット)、或者其他的定点设备来代替鼠标903。
签名生成装置100具备执行程序的CPU911(Central ProcessingUnit,中央处理单元)。CPU911是处理装置151的一个例子。CPU911经由总线912与ROM913(Read Only Memory,只读存储器)、RAM914(Random Access Memory,随机访问存储器)、通信板(communication board)915、LCD901、键盘902、鼠标903、FDD904、CDD905、打印机906、HDD920(Hard Disk Drive,硬盘驱动器)连接,并控制这些硬件设备。也可以使用闪速存储器、光盘装置、存储卡读写器、或者其他的记录介质来代替HDD920。
RAM914是易失性存储器的一个例子。ROM913、FDD904、CDD905、HDD920是非易失性存储器的一个例子。这些是存储装置152的一个例子。通信板915、键盘902、鼠标903、FDD904、CDD905是输入装置153的一个例子。另外,通信板915、LCD901、打印机906是输出装置154的一个例子。
通信板915被连接到LAN(Local Area Network,局域网)等。不限于LAN,通信板915也可以被连接到IP-VPN(Internet ProtocolVirtual Private Network,网际协议虚拟专用网络)、广域LAN、ATM(Asynchronous Transfer Mode,异步传输模式)网络这样的WAN(Wide Area Network,广域网)或者因特网。LAN、WAN、因特网是网络的一个例子。
在HDD920中存储有操作系统921(OS)、视窗系统922、程序群923、文件群924。程序群923的程序通过CPU911、操作系统921、视窗系统922被执行。在程序群923中包含有执行在本实施方式的说明中作为“~部”来说明的功能的程序。程序通过CPU911被读出并被执行。在文件群924中,作为“~文件”、“~数据库”、“~表格”的各项目,包含有在本实施方式的说明中作为“~数据”、“~信息”、“~ID(标识符)”、“~标识”、“~结果”来说明的数据、信息、信号值、变量值、参数。“~文件”、“~数据库”、“~表格”被存储在RAM914、HDD920等记录介质中。在RAM914、HDD920等记录介质中存储的数据、信息、信号值、变量值、参数经由读写电路通过CPU911被读出到主存储器、高速缓冲存储器中,并被用于抽出、检索、参照、比较、运算、计算、控制、输出、印刷、显示这样的CPU911的处理(动作)。在抽出、检索、参照、比较、运算、计算、控制、输出、印刷、显示这样的CPU911的处理中,数据、信息、信号值、变量值、参数被暂时存储在主存储器、高速缓冲存储器、缓冲存储器中。
在本实施方式的说明中使用的框图、流程图的箭头的部分主要示出数据、信号的输入输出。数据、信号被记录在RAM914等的存储器、FDD904的软盘(FD)、CDD905的压缩盘(CD)、HDD920的磁盘、光盘、DVD(Digital Versatile Disc,数字通用光盘)、或者其他的记录介质中。另外,数据、信号通过总线912、信号线、电缆、或者其他的传送介质来传送。
在本实施方式的说明中,作为“~部”来说明的部分也可以是“~电路”、“~装置”、“~设备”,另外也可以是“~步骤”、“~工序”、“~次序”、“~处理”。即,作为“~部”来说明的部分也可以通过存储在ROM913中的固件来实现。或者,作为“~部”来说明的部分也可以只通过软件或者只通过元件、器件、基板、布线这样的硬件来实现。或者,作为“~部”来说明的部分也可以通过软件和硬件的组合、或者软件、硬件和固件的组合来实现。固件和软件被作为程序存储在软盘、压缩盘、磁盘、光盘、DVD等记录介质中。程序通过CPU911被读出,并通过CPU911被执行。即,程序作为本实施方式的说明中阐述的“~部”,使计算机发挥功能。或者,程序使计算机执行本实施方式的说明中阐述的“~部”的次序、方法。
图3是示出签名生成装置100的动作(即,本实施方式的签名生成方法)的流程图。
在步骤S101中,输入部101输入公开信息n。例如,输入部101从存储装置152读取公开信息n,并输入读取的公开信息n。输入部101也可以通过输入装置153从签名生成装置100的外部接收公开信息n,并输入接收的公开信息n。或者,输入部101也可以通过处理装置151计算公开信息n,并输入计算的公开信息n。
在步骤S102中,输入部101输入公开信息e。例如,输入部101通过处理装置151计算公开信息e,并输入计算的公开信息e。输入部101也可以从存储装置152读取公开信息e,并输入读取的公开信息e。或者,输入部101也可以通过输入装置153从签名生成装置100的外部接收公开信息e,并输入接收的公开信息e。
在步骤S103中,读取部102从存储装置152读取秘密信息d。在存储装置152中,预先保存有秘密信息d。例如,秘密信息d通过输入部101被输入,并被保存在存储装置152中。
在步骤S104中,随机数生成部103生成随机数r作为新的秘密信息r。
处理步骤S101~S104的顺序以及/或者定时可以适当变更。
在步骤S105中,第1计算部111通过处理装置151进行由随机数生成部103生成的随机数r和由输入部101输入的公开信息n的乘法M1。即,第1计算部111计算s1=r×n。
在步骤S106中,第2计算部112通过处理装置151进行由第1计算部111进行的乘法M1的结果s1和由输入部101输入的公开信息e的加法M2。即,第2计算部112计算s2=s1+e。
在步骤S107中,签名生成部121通过处理装置151进行包含由第2计算部112进行的加法M2的结果s2和由读取部102读取的秘密信息d的乘法(即,s2×d)的运算C’作为上述的运算C。然后,签名生成部121针对运算C’的结果t’,通过处理装置151计算以由输入部101输入的公开信息n为模的余数。即,签名生成部121计算s3=t’modn。s3和签名验证用的信息(例如、公开信息e)的组合成为电子签名。
在步骤S108中,签名生成部121输出在步骤S107中生成的电子签名。例如,签名生成部121将生成的电子签名交给任意的应用程序。或者,例如,签名生成部121通过输出装置154将生成的电子签名向签名生成装置100的外部发送。
在步骤S107中,结果,作为运算C’的至少一部分,进行(r×n+e)×d的计算。因为没有如运算C那样出现e×d的计算,所以不能通过差分电力解析来求出d。因此,能够针对差分电力攻击而安全地生成电子签名。
如果将本实施方式简单化,则签名生成装置100按如下那样进行e×d mod n的运算。
步骤1.生成随机数r。
步骤2.计算s1=r×n。
步骤3.计算s2=s1+e。
步骤4.计算s3=s2×d mod n。
步骤5.将s3作为e×d mod n的计算值输出。
在上述计算方法中,在步骤4中代替e×d的计算而进行(r×n+e)×d的计算。但是,因为r×n的部分在mod n的计算中等同于0,所以能够得到与e×d的计算相同的结果。因此,能够针对差分电力攻击而安全地得到e×d mod n的计算值。
以下,使用图3说明本实施方式的第1应用例。在本例中,签名生成装置100生成EC-Schnorr签名作为电子签名。
在步骤S101中,输入部101输入椭圆曲线上的生成源G的位数n作为公开信息n。
在本例中,在步骤S102之前,随机数生成部103生成随机数k。k是小于n的自然数。
在步骤S102中,输入部101通过处理装置151计算由随机数生成部103生成的随机数k和椭圆曲线上的生成源G的标量积值(scalarproduct)P。即,输入部101计算P=kG。接下来,输入部101将成为给予电子签名的对象的消息M和该标量积值P的x坐标值(即,Px)进行连结并通过处理装置151变换成散列值。然后,输入部101将该散列值作为公开信息e输入。即,输入部101计算e=h(M||Px)。
在步骤S103中,读取部102从存储装置152读取秘密密钥d作为秘密信息d。
在步骤S104中,随机数生成部103与随机数k独立地生成随机数r。r是自然数。
在步骤S105中,第1计算部111通过处理装置151进行由随机数生成部103生成的随机数r和由输入部101输入的位数n的乘法M1。即,第1计算部111计算s1=r×n。
在步骤S106中,第2计算部112通过处理装置151进行由第1计算部111进行的乘法M1的结果s1和由输入部101输入的公开信息e的加法M2。即,第2计算部112计算s2=s1+e。
在步骤S107中,签名生成部121通过处理装置151进行由第2计算部112进行的加法M2的结果s2和由读取部102读取的秘密密钥d的乘法M3。然后,签名生成部121通过处理装置151进行该乘法M3的结果和由随机数生成部103生成的随机数k的加法M4。该加法M4的结果成为运算C’的结果t’。即,签名生成部121计算t’=s2×d+k。接下来,签名生成部121针对运算C’的结果t’,通过处理装置151计算以由输入部101输入的位数n为模的余数。即,签名生成部121计算s3=t’mod n。s3和公开信息e的组合成为电子签名。即,(e,s3)成为M的电子签名。
在步骤S107中,签名生成部121也可以在将乘法M3的结果用于加法M4之前针对乘法M3的结果计算以位数n为模的余数,并用该余数置换乘法M3的结果。即,签名生成部121也可以计算(s2×d modn)+k来代替t’=s2×d+k。
步骤S108中,签名生成部121输出在步骤S107中生成的电子签名。
在步骤S107中,结果,进行(r×n+e)×d+k的计算作为运算C’。因为没有如运算C那样出现e×d的计算,所以不能通过差分电力解析求出d。因此,能够针对差分电力攻击而安全地生成电子签名。
本例中,签名生成装置100按如下那样进行在EC-Schnorr签名算法的说明中示出的步骤4的(e×d+k)mod n的运算。
步骤4-1.生成随机数r。
步骤4-2.计算s1=r×n。
步骤4-3.计算s2=s1+e。
步骤4-4.计算s3=(s2×d+k)mod n。
步骤4-5.输出s3作为(e×d+k)mod n的计算值。
在上述计算方法中,在步骤4-4中代替e×d的计算而进行(r×n+e)×d的计算。因此,能够针对差分电力攻击而安全地得到(e×d+k)mod n的计算值。在Schnorr签名的运算中,也能够使用与上述相同的计算方法。
以下,使用图3说明本实施方式的第2应用例。在本例中,签名生成装置100生成EC-DSA签名作为电子签名。
在步骤S101中,输入部101输入椭圆曲线上的生成源G的位数n作为公开信息n。
在本例中,在步骤S102之前,随机数生成部103生成随机数k。k是小于n的自然数。
在步骤S102中,输入部101通过处理装置151计算由随机数生成部103生成的随机数k和椭圆曲线上的生成源G的标量积值P。即,输入部101计算P=kG。然后,输入部101输入该标量积值P的x坐标值(即,Px)作为公开信息e。
在步骤S103中,读取部102从存储装置152读取秘密密钥d作为秘密信息d。
在步骤S104中,随机数生成部103与随机数k独立地生成随机数r。r是自然数。
在步骤S105中,第1计算部111通过处理装置151进行由随机数生成部103生成的随机数r和由输入部101输入的位数n的乘法M1。即,第1计算部111计算s1=r×n。
在步骤S106中,第2计算部112通过处理装置151进行由第1计算部111进行的乘法M1的结果s1和由输入部101输入的Px的加法M2。即,第2计算部112计算s2=s1+Px。
在步骤S107中,签名生成部121通过处理装置151进行由第2计算部112进行的加法M2的结果s2和由读取部102读取的秘密密钥d的乘法M3。签名生成部121通过处理装置151进行该乘法M3的结果和成为给予电子签名的对象的消息M的散列值h(M)的加法M4。然后,签名生成部121通过处理装置151进行该加法M4的结果和由随机数生成部103生成的随机数k的倒数k-1的乘法M5。该乘法M5的结果成为运算C’的结果t’。即,签名生成部121计算t’=k-1(s2×d+h(M))。接下来,签名生成部121针对运算C’的结果t’,通过处理装置151计算以由输入部101输入的位数n为模的余数。即,签名生成部121计算s3=t’mod n。s3和Px的组合成为电子签名。即,(Px,s3)成为M的电子签名。
在步骤S107中,签名生成部121也可以在将乘法M3的结果用于加法M4之前,针对乘法M3的结果计算以位数n为模的余数,并用该余数置换乘法M3的结果。相同地,签名生成部121也可以在将加法M4的结果用于乘法M5之前,针对加法M4的结果计算以位数n为模的余数,并用该余数置换加法M4的结果。即,签名生成部121也可以计算t’=k-1((s2×d mod n)+h(M))、t’=k-1((s2×d+h(M))mod n)、或者t’=k-1(((s2×d mod n)+h(M))mod n)来代替t’=k-1(s2×d+h(M))。
在步骤S108中,签名生成部121输出在步骤S107中生成的电子签名。
在步骤S107中,结果,进行k-1((r×n+Px)×d+h(M))的计算作为运算C’。因为没有如运算C那样出现Px×d的计算,所以不能通过差分电力解析求出d。因此,能够针对差分电力攻击而安全地生成电子签名。
在本例中,签名生成装置100按如下那样进行在EC-DSA的说明中示出的步骤4的k-1(Px×d+h(M))mod n的运算。
步骤4-1.生成随机数r。
步骤4-2.计算s1=r×n。
步骤4-3.计算s2=s1+Px。
步骤4-4.计算s3=k-1(s2×d+h(M))mod n。
步骤4-5.输出s3作为k-1(Px×d+h(M))mod n的计算值。
在上述计算方法中,在步骤4-4中代替Px×d的计算而进行(r×n+Px)×d的计算。因此,能够针对差分电力攻击而安全地得到k-1(Px×d+h(M))mod n的计算值。在DSA签名的运算中也能够使用与上述相同的计算方法。
实施方式2
关于本实施方式,主要说明和实施方式1的差异。
本实施方式的签名生成装置100的结构与图1示出的实施方式1是相同的。
图4是示出签名生成装置100的动作(即,本实施方式的签名生成方法)的流程图。
在本实施方式中,图3示出的步骤S104被省略,而步骤S105被置换成步骤S105’。在步骤S105’中,第1计算部111将生成在运算C’中使用的信息(例如,公开信息e)的过程中计算的值用作新的秘密信息r。
根据本实施方式,不需要如实施方式1的步骤S104那样的生成随机数r的处理,因此能够削减处理时间。
以下,使用图4说明本实施方式的第1应用例。在本例中,与实施方式1的第1应用例相同地,签名生成装置100生成EC-Schnorr签名作为电子签名。
步骤S101~S103与实施方式1的第1应用例是相同的。
在步骤S105’中,第1计算部111将由输入部101计算的标量积值P的x坐标值(即,Px)用作新的秘密信息r。即,第1计算部111通过处理装置151进行Px和由输入部101输入的位数n的乘法M1。
在步骤105’中,第1计算部111也可以只将Px的一部分用作新的秘密信息r。例如,如果Px是160比特的数据,则第1计算部111也可以只将Px的上位100比特的数据、只将下位20比特的数据、或者只将其他的任意比特的数据用作新的秘密信息r。或者,第1计算部111也可以将由输入部101计算的标量积值P的y坐标值(即,Py)用作新的秘密信息r。第1计算部111也可以只将Py的一部分用作新的秘密信息r。第1计算部111也可以将Px和Py这双方用作新的秘密信息r。即,第1计算部111也可以将Px和Py的任一个的至少一部分用作新的秘密信息r。或者,第1计算部111也可以将由输入部101计算标量积值P的过程中得到的值用作新的秘密信息r。例如,如果在步骤S102中输入部101将加上椭圆曲线上的生成源G的运算作为k次的循环来进行,则第1计算部111也可以将在第j次(j<k)的循环中得到的任意的计算值用作新的秘密信息r。
步骤S106~S108与实施方式1的第1应用例是相同的。
如上所述,在本例中,使用P或者P的一部分代替在实施方式1的第1应用例中的随机数r。P是G的随机数k倍,因此能够看作是随机数。在Schnorr签名的运算中也能够使用与上述相同的方法。
以下,使用图4说明本实施方式的第2应用例。在本例中,与实施方式1的第2应用例相同地,签名生成装置100生成EC-DSA签名作为电子签名。
步骤S101~S103与实施方式1的第2应用例是相同的。
步骤S105’与本实施方式的第1应用例是相同的。
步骤S106~S108与实施方式1的第2应用例是相同的。
如上所述,在本例中,与第1应用例相同地,使用P或者P的一部分来代替在实施方式1的第2应用例中的随机数r。与第1应用例相同地,P是G的随机数k倍,因此能够看作是随机数。在DSA签名的运算中也能够使用与上述相同的方法。

Claims (13)

1.一种签名生成装置,生成电子签名,该电子签名是通过针对运算C的结果计算以公开信息n为模的余数来得到的,该运算C包含公开信息e和秘密信息d的乘法,该签名生成装置的特征在于,具备:
输入部,输入所述公开信息e、n;
读取部,从预先保存所述秘密信息d的存储装置读取所述秘密信息d;
第1计算部,通过处理装置进行新的秘密信息r和由所述输入部输入的公开信息n的乘法M1;
第2计算部,通过处理装置进行由所述第1计算部进行的乘法M1的结果和由所述输入部输入的公开信息e的加法M2;以及
签名生成部,通过处理装置进行运算C’来作为所述运算C,并针对所述运算C’的结果,通过处理装置计算以由所述输入部输入的公开信息n为模的余数,由此生成所述电子签名,该运算C’包含由所述第2计算部进行的加法M2的结果和由所述读取部读取的秘密信息d的乘法。
2.根据权利要求1所述的签名生成装置,其特征在于:
所述签名生成装置还具备随机数生成部,该随机数生成部生成随机数r;
所述第1计算部将由所述随机数生成部生成的随机数r用作所述新的秘密信息r。
3.根据权利要求1所述的签名生成装置,其特征在于:
所述第1计算部将生成在所述运算C’中使用的信息的过程中计算的值用作所述新的秘密信息r。
4.根据权利要求1所述的签名生成装置,其特征在于:
所述签名生成装置还具备随机数生成部,该随机数生成部生成随机数k;
所述电子签名是EC-Schnorr即Elliptic Curve Schnorr签名;
所述输入部计算由所述随机数生成部生成的随机数k和椭圆曲线上的生成源G的标量积值P,将成为给予所述电子签名的对象的消息M和该标量积值P的x坐标值进行连结并变换成散列值,并将该散列值作为所述公开信息e输入;
所述签名生成部进行由所述第2计算部进行的加法M2的结果和由所述读取部读取的秘密信息d的乘法M3,进行该乘法M3的结果和由所述随机数生成部生成的随机数k的加法M4,并将该加法M4的结果用作所述运算C’的结果。
5.根据权利要求4所述的签名生成装置,其特征在于:
所述随机数生成部与所述随机数k独立地生成随机数r;
所述第1计算部将由所述随机数生成部生成的随机数r用作所述新的秘密信息r。
6.根据权利要求4所述的签名生成装置,其特征在于:
所述第1计算部将由所述输入部计算的标量积值P的x坐标值和y坐标值中的任一个的至少一部分用作所述新的秘密信息r。
7.根据权利要求4所述的签名生成装置,其特征在于:
所述第1计算部将由所述输入部计算所述标量积值P的过程中得到的值用作所述新的秘密信息r。
8.根据权利要求1所述的签名生成装置,其特征在于:
所述签名生成装置还具备随机数生成部,该随机数生成部生成随机数k;
所述电子签名是ECDSA即Elliptic Curve Digital SignatureAlgorithm签名;
所述输入部计算由所述随机数生成部生成的随机数k和椭圆曲线上的生成源G的标量积值P,并将该标量积值P的x坐标值作为所述公开信息e输入;
所述签名生成部进行由所述第2计算部进行的加法M2的结果和由所述读取部读取的秘密信息d的乘法M3,进行该乘法M3的结果和成为给予所述电子签名的对象的消息M的散列值h(M)的加法M4,进行该加法M4的结果和由所述随机数生成部生成的随机数k的倒数k-1的乘法M5,并将该乘法M5的结果用作所述运算C’的结果。
9.根据权利要求8所述的签名生成装置,其特征在于:
所述随机数生成部与所述随机数k独立地生成随机数r;
所述第1计算部将由所述随机数生成部生成的随机数r用作所述新的秘密信息r。
10.根据权利要求8所述的签名生成装置,其特征在于:
所述第1计算部将由所述输入部计算的标量积值P的x坐标值和y坐标值中的任一个的至少一部分用作所述新的秘密信息r。
11.根据权利要求8所述的签名生成装置,其特征在于:
所述第1计算部将由所述输入部计算所述标量积值P的过程中得到的值用作所述新的秘密信息r。
12.一种签名生成方法,生成电子签名,该电子签名是通过针对运算C的结果计算以公开信息n为模的余数来得到的,该运算C包含公开信息e和秘密信息d的乘法,该签名生成方法的特征在于:
输入所述公开信息e,n;
从预先保存所述秘密信息d的存储装置读取所述秘密信息d;
通过处理装置进行新的秘密信息r和输入的所述公开信息n的乘法M1;
通过处理装置进行所述乘法M1的结果和输入的所述公开信息e的加法M2;
通过处理装置进行包含所述加法M2的结果和读取的所述秘密信息d的乘法的运算C’来作为所述运算C,并针对所述运算C’的结果,通过处理装置计算以输入的所述公开信息n为模的余数,由此生成所述电子签名。
13.一种计算机可读取的记录介质,其特征在于,记录了用于使生成通过针对包含公开信息e和秘密信息d的乘法的运算C的结果计算以公开信息n为模的余数来得到的电子签名的计算机作为如下部分发挥功能的程序:
输入部,输入所述公开信息e、n;
读取部,从预先保存所述秘密信息d的存储装置读取所述秘密信息d;
第1计算部,通过处理装置进行新的秘密信息r和由所述输入部输入的公开信息n的乘法M1;
第2计算部,通过处理装置进行由所述第1计算部进行的乘法M1的结果和由所述输入部输入的公开信息e的加法M2;以及
签名生成部,通过处理装置进行运算C’来作为所述运算C,并针对所述运算C’的结果,通过处理装置计算以由所述输入部输入的公开信息n为模的余数,由此生成所述电子签名,该运算C’包含由所述第2计算部进行的加法M2的结果和由所述读取部读取的秘密信息d的乘法。
CN201080070890.3A 2010-12-24 2010-12-24 签名生成装置、签名生成方法以及记录介质 Expired - Fee Related CN103270546B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/073422 WO2012086076A1 (ja) 2010-12-24 2010-12-24 署名生成装置及び署名生成方法及び記録媒体

Publications (2)

Publication Number Publication Date
CN103270546A true CN103270546A (zh) 2013-08-28
CN103270546B CN103270546B (zh) 2015-09-16

Family

ID=46313373

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080070890.3A Expired - Fee Related CN103270546B (zh) 2010-12-24 2010-12-24 签名生成装置、签名生成方法以及记录介质

Country Status (6)

Country Link
US (1) US9300475B2 (zh)
EP (1) EP2657925B1 (zh)
JP (1) JP5328993B2 (zh)
KR (1) KR101467719B1 (zh)
CN (1) CN103270546B (zh)
WO (1) WO2012086076A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109412813A (zh) * 2018-09-14 2019-03-01 北京海泰方圆科技股份有限公司 椭圆曲线的签名方法、验签方法和装置

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9800411B1 (en) * 2016-05-05 2017-10-24 ISARA Corporation Using a secret generator in an elliptic curve cryptography (ECC) digital signature scheme
US10680810B2 (en) * 2016-10-26 2020-06-09 Nxp B.V. Method of generating an elliptic curve cryptographic key pair
KR102510077B1 (ko) 2018-04-24 2023-03-14 삼성에스디에스 주식회사 부채널 공격에 안전한 연산 장치 및 방법
KR20200046481A (ko) 2018-10-24 2020-05-07 삼성전자주식회사 난수 생성기, 이를 포함하는 암호화 장치 및 이의 동작 방법
US11488290B2 (en) * 2019-03-31 2022-11-01 Cortica Ltd. Hybrid representation of a media unit
CN110322246A (zh) * 2019-07-09 2019-10-11 深圳市网心科技有限公司 一种区块链交易信息的优化方法及相关设备
DE102022108756A1 (de) * 2021-04-16 2022-10-20 Samsung Electronics Co., Ltd. Verschlüsselungsvorrichtung und Authentifizierungsverfahren und Signaturerzeugungsverfahren eines Systems umfassend dieselbe

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002268548A (ja) * 2001-03-13 2002-09-20 Toshiba Corp 素数判定装置、方法及びプログラム
US20040179680A1 (en) * 2001-04-30 2004-09-16 Pierre-Yvan Liardet Method for encrypting a calculation using a modular function
WO2010067433A1 (ja) * 2008-12-11 2010-06-17 三菱電機株式会社 自己認証通信機器、自己認証検証通信機器、機器認証システム、機器認証システムの機器認証方法、自己認証通信プログラムおよび自己認証検証通信プログラム
JP2010277006A (ja) * 2009-06-01 2010-12-09 Hitachi Ltd 正当性が保証されたidの生成方法及び正当性保証rfidタグ

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088798A (en) * 1996-09-27 2000-07-11 Kabushiki Kaisha Toshiba Digital signature method using an elliptic curve, a digital signature system, and a program storage medium having the digital signature method stored therein
US5991415A (en) * 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks
WO1999035782A1 (en) * 1998-01-02 1999-07-15 Cryptography Research, Inc. Leak-resistant cryptographic method and apparatus
US6243467B1 (en) * 1998-07-23 2001-06-05 The United States Of America As Represented By The National Security Agency Method of elliptic curve cryptographic digital signature generation and verification using reduced base tau expansion in non-adjacent form
US7599491B2 (en) * 1999-01-11 2009-10-06 Certicom Corp. Method for strengthening the implementation of ECDSA against power analysis
KR100341507B1 (ko) * 1999-12-17 2002-06-21 김지윤 빠른 유한체 연산을 이용한 타원곡선 암호화 방법 및 전자서명 방법
US7505585B2 (en) * 2002-06-25 2009-03-17 The United States Of America As Represented By The Director, The National Security Agency Method of generating cryptographic key using elliptic curve and expansion in joint sparse form and using same
DE102005024609A1 (de) * 2005-05-25 2006-11-30 Siemens Ag Bestimmung einer modularen Inversen
US8027466B2 (en) * 2007-03-07 2011-09-27 Research In Motion Limited Power analysis attack countermeasure for the ECDSA
WO2009008069A1 (ja) * 2007-07-11 2009-01-15 Kabushiki Kaisha Toshiba グループ署名システム、装置及びプログラム
FR2926652B1 (fr) * 2008-01-23 2010-06-18 Inside Contactless Procede et dispositifs de contre-mesure pour cryptographie asymetrique a schema de signature
EP2090978A1 (en) * 2008-02-15 2009-08-19 Thomson Licensing An apparatus and a method for calculating a multiple of a point on an elliptic curve
JP4837058B2 (ja) * 2009-03-10 2011-12-14 株式会社東芝 演算装置及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002268548A (ja) * 2001-03-13 2002-09-20 Toshiba Corp 素数判定装置、方法及びプログラム
US20040179680A1 (en) * 2001-04-30 2004-09-16 Pierre-Yvan Liardet Method for encrypting a calculation using a modular function
WO2010067433A1 (ja) * 2008-12-11 2010-06-17 三菱電機株式会社 自己認証通信機器、自己認証検証通信機器、機器認証システム、機器認証システムの機器認証方法、自己認証通信プログラムおよび自己認証検証通信プログラム
JP2010277006A (ja) * 2009-06-01 2010-12-09 Hitachi Ltd 正当性が保証されたidの生成方法及び正当性保証rfidタグ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109412813A (zh) * 2018-09-14 2019-03-01 北京海泰方圆科技股份有限公司 椭圆曲线的签名方法、验签方法和装置
CN109412813B (zh) * 2018-09-14 2019-08-09 北京海泰方圆科技股份有限公司 椭圆曲线的签名方法、验签方法和装置

Also Published As

Publication number Publication date
WO2012086076A1 (ja) 2012-06-28
EP2657925B1 (en) 2018-05-16
KR20130086639A (ko) 2013-08-02
KR101467719B1 (ko) 2014-12-01
EP2657925A1 (en) 2013-10-30
US9300475B2 (en) 2016-03-29
CN103270546B (zh) 2015-09-16
JP5328993B2 (ja) 2013-10-30
JPWO2012086076A1 (ja) 2014-05-22
US20130179691A1 (en) 2013-07-11
EP2657925A4 (en) 2017-07-05

Similar Documents

Publication Publication Date Title
CN103270546B (zh) 签名生成装置、签名生成方法以及记录介质
CN110537183B (zh) 数据标记化方法和系统
CN110351096B (zh) 多重签名方法、签名中心、程序介质及电子设备
CN106664205B (zh) 生成数字签名的系统和方法、非瞬时计算机可读存储介质
US10083310B1 (en) System and method for mobile proactive secure multi-party computation (MPMPC) using commitments
JP3821631B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体
US8498411B1 (en) Using multiples above two with running totals and reference values other than 0 and 2 (window size) in elliptic curve cryptography scalar multiplication acceleration tables
JP7164672B2 (ja) デジタル署名方法、署名情報検証方法、関連装置及び電子機器
US8458478B2 (en) Signature generating apparatus, signature verifying apparatus, and methods and programs therefor
US11190340B2 (en) Efficient unified hardware implementation of multiple ciphers
Courtois et al. Speed optimizations in Bitcoin key recovery attacks
Kazmirchuk et al. Digital signature authentication scheme with message recovery based on the use of elliptic curves
CN112887081A (zh) 基于sm2的签名验签方法、装置及系统
Corte-Real Santos et al. AprésSQI: extra fast verification for SQIsign using extension-field signing
Shankar et al. Cryptography with elliptic curves
Oonishi et al. Improved CRT-RSA secret key recovery method from sliding window leakage
JP2003255831A (ja) 楕円曲線スカラー倍計算方法及び装置
Na et al. Comparative analysis of schnorr digital signature and ecdsa for efficiency using private ethereum network
Sedlacek et al. DiSSECT: distinguisher of standard and simulated elliptic curves via traits
CN113965314B (zh) 同态加密处理方法及相关设备
KR102019369B1 (ko) 단일파형공격을 차단하기 위한 타원곡선 암호화 장치 및 방법
CN108958666A (zh) 一种数据处理方法及主控芯片
Salam et al. HECC (hyperelliptic curve cryptography)
US8605895B2 (en) Computing the eth root of a number using a variant of the RSA algorithm (for even e's)
Jyotiyana et al. A Fault Attack for Scalar Multiplication in Elliptic Curve Digital Signature Algorithm

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150916

Termination date: 20201224

CF01 Termination of patent right due to non-payment of annual fee