KR101727130B1 - 암호화 키를 획득하기 위한 디바이스 및 방법 - Google Patents

암호화 키를 획득하기 위한 디바이스 및 방법 Download PDF

Info

Publication number
KR101727130B1
KR101727130B1 KR1020127021771A KR20127021771A KR101727130B1 KR 101727130 B1 KR101727130 B1 KR 101727130B1 KR 1020127021771 A KR1020127021771 A KR 1020127021771A KR 20127021771 A KR20127021771 A KR 20127021771A KR 101727130 B1 KR101727130 B1 KR 101727130B1
Authority
KR
South Korea
Prior art keywords
encryption key
key
computing device
encryption
seed
Prior art date
Application number
KR1020127021771A
Other languages
English (en)
Other versions
KR20120127607A (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 KR20120127607A publication Critical patent/KR20120127607A/ko
Application granted granted Critical
Publication of KR101727130B1 publication Critical patent/KR101727130B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3033Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
    • 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/34Encoding or coding, e.g. Huffman coding or error correction
    • 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/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

등록 단계 동안 제 1 암호화 키를 획득하기 위한 연산 디바이스로서, 연산 디바이스는 시드(seed)에 의존하여 제 1 암호화 키를 생성하기 위한 제 1 키 발생기를 포함하고, 연산 디바이스는 등록 단계에 후속하는 사용 단계 동안 연산 디바이스 상에서 제 1 암호화 키의 후속 암호화 사용을 위해 제 1 암호화 키를 연산 디바이스의 저장부에 저장하도록 구성되며, 연산 디바이스는 물리적 복제방지 기능부 - 키 발생기가 시드를 물리적 복제방지 기능부의 출력으로부터 유도하도록 구성됨 -, 및 물리적 복제방지 기능부의 출력으로부터 유도되는 제 2 암호화 키를 사용하여 제 1 암호화 키를 암호화하기 위한 암호화 모듈을 더 포함하고, 연산 디바이스는 제 1 암호화 키를 저장부에 암호화된 형태로 저장하도록 구성된다.

Description

암호화 키를 획득하기 위한 디바이스 및 방법{DEVICE AND METHOD FOR OBTAINING A CRYPTOGRAPHIC KEY}
본 발명은 등록 단계 동안 제 1 암호화 키를 획득하기 위한 연산(computing) 디바이스에 관한 것이며, 연산 디바이스는 시드(seed)에 의존하여 제 1 암호화 키를 생성하기 위한 제 1 키 발생기를 포함하고, 등록 단계 이후에 도래하는 사용 단계 동안 연산 디바이스 상에서 제 1 암호화 키의 후속 암호화 사용을 위해 제 1 암호화 키를 연산 디바이스의 저장부에 저장하도록 구성된다.
어떤 암호화 목적들을 위하여, 암호화 키들은 특수한 타입이 필요하다. 예컨대, 스마트 카드와 같은 연산 디바이스가 디지털적으로 메시지들을 서명할 수 있게 하기 위해 특정수한 서명 키를 필요로 한다. 서명 키를 사용하여, 디바이스는 메시지들의 완전성(integrity)을 보호하고, 그의 신빙성을 제공하는 메시지를 위한 서명을 생성할 수 있다. 이러한 메시지의 수신단에서, 디지털 서명은 서명 키에 대응하는 검증 키를 사용하여 신빙성에 대해 검증될 수 있다.
서명 키는 비밀이 유지되어야 한다. 예컨대, 메시지가 수신기에게 금액을 하나의 은행 계좌로부터 다른 계좌로 이체하도록 명령한다고 가정한다. 서명 키가 유출되면, 이하, 공격자들(attackers)로서 지칭되는 승인되지 않은 사람들은 승인된 서명들과 구별할 수 없는 서명들을 갖는 승인되지 않은 메시지를 생성하기 위해 서명 키를 사용할 수 있다. 재정 손실들은 서명 키의 비밀성의 위반의 결과로서 초래될 수 있다.
서명 및 검증은 공개 키 암호방식(cryptography)의 예이다. 공개 키 암호방식은 공개 키 및 비밀 키(private key)를 포함하는 키 쌍으로 작동한다. 비밀 키는 일반적으로 비밀로 유지된다. 키 쌍은 비밀 키가 공개 키로부터 연산될 수 없거나, 또는 적어도 비현실적으로 큰 연산 노력을 갖도록 구성된다. 상술한 서명 키는 비밀 키이고; 검증 키는 공개 키이다. 공개 키를 알고 있는 검증자(verifier)는 메시지를 검증하기 위해 공개 키를 사용할 수 있지만, 그는 비밀 키를 획득하기 위해 또는 메시지들을 서명하기 위해 공개 키를 사용할 수 없다.
키 쌍을 이용하는 공개 키 암호방식의 다른 예는 공개 키 암호화이다. 공개 키 암호화에서, 메시지는 암호화되고, 즉, 비밀 키가 암호해독을 위해 필요한 것과 같은 방식으로 그의 비밀성은 공개 키를 사용함으로써 보호된다. 공개 키만의 지식은 비밀 키를 획득할 수 없게 하고, 따라서, 공개 키로 암호화된 메시지를 암호해독하지 못한다.
RSA 암호방식 표준(PKCS #1 v2.1)은 RSA에 기반한 서명/검증 알고리즘의 2개의 예들: RSASSA-PSS 및 RSASSA-PKCS1-V1.5를 제공한다. 이러한 알고리즘들의 양자에 대하여 특수한 키가 필요하다. 2개의 키 유형들이 사용된다 : RSA 공개 키 및 RSA 비밀 키. RSA 공개 키와 RSA 비밀 키는 함께 RSA 키 쌍을 형성한다. 연산을 서명하기 위해 RSA 공개 키가 필요하다. 비밀 키를 생성하기 위해, 2개의 큰 소수들이 생성되어야 한다. 이러한 소수들의 크기는 일반적으로 적어도 512 비트이지만, 보다 안전한 애플리케이션들을 위해 보다 큰, 예컨대, 1024, 2048 비트 등이 선택될 수 있다.
해당 기술분야에서, 소수들을 생성하기 위한 알고리즘들이 알려져 있다. 예컨대, 시드로부터 시작하여, 소수 후보들의 목록, 예컨대, 홀수 정수들은 소수 테스트(primality test), 예컨대, 밀러-라빈(Miller-Rabin) 소수 테스트를 사용하여 소수성(primality)에 대해 순차적으로 검증될 수 있다. 일단 적합한 크기들의 2개의 소수들이 찾아지면, RSA 키 쌍이 구성될 수 있다. RSA 키 쌍 생성은 연산적으로 집중적인 프로세스이다. 상기 생성은 큰 수들에 대한 계산이 필요하다. 게다가, 상기 생성은 소수를 찾기 전에 목록으로부터 얼마나 많은 소수 후보들이 검사되어야 하는지 미리 예측될 수 없다. 바람직하지 않은 상황에서, 키 생성 알고리즘의 실행 시간은, 예컨대, 소수가 목록에서 단지 늦게 발견되는 경우 훨씬 길게 될 수 있다.
공개 키 암호방식은 또한 비대칭 암호방식으로 알려져 있다. 공개 및 비밀 키들은 또한 비대칭 키들로서 알려져 있다.
특별히 구성된 키들을 필요로 하는 다른 암호화 알고리즘들이 존재한다. 필요한 키의 타입은 알고리즘의 세부사항들에 의존한다. 비밀 키들을 사용하는 다른 암호화 알고리즘들은 DSA, Schnoor, EI Gamal 등과 같은 이산 로그 기반 암호 체계(cryptosystem)들에 대해 사용되는 비밀 키들을 포함한다.
키로서 임의의 랜덤 비트 스트링을 사용할 수 있는 다른 암호화 알고리즘들이 존재한다. 예컨대, AES 암호화 알고리즘은 암호화 키로서 임의의 128 비트 시퀀스를 사용할 수 있다. AES 암호화 알고리즘은 대칭 키를 사용하는 대칭 암호화의 예이고, 즉, 암호화 키의 정보는 연산 수고 없이 또는 단지 비교적 적은 연산 수고만으로 암호해독 키를 유도할 수 있게 한다. 메시지 인증 코드들은 대칭 키들을 사용하는 동안 어떤 레벨의 신빙성을 제공하는 알고리즘들의 예이다.
어떤 타입들의 암호화 키들, 특히 어떤 타입들의 비밀 키들의 생성 프로세스는 연산적으로 집중적일 수 있음이 알려져 있다. 그럼에도 불구하고, 비밀성을 개선하기 위해, 이런 타입의 암호화 키들은, 오프라인으로 생성되고, 그 후 연산 디바이스로 업로드되는 대신, 연산 디바이스 자체 상에서 종종 생성된다. 특히, 스마트 카드들과 같은 자원 제한 디바이스 상에서, 키 생성 프로세스는 긴 시간이 소요될 수 있다. 게다가, 공격자가 연산 디바이스의 데이터에 대한 액세스를 획득하게 되면, 암호화 키와 같은 민감한 정보의 저장부는 안전하지 않다.
암호화 키들을 획득하기 위한 공지된 시스템들과 연관된 문제는 시스템들이 암호화 키를 저장함에 의존한다는 것인데, 암호화 키는 공격자들이 연산 디바이스의 콘텐츠를 획득하게 되면 안전하지 않다.
암호화 키를 획득하기 위한 연산 디바이스를 갖는 것은 장점이 될 것이며, 암호화 키의 획득 및/또는 저장의 보안은 증가한다.
본 발명에 따른 등록 단계 동안 제 1 암호화 키를 획득하기 위한 연산 디바이스는 시드(seed)에 의존하여 상기 제 1 암호화 키를 생성하기 위한 제 1 키 발생기를 포함한다. 상기 연산 디바이스는 상기 등록 단계 이후에 도래하는 사용 단계 동안 상기 연산 디바이스 상에서 상기 제 1 암호화 키의 후속 암호화 사용을 위해 상기 제 1 암호화 키를 상기 연산 디바이스의 저장부에 저장하도록 구성된다. 상기 연산 디바이스는 물리적 복제방지 기능부(PUF)를 더 포함한다. 상기 키 발생기는 상기 시드를 상기 물리적 복제방지 기능부의 출력으로부터 유도하도록 구성된다. 상기 연산 디바이스는 상기 물리적 복제방지 기능부의 출력으로부터 유도되는 제 2 암호화 키를 사용하여 상기 제 1 암호화 키를 암호화하기 위한 암호화 모듈을 더 포함한다. 상기 연산 디바이스는 상기 제 1 암호화 키를 상기 저장부 상에 암호화된 형태로 저장하도록 구성된다.
이러한 연산 디바이스는, 등록 단계 이후 몇몇 시점에서 연산 디바이스가 상기 제 1 암호화 키를 필요로 하는 경우, 상기 연산 디바이스는 상기 제 1 암호화 키를 재생성할 필요가 없고, 상기 연산 디바이스는 단지 상기 제 2 암호화 키 및 상기 암호화된 제 1 암호화 키로의 액세스만을 필요로 하는 그러한 방식으로 구성된다. 상기 연산 디바이스가 상기 물리적 복제방지 기능부에 대한 액세스를 갖기 때문에, 상기 제 2 암호화 키는 상기 연산 디바이스에 의해 획득될 수 있다. 상기 제 2 암호화 키를 사용하여, 상기 제 1 암호화 키는 암호해독되고 사용될 수 있다.
이는 상기 제 1 암호화 키에 대한 키 생성 프로세스에 소모하는 시간을 상기 제 2 키에 대한 키 유도 프로세스에 소모하는 더 적은 시간으로 교환하는 것을 가능하게 한다. 예컨대, 상기 제 1 암호화 키가 RSA 키 쌍이고, 상기 제 2 키가 AES 키인 상황을 고려한다. RSA 키 쌍의 생성은 AES 키의 유도보다 훨씬 더 길게 취해진다. RSA 키를 생성하기 위해, 복수의 소수 테스트들이 큰 수의 계산을 사용하여 실행되는 반면, AES 키는 PUF 출력에 대한 단일 해시(hashing) 연산으로 유도될 수 있다. PUF의 출력은 추가 프로세싱 없이, 키로서, 예컨대, AES 키와 같은 대칭 키로서, 심지어 직접 사용될 수도 있다.
이는, 또한, 예컨대, Paillier 암호 체계와 같은 다른 RSA-유사 암호 체계들에 적용된다. Paillier에 대한 공개/비밀 키 쌍을 생성하는 것은 2개의 큰 소수들을 찾는 것을 포함한다. 상기 연산 디바이스의 사용 단계 동안 키 생성 프로세스를 방지하는 것은 장점이다.
상기 연산 디바이스는 공격자들에 대한 보안을 증가시켜왔다. 상기 제 1 암호화 키는 암호화된 형태로 저장된다. 공격자가 저장되고 암호화된 제 1 암호화 키의 사본을 획득할 수 있을지라도, 공격자가 상기 연산 디바이스 상에 영구적으로 저장되지 않는 상기 제 2 암호화 키를 가지고 있지 않기 때문에, 사본은 공격자에게 쓸모없게 될 것이다. 공격자가 상기 연산 디바이스에 저장된 데이터에 대한 액세스를 획득하면, 공격자는 또한 반드시 연산 디바이스들의 기능에 대한 제어를 획득하지 못한다. 따라서, 그 키가 상기 디바이스 상에 디지털 형태로 저장되지 않고, 단지 상기 물리적 복제방지 기능부에 대한 액세스를 이용하여 유도될 수 있기 때문에, 상기 제 2 암호화 키를 획득하는 것은 공격자에게 추가적인 어려움을 제기한다.
이러한 보안에서의 증가는 상기 제 1 암호화 키에 대한 키 생성 프로세스를 반복적으로 경험하지 않고도 획득될 수 있음은 발명자들의 식견이었다. 상기 연산 디바이스의 보안을 증가시키기 위한 다음의 대안적인 해결책을 고려한다: 상기 연산 디바이스의 사용 동안, 상기 시드는 상기 물리적 복제방지 기능부의 출력으로부터 유도된다. 상기 제 1 키는 사용 단계 동안 상기 시드로부터 생성된다. 결정 키(deterministic key) 발생기를 사용함으로써, 동일한 제 1 암호화 키는 그것이 필요할 때마다 생성될 것이다. 이러한 해결책은 상기 제 1 암호화 키를 디지털 형태로 저장하는 것을 방지하지만, 이는 상기 키가 사용될 수 있기 전에 매우 긴 부트-업(boot-up) 절차를 요구한다. 각 부트-업 절차 동안, 상기 제 1 키는 상기 키 발생기를 이용하여 상기 시드로부터 다시 유도된다. 이러한 해결책은 상기 제 1 암호화 키를 저장하는 것을 방지하지만, 이는 상기 제 1 키가 필요할 때마다 키 발생기의 사용을 요구한다. 상기 제 1 암호화 키를 암호화된 형태로 저장함으로써, 반복된 재생성에 소모하는 이러한 시간이 방지될 수 있다.
상기 물리적 복제방지 기능부의 출력으로부터 유도되는 시드로부터 상기 제 1 암호화 키를 생성하는 것 및 또한 동일한 출력으로부터 유도되는 제 2 타입의 키를 이용하여 상기 제 1 암호화 키를 암호화하는 것은 추가적인 장점들을 갖는다. 제 2 키가 마음대로 재생성될 수 있는 대신; 보안 키 저장이 상기 제 2 키를 저장하기 위해 필요하다는 것이 방지된다. 이러한 제 2 암호화 키가, 예컨대, 비휘발성 메모리에 영구적으로 저장될 예정이었으면, 상기 제 2 암호화 키에 대한 액세스가 상기 제 1 암호화 키의 암호해독을 허용하기 때문에, 상기 제 2 암호화 키는 보안 저장부에 저장되어야만 함에 유의한다. 보안 저장부, 예컨대, 보안 메모리는 보통의 메모리에 비해 비교적 비싸다. 그 결과, 많은 연산 디바이스들은 이러한 보안 저장부를 소유하지 않거나, 또는 비교적 작은 부분만을 갖는다. 게다가, 보통의 메모리보다 더 보안이 고려된 어떤 타입의 저장부, 예컨대, 퓨즈들(fuses)이 사용될지라도, 그것은 침략적인 공격자들에 대한 저항력이 PUF들보다 더 적다.
상기 제 2 키를 상기 PUF의 출력으로부터 유도하는 것은 상기 제 2 키를 저장할 필요를 방지하고, 이는 보안 저장부에서 상기 제 1 암호화 키를 저장할 필요를 방지한다. 게다가, 시드 및/또는 키들을 유도하기 위해 상기 물리적 복제방지 기능부의 출력을 사용함으로써, 난수 발생기가 필요한 것이 방지된다. 난수 발생기들을 제공하는 것은 연산 디바이스의 가격을 증가시킨다. 특히, RFID들과 같은 저가 애플리케이션들에서, 그러나, 심지어 스마트 카드들 상에서, 개별적인 난수 발생기가 방지될 수 있다면, 그것은 장점이다. 많은 연산적으로 제한된 디바이스들은 난수 발생기를 소유하지 않지만, PUF로서 사용될 수 있는 컴포넌트들을 소유한다. 이러한 컴포넌트들은 SRAM 메모리와 같은 메모리를 포함할 수 있다.
게다가, 상기 제 1 키를 상기 물리적 복제방지 기능부의 출력으로부터 유도함으로써, 시스템의 부인 방지(non-repudiation) 속성들을 증가시킨다. 상기 물리적 복제방지 기능부 및 키 생성 동안 사용될 수 있었던 임의의 다른 데이터, 예컨대, 헬퍼 데이터(helper data)가 주어지면, 특정한 제 1 암호화 키가 이러한 특정 물리적 복제방지 기능부와 링크됨이 검증될 수 있다. 따라서, 특정 서명이 특정 연산 디바이스로 이루어졌음을 부인하는 것은 더 어렵게 된다. 부인 방지 속성들은 헬퍼 데이터와 같은 다른 데이터를 상기 연산 디바이스 상에 저장되지 않은 비밀 키로 서명함으로써, 및/또는 다른 데이터를 상기 연산 디바이스로부터 떨어져 신뢰된 서버로 저장함으로써, 더 증가될 수 있다. 대응하는 공개 키는 상기 연산 디바이스 상에, 예컨대, 읽기 전용 메모리에 저장될 수 있고, 사용 단계 및/또는 등록 단계 동안 다른 데이터를 검증하기 위해 사용될 수 있다.
연산 디바이스들의 예들은 RFID(무선-주파수 식별) 태그들, 스마트 카드들, 모바일 전화들, 셋-톱 박스들 등을 포함한다. 상기 연산 디바이스는 그의 기능의 모두 또는 일부를 구현하기 위한 및/또는 상기 PUF을 수행하기 위한 집적 회로들 및/또는 필드 프로그램가능 게이트 어레이(FPGA)를 포함할 수 있다.
등록 단계는 후속 사용을 위해 상기 연산 디바이스를 더 구성할 수 있다. 예컨대, 상기 등록 단계 동안, 상기 연산 디바이스의 미래 사용자의 식별이 업로드될 수 있다. 예컨대, 상기 연산 디바이스는 전자 여권으로서 사용될 수 있으며, 여것, 등록 단계 동안그것의 사용자의 식별이 업로드된다. 식별은, 예컨대, 상기 식별을 서명하고 상기 서명을 저장함으로써, 상기 제 1 암호화 키와 암호적으로 링크될 수 있다. 상기 비밀 키에 대응하고, 상기 키 생성 후 또는 그동안 유도될 수 있는 는 공개 키는 상기 연산 디바이스와 떨어져, 예컨대, 서버로 업로드될 수 있다. 이는 상기 식별의 후속 검증을 허용한다. 이러한 방식으로, 상기 여권의 속성들을 식별하는 것은 여권의 하드웨어와 링크된다. 이는 데이터를 저장하는 연산 디바이스, 예컨대, 식별을 저장하는 전자 여권들의 위조를 더 어렵게 한다.
등록 동안, 또한 소위 헬퍼 데이터가 생성될 수 있다. 헬퍼 데이터는 PUF의 출력에서 발생할 수 있는 에러들의 정정을 돕는다. 상기 헬퍼 데이터를 이용하여, 상기 출력 및 추가 출력은 특정 목적을 위해 항상 동일하다.
상기 제 1 암호화 키를 생성하기 위한 키 발생기는 RSA 비밀 키를 생성할 수 있다. 상기 키 발생기는 또한 대응하는 공개 키를 생성할 수 있다. 상기 키 발생기는 또한 상기 비밀 키의 대안적인 표현들을 연산할 수 있다. 특히, RSA에 대하여, 비밀 키들에 대한 적어도 2개의 표현들, 개별 소수들이 저장되는 하나 및 이것이 행해지지 않은 하나가 존재한다. 소수들을 저장하는 것은 차이니즈 나머지 정리(Chinese remainder theorem)를 이용하여 서명들의 더 빠른 연산을 허용한다. 상기 소수들을 저장하지 않는 것은 소위 기밀(secret) 또는 비밀(private) 지수를 저장함으로써 가능하다.
상기 키 발생기는 소수성에 대하여 소수 후보들의 시퀀스를 테스트함으로써, 소수들에 대해 탐색할 수 있다. 상기 시퀀스는 상기 시드로 시작하는 선형 시퀀스일 수 있다. 상기 시드는 상기 시퀀스를 생성하기 위해 의사 난수 발생기를 초기화하도록 사용될 수 있다. 상기 의사 난수 발생기에 의존하여, 제 1 암호화 키는 탐색될 수 있고 결국 찾아질 수 있다. 의사 난수 함수들의 예들은 선행 시프트 레지스터들, 스트림 암호(stream cipher)들 등을 포함한다. 예컨대, 블록 암호, 예컨대, AES는 상기 시드로부터 시작하여 반대 모드로 실행될 수 있다.
등록 단계 후, 상기 제 1 암호화 키는 암호화 목적들에 대해 사용될 수 있다. 예컨대, 상기 제 1 암호화 키가 서명 키이면, 상기 키는 메시지들을 서명하기 위해 사용될 수 있고, 상기 제 1 암호화 키가 암호화 키이면, 상기 키는 메시지들을 암호화하기 위해 사용될 수 있으며, 그 외 다른 경우들도 가능하다. 이러한 방식으로, 상기 메시지들의 각각의 신빙성 및 비밀성이 개선된다.
많은 타입들의 물리적 복제방지 기능부들이 사용될 수 있다. 상이한 타입들이 하기에 설명될 것이다. 물리적 복제방지 기능부가 사용될 수 있으며, 여기서, 출력은 복수의 가능한 시도들(challenges)로부터 선택된 시도에 의존한다. 이러한 상황에서, 추가 출력을 생성할 때 사용된 시도는 상기 추가 출력이 상기 출력과 동일하거나, 적어도 실제 목적들을 위해 충분히 그와 같이 되도록 선택된다. 양자의 시도들은 동등하게 선택될 수 있다. 상기 연산 디바이스 외부의 서버로부터 수신되는 등의 상기 시도는 상기 연산 디바이스 상에 저장될 수 있다. 단지 단일 시도만을 허용하는 물리적 복제방지 기능부가 사용될 수 있다.
상기 시드는 많은 방식으로 상기 물리적 복제방지 기능부의 출력으로부터 유도될 수 있다. 예컨대, 해시 함수 또는 키 유도 함수가 상기 출력에 적용될 수 있다. 임의의 해시 함수는 동일한 해시 함수의 상이한 애플리케이션들 사이의 독립을 증가시키기 위해 솔트될(salted) 수 있음에 유의한다. 이러한 기능은 PUF와 통합될 수 있다. 상기 해시 함수는 암호화 해시 함수 또는 범용 해시 함수 또는 (강한) 추출기일 수 있다.
상기 제 1 암호화 키를 상기 연산 디바이스의 저장부 상에 저장하는 것은 상기 제 1 암호화 키를 재생성하게 하는 정보를 저장함으로써 수행될 수 있다.
상기 제 1 암호화 키를 암호화하기 위한 암호화 모듈은 전용 하드웨어로서 구현될 수 있다. 속도에서 비교적 큰 증가를 획득하기 위해 비교적 몇몇 게이트들이 요구되기 때문에, 암호화를 위해 전용 하드웨어를 사용하는 것은 좋은 트레이드오프일 수 있다. 유사하게, 많은 수의 연산을 위한 보조 처리기가 암호화 사용, 예컨대, 키 생성, 서명 등을 위해 전용 하드웨어로 구현될 수 있다.
바람직하게, 상기 제 2 암호화 키의 유도는 상기 연산 디바이스 상에서 상기 제 1 키의 생성보다 더 빠르게 실행되는 키 유도 알고리즘을 사용한다.
상기 제 1 암호화 키는 공개/비밀 키 쌍의 비밀 키 및 선택적으로는 공개 키일 수 있다. 상기 공개/비밀 키 쌍은 RSA 공개/비밀 키 쌍과 같은 정수 인수분해 기반 공개 키 암호 체계들에 대한 키들일 수 있다. 상기 공개/비밀 키 쌍은 이산 로그 기반 공개 키 암호 체계들에 대한 키들일 수 있다. 상기 공개/비밀 키 쌍들은 타원 곡선 기반 공개 키 암호 체계들에 대한 키들일 수 있다. 필요한 경우, 상기 공개 키는 상기 비밀 키로부터 비교적 빠르게 유도될 수 있다.
실시예에서, 상기 연산 디바이스는 사용 단계 동안, 상기 물리적 복제방지 기능부의 추가 출력으로부터 유도되는 상기 제 2 암호화 키를 사용하여 상기 저장되고, 암호화된 제 1 암호화 키를 암호해독하기 위한 암호해독 모듈을 포함한다.
상기 암호해독 모듈을 사용하여, 상기 제 1 암호화 키는 상기 물리적 복제방지 기능부의 추가 출력으로부터 복원될 수 있다. 사용 단계 동안 필요한 기능부, 예컨대, 암호해독 모듈은, 예컨대, 소프트웨어 업데이트에서 등록 단계 동안 필요한 기능보다 더 늦은 시점에 상기 연산 디바이스에 제공될 수 있다. 상기 제 1 암호화 키를 생성하기 위해 필요한 기능은 상기 제 1 암호화 키가 생성되어 저장된 후에 제거될 수 있다. 상기 제 1 암호화 키를 암호해독하기 위해 필요한 기능은 상기 제 1 암호화 키를 암호화 및/또는 생성하기 위해 필요한 기능을 덮어쓰기(overwrite) 할 수 있다. 기능은, 예컨대, 소프트웨어 패치의 형태로, 또는 FPGA를 구성하기 위한 비트 스트림의 형태 등으로, 상기 연산 디바이스 상에서 수신될 수 있다.
상기 암호해독 모듈은 그 기능의 대부분을 상기 암호화 모듈과, 특히, 그것들이 대칭 알고리즘을 사용하는 경우, 공유할 수 있다.
실시예에서, 상기 제 1 암호화 키는 암호화 공개-비밀 키 쌍 중 적어도 비밀 키를 포함한다. 많은 암호화 알고리즘들에 대한 비밀 키들을 생성하는 것은 연산적으로 고가이다. 예컨대, 암호화 또는 서명 애플리케이션 중 어느 하나에 사용하기 위해 비밀 RSA 키들을 생성하는 것은 연산적으로 고가이다. 그것이 최고 레벨의 보안을 위해 권장되지 않지만, 서명 및 암호화 양자에 대해 동일한 RSA 비밀 키를 사용하는 것이 가능하다.
실시예에서, 상기 제 2 암호화 키는 대칭 키이다. 대칭 키를 유도하는 것은 연산적으로 저가이다. 많은 암호 체계들에 대하여, 대칭 키를 유도하는 것은, 예컨대, 키 유도 알고리즘 또는 해시 함수 등을 이용하여 비트-스트링을 생산하기에 충분하다. 대칭 암호화 알고리즘들의 예들은 AES, DES 등과 같은 블록 암호들, 스트림 암호들, 예컨대, RC4 및 1회용 암호표들을 포함한다. 1회용 암호표들의 암호화 및 암호해독 알고리즘들이 적용될 수 있음에도 불구하고: 상기 제 2 암호화 키는 통상적으로 한 번보다 많이 사용될 것이다.
실시예에서, 상기 제 2 암호화 키는 상기 시드를 포함한다. 상기 시드는 상기 제 2 암호화 키로서 또는 그의 일부로서 재사용될 수 있다. 이는 시드와 제 2 암호화 키의 분리되지 않은 유도가 필요하다는 장점을 갖는다. 특히, 상기 제 2 암호화 키는 상기 시드와 동일할 수 있다.
실시예에서, 상기 암호화 모듈에 의해 수행되는 상기 암호화 연산은 상기 제 2 암호화 키와 상기 제 1 암호화 키 사이의 차이를 연산하는 것을 포함한다. 상기 제 2 암호화 키 및 상기 제 1 암호화 키의 길이, 예컨대, 비트-크기는 전형적으로 유사하다. 특히, 상기 제 2 암호화 키는 적어도 상기 제 1 암호화 키의 비트-크기만큼 긴 비트-크기를 갖도록 선택될 수 있다. 암호화 키들의 크기들은 사전에 예측될 수 있고, 메시지들과 비교하는 경우 비교적 짧다. 이러한 상황에서, 상기 제 1 암호화 키를 암호화하기 위한 빠른 방법은 이들 2개의 스트링들 사이의 차이를 연산하는 것이다. 특히, 상기 제 2 암호화 키가 상기 시드를 포함하거나 상기 시드와 동등한 경우, 상기 시드를 유도하는 효율적인 구현, 상기 제 2 암호화 키의 유도, 및 상기 제 1 암호화 키의 암호화가 획득된다. 상기 제 2 암호화 키는 상기 시드를 포함할 수 있다. 예컨대, 상기 제 2 암호화 키의 제 1 부분은 상기 시드를 포함할 수 있고, 상기 제 2 암호화 키의 제 2 부분은 추가 암호화 키를 포함할 수 있다. 상기 추가 암호화 키는 상기 시드와 상기 제 1 암호화 키 사이의 차이를 암호화하기 위해 사용될 수 있다. 예컨대, 상기 추가 암호화 키는 AES 키와 같은 대칭 키일 수 있다.
실시예에서, 상기 제 2 암호화 키를 상기 출력으로부터 유도하는 것은 해시 함수를 상기 출력에 적용하는 것을 포함한다. 상기 PUF의 출력의 분포는 바람직하게는 실제 랜덤 분포와 구별할 수 없다. 그러나, 이것이 그 경우가 아닐지라도, PUF가 사용될 수 있다. 실제 랜덤 출력으로부터의 PUF의 유도를 마스킹(mask)하기 위해, 해시 함수 또는 (강한) 추출기가 사용될 수 있다. 상기 해시 함수의 적용 후, 이러한 유도들은 뚜렷하지 않다. 예컨대, 상기 PUF가 '0' 비트들 대신 '1' 비트들로 향한 약간의 바이어스를 가지면, 이러한 바이어스는 상기 해수 함수의 적용 후에 사라진다. 해시 함수들의 예들은 SHA-1, SHA-256 등과 같은 암호화 해시 함수들, CRC와 같은 비-암호화 해시 함수들을 포함한다. 또한, 범용 해시 함수들이 사용될 수 있다.
실시예에서, 상기 저장부는 상기 연산 디바이스의 외부에 있고, 상기 연산 디바이스에 연결될 수 있다. 이는, 연산 디바이스가 상기 암호화된 버전을 추후 획득하는 경우, 상기 연산 디바이스가 단지 상기 제 1 암호화 키에 대한 액세스를 획득한다는 장점을 갖는다. 임의의 다른 암호화 디바이스가 상기 암호화된 제 1 암호화 키를 획득하는 경우, 그 디바이스가 정확한 제 2 암호화 키를 유도하기 위해 필요한 PUF에 대한 액세스를 갖지 못하기 때문에, 제 2 암호화 키는 사용할 수 없을 것이다. 이러한 메커니즘은 상기 연산 디바이스 상에서 기능을 언록(unlock)하기 위해 사용될 수 있다. 예컨대, 상기 연산 디바이스는 상기 제 1 암호화 키로 암호화된 소프트웨어를 포함할 수 있다. 상기 암호화된 암호화 키가 상기 연산 디바이스에서 수신되는 경우에만, 상기 암호화된 소프트웨어를 사용하는 것이 가능하다.
실시예에서, 상기 제 1 암호화 키를 생성하는 것은 소수를 획득하는 것을 포함한다. 상기 제 1 암호화 키는 복수의 키 컴포넌트들을 포함하며, 상기 키 컴포넌트들 중 적어도 하나는 소수이다. 상기 소수를 획득하는 것은 상기 시드에 의존하여 그에 의해 결정되는 후보 소수들을 생성하는 것 및 상기 소수들이 획득될 때까지, 상기 후보 소수들을 소수성에 대해 테스트하는 것을 포함한다. 인덱스는 상기 소수를 획득하기 위해 테스트되었던 후보 소수들의 수를 나타낸다. 상기 제 1 암호화 키를 암호화하는 것은 상기 소수를 상기 인덱스로 나타내는 것을 포함한다.
소수를 생성하는 하나의 방법은 소수 후보들을 생성하는 것이다. 각 소수 후보는 그것이 소수인지를 알기 위해 테스트된다. 상기 소수 후보가 소수가 아닌 경우, 그것은 폐기되고, 다음 소수 후보가 생성된다. 상기 소수 후보가 소수이면, 소수 생성이 종료된다. 어떻게 상기 소수 후보들이 상기 시드로부터 생성되는지 및 얼마나 많은 소수들이 테스트되었는지를 알면, 사용 단계 동안 훨씬 빠르게 상기 소수를 재생성할 수 있다. 사용 단계 동안, 상기 소수 후보들은 재생성되지만 테스트되지 않는다. 일단 동일한 수의 소수 후보들이 상기 사용단계 동안 생성되면, 등록 단계 동안 정확한 소수가 찾아진다. 소수 테스트들에 소모되는 시간이 방지된다. 소수 후보들의 목록이 충분하게 규칙적인 패턴을 따르면, 상기 소수가 될 것으로 판명되는 상기 소수 후보는 또한 상기 사용 단계 동안, 상기 시드로부터 직접 생성될 수 있다. 실시예에서, 인덱스는 상기 시드와 상기 소수 사이의 산술적인 차이를 나타낸다. 이러한 방식으로, 상기 인덱스는 상기 소수를 획득하기 위해 상기 시드에 단순히 가산될 수 있다. 예컨대, 상기 인덱스는 상기 키 발생기에 의해 생성될 수 있다.
예컨대, 상기 소수 후보들을 상기 시드로부터 연산하기 위한 하나의 방법은 상기 시드로부터 시작하여 홀수들을 생성하는 것이다. 상기 시드 및 인덱스로부터 정확한 소수가 직접 연산될 수 있다. 이러한 방식으로, 상기 시드와 상기 소수 사이의 상기 산술적인 차이는, 상기 시드의 자연 로그(또한 'In"으로 표기됨)의 차수에서 매우 작다. 따라서, 그의 구성 소수들 중 하나 또는 그 초과의 차이들로서 나타냄으로써, 상기 제 1 암호화 키를 암호화함으로써, 상기 암호화된 제 1 암호화 키의 저장 요건들은 상기 암호화되지 않은 제 1 암호화 키의 저장의 요건들이 가질 것보다 작다.
소위 소수 정리는 이러한 놀라운 식견을 지원하고, 즉, 시작 점, 예컨대, 시드와 소수 사이의 차이로서 소수들을 인코딩함으로써, 그의 크기를 감소시킬 수 있다. 소수 정리(PNT)는 소수들의 점근성 분포를 설명한다. 소수 정리는 어떻게 소수들이 분포되는지의 대략적인 설명을 제공한다. 소수 정리는 어떤 큰 수 N 부근의 난수가 선택되면, 그것이 소수일 가능성은 약 1/In(N)이라는 것을 나타낸다.
상기 소수 후보들이 완전히 증가하는 시퀀스로 생성될 필요는 없다. 상기 제 1 암호화 키의 단축된 암호화된 표현의 장점을 획득하기 위해, 상기 소수 후보들이 의사 랜덤하게 생성되지만, 대략 상기 시드와 동일한 크기이면 충분하다. 예컨대, 상기 시드의 최상위 부분은 고정된 채로 유지되지만, 상기 시드의 최하위 부분은 의사 랜덤 방식으로 변화되며, 최상위 부분 및 최하위 부분은 함께 상기 시드의 전체를 형성한다. 예컨대, 최하위 부분은 상기 시드의 크기의 절반일 수 있거나, 또는 고정된 수의 비트들, 예컨대, 32비트일 수 있다.
실시예에서, 상기 연산 디바이스는 RFID 태그, 스마트 카드, 모바일 전화, 셋-톱 박스, 컴퓨터, 랩톱, 넷북, 셋-톱 박스, 전자 회로 등 중 임의의 하나를 포함하거나 또는 임의의 하나에 포함된다. 전자 회로는 집적 회로, 예컨대, COMS 디바이스일 수 있다.
일반적으로, 제 1 암호화 키의 비밀성이 중요하고, 그 키의 반복된 재생성을 방지하기를 원하는 임의의 애플리케이션에서, 본 발명은 유리하게 적용될 수 있다.
실시예에서, 상기 물리적 복제방지 기능부는 다음 중 임의의 하나를 포함한다:
- 물리적 복제방지 기능부로서 구성된 메모리, 특히, SRAM, 플립 플롭과 같은 휘발성 메모리, 또는 물리적 복제방지 기능부로서 구성되는 레지스터 파일,
- 물리적 복제방지 기능부로서 구성된 FPGA, 특히, 버터플라이 PUF를 위해 구성된 FPGA,
- 집적 회로에서의 지연 측정에 기반한 물리적 복제방지 기능부,
- 광학 물리적 복제방지 기능부,
- 오실레이션 기반 PUF, 아비터 PUF.
상기 물리적 복제방지 기능부는 작동, 예컨대, 휘발성 메모리들의 시동(start-up) 작동에 기반할 수 있다.
본 발명의 추가 양상들은 등록 단계 동안 제 1 암호화 키를 획득하기 위한 방법에 관한 것이다. 상기 방법은 상기 제 1 암호화 키를 시드에 의존하여 생성하는 단계, 및 상기 등록 단계 이후에 도래하는 사용 단계 동안 상기 제 1 암호화 키의 후속 암호화 사용을 위해 상기 제 1 암호화 키를 저장부 상에 저장하는 단계를 포함한다. 상기 방법은 물리적 복제방지 기능부의 출력으로부터 상기 시드를 유도하는 단계 및 상기 물리적 복제방지 기능부의 출력으로부터 유도되는 제 2 암호화 키를 이용하여 상기 제 1 암호화 키를 암호화하는 단계를 더 포함하고, 상기 제 1 암호화 키를 저장하는 단계는 상기 제 1 암호화 키를 상기 저장부 상에 암호화된 형태로 저장하는 단계를 포함한다.
상기 방법의 실시예는 사용 단계 동안 상기 물리적 복제방지 기능부의 추가 출력으로부터 유도된 상기 제 2 암호화 키를 사용하여 상기 저장되고 암호화된 제 1 암호화 키를 암호해독하는 단계를 포함한다.
본 발명에 따른 방법은 컴퓨터 구현된 방법으로서 컴퓨터상에서, 또는 전용 하드웨어 또는 FPGA 상에서, 또는 그들의 조합으로 구현될 수 있다. 본 발명에 따른 방법에 대한 실행가능한 코드가 컴퓨터 프로그램 물건 상에 저장될 수 있다. 컴퓨터 프로그램 물건들의 예들은 메모리 디바이스들, 광학 저장 디바이스들, 집적 회로들, 서버들, 온라인 소프트웨어 등을 포함한다. 하드웨어는 마이크로제어기 또는 프로세서 등을 포함할 수 있다.
바람직한 실시예에서, 상기 컴퓨터 프로그램은 상기 컴퓨터 프로그램이 컴퓨터상에서 실행되는 경우, 본 발명에 따른 방법의 모든 단계들을 수행하도록 적응된 컴퓨터 프로그램 코드 수단을 포함한다. 바람직하게, 상기 컴퓨터 프로그램은 컴퓨터 판독가능한 매체 상에서 구현된다.
본 발명은 첨부된 도면들을 참조하여 예로서 더욱 상세히 설명된다:
도 1은 연산 디바이스의 제 1 실시예를 도시하는 블록 다이어그램이다.
도 2a는 스마트 카드의 개략적인 평면도를 도시한다.
도 2b는 집적 회로를 도시한 블록 다이어그램이다.
도 3은 본 발명에 따른 방법의 제 1 실시예를 도시하는 흐름도이다.
도 4는 본 발명에 따른 방법의 제 2 실시예를 도시하는 흐름도이다.
도면들 전반에 걸쳐, 유사 또는 대응하는 피처들은 동일 참조 번호들로 표시된다.
본 발명은 많은 상이한 형태들의 실시형태에 영향을 받지만, 본 개시물이 본 발명의 원리들의 예시로서 고려될 것이며 본 발명을 도시되고 설명된 특정 실시예들에 제한하도록 의도하지 않음을 이해하면서, 도면들에 도시되어 있고, 본 명세서에서 하나 이상의 특정 실시예들로 상세히 설명될 것이다.
하기의 설명은 본 발명의 엘리먼트들의 일부로 주어지며, 어떻게 이러한 엘리먼트들이 결합될 수 있는지의 상세한 설명이 후속한다.
물리적 복제방지 기능부들
물리적 복제방지 기능부(PUF)는 입력을 자극(stimulus)의 형태로 물리적 시스템에 제공하고, 자극과 물리적 시스템 사이의 상호작용의 결과로서 발생하는 작동을 출력에 매핑함으로써, 입력에 대한 기능부의 출력이 획득되는 그러한 방법으로 물리적 시스템으로서 구현되는 기능부이며, 여기서, 상기 상호작용은 예측할 수 없으며, 물리적 시스템에 대한 물리적 액세스를 갖지 않으면서 출력을 획득하는 것이 가능하지 않고, 물리적 시스템을 재생성하는 것이 가능하지 않은 정도로 물리적 시스템에서의 랜덤 엘리먼트들에 본질적으로 의존한다. 바람직하게, PUF는 또한 평가하기 용이하다. 실제적인 이용들을 위해, PUF들은 제조 비용들에서 바람직하게 낮다.
인습적으로, PUF가 수락하는 입력 또는 자극은 '시도'로 지칭된다. PUF의 출력, 즉, 자극과 상호작용 후 PUF가 나타내는 작동은 '응답'으로 지칭된다. PUF의 시도 및 대응하는 응답을 포함하는 쌍은 시도-응답 쌍으로 지칭된다. 어떤 타입들의 PUF들은 넓은 범위의 상이한 입력들을 허용하고, 일부 타입들은 보다 제한적인 범위의 입력들을 허용하며, 또한, 심지어 단일 입력만을 허용할 수 있다. 어떤 단일 시도로 PUF를 시도하는 것은 또한 PUF의 활성화로 지칭될 수 있다.
동일한 시도에 대하여 여러 번 평가되는 경우, PUF는 모두 동일한 복수의 응답들을 생성할 것이면, 가장 바람직할 것이다. 이러한 속성은, 실제로, 대부분의 PUF들이 그것을 소유하지 않지만, 필요 없다. 복수의 응답들이 서로 충분히 근접하는 한, PUF는 유용하게 적용될 수 있다.
자극과 물리적 시스템 사이의 상호작용이 상기 시스템에 대한 액세스 없이 예측될 수 없기 때문에, PUF는 특성화하고 모델링하기 곤란하다. 따라서, 입력에 대한 특정 PUF의 출력은, 특정 PUF 하의 특정 물리적 시스템을 사용하여 단지 획득될 수 있다. 시도-응답 쌍의 소유는 몇몇 포인트에서 시도가 상기 PUF 하에 놓인 유일한 물리적 시스템에 제공되었다는 증거이다. 이러한 속성, 즉, 시도-응답 쌍들이 유일한 물리적 디바이스에 결합되는 속성 때문에, PUF는 복제방지로 지칭된다. PUF를 갖는 디바이스를 갖춤으로써, 디바이스는 또한 복제방지가 된다.
적어도 부분적으로, 제어할 수 없는 제조 프로세스, 즉, 필연적으로 어떤 무작위를 도입할 제조 프로세스에 의해 생산되는 물리적 시스템들은 PUF들에 대한 양호한 후보들인 것으로 판명된다.
PUF들의 하나의 장점은 그들이 본질적으로 탬퍼 억제 특성들을 갖는다는 것이다: PUF의 작동을 관찰하기 위해 그것을 분해하는 것은 또한, 랜덤 엘리먼트들을 방해할 것이며, 따라서, 입력들이 출력들에 매핑되는 방식을 방해할 것이다. 다양한 타입들의 전자적 PUF들을 포함하고, 전자적 메모리들에 기반한 다양한 타입들의 PUF들을 포함하는 다양한 타입들의 PUF들은 해당 기술분야에 알려져 있다. PUF들은 또한 다른 개념들, 예컨대, 광학 PUF들에 기반할 수 있다. 광학 PUF에서, 광학적으로 활성인 시스템의 광학 응답이 측정된다.
PUF를 구성하는 하나의 방법은 정적 랜덤 액세스 메모리(SRAM)를 이용한다; 이러한 PUF들은 SRAM PUF들로 지칭된다. SRAM들은 그들이 파워-업(powered-up)된 후, 그들이 온-비트들 및 오프-비트들의 랜덤 패턴으로 채워지는 속성을 갖는다. SRAM이 다음 시간에 파워-업되면 상기 패턴이 그 자체로 정확하게 반복될 수 없지만, 2개의 이러한 패턴들 사이의 차이들은 전형적으로 그 상태에서 비트들의 수의 절반보다 훨씬 작다.
제 2 종류의 SRAM PUF는 이중 포트 RAM으로 구성된다. 동시에 상이한 정보를 양쪽 포트들에 기록함으로써, 즉, 상이한 정보로 RAM에 시도함으로써, 메모리 셀은 PUF-유사 작동을 나타내는 한정되지 않은 상태에 이르게 된다.
제조 동안의 불가피한 변화들, 예컨대, 극심한 초미세한 프로세스 변화들로 인해, 서로에 대한 SRAM의 컴포넌트들의 구성은 적어도 약간 랜덤하다. 이러한 변화들은, 예컨대, SRAM의 메모리 셀들의 트랜지스터들의 약간 상이한 임계 전압에 반영된다. SRAM이, 예컨대, 쓰기 동작 이전에 정의되지 않은 상태로 읽혀지는 경우, SRAM의 출력은 랜덤 구성에 의존한다. 동일한 특성 작동으로 새로운 SRAM을 제조하는 것은 동일한 구성, 랜덤하게 달성되었던 구성을 갖는 SRAM을 제조하는 것을 요구한다. 이는 가능하지 않으므로, SRAM은 물리적 시스템으로서 복제방지가 되고, 즉, 그것은 PUF이다.
PUF 작동을 나타내는 휘발성 메모리의 다른 예들은 플립-플롭 및 래치이다. 시동시, 집적 회로에 포함될 수 있는 것과 같은 플립-플롭은 랜덤 값으로 채워질 것이다. 랜덤 값은 플립-플롭이 구성되는 정확한 방식에 의존한다. 플립-플롭을 구성하는 다양한 컴포넌트들의 구성에서의 약간의 변경은 상기 랜덤 값을 변경할 수 있다.
PUF들의 추가 예는 소위 버터플라이 PUF이다. 버터플라이 PUF는 복수의 버터플라이 PUF 셀들을 포함한다. 버터플라이 PUF 셀은 2개의 래치들 또는 플립-플롭들의 교차 결합(cross-coupling)을 포함한다. 버터플라이 PUF는 필드 프로그램가능 게이트 어레이(FPGA)가 SRAM을 포함하지 않을지라도 FPGA 상에 구현될 수 있다. 버터플라이 PUF 셀은 FPGA 상에서 이용가능한 엘리먼트들을 이용한 SRAM 메모리 셀의 자극(stimulation)으로서 간주될 수 있다. 버터플라이가 동작하는 방식은 또한 SRAM의 동작 방식과 유사하다. 버터플라이 PUF는 또한 그것이 구현되는 집적 회로들의 복잡한 물리적 특징들로부터 기밀들을 추출할 수 있다. 버터플라이 PUF들은 다음의 논문들에 보다 완전하게 설명된다; 샌디프 S. 쿠마, 조지 구아자르도, 로엘 매스, 그리트-잔 슈리젠, 핌 튜일스, "모든 PFGA 상의 IP를 보호하는 버터플라이 PUF", 페이지 67-70, 하드웨어-지향 보안 및 보호에 관한 2008 IEEE 국제 워크숍, 2008(Sandeep S. Kumar, Jorge Guajardo, Roel Maes, Geert-Jan Schrijen, Pim Tuyls, "The butterfly PUF protecting IP on every FPGA,", pp.67-70, 2008 IEEE International Workshop on Hardware-Oriented Security and Trust, 2008). 버터플라이 PUF는 또한 제 WO2009/024913호로서 공개되고, 본 명세서에 참조로 결합되는 국제 특허 출원 "물리적 복제방지 기능부들을 이용한 디바이스들의 식별(Identification of Devices Using Physically Unclonable Functions)"에 설명된다. 특히, 도 8 및 도 10, 및 대응하는 설명을 참조한다.
PUF들의 추가 예들은 코팅(coating) PUF들이다. 코팅은 집적 회로에 적용된다. 코팅에 의해 유도되는 정전 용량은 그 내부의 유전체 미립자들의 랜덤한 분포로 인해 그의 표면에 걸쳐 변화한다. 코팅의 상이한 위치들에서 정전 용량을 측정하는 것은 상이한 값들을 제공한다. 측정된 값들은 디지털, 예컨대, 비트에 관한(bit-wise) 값들로 매핑될 수 있다. 코팅 PUF들의 장점은 그들이 비교적 신뢰가능하고 단지 작은 에러-정정만을 요구한다는 것이다.
본 명세서에 참조로 결합된 유럽 특허 출원 EP0313967호 "집적 회로를 이용한 데이터 캐리어를 위한 인증 방법(Authentication method for a data carrier with integrated circuit)은 E2-PROM에서 저장 셀들의 프로그래밍 시간들을 상이하게 하는 것이 어떻게 PUF로서 사용될 수 있는지를 설명한다.
또 다른 추가 타입의 PUF들은 소위 지연 PUF들이다. 지연 PUF는 적어도 하나의 전자 배선을 포함한다. 상기 배선의 정확한 지연 특성은 PUF의 응답을 나타낸다. 지연 기반 PUF들은 다양한 방식들로 구성될 수 있다. 아비터(arbiter) PUF에서, 2개의 지연 경로들은 동시에 여기되는데, 이는 서로에 대하여 그들의 각 경로들을 통한 2개의 전이(transition) 레이스를 이룰 것이다. 두 경로들의 말단에서, 아비터는 2개의 상승 에지(rising edge) 중 어떤 것이 먼저 도착하는지를 결정하기 위해 그들의 신호들을 대기한다. 어느 것이 먼저인지에 기반하여, 아비터는 1비트의 출력을 생성하는데, 예컨대, 아비터는 출력을 0 또는 1로 설정한다. 추가 비트들의 출력을 생성하기 위해, 회로는 지연 경로들을 구성하는데 사용되는 n-비트 시도 입력을 포함할 수 있다.
오실레이션 기반 PUF 회로는 특정 주파수로 진동하는 다수의 설계된 지연 루프들(링 오실레이터들)을 포함할 수 있다. 제조 변동으로 인해, 각 링은 약간 상이한 주파수에서 진동한다. 출력 비트를 생성하기 위해, 2개의 링들은 선택되고 그들의 주파수들이 비교된다. k-비트 출력은, 예컨대, 시도 입력의 바이어스에 기반하여 k개의 상이한 오실레이터 쌍들을 선택함으로서 생성될 수 있다.
PUF들의 하나의 애플리케이션은 전자 회로 상에서 암호화 키를 유도하는 것이다. 전자 회로는 전형적으로 집적 회로(IC) 및/또는 프로그램가능 로직을 포함한다. 프로그램가능 로직은, 예컨대, 필드-프로그램가능 게이트 어레이(FPGA), 프로그램가능 로직 디바이스(PLD), 또는 디지털 신호 프로세스(DSP), 마이크로프로세서 등을 포함한다. 암호화 키를 어떤 종류의 비휘발성 메모리에 저장하는 대신, 상기 키는, 상기 키가 상기 디바이스에 의해 필요한 경우에만, PUF로부터 생성된다. 상기 키는 그것이 더 이상 필요하지 않은 경우 삭제될 수 있다. 상기 키가 필요한 다음 시간에, 그것은 PUF로부터 다시 유도될 수 있다. 동일한 시도가 두 번 평가되는 경우, PUF가 정확히 동일한 결과를 제공할 수 없기 때문에, 또한 퍼지(Fuzzy) 추출기로 공지된 소위 헬퍼 데이터 알고리즘은 상기 키가 그것이 유도될 때마다 동일할 것임을 보증하기 하기 위해 사용될 수 있다. 잡음 측정(noisy measurement)들로부터 재생성가능한 출력 값들을 구성하기 위해 헬퍼 데이터를 이용하는 하나의 방법은, 예컨대, 국제 특허 출원 WO 2006/129242호, "헬퍼 데이터 시스템들에서의 템플릿 갱신(Template Renewal in Helper Data Systems)"에 설명되는데, 이는 본 명세서에 참조로 포함된다. 암호화 키를 생성하기 위해 PUF를 사용하고, 본 명세서에 참조로 결합된 국제 특허 출원 WO/2004/066296호, "신뢰가능한 저장 매체 액세스 제어 방법 및 디바이스(Reliable Storage Medium Access Control Method And Device)"에 공지된 시스템들은 생성된 키들을 저장하지 않는다.
암호화 키를 생성하기 위해 PUF를 사용하는 하나의 방법은 다음과 같다. 먼저, 등록 단계 동안 시도-응답 쌍이 생성된다. 그 후, 또한, 차폐 기능부(shielding function)로서 공지된 퍼지 추출기를 사용하여, 헬퍼 데이터가 생성되며, 예컨대, WO/2004/066296호를 참조한다. 디바이스 상에서, 시도 및 헬퍼 데이터는 비휘발성 메모리에 저장된다. 암호화 키를 유도하기 위해, 새로운 응답은 시도에 대한 PUF를 다시 평가함으로써 획득된다. 헬퍼 데이터 알고리즘에 따라 새로운 응답을 저장된 헬퍼 데이터와 결합함으로써 키가 유도된다. 헬퍼 데이터는 키가, 그것이 유도될 때마다 동일함을 보증한다.
헬퍼 데이터
또한 활성화 코드로 공지된 헬퍼 데이터는 제 1 PUF 응답으로부터 생성되고, 때때로 측정으로 지칭되는 데이터이고, 제 1 및 제 2 PUF 응답이 약간 상이할 수 있을지라도 후속의 특정 데이터가 제 2 PUF 응답 및 헬퍼 데이터로부터 정확하게 재구성될 수 있도록 하는 특정 데이터 아이템이다. 제 1 응답과 비교한 제 2 응답의 차이들은 '에러들'로 지칭될 수 있다. 헬퍼 데이터는 그것이 제 2 응답에서의 에러들에 대해 정정된다는 의미에서 에러 정정 데이터로서 간주될 수 있다. 헬퍼 데이터의 기능은 단순한 에러 정정 이상을 포함할 수 있다. 예컨대, 제 2 응답에서의 에러들을 정정함과 함께, 헬퍼 데이터는 응답을 미리 결정된 데이터 아이템, 예컨대, 키에 매핑할 수 있다. 제 1 응답은 등록 응답으로 지칭될 수 있다. PUF가 복수의 입력들을 허용하면, 제 1 및 제 2 응답들은 전형적으로 동일한 입력, 즉, 시도에 대해 얻어진다.
헬퍼 데이터를 생성하기 위한 다수의 방법이 존재한다. 헬퍼 데이터를 이용하여, 제한된 수의 에러들만이 정정될 수 있다. 얼마나 많은 에러들이 정정될 수 있는지는 헬퍼 데이터의 타입 및 헬퍼 데이터의 구성 동안 사용된 파라미터들에 의존한다.
데이터 아이템은 암호화 키 또는 등록 응답 자체일 수 있다. 데이터 아이템을 재구성하기 위한 목적을 위해 헬퍼 데이터를 연산하는 일반적인 개념은 당업자에게 알려져 있다.
예컨대, WO 2006/053304호 하에서 공개되고 본 명세서에 참조로 결합된 국제 특허 출원은 어떻게 헬퍼 데이터가 연산될 수 있는지 및 어떻게 등록 응답이 재구성될 수 있는지를 설명한다; 예컨대, 도 3 및 첨부의 설명을 참조한다. 이러한 특허 출원은 또한 어떻게 키들이 등록 응답으로부터 유도될 수 있는지에 관한 더 많은 세부사항들을 제공한다.
헬퍼 데이터의 구성 및 사용은, 예컨대, J.P. 리나츠, P. 튜일즈, '비밀 향상 및 생물측정 템플릿들의 오용 방지를 위한 새로운 차폐 기능부들', J. 키틀러 및 M. 닉슨, 편저, 오디오 및 비디오 기반 사람 인증의 3차 회의 회보, 컴퓨터 공학 강의록 2688권, 페이지 238-250, 스프링거-출판사, 2003(J.P. Linnartz, P. Tuyls, 'New Shielding Functions to Enhance Privacy and Prevent Misuse of Biometric Templates', In J. Kittler and M. Nixon, editors, Proceedings of the 3rd Conference on Audio and Video Based Person Authentication, volume 2688 of Lecture Notes in Computer Science, pages 238-250, Springer- Verlag, 2003) 및 Y. 도디스 등, '퍼지 추출기들 : 생물측정 및 다른 잡음 데이터로부터 강한 키들을 생성하는 방법', 암호학의 발전, 유로크로피 2004, 컴퓨터 공학 강의록 시리즈, C. 채친 및 J. 카메니쉬, 편저, 3027권, 스프링거-출판사, 2004, 페이지 523-540(Y. Dodis et al, 'Fuzzy extractors: How to generate strong keys from biometrics and other noisy data', Advances in cryptology - Eurocrypt 2004, Ser. LNCS, C. Cachin and J. Camenisch, Eds., vo1.3027. Springer- Verlag, 2004, pp. 523-540)에 더 완전하게 설명된다. 또한, 공개 번호 W0/2004/066296호로 국제 출원으로서 공개되고 본 명세서에 참조로 결합된 특허 "신뢰가능한 저장 매체 액세스 제어 방법 및 디바이스(Reliable Storage Medium Access Control Method and Device)"를 참조한다.
예컨대, 그의 응답들이 비트-스트링들이거나, 또는 그의 응답들이 비트-스트링들로 변환될 수 있는 PUF를 고려한다. 예컨대, SRAM에서의 시동 값들이 비트-스트링 응답을 갖는 PUF로서 간주될 수 있다. 헬퍼 데이터를 생성하는 하나의 방법이 다음과 같다. 에러 정정 코드, 예컨대, BCH 코드는 PUF-응답에서 비트들의 수보다 큰 워드 크기를 갖도록 가급적 선택될 수 있다. 원하는 데이터 아이템은 에러 정정 코드의 코드 워드(code word)로 변환된다. 가급적 복수의 코드 워드들이 필요할 수 있음에 유의한다. PUF의 등록 응답은 코드 워드와 XOR 연산되고, 그 결과는, 예컨대, 메모리에 저장된다. 후속 PUF는 추가 응답을 획득하기 위해 다시 시도된다. 등록 응답 및 추가 응답은 전형적으로 에러 정정 코드가 정정할 수 있는 에러들의 수보다 더 적은 비트들에서 상이해야 한다. 애플리케이션에 의존하여, 에러들의 수가 너무 커서 정정되지 않는 일정한 확률이 허용될 수 있다. 추가 응답은 에러들을 갖는 코드 워드를 획득하기 위해 헬퍼 데이터와 XOR 연산된다. 추가 응답에 에러들이 있다면, 이들은 또한 에러들을 갖는 코드 워드에 존재할 것임에 유의한다. 에러들을 갖는 코드 워드는 코드에 대응하는 에러 정정 알고리즘을 사용하여, 예컨대, BCH 알고리즘을 사용하여 정정된다. 정정된 코드 워드의 결과로부터, 데이터 아이템이 추출될 수 있다. 다른 적절한 에러 정정 코드들은 리드 뮬러(Reed Muller), 고레이(Golay) 및 반복 코드들(Repetition codes) 또는 이들의 조합들을 포함한다. 에러 정정 코드들의 기술 분야에 알려져 있는 바와 같이, 새로운 코드들은 구성 기술들을 공지된 에러 정정 코드들에 적용함으로써, 획득될 수 있다. 예컨대, 2개의 에러 정정 코드들은 새로운 코드를 획득하기 위해 연접(concatenation)으로 지칭되는 기법들에 의해 결합될 수 있다. 에러 정정 코드 구성 알고리즘들은 PUF의 파라미터들, 특히, 그들의 에러 레이트 및 출력 비트들의 수, 신뢰가능한 출력 비트들의 원하는 수, 및 주어진 애플리케이션에 대해 실제로 허용가능한 에러 레벨에 에러 정정 코드를 맞추기 위해 사용될 수 있다.
PUF들은 HIS 시스템들에 사용될 수 있다. 하드웨어 고유 보안(Hardware intrinsic security;HIS) 시스템들은 물리적 복제방지 기능부들(PUF들)에 기반한다. PUF는 키를 저장할 필요 없이 단지 필요한 경우에만, 키를 생성하기 위해 사용될 수 있다. 일단 사용되면, 키는 모든 내부 레지스터들 및 메모리들로부터 제거될 수 있다. 상기 키는 그것이 사용될 때마다 재구성될 수 있고, 디바이스가 파워 다운되는 경우 소멸할 수 있다.
도 1은 본 발명에 따른 연산 디바이스의 제 1 실시예(100)를 개요의 형태로 도시한다. 모듈들 사이의 데이터 종속성들의 일부는 화살표들로 표시된다. 도 1에 도시된 모듈들의 일부는 선택적이다.
연산 디바이스(100)는 물리적 복제방지 기능부(150)를 포함한다. 물리적 복제방지 기능부(150)는 임의의 적합한 PUF, 예컨대, 상술한 PUF들 중 하나일 수 있다. 물리적 복제방지 기능부(150)는 비트-스트링을 생성하도록 구성될 수 있다. 연산 디바이스(100)의 상이한 인스턴스화(instantiation)들과 비교하면, 비트-스트링은 그것이 안전한 암호화 키로서 사용될 수 있을 만큼 충분히 랜덤하다. 충분한 랜덤은 애플리케이션의 보안 요건들에 의존한다. 예컨대, 80비트의 엔트로피 레벨은 가정용 메시지들의 암호화에 충분할 수 있다. 그러나, 물리적 복제방지 기능부(150)의 출력이 동일한 물리적 인스턴스화로부터 복수회 획득되는 경우, 출력은 상당히 적게 변화한다.
연산 디바이스(100)는 헬퍼 데이터 생성기(미도시)를 포함할 수 있다. 헬퍼 데이터 생성기는 물리적 복제방지 기능부(150)에 연결된다. 등록 단계 동안, 헬퍼 데이터 생성기는 물리적 복제방지 기능부(150)가 다시 시도되는 경우, 추가 출력을 생성하기 위해, 출력에 비하여 추가 출력내의 임의의 에러들이 정정될 수 있도록 출력에 대한 헬퍼 데이터를 생성한다. PUF의 출력 내의 에러들의 정정은 물리적 복제방지 기능부(150)에 연결되는 에러 정정기(미도시)로 수행될 수 있다. 헬퍼 데이터는 또한 PUF에서 얻어진 초기 측정을 특정 출력에 매핑하기 위해 사용될 수 있다. 즉, PUF의 출력이 헬퍼 데이터에 의해 결정될 수 있다. 헬퍼 데이터는 그것을 생성하기 위한 PUF에 링크됨에 유의한다. 헬퍼 데이터가 상이한 PUF로 사용되는 경우, 그것은 상이한 출력을 생성할 가능성이 매우 있거나, 또는 전혀 출력을 생성하지 않을 가능성이 매우 있다. 예컨대, 물리적 복제방지 기능부(150)를 작동하기 위한 하나의 방법은 다음과 같다: 등록 단계 동안 PUF로부터의 측정이 얻어진다. 헬퍼 데이터 생성기는 랜덤 코드 워드를 선택하고, 랜덤 코드 워드와 측정 사이의 차이를 산출함으로써 헬퍼 데이터를 생성할 수 있다. 랜덤 코드 워드 또는 그것이 대응하는 데이터 워드는 PUF의 출력으로서 얻어질 수 있다. 측정이 2회 얻어지는 경우, 헬퍼 데이터는 측정에 가산되고, 에러들은 정정되며, 원래 선택된 코드 워드가 획득된다. 이러한 정정된 코드 워드, 또는 그것에 대응하는 데이터 워드는 그 후에 추가 출력으로서 사용된다. 예컨대, 코드 워드의 에러 벡터, 즉, 에러들을 갖는 코드 워드와 코드 워드 사이의 차이를 측정으로부터 감산함으로써, PUF에서 얻어진 원래 측정을 정정된 코드 워드로부터 재구성하는 것이 또한 가능함에 유의한다. 편의를 위해, 더 일반적으로, PUF가 에러 정정을 필요로 할 수 있다는 것을 무시할 것이다.
헬퍼 데이터의 가능한 저장부를 포함하는 헬퍼 데이터 생성기 및/또는 에러 정정기는 물리적 복제방지 기능부(150)와 통합될 수 있다. 헬퍼 데이터를 위한 저장부는 물리적 복제방지 기능부(150)의 외부일 수 있거나, 심지어 연산 디바이스(100)의 외부일 수 있다. 헬퍼 데이터 생성기는 연산 디바이스(100)의 외부일 수 있고, 그것에 연결가능할 수 있다. 헬퍼 데이터 생성기는 단지 등록 단계 동안만 필요하다.
물리적 복제방지 기능부(150)는 등록 단계 동안 출력을 생성하도록 구성된다. 출력은 시드 유도 모듈(115)로 포워딩된다. 시드 유도 모듈(115)은 출력으로부터 시드를 유도한다. 시드 유도 모듈(115)은 선택적이다. 시드는 또한 임의의 추가적인 프로세싱 없이 물리적 복제방지 기능부(150)로부터 직접 얻어질 수 있다. 시드의 생성은 복수의 암호화 프리미티브(primitive)들 중 임의의 하나를 사용할 수 있다. 예컨대, 출력은 해시될 수 있다. 해시 함수를 적용하기 전에, 출력은, 예컨대, 출력을 이러한 연산 디바이스(100)에 대해 고정된 수, 예컨대, 시리얼 넘버와 연접시킴으로써 솔트될 수 있다. 솔트가 또한 연산 디바이스(100) 상에서 실행되는 기능부들의 다른 부분들에 사용되는 경우, 그것은 솔트 값들이 상이하면 바람직하다. 예컨대, 복수의 솔트 값들은 시퀀스로부터, 예컨대, 정수들로부터 선택될 수 있다.
시드의 크기는 바람직하게는 암호 표기법으로 안전한 키들을 산출하기에 충분한 크기 및 충분한 엔트로피를 갖는다. 예컨대, 시드는 80 비트 또는 그보다 클 수 있다. 일부 덜 민감한 애플리케이션은 상당히 적은 엔트로피를 포함하는 상당히 짧은 시드를 사용할 수 있음에 유의한다. 예컨대, 기호 논리 추적 목적들을 위해 사용된 RFID 태그들은 금융 애플리케이션들보다 더 작은 키들을 사용할 수 있고 및/또는 더 적은 엔트로피를 포함할 수 있다. 일반적으로, 키들의 알맞은 크기는 애플리케이션들 및 그의 예측되는 위험들에 의존한다.
키 발생기(110)는 시드 유도 모듈(115)에 연결되거나 또는 물리적 복제방지 기능부(150)에 가급적 직접적으로 연결된다. 키 발생기(110)는 제 1 암호화 키를 생성하도록 구성된다. 예컨대, 키 발생기(110)는 RSA 키를 생성하기 위해 키 생성 알고리즘을 이용한다. 이하에, 어떻게 RSA 키들이 생성될 수 있는지의 알고리즘이 상세히 설명된다. 제 1 암호화 키는 물리적 복제방지 기능부(150)를 구성하는 하드웨어에서의 랜덤한 물리적 변화들에 의존하는 물리적 복제방지 기능부(150)의 출력에 의존하는 시드에 의존함에 유의한다. 바람직하게는, 키 발생기(110)는 동일한 출력이 시드 유도 모듈(115)로 포워딩될 예정이었던 경우, 동일한 제 1 암호화 키가 생성되었도록 결정 알고리즘(deterministic algorithm)을 사용한다. 시드 유도 모듈(115)에서 결정 알고리즘의 사용은 제 1 암호화 키가 연산 디바이스(100)의 하드웨어에 직접 링크된다는 장점을 갖는다. 물리적 복제방지 기능부(150)의 속성들의 일부는 제 1 암호화 키에 의해 상속된다. 연산 디바이스(100)의 물리적 하드웨어와 제 1 암호화 키 사이의 직접적인 링크가 있다. 이는 부인 방지 속성들을 개선한다. 서명이 결정 시드 유도 모듈(115) 및 키 발생기(110)를 이용하여 생성된 제 1 암호화 키로 이루어졌고, 연산 디바이스(100), 및 가급적 물리적 복제방지 기능부(150)에 의해 사용되었던 헬퍼 데이터에 대한 액세스를 가지면, 이러한 서명이 실제로 이러한 연산 디바이스(100)에 의해 이루어졌음을 부정하는 것은 곤란하다.
물리적 복제방지 기능부(150)는 제 2 암호화 키를 유도하기 위한 키 유도 모듈(125)에 추가로 연결된다. 키 유도 모듈(125)은 바람직하게는 키 발생기(110)의 생성 알고리즘을 실행하기 위해 더 빠른 키 유도 알고리즘을 사용한다. 예컨대, 키 유도 모듈(125)은 해시 함수를 사용할 수 있다. 키 유도 모듈(125)은 예컨대, 시드 유도 모듈(115)과 동일한 해시 함수를 사용할 수 있다. 그 경우, 2개의 해시 함수들을 상이한 솔트로 솔트하는 것은 선택적이다. 솔트들은 미리 결정될 수 있고, 연산 디바이스(100)의 모든 인스턴스화들에 걸쳐 고정될 수 있다. 예컨대, 시드 유도 모듈(115)은 솔트 '0'을 사용할 수 있고 키 유도 모듈(125)은 솔트 '1'을 사용할 수 있다. 시드 유도 모듈(115) 및 키 유도 모듈(125)은 또한 연산 디바이스(100)의 각 인스턴스화에 대하여 상이한 솔트를 사용할 수 있다. 후자의 경우, 물리적 복제방지 기능부(150)의 출력을 획득하는 것에 부가하여 공격자가 또한 솔트들을 획득하는 것이 필요하기 때문에, 솔트들은 제 1 암호화 키의 비밀성을 개선한다. 제 2 암호화 키의 유도는 대략 시드를 유도하는 것과 동일한 연산 수고를 요구한다.
PUF는, 예컨대, 디바이스에 포함된 엔트로피로부터의 대칭 암호화에 사용하기 위해 제 2 암호화 키의 추출을 허용한다. 이러한 기밀은 또한 시드 값으로서 사용될 수 있다. 연산 디바이스(100)는 공개/비밀 키 생성을 위한 기반으로서 그 시드를 사용할 수 있다. 연산 디바이스(100)는 시드로서 제 2 암호화 키의 모두 또는 일부를 사용할 수 있고, 이는 시드 유도 모듈(115)의 사용을 방지한다.
키 유도 모듈(125)은 암호화 모듈(120)에 연결된다. 암호화 모듈(120)은 암호화 키로서 제 2 암호화 키를 사용하여 암호화하도록 구성된다. 암호화 모듈(120)은 키 발생기(110)에 연결된다. 암호화 모듈(120)은 입력으로서 제 1 암호화 키를 취하고, 출력으로서 제 2 암호화 키로 암호화되는 암호화된 제 1 암호화 키를 생성한다. 바람직하게는, 암호화 모듈(120)은 비교적 빠른 암호화 알고리즘을 사용한다. 예컨대, 암호화 모듈(120)은 블록 암호, 예컨대, AES, 또는 스트림 암호, 예컨대, RC4 등과 같은 대칭 알고리즘을 사용할 수 있다. 키 유도 모듈(125)은 결정 알고리즘을 사용한다. 동일한 PUF 출력이 주어지면, 동일한 제 2 암호화 키가 생성될 것이다. 동일한 PUF 출력이 주어지면, 동일한 제 1 암호화 키가 생성될 것이고, 그것은 시드 유도 모듈(115) 및 키 발생기(110)로 다시 제공되었던 것이 바람직하지만(제 1 암호화 키의 생성이 단지 한번 이루어질지라도), 이는 필수적이지는 않다. 제 2 암호화 키는 물리적 복제방지 기능부(150)의 출력에 의존하고, 그에 의해 결정된다.
암호화 모듈(120)은 저장부(130)에 연결되거나 또는 연결가능하다. 저장부(130) 상에서, 제 1 암호화 키는, 그것이 암호화 모듈(120)에 의해 암호화된 이후에 저장될 수 있다. 저장부(130)는 비휘발성 메모리와 같은, 플래시 메모리와 같은, 1회 쓰기 메모리 등의 메모리를 포함할 수 있다. 저장부(130)는 자기 기록 매체, 예컨대, 플로피 디스크 또는 하드 디스크를 포함할 수 있다. 저장부(130)는 연산 디바이스(100) 내부에 있을 수 있다. 저장부(130)는 또한 연산 디바이스(100)의 외부에 있을 수 있고, 그것에 연결가능하다. 외부 저장부(130) 상의 저장 및/또는 그것으로부터의 검색은 전송기-수신기(170)를 사용할 수 있다(하기 참조). 저장부(130)는 연산 디바이스(100)의 다른 저장부보다 더 안전한 타입의 저장부일 수 있지만, 이는 필수적이지는 않다.
연산 디바이스(100)는 암호해독 모듈(140)을 선택적으로 포함한다. 암호해독 모듈(140)은 저장부(130) 상에 저장된 암호화된 제 1 암호화 키를 암호해독하도록 구성된다. 암호해독 모듈(140)은 암호화 모듈(120)을 보완한다. 즉, 암호화 모듈(120)에 의해 암호화된 키들은 암호해독 모듈(140)에 의해 암호해독될 수 있다. 일부 암호화/암호해독 알고리즘들에 대하여, 암호화 모듈(120) 및 암호해독 모듈(140)은 대부분의 그들의 기능을 공유할 수 있다. 대칭 알고리즘들은 암호화 및 암호해독에 필요한 대부분의 기능이 공유될 수 있다는 장점을 갖는다. 예컨대, 암호화 모듈(120) 및 암호해독 모듈(140)이 AES 암호화 및 암호해독을 각각 구현하면, 그들의 기능의 대부분은 공유될 수 있다.
연산 디바이스(100)는 추가의 암호화 모듈(160)을 선택적으로 포함한다. 추가의 암호화 모듈(160)은 제 1 암호화 키가 암호해독 모듈(140)에 의해 암호해독된 후에, 제 1 암호화 키를 사용할 수 있다. 예컨대, 추가의 암호화 모듈(160)은 메시지를 서명 또는 암호화하기 위해 제 1 암호화 키를 사용할 수 있다.
연산 디바이스(100)는 연산 디바이스(100)와 외부의 서버 또는 다른 연산 디바이스들 사이에서 통신하기 위해 사용될 수 있는 전송기-수신기(170)를 선택적으로 포함한다. 전송기-수신기(170)에 의해 메시지가 전송되기 전 또는 메시지가 수신된 후에, 메시지는 추가의 암호화 모듈(160)에 의해 프로세싱될 수 있다. 전송기-수신기(170)는 무선 통신을 위한 안테나를 포함할 수 있다. 전송기-수신기(170)는 배선에 연결하기 위한 커넥터를 포함할 수 있다. 전송기-수신기(170)는 WiFi, 이더넷, 인트라넷, 인터넷 등에 대하여 구성될 수 있다.
연산 디바이스(100)는 또한 내부 암호화 목적들을 위해 제 1 암호화 키를 사용할 수 있다. 이러한 경우, 연산 디바이스(100)는 반드시 전송기-수신기(170)를 필요로 하지 않는다. 예컨대, 제 1 암호화 키는 연산 디바이스 내부의 저장부(130)를 보호하기 위해 사용될 수 있다. 예컨대, 연산 디바이스(100)는 추가의 저장부(미도시)를 포함할 수 있다. 추가의 저장부의 보안을 증가시키기 위해, 그것에 저장되는 정보는, 예컨대, 공개 키를 사용하여 암호화된다. 정보가 추가의 저장부로부터 검색된 후, 그것은, 예컨대, 제 1 암호화 키로 암호해독될 수 있다.
암호화 모듈(120)이 대칭 알고리즘을 사용하고, 키 유도 모듈(125)이 대칭 키를 생성할 필요는 없다. 암호화 모듈(120)은 비대칭 키를 사용할 수 있다. 예컨대, 키 유도 모듈(125)은 등록 단계 동안 암호화 모듈(120)에서 사용하기 위한 공개 키 및 암호해독 모듈(140)에서 사용하기 위한 비밀 암호해독 키를 생성할 수 있다. 이는, 예컨대, 표준화 이유들 때문에 특정 공개 비밀 키 알고리즘이 필요한 경우 유용할 수 있다. 바람직하게는, 키 유도 모듈(125)에 의해 수행될 수 있고, 암호해독 모듈(140)에 의해 사용될 수 있는 비밀 키 생성 암호방식은 키 발생기(110)에서 실행되는 키 생성보다 훨씬 빠르다. 예컨대, 키 발생기(110)가 RSA 키를 생성하는 경우, 키 유도 모듈(125)은 또한, 타원 곡선 증대 암호화 방식 또는 타원 곡선 암호화 방식으로 알려진 타원 곡선 통합 암호화 방식(ECIES)에 대한 키를 생성할 수 있다. ECIES는 타원 곡선 이산 로그 문제에 기반하고, RSA 알고리즘보다 더 빠른 비밀 키 생성을 허용한다. 암호화 모듈(120) 및 암호해독 모듈(140)은 또한 공개 비밀 키 알고리즘의 암호화 및 암호해독 기능을 구현할 수 있다. 이러한 상황에서, 제 2 암호화 키는 암호화 모듈(120)을 위한 암호화 키 및 암호해독 모듈(140)을 위한 대응하는 암호해독 키인 것으로 이해되어야 한다. 암호화 키 및 대응하는 암호해독 키는 함께 키 쌍을 구성한다.
동작 동안, 연산 디바이스(100)는 등록 단계 및 등록 단계 후에 도래하는 사용 단계를 갖는다.
등록 단계는 안전한 위치, 예컨대, 제조 공장 또는 연산 디바이스(100)의 프로그래밍 위치에 있을 수 있다. 등록 단계는 또한 현장에 있을 수 있다. 제 1 암호화 키의 생성은 단지 한번만 실행될 필요가 있고, 반복될 필요가 없다.
등록 단계 동안, 물리적 복제방지 기능부(150)는 출력을 생성한다. 출력은 전형적으로 그것이 추가의 출력으로서 나중에 신뢰가능하게 재생성될 수 있음을 보증하기 위해 물리적 복제방지 기능부(150)에서 프로세싱된다. 예컨대, 물리적 복제방지 기능부(150)는 측정, 예컨대, SRAM의 시동 값들의 판독을 내부적으로 수행할 수 있다. 측정으로부터, 헬퍼 데이터가 생성될 수 있다. 헬퍼 데이터는 측정이 반복되는 경우, 에러를 정정하기 위해 나중에 사용될 수 있다. 물리적 복제방지 기능부(150)가 충분하게 신뢰가능하면, 헬퍼 데이터의 생성은 생략될 수 있다. 헬퍼 데이터가 연산 디바이스(100)의 저장부, 예컨대, 물리적 복제방지 기능부(150)의 저장부인 저장부(130)에 저장될 수 있다. 헬퍼 데이터는 대안적으로 또는 추가적으로, 예컨대, 전송기-수신기(170)를 이용하여 연산 디바이스(100) 외부의 저장부에 저장될 수 있다. 물리적 복제방지 기능부(150)의 출력이 물리적 복제방지 기능부(150)에서 내부적으로 얻어진 측정과 동일할 수 있음에 유의한다. 출력은 또한 헬퍼 데이터를 통하여 어떤 다른 스트링에 매핑될 수 있다.
물리적 복제방지 기능부(150)의 출력은 시드를 생성하기 위해 시드 유도 모듈(115)로 포워딩된다. 시드는 키 발생기(110)로 포워딩된다. 시드로부터 시작하여, 제 1 암호화 키가 생성된다. 출력은 또한 제 2 암호화 키를 생성하기 위해 키 유도 모듈(125)로 포워딩된다. 제 2 암호화 키는 암호화 모듈(120)로 포워딩된다. 암호화 모듈(120)은 암호화 키로서 제 2 암호화 키를 사용하여 제 1 암호화 키를 암호화한다. 결과, 즉, 암호화된 제 1 암호화 키는 저장을 위해 저장부(130)로 포워딩된다.
사용 단계 동안, 물리적 복제방지 기능부(150)는 추가 출력을 생성한다. 물리적 복제방지 기능부(150)가 헬퍼 데이터를 사용하면, 이는 다음과 같이 행해질 수 있다: 물리적 복제방지 기능부(150)의 내부에서, 추가 측정이 등록 단계 동안과 동일한 타입으로 수행된다. 추가 측정은 측정과 비교하는 경우 약간 변할 수 있다. 헬퍼 데이터는 추가 측정에 적용되고, 에러 정정 알고리즘이 적용된다. 이러한 방식으로, 추가 출력이 생성된다. 추가 출력은 등록 단계 동안 생성된 출력과 동일한 것이어야 한다.
추가 출력은 키 유도 모듈(125)로 포워딩되지만, 시드 유도 모듈(115)로 포워딩되지 않는다. 키 유도 모듈(125)은 제 2 암호화 키를 유도한다. 제 2 암호화 키는 암호해독 모듈(140)로 포워딩된다. 암호화된 제 1 암호화 키는 저장부(130)로부터 검색된다. 검색된 키는 암호해독 모듈(140)에 의해 제 2 암호화 키를 사용하여 암호해독된다. 이러한 방식으로, 제 1 암호화 키는 연산 디바이스(100)에서 획득된다. 제 1 암호화 키는 암호화 사용을 위해 추가 암호화 모듈(160)로 포워딩될 수 있다. 암호화 사용의 결과들은, 예컨대, 저장부(130)에 저장될 수 있거나, 또는 전송기-수신기(170)를 이용하여 전송될 수 있다.
연산 디바이스(100)는 집적 회로들, FPGA들 등을 사용하여 구현될 수 있다. 연산 디바이스(100)의 일부들은 소프트웨어를 이용하여 구현될 수 있다.
도 2a는 본 발명에 따른 스마트 카드(200)의 개략적 표현을 평면도로 도시한다. 스마트 카드는 집적 회로(210) 및 집적 회로(210)를 지원하는 전형적으로 플라스틱인 카드(205)를 포함한다. 집적 회로(210)의 아키텍처는 도 2b에 개략적으로 도시된다. 회로(210)는, 본 발명에 따른 방법을 실행하거나 및/또는 그의 모듈들을 구현하기 위한 컴퓨터 프로그램 컴포넌트들을 실행하기 위한 프로세싱 유닛(220), 예컨대, CPU를 포함한다. 회로(210)는 프로그래밍 코드, 데이터, 암호화 키들, 헬퍼 데이터 등을 저장하기 위한 메모리(222)를 포함한다. 메모리(222)의 일부는 판독-전용일 수 있다. 메모리(222)의 일부는 고 보안 메모리, 예컨대, 관련된 보안 관련 데이터, 예컨대, 키들을 저장하기 위한 퓨즈들일 수 있다. 회로(210)는 물리적 복제방지 기능부(224)를 포함한다. 물리적 복제방지 기능부(224)는 메모리(222)에 결합될 수 있다. 회로(210)는 통신 엘리먼트(226), 예컨대, 안테나, 커넥터 패드들 또는 둘 모두를 포함할 수 있다. 회로(210), 메모리(222), PUF(224) 및 통신 엘리먼트(226)는 버스(230)를 통하여 서로 연결될 수 있다. 카드는 안테나 및/또는 커넥터 패드들 각각을 이용하여 접촉 및/또는 비접촉 통신을 위해 배열될 수 있다. 스마트 카드는, 예컨대, 콘텐츠로의 액세스를 제어하기 위한 셋-톱 박스에서, 원격통신 네트워크로의 액세스를 제어하기 위한 모바일 전화에서, 대중 교통으로의 액세스를 제어하기 위한 대중 교통 시스템에서, 은행 계좌로의 액세스를 제어하기 위한 은행 카드 등에서 사용될 수 있다.
예컨대, 메모리(222)는 프로세싱 유닛(220)에 의한 실행을 위한 소프트웨어를 포함할 수 있다. 소프트웨어가 실행되는 경우, 연산 디바이스들의 모듈들의 기능들의 일부가 수행된다. 메모리(222)는 저장부(130)를 포함할 수 있다.
스마트 카드는 비메모리 기반 PUF, 예컨대, 지연 PUF를 사용할 수 있다.
도 3은 본 발명에 따른 방법을 흐름도로 도시한다. 흐름도는 가능한 순서로 6개의 단계들을 도시한다. 단계들(310, 320, 330 및 340)은 등록 단계 동안 수행된다. 단계들(350 및 360)은 선택적이고 사용 단계 동안 수행된다.
단계(310)는 물리적 복제방지 기능부의 출력으로부터 시드를 유도하는 단계를 포함한다. 단계(320)는 시드에 의존하여 제 1 암호화 키를 생성하는 단계를 포함한다. 단계(330)는 PUF의 출력으로부터 제 2 암호화 키를 유도하는 단계를 포함한다. 단계(340)는 제 2 암호화 키를 사용하여 제 1 암호화 키를 암호화하는 단계를 포함한다. 단계(350)는 제 1 암호화 키를 저장부 상에 암호화된 형태로 저장하는 단계를 포함한다. 단계(360)는 암호화된 제 1 암호화 키를 제 2 암호화 키를 이용하여 암호해독하는 단계를 포함한다.
당업자에게 명백한 바와 같이, 상기 방법을 실행하는 많은 상이한 방법들이 가능하다. 예컨대, 단계들의 순서는 변동될 수 있거나 또는 일부 단계들은 병렬로 실행될 수 있다. 예컨대, 단계(330)는 단계(340) 이전 및 PUF의 출력을 획득한 이후에 임의의 시점에서, 제 2 암호화 키가 그것이 암호화를 위해 필요하기 이전에 이용가능한 한, 가급적 다른 단계들과 병렬로 수행될 수 있다. 게다가, 방법의 단계들 이전, 그 사이 및 그 후에, 다른 단계들이 삽입될 수 있다. 삽입되는 단계들은 본 명세서에서 설명된 바와 같은 상기 방법의 개선들을 나타낼 수 있거나, 또는 상기 방법과 관련이 없을 수 있다. 게다가, 주어진 단계는 다음 단계가 시작하기 이전에 완전히 종료되지 않을 수 있다.
본 발명에 따른 방법은 프로세서 시스템이 방법(300)을 수행하도록 하기 위한 명령들을 포함하는 소프트웨어를 이용하여 실행될 수 있다. 소프트웨어는 등록 단계 및/또는 재구성 단계 동안 서버 또는 연산 디바이스에 의해 취해지는 단지 이러한 단계들만을 포함할 수 있다. 소프트웨어는 하드 디스크, 플로피, 메모리 등과 같은 적절한 저장 매체에 저장될 수 있다. 소프트웨어는 유선, 또는 무선을 따라, 또는 데이터 네트워크, 예컨대, 인터넷을 이용하여 신호로서 전송될 수 있다. 소프트웨어는 다운로드를 위해 및/또는 서버 상에서의 원격 사용을 위해 이용가능해질 수 있다.
도 4는 본 발명에 따른 방법의 유리한 실시예를 흐름도로 도시한다. 상기 방법은 물리적 복제방지 기능부들에 기반하여 효율적인 공개 키 쌍 생성을 허용한다. 이하에서, 절차가 연산 디바이스의 일 타입인 스마트 카드 상에서 실행되는 것으로 가정할 것이지만, 상기 절차는 또한 다른 타입들의 연산 디바이스들에 적용가능하다.
상기 방법은 두 단계로 분할될 수 있다:
1. 등록 : 등록 동안, PUF 판독(reading)이 실행되고, 미가공(raw) 데이터, 예컨대, 미가공 측정은 헬퍼 데이터 생성 모듈로 전송된다. 헬퍼 데이터 생성 모듈은 에러 정정 모듈 및 암호화 모듈을 포함할 수 있다. 헬퍼 데이터를 생성하기 위한 하나의 방법은 다음과 같다: 에러 정정 모듈은 난수 발생기를 이용하여 적절한 크기의 랜덤 코드 워드를 생성하고, 소위 활성화 코드(activation code; AC)를 연산하기 위해 랜덤 해시 함수, 예컨대, 범용 해시 함수 또는 암호화 해시 함수를 선택한다. AC는 랜덤 코드 워드의 다른 추가 타입의 함수와 미가공 PUF 데이터의 합 또는 일부이다. AC는 또한 부가하여, 해시 함수의 선택을 나타내는 스트링을 포함할 수 있다. 이러한 활성화 코드는 온-보드 비휘발성 메모리에 또는 원격의 서버 상에 저장된다.
추가 타입의 함수는 입력으로서 2개의 값들을 취하고, 함수의 출력으로 주어진 입력값들 및 이들의 입력들 중 하나의 양자의 재구성을 허용한다. 그러나, 추가 타입의 함수의 출력만으로, 입력 값들 상에 나타나는 정보는 없다. 추가 타입의 함수들의 예들은 가산, 감산, 배타적 or 연산 등을 포함한다. 또한 GF(2) 가산으로 지칭되는 XOR 가산에 대하여, 가산 및 감산은 동일하게 간주됨에 유의한다. 가산 함수 대신, 또한 순열이 사용될 수 있다.
2. 키 재구성(사용 단계) : 현장에서, 디바이스가 그의 비밀 키(secret key)를 재구성하는 것이 필요한 경우, 그것은 먼저 PUF 판독을 생성한다. 다음에, 등록 동안 사용된 가급적 잡음 랜덤 코드 워드를 검색하기 위해 활성화 코드와 PUF 데이터의 합이 연산된다. 이러한 코드 워드는 이제 디코딩될 수 있고, 에러 벡터는 검색될 수 있다. 일단 에러 벡터가 알려지면, 미가공 잡음 PUF 데이터는 정정될 수 있고, 원래 등록된 PUF 데이터는 복구될 수 있다. 기밀 키는 이러한 원래의 정보로부터 유도될 수 있고, 주어진 디바이스에 항상 동일할 것이다. 기밀 키는 또한 코드 워드로부터 유도될 수 있다.
이러한 두 단계들은 아래에 더 설명된다. 이하, 어떻게 RSA 키 쌍이 PUF 출력으로부터 유도될 수 있는지를 설명한다. RSA 키는 비밀 및 공개 키를 포함하는 쌍을 사용하는 공개 키 암호 체계이다. 비밀 RSA 키는 2개의 큰 소수들 p 및 q를 포함하고, 공개 키는 이들 두 소수들의 곱 n=p.q를 포함한다. 암호화는 암호화될 메시지 m을 공개 지수 e 모듈로 공개 모듈러스(modulus) n의 승수(power)로 거듭제곱함으로써 달성될 수 있고, 암호해독은 결과의 암호화 텍스트 c를 기밀 지수 d 모듈로 공개 모듈러스 n의 승수로 거듭제곱함으로써 달성될 수 있다. 여기서, d는 e.d=1 모듈로 EulerPhi(n)이 되도록 선택된다(EulerPhi는 오일러의 파이 함수를 나타낸다).
큰 소수들 p 및 q의 생성은 RSA 키 쌍 생성을 위한 적합한 큰 소수들을 찾기 전에 많은 상이한 소수 후보들이 시도될 필요가 있는 절차이다. 이러한 절차는 시간 소모적이고, 작은 임베디드 디바이스 상에서 수 초가 소요될 수 있다. 키의 비밀 파라미터들에 대한 액세스를 가질 필요가 있을 때마다, 예컨대, 수신된 메시지를 암호해독할 필요가 있을 때마다 키 생성의 반복을 방지하는 것이 장점이다.
공개 키 쌍 생성은 아래에 설명되는 바와 같이 이루어질 수 있다. 예로서, 2개의 512-비트 RSA 소수들을 생성하는 방법을 설명한다. 2개의 512-비트 RSA 소수들은 종종 1024 비트 키로 지칭되는 1024 비트 RSA 모듈러스를 생성하기 위해 사용될 수 있다. 2개의 소수들은 동일 크기일 수 있지만, 이는 필수적이지는 않다. RSA 소수들의 다른 전형적인 길이들은 512 및 2048 비트 키들을 각각 제공하는 256 비트 및 1024 비트를 포함한다.
단계(405)에서, PUF의 출력, 예컨대, SRAM의 콘텐츠가 획득된다. 출력을 재생성가능하게 하기 위해 필요할 수 있는 임의의 에러 정정 활동이 이루어졌다고 가정한다. 출력으로부터, 제 1 및 제 2 시드가 획득된다.
예컨대, PUF 출력이 2개의 홀수 512 비트 수들을 생성하기 위해 해시-다운(hash down)될 수 있다. 그것의 최하위 비트를 1로 설정함으로써 홀수를 만들 수 있다. 양호한 해시 함수가 사용되는 경우, 제 1 및 제 2 시드는 적어도 충분한 랜덤을 찾을 것이다.
시드들을 획득하기 위해 해시 함수들을 사용하는 예들은 다음을 포함한다:
· 2개의 시드에 대한 상이한 인덱스들을 갖는 적합한 범용 해시 함수를 사용하는 단계,
· 또한 솔트로서 알려지고, 해시된 입력의 일부로서 상이한 인덱스들을 갖는 2번 적용된 표준 암호화 해시 함수를 사용하고, 그 후, 출력을 512 비트로 다시 제공하기 위해 스트레칭 함수(stretching function)를 적용하는 단계,
· 예컨대, SHA-512와 같은 512 비트 출력을 갖는 표준 암호화 해시 함수를 사용하는 단계. 2개의 상이한 인덱스들은 2개의 상이한 상관되지 않은 큰 수들을 생성하기 위해 사용될 수 있다.
· 스폰지 함수들(Sponge function)을 사용하는 단계. 예컨대, 구이도 버토니, 조안 대멘, 미챌 피터스, 및 길레스 반 에스체(Guido Bertoni, Joan Daemen, Michael Peeters, and Gilles Van Assche)에 의한 논문 "스폰지 함수들"에 설명된 바와 같이. 이러한 구조들은 PUF 데이터를 조금씩 흡수하게 하고, 제 2 단계에서 스퀴즈하는(squeeze) 경우, 가변 길이 출력을 생성하게 한다.
등록 동안, 소수들은 제 1 및 제 2 시드로부터 생성된다. 하나의 가능성은 '다음 소수' 함수를 구현하는 것이다. 다음 소수 함수는 주어진 시드보다 큰 다음 소수를 생성한다. 소수 테스트를 이용하여 소수성에 대한 수를 테스트할 수 있다. 예컨대, 밀러-라빈(Miller-Rabin) 소수 테스트는 적합한 회수로, 즉, 6회 반복되었다. 대안적으로, 아들레맨-포머런스-루메리(Adleman-Pomerance-Rumely) 소수 테스트 또는 아그라울-카얄-사세나(Agrawal-Kayal-Saxena) 소수 테스트와 같은 결정 소수 테스트를 사용할 수 있다. 소수를 찾기 위해 제 1 및 제 2 시드로부터 시작하여 2의 증분에 의해 홀수들을 점검한다. 홀수가 소수가 아닌 경우, 그것은 2만큼 증가되고 다음 수가 테스트된다.
또한, 그들 중 하나가 복수의 임의의 작은 소수가 아닐 때까지 2의 증분들에 의해 다음 홀수들을 점검하도록 속도-향상(speeded-up) 소수 생성을 사용할 수 있다. 예컨대, 100 미만의 모든 소수들로 시험 나눗셈(trial division)을 수행할 수 있다. 테스트될 이런 작은 소수들의 정확한 수는 그것이 연산되는 플랫폼에 따라 최적화될 수 있다. 다음에, 수가 소수인지를 점검하기 위해 소수 테스트를 적용한다. 수가 합성수가 아닐 확률이 충분히 높은 경우, 제 1 소수 p를 출력한다. 다음, 제 2 시드로 시작하여 제 2 소수 q를 출력한다.
다음 소수 함수를 제 1 시드 및 제 2 시드에 적용하는 것은 흐름도 엘리먼트들(420 및 425)에 도시된다.
소수들을 찾는 것은 알맞은 프로그래밍된 스마트 카드 또는 HSM(하드웨어 보안 모듈) 상에서 이루어질 수 있다. 예상 실행 시간은 이러한 단계에 대하여 높을 수 있지만, 이는 등록 동안 단지 한 번만 이루어질 필요가 있다. 제 1 암호화 키의 생성은 또한 스마트 카드의 외부에서 이루어질 수 있다. 대안적으로, 제 1 암호화 키 생성은 또한 디바이스가 요구된 소수 테스트 기능을 구현하는 경우, 현장에서 활성화될 수 있다. 다시, 이는 단지 한 번만 이루어질 필요가 있다. 수 개의 키 쌍이 요구되는 경우, 솔트 값 또는 랜덤 인덱스는, 여전히 동일한 미가공 PUF 데이터로부터 유도되지만, 서로 독립적으로 하나 초과의 키 쌍을 생성하기 위해, 예컨대, 범용 해시 연산들에 가산될 수 있다.
일단 소수들이 찾아지면, 차이 또는 오프셋과 같은 거리는 원래의 시드, 즉, 제 1 및 제 2 시드와 식별된 소수들 사이에서 연산될 수 있다. 이러한 거리는 Dp 및 Dq로 지칭된다. 이러한 거리는 2진 배타적 논리합(XOR) 거리, 즉, 생성된 소수들과 시드 사이의 배타적 논리합일 수 있다. 상기 거리는 또한 산술적 차이, 또는 임의의 다른 적합한 거리 함수일 수 있다.
다음 소수 함수를 이용하여 소수와 그것이 연산된 시드 사이의 산술적 차이로 소수를 나타내는 장점이 있다. 산술적 차이는 소수를 획득하기 위해 테스트되었던 후보 소수들의 수를 나타내는 인덱스이다. 산술적 차이는 시드의 비트 크기와 비교하여 훨씬 작은 비트 크기를 갖는다. 시드가 512 비트의 차수인 경우, 상기 차이는 단지 약 8비트에 적합하도록 기대된다.
키와 메시지 사이의 차이의 연산은 종종 1회용 암호표로 지칭되는 암호방식의 타입이다. 1회용 암호표에서, 메시지는 메시지와 적어도 동일한 크기, 예컨대, 비트 크기를 갖는 키로 암호화된다. 이러한 특정 경우에, 소수가 1회용 암호표 방법을 이용하여 암호화되는 경우, 산술적 감산을 이용하여 암호화가 현저하게 짧아짐이 판명된다. 따라서, 제 2 암호화 키로서 시드 자체를 이용하고, 조합 함수로서 산술적 차이를 이용하여, 1회용 암호표 타입의 암호화에서 암호화된 버전이 0들의 큰 수로 시작하는 놀라운 효과를 갖는다. 0들을 폐기함으로써, 암호화된 소수는 암호화되지 않은 소수보다 훨씬 작은 비트에 적합하게 된다. 따라서, 이런 방법은 키 컴포넌트들로서 2개의 소수들을 포함하는 제 1 암호화 키를 생성한다. 소수들은 복수의 소수 후보들을 생성하고, 소수가 찾아질 때까지 그들을 소수성에 대해 테스트함으로써 생성된다. 테스트된 소수들의 수의 표시, 즉, 시드와 소수 사이의 차이의 표시는 현저하게 짧다.
거리들 Dp 및 Dq은 가급적 활성화 코드와 함께 저장부(130) 상에 저장될 수 있다. Dp 및 Dq는 클리어(clear) 형태로 저장될 수 있다. 제 1 암호화 키를 암호화하는 단계는 소수를 인덱스로 나타내는 단계를 포함한다. 부가적으로, 거리, 즉, 인덱스들은 또한 암호화될 수 있다. 예컨대, 제 2 암호화 키는 제 1 및 제 2 시드 및 거리들, 즉, 인덱스들을 암호화하기 위한 추가 암호화 부분을 포함할 수 있다.
흐름도 엘리먼트들(440 및 445)은 소수와 시드 사이의 차이의 연산을 도시한다.
소수 후보들을 선형 시퀀스로 생성할 필요가 없음에 유의한다. 대신, 의사 난수들의 시퀀스가 생성될 수 있고, 소수가 찾아질 때가지 소수성에 대해 테스트될 수 있다. 테스트된 소수 후보들의 수를 나타내는 인덱스는 소수의 재구성을 빠르게 한다.
현장에서, 사용 단계 동안, 제 1 및 제 2 시드는 추가 PUF 출력으로부터 재구성된다. 추가 출력은 에러 정정 및 해시 절차들을 이용하여 잡음 PUF 판독 또는 측정 및 활성화 코드로부터 획득될 수 있다. 거리들, 즉, 오프셋들을 생성된 수들에 가산함으로써, 소수들, 즉, 기밀 RSA 파라미터들을 생성한다. 나머지 연산은 공개 지수 e로부터 기밀 지수 d의 값이 유도될 수 있는데, 이는 RSA 키-쌍 생성에서 대부분 시간 소모 단계가 아니며, 온-더-플라이(on-the-fly)로 이루어질 수 있다.
이런 방법의 장점은 제 1 암호화 키의 생성이 다음 소수들에 대한 오프셋들을 생성하기 위해 등록 동안 단지 1번만 이루어진다는 것이다. 이러한 오프셋들은 반드시 민감한 정보는 아니고, 키 쌍 자체 대신에 비휘발성 메모리에 또는 외부 서버 또는 연산 디바이스 상에 저장될 수 있다. 보안에 관하여, 이는 디바이스가 파워 오프된 경우, 키들이 더 이상 존재하지 않지만, 디바이스가 파워 온되어 키들이 필요할 때마다 동일한 키들은 효율적인 방식으로 재구성될 수 있음을 의미한다.
다른 장점은 디바이스가 파워 오프되는 경우, 암호화되지 않은 키들이 요구되지 않는다는 것이다. 상기 방법은 PUF의 출력 없이 오프셋들이 제 1 암호화 키를 연산할 수 없게 하기 때문에, 임의의 민감한 정보를 IC 상의 비휘발성 메모리에 저장할 필요가 없다.
상기 방법은 또한 DSA, Schnorr, EI Gamal 등과 같은 이산 로그 기반 암호 체계들에 대해 사용되는 비밀 키들을 생성하는 단계를 허용한다. 이러한 시스템들에서, 소수들은 기밀을 유지할 필요가 없지만, 기밀 지수가 생성될 필요가 있다. 예컨대, DSA에 대하여, 소수 p 및 소수 q는 q가 (p-1)를 나누어지도록 생성된다. 다음에, 소수 차수 q의 서브그룹의 발생기 g가 선택되고, q 보다 더 작은 기밀 지수 x가 선택된다. 공개 키는 이제 y=gx 모듈로 p의 양이 된다. 이런 방식으로, 기밀 지수는 등록 동안 랜덤하게 생성될 수 있다. 그 다음에, PUF IC는 해시-다운 미가공 PUF 데이터와 랜덤하게 생성된 기밀 x의 차이를 IC의 비휘발성 메모리에 공개 값으로서 저장한다. 다른 공개 시스템 파라미터들(p,q,y)은 또한 IC 상에 저장된다. 키 재구성 동안, PUF 데이터는 해시되고, 기밀 지수 x를 비휘발성 메모리에 저장된 공개 차이로부터 재구성하는 것을 허용한다.
다른 예로서, 상기 방법은 타원 곡선 상에 점 곱셈(point multiplication)에 대한 비밀 스칼라를 생성하게 한다. 해시-다운 PUF 데이터와 타원 곡선 비밀 키 d사이의 공개 차이는 타원 곡선 암호 체계 및 연관된 공개 키 Q= d.G, - 여기서, G는 타원 곡선 상에서 미리 결정된 점임 -에 대한 나머지 공개 시스템 파라미터들과 함께 IC 상의 비휘발성 메모리에 저장될 수 있다.
본 발명은 또한 컴퓨터 프로그램들, 특히, 본 발명을 실행하기에 적합한 캐리어 상에 또는 그 내의 컴퓨터 프로그램들로 확장됨이 이해될 것이다. 프로그램은 소스 코드, 목적 코드, 부분적으로 컴파일된 형태와 같은 코드 매개 소스 및 목적 코드의 형태로, 또는 본 발명에 따른 방법의 구현에 사용하기에 적합한 임의의 다른 형태일 수 있다. 또한, 이러한 프로그램은 많은 상이한 아키텍처 설계들을 가질 수 있음이 이해될 것이다. 예컨대, 본 발명에 따른 방법 또는 시스템의 기능을 구현하는 프로그램 코드는 하나 또는 그 초과의 서브루틴들로 세분될 수 있다. 이러한 서브루틴들 중에 기능을 분배하기 위한 많은 상이한 방법들은 당업자에 명백할 것이다. 서브루틴들은 독립적인 프로그램을 형성하기 위해 하나의 실행가능한 파일에 함께 저장될 수 있다. 이러한 실행가능한 파일은 컴퓨터 실행가능한 명령들, 예컨대, 프로세서 명령들 및/또는 해석 명령들(예컨대, 자바 해석 명령들)을 포함할 수 있다. 대안적으로, 서브루틴들 중 하나 또는 그 초과 또는 모두는 적어도 하나의 외부 라이브러리 파일에 저장될 수 있고, 예컨대, 실행중에 정적으로 또는 동적으로 중 어느 하나로 메인 프로그램과 링크될 수 있다. 메인 프로그램은 서브루틴들 중 적어도 하나에 대한 적어도 하나의 호출(call)을 포함한다. 또한, 서브루틴들은 서로에 대한 함수 호출들을 포함할 수 있다. 컴퓨터 프로그램 물건과 관련한 실시예는 개시된 방법들 중 적어도 하나의 프로세싱 단계들의 각각에 대응하는 컴퓨터 실행가능 명령들을 포함한다. 이러한 명령들은 서브루틴들로 세분될 수 있고, 및/또는 정적으로 또는 동적으로 링크될 수 있는 하나 또는 그 초과의 파일들에 저장될 수 있다. 컴퓨터 프로그램 물건과 관련한 다른 실시예는 개시된 시스템들 및/또는 물건들 중 적어도 하나의 수단들의 각각에 대응하는 컴퓨터 실행가능 명령들을 포함한다. 이러한 명령들은 서브루틴들로 세분될 수 있고, 및/또는 정적으로 또는 동적으로 링크될 수 있는 하나 또는 그 초과의 파일들에 저장될 수 있다.
컴퓨터 프로그램의 캐리어는 프로그램을 운반할 수 있는 임의의 엔티티 또는 디바이스일 수 있다. 예컨대, 캐리어는 ROM, 예컨대, CD ROM 또는 반도체 ROM과 같은 저장 매체, 또는 자기 기록 매체, 예컨대, 플로피 디스크 또는 하드 디스크를 포함할 수 있다. 더욱이, 캐리어는 전기 또는 광 케이블을 통하여 또는 무선 또는 다른 수단들에 의해 운반될 수 있는 전기 또는 광 신호와 같은 전송가능한 캐리어일 수 있다. 프로그램이 이러한 신호로 구현되는 경우, 캐리어는 이러한 케이블 또는 다른 디바이스 또는 수단에 의해 구성될 수 있다. 대안적으로, 캐리어는 프로그램이 내장된 집적 회로일 수 있으며, 상기 집적 회로는 관련 방법을 수행하기에 또는 관련 방법의 실행에 사용하기에 적합하다.
상술한 실시예들은 본 발명을 제한하기보다는 예시하고, 당업자들이 첨부된 청구범위들의 범위를 벗어나지 않고 많은 대안적인 실시예들을 설계할 수 있을 것임을 유의해야 한다. 청구범위들에서, 괄호들 사이에 위치된 임의의 참조 부호들은 청구범위를 제한하는 것으로 해석되지 않아야 한다. 동사 '포함하다'의 사용 및 그의 활용형들은 청구범위에 진술된 것들 이외의 엘리먼트들 또는 단계들의 존재를 배제하지 않는다. 엘리먼트 이전의 관사 '일(a)' 또는 '일(an)'은 다수의 이러한 엘리먼트들의 존재를 배제하지 않는다. 본 발명은 몇몇의 개별 엘리먼트들을 포함하는 하드웨어, 및 적절히 프로그래밍된 컴퓨터에 의해 구현될 수 있다. 몇몇의 수단들을 열거하는 디바이스 청구항에서, 이들 수단들 중 몇몇은 하나의 하드웨어 및 하드웨어의 동일한 아이템에 의해 구현될 수 있다. 특정 방안들이 서로 상이한 종속항들에 인용된다는 단순한 사실은, 이들 방안들의 조합이 유리하게 사용될 수 없다는 것을 나타내지 않는다.
100 : 연산 디바이스 110 : 키 발생기
115 : 시드 유도 모듈 120 : 암호화 모듈
125 : 키 유도 모듈 130 : 저장부
140 : 암호해독 모듈 150 : 물리적 복제방지 기능부
160 : 추가 암호화 모듈 170 : 전송기-수신기
200 : 스마트 카드 210 : 집적 회로
205 : 카드 220 : 프로세싱 유닛
222 : 메모리 224 : 물리적 복제방지 기능부
226 : 통신 엘리먼트 230 : 버스
300 : 제 1 암호화 키를 획득하기 위한 방법
310 : 시드를 물리적 복제방지 기능부의 출력으로부터 유도
320 : 제 1 암호화 키를 시드에 의존하여 생성
330 : 제 2 암호화 키를 PUF의 출력으로부터 유도
340 : 제 1 암호화 키를 제 2 암호화 키를 사용하여 암호화
350 : 제 1 암호화 키를 저장부에 암호화된 형태로 저장
360 : 암호화된 제 1 암호화 키를 제 2 암호화 키를 이용하여 암호해독
400 : 제 1 암호화 키를 획득하기 위한 방법
405 : PUF 출력 획득
410 : 제 1 시드 획득
415 : 제 2 시드 획득
420 : 다음 소수 함수를 제 1 시드에 적용한 결과로서 제 1 소수 획득
425 : 다음 소수 함수를 제 2 시드에 적용한 결과로서 제 2 소수 획득
440 : 제 1 소수와 제 1 시드 사이의 차이로서 제 1 인덱스 획득
445 : 제 2 소수와 제 2 시드 사이의 차이로서 제 2 인덱스 획득

Claims (15)

  1. 등록 단계 동안 제 1 암호화 키를 획득하기 위한 연산 디바이스로서,
    상기 연산 디바이스는 시드(seed)에 의존하여 상기 제 1 암호화 키를 생성하기 위한 키 발생기를 포함하고,
    상기 연산 디바이스는 상기 등록 단계 이후에 도래하는 사용 단계 동안 상기 연산 디바이스 상에서 상기 제 1 암호화 키의 후속 암호화 사용을 위해 상기 제 1 암호화 키를 상기 연산 디바이스의 저장부에 저장하도록 구성되며,
    상기 연산 디바이스는,
    물리적 복제방지 기능부 ― 상기 키 발생기는 상기 물리적 복제방지 기능부의 출력으로부터 상기 시드를 유도하도록 구성됨 ―, 및
    상기 물리적 복제방지 기능부의 출력으로부터 유도되는 제 2 암호화 키를 사용하여 상기 제 1 암호화 키를 암호화하기 위한 암호화 모듈을 더 포함하고,
    상기 연산 디바이스는 상기 제 1 암호화 키를 상기 저장부 상에 암호화된 형태로 저장하도록 구성되는,
    연산 디바이스.
  2. 제 1 항에 있어서,
    상기 사용 단계 동안 상기 물리적 복제방지 기능부의 추가 출력으로부터 유도되는 상기 제 2 암호화 키를 사용하여 상기 저장되고, 암호화된 제 1 암호화 키를 암호해독하기 위한 암호해독 모듈을 포함하는,
    연산 디바이스.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 제 1 암호화 키는 암호화 공개-비밀 키 쌍 중에서 적어도 비밀 키를 포함하는,
    연산 디바이스.
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 제 2 암호화 키는 대칭 키인,
    연산 디바이스.
  5. 제 1 항 또는 제 2 항에 있어서,
    상기 제 2 암호화 키는 상기 시드를 포함하는,
    연산 디바이스.
  6. 제 1 항 또는 제 2 항에 있어서,
    상기 암호화 모듈의 암호화는 상기 제 2 암호화 키와 상기 제 1 암호화 키 사이의 차이를 연산하는 것을 포함하는,
    연산 디바이스.
  7. 제 1 항 또는 제 2 항에 있어서,
    상기 출력으로부터의 상기 제 2 암호화 키의 유도는 해시(hash) 함수를 상기 출력에 적용하는 것을 포함하는,
    연산 디바이스.
  8. 제 1 항 또는 제 2 항에 있어서,
    상기 저장부는 상기 연산 디바이스의 외부에 있고, 상기 연산 디바이스에 연결가능한,
    연산 디바이스.
  9. 제 1 항 또는 제 2 항에 있어서,
    상기 제 1 암호화 키의 생성은 소수(prime number)의 획득을 포함하고, 상기 제 1 암호화 키는 복수의 키 컴포넌트들을 포함하며, 상기 키 컴포넌트들 중 적어도 하나는 상기 소수이고,
    상기 소수의 획득은 상기 시드에 의존하여 후보 소수들을 생성하는 것 및 상기 소수가 획득될 때까지 소수성(primality)에 대해 상기 후보 소수들을 테스트하는 것을 포함하며, 인덱스는 상기 소수를 획득하기 위해 테스트되었던 후보 소수들의 수를 표시하고,
    상기 제 1 암호화 키의 암호화는 상기 소수를 상기 인덱스로 나타내는 것을 포함하는,
    연산 디바이스.
  10. 제 9 항에 있어서,
    상기 인덱스는 상기 시드와 상기 소수 사이의 산술적 차이를 나타내는,
    연산 디바이스.
  11. 제 1 항 또는 제 2 항에 있어서,
    상기 연산 디바이스는 RFID 태그, 스마트 카드, 모바일 전화, 셋-톱 박스, 및 전자 회로 중 임의의 하나에 포함되는,
    연산 디바이스.
  12. 제 1 항 또는 제 2 항에 있어서,
    상기 물리적 복제방지 기능부는,
    물리적 복제방지 기능부로서 구성된 메모리,
    물리적 복제방지 기능부로서 구성된 FPGA,
    집적 회로에서의 지연 측정에 기반한 물리적 복제방지 기능부,
    광학 물리적 복제방지 기능부,
    오실레이션 기반 PUF, 아비터(Arbiter) PUF
    중 임의의 하나를 포함하는,
    연산 디바이스.
  13. 등록 단계 동안 제 1 암호화 키를 획득하기 위한 방법으로서,
    상기 제 1 암호화 키를 시드에 의존하여 생성하는 단계,
    상기 등록 단계 이후에 도래하는 사용 단계 동안 상기 제 1 암호화 키의 후속 암호화 사용을 위해 상기 제 1 암호화 키를 저장부에 저장하는 단계를 포함하고,
    상기 방법은,
    물리적 복제방지 기능부의 출력으로부터 상기 시드를 유도하는 단계,
    상기 물리적 복제방지 기능부의 출력으로부터 유도되는 제 2 암호화 키를 이용하여 상기 제 1 암호화 키를 암호화하는 단계를 더 포함하고,
    상기 제 1 암호화 키를 저장하는 단계는 상기 제 1 암호화 키를 상기 저장부에 암호화된 형태로 저장하는 단계를 포함하는,
    등록 단계 동안 제 1 암호화 키를 획득하기 위한 방법.
  14. 저장된 컴퓨터 프로그램을 갖는 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 프로그램이 컴퓨터 상에서 실행되는 경우, 상기 컴퓨터 프로그램은, 제 13 항에 기재된 방법의 모든 단계들을 수행하도록 구성된 컴퓨터 프로그램 코드 수단을 포함하는,
    컴퓨터 판독가능 저장 매체.
  15. 제 12 항에 있어서,
    상기 메모리는 SRAM, 플립 플롭 또는 레지스터를 포함하는 휘발성 메모리이고,
    상기 FPGA는 버터플라이(butterfly) PUF를 위해 구성되는,
    연산 디바이스.
KR1020127021771A 2010-01-20 2011-01-19 암호화 키를 획득하기 위한 디바이스 및 방법 KR101727130B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US29665610P 2010-01-20 2010-01-20
US61/296,656 2010-01-20
PCT/EP2011/050656 WO2011089143A1 (en) 2010-01-20 2011-01-19 Device and method for obtaining a cryptographic key

Publications (2)

Publication Number Publication Date
KR20120127607A KR20120127607A (ko) 2012-11-22
KR101727130B1 true KR101727130B1 (ko) 2017-04-14

Family

ID=43901361

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127021771A KR101727130B1 (ko) 2010-01-20 2011-01-19 암호화 키를 획득하기 위한 디바이스 및 방법

Country Status (4)

Country Link
US (1) US20130051552A1 (ko)
EP (1) EP2526505B1 (ko)
KR (1) KR101727130B1 (ko)
WO (1) WO2011089143A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10476681B2 (en) 2017-10-13 2019-11-12 Samsung Electronics Co., Ltd. Semiconductor device generating security key, method of generating security key, and method of enrolling security key
KR20210114644A (ko) * 2020-03-11 2021-09-24 한국전자통신연구원 Rsa 키 생성 방법 및 장치

Families Citing this family (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8726032B2 (en) 2009-03-25 2014-05-13 Pacid Technologies, Llc System and method for protecting secrets file
WO2010111448A1 (en) 2009-03-25 2010-09-30 Pacid Technologies, Llc Method and system for securing communication
WO2010111439A2 (en) 2009-03-25 2010-09-30 Pacid Technologies, Llc Method and system for securing communication
US8848905B1 (en) * 2010-07-28 2014-09-30 Sandia Corporation Deterrence of device counterfeiting, cloning, and subversion by substitution using hardware fingerprinting
US8868923B1 (en) * 2010-07-28 2014-10-21 Sandia Corporation Multi-factor authentication
TWI479870B (zh) * 2011-08-16 2015-04-01 Ict Korea Co Ltd 基於puf透過機器對機器溝通在裝置之間認證的設備與方法
US8983067B2 (en) * 2011-08-17 2015-03-17 Nxp B.V. Cryptographic circuit and method therefor
US8590010B2 (en) * 2011-11-22 2013-11-19 International Business Machines Corporation Retention based intrinsic fingerprint identification featuring a fuzzy algorithm and a dynamic key
WO2013088939A1 (ja) * 2011-12-13 2013-06-20 日本電気株式会社 識別情報生成装置及び識別情報生成方法
EP2605218A1 (fr) * 2011-12-14 2013-06-19 Gemalto SA Procédé de sécurisation d'un document électronique
US9544141B2 (en) 2011-12-29 2017-01-10 Intel Corporation Secure key storage using physically unclonable functions
EP2813028A4 (en) * 2012-02-09 2015-10-07 Intel Corp SPECIFICALLY ENCRYPTIVE KEY DERIVATION FROM AN APPLICATION IN A REPEATABLE MANNER USING A HIDDEN ROOT KEY
DE102012212471B3 (de) * 2012-07-17 2013-11-21 Siemens Aktiengesellschaft Vorrichtung zum Realisieren einer physikalischen Degradations-/Tampererkennung eines digitalen ICs mittels einer (digitalen) PUF und Unterscheiden zwischen einer Degradation aufgrund von physikalischer Manipulation und aufgrund von Alterungsprozessen
US10079678B2 (en) 2012-07-24 2018-09-18 Intel Corporation Providing access to encrypted data
US9742563B2 (en) * 2012-09-28 2017-08-22 Intel Corporation Secure provisioning of secret keys during integrated circuit manufacturing
US8645735B1 (en) * 2012-11-01 2014-02-04 Maxim Integrated Products, Inc. Method for lowering power consumption in secure devices
JP6030925B2 (ja) * 2012-11-12 2016-11-24 ルネサスエレクトロニクス株式会社 半導体装置及び情報処理システム
US9154480B1 (en) * 2012-12-12 2015-10-06 Emc Corporation Challenge-response authentication of a cryptographic device
US8938792B2 (en) 2012-12-28 2015-01-20 Intel Corporation Device authentication using a physically unclonable functions based key generation system
WO2014112999A1 (en) 2013-01-16 2014-07-24 Intel Corporation Grouping of physically unclonable functions
DE102013203415B4 (de) * 2013-02-28 2016-02-11 Siemens Aktiengesellschaft Erstellen eines abgeleiteten Schlüssels aus einem kryptographischen Schlüssel mittels einer physikalisch nicht klonbaren Funktion
EP2965254B1 (en) * 2013-03-08 2020-05-13 Robert Bosch GmbH Systems and methods for maintaining integrity and secrecy in untrusted computing platforms
KR101404673B1 (ko) * 2013-07-02 2014-06-09 숭실대학교산학협력단 Rfid태그 인증 시스템
CN103391199B (zh) * 2013-07-25 2017-02-08 南京邮电大学 一种基于puf的rfid认证方法和系统
US9800407B2 (en) * 2013-08-30 2017-10-24 Qualcomm Incorporated Methods and apparatuses for prime number generation and storage
JP6224401B2 (ja) * 2013-10-04 2017-11-01 ルネサスエレクトロニクス株式会社 半導体メモリ
DE102013227166B4 (de) * 2013-12-27 2016-01-14 Siemens Aktiengesellschaft Schaltkreiseinheit zur Bereitstellung eines kryptographischen Schlüssels
US9755831B2 (en) 2014-01-22 2017-09-05 Qualcomm Incorporated Key extraction during secure boot
GB2512502B (en) 2014-02-25 2015-03-11 Cambridge Silicon Radio Ltd Device authentication
GB2515853B (en) 2014-02-25 2015-08-19 Cambridge Silicon Radio Ltd Latency mitigation
US9680647B2 (en) * 2014-03-24 2017-06-13 Infineon Technologies Ag Method of using a token in cryptography
US9411975B2 (en) 2014-03-31 2016-08-09 Intel Corporation Methods and apparatus to securely share data
US10432409B2 (en) * 2014-05-05 2019-10-01 Analog Devices, Inc. Authentication system and device including physical unclonable function and threshold cryptography
US9946858B2 (en) * 2014-05-05 2018-04-17 Analog Devices, Inc. Authentication system and device including physical unclonable function and threshold cryptography
US9672342B2 (en) 2014-05-05 2017-06-06 Analog Devices, Inc. System and device binding metadata with hardware intrinsic properties
US9715590B2 (en) 2014-05-05 2017-07-25 Analog Devices, Inc. System and device for verifying the integrity of a system from its subcomponents
EP3146670B8 (en) * 2014-05-22 2021-09-22 Analog Devices, Inc. Network authentication system with dynamic key generation
US10057218B2 (en) * 2014-07-28 2018-08-21 The Boeing Company Network address-based encryption
DE102014218218A1 (de) * 2014-09-11 2016-03-17 Robert Bosch Gmbh Verfahren zum Erzeugen eines kryptographischen Schlüssels in einem System-on-a-Chip
US9483664B2 (en) * 2014-09-15 2016-11-01 Arm Limited Address dependent data encryption
KR102201642B1 (ko) * 2014-11-28 2021-01-13 삼성전자주식회사 Puf 회로 및 그것의 키 등록 방법
US9501664B1 (en) 2014-12-15 2016-11-22 Sandia Corporation Method, apparatus and system to compensate for drift by physically unclonable function circuitry
DE112016001047B4 (de) * 2015-03-05 2022-08-18 Analog Devices, Inc. System und Vorrichtung zum Verifizieren der Integrität eines Systems von seinen Komponenten
CN104699656B (zh) * 2015-03-19 2017-10-03 东南大学 一种基于fpga的微处理器puf实现系统及其方法
US10177922B1 (en) * 2015-03-25 2019-01-08 National Technology & Engineering Solutions Of Sandia, Llc Repeatable masking of sensitive data
US9722774B2 (en) 2015-04-29 2017-08-01 Samsung Electronics Co., Ltd. Non-leaky helper data: extracting unique cryptographic key from noisy F-PUF fingerprint
GB201511385D0 (en) 2015-06-29 2015-08-12 Nagravision Sa Secure programming of secret data
DE102015212887A1 (de) * 2015-07-09 2017-01-12 Siemens Aktiengesellschaft Bestimmen eines gerätespezifischen privaten Schlüssels für ein asymmetrisches Kryptographieverfahren auf einem Gerät
CN105307164B (zh) * 2015-09-18 2018-10-30 北京锐安科技有限公司 一种可穿戴设备的认证方法
US20170126414A1 (en) * 2015-10-28 2017-05-04 Texas Instruments Incorporated Database-less authentication with physically unclonable functions
EP3420517B1 (en) 2016-02-23 2022-07-06 nChain Holdings Limited A method and system for the secure transfer of entities on a blockchain
EA201891829A1 (ru) 2016-02-23 2019-02-28 Нчейн Холдингс Лимитед Способ и система для эффективного перевода криптовалюты, связанной с заработной платой, в блокчейне для создания способа и системы автоматизированной выплаты заработной платы на основе смарт-контрактов
CA3013185A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited A method and system for securing computer software using a distributed hash table and a blockchain
MX2018010057A (es) 2016-02-23 2019-01-21 Nchain Holdings Ltd Metodo de registro y de manejo automatico para contratos inteligentes de cumplimiento obligado por cadenas de bloques.
EP3420507A1 (en) 2016-02-23 2019-01-02 Nchain Holdings Limited Tokenisation method and system for implementing exchanges on a blockchain
US11410145B2 (en) 2016-02-23 2022-08-09 nChain Holdings Limited Blockchain-implemented method for control and distribution of digital content
JP7249148B2 (ja) 2016-02-23 2023-03-30 エヌチェーン ライセンシング アーゲー ブロックチェーンベースユニバーサルトークン化システム
WO2017145048A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Cryptographic method and system for secure extraction of data from a blockchain
WO2017145016A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
EP3862956B1 (en) 2016-02-23 2024-01-03 nChain Licensing AG Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
EP4167165A1 (en) 2016-02-23 2023-04-19 nChain Licensing AG Blockchain-based exchange with tokenisation
AU2017222421B2 (en) 2016-02-23 2022-09-01 nChain Holdings Limited Personal device security using elliptic curve cryptography for secret sharing
JP7114469B2 (ja) 2016-02-23 2022-08-08 エヌチェーン ホールディングス リミテッド セキュアな投票及び配布に利用されるブロックチェーンが実装された計数システム及び方法
GB2562621A (en) 2016-02-23 2018-11-21 Nchain Holdings Ltd System and method for controlling asset-related actions via a blockchain
US10097348B2 (en) 2016-03-24 2018-10-09 Samsung Electronics Co., Ltd. Device bound encrypted data
US10146464B2 (en) * 2016-06-30 2018-12-04 Nxp B.V. Method for performing multiple enrollments of a physically uncloneable function
US11258599B2 (en) * 2016-08-04 2022-02-22 Macronix International Co., Ltd. Stable physically unclonable function
US10855477B2 (en) 2016-08-04 2020-12-01 Macronix International Co., Ltd. Non-volatile memory with physical unclonable function and random number generator
US10404478B2 (en) * 2016-08-04 2019-09-03 Macronix International Co., Ltd. Physical unclonable function using divided threshold distributions in non-volatile memory
US10680809B2 (en) 2016-08-04 2020-06-09 Macronix International Co., Ltd. Physical unclonable function for security key
US10911229B2 (en) 2016-08-04 2021-02-02 Macronix International Co., Ltd. Unchangeable physical unclonable function in non-volatile memory
US10050796B2 (en) * 2016-11-09 2018-08-14 Arizona Board Of Regents On Behalf Of Northern Arizona University Encoding ternary data for PUF environments
US20180150256A1 (en) * 2016-11-29 2018-05-31 Intel Corporation Technologies for data deduplication in disaggregated architectures
EP3330878B1 (en) 2016-12-05 2019-03-13 Samsung SDI Co., Ltd. Control unit for a battery system with security identifier
JP2018098757A (ja) * 2016-12-13 2018-06-21 ルネサスエレクトロニクス株式会社 通信装置及び暗号処理システム
US11012230B2 (en) * 2016-12-13 2021-05-18 Renesas Electronics Corporation Communication apparatus and cryptographic processing system
JP6882666B2 (ja) * 2017-03-07 2021-06-02 富士通株式会社 鍵生成装置および鍵生成方法
US10425235B2 (en) 2017-06-02 2019-09-24 Analog Devices, Inc. Device and system with global tamper resistance
US10958452B2 (en) 2017-06-06 2021-03-23 Analog Devices, Inc. System and device including reconfigurable physical unclonable functions and threshold cryptography
WO2019010421A1 (en) * 2017-07-07 2019-01-10 Ligatti Jay SYSTEMS AND METHODS FOR GENERATING SYMMETRIC CRYPTOGRAPHIC KEYS
US11258597B2 (en) * 2017-07-10 2022-02-22 Intrinsic Id B.V. Key derivation from PUFs
US10949546B2 (en) 2017-08-02 2021-03-16 Samsung Electronics Co., Ltd. Security devices, electronic devices and methods of operating electronic devices
US10521616B2 (en) 2017-11-08 2019-12-31 Analog Devices, Inc. Remote re-enrollment of physical unclonable functions
US11063772B2 (en) 2017-11-24 2021-07-13 Ememory Technology Inc. Multi-cell per bit nonvolatile memory unit
US10009325B1 (en) * 2017-12-07 2018-06-26 Karamba Security End-to-end communication security
EP3499788B1 (en) * 2017-12-15 2020-07-29 Secure-IC SAS Dynamic masking
US10915635B2 (en) * 2017-12-22 2021-02-09 The Boeing Company Countermeasures to frequency alteration attacks on ring oscillator based physical unclonable functions
CN108400868B (zh) * 2018-01-17 2021-06-15 深圳市文鼎创数据科技有限公司 种子密钥的存储方法、装置及移动终端
JP6752247B2 (ja) * 2018-03-09 2020-09-09 三菱重工業株式会社 情報配信装置、配信対象装置、情報配信システム、情報配信方法及びプログラム
EP3562092A1 (en) * 2018-04-26 2019-10-30 Thales Dis Design Services Sas Method for generating on-board a cryptographic key using a physically unclonable function
US10892903B2 (en) * 2018-05-29 2021-01-12 Ememory Technology Inc. Communication system capable of preserving a chip-to-chip integrity
JP2021526745A (ja) 2018-06-11 2021-10-07 クリプトグラフィ リサーチ, インコーポレイテッド デバイスの物理的変動に関連する関数に基づくターゲットデータの生成
GB2574613B (en) * 2018-06-12 2020-07-22 Advanced Risc Mach Ltd Device, system, and method of generating and handling cryptographic parameters
KR20210022085A (ko) * 2018-06-29 2021-03-02 나그라비젼 에스에이 물리적 복제불가능 함수를 사용한 암호화 키 구성
CN108900307B (zh) * 2018-07-06 2020-03-24 厦门大学 Pgp密钥管理认证密码恢复算法的fpga实现方法
US11251959B2 (en) * 2018-07-09 2022-02-15 Ares Technologies, Inc. Method of manufacturing a secure computing hardware apparatus
CN109379185B (zh) * 2018-10-22 2021-04-27 飞天诚信科技股份有限公司 一种安全的rsa运算实现方法及装置
EP3654576B1 (en) 2018-11-16 2021-07-28 Siemens Aktiengesellschaft Computer-implemented method for error-correction-encoding and encrypting of a file
US11700136B2 (en) * 2018-11-26 2023-07-11 Kansas State University Research Foundation PUF-IPA: a PUF-based identity preserving lightweight authentication protocol using binary string shuffling
EP3668003A1 (en) * 2018-12-12 2020-06-17 Thales Dis Design Services Sas Method of implementing a physical unclonable function
TW202107871A (zh) * 2019-08-01 2021-02-16 張英輝 產生非對稱算法密鑰對之方法
GB201913058D0 (en) * 2019-09-10 2019-10-23 Ttp Plc Unit verification method and device
CN110650019B (zh) * 2019-09-20 2022-06-14 广州城市职业学院 基于puf和安全概略的rfid认证方法及系统
CN111278007B (zh) * 2020-01-22 2023-04-07 湖南科大天河通信股份有限公司 基于数传电台通信的加密方法、装置及系统
US11251953B2 (en) 2020-07-15 2022-02-15 Juniper Networks, Inc. Proving prime integers for encryption
US11722298B2 (en) * 2020-09-15 2023-08-08 Globalfoundries U.S. Inc. Public-private encryption key generation using Pcell parameter values and on-chip physically unclonable function values
US11380379B2 (en) 2020-11-02 2022-07-05 Macronix International Co., Ltd. PUF applications in memories
WO2022224022A1 (en) 2021-04-23 2022-10-27 Telefonaktiebolaget Lm Ericsson (Publ) Systems and methods of physically unclonable function (puf)-based key derivation function
US20220393859A1 (en) * 2021-06-07 2022-12-08 Micron Technology, Inc. Secure Data Storage with a Dynamically Generated Key
US20230033630A1 (en) * 2021-07-30 2023-02-02 Micron Technology, Inc. Embedded Hardware Security Module (HSM)
CN114629643A (zh) * 2022-03-25 2022-06-14 山东云海国创云计算装备产业创新中心有限公司 一种密钥处理方法、装置、介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060013402A1 (en) 2004-07-14 2006-01-19 Sutton James A Ii Method of delivering Direct Proof private keys to devices using an on-line service
US20060210082A1 (en) 2004-11-12 2006-09-21 Srinivas Devadas Volatile device keys and applications thereof
US20080279373A1 (en) 2007-05-11 2008-11-13 Validity Sensors, Inc. Method and System for Electronically Securing an Electronic Device Using Physically Unclonable Functions
WO2009024913A2 (en) 2007-08-22 2009-02-26 Intrinsic Id Bv Identification of devices using physically unclonable functions

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3736882C2 (de) 1987-10-30 1997-04-30 Gao Ges Automation Org Verfahren zur Echtheitsprüfung eines Datenträgers mit integriertem Schaltkreis
IL107967A (en) * 1993-12-09 1996-12-05 News Datacom Research Ltd Apparatus and method for securing communication systems
US5631962A (en) * 1995-10-23 1997-05-20 Motorola, Inc. Circuit and method of encrypting key validation
US5999629A (en) * 1995-10-31 1999-12-07 Lucent Technologies Inc. Data encryption security module
US20020099746A1 (en) * 1999-07-26 2002-07-25 Tie Teck Sing T-sequence apparatus and method for general deterministic polynomial-time primality testing and composite factoring
JP2004532448A (ja) * 2001-02-27 2004-10-21 ビザ・インターナショナル・サービス・アソシエーション 分散化された量子暗号化されたパターン生成およびスコアリング
US7352867B2 (en) * 2002-07-10 2008-04-01 General Instrument Corporation Method of preventing unauthorized distribution and use of electronic keys using a key seed
WO2004066296A1 (en) 2003-01-24 2004-08-05 Koninklijke Philips Electronics N.V. Reliable storage medium access control method and device
US7181016B2 (en) * 2003-01-27 2007-02-20 Microsoft Corporation Deriving a symmetric key from an asymmetric key for file encryption or decryption
JP2004254027A (ja) * 2003-02-19 2004-09-09 Toshiba Corp サーバ装置、鍵管理装置、暗号通信方法及びプログラム
WO2005041000A1 (en) * 2003-10-23 2005-05-06 Koninklijke Philips Electronics N.V. Method for protecting information carrier comprising an integrated circuit
US7822200B2 (en) * 2005-03-07 2010-10-26 Microsoft Corporation Method and system for asymmetric key security
WO2006129242A2 (en) 2005-06-01 2006-12-07 Koninklijke Philips Electronics N.V. Template renewal in helper data systems
US8995653B2 (en) * 2005-07-12 2015-03-31 International Business Machines Corporation Generating a secret key from an asymmetric private key
JP2008104040A (ja) * 2006-10-20 2008-05-01 Fujitsu Ltd 共通鍵生成装置および共通鍵生成方法
US20110002461A1 (en) * 2007-05-11 2011-01-06 Validity Sensors, Inc. Method and System for Electronically Securing an Electronic Biometric Device Using Physically Unclonable Functions
US8464059B2 (en) * 2007-12-05 2013-06-11 Netauthority, Inc. System and method for device bound public key infrastructure

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060013402A1 (en) 2004-07-14 2006-01-19 Sutton James A Ii Method of delivering Direct Proof private keys to devices using an on-line service
US20060210082A1 (en) 2004-11-12 2006-09-21 Srinivas Devadas Volatile device keys and applications thereof
US20080279373A1 (en) 2007-05-11 2008-11-13 Validity Sensors, Inc. Method and System for Electronically Securing an Electronic Device Using Physically Unclonable Functions
WO2009024913A2 (en) 2007-08-22 2009-02-26 Intrinsic Id Bv Identification of devices using physically unclonable functions

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10476681B2 (en) 2017-10-13 2019-11-12 Samsung Electronics Co., Ltd. Semiconductor device generating security key, method of generating security key, and method of enrolling security key
KR20210114644A (ko) * 2020-03-11 2021-09-24 한국전자통신연구원 Rsa 키 생성 방법 및 장치
KR102569145B1 (ko) * 2020-03-11 2023-08-24 한국전자통신연구원 Rsa 키 생성 방법 및 장치

Also Published As

Publication number Publication date
KR20120127607A (ko) 2012-11-22
US20130051552A1 (en) 2013-02-28
EP2526505B1 (en) 2015-06-17
EP2526505A1 (en) 2012-11-28
WO2011089143A1 (en) 2011-07-28

Similar Documents

Publication Publication Date Title
KR101727130B1 (ko) 암호화 키를 획득하기 위한 디바이스 및 방법
Guajardo et al. Physical unclonable functions and public-key crypto for FPGA IP protection
Delvaux et al. A survey on lightweight entity authentication with strong PUFs
US9998445B2 (en) Authentication system
Delvaux Security analysis of PUF-based key generation and entity authentication
US8868923B1 (en) Multi-factor authentication
Guajardo et al. Anti-counterfeiting, key distribution, and key storage in an ambient world via physical unclonable functions
US20160006570A1 (en) Generating a key derived from a cryptographic key using a physically unclonable function
US9037623B2 (en) Proxy calculation system, proxy calculation method, proxy calculation requesting apparatus, and proxy calculation program and recording medium therefor
EP3577642B1 (en) Methods and devices for protecting data
JP2007510349A (ja) 物理ランダム関数を共有する信頼できるフォワード秘密鍵のシステム及び方法
CN106416121A (zh) 用于签名产生和加密/解密的共模rsa密钥对
van der Leest et al. Anti-counterfeiting with hardware intrinsic security
Gebotys Security in embedded devices
Nguyen et al. Efficient attacks on robust ring oscillator PUF with enhanced challenge-response set
US10567155B2 (en) Securing a cryptographic device
US11838431B2 (en) Cryptographic operation
JP6059347B2 (ja) 復号装置、復号能力提供装置、それらの方法、およびプログラム
Adeli et al. Challenging the security of “A PUF-based hardware mutual authentication protocol”
Van Herrewege Lightweight PUF-based key and random number generation
JP2022183112A (ja) 改善された感染対策
Unterstein et al. SCA secure and updatable crypto engines for FPGA soc bitstream decryption
US20220358203A1 (en) Puf-rake: a puf-based robust and lightweight authentication and key establishment protocol
KR102628008B1 (ko) 적어도 두 개의 알고리즘을 이용하여 랜덤 넘버를 생성하는 랜덤 넘버 생성기 및 이를 포함하는 보안 장치
Bringer et al. On physical obfuscation of cryptographic algorithms

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