KR20150123476A - 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법 - Google Patents

부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법 Download PDF

Info

Publication number
KR20150123476A
KR20150123476A KR1020140049789A KR20140049789A KR20150123476A KR 20150123476 A KR20150123476 A KR 20150123476A KR 1020140049789 A KR1020140049789 A KR 1020140049789A KR 20140049789 A KR20140049789 A KR 20140049789A KR 20150123476 A KR20150123476 A KR 20150123476A
Authority
KR
South Korea
Prior art keywords
function
functions
nonlinear
linear
bits
Prior art date
Application number
KR1020140049789A
Other languages
English (en)
Inventor
김태성
최두호
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020140049789A priority Critical patent/KR20150123476A/ko
Priority to US14/680,320 priority patent/US9577821B2/en
Publication of KR20150123476A publication Critical patent/KR20150123476A/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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Abstract

본 발명에 따른 대칭키 암호 알고리즘의 함수 마스킹 장치는, 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치에 있어서, 랜덤하게 생성된 복수의 비선형 함수, 복수의 선형 함수 및 복수의 상수를 근거로 HIGHT(HIGh security and light weigHT) 알고리즘에 포함된 하나 이상의 내부 함수에 대한 조회 테이블을 각각 생성하는 제어부; 및 상기 생성된 HIGHT 알고리즘에 포함된 하나 이상의 내부 함수에 대한 조회 테이블을 저장하는 저장부;를 포함한다.

Description

부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법{Function masking apparatus in symmetric cryptographic algorithm for preventing side channel attacks and method thereof}
본 발명은 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법에 관한 것으로, 특히 암호 알고리즘의 결과는 같지만 중간 수행 과정을 랜덤하게 바꾸는 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법에 관한 것이다.
부채널 공격은 기존의 이론적인 블랙박스 모델에 기반한 암호 분석법과는 달리 암호 모듈이 구동되는 동안 발생하는 각종 부가적인 정보를 수집할 수 있는 그레이박스(Grey-Box) 모델에 기반한 암호 분석 기법이다.
이러한 부채널 공격에 안전하도록 암호 알고리즘을 구현하기 위해서는 암호 연산을 위해 사용되는 모든 중간값들을 랜덤화할 필요가 있다. 이에 따라, 대부분의 부채널 공격 대응 암호 알고리즘은 중간값 랜덤화를 위한 데이터 마스킹(Data Masking) 기법에 기인하고 있다. 이러한 데이터 마스킹 기법은 1차 차분전력분석 공격 대응을 위해 어느 정도의 성능 저하를 감안하는 경우 실제 사용이 가능할 정도의 성능을 가진다. 하지만, 고차 차분전력분석 공격까지 방지하도록 데이터 마스킹 기법을 적용하는 경우에는, 부채널 방지가 없는 표준 암호 알고리즘과 비교하여 그 성능 저하가 수백 배까지 증가하게 되어 실제 시스템에서 사용하기 불가능한 상태가 된다.
한국공개특허 제10-2010-0059571호
본 발명의 목적은 암호 알고리즘의 내부 함수들에 대한 함수 마스킹(function masking)을 제공하는 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법을 제공하는 데 있다.
또한, 본 발명의 다른 목적은 HIGHT(HIGh security and light weigHT)와 같은 대칭키 암호 알고리즘에 함수 마스킹을 적용하는 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법을 제공하는 데 있다.
본 발명의 실시예에 따른 함수 마스킹 장치는, 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치에 있어서, 랜덤하게 생성된 복수의 비선형 함수, 복수의 선형 함수 및 복수의 상수를 근거로 HIGHT(HIGh security and light weigHT) 알고리즘에 포함된 하나 이상의 내부 함수에 대한 조회 테이블을 각각 생성하는 제어부; 및 상기 생성된 HIGHT 알고리즘에 포함된 하나 이상의 내부 함수에 대한 조회 테이블을 저장하는 저장부;를 포함한다.
본 발명과 관련된 일 예로서, 상기 비선형 함수는 혼돈(confusion) 효과를 위한 4비트의 함수이고, 상기 선형 함수는 확산(diffusion) 효과를 위한 8비트의 함수일 수 있다.
본 발명과 관련된 일 예로서, 상기 제어부는, 상기 생성된 복수의 비선형 함수, 복수의 선형 함수 및 복수의 상수를 근거로 상기 HIGHT 알고리즘에 포함된 초기 변환에 대응된 함수, 라운드 함수 및 최종 변환에 대응된 함수에 각각 대응되는 조회 테이블을 생성할 수 있다.
본 발명과 관련된 일 예로서, 상기 제어부는, 함수 마스킹을 통해 상기 HIGHT 알고리즘에 포함된 하나 이상의 내부 함수에 대한 조회 테이블을 각각 생성할 수 있다.
본 발명과 관련된 일 예로서, 상기 제어부는, 평문이 수신될 때, 상기 생성된 조회 테이블을 근거로 상기 평문에 대응되는 암호문을 출력할 수 있다.
본 발명의 실시예에 따른 함수 마스킹 방법은, 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 방법에 있어서, 제어부를 통해 복수의 비선형 함수, 복수의 선형 함수 및 복수의 상수를 랜덤하게 생성하는 단계; 및 상기 제어부를 통해 상기 생성된 복수의 비선형 함수, 복수의 선형 함수 및 복수의 상수를 근거로 HIGHT 알고리즘에 포함된 하나 이상의 내부 함수에 대한 조회 테이블을 각각 생성하는 단계;를 포함한다.
본 발명과 관련된 일 예로서, 상기 하나 이상의 내부 함수는, 상기 HIGHT 알고리즘에 포함된 법덧셈 함수, XOR 함수, F0 및 F1을 포함하며, 상기 F0는 8비트 값에 대해 1비트, 2비트 및 7비트로 각각 좌측 순환 이동한 복수의 값들에 대해 XOR 연산을 수행한 결과이고, 상기 F1은 상기 8비트 값에 대해 3비트, 4비트 및 6비트로 각각 좌측 순환 이동한 복수의 값들에 대해 XOR 연산을 수행한 결과일 수 있다.
본 발명과 관련된 일 예로서, 평문이 수신될 때, 상기 제어부를 통해 상기 생성된 조회 테이블을 근거로 상기 평문에 대응되는 암호문을 출력하는 단계;를 더 포함할 수 있다.
본 발명의 실시예에 따른 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법은, 암호 알고리즘의 내부 함수들에 대한 함수 마스킹을 제공함으로써, 암호 알고리즘의 내부 함수들을 예측할 수 없어 고차 차분전력분석공격에 효율적으로 대응할 수 있다.
또한, 본 발명의 실시예에 따른 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법은, HIGHT와 같은 대칭키 암호 알고리즘에 함수 마스킹을 적용함으로써, 전체 시스템의 효율을 향상시킬 수 있다.
도 1은 본 발명의 실시예에 따른 대칭키 암호 알고리즘의 함수 마스킹 장치의 구성도이다.
도 2는 본 발명의 실시예에 따른 HIGHT 알고리즘의 일반화된 페이스텔 구조를 나타낸 도이다.
도 3 및 도 4는 본 발명의 실시예에 따른 HIGHT 알고리즘에 포함된 초기 변환에 대한 조회 테이블을 나타낸 도이다.
도 5 내지 도 7은 본 발명의 실시예에 따른 HIGHT 알고리즘에 포함된 라운드 함수에 대한 조회 테이블을 나타낸 도이다.
도 8 및 도 9는 본 발명의 실시예에 따른 HIGHT 알고리즘에 포함된 최종 변환에 대한 조회 테이블을 나타낸 도이다.
도 10은 본 발명의 실시예에 따른 함수 마스킹이 적용된 HIGHT 알고리즘을 구현한 도이다.
도 11은 본 발명의 실시예에 따른 대칭키 암호 알고리즘의 함수 마스킹 장치의 제어 방법을 나타낸 흐름도이다.
본 발명에서 사용되는 기술적 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 발명에서 사용되는 기술적 용어는 본 발명에서 특별히 다른 의미로 정의되지 않는 한 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 발명에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
또한, 본 발명에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 발명에서 "구성된다" 또는 "포함한다" 등의 용어는 발명에 기재된 여러 구성 요소들 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 발명에서 사용되는 제 1, 제 2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성 요소는 제 2 구성 요소로 명명될 수 있고, 유사하게 제 2 구성 요소도 제 1 구성 요소로 명명될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.
도 1은 본 발명의 실시예에 따른 대칭키 암호 알고리즘의 함수 마스킹 장치(10)의 구성도이다.
도 1에 도시된 바와 같이, 함수 마스킹 장치(10)는 저장부(100) 및 제어부(200)로 구성된다. 도 1에 도시된 함수 마스킹 장치(10)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 1에 도시된 구성 요소보다 많은 구성 요소에 의해 함수 마스킹 장치(10)가 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 함수 마스킹 장치(10)가 구현될 수도 있다.
암호 알고리즘 내부에서 처리되고 있는 중간값 데이터들의 랜덤화를 통한 부채널 공격 방지를 수행하는 대신에, 대칭키 암호 알고리즘인 HIGHT(HIGh security and light weigHT) 알고리즘에 포함된 하나 이상의 내부 함수들에 대한 마스킹(또는 함수 마스킹)을 수행하여 부채널 공격을 방지한다.
저장부(100)는 함수 마스킹 장치(10)가 동작하는데 필요한 데이터와 프로그램 등을 저장한다.
또한, 저장부(100)는 다양한 사용자 인터페이스(User Interface : UI), 그래픽 사용자 인터페이스(Graphic User Interface : GUI) 등을 저장한다.
또한, 저장부(100)는 플래시 메모리 타입(Flash Memory Type), 하드 디스크 타입(Hard Disk Type), 멀티미디어 카드 마이크로 타입(Multimedia Card Micro Type), 카드 타입의 메모리(예를 들면, SD 또는 XD 메모리 등), 자기 메모리, 자기 디스크, 광디스크, 램(Random Access Memory : RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory : ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory) 중 적어도 하나의 저장매체를 포함할 수 있다. 또한, 함수 마스킹 장치(10)는 인터넷(internet)상에서 저장부(100)의 저장 기능을 수행하는 웹 스토리지(web storage)를 운영하거나, 또는 웹 스토리지와 관련되어 동작할 수도 있다.
제어부(200)는 함수 마스킹 장치(10)의 전반적인 동작을 제어한다.
또한, 제어부(200)는 128비트(bit)의 비밀키를 지원하는 64비트 블록 암호 알고리즘인 HIGHT 알고리즘에 대한 초기 변환, 라운드 함수 및 최종 변환 등에 따른 HIGHT 알고리즘의 내부 함수를 저장부(100)에 각각 저장한다. 여기서, HIGHT 알고리즘은 128비트 마스터키, 64비트 평문(plaintext)으로부터 64비트 암호문(ciphertext)을 출력하며, 페이스텔(Feistel) 구조를 갖는다.
즉, HIGHT 알고리즘은 도 2에 도시된 바와 같이 일반화된 페이스텔 구조를 갖는다.
여기서, 64비트의 평문(P)과 암호문(C)은 각각 8개의 바이트로 구성되며, 아래의 [수학식 1]과 같이 표현된다.
Figure pat00001
또한, 64비트 라운드 함수의 입력/출력(또는 각 라운드의 출력값 Xi)은 8개의 바이트로 구성되며, 아래의 [수학식 2]와 같이 표현된다.
Figure pat00002
또한, 128비트 키인 평문 또는 암호문의 암호화 또는 복호화에 사용되는 비밀 정보인 암호키(또는 마스터키)(MK)는 16개의 바이트로 구성되며, 아래의 [수학식 3]과 같이 표현된다.
Figure pat00003
또한, 라운드 함수에 적용되는 라운드 키는 화이트닝키(WKi)와 레프트 피드백 시프트 레지스터(Left Feedback Shift Register: LFSR)를 근거로 생성된 서브키(SKi)로 구성되며, 아래의 [수학식 4]와 같이 표현된다.
Figure pat00004
여기서, 화이트닝키는 반복 구조의 블록 암호에서 안전성을 높이기 위해 알고리즘의 초기 변환 또는 최종 변환에 적용된다. 또한, 제어부(200)는 마스터키를 근거로 아래의 [수학식 5]를 통해 화이트닝키를 생성한다.
Figure pat00005
또한, 라운드 함수는 아래의 [수학식 6]과 같은 2개의 보조 함수를 갖는다.
Figure pat00006
여기서, 법덧셈은
Figure pat00007
로 나타내고, XOR(배타적 논리합)은
Figure pat00008
로 나타내고, X<<S는 8비트 값 X에 대한 s비트 좌측 순환 이동을 나타낸다.
또한, 제어부(200)는 HIGHT 알고리즘에서의 암호화를 위한 초기 변환, 라운드 함수 및 최종 변환을 아래와 같이 정의한다.
HIGHT 암호화의 초기 변환은 4개의 화이트닝키(예를 들어 WK0, WK1, WK2 및 WK3)를 근거로 평문(P)을 첫 번째 라운드 함수의 입력인 X0 = X0,7 || X0,6 || ... || X0,0로 변환한다.
즉, HIGHT 암호화의 초기 변환은 아래의 [수학식 7]과 같이 표현된다.
Figure pat00009
또한, HIGHT 암호화의 라운드 함수는 Round1부터 Round32까지 32회 반복한다.
즉, HIGHT 암호화의 라운드 함수(Round i=0 내지 31)는 아래의 [수학식 8]과 같이 표현된다.
Figure pat00010
또한, HIGHT 암호화의 최종 변환은 32번째 라운드 함수의 출력인 X32 = X32 ,7 || X32 ,6 || ... || X32 ,0을 4개의 화이트닝키(예를 들어 WK0, WK1, WK2 및 WK3)를 근거로 변환한다.
즉, HIGHT 암호화의 최종 변환은 아래의 [수학식 9]와 같이 표현된다.
Figure pat00011
이와 같이, 제어부(200)는 HIGHT 알고리즘에 대한 초기 변환, 라운드 함수 및 최종 변환에 대한 각각의 함수를 정의하고, 정의된 함수를 저장부(100)에 저장한다.
또한, 제어부(200)는 HIGHT 알고리즘 내에 포함된 하나 이상의 함수(또는 내부 함수)를 랜덤하게 변경하기 위해서, 해당되는 하나 이상의 함수에 대한 조회 테이블을 생성하고, 생성된 조회 테이블을 조회하는 방법을 통해 함수 마스킹이 적용된 HIGHT 알고리즘을 구현(또는 생성)한다. 여기서, 함수 마스킹(function masking)은 본 발명의 기술적 특징을 설명하기 위해서 정의한 개념으로, 기존의 암호 알고리즘들이 중간값 데이터들을 랜덤화하는 방식을 유지하는 데 반해, 본원 발명에서는 암호 알고리즘의 내부 함수들에 대한 예측이 불가능하도록 해당 함수들을 마스킹하도록 구성하며, 이러한 개념을 함수 마스킹이라 정의한다.
또한, 제어부(200)는 혼돈(confusion) 효과를 위한 복수의 비선형 함수(예를 들어 G와 H), 확산(diffusion) 효과를 위한 복수의 선형 함수(예를 들어 L과 M) 및 덧셈에 대한 선형 함수를 위한 복수의 상수(constant)를 랜덤하게 각각 생성한다.
또한, 제어부(200)는 생성된 복수의 비선형 함수, 복수의 선형 함수 및 복수의 상수를 저장부(100)에 임시 저장한다.
또한, 제어부(200)는 생성된 복수의 비선형 함수, 복수의 선형 함수 및 복수의 상수를 근거로 HIGHT 알고리즘에 포함된 하나 이상의 내부 함수(예를 들어, ADD 함수, XOR 함수, F0, F1 등 포함)에 대한 조회 테이블(또는 룩업 테이블)을 각각 생성한다. 이때, 조회 테이블 생성이 모두 완료된 후, 저장부(100)에 임시 저장되는 복수의 비선형 함수, 복수의 선형 함수 및 복수의 상수는 제어부(200)의 제어에 의해 영구 삭제된다.
여기서, 도 3에 도시된 타입 I-1(type I)은 아래의 [수학식 10]과 같이 나타낸다.
Figure pat00012
이와 같이, 타입 I-1의 경우, 제어부(200)는 8비트의 입력(예를 들어, Xi)에 대해 복수의 선형 함수 중 제1 선형 함수(예를 들어 L) 및 복수의 비선형 함수 중 제1 비선형 함수(예를 들어 G)를 근거로 인코딩을 수행한다.
즉, 타입 I-1의 경우, 제어부(200)는 8비트의 입력에 대해 복수의 선형 함수 중 제1 선형 함수(예를 들어 L)를 통해 연산을 수행하고, 해당 선형 함수의 연산 수행 결과 중 상위 4비트를 복수의 비선형 함수 중 제1 비선형 함수(예를 들어 도 3에 도시된 좌측의 G)의 입력으로 전달하고, 선형 함수의 연산 수행 결과 중 하위 4비트를 복수의 비선형 함수 중 제1 비선형 함수(예를 들어 우측의 G)의 입력으로 전달한다.
이후, 2개의 제1 비선형 함수(예를 들어 좌측과 우측의 G)는 각각의 비트(예를 들어 상위 4비트 또는 하위 4비트)에 대한 연산을 수행하고, 연산 수행 결과를 출력(또는 연산 수행 결과를 라운드 함수 내의 타입 I-1에 출력)한다.
이와 같이, 생성되는 조회 테이블은 비선형 함수, 선형 함수, 상수 및 라운드 키(예를 들어 화이트닝키, 서브키 등 포함) 등을 통해 표시할 수 있다.
또한, 도 3에 도시된 타입 I-2는 아래의 [수학식 11]과 같이 나타낸다.
Figure pat00013
이와 같이, 타입 I-2의 경우, 제어부(200)는 8비트의 입력(예를 들어, Xi)에 대해 복수의 상수의 합(예를 들어 Const(=Const1 + Const2))과의 법덧셈 연산을 수행하고, 법덧셈 연산 수행 결과를 복수의 비선형 함수 중 제1 비선형 함수(예를 들어 G)를 근거로 인코딩을 수행한다.
즉, 타입 I-2의 경우, 제어부(200)는 8비트의 입력(예를 들어, Xi)에 대해 복수의 상수의 합(예를 들어 Const)과의 법덧셈 연산을 수행하고, 법덧셈 연산 수행 결과 중 상위 4비트를 복수의 비선형 함수 중 제1 비선형 함수(예를 들어 좌측의 G)의 입력으로 전달하고, 법덧셈 연산 수행 결과 중 하위 4비트를 복수의 비선형 함수 중 제1 비선형 함수(예를 들어 우측의 G)의 입력으로 전달한다. 이후, 2개의 제1 비선형 함수(예를 들어 좌측과 우측의 G)는 각각의 비트(예를 들어 상위 4비트 또는 하위 4비트)에 대한 연산을 수행하고, 연산 수행 결과를 출력한다.
또한, 도 3에 도시된 타입 I-3은 아래의 [수학식 12]와 같이 나타낸다.
Figure pat00014
이와 같이, 타입 I-3의 경우, 제어부(200)는 8비트의 입력(예를 들어, Xi)에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1)와 복수의 상수의 합(예를 들어 Const(=-Const1-Const2))의 법덧셈 연산을 수행하고, 법덧셈 연산 수행 결과 및 복수의 선형 함수 중 제1 선형 함수(예를 들어 L)를 근거로 디코딩을 수행하고, 디코딩된 결과를 복수의 비선형 함수 중 제1 비선형 함수(예를 들어 G)를 근거로 인코딩을 수행한다.
즉, 타입 I-3의 경우, 제어부(200)는 8비트의 입력(예를 들어, Xi)에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1) 2개를 통해 연산을 수행하고, 2개의 비선형 함수의 역함수의 연산 수행 결과에 대해 복수의 상수의 합(예를 들어 Const)과의 법덧셈 연산을 수행하고, 법덧셈 연산 수행 결과를 복수의 선형 함수 중 제1 선형 함수(예를 들어 L)를 통해 연산을 수행하고, 해당 제1 선형 함수의 연산 수행 결과 중 상위 4비트를 복수의 비선형 함수 중 제1 비선형 함수(예를 들어 좌측의 G)의 입력으로 전달하고, 법덧셈 연산 수행 결과 중 하위 4비트를 복수의 비선형 함수 중 제1 비선형 함수(예를 들어 우측의 G)의 입력으로 전달한다.
이후, 2개의 제1 비선형 함수(예를 들어 좌측과 우측의 G)는 각각의 비트(예를 들어 상위 4비트 또는 하위 4비트)에 대한 연산을 수행하고, 연산 수행 결과를 출력한다.
또한, 도 3에 도시된 타입 I-4는 아래의 [수학식 13]과 같이 나타낸다.
Figure pat00015
이와 같이, 타입 I-4의 경우, 제어부(200)는 8비트의 입력(예를 들어, Xi)에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1) 및 복수의 선형 함수 중 제1 선형 함수의 역함수(예를 들어 L-1)를 근거로 디코딩을 수행하고, 디코딩된 결과에 대해 복수의 상수의 합(예를 들어 Const(=Const1 + Const2))과의 법덧셈 연산을 수행하고, 법덧셈 연산 수행 결과를 복수의 비선형 함수 중 제1 비선형 함수(예를 들어 G)를 근거로 인코딩을 수행한다.
즉, 타입 I-4의 경우, 제어부(200)는 8비트의 입력(예를 들어, Xi)에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1) 2개를 통해 연산을 수행하고, 2개의 비선형 함수의 역함수의 연산 수행 결과를 복수의 선형 함수 중 제1 선형 함수의 역함수(예를 들어 L-1)를 통해 연산을 수행하고, 해당 제1 선형 함수의 역함수의 연산 수행 결과에 대해 복수의 상수의 합(예를 들어 Const)과의 법덧셈 연산을 수행하고, 법덧셈 연산 수행 결과 중 상위 4비트를 복수의 비선형 함수 중 제1 비선형 함수(예를 들어 좌측의 G)의 입력으로 전달하고, 법덧셈 연산 수행 결과 중 하위 4비트를 복수의 비선형 함수 중 제1 비선형 함수(예를 들어 우측의 G)의 입력으로 전달한다.
이후, 2개의 제1 비선형 함수(예를 들어 좌측과 우측의 G)는 각각의 비트(예를 들어 상위 4비트 또는 하위 4비트)에 대한 연산을 수행하고, 연산 수행 결과를 출력한다.
한편, 도 4에 도시된 타입 Ⅱ-1은 아래의 [수학식 14]와 같이 나타낸다.
Figure pat00016
이와 같이, 타입 Ⅱ-1의 경우, 제어부(200)는 12비트의 입력 중 상위 8비트의 입력에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1)와 복수의 상수의 합(예를 들어 Const(=-Const1-Const2))의 법덧셈 연산을 수행하고, 법덧셈 연산 수행 결과에 대해 F1 을 근거로 제1 디코딩을 수행하고, 12비트의 입력 중 하위 4비트의 입력에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1) 및 복수의 선형 함수 중 제1 선형 함수의 역함수(예를 들어 L-1(_,0))를 근거로 제2 디코딩을 수행하고, 제1 디코딩된 결과와 제2 디코딩된 결과에 대해 XOR 연산을 수행하고, XOR 연산 수행 결과를 복수의 선형 함수 중 제2 선형 함수(예를 들어 M) 및 복수의 비선형 함수 중 제2 비선형 함수(예를 들어 H)를 근거로 인코딩을 수행한다. 여기서, 12비트의 입력은 각각 타입 I의 출력과 타입 Ⅱ-2의 상위 4비트 출력에 대응할 수 있다.
즉, 타입 Ⅱ-1의 경우, 제어부(200)는 8비트의 입력(예를 들어, Xi)에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1) 2개를 통해 연산을 수행하고, 2개의 비선형 함수의 역함수의 연산 수행 결과에 대해 복수의 상수의 합(예를 들어 Const)과의 법덧셈 연산을 수행하고, 법덧셈 연산 수행 결과에 대해 F1 을 근거로 제1 연산을 수행하고, 12비트의 입력 중 하위 4비트의 입력에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1)를 통해 연산을 수행하고, 제1 비선형 함수의 역함수의 연산 수행 결과를 복수의 선형 함수 중 제1 선형 함수의 역함수(예를 들어 L-1(_,0))를 통해 제2 연산을 수행하고, 제1 연산 및 제2 연산의 수행 결과에 대해 XOR 연산을 수행하고, XOR 연산 수행 결과에 대해 복수의 선형 함수 중 제2 선형 함수(예를 들어 M)를 통해 연산을 수행하고, 해당 제2 선형 함수의 연산 수행 결과 중 상위 4비트를 복수의 비선형 함수 중 제2 비선형 함수(예를 들어 좌측의 H)의 입력으로 전달하고, 제2 선형 함수의 연산 수행 결과 중 하위 4비트를 복수의 비선형 함수 중 제2 비선형 함수(예를 들어 우측의 H)의 입력으로 전달한다.
이후, 각각의 비선형 함수(예를 들어 좌측과 우측의 H)는 각각의 비트(예를 들어 상위 4비트 또는 하위 4비트)에 대한 연산을 수행하고, 연산 수행 결과를 출력한다.
여기서, 제1 선형 함수의 역함수(예를 들어 L-1(_,0))를 통한 연산은 제1 비선형 함수의 역함수의 연산 수행 결과에 대해 제1 선형 함수의 역함수(예를 들어 L-1)를 통해 연산을 수행하고, 해당 제1 선형 함수의 역함수의 연산 수행 결과를 상위 4비트로 하고 하위 4비트에 0을 추가(또는 삽입)하여 총 8비트를 출력하는 것을 의미한다.
또한, 도 4에 도시된 타입 Ⅱ-2는 아래의 [수학식 15]와 같이 나타낸다.
Figure pat00017
이와 같이, 타입 ?-2의 경우, 제어부(200)는 12비트의 입력 중 상위 8비트의 입력입력에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1) 및 복수의 선형 함수 중 제1 선형 함수의 역함수(예를 들어 L-1)를 근거로 연산을 수행하고, 연산 수행 결과에 대해 F0을 근거로 제1 디코딩을 수행하고, 12비트의 입력 중 하위 4비트의 입력에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1) 및 비트값 '0' 추가 함수(또는 연산)를 근거로 제2 디코딩을 수행하고, 제1 디코딩된 결과와 제2 디코딩된 결과에 대해 법덧셈 연산을 수행하고, 법덧셈 연산 수행 결과를 제1 상수(예를 들어 -Const1)와 법덧셈 연산을 수행하고, 법덧셈 연산 수행 결과를 복수의 선형 함수 중 제2 선형 함수(예를 들어 M) 및 복수의 비선형 함수 중 제2 비선형 함수(예를 들어 H)를 근거로 인코딩을 수행한다.
즉, 타입 Ⅱ-2의 경우, 제어부(200)는 12비트의 입력 중 상위 8비트의 입력에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1) 2개를 통해 연산을 수행하고, 2개의 비선형 함수의 역함수의 연산 수행 결과를 복수의 선형 함수 중 제1 선형 함수의 역함수(예를 들어 L-1)를 근거로 연산을 수행하고, 연산 수행 결과에 대해 F0을 근거로 제1 연산을 수행하고, 12비트의 입력 중 하위 4비트의 입력에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1)를 통해 연산을 수행하고, 제1 비선형 함수의 역함수의 연산 수행 결과에 비트값 '0'을 하위 4비트에 추가(예를 들어 (_,0))하여 제2 연산을 수행하고, 제1 연산 및 제2 연산의 수행 결과에 대해 1차적으로 법덧셈 연산을 수행하고, 2차적으로 1차적인 법덧셈 연산 수행 결과에 대해 제1 상수(예를 들어 -Const1)와의 법덧셈 연산을 수행하고, 2차적인 법덧셈 연산 수행 결과에 대해 복수의 선형 함수 중 제2 선형 함수(예를 들어 M)를 통해 연산을 수행하고, 해당 제2 선형 함수의 연산 수행 결과 중 상위 4비트를 복수의 비선형 함수 중 제2 비선형 함수(예를 들어 좌측의 H)의 입력으로 전달하고, 제2 선형 함수의 연산 수행 결과 중 하위 4비트를 복수의 비선형 함수 중 제2 비선형 함수(예를 들어 우측의 H)의 입력으로 전달한다.
이후, 각각의 비선형 함수(예를 들어 좌측과 우측의 H)는 각각의 비트(예를 들어 상위 4비트 또는 하위 4비트)에 대한 연산을 수행하고, 연산 수행 결과를 출력한다.
여기서, 비트값 '0' 추가 함수(또는 연산)(예를 들어 (_,0))를 통한 연산은 제1 비선형 함수의 역함수(예를 들어 G-1)의 연산 수행 결과를 상위 4비트에 추가(또는 설정)하고, 하위 4비트에 0을 추가(또는 삽입)하여 총 8비트를 출력하는 것을 의미한다.
도 5에 도시된 타입 Ⅲ-1은 아래의 [수학식 16]과 같이 나타낸다.
Figure pat00018
이와 같이, 타입 Ⅲ-1의 경우, 제어부(200)는 12비트의 입력 중 상위 8비트의 입력에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1) 및 복수의 선형 함수 중 제1 선형 함수의 역함수(예를 들어 L-1)를 근거로 제1 디코딩을 수행하고, 12비트의 입력 중 하위 4비트의 입력에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1) 및 복수의 선형 함수 중 제1 선형 함수의 역함수(예를 들어 L-1(_,0))를 근거로 제2 디코딩을 수행하고, 제1 디코딩된 결과와 제2 디코딩된 결과에 대해 XOR 연산을 수행하고, XOR 연산 수행 결과를 복수의 선형 함수 중 제2 선형 함수(예를 들어 M) 및 복수의 비선형 함수 중 제2 비선형 함수(예를 들어 H)를 근거로 인코딩을 수행한다.
즉, 타입 Ⅲ-1의 경우, 제어부(200)는 12비트의 입력 중 상위 8비트의 입력에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1) 2개를 통해 연산을 수행하고, 2개의 비선형 함수의 역함수의 연산 수행 결과를 복수의 선형 함수 중 제1 선형 함수의 역함수(예를 들어 L-1)를 통해 제1 연산을 수행하고, 12비트의 입력 중 하위 4비트의 입력에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1)를 통해 연산을 수행하고, 제2 비선형 함수의 역함수의 연산 수행 결과를 복수의 선형 함수 중 제1 선형 함수의 역함수(예를 들어 L-1(_,0))를 통해 제2 연산을 수행하고, 제1 연산 및 제2 연산의 수행 결과에 대해 XOR 연산을 수행하고, XOR 연산 수행 결과에 대해 복수의 선형 함수 중 제2 선형 함수(예를 들어 M)를 통해 연산을 수행하고, 해당 제2 선형 함수의 연산 수행 결과 중 상위 4비트를 복수의 비선형 함수 중 제2 비선형 함수(예를 들어 좌측의 H)의 입력으로 전달하고, 제2 선형 함수의 연산 수행 결과 중 하위 4비트를 복수의 비선형 함수 중 제2 비선형 함수(예를 들어 우측의 H)의 입력으로 전달한다.
이후, 각각의 비선형 함수(예를 들어 좌측과 우측의 H)는 각각의 비트(예를 들어 상위 4비트 또는 하위 4비트)에 대한 연산을 수행하고, 연산 수행 결과를 출력한다.
여기서, 제1 선형 함수의 역함수(예를 들어 L-1(_,0))를 통한 연산은 제1 비선형 함수의 역함수의 연산 수행 결과에 대해 제1 선형 함수의 역함수를 통해 연산을 수행하고, 해당 제1 선형 함수의 역함수의 연산 수행 결과를 상위 4비트로 하고 하위 4비트에 0을 추가(또는 삽입)하여 총 8비트를 출력하는 것을 의미한다.
또한, 도 5에 도시된 타입 Ⅲ-2는 아래의 [수학식 17]과 같이 나타낸다.
Figure pat00019
이와 같이, 타입 Ⅲ-2의 경우, 제어부(200)는 12비트의 입력 중 상위 4비트의 입력에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1) 및 복수의 선형 함수 중 제1 선형 함수의 역함수(예를 들어 L-1(0,_))를 근거로 제1 디코딩을 수행하고, 12비트의 입력 중 하위 8비트의 입력에 대해 복수의 비선형 함수 중 제2 비선형 함수의 역함수(예를 들어 H-1) 및 복수의 선형 함수 중 제2 선형 함수의 역함수(예를 들어 M-1)를 근거로 제2 디코딩을 수행하고, 제1 디코딩된 결과와 제2 디코딩된 결과에 대해 XOR 연산을 수행하고, XOR 연산 수행 결과에 대해 복수의 상수의 합(예를 들어 Const(=Const1 + Const2))과의 법덧셈 연산을 수행하고, 법덧셈 연산 수행 결과에 대해 복수의 비선형 함수 중 제1 비선형 함수(예를 들어 G)를 근거로 인코딩을 수행한다.
즉, 타입 Ⅲ-2의 경우, 제어부(200)는 12비트의 입력 중 상위 4비트의 입력에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1)를 통해 연산을 수행하고, 제1 비선형 함수의 역함수의 연산 수행 결과를 복수의 선형 함수 중 제1 선형 함수의 역함수(예를 들어 L-1(0,_))를 통해 제1 연산을 수행하고, 12비트의 입력 중 하위 8비트의 입력에 대해 복수의 비선형 함수 중 제2 비선형 함수의 역함수(예를 들어 H-1)를 통해 연산을 수행하고, 제2 비선형 함수의 역함수의 연산 수행 결과를 복수의 선형 함수 중 제2 선형 함수의 역함수(예를 들어 M-1)를 통해 제2 연산을 수행하고, 제1 연산 및 제2 연산의 수행 결과에 대해 XOR 연산을 수행하고, XOR 연산 수행 결과에 대해 복수의 상수의 합(예를 들어 Const)과의 법덧셈 연산을 수행하고, 법덧셈 연산 수행 결과 중 상위 4비트를 복수의 비선형 함수 중 제1 비선형 함수(예를 들어 좌측의 G)의 입력으로 전달하고, 제1 선형 함수의 연산 수행 결과 중 하위 4비트를 복수의 비선형 함수 중 제1 비선형 함수(예를 들어 우측의 G)의 입력으로 전달한다.
이후, 각각의 비선형 함수(예를 들어 좌측과 우측의 G)는 각각의 비트(예를 들어 상위 4비트 또는 하위 4비트)에 대한 연산을 수행하고, 연산 수행 결과를 출력한다.
여기서, 제1 선형 함수의 역함수(예를 들어 L-1(0,_))를 통한 연산은 제1 비선형 함수의 역함수의 연산 수행 결과에 대해 제1 선형 함수의 역함수(예를 들어 M-1)를 통해 연산을 수행하고, 해당 제1 선형 함수의 역함수의 연산 수행 결과를 하위 4비트로 하고 상위 4비트에 0을 추가(또는 삽입)하여 총 8비트를 출력하는 것을 의미한다.
또한, 도 6에 도시된 타입 Ⅳ-1은 아래의 [수학식 18]과 같이 나타낸다.
Figure pat00020
이와 같이, 타입 Ⅳ-1의 경우, 제어부(200)는 12비트의 입력 중 상위 8비트의 입력에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1)와 복수의 상수의 합(예를 들어 Const(=-Const1-Const2))의 법덧셈 연산을 수행 결과를 근거로 제1 디코딩을 수행하고, 12비트의 입력 중 하위 4비트의 입력에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1) 및 비트값 '0' 추가 함수(또는 연산)를 근거로 제2 디코딩을 수행하고, 제1 디코딩된 결과와 제2 디코딩된 결과에 대해 법덧셈 연산을 수행하고, 법덧셈 연산 수행 결과를 제1 상수(예를 들어 -Const1)와 법덧셈 연산을 수행하고, 법덧셈 연산 수행 결과를 복수의 선형 함수 중 제2 선형 함수(예를 들어 M) 및 복수의 비선형 함수 중 제2 비선형 함수(예를 들어 H)를 근거로 인코딩을 수행한다.
즉, 타입 Ⅳ-1의 경우, 제어부(200)는 12비트의 입력 중 상위 8비트의 입력에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1) 2개를 통해 연산을 수행하고, 2개의 비선형 함수의 역함수의 연산 수행 결과와 에 대해 복수의 상수의 합(예를 들어 Const)의 법덧셈 연산을 수행하여 제1 연산을 수행하고, 12비트의 입력 중 하위 4비트의 입력에 대해 복수의 비선형 함수 중 제2 비선형 함수의 역함수(예를 들어 H-1)를 통해 연산을 수행하고, 제2 비선형 함수의 역함수의 연산 수행 결과에 비트값 '0'을 하위 4비트에 추가(예를 들어 (_,0))하여 제2 연산을 수행하고, 제1 연산 및 제2 연산의 수행 결과에 대해 1차적으로 법덧셈 연산을 수행하고, 2차적으로 1차적인 법덧셈 연산 수행 결과에 대해 제1 상수(예를 들어 -Const1)와의 법덧셈 연산을 수행하고, 2차적인 법덧셈 연산 수행 결과에 대해 복수의 선형 함수 중 제2 선형 함수(예를 들어 M)를 통해 연산을 수행하고, 해당 제2 선형 함수의 연산 수행 결과 중 상위 4비트를 복수의 비선형 함수 중 제2 비선형 함수(예를 들어 좌측의 H)의 입력으로 전달하고, 제2 선형 함수의 연산 수행 결과 중 하위 4비트를 복수의 비선형 함수 중 제2 비선형 함수(예를 들어 우측의 H)의 입력으로 전달한다.
이후, 각각의 비선형 함수(예를 들어 우측의 H)는 각각의 비트(예를 들어 상위 4비트 또는 하위 4비트)에 대한 연산을 수행하고, 연산 수행 결과를 출력한다.
여기서, 비트값 '0' 추가 함수(또는 연산)(예를 들어 (_,0))를 통한 연산은 제1 비선형 함수의 역함수(예를 들어 G-1)의 연산 수행 결과를 상위 4비트에 추가(또는 설정)하고, 하위 4비트에 0을 추가(또는 삽입)하여 총 8비트를 출력하는 것을 의미한다.
또한, 도 6에 도시된 타입 Ⅳ-2는 아래의 [수학식 19]와 같이 나타낸다.
Figure pat00021
이와 같이, 타입 Ⅳ-2의 경우, 제어부(200)는 12비트의 입력 중 상위 4비트의 입력에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1) 및 비트값 '0' 추가 함수(또는 연산)를 근거로 제1 디코딩을 수행하고, 12비트의 입력 중 하위 8비트의 입력에 대해 복수의 비선형 함수 중 제2 비선형 함수의 역함수(예를 들어 H-1) 및 복수의 선형 함수 중 제2 선형 함수의 역함수(예를 들어 M-1)를 근거로 제2 디코딩을 수행하고, 제1 디코딩된 결과와 제2 디코딩된 결과에 대해 법덧셈 연산을 수행하고, 법덧셈 연산 수행 결과를 제2 상수(예를 들어 -Const2)와 법덧셈 연산을 수행하고, 법덧셈 연산 수행 결과를 복수의 선형 함수 중 제1 선형 함수(예를 들어 L) 및 복수의 비선형 함수 중 제1 비선형 함수(예를 들어 G)를 근거로 인코딩을 수행한다. 여기서,
즉, 타입 Ⅳ-2의 경우, 제어부(200)는 12비트의 입력 중 상위 4비트의 입력에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1)를 통해 연산을 수행하고, 제1 비선형 함수의 역함수의 연산 수행 결과에 비트값 '0'을 상위 4비트에 추가(예를 들어 (0,_))하여 제1 연산을 수행하고, 12비트의 입력 중 하위 8비트의 입력에 대해 2개의 제2 비선형 함수의 역함수(예를 들어 H-1)를 통해 연산을 수행하고, 제2 비선형 함수의 역함수의 연산 수행 결과를 복수의 선형 함수 중 제2 선형 함수의 역함수(예를 들어 M-1)를 통해 제2 연산을 수행하고, 제1 연산 및 제2 연산의 수행 결과에 대해 1차적으로 법덧셈 연산을 수행하고, 2차적으로 1차적인 법덧셈 연산 수행 결과에 대해 제2 상수(예를 들어 -Const2)와의 법덧셈 연산을 수행하고, 2차적인 법덧셈 연산 수행 결과에 대해 복수의 선형 함수 중 제1 선형 함수(예를 들어 L)를 통해 연산을 수행하고, 해당 제1 선형 함수의 연산 수행 결과 중 상위 4비트를 복수의 비선형 함수 중 제1 비선형 함수(예를 들어 좌측의 G)의 입력으로 전달하고, 어느 하나 선형 함수의 연산 수행 결과 중 하위 4비트를 복수의 비선형 함수 중 제1 비선형 함수(예를 들어 우측의 G)의 입력으로 전달한다.
이후, 각각의 비선형 함수(예를 들어 좌측과 우측의 G)는 각각의 비트(예를 들어 상위 4비트 또는 하위 4비트)에 대한 연산을 수행하고, 연산 수행 결과를 출력한다.
여기서, 비트값 '0' 추가 함수(또는 연산)(예를 들어 (0,_))를 통한 연산은 제1 비선형 함수의 역함수(예를 들어 G-1)의 연산 수행 결과를 하위 4비트에 추가(또는 설정)하고, 상위 4비트에 0을 추가(또는 삽입)하여 총 8비트를 출력하는 것을 의미한다.
도 7에 도시된 타입 Ⅴ-1은 아래의 [수학식 20]과 같이 나타낸다.
Figure pat00022
이와 같이, 타입 Ⅴ-1의 경우, 제어부(200)는 8비트의 입력에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1) 및 복수의 선형 함수 중 제1 선형 함수의 역함수(예를 들어 L-1)를 근거로 디코딩을 수행한다.
즉, 타입 Ⅴ-1의 경우, 제어부(200)는 8비트에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1) 2개를 통해 연산을 수행하고, 2개의 제1 비선형 함수의 역함수의 연산 수행 결과에 대해 복수의 선형 함수 중 제1 선형 함수의 역함수(예를 들어 L-1)를 통해 연산을 수행하고, 연산 수행 결과를 출력한다.
또한, 도 7에 도시된 타입 Ⅴ-2는 아래의 [수학식 21]과 같이 나타낸다.
Figure pat00023
이와 같이, 타입 Ⅴ-2의 경우, 제어부(200)는 8비트의 입력에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1)와 복수의 상수의 합(예를 들어 Const(=-Const1-Const2))과의 법덧셈 연산을 수행하여 연산 수행 결과를 출력한다.
즉, 타입 Ⅴ-2의 경우, 제어부(200)는 8비트에 대해 복수의 비선형 함수 중 제1 비선형 함수의 역함수(예를 들어 G-1) 2개를 통해 연산을 수행하고, 2개의 비선형 함수의 역함수의 연산 수행 결과와 복수의 상수의 합(예를 들어 -Const)과의 법덧셈 연산을 수행하여 법덧셈 연산 수행 결과를 출력한다.
이때, 도 8에 도시된 바와 같이, 제어부(200)는 타입 Ⅰ-1, Ⅰ-2, Ⅰ-3, Ⅰ-4, Ⅲ-1, Ⅲ-2, Ⅳ-1 및 Ⅳ-2와 같이, 복수의 비선형 함수, 선형 함수 및 상수를 근거로 HIGHT 알고리즘에 포함된 [수학식 7]에 대응되는 초기 변환에 대한 조회 테이블을 생성한다.
또한, 도 9에 도시된 바와 같이, 제어부(200)는 타입 Ⅰ-1, Ⅰ-2, Ⅱ-1, Ⅱ-2, Ⅲ-1, Ⅲ-2, Ⅳ-1 및 Ⅳ-2와 같이, 복수의 비선형 함수, 선형 함수 및 상수를 근거로 HIGHT 알고리즘에 포함된 [수학식 8]에 대응되는 라운드 함수에 대한 조회 테이블을 생성한다. 이때, HIGHT 알고리즘의 라운드 함수에 대해서는 초기 변환에 적용된 함수 마스킹 결과가 그대로 최종 변환의 입력으로 전달되기도 하고, 미리 설정된 복수의 비선형 함수, 선형 함수 및 상수를 근거로 적어도 1회 이상의 인코딩, 함수 연산 및 디코딩 과정을 수행한 후, 해당 수행 결과를 최종 변환의 입력으로 전달할 수 있다.
또한, 도 10에 도시된 바와 같이, 제어부(200)는 타입 Ⅲ-1, Ⅲ-2, Ⅳ-1, Ⅳ-2, Ⅴ-1 및 Ⅴ-2와 같이, 복수의 비선형 함수, 선형 함수 및 상수를 근거로 HIGHT 알고리즘에 포함된 [수학식 9]에 대응되는 최종 변환에 대한 조회 테이블을 생성한다.
또한, 제어부(200)는 생성된 복수의 조회 테이블을 근거로 HIGHT 알고리즘에 함수 마스킹이 적용된 최종적인 HIGHT 알고리즘을 생성(또는 구현)한다.
즉, 임의의 평문(P)이 수신(또는 입력)되면, 제어부(200)는 생성된 조회 테이블을 근거로 평문에 포함된 각 비트에 대해 해당 조회 테이블을 참조하여 최종적인 암호문을 출력한다.
도 10에 도시된 바와 같이, 최종적으로 제어부(200)는 생성된 조회 테이블을 근거로 함수 마스킹이 적용된 HIGHT 알고리즘을 생성(또는 구현)한다.
이와 같이, 암호 알고리즘의 내부 함수들에 대한 함수 마스킹을 제공할 수 있다.
또한, 이와 같이, HIGHT와 같은 대칭키 암호 알고리즘에 함수 마스킹을 적용할 수 있다.
이하에서는 본 발명에 따른 대칭키 암호 알고리즘의 함수 마스킹 장치의 제어 방법을 도 1 내지 도 11을 참조하여 상세히 설명한다.
도 11은 본 발명의 실시예에 따른 대칭키 암호 알고리즘의 함수 마스킹 장치의 제어 방법을 나타낸 흐름도이다.
먼저, 제어부(200)는 복수의 비선형 함수, 복수의 선형 함수 및 복수의 상수(constant)를 랜덤하게 생성한다. 또한, 제어부(200)는 생성된 복수의 비선형 함수, 복수의 선형 함수 및 복수의 상수를 저장부(100)에 임시 저장한다.
일 예로, 제어부(200)는 HIGHT 함수 마스킹을 위해서 4비트 비선형 함수 2개(예를 들어 G와 H), 8비트 선형 함수 2개(예를 들어 L과 M) 및 덧셈에 대한 선형 함수를 위해 8비트 상수 Const(=Const1 + Const2)를 각각 랜덤하게 생성한다(S1110).
이후, 제어부(200)는 생성된 복수의 비선형 함수, 복수의 선형 함수 및 상수를 근거로 HIGHT 알고리즘에 포함된 하나 이상의 내부 함수에 대한 조회 테이블(또는 룩업 테이블)을 각각 생성한다.
즉, 제어부(200)는 HIGHT 알고리즘에 포함된 초기 변환에 대응된 함수, 라운드 1 내지 라운드 32까지의 라운드 함수 및 최종 변환에 대응된 함수 각각에 대한 조회 테이블을 생성한다.
일 예로, 도 3 내지 도 7에 도시된 바와 같이, 제어부(200)는 HIGHT 알고리즘에 포함된 [수학식 7], [수학식 8] 및 [수학식 9]에 대한 조회 테이블을 생성한다(S1120).
이후, 제어부(200)는 생성된 조회 테이블을 근거로 HIGHT 알고리즘에 함수 마스킹이 적용된 최종적인 HIGHT 알고리즘을 생성(또는 구현)한다.
일 예로, 도 8 내지 도 10에 도시된 바와 같이, 제어부(200)는 도 3 내지 도 7에 도시된 조회 테이블을 근거로 함수 마스킹이 적용된 HIGHT 알고리즘을 생성한다.
또한, 복수의 비선형 함수, 복수의 선형 함수 및 상수를 근거로 최종적인 HIGHT 알고리즘을 생성(또는 구현)한 후, 제어부(200)는 저장부(100)에 임시 저장된 복수의 비선형 함수, 복수의 선형 함수 및 복수의 상수를 삭제한다.
즉, 임의의 평문이 수신(또는 입력)되면, 제어부(200)는 생성된 조회 테이블을 근거로 수신된 평문에 대해 해당 조회 테이블을 참조하여 최종적인 암호문을 출력한다(S1130).
본 발명의 실시예는 앞서 설명된 바와 같이, 암호 알고리즘의 내부 함수들에 대한 함수 마스킹을 제공하여, 암호 알고리즘의 내부 함수들을 예측할 수 없어 고차 차분전력분석공격에 효율적으로 대응할 수 있다.
또한, 본 발명의 실시예는 앞서 설명된 바와 같이, HIGHT와 같은 대칭키 암호 알고리즘에 함수 마스킹을 적용하여, 전체 시스템의 효율을 향상시킬 수 있다.
전술된 내용은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
10: 함수 마스킹 장치 100: 저장부
200: 제어부

Claims (8)

  1. 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치에 있어서,
    랜덤하게 생성된 복수의 비선형 함수, 복수의 선형 함수 및 복수의 상수를 근거로 HIGHT(HIGh security and light weigHT) 알고리즘에 포함된 하나 이상의 내부 함수에 대한 조회 테이블을 각각 생성하는 제어부; 및
    상기 생성된 HIGHT 알고리즘에 포함된 하나 이상의 내부 함수에 대한 조회 테이블을 저장하는 저장부;를 포함하는 것을 특징으로 하는 함수 마스킹 장치.
  2. 제1항에 있어서,
    상기 비선형 함수는 혼돈(confusion) 효과를 위한 4비트의 함수이고, 상기 선형 함수는 확산(diffusion) 효과를 위한 8비트의 함수인 것을 특징으로 하는 함수 마스킹 장치.
  3. 제1항에 있어서,
    상기 제어부는,
    상기 생성된 복수의 비선형 함수, 복수의 선형 함수 및 복수의 상수를 근거로 상기 HIGHT 알고리즘에 포함된 초기 변환에 대응된 함수, 라운드 함수 및 최종 변환에 대응된 함수에 각각 대응되는 조회 테이블을 생성하는 것을 특징으로 하는 함수 마스킹 장치.
  4. 제1항에 있어서,
    상기 제어부는,
    함수 마스킹을 통해 상기 HIGHT 알고리즘에 포함된 하나 이상의 내부 함수에 대한 조회 테이블을 각각 생성하는 것을 특징으로 하는 함수 마스킹 장치.
  5. 제1항에 있어서,
    상기 제어부는,
    평문(plaintext)이 수신될 때, 상기 생성된 조회 테이블을 근거로 상기 평문에 대응되는 암호문을 출력하는 것을 특징으로 하는 함수 마스킹 장치.
  6. 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 방법에 있어서,
    제어부를 통해 복수의 비선형 함수, 복수의 선형 함수 및 복수의 상수를 랜덤하게 생성하는 단계; 및
    상기 제어부를 통해 상기 생성된 복수의 비선형 함수, 복수의 선형 함수 및 복수의 상수를 근거로 HIGHT 알고리즘에 포함된 하나 이상의 내부 함수에 대한 조회 테이블을 각각 생성하는 단계;를 포함하는 것을 특징으로 하는 함수 마스킹 방법.
  7. 제6항에 있어서,
    상기 하나 이상의 내부 함수는,
    상기 HIGHT 알고리즘에 포함된 법덧셈 함수, XOR 함수, F0 및 F1을 포함하며,
    상기 F0는 8비트 값에 대해 1비트, 2비트 및 7비트로 각각 좌측 순환 이동한 복수의 값들에 대해 XOR 연산을 수행한 결과이고, 상기 F1은 상기 8비트 값에 대해 3비트, 4비트 및 6비트로 각각 좌측 순환 이동한 복수의 값들에 대해 XOR 연산을 수행한 결과인 것을 특징으로 하는 함수 마스킹 방법.
  8. 제6항에 있어서,
    평문이 수신될 때, 상기 제어부를 통해 상기 생성된 조회 테이블을 근거로 상기 평문에 대응되는 암호문을 출력하는 단계;를 더 포함하는 것을 특징으로 하는 함수 마스킹 방법.
KR1020140049789A 2014-04-25 2014-04-25 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법 KR20150123476A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140049789A KR20150123476A (ko) 2014-04-25 2014-04-25 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법
US14/680,320 US9577821B2 (en) 2014-04-25 2015-04-07 Function masking apparatus in symmetric cryptographic algorithm for preventing side channel attacks and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140049789A KR20150123476A (ko) 2014-04-25 2014-04-25 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법

Publications (1)

Publication Number Publication Date
KR20150123476A true KR20150123476A (ko) 2015-11-04

Family

ID=54335785

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140049789A KR20150123476A (ko) 2014-04-25 2014-04-25 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법

Country Status (2)

Country Link
US (1) US9577821B2 (ko)
KR (1) KR20150123476A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200041466A (ko) * 2018-10-12 2020-04-22 유비벨록스(주) 보안성이 향상된 블록 암호화 방법
KR20200041467A (ko) * 2018-10-12 2020-04-22 유비벨록스(주) 보안성이 향상된 블록 암호화 방법
KR20210036699A (ko) 2019-09-26 2021-04-05 국방과학연구소 비트 시리얼 hight 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150123476A (ko) * 2014-04-25 2015-11-04 한국전자통신연구원 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법
US10396827B2 (en) 2015-09-25 2019-08-27 SK Hynix Inc. Data storage device
KR102285940B1 (ko) * 2015-05-29 2021-08-05 에스케이하이닉스 주식회사 데이터 처리 회로, 데이터 처리 회로를 포함하는 데이터 저장 장치 및 그것의 동작 방법
US11515897B2 (en) 2015-05-29 2022-11-29 SK Hynix Inc. Data storage device
US11177835B2 (en) 2015-09-25 2021-11-16 SK Hynix Inc. Data storage device
US11611359B2 (en) 2015-05-29 2023-03-21 SK Hynix Inc. Data storage device
GB2544452B (en) * 2015-08-26 2019-09-11 Advanced Risc Mach Ltd Data processing systems
KR102602696B1 (ko) 2017-10-13 2023-11-16 삼성전자주식회사 암호화 장치 및 복호화 장치, 이들의 동작방법
DE102018107114A1 (de) * 2018-03-26 2019-09-26 Infineon Technologies Ag Seitenkanalgehärtete Operation

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5943248A (en) * 1997-01-17 1999-08-24 Picturetel Corporation w-bit non-linear combiner for pseudo-random number generation
US7003107B2 (en) * 2000-05-23 2006-02-21 Mainstream Encryption Hybrid stream cipher
US7899190B2 (en) * 2004-04-16 2011-03-01 Research In Motion Limited Security countermeasures for power analysis attacks
US8479016B2 (en) * 2006-03-10 2013-07-02 Irdeto B.V. Method and system for obfuscating a cryptographic function
KR100991713B1 (ko) 2008-11-26 2010-11-04 고려대학교 산학협력단 마스킹을 이용한 aes 역원 연산 장치 및 방법과 이를 이용한 aes 암호 시스템
KR101026439B1 (ko) * 2009-07-20 2011-04-07 한국전자통신연구원 Seed 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법
US8615078B2 (en) * 2009-08-21 2013-12-24 Electronics And Telecommunications Research Institute Method and apparatus for processing F-function in seed encryption system
KR101276683B1 (ko) 2009-08-21 2013-06-19 한국전자통신연구원 Seed 암호화 시스템의 f-함수 처리 장치 및 방법
EP2293487A1 (en) * 2009-09-08 2011-03-09 Thomson Licensing A method of diversification of a round function of an encryption algorithm
US9274976B2 (en) * 2010-11-05 2016-03-01 Apple Inc. Code tampering protection for insecure environments
KR101601684B1 (ko) 2011-05-18 2016-03-09 한국전자통신연구원 부채널 공격에 대응하는 대칭키 암호 알고리즘 구현 방법
US8971526B2 (en) * 2011-07-26 2015-03-03 Crocus-Technology Sa Method of counter-measuring against side-channel attacks
US9189425B2 (en) * 2011-09-01 2015-11-17 Apple Inc. Protecting look up tables by mixing code and operations
US8953784B2 (en) * 2011-11-02 2015-02-10 Guang Gong Lightweight stream cipher cryptosystems
EP2634953A1 (en) * 2012-03-02 2013-09-04 Gemalto SA Countermeasure method against side channel analysis for cryptographic algorithms using boolean operations and arithmetic operations
FR3011653B1 (fr) * 2013-10-09 2018-01-12 Oberthur Technologies Procedes et dispositifs de masquage et demasquage
US9342462B2 (en) * 2013-10-31 2016-05-17 Oracle International Corporation Systems and methods for implementing low-latency lookup circuits using sparse hash functions
KR20150123476A (ko) * 2014-04-25 2015-11-04 한국전자통신연구원 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법
US9485088B2 (en) * 2014-10-31 2016-11-01 Combined Conditional Access Development And Support, Llc Systems and methods for dynamic data masking

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200041466A (ko) * 2018-10-12 2020-04-22 유비벨록스(주) 보안성이 향상된 블록 암호화 방법
KR20200041467A (ko) * 2018-10-12 2020-04-22 유비벨록스(주) 보안성이 향상된 블록 암호화 방법
KR20210036699A (ko) 2019-09-26 2021-04-05 국방과학연구소 비트 시리얼 hight 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램

Also Published As

Publication number Publication date
US9577821B2 (en) 2017-02-21
US20150312027A1 (en) 2015-10-29

Similar Documents

Publication Publication Date Title
KR20150123476A (ko) 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법
KR101989956B1 (ko) 암호화 장치 및 방법
US8966285B2 (en) Securing implementation of a cryptographic process having fixed or dynamic keys
US11436946B2 (en) Encryption device, encryption method, decryption device, and decryption method
Nejad et al. Analysis of avalanche effect on advance encryption standard by using dynamic S-Box depends on rounds keys
US20170353299A1 (en) Information processing apparatus, method for processing information, and medium
KR102290025B1 (ko) 화이트 박스 aes 구현
KR101095386B1 (ko) 이산화된 카오스 함수를 이용한 암호 시스템
JP2017187724A (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
KR101914453B1 (ko) 암호화 장치 및 방법
CN108369784B (zh) 具有密钥相关掩码计算步骤(sbox调用)的加密算法
KR102045843B1 (ko) 블록 암호화 처리 방법 및 장치
JP2017167390A (ja) 情報処理装置、情報処理方法及びプログラム
KR20230095750A (ko) 일방향 함수를 이용한 암호 운영모드 기반의 화이트박스 암호화 방법 및 장치
KR102130513B1 (ko) 비트치환 연산기, 확장 비트치환 연산기 및 이를 이용한 암호 장치
KR101807259B1 (ko) 암호화 장치 및 방법
KR20170103321A (ko) 보안성이 강화된 순서보존 암호화 방법 및 장치
Pandey et al. Data security using various cryptography Techniques: A Recent Survey
KR101971001B1 (ko) 화이트박스 암호가 적용된 블록 암호 기반의 난수 생성 방법 및 장치
KR20170108595A (ko) 논리적 보수 관계값을 이용한 부채널 분석 방지 암호화 장치 및 방법
KR20150139304A (ko) 마스터 키를 보호하기 위한 암호화 장치 및 그 방법
KR101625018B1 (ko) 데이터 암호화 장치 및 방법, 그를 이용한 컴퓨팅 장치 및 통신 장치
KR102424922B1 (ko) Dlbn이 3 이상인 조건을 만족하는 확장 에스박스 및 이를 이용한 비트 연산 방법
KR102109902B1 (ko) 보안성이 향상된 블록 암호화 방법
KR102109895B1 (ko) 보안성이 향상된 블록 암호화 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid