KR20210048698A - 암복호화를 위한 장치 및 방법 - Google Patents

암복호화를 위한 장치 및 방법 Download PDF

Info

Publication number
KR20210048698A
KR20210048698A KR1020190132656A KR20190132656A KR20210048698A KR 20210048698 A KR20210048698 A KR 20210048698A KR 1020190132656 A KR1020190132656 A KR 1020190132656A KR 20190132656 A KR20190132656 A KR 20190132656A KR 20210048698 A KR20210048698 A KR 20210048698A
Authority
KR
South Korea
Prior art keywords
value
encryption
secret
key
decryption
Prior art date
Application number
KR1020190132656A
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 KR1020190132656A priority Critical patent/KR20210048698A/ko
Priority to US16/664,836 priority patent/US11522675B2/en
Priority to SG10201913117PA priority patent/SG10201913117PA/en
Publication of KR20210048698A publication Critical patent/KR20210048698A/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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Abstract

암복호화를 위한 장치 및 방법이 개시된다. 일 실시예에 따른 방법은, 제1 시드 값에 기초하여 하나 이상의 키 테이블을 생성하는 단계; 상기 하나 이상의 키 테이블에 기초하여, 트윅(tweak) 값으로부터 하나 이상의 비밀 값을 생성하는 단계; 및 상기 하나 이상의 비밀 값을 이용하여 암호화 또는 복호화를 수행하는 단계를 포함한다.

Description

암복호화를 위한 장치 및 방법{APPARATUS AND METHOD FOR ENCRYPTION AND DECRYPTION}
본 발명의 실시예들은 암호 기술과 관련된다.
트윅 적용 블록 암호화(tweakable block cipher)를 위한 종래 암호화 알고리즘들은 블랙박스 환경에서의 안전성을 기반으로 설계된 알고리즘들로, 화이트박스 환경에서 안전성을 제공할 수 없다.
대한민국 등록특허 제10-1516574호 (2015.05.04. 공고)
본 발명의 실시예들은 암복호화를 위한 장치 및 방법을 제공하기 위한 것이다.
일 실시예에 따른 방법은, 제1 시드 값에 기초하여 하나 이상의 키 테이블을 생성하는 단계; 상기 하나 이상의 키 테이블에 기초하여, 트윅(tweak) 값으로부터 하나 이상의 비밀 값을 생성하는 단계; 및 상기 하나 이상의 비밀 값을 이용하여 암호화 또는 복호화를 수행하는 단계를 포함한다.
상기 수행하는 단계는, 상기 하나 이상의 비밀 값 중 제1 비밀 값과 입력 데이터에 기초한 제1 연산, 상기 제1 연산의 결과 값에 기초한 치환(permutation) 함수, 및 상기 하나 이상의 비밀 값 중 상기 제1 비밀 값 또는 제2 비밀 값과 상기 치환 함수의 결과 값에 기초한 제2 연산을 이용하여 상기 암호화 또는 복호화를 수행할 수 있다.
상기 제1 연산은, 상기 제1 비밀 값 및 상기 입력 데이터 사이의 배타적 논리합(exclusive OR) 연산이고, 상기 제2 연산은, 상기 제1 비밀 값 또는 상기 제2 비밀 값과 상기 치환 함수의 결과 값 사이의 배타적 논리합 연산일 수 있다.
상기 치환 함수는, 비 암호키 기반의 치환 함수일 수 있다.
상기 치환 함수는, 암호키 기반의 치환 함수일 수 있다.
상기 방법은, 제2 시드 값에 기초하여 하나 이상의 키 테이블을 생성하는 단계; 및 상기 제2 시드 값에 기초하여 생성된 하나 이상의 키 테이블에 기초하여, 상기 트윅 값으로부터 제3 비밀 값을 생성하는 단계를 더 포함하고, 상기 수행하는 단계는, 상기 제3 비밀 값을 상기 암호키 기반의 치환 함수의 암호키로 이용할 수 있다.
상기 하나 이상의 키 테이블을 생성하는 단계는, 상기 암호화 또는 상기 복호화에 대한 보안 강도 및 상기 트윅 값의 크기에 기초하여 상기 하나 이상의 키 테이블의 크기를 결정하는 단계; 및 상기 결정된 크기에 기초하여 상기 하나 이상의 키 테이블을 생성하는 단계를 포함할 수 있다.
일 실시예에 따른 장치는, 제1 시드 값에 기초하여 하나 이상의 키 테이블을 생성하는 키 테이블 생성부; 상기 하나 이상의 키 테이블에 기초하여, 트윅(tweak) 값으로부터 하나 이상의 비밀 값을 생성하는 비밀 값 생성부; 및 상기 하나 이상의 비밀 값을 이용하여 암호화 또는 복호화를 수행하는 암복호화부를 포함한다.
상기 암복호화부는, 상기 하나 이상의 비밀 값 중 제1 비밀 값과 입력 데이터에 기초한 제1 연산, 상기 제1 연산의 결과 값에 기초한 치환(permutation)함수, 및 상기 하나 이상의 비밀 값 중 상기 제1 비밀 값 또는 제2 비밀 값과 상기 치환 함수의 결과 값에 기초한 제2 연산을 이용하여 상기 암호화 또는 복호화를 수행할 수 있다.
상기 제1 연산은, 상기 제1 비밀 값 및 상기 입력 데이터 사이의 배타적 논리합(exclusive OR) 연산이고, 상기 제2 연산은, 상기 제1 비밀 값 또는 상기 제2 비밀 값과 상기 치환 함수의 결과 값 사이의 배타적 논리합 연산일 수 있다.
상기 치환 함수는, 비 암호키 기반의 치환 함수일 수 있다.
상기 치환 함수는, 암호키 기반의 치환 함수일 수 있다.
상기 키 테이블 생성부는, 제2 시드 값에 기초하여 하나 이상의 키 테이블을 더 생성하고, 상기 비밀 값 생성부는, 상기 제2 시드 값에 기초하여 생성된 하나 이상의 키 테이블에 기초하여, 상기 트윅 값으로부터 제3 비밀 값을 더 생성하고, 상기 암복호화부는, 상기 제3 비밀 값을 상기 암호키 기반의 치환 함수의 암호키로 이용할 수 있다.
상기 키 테이블 생성부는, 상기 암호화 또는 상기 복호화에 대한 보안 강도 및 상기 트윅 값의 크기에 기초하여 상기 하나 이상의 키 테이블의 크기를 결정하고, 상기 결정된 크기에 기초하여 상기 하나 이상의 키 테이블을 생성하는 단계를 포함할 수 있다.
본 발명의 실시예들에 따르면, 블랙박스 환경에서 안전한 암복호화 구조를 내부 논리나 구조의 변경 없이 그대로 사용하되, 시드 값으로부터 생성된 키 테이블을 이용하여 트윅 값으로부터 암복호화를 위해 이용되는 비밀 값을 생성함으로써, 화이트박스 환경에서도 충분한 안전성을 제공함과 동시에 암복호화가 적용되는 환경에 적합한 알고리즘 구현이 가능하게 된다.
도 1은 일 실시예에 따른 암복호화 장치의 구성도
도 2는 일 실시예에 따른 트윅 변환기의 일 예를 나타낸 도면
도 3은 일 실시예에 따른 트윅 변환기의 다른 예를 나타낸 도면
도 4는 일 실시예에 따른 트윅 변환기의 또 다른 예를 나타낸 도면
도 5는 일 실시예에 따른 암복호화 구조의 일 예를 나타낸 도면
도 6은 일 실시예에 따른 암복호화 구조의 다른 예를 나타낸 도면
도 7은 일 실시예에 따른 암복호화 방법의 순서도
도 8은 다른 실시예에 따른 암복호화 방법의 순서도
도 9는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 일 실시예에 따른 암복호화 장치의 구성도이다.
도 1을 참조하면, 일 실시예에 따른 암복호화 장치(100)는 키 테이블 생성부(110), 비밀 값 생성부(120) 및 암복호화부(130)를 포함한다.
키 테이블 생성부(110)는 시드(seed) 값에 기초하여 하나 이상의 키 테이블을 생성한다.
일 실시예에서, 시드 값은 예를 들어, 임의의 난수, 암호키, 블록 암호의 운영 모드에서 사용되는 카운터 값 또는 초기화 벡터 등일 수 있다.
한편, 키 테이블은 시드 값으로부터 유도된 복수의 임의의 비트 열과 해당 복수의 임의의 비트 열 각각에 대응되는 인덱스 비트 열을 포함하는 룩업 테이블(lookup table)을 의미한다.
일 실시예에 따르면, 키 테이블 생성부(110)는 예를 들어, 시드 값을 입력 값으로 이용하여 임의의 비트 열을 생성하는 난수 생성기를 이용하여 생성될 수 있다. 그러나, 실시예에 따라, 키 테이블 생성부(110)는 난수 생성기 외에도 시드 값으로부터 임의의 값을 생성하되 생성된 값을 이용하여 시드 값을 유추하기 어려운 일 방향(one-way) 특성을 갖는 다양한 방식을 이용하여 생성될 수 있다.
한편, 일 실시예에 따르면, 키 테이블 생성부(110)는 암호화 또는 복호화에 대한 보안 강도 및 암호화 또는 복호화를 위해 이용되는 트윅(tweak) 값의 크기에 기초하여 생성할 키 테이블의 크기를 결정하고, 결정된 크기에 기초하여 시드 값으로부터 하나 이상의 키 테이블을 생성할 수 있다.
또한, 일 실시예에 따르면, 키 테이블 생성부(110)는 하나 이상의 시드 값 각각을 이용하여 각 시드 값으로부터 하나 이상의 키 테이블을 생성할 수 있다. 예를 들어, 키 테이블 생성부(110)는 제1 시드 값을 이용하여 하나 이상의 키 테이블을 생성하고, 제2 시드 값을 이용하여 하나 이상의 키 테이블을 생성할 수 있다.
비밀 값 생성부(120)는 키 테이블 생성부(110)에 의해 생성된 하나 이상의 키 테이블에 기초하여, 트윅 값으로부터 하나 이상의 비밀 값을 생성한다.
일 실시예에 따르면, 비밀 값 생성부(120)는 키 테이블 생성부(110)에 의해 생성된 하나 이상의 키 테이블이 적용된 하나 이상의 트윅 변환기를 생성하고, 생성된 트윅 변환기 각각을 이용하여 하나 이상의 비밀 값을 생성할 수 있다.
구체적으로, 도 2는 일 실시예에 따른 트윅 변환기의 일 예를 나타낸 도면이다.
도 2를 참조하면, 일 실시예에 따른 트윅 변환기(200)는 제1 변환부(210), 제2 변환부(220) 및 제3 변환부(230)를 포함할 수 있다.
제1 변환부(210)는 트윅 값을 입력받아 트윅 값의 길이보다 확장된 길이를 가지는 제1 임의의 비트 열을 생성할 수 있다.
구체적으로, 제1 변환부(210)는 예를 들어, AES(Advanced Encryption Standard) 알고리즘, 해시(Hash) 함수 등과 같은 제1 변환 함수를 이용하여 트윅 값으로부터 제1 임의의 비트 열을 생성할 수 있다. 이때, 제1 변환부(210)는 상술한 예 외에도 입력 값을 특정한 길이를 가진 임의의 비트 열로 변환할 수 있는 공지된 다양한 함수를 제1 변환 함수로 이용할 수 있다.
한편, 제1 변환부(210)에 의해 생성되는 제1 임의의 비트 열의 길이는 제2 변환부(220)에 적용된 키 테이블에 포함된 각 인덱스 비트 열의 길이 및 기 설정된 키 테이블 참조 횟수에 따라 결정될 수 있다. 예를 들어, 키 테이블의 인덱스 비트 열 길이가 L비트이고, 키 테이블 참조 횟수가 d로 설정된 경우, 제1 임의의 비트 열의 길이는 L×d비트일 수 있다. 한편, 키 테이블 참조 횟수는 보안 강도를 고려하여 사용자에 의해 설정될 수 있다.
한편, 제1 변환부(210)는 생성된 제1 임의의 비트 열을 L비트 단위로 d개의 비트 열로 분할하여 출력할 수 있으며, 제2 변환부(220)는 키 테이블을 참조하여 분할된 L비트 길이의 d개의 비트 열 각각을 m(이때, m은 키 테이블에 포함된 임의의 비트 열 각각의 길이) 비트 길이의 d 개의 비트 열로 변환할 수 있다.
구체적으로, 제2 변환부(220)는 키 테이블을 참조하여, 제1 변환부(210)에 의해 출력되는 L비트 길이의 d개의 비트 열 각각과 키 테이블의 인덱스 비트 열을 비교하여 키 테이블에 포함된 복수의 임의의 비트 열 중 d개의 비트 열 각각과 동일한 인덱스 비트 열을 가지는 비트 열을 출력할 수 있다.
한편, 제 3 변환부(230)는 제2 변환부(220)에 의해 출력되는 m비트 길이의 d개의 비트 열을 비밀 값으로 변환할 수 있다.
구체적으로, 제3 변환부(230)는 제2 변환부(220)에서 출력되는 m비트 길이의 d개의 비트 열을 서로 연결(concatenate)하여 m×d 비트 길이의 비트 열을 생성하고, 생성된 m×d 비트 길이의 비트 열을 제2 변환 함수를 이용하여 비밀 값으로 변환할 수 있다.
이때, 제3 변환부(230)는 예를 들어, AES 알고리즘, 해시 함수 등과 같은 제2 변환 함수를 이용하여 m×d 비트 길이의 비트 열로부터 비밀 값을 생성할 수 있다. 그러나, 제3 변환부(230)는 상술한 예 외에도 입력 값을 특정한 길이를 가진 임의의 비트 열로 변환할 수 있는 공지된 다양한 함수를 제2 변환 함수로 이용할 수 있다.
도 3은 일 실시예에 따른 트윅 변환기의 다른 예를 나타낸 도면이다.
도 3을 참조하면, 일 실시예에 따른 트윅 변환기(300)는 제1 변환부(310), 제2 변환부(320), 제3 변환부(330), 제4 변환부(340) 및 제5 변환부(350)를 포함할 수 있다.
도 3에 도시된 예에서, 제1 변환부(310), 제2 변환부(320) 및 제 3 변환부(330)는 도 2에 도시된 제1 변환부(210), 제2 변환부(220) 및 제3 변환부(230)와 동일한 구성이므로, 이에 대한 중복적인 설명은 생략한다.
제4 변환부(320)는 제2 변환부(320)가 참조하는 키 테이블과 상이한 키 테이블을 참조하여, 제1 변환부(310)에 의해 출력되는 L비트 길이의 d개의 비트 열 각각을 m 비트 길이의 d 개의 비트 열로 변환할 수 있다. 이때, 제4 변환부(340)가 참조하는 키 테이블은 제3 변환부(330)가 참조하는 키 테이블의 생성을 위해 이용된 시드 값과 동일한 시드 값을 이용하여 키 테이블 생성부(110)에 의해 생성될 수 있다.
한편, 제5 변환부(350)는 제4 변환부(340)에 의해 출력되는 m비트 길이의 d개의 비트 열을 제3 변환부(330)에 의해 생성되는 비밀 값 1과 상이한 비밀 값 2로 변환할 수 있다.
구체적으로, 제5 변환부(350)는 제4 변환부(340)에서 출력되는 m비트 길이의 d개의 비트 열을 서로 연결하여 m×d 비트 길이의 비트 열을 생성하고, 생성된 m×d 비트 길이의 비트 열을 제3 변환 함수를 이용하여 비밀 값으로 변환할 수 있다.
이때, 제5 변환부(350)는 제3 변환부(330)에 의해 이용되는 제2 변환 함수와 동일한 변환 함수를 제3 변환 함수로 이용할 수 있으나, 반드시 이에 한정되는 것은 아니며, 입력 값을 특정한 길이를 가진 임의의 비트 열로 변환할 수 있는 공지된 다양한 함수를 제3 변환 함수로 이용할 수 있다.
도 4는 일 실시예에 따른 트윅 변환기의 또 다른 예를 나타낸 도면이다.
도 4를 참조하면, 일 실시예에 따른 트윅 변환기(400)는 제1 변환부(410), 제2 변환부(420), 제3 변환부(430) 및 제4 변환부(440)를 포함할 수 있다.
도 4에 도시된 예에서, 제1 변환부(410), 제2 변환부(420) 및 제3 변환부(430)는 도 2에 도시된 제1 변환부(210), 제2 변환부(220) 및 제3 변환부(230)와 동일한 구성이므로, 이에 대한 중복적인 설명은 생략한다.
제4 변환부(440)는 제2 변환부(420)에 의해 출력되는 m비트 길이의 d개의 비트 열을 제3 변환부(430)에 의해 생성되는 비밀 값 1과 상이한 비밀 값 2로 변환할 수 있다.
구체적으로, 제4 변환부(440)는 제2 변환부(420)에서 출력되는 m비트 길이의 d개의 비트 열을 서로 연결하여 m×d 비트 길이의 비트 열을 생성하고, 생성된 m×d 비트 길이의 비트 열을 제3 변환부(430)에 의해 이용되는 제2 변환 함수와 상이한 변환 함수를 이용하여 비밀 값으로 변환할 수 있다.
이때, 제4 변환부(440)에 의해 이용되는 변환 함수는 예를 들어, AES알고리즘, 해시 함수 등일 수 있으나, 입력 값을 특정한 길이를 가진 임의의 비트 열로 변환할 수 있다면 반드시 특정한 함수로 한정되는 것은 아니다.
다시 도 1을 참조하면, 암복호화부(130)는 비밀 값 생성부(120)에 의해 생성된 하나 이상의 비밀 값을 이용하여 암호화 또는 복호화를 수행한다.
일 실시예에 따르면, 암복호화부(130)는 암호화 또는 복호화 대상인 입력 데이터와 비밀 값 생성부(120)에 의해 생성된 하나 이상의 비밀 값을 입력 받아 입력 데이터에 대한 암호화 또는 복호화를 수행할 수 있다.
구체적으로, 도 5는 일 실시예에 따른 암복호화 구조의 일 예를 나타낸 도면이다.
도 5를 참조하면, 암복호화부(130)는 비밀 값 생성부(120)에 의해 생성된 비밀 값 1과 입력 데이터에 기초한 제1 연산(131), 제1 연산(131)의 결과 값에 기초한 치환 함수(132) 및 비밀 값 생성부(120)에 의해 생성된 비밀 값 2와 치환 함수(132)의 결과 값에 기초한 제2 연산(133)을 이용하여 입력 데이터에 대한 암호화 또는 복호화를 수행할 수 있다.
이때, 일 실시예에 따르면, 제1 연산(131)은 비밀 값 1과 입력 데이터 사이의 배타적 논리합(exclusive OR) 연산이고, 제2 연산(133)은 치환 함수(132)의 결과 값과 비밀 값 2 사이의 배타적 논리합 연산일 수 있다. 그러나, 제1 연산(131) 및 제2 연산(133)을 위해 배타적 논리합 연산 외에도 다양한 논리 연산 또는 산술 연산이 이용될 수 있다.
한편, 제1 연산(131)과 제2 연산(133) 각각을 위해 입력되는 비밀 값 1과 비밀 값 2는 동일 또는 상이한 값일 수 있다. 구체적으로, 비밀 값 생성부(120)는 예를 들어, 도 2에 도시된 예와 같이 제1 시드 값으로부터 생성된 키 테이블이 적용된 트윅 변환기(200)를 이용하여 트윅 값으로부터 하나의 비밀 값을 생성할 수 있으며, 암복호화부(130)는 생성된 비밀 값을 비밀 값 1 및 비밀 값 2로 이용할 수 있다.
다른 예로, 비밀 값 생성부(120)는 도 2에 도시된 트윅 변환기(200)와 동일한 구조를 가지되, 각각 제1 시드 값으로부터 생성된 상이한 키 테이블이 적용된 2 개의 트윅 변환기를 이용하여 트윅 값으로부터 상이한 두 개의 비밀 값을 생성할 수 있다. 이 경우, 암복호화부(130)는 생성된 두 개의 비밀 값 중 하나를 비밀 값 1로 이용하고, 나머지 하나를 비밀 값 2로 이용할 수 있다.
또 다른 예로, 비밀 값 생성부(120)는 예를 들어, 도 3 또는 도 4에 도시된 트윅 변환기(300, 400)를 이용하여 트윅 값으로부터 상이한 두 개의 비밀 값을 생성할 수 있으며, 암복호화부(130)는 생성된 두 개의 비밀 값 중 하나를 비밀 값 1로 이용하고, 나머지 하나를 비밀 값 2로 이용할 수 있다.
한편, 일 실시예에 따르면, 치환 함수(132)는 예를 들어, 해시 함수와 같이 별도의 암호 키를 입력 값으로 요구하지 않는 비 암호키 기반의 치환 함수 또는 예를 들어, 블록 암호 알고리즘(예를 들어, AES 알고리즘)과 같이 별도의 암호 키를 입력 값으로 요구하는 암호키 기반의 치환 함수일 수 있다. 그러나, 치환 함수(132)는 상술한 예 외에도 일방향성을 가지는 공지된 다양한 형태의 치환 함수일 수 있다.
도 6은 일 실시예에 따른 암복호화 구조의 다른 예를 나타낸 도면이다.
도 6에 도시된 예와 같이 치환 함수로서 블록 암호 알고리즘(134)과 같은 암호 키 기반의 치환 함수가 이용되는 경우, 암복호화부(130)는 비밀 값 생성부(120)에 의해 생성된 추가적인 비밀 값(즉, 비밀 값 3)을 블록 암호 알고리즘(134)의 암호키로 이용할 수 있다.
이때, 일 실시예에 따르면, 비밀 값 생성부(120)는 예를 들어, 도 2에 도시된 트윅 변환기(200)와 동일한 구조를 가지되 상술한 제1 시드 값과 상이한 제2 시드 값으로부터 생성된 키 테이블이 적용된 트윅 변환기를 이용하여 트윅 값으로부터 제3 비밀 값을 생성할 수 있다.
도 7은 일 실시예에 따른 암복호화 방법의 순서도이다.
도 7에 도시된 방법은 예를 들어, 도 1에 도시된 암복호화 장치(100)에 의해 수행될 수 있다.
도 7을 참조하면, 우선 암복호화 장치(100)는 시드 값에 기초하여 하나 이상의 키 테이블을 생성한다(710).
이때, 일 실시예에 따르면, 암복호화 장치(100)는 시드 값에 기초하여 하나의 키 테이블을 생성하거나, 상이한 복수의 키 테이블을 생성할 수 있다.
이후, 암복호화 장치(100)는 생성된 하나 이상의 키 테이블에 기초하여 트윅 값으로부터 하나 이상의 비밀 값을 생성한다(720).
이때, 일 실시예에 따르면, 암복호화 장치(100)는 생성된 하나 이상의 키 테이블이 적용된 하나 이상의 트윅 변환기를 이용하여 하나의 비밀 값을 생성하거나 상이한 복수의 비밀 값을 생성할 수 있다.
이후, 암복호화 장치(100)는 생성된 하나 이상의 비밀 값을 이용하여 암호화 또는 복호화를 수행한다(730).
이때, 일 실시예에 따르면, 암복호화 장치(100)는 하나 이상의 비밀 값 중 제1 비밀 값과 입력 데이터에 기초한 제1 연산, 제1 연산의 결과 값에 기초한 치환 함수, 및 제1 비밀 값과 치환 함수의 결과 값에 기초한 제2 연산을 이용하여 입력 데이터에 대한 암호화 또는 복호화를 수행할 수 있다.
다른 실시예에 따르면, 암복호화 장치(100)는 하나 이상의 비밀 값 중 제1 비밀 값과 입력 데이터에 기초한 제1 연산, 제1 연산의 결과 값에 기초한 치환 함수, 및 하나 이상의 비밀 값 중 제2 비밀 값과 치환 함수의 결과 값에 기초한 제2 연산을 이용하여 입력 데이터에 대한 암호화 또는 복호화를 수행할 수 있다.
한편, 도 7에서 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
도 8은 다른 실시예에 따른 암복호화 방법의 순서도이다.
도 8에 도시된 방법은 예를 들어, 도 1에 도시된 암복호화 장치(100)에 의해 수행될 수 있다.
도 8을 참조하면, 우선 암복호화 장치(100)는 제1 시드 값에 기초하여 하나 이상의 제1 키 테이블을 생성한다(810).
이때, 일 실시예에 따르면, 암복호화 장치(100)는 제1 시드 값에 기초하여 하나의 제1 키 테이블을 생성하거나, 상이한 복수의 제1 키 테이블을 생성할 수 있다.
이후, 암복호화 장치(100)는 제2 시드 값에 기초하여 하나 이상의 제2 키 테이블을 생성한다(820).
이때, 일 실시예에 따르면, 암복호화 장치(100)는 제2 시드 값에 기초하여 하나의 제2 키 테이블을 생성하거나, 상이한 복수의 제2 키 테이블을 생성할 수 있다.
이후, 암복호화 장치(100)는 하나 이상의 제1 키 테이블에 기초하여 트윅 값으로부터 하나 이상의 비밀 값을 생성한다(830).
이때, 일 실시예에 따르면, 암복호화 장치(100)는 생성된 하나 이상의 제1 키 테이블이 적용된 하나 이상의 트윅 변환기를 이용하여 하나의 비밀 값을 생성하거나 상이한 복수의 비밀 값을 생성할 수 있다.
이후, 암복호화 장치(100)는 하나 이상의 제2 키 테이블에 기초하여 트윅 값으로부터 비밀 값을 생성한다(840).
이때, 일 실시예에 따르면, 암복호화 장치(100)는 하나 이상의 제2 키 테이블이 적용된 트윅 변환기를 이용하여 비밀 값을 생성할 수 있다.
이후, 암복호화 장치(100)는 하나 이상의 제1 키 테이블에 기초하여 생성된 하나 이상의 비밀 값과 하나 이상의 제2 키 테이블에 기초하여 생성된 비밀 값을 이용하여 암호화 또는 복호화를 수행한다(850).
이때, 일 실시예에 따르면, 암복호화 장치(100)는 하나 이상의 제1 키 테이블에 기초하여 생성된 하나 이상의 비밀 값 중 제1 비밀 값과 입력 데이터에 기초한 제1 연산, 제1 연산의 결과 값에 기초한 치환 함수, 및 하나 이상의 제1 키 테이블에 기초하여 생성된 하나 이상의 비밀 값 중 제1 비밀 값 또는 제2 비밀 값과 치환 함수의 결과 값에 기초한 제2 연산을 이용하여 입력 데이터에 대한 암호화 또는 복호화를 수행할 수 있다. 또한, 치환 함수는 암호키 기반의 치환 함수일 수 있으며, 이 경우, 암복호화 장치(100)는 하나 이상의 제2 키 테이블에 기초하여 생성된 제3 비밀 값을 암호키 기반의 치환 함수의 암호키로 이용할 수 있다.
한편, 도 8에서 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
도 1은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 않은 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 본 발명의 실시예들에 따른 암복호화 장치(100)에 포함된 하나 이상의 컴포넌트일 수 있다. 컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(임의의 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
100: 암복호화 장치
110: 키 테이블 생성부
120: 비밀 값 생성부
130: 암복호화부
200, 300, 400: 트윅 변환기
210, 310, 410; 제1 변환부
220, 320, 420: 제2 변환부
230, 330, 430: 제3 변환부
340, 440: 제4 변환부
350: 제5 변환부

Claims (14)

  1. 제1 시드 값에 기초하여 하나 이상의 키 테이블을 생성하는 단계;
    상기 하나 이상의 키 테이블에 기초하여, 트윅(tweak) 값으로부터 하나 이상의 비밀 값을 생성하는 단계; 및
    상기 하나 이상의 비밀 값을 이용하여 암호화 또는 복호화를 수행하는 단계를 포함하는 방법.
  2. 청구항 1에 있어서,
    상기 수행하는 단계는, 상기 하나 이상의 비밀 값 중 제1 비밀 값과 입력 데이터에 기초한 제1 연산, 상기 제1 연산의 결과 값에 기초한 치환(permutation) 함수, 및 상기 하나 이상의 비밀 값 중 상기 제1 비밀 값 또는 제2 비밀 값과 상기 치환 함수의 결과 값에 기초한 제2 연산을 이용하여 상기 암호화 또는 복호화를 수행하는 방법.
  3. 청구항 2에 있어서,
    상기 제1 연산은, 상기 제1 비밀 값 및 상기 입력 데이터 사이의 배타적 논리합(exclusive OR) 연산이고,
    상기 제2 연산은, 상기 제1 비밀 값 또는 상기 제2 비밀 값과 상기 치환 함수의 결과 값 사이의 배타적 논리합 연산인 방법.
  4. 청구항 2에 있어서,
    상기 치환 함수는, 비 암호키 기반의 치환 함수인 방법.
  5. 청구항 2에 있어서,
    상기 치환 함수는, 암호키 기반의 치환 함수인 방법.
  6. 청구항 5에 있어서,
    제2 시드 값에 기초하여 하나 이상의 키 테이블을 생성하는 단계; 및
    상기 제2 시드 값에 기초하여 생성된 하나 이상의 키 테이블에 기초하여, 상기 트윅 값으로부터 제3 비밀 값을 생성하는 단계를 더 포함하고,
    상기 수행하는 단계는, 상기 제3 비밀 값을 상기 암호키 기반의 치환 함수의 암호키로 이용하는 방법.
  7. 청구항 1에 있어서,
    상기 하나 이상의 키 테이블을 생성하는 단계는, 상기 암호화 또는 상기 복호화에 대한 보안 강도 및 상기 트윅 값의 크기에 기초하여 상기 하나 이상의 키 테이블의 크기를 결정하는 단계; 및
    상기 결정된 크기에 기초하여 상기 하나 이상의 키 테이블을 생성하는 단계를 포함하는 방법.
  8. 제1 시드 값에 기초하여 하나 이상의 키 테이블을 생성하는 키 테이블 생성부;
    상기 하나 이상의 키 테이블에 기초하여, 트윅(tweak) 값으로부터 하나 이상의 비밀 값을 생성하는 비밀 값 생성부; 및
    상기 하나 이상의 비밀 값을 이용하여 암호화 또는 복호화를 수행하는 암복호화부를 포함하는 장치.
  9. 청구항 8에 있어서,
    상기 암복호화부는, 상기 하나 이상의 비밀 값 중 제1 비밀 값과 입력 데이터에 기초한 제1 연산, 상기 제1 연산의 결과 값에 기초한 치환(permutation)함수, 및 상기 하나 이상의 비밀 값 중 상기 제1 비밀 값 또는 제2 비밀 값과 상기 치환 함수의 결과 값에 기초한 제2 연산을 이용하여 상기 암호화 또는 복호화를 수행하는 장치.
  10. 청구항 9에 있어서,
    상기 제1 연산은, 상기 제1 비밀 값 및 상기 입력 데이터 사이의 배타적 논리합(exclusive OR) 연산이고,
    상기 제2 연산은, 상기 제1 비밀 값 또는 상기 제2 비밀 값과 상기 치환 함수의 결과 값 사이의 배타적 논리합 연산인 장치.
  11. 청구항 9에 있어서,
    상기 치환 함수는, 비 암호키 기반의 치환 함수인 장치.
  12. 청구항 9에 있어서,
    상기 치환 함수는, 암호키 기반의 치환 함수인 장치.
  13. 청구항 12에 있어서,
    상기 키 테이블 생성부는, 제2 시드 값에 기초하여 하나 이상의 키 테이블을 더 생성하고,
    상기 비밀 값 생성부는, 상기 제2 시드 값에 기초하여 생성된 하나 이상의 키 테이블에 기초하여, 상기 트윅 값으로부터 제3 비밀 값을 더 생성하고,
    상기 암복호화부는, 상기 제3 비밀 값을 상기 암호키 기반의 치환 함수의 암호키로 이용하는 장치.
  14. 청구항 8에 있어서,
    상기 키 테이블 생성부는, 상기 암호화 또는 상기 복호화에 대한 보안 강도 및 상기 트윅 값의 크기에 기초하여 상기 하나 이상의 키 테이블의 크기를 결정하고, 상기 결정된 크기에 기초하여 상기 하나 이상의 키 테이블을 생성하는 단계를 포함하는 장치.
KR1020190132656A 2019-10-24 2019-10-24 암복호화를 위한 장치 및 방법 KR20210048698A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190132656A KR20210048698A (ko) 2019-10-24 2019-10-24 암복호화를 위한 장치 및 방법
US16/664,836 US11522675B2 (en) 2019-10-24 2019-10-26 Apparatus and method for encryption and decryption based on tweak converter to which key table is applied
SG10201913117PA SG10201913117PA (en) 2019-10-24 2019-12-24 Apparatus and method for encryption and decryption

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190132656A KR20210048698A (ko) 2019-10-24 2019-10-24 암복호화를 위한 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20210048698A true KR20210048698A (ko) 2021-05-04

Family

ID=75586328

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190132656A KR20210048698A (ko) 2019-10-24 2019-10-24 암복호화를 위한 장치 및 방법

Country Status (3)

Country Link
US (1) US11522675B2 (ko)
KR (1) KR20210048698A (ko)
SG (1) SG10201913117PA (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101516574B1 (ko) 2014-02-21 2015-05-04 한국전자통신연구원 형태보존 암호화를 위한 가변길이 블록암호 장치 및 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3029381B2 (ja) * 1994-01-10 2000-04-04 富士通株式会社 データ変換装置
US9571270B2 (en) * 2013-11-29 2017-02-14 Portland State University Construction and uses of variable-input-length tweakable ciphers
KR101914453B1 (ko) * 2015-10-29 2018-11-02 삼성에스디에스 주식회사 암호화 장치 및 방법
US10346318B2 (en) * 2016-09-13 2019-07-09 Intel Corporation Multi-stage memory integrity method and apparatus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101516574B1 (ko) 2014-02-21 2015-05-04 한국전자통신연구원 형태보존 암호화를 위한 가변길이 블록암호 장치 및 방법

Also Published As

Publication number Publication date
US20210126770A1 (en) 2021-04-29
US11522675B2 (en) 2022-12-06
SG10201913117PA (en) 2021-05-28

Similar Documents

Publication Publication Date Title
JP6732141B2 (ja) 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム
JP6386198B1 (ja) 暗号化装置及び復号装置
KR20180046721A (ko) 암호화 장치 및 방법
US11436946B2 (en) Encryption device, encryption method, decryption device, and decryption method
KR102143525B1 (ko) 교집합 연산을 지원하는 함수 암호를 위한 방법 및 이를 이용한 장치
KR20200047002A (ko) 동형 암호를 이용한 암호문 비교 방법 및 이를 수행하기 위한 장치
CN102456108B (zh) 一种ibus拼音码表的加密方法
WO2019043921A1 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム
KR102565443B1 (ko) 암호 알고리즘 생성 장치 및 방법, 암호화 장치 및 방법
KR102565442B1 (ko) 암호 알고리즘 생성 장치 및 방법, 암호화 장치 및 방법
US20240048377A1 (en) Ciphertext conversion system, conversion key generation method, and non-transitory computer readable medium
KR101933649B1 (ko) 화이트박스 암호 알고리즘을 이용한 공개키 암호화를 위한 장치 및 방법
KR101790948B1 (ko) Drm 서비스 제공 장치 및 방법, drm 서비스를 이용한 콘텐츠 재생 장치 및 방법
KR102132685B1 (ko) 순서 노출 암호화를 위한 장치 및 방법
KR102281265B1 (ko) 시간 제약을 지원하는 교집합 연산을 위한 함수 암호 기술
KR20210048698A (ko) 암복호화를 위한 장치 및 방법
KR102284877B1 (ko) 효율적인 교집합 연산을 위한 함수 암호 기술
CN111953480B (zh) 密钥生成装置以及方法、运算密钥生成装置以及方法
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム
JP7317261B2 (ja) 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム
KR20200045820A (ko) 암호화 및 복호화를 위한 장치 및 방법
KR102626974B1 (ko) 화이트박스 암호의 비밀키 보호를 위한 방법 및 시스템
JP6949276B2 (ja) 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム
Cowlessur et al. Alphabetic cryptography: Securing communication over cloud platform
KR20220146115A (ko) 키 스트림 생성 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal