KR20060132923A - 암호화 연산을 수행하는 방법 및 장치 - Google Patents

암호화 연산을 수행하는 방법 및 장치 Download PDF

Info

Publication number
KR20060132923A
KR20060132923A KR1020067017942A KR20067017942A KR20060132923A KR 20060132923 A KR20060132923 A KR 20060132923A KR 1020067017942 A KR1020067017942 A KR 1020067017942A KR 20067017942 A KR20067017942 A KR 20067017942A KR 20060132923 A KR20060132923 A KR 20060132923A
Authority
KR
South Korea
Prior art keywords
multiplication
bits
factor
secret key
encryption
Prior art date
Application number
KR1020067017942A
Other languages
English (en)
Other versions
KR101117680B1 (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 KR20060132923A publication Critical patent/KR20060132923A/ko
Application granted granted Critical
Publication of KR101117680B1 publication Critical patent/KR101117680B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • 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
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • 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
    • 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
    • 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/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Control Of Vending Devices And Auxiliary Devices For Vending Devices (AREA)
  • Diaphragms For Electromechanical Transducers (AREA)
  • Pinball Game Machines (AREA)

Abstract

본 발명은 외부에서 실행되는 암호화 애플리케이션에 의해 통제되는 장치를 통해 본 장치와 연관된 비밀키(s)를 포함하는 제 1 및 제 2 팩터와 보안 애플리케이션에 의해 제공되는 챌린지 숫자(c)의 곱셈을 적어도 하나 포함하는 연산에 의해 상기 장치 내에서 암호화값(y)을 생성하는 것을 포함하는 암호화 연산을 수행하는 독창적인 방법에 관한 것이다. 곱셈의 제 1 팩터는 소정의 수의 비트(L)를 2진수 형태로 포함한다. 곱셈의제 2 팩터는 2진수 형태로서 1의 연속비트 각쌍 사이의 적어도 L-1 비트의 시퀀스를 가지는 여러개의 비트와, 각각 제 2 팩터의 1 에서 비트의 위치에 따라 쉬프트된 제 1 팩터의 2진수 버전을 모으는 것에 의해 수행되는 곱셈을 포함하도록 종속된다.
하드 와이어드, 인증, 보안, 검증, 비밀키

Description

암호화 연산을 수행하는 방법 및 장치 {METHOD AND DEVICE FOR PERFORMING A CRYPTOGRAPHIC OPERATION}
본원발명은 보안 애플리케이션 체계 내 장치의 암호화 연산을 수행하는 방법에 관한 것이다. 구체적으로는, 외부 애플리케이션과 칩 사이의 트랜잭션(transaction)에 있어서 전자칩에 대한 부정행위를 방어하는 암호화방법에 관한 것이다.
본 발명은 하드 와이어드 논리(hard-wired logic)를 수행하는 집적회로 칩, 구체적으로는 다양한 트랜잭션, 예를 들면, 전화 통신의 설치, 자동판매기의 물품대금 지급, 주차기기를 통해 주차구역을 대여하는 것, 대중교통이나 기반시설(통행료, 박물관, 도서관 등)의 이용에 사용되는 선불카드에 내장된 칩, 또는 이동하는 팔레트, 대량구매용 물품, 은행권(bank note) 등에 사용되는 RF 태그(radiofrequency tag: "RFID tag")에 내장된 칩에 대한 부정행위를 방어하는 것을 가능하게 해주는 바람직한 애플리케이션의 발견에 관한 것이다.
현재, 하드 와이어드 논리를 수행하는 칩들은 다양한 형태의 부정행위를 경험하게된다. 부정행위의 첫번째 유형은 허가없이 카드를 복제하는 것인데, 이러한 조작을 특징짓기 위해 '클로닝(cloning)'이라는 용어가 종종 사용된다. 부정행위의 두번째 유형은 카드에 저장된 데이터, 구체적으로는 카드에 기록된 잔고의 양을 조작하는 것이다. 이러한 부정행위들에 맞서기 위해 암호화가 도입되는데, 한편으로는 인증에 의해 카드의 인증을 보장하거나 및/또는 전자서명에 의해 카드의 인증을 보장하는 것이고, 다른 한편으로는 암호화에 의해 비밀 데이터를 적절하게 보장하기 위한 것이다. 암호화는 두가지 실체를 포함하는데, 인증의 경우 검증기와 검증의 대상이다. 그리고, 상기 암호화는 대칭형 혹은 비대칭형이다. 대칭형일 경우(혹은 "비밀키(secret key)"에 기초한 경우, 이 두 용어는 같은 의미이다), 상기 두 실체 중 하나는 정확하게 동일한 정보, 구체적으로는 특정 비밀키를 공유한다. 비대칭형일 경우(혹은 "공개키(public key)"에 기초한 경우, 이 두 용어는 같은 의미이다), 상기 두 실체는 한쌍의 키를 소유하는데, 그중 하나는 비밀이고 다른 하나는 공개적이다; 공유되는 비밀키는 없다. 많은 시스템에서, 구체적으로는 칩이 "하드 와이어드 논리" 타입인 경우, 비대칭형 암호화는 느리고 비용이 많이 들기 때문에 오직 대칭형 암호화가 선불카드에 상용화된다. 대칭형 암호화로 개발된 제 1차 인증 메커니즘은 각각의 카드에서 다른 모든 인증값에 대한 한번의 계산, 카드 메모리에 이 값의 저장, 각 트랜잭션에서 이 값을 읽고 이미 할당된 인증이 저장되고 재계산된 트랜잭션을 지지하는 네트워크의 애플리케이션에 신호를 보냄으로써 검증하는 것으로 구성된다. 이러한 메커니즘은 주어진 카드에 대해 항상 동일한 인증값이 떠돌아다니고, 복제되며 부정적으로 재생될 수 있어 이 카드의 클로닝이 가능하게 하므로 충분한 보호를 보장하지 않는다. 클론에 대항하기 위해 카드 인증의 수동 매커니즘이 데이터의 보존을 더욱 보장할 수 있는 능동 인증 메커니즘으로 대 체된다.
대칭형 능동 인증 메커니즘의 일반적인 개념은 다음과 같다: 인증 중에 전자칩과 애플리케이션은 각 인증에서 결정된 변수들의 목록에 적용된 함수의 결과인 인증값을 계산한다. 변수들의 목록에는 임의의 숫자, 즉, 각 인증에서 애플리케이션에 의해 정해진 데이터 아이템, 전자 칩과 애플리케이션에 읽혀진 비밀키 및 전자칩에 포함된 데이터 아이템을 포함할 수 있다. 전자칩에 의해 계산된 인증값이 애플리케이션에 의해 계산된 인증값과 동일할 경우 전자칩은 인증된 것으로 간주되고 전자칩과 애플리케이션 간의 트랜잭션이 인가된다.
이러한 인증 메커니즘은 널리 알려져 있지만, 대부분은 계산능력이 마이크로 프로세서의 능력과 적어도 일치될 것을 요구한다. 따라서 이러한 메커니즘들은 마이크로 프로세서 카드에 적합하지만, 훨씬 원시적인 계산방법을 가진 하드 와이어드 논리 칩에는 그렇지 않다.
대칭형 능동 인증 메커니즘을 하드 와이어드 논리 칩에 통합시키는 것이 가능할 때 제 1단계는 달성되었다. 예를 들면, FR-A-2 826 531호에는 이러한 메커니즘의 구체화를 가능하게 해주는 방법이 개시되어 있다. 이러한 메커니즘에 의해 만들어진 인증값이 의사 무작위 비트(pseudo random bit)의 시퀀스로서 번역될 수 있고, 입력 파라미터 중 적어도 하나를 검증함으로써 인증값을 계산하는 방법은 의사 무작위 비트를 생성시키는 방법이 될 수 있다는 점이 주목될 것이다.
그러나, 이러한 비밀키 메커니즘은 칩의 인증을 담당한 검증유닛, 예를 들면 공중전화, 터미널의 전자결재, 또는 이외의 대중교통의 관문에 존재하는 검증유닛 이 상기 칩에 수반된 비밀키를 읽는 것이 요구된다. 이것은 중대한 결점, 즉 애플리케이션에 링크된 어떠한 칩이라도 인증을 가능하게 하려면 모든 칩의 비밀키를 저장해야만 하든지, 어떠한 칩으로부터든지 비밀키를 추적하는 것이 가능한 마스터키(master key) 혹은 마더키(mother key)라 불리는 베이스 키를 저장해야 한다. 두 경우 모두에 있어서 각각의 유닛은 모든 배포된 칩의 비밀키를 추적하는 것이 가능하도록 충분한 정보를 저장하므로, 이들 중 어떤것의 복제품을 제작하는 것이 가능할 충분한 정보를 저장하게 된다. 따라서 검증 유닛들 중 하나에 대한 성공적인 침투는 애플리케이션 전체의 보안을 붕괴시키게 된다.
따라서 공개키를 가진 능동 인증 메커니즘을 특히 많은 수의 칩이 배치된 애플리케이션에서 하드 와이어드 논리 칩과 통합할 것이 시급히 요구되는데, 이는 매우 저렴하기 때문에 하드 와이어드 논리 칩을 사용하는 애플리케이션에 있어서 일반적이다.
이러한 메커니즘은 공개키 체계가 많은 숫자들이 관여한 수많은 연산을 요구하여, 실리콘 영역이 극히 좁고 연산논리가 극히 기초적인 논리의 하드 와이어링으로 축소되는, 하드 와이어드 논리 칩으로 통합되기에 부적절한 우선권을 부여하기 때문에 존재하지 않는다. 더욱이, 이런 기초적인 연산들은 피연산 함수가 비트 바이 비트(bit by bit)로 도입되고, 이러한 도입이 함수의 결과를 연산하기 위한 토대로 작용하는 내부 레지스터의 상태를 점차적으로 변조시킨다는 관점에서 일반적으로 일련의 시리즈로 수행된다.
예를 들면, 연산 y = r + s·c (또는 y = r - s·c)을 수행하여 인증값을 계 산하는 것이 공지되어 있는데, r은 무작위 아이템, s는 비대칭형의 한 쌍의 키(s, p)에 속한 비밀키, c는 애플리케이션에 의해 선택된 "챌린지(challenge)"값으로서 특정 임계값을 넘을 수 없으며, r 값은 항상 여기에 더해지는(혹은 차감되는) 값보다 커야한다. 이것은 임의의 정수 s, c 사이의 적어도 하나의 곱셈 연산의 수행을 수반한다. 그러나 이러한 곱셈은 비교적 복잡한 연산으로, 대다수 하드 와이어드 논리 칩의 범위 밖이다.
본 발명의 목적은 암호화값, 예를 들면 곱셈 연산을 명쾌하게 수행할 필요가 없는 칩 및 보안등급이 상대적으로 높은, 예를 들면 32 비트의 차수이며 극히 넓은 범위의 보안, 특히 재정관련 트랜잭션의 보호 등인 인증값인 암호화값의 연산방법을 정의하기 위한 것이다.
본 발명은 보안 애플리케이션의 통제하에 있는 장치의 암호화 연산을 수행하는 방법을 제공하는데, 장치와 연관된 비밀키의 적어도 일부분을 포함하는 두개의 팩터들 사이의 적어도 하나의 곱셈을 포함하는 연산에 의해 장치 내에서 암호화값이 생성된다. 본 발명에 따르면, 곱해지는 두개의 팩터 중 제 1 팩터는 이진법으로 표시되는 비트의 소정의 수(L)를 가지며, 곱해지는 두개의 팩터 중 제 2 팩터는 2진수로서 1로 표시된 각 쌍의 연속적인 비트 사이에서 적어도 L-1의 비트가 0으로 표시된 시퀀스를 가지는 1로 표시된 여러개의 비트를 포함하도록 구속된다. 곱셈은 복잡한 알고리즘에 따라 수행될 필요가 없다. 이는 제 2 팩터의 1로 나타낸 비트의 위치에 대해 각각 쉬프트된 제 1 팩터의 2진수 버전을 모음으로써 수행되면 족하다.
본 발명의 방법의 특성 중 또다른 유리한 점에 따르면:
- 비밀키는 본 장치에 연관된 비대칭형 암호화 키 쌍의 일부를 형성한다.
- 본 장치는 암호화값을 생성하는 하드 와이어드 논리를 포함하는 칩을 포함한다.
- 암호화값의 연산은 의사 무작위수(psudo-random number) 및 곱셈의 결과 사이의 덧셈 및 뺄셈을 더 포함한다.
- 제 1 및 제 2 팩터와 의사 무작위수는 의사 무작위수가 곱셈의 결과보다 크도록 결정되는데, 1로 표시된 제 2 팩터의 비트의 수는, 특히 s1/L보다 작거나 같은 최대의 정수와 기껏해야 같도록 선택될 수 있으며, s1은 2진법으로 표시된 의사무작위수의 비트의 수보다 적은 사전정의된 임계값이다.
- 곱해지는 두 팩터는 상기 비밀키의 일부뿐만 아니라 장치 외부에서 수행된 보안 애플리케이션에 의해 장치에 제공된 숫자를 포함한다.
- 상기 비밀키의 일부는 곱셈의 제 1 또는 제 2 팩터중 하나이다.
- 상기 비밀키의 일부가 곱셈의 제 1 팩터인 경우, 상기 2진수 버전은 예를 들면 비트형태로 같은 크기의 간격으로 각각 배치되며, 상기 크기는 사용가능한 공간의 총 크기와 상응한다. 또한 이것은 곱셈의 제 2 팩터의 1로 표시된 비트의 수로 나눠지며, 각각의 2진수 버전은 보안 애플리케이션에 의해 정의된 쉬프트의 함수로서 개개의 인터벌 내에 위치한다.
- 비밀키가 곱셈의 제 2 팩터인 경우, 이것은 (s-1)/(n-1) 비트의 인터벌의 하부 임계값 및 곱셈의 제 1 팩터에 할당된 비트의 블럭의 하부 임계값을 각각 분리시키는 비트의 수를 코딩함으로써 장치의 보조기억장치에 저장되고, 각각 연관된 인터벌 내에 배치되는데, S는 비밀키의 비트의 수이고 n은 비밀키의 1로 표시된 비트의 수이다.
- 변형으로서, 상기 비밀키는 비트의 수, 곱셈의 제 1 팩터에 할당된 연속 비트의 두 블럭을 분리시키는 비트의 수의 각 대표값을 코딩함으로써 장치의 보조기억장치에 저장될 수 있다.
- 상기 비밀키의 일부가 곱셈의 제 2 팩터인 경우, 이것은 1로 표시된 비트 세트의 위치를 코딩함으로써 장치의 보조기억장치에 저장된다.
- 상기 비밀키의 일부가 곱셈의 제 2 팩터인 경우, 제 1 팩터는 장치 내에서 생성된 의사 무작위수일 수 있고, 암호화값은 전자서명의 형태로 생성된다.
- 다른 애플리케이션에서, 암호화값은 장치 외부에서 수행되는 보안 에플리케이션의 트랜잭션에서 장치를 인증하기 위해 생성될 수 있다.
본 발명은 또한 본 장치와 연관된 비밀키의 적어도 일부를 포함하는 두 팩터 사이의 곱셈 장치를 포함하는 연산장치, 보안 애플리케이션과 상호작용하는 장치 및 암호화값을 생성하는 연산장치를 포함하는 암호화기능을 가진 장치를 제공한다. 본 발명에 따르면, 곱셈의 두 팩터 중 제 1 팩터는 2진수로 표현되는 비트의 소정의 수(L)를 가지고, 두 팩터 중 제 2 팩터는 1로 표현되는 연속 비트의 각 쌍 사이에 0으로 표현되는 적어도 L-1 비트의 시퀀스를 가지는, 1로 표현된 여러 비트를 포함하도록 압축된다. 곱셈장치는 제 2 팩터의 1로 표현된 위치에 대해 각각 쉬프트된 제 1 팩터의 2진수 버전을 어셈블링하는 장치를 포함한다.
본 발명의 유리한 점은 부정행위, 특히 하드 와이어드 논리 전자칩과 전자칩 외부의 보안 애플리케이션 사이의 트랜잭션 동안의 부정행위에 대항하여 자신을 보호하기 이해 암호화를 사용하는 장치의 우수한 보안을 얻을 수 있다는 것이다.
본 발명의 다른 유리한 점은, 본 장치가 작은 크기 때문에 전자칩 내에 장착되기 어려운 값비싼 곱셈장치를 요구하지 않고, 곱셈장치는 비밀키 혹은 챌린지의 쉬프트를 합산하는 덧셈장치로 대체되기 때문에 실행이 단순하다. 특히, 2차의 정수의 곱은 2진수로 분해된 비트를 왼쪽으로 쉬프트시키는 양에 도달한다.
본 발명의 또 다른 양태 및 유리한 점은 다음의 제한적이지 않은 실시예와 첨부된 도면을 참조하면 명백해질 것이다.
도 1은 암호 인증의 실시예를 묘사한 플로우차트이다.
도 2는 본 발명의 방법의 실시예를 도시한 것이다.
도 3은 본 발명의 방법의 제 1 변형된 실시예를 도시한 것이다.
도 4는 본 발명의 방법의 제 2 변형된 실시예를 도시한 것이다.
도 5는 본 발명에 따른 비밀키 저장의 제 1 변형을 도시한 것이다.
도 6은 본 발명에 따른 비밀키 저장의 제 2 변형을 도시한 것이다.
도 7은 본 발명의 제 1 실시예를 실행하는 암호화 기능을 가진 장치의 실시예를 도시한 것이다.
도 8은 본 발명에 따른 암호화 기능을 가진 장치의 사용례를 도시한 것이다.
도 1은 장치 내, 특히 하드 와이어드 논리를 구비한 전자칩 내에서 장치 외부의 보안 애플리케이션의 통제하에 암호화 연산을 실행하는 방법의 플로우차트를 도시한다.
특히, 이러한 방법은 전자칩과 애플리케이션 사이의 트랜잭션에 적용된다. 그러나, 이것은 또한 전자서명을 포함하는 암호화값의 연산에도 사용될 수 있다.
제 1단계(1)에서, 본 방법은 전자칩에 포함된 의사 무작위 발생기를 이용하여 무작위 아이템이라 불리는 의사 무작위수 r을 전자칩 내에서 생산하는 것으로 구성된다. 무작위 아이템 r은 트랜잭션에서 특징적이다.
제 2단계(2)에서, 본 방법은 전자칩으로부터 보안 애플리케이션으로 무작위 아이템 r에 관한 파라미터 x를 x = f(r) 이라는 함수 f를 토대로하여 전달하는 것으로 구성되는데, f는 전자칩과 보안 애플리케이션에 읽혀지는 공개키와 연관된다. 파라미터 x는 미리 연산되어 칩의 기억장치에 저장될 수 있는데, 각 파라미터 x는 각각 의사 무작위수 r에 연관된다.
예로써, 함수 f는 통상적으로 x = f(r) = gr의 형태인데, g는 보안 애플리케이션에 알려진 숫자이다. 당해 분야의 기술자에게 역시 잘 알려진 다른 가능성은, 함수 f 내에서 암호화 해쉬(hash) 함수 h 뿐만 아니라 애플리케이션에 관한 데이터 D를 사용하는 것이다(예를 들면, 트랜잭션의 양): x = f(r) = h(gr, D). 함수 f의 다른 사용례 역시 가능하다.
제 3단계(3)에서, 본 방법은 전자칩 내에서 암호화값 y를 입력 파라미터로서 트랜잭션에 특징적인 무작위 아이템 r 및 한쌍의 비대칭형 키(s, p), 예를 들면 p = gs에 속하는 비밀키를 적어도 가지는 곱셈장치에 의해 다음에 설명할 독창적인 방법에 따라 연산하는 것으로 구성된다. 암호화값은 인증값 V의 일부 또는 전부를 구성한다.
제 4단계(4)에서, 본 방법은 인증값 V를 애플리케이션으로 전달하는 것으로 구성된다.
제 5단계(5)에서, 본 방법은 보안 애플리케이션을 통해 입력 파라미터가 공개 파라미터로 구성되고, 공개키 p를 적어도 포함하는 검증 기능의 장치에 의해 인증값 V를 검증하는 것으로 구성된다. 인증값이 보안 애플리케이션에 의해 유효화되면 트랜잭션이 인가된다.
본 발명은 y = r + f1*f2(혹은 동일하게 y = r - f1*f2)의 형태로 연산을 수행함으로써 암호화값 y를 연산하고자 하는 것으로, r은 의사 무작위 발생기에 의해 연산된 무작위 아이템을 나타내며, 한 쌍의 팩터(f1, f2)는 비밀키 s와 보안 애플리케이션에 의해 제공되는 소위 챌린지 숫자 c를 포함한다. 팩터 f1, f2 의 2진수 표현은 팩터 f1이 L로 나타내지는 비트의 크기를 가지며 팩터 f2의 1로 표현되는 연속 비트들은 항상 자신들 사이에 0으로 표시된 적어도 L-1 비트의 시퀀스를 가진 다.
그리하여, 팩터 f1, f2의 곱은 제 2 팩터 f2의 1로 표시되는 비트의 위치를 따라 각각 쉬프트된 제 1 팩터 f1의 2진수 버전 b[1], b[2], .., b[n]의 숫자 n을 합산한 값에 해당한다. 숫자 n은 제 2 팩터 f2의 1로 표시되는 비트의 숫자에 종속적이다. 주어진 쉬프트에 대해, 곱셈의 결과를 나타내는 2진수로 b[h]값을 어셈블링하는 것에 의해 합산
Figure 112006063773310-PCT00001
가 매우 간단히 수행된다.
다음의 설명에서, 제 1 팩터 f1은 L 비트의 비밀키 s이고 제 2 팩터 f2는 보안 애플리케이션에 의해 제공되는 의사 무작위 챌린지 c인 본 발명의 방법의 제 1 실시예가 개시되어 있다. 따라서, 암호화값 y는 다음의 연산을 수행함으로써 결정된다:
y = r + s×(2i[1]+ ... + 2i[n])
여기서, i[1], ..., i[n]은 두 종속값을 가지는 애플리케이션에 의해 선택된 n개의 정수를 나타낸다:
- r값이 이것에 더해지는(혹은 차감되는) 숫자보다 크도록, i[1], ..., i[n]값은 s1으로 나타내지는 임계값과 같거나 작아야하는데, 상기 임계값은 r의 비트에 대한 사용가능한 공간을 정의한다.
- 제 2 종속값은 비밀키의 비트 크기와 적어도 동일한 거리 떨어지도록 다양 한 i[1], ..., i[n]값을 요구하는 것으로 구성된다.
따라서, 비밀키 s는 L 비트로 구성되고, 오름차순으로 정리된 다양한 정수 i[1], ..., i[n]을 산정하며, 보안 애플리케이션은 i[1]+L≤i[2], i[2]+L≤i[3], ..., i[n-1]+L≤i[n], 및 i[n]<s1과 같은 값을 제공한다.
따라서, 제 2 팩터의 1로 표시된 비트의 숫자 n은 s1/L보다 작거나 같은 최대 정수와 기껏해야 같도록 선택된다.
예를 들면 u = 5 나 6과 같이 일반적으로 매우 크지않은 u로 나타내는 최대값은 두개의 종속값에 의해 n값에 부과된다. 바람직하게는 n값은 초대값 u와 같도록 취해진다.
도 2는 n = 5인 본 발명의 방법의 실시예를 나타낸다. 다이어그램 B1은 L+s1의 크기를 가지는 사용가능한 공간 EU를 가지는 랜텀 아이템 r을 나타낸다.다이어그램 B2는 r에 더해지는(혹은 차감되는) 곱셈 s×c = s×(2i[1]+ ... + 2i[n])의 결과를 나타낸다. 비밀키 s는 챌린지 c의 1로 표시되는 비트의 위치에 따라 쉬프트된다. 그리하여 각각 i[1], i[2], i[3], i[4] 및 i[5]비트 만큼 쉬프트된 2진수 버전 b1 내지 b5를 얻게된다.
본 발명의 유리한 점은 상기 방법으로 얻어진 보안의 취득이다. 아마도 보안 애플리케이션에 의해 숫자 n 자체가 고정되지 않으면 다양한 정수값 i[h]를 추정하는 것이 매우 어렵기 때문이다.
다른 유리한 점은 비밀키와 챌린지의 곱이 본 발명에 따른 쉬프트(혹은 2진 수 버전)를 어셈블링한 양에 이르기 때문에 암호화값 y의 연산을 심각할 정도로 복잡하게 하지 않으면서 보안의 취득이 달성된다는 것이고, 연산은 직렬로 수행된다.
본 방법의 제 1 변형에 따르면, 비밀키의 n 쉬프트는 모두 같은 크기의 인터벌로 위치되는 것이 요구된다. 이 크기는 최대인 것이 좋고, 이것은 n으로 나뉘어진 사용가능한 공간 EU의 총 크기, 혹은, 만일 이 숫자가 정수가 아니라면, 이보다 작은 최대정수와 같다. 애플리케이션에 의해 선택된, 내부에 연관된 블럭이 위치하는 인터벌의 아래 임계값과 비밀키의 쉬프트에 상응하는 비트의 블럭 사이의 불일치가 j[1], j[2], ,,. j[n]로 나타내질 것이다.
더욱 엄밀히는, k를 사용가능한 공간(s1 + L 과 같다)의 총 크기로 하고, n은 k의 사용가능한 비트 가운데 비밀키가 떨어져서 나타나도록 하는 횟수이다. k는 n으로 나눌 수 있을것으로 추정된다(역으로, 이것을 유지하도록 k값은 약간 증가된다).
총 사용가능한 공간은 다음과 같은 k/n 위치를 포함하는 같은 크기의 n 개의 인터벌로 분해될 수 있다:
[0, k/n-1]∪[k/n, 2k/n-1]∪ ...∪[(n-1)k/n, k-1]
본 변형을 사용하면, 무작위 아이템 r에 더해질 수 있는 총 ((k/n)-L+1)n의 서로 다른 값이 존재함을 주장할 수 있다.
특히, 각 인터벌은 L이 비밀키의 쉬프트를 입력하는데 사용되는 L의 포지션 k/n을 포함한다. 그리하여 쉬프트에 사용되는 비트 블럭에 대하여 분배되는 각 인 터벌 내에 k/n-L의 자유 포지션이 남는다. 따라서, 1≤h≤n인 어느 h에 대해서도 j[h]는 0과 (k/n)-L 사이에 있는 값이고, (h-1)(k/n)-th 포지션과 쉬프트의 제 1 비트의 포지션 사이의 비트 수에 상응한다. 그리하여 (k/n)-L+1 값이 각 j[h]에 대해 가능하다. 최종적으로, 각각 다른 n개의 수(j[1], j[2], ,,. j[n])는 ((k/n)-L+1)n이다.
다시 말하면, 암호화값 y는 다음 연산을 수행함으로써 계산된다.
y = r + (2j[1]·s + 2k/n+j[2]·s + 2k/n+j[3]·s +... + 2(n-1)k/n+j[n]·s)
여기서 n개의 값 j[1], j[2], ,,. j[n]는 보안 애플리케이션에 의해 j[h]∈[0, (k/n)-L]의 방식으로 선택된다.
그리하여 각 2진수 버전 b[h]는 인터벌의 아래 임계값에 대해 j[h] 비트 만큼 쉬프트된다.
도 3에서, I[h] = [(h-1)k/n, hk/n-1]은 n = 5인 제 1 변형 실시예의 특정 경우에서의 h-th 인터벌을 나타낸다. 다이어그램 B3는 사용가능공간 EU를 가진 무작위 아이템 r을 나타내며, 다이어그램 B4는 더해지는(혹은 차감되는) 값을 나타낸다. 그리하여 I[h] 내의 인터벌에 각각 분배된 비밀키 s의 2진수 버전 b[h], 다시 말해서 b[1], b[2], b[3], b[4] 및 b[5]를 얻게된다. 각 2진수 버전 b[h]는 연관된 인터벌 I[h]의 아래 임계값에 대해 j[h] 비트 만큼 쉬프트된다.
본 발명의 방법의 제 2 변형에 따르면, n개의 불일치값 j[1], j[2], ,,. j[n]는 보안 애플리케이션에 의해 비밀키의 두 쉬프트에 상응하는 두개의 연속블럭 사이의 차이점을 나타내도록 선택된다. 제 1 변형에서와 같이 n개의 값은 [0, (k/n)-L]의 인터벌로 취해질 수 있다.
따라서 암호화값은 다음 연산을 수행함으로써 계산된다.
y = r + (2j[1]·s + 2L+j[1]+j[2]·s + 2L+j[1]+j[2]+j[3]·s + ... + 2(n-1)L+j[1]+j[2]+...+j[n]·s)
도 4는 n = 5인 본 발명의 방법의 제 2 변형의 실시예를 나타낸다. 다이어그램 B5는 사용가능한 공간 EU를 가지는 무작위 아이템 r을 나타내며, 다이어그램 B6은 더해지는(혹은 차감되는) 값을 나타낸다. 그리하여 각각 상호간에 j[1], j[2], j[3], j[4] 및 j[5]만큼 쉬프트된 다섯개의 2진수 버전 b[1], b[2], b[3], b[4] 및 b[5]를 얻게된다.
특정 경우에, 챌린치 c의 1로 표시되는 연속되는 두개의 비트를 분리해야하는 0으로 표시된 비트의 수의 종속을 약간 약하게 하는 것이 가능할 것이다. 그 대가로 본 발명의 범위에서 벗어나지 않는 범위 내에서 칩의 하드 와이어드 논리의 복잡성이 약간 증가하게 된다. 예를 들어 s = 장치의 f1인 비밀키가 n = 6인 L 비트의 수인 경우를 고려해보자. 챌린지 c = 2i[1]+ 2i[2]+ 2i[3]+ 2i[4]+ 2i[5]+ 2i[6]의 1로 표시된 두개의 연속비트가 0으로 표시되는 적어도 L/2 비트의 시퀀스에 의해 항상 분리되면(다시 말해, i[1]+L/2 < i[2], ..., , i[5]+L/2 < i[6] < s1), 이 챌린지를 두개의 항으로 쉽게 분해할 수 있다: c = f2 + f'2, 또는 f2 = 2i[1]+ 2i[3]+ 2i[5] 및 f'2 = 2i[2]+ 2i[4]+ 2i[6]. 각 두 항 f2, f'2은 본 발명에 따른 방법의 곱셈의 제 2 팩터가 되기 위한 조건을 만족한다: f2에서는 i[1]+L < i[3], < i[5]-L, f'2에서는 i[2]+L < i[4], < i[6]-L이다. 수행되기 위한 암호화연산은 y = r + s·f2 + s·f'2로 쓸 수 있는데, 두개의 곱 s·f2, s·f'2 각각은 본 발명에 따른 s의 쉬프트된 버전을 어셈블링하는 것에 의해 달성될 수 있다. 하드 와이어드 논리는 두 개의 가산(혹은 감산) 회로를 포함해야 한다.
본 발명의 다른 실시예에서, 곱셈에서의 s와 c의 역할은 역전된다: 제 1 팩터 f1은 의사 무작위수 c이고, 제 2 팩터 f2는 비밀키 s이다. 그리하여 암호화값 y는 다음 연산을 수행함으로써 계산된다:
y = r + c×(2i[1]+ ... + 2i[n])
여기서 r은 무작위 아이템을 나타내며, c는 보안 애플리케이션에 의해 선택된 챌린지이고, n개의 값 i[1], ..., i[n]은 본 장치에 연관된 비밀키의 0이 아닌 위치에 상응하거나, 이 비밀키의 위치에 상응한다. 다시말해 비밀키 s는 s = 2i[1]+ 2i[2]+... + 2i[n]이다. n개의 값 i[1], ..., i[n]은 제 1 실시예 동안 제공되는 종속값과 같다는 조건을 만족해야 한다.
이러한 암호화값의 연산 방법은 앞서 제 1 실시예에서 제공된 것과 동일하다.
그러나, 비밀키 s = 2i[1]+ 2i[2]+... + 2i[n]는 종래의 비밀키와 같이 모든 인증에 대해 동일하다. 이러한 제 2 실시예의 사용에 대해 두가지 경우가 발생가능하다:
- 비밀키는 일정수준의 보안 L0을 요구하는 특정 애플리케이션에 공헌된다. 이 경우, 비밀키 s의 구성은 비밀키 s를 적어도 (L0-1)비트에 의해 분리되는 0이 아닌 비트와 함께 사용함으로써 달성된다; 또는
- 비밀키는 다른 수준의 보안을 요구하는 다양한 애플리케이션에 사용된다. 그리고는 최상수준의 보안을 고려할 필요가 있다. 특히, 반대의 경우에, (L0-1)비트에 의해 분리되는 0이 아닌 비트를 가진 키의 구성은 크기가 L1 > L0인 챌린지를 야기시킬 수 있어서 챌린지의 쉬프트는 더이상 따로 떨어지지 않는다. 그리하여 비밀키의 0이 아닌 비트를 가질 필요성은 적어도 L-1 비트에 의해 분리되고, L은 비밀키 s를 사용하는 동안 마주칠 수 있는 최고 수준의 보안을 나타낸다.
비밀키 s를 저장하기 위한 제 1 해결책은 전체로서 저장하는 것으로 구성된다. 그러나, 높은 수준의 보안, 물리적 구속, 특히 전자칩의 기억장소의 크기 때문에, 주어진 비밀키의 크기는 가능한 저장소의 크기를 제한하는데, 특히 경제적인 이유 때문이다.
제 2 해결책은 비밀키의 0이 아닌 비트의 위치만을 저장함으로써 2i[1]+ 2i[2]+... + 2i[n]타입의 비밀키의 구조를 이용하는 것으로 구성된다. 상기 제 2 해결책은 향상될 수 있어, 더 적은 비트도 저장할 수 있다. 두 가지 방법이 가능하다.
S를 n개의 0이 아닌 비트를 가지는 비밀키의 크기로 하고, S-1이 n-1로 나누어질 수 있다고 가정하자. 제 1의 0이 아닌 비트는 소정의 크기의 비밀키가 되도록 S-1의 위치에 놓여진다. 그 후, 비밀키의 다른 S-1 비트는(S-1)/(n-1)의 n-1개의 인터벌 I[1], I[2], ..., I[n-1]로 쪼개진다.
각 인터벌 I[h]에, 크기 L인 챌린지를 나타내는 비트의 블럭에 배정된 비트의 블럭을 위치시킨다. 그리하여 각 인터벌은 배정된 비트의 블럭의 좌우로 분산된 (S-1)/(n-1)-L개의 사용되지 않은 비트를 포함한다. 최대값에서, (S-1)/(n-1)-L개의 비트들은 인터벌의 아래 임계값과 배정된 블럭 사이에 위치될 수 있다.
따라서, 0이 아닌 비트의 i[h] 위치를 저장하는 대신에, 각 인터벌의 아래 임계값과 고려되는 인터벌에 위치한 비트의 블럭 사이에 위치된 p[h] 비트의 수를 저장하는 것이 가능하다.
도 5는 0이 아닌 비트를 가지는 비밀키의 예시적인 저장을 나타낸다. 그리하여, 비트 p[1], p[2], p[3], p[4](예에서는 0) 및 p[5]의 수가 저장된다.
두 번째 방법은 챌린지에 관련된 블럭에 배정된 비트의 두개의 연속 블럭 사이에 위치한 비트의 수 및 각 말단(배정된 최초블럭 이전 및 배정된 최후블럭 이후)에 위치한 비트의 수를 저장하는 것으로 구성된다.
도 6은 비밀키가 5개의 0이 아닌 비트를 포함하는 경우의 본 방법을 나타낸다. 따라서, p[1], p[2], p[3], p[4], p[5] 및 p[6] 값들은 전자칩의 보조기억장치에 저장된다. 이 실시예는 제한적이지 않고, 몇몇 p[h]값은 0일 수 있다.
본 발명의 제 2 실시예에서, 특정 경우에 키 s의 1로 표시된 두개의 연속 비트를 분리하는, 0으로 표시된 비트의 수에 대한 종속을 약간 약하게 하는 것도 역시 가능하다. 그 대가로, 본 발명의 목적을 벗어남 없이 칩의 하드 와이어드 논리의 복잡성이 약간 증가한다.
본 발명의 방법은 장치, 특히 하드 와이어드 논리 전자칩을 장치의 외부 보안 애플리케이션의 통제하에 이러한 두개의 실체들 사이의 트랜잭션에서 부정행위에 대해 보호하기 위해 암호화값을 계산하는데 유용하다.
이런 방법은 또한 전자서명을 구성하는 암호화값을 계산하는 데 유용하다. 이 경우, 소위 챌린지라는 숫자 c는 보안 애플리케이션에 의해 제공되지 않지만, 서명될 메세지대로 전자 칩에 의해 계산된다.
도 7은 본 발명의 제 1 실시예를 실행하는 암호화기능을 가진 예시적인 장치를 나타낸다.
전자 칩과 같은 본 장치(10)는:
- 트랜잭션에서 특징적이고 파라미터 x와 연관된 무작위 아이템 r을 생성하는 의사 무작위수 발생기(12);
- 비밀키 s를 저장하는 제 1 기억장치(16);
- 파라미터 x를 저장하는 제 2 기억장치(14);
- 알려진 방식으로 데이터를 외부 보안 애플리케이션과 교환하는 인터페이스(24);
- 비밀키 s와 챌린지 c의 곱셈을 위한 회로(22);
- 곱셈의 결과와 발생기로부터 생성된 의사 무작위수를 산술적으로 조합하는 가산자(26)(혹은 감산자);
를 포함한다.
도 7에 도시된 실시예에서, 곱셈회로(22)는 제 1 팩터 f1, 특히 비밀키 s를 본 발명의 요구에 따라 쉬프트시킨다. 그 후, 얻어진 결과를 비트 하나하나 순서대로 가산자(26)에 전달한다.
병렬적으로, 의사 무작위 발생기(12)는 비트 하나하나 순서대로 무작위 아이템 r을 가산자(26)에 전달한다.
그리하여 가산자(26)는 무작위 아이템 r과 곱셈회로(22)에 의해 제공되는 결과를 비트 하나하나 순서대로 더한다.
본 장치(10)에 속한 다양한 수단들이 하드 와이어드 논리로서 실시된다.
도 8에 도시된 바와 같이, 상기 장치(10)는 예를 들면 신용카드의 형식으로 지지물(28)에 장착된다. 상기 지지물은 예를 들면 보안 애플리케이션(34)을 구비한 판독기(30)에 삽입된다.
예시적인 적용에 있어서, 지지물(28)을 판독기(30)에 삽입하는 것은 전자칩을 발동시키고 데이터, 특히 챌린지 c를 이곳으로 전달하는 보안 애플리케이션(34) 을 자동으로 활성화시킨다. 전자칩은 본 발명에 따라 계산된 암호화값 y(혹은 V)을 제공함으로써 인증한다. 도 1에 도시된 바와 같이, r과 관련된 파라미터 x가 보안 애플리케이션으로 전달된다.
이 후, x 및 V(혹은 y)값을 토대로 보안 애플리케이션은 검증을 진행한다.
종래의 방식에서, 파라미터 x가 x = gr 형태일 때, 암호화값이 y = r + sc형태이면 보안 애플리케이션에 의해 충족되는 공식은 gy = x·pc 형태가 될 수 있고, 만일 암호화값이 y = r - sc형태이면 보안 애플리케이션에 의해 충족되는 공식은 gy ·pc= x이다.
파라미터 x가 해쉬 함수(x = h(gr, D))인 경우에, 암호화값이 y = r + sc형태이면 검증 공식은 통상 h(gy/pc, D) = x이다. 바람직하게는, 그리고서 검증 공식이 어떠한 나눗셈을 포함하지 않도록 y = r - sc형태인 암호화값이 사용된다:
h(gy·pc, D) = x
인증값이 유효화되면, 칩의 인증은 정확하고 보안 애플리케이션은 전자칩에 정보를 제공한다. 보안 애플리케이션과 전자칩 사이의 트랜잭션은 이렇게 인가된다.
본 명세서 내에 포함되어 있음.

Claims (23)

  1. 보안 애플리케이션(34)의 통제 하에 장치(10) 내에서 암호화 연산을 수행하는 방법으로서, 암호화값(y)은 장치 내에서 장치와 연관된 비밀키(s)의 적어도 일부를 포함하는 두개의 팩터 사이의 곱셈을 적어도 하나 포함하는 연산에 의해 생성되며, 곱셈의 제 1 팩터는 2진수 형태의 소정 숫자의 비트 L을 가지고, 곱셈의 제 2 팩터는 2진수 형태로서, 1로 표시되는 각 쌍의 연속 비트들 사이에 0으로 표시되는 적어도 L-1 비트의 시퀀스를 가지는, 1로 표시되는 여러개의 비트를 포함하도록 종속되고, 1로 표시되는 제 2 팩터의 위치에 따라서 각각 쉬프트된 제 1 팩터의 2진수 버전을 모음으로써 곱셈이 행해지는 것을 특징으로 하는 암호화 연산 수행 방법.
  2. 제 1항에 있어서,
    비밀키(s)가 상기 장치(10)와 연관된 비대칭형 암호화 키 쌍의 일부를 형성하는 암호화 연산 수행 방법.
  3. 제 1항 또는 제 2항에 있어서,
    상기 장치(10)가 암호화값을 생성하기 위한 하드 와이어드 논리를 포함하는 칩을 포함하는 암호화 연산 수행 방법.
  4. 이전의 어느 한 항에 있어서,
    암호화값의 연산이 의사 무작위수(r)에 곱셈의 결과를 더하거나 빼는 것을 더 포함하는 암호화 연산 수행 방법.
  5. 제 4항에 있어서,
    의사 무작위수(r)가 곱셈의 결과보다 크도록 제 1 및 제 2 팩터(s, c)와 의사 무작위수(r)가 결정되는 암호화 연산 수행 방법.
  6. 제 5항에 있어서,
    제 2 팩터의 1로 표시되는 비트의 수는 s1/L보다 작거나 같은 최대의 정수보다 작거나 같도록 선택되는 암호화 방법으로서, s1은 2진수 형태인 의사 무작위수(r)의 비트의 수보다 작은 사전 정의된 임계값인 암호화 연산 수행 방법.
  7. 이전의 어느 한 항에 있어서,
    곱셈의 두 팩터가 상기 비밀키(s)의 일부뿐만 아니라 상기 장치 외부에서 실행되는 보안 애플리케이션에 의해 상기 장치에 제공되는 숫자(c)를 포함하는 암호화 연산 수행 방법.
  8. 제 1항 내지 제 6항 중 어느 한 항에 있어서,
    곱셈의 두 팩터가 상기 비밀키(s)뿐만 아니라 상기 장치에 의해 제공되는 숫자(c)를 포함하는 암호화 연산 수행 방법.
  9. 이전의 어느 한 항에 있어서,
    상기 비밀키(s)의 일부가 곱셈의 상기 제 1 팩터인 암호화 연산 수행 방법.
  10. 제 9항에 있어서,
    상기 2진수 버전이 비트의 크기가 같은 각개의 인터벌내에 배치되고 곱셈의 제 2 팩터의 1로 표시되는 비트의 수로 나누어지는 암호화 방법으로서, 상기 크기는 총 사용 가능 공간과 상응하고, 각 2진수 버전은 제 2 팩터의 1로 표시되는 비트의 위치를 따르는 쉬프트의 함수로서 각개의 인터벌 내에 배치되는 암호화 연산 수행 방법.
  11. 제 1항 내지 제 8항 중 어느 한 항에 있어서,
    상기 비밀키(s)의 일부가 곱셈의 제 2 팩터인 암호화 연산 수행 방법.
  12. 제 11항에 있어서,
    비밀키의 1로 표시되는 비트의 위치를 코딩함으로써 비밀키(s)가 상기 장치의 보조기억장치에 저장되는 암호화 연산 수행 방법.
  13. 제 11항 또는 제 12항에 있어서,
    (S-1)/(n-1) 비트의 인터벌의 아래 임계값과, 곱셈의 제 1 팩터(c)에 배정되고 각각 연관된 인터벌 내에 배치된 비트 블럭들의 아래 임계값을 각각 분리시키는 비트의 숫자를 코딩함으로써 비밀키(s)가 상기 장치의 보조기억장치(16)에 저장되는 암호화 방법으로서, S는 비밀키의 비트의 숫자이고, n은 비밀키의 1로 표시된 비트의 숫자인 암호화 연산 수행 방법.
  14. 제 11항 또는 제 12항에 있어서,
    곱셈의 제 1 팩터(c)에 배정된 연속비트의 두개의 블럭을 분리시키는 비트의 수를 각각 나타내는 비트의 수들을 코딩함으로써 비밀키(s)가 상기 장치의 보조기억장치(16)에 저장되는 암호화 연산 수행 방법.
  15. 이전의 어느 한 항에 있어서,
    상기 장치의 외부에서 실행되는 보안 애플리케이션의 트랜잭션에서 상기 장치를 인증하도록 암호화값(y)이 생성되는 암호화 연산 수행 방법.
  16. 제 1항 내지 제14항에 있어서,
    암호화값(y)이 전자서명의 형태로 생성되는 암호화 연산 수행 방법.
  17. 보안 애플리케이션(34)과 상호작용하는 수단(24), 암호화값(y) 연산 수단 들(12, 22, 26), 상기 장치와 연관된 비밀키(s)의 적어도 일부를 포함하는 두개의 팩터들의 곱셈 수단(22)을 포함하는 연산장치를 포함하는 장치로서, 곱셈의 제 1 팩터는 2진수 형태의 소정의 수의 비트 L을 가지고, 곱셈의 제 2 팩터는 2진수 형태로서 1로 표시되는 연속 비트들의 각 쌍 사이에 0으로 표시되는 적어도 L-1 비트의 시퀀스를 가지는 1로 표시되는 여러개의 비트를 포함하도록 종속되며, 곱셈장치는 제 1 팩터의 1로 표시되는 위치에 따라 각각 쉬프트되는 제 1 팩터의 2진수 버전을 모으는 장치를 포함하는 것을 특징으로 하는 암호화기능을 가진 장치.
  18. 제 17항에 있어서,
    의사 무작위수(r)를 생성시키는 수단(12) 및 곱셈의 결과를 더하거나 혹은 의사 무작위수로부터 차감하는 수단(26)을 포함하는 연산장치를 더 포함하는 암호화기능을 가진 장치.
  19. 제 18항에 있어서,
    상기 곱셈의 결과보다 의사 무작위수(r)가 크도록 제 1 및 제 2 팩터(s, c)와 의사 무작위수(r)가 결정되는 암호화기능을 가진 장치.
  20. 제 17항 내지 제 19항 중 어느 한 항에 있어서,
    연산장치들(12, 22, 26)이 하드 와이어드 논리로서 실시되는 암호화기능을 가진 장치.
  21. 제 17항 내지 제 20항 중 어느 한 항에 있어서,
    비밀키(s)의 상기 일부가 곱셈의 제 1 팩터인 암호화기능을 가진 장치.
  22. 제 17항 내지 제 19항 중 어느 한 항에 있어서,
    비밀키(s)의 상기 일부가 곱셈의 제 2 팩터인 암호화기능을 가진 장치.
  23. 제 22항에 있어서,
    비밀키(s)의 1로 표시된 비트의 위치를 코딩하기 위한 데이터를 저장하기 위해 채용된 기억장치(16)를 더 포함하는 암호화기능을 가진 장치.
KR1020067017942A 2004-03-02 2005-02-24 암호화 연산을 수행하는 방법 및 장치 KR101117680B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0402146A FR2867289A1 (fr) 2004-03-02 2004-03-02 Procede et dispositif pour accomplir une operation cryptographique
FR0402146 2004-03-02
PCT/FR2005/000443 WO2005096135A2 (fr) 2004-03-02 2005-02-24 Procede et dispositif pour accomplir une operation cryptographique

Publications (2)

Publication Number Publication Date
KR20060132923A true KR20060132923A (ko) 2006-12-22
KR101117680B1 KR101117680B1 (ko) 2012-04-02

Family

ID=34854982

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067017942A KR101117680B1 (ko) 2004-03-02 2005-02-24 암호화 연산을 수행하는 방법 및 장치

Country Status (9)

Country Link
US (1) US7822199B2 (ko)
EP (1) EP1721246B1 (ko)
JP (1) JP4772775B2 (ko)
KR (1) KR101117680B1 (ko)
CN (1) CN100561422C (ko)
AT (1) ATE419577T1 (ko)
DE (1) DE602005012060D1 (ko)
FR (1) FR2867289A1 (ko)
WO (1) WO2005096135A2 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005348306A (ja) * 2004-06-07 2005-12-15 Yokosuka Telecom Research Park:Kk 電子タグシステム、電子タグ、電子タグリーダライタ、およびプログラム
US8923519B2 (en) * 2009-05-29 2014-12-30 Alcatel Lucent Method of efficient secure function evaluation using resettable tamper-resistant hardware tokens
CN103460219B (zh) * 2011-04-11 2016-03-16 惠普发展公司,有限责任合伙企业 批量串行化
KR101501508B1 (ko) * 2013-09-16 2015-03-12 김정훈 데이터 암호화를 통한 인증방법 및 시스템
DE102016104771A1 (de) * 2016-03-15 2017-10-05 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren zum Erzeugen einer Authentifizierungsnachricht, Verfahren zum Authentifizieren, Authentifizierungsgerät und Authentifizierungsbasisgerät

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4338675A (en) * 1980-02-13 1982-07-06 Intel Corporation Numeric data processor
US4878027A (en) * 1987-08-03 1989-10-31 Hewlett-Packard Company Direct frequency synthesizer using powers of two synthesis techniques
EP0383985A1 (de) 1989-02-24 1990-08-29 Claus Peter Prof. Dr. Schnorr Verfahren zur Identifikation von Teilnehmern sowie zur Generierung und Verifikation von elektronischen Unterschriften in einem Datenaustauschsystem
US5309382A (en) * 1992-10-01 1994-05-03 Silicon Graphics, Inc. Binary shifter
FR2726667B1 (fr) * 1994-11-08 1997-01-17 Sgs Thomson Microelectronics Procede de mise en oeuvre de multiplication modulaire selon la methode montgomery
US6064740A (en) * 1997-11-12 2000-05-16 Curiger; Andreas Method and apparatus for masking modulo exponentiation calculations in an integrated circuit
ATE370490T1 (de) * 1998-06-03 2007-09-15 Cryptography Res Inc Ausgewogene kryptographische rechenmethode und apparat zur schlupfminimierung in smartcards und anderen kryptosystemen
AU6381799A (en) * 1998-06-03 2000-01-10 Cryptography Research, Inc. Secure modular exponentiation with leak minimization for smartcards and other cryptosystems
JP4541485B2 (ja) * 1999-03-15 2010-09-08 パナソニック株式会社 べき乗演算装置、べき乗剰余演算装置、楕円べき倍点演算装置、並びのそれらの方法、記録媒体
FR2806858B1 (fr) 2000-03-22 2002-05-03 France Telecom Procede cryptographique de protection contre la fraude
FR2809894B1 (fr) * 2000-05-31 2002-10-25 France Telecom Procede de cryptographie, microcircuit pour carte a puce et cartes a puce incluant un tel microcircuit
US6691491B2 (en) * 2000-08-18 2004-02-17 Pacmac, Inc. Vertical form, fill and seal packaging machine
US6745220B1 (en) * 2000-11-21 2004-06-01 Matsushita Electric Industrial Co., Ltd. Efficient exponentiation method and apparatus
FR2826531B1 (fr) * 2001-06-26 2003-10-24 France Telecom Procede cryptographique pour la protection d'une puce electronique contre la fraude
FR2828780B1 (fr) * 2001-08-20 2004-01-16 France Telecom Procede de realisation d'une unite cryptographique pour un systeme de cryptographie asymetrique utilisant une fonction logarithme discret
GB0127205D0 (en) * 2001-11-13 2002-01-02 Ibm Method and system for authentication of a user
US7062043B1 (en) * 2002-06-28 2006-06-13 The United States Of America As Represented By The National Security Agency Method of elliptic curve digital signature using coefficient splitting
US7724898B2 (en) * 2002-10-17 2010-05-25 Telefonaktiebolaget L M Ericsson (Publ) Cryptography using finite fields of odd characteristic on binary hardware
US7739521B2 (en) * 2003-09-18 2010-06-15 Intel Corporation Method of obscuring cryptographic computations

Also Published As

Publication number Publication date
US7822199B2 (en) 2010-10-26
FR2867289A1 (fr) 2005-09-09
JP4772775B2 (ja) 2011-09-14
WO2005096135A3 (fr) 2006-04-06
KR101117680B1 (ko) 2012-04-02
EP1721246A2 (fr) 2006-11-15
JP2007526703A (ja) 2007-09-13
WO2005096135A8 (fr) 2005-12-08
CN100561422C (zh) 2009-11-18
EP1721246B1 (fr) 2008-12-31
US20080137844A1 (en) 2008-06-12
ATE419577T1 (de) 2009-01-15
DE602005012060D1 (de) 2009-02-12
WO2005096135A2 (fr) 2005-10-13
CN1926508A (zh) 2007-03-07

Similar Documents

Publication Publication Date Title
JP4659149B2 (ja) 電子チップの不正行為に対する保護の非対称暗号通信法
CN107465505B (zh) 一种密钥数据处理方法、装置及服务器
US8374345B2 (en) Data processing system and data processing method
US4759063A (en) Blind signature systems
US8479018B2 (en) System for making program difficult to read, device for making program difficult to read, and method for making program difficult to read
US7607019B2 (en) Small memory footprint fast elliptic encryption
RU2236760C2 (ru) Способ и устройство для взаимной аутентификации двух блоков обработки данных
US9277406B2 (en) Methods and system for secure communication between an RFID tag and a reader
EP2158719B1 (en) Method of generating a public key for an electronic device and electronic device
US8291223B2 (en) Arithmetic circuit for montgomery multiplication and encryption circuit
US20120210406A1 (en) Forming credentials
CN104919754A (zh) 篡改检测装置、篡改检测方法、以及程序
KR101117680B1 (ko) 암호화 연산을 수행하는 방법 및 장치
US7388957B2 (en) Elliptic curve exponentiation apparatus that can counter differential fault attack, and information security apparatus
KR20010024912A (ko) 컴퓨터용 타원 곡선 암호화 방법 및 장치
JP3102692B2 (ja) カードの真性を証明する方法
US8065735B2 (en) Method of securing a calculation of an exponentiation or a multiplication by a scalar in an electronic device
US20110142231A1 (en) Prime number generating device, prime number generating method, and computer readable storage medium
Tentu et al. Sequential (t, n) multi secret sharing scheme for level-ordered access structure
Karageorgos et al. Chip-to-chip authentication method based on SRAM PUF and public key cryptography
JP2004054128A (ja) 暗号化装置
JP2002542504A (ja) 同一の秘密鍵の暗号アルゴリズムを使用して1つまたは複数の電子装置を保護する方法、当該方法の使用および当該電子装置
Barki et al. Private eCash in practice (short paper)
KR100971038B1 (ko) 다수의 엔티티와 그에 따른 장치에 부하를 분배하는암호화 방법
KR100906518B1 (ko) 도용으로부터 전자 칩을 보호하는 암호화 방법

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: 20150202

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160201

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190207

Year of fee payment: 8