KR101680918B1 - 특히 고차의 관측 공격에 대해 보호되는 암호화 회로 - Google Patents

특히 고차의 관측 공격에 대해 보호되는 암호화 회로 Download PDF

Info

Publication number
KR101680918B1
KR101680918B1 KR1020117016903A KR20117016903A KR101680918B1 KR 101680918 B1 KR101680918 B1 KR 101680918B1 KR 1020117016903 A KR1020117016903 A KR 1020117016903A KR 20117016903 A KR20117016903 A KR 20117016903A KR 101680918 B1 KR101680918 B1 KR 101680918B1
Authority
KR
South Korea
Prior art keywords
mask
register
box
sub
variable
Prior art date
Application number
KR1020117016903A
Other languages
English (en)
Other versions
KR20120026022A (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 KR20120026022A publication Critical patent/KR20120026022A/ko
Application granted granted Critical
Publication of KR101680918B1 publication Critical patent/KR101680918B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • 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/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 관측 공격에 대해 보호되는 암호화 회로에 관한 것이다.
암호화 회로는 마스크 (m) 에 의해 마스킹된 변수 (x) 를 제공하는 적어도 하나의 레지스터 R (22) 을 포함하고, 그 마스킹된 변수는 제 1 치환 박스 S (1) 에 의해 순환 방식으로 암호화된다. 또한, 그 암호화 회로는 m 의 변환인 마스크 (mt) 를 각각의 사이클에서 전달하는 마스크 레지스터 M (23) 을 포함하고, 마스크 (m) 는 제 2 치환 박스 S' (21) 에 의해 암호화되기 전에 mt 로부터 추출되며, 이 제 2 치환 박스 S' (21) 로부터의 출력으로 획득된 새로운 마스크 (m') 는 마스크 레지스터 M (23) 에 저장되기 전에 마스크 (m't) 로 변환된다.
레지스터 R 및 M 의 활성도의 모델에 따라 임의의 고차 공격을 감소시키거나 또는 실제로 제거하는 것을 가능하게 하는 전단사 또는 합성 법칙으로 변환이 이루어진다.
특히, 본 발명은 설비에 대한 고차의 관측 공격에 대해 마스킹에 기초한 암호화 회로의 보호에 적용한다.

Description

특히 고차의 관측 공격에 대해 보호되는 암호화 회로{CRYPTOGRAPHY CIRCUIT PROTECTED AGAINST OBSERVATION ATTACKS, IN PARTICULAR OF A HIGH ORDER}
본 발명은 관측 공격에 대해 보호되는 암호화 회로에 관한 것이다. 특히, 본 발명은 설비에 대한 고차의 관측 공격에 대해 마스킹에 기초한 암호화 회로의 보호에 적용한다.
암호화의 목적은 특히:
- 암호화 및 그 듀얼 동작인 암호해독에 의한 정보의 아이템의 기밀성;
- 또는 서명 및 검증 동작에 의한 서명 및 그 서명의 검증 동작에 의한 정보의 아이템의 신뢰성만을 보호하는 것이다.
암호화는 보안 시스템에 이르게 하기 위해 입증된 수학적 절차를 이용한다. 예를 들어, 암호화는 공개된 정보의 현재 상태에서, 모든 가능한 키를 시도하는 것에 대응하는 포괄적 공격보다 상당히 빠른 어떤 공격의 절차도 존재하지 않는다는 것이 증명될 때 보안되는 것으로 가정된다.
일반적으로, 암호화 절차는 시스템의 보안을 위해 필수적인 복잡한 계산을 수반한다. 이러한 복잡도는 컴퓨터에 임의의 특정한 문제를 부여하지는 않지만, 일반적으로 저비용 "8비트" 마이크로프로세서에 의해 구동되는, 높은 계산 능력을 갖지 않는 디바이스의 경우에는 심각한 결점이다. 그 결과는 몇가지 종류가 있을 수도 있는데, 이를테면:
- 적절한 이용에 대한 장애, 통상적인 예로는 청구서에 서명하는데 수 분이 소요되는 은행 카드일 것이고;
- 서비스의 거부, 통상적인 예로는 전달된 정보의 스루풋을 따라가는 것이 가능하지 않은 페이 퍼 뷰 (pay-per-view) 텔레비전 디코더일 것이다.
시스템의 가격을 상승시키지 않으면서 이러한 곤란성을 완화하기 위하여, 암호화에 전용되는 코프로세서 (coprocessor) 의 형태로, 사용된 디바이스의 중앙 유닛을 지원하는 시스템을 추가하는 것이 관례적이다.
그러나, 중앙 유닛에 의해 구현되든지 또는 특수화된 코프로세서에 의해 구현되든지, 암호화 알고리즘은 일반적으로 전자 타입의 물리적 디바이스에 의해 구현된다. 이들 물리적 디바이스는 전기 기본 법칙의 고유한 특성에 관련된 불가피한 결함을 나타낸다.
따라서, 수학적 관점에서 보안되는 암호화 시스템은 그 알고리즘을 구현하는 물리적 시스템의 고유한 결함을 이용함으로써 공격받을 수도 있어서:
- 계산의 지속기간은 데이터의 값, 특히 속도-최적화된 소프트웨어 시스템에 의존할 수도 있고, 이것은, P.Kocher 등에 의한 문헌 "Timing Attack on Implementation of Diffie-Hellman, RSA, DSS and other systems, In Proceedings of CRYPTO'96, volume 1109 of LNCS, pages 104-113, Springer-Verlag, 1996" 에 특히 설명된 "타이밍 공격" 타입의 공격을 유발하여, 이들 공격이 특정한 경우 실행 시간의 단순한 측정값에 기초하여 모든 비밀 키를 검색하는 것을 가능하게 하고;
- 일시적 소모 또한 데이터에 의존할 수도 있고, 이것은 다음과 같은 일련의 공격을 유발하며:
- Thomas S. Messerges 등에 의한 문헌 "Investigations of Power Analysis Attacks on Smartcards, In USENIX - Smartcard'99, pages 151-162, May 10-11, 1999, Chicago USA" 에 특히 설명된 SPA (Simple Power Analysis) 공격, 이 공격은 암호화 동작 동안 측정된 전기 소모의 측정값에 기초하여 중앙 유닛에 의해 실행되는 동작들을 구별하려고 시도됨;
- S.Guilley 등에 의한 문헌 "Differential Power Analysis Model and some Results, In Proceedings of WCC/CARDIS, pages 127-142, Aug 2004, Toulouse, France" 에 특히 설명된 DPA (Differential Power Analysis) 공격, 이 공격은 키의 제한된 부분에 관해 행해진 가정을 유효화 또는 무효화하기 위하여, 랜덤한 메시지들에 대해 고정 키 (constant key) 를 갖는 암호화 동작 동안 수행된 다수의 전기 소모 측정값에 대한 통계적 동작을 이용함;
- 도체 내에 흐르는 임의의 전류가 전자기장을 발생시키고, 그 측정값은 전기 소모와 연관된 공격과 원칙적으로 동일한 EMA (ElectroMagnetic Attack) 타입의 공격을 유발할 수 있고;
- 특정한 공격은 시스템의 비밀을 검색하기 위하여 오류 결과를 이용하도록 시스템의 동작을 고의적으로 방해하며, 이들 공격은 오류 주입 공격이라는 용어로 공지되어 있다.
암호화 알고리즘을 구현하고, 디바이스의 메모리 내에 유지되는 비밀과 관련된 정보를 누설시키기 쉬운 물리 디바이스의 임의의 결함은 은닉 채널로 지칭된다.
은닉 채널 상의 이들 공격에 대한 보호는 특히:
- 이 경우에는 비밀과 독립적인 누설 상수를 제공하는 것을 수반하는 은폐;
- 예측불가능하여 이용불가능한, 누설 랜덤을 제공하는 것을 수반하는 마스킹
에 기초하여 제안되었다.
그러나, 이들 두가지 기술은 정보를 검색하는 것을 목표로 하는 공격의 곤란성을 증가시킬 수는 있지만, 실행 결함으로부터 이득을 얻을 수 있는 공격을 받기 쉽다. 잠재적이거나 취약성이 입증된 다수의 예들이 존재하는데, 예를 들어:
- (WDDL 과 같은) 차동 로직에 기초한 은폐는 계산의 페이즈들 중 하나의 페이즈와 다른 페이즈인, 평가 페이즈와 프리차지 페이즈 사이에 누적되는 결합 지연의 차이에 대한 공격을 받기 쉬울 수도 있고;
- 마스킹은 HO-DPA 라고 지칭되는 고차 공격에 민감할 수도 있다.
특히, 본 발명의 목적은 고차 관측 공격에 대한 효율적인 보호를 허용하는 것이다. 이 목적을 위해, 본 발명의 대상은 마스크 변수 (m) 에 의해 마스킹된 변수 (x) 를 제공하는 적어도 하나의 레지스터 R 을 포함하는 암호화 회로로서, 상기 마스킹된 변수는 제 1 치환 박스 S 에 의해 순환 방식으로 암호화되고, 상기 암호화 회로는 변형 함수에 의해 변환된 마스크 (m) 와 동일한 변환된 마스크 (mt) 를 각각의 사이클에서 전달하는 마스크 레지스터 M 을 포함하고, 이 마스크 (m) 는 제 2 치환 박스 S' 에 의해 암호화되며, 이 박스 S' 로부터의 출력으로 획득된 새로운 마스크 (m') 는 변수를 마스킹하는데 이용되는 것을 특징으로 한다.
새로운 변환된 마스크 (m't) 는 예를 들어, 제 2 치환 박스 S' 로부터의 출력에 대한 역 변형된 후에 마스크 레지스터 M 으로 도입된다.
제 1 구현의 가능 모드에서, 그 변형은 변환된 마스크 (mt) 가 마스크 레지스터 M 에 저장되도록 하는 전단사 (B) 일 수도 있고, 제 2 치환 박스에 인가된 마스크 (m) 는 B(mt) 와 동일하고, 마스크 레지스터 M 에 저장될 새로운 값은 B-1(m') 이며, m' 는 제 2 치환 박스 S' (21) 로부터의 출력이다.
전단사 (B) 는 예를 들어, 마스크 (m) 의 해밍 웨이트가 전단사 B(m) 하의 마스크 (m) 의 상 (image) 의 해밍 웨이트와 항상 동일하지는 않도록 한다.
제 2 구현의 가능 모드에서, 마스크 (m) 의 변형은 m = m1θm2 가 되도록 하는 2개의 서브마스크 (m1 및 m2) 로의 분해에 의해 수행될 수도 있고, 여기서 θ 는 그룹 합성 법칙이고, 제 1 서브마스크 (m1) 는 제 1 마스크 레지스터 M1 에 저장되고, 제 2 서브마스크 (m2) 는 제 2 마스크 레지스터 M2 에 저장되며, 제 1 마스크 레지스터 M1 에 저장될 새로운 값은 m'1 = m'θ-1m'2 이고, 저장될 새로운 값은 m'2 이며, m' 는 제 2 치환 박스 S' 로부터의 출력에 대한 마스크의 값이다.
그 그룹 합성 법칙은 예를 들어, XOR "배타적 논리합" 연산, 덧셈 연산, 곱셈 연산 또는 s=a*b + (a+b)/2 타입의 연산이고, * 는 곱셈이고 + 는 덧셈이다.
그 그룹 합성 법칙은 예를 들어, 하나의 사이클에서 다른 사이클로의 2개의 연속적인 서브마스크들 (m2) 사이의 해밍 거리 (Δm2) 를 갖고, 그 해밍 거리 (Δm2) 는 제로가 아니다.
서브마스크 (m1, m2) 는 짝수의 비트를 갖고, 서브마스크 (m1, m2) 에 기초하여 마스크 (m) 를 획득하는 것을 가능하게 하는 그룹 합성 법칙 (α) 은 예를 들어:
- 2비트의 그룹당 Δm2 = 1;
- m2MSB = 1 인 경우
Figure 112011055707448-pct00001
또는 m2MSB = 0 인 경우 m = m1
을 만족하며,
m2MSB, 및 m2LSB 는 각각 서브마스크 (m2) 의 고차 비트 및 저차 비트이다.
암호화 회로는 예를 들어 랜덤값 발생기를 포함하고, 상기 랜덤값 발생기는 제 2 서브마스크 (m'2) 의 값을 전달한다.
제 1 마스크 레지스터 M1 로부터 발생하는 이 서브마스크 (m1) 는 사이클의 종단에서 제 2 마스크 레지스터 M2 에 저장될 수도 있고, 제 1 마스크 레지스터 M1 은 새로운 완전한 마스크 m' = m'1θm'2 를 재구성하도록 제 1 마스크 레지스터 M1 의 부분에 대해 새로운 마스크 (m'1) 를 수신한다.
암호화 알고리즘은 DES 타입이고, 데이터 (x, m) 의 경로는 좌측 및 우측의 2개의 부분으로 분리되고, 상기 암호화 회로는 예를 들어, 좌측 마스크 레지스터 ML 및 우측 마스크 레지스터 MR 이외에도 제 3 마스크 레지스터 M 을 포함하고, 우측 마스크 레지스터 MR 은 우측 서브마스크 (mr1) 를 포함하고, 좌측 마스크 레지스터 ML 은 좌측 서브마스크 (ml2) 를 포함하고, 제 3 마스크 레지스터 M 은 서브마스크 (ml1) 와 동일한 서브마스크 (mr2) 를 포함하며, 우측 마스크 (mr) 및 좌측 마스크 (ml) 의 유효값은:
-
Figure 112011055707448-pct00002
-
Figure 112011055707448-pct00003
이도록 한다.
제 2 치환 박스 S' 는 예를 들어, 제 1 치환 박스 S 와 동일한 2개의 박스 및 2개의 XOR 게이트를 포함하고, 2개의 박스의 출력부들은, 출력이 새로운 마스크 (m') 를 전달하는 XOR 게이트에 접속되고, 마스킹된 변수 (
Figure 112011055707448-pct00004
) 는 다른 입력부가 마스크 (m) 를 수신하는 다른 XOR 게이트 및 박스에 진입하고, 이 게이트의 출력은 다른 박스에 진입한다.
ROM 메모리는 예를 들어, XOR 게이트의 로직 및 박스의 치환을 수행한다.
본 발명의 다른 특성 및 이점은, 첨부된 도면과 관련하여 제공되는 다음의 설명의 도움으로 명백해질 것이다.
도 1a 및 도 1b 는 치환 박스의 마스킹의 원리의 예시이다.
도 2 는 치환 박스의 레벨에서의 마스킹의 예시이다.
도 3 은 레지스터의 변수 (x) 의 2개의 연속적인 워드 사이의 해밍 거리의 다양한 값에 대한 레지스터의 출력에서의 활성도 분포의 일 예의 제시이다.
도 4 는 본 발명에 따른 회로에서의 마스크의 경로의 가능한 변형의 제 1 모드의 예시이다.
도 5 는 이전의 모드에 대응하는 활성도 분포의 제시이다.
도 6 은 본 발명에 따른 회로에서의 마스크의 경로의 제 2 가능 실시형태의 예시이다.
도 7 은 이전의 모드에 대응하는 활성도 분포의 제시이다.
도 8 은 랜덤 발생기의 이용 없이 마스크의 분해에 의한 변형의 일 예이다.
도 9 는 DES 알고리즘의 이용의 경우 본 발명에 따른 마스킹의 일 예시적 실현이다.
도 10 은 본 발명에 따른 회로에 이용된 그룹 합성 법칙의 일 예시적 실현이다.
도 11a, 도 11b 및 도 11c 는 본 발명에 따른 회로에 이용된 제 2 치환 박스의 예시적 실시형태이다.
도 1a 및 도 1b 는 고정 마스크 (m) 를 갖는, 일반적으로 "S-box" 라고 지칭되는 치환 박스 (1) 의 마스킹의 원리를 예시한 것이다. S-box 는 메시지에 비선형 함수를 제공하는 것으로 그 목적은 특히 S-box 로부터의 출력에 대해 엔트로피를 특성으로 하는 메시지를 제공하는 것이다.
도 1a 에서, 데이터 (x) 는 S-box (1) 로의 입력에서 암호화 키 (k) 와 결합된다. 이 예에서, 데이터 및 키는, xor 라고도 지칭되고 이하에서는
Figure 112015004945608-pct00005
로 표시되는 "배타적 논리합" 논리 연산에 의해 결합된다. 그에 의해, 도 1a 의 경우, 예를 들어 n비트로 코딩된 메시지 (
Figure 112015004945608-pct00006
) 가 S-box 로 입력된다. 대응하는 출력 메시지는
Figure 112015004945608-pct00007
이다.
도 1b 는 고정 마스크 (m) 를 갖는 S-box 의 마스킹을 나타낸 것이다. 마스킹 기술은 비밀에 의존적인 민감한 내부 변수를 마스크 (m) 에 의해 가블링 (garbling) 하는 것에 의존한다. 도 1a 및 도 1b 의 예에서, x 는 이러한 변수이다. m 이 공격자에 의해 예측될 수 없다고 가정하면, x 에 대한 직접 공격의 구조 내에서 누설값은 이용불가능하다. 변수 (x) 가 더 이상 그 자체로 존재하지는 않지만, 신호의 쌍
Figure 112011055707448-pct00008
을 통해 재구성될 수도 있으며, 여기서
Figure 112011055707448-pct00009
은 마스킹되는 변수이고 θ 는 특히 논리적 또는 산술적일 수도 있는 그룹 연산자이다. 도 1b 의 예에서, 마스킹은 xor 함수, 즉,
Figure 112011055707448-pct00010
를 이용한다.
이러한 타입의 마스킹은 특히 DES (Data Encryption Standard) 및 AES (Advanced Encryption Standard) 알고리즘의 보호에 적합하고, 여기서 선형 연산은 이진체에서 수행된다. 일반적으로 비트, 워드, 암호화 함수의 벡터인 내부 변수에 마스크가 적용될 수도 있다. 워드 레벨에서의 마스킹은 소프트웨어 구현 및 하드웨어 구현 양자에 적용가능하게 제공된다. 마스킹된 변수가 적용되는 함수 f 가 그 그룹 법칙의 함수와 같이 선형일 때, 즉,
Figure 112011055707448-pct00011
일 때, 마스킹의 실현은 단순하다.
f(x) 의 값은 f(xθm) 및 m 에 기초하여 재구성될 수도 있다. 따라서, f(x) 는 변수 (x) 로부터 나오는 정보의 누설을 방지하기 위해 알고리즘의 종단에서 바로 추출된다. xθm 및 m 에 대한 계산은 x 와 상관관계가 없어서 (decorrelated), 어떠한 비밀의 직접 누설도 존재하지 않는다.
함수 f 가 비선형인 경우, f(x) 가 f(xθm) 및 f(m) 에 기초하여 수학적으로 재생성될 수 없기 때문에 마스킹 메커니즘은 더욱 복잡해진다. 대칭적인 암호화 알고리즘에서, 비선형 부분은 치환 박스 또는 S-box, 예를 들어 도 1a 및 도 1b 의 S-box (1) 에 대응한다. 통상적인 소프트웨어 기술은 S-box 의 비선형 함수를 생성하는 ROM 메모리를 이용하고, 이 함수는 다음과 같이 Sm 으로 표시되며:
Figure 112011055707448-pct00012
S 는 마스킹하기 전의 S-box 의 함수이다.
그 결과, 메모리의 사이즈는 S 에 대한 2n 으로부터 Sm 에 대한 22n 으로 되고, n 은 마스크의 비트수이다. 도 1a 및 도 1b 는 이러한 변화를 예시한 것이다. 이 실현은 암호화 알고리즘의 반복이 클록 사이클에서 수행되는 하드웨어 설비에 안전하지 않다. 이 경우, 레지스터의 레벨에서의 이송은 데이터를 자동으로 역마스킹한다. 실제로, 연산자
Figure 112011055707448-pct00013
를 예로서 고려하면, 이송은 다음의 관계:
Figure 112011055707448-pct00014
에 의해 설명될 수도 있다.
이 관계의
Figure 112011055707448-pct00015
이라는 용어는 S-box Sm 으로의 입력에 대한 초기값이고,
Figure 112011055707448-pct00016
이라는 용어는 S-box 로부터의 출력에 대한 최종값이며, 이들 두 용어 사이의 연산자
Figure 112011055707448-pct00017
는 전이를 나타낸다. 상기 관계는 전이의 결과
Figure 112011055707448-pct00018
가 마스크 (m) 와는 독립적이라는 것을 실제로 나타낸다.
J.Blomer 등에 의한 문헌 "Provably Secure Masking of AES, In LNCS, editor, Proceedings of SAC'04, volume 3357, pages 69-83, Springer, August 2004, Waterloo, Canada" 에 특히 나타낸 바와 같이, 마스킹에 의해 산출된 효과는 내부 변수 (x) 만을 고려하는 1차 공격에 대해 입증될 수도 있다. 그러나, 마스킹 회로로부터 나오는 정보 누설은 2차 공격, 또는 실제로 훨씬 고차의 공격에 영향을 받기 쉬울 수도 있다.
2차 공격은 2개의 변수 (x1 및 x2) 를 고려한다. 예를 들어, x1 및 x2 가 동일한 마스크에 의해 마스킹되는 경우, 2차 공격은
Figure 112011055707448-pct00019
이라는 사실을 이용한다.
M.Akkar 등에 의한 문헌 "A generic protection against High-oder differential Power Analysis, In LNCS, editor, Proceedings of FSE'03, volume 2887 of LNCS, Springer, 2003, Berlin" 에 특히 나타낸 바와 같이, 고차 공격을 극복하기 위한 구현이 연구되고 있고, 이 문헌은 고정 마스크를 이용한다. 그러나, 충분한 효과를 획득하기 위하여 복잡도가 크게 증가하는 것이 필연적이다. 예로서, J.Lv 등에 의한 문헌 "Enhanced DES implementation secure against differential power analysis in smart-cards, In Information Security and Privacy, 10th Australasian Conference, volume 3574 of LNCS, pages 195-206, Brisbane, July 2005, Springer Verlag" 에 나타낸 바와 같이, 이 절차에 의해 고차 공격에 저항하기 위하여 DES 알고리즘은 S-box 각각에 대하여 적어도 3개의 상이한 마스크와 6개의 추가의 S-box 를 필요로 한다는 것을 입증하였다.
다른 공지된 절차에서, 새로운 마스크 (m) 가 각각의 반복으로 계산된다. 이 절차는 F-X.Standaert 등에 의한 문헌 "FPGA Implementations of the DES and Triple-DES Masked Against Power Analysis Attack, In Proceedings of FPL 2006, August 2006, Madrid" 에 특히 설명되어 있다. 레지스터 R 의 마스킹된 변수 (
Figure 112011055707448-pct00020
) 는 각각의 라운드에서, 레지스터 M 으로부터 발생되는 새로운 마스크 (m) 와 연관된다. 따라서, 라운드의 종단에서, 변수 (
Figure 112011055707448-pct00021
) 는
Figure 112011055707448-pct00022
로 변환되고, 여기서 새로운 마스크 (m') 는 함수 S' 를 갖는 새로운 S-box 의 도움으로 m 및
Figure 112011055707448-pct00023
의 함수로서 계산된다. 이러한 절차는 단일의 새로운 S-box S' 만이 기존의 S-box S 각각과 연관되기 때문에 양호한 복잡도의 절충안을 제공한다.
그러나, 이 구현은 E.Peeters 등에 의한 문헌 "Improved Higher-Order Side-Channel Attacks with FPGA Experiments, In CHES, volume 3659 of LNCS, pages 309-323, Springer-Verlag, 2005" 에 특히 나타낸 바와 같이 2차 공격을 받기 쉽다.
도 2 는 S-box S 및 S' 의 구현을 예시한 것이다. R 로 표시된 레지스터 (22) 는, 예를 들어 XOR 게이트 (24) 에 의해 키 (k) 가 결합되는 마스킹된 변수 (
Figure 112011055707448-pct00024
) 를, 함수 (S) 를 갖는 S-box (1) 로의 입력에 제공하고, 그 S-box (1) 는 레지스터 (22; R) 의 입력으로 귀환되는 변수 (
Figure 112011055707448-pct00025
) 를 출력으로서 전달한다. 병렬로, M 으로 표시된 레지스터 (23) 는 함수 (S') 를 갖는 S-box (21) 에 입력되는 마스크 (m) 를 제공하고, 그 S-box (21) 의 다른 입력은 S-box (1) 의 입력과 공통된다. S-box (21; S') 의 출력은 새로운 마스크 (m') 를 전달하고 레지스터 M 의 입력으로 귀환된다. 이 새로운 마스크는 레지스터 R 에 의해 전달된 변수 (x) 를 마스킹하는데 이용된다. 나머지 설명 전반에 걸쳐, 마스크 레지스터 (23) 및 S-box (21) 를 포함하는 마스크 루프 (20) 에 의해 생성된 마스크 (S') 는 변수 (x) 를 마스킹하는데 이용될 것이다.
레지스터 R 및 M 으로의 귀환은 클록 틱 (clock tick) 에서 각각 행해진다. 간략화를 이유로, 도 2 의 제시는 DES 알고리즘으로 특정된 확산 및 치환 함수를 무시한다.
Peeters 등에 의해 설명된 HO-DPA 공격은 레지스터로부터 발생하는 변수 (
Figure 112011055707448-pct00026
및 m) 에 관련된 것이다. 그 원리는 변수 (x) 의 다양한 값에 대한 레지스터의 출력에서의 활성도 분포의 연구에 존재한다. CMOS 로직에서,
Figure 112011055707448-pct00027
로 표시된 활성도의 모델은 2개의 연속적인 워드 사이의 DH 로 표시된 해밍 거리일 수도 있다. 특히:
Figure 112011055707448-pct00028
즉,
Figure 112011055707448-pct00029
PH 는 해밍 웨이트에 대응하고, Δx 는 변수 (x) 의 2개의 연속적인 워드 (xi, xi -1) 사이의 해밍 거리에 대응한다.
x 와 m 이 단일의 비트를 갖는 경우, Δx=0 이면 활성도는
Figure 112011055707448-pct00030
에 대응한다. Δx=1 이면, 활성도는
Figure 112011055707448-pct00031
에 대응하고 항상 1 과 동일하다.
따라서, Δx 각각에 대한 소모 분포의 정보는 소모 분포를 관측하는 것 및 그 소모 분포를 변수 (x) 에 포함된 키 (k) 에 관한 가정에 대한 예측된 활성도와 비교하는 것에 의해 HO-DPA 공격을 구성하는 것을 가능하게 한다.
x 와 m 이 4비트로 코딩되는 경우, 해밍 웨이트 (PH) 는 5 개의 값: 0, 1, 2, 3, 4 를 취할 수 있다. 따라서, 활성도
Figure 112011055707448-pct00032
는 9 개의 값: 0, 1, 2, 3, 4, 5, 6, 7, 8 을 취할 수 있다.
도 3 은 가능한 Δx 의 다양한 값에 대한 4비트의 마스크에 대한 활성도
Figure 112011055707448-pct00033
의 분포를 예시한 것으로, Δx 는 이 경우 24개의 값 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 를 취한다. 따라서, 도 3 은 Δx 의 값의 세트에 대한 5개의 상이한 분포 (31, 32, 33, 34, 35) 를 제시한 것이다. 분포 (31) 각각에서, Δx 의 값은 9개의 값 0, 1, 2, 3, 4, 5, 6, 7 및 8 을 취할 수 있는 활성도의 함수로서 분포, 또는 할당되어 있다. 이들 분포 간의 뚜렷한 차이가 명백하고, 이들 차이가 어쩌면 HO-DPA 공격에 의해 이용된다
다양한 마스킹 솔루션의 효과를 비교하기 위하여, 다음의 관계에 의해 정의되는, 공지된 테스트인
Figure 112011055707448-pct00034
테스트의 영향을 받은 분포 (31, 32, 33, 34, 35) 를 비교하기 위해 메트릭 수량을 이용하는 것이 가능하다:
Figure 112011055707448-pct00035
여기서:
- C 는 분포의 클래스의 수를 표현한 것으로, 예를 들어, 마스크가 4비트로 코딩된 활성도 분포의 경우 C = 9 이며, C - 1 은
Figure 112011055707448-pct00036
법칙의 자유도를 표현하고;
- N 은 샘플의 총 수이고;
- Pi 는 클래스 i 에 엘리먼트를 갖는 관측 확률이고, Pi 는 또한
Figure 112011055707448-pct00037
와 동일하며, Ni 는 클래스 i 에서 관측된 엘리먼트의 수이고;
- Piref 는 클래스 i 에 엘리먼트를 갖는 기준 확률이고, Piref 는 또한
Figure 112011055707448-pct00038
와 동일하며, Niref 는 클래스 i 에서 예상된 엘리먼트의 수이다.
기준 분포는 마스크가 4비트로 코딩될 때 모든 값의 Δx 에 대해 획득된 16개의 분포의 평균인 것으로 고려된다. 이 경우
Figure 112011055707448-pct00039
의 값은 모든 분포의 동질성을 판단하는 것을 가능하게 한다. 기준으로서,
Figure 112011055707448-pct00040
는 4비트의 마스크에 의한 분포의 경우 21.89 와 동일하다. 이 값은 HO-DPA 공격에 의해 이용되기 쉬운 분포 (31, 32, 33, 34, 35) 간의 구별을 방지하기 위해 가능한 한 작아야 한다. 다르게 기술하면,
Figure 112011055707448-pct00041
의 값은 HO-DPA 공격에 대해 보호하기 위하여 가능한 한 작아야 한다.
본 발명은 동일한 마스크에 대한 다양한 활성도 분포 간의 구별 또는 차이를 감소시킴으로써, 고차의 관측 공격을 포함하는 이러한 관측 공격에 대해 보호하는 것을 가능하게 한다. 예로서, 4비트로 코딩된 마스크는 이하에서 고려될 것이다.
특히, 예를 들어 도 2 를 참조하면, 본 발명은 마스킹된 변수 (
Figure 112011055707448-pct00042
) 를 포함하는 레지스터 R 의 활성도와 독립적인 마스크 (m) 를 포함하는 레지스터 M 의 활성도를 제공한다. 변수 (x) 가 이들 2개의 레지스터 (22, 23) 에 특정된 소모 분포에 영향을 주지 않는 경우, Peeters 등에 의한 문헌에 설명된 것과 같은 HO-DPA 공격을 성공적으로 수행하는 것이 더 이상 가능하지 않다. 마스킹된 변수의 경로에 손을 대지 않고 마스크의 경로의 구조를 변형시킴으로써 밸런스가 충돌될 수도 있다. 공간적으로 마스크를 변환시키거나, 또는 시간적으로 마스크의 전개를 변화시킴으로써, 제안된 변형이 행해질 수 있다. 유리하게는, 본 발명은 마스크의 변환에 관한 것이다. 본 발명에 의하면, 수개의 마스크 변형이 가능하다.
도 4 는 마스크의 제 1 가능 변형인 전단사에 의한 변형을 예시한 것이다. 이 경우, B 로 표시된 전단 변환 (41) 은 마스크 레지스터 (23) 인 레지스터 M 과 함수 (S') 를 가진 S-box (21) 사이에 삽입된다. B- 1 로 표시된 역 전단 변환 (42) 은 S-box 의 출력에 인가된다. 따라서, S-box S' 에 의해 전달된 마스크 (m') 는 레지스터 M 에 저장되기 전에 역 전단 변환 (B-1) 을 경험한다. 전단사는 m 과 그 m 의 상 (image; B(m)) 사이의 해밍 거리가 항상 제로가 되지는 않게 하여 변수
Figure 112011055707448-pct00043
와 B(m) 사이의 활성도의 상관관계를 변형시키도록 한다. 전단사 (B) 의 구현은 미리 정의된 테이블을 통해 행해질 수 있다.
S-box S' 로부터의 출력에 대한 마스크 (m') 는 마스킹된 변수에 의해 실제로 이용되는 것이다. 도 4 는 마스크의 경로를 예시한 것이다.
도 5 는 도 3 의 경우에서와 같이 4비트로 코딩된 마스크에 대한 16개의 값의 Δx 에 대해, 이를테면 도 4 에 의해 예시된 전단사에 의한 마스크의 변환 후에 획득되어, 0 내지 8 의 범위에 있을 수 있는 동일한 활성도값을 갖는 16개의 분포 (51) 를 나타낸 것이다. 이들 분포 (51) 는 도 3 의 분포와 대조적으로 상호간 작은 차이를 나타낸다. 활성도 분포는 훨씬 더 동질적이고, 이것은 이 전단 변환에 의한 1.85 의 평균값을 갖는
Figure 112011055707448-pct00044
테스트에 의해 확인되며, 도 3 의 분포에 대응하는 21.89 의 값과 비교된다.
도 6 은 본 발명에 따른 다른 가능 변형을 예시한 것이다. 그 변형은 분해에 의한 마스크의 변형을 수반한다. 이 경우, 마스크 (m) 는:
Figure 112011055707448-pct00045
가 되도록 2개의 서브마스크 (m1 및 m2) 로 분해되고,
θ 는 상술한 연산자 θ 와 마찬가지로 그룹 내부 합성 법칙을 실현한다. θ 는 그룹 연산자이며, 역 연산자 θ-1 을 허용한다.
따라서, 이전의 도면들의 레지스터 M 은 2개의 레지스터 (231, 232) 로 대체된다. 하나의 레지스터 M1 은 값 (m1) 을 포함하고, 하나의 레지스터 M2 는 값 (m2) 을 포함한다. 이들 레지스터의 출력은 합성 법칙 θ 를 실현하는 회로 (61) 에 연결된다. 이 연산자 (61) 로부터의 출력에서, 도 2 및 도 4 에 특히 예시된 이전 경로에서와 같이 S-box S' (21) 에 의해 새로운 마스크 (m') 로 변환되기 전에, 마스크 (m) 는 연산
Figure 112011055707448-pct00046
에 의해 재구성된다.
역 연산 θ-1 는 S-box S' (21) 의 출력부에 배치된 연산자 (62) 에 의해 수행된다. 이 연산자는
Figure 112011055707448-pct00047
이 되도록 마스크 (m') 를 m'1 및 m'2 로 분리시키는 것을 가능하게 한다. 마스크 (m'2) 는 도 6 에 예시된 바와 같이 랜덤 발생기 RNG 에 의해 생성될 수도 있다. 암호화 알고리즘의 반복 각각에 있어서, m2 를 포함하는 레지스터 M2 는 랜덤 발생기 (71) 로부터 유래된 새로운 값 (m'2) 을 취한다. m1 를 포함하는 레지스터 M1 은 새로운 값
Figure 112011055707448-pct00048
을 취하고, 이 값은 S-box (21) 에 의해 제공된 입력 데이터 (m') 및 랜덤 발생기 (71) 에 의해 제공된 입력 데이터 (m'2) 에 기초하여 그룹 연산 θ-1 을 수행하는 연산자 (62) 에 의해 전달된다.
따라서, 마스킹된 변수 (
Figure 112011055707448-pct00049
) 를 포함하는 레지스터 R 및 2개의 레지스터 M1 및 M2 의 레벨에서의 활성도
Figure 112011055707448-pct00050
는:
Figure 112011055707448-pct00051
로 된다.
이 활성도 모델을 고려하면,
Figure 112011055707448-pct00052
테스트는 다양한 법칙 θ 에 적용되고, 그 결과는 예로서 이하의 차트에 의해 예시된다:
Figure 112011055707448-pct00053
이 차트는 덧셈 + 및 곱셈 * 과 같은 단순한 연산자가 밸런싱된 분포를 획득하는데 이용될 수도 있고, 그 획득된 결과가 각각 0.31 및 0.36 이어서, 분포들 간을 구별하기 위하여 취득되는 극히 다수의 소모 트레이스 (trace) 에 대한 공격에 대처할 수 있다는 것을 나타낸다. 전단사 B 에 의한 변환은 1.85 의 결과를 획득하는 것을 가능하게 한다.
유리하게는, 이후에 설명되는 법칙 α 는, 제로의
Figure 112011055707448-pct00054
즉, 고려된 활성도 모델의 측면에서 완전히 동일하여 고차 공격에 저항하는 분포를 갖는 것을 가능하게 한다.
도 7 은 변수당 4비트를 갖고 법칙 α 를 고려한 16개의 가능한 분포 (70) 를 예시한 것이다.
XOR 논리 연산자에 의해 획득된 분포는 Δx 의 해밍 웨이트의 패리티의 함수
Figure 112011055707448-pct00055
로서 2개의 큰 클래스의 분포를 발생시키기 때문에, 그 분포는
Figure 112011055707448-pct00056
의 값을 충분히 감소시키는 것을 허용하지 않는다. Δx 가 짝수인 경우, 활성도는 항상 짝수값을 갖는 한편, Δx 가 홀수인 경우에는 활성도가 항상 짝수값을 갖는다.
도 8 은 계산을 초기화하는 것을 제외하고, 랜덤 발생기를 이용하지 않고 이전의 솔루션과 유사한 결과를 주는 일 예시적 구현을 예시한 것이다. 각 사이클에서 랜덤 발생기의 사용에 관련된 오버헤드를 방지하기 위하여, 2개의 서브마스크 중 하나를 이전의 예에서 생성된 랜덤 변수로 대체할 수 있다. 예를 들어, 레지스터 M1 (231) 로부터 발생된 서브마스크를 이용하는 것이 가능하다. 레지스터 M1 로부터 발생된 이 서브마스크는 그 사이클의 종단에서 레지스터 M2 (232) 에 저장되고, 완전한 마스크를 재구성하도록 레지스터 M1 은 새로운 마스크 (m'1) 를 레지스터 M1 의 부분에 대해 수신한다. 따라서, 각각의 사이클에서 생성된 새로운 마스크는
Figure 112015004945608-pct00057
이고, 후속 사이클에서, 생성된 새로운 마스크는
Figure 112015004945608-pct00058
등이다.
도 9 는 DES 알고리즘에 대한 마스킹의 일 예를 예시한 것이다. 이 도면에서, 확산 및 치환 함수는 가독성을 위해 무시되었다.
DES 알고리즘에 관하여, 데이터 경로는 임의의 파이스텔 (Feistel) 방식에서와 같이 2개의 부분인, 좌측 및 우측으로 분리된다. 특히, 이전의 예의 마스킹된 변수 레지스터 (22) 가 2개의 레지스터인, 좌측 레지스터 (221) 및 우측 레지스터 (222) 로 분리된다.
마스킹 부분에 관하여, 2개의 마스크 레지스터 (91, 92) 인, 우측 레지스터 MR 및 다른 좌측 레지스터 ML 이외에도, M 으로 표시된 제 3 레지스터 (93) 가 좌측 및 우측의 2개의 마스크를 분해하도록 추가된다. DES 알고리즘의 구현은 각각의 사이클에서 랜덤 발생기를 이용하지 않고 3개의 체인된 레지스터를 이용함으로써, 도 7 및 도 8 에 관련된 상술된 솔루션을 이용한다. 레지스터 MR 은 서브마스크 (mr1) 를 포함하고, 레지스터 ML 은 서브마스크 (ml2) 를 포함한다. 레지스터 M 은 서브마스크 (ml1) 와 동일한 서브마스크 (mr2) 를 포함한다. 레지스터 MR 및 ML 에 각각 포함된 우측 mr 및 좌측 ml 마스크의 유효값은 다음의 관계에 의해 주어진다:
-
Figure 112011055707448-pct00059
-
Figure 112011055707448-pct00060
그룹 관계 θ 를 수행하는 연산자 (611, 612) 는 상기 2개의 연산을 수행하도록 레지스터 MR, M, ML 의 출력부에 배치된다. 우측 마스크 (mr) 는 S-box S' (21) 에 의해 새로운 우측 마스크 (m'r) 로 변환되고, S-box (21) 의 다른 입력은 그 후에 암호화되고 우측 레지스터 R (222) 로부터 발생하는 마스킹된 변수 (
Figure 112011055707448-pct00061
) 이다. 새로운 우측 마스크 (m'r) 는 마스크 (ml) 와 결합되어, 연산 θ-1 을 수행하는 연산자 (62) 에
Figure 112011055707448-pct00062
이 입력된다. 연산자 (62) 는
Figure 112011055707448-pct00063
을 m'r2 와 결합한다. 도 8 의 예와 유사한 방식으로, 연산자 (62) 로의 입력에 대한 서브마스크 (m'r2) 는 랜덤 발생기에 의해 제공되지 않고, 레지스터 MR 에 의해 전달된 서브마스크 (mr1) 와 동일하다. 각각의 레지스터 (221, 222, 91, 92, 93) 는 초기값 (94, 95, 96, 97) 을 수신한다.
이하의 차트는 3개의 연속적인 라운드에 대해, 마지막 3개의 컬럼에서 마스크 레지스터 (91, 92, 93) 와 이전의 2개의 칼럼에서 마스킹된 변수 레지스터 (221, 222) 에 완전히 동일하게 사용된 마스크를 제시한 것이다:
Figure 112011055707448-pct00064
이 차트는 마스킹된 변수 레지스터에 사용된 마스크 뿐만 아니라 마스크 레지스터에 사용된 마스크가 상이하여, 그 결과 HO-DPA 타입의 공격을 특히 방지하는 것을 가능하게 하는 것을 나타낸다.
밸런싱된 분포를 갖는 것을 가능하게 하는, 따라서
Figure 112011055707448-pct00065
가 0.1 이 되는 함수 α 의 구현은 도 10 에 의해 예시된다.
이 법칙은 Δm2 가 제로가 아니라는 사실에 의존한다. 실제로, m 의 변동 Δm=Δm2=0 인 경우, 그룹 법칙 θ 는 Δm1 이 또한 0 과 동일하다는 것을 의미한다. 이 경우, 이전의 식 (4) 에 의해 주어진 활성도는 Δx 가 제로인 경우에만 제로일 수도 있다. 제로 활성도를 획득하기 위한 Δx 의 다른 값이 존재하지 않기 때문에, 이것은 활성도가 Δx 의 모든 값에 대해 완전히 밸런싱되지 않을 것이라는 것을 나타낸다. 한편, Δm2 의 값이 제로가 아닌 경우, 활성도 분포의 완벽한 밸런스를 만족시켜
Figure 112011055707448-pct00066
=0 을 획득하는 것을 가능하게 하는 법칙이 존재할 수도 있다. G.Piret 등에 의한 문헌 "Security Analysis of Higher-Order Boolean Masking Schemes for Block Ciphers, IET Information Security, 2(1):1-11, 2008" 에 특히 나타낸 것과 같은 마스킹의 불가능성의 증명에 관하여, 본 발명은 2개의 마스크 (m1 및 m2) 사이의 연결 관계를 제공하고, 이것은 G.Piret 등에 의한 문헌에서 고려되지 않은 것이다.
2비트의 연속적 패킷당 서브마스크를 예로서 고려하고, 흔히 있는 경우이지만 마스크가 짝수의 비트를 가지면, α 라고 지칭되는 다음의 법칙은 Δx의 값이 무엇이든지간에 밸런싱된 분포를 획득하는 것을 가능하게 한다. m2MSB 로 표시된 서브마스크 (m2) 의 고차 비트 및 m2LSB 로 표시된 저차 비트로 형성된 2비트 그룹은 법칙 α 에 의해 마스크를 생성하는 다음의 방식으로 조절된다:
- 2비트의 그룹당 Δm2 = 1;
- m2MSB = 1 인 경우
Figure 112011055707448-pct00067
또는 m2MSB = 0 인 경우 m = m1
이 법칙 α 는 복잡하고 연산자 (61) 에 의해 S-box (21) 로의 입력에 대해 구현된다.
또한, 도 10 은 S-box (21) 의 출력부에 위치되고 2마스크 비트의 그룹에 대해 함수
Figure 112011055707448-pct00068
를 구현하는 연산자 (62) 의 일 예시적 가능 구현 (100) 을 제시한 것이다.
회로 (100) 는 랜덤 발생기 (101) 를 이용하여 서브마스크 (m2) 를 생성한다. 이 발생기 (101) 에 의해 전달된 랜덤 변수는, m'2MSB 및 m'2LSB 를 입력으로서 수신하는 코더 (102) 에서, 조건 Δm'2 = 1 을 보장하도록 그레이 코딩된 (또는 2진 코드가 반영된) 레지스터 M2 에 대해 증가 또는 감소 중 어느 하나를 선택한다. S-box (21) 에 의해 생성된 마스크 (m') 부터 시작하여, 연산자 (62) 는 고차 비트 m'1MSB 가
Figure 112011055707448-pct00069
와 동일한 서브마스크 (m'1) 를 전달하고, m'MSB 는 고차 비트의 m' 이고, m'2MSB 는 코더 (102) 로의 입력으로 생성된 랜덤 변수에 따라 0 또는 1 의 값을 취한다. m'2MSB 의 값이 0 또는 1 과 각각 동일한 경우, 저차 비트 m'1LSB 는 m'MSB 또는
Figure 112011055707448-pct00070
와 동일하다.
도 11a, 도 11b 및 도 11c 는 새로운 마스크 (m') 를 생성하는 치환 박스 S' (21) 를 생성하기 위한 가능 구현을 제시한 것이다. 박스 S' 는 견고성 또는 복잡도의 수개의 레벨에 따라 XOR 게이트 및 ROM 메모리의 혼합물로 생성될 수도 있다.
도 11a 는 마스킹되지 않은 정보 (x) 및 새로운 마스크 (m') 를 재구성하기 위해 2개의 박스 S (1) 및 2개의 XOR 게이트 (110, 111) 를 이용하여 제 1 솔루션을 제시한 것이다. 따라서,
Figure 112011055707448-pct00071
은 제 1 게이트 (111) 를 통해 획득되고, 제 2 게이트 (112) 는
Figure 112011055707448-pct00072
를 갖는 새로운 마스크 (m') 를 박스 S' 로부터의 출력으로서 전달한다.
도 11b 에 의해 예시된 제 2 솔루션은 ROM 메모리 (113) 을 이용하여 도 11a 의 장치의 박스 S 의 치환 및 XOR 게이트의 로직을 수행한다. 그 후에, 메모리는 2개의 워드, m 및
Figure 112011055707448-pct00073
을 수신한다.
도 11c 는 랜덤 레지스터 (71) 없이 공간적 분해에 적용될 수도 있는 제 3 솔루션을 제시한 것이다. 이 솔루션은 3개의 워드
Figure 112011055707448-pct00074
, m1 및 m2 를 수신하는 ROM 메모리 (114) 를 이용한다. 이 메모리는 예를 들어 이 함수 (115) 로부터의 출력에 대한 역 그룹 법칙 θ- 1 뿐만 아니라 함수 (115) 로의 입력에 대한 마스크 (m) 의 재구성에 대한 그룹 법칙 θ 및 도 11b 의 솔루션의 메모리 (113) 에 의해 수행되는 함수 (115) 및 로직을 통합한 것이다.

Claims (16)

  1. 마스크 (m) 에 의해 마스킹된 변수 (x) 를 제공하는 적어도 하나의 레지스터 R (22) 을 포함하는 암호화 회로로서,
    상기 마스킹된 변수는 제 1 치환 박스 S (1) 에 의해 순환 방식으로 암호화되고,
    상기 암호화 회로는 변형 함수 (41, 61) 에 의해 변환된 상기 마스크 (m) 와 동일한 변환된 마스크 (mt) 를 각각의 사이클에서 전달하는 마스크 레지스터 M (23) 를 포함하고,
    상기 마스크 (m) 는 제 2 치환 박스 S' (21) 에 의해 암호화되고,
    상기 제 2 치환 박스 S' (21) 로부터의 출력으로 획득된 새로운 마스크 (m') 는 변수를 마스킹하는데 이용되며,
    상기 변형은 상기 변환된 마스크 (mt) 가 상기 마스크 레지스터 M 에 저장되도록 하는 전단사 B (41) 이고,
    상기 제 2 치환 박스에 적용된 마스크 (m) 는 B(mt) 와 동일하고, 상기 마스크 레지스터 M 에 저장될 새로운 값은 B-1(m') 이며, 상기 m' 는 상기 제 2 치환 박스 S' (21) 로부터의 출력인 것을 특징으로 하는 암호화 회로.
  2. 제 1 항에 있어서,
    새로운 변환된 마스크 (m't) 는, 상기 제 2 치환 박스 S' (21) 로부터의 출력에 대한 상기 변형 함수 (41, 61) 에 역으로 변형 (42, 62) 된 후에 상기 마스크 레지스터 M 으로 도입되는 것을 특징으로 하는 암호화 회로.
  3. 제 1 항 또는 제 2 항에 있어서,
    전단사 B 는 상기 마스크 (m) 의 해밍 웨이트가 상기 전단사 B 하의 상기 마스크 (m) 의 상 (image) 의 해밍 웨이트와 항상 동일하지는 않도록 하는 것을 특징으로 하는 암호화 회로.
  4. 제 1 항 또는 제 2 항에 있어서,
    암호화 알고리즘은 DES 타입이고,
    데이터 (x, m) 의 경로는 좌측 (91, 221) 및 우측 (92, 222) 의 2개의 부분으로 분리되고,
    상기 암호화 회로는 좌측 마스크 레지스터 ML (91) 및 우측 마스크 레지스터 MR (92) 이외에도 제 3 마스크 레지스터 M (93) 을 포함하고,
    상기 우측 마스크 레지스터 MR 은 우측 서브마스크 (mr1) 를 포함하고,
    상기 좌측 마스크 레지스터 ML 은 좌측 서브마스크 (ml2) 를 포함하고,
    상기 제 3 마스크 레지스터 M 은 서브마스크 (ml1) 와 동일한 서브마스크 (mr2) 를 포함하며,
    우측 마스크 (mr) 및 좌측 마스크 (ml) 의 유효값은:
    -
    Figure 112016035721874-pct00093

    -
    Figure 112016035721874-pct00094

    인 것을 특징으로 하는 암호화 회로.
  5. 제 1 항 또는 제 2 항에 있어서,
    상기 제 2 치환 박스 S' (21) 는 상기 제 1 치환 박스 S (1) 와 동일한 2개의 박스 및 2개의 XOR 게이트 (111, 112) 를 포함하고,
    상기 2개의 박스 (1) 의 출력부들은, 출력이 상기 새로운 마스크 (m') 를 전달하는 XOR 게이트 (112) 에 접속되고,
    마스킹된 변수 (
    Figure 112016035721874-pct00095
    ) 는 다른 입력부가 상기 마스크 (m) 를 수신하는 다른 XOR 게이트 (111) 및 상기 박스 (1) 에 진입하고,
    상기 XOR 게이트 (111) 의 출력은 다른 박스 (1) 에 진입하는 것을 특징으로 하는 암호화 회로.
  6. 제 5 항에 있어서,
    ROM 메모리 (113) 는 상기 XOR 게이트 (111, 112) 의 로직 및 상기 2개의 박스 (1) 의 치환을 수행하는 것을 특징으로 하는 암호화 회로.
  7. 마스크 (m) 에 의해 마스킹된 변수 (x) 를 제공하는 적어도 하나의 레지스터 R (22) 을 포함하는 암호화 회로로서,
    상기 마스킹된 변수는 제 1 치환 박스 S (1) 에 의해 순환 방식으로 암호화되고,
    상기 암호화 회로는 변형 함수 (41, 61) 에 의해 변환된 상기 마스크 (m) 와 동일한 변환된 마스크 (mt) 를 각각의 사이클에서 전달하는 마스크 레지스터 M (23) 를 포함하고,
    상기 마스크 (m) 는 제 2 치환 박스 S' (21) 에 의해 암호화되고,
    상기 제 2 치환 박스 S' (21) 로부터의 출력으로 획득된 새로운 마스크 (m') 는 변수를 마스킹하는데 이용되며,
    상기 마스크 (m) 의 변형은 m = m1θm2 가 되도록 하는 2개의 서브마스크 (m1 및 m2) 로의 분해에 의해 수행되고,
    여기서 상기 θ 는 그룹 합성 법칙이고, 제 1 서브마스크 (m1) 는 제 1 마스크 레지스터 M1 (231) 에 저장되고, 제 2 서브마스크 (m2) 는 제 2 마스크 레지스터 M2 (232) 에 저장되며, 상기 제 1 마스크 레지스터 M1 에 저장될 새로운 값은 m'1 = m'θ-1m'2 이고, 상기 제 2 마스크 레지스터 M2 에 저장될 새로운 값은 m'2 이며, 상기 m' 는 상기 제 2 치환 박스 S' (21) 로부터의 출력으로 획득된 값인 것을 특징으로 하는 암호화 회로.
  8. 제 7 항에 있어서,
    상기 그룹 합성 법칙은 XOR "배타적 논리합" 연산인 것을 특징으로 하는 암호화 회로.
  9. 제 7 항에 있어서,
    상기 그룹 합성 법칙은 덧셈 연산인 것을 특징으로 하는 암호화 회로.
  10. 제 7 항에 있어서,
    상기 그룹 합성 법칙은 곱셈 연산인 것을 특징으로 하는 암호화 회로.
  11. 제 7 항에 있어서,
    상기 그룹 합성 법칙은 s=a*b + (a+b)/2 타입의 연산이고,
    * 는 곱셈이고 + 는 덧셈인 것을 특징으로 하는 암호화 회로.
  12. 제 7 항에 있어서,
    상기 그룹 합성 법칙은 하나의 사이클에서 다른 사이클로의 2개의 연속적인 서브마스크들 (m2) 사이의 해밍 거리 (Δm2) 를 갖고, 상기 해밍 거리 (Δm2) 는 제로가 아닌 것을 특징으로 하는 암호화 회로.
  13. 제 12 항에 있어서,
    상기 서브마스크 (m1, m2) 는 짝수의 비트를 갖고,
    상기 서브마스크 (m1, m2) 에 기초하여 상기 마스크 (m) 를 획득하는 것을 가능하게 하는 그룹 합성 법칙 (α) 은:
    - 2비트의 그룹당 Δm2 = 1;
    - m2MSB = 1 인 경우
    Figure 112016035721874-pct00075
    또는 m2MSB = 0 인 경우 m = m1
    을 만족하며,
    상기 m2MSB, 및 m2LSB 는 각각 서브마스크 (m2) 의 고차 비트 및 저차 비트인 것을 특징으로 하는 암호화 회로.
  14. 제 7 항에 있어서,
    상기 암호화 회로는 랜덤값 발생기 (71) 를 포함하고,
    상기 랜덤값 발생기는 제 2 서브마스크 (m2) 의 값을 전달하는 것을 특징으로 하는 암호화 회로.
  15. 제 7 항에 있어서,
    상기 제 1 마스크 레지스터 M1 로부터 발생한 서브마스크 (m1) 는 상기 사이클의 종단에서 상기 제 2 마스크 레지스터 M2 에 저장되고,
    상기 제 1 마스크 레지스터 M1 은 새로운 완전한 마스크 m' = m'1θm'2 를 재구성하도록 새로운 마스크 (m'1) 를 수신하는 것을 특징으로 하는 암호화 회로.
  16. 삭제
KR1020117016903A 2009-01-20 2010-01-18 특히 고차의 관측 공격에 대해 보호되는 암호화 회로 KR101680918B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0950341 2009-01-20
FR0950341A FR2941342B1 (fr) 2009-01-20 2009-01-20 Circuit de cryptographie protege contre les attaques en observation, notamment d'ordre eleve.
PCT/EP2010/050546 WO2010084106A1 (fr) 2009-01-20 2010-01-18 Circuit de cryptographie protege contre les attaques en observation, notamment d'ordre eleve

Publications (2)

Publication Number Publication Date
KR20120026022A KR20120026022A (ko) 2012-03-16
KR101680918B1 true KR101680918B1 (ko) 2016-11-29

Family

ID=41119870

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117016903A KR101680918B1 (ko) 2009-01-20 2010-01-18 특히 고차의 관측 공격에 대해 보호되는 암호화 회로

Country Status (10)

Country Link
US (1) US8615079B2 (ko)
EP (1) EP2380306B1 (ko)
JP (1) JP5776113B2 (ko)
KR (1) KR101680918B1 (ko)
CN (1) CN102405615B (ko)
CA (1) CA2749961C (ko)
ES (1) ES2435721T3 (ko)
FR (1) FR2941342B1 (ko)
SG (1) SG173111A1 (ko)
WO (1) WO2010084106A1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2941343B1 (fr) * 2009-01-20 2011-04-08 Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst Circuit de cryptographie, protege notamment contre les attaques par observation de fuites d'information par leur chiffrement.
FR2967322B1 (fr) * 2010-11-08 2012-12-28 Morpho Protection contre les ecoutes passives
DE102012209404A1 (de) * 2012-06-04 2013-12-05 Robert Bosch Gmbh Vorrichtung zur Ausführung eines kryptographischen Verfahrens und Betriebsverfahren hierfür
US10142099B2 (en) 2013-01-11 2018-11-27 Qualcomm Incorporated Method and apparatus for a computable, large, variable and secure substitution box
US9736181B2 (en) * 2013-07-26 2017-08-15 Intel Corporation Hardening data transmissions against power side channel analysis
CN103901342B (zh) * 2014-03-18 2017-09-29 北京时代民芯科技有限公司 一种基于掩码文件的fpga精确故障注入***
TWI712915B (zh) 2014-06-12 2020-12-11 美商密碼研究公司 執行一密碼編譯操作之方法,以及電腦可讀非暫時性儲存媒體
KR102446866B1 (ko) 2014-08-28 2022-09-23 삼성전자주식회사 부채널 공격을 방지하는 암복호화기 및 이의 구동 방법 그리고 이를 포함하는 제어 장치
US9531384B1 (en) * 2014-12-01 2016-12-27 University Of South Florida Adiabatic dynamic differential logic for differential power analysis resistant secure integrated circuits
FR3040514B1 (fr) 2015-09-02 2017-09-15 Stmicroelectronics Rousset Protection dpa d'un algorithme de rijndael
FR3040513B1 (fr) * 2015-09-02 2018-11-16 Stmicroelectronics (Rousset) Sas Protection d'un algorithme de rijndael
FR3040515B1 (fr) 2015-09-02 2018-07-27 St Microelectronics Rousset Verification de la resistance d'un circuit electronique a des attaques par canaux caches
CN105376058B (zh) * 2015-10-08 2018-08-10 深圳先进技术研究院 一种基于rsa算法的硬件的安全性评估方法及装置
CN105721150B (zh) * 2016-01-26 2018-11-20 广东技术师范学院 一种多变量二次方程的掩码加密方法
CN105743644B (zh) * 2016-01-26 2019-02-05 广东技术师范学院 一种多变量二次方程的掩码加密装置
EP3475825B1 (en) * 2016-06-23 2023-01-25 Cryptography Research, Inc. Cryptographic operations employing non-linear share encoding for protecting from external monitoring attacks
CN107547194A (zh) 2016-06-28 2018-01-05 埃沙尔公司 免受侧信道分析的保护方法和设备
EP3264311B1 (en) 2016-06-28 2021-01-13 Eshard A protection method and device against a side-channel analysis
EP3264668B1 (en) * 2016-06-28 2022-07-27 Eshard A protection method and device against a side-channel analysis
US10771235B2 (en) * 2016-09-01 2020-09-08 Cryptography Research Inc. Protecting block cipher computation operations from external monitoring attacks
DE102017002153A1 (de) * 2017-03-06 2018-09-06 Giesecke+Devrient Mobile Security Gmbh Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
EP3422176A1 (en) * 2017-06-28 2019-01-02 Gemalto Sa Method for securing a cryptographic process with sbox against high-order side-channel attacks
US10778407B2 (en) * 2018-03-25 2020-09-15 Nuvoton Technology Corporation Multiplier protected against power analysis attacks
DE102018107114A1 (de) * 2018-03-26 2019-09-26 Infineon Technologies Ag Seitenkanalgehärtete Operation
US11507699B2 (en) * 2019-09-27 2022-11-22 Intel Corporation Processor with private pipeline
FR3124670A1 (fr) * 2021-06-29 2022-12-30 Stmicroelectronics (Rousset) Sas Protection de données traitées par un algorithme de chiffrement

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040028224A1 (en) * 2002-07-02 2004-02-12 Pierre-Yvan Liardet Cyphering/decyphering performed by an integrated circuit

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2789535B1 (fr) * 1999-02-04 2001-09-28 Bull Cp8 Procede de securisation d'un ensemble electronique de cryptographie a cle secrete contre les attaques par analyse physique
CA2298990A1 (en) * 2000-02-18 2001-08-18 Cloakware Corporation Method and system for resistance to power analysis
CN1193537C (zh) * 2000-07-04 2005-03-16 皇家菲利浦电子有限公司 将输入数据块加密转换成输出数据块的方法和***
CN1640051B (zh) * 2002-03-07 2011-05-18 艾斯奥托公司 使具有秘密密钥的电子密码装置安全的方法
JP4357815B2 (ja) * 2002-09-11 2009-11-04 株式会社東芝 暗号演算回路
US7970129B2 (en) * 2007-04-19 2011-06-28 Spansion Llc Selection of a lookup table with data masked with a combination of an additive and multiplicative mask
JP4936996B2 (ja) * 2007-05-24 2012-05-23 株式会社東芝 非線形データ変換器、暗号化装置、および復号装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040028224A1 (en) * 2002-07-02 2004-02-12 Pierre-Yvan Liardet Cyphering/decyphering performed by an integrated circuit

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
F.-X. Standaert 외 2명, FPGA IMPLEMENTATIONS OF THE DES AND TRIPLE-DES MASKED AGAINST POWER ANALYSIS ATTACKS, International Conference on Field Programmable Logic and Applications, IEEE, (2006.08.)*

Also Published As

Publication number Publication date
CN102405615A (zh) 2012-04-04
FR2941342B1 (fr) 2011-05-20
WO2010084106A1 (fr) 2010-07-29
EP2380306B1 (fr) 2013-07-24
CA2749961A1 (en) 2010-07-29
FR2941342A1 (fr) 2010-07-23
SG173111A1 (en) 2011-08-29
CA2749961C (en) 2017-03-14
CN102405615B (zh) 2016-09-07
KR20120026022A (ko) 2012-03-16
US20120250854A1 (en) 2012-10-04
EP2380306A1 (fr) 2011-10-26
JP2012516068A (ja) 2012-07-12
JP5776113B2 (ja) 2015-09-09
US8615079B2 (en) 2013-12-24
ES2435721T3 (es) 2013-12-23
WO2010084106A9 (fr) 2011-09-15

Similar Documents

Publication Publication Date Title
KR101680918B1 (ko) 특히 고차의 관측 공격에 대해 보호되는 암호화 회로
KR102628466B1 (ko) 메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치
US9871651B2 (en) Differential power analysis countermeasures
Barenghi et al. Fault injection attacks on cryptographic devices: Theory, practice, and countermeasures
Karpovsky et al. Differential fault analysis attack resistant architectures for the advanced encryption standard
Li et al. Differential fault analysis on the ARIA algorithm
US20140351603A1 (en) Encryption process protected against side channel attacks
CN102970132B (zh) 一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法
EA003874B1 (ru) Способ обработки данных, устойчивый к извлечению данных с помощью анализа непреднамеренных сигналов побочного ввода-вывода
Bedoui et al. An improvement of both security and reliability for AES implementations
CN104301095A (zh) Des轮运算方法和电路
Wang et al. A performance and area efficient ASIP for higher-order DPA-resistant AES
US8958556B2 (en) Method of secure cryptographic calculation, in particular, against attacks of the DFA and unidirectional type, and corresponding component
Mischke et al. Fault sensitivity analysis meets zero-value attack
Kulikowski et al. Robust codes and robust, fault-tolerant architectures of the advanced encryption standard
Arribas et al. Guards in action: First-order SCA secure implementations of KETJE without additional randomness
Karri et al. Parity-based concurrent error detection in symmetric block ciphers
Keren et al. IPM-RED: combining higher-order masking with robust error detection
Korkikian Side-channel and fault analysis in the presence of countermeasures: tools, theory, and practice
Chhabra et al. Towards the enhancement of AES IP security using hardware obfuscation technique: A practical approach for secure data transmission in IoT
JP2005223477A (ja) 耐タンパー情報処理装置
Wan et al. Improved differential fault attack against SIMECK based on two-bit fault model
Farmani Threshold Implementations of the Present Cipher
Toprakhisar et al. CAPABARA: A Combined Attack on CAPA
Idzikowska An operation-centered approach to fault detection in key scheduling module of cipher

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