KR20130086639A - 서명 생성 장치 및 서명 생성 방법 및, 컴퓨터 판독 가능한 기록 매체 - Google Patents
서명 생성 장치 및 서명 생성 방법 및, 컴퓨터 판독 가능한 기록 매체 Download PDFInfo
- Publication number
- KR20130086639A KR20130086639A KR1020137015322A KR20137015322A KR20130086639A KR 20130086639 A KR20130086639 A KR 20130086639A KR 1020137015322 A KR1020137015322 A KR 1020137015322A KR 20137015322 A KR20137015322 A KR 20137015322A KR 20130086639 A KR20130086639 A KR 20130086639A
- Authority
- KR
- South Korea
- Prior art keywords
- signature
- random number
- unit
- multiplication
- result
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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/3252—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public 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·Digital·Signature·Algorithm)은 이하와 같다.
스텝 0. G를 타원 곡선 상의 생성원(generator), G의 위수(位數; order)를 n이라고 둔다. d를 비밀키, M을 서명 대상의 메시지, h를 해쉬 함수로 한다.
스텝 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/IEC 14888-3: 2006/FDAM1, "Informatio ntechnology-Security techniques-Digital signatures with appendix-Part3: Discrete logarithm based mechanisms-Amendment1: Elliptic Curve Russian Digital Signature Algorithm, Schnorr Digital Signature Algorithm, Elliptic Curve Schnorr Digital Signature Algorithm, Elliptic Curve Full Schnorr Digital Signature Algorithm," ISO/IEC JTC 1/SC 27, 2009-12-15
비특허문헌 2: Jean-Sebastien Coron, "Resistance against Differential Power Analysis for Elliptic Curve Cryptosystems," CHES'99, LNCS 1717, pp.292-302, 1999
전술한 예에 있어서, d를 알고 있는 사람은 누구라도 서명을 만들 수 있다. 즉, 타인에게 비밀키가 건네지면, 서명의 위조를 할 수 있다. 그러나, 종래의 계산 방법에서는, 차분 전력 해석을 행함으로써, 용이하게 비밀키를 입수할 수 있다. EC-Schnorr 서명, EC-DSA 서명뿐만 아니라, Schnorr 서명, DSA(Digital·Signature·Algorithm) 서명이라고 하는 전자 서명의 연산에 대해서도, 마찬가지로 차분 전력 해석을 행함으로써, 비밀키가 폭로되면, 서명의 위조를 할 수 있다.
본 발명은, 예를 들면, 차분 전력 공격에 대해 안전하게 전자 서명을 생성하는 것을 목적으로 한다.
본 발명의 일 형태에 따른 서명 생성 장치는, 공개 정보 e와 비밀 정보 d의 승산을 포함하는 연산의 결과에 대해 공개 정보 n을 제수로 하는 나머지를 계산하는 것에 의해 얻어지는 전자 서명을 생성하는 서명 생성 장치이며, 상기 공개 정보 e, n을 입력하는 입력부와, 상기 비밀 정보 d를 미리 저장하는 기억 장치로부터 상기 비밀 정보 d를 판독하는 판독부와, 새로운 비밀 정보 r과 상기 입력부에 의해 입력된 공개 정보 n의 승산 M1을 처리 장치에 의해 행하는 제 1 계산부와, 상기 제 1 계산부에 의해 행해진 승산 M1의 결과와 상기 입력부에 의해 입력된 공개 정보 e의 가산 M2를 처리 장치에 의해 행하는 제 2 계산부와, 상기 연산으로서, 상기 제 2 계산부에 의해 행해진 가산 M2의 결과와 상기 판독부에 의해 판독된 비밀 정보 d의 승산을 포함하는 연산 C를 처리 장치에 의해 행하고, 상기 연산 C의 결과에 대해 상기 입력부에 의해 입력된 공개 정보 n을 제수로 하는 나머지를 처리 장치에 의해 계산하는 것에 의해 상기 전자 서명을 생성하는 서명 생성부를 구비한다.
본 발명의 일 형태에 의하면, 차분 전력 공격에 대해 안전하게 EC-Schnorr 서명, Schnorr 서명, EC-DSA 서명, DSA 서명이라고 하는 전자 서명의 연산을 행할 수 있다.
도 1은 실시 형태 1 및 2에 따른 서명 생성 장치의 구성을 나타내는 블럭도.
도 2는 실시 형태 1 및 2에 따른 서명 생성 장치의 하드웨어 구성의 일례를 나타내는 도면.
도 3은 실시 형태 1에 따른 서명 생성 장치의 동작을 나타내는 흐름도.
도 4는 실시 형태 2에 따른 서명 생성 장치의 동작을 나타내는 흐름도.
도 2는 실시 형태 1 및 2에 따른 서명 생성 장치의 하드웨어 구성의 일례를 나타내는 도면.
도 3은 실시 형태 1에 따른 서명 생성 장치의 동작을 나타내는 흐름도.
도 4는 실시 형태 2에 따른 서명 생성 장치의 동작을 나타내는 흐름도.
이하, 본 발명의 실시 형태에 대해 도면을 이용하여 설명한다.
(실시 형태 1)
본 실시 형태는, 공개 정보 e와 비밀 정보 d의 승산(즉, e×d)을 포함하는 연산 C의 결과 t에 대해 공개 정보 n을 제수로 하는 나머지(즉, t mod n)를 계산하는 것에 의해 얻어지는 전자 서명의 생성에 적용할 수 있다. 그러한 전자 서명으로서는, 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)는, 컴퓨터이고, LCD(Liquid·Crystal·Display)(901), 키보드(902)(K/B), 마우스(903), FDD(Flexible·Disk·Drive)(904), CDD(Compact·Disc·Drive)(905), 프린터(906)이라고 하는 하드웨어 디바이스를 구비하고 있다. 이들 하드웨어 디바이스는 케이블이나 신호선으로 접속되어 있다. LCD(901) 대신에, CRT(Cathode·Ray·Tube) 혹은 그 외의 표시 장치가 이용되어도 좋다. 마우스(903) 대신에, 터치 패널, 터치 패드, 트랙볼, 펜 테블릿, 혹은 그 외의 포인팅 디바이스가 이용되어도 좋다.
서명 생성 장치(100)는 프로그램을 실행하는 CPU(Central·Processing·Unit)(911)를 구비하고 있다. CPU(911)는 처리 장치(151)의 일례이다. CPU(911)는 버스(912)를 통해 ROM(Read·Only·Memory)(913), RAM(Random·Access·Memory)(914), 통신 보드(915), LCD(901), 키보드(902), 마우스(903), FDD(904), CDD(905), 프린터(906), HDD(Hard·Disk·Drive)(920)와 접속되고, 이들 하드웨어 디바이스를 제어한다. HDD(920) 대신에, 플래시 메모리, 광디스크 장치, 메모리 카드 리더 라이터, 혹은 그 외의 기록 매체가 이용되어도 좋다.
RAM(914)은 휘발성 메모리의 일례이다. ROM(913), FDD(904), CDD(905), HDD(920)는 비휘발성 메모리의 일례이다. 이들은 기억 장치(152)의 일례이다. 통신 보드(915), 키보드(902), 마우스(903), FDD(904), CDD(905)는 입력 장치(153)의 일례이다. 또한, 통신 보드(915), LCD(901), 프린터(906)는 출력 장치(154)의 일례이다.
통신 보드(915)는 LAN(Local·Area·Network) 등에 접속되어 있다. 통신 보드(915)는, LAN에 한정하지 않고, IP-VPN(Internet·Protocol·Virtual·Private·Network), 광역 LAN, ATM(Asynchronous·Transfer·Mode) 네트워크라고 하는 WAN(Wide·Area·Network), 혹은 인터넷에 접속되어 있어도 상관없다. LAN, WAN, 인터넷은 네트워크의 일례이다.
HDD(920)에는, 오퍼레이팅 시스템(OS)(921), 윈도우 시스템(922), 프로그램 그룹(923), 파일 그룹(924)이 기억되어 있다. 프로그램 그룹(923)의 프로그램은 CPU(911), 오퍼레이팅 시스템(921), 윈도우 시스템(922)에 의해 실행된다. 프로그램 그룹(923)에는, 본 실시 형태의 설명에서 「~ 부」로서 설명하는 기능을 실행하는 프로그램이 포함되어 있다. 프로그램은 CPU(911)에 의해 판독되어 실행된다. 파일 그룹(924)에는, 본 실시 형태의 설명에서, 「~ 데이터」, 「~ 정보」, 「~ ID(식별자)」, 「~ 플래그」, 「~ 결과」로서 설명하는 데이터나 정보나 신호값이나 변수값이나 파라미터가 「~ 파일」이나 「~ 데이터베이스」나 「~ 테이블」의 각 항목으로서 포함되어 있다. 「~ 파일」이나 「~ 데이터베이스」나 「~ 테이블」은 RAM(914)나 HDD(920) 등의 기록 매체에 기억된다. RAM(914)나 HDD(920) 등의 기록 매체에 기억된 데이터나 정보나 신호값이나 변수값이나 파라미터는 판독 기입 회로를 거쳐서 CPU(911)에 의해 메인 메모리나 캐시 기억 장치에 판독되고, 추출, 검색, 참조, 비교, 연산, 계산, 제어, 출력, 인쇄, 표시라고 하는 CPU(911)의 처리(동작)에 이용된다. 추출, 검색, 참조, 비교, 연산, 계산, 제어, 출력, 인쇄, 표시라고 하는 CPU(911)의 처리 중, 데이터나 정보나 신호값이나 변수값이나 파라미터는 메인 메모리나 캐시 기억 장치나 버퍼 메모리에 일시적으로 기억된다.
본 실시 형태의 설명에서 이용하는 블럭도나 흐름도의 화살표의 부분은 주로 데이터나 신호의 입출력을 나타낸다. 데이터나 신호는 RAM(914) 등의 메모리, FDD(904)의 플렉서블 디스크(FD), CDD(905)의 콤팩트 디스크(CD), HDD(920)의 자기 디스크, 광디스크, DVD(Digital·Versatile·Disc), 혹은 그 외의 기록 매체에 기록된다. 또한, 데이터나 신호는 버스(912), 신호선, 케이블, 혹은 그 외의 전송 매체에 의해 전송된다.
본 실시 형태의 설명에서 「~ 부」로서 설명하는 것은, 「~ 회로」, 「~ 장치」, 「~ 기기」이어도 좋고, 또한, 「~ 스텝」, 「~ 공정」, 「~ 순서」, 「~ 처리」이어도 좋다. 즉, 「~ 부」로서 설명하는 것은 ROM(913)에 기억된 펌웨어로 실현되어 있어도 상관없다. 혹은, 「~ 부」로서 설명하는 것은 소프트웨어만, 혹은 소자, 디바이스, 기판, 배선이라고 하는 하드웨어만으로 실현되어 있어도 상관없다. 혹은, 「~ 부」로서 설명하는 것은 소프트웨어와 하드웨어의 조합, 혹은, 소프트웨어와 하드웨어와 펌웨어의 조합으로 실현되어 있어도 상관없다. 펌웨어와 소프트웨어는, 프로그램으로서, 플렉서블 디스크, 콤팩트 디스크, 자기 디스크, 광디스크, DVD 등의 기록 매체에 기억된다. 프로그램은 CPU(911)에 의해 판독되고, CPU(911)에 의해 실행된다. 즉, 프로그램은 본 실시 형태의 설명에서 말하는 「~ 부」로서 컴퓨터를 기능시키는 것이다. 혹은, 프로그램은 본 실시 형태의 설명에서 말하는 「~ 부」의 순서나 방법을 컴퓨터에게 실행시키는 것이다.
도 3은 서명 생성 장치(100)의 동작(즉, 본 실시 형태에 따른 서명 생성 방법)을 나타내는 흐름도이다.
스텝 S101에서, 입력부(101)는 공개 정보 n을 입력한다. 예를 들면, 입력부(101)는 기억 장치(152)로부터 공개 정보 n을 판독하고, 판독한 공개 정보 n을 입력한다. 입력부(101)는, 공개 정보 n을 입력 장치(153)에 의해 서명 생성 장치(100)의 외부로부터 수신하고, 수신한 공개 정보 n을 입력하여도 좋다. 혹은, 입력부(101)는, 공개 정보 n을 처리 장치(151)에 의해 계산하고, 계산한 공개 정보 n을 입력하여도 좋다.
스텝 S102에서, 입력부(101)는 공개 정보 e를 입력한다. 예를 들면, 입력부(101)는, 공개 정보 e를 처리 장치(151)에 의해 계산하고, 계산한 공개 정보 e를 입력한다. 입력부(101)는, 기억 장치(152)로부터 공개 정보 e를 판독하고, 판독한 공개 정보 e를 입력하여도 좋다. 혹은, 입력부(101)는, 공개 정보 e를 입력 장치(153)에 의해 서명 생성 장치(100)의 외부로부터 수신하고, 수신한 공개 정보 e를 입력하여도 좋다.
스텝 S103에서, 판독부(102)는 기억 장치(152)로부터 비밀 정보 d를 판독한다. 기억 장치(152)에는, 비밀 정보 d가 미리 저장되어 있다. 예를 들면, 비밀 정보 d는 입력부(101)에 의해 입력되고, 기억 장치(152)에 저장된다.
스텝 S104에서, 난수 생성부(103)는 새로운 비밀 정보 r로서 난수 r을 생성한다.
스텝 S101~ S104를 처리하는 순서 및/또는 타이밍은 적절히 변경하여도 좋다.
스텝 S105에서, 제 1 계산부(111)는 난수 생성부(103)에 의해 생성된 난수 r과 입력부(101)에 의해 입력된 공개 정보 n의 승산 M1을 처리 장치(151)에 의해 행한다. 즉, 제 1 계산부(111)는 s1=r×n을 계산한다.
스텝 S106에서, 제 2 계산부(112)는 제 1 계산부(111)에 의해 행해진 승산 M1의 결과 s1과 입력부(101)에 의해 입력된 공개 정보 e의 가산 M2를 처리 장치(151)에 의해 행한다. 즉, 제 2 계산부(112)는 s2=s1+e를 계산한다.
스텝 S107에서, 서명 생성부(121)는, 전술한 연산 C로서, 제 2 계산부(112)에 의해 행해진 가산 M2의 결과 s2와 판독부(102)에 의해 판독된 비밀 정보 d의 승산(즉, s2×d)을 포함하는 연산 C'을 처리 장치(151)에 의해 행한다. 그리고, 서명 생성부(121)는 연산 C'의 결과 t'에 대해 입력부(101)에 의해 입력된 공개 정보 n을 제수로 하는 나머지를 처리 장치(151)에 의해 계산한다. 즉, 서명 생성부(121)는 s3=t' mod n을 계산한다. 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의 계산값이 얻어진다.
이하, 본 실시 형태의 제 1 적용예에 대해 도 3을 이용하여 설명한다. 본 예에서는, 서명 생성 장치(100)가 전자 서명으로서 EC-Schnorr 서명을 생성한다.
스텝 S101에서, 입력부(101)는 공개 정보 n로서 타원 곡선 상의 생성원 G의 위수 n을 입력한다.
본 예에서는, 스텝 S102 전에, 난수 생성부(103)가 난수 k를 생성한다. k는 n 미만의 자연수이다.
스텝 S102에서, 입력부(101)는, 난수 생성부(103)에 의해 생성된 난수 k와 타원 곡선 상의 생성원 G의 스칼라 곱셈값 P를 처리 장치(151)에 의해 계산한다. 즉, 입력부(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)는, 난수 생성부(103)에 의해 생성된 난수 r과 입력부(101)에 의해 입력된 위수 n의 승산 M1을 처리 장치(151)에 의해 행한다. 즉, 제 1 계산부(111)는 s1=r×n을 계산한다.
스텝 S106에서, 제 2 계산부(112)는 제 1 계산부(111)에 의해 행해진 승산 M1의 결과 s1과 입력부(101)에 의해 입력된 공개 정보 e의 가산 M2를 처리 장치(151)에 의해 행한다. 즉, 제 2 계산부(112)는 s2=s1+e를 계산한다.
스텝 S107에서, 서명 생성부(121)는 제 2 계산부(112)에 의해 행해진 가산 M2의 결과 s2와 판독부(102)에 의해 판독된 비밀키 d의 승산 M3을 처리 장치(151)에 의해 행한다. 그리고, 서명 생성부(121)는 당해 승산 M3의 결과와 난수 생성부(103)에 의해 생성된 난수 k의 가산 M4를 처리 장치(151)에 의해 행한다. 당해 가산 M4의 결과가 연산 C'의 결과 t'으로 된다. 즉, 서명 생성부(121)는 t'=s2×d+k를 계산한다. 다음으로, 서명 생성부(121)는 연산 C'의 결과 t'에 대해 입력부(101)에 의해 입력된 위수 n을 제수로 하는 나머지를 처리 장치(151)에 의해 계산한다. 즉, 서명 생성부(121)는 s3=t' mod n을 계산한다. s3과 공개 정보 e의 조합이 전자 서명으로 된다. 즉, (e, s3)가 M의 전자 서명으로 된다.
스텝 S107에서, 서명 생성부(121)는, 승산 M3의 결과를 가산 M4에 이용하기 전에, 승산 M3의 결과에 대해 위수 n을 제수로 하는 나머지를 계산하고, 그 나머지로 승산 M3의 결과를 치환하여도 좋다. 즉, 서명 생성부(121)는 t'=s2×d+k 대신에, (s2×d mod n)+k를 계산하여도 좋다.
스텝 S108에서, 서명 생성부(121)는 스텝 S107에서 생성한 전자 서명을 출력한다.
스텝 S107에서는, 결과적으로, 연산 C'으로서 (r×n+e)×d+k의 계산이 행해진다. 연산 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 서명의 연산에도 상기 동일한 계산 방법을 이용할 수 있다.
이하, 본 실시 형태의 제 2 적용예에 대해 도 3을 이용하여 설명한다. 본 예에서는, 서명 생성 장치(100)가 전자 서명으로서 EC-DSA 서명을 생성한다.
스텝 S101에서, 입력부(101)는 공개 정보 n으로서 타원 곡선 상의 생성원 G의 위수 n을 입력한다.
본 예에서는, 스텝 S102의 전에, 난수 생성부(103)가 난수 k를 생성한다. k는 n 미만의 자연수이다.
스텝 S102에서, 입력부(101)는 난수 생성부(103)에 의해 생성된 난수 k와 타원 곡선 상의 생성원 G의 스칼라 곱셈값 P를 처리 장치(151)에 의해 계산한다. 즉, 입력부(101)는 P=kG를 계산한다. 그리고, 입력부(101)는 당해 스칼라 곱셈값 P의 x 좌표값(즉, Px)를 공개 정보 e로서 입력한다.
스텝 S103에서, 판독부(102)는 기억 장치(152)로부터 비밀 정보 d로서 비밀키 d를 판독한다.
스텝 S104에서, 난수 생성부(103)는 난수 k와는 별도로 난수 r을 생성한다. r은 자연수이다.
스텝 S105에서, 제 1 계산부(111)는 난수 생성부(103)에 의해 생성된 난수 r과 입력부(101)에 의해 입력된 위수 n의 승산 M1을 처리 장치(151)에 의해 행한다. 즉, 제 1 계산부(111)는 s1=r×n을 계산한다.
스텝 S106에서, 제 2 계산부(112)는 제 1 계산부(111)에 의해 행해진 승산 M1의 결과 s1과 입력부(101)에 의해 입력된 Px의 가산 M2를 처리 장치(151)에 의해 행한다. 즉, 제 2 계산부(112)는 s2=s1+Px를 계산한다.
스텝 S107에서, 서명 생성부(121)는 제 2 계산부(112)에 의해 행해진 가산 M2의 결과 s2와 판독부(102)에 의해 판독된 비밀키 d의 승산 M3을 처리 장치(151)에 의해 행한다. 서명 생성부(121)는 당해 승산 M3의 결과와 전자 서명이 부여되는 대상으로 되는 메시지 M의 해시값 h(M)의 가산 M4를 처리 장치(151)에 의해 행한다. 그리고, 서명 생성부(121)는 당해 가산 M4의 결과와 난수 생성부(103)에 의해 생성된 난수 k의 역수 k-1의 승산 M5를 처리 장치(151)에 의해 행한다. 당해 승산 M5의 결과가 연산 C'의 결과 t'로 된다. 즉, 서명 생성부(121)는 t'=k- 1(s2×d+h(M))를 계산한다. 다음으로, 서명 생성부(121)는 연산 C'의 결과 t'에 대해 입력부(101)에 의해 입력된 위수 n을 제수로 하는 나머지를 처리 장치(151)에 의해 계산한다. 즉, 서명 생성부(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+h(M)) 대신에, 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)을 계산하여도 좋다.
스텝 S108에서, 서명 생성부(121)는 스텝 S107에서 생성한 전자 서명을 출력한다.
스텝 S107에서는, 결과적으로, 연산 C'으로서 k-1((r×n+Px)×d+h(M))의 계산이 행해진다. 연산 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을 생성하는 처리가 불필요해지기 때문에, 처리 시간을 삭감할 수 있다.
이하, 본 실시 형태의 제 1 적용예에 대해 도 4를 이용하여 설명한다. 본 예에서는, 실시 형태 1의 제 1 적용예와 마찬가지로, 서명 생성 장치(100)가 전자 서명으로서 EC-Schnorr 서명을 생성한다.
스텝 S101~ S103은 실시 형태 1의 제 1 적용예의 것과 동일하다.
스텝 S105'에서, 제 1 계산부(111)는 입력부(101)에 의해 계산된 스칼라 곱셈값 P의 x 좌표값(즉, Px)를 새로운 비밀 정보 r로서 이용한다. 즉, 제 1 계산부(111)는 Px와 입력부(101)에 의해 입력된 위수 n의 승산 M1을 처리 장치(151)에 의해 행한다.
스텝 S105'에서, 제 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 적용예의 것과 동일하다.
상기와 같이, 본 예에서는, 실시 형태 1의 제 1 적용예에서의 난수 r 대신에 P 또는 P의 일부를 이용하고 있다. P는 G의 난수 k배이기 때문에, 난수로 간주할 수 있다. chnorr 서명의 연산에도 상기 동일한 방법을 이용할 수 있다.
이하, 본 실시 형태의 제 2 적용예에 대해 도 4를 이용하여 설명한다. 본 예에서는, 실시 형태 1의 제 2 적용예와 마찬가지로, 서명 생성 장치(100)가 전자 서명으로서 EC-DSA 서명을 생성한다.
스텝 S101~ S103은 실시 형태 1의 제 2 적용예의 것과 동일하다.
스텝 S105'은 본 실시 형태의 제 1 적용예의 것과 동일하다.
스텝 S106~ S108은 실시 형태 1의 제 2 적용예의 것과 동일하다.
상기와 같이, 본 예에서는, 제 1 적용예와 마찬가지로, 실시 형태 1의 제 2 적용예에서의 난수 r 대신에, P 또는 P의 일부를 이용하고 있다. 제 1 적용예와 마찬가지로, P는 G의 난수 k배이므로, 난수로 간주할 수 있다. DSA 서명의 연산에도 상기 동일한 방법을 이용할 수 있다.
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: 파일 그룹
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: 파일 그룹
Claims (13)
- 공개 정보 e와 비밀 정보 d의 승산을 포함하는 연산 C의 결과에 대해 공개 정보 n을 제수로 하는 나머지를 계산하는 것에 의해 얻어지는 전자 서명을 생성하는 서명 생성 장치에 있어서,
상기 공개 정보 e, n을 입력하는 입력부와,
상기 비밀 정보 d를 미리 저장하는 기억 장치로부터 상기 비밀 정보 d를 판독하는 판독부와,
새로운 비밀 정보 r과 상기 입력부에 의해 입력된 공개 정보 n의 승산 M1을 처리 장치에 의해 행하는 제 1 계산부와,
상기 제 1 계산부에 의해 행해진 승산 M1의 결과와 상기 입력부에 의해 입력된 공개 정보 e의 가산 M2를 처리 장치에 의해 행하는 제 2 계산부와,
상기 연산 C로서, 상기 제 2 계산부에 의해 행해진 가산 M2의 결과와 상기 판독부에 의해 판독된 비밀 정보 d의 승산을 포함하는 연산 C'를 처리 장치에 의해 행하고, 상기 연산 C'의 결과에 대해 상기 입력부에 의해 입력된 공개 정보 n을 제수로 하는 나머지를 처리 장치에 의해 계산하는 것에 의해 상기 전자 서명을 생성하는 서명 생성부
를 구비하는 것을 특징으로 하는 서명 생성 장치.
- 제 1 항에 있어서,
상기 서명 생성 장치는 난수 r을 생성하는 난수 생성부를 더 구비하며,
상기 제 1 계산부는 상기 난수 생성부에 의해 생성된 난수 r을 상기 새로운 비밀 정보 r로서 이용하는 것
을 특징으로 하는 서명 생성 장치.
- 제 1 항에 있어서,
상기 제 1 계산부는 상기 연산 C'에서 이용되는 정보를 생성하는 과정에서 계산되는 값을 상기 새로운 비밀 정보 r로서 이용하는 것
을 특징으로 하는 서명 생성 장치.
- 제 1 항에 있어서,
상기 서명 생성 장치는 난수 k를 생성하는 난수 생성부를 더 구비하며,
상기 전자 서명은 EC-Schnorr(Elliptic·Curve·Schnorr) 서명이고,
상기 입력부는, 상기 난수 생성부에 의해 생성된 난수 k와 타원 곡선 상의 생성원 G의 스칼라 곱셈값 P를 계산하고, 상기 전자 서명이 부여되는 대상으로 되는 메시지 M과 상기 스칼라 곱셈값 P의 x 좌표값를 연결하여 해시값으로 변환하고, 상기 해시값을 상기 공개 정보 e로서 입력하고,
상기 서명 생성부는, 상기 제 2 계산부에 의해 행해진 가산 M2의 결과와 상기 판독부에 의해 판독된 비밀 정보 d의 승산 M3을 행하고, 상기 승산 M3의 결과와 상기 난수 생성부에 의해 생성된 난수 k의 가산 M4를 행하고, 상기 가산 M4의 결과를 상기 연산 C'의 결과로서 이용하는 것
을 특징으로 하는 서명 생성 장치.
- 제 4 항에 있어서,
상기 난수 생성부는 상기 난수 k와는 별도로 난수 r을 생성하고,
상기 제 1 계산부는 상기 난수 생성부에 의해 생성된 난수 r을 상기 새로운 비밀 정보 r로서 이용하는 것
을 특징으로 하는 서명 생성 장치.
- 제 4 항에 있어서,
상기 제 1 계산부는 상기 입력부에 의해 계산된 스칼라 곱셈값 P의 x 좌표값과 y 좌표값의 어느 하나의 적어도 일부를 상기 새로운 비밀 정보 r로서 이용하는 것
을 특징으로 하는 서명 생성 장치. - 제 4 항에 있어서,
상기 제 1 계산부는 상기 입력부에 의해 상기 스칼라 곱셈값 P가 계산되는 과정에서 얻어지는 값을 상기 새로운 비밀 정보 r로서 이용하는 것
을 특징으로 하는 서명 생성 장치.
- 제 1 항에 있어서,
상기 서명 생성 장치는 난수 k를 생성하는 난수 생성부를 더 구비하며,
상기 전자 서명은 ECDSA(Elliptic·Curve·Digital·Signature·Algorithm) 서명이고,
상기 입력부는, 상기 난수 생성부에 의해 생성된 난수 k와 타원 곡선 상의 생성원 G의 스칼라 곱셈값 P를 계산하고, 상기 스칼라 곱셈값 P의 x 좌표값을 상기 공개 정보 e로서 입력하고,
상기 서명 생성부는, 상기 제 2 계산부에 의해 행해진 가산 M2의 결과와 상기 판독부에 의해 판독된 비밀 정보 d의 승산 M3을 행하고, 상기 승산 M3의 결과와 상기 전자 서명이 부여되는 대상으로 되는 메시지 M의 해시값 h(M)의 가산 M4를 행하고, 상기 가산 M4의 결과와 상기 난수 생성부에 의해 생성된 난수 k의 역수 k-1의 승산 M5를 행하고, 상기 승산 M5의 결과를 상기 연산 C'의 결과로서 이용하는 것
을 특징으로 하는 서명 생성 장치.
- 제 8 항에 있어서,
상기 난수 생성부는 상기 난수 k와는 별도로 난수 r을 생성하고,
상기 제 1 계산부는 상기 난수 생성부에 의해 생성된 난수 r을 상기 새로운 비밀 정보 r로서 이용하는 것
을 특징으로 하는 서명 생성 장치.
- 제 8 항에 있어서,
상기 제 1 계산부는 상기 입력부에 의해 계산된 스칼라 곱셈값 P의 x 좌표값과 y 좌표값의 어느 하나의 적어도 일부를 상기 새로운 비밀 정보 r로서 이용하는 것
을 특징으로 하는 서명 생성 장치.
- 제 8 항에 있어서,
상기 제 1 계산부는 상기 입력부에 의해 상기 스칼라 곱셈값 P가 계산되는 과정에서 얻어지는 값을 상기 새로운 비밀 정보 r로서 이용하는 것
을 특징으로 하는 서명 생성 장치.
- 공개 정보 e와 비밀 정보 d의 승산을 포함하는 연산 C의 결과에 대해 공개 정보 n을 제수로 하는 나머지를 계산하는 것에 의해 얻어지는 전자 서명을 생성하는 서명 생성 방법에 있어서,
상기 공개 정보 e, n을 입력하고,
상기 비밀 정보 d를 미리 저장하는 기억 장치로부터 상기 비밀 정보 d를 판독하고,
새로운 비밀 정보 r과 상기 입력된 공개 정보 n의 승산 M1을 처리 장치에 의해 행하고,
상기 승산 M1의 결과와 상기 입력된 공개 정보 e의 가산 M2를 처리 장치에 의해 행하고,
상기 연산 C로서, 상기 가산 M2의 결과와 상기 판독된 비밀 정보 d의 승산을 포함하는 연산 C'을 처리 장치에 의해 행하고, 상기 연산 C'의 결과에 대해 상기 입력된 공개 정보 n을 제수로 하는 나머지를 처리 장치에 의해 계산하는 것에 의해 상기 전자 서명을 생성하는 것
을 특징으로 하는 서명 생성 방법.
- 공개 정보 e와 비밀 정보 d의 승산을 포함하는 연산 C의 결과에 대해 공개 정보 n을 제수로 하는 나머지를 계산하는 것에 의해 얻어지는 전자 서명을 생성하는 컴퓨터를,
상기 공개 정보 e, n을 입력하는 입력부와,
상기 비밀 정보 d를 미리 저장하는 기억 장치로부터 상기 비밀 정보 d를 판독하는 판독부와,
새로운 비밀 정보 r과 상기 입력부에 의해 입력된 공개 정보 n의 승산 M1을 처리 장치에 의해 행하는 제 1 계산부와,
상기 제 1 계산부에 의해 행해진 승산 M1의 결과와 상기 입력부에 의해 입력된 공개 정보 e의 가산 M2를 처리 장치에 의해 행하는 제 2 계산부와,
상기 연산 C로서, 상기 제 2 계산부에 의해 행해진 가산 M2의 결과와 상기 판독부에 의해 판독된 비밀 정보 d의 승산을 포함하는 연산 C'을 처리 장치에 의해 행하고, 상기 연산 C'의 결과에 대해 상기 입력부에 의해 입력된 공개 정보 n을 제수로 하는 나머지를 처리 장치에 의해 계산하는 것에 의해 상기 전자 서명을 생성하는 서명 생성부
로서 기능시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
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 |
---|---|
KR20130086639A true KR20130086639A (ko) | 2013-08-02 |
KR101467719B1 KR101467719B1 (ko) | 2014-12-01 |
Family
ID=46313373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020137015322A KR101467719B1 (ko) | 2010-12-24 | 2010-12-24 | 서명 생성 장치 및 서명 생성 방법 및, 컴퓨터 판독 가능한 기록 매체 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9300475B2 (ko) |
EP (1) | EP2657925B1 (ko) |
JP (1) | JP5328993B2 (ko) |
KR (1) | KR101467719B1 (ko) |
CN (1) | CN103270546B (ko) |
WO (1) | WO2012086076A1 (ko) |
Families Citing this family (8)
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 | 삼성에스디에스 주식회사 | 부채널 공격에 안전한 연산 장치 및 방법 |
CN109412813B (zh) * | 2018-09-14 | 2019-08-09 | 北京海泰方圆科技股份有限公司 | 椭圆曲线的签名方法、验签方法和装置 |
KR20200046481A (ko) | 2018-10-24 | 2020-05-07 | 삼성전자주식회사 | 난수 생성기, 이를 포함하는 암호화 장치 및 이의 동작 방법 |
US10748038B1 (en) * | 2019-03-31 | 2020-08-18 | Cortica Ltd. | Efficient calculation of a robust signature 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 |
Family Cites Families (17)
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 | 김지윤 | 빠른 유한체 연산을 이용한 타원곡선 암호화 방법 및 전자서명 방법 |
JP4678968B2 (ja) | 2001-03-13 | 2011-04-27 | 株式会社東芝 | 素数判定装置、方法及びプログラム |
FR2824209B1 (fr) | 2001-04-30 | 2003-08-29 | St Microelectronics Sa | Brouillage d'un calcul mettant en oeuvre une fonction modulaire |
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 |
JP5060556B2 (ja) * | 2007-07-11 | 2012-10-31 | 株式会社東芝 | グループ署名システム、装置及びプログラム |
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 |
WO2010067433A1 (ja) * | 2008-12-11 | 2010-06-17 | 三菱電機株式会社 | 自己認証通信機器、自己認証検証通信機器、機器認証システム、機器認証システムの機器認証方法、自己認証通信プログラムおよび自己認証検証通信プログラム |
JP4837058B2 (ja) * | 2009-03-10 | 2011-12-14 | 株式会社東芝 | 演算装置及びプログラム |
JP5337582B2 (ja) | 2009-06-01 | 2013-11-06 | 株式会社日立製作所 | 正当性が保証されたidの生成方法及び正当性保証rfidタグ |
-
2010
- 2010-12-24 KR KR1020137015322A patent/KR101467719B1/ko active IP Right Grant
- 2010-12-24 WO PCT/JP2010/073422 patent/WO2012086076A1/ja active Application Filing
- 2010-12-24 US US13/824,577 patent/US9300475B2/en not_active Expired - Fee Related
- 2010-12-24 EP EP10861006.4A patent/EP2657925B1/en not_active Not-in-force
- 2010-12-24 JP JP2012549561A patent/JP5328993B2/ja not_active Expired - Fee Related
- 2010-12-24 CN CN201080070890.3A patent/CN103270546B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP5328993B2 (ja) | 2013-10-30 |
EP2657925A4 (en) | 2017-07-05 |
EP2657925A1 (en) | 2013-10-30 |
US20130179691A1 (en) | 2013-07-11 |
EP2657925B1 (en) | 2018-05-16 |
JPWO2012086076A1 (ja) | 2014-05-22 |
US9300475B2 (en) | 2016-03-29 |
KR101467719B1 (ko) | 2014-12-01 |
CN103270546B (zh) | 2015-09-16 |
CN103270546A (zh) | 2013-08-28 |
WO2012086076A1 (ja) | 2012-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101467719B1 (ko) | 서명 생성 장치 및 서명 생성 방법 및, 컴퓨터 판독 가능한 기록 매체 | |
JP5697180B2 (ja) | ホワイトボックス攻撃から暗号化資産を保護するためのシステムと方法 | |
TWI462010B (zh) | 使用橢圓曲線上一點之表現法改變之編譯方法及系統 | |
TWI686722B (zh) | 用於加密操作之指數分拆技術 | |
EP3930252A1 (en) | Countermeasures for side-channel attacks on protected sign and key exchange operations | |
Courtois et al. | Speed optimizations in Bitcoin key recovery attacks | |
JP5977996B2 (ja) | サイドチャンネル攻撃に対する抵抗力のあるモジュラー累乗法及び装置 | |
CN112887081A (zh) | 基于sm2的签名验签方法、装置及系统 | |
Hanley et al. | Using templates to distinguish multiplications from squaring operations | |
JP4351987B2 (ja) | モンゴメリ変換装置、演算装置、icカード、暗号装置、復号装置及びプログラム | |
US6609141B1 (en) | Method of performing modular inversion | |
Shankar et al. | Cryptography with elliptic curves | |
Oonishi et al. | Improved CRT-RSA secret key recovery method from sliding window leakage | |
Nikooghadam et al. | An Efficient Blind Signature Scheme Based on the Elliptic Curve Discrete Logarithm Problem. | |
KR100954844B1 (ko) | 오류 주입 공격에 안전한 crt-rsa 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체 | |
KR100953716B1 (ko) | Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체 | |
KR101112570B1 (ko) | 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체 | |
WO2011033642A1 (ja) | 署名生成装置及び署名検証装置 | |
Schinianakis et al. | RNS-Based Public-Key Cryptography (RSA and ECC) | |
Kim et al. | Decryption speed up of ElGamal with composite modulus | |
Boscher et al. | Fault resistant RSA signatures: Chinese remaindering in both directions | |
US10903975B2 (en) | Apparatus and method for performing operation being secure against side channel attack | |
KR102019369B1 (ko) | 단일파형공격을 차단하기 위한 타원곡선 암호화 장치 및 방법 | |
Kim | New fault attacks using Jacobi symbol and application to regular right-to-left algorithms | |
Adamoudis et al. | Attacking (EC) DSA scheme with ephemeral keys sharing specific bits |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20171107 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20181101 Year of fee payment: 5 |