KR101712850B1 - 화이트 박스로부터 암호화설비를 보호하는 시스템 및 그 방법 - Google Patents

화이트 박스로부터 암호화설비를 보호하는 시스템 및 그 방법 Download PDF

Info

Publication number
KR101712850B1
KR101712850B1 KR1020127026744A KR20127026744A KR101712850B1 KR 101712850 B1 KR101712850 B1 KR 101712850B1 KR 1020127026744 A KR1020127026744 A KR 1020127026744A KR 20127026744 A KR20127026744 A KR 20127026744A KR 101712850 B1 KR101712850 B1 KR 101712850B1
Authority
KR
South Korea
Prior art keywords
signature
integer
private key
transformed
operand
Prior art date
Application number
KR1020127026744A
Other languages
English (en)
Other versions
KR20130024897A (ko
Inventor
제임스 뮤어
지아위안 수이
다니엘 엘리 머독
필립 앨런 에이젠
Original Assignee
이르데토 비.브이.
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 이르데토 비.브이. filed Critical 이르데토 비.브이.
Publication of KR20130024897A publication Critical patent/KR20130024897A/ko
Application granted granted Critical
Publication of KR101712850B1 publication Critical patent/KR101712850B1/ko

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/002Countermeasures against attacks on cryptographic mechanisms
    • 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/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)

Abstract

화이트 박스 공격자들에 대항하는 전자서명의 생성(DSG) 프로세스를 실행하는 방법과 시스템이 제공된다. 특별히 선별된 데이터를 입력과 출력, 알고리즘의 내부적인 파라미터들로 전환하는데 적용된다. 특히, 서명자의 개인키는 보호된 실행에서는 분명하게 나타나지 않는다. 새로운 화이트 박스의 실행은 기존의 실행에 의해 설정된 서명들과 호환되는 서명을 생성한다; 따라서, 해결책은 상호운영성을 용이하게 하고 기존의 수행에 대한 대체품으로서 사용될 수 있게 하는 것이다. 특히, 개인키(d)와 전자 서명 생성 프로세스의 도메인 파라미터 생성기(보통 G 또는 g로 표시되는)로 전환에 있어서, 본 발명의 실시예는 실제로는 개인키(d)가 한 번도 사용된 적이 없는데도, 마치 개인키(d)가 사용된 것처럼 인증자에게 나타나는 서명된 메시지를 생성할 수 있다. 이로써 상대편이 마치 개인키(d)가 실제로 사용되지 않는 것처럼 인식할 수 있게 된다. 나아가 실행예는 상대편이 전자서명을 생성하는 프로세스를 관찰하여 개인키(d)를 추정하는 것을 훨씬 힘들게 만드는 부가적인 보호를 포함한다.

Description

화이트 박스로부터 암호화설비를 보호하는 시스템 및 그 방법{SYSTEM AND METHOD FOR PROTECTING CRYPTOGRAPHIC ASSETS FROM A WHITE-BOX ATTACK}
본 발명은 암호화에 관한 것으로서, 보다 상세하게는, 개인키 및 다른 비밀 파라미터들과 같은 암호화설비를 보호하는 시스템 및 그 방법에 관한 것이다.
전자서명 알고리즘(Digital Signature Algorithm; DSA) 및 고성능 타원곡선 암호 알고리즘(Elliptic Curve Digital Signature Algorithm; ECDSA)은 미국 상무부 표준 에프아이피에스 피유비(FIPS PUB) 186-3 및 금융서비스에 관한 미국 국립표준 에이엔에스(ANS) X9.62-2005에 각 대응되며, 그 전체를 선행기술로서 포함한다.
이러한 전자서명 알고리즘들은 디지털 메시지에서의 전자서명의 설정(creation)과 인증을 할 수 있게 하기 위해 공개키 암호를 사용한다. 전자서명 알고리즘(Digital Signature Algorithm; DSA)과 고성능 타원곡선 암호 알고리즘(Elliptic Curve Digital Signature Algorithm; ECDSA)으로 서명하는 것은 개인키와 공개키를 포함한다. 개인키는 전자서명을 만드는 데 사용되고(즉, 메시지에 서명하기 위하여) 공개키는 그 서명을 인증하기 위하여 제삼자들에 의해 사용된다.
전자서명 알고리즘(Digital Signature Algorithm; DSA)과 고성능 타원곡선 암호 알고리즘(Elliptic Curve Digital Signature Algorithm; ECDSA)은 널리 이용되고 있으며(예를 들어, ssh에서, SSL/TLS, 캐나다 우편의 전자 소인, DTCP, AACS,MS-DRM), 데이터 발신 인증, 데이터 완전성과 부인봉쇄(non-repudiation)를 제공하는 데 사용된다. 하지만, DSA와 ECDSA 서명들은 개인키가 비공개로 남아있는 다는 것(예를 들면, 개인 키는 공격자에게는 유출되지 않는다)을 전제로 보장(assurances)된다.
아래 참증에 의해 부가적인 배경 지식들이 제공될 것이고, 아래 참증들은 선행기술로서 포함된다.
[1] 금융서비스에 관한 미국 국립 표준 ANS X9.62-2005, 금융 서비스 산업에 관한 공개 키 암호기술, 고성능 타원곡선 알고리즘(ECDSA), 2005년 11월 16일.
[2] 디 한커슨(D. Hankerson), 에이 메네제스(A. Menezes), 에스 반스톤(S. Vanstone), 타원곡선 암호기술에 관한 안내, 2003.
[3] 정보기술연구소(Information Technology Laboratory), 국립 표준 및 기술 기관(National Institute of Standards and Technology), FIPS PUB 186-3, 디시털 서명 표준(Digital Signalture Standard; DSS), 2009년 6월.
[4] 효과적인 암호기술의 표준(Standards for Efficient Cryptography), SEC 1: 타원곡선 암호기술(Elliptic Curve Cryptography), 버전 2.0, 2009년 5월 21일.
[5] 국가안전보장국(National Security Agency), 엔에스에이 스위이트 비 암호기술(NSA Suite B Cryptography), http://www.nsa.gov/ia/programs/suiteb_cryptography/
[6] 디지털 전송 컨텐츠 보호 기준(Digital Transmission Content Protection Specification; DTCP Specification), 제1권(공개 버전), 개정 1.51, 2007년 10월 1일.
고성능 타원곡선 암호 알고리즘(Elliptic Curve Digital Signature Algorithm; ECDSA)과 전자서명 알고리즘(Digital Signature Algorithm; DSA)의 서명 생성 작업은 보통 특정 컴퓨터 장치에 대해 작동하는 컴퓨터 소프트웨어에 의해 수행된다(예를 들면, 휴대폰, 셋업박스, 스마트 카드 등). 많은 어플리케이션들(applications)에서 이러한 작업은 서명자의 통제 밖의 환경에서 발생한다. 예를 들어 다른 사람이 있는 데서 서명이 생성될 수 있다(예를 들면, 상대편이 서명이 이미 입력된(computed) 상태의 장치를 발견할 수도 있다).
오직 서명 생성의 입력과 출력을 분석하는 상대편은 블랙박스와 같은 실행을 효과적으로 처리한다. 전자서명 알고리즘(Digital Signature Algorithm; DSA)과 고성능 타원곡선 암호 알고리즘(Elliptic Curve Digital Signature Algorithm; ECDSA)은 블랙박스 공격자들에 잘 견디도록 구성되었다. 그러나 때로는 사용 가능한 정보가 단순한 입력과 출력되는 정보보다 훨씬 더 많은 경우가 발생할 수 있다. 장치 전력 소비, 실행 시간, 전자기 발산, 데이터 디폴트에 대한 응답과 같은 부가 정보가 공격자에게 소프트웨어의 실행에 대한 단서를 줄 수 있다; 이로 인해 개인키가 유출되어 서명스킴(signature scheme)을 위태롭게 할 수 있다는 것을 보여준다.
화이트 박스 공격에 저항하는 훨씬 더 강력한 보안 모델이 요구된다. 화이트 박스 공격자들은 서명을 입력(computes)하는 소프트웨어의 수행을 모두 볼 수 있다. 화이트 박스 공격자에 대한 저항은 매우 중요한 목표이지만, DSA 또는 ECDSA의 경우 화이트 박스 공격에 대한 방어기능은 아직까지 고안된 적이 없다.
그 문제의 구체적인 해결책으로서, DTCP프로토콜이 오디오/비디오 콘텐트를 보호하는데 이용될 수 있다. 다음 인용은 위 인용참증 [6]에서 정의된 것으로서 DTCP에서 인용되었다.
4.3 컴플라이언트 기기(compliant device)의 제조
완전한 인증을 보조하는 모든 대응기기들은 (브랜드와 모델에 관계없이, 각각의 아이템의 제조에 있어서) DTLA에 의해 생성된 유니크한 Device ID와 EC-DSA 개인키/공개키가 배치될 것이다. [개인키]는 반드시 노출을 막기 위한 방편으로서 기기 내에 저장되어야 한다. 대응 기기는 역시 DTLA에 의한 기기 인증서(XCERT)가 부여되어야 한다. 이 인증서는 대응 기기 내에 저장되고 인증 프로세스 동안 사용된다. 또한, 인증기기는 다른 상수들과 암호화 프로토콜을 수행하는 데 필수 키들을 저장하는데 필요하다.
상술한 바와 같이 DTCP 컴플라이언트 기기(compliant device)들은 반드시 그들의 고성능 타원곡선 암호 알고리즘(Elliptic Curve Digital Signature Algorithm; ECDSA) 개인키들을 보호하기 위한 조치를 취하여야 한다. 하지만, 그런 기기들은 ECDSA서명을 설정하는 완전한 인증 프로토콜(Full Authentication protocol) 프로세스를 실행하는 동안 그들의 개인키를 반드시 사용하여야 한다. 암호화 상태에서는 단순히 개인키을 저장함으로써 개인키가 보호되는 것처럼 보이지만, 사실상의 서명 작업을 수행하기 위해서는, 화이트 박스 공격자가 개인키를 추출할 수 있기 때문에 개인키가 사용되기 위해서는 먼저 해독되어야 할 것이다. 이런 문제를 완화하기 위하여 필요한 것은 개인키를 비밀로 하여, 공격자들에게 개인키의 유출되지 않게 하여 전자 서명이 수행되도록 하는 보호 프로세스이다.
본 발명의 목적은 앞에서 설명한 전자서명 프로세스의 약점을 제거하거나 완화하려는 것이다.
본 발명의 목적은 종래 전자서명 프로세스의 적어도 하나의 단점을 제거하거나 완화하려는 것이다. 특히, 본 발명의 목적은 작동중인 전자서명 프로세스를 볼 수 있는 상대편으로부터 서명자의 키를 더욱 안전하게 보호하는 프로세스을 개발하는데 있다.
따라서 본 발명의 일 측면에 따르면, 화이트 박스 공격자들에 대항하는 전자서명의 생성(DSG) 프로세스를 실행하는 방법과 시스템이 제공된다. 특별히 선별된 데이터를 입력과 출력, 알고리즘의 내부적인 파라미터들로 전환하는데 적용된다. 특히, 서명자의 개인키는 보호된 실행에서는 분명하게 나타나지 않는다. 새로운 화이트 박스의 실행은 기존의 실행에 의해 설정된 서명들과 호환되는 서명을 생성한다; 따라서, 해결책은 상호운영성을 용이하게 하고 기존의 수행에 대한 대체품으로서 사용될 수 있게 하는 것이다. 특히, 개인키(d)와 전자 서명 생성 프로세스의 도메인 파라미터 생성기(보통 G 또는 g로 표시되는)로 전환에 있어서, 본 발명의 실시예는 실제로는 개인키(d)가 한 번도 사용된 적이 없는데도, 마치 개인키(d)가 사용된 것처럼 인증자에게 나타나는 서명된 메시지를 생성할 수 있다. 이로써 상대편이 마치 개인키(d)가 실제로 사용되지 않는 것처럼 인식할 수 있게 된다. 나아가 실행예는 상대편이 전자서명을 생성하는 프로세스를 관찰하여 개인키(d)를 추정하는 것을 훨씬 힘들게 만드는 부가적인 보호를 포함한다.
본 발명의 일측면은, 무작위 정수(random integer)(
Figure 112012083029010-pct00001
)를 기초로 개인키(d)를 변환함으로써, 변환되는 생성기(예를 들면,
Figure 112012083029010-pct00002
또는
Figure 112012083029010-pct00003
)및 무작위 정수(
Figure 112012083029010-pct00004
)자체와 병행하여 쓰일 수 있는, 호환되는 서명된 메시지를 만들기 위해 변환된 키(
Figure 112012083029010-pct00005
)를 생성하는 방법과 시스템을 제공하는 것이다. 이러한 측면을 따르면, 상기 변환된 생성기는 상기 생생기와 f모듈로 n의 역(inverse of
Figure 112012083029010-pct00006
modulo n)을 기초로 생성된다. 마치 개인키(d)와 상기 생성기가 실제로 상기 DSG 프로세스에서 사용되는 것처럼 공개키(Q)를 이용한 상기 인증 프로세스에 의해 인증될 수 있는 전자서명을 생성하는 상기 DSG프로세스에서, DSG는 상기 생성기(G 또는 g)와 개인키(d)를 대신하여 무작위 정수(
Figure 112012083029010-pct00007
)를 포함하여, 상기 변환 발전기(예를 들어,
Figure 112012083029010-pct00008
또는
Figure 112012083029010-pct00009
)와 호환되는 서명된 메시지를 만들기 위해 변환된 키(
Figure 112012083029010-pct00010
)를 사용하기 위하여 약간 수정된다.
대응되는 암호화 공개 키(Q)를 가지며 컴퓨터장치(A)에 사용되어 저장되는 암호화 비밀 키(d)를 이용하여 암호전자서명을 생성(Cryptographic Digital Signature Generation; DSG)하는 과정에서 컴퓨터장치(A)를 볼 수 있는 상대편(B)으로부터 암호화 비밀 키(d)를 보호하는 컴퓨터 실행 방법(암호화 공개 키(Q), 암호화 비밀 키(d)는 n의 오더(order)를 갖는 생성기와 연동되며, DSG과정은 Q를 이용하는 서명인증과정이다).
a) 1과 n-1 사이에서 무작위 정수(
Figure 112012083029010-pct00011
)선택하는 단계;
b) 상기 생성기와 무작위 정수(
Figure 112012083029010-pct00012
) 모듈로 n의 역(inverse of
Figure 112012083029010-pct00013
modulo n)을 기초로 변환된 생성기를 생성하는 단계;
c) 무작위정수(
Figure 112012083029010-pct00014
)를 기초로 개인키(d)를 변환함으로써 변환된 키(
Figure 112012083029010-pct00015
)를 생성하는 단계;및
d) 개인키(d)와 상기 생성기가 상기 DSG 프로세스에서 실제로 사용되는 것처럼, 암호화 공개키(Q)를 이용한 상기 인증 프로세스에 의하여 인증되는 전자 서명을 생산하기 위한 상기 DSG 프로세스에서, 상기 생성기와 개인키(d)를 대신하여 무작위 정수(
Figure 112012083029010-pct00016
)를 포함하여, 상기 변환된 생성기와 변환된 키(
Figure 112012083029010-pct00017
)를 이용하는 단계.
대응되는 암호화 공개 키(Q)를 가지며 컴퓨터장치(A)에 사용되어 저장되는 암호화 비밀 키(d)를 이용하여 암호전자서명을 생성(Cryptographic Digital Signature Generation; DSG)하는 과정에서 컴퓨터장치(A)를 볼 수 있는 상대편(B)로부터 암호화 비밀 키(d)를 보호하는 컴퓨터 실행 방법(Q, d는 n의 오더(order)를 갖는 생성기와 연동되며, DSG과정은 Q를 이용하는 서명인증과정이다).
a) 1과 n-1 사이의 무작위정수(
Figure 112012083029010-pct00018
)를 선택하는 단계;
b) n의 오더(order)를 가지며 Q, d와 연동되는 생성기 및 n을
Figure 112012083029010-pct00019
로 나눈 나머지(
Figure 112012083029010-pct00020
modulo n)의 인버스(inverse)에 기초하여 변환된 생성기 생성하는 단계;
c)
Figure 112012083029010-pct00021
에 기초하여 d를 변환하여 변환키(
Figure 112012083029010-pct00022
)를 생성하는 단계;
d) 마치 d와 상기 생성기가 실제로 DSG(Digital Signature Generation)프로세스에서 사용되는 것처럼 Q를 이용한 상기 인증 프로세스에 의해 인증될 수 있는 전자서명을 생성하기 위한 상기 DSG프로세스에서 컴퓨터장치(A)에 의하여 실행될 때, 상기 생성기와 변환키(
Figure 112012083029010-pct00023
)를 이용하여, 컴퓨터장치(A)가 상기 생성기와 d를 대신해
Figure 112012083029010-pct00024
를 포함하여 상기 변환된 생성기와 변환키(
Figure 112012083029010-pct00025
)를 이용하게 하는 기계 실행 가능 명령(machine readable instruction)을 저장하는 기계판독가능 매체(machine readable medium)가 구현되는 컴퓨터 프로그램 결과물을 생성하는 단계.
나아가 본 발명은, 컴퓨터 판독 가능 명령(computer readable instruction)을 저장하는 유형의 컴퓨터 판독 가능 매체(computer readable medium)를 포함하는 컴퓨터 프로그램 제품이다. 이때, 컴퓨터 판독 가능 명령(computer readable instruction)은 대응되는 암호화 공개 파라미터(Q)를 가지고 컴퓨터장치(A)에 사용되어 저장되는 암호화 비밀 키(d)를 이용하여 암호화 프로세스를 실행하는 과정에서 컴퓨터장치(A)를 볼 수 있는 상대편(B)로부터 암호화 비밀 파라미터(d)를 보호하여 컴퓨터를 실행하게 한다(Q, d는 n의 오더를 갖는(order n)의 생성기와 연동된다).
a) 1과 n-1 사이에서 무작위 정수(
Figure 112012083029010-pct00026
)를 선택하는 명령;
b)
Figure 112012083029010-pct00027
모드 n의 인버스(inverse of
Figure 112012083029010-pct00028
mod n)을 기초로 한 상기 생성기의 변환된 값을 계산하기 위한 명령;
c)
Figure 112012083029010-pct00029
를 토대로 변환 값(
Figure 112012083029010-pct00030
)를 계산하기 위한 명령;
d) 마치 암호화 비밀키(d)와 상기 생성기는 실제로 상기 암호화 프로세스에서 사용되는 것처럼 Q를 이용한 상기 대체 프로세스에 의하여 인증되는 전자 서명을 생성하기 위하여 무작위 정수(
Figure 112012083029010-pct00031
), 상기 변환된 생성기, 변환 값(
Figure 112012083029010-pct00032
)을 사용하는 변환된 암호화 프로세스에서 차후에 사용하기 위해 보안된 상태에서 무작위 정수(
Figure 112012083029010-pct00033
), 상기 변환된 생성기, 변환(
Figure 112012083029010-pct00034
)값을 저장하는 단계.
본 발명은 컴퓨터 판독 가능 명령(computer readable instruction)을 저장하는 유형의 컴퓨터 판독 가능 매체(computer readable medium)를 포함하는 컴퓨터 제품을 제공한다. 컴퓨터 장치(A)에 의해 상기 컴퓨터 제품이 실행될 때, 상기 컴퓨터 장치(A)는 서명(r,s)를 인증하는 표준ECDSA전자 서명 인증 과정을 통하여 전자 서명(r,s)를 메시지(M)상에 생성한다. 이 때, 대응되는 암호화 공개키(Q)를 가지는 개인키(d) 보유자(Q와 d는 오더 n의 생성기와 연동된다)로부터 고안된 상기 전자 서명(r,s)는 상기 컴퓨터 판독가능 명령이 실행되는 동안, 컴퓨터 장치(A)를 볼 수 있는 상대편으로부터 개인키(d)를 보호한다. 상기 서명은, 상기 컴퓨터 판독 가능 명령에 있어서,
i) [1,n-1]의 사이에서 무작위 정수(
Figure 112012083029010-pct00035
)를 선택하는 명령
ii)
Figure 112012083029010-pct00036
의 결과를 point R로 치환하는 명령;(여기에서,
Figure 112012083029010-pct00037
는 타원형곡선포인트(
Figure 112012083029010-pct00038
) 자체를
Figure 112012083029010-pct00039
번 더한 것을 의미한다.
Figure 112012083029010-pct00040
는 상기 생성기 G를 기초로 하여 먼저 선택된 1과 n-1 사이의 무작위 정수(
Figure 112012083029010-pct00041
)를 이용한 상기 생성기 G를 변환한 것이다).
iii)
Figure 112012083029010-pct00042
가 R의 x co-orinate일 때
Figure 112012083029010-pct00043
을 r로 치환하는 명령;
iv) 만약 r=0이면 이 과정을 다시 실행하는 명령; r=0이 아니라면;
v) 메시지 상의 해쉬 방정식의 값을 e로 치환하는 명령;
vi)
Figure 112012083029010-pct00044
의 값을 계산하여 이 값을 s로 치환하는 명령(여기에서
Figure 112012083029010-pct00045
Figure 112012083029010-pct00046
에 기초한 d의 변환값을 먼저 결정된 값이다).
vii) s=0이면 이 과정을 다시 실행하는 명령, s=o이 아니라면;
v) 서명 (r,s)를 포함하는 전자 서명된 메시지(M)를 인증하기 위하여 제3자에게 보내는 명령; 및
상기 메시지(M) 상의 상기 서명(r, s)는, 실제 개인키(d)가 사용되지 않아서 실행 중에 메모리에 로드(load)되지 않는 경우를 제외하고, 개인키(d)를 사용한 표준 ECDSA 프로세스에 의해 생성되는 것과 동일한 것을 특징으로 한다. 나아가, 상술한 대로, 또다른 측면에서, 컴퓨터 프로그램의 결과물은 전자서명 알고리즘(Digital Signature Algorithm; DSA)에 적용될 수 있다.
더 나아가, 본 발명품은 컴퓨터 장치(A)에 의하여 실행될 때, 상기 컴퓨터 장치로 하여금 서명을 하기 위하여 오프라인의 변환된 값을 사용하여 메시지(M) 상에서 전자서명(r, s)를 생성하도록 하는, 컴퓨터 판독가능 명령(computer readable instruction)을 저장하는, 유형의 컴퓨터 판독 가능 매체(computer readable medium)를 제공한다.
본 발명의 다른 측면들과 형태들은 본 발명의 기술 분야에서 통상의 지식을 가진 자들에게 아래 첨부되는 수치들과 더불어 본 발명의 특정한 실시예에 대한 설명에 따라 구현될 것이 자명하다.
상기 도면들은 관련된 설명과 함께 본 발명의 일부 원리들을 설명하는 데 기여하도록 예시적인 실시예들을 나타낸다. 첨부된 도면들에 있어서,
도 1은 전자 서명이 발생하는 포괄적인 프로세스를 나타내는 순서도이고,
도 2는 전자 서명의 포괄적인 프로세스를 나타내는 순서도이며,
도 3은 고성능 타원곡선 암호 알고리즘(Elliptic Curve Digital Signature Algorithm; ECDSA) 서명 발생의 단계를 나타내는 순서도이고,
도 4는 본 발명품의 실행예에 따라서 예비적인 프로세스의 단계를 나타내는 순서도이고,
도 5는 본 발명품의 실시예에 따른 ECDSA 서명의 발생을 위한 프로세스의 단계를 나타내는 순서도이고,
도 6은 본 발명품의 실시예에 따른 ECDSA와 같은 서명의 생성 과정을 더욱 탄탄하게 만들기 위한 프로세스를 만들기 위한 단계를 나타내는 순서도이며,
도 7은 본 발명품의 실시예가 수행될 수 있게 하는 컴퓨터 시스템의 단순화 된 예를 나타내는 부분 도면이다.
본 발명은 전자 서명(Digital Signature Generation) 프로세스에서 개인키들, 비밀 파라미터들(secret parameters) 등을 포함하는 암호화 자산(cryptographic asset)들을 보호하기 위한 방법과 시스템을 구성한다.
도 1은 본 발명의 실시예에 따라 전자 서명(Digital Signature; S)을 생성하기 위하여 전자 서명 생성 알고리즘(104)를 이용하여 개인키(d)로 서명된 메시지(m)에서의 일반 전자서명 생성 프로세스(Digital Signature Generation Process)를 나타낸다.
도 2에서 도시되는 바와 같이, 메시지(m)에 전자 서명(S)을 할 때 개인키(d)를 보유한 자에 의해 서명되는 것을 목적으로 하는 일반 전자 서명 인증 프로세스는 서명 인증 알고리즘(206)을 사용하는 개인키 보유자의 공개키(Q)를 이용하여 확인된다. 이러한 서명 인증 프로세스의 이점은 누구나 서명을 확인하기 위하여 공개키(Q)를 사용할 수 있고, 개인키(d) 보유에 의해서 실제로 서명되었는지 여부에 따라 서명(208)이 승낙되거나 거절될 수 있다는 점이다.
본 발명품의 일 측면은, 기존의 인증 프로세스와 호환이 되는 개인키(d)를 보호하여, 전자서명(S)을 생성할 수 있는 방법과 시스템을 제공한다는 것이다. 다시 말하면, 본 발명품의 실시예는 서명 생성 프로세스를 관찰하여 개인키(d)를 얻으려고 하는 상대편(B)의 앞에서 프로세스(206)의 인증자(verifier)를 변경하라는 요구 없이 상기 프로세스(206)에 의해 확인될 수 있는 전자서명(S)을 컴퓨터 장치(A)에 생성하는 것이다.
본 발명품의 실시예에 따라 DSA 또는 ECDSA 서명 생성의 실행을 화이트 박스 공격자들에 대항하는 서명 생성으로 변경하는 것을 하술하고자 한다.
서명을 생성할 때 기존의 보호되지 않는 실행(예를 들어, 화이트 박스 공격자들에게 취약한 실행)에는 약한(smooth) 이라는 단어를 사용하고, 본 실시예에 따라 보호되는 실행을 나타낼 때는 강력한(robust) 이라는 단어를 사용할 것이다.
아래의 참증 [2]에서 제시된 유사한 기호를 이용하여 고성능 타원 곡선 암호(Elliptic Curve Cryptography; ECC)와 관계되는 용어와 기호를 정의한다;
Figure 112012083029010-pct00047

약한 ECDSA ( Smooth ECDSA )
아래 ANSX9. 62[1]에서는, 여기에서는 보호되지 않는 고성능 타원곡선 암호 알고리즘(Elliptic Curve Digital Signature Algorithm; ECDSA) 서명 생성 작동에 대하여 기술될 것이다.
ECDSA를 사용하기 전에, 특정한 타원 곡선에서, 암호화 해쉬 함수(cytograpgic hash fuction; H) 및 생성기 포인트(generator point; G)를 선택하여야 한다; 이러한 정보(종종 도메인 파라미터로서 언급되는)는 일반적으로 비밀이 아닌 것으로 분류된다.
아래는 ECDSA를 이용하여 메시지에 서명하는 기존의(예를 들어, Smooth) 프로세스를 나타낸다.
Figure 112012083029010-pct00048

고성능 타원 곡선 연산은 상기 포인트(R)을 계산하기 위하여 단계(step 2)에서만 사용된다; 단계(step 3)와 단계(step 5)에서의 작업은 일반적인 모듈로 n(modulo n)의 연산이다. 개인키(d)는 단계(step 5)에서만 사용된다.
상기 과정은 도 3에 도시되어 있다. 상술된 단계는 제시된 도면에서의 블록(304)로 분류된다. 상술된 단계는 제시된 도면에서 블록(306)으로 분류된다. G는 타원형 곡선의 포인트로서, 단계(step 2)에서는 정수의 곱셈을 포함하지 않고 타원형 곡선 곱셈은 포함하여 본 발명의 기술 분야에서 지식을 가진 자가 쉽게 할 수 있음이 자명하다. 단계(step 2)에서 R은(
Figure 112012083029010-pct00049
로 표시되는) G가 k번 더해질 때의 결과의 포인트로 치환되고,
Figure 112012083029010-pct00050
은 여기에서 타원형 곡선 곱셈의 유형으로 표시된다. 상술한 단계(step 3)는 블록(308)과 결정(310)으로 분류되고,
Figure 112012083029010-pct00051
는 R의 x co-ordinate이고, r은 0이 아닌 것으로 가정하여, r=0이면 프로세스가 다시 단계(step 1)로 돌아가는 상황에서
Figure 112012083029010-pct00052
의 결과가 r로 치환되는 것을 포함한다. 블록(312)의 도 3에서, 단계(step 4)는 해쉬 함수가 메시지에 적용될 때의 결과 값 e로 치환하는 것을 포함한다; 해쉬 함수의 메시지에서의 적용은 H(M)으로 표시된다. 상술한 단계(step 5)는 블록(314)와 결정(316)으로 분류되고 서명 S=(r,s)의 아웃풋(318)을 나오게 하는
Figure 112012083029010-pct00053
n의 결과를 s값으로 치환하는 것을 포함한다.
상술한 서명 생성 프로세스 중에서 두 가지 보호되어야 하는 매우 민감한 값들이 있다.
1. 개인키(d)
2. 메시지 당 비밀(per-message secret; k)
상기 개인키(d)는 보호되어야 함이 명백하다. 그러나 만약 k의 값이 유출된다면, 상대편은 메시지 당 비밀(k)값으로부터 개인키(d)값을 얻을 수 있다. 해쉬 함수(Hash function; H)에 따르면, e는 메시지(M)로부터 결정된다. 따라서 만약 상대편이 k를 얻게 된다면, 상대편은 아래와 같은 방정식 모듈로 n(modulo n)을 풂으로써 메시지(M)상의 서명 (r,s)로부터 개인키를 얻을 수 있다;
Figure 112012083029010-pct00054

여기에서는 미지수(d)가 하나인 1차방정식을 가진다. 따라서, 미지수(d)의 값을 구할 수 있게 되어 잠재적인 보안 문제가 생기게 된다.
따라서 기존의 전자서명생성(Digital Signature Generation; DSG) 프로세스를 실행하는 컴퓨터 장치(A)를 관찰하는 상대편(B)은 무작위 추출법에 의한 숫자 생성기(random number generator)를 불러내어 k값을 정하도록 하여 개인키(d)를 쉽게 얻을 수 있다. 그렇지 않으면, 상대편(B)은 kG를 계산하여 k를 얻을 수 있도록 장치(A)에서 실행되는 명령을 발견할 수 있을 것이다.
강력한 ECDSA ( Robust ECDSA )
본 명세서에서 기술하는 실시예들은, 고성능 타원곡선 암호 알고리즘(Elliptic Curve Digital Signature Algorithm; ECDSA) 서명 생성을 잘 수행하도록 하는 프로세스에 대한 것이다.
실시예에 따라, 상대편 B에 의해 발견되지 않는 방식으로, 예를 들어 오프라인 셋업 단계에서, 예비프로세스를 수행한다. 이 예비 프로세스는 [1,n-1]의 간격에서 비밀번호(secret number;
Figure 112012083029010-pct00055
)를 정하는 것을 포함한다. 비밀번호(
Figure 112012083029010-pct00056
)는 개인키 (d)를 보호하기 위해 사용될 것이다. 실시예에 따라, 두 가지 변환 프로세스가 다음과 같은 값을 가지는 변환(또는 모호한) 키와 변환(또는 모호한) 생성기를 생성하기 위하여 적용된다(두 가지 변환 프로세스 모두
Figure 112012083029010-pct00057
와 연동된다.):
Figure 112012083029010-pct00058

Figure 112012083029010-pct00059
Figure 112012083029010-pct00060
는 즉시 오프라인에서 비밀번호(
Figure 112012083029010-pct00061
)를 선정하는 데 작동된다.
도 5는 본 발명의 실시예에 따른 예비 프로세스를 나타낸다. 도 4에서 인풋(inputs)은 알려진 생성기, 이 경우에 있어서는 타원곡선 포인트(G)와 개인키(d)를 나타내는 순서도이다. 상기의 프로세스는 [1,n-1]의 사이에서 무작위 정수(
Figure 112012083029010-pct00062
)를 선택함으로써(504) 시작된다. 변환된
Figure 112012083029010-pct00063
는 모듈로 n의 인버스(inverse of modulo n;
Figure 112012083029010-pct00064
으로 표시된다)를 계산하여, 타원형 곡선인
Figure 112012083029010-pct00065
Figure 112012083029010-pct00066
를 곱하여 결정한다(506). 단계(506)에서, 변환(또는 모호한)키 d는
Figure 112012083029010-pct00067
mod n의 값으로 부여된다. 이때 아웃풋(outputs)은 무작위 정수(
Figure 112012083029010-pct00068
), 변환키
Figure 112012083029010-pct00069
와 변환된
Figure 112012083029010-pct00070
가 된다. 무작위 정수 (
Figure 112012083029010-pct00071
), 변환키
Figure 112012083029010-pct00072
, 변환된
Figure 112012083029010-pct00073
의 세 값들은 후술하는 바와 같이, 강력한 ECDSA(Robust ECDSA) 서명 생성 프로세스의 실험예가 된다.
본 발명의 예시적인 실시예에 따라 아래에서는 강력한 서명 생성의 기본 단계를 나타낸다:
Figure 112012083029010-pct00074

위에서 살펴본 바와 같이 강력한 고성능 타원곡선 암호 알고리즘(Elliptic Curve Digital Signature Algorithm; ECDSA) 서명 생성 프로세스를 포함하는 실시예는 생성기(G)와 d를 대신하여 단계(step 5)에서
Figure 112012083029010-pct00075
와 결합하여, 마치 d와 생성기(G)가 ECDSA 서명 생성 프로세스에서 실제로 사용되는 것처럼, 상기 ECDSA 서명 생성 프로세스에서 Q를 이용한 기존의 ECDSA 인증 프로세스에 의해 확인될 수 있는 전자서명 S=(r,s)를 생성하도록 하여, 상기 변환된 생성기(
Figure 112012083029010-pct00076
)와
Figure 112012083029010-pct00077
를 이용한다. 요약하면, 단계(Step 5)에서
Figure 112012083029010-pct00078
는 e를 ef로 치환함으로써 프로세스에 통합된다. 이러한 방식으로 단계(Step 5)에서
Figure 112012083029010-pct00079
를 이용함으로써 --f는 오프라인에서
Figure 112012083029010-pct00080
Figure 112012083029010-pct00081
를 생성하는 상기 변환에 사용됨을 일컫는다-- 상기 서명의 결과는 기존의 프로세스에 의해 만들어진 것과 완전히 호환된다.
도 5는 본 발명의 실시예에 따른 상기 프로세스를 나타내는 순서도이다. 프로세스 700에서의 단계(step 1)에서, 상술한 대로, 도면에서 블록(604)으로 분류된다. 상술한 단계(step 2)는 도면에서 블록(606)으로 분류된다. 단계(step 2)가 정수들의 곱셈을 포함하지 않고,
Figure 112012083029010-pct00082
가 곡선의 포인트이기 때문에 타원 곡선 곱셈을 포함한다는 것은 이 분야에 지식을 가진 자에게는 자명하다. 따라서 R은
Figure 112012083029010-pct00083
자체가
Figure 112012083029010-pct00084
번 더해질 때의의 결과로서의 포인트로 정해진다. 상술한 단계(step 3)은 블록(608)과 결정(610)으로 분류되고,
Figure 112012083029010-pct00085
모드 n(
Figure 112012083029010-pct00086
)의 결과를 r값에 치환하는 것을 포함하고,
Figure 112012083029010-pct00087
가 상기 R의 x 코디네이트(x co-ordinate)되고, r=0이 아니면 다시 단계(step 1)로 돌아간다. 단계(step 4)는 도면에서 도시한 블록(612)와 같이, e에 해쉬 함수(Hash Function; H)가 상기 메시지(H(M)으로 표시된다)에 적용될 때의 값을 정하는 것을 포함한다. 단계(step 5) 상술한 대로, 블록(614)과 결정(616)으로 분류되고
Figure 112012083029010-pct00088
의 결과를 서명 S=(r,s)의 아웃풋(618)을 나오게 하여 s의 값으로 치환하는 것을 포함한다.
서명 생성의 이러한 형태는 기존의 고성능 타원곡선 암호 알고리즘(Elliptic Curve Digital Signature Algorithm; ECDSA)과 완전히 호환되는 서명을 생성한다(예를 들어, 강력한(robust) 실행에 의해 생성된 어느 서명(r,s)은 약한(smooth) 실행에 의해서도 생성될 수 있다).
Analysis
본 발명의 실시예는 아래 두가지 목표를 다루고자 한다:
1. 공격자가 상기 메시지 당(per-message) 무작위 숫자(
Figure 112012083029010-pct00089
)의 값을 알아서, 상기 개인키를 추정하는 것을 막는다. 상술한 대로, 만약 공격자가 메시지 당 비밀 k(per-message secret k)를 알아내면, 기존의 DSG를 이용하여 메시지(M)와 서명(r,s)으로부터 비밀키(d)를 계산하는 것이 가능해진다. 하술하는대로,
Figure 112012083029010-pct00090
의 경우에는 적용되지 않는다.
2. 공격자가 d를 알아내는 것을 막는다. d는 비밀키이다. 다른 보호하는 다른 형식 없이
Figure 112012083029010-pct00091
의 값은 화이트 박스 환경에서 서명 알고리즘을 실행하는 동안 상대편이 잠재적으로 발견할 수 있다. 따라서, 실시예는
Figure 112012083029010-pct00092
에 적용되는 부가적인 데이터 변환을 함으로써
Figure 112012083029010-pct00093
에 또다른 보호벽을 덧붙인다. 하지만,
Figure 112012083029010-pct00094
값은 다음과 같은 의미에서 d에 대한 어떤 정보도 유출하지 않는다: x가 d의 값을 가진다고 가정한다. [1, n-1] 사이의 모든 정수 d에서
Figure 112012083029010-pct00095
=fd mod n 이 x와 같아지도록 하는 f의 값이 존재한다. 따라서, 공격자가 오직
Figure 112012083029010-pct00096
의 값을 이용하여 d의 값을 배제하는 것이 불가능하다.
상기 목표를 달성하기 위하여, 단계(step 2)에서 R을 계산하는 것을 보호하기 위하여 자료를 사용하는 것은 불필요해 보인다. 다음에서 이를 검토할 것이다.
단계(step 2)에서 상기 세 값을 고려한다: R,
Figure 112012083029010-pct00097
. 이 세 값들은 모두 상대편에게 알려져있다. 공격자가 F값을 아는 것을 가정해본다. 더 나아가 공개적으로 가능한 표준이 알려져 있기 때문에 공격자가 G값을 아는 것을 가정한다.
Figure 112012083029010-pct00098
이므로, 상대편은 상기 2번째 목표(공격자가 비밀키를 알게되는 것으로부터 보호하는)를 부정할 수도 있는 이 방정식으로부터
Figure 112012083029010-pct00099
을 계산해서 f값도 구할 수 있을 것이다. 하지만 이러한 계산은 실행불가능한 것으로 보이는 ECDLP를 풀 수 있도록 하였다. 따라서 상대편은 G와
Figure 112012083029010-pct00100
로부터
Figure 112012083029010-pct00101
를 계산할 수 없게 됨이 명백하다.
나아가, 상술한 목표 1에 참조하여 기존의 고성능 타원곡선 암호 알고리즘(Elliptic Curve Digital Signature Algorithm; ECDSA)에서의 k를 아는 것과 같은 방식으로,
Figure 112012083029010-pct00102
에 대한 정보는 비밀 키(d)를 드러내지 않는다. 왜냐하면, 다음과 같은 방정식 모듈로 n(modulo n)을 풀어서
Figure 112012083029010-pct00103
와 서명(r, s)값으로부터 d를 계산하는 업무 때문이다:
Figure 112012083029010-pct00104

하지만, 기존의 DSG들과 다르게, 상기 방정식은 두 미지수를 포함한다: d와 f(예를 들면, 미지수가 두 개인 하나의 방정식). 따라서 상기 상대편은 설사
Figure 112012083029010-pct00105
를 안다 하더라도, d와
Figure 112012083029010-pct00106
가 둘 다 미지수이기 때문에 이 방정식으로부터 d를 추출해낼 수 없다.
상술한 실시예는 DSG가 기존의 DSG보다 공격자가
Figure 112012083029010-pct00107
를 알아내는 것을 더 어렵게 하여 이러한 향상된 시스템이 훨씬 더 활발히 사용될 수 있도록 정도로 DSG를 수정한다.
따라서, 본 실험의 실시예는 상대편 B에 의해서 발견되지 않는 방식으로
Figure 112012083029010-pct00108
를 선택하고, 변환값
Figure 112012083029010-pct00109
Figure 112012083029010-pct00110
를 생성하는 예비 단계를 수행한다. 상대편 B가 볼 수 없도록 이런 단계들을 실행하는 방법은 오프라인에서 작업하는 것이다. 이 때, 오프라인이란, 컴퓨터 장치(A)가 상대편(B)에 의해서 발견될 수 없거나 다른 모든 컴퓨터 기기 상의 시공간을 의미한다. 예를 들어, 컴퓨터장치(A)에서의 스마트 카드나 셋 탑 박스에서의 경우, 오프라인은 우선적으로 상기 장치를 시핑(shipping)하는 것을 포함한다. 개인용 컴퓨에서의 컴퓨터 장치(A)의 경우, 이러한 단계들은 다른 컴퓨터에서 작동될 수 있고, 보안 미디어(secure media) 의하여 장치(A)가 제시될 수 있다. 그렇지 않으면, 이러한 단계들은 보안 하드웨어를 활용함으로써 상대편(B)이 볼 수 없는 방식으로 실행될 수 있다.
더 나아가, 선호되는 실시예로서 추가되는 난독화 기술(obfuscation technique)들은 상대편이
Figure 112012083029010-pct00111
Figure 112012083029010-pct00112
의 값을 단계(step 5)에서의 계산(예를 들어,
Figure 112012083029010-pct00113
)을 보고 추정하는 것을 어렵게 하기 위하여 이용된다. 본 실시예에 따라, 단계(step 5)는 다음과 같은 프로세스를 실행함으로써 계산한다. 우선, 두 가지 덧셈 기능을 생성한다(이는 룩업테이블(look-up table)들을 이용하여 난독화된 소프트웨어 루틴들(software routines)의 형태로 나타날 수 있다):
Figure 112012083029010-pct00114

오프라인 단계에서 작동하는 워드별 레코드테이블(word-wise record-table)을 포함하는 실시예에 따라 이러한 함수들은, 다중 정밀도(multi-precision) 정수x를 이용하여 xf mod n과
Figure 112012083029010-pct00115
각각을 입력(예를 들어 32비트 워드의 배열)하고 리턴하도록 한다.
Figure 112012083029010-pct00116

전자서명 알고리즘 ( Digital Signature Algorithm ; DSA )
구체적인 목표를 설명하기 위해서 앞에서 고성능 타원곡선 암호 알고리즘(Elliptic Curve Digital Signature Algorithm; ECDSA)을 주로 검토하였다. 그러나 ECDSA와 전자서명 알고리즘(Digital Signature Algorithm; DSA)은 매우 밀접하게 관련이 있다. 상기 기술에 능숙한 사람은 ECDSA와 DSA 서명 생성에 대하여 상술한 구체적인 설명과 예들을 통하여 더욱 명확하게 이해할 수 있을 것이다. 본 발명의 실시예에 따라서 상기 프로세스를 간단히 요약하고자 한다.
전자서명 알고리즘(Digital Signature Algorithm; DSA)을 사용하기 전에, 확실한 도메인 파라미터를 선택해야 한다: 프라임 p(prime p), 프라임 q(p-1로부터 비롯되는), q 모듈로 p(q modulo p)의 순서에 따른 생성기 g. 도메인 파라미터들은 일반적으로 비밀이 아닌 것으로(non-secret)으로 본다.
다음은 전자서명 알고리즘(Digital Signature Algorithm; DSA)를 이용하여 메시지에 서명하는 방법이다.
Figure 112012083029010-pct00117

상기 연산 작용은 모두 모듈식의 연산을 나타낸다(예를 들면, 연산 모듈로 p(arithmetic modulo p) 또는 연산 모듈로 q(arithmetic modulo q)).
서명을 생성하는 동안, 실제로 반드시 보호되어야 하는 매우 민감한 두 값들이 있다.
1. 개인키, d(private key; d)
2. 메시지 당 비밀, k(per-message secret; k)
상기 개인키(d)는 보호되어야 함이 명백하다. 만약 k값이 유출되면, 상대편은 다음과 같은 방정식 모듈로 q(modulo q)를 풀어서 얻은 k와 메시지(M)상의 서명(r, s)의 결과로부터 d를 도출할 수 있다:
Figure 112012083029010-pct00118

강력한 서명 생성 ( Robust Signature Generation )
전자서명 알고리즘(Digital Signature Algorithm; DSA) 서명 생성의 강력하게 실행하는 설정을 위한 실험예는 다음과 같다.
상술한 바와 마찬가지로, 상대편(B)이 볼 수 없는 방식으로, 예를 들어 오프라인 셋업 단계에서는 [1, n-1]사이에서 비밀 번호(
Figure 112012083029010-pct00119
)를 선정한다. 비밀번호(
Figure 112012083029010-pct00120
)는 개인키(d)를 보호하기 위하여 사용된다. 본 실험예에 따라서, 두 변환 프로세스는 f값들을 가지는 변환키와 변환 생성기을 생성하는 데 적용된다(둘 다 비밀번호(
Figure 112012083029010-pct00121
)와 관계되는).
Figure 112012083029010-pct00122

Figure 112012083029010-pct00123
Figure 112012083029010-pct00124
는, 다음과 같은 비밀번호(
Figure 112012083029010-pct00125
)를 선정하는 즉시 오프라인에서 계산될 수 있다. 다음은 본 발명의 실시예에 따른, 강력한 전자서명 알고리즘(Digital Signature Algorithm; DSA) 서명 프로세스의 기초 단계이다.
Figure 112012083029010-pct00126

서명을 생성하는 이러한 형태는 기존의 전자서명 알고리즘(Digital Signature Algorithm; DSA)과 완전히 호환될 수 있는 서명들을 생성한다(예를 들어, 강력한(robust) 실행에 의해 생성된 서명(r,s)은 역시 약한(smooth) 실행에 의해서도 생성될 수 있다).
Further Protections
상기 실시예와 상관없이, 상대편이 DSG프로세스를 실행하는 컴퓨터 장치를 작동하는 것을 관찰하여 민감한 파라미터들, 예를 들어
Figure 112012083029010-pct00127
또는
Figure 112012083029010-pct00128
를 추측하는 것을 어렵게 하기 위하여, 변환의 흐름과 데이터 변환을 제어하여 서명 생성 작동을 실행하는 소스코드(source code)에 적용하게 된다. 도 7은 본 발명의 실시예에 따른 서명을 생성하는 소프트웨어를 난독화함으로써 파라미터들을 더욱 보호하기 위해 프로세스의 실행을 나타내는 순서도이다. 따라서, 상기 프로세스(700)에서 실행하는 소스코드(source code)가 보다 강력하게 실행되기 위해서는 흐름의 변환을 제어(702)하고 데이터 변환(704)을 적용하여 더욱 보호할 수 있다.
흐름을 제어하기 위한 많은 기능들을 사용하여, 2004년 8월 17일 출원된 미국등록특허 제 6,779,114호에서 설명하는 대로 제어흐름 맵(702)의 주어진 프로그램의 제어흐름을 새로운 제어흐름의 형태로 변환한다(그 전체를 선행기술로서 포함한다). 데이터 변환(704)은 2003년 7월 15일 출원된 미국등록특허 제 6,594,761호와 2005년 1월 11일 출원된 미국등록특허 제 6,842,862호, 2005년 7월 28일 발행된 미국공개특허 제 2005-0166191호에서 설명하는 대로 수학적 공간들을 대체하는 데이터 작업과 로케이션 수학적 매핑 기능의 사용을 포함한다. 그 전체를 선행기술로서 포함한다.
또다른 실시예에서,
Figure 112012083029010-pct00129
를 보호하기 위한 다른 레벨을 제공하기 위하여 다른 방식으로 ef mod n(step 5에서 사용되는)을 계산한다. e값은 메시지 M 에 입력한 해쉬 값과 같기 때문에, 본실험예에서
Figure 112012083029010-pct00130
modulo n 작동에 의한 해쉬 값으로의 계산을 포함한다. 해쉬 값의 계산은, 적당한 해쉬 함수를 가정하는 것에 좌우되는 것이 아니라, 해쉬 함수(H)가
Figure 112012083029010-pct00131
의 값의 결과로서 생성되는 함수
Figure 112012083029010-pct00132
의 값을 치환하는 방식으로써, 사용되는 해쉬 함수의 본질에 의해 결정된다. 나아가, 단계(step 5)에서는, ef의 조건은
Figure 112012083029010-pct00133
를 치환하고,
Figure 112012083029010-pct00134
Figure 112012083029010-pct00135
으로 치환된다.
본 실험은 제공된 컴퓨터에서 작동될 수 있음을 알아야 할 것이다. 도 7은 본 발명의 실시예에 따른 컴퓨터 시스템을 나타내는 개략적인 플록도이다. 이 컴퓨터 시스템은(110)은 디스플레이(112), 키보드(114), 컴퓨터(116)와 외부 장치(118)를 포함한다.
상기 컴퓨터(116)는 중앙처리장치(central processing unit; CPU)와 같은 하나 이상의 프로세서나 마이크로 프로세서들을 포함한다. CPU(120)는 수학적 계산과 내장메모리(122), 오히려 램(random access memory; RAM)과/또는 롬(read only memory; ROM), 부가적인 메모리(124)에 저장된 소프트웨어를 실행하는 기능을 제어하는 역할을 수행한다. 부가적인 메모리(124)는 예를 들어, 대용량 메모리 저장장치(mass memory strage), 하드 디스크 드라이브(hard disk drivers), 플로피 디스크 드라이브(floppy disk drives), 마그네틱 테이브 드라이브(magnetic tape drives), 컴팩트 디스크 드라이브(compact disk drives), 프로그램 카트리지(program cartridge)와 카트리지 인터페이스(cartridge interfaces), 비디오 게임 장치에서 발견되는, EPROM 또는 PROM, 또는 이와 비슷한 기술로 알려진 저장 매체와 같이 제거할 수 있는 메모리 칩을 포함한다. 도 7에서와 같이, 이런 부가적인 메모리(124)는 물리적으로 컴퓨터(116)의 내부 또는 외부에 있게 된다.
컴퓨터 시스템(110)은 또한 컴퓨터 프로그램들 또는 다른 명령들이 로드될 수 있도록(load)하는 다른 비슷한 방법들을 포함한다. 그러한 방법들은, 예를 들어, 커뮤니케이션 인터페이스(126)가 소프트웨어와 데이터가 컴퓨터 시스템(110)과 외부 시스템 사이에서 이동할 수 있게 한다. 커뮤니케이션 인터페이스(126)의 예는 모뎀, 이더넷 카드(ethernet card), 시리얼 또는 병행의 커뮤니케이션 포트(a serial or parallel communication port)와 같은 네트워크 인터페이스를 포함한다. 커뮤니케이션 인터페이스(126)를 경유하여 전송되는 소프트웨어와 데이터는 전자, 전자기와 광학 또는 커뮤니케이션 인터페이스(126)들에 의해 받아들여질 수 있는 다른 신호들의 형태이다. 다수의 인터페이스들은 역시, 단수의 컴퓨터 시스템(110)에서 제공될 수 있다.
상기 컴퓨터(116)으로부터의 인풋과 아웃풋(input and output)은 인풋/아웃풋(I/O) 인터페이스(128)에 의하여 운영된다. 이러한 I/O 인터페이스(128)는 상기 디스플레이(112), 키보드(114), 외부 장치(118)와 다른 그와 같은 컴퓨터 시스템(110)의 요소들을 컨트롤한다.
본 발명은 오직 이러한 조건 하에서 편의를 위한 목적으로 이용된다. 본 발명은 다른 컴퓨터 장치들과 제어 시스템(110)들에 적용될 수 있음이 보다 명백해질 수 있을 것이다. 따라서 컴퓨터 장치는 전화 , 휴대폰, 텔레비전, 텔레비전 셋업 유닛, 컴퓨터 판매점(point of sale computers), 현금 자동 인출기, 랩탑 컴퓨터, 서버들, 개인적인 전자 어시스턴트와 자동차들을 가지는 온갖 종류의 어플라이언스(appliance)들을 포함한 각종 시스템을 포함하는 것이다. 도 7에서 참조하는 바와 같이, 그런 컴퓨터 장치는 부가적인 구성요소들을 포함하거나 어떤 구성요소들은 삭제할 수 있다.
"오프라인"부분은 서명 작동을 수행하는 컴퓨터 장치와는 다른 컴퓨터 장치 상에서 작동됨을 의미한다. 나아가, 인증프로세스를 실행하는 컴퓨터 장치는 대체로 전자 서명 프로세스를 실행하는 컴퓨터 장치와는 다르며, 서명된 메시지는 종종 어떠한 매체를 통하여 전송된다. 본 발명의 일 측면은 전자 서명을 생성하고 전송하기 위한 컴퓨터 장치에 서명하는 것을 포함하는 시스템과 서명을 인증하기 위하여 컴퓨터 장치를 확인하는 것과 직결된다. 나아가, 실시예는
Figure 112012083029010-pct00136
를 선택하고
Figure 112012083029010-pct00137
에 기초하여 변환키와 변환된 생성기를 생성하기 위한 예비 단계를 수행하기 위한 부가적인 컴퓨터 장치를 포함할 수 있다.
이상에서, 설명의 목적으로, 본 발명의 실시예들에 대한 철저한 이해를 제공하기 위하여 다양한 세부적인 내용이 개시되었다. 하지만, 당업자들은 본 발명을 실시하는데 이러한 구체적인 내용들이 요구되지 않는다는 것을 이해할 수 있을 것이다. 다른 경우에서 본 발명이 불명확하게 되지 않도록 잘 알려진 전기적인 구조들 및 회로들이 블록도의 형태로 도시되었다. 예를 들어 여기에 기재된 본 발명의 실시예들은 소프트웨어 루틴(software routine), 하드웨어 회로(hardware circuit), 펌웨어(firmware), 또는 이들의 조합으로 구현되었는지에 대한 세부 사항들이 제공되지 않았다.
본 발명의 실시예들은 기계 판독 가능 저장 매체(machine readable storage medium)에 저장되는 소프트웨어 제품(software product)으로 구현될 수 있다(컴퓨터 판독가능 매체(computer-readable medium), 프로세서 판독 가능 매체(processor-readable medium), 컴퓨터 판독 가능 프로그램을 가진 컴퓨터 사용가능 매체(computer usable medium)들도 포함된다). 상기 기계 판독 가능 매체(machine-readable medium)는 디스켓, 씨디 롬(compact disk read only memory: CD-ROM), 휘발성(volatile) 또는 비휘발성(non-volatile)의 메모리 장치, 또는 기타 저장 메커니즘을 포함한다. 상기 기계 판독 가능 매체는 자성(magnetic), 광학의(optical), 또는 전자 저장 매체(electrical storage medium)를 포함하는 모든 적합한 유형의 매체일 수 있다. 기계 판독 가능 매체는 다양한 명령들(instructions), 코드 시퀀스(code sequednce), 구성 정보(configuration information) 또는 다른 데이터들을 포함할 수 있고, 기계판독 가능 매체가 실행될 때 프로세서로 하여금 발명의 실시예에 따른 방법의 단계들을 수행하도록 한다. 본 발명의 기술 분야에 통상의 지식을 가진 자들은 본 발명을 실시하는 데 필수적인 명령(instruction)들과 연산(operation)들이 기계 판독 가능 매체(machine-readable medium)에 저장될 수 있다는 것을 이해할 수 있을 것이다. 상기 기계 판독 가능 매체는 상술한 테스크들(tasks)을 수행하는 회로와 인터페이스(interface)할 수 있다.
본 발명의 상술한 실시예들은 예시를 목적으로만 기재되었고, 다수의 서로 다른 종류의 소프트웨어 또는 소프트웨어 조각들이 본 발명에 따른 강화된 보안의 혜택을 받을 수 있는 것이 자명하다. 또한, 본 발명의 기술분야에서 통상의 지식을 가진 자에 의하여 본 발명의 범위를 벗어나지 않는 한 특정한 실시예에 대한 변경, 수정 및 변형이 가능하고, 본 발명의 범위는 여기에 첨부된 특허청구범위에 의해서만 정해진다.

Claims (20)

  1. 하나 이상의 컴퓨팅 장치들에 의해 실행되는 방법으로서, 암호화 전자 서명 생성(cryptographic digital signature generation) 중 암호화 개인 키(cryptographic private key)를 보호하는 방법에 있어서,
    상기 하나 이상의 컴퓨팅 장치들 중 적어도 하나가, 1과 n-1 사이의 무작위 정수를 생성하는 단계, -n은 타원형 곡선 상의 생성기 포인트로부터 유한 필드(finite field) 내에서 생성되는 상기 타원형 곡선 상의 포인트들의 그룹의 커디널리티(cardinality)에 상응하고, 1 이상의 정수임-;
    상기 하나 이상의 컴퓨팅 장치들 중 적어도 하나가, 상기 무작위 정수에 기초하여 승수(multiplier)를 계산하는 단계, -상기 승수는 상기 무작위 정수 모듈로 n(the random integer modulo n)의 인버스(inverse)와 같음-;
    상기 하나 이상의 컴퓨팅 장치들 중 적어도 하나가, 상기 생성기 포인트와 상기 승수의 타원형 곡선 승산(elliptical curve multiplication)을 수행하여 변환된 생성기 포인트를 결정하는 단계;
    상기 하나 이상의 컴퓨팅 장치들 중 적어도 하나가, 상기 암호화 개인 키 및 상기 무작위 정수에 기초하여 변환된 개인 키를 생성하는 단계; 및
    상기 하나 이상의 컴퓨팅 장치들 중 적어도 하나가, 상기 변환된 생성기 포인트 및 상기 변환된 개인 키에 기초하여 디지털 서명을 생성하는 단계를 포함하고,
    상기 디지털 서명은 상기 암호화 개인 키에 상응하는 암호화 공개 키(cryptographic public key)를 이용하는 검증 과정에 의해 검증되도록 구성된 것을 특징으로 하는 암호화 개인 키 보호 방법.
  2. 제1 항에 있어서, 상기 변환된 생성기 포인트 및 상기 변환된 개인 키는 보안 환경(secure environment)에서 생성되는 것을 특징으로 하는 암호화 개인 키 보호 방법.
  3. 제2 항에 있어서, 상기 보안 환경은 오프라인 환경(offline environment)을 포함하는 것을 특징으로 하는 암호화 개인 키 보호 방법.
  4. 제1 항에 있어서, 상기 변환된 개인 키를 생성하는 단계는,
    상기 무작위 정수와 상기 암호화 개인 키를 승산하여 결과 값을 생성하는 단계; 및
    상기 결과 값 모듈로 n을 계산하는 단계를 포함하는 것을 특징으로 하는 암호화 개인 키 보호 방법.
  5. 제4 항에 있어서, 상기 변환된 생성기 포인트 및 상기 변환된 개인 키에 기초하여 상기 디지털 서명을 생성하는 단계는,
    1과 n-1 사이에서 제2 무작위 정수를 선택하는 단계;
    상기 변환된 생성기 포인트와 상기 제2 무작위 정수의 타원형 곡선 승산을 수행하여 상기 타원형 곡선 상의 결과 포인트를 결정하는 단계;
    상기 결과 포인트의 x 좌표를 제1 서명 정수에 할당하는 단계;
    상기 제1 서명 정수가 0과 같은지 여부를 판단하는 단계;
    상기 제1 서명 정수가 0과 같은 경우, 상기 제2 무작위 정수를 선택하는 단계 및 상기 결과 포인트를 결정하는 단계를 재수행하는 단계;
    상기 제1 서명 정수가 0과 같지 않은 경우, 제2 서명 정수를 계산하는 단계, -상기 제2 서명 정수는 메시지의 해쉬 값(hashed value), 상기 변환된 개인 키, 및 상기 제1 서명 정수에 기초하여 계산됨-; 및
    상기 제2 서명 정수가 0과 같지 않다는 판단에 기초하여 상기 제1 서명 정수 및 상기 제2 서명 정수를 전송하는 단계를 포함하고,
    상기 제1 서명 정수 및 상기 제2 서명 정수는 상기 암호화 개인 키에 상응하는 상기 암호화 공개 키를 이용하는 상기 검증 과정에 의해 검증되도록 구성된 것을 특징으로 하는 암호화 개인 키 보호 방법.
  6. 제5 항에 있어서, 상기 제2 서명 정수를 계산하는 단계는,
    상기 메시지의 상기 해쉬 값과 상기 무작위 정수를 승산하여 제1 피연산자를 생성하는 단계;
    상기 변환된 개인 키와 상기 제1 서명 정수를 승산하여 제2 피연산자를 생성하는 단계;
    상기 제1 피연산자와 상기 제2 피연산자의 합계를 계산하는 단계;
    상기 제2 무작위 정수와 상기 합계를 승산하여 제3 피연산자를 생성하는 단계; 및
    상기 제3 피연산자 모듈로 n의 인버스를 상기 제2 서명 정수에 할당하는 단계를 포함하는 것을 특징으로 하는 암호화 개인 키 보호 방법.
  7. 제5 항에 있어서, 상기 제2 서명 정수를 계산하는 단계는,
    상기 제1 서명 정수의 값이 메모리에 로드되지 않도록, 일련의 룩업테이블(look-up table)들을 사용하여 난독화된 소프트웨어 루틴(software routine)을 이용하는 단계를 포함하는 것을 특징으로 하는 암호화 개인 키 보호 방법.
  8. 제7 항에 있어서, 상기 일련의 룩업테이블들을 사용하여 난독화된 상기 소프트웨어 루틴에 의해 상기 제1 서명 정수의 값 및 상기 변환된 개인 키가 상기 메모리에 로드되지 않는 것을 특징으로 하는 암호화 개인 키 보호 방법.
  9. 암호화 전자 서명 생성(cryptographic digital signature generation) 중 암호화 개인 키(cryptographic private key)를 보호하는 암호화 개인 키 보호 장치에 있어서,
    하나 이상의 프로세서들; 및
    상기 하나 이상의 프로세서들 중 적어도 하나에 연결되고, 명령어들을 저장하는 하나 이상의 메모리들을 포함하고,
    상기 하나 이상의 프로세서들 중 적어도 하나는, 상기 하나 이상의 메모리들에 저장된 상기 명령어들을 실행하여,
    1과 n-1 사이의 무작위 정수를 생성하고, -n은 타원형 곡선 상의 생성기 포인트로부터 유한 필드(finite field) 내에서 생성되는 상기 타원형 곡선 상의 포인트들의 그룹의 커디널리티(cardinality)에 상응하고, 1 이상의 정수임-;
    상기 무작위 정수에 기초하여 승수(multiplier)를 계산하고, -상기 승수는 상기 무작위 정수 모듈로 n(the random integer modulo n)의 인버스(inverse)와 같음-;
    상기 생성기 포인트와 상기 승수의 타원형 곡선 승산(elliptical curve multiplication)을 수행하여 변환된 생성기 포인트를 결정하고;
    상기 암호화 개인 키 및 상기 무작위 정수에 기초하여 변환된 개인 키를 생성하고; 그리고
    상기 변환된 생성기 포인트 및 상기 변환된 개인 키에 기초하여 디지털 서명을 생성하고,
    상기 디지털 서명은 상기 암호화 개인 키에 상응하는 암호화 공개 키(cryptographic public key)를 이용하는 검증 과정에 의해 검증되도록 구성된 것을 특징으로 하는 암호화 개인 키 보호 장치.
  10. 제9 항에 있어서, 상기 변환된 생성기 포인트 및 상기 변환된 개인 키는 오프라인 환경(offline environment)에서 생성되는 것을 특징으로 하는 암호화 개인 키 보호 장치.
  11. 제9 항에 있어서, 상기 변환된 개인 키는, 상기 무작위 정수와 상기 암호화 개인 키를 승산하여 결과 값을 생성하고, 상기 결과 값 모듈로 n을 계산함으로써, 생성되는 것을 특징으로 하는 암호화 개인 키 보호 장치.
  12. 제11 항에 있어서, 상기 명령어들은, 상기 변환된 생성기 포인트 및 상기 변환된 개인 키에 기초하여 상기 디지털 서명을 생성하도록,
    1과 n-1 사이에서 제2 무작위 정수를 선택하고;
    상기 변환된 생성기 포인트와 상기 제2 무작위 정수의 타원형 곡선 승산을 수행하여 상기 타원형 곡선 상의 결과 포인트를 결정하고;
    상기 결과 포인트의 x 좌표를 제1 서명 정수에 할당하고;
    상기 제1 서명 정수가 0과 같은지 여부를 판단하고;
    상기 제1 서명 정수가 0과 같은 경우, 상기 제2 무작위 정수의 선택 및 상기 결과 포인트의 결정을 재수행하고;
    상기 제1 서명 정수가 0과 같지 않은 경우, 제2 서명 정수를 계산하고, -상기 제2 서명 정수는 메시지의 해쉬 값(hashed value), 상기 변환된 개인 키, 및 상기 제1 서명 정수에 기초하여 계산됨-; 그리고
    상기 제2 서명 정수가 0과 같지 않다는 판단에 기초하여 상기 제1 서명 정수 및 상기 제2 서명 정수를 전송하고,
    상기 제1 서명 정수 및 상기 제2 서명 정수는 상기 암호화 개인 키에 상응하는 상기 암호화 공개 키를 이용하는 상기 검증 과정에 의해 검증되도록 구성된 것을 특징으로 하는 암호화 개인 키 보호 장치.
  13. 제12 항에 있어서, 상기 제2 서명 정수는,
    상기 메시지의 상기 해쉬 값과 상기 무작위 정수를 승산하여 제1 피연산자를 생성하고;
    상기 변환된 개인 키와 상기 제1 서명 정수를 승산하여 제2 피연산자를 생성하고;
    상기 제1 피연산자와 상기 제2 피연산자의 합계를 계산하고;
    상기 제2 무작위 정수와 상기 합계를 승산하여 제3 피연산자를 생성하고; 그리고
    상기 제3 피연산자 모듈로 n의 인버스를 상기 제2 서명 정수에 할당함으로써, 계산되는 것을 특징으로 하는 암호화 개인 키 보호 장치.
  14. 제12 항에 있어서, 상기 제2 서명 정수가 계산될 때, 상기 제1 서명 정수의 값 및 상기 변환된 개인 키가 메모리에 로드되지 않도록, 일련의 룩업테이블(look-up table)들을 사용하여 난독화된 소프트웨어 루틴(software routine)이 이용되는 것을 특징으로 하는 암호화 개인 키 보호 장치.
  15. 적어도 하나의 컴퓨팅 장치에,
    1과 n-1 사이의 무작위 정수를 생성하는 단계, -n은 타원형 곡선 상의 생성기 포인트로부터 유한 필드(finite field) 내에서 생성되는 상기 타원형 곡선 상의 포인트들의 그룹의 커디널리티(cardinality)에 상응하고, 1 이상의 정수임-;
    상기 무작위 정수에 기초하여 승수(multiplier)를 계산하는 단계, -상기 승수는 상기 무작위 정수 모듈로 n(the random integer modulo n)의 인버스(inverse)와 같음-;
    상기 생성기 포인트와 상기 승수의 타원형 곡선 승산(elliptical curve multiplication)을 수행하여 변환된 생성기 포인트를 결정하는 단계;
    암호화 개인 키(cryptographic private key) 및 상기 무작위 정수에 기초하여 변환된 개인 키를 생성하는 단계; 및
    상기 변환된 생성기 포인트 및 상기 변환된 개인 키에 기초하여 디지털 서명을 생성하는 단계를 실행시키기 위한 명령어들이 기록되고,
    상기 디지털 서명은 상기 암호화 개인 키에 상응하는 암호화 공개 키(cryptographic public key)를 이용하는 검증 과정에 의해 검증되도록 구성된 것을 특징으로 하는 컴퓨터로 판독 가능한 기록 매체.
  16. 제15 항에 있어서, 상기 변환된 생성기 포인트 및 상기 변환된 개인 키는 오프라인 환경(offline environment)에서 생성되는 것을 특징으로 하는 컴퓨터로 판독 가능한 기록 매체.
  17. 제15 항에 있어서, 상기 변환된 개인 키는, 상기 무작위 정수와 상기 암호화 개인 키를 승산하여 결과 값을 생성하고, 상기 결과 값 모듈로 n을 계산함으로써, 생성되는 것을 특징으로 하는 컴퓨터로 판독 가능한 기록 매체.
  18. 제17 항에 있어서, 상기 변환된 생성기 포인트 및 상기 변환된 개인 키에 기초하여 상기 디지털 서명을 생성하는 단계는,
    1과 n-1 사이에서 제2 무작위 정수를 선택하는 단계;
    상기 변환된 생성기 포인트와 상기 제2 무작위 정수의 타원형 곡선 승산을 수행하여 상기 타원형 곡선 상의 결과 포인트를 결정하는 단계;
    상기 결과 포인트의 x 좌표를 제1 서명 정수에 할당하는 단계;
    상기 제1 서명 정수가 0과 같은지 여부를 판단하는 단계;
    상기 제1 서명 정수가 0과 같은 경우, 상기 제2 무작위 정수를 선택하는 단계 및 상기 결과 포인트를 결정하는 단계를 재수행하는 단계;
    상기 제1 서명 정수가 0과 같지 않은 경우, 제2 서명 정수를 계산하는 단계, -상기 제2 서명 정수는 메시지의 해쉬 값(hashed value), 상기 변환된 개인 키, 및 상기 제1 서명 정수에 기초하여 계산됨-; 및
    상기 제2 서명 정수가 0과 같지 않다는 판단에 기초하여 상기 제1 서명 정수 및 상기 제2 서명 정수를 전송하는 단계를 포함하고,
    상기 제1 서명 정수 및 상기 제2 서명 정수는 상기 암호화 개인 키에 상응하는 상기 암호화 공개 키를 이용하는 상기 검증 과정에 의해 검증되도록 구성된 것을 특징으로 하는 컴퓨터로 판독 가능한 기록 매체.
  19. 제18 항에 있어서, 상기 제2 서명 정수를 계산하는 단계는,
    상기 메시지의 상기 해쉬 값과 상기 무작위 정수를 승산하여 제1 피연산자를 생성하는 단계;
    상기 변환된 개인 키와 상기 제1 서명 정수를 승산하여 제2 피연산자를 생성하는 단계;
    상기 제1 피연산자와 상기 제2 피연산자의 합계를 계산하는 단계;
    상기 제2 무작위 정수와 상기 합계를 승산하여 제3 피연산자를 생성하는 단계; 및
    상기 제3 피연산자 모듈로 n의 인버스를 상기 제2 서명 정수에 할당하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 판독 가능한 기록 매체.
  20. 제18 항에 있어서, 상기 제2 서명 정수가 계산될 때, 상기 제1 서명 정수의 값 및 상기 변환된 개인 키가 메모리에 로드되지 않도록, 일련의 룩업테이블(look-up table)들을 사용하여 난독화된 소프트웨어 루틴(software routine)이 이용되는 것을 특징으로 하는 컴퓨터로 판독 가능한 기록 매체.
KR1020127026744A 2010-03-31 2010-03-31 화이트 박스로부터 암호화설비를 보호하는 시스템 및 그 방법 KR101712850B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CA2010/000486 WO2011120125A1 (en) 2010-03-31 2010-03-31 System and method for protecting cryptographic assets from a white-box attack

Publications (2)

Publication Number Publication Date
KR20130024897A KR20130024897A (ko) 2013-03-08
KR101712850B1 true KR101712850B1 (ko) 2017-03-07

Family

ID=44711254

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127026744A KR101712850B1 (ko) 2010-03-31 2010-03-31 화이트 박스로부터 암호화설비를 보호하는 시스템 및 그 방법

Country Status (7)

Country Link
US (1) US9009481B2 (ko)
EP (1) EP2553866B1 (ko)
JP (1) JP5697180B2 (ko)
KR (1) KR101712850B1 (ko)
CN (1) CN103081398B (ko)
CA (1) CA2792787C (ko)
WO (1) WO2011120125A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013116916A1 (en) 2012-02-09 2013-08-15 Irdeto Canada Corporation System and method for generating and protecting cryptographic keys
US9106635B2 (en) * 2012-03-01 2015-08-11 Certicom Corp. System and method for connecting client devices to a network
US9571289B2 (en) * 2012-11-12 2017-02-14 Cryptography Research, Inc. Methods and systems for glitch-resistant cryptographic signing
SG10201405852QA (en) 2014-09-18 2016-04-28 Huawei Internat Pte Ltd Encryption function and decryption function generating method, encryption and decryption method and related apparatuses
GB201418815D0 (en) * 2014-10-22 2014-12-03 Irdeto Bv Providing access to content
US9639674B2 (en) * 2014-12-18 2017-05-02 Nxp B.V. Using single white-box implementation with multiple external encodings
SG11201811009VA (en) * 2016-07-29 2019-02-27 Nchain Holdings Ltd Blockchain-implemented method and system
EP3340094B1 (en) * 2016-12-22 2021-04-28 Mastercard International Incorporated Method for renewal of cryptographic whiteboxes under binding of new public key and old identifier
CN106712965B (zh) * 2017-01-17 2020-02-18 数安时代科技股份有限公司 数字签名方法、装置以及密码设备
FR3063857B1 (fr) * 2017-03-08 2020-02-14 Safran Identity & Security Procede de signature electronique d'un document avec une cle secrete predeterminee
EP3376705A1 (en) * 2017-03-17 2018-09-19 Koninklijke Philips N.V. Elliptic curve point multiplication device and method in a white-box context
GB201707168D0 (en) * 2017-05-05 2017-06-21 Nchain Holdings Ltd Computer-implemented system and method
FR3066845B1 (fr) * 2017-05-24 2019-06-14 Idemia Identity And Security Procede de signature electronique d'un document avec une cle secrete predeterminee
CN109104272A (zh) * 2017-06-20 2018-12-28 上海策链信息科技有限公司 私钥保存方法、系统及计算机可读存储介质
US10516541B2 (en) * 2017-09-13 2019-12-24 Nxp B.V. Nonce to message binding in digital signature generation
EP3493456A1 (en) 2017-12-01 2019-06-05 Gemalto Sa Cryptography device having improved security against side-channel attacks
EP3493460A1 (en) * 2017-12-01 2019-06-05 Gemalto Sa Cryptography device having secure provision of random number sequences
JP7328969B2 (ja) * 2018-12-21 2023-08-17 01 コミュニーク ラボラトリー インコーポレイテッド 暗号システムおよび方法
EP3713148B1 (en) 2019-03-22 2022-08-03 Giesecke+Devrient Mobile Security GmbH White-box ecc implementation
US20220329439A1 (en) * 2019-08-05 2022-10-13 Securify Bilisim Teknolojileri Ve Guvenligi Egt. Dan. San. Ve Tic. Ltd. Sti. Method for generating digital signatures
EP4154142A4 (en) * 2020-05-19 2023-10-25 Visa International Service Association SYSTEMS AND METHODS FOR BINDING A WHITEBOX DEVICE
CN114338039A (zh) * 2021-12-28 2022-04-12 上海市数字证书认证中心有限公司 白盒处理后的椭圆曲线签名方法和系统
FR3133251B1 (fr) * 2022-03-03 2024-03-22 Idemia France Procédé de signature cryptographique d’une donnée, dispositif électronique et programme d’ordinateur associés
WO2024072529A1 (en) * 2022-09-30 2024-04-04 Microsoft Technology Licensing, Llc Low-cost, high-security solutions for digital signature algorithm

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060140401A1 (en) 2000-12-08 2006-06-29 Johnson Harold J System and method for protecting computer software from a white box attack
US20090094464A1 (en) 2005-12-28 2009-04-09 Yuichi Futa Signature generating device, signature generating method and signature generating program
US20090252327A1 (en) 2008-04-02 2009-10-08 Mathieu Ciet Combination white box/black box cryptographic processes and apparatus
US20100023771A1 (en) 2006-11-15 2010-01-28 Marinus Struik Implicit certificate verification

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU7957998A (en) 1997-06-09 1999-01-25 Intertrust, Incorporated Obfuscation techniques for enhancing software security
AU5457699A (en) * 1998-06-23 2000-01-10 Microsoft Corporation A technique for producing privately authenticatable cryptographic signatures and for using such a signature in conjunction with a product copy
US7599491B2 (en) * 1999-01-11 2009-10-06 Certicom Corp. Method for strengthening the implementation of ECDSA against power analysis
US6594761B1 (en) * 1999-06-09 2003-07-15 Cloakware Corporation Tamper resistant software encoding
US6779114B1 (en) 1999-08-19 2004-08-17 Cloakware Corporation Tamper resistant software-control flow encoding
KR100373669B1 (ko) 1999-09-29 2003-02-26 가부시키가이샤 히타치세이사쿠쇼 비밀 정보의 처리 장치, 비밀 정보의 처리 프로그램을 기록한 기록 매체 및 처리 시스템
US7020778B1 (en) 2000-01-21 2006-03-28 Sonera Smarttrust Oy Method for issuing an electronic identity
JP2003098962A (ja) * 2001-09-20 2003-04-04 Hitachi Ltd 楕円曲線スカラー倍計算方法及び装置並びに記録媒体
JP3676280B2 (ja) * 2001-10-16 2005-07-27 株式会社エヌ・ティ・ティ・データ 電子署名装置およびicカード、ならびにその電子署名プログラム
CA2369304A1 (en) 2002-01-30 2003-07-30 Cloakware Corporation A protocol to hide cryptographic private keys
JP2004253950A (ja) * 2003-02-19 2004-09-09 Toyo Commun Equip Co Ltd 事前計算による電子署名高速生成方法および装置
US7966499B2 (en) 2004-01-28 2011-06-21 Irdeto Canada Corporation System and method for obscuring bit-wise and two's complement integer computations in software
US7689828B2 (en) * 2004-07-23 2010-03-30 Data Security Systems Solutions Pte Ltd System and method for implementing digital signature using one time private keys
DE102005024609A1 (de) * 2005-05-25 2006-11-30 Siemens Ag Bestimmung einer modularen Inversen
CA2542556C (en) * 2005-06-03 2014-09-16 Tata Consultancy Services Limited An authentication system executing an elliptic curve digital signature cryptographic process
CN101547099B (zh) * 2009-05-07 2011-08-03 张键红 基于椭圆曲线的自认证签名方法与装置
JP5446678B2 (ja) * 2009-09-29 2014-03-19 富士通株式会社 楕円曲線暗号演算装置及び方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060140401A1 (en) 2000-12-08 2006-06-29 Johnson Harold J System and method for protecting computer software from a white box attack
US20090094464A1 (en) 2005-12-28 2009-04-09 Yuichi Futa Signature generating device, signature generating method and signature generating program
US20100023771A1 (en) 2006-11-15 2010-01-28 Marinus Struik Implicit certificate verification
US20090252327A1 (en) 2008-04-02 2009-10-08 Mathieu Ciet Combination white box/black box cryptographic processes and apparatus

Also Published As

Publication number Publication date
CA2792787C (en) 2017-07-25
US20130024699A1 (en) 2013-01-24
JP5697180B2 (ja) 2015-04-08
CN103081398A (zh) 2013-05-01
US9009481B2 (en) 2015-04-14
EP2553866A4 (en) 2017-06-28
JP2013524263A (ja) 2013-06-17
CN103081398B (zh) 2016-04-06
WO2011120125A1 (en) 2011-10-06
EP2553866B1 (en) 2018-11-21
EP2553866A1 (en) 2013-02-06
KR20130024897A (ko) 2013-03-08
CA2792787A1 (en) 2011-10-06

Similar Documents

Publication Publication Date Title
KR101712850B1 (ko) 화이트 박스로부터 암호화설비를 보호하는 시스템 및 그 방법
Genkin et al. May the fourth be with you: A microarchitectural side channel attack on several real-world applications of curve25519
Bos et al. Elliptic curve cryptography in practice
EP3091690B1 (en) Rsa decryption using multiplicative secret sharing
US11233659B2 (en) Method of RSA signature or decryption protected using a homomorphic encryption
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
EP2201718A2 (en) An efficient certified email protocol
CN109818730A (zh) 盲签名的获取方法、装置和服务器
Sathya et al. A comprehensive study of blockchain services: future of cryptography
Sarath et al. A survey on elliptic curve digital signature algorithm and its variants
Cebeci et al. Secure e-commerce scheme
JP7155173B2 (ja) 外部監視攻撃からモジュラーインバージョン演算を保護すること
KR100817048B1 (ko) 여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치
Rahnama et al. Countering RSA vulnerabilities and its replacement by ECC: elliptic curve cryptographic scheme for key generation
Barker Cryptographic Standards in the Federal Government: Cryptographic Mechanisms
Kwon Virtual software tokens-a practical way to secure PKI roaming
KR100953715B1 (ko) Crt-rsa 모듈라 지수승 알고리즘을 이용한 디지털서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장매체
Heydari et al. An Improved Authentication Scheme for Electronic Payment Systems in Global Mobility Networks
KR100953716B1 (ko) Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체
KR102067065B1 (ko) 전력 분석 및 전자파 분석에 안전한 메시지 랜덤화 기반의 행렬-벡터 곱 연산 장치, 이를 이용한 암호화 장치 및 방법
KR101112570B1 (ko) 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체
US20230138384A1 (en) Method for securely performing a public key algorithm
JP2004222331A (ja) ユーザが電子商取引/情報サービス提供者の正当性をチェックできるようにする方法
Tai et al. Weak-keys in public key cryptosystems based on discrete logarithms
Mann et al. Realizing two-factor authentication for the Bitcoin protocol.

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right