KR20140037153A - 랜덤 출력 비트 시퀀스의 생성 방법 - Google Patents

랜덤 출력 비트 시퀀스의 생성 방법 Download PDF

Info

Publication number
KR20140037153A
KR20140037153A KR1020137034958A KR20137034958A KR20140037153A KR 20140037153 A KR20140037153 A KR 20140037153A KR 1020137034958 A KR1020137034958 A KR 1020137034958A KR 20137034958 A KR20137034958 A KR 20137034958A KR 20140037153 A KR20140037153 A KR 20140037153A
Authority
KR
South Korea
Prior art keywords
bits
state
state machines
random
bit sequence
Prior art date
Application number
KR1020137034958A
Other languages
English (en)
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 KR20140037153A publication Critical patent/KR20140037153A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • 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/582Pseudo-random number generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 랜덤 출력 비트 시퀀스를 생성하기 위한 방법 및 랜덤 비트 생성기(100)에 관한 것이다. 상기 방법의 경우, 각각 동일하게 구성된 2n개의 상태 기계(104)의 시스템이 이용되고, 상태 기계들(104)은 각각 n개의 상태 비트를 포함하고, 각각의 상태 기계(104)는 항상 시스템의 다른 상태 기계들(104)과는 다른 상태를 취하고, 상기 상태 기계들(104)에는 입력 측에서 입력 신호가 공급되어 상태 기계들은 각각 자신의 상태에 따라서 함께 서명 비트 시퀀스를 형성하는 n개의 서명 비트를 생성하며, 랜덤 출력 비트 시퀀스는 시스템의 모든 상태 기계(104)의 서명 비트 시퀀스들에서 개별 비트들의 선택을 통해 생성된다.

Description

랜덤 출력 비트 시퀀스의 생성 방법{METHOD FOR GENERATING A RANDOM OUTPUT BIT SEQUENCE}
본 발명은 랜덤 출력 비트 시퀀스를 생성하기 위한 방법과 이러한 방법을 실행하기 위한 랜덤 비트 생성기에 관한 것이다.
랜덤 비트 시퀀스의 생성을 위해, 입력 비트 시퀀스의 입력 시 랜덤 출력 비트 시퀀스를 생성하는 랜덤 비트 생성기들이 이용된다.
랜덤 비트 생성기들이 암호화 장치 및 암호화 알고리즘을 위해 이용된다면, 랜덤 비트 생성기들은 보호되는 데이터를 조작하거나 판독하는 공격에 노출된다. 예컨대 고급 암호화 표준(AES)과 같은 오늘날 통상적인 암호화 방법의 경우, 128개 및 그 이상의 비트 자체를 갖는 암호키 길이를 바탕으로, 고속 컴퓨터 기술의 이용하에 "시행착오"[이른바 무차별 대입 공격(Brute-Force-Attack)]로 식별될 수 없는 암호키들이 이용된다. 그러므로 공격자는, 암호화 연산 시 전기 소모량의 시간 곡선, 기간 또는 회로의 전자기 방출과 같은 구현의 부작용들도 조사한다. 공격은 기능을 직접적으로 목표로 하지 않기 때문에, 대개 상기 공격을 부채널 공격이라 지칭한다.
상기 부채널 공격(SCA: side channel attacks)은 장치 내 암호 작성 시스템의 물리적 구현을 이용한다. 이러한 경우, 관찰되는 데이터와 비밀 암호키(secrete key)에 대한 가정 사이의 상관관계를 찾기 위해, 암호화 알고리즘의 실행 시 암호화 기능을 갖는 제어 장치가 관찰된다.
예컨대 맹가드(Mangard), 오스왈드(Oswald) 및 폽(Popp)의 저서 "전력 분석 공격(Power Analysis Attacks)"(Springer, 2007년)에 기술되어 있는 것과 같이, 수많은 부채널 공격이 공지되어 있다. 특히 차동 전력 분석(DPA: Differential Power Analysis)으로, AES의 비밀 암호키에 대한 성공적인 공격을 실제로 실행할 수 있다.
DPA의 경우, 암호화 계산 동안 마이크로프로세서의 전기 소모량이 기록되며, 전력 소모량의 추적정보는 통계 방법을 통해 가정들과 비교된다.
DPA를 방해하는 공지된 방법의 경우, 알고리즘 자체에 간섭이 이루어진다. 이러한 경우, 마스킹 시에, 무작위 변경된 오퍼랜더들을 이용한 연산이 실행된 다음, 그 결과로 난수 값은 다시 제외되는데, 이는 난수가 결과에 영향을 미치지 않는다는 점을 의미한다. 추가 가능성은 하이-로우(high-low) 전이를 상응하는 로두-하이 전이를 통해 보상하고자 시도하는 이른바 하이딩(Hiding)이다.
랜덤 비트 생성기들은 보안이 중요한 다양한 어플리케이션들을 위해 필요하다. 특히, AES 알고리즘을 이용하여 암호화 시에 연산들을 교환하거나(셔플링), 또는 추가의 이른바 더미 연산들을 삽입하기 위해 난수 값들을 이용할 수 있다. 그럼으로써 예컨대 DPA와 같은 부채널 공격들은 방해되는데, 그 이유는 공격할 연산이 무작위로 또 다른 시점들에서 실행되기 때문이다. DPA의 경우, 비밀 암호키를 식별할 수 있도록 하기 위해, 다수의 측정이 필요하며, 이는 공격을 어렵게 만든다.
그러나 지금까지의 랜덤 비트 생성기들은 그 자체로 DPA에 대해 보호되지 않는다. 공격자가 우선 DPA 공격을 통해 비밀 난수들을 식별한다면, 공격자는 상기 난수들의 정보를 이용하여 암호화 알고리즘 자체를 공격할 수 있다. 셔플링 시에, 그리고 더미 연산 시에, 난수들의 정보는 DPA 공격에 중요한 시점들의 결정을 가능하게 한다.
상기 배경에서, 청구범위 제1항에 따르는 랜덤 출력 비트 시퀀스를 생성하기 위한 방법과 청구범위 제7항에 따르는 랜덤 비트 생성기가 제안된다. 구현예들은 종속 청구항들과 명세서로부터 제시된다.
부채널 공격 및 특히 DPA에 대해 다소 면역성이 있는 공지된 랜덤 비트 생성기들은 매우 높은 회로 비용을 필요로 한다. 이에 대한 이유는, 상기 생성기들이, DPA 공격에 대해 저항력을 갖도록 하기 위해, 항상 전용 대책을 필요로 한다는 점에 있다. 이와 반대로, 본원에서 제안되는 해결방법은, DPA 공격에 대해 내재 면역성을 가지며 종래 기술에 비해 DPA 공격에 대해 견고하면서도 매우 적은 회로 비용을 갖는 결정론적 랜덤 비트 생성기(DRBG)를 제공한다.
또한, 제안되는 방법은, 모든 선택된 비트가 50%의 확률로 0 또는 1을 선택한다는 장점을 제공한다.
본 발명의 추가의 장점들 및 구현예들은 명세서와 첨부한 도면으로부터 제시된다.
자명한 사실로서, 상기에 언급되고 하기에서 재차 설명될 특징들은, 본 발명의 범위를 벗어나지 않으면서 각각 명시된 조합으로뿐만 아니라, 또 다른 조합으로 또는 독자적으로 이용될 수 있다.
도 1은 제안되는 랜덤 비트 생성기의 일 실시예를 도시한 도면이다.
도 2는 16개의 상태 기계에서의 4개 비트의 선택을 도시한 도면이다.
도 3은 4-비트-NLMISR을 도시한 도면이다.
도 4는 입력단의 일 실시예를 도시한 도면이다.
도 5는 입력 신호들의 가능한 조합을 도시한 도면이다.
도 6은 입력 신호들의 추가 가능한 조합을 도시한 도면이다.
도 7은 코드 환산기를 도시한 도면이다.
도 8은 코드 검사를 이용한 자가 검사를 도시한 도면이다.
도 9는 에러 신호의 생성을 도시한 도면이다.
본 발명은 실시예들에 따라서 도면에 개략적으로 도시되어 있으며, 하기에서 도면과 관련하여 상세하게 기술된다.
도 1에는, 전체적으로 도면 부호 100을 갖는 랜덤 비트 생성기의 일 실시예가 도시되어 있다. 상기 랜덤 비트 생성기는 64개까지의 입력 비트가 입력 신호로서 입력되는 입력단(102)을 포함한다. 상기 입력 비트들은 4개까지의 비트의 양으로, 경우에 따라서는 패리티 비트들의 삽입하에, 수정된 입력 비트들[d'(3) ...d'(0)]로 형성되며, 이 수정된 입력 비트들은 스위칭 비트(y)의 생성 후에 계속 전달된다.
바로 다음 단들은 동일한 유형으로 구성된 16개의 상태 기계(104)(state machine)이며, 이들 상태 기계 중 상기 도면에는 명확성을 위해 4개만이 도시되어 있다. 상기 상태 기계들(104) 각각은 4개의 상태 비트를 각각 포함하고, 상기 상태 기계들(104) 각각은 각각의 시점에 상태 비트들에 의해 정의되는 또 다른 상태를 취한다. 상태 비트가 4개인 경우, 각각의 상태 기계에 대해 24 = 16개의 가능한 상태가 생성되며, 이는 모든 가능한 상태가 16개의 상태 기계(104)에 의해 취해지는 것을 의미한다. 각각의 상태 기계는 항상 또 다른 상태를 취하기 때문에, 가능성의 개수는 16! = 16 * 15 * 14 * ... 2 * 1을 통해 계산되는 16의 순열이다.
또한, 각각의 클록마다 1만큼 값을 증가시키는 클록 카운터[(106) c(3:0)(clock counter)]가 제공된다. 상기 카운터 값들로부터, 수정된 입력 비트들과 함께, 카운터 비트들[z(0)...z(3)]이 생성되고, 이들 카운터 비트는 멀티플렉서들(102) 내에서 랜덤 비트의 선택을 위해 이용된다.
상태 기계들(104)은 서명 비트 시퀀스로서 4개의 서명 비트를 각각 결정론적으로 생성한다. 상기 서명 비트 시퀀스는 상태 기계(104)의 각각의 초기 상태뿐 아니라 입력단(102)에서 송출되는 신호들에 따라서도 결정된다. 상태 기계(104)는, (102에서 송출되는) 입력 신호 시퀀스가 사전 설정된 경우, 분명한 후속 상태를 취하고 각각의 상태는 분명한 이전 상태도 보유하도록 구성된다. 그로 인해, 입력단(102)에서 송출되는 모든 신호가 동일한 유형으로 모든 상태 기계(104)와 연결됨으로써, 각각의 시점에 모든 상태 기계(104)가 서로 상이한 상태를 취하는 점이 보장된다.
모든 상태 기계(104)의 서명 비트들은, 출력단(110) 내로 입력되는 이른바 서명을 생성한다. 이제부터, 상기 출력단(110)에서는, 유닛(108)의 카운터 값들에 의해, 서명의 4 * 16 = 64개의 상태 비트에서 4개 비트가 선택된다. 상기 4개 비트는, 모든 초기 상태 및 입력 비트뿐 아니라, 입력단(102) 내 패리티 비트들 및 스위칭 비트들(y)의 구성을 알고 있는 경우라면, 결정론적 출력 비트 시퀀스를 생성한다. 그러나 상태 기계들(104)의 초기 상태들의 시퀀스를 알지 못한다면, 출력 비트 시퀀스도 알지 못한다. 따라서 출력 비트 시퀀스는 랜덤으로 보인다.
그러므로, 도 1에 도시된 구현예의 경우, 서명 생성은, 예컨대 병행 동작되고 다양한 초기 상태들을 보유하는 NLMISR(비선형 다중 입력 시프트 레지스터; non-linear multiple input shift register)로서 구현되고 동일하게 구성되어 동일하게 구동되는 복수의 상태 기계(104)로부터 구성되는 것이 제안된다. DPA 공격을 방해하기 위해, 모든 상태 기계(104)는 동시에 스위칭되고 서로 상이한 초기 상태를 보유해야 한다.
도 1에 도시된 것과 같은 복수의 구조가 이용되고, 난수 값을 생성하기 위한 상기 구조들의 출력 비트들 또는 서명 비트들은, 각각의 입력 비트를 위해 여러 가지 상태 기계들의 상태 비트들이 이용되도록 서로 선형 연산되며, 개별 서명들은 해당 위치에서 회전을 통해 혼합된다는 점을 알고 있는 반면에, 여기서는 또 다른 접근법이 수행된다.
구현예에 따라, 본원의 방법은 원칙상 3개의 방법 단계를 포함한다.
1. 상태 기계들이 각각 서로 상이한 초기 상태들로 초기화(비밀 초기 상태)됨으로써, 입력 신호들의 시퀀스에서 서명을 생성하는 단계.
2. 상기 서명으로부터 랜덤 비트로서 소수의 비트(바람직하게는 4개)만을 선택하는 단계.
3. 입력 신호들에 따라서 비트들의 선택을 실행하는 단계.
도 2에는, 16개의 상태 기계에서, 예컨대 도 1에 도시된 상태 기계들(104)에서 4개 비트의 선택이 도시되어 있다. 상기 선택은 전형적으로 출력단(110)(도 1)에서 수행된다.
도면에는, 함께 서명을 생성하는 16개의 서명 비트 시퀀스(200)가 도시되어 있다. 이 경우, 각각의 상태 기계의 서명 비트 시퀀스(200)는 4개 비트를 포함한다. 카운터 값들[z(0)...z(3)]과 (선택된 시스템에서 16 중 1 멀티플렉서인) 4개의 멀티플렉서(202)에 의해, 랜덤 출력 비트 시퀀스의 4개 비트가 선택된다. 이 경우, 16개의 서명 비트 시퀀스(200)의 MSB들로부터 출력 비트 시퀀스의 MSB(최상위 비트)가 선택되고, 16개의 서명 비트 시퀀스(200)의 차상위 비트들로부터는 차상위 비트가 선택되며, 이는 이와 동일한 방식으로 계속된다.
앞서 알고 있는 것으로서 언급한, 서명 비트들의 선형 연산은, 서명들 내 개별 비트들의 상호 간 의존성을 감소시키는 것을 목적으로 한다. 그러나 동일한 효과는, 대개 서명의 모든 비트를 이용하지 않을 때, 달성할 수 있다. 결과-MSB로서 16개의 상태 기계(NLMISR, 이하 참조) 중 하나의 상태 기계의 MSB를 선택하고, 제2 비트는 마찬가지로 16개의 상태 기계(NLMISR)에서 선택하며, 이는 총 16개의 상태 기계(NLMISR)의 LSB에서도 선택되는 LSB에 이르기까지 계속된다면, 16개의 NLMISR을 포함한 구조에서, 도 2에 재현한 것처럼, 서로 완전하게 무관하게 0 및 1의 값을 취하는 총 4개 비트를 획득하게 된다. 각각의 비트는 항상 8개의 1과 8개의 0으로부터 선택되기 때문에, 상기 비트들 각각은 1뿐 아니라 0에 대해 50%의 확률을 갖는다.
상기 동일 확률은, 각각의 시점에 모든 상태 기계가 서로 상이한 상태를 취하고, 상태 기계가 16개인 경우, 상기 16개의 가능한 상태에 정확히 8회 1과 8회 0이 MSB로서 존재하는 것을 통해 보장된다. 동일한 분배는 상태 기계들의 모든 또 다른 비트 위치에도 적용된다.
복수의 상기 비트를 생성하기 위해, 일반적으로, 서로 상이한 입력 신호들로 수회 연속해서 4개 비트의 생성을 실행하거나, 대개 서로 상이한 시점들에서 서명으로부터 각각 4개 비트를 수회 취한다. 이를 위해 경우에 따라, 입력 비트의 개수가 그에 상응하게 증가된다.
비트들의 선택은 멀티플렉서들(202)을 통해 수행될 수 있다. 이러한 경우, 회전을 제외할 수 있다. 연속해서 더 많은 입력 비트를 이용한 입력 단계의 연장은 비록 랜덤 비트 생성의 입력 단계의 연장을 초래하기는 하지만, 그와 동시에, 그렇지 않을 경우 회전을 위해 필요로 할 수도 있는 64개까지의 추가 클록이 절약된다.
도 3에는, 상태 기계로서 이용되는 4-비트 NLMISR(비선형 다중 입력 서명 레지스터)(300)이 도시되어 있다.
도 3의 NLMISR 대신에, 임의의 사전 설정된 입력 시퀀스를 위해 후속 상태 및 이전 상태가 각각 분명하게 결정된다면, 임의의 상태 기계도 이용할 수 있다.
도 3의 회로의 전이 함수는 하기 도표에 명시되어 있다.
Figure pct00001
총 16개의 NLMISR의 입력 비트들은 각각 동일하다. 그러나 그 초기 상태는 서로 상이하다. 그에 따라, 전술한 전제 조건에 따라서, 각각의 NLMISR은 각각의 시점에 각각 다른 NLMISR과는 다른 상태를 보유한다.
도 4에는, 전체적으로 도면 부호 400으로 표시되는 입력단의 일 실시예가 재현되어 있다. 도면에는, 입력으로서 4개 비트 d(3:0) 및 4 * 홀수의 패리티(404)가 입력되는 멀티플렉서(402)가 도시되어 있다. 상기 패리티들은 각각 5회의 입력 클록 후에 삽입되며(화살표 406), 그 후에 바로 다음 입력 신호들로 계속 진행된다. 이로부터 모든 신호[d'(i)](블록 408)의 배타적 논리합으로서 출력(y)이 생성된다.
입력 신호 시퀀스에는, 도 4에 도시된 것처럼, 예컨대 각각 5회의 입력 클록 후에, 홀수의 패리티 비트가 각각의 비트 위치에서 삽입된다. 상기 신호들은 모든 NLMISR 상으로 동일한 유형으로 안내된다.
입력 신호들[d(3:0)]은 입력 비트들 중 각각 4개의 입력 비트이거나, 일반적으로, 도 5에 도시된 것처럼, 예컨대 입력 비트들 중 각각 2개의 입력 비트만, 그리고 추가로 클록 카운터 c의 2개 비트를 이용한다. 도면에는, 클록 카운터 c(502)와 입력 비트들(504)이 도시되어 있다. 각각의 클록과 함께, 입력 비트들은 2개의 위치만큼 우측 방향으로 이동된다.
또 다른 가능성은, 클록 카운터의 비트들과 입력 신호들을 연결하는 것에 있다(도 6 참조). 도면에는, 여기서도 클록 카운터 c(602)와 입력 비트들(604)이 도시되어 있다.
수정된 입력 신호들[d'(3:0)]로부터, 하기와 같이 신호들[y(3)...y(0)]이 생성된다.
Figure pct00002
상기 신호들[y(i)]은 카운터 값들[z(i)]의 생성을 위해 이용된다.
Figure pct00003
또한, 구조는 계속해서, 일측 NLMISR이 타측 NLMISR과 동일한 상태를 보유하지 않는지의 관점에서 검사될 수 있다. 이를 위해, 이른바 코드 검사가 실행된다. 따라서, 전술한 조건이 일치하지 않는다면, 난수 값이 릴리스되지 않기 때문에, 구조는 에러 공격/스파이크 공격에 대해 견고해진다. 또한, 이로써 입력 단계의 종료 후에 비로소 구조의 자가 검사를 실행할 수 있고, 검사 후에 비로소 생성된 난수 값을 릴리스할 수 있다.
도 7에는, 16개의 입력 비트(d0 ... d15)를 위한 이른바 가중치 평균화 회로(코드 환산기)(WAC_16)가 도시되어 있다. 도면에는, 각각 4개 비트를 포함한 16개의 상태 기계(700)가 분명하게 도시되어 있으며, 그 중 상기 도면에는 5개만이 재현되어 있다. 그 밖에도, 도 7에 따라서, 8개의 전가산기(702)(이 중 3개만이 도시되어 있음)와 하나의 부정 게이트(704)도 제공된다. 파선의 테두리로는 코드 환산기(WAC)(706)가 도시되어 있다.
상기 회로에서 입력 비트들로서 16개의 상태 기계의 MSB들이 이용된다. 16개의 상태 기계가 모두 다른 상태를 보유한다면, 16개의 입력 비트 내에 정확히 8개의 1이 포함된다(16 중 8 코드). 종래 기술에 따르는 문헌(Stroele, Tarnick)에서 지시되는 것처럼, 8개의 출력단에서, 정확히 입력이 16 중 8 코드였고 환산기 회로가 에러를 포함하지 않는다면, 8 중 4 코드가 생성된다. 입력(x0)은, 에러가 존재하지 않는다면, x1 = /x0인 조건의 출력(x1)을 생성한다. 자가 검사의 특성을 보장하기 위해, x0은 빈번히 전환되어야 하고, d0 ... d15도 일정하지 않아야 한다.
도 8에는, 3단 코드 환산기가 도시되어 있다. 도면에는, 여기서도 각각 4개 비트를 포함한 상태 기계들(800)과, 상응하는 개수의 4:1 멀티플렉서(802)와, 제1 WAC(804)(WAC_16)와, 제2 WAC(806)(WAC_8)와, 제3 WAC(808)(WAC_4)와, 카운터(810)가 도시되어 있다.
이러한 경우, 카운터 비트들(e0 및 e1)을 통해 모든 4:1 멀티플렉서(802)는, 비트(gi)로서 상태 기계(800)의 동일한 위치 비트를 각각 선택하도록, 동일한 유형으로 구동된다. 그에 따라, 상기 2개의 카운터 비트의 각각 4개의 상태에 따라서, 각각 결정된 비트가, 연결된 16개의 상태 기계(800) 중 각각 하나의 상태 기계에서 선택된 다음, 상기 결정된 비트는 WAC_16(804) 내에서 처리된다. 상기 입력들은 에러가 없는 경우 16 중 8 코드에 상응해야 한다. WAC_16(804)의 8개의 출력단(w'0...w'7)은 8 중 4 코드를 생성하면서 WAC_8(806)의 입력단들과 연결된다. WAC_8(806)은 WAC_16(804)과 유사하게 구성되지만, 절반만의 전가산기를 보유하며, 최종 합 비트는 반전되어 출력단(x3) 상에 접속된다. 그 다음 계속해서 제공되는 WAC_4(808)는 2개의 전가산기와, 전가산기들의 캐리아웃(Carry-Out)이 접속되는 2개의 출력단(x6 및 x7)만을 포함한다. 추가 출력단(x5)은 제2 전가산기의 반전된 합 비트이다.
도 7에는, WAC-16 구조가 어떻게 구성되는지가 도시되어 있다. 상응하는 WAC-8 및 WAC-4 구조들은 그에 상응하게 구성되지만, 각각 그 크기가 반일 뿐이며, 다시 말하면 각각 절반 개수의 가산기를 이용한다.
이러한 경우, e2 ... e0은 각각의 코드 검사(64개 비트 중 각각 16개 비트가 4개 단계에서 동시에 검사됨)와 함께 연속해서 계수되는 이벤트 카운터이다.
이어서, 듀얼-레일 신호들[xi, xi+1(i = 0, 2, 4, 6)]은 도 9에 따르는 회로 내에서, 2-레일 코드 검사기들(TRC)에 의해 에러 신호로 연산된다. 신호 "Error"는, 코드가 일치하지 않거나, 검사기 자체 내에 에러가 존재하는 것을 지시한다(자가 검사).
이를 위해, 도면에는 제1 TRC(902)와, 제2 TRC(904)와, 제3 TRC(906)가 도시되어 있다. 그 밖에도 등가 소자(908)와 비등가 소자(910)도 도시되어 있다.
코드 검사기의 자가 검사 특성을 확보하기 위해, 하나 이상의 코드 검사에 대해 3-비트 이벤트 카운터의 모든 할당을 이용해야만 한다. 이는, 일반적으로, 이벤트 카운터가 다시 재설정되기 전에, 16-비트 코드 검사를 8회, 그리고 그에 따라 64비트에 대한 코드 검사를 2회 실행해야만 하는 것을 의미한다.
코드 검사기를 포함한 전체 회로는 약 1,000 게이트 등가물의 회로 비용을 필요로 한다. 이는 동일한 목적을 위한 공지된 회로들이 필요로 하는 것보다 훨씬 더 적은 것이다.
64비트 시드(Seed)(이용되는 입력 신호들)로부터 4비트 난수 값을 획득하기 위해서는, 패리티 생성 및 코드 검사를 포함하여 21개의 클록(클록당 4비트 입력 신호) 또는 40개의 클록(클록당 2비트 입력 신호가 처리됨)이 필요하다. 다수의 4비트를 위해, 대개 더 이상 하드웨어 비용을 지출하길 원하지 않는다면, 그에 상응하는 다수의 클록이 필요하다(병렬 구조). 시드로서 보다 적은 수의 입력 비트를 이용한다면, 클록의 수도 그에 상응하게 줄어들거나, 시드를 적어도 부분적으로 수회 서로 상이한 시퀀스로 입력할 수도 있다. 이는 특히, 클록 카운터의 카운터 값들이 상태 기계들의 상태 생성에 함께 관여할 때 합당하다.
또한, 일반적으로 그 시퀀스만을 변경한다면, 후속하는 4비트 상태 값들에 대해 동일한 64비트 시드를 이용할 수도 있다. 이를 위해, 대개 상태 기계들을 각각 비밀 초깃값으로 재설정할 수 있거나, 앞서 생성된 상태를 계속하여 이용할 수도 있다.

Claims (8)

  1. 각각 동일하게 구성되는 2n개의 상태 기계(104, 200, 700, 800)의 시스템이 이용되는, 랜덤 출력 비트 시퀀스를 생성하기 위한 방법으로서, 상태 기계들(104, 200, 700, 800)은 n개의 상태 비트를 각각 포함하고, 각각의 상태 기계(104, 200, 700, 800)는 항상 시스템의 다른 상태 기계들(104, 200, 700, 800)과는 다른 상태를 취하고, 상태 기계들(104, 200, 700, 800)에는 입력 측에서 각각 동일한 입력 신호가 공급되어 상태 기계들은 각각 자신의 상태에 따라서, 함께 서명 비트 시퀀스를 형성하는 n개의 서명 비트를 생성하며, 랜덤 출력 비트 시퀀스는 상기 시스템의 모든 상태 기계(104, 200, 700, 800)의 서명 비트 시퀀스들에서 개별 비트들의 선택을 통해 생성되는, 랜덤 출력 비트 시퀀스의 생성 방법.
  2. 제1항에 있어서, 상기 선택은 입력 신호에 따라서 수행되는, 랜덤 출력 비트 시퀀스의 생성 방법.
  3. 제1항 또는 제2항에 있어서, 상기 선택은 멀티플렉서들(202)을 통해 수행되는, 랜덤 출력 비트 시퀀스의 생성 방법.
  4. 제1항 또는 제2항에 있어서, 모든 상태 기계(104, 200, 700, 800)는 동시에 스위칭되는, 랜덤 출력 비트 시퀀스의 생성 방법.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서, 출력 비트 시퀀스는 n개 비트를 포함하는, 랜덤 출력 비트 시퀀스의 생성 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상태 기계들(104, 200, 700, 800)의 할당이 코드 검사기에 의해 검사되는, 랜덤 출력 비트 시퀀스의 생성 방법.
  7. 각각 동일하게 구성된 2n개의 상태 기계(104, 200, 700, 800)의 시스템을 포함하는, 랜덤 출력 비트 시퀀스를 생성하기 위한 랜덤 비트 생성기로서, 상태 기계들(104, 200, 700, 800)은 각각 n개의 상태 비트를 포함하고, 각각의 상태 기계(104, 200, 700, 800)는 항상 시스템의 다른 상태 기계들(104, 200, 700, 800)과는 다른 상태를 취하고, 상태 기계들(104, 200, 700, 800)에는 입력 측에서 입력 신호가 공급되어 상태 기계들이 각각 자신의 상태에 따라, 함께 서명 비트 시퀀스를 형성하는 n개의 서명 비트를 생성하며, 랜덤 출력 비트 시퀀스는 상기 시스템의 모든 상태 기계(104, 200, 700, 800)의 서명 비트 시퀀스들에서 개별 비트들의 선택을 통해 생성되는, 랜덤 출력 비트 시퀀스를 생성하기 위한 랜덤 비트 생성기.
  8. 제7항에 있어서, 코드 검사기가 제공되는, 랜덤 출력 비트 시퀀스를 생성하기 위한 랜덤 비트 생성기.
KR1020137034958A 2011-07-05 2012-06-19 랜덤 출력 비트 시퀀스의 생성 방법 KR20140037153A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102011078643A DE102011078643A1 (de) 2011-07-05 2011-07-05 Verfahren zum Erzeugen einer zufälligen Ausgangsbitfolge
DE102011078643.0 2011-07-05
PCT/EP2012/061708 WO2013004490A1 (de) 2011-07-05 2012-06-19 Verfahren zum erzeugen einer zufälligen ausgangsbitfolge

Publications (1)

Publication Number Publication Date
KR20140037153A true KR20140037153A (ko) 2014-03-26

Family

ID=46384369

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137034958A KR20140037153A (ko) 2011-07-05 2012-06-19 랜덤 출력 비트 시퀀스의 생성 방법

Country Status (5)

Country Link
US (1) US9509497B2 (ko)
KR (1) KR20140037153A (ko)
CN (1) CN103636159B (ko)
DE (1) DE102011078643A1 (ko)
WO (1) WO2013004490A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013205168A1 (de) * 2013-03-22 2014-09-25 Robert Bosch Gmbh Verfahren zum Erzeugen einer zufälligen Ausgangsbitfolge
US9423820B2 (en) * 2013-07-31 2016-08-23 Fairchild Semiconductor Corporation Complimentary bit slicing side channel attack defense
CN106548806B (zh) * 2016-10-13 2019-05-24 宁波大学 一种能够防御dpa攻击的移位寄存器
US11061997B2 (en) * 2017-08-03 2021-07-13 Regents Of The University Of Minnesota Dynamic functional obfuscation
US11017128B2 (en) * 2018-05-22 2021-05-25 Seagate Technology Llc Data security using bit transposition during memory accesses

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4780814A (en) * 1987-02-09 1988-10-25 Intel Corporation Global serial channel for microcontroller
IL137086A (en) * 2000-06-29 2004-06-20 Enavis Networks Ltd Method and system for fast synchronization of multiframe structures using periodic signatures
US20020051537A1 (en) * 2000-09-13 2002-05-02 Rogaway Phillip W. Method and apparatus for realizing a parallelizable variable-input-length pseudorandom function
CN100395732C (zh) * 2006-03-31 2008-06-18 清华大学 用异步电路提高sram工艺fpga设计安全的系统
DE102009027086A1 (de) * 2009-06-23 2010-12-30 Robert Bosch Gmbh Vorrichtung und Verfahren zur Bildung einer Signatur

Also Published As

Publication number Publication date
WO2013004490A1 (de) 2013-01-10
DE102011078643A1 (de) 2013-01-10
US20140219444A1 (en) 2014-08-07
CN103636159A (zh) 2014-03-12
CN103636159B (zh) 2017-05-03
US9509497B2 (en) 2016-11-29

Similar Documents

Publication Publication Date Title
EP3143720B1 (en) Differential power analysis countermeasures
US7907722B2 (en) Protection against power analysis attacks
US20140230055A1 (en) Method for checking an m out of n code
KR20170098729A (ko) 부채널 분석에 대한 회로의 저항력을 테스트하는 방법
KR20180002066A (ko) 부채널 분석에 대응하여 대입 연산을 보호하는 방법
Shen et al. SAT-based bit-flipping attack on logic encryptions
US10678707B2 (en) Data processing device and method for cryptographic processing of data
US9325494B2 (en) Method for generating a bit vector
EP3091470B1 (en) Apparatus and method for processing digital value
KR20140037153A (ko) 랜덤 출력 비트 시퀀스의 생성 방법
Backlund et al. Secret key recovery attack on masked and shuffled implementations of CRYSTALS-Kyber and Saber
Tunstall Smart card security
AL-khatib et al. Acoustic lightweight pseudo random number generator based on cryptographically secure LFSR
US20110176674A1 (en) Countermeasure method and device for protecting data circulating in an electronic component
KR20140037155A (ko) 코드 보안 검사를 위한 방법 및 회로 장치
CN118054908A (zh) 用于在质询-响应轮次中使用的通信装置及对应操作方法
Beckers et al. Fault analysis of the chacha and salsa families of stream ciphers
CN116210198A (zh) 用于硬件操作隐藏的电磁和功率噪声注入
Rahaman et al. Secure testable S-box architecture for cryptographic hardware implementation
Pettenghi et al. Method for designing multi-channel RNS architectures to prevent power analysis SCA
Tunstall Secure cryptographic algorithm implementation on embedded platforms
Wang et al. On the hardware design for DES cipher in tamper resistant devices against differential fault analysis
Gandolfi-Villegas et al. Dynamic Runtime Methods to Enhance Private Key Blinding
EP3264666A1 (en) A protection method and device against a side-channel analysis
Medwed Protecting security-aware devices against implementation attacks

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right