KR20120089396A - 암호화 장치 및 그 암호화 방법 - Google Patents

암호화 장치 및 그 암호화 방법 Download PDF

Info

Publication number
KR20120089396A
KR20120089396A KR1020100114133A KR20100114133A KR20120089396A KR 20120089396 A KR20120089396 A KR 20120089396A KR 1020100114133 A KR1020100114133 A KR 1020100114133A KR 20100114133 A KR20100114133 A KR 20100114133A KR 20120089396 A KR20120089396 A KR 20120089396A
Authority
KR
South Korea
Prior art keywords
encryption
output
function
bit
bits
Prior art date
Application number
KR1020100114133A
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 KR1020100114133A priority Critical patent/KR20120089396A/ko
Priority to US13/297,857 priority patent/US20120121083A1/en
Publication of KR20120089396A publication Critical patent/KR20120089396A/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/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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • 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
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

암호화 방법이 개시된다. 복수의 라운드 암호화를 수행하는 암호화 방법은, 기설정된 블록 암호화 알고리즘에서 테이블 형태로 변환할 수 있는 변환함수를 추출하고, 추출된 변환함수를 대응되는 테이블로 변환하고, 이를 입력 비트에 적용하는 단계, 상기 테이블의 출력에 출력 비트를 확장시키는 확장 함수를 적용하는 단계 및 상기 확장 함수의 출력에 상기 확장된 출력 비트를 복원시키는 복원 함수를 적용하는 단계를 포함한다.

Description

암호화 장치 및 그 암호화 방법 { Encryption apparatus and encryption method thereof }
본 발명은 암호화 장치 및 그 암호화 방법에 관한 것으로서, 보다 상세하게는, 블록 암호화를 수행하는 암호화 장치 및 그 암호화 방법에 관한 것이다.
AES(Advanced Encryption Standard)와 같은 블록암호 알고리즘, RSA와 공개키 암호알고리즘 등은 최초 설계 시 알고리즘이 실행되는 환경의 안전성에 대한 고민 없이 설계되었다. 즉, 공격자가 알고리즘 및 다양한 입력값과 출력값을 검토해 볼 수는 있으나 알고리즘의 실행환경에 대해서는 검토해 볼 수가 없다는 문제점이 있다. 이러한 공격 모델을 “Black-box 공격” 모델이라고 하는데 공격자가 안을 들여다 볼 수 없는 HW chip안에 구현된 암호 알고리즘 및 안전하게 내장된 키를 이용하여 암/복호화지는 경우가 한 예가 된다. 이 경우는, 시스템의 안전성이 암호 알고리즘의 안전성과 같기 때문에 안전성 분석이 간단한 것이 장점이다. 하지만, 이러한 “Black-box 공격 모델”은 현실성이 떨어진다는 것을 대표적 컨텐츠 보호 기술 해킹 사례들을 통해 알 수 있다.
반면, “Whitebox 공격” 모델에서는 입출력 뿐만 아니라 구현된 실행의 코드와 데이터 영역에 대한 접근을 허용한다. 즉, 현재 PC SW가 이와 같은 공격 모델의 예이며, CE 기기에서도 특별히 HW적으로 설계된 상황이 아니라면 이 모델이 가장 현실적인 모델이 될 것이다. Whitebox Cryptoraphy는 이러한 공격 상황을 가정하고 어떻게 하면 키와 데이터를 보호할 수 있을지에 대한 의문이 있다.
Chow 등의 알고리즘이 가지는 문제점 Chow 등이 제안한 알고리즘은 Billet 등에 의해서 228 의 복잡도를 갖는 대수적 공격에 의해 완벽하게 깨졌다. 즉, 모든 라운드 키를 복구한 후 비밀키 자체를 복구할 수 있는 방법은 제시하였다.
공격이 이루어질 수 있었던 근본 이유는 128-bit 입력을 32-bit의 입력과 출력을 갖는 네 개의 32*32 테이블로 분할하여 일단 2128*128의 복잡도가 232*128의 복잡도로 크게 떨어졌다. 물론 232*32=236-byte=26GB로 현실적이지 않으나, 2128*128=2132-byte=2102GB에 비해서는 충분히 작은 수이다.
Chow 등의 알고리즘이 232*32의 복잡도를 유지했으면 현실적으로 문제가 없을 수 있으나, 다음과 같이 32-bit 입력을 다시 4개로 나누고, 8-bit 입력에 따른 32-bit 출력을 검사함으로써 28*32=212-byte=4KB의 복잡도로 매우 낮아졌다는데 있다. 즉, 32-bit 각각 8 비트를 x3, x2, x1, x0로 나타낼 때, 이 중 하나의 값만 선택하고 나머지는 모두 0으로 설정한 후 모든 256 가지 입력에 대한 출력을 조하사여 입출력에 사용된 인코딩 함수값을 찾아내어 제거하면 원래 Chow 등에 의해서 AES 의 각 라운드를 표현하는 테이블을 감추기 위해 사용된 것이 모두 무력화되고, 결국에는 비밀키를 찾을 수 있는 실마리를 제공한다.
도 1은 이를 도시한 것으로 여기서, Dec는 이전 라운드에서 인코딩한 것을 디코딩하는 것을 의미하고, Enc는 각 라운드의 출력을 인코딩한다는 것을 의미하며, Enc는 non-linear bijection이 된다.
Billet 등에 의한 공격은 크게 3 단계로 구성되는데, 처음 단계에서는 상술한 특징을 활용하여 XOR를 테이블로 표현한 후 추가한 인코딩의 non-linear 부분과 linear 부분을 찾아내고 라운드 간의 관계를 활용하여 비밀키를 추출할 수 있다는 문제점이 있다.
따라서, 본 발명의 목적은, 키와 데이터를 효율적으로 보호할 수 있는 암호화 장치 및 그 암호화 방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 복수의 라운드 암호화를 수행하는 암호화 방법은, 블록 암호화 알고리즘에서 테이블 형태로 변환할 수 있는 변환함수를 추출하고, 추출된 변환함수를 대응되는 테이블로 변환하고, 이를 입력 비트에 적용하는 단계, 상기 테이블의 출력에 출력 비트를 확장시키는 확장 함수를 적용하는 단계 및, 상기 확장 함수의 출력에 상기 확장된 출력 비트를 복원시키는 복원함수를 적용하는 단계를 포함한다.
여기서, 상기 확장 함수는, 32 비트 입력을 128 비트로 출력할 수 있다.
또한, 상기 블록 암호화 알고리즘은 AES(Advanced Encryption Standard)가 될 수 있다.
또한, 상기 테이블로 변환하는 단계는, 상기 복수의 라운드 중 하나의 라운드를 구성하는 복수의 변환 함수 중 적어도 둘 이상의 변환 함수를 하나의 테이블로 변환할 수 있다.
여기서, 상기 확장 함수는, 선형 확장 함수가 될 수 있다.
또는, 상기 확장 함수는, 비선형 확장 함수이며, 랜덤 비트를 추가하는 연산을 포함할 수 있다.
한편, 본 발명의 일 실시 예에 따른 복수의 라운드 암호화를 수행하는 암호화 장치는, 블록 암호화 알고리즘에서 테이블로 변환할 수 있는 변환함수를 추출하고, 추출된 변환함수를 대응되는 테이블로 변환하고 이를 입력 비트에 적용하는 테이블 암호화부, 상기 테이블 암호화부의 출력에 출력 비트를 확장시키는 확장 함수를 적용하는 확장부 및, 상기 확장부의 출력에 상기 확장된 출력 비트를 복원시키는 복원함수를 적용하는 복원부를 포함한다.
여기서, 상기 확장 함수는, 32 비트 입력을 128 비트로 출력할 수 있다.
또한, 상기 블록 암호화 알고리즘은 AES(Advanced Encryption Standard)가 될 수 있다.
또한, 상기 테이블 암호화부는, 하나의 라운드를 구성하는 복수의 변환 함수 중 적어도 둘 이상의 변환 함수를 하나의 테이블로 변환할 수 있다.
또한, 상기 확장부는, 상기 테이블 암호화부의 출력에 선형 확장 함수를 적용할 수 있다.
또한, 랜덤 비트를 생성하여 상기 확장부에 제공하는 랜덤 비트 생성부;를 더 포함하며, 상기 확장부는, 상기 테이블 암호화부의 출력에 상기 랜덤 비트가 추가된 비선형 확장 함수를 적용할 수 있다.
이에 따라 대수적 공격에 대한 안전성을 향상시킬 수 있게 된다.
도 1은 종래기술을 설명하기 위한 도면이다.
도 2a 및 도 2b는 본 발명의 다양한 실시 예에 따른 암호화 장치의 구성을 나타내는 도면이다.
도 3a 및 도 3b는 본 발명의 일 실시 예에 따른 암호화 방법을 설명하기 위한 도면들이다.
도 4a 내지 4c는 도 3a에 도시된 암호화 과정의 각 단계의 구성을 자세히 설명하기 위한 도면들이다.
도 5a 내지 도 5c는 본 발명의 일 실시 예에 따른 암호화 방법을 설명하기 위한 도면들이다.
도 6a 및 도 6b는 본 발명의 일 실시 예에 따른 외부 인코딩 삽입 방법을 설명하기 위한 도면들이다.
도 7은 본 발명의 일 실시 예에 따른 암호화 방법을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시 예에 따른 암호화 방법을 설명하기 위한 흐름도이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 2a 및 도 2b는 본 발명의 다양한 실시 예에 따른 암호화 장치의 구성을 나타내는 도면이다.
도 2a에 따르면, 암호화 장치(100)는 테이블 암호화부(110), 확장부(120) 및 복원부(130)를 포함한다.
도 2a에 도시된 암호화 장치(100)는 블록 암호화 알고리즘에 따른 암호화를 수행할 수 있다.
즉, 암호화 장치(100)는 블록 단위의 평문을 입력받아 암호화를 수행할 수 있다. 여기서, 평문(plaintext 또는 cleartext)는 암호화 대상이 되는 문자열을 의미한다.
이하에서는 블록 암호화에 대해 간략히 설명하도록 한다.
블록 암호(block cipher)란 기밀성있는 정보를 정해진 블록 단위로 암호화하는 대칭키 암호 시스템이다. 만약 암호화하려는 정보가 블록 길이보다 길 경우에는 특정한 운용 모드가 사용될 수 있다(예, ECB, CBC, OFB, CFB, CTR).
한편, 블록 암호 구조에는 페스탈(Feistel) 구조와 SPN 구조가 있다.
페스탈(Feistel) 구조는 암복호화 과정에서 역함수가 필요 없다는 장점이 있지만 구현시 스왑(Swap) 단계 때문에 연산량이 많이 소요되며 암호에 사용되는 라운드 함수를 안전하게 설계해야 한다는 단점이 있다. 페스탈(Feistel) 구조의 대표적인 암호로는 DES가 있으며 Single DES는 안전성 문제로 현재 사용 하고 있지 않다. SPN 구조는 암복호화 과정에서 역함수가 필요하도록 설계되야 한다는 장점이 있지만 중간에 비트의 이동없이 한번에 암복호화가 가능하기 때문에 페스탈(Feistel)구조에 비해 효율적으로 설계할 수 있다. SPN 구조의 대표적인 암호로는 AES(Advanced Encryption Standard)가 있으며 본 발명에서는 블록 암호화 알고리즘으로 AES 가 적용되는 경우를 상정하여 설명하도록 한다.
테이블 암호화부(110)는 블록 단위(예를 들어, 128 비트)의 평문을 입력받아 암호화를 수행할 수 있다.
구체적으로, 테이블 암호화부(110)는 소정의 블록 암호화 알고리즘에서 룩업 테이블로 변환할 수 있는 변환함수를 추출하고, 추출된 변환함수를 대응되는 룩업 테이블로 변환하고 이를 입력 비트에 적용할 수 있다. 여기서, 블록 암호화 알고리즘은 상술한 바와 같이 AES(Advanced Encryption Standard)가 될 수 있다.
또한, 테이블 암호화부(110)는 하나의 라운드를 구성하는 복수의 변환 함수 중 적어도 둘 이상의 변환 함수를 하나의 테이블로 변환할 수 있다. 예를 들어 테이블 암호화부(110)는 후술하는 AES 알고리즘의 단계 중 "AddRoundKey" 및 "SubBytes" 단계에 대응되는 변환 함수를 하나의 테이블로 변환하고 이를 입력 비트에 적용할 수 있다.
확장부(120)는 테이블 암호화부(110)의 출력에 출력 비트를 확장시키는 확장 함수를 적용할 수 있다. 예를 들어, 확장부(120)는 32 비트 입력을 128 비트로 확장하여 출력할 수 있다.
구체적으로, 확장부(120)는 테이블 암호화부(110)의 출력에 선형 확장 함수를 적용할 수 있다.
복원부(130)는 확장부(120)의 출력에 확장된 출력 비트를 복원시키는 복원함수를 적용할 수 있다.
도 2b에 따르면, 암호화 장치(200)는 테이블 암호화부(210), 확장부(220) 및 복원부(230)를 포함한다. 도 2b에 도시된 구성요소들 중 도 2a에 도시된 구성요소와 중복되는 부분에 대해서는 자세한 설명을 생략하도록 한다.
테이블 암호화부(210)는 블록 암호화 알고리즘에서 룩업 테이블로 변환할 수 있는 변환함수를 추출하고, 추출된 변환함수를 대응되는 룩업 테이블로 변환하고 이를 입력 비트에 적용할 수 있다. 여기서, 블록 암호화 알고리즘은 상술한 바와 같이 AES(Advanced Encryption Standard)가 될 수 있다.
구체적으로, 테이블 암호화부(210)는 하나의 라운드를 구성하는 복수의 변환 함수 중 적어도 둘 이상의 변환 함수를 하나의 테이블로 변환할 수 있다.
확장부(220)는 테이블 암호화부(210)의 출력에 출력 비트를 확장시키는 확장 함수를 적용할 수 있다. 예를 들어, 확장부(220)는 32 비트 입력을 128 비트로 확장하여 출력할 수 있다.
또한, 확장부(220)는 테이블 암호화부(210)의 출력에 비선형 확장 함수를 적용할 수 있다.
복원부(230)는 확장부(220)의 출력에 확장된 출력 비트를 원래의 비트로 복원시키는 복원함수를 적용할 수 있다.
랜덤 비트 생성부(240)는 랜덤 비트를 생성하여 확장부(220)에 제공할 수 있다. 이 경우, 확장부(220)는 테이블 암호화부(210)의 출력에 랜덤 비트가 추가된 비선형 확장 함수를 적용할 수 있다.
AES Operations
이하에서는 본 발명의 일 실시 예에 따른 테이블 암호화부(210)의 암호화 방법에 대해 자세히 설명하도록 한다.
도 3a 및 도 3b는 본 발명의 일 실시 예에 따른 암호화 방법을 설명하기 위한 도면들이다.
도 3a에 따르면, 본 발명의 일 실시 예에 따른 암호화 방법은 블록 암호화 알고리즘을 적용하여 암호화를 수행할 수 있고, 예를 들어 도시된 바와 같은 AES(Advanced Encryption Standard) 알고리즘을 적용하여 암호화를 수행할 수 있다.
AES 알고리즘은 도시된 바와 같이 "initial round, 9 round 및 final round"를 포함하는 11 개의 라운드로 이루어질 수 있다.
여기서, initial round는 입력된 평문 블록에 암호화 키(Cipher Key)를 추가하는 "AddRoundKey" 단계를 포함할 수 있다.
또한, 동일한 라운드가 9번 반복되는 9 round 단계의 각 라운드는 initial round가 수행된 블록에 대해 테이블을 이용하여 키를 대체하는 "1-SubBytes 단계", 열을 시프트하는 "2-ShiftRows" 단계, 행을 믹싱하는 "3-MixColumns 단계", 라운드 키(Round key)를 추가하는 "4-initial round" 단계를 포함할 수 있다. 즉, "1-SubBytes 단계", "2-ShiftRows" 단계, "3-MixColumns 단계" 및 "4-initial round" 단계가 9번 반복하여 수행되게 된다.
또한, final round에는 "SubBytes 단계", "ShiftRows" 단계, 및 "AddRoundKey" 단계가 수행될 수 있다.
도 3b에 따르면, 도 3a에 도시된 암호화 과정에 대응되는 복호화 과정이 도시된다.
복호화 과정(Decryption Process)에서는 도시된 바와 같이 암호화 과정(Encryption Process)의 각 단계가 역순으로 수행될 수 있다.
Basic idea of Whitebox AES
스텝 1: AES의 각 라운드는 다음 수학식 1과 같이 룩업 테이블로 인코딩되고 나타내어지는 서로 다른 구성요소로 분리될 수 있다.
Figure pat00001
스텝 2: 바이젝션 M1, ..., M2i는 랜덤하게 선택되고, 그들의 인버스(inverses)에 따라 다음 수학식 2와 같이 스텝 1에서 분리된 서로 다른 구성요소의 주위에 삽입될 수 있다.
Figure pat00002
스텝 3: 스텝 2에서 생성된 각 파트들은 다음 수학식 3과 같이 소정 형태로 그룹화되고, 각각의 그룹은 분리된 테이블로 입력될 수 있고, 두 개의 맵핑 F-1 및 G는 그 주변으로 입력될 수 있다.
Figure pat00003
도 4a 내지 4c는 도 3a에 도시된 암호화 과정의 각 단계의 구성을 자세히 설명하기 위한 도면들이다.
Hiding the key in S- boxes
도 4a는 도 3a에 도시된 암호화 과정 중 1-SubBytes 단계의 구성을 설명하기 위한 도면이다.
도 4a에 따르면, 1-SubBytes 단계에서는 initial round가 수행된 대상 블록에 대해 "S-box"를 이용하여 키 대체 동작을 수행할 수 있다.
또한, initial round에서 수행되는 "AddRoundKey" 단계의 동작 및 "1-SubBytes 단계"의 구성은 하나의 테이블 즉, "T-box"로 구현될 수 있다.
Figure pat00004
Figure pat00005
예를 들어, k={01010111}2 또는 {57}h 이면 T({00}h )=S({57}h )등이 되기 때문에 T-box는 도 4a의 좌측 하부에 도시된 바와 같게 된다.
전체적으로는, 8*8 테이블(8 비트 입력, 8 비트 출력)인 10 * 16 = 160 T-boxes가 된다.
MixColumns
도 4b는 도 3a에 도시된 암호화 과정 중 MixColumns 단계의 구성을 설명하기 위한 도면이다.
도 4b에 따르면, MixColumns 단계에서는 2-ShiftRows 단계가 수행된 대상 블록에 대해 컬럼을 믹싱하는 동작을 수행할 수 있다.
AES MixColumn 동작이 S-box와 같은 룩업 테이블로 나타내어진다면, 32 비트 입력 및 32 비트 출력을 갖기 때문에 216 ×216 ×32 = 16GB의 코스트를 갖게 된다.
따라서, MC는 도시된 바와 같이 4개의 32×8 섹션으로 블럭화된다.
이 경우 4개의 테이블은 함께 4×28 ×32 = 4KB의 코스트를 갖게 된다.
한편, "2-ShiftRows 단계"은 도 2a에 도시된 바와 같이 로우를 시프트하는 동작으로 자세한 설명은 생략하도록 한다.
XOR - Type IV Table
도 4c는 본 발명이 일 실시 예에 따른 랜덤 함수 적용 방법을 설명하기 위한 도면이다.
도 4c에 따르면, 일대일(bijection) 함수가 랜덤하게 선택되고, 그들의 인버스와 함께 적용될 수 있다. 이에 따라 암호화 과정 중의 중간값은 변경되지만, 결과 값은 램덤하게 선택된 일대일 함수가 적용되기 전과 동일한 값을 갖게 된다.
XOR 테이블의 사이즈를 줄이기 위하여, XOR은 서브 디바이드(sub-divided)된 4 비트에 대해 수행될 것이다. 따라서, 24(8 4-bits for each Zi, 3-XOR) 4-bits XORs 가 된다. 여기서 4-bits XOR은 8(4-bits, 4-bits input) × 4(4-bits output) 테이블이 될 수 있다.
또한, 도시된 바와 같이 non-linear random 4×4 바이젝션이 XOR 테이블 주위에 입력 디코딩 및 출력 인코딩으로 입력될 수 있다.
도 5a 내지 도 5c는 본 발명의 일 실시 예에 따른 암호화 방법을 설명하기 위한 도면들이다.
도 5a는 Mixcolumn 및 XOR 이후에 믹싱 바이젝션을 삽입하는 방법을 나타낸다.
도 5a에 따르면, 32 비트 입력 및 32 비트 출력의 1 MixColumn 동작에 대해 24 Type IV 테이블이 필요하게 된다.
도 5b 및 도 5c는 본 발명의 일 실시 예에 따른 T-box 및 Mixcolumn을 구성하는 방법을 설명하기 위한 도면이다.
도 5b에 따르면, T-boxes(SubBytes 및 AddRoundKey)와 Mixcolumn 8*32 테이블을 분리하지 않고, 공간 및 시간을 절약하도록 구성할 수 있다.
이 경우 T-box의 입력을 분산시키기 위하여 T-box의 입력으로 mixing bijection을 정의할 수 있다.
한편, 믹싱 컬럼 동작을 혼동시키기 위하여, MC(MixColumn)의 좌측에는 4*4 서브 매트릭스를 갖는 넌싱귤러(nonsingular) 매트릭스로서 32*32 믹싱 바이젝션이 곱해진다.
이는 다음 라운드에서 T-box의 입력으로 8*8 믹싱 바이젝션을 소거하기 위한 것이다.
도 5c에 따르면, T-box 및 MixColumn의 믹싱 동작을 무효로 만들고, 혼동시키기 위하여 Type Ⅲ Tables이 정의된다.
도 6a 및 도 6b는 본 발명의 일 실시 예에 따른 외부 인코딩 삽입 방법을 설명하기 위한 도면들이다.
도 6a 및 도 6b에 따르면, MB의 입력 및 출력을 보호하기 위한 두 개의 인코딩 함수 F-1 (U-1) 및 G(V)가 적용될 수 있다. 이는 물론 선택적으로 적용가능하다.
여기서, U-1 및 V는 1024(32*32)개의 4*4 서브 매트릭스의 1024(32*32)로 구성되는 128*128 리니어 바이젝션(linear bijection)으로 랜덤하게 선택된다.
이하에서는 상술한 본 발명의 다양한 실시 예에 따른 암호화 방법을 설명의 편의를 위하여 실시 예 별로 구분하여 설명하도록 한다.
제1 실시 예
본 발명의 제1 실시 예에 따르면, 블록암호를 구성하는 각 함수를 테이블로 만들어 합성하는 대신 블록 함수 자체를 하나의 테이블로 간주하는 방법을 사용할 수 있다.
구체적으로 설명하면, 8 비트 단위를 16 비트나 그 이상의 비트 단위로 확장하여 공격량을 늘리는 방법을 고려할 수 있다. 하지만, 이렇게 하면 변환함수를 테이블로 표현하기 위해 필요한 테이블의 크기가 기하급수적으로 늘어나게 된다.
예를 들어 8 비트 단위 입력을 32 비트로 확장하면 필요한 테이블 하나의 크기가 64 GB나 된다. 극단적으로 128 비트 입력을 사용하는 함수의 테이블 표현은 2102 GB나 된다.
따라서, 본 발명에 따른 제1 실시 예에서는 이러한 테이블의 크기가 기하급수적으로 늘어나는 것을 방지하면서 비밀키의 복구와 테이블의 복구를 방지하기 위해서 블록 암호의 전체 라운드를 하나의 테이블로 표현하되 입력의 길이를 128보다 작은 단위로 줄이고 줄어든 입력에 일정한 패딩을 붙여서 다시 128 비트로 확장한 다음 각각에 블록암호의 전체 라운드를 적용한 후 각각의 출력을 연접하여 출력하는 방법을 적용할 수 있다.
이 경우 블록 암호의 전체 라운드에 대한 테이블은 감추고자 하는 비밀키를 감안하여 만들어진 테이블이다. 예를 들어, 블록 암호를 16 비트 단위로 나누어 적용한다고 하고, 블록 암호의 128 비트 길이의 임의의 키를 k라 하고 임의의 128 비트 길이의 입력 메시지를 M이라 하자.
블록 암호가 16 비트 단위이므로 입력 메시지가 8개로 나뉘게 된다. 이제 블록 암호의 암호화 알고리즘을 E(k,M)이라 하고 복호화 알고리즘을 D(k,C)라 하면 키 k에 대한 입력 16비트에 대한 암호화 및 복호화 테이블을 마련한다. 여기서, 암호화 테이블을 만들기 위해서는 먼저 입력의 총 가지 수가 216개이므로 모든 경우에 대하여 E(k,M)을 적용할 수 있다. E(k,M)이 128비트 입력을 암호화하므로 16 비트의 입력에 112 비트 임의의 패팅을 연접하여 E(k,M)의 입력으로 설정할 수 있다.
216개의 메시지를 각각 m1, …, m65536이라 하자. 그러면 먼저 m1을 암호화 테이블의 입력으로 하며 출력 c1=E(k,m1)을 얻는 방법으로 m65536을 입력으로 하여 c65536=E(k,m65536)까지 얻을 수 있고 이것을 암호화 테이블로 사용한다. 이것을 E-TBLk(M)이라 하자. 복호화 테이블은 이것의 입력과 출력을 바꾼 테이블이 될 것이고 D-TBLk(C)라 나타내자.
이제 입력 메시지 M을 암호화하기 위해서는 입력을 16비트 단위로 나누어 M1, …, M8을 얻고 각각에 대해 암호화 테이블을 적용하면 된다. 여기서, M1, …, M8이 모두 16 비트 값이므로 앞에서 얻은 암호화 테이블의 모든 경우에 포함되므로 어떤 메시지에 대해서도 원하는 암호문을 얻을 수 있다. 이것을 C1=E-TBLk(M1), …, C8=E-TBLk(M8)이라 하면 본 발명에 의한 화이트박스 블록 암호의 출력 C=C1||…||C8이다.
복호화 과정은 복호화 테이블만 호스트 기기의 필요한 알고리즘에 제공하면 된다. E-TBLk(M)의 출력이 128 비트이므로 복호화 테이블의 입력은 128 비트가 되고 공격자가 테이블을 복구하는 것은 불가능하다. 또한 암호문이 블록암호의 전체 라운드를 테이블로 표현한 것이므로 주어진 블록암호의 비밀키에 대한 안전성과 본 발명에 의한 화이트박스로 구현된 블록암호의 비밀키의 안전성은 완전히 동일하게 된다.
제2 실시 예
본 발명에 따른 제2 실시 예에서는 주어진 블록암호 알고리즘에 확장함수를 합성하는 방법과 생성된 테이블을 난수화(randomize)하는 방법을 사용한다.
종래 기술에서는 8 비트 입력에 32 비트 출력을 갖는 테이블을 16개 고려하기 때문에 테이블의 크기는 줄어들 수 있으나 8x32 테이블 한 개만 생각하면 Billet 등에 의해서 공격된 바와 같이 공격량이 현저히 줄어드는 단점이 있다. 이러한 단점을 보완하기 위하여 본 실시 예에서는 먼저 한 라운드를 구성하는 블록암호 알고리즘을 하나의 테이블로 변환(이것을 T-Box라 하고, 예를 들면 T-Box = MC(SB(AR(SR(x),SR(k)))로 나타낼 수 있다)라고, T-Box의 출력을 블록암호의 출력값의 크기로 확장하는 알고리즘 Expansion(이하 E)을 적용한다.
AES를 예로 들면 T-Box는 8 비트 값을 입력으로 하여 32 비트를 출력하는데 확장 알고리즘 E에 의해서 이것이 다시 128 비트로 늘어난다. 그 다음 XOR 연산은 128 비트에서 32비트를 복구하는 알고리즘을 적용하여 한 라운드의 연산을 마친다. 주어진 블록 암호 알고리즘이 필요로 하는 라운드 수만큼 위 연산을 수행하면 된다. 단, 이때 각 라운드의 테이블의 내용은 모두 다르다.
이러한 확장 함수의 예로는 128x32 행렬을 생각할 수 있다. Q1, Q2, Q3, Q4를 역행렬이 존재하는 32x32 행렬이라 할 때 즉 Qi∈GL32(F 2)라 하자. Qi는 32 비트 상의 permutation으로 생각하면 된다. 그러면 E := t(Q1Q2Q3Q4)가 된다. 입력 x(i), 1≤i≤16,에 T-Box를 적용한 후 32 비트 permutation을 적용하며 128 비트를 얻는 연산은 E?T-Box(x(i))이 되며 g1...g128로 나타낼 수 있다. 이 값으로부터 다시 원래의 32 비트를 추출하기 위해서는 E의 역행렬을 생각하면 된다. 이것을 본 발명에서는 복원 함수(또는 복구 함수)라고 한다.
복원 함수도 행렬로 나타낼 수 있는데 이 경우에는 32x128 행렬이다. 특히 각 1≤i≤4에 대하여 Pi ?Qi=I32 이어야 한다. 여기서 I32는 32x32 항등행렬을 의미한다. F 2 위에서의 행렬을 생각한다면 추가로 Pi 중 하나는 영행렬이어야 한다. 그러면 복구함수 D=(P1P2P3P4)로 나타낼 수 있다.
제3 실시 예
본 발명에 따른 제3 실시 예에서는 블록암호를 구성하는 각 함수를 테이블의 복구를 방지하기 위하여 테이블을 난수화하는 방법을 사용한다.
본 실시 예에서는 종래 기술의 경우 주어진 함수에 대해 단 하나의 암/복호화 테이블이 존재하여 주어진 테이블에 대한 입/출력 공격을 통하여 테이블을 복구할 수 있는 단점을 해결할 수 있게 된다.
먼저 기존 발명의 경우 주어진 함수에 대한 테이블이 아래의 표 1과 같다고 하자.
Ciphertext c Plaintext p
C1 P1
...
C65536 P65536
즉 입력 값이 16비트에 대하여 총 216개의 엔트리를 갖는 복호화 테이블을 생각하자. 테이블의 내용이 드러나지는 않지만 입력을 넣으면 출력을 제공하는 알고리즘 A를 생각하면 입력의 길이가 짧은 경우, 예를 들어 216, 216번 모든 입력에 대한 출력을 모으면 테이블의 내용이 숨겨져도 테이블을 완전하게 복구할 수 있다. 본 발명은 이러한 공격을 방어하기 위해 입력과 출력을 변환하고 테이블을 복수개의 테이블로 분할하는 방법을 사용한다.
본 실시 예에 의한 첫번째 방법은 암호학적 해쉬 함수 등 충돌쌍이 적게 나타나는 임의의 함수 h()를 적용하여 아래의 표 2와 같은 형태로 변환하는 것이다.
Figure pat00006
그러나 함수 h가 공개된 것이라면 임의의 입력에 대해 h()를 적용한 후 그 결과를 확인하는 것이 불가능한 것이 아니므로 주어진 입력에 대한 출력의 값을 복구하는 것을 방지하기 위하여 출력값도 변환해 주는 방법을 사용한다. 출력값을 변환하는 함수를 g라고 할 때 위의 테이블은 아래의 표 3과 같이 엔트리를 포함하여 저장된다.
h(c) g(m)
00000000000000010 g(m1,1m1,2…m1,16)
00000000000000011 g(m2,1m2,2…m2,16)
0000000000000010 g(m3,1m3,2…m3,16)
...
011111111111111111 g(m65536,1m65536,2…m65536,16)
그러면 공격자는 입력값에 대한 출력을 알아내도 입력에 대응하는 원래의 출력값이 무엇인지 알 수 없기 때문에 입/출력 공격에 의한 테이블 복구를 방어할 수 있다.
본 실시 예에서는 추가의 안전성을 위하여 난수값 r=(r1, …, rn)을 사용하여 테이블 엔트리를 변경하고 테이블을 분할하여 저장한 후 여러 번의 테이블 참조를 통하여 입력에 대한 출력을 제공하는 방법을 사용한다. 좀더 구체적으로 설명하기 위해 다음을 정의하도록 한다.
g: {0,1}16→{0,1}16으로 다음과 같이 정의됨
g(c,m,r)=(A˚M(m+r))
Figure pat00007
f(r,c)
M (m+r)=T(m1+r1, m2+r2, …, m65536+r65536) ∈ 216x1 GF(216) 행렬
A∈216x216 GF(2) 가역 희소행렬
f : {0,1}16x{0,1}128 → {0,1}16 one-way function
f': {0,1}128 → {0,1}16 one-way function
이것들을 사용하여 표 3에 적용하면 아래의 표 4 및 5를 얻을 수 있다.
분할된 테이블 #1
h(c) m r A°M(m') Output
c1 m'1=m1+r1 a1 a1
Figure pat00008
f(r1,c1)
c2 m'2=m2+r2 a2 a2
Figure pat00009
f(r2,c2)
c3 m'3=m3+r3 a3 a3
Figure pat00010
f(r3,c3)
.. .. ..
c65536 m'65536 a65536 a65536
Figure pat00011
f(r65536,c65536)
분할된 테이블 #2
h(c) r A°M(r) Output
c1 r1 a'1 a'1
Figure pat00012
f'(r1,c1)
c2 r2 a'2 a'2
Figure pat00013
f'(r2,c2)
c3 r3 a'3 a'3
Figure pat00014
f'(r3,c3)
.. .. ..
c65536 r65536 a'65536 a'65536
Figure pat00015
f'(r65536,c65536)
이것을 사용하여 입력에 대응하는 출력을 계산하는 방법은 다음과 같다:
1. 표 5에서 암호문 ci를 사용하여 f'(ci)를 계산하여 ai'를 구하고
2. ai '와 행렬 A- 1를 이용하여 ri를 복구
3. 표 4에서 ri와 암호문 ci를 사용하여 f(ri,ci)를 계산하여 ai 구하고
4. ai와 행렬 A- 1 를 이용하여 mi'복구
5. 평문 mi = mi
Figure pat00016
ri
상기 방법에 의하여 원래 입력과 출력을 변환하지 않고 단 하나의 테이블에 저장하는 방법과 동일한 결과를 안전하게 얻을 수 있다.
추가로 더 나은 안전성을 위해서 많은 난수 r을 만들어 테이블을 사용하는 난수의 개수만큼 늘리는 방법을 적용할 수 있다.
제 4 실시 예
제2 실시 예에서 기술한 확장함수는 선형함수인 반면, 본 실시 예에서는 안전성을 높이기 위해 비선형함수를 확장함수로 이용하는 예를 들고, 이에 대응되는 복구함수와 배타적 논리합(XOR) 연산 과정을 살펴보도록 한다.
도 7은 본 발명의 일 실시 예에 따른 암호화 방법을 설명하기 위한 도면이다.
도 7에 따르면, 먼저 8 비트 입력 32 비트 출력 T-Box의 출력 32 비트를 8개의 4 비트로 나누어 임의로 선택한 8개의 4 비트 일대일 대응 함수들 pi, i= 0, 1, 2, 3, 4, 5, 6, 7 로 인코딩한다. 이렇게 하여 출력된 32비트를 임의로 선택한 96 비트와 연접하여 128 비트를 만든다. 이것을 다시 임의로 선택한 7 비트 일대일 함수 f를 이용하여 비트의 위치를 바꾼다(도 7에서 IP(index permutation)). 이러한 방법으로 비선형 확장함수를 구성할 수 있으며 이를 T-Box와 합성하여 8 비트 입력 128 비트 출력의 테이블로 만들다.
그 다음 단계로, 앞에서 비트의 위치를 바꾸는데 이용한 7 비트 일대일 함수 f의 함수값, f(i), i= 0, 1, …, 31 의 정보를 이용하여 128 비트를 다시 원래의 32 비트로 복구할 수 있다(아래 그림에서 R은 복구함수).
이렇게 복구된 32 비트는 8개의 4 비트 일대일 대응 함수로 인코딩되어 있는 상태이기 때문에, 이를 XOR 연산을 하기 위해서는 32 비트를 다시 8개의 4 비트로 나누어 디코딩을 해야 한다.
따라서 XOR 연산을 4 비트 단위로 나누고 입력에 두 개의 4 비트 디코딩을, 출력에 하나의 4 비트 인코딩을 붙여서 하나의 8 비트 입력 4 비트 출력의 테이블로 만든다. r0는 XOR의 출력에 대한 임의의 비선형 인코딩이 된다.
도 8은 본 발명의 일 실시 예에 따른 암호화 방법을 설명하기 위한 흐름도이다.
도 8에 따르면, 본 암호화 방법은 복수의 라운드 암호화를 수행하는 암호화 방법은, 우선, 기설정된 블록 암호화 알고리즘에서 테이블 형태로 변환할 수 있는 변환함수를 추출하고, 추출된 변환함수를 대응되는 테이블로 변환하고, 이를 입력 비트에 적용한다(S810). 여기서, 블록 암호화 알고리즘은 AES(Advanced Encryption Standard)가 될 수 있다.
이어서, 입력 비트가 적용된 테이블의 출력에 출력 비트를 확장시키는 확장 함수를 적용한다(S820). 여기서, 확장 함수는 32 비트 입력을 128 비트로 확장 출력하는 함수가 될 수 있다.
또한, 확장 함수는 선형 함수일 수 있다.
또는 확장 함수는 비선형 함수이며, 확장된 출력 비트에 랜덤 비트를 추가하는 연산을 포함할 수 있다.
확장 함수의 출력에 상기 확장된 출력 비트를 복원시키는 복원 함수를 적용한다(S830). 또한, 테이블 형태로 변환하는 단계는, 복수의 라운드 중 적어도 하나의 라운드를 구성하는 복수의 변환 함수 중 적어도 둘 이상의 변환 함수를 하나의 테이블로 변환할 수 있다.
구체적으로, 본 발명의 일 실시 예에 따르면, 주어진 블록암호의 전체 라운드 함수를 입력 비트보다 작은 단위를 입력 단위로 하는 테이블로 변환하고, 입력값을 주어진 단위의 크기로 분할한 후 변환한 테이블에 적용하여 얻은 각각의 출력을 연접하여 최종 암호문으로 출력할 수 있다.
이에 따라 주어진 블록암호의 전체 라운드 함수의 역과정을 적용하여 복호화하는 과정을 테이블로 변환하고, 다수의 암호문으로 연접된 암호문을 분할한 후 테이블에 적용하여 얻은 출력으로부터 주어진 길이만큼만 취하여 연접한 후 평문을 복구할 수 있다.
또한, 본 발명의 다른 실시 예에 따르면, 각 라운드를 모든 라운드 변환함수 함성하여 8*32의 테이블 4개로 표현하는 대신 8*128 의 테이블 16개로 표현하고, 이 때 128 비트로 확장하는 함수를 사용하여 테이블을 표현하는 방법과 이 방법을 사용하여 주어진 평문을 테이블을 사용하여 암호화하는 방법을 사용할 수 있다.
이에 따라 암호화에 사용된 테이블을 재사용하여 주어진 암호문을 복호화할 수 있다.
또한, 본 발명의 또 다른 실시 예에 따르면, 테이블의 복구를 방지하기 위하여 테이블의 입력과 출력을 그대로 저장하지 않고 일대일 변환함수를 사용하여 저장할 수 있다.
이 경우, 출력을 저장할 때 난수를 적용하여 난수화한 후, 난수의 개수를 매개변수로 하는 개수만큼 테이블을 변환하여 저장할 수 있다.
또한, 본 발명의 또 다른 실시 예에 따르면, 키 정보가 들어있는 8비트 입력 128비트 출력 테이블에 대한 공격을 어렵게 하기 위해 비선형 함수로 인코딩하고 랜덤 비트를 이용하여 섞어주는 비선형 확장함수를 사용할 수 있다.
이에 따라 확장함수에 비트의 위치를 바꾸는 연산을 사용함으로써 확장함수에 들어있는 비선형 인코딩이 복구함수를 통해 복구된 32비트에도 남아 있도록 할 수 있다.
상술한 바와 같이 본 발명에 따르면, (1) 입력을 분할한 후 블록암호를 적용하는 방법 (2) 복수 개의 라운드를 묶어서 테이블로 변환하는 방법 (3) 필요한 테이블의 크기를 약간 크게 하는 것을 허용하는 방법을 적용하여 Billet 등에 의해서 제안된 대수적 공격에 대한 안전성을 향상시킬 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 이해되어져서는 안 될 것이다.
110, 210 : 테이블 암호화부 120, 220 : 확장부
130, 230 : 복원부 240 : 랜덤 비트 생성부

Claims (12)

  1. 복수의 라운드 암호화를 수행하는 암호화 방법에 있어서,
    기설정된 블록 암호화 알고리즘에서 테이블 형태로 변환할 수 있는 변환함수를 추출하고, 추출된 변환함수를 대응되는 테이블로 변환하고, 이를 입력 비트에 적용하는 단계;
    상기 테이블의 출력에 출력 비트를 확장시키는 확장 함수를 적용하는 단계; 및
    상기 확장 함수의 출력에 상기 확장된 출력 비트를 복원시키는 복원 함수를 적용하는 단계;를 포함하는 암호화 방법.
  2. 제1항에 있어서,
    상기 확장 함수는,
    32 비트 입력을 128 비트로 확장 출력하는 것을 특징으로 하는 암호화 방법.
  3. 제1항에 있어서,
    상기 블록 암호화 알고리즘은 AES(Advanced Encryption Standard)인 것을 특
    징으로 하는 암호화 방법.
  4. 제1항에 있어서,
    상기 테이블 형태로 변환하는 단계는,
    상기 복수의 라운드 중 적어도 하나의 라운드를 구성하는 복수의 변환 함수 중 적어도 둘 이상의 변환 함수를 하나의 테이블로 변환하는 것을 특징으로 하는 암호화 방법.
  5. 제1항에 있어서,
    상기 확장 함수는,
    선형 확장 함수인 것을 특징으로 하는 암호화 방법.
  6. 제1항에 있어서,
    상기 확장 함수는,
    비선형 확장 함수이며, 확장된 출력 비트에 랜덤 비트를 추가하는 연산을 포함하는 것을 특징으로 하는 암호화 방법.
  7. 복수의 라운드 암호화를 수행하는 암호화 장치에 있어서,
    기설정된 블록 암호화 알고리즘에서 테이블 형태로 변환할 수 있는 변환함수를 추출하고, 추출된 변환함수를 대응되는 룩업 테이블로 변환하고 이를 입력 비트에 적용하는 테이블 암호화부;
    상기 테이블 암호화부의 출력에 출력 비트를 확장시키는 확장 함수를 적용하는 확장부; 및
    상기 확장부의 출력에 상기 확장된 출력 비트를 복원시키는 복원함수를 적용하는 복원부;를 포함하는 암호화 장치.
  8. 제7항에 있어서,
    상기 확장 함수는,
    32 비트 입력을 128 비트로 확장 출력하는 것을 특징으로 하는 암호화 장치.
  9. 제7항에 있어서,
    상기 블록 암호화 알고리즘은 AES(Advanced Encryption Standard)인 것을 특징으로 하는 암호화 장치.
  10. 제7항에 있어서,
    상기 테이블 암호화부는,
    상기 복수의 라운드 중 적어도 하나의 라운드를 구성하는 복수의 변환 함수 중 적어도 둘 이상의 변환 함수를 하나의 테이블로 변환하는 것을 특징으로 하는 암호화 장치.
  11. 제7항에 있어서,
    상기 확장부는,
    상기 테이블 암호화부의 출력에 선형 확장 함수를 적용하는 것을 특징으로 하는 암호화 장치.
  12. 제7항에 있어서,
    랜덤 비트를 생성하여 상기 확장부에 제공하는 랜덤 비트 생성부;를 더 포함하며,
    상기 확장부는,
    상기 테이블 암호화부의 출력에 상기 랜덤 비트가 추가된 비선형 확장 함수를 적용하는 것을 특징으로 하는 암호화 장치.
KR1020100114133A 2010-11-16 2010-11-16 암호화 장치 및 그 암호화 방법 KR20120089396A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100114133A KR20120089396A (ko) 2010-11-16 2010-11-16 암호화 장치 및 그 암호화 방법
US13/297,857 US20120121083A1 (en) 2010-11-16 2011-11-16 Encryption apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100114133A KR20120089396A (ko) 2010-11-16 2010-11-16 암호화 장치 및 그 암호화 방법

Publications (1)

Publication Number Publication Date
KR20120089396A true KR20120089396A (ko) 2012-08-10

Family

ID=46047764

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100114133A KR20120089396A (ko) 2010-11-16 2010-11-16 암호화 장치 및 그 암호화 방법

Country Status (2)

Country Link
US (1) US20120121083A1 (ko)
KR (1) KR20120089396A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200047138A (ko) * 2018-10-26 2020-05-07 삼성에스디에스 주식회사 암호 알고리즘 생성 장치 및 방법, 암호화 장치 및 방법
KR20200047094A (ko) * 2018-10-26 2020-05-07 삼성에스디에스 주식회사 암호 알고리즘 생성 장치 및 방법, 암호화 장치 및 방법
US10965454B2 (en) 2016-05-27 2021-03-30 Samsung Sds Co., Ltd. Apparatus and method for public key encryption

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2666281C2 (ru) 2013-05-01 2018-09-06 Конинклейке Филипс Н.В. Электронное устройство блочного шифрования, подходящее для обфускации
CN104219040A (zh) * 2013-06-05 2014-12-17 上海华虹集成电路有限责任公司 防对称密码算法受攻击的方法
CN104092535B (zh) * 2014-07-24 2017-09-15 福建升腾资讯有限公司 一种实现des密码加密的方法
US9515818B2 (en) * 2014-09-16 2016-12-06 Apple Inc. Multi-block cryptographic operation
US9665699B2 (en) 2015-03-13 2017-05-30 Nxp B.V. Implementing padding in a white-box implementation
US9794062B2 (en) * 2015-10-08 2017-10-17 The Boeing Company Scrambled tweak mode of blockciphers for differential power analysis resistant encryption
US9729310B2 (en) * 2015-10-08 2017-08-08 The Boeing Company Scrambled counter mode for differential power analysis resistant encryption
DE102015014038A1 (de) * 2015-10-30 2017-05-04 Giesecke & Devrient Gmbh Alternative Darstellung des Krypto-Algorithmus DES
US9800403B1 (en) * 2016-09-30 2017-10-24 International Business Machines Corporation Message processing using extended output functions
KR102602696B1 (ko) * 2017-10-13 2023-11-16 삼성전자주식회사 암호화 장치 및 복호화 장치, 이들의 동작방법
CN109033847B (zh) * 2018-06-11 2021-06-18 安徽工程大学 Aes加密运算单元、aes加密电路及其加密方法
CN109033894B (zh) * 2018-06-11 2021-06-22 安徽工程大学 普通轮变换运算单元、普通轮变换电路及其aes加密电路
CN109033893B (zh) * 2018-06-11 2021-06-18 安徽工程大学 基于合成矩阵的aes加密单元、aes加密电路及其加密方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10965454B2 (en) 2016-05-27 2021-03-30 Samsung Sds Co., Ltd. Apparatus and method for public key encryption
KR20200047138A (ko) * 2018-10-26 2020-05-07 삼성에스디에스 주식회사 암호 알고리즘 생성 장치 및 방법, 암호화 장치 및 방법
KR20200047094A (ko) * 2018-10-26 2020-05-07 삼성에스디에스 주식회사 암호 알고리즘 생성 장치 및 방법, 암호화 장치 및 방법
US11632233B2 (en) 2018-10-26 2023-04-18 Samsung Sds Co., Ltd. Apparatus and method for generating cryptographic algorithm, apparatus and method for encryption
US11632234B2 (en) 2018-10-26 2023-04-18 Samsung Sds Co., Ltd. Apparatus and method for generating cryptographic algorithm, apparatus and method for encryption

Also Published As

Publication number Publication date
US20120121083A1 (en) 2012-05-17

Similar Documents

Publication Publication Date Title
KR20120089396A (ko) 암호화 장치 및 그 암호화 방법
Abdullah Advanced encryption standard (AES) algorithm to encrypt and decrypt data
Saraf et al. Text and image encryption decryption using advanced encryption standard
US8966279B2 (en) Securing the implementation of a cryptographic process using key expansion
WO2011029753A1 (en) A method of diversification of a round function of an encryption algorithm
JP7031580B2 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
JP6877889B2 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
CN113940028A (zh) 实现白盒密码的方法和装置
Reyad et al. Key-based enhancement of data encryption standard for text security
Yap et al. On the effective subkey space of some image encryption algorithms using external key
Asaad et al. Advanced Encryption Standard Enhancement with Output Feedback Block Mode Operation
Rajput et al. An improved cryptographic technique to encrypt text using double encryption
Joshy et al. Text to image encryption technique using RGB substitution and AES
Kaur et al. A random selective block encryption technique for secure image cryptography using blowfish algorithm
CN109714154B (zh) 一种代码体积困难白盒安全模型下的白盒密码算法的实现方法
Tiwari et al. Block based text data partition with RC4 encryption for text data security
Madavi et al. Enhanced cloud security using cryptography and steganography techniques
Rawal Advanced encryption standard (AES) and it’s working
Saha et al. White-box cryptography based data encryption-decryption scheme for iot environment
Sharma et al. Cryptography Algorithms and approaches used for data security
Kadry et al. An improvement of RC4 cipher using vigenère cipher
US20230403134A1 (en) Method for processing encrypted data
Kumar et al. Implementation of AES algorithm using VHDL
Singh et al. Combination of RGB substitution for text to image encryption technique using AES
Nakahara Jr Lai-Massey Cipher Designs: History, Design Criteria and Cryptanalysis

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