KR20150064148A - 물리적 복제방지 기능으로서 이용되는 메모리로부터 암호 키를 생성하기 위한 시스템 - Google Patents

물리적 복제방지 기능으로서 이용되는 메모리로부터 암호 키를 생성하기 위한 시스템 Download PDF

Info

Publication number
KR20150064148A
KR20150064148A KR1020157011155A KR20157011155A KR20150064148A KR 20150064148 A KR20150064148 A KR 20150064148A KR 1020157011155 A KR1020157011155 A KR 1020157011155A KR 20157011155 A KR20157011155 A KR 20157011155A KR 20150064148 A KR20150064148 A KR 20150064148A
Authority
KR
South Korea
Prior art keywords
memory
content
unit
generating
encrypted
Prior art date
Application number
KR1020157011155A
Other languages
English (en)
Other versions
KR102201062B1 (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 KR20150064148A publication Critical patent/KR20150064148A/ko
Application granted granted Critical
Publication of KR102201062B1 publication Critical patent/KR102201062B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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
    • 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
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • 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/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/3271Cryptographic 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 using challenge-response
    • H04L9/3278Cryptographic 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 using challenge-response using physically unclonable functions [PUF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

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

Abstract

암호 키(cryptographic key)를 생성하기 위한 전자 시스템(100)이 제공되며, 이 시스템은 물리적 복제방지 기능(physically unclonable function)으로서 이용되는 메모리(110) ― 상기 메모리는 기록 가능하고, 휘발성이며, 상기 메모리의 각각의 파워-업 시에, 상기 메모리가 상기 메모리의 적어도 부분적으로 랜덤인 물리적 특성들에 의존하는 메모리 콘텐츠를 확정(settle)하도록 구성되며, 상기 메모리는 메모리 인터페이스를 통해 액세스 가능함 ― ; 및 ― 상기 메모리가 확정되는 메모리 콘텐츠로부터 상기 암호 키를 유도하도록 구성된 키 유도 유닛(150)을 포함하고, 상기 암호 키를 생성하기 위한 전자 시스템은 ― 상기 메모리 인터페이스를 통해 상기 메모리에 그리고 상기 키 유도 유닛에 연결되는 메모리 판독 유닛을 더 포함하고, 상기 메모리 판독 유닛은 스크램블링된 순서(scrambled order)로 상기 메모리 인터페이스를 통해 상기 메모리 콘텐츠를 리트리브(retrieve)하기 위한 어드레스 스크램블러(140)를 포함한다.

Description

물리적 복제방지 기능으로서 이용되는 메모리로부터 암호 키를 생성하기 위한 시스템{SYSTEM FOR GENERATING A CRYPTOGRAPHIC KEY FROM A MEMORY USED AS A PHYSICALLY UNCLONABLE FUNCTION}
본 발명은 암호 키를 생성하기 위한 전자 시스템에 관한 것이며, 이 시스템은 물리적 복제방지 기능으로서 이용되는 메모리 ― 이 메모리는 기록 가능하고, 휘발성이며, 메모리의 각각의 파워-업 시에, 메모리가 상기 메모리의 적어도 부분적으로 랜덤인 물리적 특성들에 의존하는 메모리 콘텐츠를 확정(settle)하도록 구성되며, 이 메모리는 메모리 인터페이스를 통해 액세스 가능함 ― ; 및 상기 메모리가 확정되는 메모리 콘텐츠로부터 상기 암호 키를 유도하도록 구성된 키 유도 유닛을 포함한다.
물리적 복제방지 기능(physically unclonable function; PUF)은 키들(keys), 식별자들 등을 안전한 메모리들에 저장하는 것을 포함해서, 안전한 식별의 다수의 형태들에 대한 유리한 대안들인 것으로 판명되었다.
물리적 복제방지 기능은 디지털 식별자를 유도하기 위해 제조 변동들(manufacturing variations)을 이용한다. 디지털 식별자는 이에 따라 물리적 매체에 결합(tie)된다. 물리적 복제방지 기능은 랜덤한 프로세스 변동들에 의존하기 때문에, PUF를 생성하는 것은 쉽지만, 특정한 미리-결정된 식별자를 발생시킬 수 있는 PUF를 생성하는 것이 완전히 불가능하지 않은 경우에는 매우 어렵다. 제조 변동들은 메모리 엘리먼트의 상이한 물리적 특성들을 야기할 수 있다. 예를 들어, 물리적 특성들은, 도핑 농도들, 산화물 두께들, 채널 길이들, (예를 들어, 금속 층의) 구조 폭, 파라시틱들(parasitics)(예를 들어, 저항, 커패시턴스) 등을 포함할 수 있다. 디지털 회로 설계가 여러 번 제조될 때, 이들 물리적 특성들은 매우 조금 변동할 것이고, 동반하여 이들은 IC 엘리먼트, 예를 들어, 메모리 엘리먼트의 행동(behavior)이 몇몇 상황들에서 상이하게 행동(behave)하게 할 것이다. 예를 들어, 시동(start-up) 행동은 물리적 특성들에서의 제조 변동들에 의해 결정된다.
PUF들을 위한 편리한 선택은, 비휘발성 메모리들, 특히 플립-플롭 기반 메모리들, 더 특히, 정적 랜덤 액세스 메모리들(SRAM)이다. 이러한 메모리들은 평가하기 쉽고 제조 비용이 낮다. SRAM에 기초한 PUF는 SRAM PUF들이라 불린다. SRAM들은, 이들이 파워 업(powered-up)된 이후 이들이 온-비트들 및 오프-비트들의 랜덤 패턴들로 채워지는 특성을 갖는다. SARM이 다음번 파워 업되는 경우 패턴이 정확히 그 자체를 반복하지 않을 수 있지만, 2개의 이러한 패턴들 간의 차이는 통상적으로 상태에서 비트들의 수의 절반보다 훨씬 더 적다. 동일한 SRAM의 메모리의 메모리 파워-업 콘텐츠들 간의 차이는 일반적으로 상이한 SRAM들의 메모리 파워-업 콘텐츠들 간의 차이보다 훨씬 더 적다.
동일한 과제(challenge)가 2번 평가될 때 PUF가 정확히 동일한 결과를 제공하지 않을 것이므로, 이른바 헬퍼 데이터(Helper Data) 알고리즘(퍼지 추출기( Fuzzy Extractor)로서 또한 알려짐)은, 키가 유도될 때마다 그 키가 동일할 것을 보장하는데 이용될 수 있다. 노이지 측정(noisy measurement)들로부터 재현 가능한 값들을 구성하도록 헬퍼 데이터를 이용하는 하나의 방식은, 예를 들어, "Template Renewal in Helper Data Systems"란 명칭의 국제 특허 출원 WO 2006/129242 등에서 설명된다.
PUF들, 특히 SRAM PUF들의 하나의 애플리케이션은 전자 회로 상에서 암호 키를 유도하는 것이다. 전자 회로는 통상적으로 집적 회로(IC) 및/또는 프로그래밍 가능한 로직을 포함한다.
PUF들의 하나의 이점은, 이들이 본질적으로 무단변경 방지 특성들(tamper resistant qualities)를 소유한다는 것이다. PUF가 없다면, 암호 키는, 키가 통상적으로 저장되는 비-휘발성 메모리에 물리적 공격을 마운팅(mount)함으로써 공격자들에 의해 복구(recover)될 수 있다. 예를 들어, 공격자는 메모리를 열고 그의 콘텐츠를 조사할 수 있다. PUF를 이용하는 것은 이러한 타입의 공격을 매우 어렵게 하는데, 그 이유는 PUF를 여는 것은 통상적으로 그 공격을 방해할 것인데, 말하자면, 그의 동적 콘텐츠들에 대해 SRAM을 조사하는 것은 임베딩된 비-휘발성 메모리를 검사하는 것보다 훨씬 더 어렵기 때문이다. 이에 따라 공격자가 그의 검사로부터 러닝(learn)하는 정보는 암호 키를 생성하는데 이용되었던 상호작용에 관련되지 않는다. 이는 공격자가 물리적 공격을 이용하여 키를 찾는 것을 더 어렵게 한다.
불행히도, 침입성(intrusive) 물리적 공격들은 공격자가 PUF의 내부 상태에 관한 적어도 일부의 정보를 획득하는 유일한(only) 공격 벡터는 아니다. 이른바 사이드 채널들이 또한 정보를 누설할 수 있다. 사이드-채널은, 시스템 외부로부터 관찰될 수 있고, 그리고 그의 의도된, 관찰 가능한 입력-출력 행동 이외에, 시스템의 상태 및/또는 내부 동작과 적어도 어느 정도 상관되는 정보를 노출시키는, 시스템 내부에서 발생하는 물리적 현상에 관련된 시스템에 관한 정보 소스이다.
전력 소비, 시간 소모, 및 전자기 방사선(electromagnetic radiation)은 암호 시스템들에 관련되는 사이드-채널들의 예들이다. 예를 들어, 시스템이 암호 키를 이용하는 동안 모니터링되는 암호 시스템의 전력 소비는 어느 정도(some) 키에 상관되게 늘어날(extend) 수 있다. 암호 키를 기밀로 유지하는 것이 가장 중요하기 때문에, 그 키에 상관되는 정보의 임의의 누설은 문제의 소지가 있다.
"System for establishing a cryptographic key depending on a physical system"란 명칭으로, WO/2010/100015로서 공개된 국제 특허 출원 PCT/EP2010/051631에서는 PUF로부터 키 유도의 에러 정정 부분 동안, 즉 헬퍼 데이터 알고리즘의 실행 동안 발생하는 사이드-채널 누설을 감소시키기 위한 해결책들을 개시한다. 에러 정정은 특히 사이드 채널 누설을 방지하기 위한 중요한 단계인데, 그 이유는 그것이 다수의 비-선형 상관들을 도입하도록 민감성 데이터를 여러번 핸들링하기 때문이다. 또한, 에러 정정이 소프트웨어에서 구현되는 경우, 누설은 확대된다.
에러 정정 동안 발생할 수 있는 사이드 채널 누설이 해결되었다면, 사이드 채널 누설의 더 적은 소스들이 남게 된다는 것이 판명되었다. 이들 더 적은 소스들은 보다 복잡한 측정을 요구하고, 심지어 성공적인 측정 후에도, 비교적 매우 적은 민감성 정보만을 제공하지만, 그럼에도, 비밀 키들의 유도 동안 발생할 수 있는 사이드 채널 누설의 다른 소스들을 다루고자 하는 바램이 있다.
SRAM PUF와 같은 메모리 기반 PUF의 전력 소모가 측정될 때, 하나의 사이드 채널은 메모리의 판독 프로세스 동안 발생한다. 예를 들어, PUF 제어 블록이, 메모리 인터페이스를 통해 연결되는 메모리의 시동 값들(파워-업 메모리 콘텐츠)을 판독한다. 메모리 인터페이스의 전력 소모는 전달되는 데이터 워드의 해밍 웨이트에 의존한다. SRAM 메모리 콘텐츠들을 판독하는 것은 전력 또는 전자기 분석 또는 심지어 광-방출 공격들을 통해 판독되는 데이터의 바이트들의 해밍 웨이트 정보를 누설할 수 있다.
해밍 웨이트와 전력 소모 간의 완벽한 대응성을 가정하는 경우, 8비트 길이 메모리 인터페이스에 대한 데이터 누설은 이론적으로 바이트 당 약 2.54 비트들, 즉, 약 30%만큼 높을 것이다. 실제로, 대응성이 완벽(perfect)한 것에 훨씬 못미치고, 이에 따라 정보 누설이 훨씬 더 적은 경우, 메모리 기반 PUF들의 메모리 인터페이스에서의 사이드 채널 누설을 감소시킬 필요가 있다. 비트 당 이론적으로 최대 누설은 메모리 인터페이스가 더 넓어질 때 급격히 떨어진다. 예를 들어, 비트 당 이론적 누설은, 메모리 인터페이스가 16비트로 증가되는 경우 거의 절반이 된다. 그러나 큰 메모리 인터페이스들은 보다 비싸고 보다 많은 전력을 소비하여, 몇몇 상황들에서 그의 이용을 방해한다.
광-방출 공격들은 집적 회로들에서 상태가 변경될 때 방출될 수 있는 소수의 광자들에 의해 형성되는 광학 사이드 채널을 이용한다.
암호 키(cryptographic key)를 생성하기 위한 전자 시스템이 제공된다. 이 시스템은 물리적 복제방지 기능(physically unclonable function)으로서 이용되는 메모리 ― 상기 메모리는 기록 가능하고, 휘발성이며, 상기 메모리의 각각의 파워-업 시에, 상기 메모리가 상기 메모리의 적어도 부분적으로 랜덤인 물리적 특성들에 의존하는 메모리 콘텐츠를 확정(settle)하도록 구성되며, 상기 메모리는 메모리 인터페이스를 통해 액세스 가능함 ― ; 및 상기 메모리가 확정되는 메모리 콘텐츠로부터 상기 암호 키를 유도하도록 구성된 키 유도 유닛을 포함한다.
상기 암호 키를 생성하기 위한 전자 시스템은 상기 메모리 인터페이스를 통해 상기 메모리에 그리고 상기 키 유도 유닛에 연결되는 메모리 판독 유닛을 더 포함하고, 상기 메모리 판독 유닛은 스크램블링된 순서(scrambled order)로 상기 메모리 인터페이스를 통해 상기 메모리 콘텐츠를 리트리브(retrieve)하기 위한 어드레스 스크램블러를 포함한다.
메모리 콘텐츠는 스크램블링된 순서로 메모리 인터페이스를 통해 전달되기 때문에, 사이드 채널 누설이 감소된다. 데이터 워드 그 자체의 해밍 웨이트(hamming weight)가 여전히 누설되지만, 해밍 웨이트와 메모리 콘텐츠의 특정한 데이터 워드 간의 대응성은 이를 손실한다. 사이드 채널 누설의 감소는, 메모리 콘텐츠의 크기가 메모리 콘텐츠를 구성하는 개별 데이터 워드들의 크기에 비해 큰 경우 크다. 이는, 그 경우에, 측정된 해밍 웨이트가 속할 수 있는 다수의 잠재적인 데이터 워드들이 존재하기 때문이다. 이는 특히, 잠재적인 누설이 작은 데이터 워드들(8비트들 및 그 미만)에 대해 더 크기 때문에 편리하다. 1024 비트 또는 그 초과의 메모리 콘텐츠에 대한 사이드 채널 누설은 무시할만하다고 추정된다.
해밍 웨이트 의존 전력차들로부터 누설되는 정보의 양을 감소시키도록 시도하는 다수의 잠재적인 대책들이 응용 가능하지 않다는 것에 주의한다. 예를 들어, 이른바 일정-웨이트 코드들이 대책으로서 제안되었다. 일정-웨이트 코드에서, 모든 감지 데이터는, 보통 데이터 워드 비트-크기의 절반과 동일한 고정된 해밍 웨이트를 갖는 데이터 워드들에 인코딩된다. 이 대책들은, 말하자면 안전한 메모리 내의 키 저장으로, 해밍 웨이트 의존 전력차들을 감소시키지만, 이는 메모리 기반 PUF들에 응용 가능하지 않다. 메모리 콘텐츠를 결정하는 물리적 특성들은 랜덤인데, 즉 이는 메모리 콘텐츠에 대해 특정한 타입의 인코딩을 규정할 수 없다.
암호 키를 생성하기 위한 전자 시스템은, 스마트 카드, 모바일 통신 디바이스, 예컨대 모바일 전화, 태블릿 등과 같은 모바일 컴퓨팅 디바이스에 포함될 수 있다. 메모리 콘텐츠로부터 유도된 키는, 시스템이 그가 키를 소유한다는 것을 시스템이 입증하는 챌린지 응답 프로토콜(challenge response protocol)에서 이용될 수 있다. 키는 기밀 보호들을 위해, 예를 들어, 암호화된 저장 또는 통신에 이용될 수 있다. 유도된 키는 대칭 키일 수 있지만, 심지어 예를 들어, 비대칭 키를 찾기 위한 시드로서 키를 이용함으로써 비대칭 공용/개인 키 쌍일 수도 있다.
암호 키를 생성하기 위한 전자 시스템은 집적 회로에 포함될 수 있다. 예를 들어, 집적 회로는 ASSP 즉, 세계 시장(wide market)에 응용 가능한 특정한 기능을 구현하는 특수 집적 회로일 수 있다. ASSP는 예를 들어, 오디오/비디오 코덱을 구현하는데 이용된다. 암호 키를 이용하여 암호 기능들을 지원하는 ASSP의 보안은 본 명세서에서 설명되는 암호 키를 생성하기 위한 전자 시스템으로 암호 키를 생성함으로써 개선된다.
예를 들어, 집적 회로는 DSP일 수 있다. 이는 예를 들어, 키 안전을 유지하면서 스트리밍 콘텐츠를 보호하기 위해; 예를 들어, PUF-생성 키 또는 그의 파생물들을 이용한 암호화를 이용하는 애플리케이션들을 개선할 것이다 .
PUF-생성 키는 인증을 위한 신뢰 루트(root of trust)로서 및/또는 안전한 통신 채널을 설정하기 위해 이용될 수 있다. 후자는 예를 들어, 암호 키를 생성하기 위한 전자 시스템을 포함하는 NFC 칩을 위해 중요할 수 있다.
메모리는 물리적 복제방지 기능으로서 이용된다. 메모리는 2개의 안정 상태들로 구성될 수 있는 다수의 이진 저장 엘리먼트들을 포함할 수 있다. 시동 시에, 각각의 이진 저장 엘리먼트는 2개의 안정 상태들 중 하나로 확정한다. 그것이 어느 상태로 정착할지는 대부분 정밀한 제조, 예를 들어, 저장 엘리먼트의 도핑 레벨들에 의해 결정되지만, 엘리먼트가 정착한 상태는 또한 채널 변화들(chance fluctuations)에 의해 영향을 받는다. 예를 들어, 메모리는 다수의 플립-플롭들, 특히, D-타입 플립-플롭들을 포함할 수 있고, 특히 메모리는 SRAM 메모리일 수 있다. 메모리의 파워-업 콘텐츠는 노이즈 및 동요(perturbation)들에 처해진다. 몇몇 FPGA들은 물리적 복제방지 기능으로서 이용되는 메모리로서 이용될 수 있는 초기화되지 않은 SRAM 블록들을 포함한다.
메모리 인터페이스는 어드레스 채널 및 데이터 채널을 포함할 수 있다. 메모리에 대한 스크램블링된 액세스는, 이들이 액세스 채널에 진입하기 이전에 메모리 어드레스들을 스크램블링, 예를 들어, 암호화함으로써 달성될 수 있다. 그 경우에, 상이한 스크램블링된 순서가 상이한 키를 선택함으로써 획득될 수 있다. 바람직하게는, 스크램블링된 순서는 공격자에게 알려지지 않고, 즉 비밀이며, 보다 구체적으로, 스크램블링된 순서는 디바이스에 대해 고유하며, 예를 들어, 제조 시간에 선택되고, 보다 구체적으로, 스크램블링된 순서는 시스템 그 자체에 의해 빈번하게 변경되고, 보다 더 바람직하게는, 스크램블링된 순서는 메모리 판독 유닛의 시동 시에 적어도 부분적으로 랜덤으로 결정된다.
전력 분석, 전자기 분석 및 광 방출 공격자들은 통상적으로 양호한 신호 대 잡음비를 얻기 위해 다수의 반복되는 측정들(트래이스들)을 요구한다. 통계적 분석이 이어서 반복된 측정들에 대해 수행된다. 판독 순서를 랜덤화함으로써 또는 심지어 판독 순서를 정기적으로 변경함으로써, 이 분석은 무산된다.
키 유도 유닛은 메모리가 확정되는 메모리 콘텐츠로부터 암호 키를 유도하도록 구성된다. 유도 유닛은 메모리 콘텐츠로부터 노이즈를 제거한다. 예를 들어, 키 유도 유닛은, 비-휘발성 헬퍼-데이터 메모리 ― 상기 헬퍼-데이터 메모리는 물리적 복제방지 기능으로서 이용되는 메모리에 대해 구성되는 헬퍼 데이터를 저장함 ― ; 정정 가능한 비트-스트링을 설정하기 위한 결합기 ― 상기 정정 가능한 비트-스트링은 정정 가능한 인근의 에러 정정 코드에 있고, 상기 결합기는 상기 헬퍼-데이터 메모리로부터 상기 헬퍼 데이터를 리트리브하고 상기 메모리가 확정되는 메모리 콘텐츠와 리트리브된 헬퍼 데이터를 결합하도록 구성됨 ― ; 및 에러 정정 알고리즘을 이용하여 상기 정정 가능한 비트-스트링으로부터 에러 정정 코드의 코드 워드를 설정하도록 구성되는 에러-정정기를 포함한다.
헬퍼 데이터는, 상이한 메모리 칩들의 메모리 시동 콘텐츠들이 너무 상이하기 때문에, 메모리의 하나의 특정한 물리적 예시화를 위해 구성되었다. 메모리 콘텐츠가 스크램블링된 순서로 획득되는 경우, 헬퍼 데이터는 동일한 스크램블링된 순서로 적용될 수 있고, 또는 스크램블링된 메모리 콘텐츠가 디스크램블링된다. 하이브리드 해결책들이 가능한데, 예를 들어, 스크램블링은, 즉, 스크램블링 순서의 인버스(inverse)인 치환을 수행함으로써 제거될 수 있고 동시에, 고정된 미리 결정된 순서가 적용된다. 미리 결정된 순서는 공격자에게 비밀일 수 있다. 예를 들어, 시스템은 제조 동안 미리 결정된 순서를 갖도록 구성되었을 수 있다. 미리-결정된 순서는 각각의 디바이스마다 상이할 수 있다.
메모리 판독 유닛은 메모리를 안전하게 판독하도록 구성된다. 어드레스 스크램블러는 스크램블링된 순서로 메모리 인터페이스를 통해 메모리 콘텐츠를 리트리브(retrieve)하기 위해 이용될 수 있다. 메모리 암호화는 그의 콘텐츠가 규정될 수 없기 때문에 PUF를 보호하기에 직접적으로 적합하진 않다. 우리는 그의 순서를 변경함으로써, 즉 그것을 치환함으로써 데이터의 모호화(obfuscation)를 나타내도록 하는 스크램블링을 참조하며, 이는 즉, 암호화를 통해 데이터 그 자체를 변경함으로써 데이터의 모호화와는 상이하다.
PUF로부터 암호 키의 재구성을 위해, PUF 데이터는 특히 미리 결정된 순서로 헬퍼-데이터와 결합되어야 한다. 이는, PUF 제어 블록의 설계에서, 헬퍼-데이터가 선형 순서로 판독될 수 있는 경우 보다 더 효율적이다. 특히, 헬퍼 데이터는 랜덤-액세스 외부 어드레스 버스를 제공하진 않지만 데이터가, 수백 내지 수천 비트들의 통상적인 블록 크기들에 있어 블록-와이즈 방식(block-wise basis)으로 판독되어야 하는 메모리이다. 예를 들어, 헬퍼 데이터 메모리가 플래시 메모리인 경우, 상이한 순서로 헬퍼 데이터를 판독하는 것은 비효율적이다. 헬퍼 데이터가 선형적으로 판독될 수 있는 경우 유리할 것이다. 실시예에서, 헬퍼 데이터는 블록 별로 판독되며, 각각의 블록은 선형으로 판독된다. 동시에, 메모리 인터페이스를 통해 메모리 콘텐츠가 수신된 이후 이 메모리 콘텐츠를 디스크램블링하는 것을 방지하는 것이 또한 유리할 것이다.
이는 메모리 판독 유닛 내에 암호화 및 복호화 유닛을 가짐으로써 달성될 수 있다. 암호화 유닛은 메모리를 암호화하도록 구성되고, 암호화 유닛은 스크램블링된 순서로 메모리가 확정되는 메모리 콘텐츠를 메모리 인터페이스로부터 수신하고, 수신된 메모리 콘텐츠를 암호화하고, 메모리에 암호화된 메모리 콘텐츠를 라이트 백(write back)하도록 구성된다. 복호화 유닛은 메모리를 복호화하도록 구성되며, 미리-결정된 순서로 암호화된 메모리 콘텐츠를 메모리 인터페이스로터 수신하고, 미리-결정된 순서로 메모리가 확정되는 메모리 콘텐츠를 획득하기 위해 수신된 암호화된 메모리 콘텐츠를 복호화하도록 구성된다.
이것은, 2개의 단계들로, 메모리 파워-업 데이터와 같이 사전에 인코딩될 수 없는 데이터의 안전한 판독을 제공한다. 제 1 단계들에서, 보안은 스크램블링(치환)을 통해 달성되고; 제 2 단계에서, 보안은 암호화를 통해 달성된다. 제 1 단계는 랜덤 액세스를 제공하는 것이 아니라, 제 2 단계에서, 메모리는 임의의 원하는 순서로, 특히 헬퍼 데이터와 결합되는데 필요한 순서로 액세스될 수 있다. 후자는 선형일 수 있지만, 부가적인 모호화를 위해 몇몇 다른 미리-결정된 순서가 또한 될 수 있다. 후자의 경우에, 헬퍼 데이터는 동일한 미리-결정된 순서의 SRAM 데이터에 대해 준비되었다. 헬퍼 데이터의 관점에서, 헬퍼 데이터가 준비되었을 때 순서가 동일한 한, SRAM 데이터가 어느 순서로 판독되는지는 중요하지 않다.
암호화는 임시 키로 데이터의 각각의 블록을 암호화할 수 있다. 임시 키는 시스템 내부에서 유도될 수 있다. 예를 들어, 임시 키는 제 2 PUF로부터, 아마도 PUF 제어 블록 내부에서 유도될 수 있으며, 여기서 제 2 PUF는 무작위 판독 및/또는 암호화를 위한 랜덤성을 제공한다. 실시예에서, 암호화된 데이터 블록들은 SRAM 메모리에 바로 라이트 백된다. 실시예에서, 암호화 유닛은 암호화된 메모리 콘텐츠로 메모리 콘텐츠를 덮어쓰기하도록 스크램블링된 순서로 암호화된 콘텐츠 데이터를 라이트 백한다.
스크램블링된 판독 및 암호화된 라이트 백은 헬퍼-데이터가 프로세싱되기 이전에 행해지는 준비 단계이다. 암호 키가 구성될 필요가 있을 때, 모든 SRAM PUF 데이터는 헬퍼-데이터와 XOR 연산되기 이전에, 제 순서대로(in order) 판독되고 복호화된다.
미리-결정된 순서로 기록 가능한 메모리를 안전하게 판독하기 위한 전자 메모리 판독 유닛이 특히 유리하다. 본 발명자들은, 판독 유닛이 다른 기록 가능한 메모리들의 안전한 판독에도 마찬가지로 이용될 수 있다는 것을 알았다. 임의의 이유로, 사전에 인코딩되거나 암호화될 수 없는, 말하자면, 해밍 웨이트 밸런싱 코드로 암호화되거나 인코딩될 수 없는, 안전한(사이드-채널 보호된) 판독을 요구하는 임의의 메모리는 이에 따라 안전하게 판독될 수 있다. 메모리는 바람직하게는, 그것이 2-패스 방법을 허용하므로 기록 가능하다. 메모리는, 예를 들어, PUF로서 이용하기 위해 휘발성이거나, 또는 말하자면 데이터 전달을 위해 비-휘발성일 수 있다.
실시예에서, 판독 유닛은, 추가의 메모리의 각각의 파워-업 시에, 제 2 메모리가 노이지 메모리 콘텐츠를 확정하도록 구성되는, PUF로서 이용되는 메모리와 상이한 추가의 휘발성 메모리를 포함하며, 시드(seed)는 제 2 메모리가 확정되는 메모리 콘텐츠로부터 유도된다.
메모리의 판독을 반복할 필요가 있을 수 있다. 예를 들어, 몇몇 실시예들에서, PUF로서 이용된 메모리는, PUF 제어 블록의 전력, 보다 더 구체적으로 메모리 판독 유닛으로부터 독립적으로, 재차 파워-업될 수 있다. 예를 들어, 이는 암호 키를 재차 유도하도록 행해지며; 이는 키가 이용되자마자 키가 삭제되도록 허용한다. 그러나 랜덤성은 새로운 값들을 생성하기 위해 파워-업에 의존하는 PUF로부터, 예를 들어, 메모리 기반 PUF로부터 획득되는 경우, PUF는 새로운 스크램블링 순서를 제공하지 않을 것이다. 이는 새로운 시드를 획득하기 위해 시드에 적용되도록 구성되는 암호 일-방향 함수(cryptographic one-way function)을 포함하는 판독 유닛에 의해 방지될 수 있으며, 어드레스 스크램블러는, 파워-업을 요구함 없이, 새로운 스크램블링된 순서로 메모리 인터페이스를 통해 메모리 콘텐츠를 다시 가져오기 위해 새로운 시드로부터 새로운 스크램블링된 순서를 유도하도록 구성된다. 예를 들어, 메모리 판독 유닛은 PUF로서 이용된 메모리가 재차 파워-업된다는 신호를 수신하도록 구성될 수 있다. 신호를 수신하면, 일-방향 함수이 적용되고, 새로운 시드 및/또는 암호화 키가 유도된다.
추가의 PUF, 또는 제 2 PUF는 바람직하게는, PUF 제어 블록 및/또는 메모리 판독 유닛 내부에 있고, 그것은 이에 따라 별개의 SRAM PUF일 수 있다. 제 2 PUF는 SRAM PUF를 측정하기 위해 판독될 필요가 있는 메모리 어드레스들의 랜덤 치환을 생성하는데 이용될 수 있는 랜덤 시드를 생성하도록 이용될 수 있다. 컨디셔닝 알고리즘, 예를 들어, 해시 기능은 PUF 응답으로부터 랜덤 시드를 계산하는데 이용될 수 있다.
바람직하게는, 제 2 PUF는 또한 IP 블록에 쉽게 통합될 수 있는 표준 컴포넌트로 구성된다. DFF PUF는 이러한 상황에 대해 좋은 선택이다. D 플립 플롭들의 시동 값들은 충분히 랜덤이다. 일 방향 기능은 AES, DES, SHA 등과 같은 암호 블록(crypto block)일 수 있다.
본 발명의 양상은 암호 키를 생성하기 위한 방법이다. 방법은, 물리적 복제방지 기능으로서 이용되는 메모리를 파워-업하는 단계 ― 상기 메모리는 기록 가능하고 휘발성임 ― ; 상기 메모리가 상기 메모리의 적어도 부분적으로 랜덤인 물리적 특성들에 의존하는 메모리 콘텐츠를 확정하도록 허용하는 단계; 스크램블링된 순서로 메모리 인터페이스를 통해 상기 메모리 콘텐츠를 리트리브하는 단계; 상기 메모리가 확정되는 메모리 콘텐츠로부터 암호 키를 유도하는 단계를 포함한다.
방법의 실시예는, 스크램블링된 순서로 메모리가 확정되는 메모리 콘텐츠를 메모리 인터페이스로부터 수신함으로써, 수신된 메모리 콘텐츠를 암호화함으로써, 및 암호화된 메모리 콘텐츠를 상기 메모리에 라이트 백함으로써 상기 메모리를 암호화하는 단계; 및 상기 미리 결정된 순서로 암호화된 메모리 콘텐츠를 상기 메모리 인터페이스로부터 수신함으로써, 및 상기 미리 결정된 순서로 메모리가 확정되는 메모리 콘텐츠를 획득하기 위해 수신된 암호화된 메모리 콘텐츠를 복호화함으로써 상기 메모리를 복호화하는 단계를 포함한다.
본 발명에 따른 방법은, 컴퓨터 구현된 방법으로서 컴퓨터 상에, 또는 전용된 하드웨어에, 또는 둘 다의 조합으로서 구현될 수 있다. 본 발명에 따른 방법을 위한 실행 가능한 코드는 컴퓨터 프로그램 물건 상에 저장될 수 있다. 컴퓨터 프로그램 물건들의 예들은 메모리 디바이스들, 광학 스토리지 디바이스들, 집적된 회로들, 서버들, 온라인 소프트웨어 등을 포함한다. 바람직하게는, 컴퓨터 프로그램 물건은 상기 프로그램 물건이 컴퓨터 상에 실행될 때 본 발명에 따른 방법을 수행하기 위한 컴퓨터 판독가능한 매체 상에 저장되는 비-일시적 프로그램 코드 수단을 포함한다.
바람직한 실시예에서, 컴퓨터 프로그램은 컴퓨터 프로그램이 컴퓨터 상에 실행될 때 본 발명에 따른 방법의 모든 단계들을 수행하도록 적응되는 컴퓨터 프로그램 코드 수단을 포함한다. 바람직하게는, 컴퓨터 프로그램은 컴퓨터 판독가능한 매체 상에 구체화된다.
본 발명의 이들 및 다른 양상들은 이하 설명되는 실시예들을 참조하여 자명하게 되고 명료해질 것이다.
도 1a는 암호 키를 생성하기 위한 전자 시스템을 예시하는 블록도이다.
도 1b는 도 1a의 시스템에서 이용하기 위한 키 유도 유닛을 예시하는 블록도이다.
도 2는 암호 키를 생성하기 위한 전자 시스템을 예시하는 블록도이다.
도 3a는 스크램블링(scrambling)을 보존하는 코드 워드 경계를 예시하는 블록도이다.
도 3b는 스크램블링을 보존하는 비-코드 워드 경계를 예시하는 블록도이다.
도 4는 암호 키를 생성하기 위한 방법을 예시하는 흐름도이다.
상이한 도면들에서 동일한 참조 번호들을 갖는 항목들은 동일한 구조적 특징들 및 동일한 기능들을 갖거나 동일한 신호들을 갖는다는 것이 주의되어야 한다. 이러한 항목의 기능 및/또는 구조가 설명되는 경우, 상세한 설명에서 그의 설명을 반복할 필요가 없다.
본 발명은 많은 서로 다른 형태들로 실시예를 허용하는 한편, 도면에 도시되며 본원에서 상세하게 하나 또는 그 초과의 특정 실시예들이 설명되며, 본 개시의 이해는 본 발명의 원리들의 예시로서 고려되는 것이며 본 발명을 도시되고 설명된 특정 실시예들에 제한하도록 의도되지 않는다.
도 1a 및 도 1b는 암호 키를 생성하기 위한 전자 시스템(100)을 개략적 블록도로서 예시한다.
시스템(100)은 물리적 복제방지 기능(physically unclonable function; PUF)으로서 이용되는 메모리(110)를 포함한다. 메모리는 기록 가능하고 휘발성인 종류로 이루어진다. 또한, 메모리는 메모리의 각각의 파워-업 시에, 메모리가 메모리의 적어도 부분적으로 랜덤인 물리적 특성들에 의존하는 메모리 콘텐츠를 확정(settle)하는 특성을 갖는다. 물리적 환경 변화들은 통상적으로 제조 동안 작은 프로세스 변동들로 인해 야기된다.
메모리가 확정되는 메모리 콘텐츠는 이러한 물리적 특성에 의존하기 때문에, 메모리 콘텐츠는 메모리의 특정한 예시화(instantiation)를 식별한다. 즉, 동일한 설계의 2개의 메모리들(110)은 시동 시에 메모리를 식별하도록 충분히 상이한 메모리 콘텐츠를 도시할 것이다. 예를 들어, 메모리(110)는 플립-플롭들에 기초할 수 있으며; 특히 메모리(110)는 SRAM일 수 있다.
메모리(110)는 파워-업 콘텐츠가 PUF로서 이용되는 메모리 위치들의 시퀀스를 포함한다. 메모리 위치들은 액세스 가능한데, 즉 메모리 어드레스들의 대응하는 시퀀스를 통해 판독 또는 기록 액세스 가능하다. 메모리 위치들의 시퀀스 중에서, 3개가 112, 114 및 116로 도시된다.
시스템(100)은 PUF 제어 블록(130)을 포함한다. PUF 제어 블록(130)은 암호 키를 생성하기 위해 시동 시에 메모리(110)가 확정되는 메모리 콘텐츠를 프로세싱하도록 구성된다. 그의 원시(raw) 상태에서, 메모리 콘텐츠는 키로서 바로 이용 가능하지 않다. 파워-업 시에 메모리(110)의 메모리 콘텐츠는 그의 물리적 특성에 의존할 뿐만 아니라, 메모리 콘텐츠는 노이즈에 의해 또한 영향을 받는다. 또한, 온도, 및 메모리 상의 기계적 스트레스와 같은 그의 환경의 물리적 변화들의 영향이 있다. 메모리 콘텐츠가 노이즈에 처해지기 때문에, 그것은 암호 키로서 바로 이용 가능하지 않다. 또한 단일 비트의 엔트로피는 너무 낮을 수 있다. PUF 제어 블록(130)은 에러 정정 및 선택적으로 키 유도에 의해 이를 다룬다. 에러 정정 등은 PUF 제어 블록(130)에 포함되는 키 유도 기능(150)에 의해 수행된다.
PUF 제어 블록(130)은 메모리 인터페이스(120)를 통해 메모리(110)에 연결된다. 메모리 인터페이스(120)는 데이터 채널(122), 예를 들어, 데이터 라인 및 어드레스 채널(124), 예를 들어, 어드레스 라인들을 포함한다. 메모리 인터페이스(120)는 또한 제어 라인들 등을 포함할 수 있다.
메모리 인터페이스들의 이용은, 그것이 잠재적인 사이드-채널이라는 단점을 갖는다. 데이터 채널(122) 상에서 통신되는 워드의 해밍 웨이트(hamming weight)는 워드가 데이터 채널(122) 상에서 전달되는 동안 시스템(100)의 전력 소비를 관찰함으로써 결정될 수 있다. 예를 들어, 데이터 채널(122)이 8 비트 길이(wide)인 경우, 각각의 워드는 대략 1-2 비트의 정보를 누설할 수 있다. 이러한 누설은 전체 시스템의 보안을 포함한다.
제어 블록(130)은 스크램블링된 순서로 메모리 인터페이스를 통해 메모리 콘텐츠를 리트리브(retrieve)하기 위한 어드레스 스크램블러(140)를 포함한다. 바람직하게는, 어드레스 스크램블러(140)는 (의사) 랜덤 치환을 구현한다. 예를 들어, 어드레스 스크램블러(140)는 스크램블링된 순서로 메모리 어드레스들의 시퀀스를 생성한다. 어드레스 스크램블러(140)를 구현하기 위한 편리한 방식은 적합한 크기의 암호화 기능에 의해 메모리 어드레스들의 시퀀스를 암호화하는 것이다. 편리하게, 메모리(110)의 크기는 2의 제곱(power)으로 선택되어서, 메모리(110)의 크기는 정수 개의 비트들에 의해 1대1 어드레싱될 수 있다. 그 경우에, 정수 개의 비트들과 동일한 블록 폭을 갖는 블록 사이퍼(block cipher)가 이용될 수 있다. 이러한 블록 사이퍼들은 페이스텔 사이퍼(Feistel cipher)를 이용하여 구성될 수 있다. 페이스텔 사이퍼는 언밸런싱(unbalanced)될 수 있는데, 예를 들어, 이른바 트롭 셔플(Thorp shuffle)이 이용될 수 있다. 보다 일반적으로, 임의의 어드레싱 방식 또는 임의의 크기를 갖는 메모리(110)가 이른바 포맷-보존 암호화를 이용하여 수용될 수 있다. 포맷-보존 암호화는 어드레스들의 시퀀스를 그 자체에 대해 전단사적으로 맵핑(bijectively map)한다.
암호화가 이용될 때, 어드레스 스크램블러(140)는 임의의 순서로, 즉 선형으로 어드레스들의 시퀀스를 생성하고, 시퀀스를 암호화할 수 있다. 스크램블링된 순서로 어드레스들의 시퀀스를 생성하는 대안적인 방식들이 이용될 수 있다. 예를 들어, 어드레스 스크램블러(140)는 피드백 시프트 레지스터, 예를 들어, 스크램블링된 순서로 메모리 어드레스들의 시퀀스를 생성하도록 구성된 선형 피드백 시프트 레지스터를 포함할 수 있다.
메모리(110)가 확정한 메모리 콘텐츠는 스크램블링된 순서로 리트리브된다.
도 1a, 1b의 실시예에서, 키 유도 유닛(150)은 스크램블링된 순서로 메모리 콘텐츠를 수신한다. 도 1b는 메모리 콘텐츠를 프로세싱하기 위한 하나의 특정한 방식을 도시한다.
키 유도 기능(150)은 버퍼(152), 치환기(154) 및 에러 정정 로직(156)을 포함한다.
버퍼(152)는 메모리(110)로부터, 예를 들어, (도 1a에서 별도로 도시되지 않은) 메모리 판독 유닛으로부터 수신된 메모리 콘텐츠를 버퍼링한다. 치환기(154)는 어드레스 스크램블러(140)에 의해 적용된 인버스 치환(inverse permutation)을 수행한다. 치환기(154)는, 메모리 콘텐츠가 메모리(110)에서 생성되었던 것과 동일한 순서로 메모리 콘텐츠를 버퍼(152)에서 생성할 수 있다. 그러나 치환기(154)는 미리-결정된 순서를 표현하는 치환과 스크램블링 치환의 인버스의 기능 합성을 수행함으로써 임의의 미리-결정된 순서로 메모리 콘텐츠를 버퍼(152)에서 생성할 수 있다. 치환기(154)는 올바른 디스크램블링 동작을 획득하기 위해 스크램블러(140)에 연결되거나, 또는 심지어 스크램블러(140)와 통합될 수 있다. 인버스 치환의 결과는 에러 정정 로직(156)으로 전달된다. 에러 정정 로직(156)은 헬퍼 데이터와 결합함으로써 노이즈를 정정하고, 선택적으로 키 유도 기능(key derivation function; KDF)을 결과에 적용하며, 예를 들어, 이 결과는 암호 해시 기능(cryptographic hash function)으로 해시될 수 있다. PUF로서 이용된 메모리의 메모리 콘텐츠에서 노이즈의 정정은 그 자체가 알려져 있다. 이는 키 유도 기능을 갖는 대신, 메모리 판독 유닛과 더불어 버퍼(152) 및 치환기(154)를 포함할 수 있다.
메모리 콘텐츠가 단지 스크램블링된 형태로 메모리 인터페이스 상에서 이동하기 때문에, 그것은 여전히 해밍 웨이트를 노출하지만, 어떤 워드가 해밍 웨이트에 대응하는지에 대해 더 이상 알려지지 않기 때문에 훨씬 더 적은 정보가 누출된다.
이러한 상당한 이익에도, 도 1a, 1b의 실시예들에 몇몇 단점들이 있다. 가장 먼저, 그것은 치환기(154)에서 수행된 디스크램블링 동작을 요구한다. 이는 특히 그것이 적소에서(in place) 행해지는 경우 비교적 비싼 동작이다.
에러 정정 로직(156)이 단일 코드 워드를 이용하는 경우, 버퍼(152)는 비적소에서의(not-in place) 디스크램블링을 이용하기 위해 메모리(110)의 크기의 2배가 될 것이다. 이는 비교적 비싸다. 그러나 바람직하게는, 에러 정정은, 더 작은 코드 워드 정정이 보다 더 자원 효율적이기 때문에 다중 코드 워드들을 이용한다. 그 경우에, 스크램블링 동작은 코드 워드 경계들을 준수(respect)하도록 구성되지만, 다른 옵션들이 있으며, 예를 들면, 더 큰 버퍼를 이용하거나 또는 본 명세서에서 설명된 다른 해결책을 이용한다. 도 3a는 스크램블링 동작을 예시한다.
메모리 콘텐츠(310)는 코드-워드 크기의 메모리 척들(chunks)로 분할된다. 도 3a는 3개의 이러한 척들(312, 314, 316)을 도시한다. 척들 각각은 다른 척들에 독립적으로 에러 정정될 수 있다. 320에서, 메모리의 동일 부분이 도시되지만, 스크램블링된 메모리 액세스를 갖는다. 화살표는 원래의 어드레스에 대응하는 스크램블링된 어드레스를 표시한다. 이 맵핑은 코드 워드 경계들을 준수한다는 것에 주의한다. 즉, 메모리 어드레스들의 시퀀스는 순차적인 메모리 어드레스들의 다수의 코드 시퀀스들을 포함하고 어드레스 스크램블러(140)는, 각각의 하나의 다중 코드 시퀀스들이 상이한 시퀀스의 어드레스들에 의해 인터리빙됨 없이 함께 생성되도록 어드레스의 시퀀스를 생성한다. 이러한 어드레스 스크램블링이 사이드 채널 누설을 덜 방해하지만, 그것도 여전히 두드러진 개선이다. 도 3b는 코드 워드 경계들을 준수하지 않은 스크램블링된 메모리 액세스(330)를 도시한다. 이러한 스크램블링 기능이 누설을 더 많이 방지하지만, 도 1의 키 유도 기능에 의해 수용하기 (불가능하진 않더라도) 더 어렵다. 도 2에 관하여 아래에서 설명된 시스템은 2 패스(pass) 시스템을 이용하여 코드 워드 경계들을 준수하는 것이 필수적이지 않은 스크램블링된 메모리 액세스, 예컨대 스크램블링된 메모리 액세스(330)를 핸들링할 수 있다.
치환기(154)를 이용하는 대신, 헬퍼 데이터와의 결합 동안 스크램블링을 고려하는 것이 또한 가능하다. 그 경우에, 키 유도 기능(150)은 버퍼(152)로부터 그리고 헬퍼 데이터-메모리로부터 (도 1b에서 둘 다 도시되지 않음) 판독하는 결합기를 포함할 수 있다. 이 접근법은 또한, 헬퍼-데이터 메모리가 보통 블록들에서 판독되는 통상의 비-휘발성 메모리여서, 헬퍼-데이터 메모리의 랜덤 액세스는 종종 높은 성능 불이익을 수반(carry)한다는 단점을 갖는다.
도 2는 암호 키를 생성하기 위한 개선된 전자 시스템(200)을 예시한다. 도 4는 시스템(200)을 이용하여 수행될 수 있는, 암호 키를 생성하기 위한 방법을 흐름도로 예시하지만, 변동들도 가능하다.
시스템(100)과 같이, 시스템(200)은 메모리 인터페이스(120)를 통해 PUF 제어 블록(210)에 연결되는 PUF로서 이용되는 메모리(110)를 포함한다. PUF 제어 블록은 메모리 판독 유닛(220) 및 키 유도 유닛(230)을 포함한다.
메모리 판독 유닛(220)은 미리-결정된 순서로 메모리(110)를 안전하게 판독하도록 구성된다. 미리-결정된 순서는 무엇이 후속 키 유도를 위해 편리한지에 의해 결정된다. 통상적으로 미리-결정된 순서는 자연 선형 순서이지만, 임의의 순서도 가능하다. 예를 들어, 증가된 모호화(obfuscation)를 위해, 랜덤이지만 고정된 미리-결정된 순서가 선택될 수 있고, 헬퍼 데이터는 그 랜덤이지만 고정된 미리-결정된 순서에 따라 치환된 메모리 콘텐츠에 대해 계산될 수 있다. 지금부터, 우리는 미리-결정된 순서는 선형이라고 가정할 것이지만, 이것은 변동될 수 있다는 것이 주의된다. 메모리 콘텐츠는 메모리(110)의 파워-업(단계 410) 및 메모리가 메모리 콘텐츠를 확정하도록 허용(단계 420)함으로써 획득된다. 확정 시간은 메모리에 의존하며, 필요한 경우 실험적으로 결정될 수 있다. 확정 시간은 통상적으로, 전형적으로 전자 컴퓨팅 디바이스들에 상에서 수행되는 부팅 함수들보다 훨씬 짧기 때문에, 보통은 메모리 판독 유닛의 소프트웨어 구현들에 대한 메모리의 판독을 지연시키는 지연 엘리먼트를 도입할 필요가 없다.
키 유도 유닛(230)은 메모리 판독 유닛(220)으로부터 미리 결정된 순서로 메모리(110)가 확정되는 메모리 콘텐츠를 수신한다. 일 실시예에서, 이는 통상의 PUF 프로세싱을 수행하도록 구성된 알려진 키 유도 유닛(에러 정정 및 통상적으로 키 유도 기능)을 이용할 수 있다. 알려진 키 유도 유닛이 이용되는 경우, 키 유도 유닛(230) 관점에서, 그것은 보통 때와 같이(as usual) 메모리 콘텐츠를 수신한다. 이에 따라 시스템의 이 부분은 대충의 설명만이 주어질 것이다.
키 유도 유닛은 버퍼(270)를 포함할 수 있다. 버퍼(270)는 단일 코드 워드를 보유하기에 충분히 크다. 키 유도 기능은 버퍼의 콘텐츠를 헬퍼 데이터 메모리(285)에 저장된 헬퍼 데이터와 결합하기 위한 결합기(280)를 포함할 수 있다. 결합 기능은 통상적인 비트-와이즈(bit-wise) XOR 연산이라고 가정할 것이지만, 임의의 인버팅 가능한 이진 연산, 예를 들어, 다수의 상이한 워드 값들의 덧셈 모듈로(addition modulo), 예를 들어, 바이트에 대한 모듈로(256)가 이용될 수 있다. 헬퍼 데이터는 에러 정정 코드의 코드 워드와 메모리 콘텐츠의 이전에 획득된 사본을 XOR 연산함으로써 획득될 수 있다. 코드 워드는 비밀이고, 에러 정정 코드로부터 랜덤으로 선택되거나 몇몇 키 관리 방식에 따라 선택될 수 있다. 동작 동안, 결합기(280)는 헬퍼 데이터를, 비밀 코드 워드 인근에 있는 정정 가능한 비트 스트링을 획득하기 위해 버퍼(270)에서 획득된 메모리 콘텐츠와 XOR 연산한다. 에러 정정기(290)는 재차 비밀 코드 워드를 획득하기 위해 에러 정정 코드에 대응하는 에러 정정 코드 알고리즘을 적용한다. 필요한 경우, 키 유도 기능 유닛은 키 유도 기능(KDF), 예를 들어, 암호 해시 기능을 적용한다. 암호 기능은 임의의 암호 목적, 예를 들어, 인증, 암호화 등을 위해 이용될 수 있다.
흥미롭게도, 에러 정정은 또한 에러 정정을 위해 2-패스 시스템을 이용할 수 있다. 메모리는 예를 들어, 하다마드 코드(Hadamard code)로부터, 코드 워드들로 개별적으로 정정되는 더 작은 워드들로 나눠질 수 있다. 정정된 더 작은 코드 워드들은 더 큰 블록 크기 에러 정정 코드, 말하자면 BCH 코드로 정정되는 더 큰 워드들로 결합된다. 더 큰 워드들로의 결합은 바람직하게는, 더 작은 코드 워드들을 인터리빙한다. 키 유도 기능은 암호화된 형태로 정정된 더 작은 코드 워드들을 메모리로 라이트 백(write back)할 수 있다. 키 유도 기능은 예를 들어, 인터리빙을 수행하도록 복호화 유닛을 이용하여 메모리 상의 랜덤 액세스를 수행할 수 있다. 이러한 방식으로, 메모리(110)는 여전히 사이드-채널 누설을 감소시키면서 보다 복잡한 에러 정정 방식들에 대한 작동 메모리로서 이용될 수 있고; 메모리(110)가 암호화된 이후, 그것은 암호화 및 복호화 유닛을 통한 랜덤 액세스 판독/기록 액세스를 지원한다.
키 유도 유닛은 필요한 경우 그의 사이드 채널 누설을 감소시키기 위한 대책들(countermeasures)을 이용할 수 있다. 예를 들어, WO/2010/100015에서 설명된 디바이스 및 방법이 이용될 수 있다.
메모리 판독 유닛은 스크램블링된 순서로 메모리 인터페이스를 통해 메모리 콘텐츠를 리트리브하기 위한 어드레스 스크램블러(140) 및 암호화 유닛(240)을 포함한다. 암호화 유닛(240)은 스크램블러(140)에 의해 리트리브된 데이터를 수신하고 이를 암호화한다. 암호화된 데이터, 즉 암호화된 메모리 콘텐츠가 메모리에 기록된다. 임의의 메모리가 이용될 수 있지만, 바람직하게는, 암호화된 메모리 콘텐츠가 메모리(110)에 라이트 백된다. 필요한 메모리의 양을 감소시키기 위해, 메모리 콘텐츠는 스크램블링된 동일한 순서로 라이트 백될 수 있어서, 암호화된 메모리 콘텐츠로 메모리 콘텐츠를 덮어쓰기하고; 각각의 암호화된 메모리 워드는 그것이 판독된 동일한 스크램블링된 어드레스에 라이트 백된다. 암호화 유닛(240) 및 어드레스 스크램블러(140)는 함께 적소에서, 그러나 스크램블링된 순서로 메모리를 암호화하는 효과를 가질 수 있다.
암호화 유닛(240)은 블록 사이퍼일 수 있다. 예를 들어, 암호화 유닛(240)은 전자 코드 북 모드(electronic code book mode; ECB)에서 동작할 수 있다. 예를 들어, 암호화 유닛(240)은 카운터 모드(CTR)에서 동작할 수 있어서, 예를 들어, ECB 모드에서 어드레스를 암호화하고 결과를 메모리 콘텐츠에 대해 XOR 연산한다. 블록 크기가 종종 상당히 작기 때문에, 말하자면, 8, 16 또는 32 비트들이기 때문에, 후자는, 그것이 동일한 값을 갖게 되는 메모리 콘텐츠 내의 워드들 간의 관계를 모호하게 하므로 선호된다.
암호화 유닛은 키를 필요로 한다. 어드레스 스크램블러는 시드(seed)를 필요로 하거나, 또는 어드레스 암호화 시에 키를 또한 이용한다. 키는 고정될 수 있지만, 보다 바람직하게는, 키는 메모리 판독 유닛(220)의 시동 시에 생성된다. 키/시드는 랜덤(트루(true) 또는 의사 랜덤)으로 생성된다. 예를 들어, 메모리 판독 유닛(220)은 트루 랜덤 번호 생성기(도시되지 않음)를 포함할 수 있다.
그러나, 랜덤성은 통상적으로 메모리 판독 유닛(220)의 파워-업 동안에만 요구된다는 것이 관찰된다. 이는 도 2에서 도시된 다른 해결책을 허용한다. 메모리 판독 유닛(220)은 (바람직하게는, PUF 제어 블록(210) 내부에 있고 메모리(110)와 상이한) 추가의 메모리(260)를 포함한다. 또한, 추가의 메모리(260)는 휘발성이다. 추가의 메모리의 각각의 파워-업 시에, 제 2 메모리는 노이지 메모리 콘텐츠를 확정한다. 추가의 메모리의 콘텐츠는 또한 그의 물리적 특성에 의존할 것이지만, 이 목적을 위해서, 메모리 콘텐츠의 노이즈가 이용된다는 것에 주의한다. 랜덤 키 및 시드 유도 유닛(265)은 예를 들어, 메모리(260)의 콘텐츠에 해시 기능을 적용함으로써 메모리(265)의 메모리 콘텐츠로부터 키 및/또는 시드를 유도한다. 예를 들어, 새로운 파워-업 없이 메모리(110)의 콘텐츠들을 추후에 재판독하기 위해 새로운 키/시드가 요구되면, 새로운 키 및 새로운 시드는 구(old) 시드에 일-방향 함수을 적용함으로써 획득될 수 있다.
메모리 판독 유닛(220)은 추가로 복호화 유닛(250) 및 어드레스 생성기(255)를 포함한다. 어드레스 생성기(255)는 복호화 유닛(250)과 결합될 수 있다. 어드레스 생성기(255)는 미리 결정된 순서로 메모리 어드레스의 시퀀스를 생성하도록 구성된다. 복호화 유닛(250)은 이어서 수신된 암호화된 메모리 콘텐츠를 복호화한다.
따라서, 안전한 판독은 2 패스들로 획득된다. 제 1 패스에서, 메모리가 암호화된다. 이 패스는 메모리에 대한 액세스가 스크램블링된 순서로 이루어지기 때문에 사이드-채널 누설로부터 덜 악화된다. 제 2 패스에서, 메모리는 미리 결정된 순서와 같은 임의의 원하는 순서로 판독된다. 제 2 패스는 메모리 인터페이스를 거치는 모든 데이터가 암호화되기 때문에 보다 더 안전하다. 시스템(100)보다 우월한 시스템(200)의 이점은, 키 유도가 여전히 더 작은 크기의 코드 워드들에서 작동할 수 있으면서 코드 워드 경계들을 준수하지 않고도 임의의 스크램블링 기능이 이용될 수 있다는 것이다.
시스템(100 및 200)은 전자 디바이스, 예를 들어, 반도체 디바이스로서 구현될 수 있다. 시스템(100 및 200)은 전용 하드웨어에서 구현될 수 있다. 시스템(100 및 200)의 부분은 소프트웨어로서 구현될 수 있다. 소프트웨어로 구현되는 경우, 통상적으로 시스템, 즉 PUF 제어 블록은 디바이스에 저장된 적절한 소프트웨어를 실행하는 마이크로프로세서(도시되지 않음)를 포함하는데, 예를 들어, 소프트웨어는 대응하는 메모리, 예를 들어, RAM(도시되지 않음) 또는 플래시와 같은 비-휘발성 메모리에 다운로딩되고 저장될 수 있다.
도 4는 암호 키를 생성하기 위한 방법을 흐름도로 예시한다. 도 4의 방법은 시스템(200)을 이용하여 수행될 수 있지만, 변동들이 가능하다. 도 4의 단계들(440, 450, 460 및 470)은 방법에 대해 선택적이며, 예를 들어, 시스템(100)을 이용하여 생략될 수 있다는 것이 주의된다.
시스템(200)의 동작은 다음과 같이 행해질 수 있다. 먼저, 시스템이 파워-업된다(단계 410). 파워 업 동안, 메모리(110)는 파워-업되고 자신의 메모리 콘텐츠를 장착시키도록 허용된다(단계 420). 메모리(110)의 메모리 콘텐츠는 이 특정한 메모리를 나타내지만, 그것은 노이즈가 있을 수 있다. 이 메모리 콘텐츠의 판독은 2 패스로 행해진다: 제 1 패스에서, 메모리 콘텐츠는 말하자면 스크램블러(140)에 의해 스크램블링된 순서로 리트리브되고(단계 430), 암호화를 위해, 말하자면 단계 430에서 암호화 유닛(240)에 의해 수신된다. 메모리 콘텐츠는 암호화되고(단계 440) 라이트 백된다(단계 450). 제 2 패스에서, 암호화된 메모리 콘텐츠는 말하자면 어드레스 생성기(255)에 의해 미리-결정된 순서로, 말하자면 선형 순차적 순서로 리트리브되고, 복호화 유닛(250)에 의해 수신된다(단계 460). 암호화된 메모리 콘텐츠는 메모리(110)가 미리-결정된 순서로 확정되는 메모리 콘텐츠를 획득하도록 복호화된다(단계 470).
이 지점에서, 메모리 콘텐츠는 사이드 채널 누설이 전혀 없이 또는 최소로 있는 채로 메모리 인터페이스(120) 상에서 메모리(110)로부터 안전하게 전달된다. PUF 프로세싱은, 하나 또는 그 초과의 정정 가능한 비트-스트링들을 획득하기 위해 헬퍼 데이터와 메모리 콘텐츠를 결합함으로써 진행될 수 있다. 정정 가능한 비트-스트링은 정정 가능한 인근의 에러 정정 코드에 있다. 하나 또는 그 초과의 정정 가능한 비트-스트링들은 에러 정정 알고리즘을 이용하여 에러 정정 코드의 코드 워드를 설정하도록 에러-정정될 수 있다. 키는 KDF를 적용함으로써 설정된 코드 워드로부터 유도될 수 있다.
단계들(460 및 470)에서, 메모리 콘텐츠는 미리-결정된 순서로 획득된다. 이는 메모리 콘텐츠가 특정한 순서를 요구하는 데이터, 예컨대 헬퍼 데이터와 결합되는 경우 바람직하다. 그러나 단계들(430, 440, 450, 460, 및 470)은 단지 PUF 데이터만이 아니라, 기록 가능한 메모리로부터 안전하게 임의의 데이터를 판독하기 위해 예를 들어, 단계들(410, 420 및/또는 480) 없이 함께 이용될 수 있다. 그 경우에, 임의의 원하는 추가의 순서가 가능한 대신, 메모리 콘텐츠가 단계들(460 및 470)에서 미리-결정된 순서로 수신되는 것이 필수적이지 않다. 예를 들어, 추가의 순서로 메모리를 안전하게 판독하기 위한 방법은, 청구항 11에서와 같이 암호 키를 생성하기 위해, 스크램블링된 순서로 메모리 인터페이스로부터 메모리 콘텐츠를 수신(430)하고, 수신된 메모리 콘텐츠를 암호화(440)하고, 암호화된 메모리 콘텐츠를 메모리에 라이트 백(450)함으로써 상기 메모리를 암호화하는 단계, 추가의 순서로 메모리 인터페이스로부터 암호화된 메모리 콘텐츠를 수신(460)하고 추가의 순서의 메모리 콘텐츠를 획득하기 위해 수신된 암호화된 메모리 콘텐츠를 복호화(470)함으로써 메모리를 복호화하는 단계를 포함한다.
당업자에게 명백한 바와 같이, 방법(400)을 실행하는 다수의 상이한 방식들이 가능하다. 예를 들어, 단계들의 순서는 변화될 수 있거나 일부 단계들이 병렬로 실행될 수 있다. 또한, 단계들 사이에 다른 방법 단계들이 삽입될 수 있다. 삽입된 단계들은 본원에 설명된 바와 같은 방법의 개선들을 나타낼 수 있거나, 방법과 관련되지 않을 수 있다. 예를 들어, 단계들(470 및 480)은 적어도 부분적으로, 병렬로 실행될 수 있다. 또한, 주어진 단계는 다음 단계가 시작되기 전에 완전히 완료되지 않을 수 있다.
본 발명에 따른 방법은, 프로세서 시스템으로 하여금 방법(400)을 수행하게 하기 위한 명령들을 포함하는 소프트웨어를 이용하여 실행될 수 있다. 소프트웨어는 시스템의 특정 서브-엔티티에 의해 취해지는 단계들만을 포함할 수 있다. 소프트웨어는 하드 디스크, 플로피, 메모리 등과 같은 적합한 저장 매체에 저장될 수 있다. 소프트웨어는 유선, 또는 무선, 또는 데이터 네트워크, 예를 들어 인터넷을 이용하여 신호로서 송신될 수 있다. 소프트웨어는 다운로드를 위해 및/또는 서버 상의 원격 사용을 위해 이용가능하게 이루어질 수 있다.
본 발명은 또한 컴퓨터 프로그램들, 특히 본 발명을 실행하게 적응되는, 컴퓨터 프로그램들, 특히 캐리어 상의 또는 내부의 컴퓨터 프로그램들로 확장된다는 것이 인식될 것이다. 프로그램은 소스 코드, 객체 코드, 부분적으로 컴파일된 형태와 같은 코드 중간 소스 및 객체 코드의 형태이거나, 본 발명에 따른 방법의 구현에서의 이용을 위해 적합한 임의의 다른 형태일 수 있다. 컴퓨터 프로그램 물건에 관련하는 실시예는 설명된 방법들 중 적어도 하나의 프로세싱 단계들의 각각에 대응하는 컴퓨터 실행 가능한 명령들을 포함한다. 이들 명령들은 서브루틴들로 세분화될 수 있으며 및/또는 정적으로 또는 동적으로 링크될 수 있는 하나 또는 그 초과의 파일들에 저장될 수 있다. 컴퓨터 프로그램 물건에 관한 다른 실시예는 설명된 시스템들 및/또는 물건들 중 적어도 하나의 수단의 각각에 대응하는 컴퓨터 실행 가능한 명령들을 포함한다.
도 5a-5d는 메모리를 스크램블링하고 암호화하기 위한 상이한 가능성들을 예시한다. 단순함을 위해, 단지 메모리의 8개의 메모리 위치만이 도시되었지만, 메모리 콘텐츠는 적어도 이들 8개의 메모리 위치들에 걸쳐 연장한다. 실제로, 훨씬 더 많은 메모리가 이용될 수 있다. 도면들에서, 메모리 위치들은 1 내지 8의 번호로 표시된다. 메모리 위치는 예를 들어, 8 비트 워드 또는 16 비트 워드 등과 같은 워드일 수 있고; 메모리 액세스에 대한 판독 액세스는 R로 그리고 기록 액세스는 W로 표시되고; 모호화 액세스(obfuscating access)는 A로 표시된다. 모호화 액세스는 동일한 메모리 위치에 대한 판독, 기록 또는 판독 및 기록의 결합일 수 있다; 시간은 좌에서 우로 증가한다.
도 5a에서, 암호화 단계(510) 및 후속 복호화 단계(520)인 2개의 단계들이 도시된다. 암호화 단계 동안, 메모리 판독 유닛은 반복적으로: 메모리 위치, 즉 메모리 어드레스로부터 판독하고, 메모리 어드레스로부터 판독된 콘텐츠를 암호화하고, 동일한 메모리 어드레스에 라이트 백한다. 메모리 어드레스들은 어드레스 스크램블러에 의해 스크램블링된다. 암호화 단계(510)의 종료 시에, 메모리는 스크램블링된 순서로 판독되지만 전체 메모리 콘텐츠는 암호화된다. 도 5a에서 도시된 특정한 스크램블링된 순서는 예시적이다.
복호화 단계 동안, 복호화 유닛은 추가의 순서로 암호화된 메모리 콘텐츠를 수신한다. 도 5a에서 이용된 추가의 순서는 자연 순차적 순서이다. 통상적으로, 스크램블링 순서는, 동일한 디바이스의 후속 파워-업들이 비교되면 상이하지만 추가의 순서는 동일하다. 키 유도 또는 에러 정정 등 동안 최상의 성능을 갖기 위해, 암호화 단계가 종료된 이후 복호화 단계(520)를 시작하는 것이 바람직하다. 이것은 엄격히 필수적이지 않은데, 예를 들어, 추가의 순서의 제 1 메모리 위치로의 암호화된 라이트 백이 발생한 이후 복호화 단계는 그 위치를 판독하기 시작하고 추가의 순서의 다음 메모리 위치가 발생한 이후, 복호화 단계가 하나의 추가의 복호화를 지속할 수 있다. 복잡도의 이러한 증가는, 부가적인 복잡도의 희생이 있더라도 모호화가 최대가 될 필요가 있을 때만 가치가 있을 것이다. 도 5b-5d에서, 우리는 이것이 행해지지 않는다고 가정하며, 이에 따라 복호화 단계는 도 5a에서와 동일하며 별개로 도시되지 않는다.
암호화 단계들이 스크램블링된 메모리 어드레스로의 시퀀스에 대한 판독 및 암호화된 라이트 백의 반복되는 사이클을 포함하는 도 5a의 실시예는 다수의 상이한 방식들로 변동될 수 있다. 이러한 변동은 첨단 공격들을 방지하는데 도움을 준다.
암호화 단계 동안 판독 및 기록 액세스들은 엄격히 교번적일 필요는 없다. 예를 들어, 암호화 단계는 다수의 메모리 콘텐츠들을 판독하고, 이들을 암호화하고 다수의 암호화된 메모리 콘텐츠를 라이트 백한다. 라이트 백이 발생하는 순서는 이들이 판독된 순서와 동일할 수 있거나 동일하지 않을 수 있다. 암호화된 순서는 선형이거나 재-스크램블링될 수 있다. 도 5b는 암호화 단계(511)를 도시하며, 여기서 판독 및 기록 동작들은, 이 경우에 각각 4번의 판독 및 4번의 기록의 다수의 배치들(batch)들로 행해진다. 배치는 선형 라이트 백을 이용하고, 제 2 배치는 스크램블링된 라이트 백을 이용한다. 배치들은 어드레스 당 판독 값 및 그의 암호화를 상관하는 것을 더 어렵게 함으로써 도 5a 경우보다 개선된다.
최근에, 광-방출 공격들은, 액세스 동안 SRAM 구조의 후면측으로부터의 광자 활동을 레코딩함으로써 직접 SRAM을 타겟팅하는 것을 보여주었다. 광자 방출 공격들은, 전자 디바이스들이 동작 중일 때 특정한 확률로 광자들을 방출하는 경향이 있다는 사실에 기초한다. 광자 생성 레이트는 공급 전압 및 트랜지스터 스위칭 주파수에 비례한다. 특히, SRAM 값들의 판독은 또한 광자들이 방출되게 한다. IC의 후면측에 CCD를 겨냥할 때, 판독 동작들을 레코딩함으로써 메모리 콘텐츠에 관한 정보를 수집하는 것이 가능하다. 광자 방출 분석(Photonic Emission Analysis)이 다른 암호해독 방법들 및/또는 사이드 채널들을 도울 수 있다.
잠재적으로, 광-방출 공격들은 예를 들어, 각각의 PUF SRAM 어드레스의 바로 그 최초의 판독을 레코딩하기 위해 SRAM PUF들을 또한 공격하는데 이용될 수 있다. SRAM의 파워-업 메모리 콘텐츠의 전체(full) 판독이 획득될 수 있는 경우, 이는 심각한 보안 문제를 야기할 것이다. 예를 들어, 광자 방출의 레코딩이 정확히 모든 최초의 판독들을 캡처하도록 프로그래밍되어 SRAM으로부터 더 이상 어떠한 것도 없으며, 측정을 여러번 반복하는 경우, SRAM 시동 값들의 신뢰 가능한 이미지가 어셈블리될 수 있다.
스스로(on its own)의 판독 순서의 스크램블링은 광자 공격에 대항하기에 충분하지 않을 것이고; 랜덤화는, 화상은 단순히 그 순서와 무관하게 모든 초기 판독 동작들의 총 합계(sum total)이므로, 화상을 변경하지 않는다. 다행히, 도 5a에서와 같은 판독에서 그리고 도 5b에서, 더 적은 정도로, 파워-업 시에 메모리가 확정되는 메모리 콘텐츠와 상관되는 판독들은 그렇게 상관되지 않은 라이트 백들 사이에 배치된다(intersperse). 이는 광자 정보를 이용하는 것을 훨씬 더 어렵게 할 것이다. 이 셋-업을 공격하기 위해, 공격자는 (최초) 판독 액세스들을 선정(single out)하기 위해 셔터 매커니즘을 이용할 수 있다. 셔터는 판독들 동안 개방 위치로, 그리고 기록들 동안 폐쇄 위치들로 구성된다. 이러한 방식으로, 단지 암호화되지 않은 판독들 동안의 광자 방출만이 레코딩된다. 실시예에서, 메모리 판독 유닛은 적어도 부분적 랜덤으로 배치 크기를 선택하도록 구성되고, 어드레스 스크램블러를 통한 배치 크기 수의 판독 동작들에 이어 암호화 유닛에 의한 배치 크기 수의 암호화된 기록-백 동작들을 수행하도록 구성된다. 예를 들어, 배치 크기는 시동 시에 선택될 수 있고, 예를 들어, 배치 크기는 예를 들어, 각각의 배치 크기 판독 이후에 반복적으로 선택될 수 있다. 적어도 부분적 랜덤화는 PUF의 부분에 의존하여 배치 크기를 정함으로써 달성될 수 있다. 예를 들어, 배치 크기는 1, 2, 3, 4 바이트들로부터 랜덤으로 선택될 수 있다.
그러나 파워-업 콘텐츠에 상관되는 신호를 훨씬 더 감소시키는 것이 바람직할 수 있다.
이는, 각각의 메모리 위치에 대한 부가적인 랜덤화된 액세스들, 예를 들어, 기록 및/또는 판독들을 도입함으로써 달성될 수 있다. 기록들은 초기 값을 덮어쓰기할 것이고, 모든 후속 판독은 혼란 정보를 방출할 것이다. 이 대책을 보다 효과적이게 하기 위해, 어드레스 당 부가적인 기록들 및 판독들은 다른 어드레스들에 대한 유사한 기록들 및 판독들에 관하여 랜덤하게 순서화될 필요가 있다.
랜덤화된 순서로 SRAM에 대한 부가적이 판독들 및 기록들을 행하는 것은 초기 PUF 데이터 판독들로부터 분리하기 어려운 보다 많은 광자 활동을 생성한다. 부가적인 기록들을 위해 이용된 데이터는 랜덤 데이터, 고정된 패턴 또는 심지어 디바이스-특정 패턴일 수 있으며, 여기서 PUF의 부분은 디바이스-특정 패턴을 유도하는데 이용된다. 또한, 이들 3개의 결합들이 이용될 수 있다. 이 순서를 랜덤화하는 것은 PUF 시동 값 그 자체에 기초하는 랜덤 시드에 기초할 수 있다. 랜덤화는 모든 메모리 위치들에 대한 최초 판독 액세스를 선정하는 것을 어렵게 한다.
스크램블링된 판독 및 암호화된 라이트 백 준비 단계는 이러한 공격을 상당히 방해하도록 강화될 수 있다. 이는 판독 순서를 스크램블링하는 것 외에도, 판독 및 암호화된 기록-백 스테이지들을 합침으로써 달성된다.
암호화된 데이터의 부가적인 판독들, 예를 들어, 각각의 어드레스로부터 여러번의 판독들을 부가하고 최소 판독들을, 랜덤화된 ― 예를 들어, PUF-하베스팅된 랜덤 시드(PUF-harvested random seed)에 기초함 ― 방식으로 후속의 암호화된 데이터 판독들과 혼합함으로써, 공격자가 판독들 및 기록들의 정확한 스케줄을 예측하는 것이 가능하지 않은데, 그 이유는 이 스케줄은 각각의 파워-업 마다 상이할 것이기 때문이다. 그 결과, SRAM 시동 값들의 신뢰할 수 있는 화상을 생성하는 것은 매우 어렵다.
예를 들어, 도 5c의 암호화 단계(512)는 그림 510과 동일한 스크램블링된 순서를 도시하지만, 부가적인 모호화 액세스들이 부가되었다. 모호화 액세스들은 예를 들어, 판독 유닛(210)에 포함되는 모호화 유닛에 의해 행해진다. 예를 들어, 모호화 유닛은, 유닛(210)의 나머지부분(rest)의 각각의 판독 및/또는 기록 액세스 이후 모호화 액세스들을 삽입할 기회를 가질 수 있다. 도 5c에서, 모호화 액세스들은 암호화된 기록-백이 이미 발생한 메모리 위치들에 대해서만 행해진다.
상이한 타입들의 액세스가 유리하다. 액세스는 부가적인 판독일 수 있다. 이는 구현하기 더 단순한데, 그 이유는 어떤 값이 기록될 필요가 있는지에 관한 질문을 이것이 방지하기 때문이다. 액세스는 판독/기록 사이클일 수 있다. 기록 액세스들은 광자 방출을 야기하고, 이에 따라 부가적인 모호화를 야기할 가능성이 매우 높다. 액세스는 판독/기록/기록 사이클일 수 있는데; 제 1 기록에서, 랜덤 값 또는 고정 값, 말하자면 모두 1 또는 판독 값의 인버스가 기록되고, 이어서 제 2 기록에서, 값 판독이 라이트 백된다. 이는 메모리 위치들의 스위치들을 증가시키고 광자 방출을 추가로 증가시킬 것이다. 모호화 액세스를 수행하는 것은 이에 따라 메모리 위치, 즉 어드레스, 바람직하게는, 암호화된 기록이 이미 발생한 어드레스를 선택하고 선택된 메모리 어드레스에 대한 액세스를 수행하는 것을 포함할 수 있다.
액세스는 또한 기록 액세스일 수 있는데, 기록 액세스인 경우에, 올바른 값이 기록되도록 주의가 기울여져야 한다. 구현의 용이함과 효과 간의 특정한 양호한 트래이드오프가 도 5d에서 도시된다. 도 5d에서, 암호화 단계는 다수의 판독/기록-백 사이클들로 구성된다. 기록은 암호화된(이에 따라 상관되지 않은) 기록-백의 광자 효과를 증가시키도록 반복된다. 또한, 이 시나리오에서, 제 1 기록은 랜덤하며, 인버스이고, 고정될 수 있다. 불행히도, 도 5d는 셔터를 이용하여 Ri를 선정하는데 취약하게 하는 규칙적 패턴(RiWiWi)을 나타내고; 일 실시예에서, 판독/기록 패턴은 랜덤 인터리빙으로 강화된다. 예를 들어, 기록 동작들의 수는 부분적으로 랜덤일 수 있는데, 예를 들어, 배치 크기 수가 위에서 표시된 바와 같이 선택될 수 있지만, 배치 크기 수는 기록-백의 반복들의 수를 제어하는데만 이용된다. 다른 랜덤 인터리빙들이 또한 이용될 수 있다.
최초가 암호화된 기록-백의 인버스인 2개의 라이트 백들을 갖는 것은 광자 방출을 증가시키며, 이는 최초 판독에서 가능한 광자 방출의 효과를 감소시킨다.
일 실시예에서, 모호화 유닛은 메모리 내의 메모리 위치에 대한 모호화 액세스를 수행하도록 구성되고, 이 모호화 액세스는 암호화 유닛이 메모리 위치에 암호화된 메모리 콘텐츠를 라이트 백한 이후 수행된다. 어느 메모리 위치들이 액세스하기 안전한지를 모호화 유닛이 계속 추적하는 다양한 방식들이 있다. 추가의 실시예에서, 모호화 액세스는 복호화 유닛이 메모리 위치로부터 암호화된 메모리 콘텐츠를 수신하기 이전에 이루어진다.
다른 실시예에서, 모호화 유닛은 랜덤 메모리 위치로부터 판독 액세스들을 수행한다. 암호화 단계 동안, 말하자면, 각각의 스크램블링된 판독 이후 그리고 각각의 기록-백 이후 고정된 지점들에서, 모호화 유닛은 모호화 액세스들, 바람직하게는, 판독 액세스를 랜덤 메모리 위치에 삽입할 기회를 갖는다. 모호화 유닛은 모호화 유닛이 모호화 액세스를 삽입할 확률을 표시하는 확률 값을 포함한다. 암호화 단계의 시작 시에, 확률 값은 더 낮은 값이고, 적어도 암호화 단계 동안 확률 값은, 암호화 단계의 종료 시에, 확률 값이 높은 값이 되도록 증가한다. 예를 들어, 확률 값은 고정된 시작 값으로부터 고정된 최종 값으로 각각의 기회 이후에 선형적으로 증가할 수 있다.
암호화 단계 초반에, 메모리의 단지 작은 부분만이 암호화되었고, 부가적인 판독들은 공격자에 대한 신호를 개선하는 위험을 실행(run)하지만, 이 스테이지에서, 판독의 확률은 낮고, 마지막에 메모리의 대부분이 암호화되어, 암호화된 값의 판독의 확률이 높게 된다. 이러한 방식의 이점은, 어느 메모리 위치들이 판독에 대해 안전한지, 즉 암호화된 값을 갖는지를 계속 추적하기 위해 어떠한 부기(book-keeping)도 요구되지 않는다는 것이다. 일 실시예에서, 확률 값은 암호화 단계의 시작으로부터 종료까지 0.1로부터 0.9로 선형적으로 증가한다. 추가의 순서로 메모리를 안전하게 판독하기 위한 전자 메모리 판독 유닛의 실시예는 본 명세서에서 설명된 모호화 유닛들 중 임의의 것을 포함한다.
상기-언급된 실시예들은 본 발명을 제한하기 보다는 오히려 예시하는 것이며, 당업자는 다수의 대안적인 실시예들을 설계할 수 있을 것임이 주목되어야 한다.
청구범위들에서, 괄호들 사이에 배치되는 임의의 참조 부호들은 청구항을 제한하는 것으로서 해석되어서는 안 된다. 용어 "포함하는"의 이용 및 활용들은 청구항에 서술되는 것들과 다른 단계들 또는 엘리먼트들의 존재를 배제하지 않는다. 엘리먼트에 선행하는 관사 "하나(a 또는 an)"는 복수의 그와 같은 엘리먼트들의 존재를 배제하지 않는다. 본 발명은 여러 별개의 엘리먼트들을 포함하는 하드웨어에 의해, 그리고 적합하게 프로그램된 컴퓨터에 의해 구현될 수 있다. 여러 수단을 열거하는 디바이스 청구항에서, 이들 수단 중 여러 개가 하드웨어의 하나 및 동일한 항목에 의해 구체화될 수 있다. 특정의 조치들이 상호배타적으로 다른 종속 청구항들에서 인용된다는 단순한 사실은 이들 조치들의 조합이 유용하게 이용될 수 없음을 표시하지 않는다.
100 암호 키를 생성하기 위한 전자 시스템
110 물리적 복제방지 기능으로서 이용되는 메모리
112, 114, 116 메모리 위치들
120 메모리 인터페이스
122 데이터 채널
124 어드레스 채널
130 PUF 제어 블록
140 어드레스 스크램블러
150 키 유도 유닛
152 버퍼
154 치환기
156 에러 정정 로직
200 암호 키를 생성하기 위한 전자 시스템
210 PUF 제어 블록
220 메모리 판독 유닛
230 키 유도 유닛
240 암호화 유닛
250 복호화 유닛
255 어드레스 생성기
260 추가의 메모리
265 랜덤 키 및 시드 유도 유닛
270 버퍼
280 결합기
285 헬퍼 데이터 메모리
290 에러 정정기
295 키 유도 기능 유닛
310 메모리 콘텐츠
312,314,316 코드-워드 크기의 메모리 척들
320 스크램블링된 메모리 액세스
322,324,326 코드-워드 크기의 메모리 척들
330 스크램블링된 메모리 액세스
510, 511, 512, 514 암호화 단계
520 복호화 단계

Claims (18)

  1. 암호 키(cryptographic key)를 생성하기 위한 전자 시스템(100; 200)으로서,
    - 물리적 복제방지 기능(physically unclonable function)으로서 이용되는 메모리(110) ― 상기 메모리는 기록 가능하고, 휘발성이며, 상기 메모리의 각각의 파워-업 시에, 상기 메모리가, 상기 메모리의 적어도 부분적으로 랜덤인 물리적 특성들에 의존하는 메모리 콘텐츠를 확정(settle)하도록 구성되며, 상기 메모리는 메모리 인터페이스(120)를 통해 액세스 가능함 ― ; 및
    - 상기 메모리가 확정되는 메모리 콘텐츠로부터 상기 암호 키를 유도하도록 구성된 키 유도 유닛(150; 230)
    을 포함하고,
    상기 암호 키를 생성하기 위한 전자 시스템은,
    - 상기 메모리 인터페이스를 통해 상기 메모리에, 그리고 상기 키 유도 유닛에 연결되는 메모리 판독 유닛(220)
    을 더 포함하고,
    상기 메모리 판독 유닛은 스크램블링된 순서(scrambled order)로 상기 메모리 인터페이스를 통해 상기 메모리 콘텐츠를 리트리브(retrieve)하기 위한 어드레스 스크램블러(140)를 포함하는,
    암호 키를 생성하기 위한 전자 시스템.
  2. 제 1 항에 있어서,
    상기 메모리 판독 유닛은,
    - 상기 메모리를 암호화하기 위한 암호화 유닛(240) ― 상기 암호화 유닛은 상기 스크램블링된 순서로 상기 메모리 콘텐츠를 상기 메모리 인터페이스로부터 수신하고, 수신된 메모리 콘텐츠를 암호화하고, 암호화된 메모리 콘텐츠를 상기 메모리에 라이트 백(write back)하도록 구성됨 ― ; 및
    - 상기 메모리를 복호화하기 위한 복호화 유닛(250)
    을 포함하고
    상기 복호화 유닛(250)은 추가의 순서로 상기 암호화된 메모리 콘텐츠를 상기 메모리 인터페이스로부터 수신하고, 상기 추가의 순서로 상기 메모리 콘텐츠를 획득하기 위해 수신된 암호화된 메모리 콘텐츠를 복호화하도록 구성되는,
    암호 키를 생성하기 위한 전자 시스템.
  3. 제 2 항에 있어서,
    - 비-휘발성 헬퍼-데이터(helper-data) 메모리(285) ― 상기 헬퍼-데이터 메모리는 물리적 복제방지 기능으로서 이용되는 메모리에 대해 구성되는 헬퍼 데이터를 저장함 ― ;
    - 정정 가능한 비트-스트링을 설정하기 위한 결합기(280) ― 상기 정정 가능한 비트-스트링은 정정 가능한 인근의 에러 정정 코드에 있고, 상기 결합기는 상기 헬퍼-데이터 메모리로부터 상기 헬퍼 데이터를 리트리브하고 상기 메모리 판독 유닛으로부터 획득된 미리-결정된 추가의 순서로 상기 메모리가 확정되는 메모리 콘텐츠와 리트리브된 헬퍼 데이터를 결합하도록 구성됨 ― ;
    - 에러 정정 알고리즘을 이용하여 상기 정정 가능한 비트-스트링으로부터 에러 정정 코드의 코드 워드를 설정하도록 구성되는 에러-정정기(290)
    를 포함하는,
    암호 키를 생성하기 위한 전자 시스템.
  4. 제 2 항 또는 제 3 항에 있어서,
    상기 암호화 유닛은, 상기 암호화된 메모리 콘텐츠로 상기 메모리 콘텐츠를 덮어쓰기하기 위해, 상기 스크램블링된 순서로 상기 메모리에 상기 암호화된 메모리 콘텐츠를 라이트 백하도록 구성되는,
    암호 키를 생성하기 위한 전자 시스템.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 스크램블링된 순서는 판독 유닛의 각각의 파워-업 이후에 적어도 부분적으로 랜덤하게 생성되는 시드(seed)로부터 유도되는,
    암호 키를 생성하기 위한 전자 시스템.
  6. 제 5 항에 있어서,
    상기 판독 유닛은 새로운 시드를 획득하기 위해 상기 시드에 적용되도록 구성되는 암호 일-방향 함수(cryptographic one-way function)을 포함하고, 상기 어드레스 스크램블러는 새로운 스크램블링된 순서로 상기 메모리 인터페이스를 통해 상기 메모리 콘텐츠를 다시-가져오기(re-fetching) 위해 상기 새로운 시드로부터 새로운 스크램블링된 순서를 유도하도록 구성되는,
    암호 키를 생성하기 위한 전자 시스템.
  7. 제 5 항 또는 제 6 항에 있어서,
    상기 판독 유닛은, 상기 추가의 메모리의 각각의 파워-업 시에, 상기 제 2 메모리를 노이지(noisy) 메모리 콘텐츠를 확정하도록 구성된 추가의 휘발성 메모리를 포함하고 상기 시드는 상기 제 2 메모리가 확정되는 메모리 콘텐츠로부터 유도되는,
    암호 키를 생성하기 위한 전자 시스템.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    모호화 유닛(obfuscation unit)
    을 포함하고,
    상기 모호화 유닛은 상기 메모리에 대한 다수의 부가적인 모호화 액세스들을 수행하도록 구성되고, 상기 모호화 액세스는 파워-업 시에 상기 메모리가 확정되는 메모리 콘텐츠와 상기 메모리로부터의 광-방출들 간의 상관을 감소시키도록 구성되는,
    암호 키를 생성하기 위한 전자 시스템.
  9. 제 8 항에 있어서,
    상기 모호화 유닛은 상기 메모리 내의 메모리 위치에 대한 모호화 액세스를 수행하도록 구성되고, 상기 모호화 액세스는 상기 암호화 유닛이 암호화된 메모리 콘텐츠를 상기 메모리 위치에 라이트 백한 이후 수행되는,
    암호 키를 생성하기 위한 전자 시스템.
  10. 제 1 항 내지 제 9 항 중 어느 한 항에 있어서,
    상기 물리적 복제방지 기능으로서 이용되는 메모리는 SRAM 메모리인,
    암호 키를 생성하기 위한 전자 시스템.
  11. 제 1 항 내지 제 10 항 중 어느 한 항에 있어서,
    상기 물리적 복제방지 기능으로서 이용되는 메모리는 휘발성 FPGA 메모리인,
    암호 키를 생성하기 위한 전자 시스템.
  12. 제 1 항 내지 제 11 항 중 어느 한 항에 따른 암호 키를 생성하기 위한 전자 시스템을 포함하는 집적 회로.
  13. 제 1 항 내지 제 11 항 중 어느 한 항에 따른 암호 키를 생성하기 위한 전자 시스템을 포함하는 집적 회로로서, 상기 집적 회로는 스마트 카드, ASSP, DSP, 애플리케이션 프로세서, SIM 및 NFC 칩 중 임의의 하나인, 집적 회로.
  14. 추가의 순서로 메모리를 안전하게 판독하기 위한 전자 메모리 판독 유닛으로서, 상기 메모리는 기록 가능하고, 상기 전자 메모리 판독 유닛은 메모리 인터페이스를 통해 상기 메모리에 연결 가능하고, 상기 메모리 판독 유닛은,
    - 스크램블링된 순서로 상기 메모리 인터페이스를 통해 상기 메모리 콘텐츠를 리트리브하도록 구성된 어드레스 스크램블러;
    - 상기 메모리를 암호화하기 위한 암호화 유닛 ― 상기 암호화 유닛은 상기 스크램블링된 순서로 상기 메모리 콘텐츠를 상기 메모리 인터페이스로부터 수신하고, 수신된 메모리 콘텐츠를 암호화하고, 암호화된 메모리 콘텐츠를 라이트 백하도록 구성됨 ― ; 및
    - 상기 메모리를 복호화하기 위한 복호화 유닛
    을 포함하고,
    상기 복호화 유닛은 추가의 순서로 상기 암호화된 메모리 콘텐츠를 상기 메모리 인터페이스로부터 수신하고, 상기 추가의 순서로 상기 메모리 콘텐츠를 획득하기 위해 수신된 암호화된 메모리 콘텐츠를 복호화하도록 구성되는,
    전자 메모리 판독 유닛.
  15. 암호 키(400)를 생성하기 위한 방법으로서,
    - 물리적 복제방지 기능으로서 이용되는 메모리를 파워-업하는 단계(410) ― 상기 메모리는 기록 가능하고 휘발성임 ― ;
    - 상기 메모리가 상기 메모리의 적어도 부분적으로 랜덤인 물리적 특성들에 의존하는 메모리 콘텐츠를 확정하도록 허용하는 단계(420);
    - 스크램블링된 순서로 메모리 인터페이스를 통해 상기 메모리 콘텐츠를 리트리브(430)하는 단계;
    - 상기 메모리가 확정되는 메모리 콘텐츠로부터 암호 키를 유도(480)하는 단계
    를 포함하는,
    암호 키를 생성하기 위한 방법.
  16. 제 15 항에 있어서,
    -- 상기 스크램블링된 순서로 상기 메모리 콘텐츠를 상기 메모리 인터페이스로부터 수신함으로써(430),
    -- 수신된 메모리 콘텐츠를 암호화함으로써(440), 및
    -- 암호화된 메모리 콘텐츠를 상기 메모리에 라이트 백함으로써(450)
    - 상기 메모리를 암호화하는 단계; 및
    -- 상기 미리 결정된 추가의 순서로 암호화된 메모리 콘텐츠를 상기 메모리 인터페이스로부터 수신함으로써(460),
    -- 상기 미리 결정된 추가의 순서로 상기 메모리 콘텐츠를 획득하기 위해 수신된 암호화된 메모리 콘텐츠를 복호화함으로써(470)
    - 상기 메모리를 복호화하는 단계
    를 포함하는,
    암호 키를 생성하기 위한 방법.
  17. 컴퓨터 프로그램이 컴퓨터 상에서 실행될 때 제 15 항 또는 제 16 항의 모든 단계들을 수행하도록 적응된 컴퓨터 프로그램 코드 수단을 포함하는 컴퓨터 프로그램.
  18. 제 17 항에 있어서,
    컴퓨터 판독 가능한 매체 상에서 실현되는,
    컴퓨터 프로그램.
KR1020157011155A 2012-10-04 2013-09-10 물리적 복제방지 기능으로서 이용되는 메모리로부터 암호 키를 생성하기 위한 시스템 KR102201062B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP12187213.9 2012-10-04
EP12187213 2012-10-04
EP12194713 2012-11-29
EP12194713.9 2012-11-29
PCT/EP2013/068746 WO2014053286A1 (en) 2012-10-04 2013-09-10 System for generating a cryptographic key from a memory used as a physically unclonable function

Publications (2)

Publication Number Publication Date
KR20150064148A true KR20150064148A (ko) 2015-06-10
KR102201062B1 KR102201062B1 (ko) 2021-01-11

Family

ID=49118557

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157011155A KR102201062B1 (ko) 2012-10-04 2013-09-10 물리적 복제방지 기능으로서 이용되는 메모리로부터 암호 키를 생성하기 위한 시스템

Country Status (6)

Country Link
US (1) US9430406B2 (ko)
EP (1) EP2904732B1 (ko)
JP (1) JP6267207B2 (ko)
KR (1) KR102201062B1 (ko)
CN (1) CN104704768B (ko)
WO (1) WO2014053286A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170112888A (ko) * 2016-03-24 2017-10-12 삼성전자주식회사 장치 의존적 암호화 방법과 이를 수행하는 장치
KR20180129193A (ko) * 2017-05-25 2018-12-05 한밭대학교 산학협력단 노이즈가 삽입된 물리적 복제 불가 함수 시스템
KR102169468B1 (ko) 2019-05-20 2020-10-23 충북대학교 산학협력단 물리적 복제 불가능 함수에 적용 가능한 챌린지 혼합기 및 챌린지 혼합 방법

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014208210A1 (de) * 2014-04-30 2015-11-19 Siemens Aktiengesellschaft Ableiten eines gerätespezifischen Wertes
US9672342B2 (en) 2014-05-05 2017-06-06 Analog Devices, Inc. System and device binding metadata with hardware intrinsic properties
US9946858B2 (en) 2014-05-05 2018-04-17 Analog Devices, Inc. Authentication system and device including physical unclonable function and threshold cryptography
US10432409B2 (en) * 2014-05-05 2019-10-01 Analog Devices, Inc. Authentication system and device including physical unclonable function and threshold cryptography
IL234956A (en) * 2014-10-02 2017-10-31 Kaluzhny Uri Data bus protection with enhanced key entropy
US9640247B2 (en) 2015-01-14 2017-05-02 Qualcomm Incorporated Methods and apparatuses for generating random numbers based on bit cell settling time
EP3046095B1 (en) * 2015-01-15 2021-10-20 Siemens Aktiengesellschaft A method of protecting diverse applications stored on an integrated circuit using PUFs
EP3046096B1 (en) 2015-01-15 2022-03-30 Siemens Aktiengesellschaft A protection method of writting encrypted data to a memory device and reading decrypted data from the memory device using the power up of a PUF
US9425803B1 (en) * 2015-05-07 2016-08-23 The United States Of America As Represented By The Secretary Of The Navy Apparatuses and methods for implementing various physically unclonable function (PUF) and random number generator capabilities
US9875378B2 (en) 2015-06-12 2018-01-23 QUALCOMOM Incorporated Physically unclonable function assisted memory encryption device techniques
US10318431B2 (en) 2015-09-17 2019-06-11 Hewlett Packard Enterprise Development Lp Obscuration of a cache signal
US20170126414A1 (en) * 2015-10-28 2017-05-04 Texas Instruments Incorporated Database-less authentication with physically unclonable functions
EP3378054B1 (en) * 2015-11-20 2021-03-17 Intrinsic ID B.V. Puf identifier assignment and testing method and device
DE102016201665A1 (de) * 2016-02-03 2017-08-03 Siemens Aktiengesellschaft Verschlüsseln des Speicherinhalts eines Speichers in einem eingebetteten System
US10572651B2 (en) 2016-02-16 2020-02-25 Samsung Electronics Co., Ltd. Key generating method and apparatus using characteristic of memory
US11843597B2 (en) * 2016-05-18 2023-12-12 Vercrio, Inc. Automated scalable identity-proofing and authentication process
JP6393375B2 (ja) * 2016-07-15 2018-09-19 渡辺 浩志 電子装置のネットワーク、電子装置及びその検査工程
US10855477B2 (en) 2016-08-04 2020-12-01 Macronix International Co., Ltd. Non-volatile memory with physical unclonable function and random number generator
US10680809B2 (en) 2016-08-04 2020-06-09 Macronix International Co., Ltd. Physical unclonable function for security key
US10715340B2 (en) 2016-08-04 2020-07-14 Macronix International Co., Ltd. Non-volatile memory with security key storage
US10911229B2 (en) 2016-08-04 2021-02-02 Macronix International Co., Ltd. Unchangeable physical unclonable function in non-volatile memory
US11258599B2 (en) 2016-08-04 2022-02-22 Macronix International Co., Ltd. Stable physically unclonable function
CN106301786B (zh) * 2016-08-10 2019-04-02 南京航空航天大学 一种基于sram型存储器的物理不可克隆函数响应纠错电路
US10318748B2 (en) * 2016-09-30 2019-06-11 Intel Corporation Techniques to protect fuses against non-destructive attacks
US10387660B1 (en) * 2016-10-17 2019-08-20 National Technology & Engineering Solutions Of Sandia, Llc Computational optical physical unclonable function
US10394492B2 (en) * 2016-10-26 2019-08-27 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Securing a media storage device using write restriction mechanisms
US9811689B1 (en) 2016-12-27 2017-11-07 Macronix International Co., Ltd. Chip ID generation using physical unclonable function
US10082975B1 (en) * 2017-03-02 2018-09-25 Micron Technology, Inc. Obfuscation-enhanced memory encryption
JP6882666B2 (ja) * 2017-03-07 2021-06-02 富士通株式会社 鍵生成装置および鍵生成方法
CN106933752B (zh) * 2017-03-09 2019-10-08 西安电子科技大学 一种sram型fpga的加密装置及方法
WO2018183572A1 (en) * 2017-03-29 2018-10-04 Board Of Regents, The University Of Texas System Reducing amount of helper data in silicon physical unclonable functions via lossy compression without production-time error characterization
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
US11093588B2 (en) * 2017-06-26 2021-08-17 Micron Technology, Inc. Memory system including data obfuscation
CN107196766B (zh) * 2017-07-20 2023-04-14 中国工程物理研究院电子工程研究所 一种小型化量子认证系统
EP3435586B1 (en) * 2017-07-25 2019-08-07 Intrinsic ID B.V. Method to reduce aging of a cache memory
US10949546B2 (en) 2017-08-02 2021-03-16 Samsung Electronics Co., Ltd. Security devices, electronic devices and methods of operating electronic devices
US10649735B2 (en) * 2017-09-12 2020-05-12 Ememory Technology Inc. Security system with entropy bits
CN107908980B (zh) * 2017-10-10 2021-11-23 芯海科技(深圳)股份有限公司 一种存储器数据加密保护的实现方法
US11050574B2 (en) 2017-11-29 2021-06-29 Taiwan Semiconductor Manufacturing Company, Ltd. Authentication based on physically unclonable functions
CN108229215A (zh) * 2017-12-06 2018-06-29 杭州中天微系统有限公司 一种地址加扰的存储装置及方法
CN108182371A (zh) * 2017-12-22 2018-06-19 杭州中天微系统有限公司 一种片上系统的片外存储器地址加扰装置及方法
CN110018810B (zh) 2018-01-10 2021-05-18 力旺电子股份有限公司 随机码产生器
WO2019146198A1 (ja) * 2018-01-23 2019-08-01 パナソニック株式会社 不揮発性メモリ装置およびその書込み方法
JP6752247B2 (ja) * 2018-03-09 2020-09-09 三菱重工業株式会社 情報配信装置、配信対象装置、情報配信システム、情報配信方法及びプログラム
US11265151B2 (en) * 2018-03-09 2022-03-01 Arizona Board Of Regents On Behalf Of Northern Arizona University Key exchange schemes with addressable elements
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
GB201806997D0 (en) * 2018-04-30 2018-06-13 Univ Leuven Kath Configurable hardware device
US10742406B2 (en) * 2018-05-03 2020-08-11 Micron Technology, Inc. Key generation and secure storage in a noisy environment
US11063755B2 (en) * 2018-05-07 2021-07-13 Cryptography Research, Inc. Generating a key at a device based on a memory of the device
JP2021526745A (ja) * 2018-06-11 2021-10-07 クリプトグラフィ リサーチ, インコーポレイテッド デバイスの物理的変動に関連する関数に基づくターゲットデータの生成
US11113422B2 (en) 2018-08-03 2021-09-07 Micron Technology, Inc. Data protection in computer processors
US11074198B2 (en) * 2018-09-18 2021-07-27 Micron Technology, Inc. Key management in computer processors
US11303462B2 (en) 2018-11-19 2022-04-12 Arizona Board Of Regents On Behalf Of Northern Arizona University Unequally powered cryptography using physical unclonable functions
KR102263877B1 (ko) * 2018-12-18 2021-06-14 시큐리티플랫폼 주식회사 디바이스 고유암호키 생성기 및 방법
CN109656840A (zh) * 2018-12-21 2019-04-19 成都海光集成电路设计有限公司 一种数据加解密的装置、方法、存储介质、以及数据存储系统
US11233662B2 (en) * 2018-12-26 2022-01-25 Arizona Board Of Regents On Behalf Of Northern Arizona University Keyless encrypting schemes using physical unclonable function devices
TWI734314B (zh) * 2018-12-31 2021-07-21 美商美光科技公司 用於將數位指紋提供至主機裝置之系統、方法及非暫時性電腦可讀媒體
US11514174B2 (en) * 2019-01-23 2022-11-29 Micron Technology, Inc. Memory devices with cryptographic components
US11218330B2 (en) 2019-03-25 2022-01-04 Micron Technology, Inc. Generating an identity for a computing device using a physical unclonable function
US11323275B2 (en) 2019-03-25 2022-05-03 Micron Technology, Inc. Verification of identity using a secret key
EP3981105A4 (en) * 2019-06-07 2023-06-28 Ohio State Innovation Foundation Systems and methods using hybrid boolean networks as physically unclonable functions
US11343108B2 (en) * 2019-06-12 2022-05-24 Arizona Board Of Regents On Behalf Of Northern Arizona University Generation of composite private keys
US11483167B2 (en) * 2019-06-20 2022-10-25 Intel Corporation Method and apparatus to provide memory based physically unclonable functions
US11194978B2 (en) * 2019-07-12 2021-12-07 Northrop Grumman Systems Corporation Combined radio frequency identification (RFID)-based asset management and component authentication
US20210051010A1 (en) * 2019-08-16 2021-02-18 PUFsecurity Corporation Memory Device Providing Data Security
WO2021071691A1 (en) * 2019-10-08 2021-04-15 Cryptography Research, Inc. Encrypted physically unclonable function circuit helper data
GB201919297D0 (en) 2019-12-24 2020-02-05 Aronson Bill Temperature sensing physical unclonable function (puf) authenication system
US11516028B2 (en) 2019-12-24 2022-11-29 CERA Licensing Limited Temperature sensing physical unclonable function (PUF) authentication system
KR20210129370A (ko) 2020-04-20 2021-10-28 삼성전자주식회사 메모리 모듈 및 적층형 메모리 장치
US20210409233A1 (en) * 2020-06-26 2021-12-30 Taiwan Semiconductor Manufacturing Company Ltd. Puf method and structure
CN112104459B (zh) * 2020-09-10 2023-05-12 国网江苏省电力有限公司信息通信分公司 一种基于信道指纹与辅助数据的密钥生成方法
US11380379B2 (en) 2020-11-02 2022-07-05 Macronix International Co., Ltd. PUF applications in memories
US11604740B2 (en) * 2020-12-01 2023-03-14 Capital One Services, Llc Obfuscating cryptographic material in memory
CN113037488B (zh) * 2021-04-19 2022-07-22 工业信息安全(四川)创新中心有限公司 基于国密密码杂凑算法的保留格式加密方法及解密方法
US20230033630A1 (en) * 2021-07-30 2023-02-02 Micron Technology, Inc. Embedded Hardware Security Module (HSM)
WO2023107287A1 (en) * 2021-12-06 2023-06-15 Cryptography Research, Inc. Physically uncloneable function as secure storage
CN114912154B (zh) * 2022-06-06 2024-03-15 山东大学 一种基于非易失存储器的加密存算一体的实现方法
CN115216861B (zh) * 2022-07-22 2023-07-28 河南大学 基于金属-介电-发光同轴多层复合纳米纤维的puf器件以及采用该器件生成密钥的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113217A1 (en) * 2007-10-30 2009-04-30 Sandisk Il Ltd. Memory randomization for protection against side channel attacks
US20120179952A1 (en) * 2009-08-14 2012-07-12 Pim Theo Tuyls Physically unclonable function with tamper prevention and anti-aging system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7310706B1 (en) * 2001-06-01 2007-12-18 Mips Technologies, Inc. Random cache line refill
JP2003018143A (ja) * 2001-06-28 2003-01-17 Mitsubishi Electric Corp 情報処理装置
CN101185281A (zh) 2005-06-01 2008-05-21 皇家飞利浦电子股份有限公司 帮助数据系统中的模板更新
US8638931B2 (en) * 2007-10-30 2014-01-28 Spansion Llc Signal descrambling detector
WO2010055171A1 (en) 2008-11-17 2010-05-20 Intrinsic-Id B.V. Distributed puf
JP5548218B2 (ja) * 2009-03-06 2014-07-16 イントリンシツク・イー・デー・ベー・ベー 物理的システムに依存する暗号鍵を確立するためのシステム
WO2011088074A2 (en) * 2010-01-12 2011-07-21 Stc. Unm System and methods for generating unclonable security keys in integrated circuits

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113217A1 (en) * 2007-10-30 2009-04-30 Sandisk Il Ltd. Memory randomization for protection against side channel attacks
US20120179952A1 (en) * 2009-08-14 2012-07-12 Pim Theo Tuyls Physically unclonable function with tamper prevention and anti-aging system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Gören, Sezer, et al. "FPGA bitstream protection with PUFs, obfuscation, and multi-boot." 6th International Workshop on Reconfigurable Communication-Centric Systems-on-Chip (ReCoSoC). IEEE(2011.) 1부.* *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170112888A (ko) * 2016-03-24 2017-10-12 삼성전자주식회사 장치 의존적 암호화 방법과 이를 수행하는 장치
KR20180129193A (ko) * 2017-05-25 2018-12-05 한밭대학교 산학협력단 노이즈가 삽입된 물리적 복제 불가 함수 시스템
KR102169468B1 (ko) 2019-05-20 2020-10-23 충북대학교 산학협력단 물리적 복제 불가능 함수에 적용 가능한 챌린지 혼합기 및 챌린지 혼합 방법

Also Published As

Publication number Publication date
US20150234751A1 (en) 2015-08-20
JP6267207B2 (ja) 2018-01-24
CN104704768B (zh) 2018-01-05
EP2904732B1 (en) 2018-11-28
CN104704768A (zh) 2015-06-10
KR102201062B1 (ko) 2021-01-11
EP2904732A1 (en) 2015-08-12
US9430406B2 (en) 2016-08-30
WO2014053286A1 (en) 2014-04-10
JP2015532549A (ja) 2015-11-09

Similar Documents

Publication Publication Date Title
KR102201062B1 (ko) 물리적 복제방지 기능으로서 이용되는 메모리로부터 암호 키를 생성하기 위한 시스템
CN108449172B (zh) 加密/解密方法和计算设备的集成电路
US10187200B1 (en) System and method for generating a multi-stage key for use in cryptographic operations
JP5306465B2 (ja) セキュアなメモリに応用するメッセージ認証コードの事前計算
JP5167374B2 (ja) データ暗号化装置、及び、メモリカード
US8767959B2 (en) Block encryption
US20080084996A1 (en) Authenticated encryption method and apparatus
JP6499519B2 (ja) メッセージを安全に交換する暗号方式並びにこの方式を実施する装置及びシステム
TW201701186A (zh) 實體不可複製功能輔助之記憶體加密裝置技術
JP2017504838A (ja) 暗号アルゴリズムに対するサイドチャネル攻撃への対抗策
JP6517436B2 (ja) 暗号化デバイス及び符号化デバイス
US11258579B2 (en) Method and circuit for implementing a substitution table
US20140140504A1 (en) System, devices and methods for collaborative execution of a software application comprising at least one encrypted instruction
US20150172045A1 (en) Method of cryption
KR101687492B1 (ko) 분산적으로 데이터를 저장하는 방법 및 암호학적 정보 처리 장치
JP2019122046A (ja) 物理的複製困難関数技術を用いたエンタングルメント・リコールシステム
EP3832945B1 (en) System and method for protecting memory encryption against template attacks
JP4435593B2 (ja) 耐タンパー情報処理装置
CN109902492B (zh) 集成电路外部存储器中写加密信息集合的方法和集成电路
KR101105384B1 (ko) 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법
RU2759862C1 (ru) Способ шифрования данных
EP4307155A1 (en) Method and circuit for protecting an electronic device from a side-channel attack
JP2023130311A (ja) サイドチャネル攻撃から電子コンピュータを保護する方法及び電子コンピュータ
Al Awadhi CSEEC: Crypto-system with embedded error control

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