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

암호화 장치 및 방법 Download PDF

Info

Publication number
KR101914453B1
KR101914453B1 KR1020150151038A KR20150151038A KR101914453B1 KR 101914453 B1 KR101914453 B1 KR 101914453B1 KR 1020150151038 A KR1020150151038 A KR 1020150151038A KR 20150151038 A KR20150151038 A KR 20150151038A KR 101914453 B1 KR101914453 B1 KR 101914453B1
Authority
KR
South Korea
Prior art keywords
key
encryption
key table
generating
encryption algorithm
Prior art date
Application number
KR1020150151038A
Other languages
English (en)
Other versions
KR20170050026A (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 KR1020150151038A priority Critical patent/KR101914453B1/ko
Priority to US15/050,930 priority patent/US10411880B2/en
Priority to CN201610109512.0A priority patent/CN106656500A/zh
Publication of KR20170050026A publication Critical patent/KR20170050026A/ko
Application granted granted Critical
Publication of KR101914453B1 publication Critical patent/KR101914453B1/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
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • 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/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
    • 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
    • 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

Landscapes

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

Abstract

암호화 장치 및 방법이 개시된다. 본 발명의 일 실시예에 따른 암호화 장치는 시드 값으로부터 유도된 임의의 값들을 생성하고, 생성된 상기 임의의 값들을 포함하는 키 테이블을 생성하는 키 테이블 생성부 및 생성된 상기 키 테이블과 치환함수를 교차적으로 반복 결합하여 암호화 알고리즘을 생성하고, 상기 생성된 암호화 알고리즘을 이용하여 평문 데이터 블록을 암호화하는 암호화부를 포함한다.

Description

암호화 장치 및 방법{APPARATUS AND METHOD FOR ENCRYPTION}
본 발명의 실시예들은 암호화 기술과 관련된다.
종래의 화이트박스 암호 알고리즘은 기반이 되는 대칭키 암호 알고리즘의 내부 특성에 따라 그 구현 방식이 상이할 수 있고, 기반 알고리즘에 의존하기 때문에 범용성 제공이 어려우며, 기반 알고리즘의 암호키를 보호하기 위해 많은 추가 연산의 삽입으로 기반 알고리즘과 비교하여 수십 배의 효율 저하를 초래한다.
또한, 종래 화이트박스 암호 알고리즘은 설계자의 의도만큼 충분한 안전성을 제공하지 못하고, 실시간 암호키 복구 공격에 노출되고 있다.
한국공개특허 제10-2012-0030335호 (2012.03.28)
본 발명의 실시예들은 암호화 장치 및 방법을 제공하기 위한 것이다.
본 발명의 일 실시예에 따른 암호화 장치는, 시드 값으로부터 유도된 임의의 값들을 생성하고, 생성된 상기 임의의 값들을 포함하는 키 테이블을 생성하는 키 테이블 생성부 및 생성된 상기 키 테이블과 치환함수를 교차적으로 반복 결합하여 암호화 알고리즘을 생성하고, 상기 생성된 암호화 알고리즘을 이용하여 평문 데이터 블록을 암호화하는 암호화부를 포함한다.
상기 시드 값은, 비트열로 표현 가능한 초기 입력 값일 수 있다.
상기 시드 값은, 암호키, 카운터 값 및 초기화 벡터 중 하나일 수 있다.
상기 키 테이블 생성부는, 암호화를 위한 가용 메모리의 크기에 기초하여 상기 임의의 값들의 크기를 결정할 수 있다.
상기 암호화부는, 키 값이 상기 키 테이블로 대체된 이븐-맨서 스킴(Even-Mansour scheme)에 기반하여 상기 키 테이블과 상기 치환함수를 교차적으로 반복 결합할 수 있다.
상기 암호화부는, r+1개(이때, r은 r≥1인 정수)의 키 테이블과 r개의 치환함수를 교차적으로 반복 결합하여 상기 암호화 알고리즘을 생성할 수 있다.
상기 r+1개의 키 테이블은, 모두 동일할 수 있다.
상기 r+1개의 키 테이블은, 모두 상이할 수 있다.
상기 r+1개의 키 테이블은, 부분적으로 상이할 수 있다.
상기 r개의 치환함수는, 모두 동일할 수 있다.
상기 r개의 치환함수는, 모두 상이할 수 있다.
상기 r개의 치환함수는, 부분적으로 상이할 수 있다.
상기 치환함수는, 블록 암호 알고리즘일 수 있다.
본 발명의 일 실시예에 따른 암호화 방법은, 시드 값으로부터 유도된 임의의 값들을 생성하는 단계, 생성된 상기 임의의 값들을 포함하는 키 테이블을 생성하는 단계, 생성된 상기 키 테이블과 치환함수를 교차적으로 반복 결합하여 암호화 알고리즘을 생성하는 단계 및 상기 생성된 암호화 알고리즘을 이용하여 평문 데이터 블록을 암호화하는 단계를 포함한다.
상기 시드 값은, 비트열로 표현 가능한 초기 입력 값일 수 있다.
상기 시드 값은, 암호키, 카운터 값 및 초기화 벡터 중 하나일 수 있다.
상기 임의의 값들을 생성하는 단계는, 암호화를 위한 가용 메모리의 크기에 기초하여 상기 임의의 값들의 크기를 결정할 수 있다.
상기 암호화 알고리즘을 생성하는 단계는, 키 값이 상기 키 테이블로 대체된 이븐-맨서 스킴(Even-Mansour scheme)에 기반하여 상기 키 테이블과 상기 치환함수를 교차적으로 반복 결합할 수 있다.
상기 암호화 알고리즘을 생성하는 단계는, r+1개의 키 테이블과 r개의 치환함수를 교차적으로 반복 결합할 수 있다.
상기 r+1개의 키 테이블은, 모두 동일할 수 있다.
상기 r+1개의 키 테이블은, 모두 상이할 수 있다.
상기 r+1개의 키 테이블은, 부분적으로 상이할 수 있다.
상기 r개의 치환함수는, 모두 동일할 수 있다.
상기 r개의 치환함수는, 모두 상이할 수 있다.
상기 r개의 치환함수는, 부분적으로 상이할 수 있다.
상기 치환함수는, 블록 암호 알고리즘일 수 있다.
본 발명의 일 실시예에 따른 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램은, 하드웨어와 결합되어, 시드 값으로부터 유도된 임의의 값들을 생성하는 단계, 생성된 상기 임의의 값들을 포함하는 키 테이블을 생성하는 단계, 생성된 상기 키 테이블과 치환함수를 교차적으로 반복 결합하여 암호화 알고리즘을 생성하는 단계 및 상기 생성된 암호화 알고리즘을 이용하여 평문 데이터 블록을 암호화하는 단계를 실행시킨다.
본 발명의 실시예들에 따르면, 암호키를 보호하기 위해서 종래에 수반되었던 많은 추가 연산 과정 없이, 기반 함수의 효율성에 키 테이블 접근 속도만이 추가되고, 적용 환경 내 보호할 데이터 크기와 상관없이 가변적으로 설계가 가능하기 때문에 종래의 화이트박스 구현 방법에 비해 효율성을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 암호화 장치의 구성도
도 2는 암호화부에 의해 생성된 암호화 알고리즘의 구성을 나타낸 예시도
도 3은 AES 알고리즘을 치환함수로 이용하여 생성된 암호화 알고리즘의 구성을 나타낸 예시도
도 4는 본 발명의 일 실시예에 따른 키 테이블 생성부의 상세 구성도
도 5는 연산부에서 이용되는 라운드 함수를 예를 도시한 도면
도 6은 본 발명의 일 실시예에 따른 암호화 방법의 순서도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 본 발명의 일 실시예에 따른 암호화 장치의 구성도이다.
도 1을 참고하면, 본 발명의 일 실시예에 따른 암호화 장치(100)는 키 테이블 생성부(110) 및 암호화부(130)를 포함한다.
키 테이블 생성부(110)는 시드(seed) 값을 이용하여 시드 값으로부터 유도된 임의의 값들을 생성하고, 생성된 임의의 값들을 포함하는 키 테이블을 생성한다.
이때, 키 테이블은 시드 값으로부터 유도된 임의의 값들로 구성된 룩업 테이블(lookup table)일 수 있다.
또한, 시드 값은 비트열로 표현 가능한 초기 입력 값을 의미할 수 있다. 예를 들어, 시드 값은 암호키, 블록 암호화의 운영 모드에서 사용되는 카운터 값, 임의의 비트열로 구성된 초기화 벡터 등을 포함할 수 있다.
한편, 본 발명의 일 실시예에 따르면, 키 테이블 생성부(110)에 의해 생성되는 키 테이블의 각 임의의 값들의 크기는 암호화 장치(100)가 적용되는 컴퓨팅 환경 내에서 암호화를 위해 이용할 수 있는 가용 메모리 크기에 따라 결정될 수 있다.
암호화부(130)는 키 테이블 생성부(110)에 의해 생성된 키 테이블과 치환함수를 교차적으로 반복 결합하여 암호화 알고리즘을 생성하고, 생성된 암호화 알고리즘을 이용하여 평문 데이터 블록를 암호화 할 수 있다.
이때, 치환함수는 입력된 값을 동일한 길이의 상이한 값으로 출력하는 암호학적으로 안전한 모든 형태의 함수를 의미한다. 예를 들어, 치환함수는 AES(Advanced Encryption Standard) 알고리즘, DES(Data Encryption Standard) 알고리즘, IDEA(International Data Encryption) 알고리즘, Blowfish 알고리즘 등과 같은 블록 암호화 알고리즘일 수 있다.
한편, 본 발명의 일 실시예에 따르면, 암호화부(130)는 아래의 수학식 1과 같은 이븐-맨서 스킴(Even-Mansour scheme)에서 키 테이블 생성부(110)에서 생성된 키 테이블로 키 값을 대체한 이븐-맨서 스킴에 기반하여 키 테이블과 치환함수를 교차적으로 반복 결합할 수 있다.
[수학식 1]
Figure 112015105296676-pat00001
이때, P는 평문 데이터, F는 치환함수, k0 및 k1은 키 값을 의미한다.
구체적으로, 암호화부(130)는 r+1개의 키 테이블과 r개의 치환함수를 상술한 이븐-맨서 스킴에 기반하여 교차적으로 반복 결합하여 암호화 알고리즘을 생성할 수 있다(이때, r은 r≥1인 정수). 이때, r은 요구되는 보안 강도에 따라 결정될 수 있다.
보다 구체적으로, 도 2는 암호화부(130)에 의해 생성된 암호화 알고리즘의 구성을 나타낸 예시도이다.
도 2에 도시된 예와 같이 암호화부(130)는 키 테이블의 결과 값이 치환함수로 입력되고, 치환함수의 결과 값이 다시 키 테이블로 입력되도록 r개의 키 테이블과 r개의 치환함수를 교차적으로 반복 결합한 후, 마지막에 하나의 키 테이블을 더 결합하여 암호화 알고리즘을 생성할 수 있다.
한편, 도 2에 도시된 예에서는, 동일한 r+1개의 키 테이블과 동일한 r개의 키 테이블을 결합하고 있으나, 반드시 이에 한정되는 것은 아니다.
예를 들어, 도 2에 도시된 예와 달리, r+1개의 키 테이블은 모두 상이하거나 일부 상이할 수 있다. 이때, 상이한 r+1개의 키 테이블을 이용하는 경우, 키 테이블 생성부(110)는 입력되는 시드 값으로부터 r+1개의 상이한 키 테이블을 생성할 수 있다. 또한, 예를 들어, 상이한 두 종류의 r+1개의 키 테이블을 이용하는 경우, 키 테이블 생성부(110)는 입력되는 시드 값으로부터 상이한 두 개의 키 테이블을 생성할 수 있다.
한편, 키 테이블과 마찬가지로, 도 2에 도시된 예와 달리, r개의 치환함수는 모두 상이하거나 일부 상이할 수 있다.
도 3은 AES 알고리즘을 치환함수로 이용하여 생성된 암호화 알고리즘의 구성을 나타낸 예시도이다.
도 3에서, 암호화 알고리즘은 세 개의 키 테이블과 5 라운드로 구성된 두 개의 동일한 AES 알고리즘이 교차적으로 반복 결합되어 생성되었다.
또한, 각 AES 알고리즘에서 암호화 키는 고정된 값을 이용하도록 구성되었다.
한편, 도시된 예에서는, 반복 결합된 키 테이블들과 AES 알고리즘들이 동일한 것으로 도시되어 있으나, 상술한 바와 같이 세 개의 키 테이블은 각각 상이한 키 테이블이거나 두 개의 동일한 키 테이블과 하나의 상이한 키 테이블이 이용될 수 있으며, 하나의 AES 알고리즘과 하나의 다른 치환함수가 이용될 수 있다.
도 4는 본 발명의 일 실시예에 따른 키 테이블 생성부(110)의 상세 구성도이다.
도 4를 참조하면, 키 테이블 생성부(110)는 시드 값으로부터 복수의 서브키를 생성하는 키 생성부(111) 및 생성된 각각의 서브키를 이용하여 키 테이블을 생성하는 연산부(113)를 포함할 수 있다.
구체적으로, 키 생성부(111)는 시드 값을 입력받아 서브키를 생성한 후, 직전에 생성된 서브키로부터 새로운 서브키를 반복적으로 생성할 수 있다. 예를 들어, 세 개의 서브키를 생성하는 경우를 가정하면, 키 생성부(111)는 입력된 시드 값으로부터 난수를 생성하여 첫 번째 서브키를 생성할 수 있다. 이후, 키 생성부(111)는 생성된 첫 번째 서브키로부터 난수를 생성하여 두 번째 서브키를 생성하고, 생성된 두 번째 서브키로부터 난수를 생성하여 세 번째 서브키를 생성할 수 있다.
연산부(113)는 키 생성부(111)로부터 생성된 각각의 서브키들로부터 키 테이블을 구성하기 위한 임의의 값들을 생성하고, 생성된 임의의 값들을 포함하는 키 테이블을 생성할 수 있다. 구체적으로, 연산부(113)는 입력되는 서브키로부터 임의의 값을 생성하기 위한 라운드 함수를 이용하여 매 라운드마다 라운드 함수에 각 서브키를 적용하여 임의의 값들을 생성할 수 있다.
구체적으로, 도 5는 연산부(113)에서 이용되는 라운드 함수를 예를 도시한 도면이다.
도 5를 참조하면, 연산부(113)는 도시된 예와 같이 키 생성부(111)에서 생성된 서브키(ki) 및 서브키(ki)와 동일한 크기를 가지는 임의의 값(a)을 XOR 연산하고, XOR 연산 결과를 두 부분으로 분리하여 각각 S-box에 적용할 수 있다. 이후, 연산부(113)는 두 S-box의 출력 결과 값에 대해 행렬 연산을 수행하여 임의의 값(ri)을 생성할 수 있다. 이때, 행렬 연산은 예를 들어, MDS(Maximum Distance Separable) 행렬을 이용한 행렬 연산과 같이 입력 값에 대한 확산 효과가 최대가 되도록 하는 성질을 가지는 다양한 형태의 행렬 연산이 이용될 수 있다.
한편, 키 테이블 생성부(110)에 의해 수행되는 키 테이블 생성은 반드시 도 4 및 5에 도시된 예에 한정되는 것은 아니다. 예를 들어, 키 테이블 생성부(110)는 도 4 및 도 5에 도시된 예 외에도, 일방향 특성을 가지는 다양한 방식을 이용하여 시드 값으로부터 임의의 값들을 생성하고, 생성된 임의의 값들을 포함하는 키 테이블을 생성할 수 있다.
한편, 일 실시예에서, 도 1에 도시된 키 테이블 생성부(110) 및 암호화부(130)는 하나 이상의 프로세서 및 그 프로세서와 연결된 컴퓨터 판독 가능 기록 매체를 포함하는 하나 이상의 컴퓨팅 장치 상에서 구현될 수 있다. 컴퓨터 판독 가능 기록 매체는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨팅 장치 내의 프로세서는 각 컴퓨팅 장치로 하여금 본 명세서에서 기술되는 예시적인 실시예에 따라 동작하도록 할 수 있다. 예를 들어, 프로세서는 컴퓨터 판독 가능 기록 매체에 저장된 명령어를 실행할 수 있고, 컴퓨터 판독 가능 기록 매체에 저장된 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 본 명세서에 기술되는 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
도 6는 본 발명의 일 실시예에 따른 암호화 방법의 순서도이다.
도 6에 도시된 방법은 예를 들어, 도 1에 도시된 암호화 장치(100)에 의해 수행될 수 있다.
도 6을 참조하면, 암호화 장치(100)는 시드 값으로부터 유도된 임의의 값들을 생성한다(610).
이후, 암호화 장치(100)는 생성된 임의의 값들을 포함하는 키 테이블을 생성한다(620). 이때, 키 테이블을 구성하는 임의의 값들의 크기는 가용 메모리 크기에 따라 결정될 수 있다.
이후, 암호화 장치(100)는 생성된 키 테이블과 치환함수를 교차적으로 반복 결합하여 암호화 알고리즘을 생성한다(630).
구체적으로, 암호화 장치(100)는 예를 들어, 키 테이블로 키 값을 대체한 이븐-맨서 스킴에 기반하여 r+1개의 키 테이블과 r개의 치환함수를 교차적으로 반복 결합하여 암호화 알고리즘을 생성할 수 있다. 이때, r의 값은 요구되는 보안 강도에 따라 결정될 수 있다.
또한, r+1개의 키 테이블은 모두 동일할 수 있으나, 이에 한정되는 것은 아니며, 실시예에 따라 r+1개의 키 테이블은 모두 상이하거나 일부 상이할 수 있다.
마찬가지로, r개의 치환함수는 모두 동일할 수 있으나, 이에 한정되는 것은 아니며, 실시예에 따라 r개의 치환함수는 모두 상이하거나 일부 상이할 수 있다.
이후, 암호화 장치(100)는 생성된 암호화 알고리즘을 이용하여 평문 데이터 블록을 암호화한다(640).
한편, 도 6에 도시된 순서도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 분야에서 통상적으로 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플로피 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 암호화 장치
110: 키 테이블 생성부
111: 키 생성부
113: 연산부
130: 암호화부

Claims (27)

  1. 시드 값으로부터 유도된 임의의 값들을 생성하고, 생성된 상기 임의의 값들을 포함하는 키 테이블을 생성하는 키 테이블 생성부; 및
    키 값이 상기 키 테이블로 대체된 이븐-맨서 스킴(Even-Mansour scheme)에 기반하여 상기 키 테이블과 치환함수를 교차적으로 반복 결합한 암호화 알고리즘을 생성하고, 상기 생성된 암호화 알고리즘을 이용하여 평문 데이터 블록을 암호화하는 암호화부를 포함하는 암호화 장치.
  2. 청구항 1에 있어서,
    상기 시드 값은, 비트열로 표현 가능한 초기 입력 값인 암호화 장치.
  3. 청구항 2에 있어서,
    상기 시드 값은, 암호키, 카운터 값 및 초기화 벡터 중 하나인 암호화 장치.
  4. 청구항 1에 있어서,
    상기 키 테이블 생성부는,
    암호화를 위한 가용 메모리의 크기에 기초하여 상기 임의의 값들의 크기를 결정하는 암호화 장치.
  5. 삭제
  6. 청구항 1에 있어서,
    상기 암호화부는, r+1개(이때, r은 r≥1인 정수)의 키 테이블과 r개의 치환함수를 교차적으로 반복 결합하여 상기 암호화 알고리즘을 생성하는 암호화 장치.
  7. 청구항 6에 있어서,
    상기 r+1개의 키 테이블은, 모두 동일한 암호화 장치.
  8. 청구항 6에 있어서,
    상기 r+1개의 키 테이블은, 모두 상이한 암호화 장치.
  9. 청구항 6항에 있어서,
    상기 r+1개의 키 테이블은, 부분적으로 상이한 암호화 장치.
  10. 청구항 6에 있어서,
    상기 r개의 치환함수는, 모두 동일한 암호화 장치.
  11. 청구항 6에 있어서,
    상기 r개의 치환함수는, 모두 상이한 암호화 장치.
  12. 청구항 6항에 있어서,
    상기 r개의 치환함수는, 부분적으로 상이한 암호화 장치.
  13. 청구항 1에 있어서,
    상기 치환함수는, 블록 암호 알고리즘인 암호화 장치.
  14. 시드 값으로부터 유도된 임의의 값들을 생성하는 단계;
    생성된 상기 임의의 값들을 포함하는 키 테이블을 생성하는 단계;
    키 값이 상기 키 테이블로 대체된 이븐-맨서 스킴(Even-Mansour scheme)에 기반하여 상기 키 테이블과 치환함수를 교차적으로 반복 결합한 암호화 알고리즘을 생성하는 단계; 및
    상기 생성된 암호화 알고리즘을 이용하여 평문 데이터 블록을 암호화하는 단계를 포함하는 암호화 방법.
  15. 청구항 14에 있어서,
    상기 시드 값은, 비트열로 표현 가능한 초기 입력 값인 암호화 방법.
  16. 청구항 15에 있어서,
    상기 시드 값은, 암호키, 카운터 값 및 초기화 벡터 중 하나인 암호화 방법.
  17. 청구항 14에 있어서,
    상기 임의의 값들을 생성하는 단계는,
    암호화를 위한 가용 메모리의 크기에 기초하여 상기 임의의 값들의 크기를 결정하는 암호화 방법.
  18. 삭제
  19. 청구항 14에 있어서,
    상기 암호화 알고리즘을 생성하는 단계는, r+1개의 키 테이블과 r개의 치환함수를 교차적으로 반복 결합하여 상기 암호화 알고리즘을 생성하는 암호화 방법.
  20. 청구항 19에 있어서,
    상기 r+1개의 키 테이블은, 모두 동일한 암호화 방법.
  21. 청구항 19에 있어서,
    상기 r+1개의 키 테이블은, 모두 상이한 암호화 방법.
  22. 청구항 19항에 있어서,
    상기 r+1개의 키 테이블은, 부분적으로 상이한 암호화 방법.
  23. 청구항 19에 있어서,
    상기 r개의 치환함수는, 모두 동일한 암호화 방법.
  24. 청구항 19에 있어서,
    상기 r개의 치환함수는, 모두 상이한 암호화 방법.
  25. 청구항 19항에 있어서,
    상기 r개의 치환함수는, 부분적으로 상이한 암호화 방법.
  26. 청구항 14에 있어서,
    상기 치환함수는, 블록 암호 알고리즘인 암호화 방법.
  27. 하드웨어와 결합되어
    시드 값으로부터 유도된 임의의 값들을 생성하는 단계;
    생성된 상기 임의의 값들을 포함하는 키 테이블을 생성하는 단계;
    키 값이 상기 키 테이블로 대체된 이븐-맨서 스킴(Even-Mansour scheme)에 기반하여 상기 키 테이블과 치환함수를 교차적으로 반복 결합한 암호화 알고리즘을 생성하는 단계; 및
    상기 생성된 암호화 알고리즘을 이용하여 평문 데이터 블록을 암호화하는 단계를 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.















KR1020150151038A 2015-10-29 2015-10-29 암호화 장치 및 방법 KR101914453B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150151038A KR101914453B1 (ko) 2015-10-29 2015-10-29 암호화 장치 및 방법
US15/050,930 US10411880B2 (en) 2015-10-29 2016-02-23 Apparatus and method for encryption
CN201610109512.0A CN106656500A (zh) 2015-10-29 2016-02-26 加密装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150151038A KR101914453B1 (ko) 2015-10-29 2015-10-29 암호화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20170050026A KR20170050026A (ko) 2017-05-11
KR101914453B1 true KR101914453B1 (ko) 2018-11-02

Family

ID=58634853

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150151038A KR101914453B1 (ko) 2015-10-29 2015-10-29 암호화 장치 및 방법

Country Status (3)

Country Link
US (1) US10411880B2 (ko)
KR (1) KR101914453B1 (ko)
CN (1) CN106656500A (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102305858B1 (ko) * 2017-09-26 2021-09-27 삼성에스디에스 주식회사 키 정보 프로비저닝 방법 및 이를 이용한 장치
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
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
KR20210048698A (ko) * 2019-10-24 2021-05-04 삼성에스디에스 주식회사 암복호화를 위한 장치 및 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3029381B2 (ja) * 1994-01-10 2000-04-04 富士通株式会社 データ変換装置
CN1258148C (zh) * 2003-05-01 2006-05-31 南京邮电学院 高安全等级对称密钥算法的加密、解密方法及加密器
US8155306B2 (en) * 2004-12-09 2012-04-10 Intel Corporation Method and apparatus for increasing the speed of cryptographic processing
CA2754094C (en) * 2009-03-10 2017-08-15 Irdeto Corporate B.V. White-box cryptographic system with input dependent encodings
WO2010146139A1 (en) * 2009-06-19 2010-12-23 Irdeto B.V. White-box cryptographic system with configurable key using intermediate data modification
CN102185692B (zh) * 2011-04-25 2012-07-04 北京航空航天大学 基于aes加密算法的多模式可重构加密方法
CN103825727A (zh) * 2012-11-19 2014-05-28 厦门雅迅网络股份有限公司 一种随机密钥的生成方法
CN103516512A (zh) * 2013-10-21 2014-01-15 深圳市芯通信息科技有限公司 基于aes算法的加解密方法及加解密器
CN103634101A (zh) * 2013-12-03 2014-03-12 中国电子器材总公司 加密处理方法及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
이만영 외 5인, "현대 암호학 및 응용" (2002.11.25.)*

Also Published As

Publication number Publication date
US20170126395A1 (en) 2017-05-04
US10411880B2 (en) 2019-09-10
KR20170050026A (ko) 2017-05-11
CN106656500A (zh) 2017-05-10

Similar Documents

Publication Publication Date Title
KR101924067B1 (ko) 암호화 장치 및 방법
KR101989956B1 (ko) 암호화 장치 및 방법
KR101847492B1 (ko) 데이터 암호화 장치 및 방법, 데이터 복호화 장치 및 방법
US8966279B2 (en) Securing the implementation of a cryptographic process using key expansion
US10180824B2 (en) Computing device comprising a table network
US9515818B2 (en) Multi-block cryptographic operation
US10721059B2 (en) Apparatus and method for data encryption, apparatus and method for data decryption
US8966285B2 (en) Securing implementation of a cryptographic process having fixed or dynamic keys
JP7031580B2 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
US8675866B2 (en) Multiplicative splits to protect cipher keys
US9565018B2 (en) Protecting cryptographic operations using conjugacy class functions
KR101914453B1 (ko) 암호화 장치 및 방법
KR102033351B1 (ko) 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법 및 장치
KR102565443B1 (ko) 암호 알고리즘 생성 장치 및 방법, 암호화 장치 및 방법
JP6187624B1 (ja) 情報処理装置、情報処理方法及びプログラム
US10965454B2 (en) Apparatus and method for public key encryption
WO2015166701A1 (ja) 暗号化方法、プログラム、および、システム
KR20080072345A (ko) 암호화 장치 및 그 방법
KR20170103321A (ko) 보안성이 강화된 순서보존 암호화 방법 및 장치
KR101944741B1 (ko) 암호화 장치 및 방법

Legal Events

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