KR101924067B1 - 암호화 장치 및 방법 - Google Patents

암호화 장치 및 방법 Download PDF

Info

Publication number
KR101924067B1
KR101924067B1 KR1020160142252A KR20160142252A KR101924067B1 KR 101924067 B1 KR101924067 B1 KR 101924067B1 KR 1020160142252 A KR1020160142252 A KR 1020160142252A KR 20160142252 A KR20160142252 A KR 20160142252A KR 101924067 B1 KR101924067 B1 KR 101924067B1
Authority
KR
South Korea
Prior art keywords
encryption
key table
algorithm
decryption
size
Prior art date
Application number
KR1020160142252A
Other languages
English (en)
Other versions
KR20180046721A (ko
Inventor
문덕재
최규영
조지훈
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020160142252A priority Critical patent/KR101924067B1/ko
Priority to CN201710805322.7A priority patent/CN108023728B/zh
Priority to US15/708,391 priority patent/US10951402B2/en
Publication of KR20180046721A publication Critical patent/KR20180046721A/ko
Application granted granted Critical
Publication of KR101924067B1 publication Critical patent/KR101924067B1/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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or 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/002Countermeasures against attacks on cryptographic mechanisms
    • 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/58Random or pseudo-random number generators
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

암호화 장치 및 방법이 개시된다. 본 발명의 일 실시예에 따른 암호화 장치는, 시드 값으로부터 유도된 임의의 값들로부터 적어도 하나의 암호화용 키 테이블을 생성하고, 상기 적어도 하나의 암호화용 키 테이블로부터 적어도 하나의 복호화용 키 테이블을 생성하는 키 테이블 생성부, 상기 적어도 하나의 암호화용 키 테이블이 적용된 라운드 함수를 가지는 미스티(Misty) 구조의 암호화 알고리즘 및 상기 적어도 하나의 복호화용 키 테이블이 적용된 라운드 함수를 가지는 미스티 구조의 복호화 알고리즘을 생성하는 알고리즘 생성부, 상기 암호화 알고리즘을 이용하여 평문 데이터를 암호화하는 암호화부 및 상기 복호화 알고리즘을 이용하여 암호화된 데이터를 복호화하는 복호화부를 포함한다.

Description

암호화 장치 및 방법{APPARATUS AND METHOD FOR ENCRYPTION}
본 발명의 실시예들은 암호화 기술과 관련된다.
기존 화이트박스 암호 알고리즘은 기반이 되는 대칭키 암호 알고리즘의 내부 특성에 따라 그 구현 방식이 상이할 수 있고, 기반 알고리즘에 의존하기 때문에 적용 환경에 따른 단위 입력 크기 변화를 반영하여 구현하기 어렵다.
또한, 기존 화이트박스 암호 알고리즘은 기반 알고리즘의 암호키를 보호하기 위해 많은 추가 연산의 삽입으로 기반 알고리즘과 비교하여 수십 배의 효율 저하를 초래한다.
한국공개특허 제10-2012-0030335호 (2012.03.28)
본 발명의 실시예들은 암호화 장치 및 방법을 제공하기 위한 것이다.
본 발명의 일 실시예에 따른 암호화 장치는, 시드 값으로부터 유도된 임의의 값들로부터 적어도 하나의 암호화용 키 테이블을 생성하고, 상기 적어도 하나의 암호화용 키 테이블로부터 적어도 하나의 복호화용 키 테이블을 생성하는 키 테이블 생성부, 상기 적어도 하나의 암호화용 키 테이블이 적용된 라운드 함수를 가지는 미스티(Misty) 구조의 암호화 알고리즘 및 상기 적어도 하나의 복호화용 키 테이블이 적용된 라운드 함수를 가지는 미스티 구조의 복호화 알고리즘을 생성하는 알고리즘 생성부, 상기 알고리즘 생성부를 이용하여 암호화하는 암호화부 및 상기 알고리즘 생성부를 이용하여 복호화하는 복호화부를 포함한다.
상기 키 테이블 생성부는, 상기 적어도 하나의 암호화용 키 테이블로부터 각 암호화 키 테이블과 역함수 관계에 있는 복호화용 키 테이블을 생성할 수 있다.
상기 시드 값은, 비트열로 표현 가능한 초기 입력 값일 수 있다.
상기 시드 값은, 암호키, 카운터 값 및 초기화 벡터 중 하나일 수 있다.
상기 키 테이블 생성부는, 암호화를 위한 가용 메모리의 크기에 기초하여 상기 임의의 값들의 크기를 결정할 수 있다.
상기 알고리즘 생성부는, 단위 입력의 크기 및 상기 임의의 값들의 크기에 기초하여 상기 미스티 구조의 브랜치 수를 결정할 수 있다.
상기 브랜치 수는, 아래의 수학식
Figure 112016105480470-pat00001
(이때, b는 브랜치 수, n는 상기 단위 입력의 크기, k는 상기 임의의 값들의 크기)에 의해 결정될 수 있다.
상기 알고리즘 생성부는, 요구되는 보안 강도에 기초하여 상기 미스티 구조의 라운드 수를 결정할 수 있다.
본 발명의 일 실시예에 따른 암호화 방법은, 시드 값으로부터 유도된 임의의 값들을 생성하는 단계, 상기 임의의 값들로부터 적어도 하나의 암호화용 키 테이블을 생성하는 단계, 상기 적어도 하나의 암호화용 키 테이블로부터 적어도 하나의 복호화용 키 테이블을 생성하는 단계, 상기 적어도 하나의 암호화용 키 테이블이 적용된 라운드 함수를 가지는 미스티(Misty) 구조의 암호화 알고리즘 및 상기 적어도 하나의 복호화용 키 테이블이 적용된 라운드 함수를 가지는 미스티 구조의 복호화 알고리즘을 생성하는 단계, 상기 암호화 알고리즘을 이용하여 평문 데이터를 암호화하는 단계 및 상기 복호화 알고리즘을 이용하여 암호화된 데이터를 복호화하는 단계를 포함한다.
상기 복호화용 키 테이블을 생성하는 단계는, 상기 적어도 하나의 암호화용 키 테이블로부터 각 암호화 키 테이블과 역함수 관계에 있는 복호화용 키 테이블을 생성할 수 잇다.
상기 시드 값은, 비트열로 표현 가능한 초기 입력 값일 수 있다.
상기 시드 값은, 암호키, 카운터 값 및 초기화 벡터 중 하나일 수 있다.
상기 임의의 값들을 생성하는 단계는, 암호화를 위한 가용 메모리의 크기에 기초하여 상기 임의의 값들의 크기를 결정할 수 있다.
상기 알고리즘을 생성하는 단계는, 단위 입력의 크기 및 상기 임의의 값들의 크기에 기초하여 상기 미스티 구조의 브랜치 수를 결정할 수 있다.
상기 브랜치 수는, 아래의 수학식
Figure 112016105480470-pat00002
(이때, b는 브랜치 수, n는 상기 단위 입력의 크기, k는 상기 임의의 값들의 크기)에 의해 결정될 수 있다.
상기 알고리즘을 생성하는 단계는, 요구되는 보안 강도에 기초하여 상기 미스티 구조의 라운드 수를 결정할 수 있다.
본 발명의 실시예들에 따르면, 암호키를 화이트박스 환경 내에서 보호해줄 수 있는 키 테이블이 라운드 함수에 적용된 미스티 구조의 암호화 알고리즘을 이용함으로써, 암호키를 보호하기 위한 추가 연산 과정 없이 화이트 박스 환경에서 안전한 데이터 암호화를 가능케 할 수 있다.
또한, 본 발명의 실시예들에 따르면, 키 테이블 크기 및 미스티 구조의 브랜치와 라운드의 수를 암호화 적용 환경에 따라 가변적으로 조정할 수 있도록 함으로써, 적용 환경에 최적화된 암호화 알고리즘 구성이 가능토록 할 수 있다.
나아가 본 발명의 실시예들에 따르면, 암호화용 키 테이블이 적용된 암호화 알고리즘과 복호화용 키 테이블이 적용된 복호화 알고리즘을 이용하여 암호화 과정과 복호화 과정이 상이하도록 설계 가능하므로, 암호화 알고리즘 또는 복호화 알고리즘이 공격자에 의해 탈취되더라도 안전성을 보장할 수 있게 된다.
도 1은 본 발명의 일 실시예에 따른 암호화 장치의 구성도
도 2는 본 발명의 일 실시예에 따른 키 테이블 생성부의 상세 구성도
도 3은 암호화용 키 테이블 생성부에서 이용되는 라운드 함수를 예를 도시한 도면
도 4는 본 발명의 일 실시예에 따라 생성된 암호화 알고리즘의 미스티 구조를 나타낸 도면
도 5는 본 발명의 일 실시예에 따라 생성된 복호화 알고리즘의 미스티 구조를 나타낸 도면
도 6은 본 발명의 일 실시예에 따른 암호화 방법의 순서도
도 7은 본 발명의 일 실시예에 따른 암호화 알고리즘 및 복호화 알고리즘의 생성 절차를 나타낸 순서도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 본 발명의 일 실시예에 따른 암호화 장치의 구성도이다.
도 1을 참고하면, 본 발명의 일 실시예에 따른 암호화 장치(100)는 키 테이블 생성부(110), 알고리즘 생성부(130), 암호화부(150) 및 복호화부(170)를 포함한다.
키 테이블 생성부(110)는 시드(seed) 값을 이용하여 시드 값으로부터 유도된 임의의 값들을 생성하고, 생성된 임의의 값들로부터 적어도 하나의 암호화용 키 테이블을 생성한다. 또한, 키 테이블 생성부(110)는 생성된 적어도 하나의 암호화용 키 테이블로부터 적어도 하나의 복호화용 키 테이블을 생성한다.
이때, 암호화용 키 테이블은 시드 값으로부터 유도된 임의의 값들로 구성된 룩업 테이블(lookup table)일 수 있다.
한편, 복호화용 키 테이블은 암호화용 키 테이블에 대한 역함수 관계에 있는 키 테이블일 수 있다. 구체적으로, 키 테이블 생성부(110)는 암호화용 키 테이블이 생성한 후, 생성된 암호화용 키 테이블에 대한 역함수 관계에 있는 복호화용 키 테이블을 생성할 수 있다.
이하에서, '키 테이블'은 암호화용 키 테이블과 복호화용 키 테이블을 모두 포함하는 의미로 이용된다.
한편, 시드 값은 비트열로 표현 가능한 초기 입력 값을 의미할 수 있다. 예를 들어, 시드 값은 암호키, 블록 암호화의 운영 모드에서 사용되는 카운터 값, 임의의 비트열로 구성된 초기화 벡터 등을 포함할 수 있다.
본 발명의 일 실시예에 따르면, 키 테이블 생성부(110)에 의해 생성되는 임의의 값들의 크기는 암호화 장치(100)가 적용되는 컴퓨팅 환경 내에서 암호화를 위해 이용할 수 있는 가용 메모리 크기에 따라 결정될 수 있다.
알고리즘 생성부(130)는 키 테이블 생성부(110)에 의해 생성된 암호화용 키 테이블이 적용된 라운드 함수를 포함하는 미스티(Misty) 구조의 암호화 알고리즘을 생성한다. 또한, 알고리즘 생성부(130)는 키 테이블 생성부(110)에 의해 생성된 복호화용 키 테이블이 적용된 라운드 함수를 포함하는 미스티 구조의 복호화 알고리즘을 생성한다.
구체적으로, 알고리즘 생성부(130)는 암호화 알고리즘 및 복호화 알고리즘 생성을 위해 미스티 구조의 브랜치(branch) 수 및 라운드 수를 결정할 수 있다.
이때, 본 발명의 일 실시예에 따르면, 미스티 구조의 브랜치 수는 암호화 및 복호화을 위한 단위 입력의 크기, 및 키 테이블을 구성하는 임의의 값의 크기에 따라 결정될 수 있다. 구체적으로, 알고리즘 생성부(130)는 예를 들어, 아래의 수학식 1에 기초하여 미스티 구조의 브랜치 수(b)를 결정할 수 있다.
[수학식 1]
Figure 112016105480470-pat00003
수학식 1에서, n은 단위 입력의 크기(bit), k는 키 테이블을 구성하는 임의의 값의 크기(bit)를 각각 의미한다.
한편, 본 발명의 일 실시예에 따르면, 미스티 구조의 라운드 수는 암호화 장치(100)가 적용되는 환경 내에서 요구되는 보안 강도에 따라 결정될 수 있다.
한편, 미스티 구조의 브랜치 수 및 라운드 수가 결정된 경우, 알고리즘 생성부(130)는 결정된 수의 브랜치 및 라운드로 구성된 미스티 구조의 각 라운드 함수에 암호화용 키 테이블을 적용하여 암호화 알고리즘을 생성할 수 있다.
또한, 알고리즘 생성부(130)는 암호화 알고리즘과 동일한 수의 브랜치 및 라운드로 구성된 미스티 구조의 각 라운드 함수에 복호화용 키 테이블을 적용하여 복호화 알고리즘을 생성할 수 있다.
이때, 본 발명의 일 실시예에 따르면, 알고리즘 생성부(130)에 의해 생성되는 암호화 알고리즘 및 복호화 알고리즘은 미스티 구조를 가지는 종래 암호 알고리즘을 기반으로 하여 생성될 수 있다. 예를 들어, 알고리즘 생성부(130)는 미스티 구조의 종래 암호 알고리즘에 기반하여, 미스티 구조의 브랜치 수와 라운드 수를 변경하고, 각 라운드 함수에 암호화용 키 테이블 또는 복호화용 키 테이블을 적용함으로써 암호화 알고리즘과 복호화 알고리즘을 각각 생성할 수 있다.
한편, 암호화부(150)는 알고리즘 생성부(130)에 의해 생성된 암호화 알고리즘을 이용하여, 평문 데이터를 암호화한다.
또한, 복호화부(170)는 알고리즘 생성부(130)에 의해 생성된 복호화 알고리즘을 이용하여, 암호화된 데이터를 복호화한다.
도 2는 본 발명의 일 실시예에 따른 키 테이블 생성부(110)의 상세 구성도이다.
도 2를 참조하면, 키 테이블 생성부(110)는 시드 값으로부터 복수의 서브키를 생성하는 키 생성부(111), 생성된 각각의 서브키를 이용하여 암호화용 키 테이블을 생성하는 암호화용 키 테이블 생성부(113) 및 생성된 암호화용 키 테이블로부터 복호화용 키 테이블을 생성하는 복호화용 키 테이블 생성부(115)를 포함할 수 있다.
구체적으로, 키 생성부(111)는 시드 값을 입력받아 서브키를 생성한 후, 직전에 생성된 서브키로부터 새로운 서브키를 반복적으로 생성할 수 있다. 예를 들어, 세 개의 서브키를 생성하는 경우를 가정하면, 키 생성부(111)는 입력된 시드 값으로부터 난수를 생성하여 첫 번째 서브키를 생성할 수 있다. 이후, 키 생성부(111)는 생성된 첫 번째 서브키로부터 난수를 생성하여 두 번째 서브키를 생성하고, 생성된 두 번째 서브키로부터 난수를 생성하여 세 번째 서브키를 생성할 수 있다.
암호화용 키 테이블 생성부(113)는 키 생성부(111)로부터 생성된 각각의 서브키들로부터 암호화용 키 테이블을 구성하기 위한 임의의 값들을 생성하고, 생성된 임의의 값들을 포함하는 암호화용 키 테이블을 생성할 수 있다. 구체적으로, 암호화용 키 테이블 생성부(113)는 입력되는 서브키로부터 임의의 값을 생성하기 위한 라운드 함수를 이용하여 매 라운드마다 라운드 함수에 각 서브키를 적용하여 임의의 값들을 생성할 수 있다.
복호화용 키 테이블 생성부(115)는 암호화용 키 테이블 생성부(113)에서 생성된 암호화용 키 테이블 각각으로부터 복호화용 키 테이블을 생성할 수 있다. 구체적으로, 복호화용 키 테이블 생성부(115)는 암호화용 키 테이블 생성부(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에서, 암호화할 평문 데이터의 단위 입력 크기와 암호화용 키 테이블(T)을 구성하는 임의의 값들의 크기가 각각 64 bit와 16 bit인 것으로 가정한다.
알고리즘 생성부(130)는 예를 들어, 상술한 수학식 1에 따라 도시된 예와 같이 4개의 브랜치를 가지며, 암호화용 키 테이블(T)을 라운드 함수로 이용한 4 라운드의 기본 구조를 구성하고, 보안 강도에 따라 결정된 라운드 수(도시된 예에서는 32 라운드)에 따라 4 라운드의 기본 구조가 반복 수행되도록 미스티 구조를 구성할 수 있다.
한편, 도시된 4 라운드 기본 구조를 살펴보면, 첫 번째 라운드에서 좌측을 기준으로 첫 번째 브랜치로 입력되는 블록의 값은 암호화용 키 테이블(T)에서 대응되는 임의의 값으로 변환되고, 변환된 임의의 값은 XOR 연산을 통해 두 번째 브랜치로 입력되는 블록의 값과 결합된다. 이후, 두 번째 라운드에서 첫 번째 라운드를 통해 생성된 값은 암호화용 키 테이블(T)에서 대응되는 임의의 값으로 변환되고, 변환된 임의의 값은 XOR 연산을 통해 세 번째 브랜치로 입력되는 블록의 값과 결합된다. 이후, 동일한 방식으로 세 번째와 네 번째 라운드가 수행되며, 네 번째 라운드에서는 암호화용 키 테이블(T)을 통해 변환된 임의의 값이 첫 번째 브랜치에서 변환된 임의의 값과 XOR 연산을 통해 결합된다.
도 5는 본 발명의 일 실시예에 따라 생성된 복호화 알고리즘의 미스티 구조를 나타낸 도면이다.
도 5에서, 복호화할 암호문 데이터의 단위 입력 크기와 복호화용 키 테이블(T-1)을 구성하는 임의의 값들의 크기가 각각 64 bit와 16 bit인 것으로 가정한다.
알고리즘 생성부(130)는 예를 들어, 상술한 수학식 1에 따라 도시된 예와 같이 4개의 브랜치를 가지며, 복호화용 키 테이블(T-1)을 라운드 함수로 이용한 4 라운드의 기본 구조를 구성하고, 보안 강도에 따라 결정된 라운드 수(도시된 예에서는 32 라운드)에 따라 4 라운드의 기본 구조가 반복 수행되도록 미스티 구조를 구성할 수 있다.
한편, 도시된 기본 구조를 살펴보면, 첫 번째 라운드에서 좌측을 기준으로 첫 번째 브랜치로 입력되는 블록의 값은 복호화용 키 테이블(T-1)에서 대응되는 임의의 값으로 변환되고, 변환된 임의의 값은 XOR 연산을 통해 두 번째 브랜치로 입력되는 블록의 값과 결합된다. 이후, 두 번째 라운드에서 첫 번째 라운드를 통해 생성된 값은 복호화용 키 테이블(T-1)에서 대응되는 임의의 값으로 변환되고, 변환된 임의의 값은 XOR 연산을 통해 세 번째 브랜치로 입력되는 블록의 값과 결합된다. 이후, 동일한 방식으로 세 번째와 네 번째 라운드가 수행되며, 네 번째 라운드에서는 복호화용 키 테이블(T-1)을 통해 변환된 임의의 값이 첫 번째 브랜치에서 변환된 임의의 값과 XOR 연산을 통해 결합된다.
한편, 도 4 및 도 5에 도시된 예에서는 미스티 구조의 각 라운드의 라운드 함수로 암호화용 키 테이블(T)과 복호화용 키 테이블(T-1)을 각각 이용하는 것으로 예시하였으나, 반드시 이에 한정되는 것은 아니다. 예를 들어, 각 라운드의 라운드 함수는 기반이 되는 미스티 구조의 암호 알고리즘에서 이용되는 라운드 함수의 일부를 암호화용 키 테이블(T) 또는 복호화용 키 테이블(T-1)로 변경한 것일 수 있다.
한편, 일 실시예에서, 도 1에 도시된 키 테이블 생성부(110), 알고리즘 생성부(130), 암호화부(150) 및 복호화부(170)는 하나 이상의 프로세서 및 그 프로세서와 연결된 컴퓨터 판독 가능 기록 매체를 포함하는 하나 이상의 컴퓨팅 장치 상에서 구현될 수 있다. 컴퓨터 판독 가능 기록 매체는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨팅 장치 내의 프로세서는 각 컴퓨팅 장치로 하여금 본 명세서에서 기술되는 예시적인 실시예에 따라 동작하도록 할 수 있다. 예를 들어, 프로세서는 컴퓨터 판독 가능 기록 매체에 저장된 명령어를 실행할 수 있고, 컴퓨터 판독 가능 기록 매체에 저장된 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 본 명세서에 기술되는 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
도 6은 본 발명의 일 실시예에 따른 암호화 방법의 순서도이다.
도 6에 도시된 방법은 예를 들어, 도 1에 도시된 암호화 장치(100)에 의해 수행될 수 있다.
도 6을 참조하면, 암호화 장치(100)는 시드 값으로부터 유도된 임의의 값들을 생성한다(610).
이후, 암호화 장치(100)는 생성된 임의의 값들로부터 적어도 하나의 암호화용 키 테이블을 생성한다(620). 이때, 임의의 값들의 크기는 가용 메모리 크기에 따라 결정될 수 있다.
이후, 암호화 장치(100)는 생성된 적어도 하나의 암호화용 키 테이블로부터 적어도 하나의 복호화용 키 테이블을 생성한다(630). 이때, 복호화용 키 테이블은 암호화용 키 테이블과 역함수 관계에 있을 수 있다.
이후, 암호화 장치(100)는 생성된 암호화용 키 테이블이 적용된 라운드 함수를 포함하는 미스티 구조의 암호화 알고리즘을 생성한다(640).
또한, 암호화 장치(100)는 생성된 복호화용 키 테이블이 적용된 라운드 함수를 포함하는 미스티 구조의 복호화 알고리즘을 생성한다(650).
이후, 암호화 장치(100)는 생성된 암호화 알고리즘을 이용하여 평문 데이터를 암호화한다(660).
또한, 암호화 장치(100)는 생성된 복호화 알고리즘을 이용하여 암호화된 데이터를 복호화한다(670).
도 7은 본 발명의 일 실시예에 따른 암호화 알고리즘 및 복호화 알고리즘의 생성 절차를 나타낸 순서도이다.
도 7을 참조하면, 암호화 장치(100)는 단위 입력의 크기 및 키 테이블을 구성하는 임의의 값들의 크기에 기초하여 미스티 구조의 브랜치 수를 결정한다(710).
이후, 암호화 장치(100)는 요구되는 보안 강도에 기초하여 미스티 구조의 라운드 수를 결정한다(720).
이후, 암호화 장치(100)는 결정된 브랜치 수 및 라운드 수를 가지는 미스티 구조의 암호화 알고리즘 및 복호화 알고리즘을 생성한다(730).
구체적으로, 암호화 장치(100)는 결정된 수의 브랜치 및 라운드로 구성된 미스티 구조의 각 라운드 함수에 암호화용 키 테이블을 적용하여 암호화 알고리즘을 생성할 수 있다.
또한, 암호화 장치(100)는 암호화 알고리즘과 동일한 수의 브랜치 및 라운드로 구성된 미스티 구조의 각 라운드 함수에 복호화용 키 테이블을 적용하여 복호화 알고리즘을 생성할 수 있다.
한편, 도 6 및 도 7에 도시된 순서도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 분야에서 통상적으로 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플로피 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 암호화 장치
110: 키 테이블 생성부
130: 알고리즘 생성부
150: 암호화부
170: 복호화부
111: 키 생성부
113: 암호화용 키 테이블 생성부
115: 복호화용 키 테이블 생성부

Claims (16)

  1. 시드 값으로부터 유도된 임의의 값들로부터 적어도 하나의 암호화용 키 테이블을 생성하고, 상기 적어도 하나의 암호화용 키 테이블로부터 적어도 하나의 복호화용 키 테이블을 생성하는 키 테이블 생성부;
    상기 적어도 하나의 암호화용 키 테이블이 적용된 라운드 함수를 가지는 미스티(Misty) 구조의 암호화 알고리즘 및 상기 적어도 하나의 복호화용 키 테이블이 적용된 라운드 함수를 가지는 미스티 구조의 복호화 알고리즘을 생성하는 알고리즘 생성부;
    상기 암호화 알고리즘을 이용하여 암호화를 수행하는 암호화부; 및
    상기 복호화 알고리즘을 이용하여 복호화를 수행하는 복호화부를 포함하는 암호화 장치.
  2. 청구항 1에 있어서,
    상기 키 테이블 생성부는, 상기 적어도 하나의 암호화용 키 테이블로부터 각 암호화 키 테이블과 역함수 관계에 있는 복호화용 키 테이블을 생성하는 암호화 장치.
  3. 청구항 1에 있어서,
    상기 시드 값은, 비트열로 표현 가능한 초기 입력 값인 암호화 장치.
  4. 청구항 3에 있어서,
    상기 시드 값은, 암호키, 카운터 값 및 초기화 벡터 중 하나인 암호화 장치.
  5. 청구항 1에 있어서,
    상기 키 테이블 생성부는,
    암호화를 위한 가용 메모리의 크기에 기초하여 상기 임의의 값들의 크기를 결정하는 암호화 장치.
  6. 청구항 1에 있어서,
    상기 알고리즘 생성부는, 단위 입력의 크기 및 상기 임의의 값들의 크기에 기초하여 상기 미스티 구조의 브랜치 수를 결정하는 암호화 장치.
  7. 청구항 6에 있어서,
    상기 브랜치 수는, 아래의 수학식
    Figure 112016105480470-pat00004
    (이때, b는 브랜치 수, n는 상기 단위 입력의 크기, k는 상기 임의의 값들의 크기)
    에 의해 결정되는 암호화 장치.
  8. 청구항 1에 있어서,
    상기 알고리즘 생성부는, 요구되는 보안 강도에 기초하여 상기 미스티 구조의 라운드 수를 결정하는 암호화 장치.
  9. 시드 값으로부터 유도된 임의의 값들을 생성하는 단계;
    상기 임의의 값들로부터 적어도 하나의 암호화용 키 테이블을 생성하는 단계;
    상기 적어도 하나의 암호화용 키 테이블로부터 적어도 하나의 복호화용 키 테이블을 생성하는 단계;
    상기 적어도 하나의 암호화용 키 테이블이 적용된 라운드 함수를 가지는 미스티(Misty) 구조의 암호화 알고리즘 및 상기 적어도 하나의 복호화용 키 테이블이 적용된 라운드 함수를 가지는 미스티 구조의 복호화 알고리즘을 생성하는 단계;
    상기 암호화 알고리즘을 이용하여 평문 데이터를 암호화하는 단계; 및
    상기 복호화 알고리즘을 이용하여 암호화된 데이터를 복호화하는 단계를 포함하는 암호화 방법.
  10. 청구항 9에 있어서,
    상기 복호화용 키 테이블을 생성하는 단계는, 상기 적어도 하나의 암호화용 키 테이블로부터 각 암호화 키 테이블과 역함수 관계에 있는 복호화용 키 테이블을 생성하는 암호화 방법.
  11. 청구항 9에 있어서,
    상기 시드 값은, 비트열로 표현 가능한 초기 입력 값인 암호화 방법.
  12. 청구항 11에 있어서,
    상기 시드 값은, 암호키, 카운터 값 및 초기화 벡터 중 하나인 암호화 방법.
  13. 청구항 9에 있어서,
    상기 임의의 값들을 생성하는 단계는, 암호화를 위한 가용 메모리의 크기에 기초하여 상기 임의의 값들의 크기를 결정하는 암호화 방법.
  14. 청구항 9에 있어서,
    상기 암호화 알고리즘 및 복호화 알고리즘을 생성하는 단계는, 단위 입력의 크기 및 상기 임의의 값들의 크기에 기초하여 상기 미스티 구조의 브랜치 수를 결정하는 암호화 방법.
  15. 청구항 14에 있어서,
    상기 브랜치 수는, 아래의 수학식
    Figure 112016105480470-pat00005
    (이때, b는 브랜치 수, n는 상기 단위 입력의 크기, k는 상기 임의의 값들의 크기)
    에 의해 결정되는 암호화 방법.
  16. 청구항 9에 있어서,
    상기 암호화 알고리즘 및 복호화 알고리즘을 생성하는 단계는, 요구되는 보안 강도에 기초하여 상기 미스티 구조의 라운드 수를 결정하는 암호화 방법.
KR1020160142252A 2016-10-28 2016-10-28 암호화 장치 및 방법 KR101924067B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160142252A KR101924067B1 (ko) 2016-10-28 2016-10-28 암호화 장치 및 방법
CN201710805322.7A CN108023728B (zh) 2016-10-28 2017-09-08 加密装置及方法
US15/708,391 US10951402B2 (en) 2016-10-28 2017-09-19 Apparatus and method for encryption

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160142252A KR101924067B1 (ko) 2016-10-28 2016-10-28 암호화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20180046721A KR20180046721A (ko) 2018-05-09
KR101924067B1 true KR101924067B1 (ko) 2019-02-22

Family

ID=62021948

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160142252A KR101924067B1 (ko) 2016-10-28 2016-10-28 암호화 장치 및 방법

Country Status (3)

Country Link
US (1) US10951402B2 (ko)
KR (1) KR101924067B1 (ko)
CN (1) CN108023728B (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11269993B2 (en) * 2017-08-10 2022-03-08 Sony Corporation Encryption device, encryption method, decryption device, and decryption method
US10333710B2 (en) * 2017-09-12 2019-06-25 Qed-It Systems Ltd. Method and system for determining desired size of private randomness using Tsallis entropy
CN111989893B (zh) 2018-01-19 2022-04-26 Qed-It系统有限公司 用于生成和链接零知识证明的方法、系统和计算机可读装置
CN109120396B (zh) * 2018-07-10 2021-11-26 成都安恒信息技术有限公司 一种基于挑战应答码的数据加解密系统的使用方法
KR102565442B1 (ko) * 2018-10-26 2023-08-16 삼성에스디에스 주식회사 암호 알고리즘 생성 장치 및 방법, 암호화 장치 및 방법
KR102565443B1 (ko) * 2018-10-26 2023-08-16 삼성에스디에스 주식회사 암호 알고리즘 생성 장치 및 방법, 암호화 장치 및 방법
CN109379178B (zh) * 2018-11-15 2022-01-11 成都卫士通信息产业股份有限公司 加解密装置构建方法、系统、介质及设备
CN109617681A (zh) * 2018-12-06 2019-04-12 成都卫士通信息产业股份有限公司 加解密方法及装置、电子设备、计算机可读存储介质
US20220329439A1 (en) * 2019-08-05 2022-10-13 Securify Bilisim Teknolojileri Ve Guvenligi Egt. Dan. San. Ve Tic. Ltd. Sti. Method for generating digital signatures
CN110912679A (zh) * 2019-11-19 2020-03-24 海南众博数据科技有限公司 密码设备
KR20230120309A (ko) * 2022-02-09 2023-08-17 (주)가온아이 포스트 양자 암호 환경을 위한 고 차원 다형성 암호화를 수행하는 전자 장치 및 그 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100278332A1 (en) * 2008-01-18 2010-11-04 Fujitsu Limited Data conversion function processor
KR101593169B1 (ko) * 2014-08-20 2016-02-15 한국전자통신연구원 페이스텔 구조의 가변길이 블록암호 장치 및 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8155306B2 (en) * 2004-12-09 2012-04-10 Intel Corporation Method and apparatus for increasing the speed of cryptographic processing
JP5688528B2 (ja) 2009-03-10 2015-03-25 イルデト・ベー・フェー 入力に依存する符号化を用いたホワイトボックス暗号システム
CN102006161B (zh) * 2010-12-02 2012-06-27 北京航空航天大学 一种对称密钥加密的非线性变换方法及其实现装置
CN103746814B (zh) * 2014-01-27 2018-04-20 华为技术有限公司 一种加密、解密的方法及设备
CN105227308B (zh) * 2014-06-13 2019-01-08 华为技术有限公司 一种加密、解密方法及电子设备
KR20160024504A (ko) * 2014-08-26 2016-03-07 삼성에스디에스 주식회사 암호화 키 생성 장치 및 방법과 복호화 키 생성 장치 및 방법
SG10201405852QA (en) * 2014-09-18 2016-04-28 Huawei Internat Pte Ltd Encryption function and decryption function generating method, encryption and decryption method and related apparatuses

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100278332A1 (en) * 2008-01-18 2010-11-04 Fujitsu Limited Data conversion function processor
KR101593169B1 (ko) * 2014-08-20 2016-02-15 한국전자통신연구원 페이스텔 구조의 가변길이 블록암호 장치 및 방법

Also Published As

Publication number Publication date
CN108023728A (zh) 2018-05-11
CN108023728B (zh) 2021-04-27
US20180123788A1 (en) 2018-05-03
US10951402B2 (en) 2021-03-16
KR20180046721A (ko) 2018-05-09

Similar Documents

Publication Publication Date Title
KR101924067B1 (ko) 암호화 장치 및 방법
KR101989956B1 (ko) 암호화 장치 및 방법
US8966279B2 (en) Securing the implementation of a cryptographic process using key expansion
KR101847492B1 (ko) 데이터 암호화 장치 및 방법, 데이터 복호화 장치 및 방법
CN107438065B (zh) 数据加密装置及方法、数据解密装置及方法
US9515818B2 (en) Multi-block cryptographic operation
US8966285B2 (en) Securing implementation of a cryptographic process having fixed or dynamic keys
US20100111298A1 (en) Block cipher decryption apparatus and method
WO2009087972A1 (ja) データ送信装置、データ受信装置、これらの方法、記録媒体、そのデータ通信システム
US8675866B2 (en) Multiplicative splits to protect cipher keys
WO2017203992A1 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
KR101914453B1 (ko) 암호화 장치 및 방법
KR20170097509A (ko) 화이트 박스 암호화 기반의 연산 방법 및 그 방법을 수행하는 보안 단말
EP3644546B1 (en) Apparatus and method for generating cryptographic algorithm, apparatus and method for encryption
US10965454B2 (en) Apparatus and method for public key encryption
JP6187624B1 (ja) 情報処理装置、情報処理方法及びプログラム
KR20080072345A (ko) 암호화 장치 및 그 방법
AU2018374489B2 (en) Method for protecting a source of entropy used in countermeasures securing a whitebox cryptographic algorithm
KR20170103321A (ko) 보안성이 강화된 순서보존 암호화 방법 및 장치
KR101944741B1 (ko) 암호화 장치 및 방법

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