KR101783495B1 - 커스트마이징된 마스킹에 의해 보호된 저-복잡성 전자 회로 - Google Patents

커스트마이징된 마스킹에 의해 보호된 저-복잡성 전자 회로 Download PDF

Info

Publication number
KR101783495B1
KR101783495B1 KR1020127015118A KR20127015118A KR101783495B1 KR 101783495 B1 KR101783495 B1 KR 101783495B1 KR 1020127015118 A KR1020127015118 A KR 1020127015118A KR 20127015118 A KR20127015118 A KR 20127015118A KR 101783495 B1 KR101783495 B1 KR 101783495B1
Authority
KR
South Korea
Prior art keywords
mask
circuit
masks
processing operations
rti
Prior art date
Application number
KR1020127015118A
Other languages
English (en)
Other versions
KR20120109501A (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 KR20120109501A publication Critical patent/KR20120109501A/ko
Application granted granted Critical
Publication of KR101783495B1 publication Critical patent/KR101783495B1/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
    • 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
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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)

Abstract

본 발명은 마스킹-보호된 암호해독 회로에 관한 것이고, 상기 회로는 적어도 하나의 키
Figure 112012046457069-pct00136
의 이용을 통해 바이너리 워드들을 암호화하기 위한 수단, 상기 워드들에 선형 프로세싱 (216) 및 비선형 프로세싱 (226) 을 적용하기 위한 수단, 및 상기 워드들을 마스킹하기 위한 수단을 포함한다. 바이너리 워드들은 마스크
Figure 112012046457069-pct00137
의 이용을 통해 비선형 프로세싱으로부터 상류에서 언마스킹되고 (214), 마스크
Figure 112012046457069-pct00138
의 이용을 통해 상기 프로세싱으로부터 하류에서 마스킹되며 (215), 마스크
Figure 112012046457069-pct00139
Figure 112012046457069-pct00140
는 는 회로의 각 경우에 특정되는 마스크들의 세트 내에서 선택된다.

Description

커스트마이징된 마스킹에 의해 보호된 저-복잡성 전자 회로{LOW-COMPLEXITY ELECTRONIC CIRCUIT PROTECTED BY CUSTOMIZED MASKING}
본 발명은 관측에 의한 공격의 범위를 감소시키고 보호를 구현하는 비용을 감소시키도록 회로-특정 커스트마이제이션을 마스킹 및 활용함으로써 보호되는 전자 회로에 관한 것이다. 본 발명은 특히, 암호해독 회로들이 일 예인, 기밀 데이터를 조작하는 회로들의 보호 분야에 적용한다.
전자 회로들의 액티비티는 전력 소모, 연산 시간 또는 전자기 방사와 같은 물리적 양들을 통해 그 연산 동안 관측될 수 있다.
이들 물리적 양들은 회로 내에서 조작된 데이터 및 연산 아키텍처 양자에 의존한다. 따라서, 프로세싱된 데이터에 관한 정보는 은닉 채널들 또는 보조 채널들로 지칭된, 상기 양들의 관측에 의한 회로 밖에서 간접적으로 이용 가능하다.
이들 물리적 양들의 소실은 특히 암호해독 방법들에 의해 보호된 기밀 데이터를 프로세싱하는 시스템들의 보안을 절충할 수 있다. 따라서, 대칭적 암호해독 알고리즘을 이용함으로써 기밀 데이터가 보호되면, 보호의 강건성은 암호 키 기밀을 유지하기 위한 능력에 달려 있다. 물리적 양들의 소실은, 제 3 자가 적합한 공격들을 구현함으로써 상기 키를 획득하고 결과적으로 기밀 데이터에 액세스하는 것을 허용할 수도 있다. 상기 회로에 의해 소실된 물리적 양들의 관측에 의한 공격은 주로, 관측에 의한 공격으로서 간단히 자격을 얻는다. 이하의 상세한 설명에서, 제 3 자에게 의도되지 않은 데이터를 액세스하기 위해 관측 방법들에 의한 공격을 이용하는 그는 공격자로 지칭되고, 소실된 물리적 양들은 누설 (leak) 또는 은닉 채널들로 지칭된다.
오늘날, 보호된 회로들에 의해 프로세싱된 데이터에 액세스하는 것을 가능하게 만드는 파워풀한 관측 공격들이 존재한다.
따라서, 1996 년 스프링거 베르라그 (Springer-Verlag), 페이지 104-113, volume 1109 LNCS, Proceedings of CRYPTO'96 의 Timing Attack on Implementations of Diffie - Hellman , RSA , DSS and Other Systems 이란 제목의 P. C. Kocher, J. Jaffe 및 B. Jun 에 의한 아티클에 설명된 바와 같이 회로의 데이터 프로세싱 시간들을 나타내는 누설의 관측에 의한 공격이 존재한다.
회로들의 소모의 관측에 의한 공격들은 또한, 예를 들어 DPA-유형 방법들을 이용함으로써 공격자에 의해 또한 이용될 수 있는데, 이들 공격들의 유형은 1999 년 스프링거 베르라그, 페이지 388-397, volume 1666 LNCS, Proceedings of CRYPTO'99 의 Differential Power Analysis 란 제목의 P. C. Kocher, J. Jaffe 및 B. Jun 에 의한 아티클에서 설명된다.
이들 방법들은, 암호해독에 의해 수학적 레벨에서 부여된 보안을 피하는 것을 가능하게 한다.
프로세싱 시간의 시간-관련된 알고리즘의 균형을 유지하는 것은 비교적 단순하다. 전기 소모의 파형 형태의 즉각적인 관측에 대해 회로들을 보호하는 것은 더욱 어렵다.
은닉 채널 상의 공격들에 대해 전자 회로를 보호하기 위한 각종 대책 방법들이 존재한다. 이들의 특성들은 특히, 국제적인 레벨에서 또는 예를 들어 미국 FIPS 표준 140 과 같은 표준들에 의해 정의된 공통 기준에 의해 지정되고, 약어 FIPS 은 “Federal Information Processing Standardization”을 의미한다.
일부 대책들은 단지, 연속되는 공격에 대해 필요한 측정들의 수를 증가시킨다. 이러한 것은, 예를 들어 연산 로직과 함께 구현된 넌-함수화 잡음 생성기를 이용하는 대책 방법들에 대한 경우이다. 예를 들어, 랜덤하게 초기화된 의사랜덤 수 생성기 (pseudorandom number generator; PRNG) 가 이 목적을 위해 기능할 수 있다. 이 경우에서, 공격자에 의해 수집된 임의의 측정은 은닉 채널 상에 오버레이되는 잡음에 의해 방해받는다. 공격들은, 실제로 대책 기법이 효율적이도록 예상된 신호 대 잡음 비를 증폭시키기 위해서 더 많은 측정들을 수행하는 것이 필요하기 때문에 더욱 복잡해진다.
다른 대책 기법들은 은닉 채널들을 마스킹함으로써 관측에 의한 공격에 대해 보호하고, 주로 프로세싱 동작 동안 마스크로 지칭된 랜덤 또는 의사랜덤 변수 m 이 보호되는 것을 수반한다. 상기 변수는, 연산의 결과가 상기 마스크에 의존하지 않고 그것에 의존하는 은닉 채널들을 통해 정보의 누설들에 의존하는 그러한 방식에서 이용된다.
따라서, 마스킹 기반 대책 기법들은 마스크 변수 m 으로 암호 해독 회로 내에서 흐르는 민감성 데이터를 인터리빙함으로써 구현되고, 이 인버리빙은 은닉 채널이 공격자에 의해 분석되는 것을 방지하는데 이용된다. 민감성 데이터 또는 변수들 x 는 전체적으로 예측 가능한 변수들에 대응하고, 기밀로 넌-제로의 상호간 정보를 공유한다. 이 기법은 민감성 데이터 x 의 표현을, 배타적 논리합 (exclusive-OR) 유형의 연산을 표기하고 또한 이하의 상세한 설명에서 약어 XOR 로 표기되는 연산
Figure 112012046457069-pct00001
을 이용하여 키 m 을 적용함으로써 x 의 베르남 (Vernam) 암호화에 대응하는 양 x
Figure 112012046457069-pct00002
m 으로 변형하는 것이 된다.
마스크는 각각의 회로에 특정된 특징에 의해 컨디셔닝될 수도 있으며, 이 경우에서 키의 누설이 상기 마스크에 의해 암호화되는 것으로 보여진다. 이 특정 피처는 소위 "목록작성 (cataloguing)" 공격들을 방지하고, 여기서 회로 클론들은 누설을 모델링하는데 이용될 수 있다.
랜덤 마스킹을 포함하는 통상의 대책 기법은 예를 들어, DPA 유형의 공격 또는 CPA 유형의 공격과 같은 제 1 차의 공격 레지스터들의 예측으로 직접적인 공격을 견디고, CPA 는 "Correlation Power Analysis" 를 의미한다. 이들은, 예를 들어 회로에서 데이터 프로세싱 경로들을 복제함으로써 구현된다.
이 복제는 마스킹되지 않은 구현에 비해 회로의 복잡성에서의 상당한 증가를 암시한다.
또한, 이들 대책들은 2 이상의 차수의 공격들을 견디는데 있어서 나쁘다. 예로써, 제 2 차의 공격들은 누설의 변화가 민감성 변수 x 에 의존한다는 사실을 활용한다. 변화의 추정은, x
Figure 112012046457069-pct00003
m 및 또한 m 이 이용되는 경우 2 개의 경우들에서 정보의 누설을 조합함으로써, 또는 마스크 및 마스킹된 데이터가 동시에 이용되는 경우 조합된 페어 (x
Figure 112012046457069-pct00004
m, m) 의 분배를 추정함으로써 수행된다. 변화의 추정에 기초한 2 차의 공격들은 "제로-오프셋 (zero-offset)" 공격들로 지칭되고, 2005 년 스프링거 베르라그, 페이지 309-323, Cryptographic Hardware and Embedded Systems -Proceedings of CHES, volume 3659 LNCS 의 Josyula R. Rao 및 Berk Sunar 편집자들의 Improved Higher Order Side - Channel Attacks with FPGA experiments 란 제목의 E. Peeters, F. Standaert, N. Donckers 및 J-J. Quisquater 에 의한 아티클에서 설명된다.
본 발명의 일 목적은 특히, 언급된 결함들을 극복하는 것이다.
이를 위해서, 본 발명의 주제는 마스킹에 의해 보호된 암호해독 회로이고, 상기 회로는 적어도 하나의 키
Figure 112012046457069-pct00005
를 이용하여 바이너리 워드들을 암호화하기 위한 수단, 상기 워드들에 선형 프로세싱 연산들 및 비선형 프로세싱 연산들을 적용하기 위한 수단, 상기 워드들을 마스킹하기 위한 수단을 포함한다. 바이너리 워드들은 마스크
Figure 112012046457069-pct00006
를 이용함으로써 비선형 프로세싱 연산들의 상류에서 언마스킹되고, 마스크
Figure 112012046457069-pct00007
를 이용함으로써 상기 프로세싱 연산들의 하류에서 마스킹되고, 마스크들
Figure 112012046457069-pct00008
Figure 112012046457069-pct00009
은 회로의 각 경우에 특정된 마스크들의 세트의 부분을 형성한다.
본 발명의 일 양태에 따르면, 비선형 프로세싱 연산들, 비선형 프로세싱 연산들의 상류의 언마스킹 및 선형 프로세싱 연산들의 하류의 마스킹은 ROM 유형 메모리에서 구현된다.
예를 들어, 마스크
Figure 112012046457069-pct00010
Figure 112012046457069-pct00011
이고
Figure 112012046457069-pct00012
이도록 프라이머리 마스크
Figure 112012046457069-pct00013
로부터 추정된 세컨더리 마스크이고, 함수 P(x) 는 x 의 엘리먼트들을 치환하기 위한 함수에 대응하고, ROM 메모리들은 변하지 않은 채로 있다.
일 실시형태에서, 함수 P(x) 는 원순열 (circular permutation) 이고, 인덱스 r+1 의 세컨더리 마스크는 비트들의 선택된 수 d 의 마스크
Figure 112012046457069-pct00014
를 원형으로 치환함으로써 인덱스 r 의 세컨더리 마스크로부터 추정된다.
다른 실시형태에서, 메인 마스크들
Figure 112012046457069-pct00015
은 길이 W 이고 길이 S 의 서브마스크들의 정수로 구성되며, 세컨더리 마스크
Figure 112012046457069-pct00016
는 서브마스크들의 치환에 의해 생성된다.
세컨더리 마스크들의 서브마스크들은 예를 들어 다음의 식을 이용함으로써 선택되고:
Figure 112012046457069-pct00017
여기서,
r 은 라운드 수이고;
i 는 랜덤하게 인출된 4 비트 수이고;
Q 는 2 개의 연속적인 마스크들
Figure 112012046457069-pct00018
Figure 112012046457069-pct00019
사이의 치환의 비율을 제어하기 위한 정수이고;
S 는 비트로 표현된 서브마스크의 길이이고;
W 는 비트로 표현된 상기 메인 마스크의 길이이며;
mod() 는 mod(a,b) = a modulo b 와 같이 정의된 함수이고, a 및 b 는 정수이다.
본 발명의 일 양태에 따르면, 메인 암호화 마스크
Figure 112012046457069-pct00020
는 회로에 저장된 메인 마스크들의 세트로부터 마스크
Figure 112012046457069-pct00021
를 랜덤하게 선정함으로써 규칙적으로 변형된다.
본 발명의 다른 양태에 따르면, 회로에 저장된 메인 마스크들의 세트는 일 회로에서 다른 회로까지 상이하다.
메인 마스크들의 세트는 컴포넌트에 고유한 마스크들을 생성하기 위해 회로를 이용하여 획득된다.
일 실시형태에서, 2 개의 마스크들
Figure 112012046457069-pct00022
Figure 112012046457069-pct00023
사이의 해밍 거리 (Hamming distance) 는 실질적으로 S/2 와 동일하다.
마스크
Figure 112012046457069-pct00024
의 해밍 웨이트 (Hamming weight) 는 실질적으로 W/2 와 동일하다.
본 발명의 일 양태에 따르면, 비선형 프로세싱 연산들은 S-박스들을 이용하여 구현된다.
비선형 프로세싱 연산들은, 예를 들어 레지스터의 결과의 샘플링 직전에 하나 및 동일한 조합 블록에서의 선형 프로세싱 연산들 후에 적용된다.
회로는, 예를 들어 FPGA 로 구현된다.
메인 마스크들의 세트는 FPGA 회로 구성 파일의 변형을 이용하여 획득된다.
회로는, 예를 들어 메인 마스크들의 세트를 업데이트하는 것을 가능하게 하는 동적 재구성 수단 및 비선형 프로세싱 연산들에 대응하는 회로의 부분들을 구현하는 테이블을 포함한다.
일 실시형태에서, 회로는 ASIC 로 구현된다.
본 발명은 특히 비선형 프로세싱 연산들을 핸들링하는 회로의 부분들에 관하여, 마스킹에 의한 보호의 구현을 통해 회로의 복잡성을 상당히 증가시키기 않는 이점을 갖는다. 본 발명은 또한, 감소된 크기의 마스크들의 미리결정된 세트의 이용을 허용하는 이점을 갖고, 상기 세트는 동일한 생성 행으로부터 획득된 회로들 간에 고유한 보호를 제공하도록 일 회로에서 다른 회로까지 상이할 수 있다.
본 발명의 다른 특징 및 이점은, 첨부된 도면을 고려하여 비제한의 예시로서 설명으로부터 명백해질 것이다.
도 1 은 마스킹에 의해 보호된 페이스탈 함수의 예를 나타낸다.
도 2 는 마스킹에 의해 보호된 암호해독 회로의 예를 제공하고, 비선형 부분들은 언마스킹된다.
도 3 은 본 발명에 따른 마스킹에 의해 보호된 AES 알고리즘의 구현을 나타낸다.
도 1 은 마스킹에 의해 보호된 파이스텔 함수 (Feistel function) 의 예를 나타낸다.
당업자에게 알려진 마스킹 원리는 민감성 변수들 x 의 표현을 리던던트 표현으로 변형하는 것을 포함한다. 이 표현은 적어도 2 개의 부분들, 일 부분은 x
Figure 112012046457069-pct00025
m 로 표기된 마스킹된 민감성 데이터에 대응하고, 일 부분은 마스크 m 에 대응한다. 이들 2 개의 부분들이 정의되는 바이너리 갈르와 필드 (binary Galois field) 에서 이들 2 개의 부분들의 합계는 다음의 특성을 이용함으로써 변수 x 를 취출하는 것을 가능하게 한다:
Figure 112012046457069-pct00026
(1)
예로써, DES 또는 AES 와 같은 블록 암호화 알고리즘에서, 데이터의 블록을 암호화하기 위한 연산의 결과는 다수의 라운드들의 반복으로부터 도출된다. "라운드 (round)" 는, 적어도 2 개 유형의 변환들이 실행되었던 연산 사이클인데, 하나는 선형이고 다른 하나는 비선형이며, 또한 대입에 의한 변환으로 지칭된다.
선형 변환의 목적은 다음의 미리정의된 규칙들에 의해 그 입력에서 표현된 심볼들 또는 심볼들의 그룹들을 혼합하여 확산을 생성하기 위한 것이다.
대입에 의한 변환은 주로, S-박스로 지칭되는 대입 테이블들을 이용하여 수행되고, 암호해독 구조의 선형성을 깨뜨리는 것을 돕는다. 이 유형의 변환을 이용함으로써, 심볼들 또는 심볼들의 그룹들은 확산을 생성하기 위해서 다른 심볼들 또는 심볼들의 그룹들로 대체된다.
따라서, 부분들의 쌍 (x
Figure 112012046457069-pct00027
m, m) 은 쌍 (라운드(x
Figure 112012046457069-pct00028
m'), m') 으로 변환되고, 함수 라운드() 는 라운드의 함수 연산을 지정하는 반면에, m' 은 새로운 라운드 마스크이다.
각 라운드의 선형 부분들은 단순히 복제된다. 상기 부분들의 함수들 L() 의 선형성은 다음을 의미한다:
Figure 112012046457069-pct00029
(2)
따라서, 이 선형성은 변환 후에 새로운 마스크로서 마스크 mL=L(m) 을 이용하는 것을 가능하게 한다.
한편, 비선형 부분들, 즉 S-박스들 상에서 마스킹의 구현은 구현 비용 면에서 상당한 증가를 포함한다. 이 변환을 고려하고, S(x) 를 S(x
Figure 112012046457069-pct00030
m) 로부터 취출하는 것을 가능하게 하는 마스크 mNL 은 다음과 같이 결정되어야 한다:
Figure 112012046457069-pct00031
(3)
이에 대해, mNL 은 다음과 같이 정의된 함수 S'() 를 이용하여 표현될 수 있다:
Figure 112012046457069-pct00032
(4)
따라서, 함수 S'() 는 함수 S() 의 2 배 만큼의 많은 입력을 갖는다. 따라서, 비선형 함수들 S() 에 대한 마스킹의 구현은 S 의 복잡성의 제곱을 더한 것에 이른다.
암호해독 회로에서 마스킹의 구현을 예시하기 위해서, 도 1 은 마스킹에 의해 보호된 파이스텔 함수의 예를 나타낸다. 이 유형의 함수는 특히, DES 유형의 블록 암호화에 이용되는데, DES 는 "Data Encryption Block" 을 의미한다.
민감성 데이터 x 의 마스킹의 구현은 전술된 바와 같이 2 개의 부분들 (100, 101) 을 필요로 한다.
제 1 부분 (100) 은 부분 x
Figure 112012046457069-pct00033
m 상에서 수행된 프로세싱 연산들에 대응하고, 제 2 부분 (101) 은 부분 m 상에서 수행된 프로세싱 연산들에 대응한다.
민감성 데이터의 암호화는 암호화될 블록에 키 (k) 를 더한 다음에 S() 함수 S-박스 및 선형 함수 (L) 의 애플리케이션을 적용함으로써 수행된다.
회로의 2 개의 경로들 (100, 101) 에 의해 프로세싱될 디지털 신호들은 각각의 경로에 대해 레지스터 (102, 103) 를 이용함으로써 동기화된다.
제 1 경로 (100) 는 마스킹된 민감성 데이터 x, 즉 x
Figure 112012046457069-pct00034
m 을 포함하는 부분을 프로세싱한다. 암호화 키 (k) 는 XOR 게이트 (106) 를 이용함으로써 적용된다. 결과의 신호는 x
Figure 112012046457069-pct00035
m
Figure 112012046457069-pct00036
k 에 대응한다. S-박스 (107) 는 그 후, 선형 함수 L 이 적용되는 (108) 신호 S(x
Figure 112012046457069-pct00037
m
Figure 112012046457069-pct00038
k)(117) 를 획득하는 것을 가능하게 한다.
제 2 경로 (101) 는 마스크 (m) 에 대응하는 부분을 프로세싱한다. 전술된 바와 같이, 마스킹된 신호에의 비선형 함수 S()(107) 의 적용은 주로, 그것이 제 2 부분의 프로세싱에서 고려되는 것을 의미한다. 따라서, 식 (4) 에 의해 정의된 함수 S'() 는 2 개의 S-박스들 및 2 개의 XOR 게이트들 (109, 112) 을 이용함으로써 구현된다 (113). 함수는 한편으로는 마스크 m (105) 을 입력으로서 취하고, 다른 한편으로는 제 1 경로 (100) 에서 암호화 키 (k) 의 적용에 기인한 신호 (x
Figure 112012046457069-pct00039
m
Figure 112012046457069-pct00040
k)(115) 를 입력으로서 취한다. 애플리케이션 S'() 의 적용에 기인한 신호 (116) 는 제 1 경로 (100) 의 선형 함수 (108) 를 고려하도록 선형 함수 L()(114) 에 적용되었다. 함수 S'() 는 관측들에 의한 공격들에 대해 보호되도록 ROM 유형의 메모리에서 구현될 수 있다. 특히, 예를 들어 그러한 메모리에서 전기 소모의 변화들을 관측하기가 어려운 것이 사실이다.
그러한 구현이 마스킹에 의해 보호되고 함수 S'() 에 연결된 액티비티의 관측이 관측하기 어렵더라도, 보안 루프홀들은 그것을 2 차의 공격들에 대해 특히 손상되게 한다. 예를 들어, 공격자가 2 개의 별개의 회로 노드들, 예를 들어 각 경로의 2 개의 입력 레지스터들의 출력들 (118, 119) 에서 전기적 소모를 관측하기 위해 2 개의 프로브들을 위치시키는 것이 가능하다. 이 경우에서, 변동, 즉 "제로-오프셋" 유형의 추정에 기초한 공격은 매우 효과적이다.
도 2 는 본 발명이 기초하는 마스킹에 의해 보호된 암호해독 회로의 예를 제공한다. 전술된 바와 같이, 유리하게는 2 차의 공격을 불가능하게 만드는 임의의 마스킹 경로가 더 이상 존재하지 않음이 주목된다.
전술한 바와 같이, 암호화 회로의 마스킹되지 않은 부분들이 메모리에 포함되는 경우, 상기 메모리 내부의 변수들을 공격하기가 어렵다. 다시 말하면, 메모리는 정보의 누설들에 대해 보호된 블랙 박스로서 간주된다. 단지 입력들 또는 출력들 만이 취약하다. 설명된 회로의 목적들 중 하나는 보통의 복잡성의 커스트마이징된 마스킹 방법으로 메모리에서 구현을 활용하기 위한 것이다.
또한, 메모리들의 이용이 적합하지 않은 경우, 연산 엘리먼트들은 레지스터들의 출력으로부터 가능한 멀리 비선형 부분들을 위치시키는 그러한 방식으로 정렬될 수 있다. 예로써, 상관 공격은 모두 회로의 조합 로직에서 깊게 행해지는 경우 덜 효과적이다.
도 2 의 예는 SPN 네트워크의 이용에 기초한 회로에서의 본 발명의 구현의 예를 나타내며, SPN 은 "Substitution Permutation Network" 를 의미한다. 이 회로의 유형은 또한, 새논 (shannon) S-P 네트워크로 지칭된다. 이 예에서, 2 개의 라운드에서의 암호화가 고려된다.
Figure 112012046457069-pct00041
Figure 112012046457069-pct00042
로 표기된 인덱스 r 의 바이너리 워드들은 각각, 마스킹 키 및 암호화 키로서 이용된다.
예로서 제시된 회로는 다수의 스테이지들, 즉 입력 스테이지, 제 1 라운드에 대응하는 스테이지, 제 2 라운드에 대응하는 스테이지 및 출력 스테이지로 나누어질 수 있다. 암호화될 데이터는, 예를 들어 4 개의 8 비트 서브워드들로 세분된 32 비트 워드들의 형태로 입력 스테이지에 대한 입력으로서 표현된다. 입력 마스킹은 32 비트의 길이를 갖는 키
Figure 112012046457069-pct00043
을 이용함으로써 적용되고, 상기 키는 4 개의 8 비트 서브마스크들
Figure 112012046457069-pct00044
로 세분되고, 상기 서브마스크들은 4 개의 XOR 게이트들 (200, 201, 202, 203) 을 이용함으로써 4 개의 8 비트 서브워드들에 적용된다.
제 1 라운드의 입력에서, 레지스터 (204) 는 키
Figure 112012046457069-pct00045
에 의한 마스킹에 기인한 4 개의 8 비트 서브워드들을 입력으로서 취한다. 이 레지스터는 상이한 바이너리 플로우들을 동기화하는 것을 가능하게 하고, 플로우는 입력 8 비트 서브워드에 대응한다.
Figure 112012046457069-pct00046
,
Figure 112012046457069-pct00047
로 표기된 4 개의 8 비트 서브키들로 세분된 제 1 암호 키
Figure 112012046457069-pct00048
는 4 개의 XOR 게이트들 (205, 206, 207, 208) 에서 상기 레지스터 (204) 의 출력으로서 표현된 마스킹된 서브워드들 상에 적용된다. 키
Figure 112012046457069-pct00049
는 제 1 암호화 라운드와 연관된다.
Figure 112012046457069-pct00050
에 의해 마스킹되고
Figure 112012046457069-pct00051
에 의해 암호화된 데이터의 4 개의 서브워드들은 그 후, 예를 들어 ROM 유형의 메모리에서 구현된 4 개의 프로세싱 블록들 (209, 210, 211, 212) 에 의해 각각 프로세싱된다. ROM 메모리에서의 함수들, 특히 비선형 함수들의 구현의 복잡성은 입력들의 수로 기하급수적으로 증가한다는 것이 주목된다. 암호해독 알고리즘은 이 제약을 통합하고 구현의 복잡성을 최소화하기 위해서 비선형 함수 레벨에서 보다 작은 크기의 서브워드들로서 암호화될 워드들을 프로세싱한다.
각각의 프로세싱 블록의 입력에서, 8 비트 서브워드들은 XOR 게이트들 (214) 을 이용하여 4 개의 8 비트 서브마스크들
Figure 112012046457069-pct00052
을 적용함으로써 언마스킹된다. 비선형 함수가 그 후 적용되고, S-박스 (213) 는 그것을 구현하는데 이용될 수 있다.
각 프로세싱 블록의 출력의 상류에서, XOR 게이트 (215) 가 이용되어 출력에서 데이터를 마스킹하므로, 민감성 데이터는 4 개의 서브마스크들
Figure 112012046457069-pct00053
,
Figure 112012046457069-pct00054
로 세분된 마스크
Figure 112012046457069-pct00055
에 의해 제 1 라운드 스테이지의 출력에서 마스킹된다. 라운드 출력에서 선형 변환 L0() 가 적용되고, 이는 프로세싱 블록들에서 마스킹이 고려되도록 한다. 이를 위해, 마스크
Figure 112012046457069-pct00056
의 변형된 마스크
Figure 112012046457069-pct00057
를 이용함으로써 마스킹이 수행된다. 이는 4 개의 8 비트 변형된 서브마스크들
Figure 112012046457069-pct00058
로 세분되고, 변환
Figure 112012046457069-pct00059
은 선형 변환 L0()(216) 의 역에 대응한다.
프로세싱 블록들 (209, 210, 211, 212) 의 출력에서, 변환 L0() 는 상기 블록들로부터의 출력으로서 표현된 바이너리 워드들에 적용된다. 제 1 암호화 라운드의 결과는 선형 변환 (216) 의 출력에서의 바이너리 서브워드들에 대응하고, 상기 서브워드들은 마스크
Figure 112012046457069-pct00060
에 의해 마스킹되고 따라서 관측에 의한 공격에 대해 보호된 민감성 데이터에 대응한다.
제 2 라운드의 입력은 제 1 라운드의 출력이고, 제 1 라운드의 선형 변환 (216) 에서 기인한 4 개의 8 비트 서브워드들에 대응한다. 이들 4 개의 서브워드들은 상이한 바이너리 플로우들을 동기화하는 것을 가능하게 하는 레지스터 (217) 에 대한 입력으로서 표현된다.
Figure 112012046457069-pct00061
로 표기된 4 개의 8 비트 서브키들로 세분된 제 2 라운드에 특정된 제 2 암호화 키
Figure 112012046457069-pct00062
는 4 개의 XOR 게이트들 (218, 219, 220, 221) 에서 레지스터 (217) 로부터의 출력으로서 표현된 마스킹된 서브워드들에 적용된다.
Figure 112012046457069-pct00063
에 의해 마스킹되고
Figure 112012046457069-pct00064
에 의해 암호화된 4 개의 데이터 서브워드들은 그 후, 예를 들어 ROM 유형의 메모리에서 구현된 4 개의 프로세싱 블록들 (222, 223, 224, 225) 에 의해 각각 프로세싱된다. 각 블록의 입력에서, 데이터는 XOR 게이트들을 이용하여 키
Figure 112012046457069-pct00065
를 적용함으로써 언마스킹된다.
비선형 함수가 그 후 적용되고, S-박스는 그것을 구현하기 위해 각 블록에서 이용될 할 수 있다. 각 프로세싱 블록의 출력에서, XOR 게이트가 이용되어 출력에서 데이터를 마스킹하므로, 민감성 데이터는 마스크
Figure 112012046457069-pct00066
에 의해 제 2 라운드 스테이지의 출력에서 마스킹된다. 이를 위해, 변형된 마스크
Figure 112012046457069-pct00067
를 이용함으로써 마스킹이 수행되고, 변환
Figure 112012046457069-pct00068
은 선형 변환 L1()(226) 의 역에 대응한다.
변환 L1() 은 프로세싱 블록들 (209, 210, 211, 212) 로부터의 출력으로서 표현된 바이너리 서브워드들에 적용된다. 제 2 암호화 라운드의 결과는 선형 변환 (226) 의 출력에서의 바이너리 서브워드들에 대응하고, 상기 서브워드들은 마스킹되고 따라서 관측에 의한 공격들에 대해 보호된 민감성 데이터에 대응한다.
이 유형의 구현의 이점은 라운드 1 에 대해
Figure 112012046457069-pct00069
에 의한 암호화 및
Figure 112012046457069-pct00070
에 의한 마스킹 뿐만 아니라 라운드 2 에 대해
Figure 112012046457069-pct00071
에 의한 암호화 및
Figure 112012046457069-pct00072
에 의한 마스킹을 인버팅하는 것을 가능하게 한다는 것이다.
구현의 복잡성을 감소시키고 동일한 ROM 메모리들을 항상 이용하도록, 메인 마스크의 치환에 의해 일 스텝에서 다른 스텝까지 이용된 구현 마스크들을 추정하는 것이 제안되었다. 예를 들어,
Figure 112012046457069-pct00073
이 메인 마스크이면, 세컨더리 마스크들
Figure 112012046457069-pct00074
Figure 112012046457069-pct00075
은 다음과 같이 메인 마스크로부터 추정될 수 있다:
Figure 112012046457069-pct00076
함수 P(bin) 은 치환 함수, 예를 들어, 바이너리 워드 빈의 원형 치환을 나타낸다. 또한, 메인 마스크
Figure 112012046457069-pct00077
는 메인 마스크들의 미리정의된 세트로부터 랜덤으로 인출될 수 있다. 메인 마스크에 기초한 마스크 치환의 일 예는 도 3 을 이용한 설명에서 제공된다.
작은 크기의 메인 마스크들의 세트는 컴포넌트에 특정된, 즉 회로의 각 경우에 특정된 커스터마이징된 마스크들을 이용하는 것을 가능하게 한다. 이 특징의 적용은 "목록작성" 유형의 공격들의 범위를 감소시키는 것을 가능하게 하는데, 이는 누설들이 회로에 그리고 더 이상 회로 유형에 특정되지 않기 때문이다. 예를 들어, "제로-오프셋" 유형과 같은, 표현 "higher-order differential power analysis" 로부터 나오는 약어인, 높은 차수의 공격들 HO-DPA 는 더 이상 어떤 특정의 마스크 경로도 존재하지 않기 때문에 도전된다. 따라서, 쌍 (마스킹된 변수, 마스크) 을 고려하는 것이 더 이상 가능하지 않다.
도 3 은 마스킹에 의해 보호된 AES 알고리즘의 구현을 나타낸다.
AES 블록 암호화 알고리즘은, 특히 바이너리 메시지들을 기밀로 유지하는데 파워풀하며, AES 는 "Advanced Encryption Standard" 를 의미한다. 보호될 이 메시지는 고정된 크기의 바이너리 워드들에 의해 프로세싱되고, 상기 워드들은 128, 192 또는 256 비트일 수 있다. 암호화 키들은 길이 W 이고, W 는 프로세싱될 워드들의 길이와 동일하다. 알고리즘은 3 개의 프로세싱 페이즈들을 포함하고, 각 페이즈는 하나 이상의 라운드들로 이루어진다. 제 1 페이즈 R1 은 초기 라운드에 대응하고, 제 2 페이즈 R2 는 동일한 구조를 반복적으로 이용하는 N 개의 라운드들에 대응하며, 제 3 페이즈는 최종 라운드에 대응한다. AES 알고리즘에 특정된 이들 3 개의 페이즈들의 원리는 당업자에게 알려져 있다.
회로는, 예를 들어 FPGA 또는 ASIC 회로이다.
본 발명에 따른 마스킹에 의한 보호는, 은닉 채널들의 관측에 의한 공격들에 대해 3 개의 페이즈들 R1, R2 및 R3 를 구현하는 AES 암호해독 회로를 보호하도록 도입될 수 있다.
랜덤 수 생성기 (300) 는, 예를 들어 n 비트들의 바이너리 워드들 i 를 생성하는데 이용되고, n 은 마스킹의 엔트로피를 나타낸다. 이하 상세한 설명에서 설명된 예에서, n 은 4 비트로 표현된다.
카운터 CRT (301) 는 현재 라운드 수에 대응하는 변수 r 을 증분한다.
보호된 회로는, 특히 암호화될 워드들의 것과 동일한 길이, 또는 예를 들어 본 예에서 128 비트의 일정한 마스크들의 세트를 저장하는 것을 가능하게 하는 메모리 영역 (303) 을 포함한다.
랜덤하게 생성된 (300) 수 i 는 저장된 마스크들의 세트 (303) 로부터 메인 마스크
Figure 112012046457069-pct00078
를 선택하는 것을 가능하게 한다. 그 결과, n = 4, 16 에 대해 상이한 메인 마스크들
Figure 112012046457069-pct00079
이 랜덤하게 선택될 수 있다.
또한, 차별된 보호를 획득하고 "목록작성에 의한 공격" 을 방지하도록 컴포넌트에 저장된 메인 마스크들은 하나의 제품 컴포넌트에서 다른 컴포넌트까지 상이할 수도 있다.
길이 W 의 메인 마스크
Figure 112012046457069-pct00080
는 길이 S 의 서브마스크들의 정수로 구성되고, W 는 S 의 배수이다. 예를 들어, 길이 W=128 비트의 마스크
Figure 112012046457069-pct00081
는 예를 들어 16 개의 S=8 비트의 서브마스크들을 포함하고, 상기 서브마스크들은
Figure 112012046457069-pct00082
,
Figure 112012046457069-pct00083
로 표기된다.
메인 마스크로부터, 예를 들어 메인 마스크를 구성하는 서브마스크들을 치환하기 위해 세컨더리 마스크들이 생성될 수 있다. 따라서, 단일의 메인 마스크로부터, 각각의 라운드에 대해 상이한 세컨더리 마스크가 이용될 수 있다.
공격들에 대한 강건성을 증가시키도록, 상기 컴포넌트들 간의 차별화된 마스킹 보호를 구현하기 위해서 일 컴포넌트에서 다른 컴포넌트까지 상이한 메인 마스크
Figure 112012046457069-pct00084
의 세트가 존재한다. 변수 i 는 랜덤하고, 각각의 암호화 전에 생성될 수 있다.
일단 메인 마스크
Figure 112012046457069-pct00085
가 선택되면, 치환 P, 선택된 수의 비트들 d 의 마스크
Figure 112012046457069-pct00086
를 갖고, 원형으로 치환함으로써 인덱스 r 의 세컨더리 마스크로부터 인덱스 r+1 의 세컨더리 마스크가 추정되고, 인덱스 0 의 마스크는
Figure 112012046457069-pct00087
이도록 초기화된다.
d 는, 예를 들어 d=s 비트, 즉 서브마스크에 대응하는 길이 이도록 선택될 수 있다.
또한, 서브마스크들의 정수에 의해 치환된 인덱스 r 의 마스크를 갖는 것이 가능하다. 따라서, 마스크
Figure 112012046457069-pct00088
는 다음 식을 이용함으로써 생성될 수 있다:
Figure 112012046457069-pct00089
(5)
여기서,
r 은 라운드 수이고;
i 는 생성기 (300) 에 의해 랜덤하게 인출된 4 비트의 수이고;
Q 는 2 개의 연속적인 세컨더리 마스크들
Figure 112012046457069-pct00090
Figure 112012046457069-pct00091
간의 치환 비율을 체크하는 것을 가능하게 하는 정수이고;
S 는 비트로 표현된 서브마스크의 길이이고;
W 는 비트로 표현된 마스크
Figure 112012046457069-pct00092
의 길이이며;
mod() 는, mod(a, b)=a modulo b 이도록 정의된 함수이고, a 및 b 는 정수들이다.
메인 마스크는, 예를 들어 i 의 새로운 값을 랜덤하게 인출함으로써 암호화 절차 동안 변형될 수 있다.
유리하게, 관측에 의한 공격들에 대한 저항은, 예를 들어,
Figure 112012046457069-pct00093
Figure 112012046457069-pct00094
간의 해밍 거리 (Hamming distance) 가 실질적으로 S/2 와 동일하다는 것을 보장함으로써 세컨더리 마스크들이 서로 독립적이도록 메인 마스크들
Figure 112012046457069-pct00095
을 선택함으로써 최적화될 수 있다.
마스크들의 평균 밸런싱은 또한, 보호를 보강하는 것을 가능하게 하고, 상기 밸런싱은 세컨더리 마스크 및 이에 따라 메인 마스크의 해밍 웨이트 (Hamming weight) 가 실질적으로 W/2 와 동일하다는 것을 보장함으로써 획득된다.
도면의 예에서, 암호화될 워드들은 128 비트 워드들이고, 레지스터 베이스 (302) 의 코더에 입력으로서 표현된다. 프로세싱될 워드는 그 후, XOR 게이트 (304) 를 이용하여 비-치환된 키
Figure 112012046457069-pct00096
의 적용에 의해 마스킹된다. 마스킹의 결과는 그 후, 제 2 XOR 게이트 (305) 를 이용하여
Figure 112012046457069-pct00097
로 표기된 길이 W 의 암호화 키의 적용에 의해 암호화된다.
Figure 112012046457069-pct00098
에 의해 마스킹되고
Figure 112012046457069-pct00099
에 의해 암호화된 워드는 레지스터 (306) 에 저장되고, 상기 레지스터는 제 2 프로세싱 페이즈 R2 를 수행하는 회로 부분의 입력에 대응하고, 상기 페이즈는 반복적인 암호화 루프에 대응하고, 반복은 프로세싱 라운드에 대응한다. 레지스터 (306) 에 저장된 워드는 128 비트의 워드를 16 개의 8 비트 서브워드들로 세분하는 제어 모듈 (307) 에 의해 프로세싱된다. 제어 모듈의 다른 기능은 라운드의 시작에서 데이터를 언마스킹하는데 이용될 마스크
Figure 112012046457069-pct00100
를 선택하는 것이고, 라운드는 인덱스 r 의 각 반복에 적용된다. 16 개의 8 비트 서브워드들은 비선형 함수 모듈 (308) 을 이용하여 프로세싱되고, 상기 모듈은 예를 들어 ROM 유형의 메모리에서 구현된다. 이들 모듈들은 그 입력에 표현된 서브워드들을 언마스킹하고 (309), 예를 들어 S-박스를 이용함으로써 비선형 프로세싱에 그들을 적용하고 (310) 상기 프로세싱의 결과를 마스킹한다 (311). 프로세싱될 각각의 8 비트 서브워드에 대해 비선형 함수 모듈 (308) 이 존재한다. 결과적으로, 도 3 의 예에 대해 16 개의 비선형 함수 모듈이 존재한다.
인덱스 r 의 라운드에 대해, 이들 모듈들은 입력 언마스킹 (309) 을 위해 서브마스크들
Figure 112012046457069-pct00101
을 이용하고, 출력 마스킹 (311) 을 위해 서브 마스크들
Figure 112012046457069-pct00102
을 이용한다. 예를 들어, 16 개의 S-박스들은 서브마스크들
Figure 112012046457069-pct00103
에 의해 마스킹되고 그 후 서브마스크
Figure 112012046457069-pct00104
에 의해 언마스킹되기 위해서 미리연산될 수 있다.
비선형 프로세싱 모듈들의 출력에서 16 개의 서브워드들은 그 후, 제 2 제어 모듈 (312) 을 향하고, 이 함수는 특히 상기 워드들을 128 비트 워드로 연결시킨다.
128 비트 워드는 그 후, 2 개의 선형 프로세싱 모듈들에 의해 프로세싱되는데, 제 1 프로세싱 모듈은 주로 표현 "시프트 행 (row)" 에 의해 설명된 열들의 혼합을 수행하고 (313), 제 2 프로세싱 모듈은 주로 표현 "시프트 열 (column)" 에 의해 설명된 행들의 혼합을 수행한다 (314). 이들 2 개의 선형 프로세싱 연산들은 함수 Lr() 에 의해 모델링될 수 있다.
Figure 112012046457069-pct00105
를 이용하는 암호화는 XOR 함수 (315) 를 이용하는 상기 선형 프로세싱 연산들에 기인한 128 워드에 적용된다.
일 라운드에서 다른 라운드까지 동일한 S 박스들을 이용할 수 있도록, 128 비트 마스크
Figure 112012046457069-pct00106
Figure 112012046457069-pct00107
에 의한 암호화에 기인한 워드에 적용된다 (316). 마스크들
Figure 112012046457069-pct00108
은 다음의 식을 이용함으로써 미리연산된 후에 저장된다 (303):
Figure 112012046457069-pct00109
(6)
따라서, 메모리에는 16 개의 연산된 128 비트 워드들
Figure 112012046457069-pct00110
이 존재한다.
페이즈 R2 의 프로세싱 연산들은 N 번 반복적으로 실행된다. 제 2 페이즈 R2 의 N 개의 라운드들이 실행된 경우, 최종 페이즈 R3 는 선형의 행 혼합 프로세싱 연산 (313) 과 선형의 열 혼합 프로세싱 연산 (314) 사이에서 추출된 128 비트 워드 상에서 실행된다.
추출된 워드에 XOR 함수 (317) 에 의해 적용된 키
Figure 112012046457069-pct00111
를 이용하는 최종 암호화 후에, XOR 함수 (318) 를 이용하여 128 비트 마스크
Figure 112012046457069-pct00112
를 적용함으로써 최종 언마스킹이 수행된다.
16 개의 128 비트 마스크들
Figure 112012046457069-pct00113
은, 다음의 식을 이용함으로써 미리연산된 후에 보호된 회로에 저장된다 (303):
Figure 112012046457069-pct00114
(7)
여기서, 함수
Figure 112012046457069-pct00115
은 열 혼합 프로세싱 연산 (313) 의 역을 나타낸다.
최종 행의 엔드, 즉 프로세싱 페이즈 R3 의 엔드에서 획득된 워드는 AES 암호화의 최종 결과에 대응한다. 획득된 암호화된 메시지는 출력 레지스터에 기입된다 (319).
도 4 는 비선형 프로세싱 연산들이 라운드의 엔드에 위치하는 마스킹에 의해 보호된 암호해독 회로의 예를 제공한다.
비선형 프로세싱 연산들에 대응하는 회로의 부분들이 메모리가 아닌 로직 게이트에서 구현되는 경우, 상기 프로세싱 연산들의 상류 언마스킹 및 하류 마스킹은 공격들의 대상이 될 수도 있다.
이들 공격들에 대해 회로를 보호하기 위해서, 하나의 해결책은 로직 콘 (cone) 의 엔드, 즉 결과의 레지스터링된 샘플링 직전에 라운드의 비선형 프로세싱 연산들을 배치하는 것이다. 연산들은 그 후, 그 시간 확산 덕택으로 분산되고 공격의 유효성이 그 후 제한된다.
도 4 의 예는 이 원리를 구현하는 마스킹에 의해 보호된 암호해독 회로의 예를 제공한다.
이 예시적인 회로는 도 2 에 의해 제시된 것과 유사하다. 암호화는 파이스텔 아키텍처를 이용하여 수행되고 하나의 입력 스테이지, 라운드 1 및 라운드 2 로 지칭된 2 개의 라운드 스테이지들, 그 후 하나의 출력 스테이지에 의해 수행된다.
도 2 의 예로서 제공된 회로와는 달리, S-박스들을 갖는 예에서 구현된 비선형 프로세싱 연산들은 로직 콘의 엔드에 배치된다. 비선형 프로세싱 연산들은 따라서, 라운드의 시작에 배치된다. 따라서, 제 1 라운드에 대응하는 스테이지에서, 초기 확산 함수 L-1() 에 대응하는 선형 프로세싱 연산이 적용된다 (401). 제 2 라운드에 대응하는 스테이지에서, 확산 함수 L0() 에 대응하는 선형 프로세싱 연산이 적용된다 (402).
초기 확산 함수의 역 L-1 -1() 은 입력 스테이지의 출력에서 적용되고 (400), 최종 확산 함수 L1() 은 출력 스테이지의 입력에서 적용된다 (403).
라운드의 시작에서 전기 소모는 모델링하기 어려운 반면에, 그것은 라운드의 엔드에서 환경 조건들에 더욱 의존한다.

Claims (17)

  1. 마스킹에 의해 보호된 암호해독 회로로서,
    상기 회로는 적어도 하나의 키
    Figure 112017032559310-pct00145
    를 이용하여 복수의 바이너리 워드들을 암호화하기 위한 수단, 상기 복수의 바이너리 워드들에 선형 프로세싱 연산들 (216) 및 비선형 프로세싱 연산들 (213) 을 적용하기 위한 수단, 및 상기 복수의 바이너리 워드들을 마스킹하기 위한 수단을 포함하고,
    상기 회로는,
    상기 복수의 바이너리 워드들이 각각의 마스크들
    Figure 112017032559310-pct00146
    을 이용함으로써 상기 비선형 프로세싱 연산들의 상류에서 언마스킹되고 (214), 각각의 마스크들
    Figure 112017032559310-pct00147
    을 이용함으로써 상기 비선형 프로세싱 연산들의 하류에서 마스킹되고 (215), 상기 마스크
    Figure 112017032559310-pct00148
    Figure 112017032559310-pct00149
    는 상기 회로의 각 경우에 특정된 마스크들의 세트의 부분을 형성하고, 각 상기 마스크
    Figure 112017032559310-pct00150
    Figure 112017032559310-pct00151
    이고
    Figure 112017032559310-pct00152
    이도록 프라이머리 마스크
    Figure 112017032559310-pct00153
    로부터 추정된 세컨더리 마스크이고, 상기 함수 P(x) 는 x 의 엘리먼트들을 치환하기 위한 함수에 대응하고, 상기 프라이머리 마스크들
    Figure 112017032559310-pct00154
    은 동일한 길이의 서브마스크들 중 하나보다 큰 정수 (integer number) 로 구성되며, 상기 세컨더리 마스크들
    Figure 112017032559310-pct00155
    은 상기 서브마스크들의 치환에 의해 생성되는 것을 특징으로 하는 암호해독 회로.
  2. 제 1 항에 있어서,
    상기 비선형 프로세싱 연산들, 상기 비선형 프로세싱 연산들의 상류에서의 상기 언마스킹 (214) 및 상기 비선형 프로세싱 연산들의 하류에서의 상기 마스킹 (215) 은 ROM 유형 메모리들 (209) 에서 구현되는 것을 특징으로 하는 암호해독 회로.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 함수 P(x) 는 원순열 (circular permutation) 이고, 인덱스 r+1 의 세컨더리 마스크는 비트들의 선택된 수 d 의 상기 마스크
    Figure 112017032559310-pct00125
    를 원형으로 치환함으로써 인덱스 r 의 세컨더리 마스크로부터 추정되는 것을 특징으로 하는 암호해독 회로.
  5. 삭제
  6. 제 1 항에 있어서,
    상기 세컨더리 마스크들의 상기 서브마스크들은 다음의 식을 이용함으로써 선택되고:
    Figure 112017032559310-pct00128

    여기서,
    r 은 라운드 수이고;
    i 는 랜덤하게 인출된 4 비트 수이고;
    Q 는 2 개의 연속적인 세컨더리 마스크들
    Figure 112017032559310-pct00129
    Figure 112017032559310-pct00130
    사이의 치환의 비율을 제어하기 위한 정수이고;
    S 는 비트로 표현된 서브마스크의 길이이고;
    W 는 비트로 표현된 상기 프라이머리 마스크의 길이이며;
    mod() 는 mod(a,b) = a modulo b 와 같이 정의된 함수이고, a 및 b 는 정수들인 것을 특징으로 하는 암호해독 회로.
  7. 제 1 항에 있어서,
    상기 프라이머리 암호화 마스크
    Figure 112017032559310-pct00131
    는 상기 회로에 저장된 프라이머리 마스크들의 세트로부터 마스크
    Figure 112017032559310-pct00132
    를 랜덤하게 선택함으로써 규칙적으로 변형되는 것을 특징으로 하는 암호해독 회로.
  8. 제 7 항에 있어서,
    상기 회로에 저장된 상기 프라이머리 마스크들의 세트 (303) 는 일 회로에서 다른 회로까지 상이한 것을 특징으로 하는 암호해독 회로.
  9. 제 8 항에 있어서,
    상기 프라이머리 마스크들의 세트는 내부 마스크 생성 회로를 이용하여 획득되는 것을 특징으로 하는 암호해독 회로.
  10. 제 6 항에 있어서,
    2 개의 마스크들
    Figure 112015107321408-pct00133
    Figure 112015107321408-pct00134
    사이의 해밍 거리 (Hamming distance) 는 S/2 와 동일한 것을 특징으로 하는 암호해독 회로.
  11. 제 6 항에 있어서,
    마스크
    Figure 112015107321408-pct00135
    의 해밍 웨이트 (Hamming weight) 는 W/2 와 동일한 것을 특징으로 하는 암호해독 회로.
  12. 제 1 항 또는 제 2 항에 있어서,
    상기 비선형 프로세싱 연산들은 S 박스들 (213, 310) 을 이용하여 구현되는 것을 특징으로 하는 암호해독 회로.
  13. 제 1 항 또는 제 2 항에 있어서,
    상기 비선형 프로세싱 연산들은, 레지스터에서의 결과의 샘플링 직전에 동일한 조합 블록에서의 상기 선형 프로세싱 연산들 이후에 적용되는 것을 특징으로 하는 암호해독 회로.
  14. 제 1 항 또는 제 2 항에 있어서,
    상기 회로는 FPGA 로 구현되는 것을 특징으로 하는 암호해독 회로.
  15. 제 13 항에 있어서,
    프라이머리 마스크들의 세트는 FPGA 회로 구성 파일의 변형을 이용하여 획득되는 것을 특징으로 하는 암호해독 회로.
  16. 제 13 항에 있어서,
    프라이머리 마스크들의 세트를 업데이트하는 것을 가능하게 하는 동적 재구성 수단 및 상기 비선형 프로세싱 연산들에 대응하는 상기 회로의 부분들을 구현하는 테이블을 포함하는 것을 특징으로 하는 암호해독 회로.
  17. 제 1 항 또는 제 2 항에 있어서,
    상기 회로는 ASIC 로 구현되는 것을 특징으로 하는 암호해독 회로.
KR1020127015118A 2009-11-13 2010-11-08 커스트마이징된 마스킹에 의해 보호된 저-복잡성 전자 회로 KR101783495B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0958030 2009-11-13
FR0958030A FR2952773B1 (fr) 2009-11-13 2009-11-13 Circuit electronique de faible complexite protege par masquage personnalise
PCT/EP2010/067064 WO2011057991A1 (fr) 2009-11-13 2010-11-08 Circuit electronique de faible complexite protege par masquage personnalise

Publications (2)

Publication Number Publication Date
KR20120109501A KR20120109501A (ko) 2012-10-08
KR101783495B1 true KR101783495B1 (ko) 2017-09-29

Family

ID=42244180

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127015118A KR101783495B1 (ko) 2009-11-13 2010-11-08 커스트마이징된 마스킹에 의해 보호된 저-복잡성 전자 회로

Country Status (9)

Country Link
US (1) US9197412B2 (ko)
EP (1) EP2499773B1 (ko)
JP (1) JP5987250B2 (ko)
KR (1) KR101783495B1 (ko)
CN (1) CN102648600B (ko)
CA (1) CA2780719C (ko)
ES (1) ES2571225T3 (ko)
FR (1) FR2952773B1 (ko)
WO (1) WO2011057991A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8958550B2 (en) * 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods
JP5612007B2 (ja) * 2012-03-15 2014-10-22 株式会社東芝 暗号化鍵生成装置
JP6089668B2 (ja) * 2012-12-13 2017-03-08 日本電気株式会社 暗号化処理回路及び復号処理回路とその方法並びにそのプログラム
WO2015059845A1 (ja) * 2013-10-24 2015-04-30 日本電気株式会社 暗号化処理回路及び復号処理回路並びにその方法
EP3475825B1 (en) 2016-06-23 2023-01-25 Cryptography Research, Inc. Cryptographic operations employing non-linear share encoding for protecting from external monitoring attacks
US10530567B2 (en) * 2016-10-05 2020-01-07 Megachips Corporation Encryption device and memory device
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
US11562101B2 (en) * 2017-11-13 2023-01-24 Intel Corporation On-device bitstream validation
US11372983B2 (en) 2019-03-26 2022-06-28 International Business Machines Corporation Employing a protected key in performing operations
US11201730B2 (en) * 2019-03-26 2021-12-14 International Business Machines Corporation Generating a protected key for selective use
FR3096206A1 (fr) * 2019-05-17 2020-11-20 Stmicroelectronics (Grenoble 2) Sas Dispositif de protection de donnees masquees et procede associe
US11700111B2 (en) * 2019-06-26 2023-07-11 Cryptography Research, Inc. Platform neutral data encryption standard (DES) cryptographic operation
CN113343175B (zh) * 2021-05-31 2022-05-27 中国电子科技集团公司第三十研究所 一种自动化搜索spn型轻量级分组密码活跃s盒的快速方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070195949A1 (en) * 2006-02-22 2007-08-23 Toshio Okochi Encryption processing method and encryption processing device

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5652796A (en) * 1994-06-21 1997-07-29 Pitney Bowes Inc. Data encryption control system
US6205249B1 (en) * 1998-04-02 2001-03-20 Scott A. Moskowitz Multiple transform utilization and applications for secure digital watermarking
CA2333095C (en) * 1998-06-03 2005-05-10 Cryptography Research, Inc. Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
JP3600454B2 (ja) * 1998-08-20 2004-12-15 株式会社東芝 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
US6578061B1 (en) * 1999-01-19 2003-06-10 Nippon Telegraph And Telephone Corporation Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon
US7142670B2 (en) * 2001-08-14 2006-11-28 International Business Machines Corporation Space-efficient, side-channel attack resistant table lookups
KR100605813B1 (ko) * 2003-02-28 2006-08-01 삼성전자주식회사 초 광대역 통신시스템에서 헤더정보 전송장치 및 방법
US7899190B2 (en) * 2004-04-16 2011-03-01 Research In Motion Limited Security countermeasures for power analysis attacks
US7848514B2 (en) * 2004-05-24 2010-12-07 Research In Motion Limited Table masking for resistance to power analysis attacks
FR2873523B1 (fr) 2004-07-22 2007-08-10 Sagem Procede et dispositif d'execution d'un calcul cryptographique
EP1722502B1 (en) * 2005-05-10 2007-09-05 Research In Motion Limited Key masking for cryptographic processes
US7720225B2 (en) * 2006-03-07 2010-05-18 Research In Motion Limited Table splitting for cryptographic processes
JP4936996B2 (ja) * 2007-05-24 2012-05-23 株式会社東芝 非線形データ変換器、暗号化装置、および復号装置
CN101542558A (zh) * 2007-05-30 2009-09-23 松下电器产业株式会社 加密装置、解密装置、加密方法及集成电路
WO2009043139A1 (en) * 2007-10-01 2009-04-09 Research In Motion Limited Substitution table masking for cryptographic processes
US7995749B2 (en) * 2007-10-30 2011-08-09 Harris Corporation Cryptographic system configured for extending a repetition period of a random sequence
WO2009074728A1 (fr) * 2007-12-13 2009-06-18 Oberthur Technologies Procede de traitement cryptographique de donnees, notamment a l'aide d'une boite s, dispositif et programme associes
DE102008033962B4 (de) * 2008-07-21 2011-11-24 Siemens Aktiengesellschaft Verfahren und Prozessor-Einrichtung zum Implementieren einer Charakteristik-2-Multiplikation
FR2952256B1 (fr) * 2009-11-04 2011-12-16 St Microelectronics Rousset Protection d'une cle de chiffrement contre des attaques unidirectionnelles

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070195949A1 (en) * 2006-02-22 2007-08-23 Toshio Okochi Encryption processing method and encryption processing device

Also Published As

Publication number Publication date
US9197412B2 (en) 2015-11-24
CN102648600A (zh) 2012-08-22
EP2499773A1 (fr) 2012-09-19
CA2780719C (en) 2019-08-20
JP5987250B2 (ja) 2016-09-07
KR20120109501A (ko) 2012-10-08
CN102648600B (zh) 2014-12-24
FR2952773A1 (fr) 2011-05-20
FR2952773B1 (fr) 2012-07-20
EP2499773B1 (fr) 2016-02-17
US20130129081A1 (en) 2013-05-23
CA2780719A1 (en) 2011-05-19
ES2571225T3 (es) 2016-05-24
WO2011057991A1 (fr) 2011-05-19
JP2013511057A (ja) 2013-03-28

Similar Documents

Publication Publication Date Title
KR101783495B1 (ko) 커스트마이징된 마스킹에 의해 보호된 저-복잡성 전자 회로
US6295606B1 (en) Method and apparatus for preventing information leakage attacks on a microelectronic assembly
Petit et al. A block cipher based pseudo random number generator secure against side-channel key recovery
Shanmugam et al. Differential power analysis attack on SIMON and LED block ciphers
EP1234403A2 (en) Cryptographic isolator using multiplication
US20170366339A1 (en) Method of encryption with dynamic diffusion and confusion layers
Razaq et al. A novel technique for the construction of safe substitution boxes based on cyclic and symmetric groups
Vliegen et al. Maximizing the throughput of threshold-protected AES-GCM implementations on FPGA
Lavanya et al. Enhancing the security of AES through small scale confusion operations for data communication
Debraize et al. Fault analysis of the stream cipher snow 3G
Huang et al. Low area-overhead low-entropy masking scheme (LEMS) against correlation power analysis attack
Hajra et al. DRECON: DPA resistant encryption by construction
Gandh et al. FPGA implementation of enhanced key expansion algorithm for Advanced Encryption Standard
Zeng et al. Improvement on masked S-box hardware implementation
Chou et al. A high performance, low energy, compact masked 128-bit AES in 22nm CMOS technology
Gupta et al. Correlation power analysis on KASUMI: attack and countermeasure
Ha et al. Differential power analysis on block cipher ARIA
Taha et al. Keymill: Side-channel resilient key generator
Montoya et al. Energy-efficient masking of the trivium stream cipher
Lewandowski et al. Enhancing PRESENT-80 and Substitution-Permutation Network Cipher Security with Dynamic" Keyed" Permutation Networks
Kushwah et al. Chaotic Map based Block Encryption
Marpaung et al. Higher-Order Countermeasures against Side-Channel Cryptanalysis on Rabbit Stream Cipher
Boey et al. How resistant are sboxes to power analysis attacks?
Saini et al. Performance Comparison of Cryptosystems in Context to Internet of Things
Cretu et al. A modified version of Rijndael algorithm implemented to analyze the cyphertexts correlation for switched S-Boxes

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