KR101989956B1 - 암호화 장치 및 방법 - Google Patents
암호화 장치 및 방법 Download PDFInfo
- Publication number
- KR101989956B1 KR101989956B1 KR1020150151039A KR20150151039A KR101989956B1 KR 101989956 B1 KR101989956 B1 KR 101989956B1 KR 1020150151039 A KR1020150151039 A KR 1020150151039A KR 20150151039 A KR20150151039 A KR 20150151039A KR 101989956 B1 KR101989956 B1 KR 101989956B1
- Authority
- KR
- South Korea
- Prior art keywords
- size
- generating
- encryption algorithm
- block
- branches
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation or hiding, e.g. involving white box
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
암호화 장치 및 방법이 개시된다. 본 발명의 일 실시예에 따른 암호화 장치는 시드 값으로부터 유도된 임의의 값들을 생성하고, 생성된 상기 임의의 값들을 포함하는 키 테이블을 생성하는 키 테이블 생성부 및 생성된 상기 키 테이블이 적용된 라운드 함수를 가지는 페이스텔(Feistel) 구조의 블록 암호화 알고리즘을 생성하고, 생성된 상기 블록 암호화 알고리즘을 이용하여 평문 데이터 블록을 암호화하는 암호화부를 포함한다.
Description
본 발명의 실시예들은 암호화 기술과 관련된다.
종래의 화이트박스 암호 알고리즘은 기반이 되는 대칭키 암호 알고리즘의 내부 특성에 따라 그 구현 방식이 상이할 수 있고, 기반 알고리즘에 의존하기 때문에 범용성 제공이 어려우며, 기반 알고리즘의 암호키를 보호하기 위해 많은 추가 연산의 삽입으로 기반 알고리즘과 비교하여 수십 배의 효율 저하를 초래한다.
또한, 종래 화이트박스 암호 알고리즘은 설계자의 의도만큼 충분한 안전성을 제공하지 못하고, 실시간 암호키 복구 공격에 노출되고 있다.
본 발명의 실시예들은 암호화 장치 및 방법을 제공하기 위한 것이다.
본 발명의 일 실시예에 따른 암호화 장치는, 시드 값으로부터 유도된 임의의 값들을 생성하고, 생성된 상기 임의의 값들을 포함하는 키 테이블을 생성하는 키 테이블 생성부 및 생성된 상기 키 테이블이 적용된 라운드 함수를 가지는 페이스텔(Feistel) 구조의 블록 암호화 알고리즘을 생성하고, 생성된 상기 블록 암호화 알고리즘을 이용하여 평문 데이터 블록을 암호화하는 암호화부를 포함한다.
상기 시드 값은, 비트열로 표현 가능한 초기 입력 값일 수 있다.
상기 시드 값은, 암호키, 카운터 값 및 초기화 벡터 중 하나일 수 있다.
상기 키 테이블 생성부는, 암호화를 위한 가용 메모리의 크기에 기초하여 상기 임의의 값들의 크기를 결정할 수 있다.
상기 암호화부는, 상기 평문 데이터 블록의 크기 및 상기 임의의 값들의 크기에 기초하여 상기 페이스텔 구조의 브랜치 수를 결정하고, 결정된 상기 브랜치 수를 가지는 페이스텔 구조의 블록 암호화 알고리즘을 생성할 수 있다.
상기 암호화부는, 아래의 수학식
상기 암호화부는, 보안 강도에 기초하여 상기 페이스텔 구조의 라운드 수를 결정하고, 결정된 상기 라운드 수를 가지는 페이스텔 구조의 블록 암호화 알고리즘을 생성할 수 있다.
본 발명의 일 실시예에 따른 암호화 방법은, 시드 값으로부터 유도된 임의의 값들을 생성하는 단계, 생성된 상기 임의의 값들을 포함하는 키 테이블을 생성하는 단계, 생성된 상기 키 테이블이 적용된 라운드 함수를 가지는 페이스텔(Feistel) 구조의 블록 암호화 알고리즘을 생성하는 단계 및 생성된 상기 블록 암호화 알고리즘을 이용하여 평문 데이터 블록을 암호화하는 단계를 포함한다.
상기 시드 값은, 비트열로 표현 가능한 초기 입력 값일 수 있다.
상기 시드 값은, 암호키, 카운터 값 및 초기화 벡터 중 하나일 수 있다.
상기 임의의 값들을 생성하는 단계는, 암호화를 위한 가용 메모리의 크기에 기초하여 상기 임의의 값들의 크기를 결정하는 단계 및 결정된 상기 임의의 값들의 크기를 가지는 임의의 값들을 생성하는 단계를 포함할 수 있다.
상기 블록 암호화 알고리즘을 생성하는 단계는, 상기 평문 데이터 블록의 크기 및 상기 임의의 값들의 크기에 기초하여 상기 페이스텔 구조의 브랜치 수를 결정하는 단계 및 결정된 상기 브랜치 수를 가지는 페이스텔 구조의 블록 암호화 알고리즘을 생성하는 단계를 포함할 수 있다.
상기 브랜치 수를 결정하는 단계는, 아래의 수학식
상기 블록 암호화 알고리즘을 생성하는 단계는, 보안 강도에 기초하여 상기 페이스텔 구조의 라운드 수를 결정하는 단계 및 결정된 상기 라운드 수를 가지는 페이스텔 구조의 블록 암호화 알고리즘을 생성할 수 있다.
본 발명의 일 실시예에 따른 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램은, 하드웨어와 결합되어, 시드 값으로부터 유도된 임의의 값들을 생성하는 단계, 생성된 상기 임의의 값들을 포함하는 키 테이블을 생성하는 단계, 생성된 상기 키 테이블이 적용된 라운드 함수를 가지는 페이스텔(Feistel) 구조의 블록 암호화 알고리즘을 생성하는 단계 및 생성된 상기 블록 암호화 알고리즘을 이용하여 평문 데이터 블록을 암호화하는 단계를 실행시킨다.
본 발명의 실시예들에 따르면, 암호키를 화이트박스 환경 내에서 보호해줄 수 있는 키 테이블이 라운드 함수에 적용된 페이스텔 구조의 암호화 알고리즘을 이용함으로써, 암호키를 보호하기 위한 추가 연산 과정 없이 화이트 박스 환경에서 안전한 데이터 암호화를 가능케 할 수 있다.
또한, 키 테이블 크기 및 페이스텔 구조의 브랜치와 라운드의 수를 암호화 적용 환경에 따라 가변적으로 조정할 수 있도록 함으로써, 적용 환경에 최적화된 암호화 알고리즘 구성이 가능토록 할 수 있다.
도 1은 본 발명의 일 실시예에 따른 암호화 장치의 구성도
도 2는 본 발명의 일 실시예에 따른 키 테이블 생성부의 상세 구성도
도 3은 연산부에서 이용되는 라운드 함수를 예를 도시한 도면
도 4는 본 발명의 일 실시예에 따라 생성된 블록 암호화 알고리즘의 페이스텔 구조를 나타낸 도면
도 5는 본 발명의 일 실시예에 따른 암호화 방법의 순서도
도 6은 본 발명의 일 실시예에 따른 블록 암호화 알고리즘 생성 절차를 나타낸 순서도
도 2는 본 발명의 일 실시예에 따른 키 테이블 생성부의 상세 구성도
도 3은 연산부에서 이용되는 라운드 함수를 예를 도시한 도면
도 4는 본 발명의 일 실시예에 따라 생성된 블록 암호화 알고리즘의 페이스텔 구조를 나타낸 도면
도 5는 본 발명의 일 실시예에 따른 암호화 방법의 순서도
도 6은 본 발명의 일 실시예에 따른 블록 암호화 알고리즘 생성 절차를 나타낸 순서도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 본 발명의 일 실시예에 따른 암호화 장치의 구성도이다.
도 1을 참고하면, 본 발명의 일 실시예에 따른 암호화 장치(100)는 키 테이블 생성부(110) 및 암호화부(130)를 포함한다.
키 테이블 생성부(110)는 시드(seed) 값을 이용하여 시드 값으로부터 유도된 임의의 값들을 생성하고, 생성된 임의의 값들을 포함하는 키 테이블을 생성한다.
이때, 키 테이블은 시드 값으로부터 유도된 임의의 값들로 구성된 룩업 테이블(lookup table)일 수 있다.
또한, 시드 값은 비트열로 표현 가능한 초기 입력 값을 의미할 수 있다. 예를 들어, 시드 값은 암호키, 블록 암호화의 운영 모드에서 사용되는 카운터 값, 임의의 비트열로 구성된 초기화 벡터 등을 포함할 수 있다.
한편, 본 발명의 일 실시예에 따르면, 키 테이블 생성부(110)에 의해 생성되는 키 테이블의 각 임의의 값들의 크기는 암호화 장치(100)가 적용되는 컴퓨팅 환경 내에서 암호화를 위해 이용할 수 있는 가용 메모리 크기에 따라 결정될 수 있다.
암호화부(130)는 키 테이블 생성부(110)에 의해 생성된 키 테이블이 적용된 라운드 함수를 포함하는 페이스텔(Feistel) 구조의 블록 암호화 알고리즘을 생성하고, 생성된 블록 암호화 알고리즘을 이용하여 평문 데이터 블록를 암호화 할 수 있다.
구체적으로, 암호화부(130)는 페이스텔 구조의 브랜치 수 및 라운드 수를 결정하고, 페이스텔 구조의 각 라운드 함수에 키 테이블을 적용하여 블록 암호화 알고리즘을 생성할 수 있다.
이때, 본 발명의 일 실시예에 따르면, 암호화부(130)에 의해 구성되는 블록 암호화 알고리즘은 페이스텔 구조를 가지는 종래 블록 암호화 알고리즘(예를 들어, DES 알고리즘)을 기반으로 하여 생성될 수 있다. 예를 들어, 암호화부(130)는 DES 알고리즘에 기반하여, DES 알고리즘의 페이스텔 구조의 각 라운드 함수에 키 테이블을 적용하고, 페이스텔 구조의 브랜치 수와 라운드 수를 변경함으로써 블록 암호화 알고리즘을 생성할 수 있다.
한편, 본 발명의 일 실시예에 따르면, 페이스텔 구조의 브랜치 수는 암호화될 평문 데이터 블록의 크기 및 키 테이블을 구성하는 임의의 값의 크기에 따라 결정될 수 있다. 구체적으로, 암호화부(130)는 예를 들어, 아래의 수학식 1에 기초하여 페이스텔 구조의 브랜치 수(b)를 결정할 수 있다.
[수학식 1]
수학식 1에서, n은 암호화할 평문 데이터 블록의 크기(bit), k는 키 테이블을 구성하는 임의의 값의 크기(bit)를 각각 의미한다.
한편, 본 발명의 일 실시예에 따르면, 페이스텔 구조의 라운드 수는 암호화 장치(100)가 적용되는 환경 내의 보안 강도에 따라 결정될 수 있다.
도 2는 본 발명의 일 실시예에 따른 키 테이블 생성부(110)의 상세 구성도이다.
도 2를 참조하면, 키 테이블 생성부(110)는 시드 값으로부터 복수의 서브키를 생성하는 키 생성부(111) 및 생성된 각각의 서브키를 이용하여 키 테이블을 생성하는 연산부(113)를 포함할 수 있다.
구체적으로, 키 생성부(111)는 시드 값을 입력받아 서브키를 생성한 후, 직전에 생성된 서브키로부터 새로운 서브키를 반복적으로 생성할 수 있다. 예를 들어, 세 개의 서브키를 생성하는 경우를 가정하면, 키 생성부(111)는 입력된 시드 값으로부터 난수를 생성하여 첫 번째 서브키를 생성할 수 있다. 이후, 키 생성부(111)는 생성된 첫 번째 서브키로부터 난수를 생성하여 두 번째 서브키를 생성하고, 생성된 두 번째 서브키로부터 난수를 생성하여 세 번째 서브키를 생성할 수 있다.
연산부(113)는 키 생성부(111)로부터 생성된 각각의 서브키들로부터 키 테이블을 구성하기 위한 임의의 값들을 생성하고, 생성된 임의의 값들을 포함하는 키 테이블을 생성할 수 있다. 구체적으로, 연산부(113)는 입력되는 서브키로부터 임의의 값을 생성하기 위한 라운드 함수를 이용하여 매 라운드마다 라운드 함수에 각 서브키를 적용하여 임의의 값들을 생성할 수 있다.
구체적으로, 도 3은 연산부(113)에서 이용되는 라운드 함수를 예를 도시한 도면이다.
도 3을 참조하면, 연산부(113)는 도시된 예와 같이 키 생성부(111)에서 생성된 서브키(ki) 및 서브키(ki)와 동일한 크기를 가지는 임의의 값(a)을 XOR 연산하고, XOR 연산 결과를 두 부분으로 분리하여 각각 S-box에 적용할 수 있다. 이후, 연산부(113)는 두 S-box의 출력 결과 값에 대해 행렬 연산을 수행하여 임의의 값(ri)을 생성할 수 있다. 이때, 행렬 연산은 예를 들어, MDS(Maximum Distance Separable) 행렬을 이용한 행렬 연산과 같이 입력 값에 대한 확산 효과가 최대가 되도록 하는 성질을 가지는 다양한 형태의 행렬 연산이 이용될 수 있다.
한편, 키 테이블 생성부(110)에 의해 수행되는 키 테이블 생성은 반드시 도 2 및 3에 도시된 예에 한정되는 것은 아니다. 예를 들어, 키 테이블 생성부(110)는 도 2 및 도 3에 도시된 예 외에도, 일방향 특성을 가지는 다양한 방식을 이용하여 시드 값으로부터 임의의 값들을 생성하고, 생성된 임의의 값들을 포함하는 키 테이블을 생성할 수 있다.
도 4는 본 발명의 일 실시예에 따라 생성된 블록 암호화 알고리즘의 페이스텔 구조를 나타낸 도면이다.
도 4에서, 암호화할 평문 데이터 블록의 크기와 키 테이블을 구성하는 임의의 값들의 크기가 각각 64 bit와 16 bit인 것으로 가정한다.
암호화부(130)는 예를 들어, 상술한 수학식 1에 따라 도시된 예와 같이 4개의 브랜치를 가지며, 키 테이블을 라운드 함수로 이용한 4 라운드의 기본 구조를 구성하고, 보안 강도에 따라 결정된 라운드 수(도시된 예에서는 32 라운드)에 따라 4 라운드의 기본 구조가 반복 수행되도록 페이스텔 구조를 구성할 수 있다.
한편, 도시된 기본 구조를 살펴보면, 첫 번째 라운드에서 좌측을 기준으로 첫 번째 브랜치로 입력되는 블록의 값은 키 테이블에서 대응되는 임의의 값으로 변환되고, 변환된 임의의 값은 XOR 연산을 통해 두 번째 브랜치로 입력되는 블록의 값과 결합된다. 이후, 두 번째 라운드에서 첫 번째 라운드를 통해 생성된 값은 키 테이블에서 대응되는 임의의 값으로 변환되고, 변환된 임의의 값은 XOR 연산을 통해 세 번째 브랜치로 입력되는 블록의 값과 결합된다. 이후, 동일한 방식으로 세 번째와 네 번째 라운드가 수행되며, 네 번째 라운드에서는 키 테이블을 통해 변환된 임의의 값이 첫 번째 브랜치로 입력되는 블록의 값과 XOR 연산을 통해 결합된다.
한편, 도 4에 도시된 페이스텔 구조는 예시적인 것이므로, 본 발명의 실시예에 따른 페이스텔 구조가 도 4에 도시된 예에 한정되는 것은 아님을 유의하여야 한다. 즉, 본 발명의 실시예에 따른 페이스텔 구조는 기반이 되는 블록 암호 알고리즘에 따라 상이한 형태를 가질 수 있다.
또한, 도 4에 도시된 예에서는 페이스텔 구조의 각 라운드의 라운드 함수로 키 테이블을 이용하는 것으로 예시하였으나, 반드시 이에 한정되는 것은 아니다. 예를 들어, 각 라운드의 라운드 함수는 기반이 되는 블록 암호 알고리즘에서 이용되는 라운드 함수의 일부를 키 테이블로 변경한 것일 수 있다.
한편, 일 실시예에서, 도 1에 도시된 키 테이블 생성부(110) 및 암호화부(130)는 하나 이상의 프로세서 및 그 프로세서와 연결된 컴퓨터 판독 가능 기록 매체를 포함하는 하나 이상의 컴퓨팅 장치 상에서 구현될 수 있다. 컴퓨터 판독 가능 기록 매체는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨팅 장치 내의 프로세서는 각 컴퓨팅 장치로 하여금 본 명세서에서 기술되는 예시적인 실시예에 따라 동작하도록 할 수 있다. 예를 들어, 프로세서는 컴퓨터 판독 가능 기록 매체에 저장된 명령어를 실행할 수 있고, 컴퓨터 판독 가능 기록 매체에 저장된 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 본 명세서에 기술되는 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
도 5는 본 발명의 일 실시예에 따른 암호화 방법의 순서도이다.
도 5에 도시된 방법은 예를 들어, 도 1에 도시된 암호화 장치(100)에 의해 수행될 수 있다.
도 5를 참조하면, 암호화 장치(100)는 시드 값으로부터 유도된 임의의 값들을 생성한다(510).
이후, 암호화 장치(100)는 생성된 임의의 값들을 포함하는 키 테이블을 생성한다(520). 이때, 키 테이블을 구성하는 임의의 값들의 크기는 가용 메모리 크기에 따라 결정될 수 있다.
이후, 암호화 장치(100)는 생성된 키 테이블이 적용된 라운드 함수를 포함하는 페이스텔 구조의 블록 암호화 알고리즘을 생성한다(530).
이후, 암호화 장치(100)는 생성된 블록 암호화 알고리즘을 이용하여 평문 데이터 블록을 암호화한다(540).
도 6은 본 발명의 일 실시예에 따른 블록 암호화 알고리즘 생성 절차를 나타낸 순서도이다.
도 6을 참조하면, 암호화 장치(100)는 평문 데이터 블록의 크기 및 키 테이블을 구성하는 임의의 값들의 크기에 기초하여 페이스텔 구조의 브랜치 수를 결정한다(610).
이후, 암호화 장치(100)는 암호화 보안 강도에 기초하여 페이스텔 구조의 라운드 수를 결정한다(620).
이후, 암호화 장치(100)는 결정된 브랜치 수 및 라운드 수를 가지는 페이스텔 구조의 블록 암호화 알고리즘을 생성한다(630).
한편, 도 5 및 도 6에 도시된 순서도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 분야에서 통상적으로 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플로피 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 암호화 장치
110: 키 테이블 생성부
111: 키 생성부
113: 연산부
130: 암호화부
110: 키 테이블 생성부
111: 키 생성부
113: 연산부
130: 암호화부
Claims (15)
- 시드 값으로부터 유도된 임의의 값들을 생성하고, 생성된 상기 임의의 값들을 포함하는 키 테이블을 생성하는 키 테이블 생성부; 및
생성된 상기 키 테이블이 적용된 라운드 함수를 가지는 페이스텔(Feistel) 구조의 블록 암호화 알고리즘을 생성하고, 생성된 상기 블록 암호화 알고리즘을 이용하여 평문 데이터 블록을 암호화하는 암호화부를 포함하고,
상기 키 테이블 생성부는, 암호화를 위한 가용 메모리의 크기에 기초하여 상기 임의의 값들의 크기를 결정하고,
상기 암호화부는, 상기 평문 데이터 블록의 크기 및 상기 임의의 값들의 크기에 기초하여 상기 페이스텔 구조의 브랜치 수를 결정하고, 결정된 상기 브랜치 수를 가지는 페이스텔 구조의 블록 암호화 알고리즘을 생성하는 암호화 장치. - 청구항 1에 있어서,
상기 시드 값은, 비트열로 표현 가능한 초기 입력 값인 암호화 장치. - 청구항 2에 있어서,
상기 시드 값은, 암호키, 카운터 값 및 초기화 벡터 중 하나인 암호화 장치. - 삭제
- 삭제
- 청구항 1에 있어서,
상기 암호화부는, 보안 강도에 기초하여 상기 페이스텔 구조의 라운드 수를 결정하고, 결정된 상기 라운드 수를 가지는 페이스텔 구조의 블록 암호화 알고리즘을 생성하는 암호화 장치. - 시드 값으로부터 유도된 임의의 값들을 생성하는 단계;
생성된 상기 임의의 값들을 포함하는 키 테이블을 생성하는 단계;
생성된 상기 키 테이블이 적용된 라운드 함수를 가지는 페이스텔(Feistel) 구조의 블록 암호화 알고리즘을 생성하는 단계; 및
생성된 상기 블록 암호화 알고리즘을 이용하여 평문 데이터 블록을 암호화하는 단계를 포함하고,
상기 임의의 값들을 생성하는 단계는,
암호화를 위한 가용 메모리의 크기에 기초하여 상기 임의의 값들의 크기를 결정하는 단계; 및
결정된 상기 임의의 값들의 크기를 가지는 임의의 값들을 생성하는 단계를 포함하고,
상기 블록 암호화 알고리즘을 생성하는 단계는, 상기 평문 데이터 블록의 크기 및 상기 임의의 값들의 크기에 기초하여 상기 페이스텔 구조의 브랜치 수를 결정하는 단계; 및
결정된 상기 브랜치 수를 가지는 페이스텔 구조의 블록 암호화 알고리즘을 생성하는 단계를 포함하는 암호화 방법. - 청구항 8에 있어서,
상기 시드 값은, 비트열로 표현 가능한 초기 입력 값인 암호화 방법. - 청구항 9에 있어서,
상기 시드 값은, 암호키, 카운터 값 및 초기화 벡터 중 하나인 암호화 방법. - 삭제
- 삭제
- 청구항 8에 있어서,
상기 블록 암호화 알고리즘을 생성하는 단계는, 보안 강도에 기초하여 상기 페이스텔 구조의 라운드 수를 결정하는 단계; 및
결정된 상기 라운드 수를 가지는 페이스텔 구조의 블록 암호화 알고리즘을 생성하는 단계를 포함하는 암호화 방법. - 하드웨어와 결합되어
시드 값으로부터 유도된 임의의 값들을 생성하되, 암호화를 위한 가용 메모리의 크기에 기초하여 상기 임의의 값들의 크기를 결정하고, 결정된 상기 임의의 값들의 크기를 가지는 임의의 값들을 생성하는 단계;
생성된 상기 임의의 값들을 포함하는 키 테이블을 생성하는 단계;
생성된 상기 키 테이블이 적용된 라운드 함수를 가지는 페이스텔(Feistel) 구조의 블록 암호화 알고리즘을 생성하되, 평문 데이터 블록의 크기 및 상기 임의의 값들의 크기에 기초하여 상기 페이스텔 구조의 브랜치 수를 결정하고, 결정된 상기 브랜치 수를 가지는 페이스텔 구조의 블록 암호화 알고리즘을 생성하는 단계; 및
생성된 상기 블록 암호화 알고리즘을 이용하여 평문 데이터 블록을 암호화하는 단계를 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150151039A KR101989956B1 (ko) | 2015-10-29 | 2015-10-29 | 암호화 장치 및 방법 |
US14/980,751 US10491374B2 (en) | 2015-10-29 | 2015-12-28 | Apparatus and method for encryption |
CN201610108510.XA CN106656467B (zh) | 2015-10-29 | 2016-02-26 | 加密装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150151039A KR101989956B1 (ko) | 2015-10-29 | 2015-10-29 | 암호화 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170050027A KR20170050027A (ko) | 2017-05-11 |
KR101989956B1 true KR101989956B1 (ko) | 2019-06-17 |
Family
ID=58638344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150151039A KR101989956B1 (ko) | 2015-10-29 | 2015-10-29 | 암호화 장치 및 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10491374B2 (ko) |
KR (1) | KR101989956B1 (ko) |
CN (1) | CN106656467B (ko) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101989943B1 (ko) * | 2017-04-28 | 2019-06-17 | 삼성에스디에스 주식회사 | 부채널 공격에 안전한 연산 장치 및 방법 |
EP3651142A4 (en) * | 2017-08-10 | 2021-03-24 | Sony Corporation | ENCRYPTION DEVICE, ENCRYPTION METHOD, DECCRYPTION DEVICE, AND DECryption METHOD |
KR102033351B1 (ko) * | 2017-08-22 | 2019-10-17 | 국민대학교산학협력단 | 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법 및 장치 |
EP3493457A1 (en) * | 2017-11-30 | 2019-06-05 | Gemalto Sa | Method for protecting a source of entropy used in countermeasures securing a whitebox cryptographic algorithm |
KR102109902B1 (ko) * | 2018-10-12 | 2020-05-12 | 유비벨록스(주) | 보안성이 향상된 블록 암호화 방법 |
KR102565443B1 (ko) * | 2018-10-26 | 2023-08-16 | 삼성에스디에스 주식회사 | 암호 알고리즘 생성 장치 및 방법, 암호화 장치 및 방법 |
KR102565442B1 (ko) | 2018-10-26 | 2023-08-16 | 삼성에스디에스 주식회사 | 암호 알고리즘 생성 장치 및 방법, 암호화 장치 및 방법 |
WO2021025631A1 (en) * | 2019-08-05 | 2021-02-11 | Securify Bilisim Teknolojileri Ve Guvenligi Egt. Dan. San. Ve Tic. Ltd. Sti. | A method for generating digital signatures |
CN112054896B (zh) * | 2020-08-12 | 2023-10-03 | 深圳市欢太科技有限公司 | 白盒加密方法、装置、终端及存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5995915A (en) * | 1997-01-29 | 1999-11-30 | Advanced Micro Devices, Inc. | Method and apparatus for the functional verification of digital electronic systems |
KR20120115425A (ko) * | 2005-12-14 | 2012-10-17 | 엔디에스 리미티드 | 블록 사이퍼 암호화의 사용을 위한 방법 및 시스템 |
EP2092684A2 (en) * | 2006-11-17 | 2009-08-26 | Koninklijke Philips Electronics N.V. | Cryptographic method for a white-box implementation |
US8130946B2 (en) * | 2007-03-20 | 2012-03-06 | Michael De Mare | Iterative symmetric key ciphers with keyed S-boxes using modular exponentiation |
KR101715027B1 (ko) | 2009-03-10 | 2017-03-22 | 이르데토 비.브이. | 입력 의존형 인코딩들을 이용한 화이트-박스 암호화 시스템 |
US8948376B2 (en) * | 2010-05-11 | 2015-02-03 | Ca, Inc. | Format-preserving encryption via rotating block encryption |
US9152801B2 (en) * | 2012-06-28 | 2015-10-06 | Steven W. Cooke | Cryptographic system of symmetric-key encryption using large permutation vector keys |
KR102180029B1 (ko) * | 2014-02-03 | 2020-11-17 | 삼성전자 주식회사 | Crt-rsa 암호화 방법 및 장치와 이를 기록한 컴퓨터 판독가능 저장매체 |
US9654279B2 (en) * | 2014-03-20 | 2017-05-16 | Nxp B.V. | Security module for secure function execution on untrusted platform |
KR102376506B1 (ko) * | 2014-10-20 | 2022-03-18 | 삼성전자주식회사 | 암복호화기, 암복호화기를 포함하는 전자 장치 및 암복호화기의 동작 방법 |
-
2015
- 2015-10-29 KR KR1020150151039A patent/KR101989956B1/ko active IP Right Grant
- 2015-12-28 US US14/980,751 patent/US10491374B2/en active Active
-
2016
- 2016-02-26 CN CN201610108510.XA patent/CN106656467B/zh active Active
Non-Patent Citations (1)
Title |
---|
이만영 외 5인, "현대 암호학 및 응용" (2002.11.25.)* |
Also Published As
Publication number | Publication date |
---|---|
KR20170050027A (ko) | 2017-05-11 |
CN106656467B (zh) | 2021-01-15 |
US10491374B2 (en) | 2019-11-26 |
US20170126396A1 (en) | 2017-05-04 |
CN106656467A (zh) | 2017-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101989956B1 (ko) | 암호화 장치 및 방법 | |
KR101924067B1 (ko) | 암호화 장치 및 방법 | |
US8966279B2 (en) | Securing the implementation of a cryptographic process using key expansion | |
US9189425B2 (en) | Protecting look up tables by mixing code and operations | |
CN107438065B (zh) | 数据加密装置及方法、数据解密装置及方法 | |
US8966285B2 (en) | Securing implementation of a cryptographic process having fixed or dynamic keys | |
US8675866B2 (en) | Multiplicative splits to protect cipher keys | |
US20120254625A1 (en) | Protecting states of a cryptographic process using group automorphisms | |
US8699702B2 (en) | Securing cryptographic process keys using internal structures | |
KR102169369B1 (ko) | 경량 블록 암호화에 대한 1차 부채널 공격에 대응하는 방법 및 이를 이용한 장치 | |
US20120155638A1 (en) | Securing keys of a cipher using properties of the cipher process | |
KR101914453B1 (ko) | 암호화 장치 및 방법 | |
US10965454B2 (en) | Apparatus and method for public key encryption | |
KR102033351B1 (ko) | 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법 및 장치 | |
KR102565443B1 (ko) | 암호 알고리즘 생성 장치 및 방법, 암호화 장치 및 방법 | |
JP2017167390A (ja) | 情報処理装置、情報処理方法及びプログラム | |
KR20080072345A (ko) | 암호화 장치 및 그 방법 | |
KR20170103321A (ko) | 보안성이 강화된 순서보존 암호화 방법 및 장치 | |
AU2018374489B2 (en) | Method for protecting a source of entropy used in countermeasures securing a whitebox cryptographic algorithm | |
KR101944741B1 (ko) | 암호화 장치 및 방법 | |
KR102424922B1 (ko) | Dlbn이 3 이상인 조건을 만족하는 확장 에스박스 및 이를 이용한 비트 연산 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |