KR20200022018A - Sbox를 이용하는 암호화 프로세스를 고차 부채널 공격으로부터 보호하기 위한 방법 - Google Patents

Sbox를 이용하는 암호화 프로세스를 고차 부채널 공격으로부터 보호하기 위한 방법 Download PDF

Info

Publication number
KR20200022018A
KR20200022018A KR1020207002622A KR20207002622A KR20200022018A KR 20200022018 A KR20200022018 A KR 20200022018A KR 1020207002622 A KR1020207002622 A KR 1020207002622A KR 20207002622 A KR20207002622 A KR 20207002622A KR 20200022018 A KR20200022018 A KR 20200022018A
Authority
KR
South Korea
Prior art keywords
xor
substitution box
transrandomized
box
encryption
Prior art date
Application number
KR1020207002622A
Other languages
English (en)
Other versions
KR102413846B1 (ko
Inventor
데이비드 비질런트
Original Assignee
탈레스 Dis 프랑스 Sa
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 탈레스 Dis 프랑스 Sa filed Critical 탈레스 Dis 프랑스 Sa
Publication of KR20200022018A publication Critical patent/KR20200022018A/ko
Application granted granted Critical
Publication of KR102413846B1 publication Critical patent/KR102413846B1/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/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/764Masking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • 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
    • 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/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n
    • 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
    • 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/16Obfuscation or hiding, e.g. involving white box

Abstract

본 발명은 N차 부채널 공격으로부터 초기 치환 박스 S0를 복수의 암호화 라운드에서 사용하는 암호화 프로세스를 보호하기 위한 방법과 관련되며, 상기 방법은
초기 치환 박스 S0의 임의의 입력 값 x에 대해 S1(x XOR m1) = S0(x) XOR m2 이도록, 초기 치환 박스 S0를 균일-분포 랜덤 값인 m1, m2로 마스킹함으로써 첫번째 랜덤화된 치환 박스 S1 를 생성하는 단계(E12),
첫 번째 트랜스랜덤화된 치환 박스 S(1,1)의 임의의 입력 값 x에 대해 S(1, 1)[x] = S1[x xor (m1 xor m1,1)] xor (m2 xor m'1,1)이도록 첫번째 랜덤화된 치환 박스 S1 및 마스크 m1,1, m'1,1로부터 첫 번째 트랜스랜덤화된 치환 박스 S(1,1)를 생성하는 단계(E13),
i번째 트랜스랜덤화된 치환 박스 S(1, i)의 임의의 입력 값 x에 대해 S(1, i)[x] = S(1, i-1)[x xor (m1,i-1 xor m1,i)] xor (m'1,i-1 xor m'1,i)이도록 - i는 {2,..N-1}에 속하는 정수임 - , i-1번째 트랜스랜덤화된 치환 박스 S(1, i-1) 및 복수의 마스크 m1,i, m'1,i, m1,i-1, m'1,i-1로부터 i번째 트랜스랜덤화된 치환 박스 S(1, i)를 생성하는 단계를 N-2회 반복 수행함으로써 첫 번째 트랜스랜덤화된 치환 박스 S(1,1)로부터 N-1번째 트랜스랜덤화된 치환 박스 S(1, N-1)를 생성하는 단계(E14), 및
암호화 프로세스의 적어도 1번째에서 초기 치환 박스 S0 대신 N-1번째 트랜스랜덤화된 치환 박스 S(1, N-1)를 이용해 암호화 프로세스를 수행하는 단계(E15)를 포함한다.

Description

SBOX를 이용하는 암호화 프로세스를 고차 부채널 공격으로부터 보호하기 위한 방법
본 발명은 블록 암호화 분야 및 연관된 암호화 장치와 관련되고, 더 구체적으로 고차 부채널 공격으로부터 보호되면서 블록 암호화를 구현하는 암호화 장치에 관한 것이다.
암호화에 의한 통신의 프라이버시를 보장하기 위해, 검증 가능한 서명의 인증 또는 생성을 위해, 암호화 알고리즘이 흔히 사용된다. 이러한 알고리즘의 하나의 예시가 암호화 또는 해역화될 데이터의 입력 비트가 블록으로 처리되는 블록 암호화 알고리즘, 가령, DES 또는 AES이다. 암호 블록 알고리즘은 종종 복수의 암호화 또는 해역화 라운드를 적용함으로써 암호화 또는 해역화를 수행한다. 각각의 라운드는 일반적으로 Sbox라고 불리우는 대체 박스(치환 박스)를 포함하여, 프로세스를 비-선형성로 만들고 따라서 보안을 향상시킨다.
이러한 암호화 알고리즘은 도 1에 도시된 바와 같이 암호화를 구행하는 장치의 전력 소모 또는 전자기 서명의 분석을 기초로 하는 부채널 공격에 민감하다. 특정 유형의 부채널 공격은 복수의 암호화 라운드에서의 전력 소모의 통계적 분석을 수행하여, 도 3에 도시된 바와 같이, 암호화를 위해 사용되는 비밀 키의 적어도 일부분을 복원하는 DPA(Differential Power Analysis)이다.
부채널 공격에 일반적으로 사용되는 보호조치, 가령, DPA는 랜덤 마스크로 암호화 프로세스의 중간 값을 마스킹하는 것이다. 이 경우, 암호화 프로세스의 특정 포인트에서 부채널 공격을 수행하는 공격자는 랜덤 값만 얻을 것이며 암호화 프로세스를 위해 사용되는 비밀 키에 대한 어떠한 정보도 얻지 않을 것이다. 그럼에도, 하나의 마스크를 이용하는 1차 마스킹은 두 번의 공격, 가령, 프로세스의 두 번의 상이한 라운드으로부터의 정보를 조합하는 2차 부채널 공격에 의해 무너질 수 있다.
임의의 변수가 복수의 부분으로 분할될 수 있고, 각각의 부분이 상이한 마스크로 마스킹될 수 있는 고차 마스킹 프로세스가 제안되었다. 그 후 N개의 상이한 마스크를 이용하는 N차 마스킹이 N차 부채널 공격으로부터 보호한다. 그럼에도, 이러한 해결책은 비선형 동작, 가령, 블록 암호화 알고리즘에서 사용되는 Sbox의 경우, 매우 비쌀 수 있다.
결과적으로, 보호될 변수의 고차 분할을 포함하는 기존 해결책보다 적은 자원을 소비하면서, 고차 부채널 공격으로부터 보호되는 블록 암호화 알고리즘 및 이와 연관된 암호화 장치에 대한 필요성이 있다.
이러한 목적을 위해, 그리고 제1 양태에 따라 본 발명은, N이 지정 정수인 N차 부채널 공격으로부터, 복수의 암호화 라운드에서 적어도 하나의 하드웨어 프로세서를 갖는 프로세싱 시스템을 포함하는 암호화 장치의 컴퓨터 판독형 메모리 회로에 저장된 초기 치환 박스 S0를 이용하는 암호화 프로세스를 보안하기 위한 방법과 관련되며, 상기 방법은 프로세싱 시스템에 의해 수행되는,
컴퓨터 판독형 메모리 회로에서 초기 치환 박스 S0를 액세스하는 단계,
초기 치환 박스 S0에 대한 입력 값 x에 대해, S1(x XOR m1) = S0(x) XOR m2이도록, 상기 초기 치환 박스 S0를 균일-분포 랜덤 값인 m1, m2로 마스킹함으로써, 1번째 랜덤화된치환 박스 S1를 생성하는 단계,
첫 번째 트랜스랜덤화된 치환 박스 S(1,1)의 입력 값 x에 대해 S(1, 1)[x] = S1[x xor (m1 xor m1,1)] xor (m2 xor m'1,1)이도록, 첫번째 랜덤화된 치환 박스 S1 로부터 그리고 마스크 m1,1, m'1,1 로부터 첫 번째 트랜스랜덤화된 치환 박스 S(1,1)를 생성하는 단계,
i는 {2,..N-1}에 속하는 정수일 때 i번째 트랜스랜덤화된 치환 박스 S(1, i)의 입력 값 x에 대해 S(1, i)[x] = S(1, i-1)[x xor (m1,i-1 xor m1,i)] xor (m'1,i-1 xor m'1,i)이도록, i-1번째 트랜스랜덤화된 치환 박스 S(1, i-1) 및 복수의 마스크 m1,i, m'1,i, m1,i-1, m'1,i-1로부터 i번째 트랜스랜덤화된 치환 박스 S(1, i)를 생성하는 단계를 N-2회 반복 수행함으로써, 첫 번째 트랜스랜덤화된 치환 박스 S(1,1)로부터 N-1번째 트랜스랜덤화된 치환 박스 S(1, N-1)를 생성하는 단계,
암호화 프로세스의 적어도 1번째에서 초기 치환 박스 S0 대신 N-1번째 트랜스랜덤화된 치환 박스 S(1, N-1)를 이용해 암호화 프로세스를 수행하는 단계
를 포함하며, 마스크는 균일-분포 랜덤 값이며 'XOR'은 부울 배타적 논리합 연산이며, (mi, mj)에서 (mk, ml)로의 치환 박스 S의 "트랜스랜덤화" 연산은 마스크 mi mj로 마스킹된 치환 박스 S로부터, 트랜스랜덤화된 치환 박스라고 지칭되는 마스크 mk ml로 마스킹된 치환 박스 S를 계산하는 것을 포함하며, i, j, k 및 l은 {2,..N-1}에 포함된 정수이다.
N-1번째 트랜스랜덤화된 치환 박스 S(1, N-1)는 암호화 프로세스의 모든 라운드에서 초기 치환 박스 S0 대신 사용될 수 있다.
제1 양태에 따르는 방법은 또한 r>1일 때 복수의 암호화 라운드 중에서 현재 라운드라고 지칭되는 각각의 라운드 r를 수행할 때,
현재 라운드에 대한 첫 번째 트랜스랜덤화된 치환 박스 S(r, 1)의 입력 값 x에 대해 S(r, 1)[x] = S(r-1, N-1)[x xor (mr-1,N-1 xor mr,1)] xor (m'r-1,N-1 xor m'r,1)이도록, 현재 라운드 r 전에 수행된 마지막 라운드 (r-1)에서의 초기 치환 박스 S0 대신 사용되는 N-1번째 트랜스랜덤화된 치환 박스 S(r-1, N-1)로부터 및 mr,1, m'r,1 로부터 현재 라운드 r에 대한 첫 번째 트랜스랜덤화된 치환 박스 S(r, 1)를 생성하는 단계,
i가 {2,..N-1}에 속하는 정수일 때 현재 라운드에 대한 i번째 트랜스랜덤화된 치환 박스 S(r, 1)의 입력 값 x에 대해 S(r, i)[x] = S(r, i-1)[x xor (mr,i-1 xor mr,i)] xor (m'r,i-1 xor m'r,i)이도록, 현재 라운드 r에 대한 i-1번째 트랜스랜덤화된 치환 박스 S(r, i-1)및 복수의 마스크 mr,i, m'r,i, mr,i-1, m'r,i-1 로부터 현재 라운드 r에 대한 i번째 트랜스랜덤화된 치환 박스 S(r, i)를 생성하는 단계를 N-2회 반복 수행함으로 현재 라운드 r에 대한 첫 번째 트랜스랜덤화된 치환 박스 S(r, 1)로부터 현재 라운드 r에 대한 N-1번째 트랜스랜덤화된 치환 박스 S(r, N-1)를 생성하는 단계, 및
암호화 프로세스의 현재 라운드 r에서 초기 치환 박스 S0 대신 현재 라운드 r에 대해 N-1번째 트랜스랜덤화된 치환 박스를 이용하는 단계
를 더 포함할 수 있다.
이렇게 함으로써, 암호화 프로세스는 데이터를 복수의 부분으로 분할하는 것을 이용하는 기존 해결책에 비해 훨씬 낮은 비용으로 N차 부채널 분석 공격으로부터 보호된다.
암호화 프로세스는 블록 암호화 알고리즘일 수 있다.
예를 들어, 블록 암호화 알고리즘은 AES(Advanced Encryption Standard) 알고리즘, DES(Data Encryption Standard), Blowfish, Serpent, 또는 Gost 알고리즘일 수 있다.
따라서 본 발명은 이러한 잘 알려진 그리고 매우 빈번하게 사용되는 암호화 프로세스의 블록 암호화 라운드를 N차 공격으로부터 보호하는 것을 가능하게 한다.
메모리 스크램블링이 수행되어, 라운드 r에서 트랜스랜덤화된 치환 박스 S(r,i)를 생성할 수 있으며, i는 {1,..N-1}에 속하는 정수이다.
이러한 메모리 스크램블링은 원본 치환 박스의 모든 요소를 순열 변경(permute)함으로써 마스킹된 치환 박스를 실제로 생성하는 것에 비교해서 입력 마스크를 치환 박스에 적용하는 비용을 감소시킬 수 있다.
제2 양태에 따라, 본 발명은 컴퓨터 상에서 실행될 때, 제1 양태에 따르는 방법의 단계들을 수행하기 위한 소프트웨어 코드 명령을 포함하는, 적어도 하나의 컴퓨터 상의 메모리로 직접 로딩 가능한 컴퓨터 프로그램 프로덕트와 관련된다.
제3 양태에 따라, 본 발명은 또한 적어도 하나의 하드웨어 프로세서를 갖는 프로세싱 시스템을 포함하는 암호화 장치에 의해 실행될 때 제1 양태에 따르는 방법을 수행하는 실행형 컴퓨터 코드가 저장된 비-일시적 컴퓨터 판독형 매체와 관련된다.
제4 양태에 따라, 본 발명은 청구항 제1항에 따르는 방법의 단계들을 실행하도록 구성된 적어도 하나의 하드웨어 프로세서를 갖는 프로세싱 시스템, 상기 치환 박스를 저장하도록 구성된 컴퓨터 판독형 메모리 회로를 포함하는, 암호화 장치와 관련된다.
이하의 기재 및 첨부된 도면은 특정 양태를 상세히 제공하지만 실시예의 원리가 사용될 수 있는 다양한 방식 중 일부를 나타낸다. 도면을 함께 고려할 때 그 밖의 다른 이점 및 신규한 특징이 다음의 상세한 설명으로부터 자명할 것이고 개시된 실시예는 이러한 모든 양태 및 이의 균등예를 모두 포함하는 것으로 의도된다.
도 1은 본 발명의 하나의 실시예에 따르는 시스템의 개략도이다.
도 2는 본 발명의 하나의 실시예에 따르는 암호화 장치의 개략도이다.
도 3은 고차 부채널 공격의 개략도이다.
도 4는 본 발명의 하나의 실시예에 따라 반복되는 트랜스랜덤화 수단의 개략도이다.
도 5는 본 발명의 하나의 실시예에 따라 N차 부채널 공격으로부터 보호하기 위한 방법을 개략적으로 도시한다.
이하의 상세한 설명에서, 예시로서 본 발명이 실시될 수 있는 특정 실시예를 도시하는 도면이 참조된다. 이들 실시예는 해당 분야의 통상의 기술자가 본 발명을 실시할 수 있도록 충분히 상세히 기재된다. 본 발명의 다양한 실시예가, 상이하더라도, 반드시 상호 배타적은 아님이 이해될 것이다. 예를 들어, 하나읫 lf시예와 관련하여 본 명세서에 기재되는 특정 특징, 구조, 또는 특성이 본 발명의 사상 및 범위 내에 있는 그 밖의 다른 실시예에서 구현될 수 있다. 또한 각각의 개시된 실시예 내 개별 요소의 위치 또는 배열이 본 발명의 사상 및 범위 내에서 수정될 수 있다. 따라서 이하의 상세한 설명은 한정으로 이해되지 않으며 봄 발명의 범위는 청구항 및 상기 청구항에 수반되는 균등예 전체에 의해서만 정의된다.
본 발명은 시스템, 및 연관된 암호화 방법을 제공하는 것을 목표로 하며, 암호화 장치(101)에 의해 수행되는 고차 부채널 공격 블록 암호화 동작에 대해 보호되는 문제을 해결한다.
도 1에 도시된 바와 같이, 이러한 암호화 장치(101)는 사용자에 의해 동작되고, 블록 암호화 알고리즘, 가령, AES(Advanced Encryption Standard) 알고리즘, DES(Data Encryption Standard ), Blowfish, Serpent 또는 Gost 알고리즘을 이용해 암호화 동작, 가령, 데이터 암호화 또는 해역화를 위한 커맨드를 암호화 장치로 전송하는 개인 컴퓨터 또는 서버(102)에 연결될 수 있다. 대안으로, 암호화 장치(101)는 컴퓨터(102)에 임베드될 수 있다.
암호화 장치(101)는 암호화 동작을 수행하기 위한 적어도 하나의 하드웨어 프로세서를 갖는 프로세싱 시스템을 포함하는 임의의 비인가된 액세스에 대해 보호되는 위조 방지 장치(tamper resistant device)(103), 및 이러한 동작에 대해 필요한 데이터를 저장하도록 구성되는 컴퓨터 판독형 메모리 회로를 포함할 수 있다. 이러한 암호화 장치는 예를 들어 스마트카드 장치를 하우징하는 스마트카드 판독기, 또는 전자 장치, 가령, 스마트칩을 포함하는 스마트폰일 수 있다.
도 2는 암호화 장치(101)의 개략도이다. 암호화 장치(101)는 버스(202)를 통해, 랜덤 액세스 메모리(202), 리드-온리 메모리(ROM)(204) 및/또는 비휘발성 메모리(NVM)(205)를 포함하는 컴퓨터 판독형 메모리 회로로 연결되는 적어도 하나의 하드웨어 프로세서를 갖는 프로세싱 시스템(201)을 포함할 수 있다. 암호화 장치(101)는 하드웨어 프로세서에 포함되거나 버스를 통해 이에 연결되는 난수 생성기(RNG)(206)를 더 포함할 수 있다. 암호화 장치(101)는 암호화 장치(101)를 컴퓨터(102)에 연결하도록 사용되는 인터페이스(207)를 더 포함할 수 있다. 이러한 인터페이스는 유선 인터페이스, 가령, USB, 이더넷 또는 썬더볼트(Thunderbolt) 인터페이스, 또는 무선 인터페이스, 가령, 블루투쓰(Bluetooth) 인터페이스일 수 있다. 또한 인터페이스(207)는 암호화 장치(101)를, 컴퓨터(102)와의 통신이 수행될 수 있도록 하는 무선 네트워크, 가령, 광역 네트워크, WiFi 네트워크, 또는 모바일 전화 네트워크로 연결하는 데 사용될 수 있다.
이하에서, N차 부채널 공격으로부터 본 발명의 제1 양태에 따라 암호화 장치(101)에 의해 수행되는 암호화 프로세스를 보호하기 위한 방법의 단계들이 기재되며, 여기서 N은 지정 정수이다.
앞서 기재된 바와 같이, 부채널 공격에 대해 일반적으로 사용되는 조치, 가령, DPA는 마스킹이다. 더 구체적으로, 블록 암호화 계산을 보호하기 위해, SBOX 계산이 마스킹되어 SBOX 계산으로의 입력으로서 제공되는 비밀 데이터를 보호할 수 있다.
본 명세서의 나머지 부분에서, 암호화 프로세스에서 사용되는 모든 마스크가 암호화 장치의 난수 생성기(206)에 의해 생성되는 균일하게 분산되는 난수임이 가정된다. 실시예에서, 임의의 데이터를 마스킹하는 것이 이러한 데이터와 마스크 간에 XOR 연산, 즉, 부울 배타적 또는 연산을 적용함으로써 이뤄지지만, 데이터와 마스크를 조합하는 그 밖의 다른 임의의 산술 연산, 가령, 덧셈, 뺄셈, 또는 곱셈 등이 대신 사용될 수 있다.
SBOX 계산은 입력 측 상에서 마스킹될 수 있다. 그런 다음, SBOX 계산 S(x xor m1)을 수행하기 위해 SBOX S로 제공되기 전에 SBOX 계산으로의 입력으로서 사용될 데이터 x가 입력 마스크 m1에 의해 마스킹된다.
SBOX 계산은 또한 출력 측에서도 마스킹될 수 있다. SBOX S(x)의 임의의 출력 데이터가 출력 마스크 m2에 의해 마스킹되어, 입력 데이터 x로부터 값 S(x) xor m2을 생성할 수 있다.
입력 마스킹과 출력 마스킹 모두 조합될 수 있다. 이하에서, 입력 마스크 m1와 출력 마스크 m2 모두를 갖는 SBOX S를 이용해 SBOX 계산을 마스킹하는 것이 "마스크(m1, m2)로 SBOX S를 마스킹하는 것"으로 지칭될 것이다.
입력으로서 마스킹된 입력을 이용하는 SBOX 계산으로부터 출력 마스크 m2로 마스킹된 값 S(x)을 얻기 위해, SBOX 계산의 비선형성에도 불구하고, (m1,m2)로 마스킹된 SBOX S'가 본래의 마스킹되지 않은 SBOX S로부터 계산되어, S'(x XOR m1) = S(x) XOR m2일 수 있다.
그런 다음 S'에서 m1로 입력을 마스킹하는 것이 S에서의 값의 순열 변경(permutation)과 등가이다: 입력 데이터에 대응하는 위치에서 원본 SBOX S에 위치하는 값 S(x)가 입력 데이터 x XOR m1에 대응하는 위치에서 마스킹된 SBOX S'에 위치되어, 평가 S'(x XOR m1)로부터 S(x)를 얻을 수 있다.
원본 SBOX의 모든 요소를 순열 변경함으로써 마스킹된 SBOX를 실제로 생성하는 대신, 메모리 스크램블링에 의해 입력 마스킹이 수행될 수 있다. 그런 다음 마스킹된 SBOX S'(x xor m1)의 값과 입력 x xor m1 간의 매칭이 가상 메모리 어드레싱을 이용해 저장되고, 메모리 포인터를 업데이트하여 원본 입력 x 대신 마스킹된 입력 x xor m1을 가리킴으로써 입력 마스킹이 수행된다. 이러한 메모리 스크램블링이 암호화 장치(101)의 프로세싱 시스템(201)에 의해 핸들링되는 소프트웨어 동작에 의해 또는 암호 장치에 포함되는 전용 하드웨어 회로에 의해 수행될 수 있다.
이러한 입력 마스킹에 더해, S'(x XOR m1) = S(x) XOR m2를 갖기 위해, 마스킹된 SBOX S'의 값이 원본 SBOX S의 모든 값을 출력 마스크 m2로 마스킹함으로써 획득된다. 이러한 출력 마스킹이 또한 암호화 장치(101)의 프로세싱 시스템(201)에 의해 핸들링되는 소프트웨어 동작에 의해 또는 암호화 장치에 포함되는 전용 하드웨어에 의해 수행될 수 있다.
그런 다음 마스킹된 SBOX S'를 이용해 SBOX 계산을 수행하는 것이 SOX 연산의 비선형성에도 불구하고, 마스킹된 값을 입력 (x xor m1)으로서 이용한 이러한 계산을 수행하고, 출력에서 출력 마스크 m2로 보호되는 관심 값 S(x)을 얻는 것을 가능하게 한다.
불행히도, 이러한 (m1, m2) 마스킹은 1차 공격에 대해서만 보호한다. 공격자는 여전히, 도 3에 도시된 바와 같이, 예를 들어, 도 1에 도시된 오실로스코프(104)를 이용해 부채널 분석 공격에 의해 획득된 두 개의 누출을 조합함으로써 이러한 SBOX 계산의 입력 데이터 x를 복원할 수 있을 것이다. 예를 들어 공격자는 마스킹된 SBOX 계산의 분석으로부터 (m1,m2)에 대한 누출을 얻을 수 있고, 블록 암호화 자체로부터 (m1,m2)로 마스킹된 x 또는 S(x)에 대한 누출을 얻을 수 있으며, 두 누출을 조합하여 x 또는 S(x)에 대한 정보를 얻을 수 있다.
이러한 공격을 무력화하기 위해, 본 발명의 첫 번째 목표는 원본 비마스킹된 SBOX로부터 하나의 단계로는 계산되지 않을 마스킹된 SBOX를 이용해 블록 암호화를 수행함으로써, 단 두 개의 누출의 이러한 조합이 성공하는 것을 막는 것이다. 다시 말하면, 원본 비마스킹된 SBOX로부터의 어떠한 마스킹된 SBOX도 블록 암호화를 위해 사용되는 마스킹된 SBOX를 마스킹하는 것과 동일한 마스크를 이용해 수행되지 않을 것이다.
이렇게 하기 위해, 블록 암호화를 위해 사용되는 마스킹된 SBOX, 가령, (m3, m4)로 마스킹된 S2가 상이한 마스크를 이용해 이미 마스킹된 SBOX 테이블, 가령,(m1, m2)로 마스킹된 S1, 원본 테이블로부터 획득된 것으로부터 계산될 것이다. 이러한 연산이 (m1, m2)에서 (m3, m4)로의 "트랜스랜덤화(transrandomization)"라고 불리운다. 그 후 트랜스랜덤화된 테이블 S2가 다른 마스킹된 테이블 S1의 임의의 입력 값 x에 대해 S2[x] = S1[x xor (m1 xor m3)] xor (m2 xor m4)가 된다. 이는 S1으로부터 다음에 의해 획득될 수 있다:
- S1의 입력을 (m1 xor m3)로 마스킹하기, 이는 m1을 이용한 S1의 입력 마스킹을 m3을 이용한 S2의 입력 마스킹으로 대체함,
- S2의 출력을 (m2 xor m4)로 마스킹하기, 이는 m2를 이용한 S1의 출력 마스킹을 m4를 이용한 S2의 출력 마스킹으로 대체함.
트랜스랜덤화에 의해 획득된 이러한 마스킹된 SBOX를 이용해 블록 암호화가 수행될 때, 블록 암호화가 수행될 때 그리고 마스킹된 SBOX 계산이 수행될 때 공격자가 부채널 분석 공격을 수행할 수 있다고 가정하면, 공격자는:
- 블록 암호화의 분석으로부터 x 또는 (m3, m4)로 마스킹된 S(x)에 대한 누출을 얻고,
- 원본 SBOX의 마스킹의 분석으로부터, 즉, S1의 계산으로부터, (m1,m2)에 대한 누출을 얻을 수 있다.
따라서 공격자는 이들 두 개의 누출값의 조합만으로 비밀 입력 데이터 x 또는 S(x)에 대한 정보를 얻을 수 없다. 공격자는 이들 누출값을 (m1, m2)와 (m3, m4) 간 링크에 대한 정보를 제공하는 트랜스랜덤화 연산의 분석, 즉, S1으로부터의 S2의 계산으로부터의 제3의 값과 추가로 조합해야 한다.
따라서 이러한 단일 트랜스랜덤화가 2차 공격에 대해 블록 암호화를 보호하는 것을 가능하게 하며 공격자는 성공하기 위해 3차 공격을 수행할 필요가 있다.
고차 공격으로부터 블록 암호화를 보호하기 위해, 이러한 트랜스랜덤화가 도 4에 도시된 바와 같이 반복될 수 있다. 이 예시에서, N차 부채널 공격에 대해, 비마스킹된 초기 치환 박스 S0로 수행되도록 초기에 설계된 블록 암호화를 보호하기 위해, 암호화 장치의 프로세싱 시스템은 우선, 초기 치환 박스 S0의 임의의 입력 값 x에 대해, S1(x XOR m1) = S0(x) XOR m2이도록(이때 m1, m2는 균일-분포 랜덤 값임) 초기 치환 박스 S0를 마스킹함으로써 1번째 랜덤화된치환 박스 S1을 생성할 수 있다.
그 후, 암호화 장치의 프로세싱 시스템이, 랜덤화된 또는 트랜스랜덤화된 치환 박스 Si의 임의의 입력 값 x에 대해 Si+1[x] = Si[x xor (m2i-1 xor m2(i+1)-1)] xor (m2i xor m2i+2)이도록(i는 {1,..N-1}에 속하는 정수), i=1일 때 랜덤화된 또는 i>1일 때 트랜스랜덤화된 i번째 치환 박스 Si 및 복수의 마스크(m2i-1, m2(i+1)-1, m2i, and m2i+2)로부터 (i+1)번째 트랜스랜덤화된 치환 박스 Si+1를 생성하는 단계를 N-1번 반복 수행함으로써 1번째 랜덤화된 치환 박스 S1으로부터 N번째 치환 박스 SN을 생성할 수 있다.
마지막으로, 암호화 장치의 프로세싱 시스템은 초기 치환 박스 S0 대신 N번째 트랜스랜덤화된 치환 박스 SN을 이용해 블록 암호화를 수행할 수 있다.
마스킹된 SBOX Si에 대한 마스크로서 사용되는 입력 마스크 m2i-1 및 출력 마스크 m2i의 세트(m2i-1, m2i)를 Ri로 두자. 블록 암호화가 수행될 때 그리고 초기 비마스킹된 SBOX S0로부터 또는 트랜스랜덤화에 의해 마스킹된 SBOX 계산이 수행될 때 공격자가 부채널 분석 공격을 수행할 수 있음을 가정하면, 이러한 공격자는:
블록 암호화의 분석으로부터 RN으로 마스킹된 x 또는 S(x)에 대한 누출값을 얻고,
마스킹된 SBOX Si의 임의의 트랜스랜덤화 컴퓨팅으로부터, 에 대한 누출값 Ri-1 xor Ri을 얻으며,
초기 SBOX의 마스킹의 분석으로부터, 즉, S1의 계산으로부터, R1의 누출값을 얻을 것이다.
마스킹된 SBOX Si의 이러한 트랜스랜덤화 계산이 Ri-1 xor Ri에 대한 정보만 누출하는 방식으로 수행될 것이다. 가령, Ri-1 또는 Ri의 마스크만 이용한 중간 계산을 수행함으로써 Ri-1 만 또는 Ri 만에 대한 정보는 누출되지 않을 것이다. 예를 들어, 트랜스랜덤화된 SBOX의 값에 대한 "xor (m2i xor m2i+2)" 연산을 수행하기 위한 암호화 장치의 프로세싱 시스템은 m2i에 대한 누출을 막기 위해 우선 "xor m2i"를 수행하지 않을 것이다.
따라서, x 또는 S(x)에 대한 정보를 얻기 위해, 공격자는 블록 암호화, 모든 (N-1) 트랜스랜덤화 연산, 및 초기 SBOX의 마스킹으로부터 N+1 누출값을 조합해야 한다.
하나의 실시예에서, 블록 암호화 동작을 수행하기 전에, 수행될 트랜스랜덤화 동작의 수, 즉, N의 값을 그때 그때 선택함으로써 보호 레벨이 동작의 특정 상황에 적응될 수 있다.
대안적 실시예에서, 모든 필요한 mj xor mj+2 값(j는 정수)이 사전계산되고, 암호화 장치(101)의 컴퓨터 판독형 메모리 회로에 저장되며, 트랜스랜덤화 동작을 수행할 때 암호화 장치의 프로세싱 시스템에 의해 차후 사용될 수 있다.
암호화 프로세스, 가령, AES 또는 DES 블록 암호화는 복수의 암호화 라운드를 수행한다. 이러한 프로세스를 보호하기 위해, 프로세스의 첫 번째 암호화 라운드를 수행하기 전에 트랜스랜덤화가 수행될 수 있다.
1번째에 대해 i번째 트랜스랜덤화 치환 박스 SBOX를 S(1, i)로 두고(이때, i는 {1,..N-1}에 속하는 정수), 1번째의 1번째 랜덤화된 SBOX S1에 대한 마스크로서 사용되는 입/출력 마스크(m1, m2)의 세트를 R1,0로 두며, 1번째에 대한 i번째 트랜스랜덤화된 치환 박스 SBOX에 대한 마스크로서 사용되는 입력 마스크 m1,i 및 출력 마스크 m'1,i의 세트(m1,i , m'1,i)를 R1,i로 둔다.
첫 번째 양태에 따라, 본 발명은 N차 부채널 공격에 대해(N은 지정 정수), 복수의 암호화 라운드를 이용하고, 초기 치환 박스 S0가 암호화 장치의 컴퓨터 판독형 메모리 회로에 저장된 암호화 프로세스를 보호하기 위한 방법과 관련되며, 상기 방법은 도 5에 기재되면 프로세싱 시스템에 의해 수행되는 다음의 단계를 포함한다:
1번째 초기 단계 E11 동안, 컴퓨터 판독형 메모리 회로에서 상기 초기 치환 박스 S0를 액세스하는 단계,
2번째 초기 단계 E12 동안, 초기 치환 박스 S0의 임의의 입력 값 x에 대해, S1(x XOR m1) = S0(x) XOR m2이도록 상기 초기 치환 박스 S0를 마스킹함으로서 1번째 랜덤화된 치환 박스 S1을 생성하는 단계 - 이때 m1, m2 은 균일-분포 랜덤 값임 - ,
3번째 초기 단계 E13 동안, 1번째 트랜스랜덤화된 치환 박스 S(1,1)의 임의의 입력 값 x에 대해 S(1, 1)[x] = S1[x xor (m1 xor m1,1)] xor (m2 xor m'1,1)이도록 1번째 랜덤화된 치환 박스 S1 및 마스크 m1,1, m'1,1로부터 1번째 트랜스랜덤화된 치환 박스 S(1,1)를 생성하는 단계,
4번째 초기화 단계 E14 동안, i번째 트랜스랜덤화된 치환 박스 S(1, i)의 임의의 입력 값 x에 대해 S(1, i)[x] = S(1, i-1)[x xor (m1,i-1 xor m1,i)] xor (m'1,i-1 xor m'1,i)이도록(i는 {2,..N-1}에 속하는 정수), i-1번째 트랜스랜덤화된 치환 박스 S(1, i-1) 및 복수의 마스크 m1,i, m'1,i, m1,i-1, m'1,i-1로부터 i번째 트랜스랜덤화된 치환 박스 S(1, i)를 생성하는 단계를 N-2회 반복 수행함으로써, 1번째 트랜스랜덤화된 치환 박스 S(1,1)로부터 N-1번째 트랜스랜덤화된 치환 박스 S(1, N-1)를 생성하는 단계,
5번째 초기 단계 E15 동안 암호화 프로세스의 적어도 1번째에서 초기 치환 박스 S0 대신 N-1번째 트랜스랜덤화된 치환 박스 S(1, N-1)를 이용한 암호화 프로세스를 수행하는 단계.
암호화 프로세스의 모든 라운드에서 N-1번째 트랜스랜덤화된 치환 박스 S(1, N-1)가 초기 치환 박스 S0 를 대신하여 사용될 수 있다.
불행히도, 공격자는 복수의 라운드의 블록 암호화로부터의 누출값을 조합할 수 있다. 두 번의 블록 암호화 라운드가 동일하게 마스킹된 SBOX로 계산된 경우, 이들 두 라운드로부터의 누출값을 조합하는 공격자는 전체 암호화 프로세스로의 입력으로서 사용되는 비밀 값에 대한 정보를 불러올 수 있다.
따라서 공격자가 복수의 라운드로부터의 누출값을 조합할 때에도 이 암호화 프로세스를 N차 공격에 대해 보호되도록 유지하기 위해, SBOX 마스킹은 프로세스의 각각의 라운드 전에 수정될 수 있다. 이렇게 하기 위해, 도 5에 도시된 바와 같이, 본 발명에 따르는 트랜스랜덤화가 프로세스의 각각의 새로운 라운드 전에 수행될 수 있다.
r번째 라운드에 대해 i번째 트랜스랜덤화된 치환 박스 SBOX를 S(r, i)로 두고(i는 {1,..N-1}에 속하는 정수), 1번째의 1번째 랜덤화된 SBOX S1에 대한 마스크로서 사용되는 입/출력 마스크의 세트(m1, m2)를 R1,0로 두고, r번째 라운드에 대한 i번째 트랜스랜덤화된 치환 박스 SBOX S(r, i)에 대한 마스크로서 사용되는 입력 마스크 및 출력 마스크의 세트 (mr,i , m'r,i)를 Rr,i으로 둔다.
결과적으로, 제1 양태에 따른 방법이, 복수의 암호화 라운드 중에서, 현재 라운드라고 지칭되는 각각의 라운드 r, r>1에서 수행될 때,
1번째 사후-암호화 단계 E21 동안, 현재 라운드에 대한 1번째 랜덤화된 치환 박스 S(r, 1)의 임의의 입력 값 x에 대해 S(r, 1)[x] = S(r-1, N-1)[x xor (mr-1,N-1 xor mr,1)] xor (m'r-1,N-1 xor m'r,1)이도록, 현재 라운드 r 전에 수행되는 마지막 라운드(r-1)에서의 초기 치환 박스 S0 대신 N-1번째 트랜스랜덤화된 치환 박스 S(r-1, N-1)로부터 그리고 마스크 mr,1, m'r,1 로부터 현재 라운드 r에 대한 첫번째 트랜스랜덤화된 치환 박스 S(r, 1)를 생성하는 단계,
2번째 사후-암호화 단계 E22 동안, 현재 라운드에 대한 i번째 트랜스랜덤화된 치환 박스 S(r, 1)의 임의의 입력 값 x에 대해 S(r, i)[x] = S(r, i-1)[x xor (mr,i-1 xor mr,i)] xor (m'r,i-1 xor m'r,i)이도록(i는 {2,..N-1}에 속하는 정수), 현재 라운드 r에 대한 i-1번째 트랜스랜덤화된 치환 박스 S(r, i-1) 및 복수의 마스크 mr,i, m'r,i, mr,i-1, m'r,i-1 로부터 현재 라운드 r에 대한 i번째 트랜스랜덤화된 치환 박스 S(r, i)를 생성하는 단계를 N-2회 반복 수행함으로써, 현재 라운드 r에 대한 첫 번째 트랜스랜덤화된 치환 박스 S(r, 1)로부터, 현재 라운드 r에 대한 N-1번째 트랜스랜덤화된 치환 박스 S(r, N-1)를 생성하는 단계,
3번째 사후-암호화 단계 E23 동안, 암호화 프로세스의 현재 라운드 r에서 초기 치환 박스 S0 대신 N-1번째 트랜스랜덤화된 치환 박스 S(r, N-1)를 이용하는 단계
를 포함한다.
블록 암호화가 수행될 때 그리고 트랜스랜덤화에 의해 마스킹된 SBOX 계산이 수행될 때 공격자가 부채널 분석 공격을 수행할 수 있다고 가정하면, 공격자는, 도 5에 도시된 바와 같이,
라운드 r에서의 블록 암호화의 분석으로부터 Rr, N-1로 마스킹된 x 또는 S(x)에 대한 누출값을 얻을 것이며,
라운드 r 및 r-1에서의 블록 암호화 간에 수행되는 트랜스랜덤화로부터 (Rr-1, N-1 xor Rr, 1) 및 Rr, i-1 xor Rr, i 에 대한 누출값을 얻을 것이고(i는 {2,...,N-1}에 속함),
라운드 r-1에서의 블록 암호화의 분석으로부터 Rr-1, N-1로 마스킹된 x 또는 S(x)에 대한 누출값을 얻을 것이다.
따라서 x 또는 S(x)에 대한 정보를 얻기 위해, 공격자는, 라운드 r 및 r-1에서의 블록 암호화로부터, 그리고 이들 사이에 수행되는 모든 트랜스랜덤화 연산으로부터의 N+1개의 누출값을 조합해야 한다.
따라서 입력 데이터를 복수의 부분으로 분할할 필요 없이 그리고 제한된 메모리 및 프로세싱 비용으로, 각각의 블록 암호화 계산 사이에 충분한 트랜스랜덤화 동작이 수행된다고 가정되면, 이러한 암호화 장치에 의해 보호되는 블록 암호화 알고리즘이 임의의 차수의 부채널 공격에 대해 보호되고,
제2 양태에 따르면, 본 발명은 적어도 하나의 컴퓨터의 메모리로 직접 로딩 가능한 컴퓨터 프로그램 프로덕트와 관련되며, 상기 컴퓨터 프로그램 프로덕트는 컴퓨터 상에서 실행될 때 제1 양태에 따르는 방법의 단계를 수행하기 위한 소프트웨어 코드 명령을 포함한다.
제3 양태에 따르면, 본 발명은 또한 적어도 하나의 하드웨어 프로세서를 갖는 프로세싱 시스템을 포함하는 암호화 장치에 의해 실행될 때 제1 양태에 따른 방법을 수행하는 실행형 컴퓨터 코드를 저장하는 비-일시적 컴퓨터 판독형 매체와 관련된다.
제4 양태에 따르면, 본 발명은 암호화 장치(101)와 관련되며, 상기 장치는
제1 양태에 따르는 방법의 단계를 실행하도록 구성된 적어도 하나의 하드웨어 프로세서(201)를 갖는 프로세싱 시스템,
상기 치환 박스를 저장하도록 구성된 컴퓨터 판독형 메모리 회로(203, 204, 205)를 포함한다.

Claims (9)

  1. N이 지정 정수인 N차 부채널 공격으로부터, 복수의 암호화 라운드에서 적어도 하나의 하드웨어 프로세서를 갖는 프로세싱 시스템을 포함하는 암호화 장치(101)의 컴퓨터 판독형 메모리 회로에 저장된 초기 치환 박스 S0를 이용하는 암호화 프로세스를 보안하기 위한 방법으로서, 상기 방법은 프로세싱 시스템에 의해 수행되는,
    컴퓨터 판독형 메모리 회로에서 초기 치환 박스 S0를 액세스하는 단계(E11),
    초기 치환 박스 S0에 대한 입력 값 x에 대해, S1(x XOR m1) = S0(x) XOR m2이도록, 상기 초기 치환 박스 S0를 균일-분포 랜덤 값인 m1, m2로 마스킹함으로써, 1번째 랜덤화된치환 박스 S1를 생성하는 단계(E12),
    첫 번째 트랜스랜덤화된 치환 박스 S(1,1)의 입력 값 x에 대해 S(1, 1)[x] = S1[x xor (m1 xor m1,1)] xor (m2 xor m'1,1)이도록, 첫번째 랜덤화된 치환 박스 S1 로부터 그리고 마스크 m1,1, m'1,1 로부터 첫 번째 트랜스랜덤화된 치환 박스 S(1,1)를 생성하는 단계(E13),
    i는 {2,..N-1}에 속하는 정수일 때 i번째 트랜스랜덤화된 치환 박스 S(1, i)의 입력 값 x에 대해 S(1, i)[x] = S(1, i-1)[x xor (m1,i-1 xor m1,i)] xor (m'1,i-1 xor m'1,i)이도록, i-1번째 트랜스랜덤화된 치환 박스 S(1, i-1) 및 복수의 마스크 m1,i, m'1,i, m1,i-1, m'1,i-1로부터 i번째 트랜스랜덤화된 치환 박스 S(1, i)를 생성하는 단계를 N-2회 반복 수행함으로써, 첫 번째 트랜스랜덤화된 치환 박스 S(1,1)로부터 N-1번째 트랜스랜덤화된 치환 박스 S(1, N-1)를 생성하는 단계(E14),
    암호화 프로세스의 적어도 1번째에서 초기 치환 박스 S0 대신 N-1번째 트랜스랜덤화된 치환 박스 S(1, N-1)를 이용해 암호화 프로세스를 수행하는 단계(E15)
    를 포함하며, 마스크는 균일-분포 랜덤 값이며 'XOR'은 부울 배타적 논리합 연산이며, (mi, mj)에서 (mk, ml)로의 치환 박스 S의 "트랜스랜덤화" 연산은 마스크 mi mj로 마스킹된 치환 박스 S로부터, 트랜스랜덤화된 치환 박스라고 지칭되는 마스크 mk ml로 마스킹된 치환 박스 S를 계산하는 것을 포함하며, i, j, k 및 l은 {2,..N-1}에 포함된 정수인, 암호화 프로세스를 보안하기 위한 방법.
  2. 제1항에 있어서, N-1번째 트랜스랜덤화된 치환 박스 S(1, N-1)는 암호화 프로세스의 모든 라운드에서 초기 치환 박스 S0 대신 사용되는, 암호화 프로세스를 보안하기 위한 방법.
  3. 제1항에 있어서, r>1일 때 복수의 암호화 라운드 중에서 현재 라운드라고 지칭되는 각각의 라운드 r를 수행할 때,
    현재 라운드에 대한 첫 번째 트랜스랜덤화된 치환 박스 S(r, 1)의 입력 값 x에 대해 S(r, 1)[x] = S(r-1, N-1)[x xor (mr-1,N-1 xor mr,1)] xor (m'r-1,N-1 xor m'r,1)이도록, 현재 라운드 r 전에 수행된 마지막 라운드 (r-1)에서의 초기 치환 박스 S0 대신 사용되는 N-1번째 트랜스랜덤화된 치환 박스 S(r-1, N-1)로부터 및 mr,1, m'r,1 로부터 현재 라운드 r에 대한 첫 번째 트랜스랜덤화된 치환 박스 S(r, 1)를 생성하는 단계(E21),
    i가 {2,..N-1}에 속하는 정수일 때 현재 라운드에 대한 i번째 트랜스랜덤화된 치환 박스 S(r, 1)의 입력 값 x에 대해 S(r, i)[x] = S(r, i-1)[x xor (mr,i-1 xor mr,i)] xor (m'r,i-1 xor m'r,i)이도록, 현재 라운드 r에 대한 i-1번째 트랜스랜덤화된 치환 박스 S(r, i-1)및 복수의 마스크 mr,i, m'r,i, mr,i-1, m'r,i-1 로부터 현재 라운드 r에 대한 i번째 트랜스랜덤화된 치환 박스 S(r, i)를 생성하는 단계를 N-2회 반복 수행함으로 현재 라운드 r에 대한 첫 번째 트랜스랜덤화된 치환 박스 S(r, 1)로부터 현재 라운드 r에 대한 N-1번째 트랜스랜덤화된 치환 박스 S(r, N-1)를 생성하는 단계(E22), 및
    암호화 프로세스의 현재 라운드 r에서 초기 치환 박스 S0 대신 현재 라운드 r에 대해 N-1번째 트랜스랜덤화된 치환 박스를 이용하는 단계(E23)
    를 포함하는, 암호화 프로세스를 보안하기 위한 방법.
  4. 제1항에 있어서, 암호화 프로세스는 블록 암호화 알고리즘인, 암호화 프로세스를 보안하기 위한 방법.
  5. 제2항에 있어서, 블록 암호화 알고리즘이 AES(Advanced Encryption Standard) 알고리즘, DES(Data Encryption Standard), Blowfish, Serpent, 또는 Gost 알고리즘인, 암호화 프로세스를 보안하기 위한 방법.
  6. 제3항에 있어서, 메모리 스크램블링이 수행되어, 라운드 r에서 트랜스랜덤화된 치환 박스 S(r,i)를 생성하며, i는 {1,..N-1}에 속하는 정수인, 암호화 프로세스를 보안하기 위한 방법.
  7. 컴퓨터 상에서 실행될 때, 청구항 제1항에 따르는 방법의 단계들을 수행하기 위한 소프트웨어 코드 명령을 포함하는, 적어도 하나의 컴퓨터 상의 메모리로 직접 로딩 가능한 컴퓨터 프로그램 프로덕트.
  8. 적어도 하나의 하드웨어 프로세서를 갖는 프로세싱 시스템을 포함하는 암호화 장치에 의해 실행될 때 청구항 제1항의 방법을 수행하는 실행형 컴퓨터 코드가 저장된 비-일시적 컴퓨터 판독형 매체.
  9. 암호화 장치(101)로서,
    청구항 제1항에 따르는 방법의 단계들을 실행하도록 구성된 적어도 하나의 하드웨어 프로세서(201)를 갖는 프로세싱 시스템,
    상기 치환 박스를 저장하도록 구성된 컴퓨터 판독형 메모리 회로(203, 204, 205))
    를 포함하는, 암호화 장치.
KR1020207002622A 2017-06-28 2018-06-28 Sbox를 이용하는 암호화 프로세스를 고차 부채널 공격으로부터 보호하기 위한 방법 KR102413846B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP17305806.6 2017-06-28
EP17305806.6A EP3422176A1 (en) 2017-06-28 2017-06-28 Method for securing a cryptographic process with sbox against high-order side-channel attacks
PCT/EP2018/067421 WO2019002470A1 (en) 2017-06-28 2018-06-28 METHOD FOR SECURING A CRYPTOGRAPHIC PROCESS WITH SBOX AGAINST HIGH-ORDER LATERAL CHANNEL ATTACKS

Publications (2)

Publication Number Publication Date
KR20200022018A true KR20200022018A (ko) 2020-03-02
KR102413846B1 KR102413846B1 (ko) 2022-06-27

Family

ID=59982318

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207002622A KR102413846B1 (ko) 2017-06-28 2018-06-28 Sbox를 이용하는 암호화 프로세스를 고차 부채널 공격으로부터 보호하기 위한 방법

Country Status (6)

Country Link
US (1) US11256478B2 (ko)
EP (2) EP3422176A1 (ko)
JP (1) JP7076482B2 (ko)
KR (1) KR102413846B1 (ko)
ES (1) ES2890138T3 (ko)
WO (1) WO2019002470A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3078464A1 (fr) * 2018-02-26 2019-08-30 Stmicroelectronics (Rousset) Sas Procede et circuit de mise en oeuvre d'une table de substitution
FR3078463A1 (fr) * 2018-02-26 2019-08-30 Stmicroelectronics (Rousset) Sas Procede et dispositif de realisation d'operations en table de substitution
US11218291B2 (en) * 2018-02-26 2022-01-04 Stmicroelectronics (Rousset) Sas Method and circuit for performing a substitution operation
DE102018107114A1 (de) * 2018-03-26 2019-09-26 Infineon Technologies Ag Seitenkanalgehärtete Operation
EP3957023B1 (en) * 2019-04-15 2022-10-19 Telefonaktiebolaget Lm Ericsson (Publ) Low depth aes sbox architecture for area-constraint hardware
JP7314108B2 (ja) * 2020-08-27 2023-07-25 株式会社東芝 暗号処理装置、暗号処理方法およびプログラム
CN113922943B (zh) * 2021-09-29 2023-09-19 哲库科技(北京)有限公司 Sbox电路、运算方法及电子设备
CN114048472B (zh) * 2022-01-17 2022-06-24 浙江大学 基于线性码掩码和位切片技术的抗旁路攻击的防御方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170063523A1 (en) * 2015-09-02 2017-03-02 Stmicroelectronics (Rousset) Sas Dpa protection of a rijndael algorithm

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7142670B2 (en) * 2001-08-14 2006-11-28 International Business Machines Corporation Space-efficient, side-channel attack resistant table lookups
US8582774B2 (en) 2002-03-07 2013-11-12 Gemalto Sa Method for making safe an electronic cryptography assembly with a secret key
US7403620B2 (en) * 2002-07-02 2008-07-22 Stmicroelectronics S.A. Cyphering/decyphering performed by an integrated circuit
US7949883B2 (en) * 2004-06-08 2011-05-24 Hrl Laboratories, Llc Cryptographic CPU architecture with random instruction masking to thwart differential power analysis
FR2893796B1 (fr) * 2005-11-21 2008-01-04 Atmel Corp Procede de protection par chiffrement
JPWO2009072547A1 (ja) * 2007-12-05 2011-04-28 日本電気株式会社 サイドチャネル攻撃耐性評価装置、方法及びプログラム
FR2941342B1 (fr) * 2009-01-20 2011-05-20 Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst Circuit de cryptographie protege contre les attaques en observation, notamment d'ordre eleve.
FR2952773B1 (fr) 2009-11-13 2012-07-20 Inst Telecom Telecom Paristech Circuit electronique de faible complexite protege par masquage personnalise
US8971526B2 (en) 2011-07-26 2015-03-03 Crocus-Technology Sa Method of counter-measuring against side-channel attacks
FR2985624B1 (fr) * 2012-01-11 2014-11-21 Inside Secure Procede de chiffrement protege contre des attaques par canaux auxiliaires
US20160105276A1 (en) * 2014-10-10 2016-04-14 Qualcomm Incorporated Rotation-based cipher
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
FR3040513B1 (fr) * 2015-09-02 2018-11-16 Stmicroelectronics (Rousset) Sas Protection d'un algorithme de rijndael
US10461925B2 (en) * 2016-09-01 2019-10-29 Cryptography Research, Inc. Hardware masked substitution box for the data encryption standard

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170063523A1 (en) * 2015-09-02 2017-03-02 Stmicroelectronics (Rousset) Sas Dpa protection of a rijndael algorithm

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CARLET CLAUDE ET AL: "Higher-Order Masking Schemes for S-Boxes", NETWORK AND PARALLEL COMPUTING (2012.03.19.) *
PROUFF EMMANUEL ET AL: "Masking against Side-Channel Attacks: A Formal Security Proof", NETWORK AND PARALLEL COMPUTING (2013.05.26.) *
RIVAIN MATTHIEU ET AL: "Provably Secure Higher-Order Masking of AES", NETWORK AND PARALLEL COMPUTING (2010.08.17.) *

Also Published As

Publication number Publication date
JP7076482B2 (ja) 2022-05-27
WO2019002470A1 (en) 2019-01-03
EP3422176A1 (en) 2019-01-02
ES2890138T3 (es) 2022-01-17
JP2020527743A (ja) 2020-09-10
EP3646165A1 (en) 2020-05-06
US20200125333A1 (en) 2020-04-23
KR102413846B1 (ko) 2022-06-27
US11256478B2 (en) 2022-02-22
EP3646165B1 (en) 2021-08-04

Similar Documents

Publication Publication Date Title
KR102413846B1 (ko) Sbox를 이용하는 암호화 프로세스를 고차 부채널 공격으로부터 보호하기 위한 방법
CN110235409A (zh) 使用同态加密被保护的rsa签名或解密的方法
US11436946B2 (en) Encryption device, encryption method, decryption device, and decryption method
US20200076594A1 (en) Key update for masked keys
US11269993B2 (en) Encryption device, encryption method, decryption device, and decryption method
US8958556B2 (en) Method of secure cryptographic calculation, in particular, against attacks of the DFA and unidirectional type, and corresponding component
CN111602367B (zh) 用于保护在使白盒密码算法安全的对策中使用的熵源的方法
EP3832945A1 (en) System and method for protecting memory encryption against template attacks
US20200382271A1 (en) Methods for implementing and obfuscating a cryptographic algorithm having a given secret key
US11528123B2 (en) Computing device processing expanded data
Oswald et al. Side-channel analysis and its relevance to fault attacks
CN117768099A (zh) 一种数据处理方法、装置、设备及可读存储介质
Andraşiu et al. Evaluation of Cryptographic Algorithms

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant