KR20230061028A - 부채널 공격을 방지하기 위한 암호문 비교 장치 및 방법 - Google Patents
부채널 공격을 방지하기 위한 암호문 비교 장치 및 방법 Download PDFInfo
- Publication number
- KR20230061028A KR20230061028A KR1020210145850A KR20210145850A KR20230061028A KR 20230061028 A KR20230061028 A KR 20230061028A KR 1020210145850 A KR1020210145850 A KR 1020210145850A KR 20210145850 A KR20210145850 A KR 20210145850A KR 20230061028 A KR20230061028 A KR 20230061028A
- Authority
- KR
- South Korea
- Prior art keywords
- value
- ciphertext
- result
- lookup table
- equation
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 239000000284 extract Substances 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 7
- 238000005538 encapsulation Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- MECHNRXZTMCUDQ-RKHKHRCZSA-N vitamin D2 Chemical compound C1(/[C@@H]2CC[C@@H]([C@]2(CCC1)C)[C@H](C)/C=C/[C@H](C)C(C)C)=C\C=C1\C[C@@H](O)CCC1=C MECHNRXZTMCUDQ-RKHKHRCZSA-N 0.000 description 1
- 235000001892 vitamin D2 Nutrition 0.000 description 1
- 239000011653 vitamin D2 Substances 0.000 description 1
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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
-
- 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/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1475—Passive attacks, e.g. eavesdropping or listening without modification of the traffic monitored
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3093—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
-
- 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/20—Manipulating the length of blocks of bits, e.g. padding or block truncation
-
- 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/26—Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
일 실시예에 따른 암호문 비교 방법은, 제1 암호문 및 제2 암호문을 각각 m(이때, m은 1<m인 자연수)개의 부분 비트 열로 분할하는 단계; 해밍 웨이트(Hamming weight)가 동일한 제1 값 및 제2 값을 포함하는 제1 룩업 테이블(lookup table)에서 상기 제1 값 및 상기 제2 값 중 상기 제1 암호문의 j-1(이때, j=i+1, i는 0≤i≤m-1인 자연수)번째 부분 비트 열 및 제2 암호문의 j-1번째 부분 비트 열에 대응하는 값을 j번째 중간 값으로 추출하는 단계; 상기 해밍 웨이트가 동일한 제3 값 및 제4 값을 포함하는 제2 룩업 테이블에서 상기 제3 값 및 상기 제4 값 중 상기 j번째 중간 값 및 j-1번째 결과 값에 대응하는 값을 j번째 결과 값으로 추출하는 단계; j≠m인 경우, 상기 j를 증가시키면서 상기 j번째 중간 값으로 추출하는 단계 및 상기 j번째 결과 값으로 추출하는 단계를 반복 수행하는 단계; 및 j=m인 경우, m번째 결과 값을 상기 제1 암호문과 상기 제2 암호문의 비교 결과 값으로 출력하는 단계를 포함한다.
Description
개시되는 실시예들은 암호화 기술과 관련된다.
NIST(National Institute of Standards and Technology)에서는 2016년도부터 양자 내성 암호(PQC, Post Quantum Cryptography) 기술에 대한 표준화 공모 사업을 진행하고 있으며, 2020년 3라운드 알고리즘으로 7개 최종 후보와 8개의 대안 후보를 발표하였다. 또한, 2라운드부터 알고리즘 선정 기준에 부채널 분석에 대한 안전성이 포함되면서 알고리즘 설계팀들은 단순 전력 분석(SPA, Simple Power Analysis)에 안전하도록 구현물을 업데이트하여 NIST에 제출했다. 그러나 단순 전력 분석에 안전하더라도 차분 전력 분석(DPA, Differential Power Analysis), 프로파일링 공격(profiling attack) 등 다양한 부채널 분석 기법을 이용한 공격 결과가 제시되고 있다. 최근 비교 연산 알고리즘을 사용하는 양자 내성 암호 키 캡슐화(key capsulation) 방식의 역캡슐화(decapsulation) 과정 중 암호문의 중간 비교 결과가 노출되는 것을 이용하여 비밀 키를 복구하는 부채널 공격 기법이 발표됐고, 이에 따라 안전한 암호문 비교 연산 알고리즘의 필요성이 대두됐다.
E. Alkim, et al., "FrodoKEM: Learning With Errors Key Encapsulation," NIST PQC Round 3 submission, Sep. 30, 2020.
R. Avanzi, et al., "CRYSTALS-Kyber: Algorithm Specifications And Supporting Documentation," NIST PQC Round 3 submission, Oct. 1, 2020.
A. Basso, et al., "SABER: Mod-LWR based KEM(Round 3 Submission)," NIST PQC Round 3 submission, Oct. 21, 2020.
개시되는 실시예들은 부채널 공격을 방지하기 위한 암호문 비교 장치 및 방법을 제공하기 위한 것이다.
일 실시예에 따른 암호문 비교 방법은, 제1 암호문 및 제2 암호문을 각각 m(이때, m은 1<m인 자연수)개의 부분 비트 열로 분할하는 단계; 해밍 웨이트(Hamming weight)가 동일한 제1 값 및 제2 값을 포함하는 제1 룩업 테이블(lookup table)에서 상기 제1 값 및 상기 제2 값 중 상기 제1 암호문의 j-1(이때, j=i+1, i는 0≤i≤m-1인 자연수)번째 부분 비트 열 및 제2 암호문의 j-1번째 부분 비트 열에 대응하는 값을 j번째 중간 값으로 추출하는 단계; 상기 해밍 웨이트가 동일한 제3 값 및 제4 값을 포함하는 제2 룩업 테이블에서 상기 제3 값 및 상기 제4 값 중 상기 j번째 중간 값 및 j-1번째 결과 값에 대응하는 값을 j번째 결과 값으로 추출하는 단계; j≠m인 경우, 상기 j를 증가시키면서 상기 j번째 중간 값으로 추출하는 단계 및 상기 j번째 결과 값으로 추출하는 단계를 반복 수행하는 단계; 및 j=m인 경우, m번째 결과 값을 상기 제1 암호문과 상기 제2 암호문의 비교 결과 값으로 출력하는 단계를 포함한다.
상기 분할하는 단계는, 사전 설정된 분할 단위에 기초하여, 상기 제1 암호문 및 상기 제2 암호문을 각각 m개의 부분 비트 열로 분할할 수 있다.
상기 j번째 중간 값으로 추출하는 단계는, 상기 제1 값 및 상기 제2 값 중 상기 제1 룩업 테이블 내 인덱스가 상기 제1 암호문의 j-1번째 부분 비트 열과 상기 제2 암호문의 j-1번째 부분 비트열을 연결한 비트 열과 동일한 값을 상기 j번째 중간 값으로 추출하고, 상기 j번째 결과 값으로 추출하는 단계는, 상기 제3 값 및 상기 제4 값 중 상기 제2 룩업 테이블 내 인덱스가 상기 j번째 중간 값 및 j-1번째 결과 값을 연결한 값과 동일한 값을 상기 j번째 결과 값으로 추출할 수 있다.
상기 제1 값 및 상기 제2 값은, 상기 제1 암호문의 j-1번째 부분 비트 열과 상기 제2 암호문의 j-1번째 부분 비트열의 동일성 여부를 나타내는 사전 설정된 값이고, 상기 제3 값 및 상기 제4 값은, 상기 제1 암호문과 상기 제2 암호문의 동일성 여부를 나타내는 사전 설정된 값일 수 있다.
상기 j번째 중간 값은, 아래의 수학식 1
[수학식 1]
(이때, Cj-1은 Cj-1∈[0,2n)을 만족하는 상기 제1 암호문의 j-1번째 부분 비트 열, C'j-1은 C'j-1∈[0,2n)을 만족하는 상기 제2 암호문의 j-1번째 부분 비트열, n은 사전 설정된 분할 단위, A1은 상기 제1 값, A2는 상기 제2 값, T1[Cj-1∥C'j-1]은 상기 제1 룩업 테이블에서 인덱스가 Cj-1∥C'j-1인 값)을 만족할 수 있다.
상기 j번째 결과 값은, 아래의 수학식 2 또는 3
[수학식 2]
[수학식 3]
(이때, rj는 상기 j번째 결과 값, r0=A3, tmpj는 상기 j번째 중간 값, A3은 상기 제3 값, A4는 상기 제4 값, T2[rj-1∥tmpj]은 상기 제2 룩업 테이블에서 인덱스가 rj-1∥tmpj 인 값)을 만족할 수 있다.
일 실시예에 따른 암호문 비교 장치는, 하나 이상의 명령어를 저장하는 메모리; 및 상기 하나 이상의 명령어를 실행하는 하나 이상의 프로세서를 포함하고, 상기 하나 이상의 프로세서는, 제1 암호문 및 제2 암호문을 각각 m(이때, m은 1<m인 자연수)개의 부분 비트 열로 분할하고, 해밍 웨이트(Hamming weight)가 동일한 제1 값 및 제2 값을 포함하는 제1 룩업 테이블(lookup table)에서 상기 제1 값 및 상기 제2 값 중 상기 제1 암호문의 j-1(이때, j=i+1, i는 0≤i≤m-1인 자연수)번째 부분 비트 열 및 제2 암호문의 j-1번째 부분 비트 열에 대응하는 값을 j번째 중간 값으로 추출하고, 상기 해밍 웨이트가 동일한 제3 값 및 제4 값을 포함하는 제2 룩업 테이블에서 상기 제3 값 및 상기 제4 값 중 상기 j번째 중간 값 및 j-1번째 결과 값에 대응하는 값을 j번째 결과 값으로 추출하고, j≠m인 경우, 상기 j를 증가시키면서 상기 j번째 중간 값으로 추출하는 단계 및 상기 j번째 결과 값으로 추출하는 단계를 반복 수행하고, j=m인 경우, m번째 결과 값을 상기 제1 암호문과 상기 제2 암호문의 비교 결과 값으로 출력한다.
상기 하나 이상의 프로세서는, 사전 설정된 분할 단위에 기초하여, 상기 제1 암호문 및 상기 제2 암호문을 각각 m개의 부분 비트 열로 분할할 수 있다.
상기 하나 이상의 프로세서는, 상기 제1 값 및 상기 제2 값 중 상기 제1 룩업 테이블 내 인덱스가 상기 제1 암호문의 j-1번째 부분 비트 열과 상기 제2 암호문의 j-1번째 부분 비트열을 연결한 비트 열과 동일한 값을 상기 j번째 중간 값으로 추출하고, 상기 제3 값 및 상기 제4 값 중 상기 제2 룩업 테이블 내 인덱스가 상기 j번째 중간 값 및 j-1번째 결과 값을 연결한 값과 동일한 값을 상기 j번째 결과 값으로 추출할 수 있다.
상기 제1 값 및 상기 제2 값은, 상기 제1 암호문의 j-1번째 부분 비트 열과 상기 제2 암호문의 j-1번째 부분 비트열의 동일성 여부를 나타내는 사전 설정된 값이고, 상기 제3 값 및 상기 제4 값은, 상기 제1 암호문과 상기 제2 암호문의 동일성 여부를 나타내는 사전 설정된 값일 수 있다.
상기 j번째 중간 값은, 아래의 수학식 1
[수학식 1]
(이때, Cj-1은 Cj-1∈[0,2n)을 만족하는 상기 제1 암호문의 j-1번째 부분 비트 열, C'j-1은 C'j-1∈[0,2n)을 만족하는 상기 제2 암호문의 j-1번째 부분 비트열, n은 사전 설정된 분할 단위, A1은 상기 제1 값, A2는 상기 제2 값, T1[Cj-1∥C'j-1]은 상기 제1 룩업 테이블에서 인덱스가 Cj-1∥C'j-1인 값)을 만족할 수 있다.
상기 j번째 결과 값은, 아래의 수학식 2 또는 3
[수학식 2]
[수학식 3]
(이때, rj는 상기 j번째 결과 값, r0=A3, tmpj는 상기 j번째 중간 값, A3은 상기 제3 값, A4는 상기 제4 값, T2[rj-1∥tmpj]은 상기 제2 룩업 테이블에서 인덱스가 rj-1∥tmpj 인 값)을 만족할 수 있다.
개시되는 실시예들에 따르면, 본 발명은 룩업 테이블에 기반하여 암호문 비교 연산에 대한 중간 값과 결과 값을 생성하되 생성되는 중간 값과 결과 값의 해밍 웨이트(Hamming weight)가 일정하도록 함으로써, 비교 연산에 대한 부채널 공격을 방어할 수 있게 된다.
도 1은 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
도 2는 일 실시예에 따른 암호문 비교 방법이 적용될 수 있는 키 캡슐화 메커니즘(Key Encapsulation Mechanism, KEM)의 캡슐화(key encapsulation) 알고리즘과 역캡슐화(key decapsulation) 알고리즘에 대한 예시적인 의사 코드(pseudo code)를 도시하고 있는 도면
도 3은 암호문 비교 연산을 위해 사용되는 알고리즘에 대한 예시적인 의사 코드를 도시하고 있는 도면
도 4는 일 실시예에 따른 암호문 비교 방법의 순서도
도 5는 일 실시예에 따른 암호문 비교 방법에 대한 예시적인 의사 코드를 도시하고 있는 도면
도 2는 일 실시예에 따른 암호문 비교 방법이 적용될 수 있는 키 캡슐화 메커니즘(Key Encapsulation Mechanism, KEM)의 캡슐화(key encapsulation) 알고리즘과 역캡슐화(key decapsulation) 알고리즘에 대한 예시적인 의사 코드(pseudo code)를 도시하고 있는 도면
도 3은 암호문 비교 연산을 위해 사용되는 알고리즘에 대한 예시적인 의사 코드를 도시하고 있는 도면
도 4는 일 실시예에 따른 암호문 비교 방법의 순서도
도 5는 일 실시예에 따른 암호문 비교 방법에 대한 예시적인 의사 코드를 도시하고 있는 도면
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다.
도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 컴퓨팅 장치(12)는 일 실시예에 따른 암호문 비교 방법을 수행하기 위한 장치에 포함된 하나 이상의 컴포넌트일 수 있다.
컴퓨팅 장치(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)와 연결될 수도 있다.
도 2는 일 실시예에 따른 암호문 비교 방법이 적용될 수 있는 키 캡슐화 메커니즘(Key Encapsulation Mechanism, KEM)의 캡슐화(key encapsulation) 알고리즘과 역캡슐화(key decapsulation) 알고리즘에 대한 예시적인 의사 코드(pseudo code)를 도시하고 있는 도면이다.
도 2에 도시된 예에서, KEM.CCA.Encaps(pk)과 KEM.CCA.Decaps(sk, pk, c)는 각각 캡슐화 알고리즘과 역캡슐화 알고리즘을 나타내며, PKE.CPA.Enc(pk, m; r) 및 PKE.CPA.Dec(sk, pk, c)은 선택 평문 공격(Chosen Plaintext Attack, CPA)에 안전한 공개키 기반 암호화 알고리즘과 복호화 알고리즘을 나타낸다. 또한, pk는 공개키, sk는 개인키, m은 암호화할 메시지를 나타내며, H1과 H2는 각각 해시함수(hash function)를 나타낸다.
한편, 도 2에 도시된 바와 같이 역캡슐화 알고리즘은 캡슐화 알고리즘을 통해 생성된 암호문 C를 개인키 sk를 이용하여 복호화한 후, 복호화를 통해 생성된 m'를 다시 공개키 pk로 암호화하여 암호문 C'를 생성한다. 이후, 역캡슐화 알고리즘은 C'와 C를 비교하여 동일한 경우, 정상적인 비밀 값을 출력하고(즉, s'=s), 상이한 경우, 랜덤한 값(즉, s'≠s)을 출력한다.
도 3은 암호문 비교 연산을 위해 사용되는 알고리즘에 대한 예시적인 의사 코드를 도시하고 있는 도면이다.
구체적으로, 도 3에 도시된 알고리즘은 예를 들어, 도 2에 도시된 역캡슐화 알고리즘의 4번째 줄에서 수행되는 암호문 C'와 C사이의 비교 연산과 같은 두 암호문 사이의 비교 연산을 수행하기 위한 것으로, 예를 들어, FrodoKEM, KYBER, SABER 등과 같은 격자 기반 키 캡슐화(lattice-based key encapsulation) 메커니즘에서 이용될 수 있다.
한편, 도 3에 도시된 예에서 은 XOR 연산, |은 OR 연산을 나타낸다. 또한, ≫는 부호 있는 오른쪽 시프트(signed right shift)을 나타낸다. 구체적으로, 도 3에 도시된 예에서, 5번째 줄에 기재되어 있는 (-r)≫n은 r을 음수로 변환한 후 -r의 각 비트를 n만큼 왼쪽에서 오른쪽으로 이동시키면서 왼쪽 자리의 비트를 1로 채우는 연산이며, 이를 통해 도 3에 도시된 알고리즘은 C'=C인 경우, r=0을 반환하며, C'≠C인 경우, r=-1을 반환하게 된다.
한편, 부채널 분석은 암호화 또는 복호화가 수행될 때 발생하는 전력, 전자파 등의 정보를 통해 비밀 값을 분석하는 기법이다. 이때, 소프트웨어 기반으로 알고리즘이 구현된 경량 디바이스 환경에서의 전력 소모는 중간 연산 값의 해밍 웨이트(Hamming Weight, HW)에 비례한다는 사실이 알려져 있다. 따라서 중간 연산 값이 x일 때 소비되는 전력량은 아래의 수학식 1과 같다.
[수학식 1]
P=ε·HW(x)+Pnoise
수학식 1에서, ε는 상수, Pnoise는 노이즈를 나타낸다.
즉, 중간 값 x의 HW와 소비전력 P는 선형성을 갖는다.
한편, 도 3에 도시된 알고리즘의 3번째 줄에 기재된 연산은 비교 대상인 두 암호문 C와 C'을 기 설정된 분할 단위 n으로 분할하여 XOR 연산(즉, Ci C'i)을 m번 수행함으로써 상수시간(constant time)에 처리되며, 이를 통해 시차 공격(Timing attack) 계열의 부채널 공격을 방지할 수 있다. 이때, 기 설정된 분할 단위 n는 예를 들어, 워드(word) 단위(즉, 32비트 컴퓨팅 환경의 경우 n=32, 64비트 컴퓨팅 환경의 경우 n=64)일 수 있으나 반드시 이에 한정되는 것은 아니며 실시예에 따라 다양하게 변경될 수 있다.
한편, 도 3에 도시된 알고리즘의 3번째 줄에 기재된 연산을 통해 생성되는 r은 C과 C'이 동일한 경우 0, 그렇지 않은 경우 0이 아닌 값으로 변경된다. 또한, 5번째 줄에 기재된 연산을 통해 알고리즘은 두 암호문이 동일한 경우 r=0을 출력하고, 그렇지 않은 경우 r=-1을 출력한다. 이때, -1은 16비트 컴퓨팅 환경에서 0xffff로 표현되며 HW는 16이 된다. 즉, -1일 때는 HW=16에 비례한 전력 소비가 발생하고 0인 경우 HW=0에 비례하는 전력 소비가 발생한다. 이처럼 HW의 차이가 클 때, 전력 소비 패턴을 분석하여 비밀 정보의 복구가 가능하게 된다.
도 4는 일 실시예에 따른 암호문 비교 방법의 순서도이고, 도 5는 일 실시예에 따른 암호문 비교 방법에 대한 예시적인 의사 코드를 도시하고 있는 도면이다.
도 4 및 도 5에 도시된 방법은 예를 들어, 도 1에 도시된 컴퓨팅 장치(12)에 의해 수행될 수 있다.
도 4 및 도 5를 참조하면, 우선 컴퓨팅 장치(12)는 비교 대상인 두 암호문 C와 C'를 각각 m개의 부분 비트 열로 분할한다(410).
이때, 일 실시예에 따르면, 컴퓨팅 장치(12)는 기 설정된 분할 단위 n에 기초하여 C와 C'를 각각 m개의 부분 비트 열로 분할할 수 있다.
구체적으로, 컴퓨팅 장치(12)는 최상위 비트(또는 최하위 비트)를 시작으로 암호문 C를 기 설정된 분할 단위 n만큼 순차적으로 분할함으로써 C를 길이가 n인 m개의 부분 비트 열 Cm-1, Cm-2, ..., C0 (이때, Ci∈[0,2n))로 분할할 수 있다. 또한, 컴퓨팅 장치(12)는 최상위 비트(또는 최하위 비트)를 시작으로 암호문 C'를 기 설정된 분할 단위 n만큼 순차적으로 분할함으로써 C'를 길이가 n인 m개의 부분 비트 열 C'm-1, C'm-2, ..., C'0 (이때, C'i∈[0,2n))로 분할할 수 있다. 이때, 컴퓨팅 장치(12)는 C와 C'를 각각 워드(word) 단위(즉, 32비트 컴퓨팅 환경의 경우 n=32, 64비트 컴퓨팅 환경의 경우 n=64) 로 분할할 수 있으나, n은 실시예에 따라 다양하게 변경될 수 있다.
이후, 컴퓨팅 장치(12)는 j=1으로 설정한 후, 제1 룩업 테이블(lookup table)에 포함된 제1 값 및 제2 값 중 Cj-1 및 C'j-1에 대응하는 값을 j번째 중간 값으로 추출한다(420).
이때, 제1 룩업 테이블에 포함된 제1 값과 제2 값은 Cj-1와 C'j-1의 동일성 여부를 나타내는 사전 설정된 값이며, i번째 중간 값은 아래의 수학식 2를 만족할 수 있다.
[수학식 2]
수학식 2에서, tmpj는 j번째 중간 값, T1[Cj-1∥C'j-1]은 제1 룩업 테이블에서 Cj-1와 C'j-1를 연결한(concatenate) 값(즉, Cj-1∥C'j-1)을 인덱스로 가지는 값을 나타낸다. 또한, A1과 A2는 각각 제1 값과 제2 값을 나타내며, 동일한 해밍 웨이트를 가진다(즉, HW(A1)=HW(A2)).
이후, 컴퓨팅 장치(12)는 제2 룩업 테이블에 포함된 제3 값 및 제4 값 중 j번째 중간 값과 j-1번째 결과 값에 대응하는 값을 j번째 결과 값으로 추출한다(430).
이때, 제2 룩업 테이블에 포함된 제3 값과 제4 값은 암호문 C와 C'의 동일성 여부를 나타내는 사전 설정된 값이며, j번째 결과 값은 아래의 수학식 3 또는 4를 만족할 수 있다.
[수학식 3]
[수학식 4]
수학식 3 및 4에서, rj는 j번째 결과 값, T2[rj-1∥tmpj]은 제2 룩업 테이블에서 rj-1와 tmpj를 연결한 값(즉, rj-1∥tmpj)을 인덱스로 가지는 값을 나타낸다. 또한, A3와 A4는 각각 제3 값과 제4 값을 나타내며, 동일한 해밍 웨이트를 가진다(즉, HW(A3)=HW(A4)).
한편, 수학식 3 및 4에서, r0는 A3으로 사전 설정될 수 있다(즉, r0=A3).
이후, 컴퓨팅 장치(12)는 j=m을 만족하는지 여부를 판단한다(450).
이때, j≠m인 경우, 컴퓨팅 장치(12)는 j를 1만큼 증가시킨 후(460), 420 단계로 되돌아 간다.
반면, j=m인 경우, 컴퓨팅 장치(12)는 m번째 결과 값을 암호문 C와 C'에 대한 비교 결과 값으로 출력한다(470).
한편, 도 4에 도시된 순서도에서 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
Claims (12)
- 제1 암호문 및 제2 암호문을 각각 m(이때, m은 1<m인 자연수)개의 부분 비트 열로 분할하는 단계;
해밍 웨이트(Hamming weight)가 동일한 제1 값 및 제2 값을 포함하는 제1 룩업 테이블(lookup table)에서 상기 제1 값 및 상기 제2 값 중 상기 제1 암호문의 j-1(이때, j=i+1, i는 0≤i≤m-1인 자연수)번째 부분 비트 열 및 제2 암호문의 j-1번째 부분 비트 열에 대응하는 값을 j번째 중간 값으로 추출하는 단계;
상기 해밍 웨이트가 동일한 제3 값 및 제4 값을 포함하는 제2 룩업 테이블에서 상기 제3 값 및 상기 제4 값 중 상기 j번째 중간 값 및 j-1번째 결과 값에 대응하는 값을 j번째 결과 값으로 추출하는 단계;
j≠m인 경우, 상기 j를 증가시키면서 상기 j번째 중간 값으로 추출하는 단계 및 상기 j번째 결과 값으로 추출하는 단계를 반복 수행하는 단계; 및
j=m인 경우, m번째 결과 값을 상기 제1 암호문과 상기 제2 암호문의 비교 결과 값으로 출력하는 단계를 포함하는, 암호문 비교 방법.
- 청구항 1에 있어서,
상기 분할하는 단계는, 사전 설정된 분할 단위에 기초하여, 상기 제1 암호문 및 상기 제2 암호문을 각각 m개의 부분 비트 열로 분할하는, 암호문 비교 방법.
- 청구항 1에 있어서,
상기 j번째 중간 값으로 추출하는 단계는, 상기 제1 값 및 상기 제2 값 중 상기 제1 룩업 테이블 내 인덱스가 상기 제1 암호문의 j-1번째 부분 비트 열과 상기 제2 암호문의 j-1번째 부분 비트열을 연결한 비트 열과 동일한 값을 상기 j번째 중간 값으로 추출하고,
상기 j번째 결과 값으로 추출하는 단계는, 상기 제3 값 및 상기 제4 값 중 상기 제2 룩업 테이블 내 인덱스가 상기 j번째 중간 값 및 j-1번째 결과 값을 연결한 값과 동일한 값을 상기 j번째 결과 값으로 추출하는, 암호문 비교 방법.
- 청구항 1에 있어서,
상기 제1 값 및 상기 제2 값은, 상기 제1 암호문의 j-1번째 부분 비트 열과 상기 제2 암호문의 j-1번째 부분 비트열의 동일성 여부를 나타내는 사전 설정된 값이고,
상기 제3 값 및 상기 제4 값은, 상기 제1 암호문과 상기 제2 암호문의 동일성 여부를 나타내는 사전 설정된 값인, 암호문 비교 방법.
- 하나 이상의 명령어를 저장하는 메모리; 및
상기 하나 이상의 명령어를 실행하는 하나 이상의 프로세서를 포함하고,
상기 하나 이상의 프로세서는,
제1 암호문 및 제2 암호문을 각각 m(이때, m은 1<m인 자연수)개의 부분 비트 열로 분할하고,
해밍 웨이트(Hamming weight)가 동일한 제1 값 및 제2 값을 포함하는 제1 룩업 테이블(lookup table)에서 상기 제1 값 및 상기 제2 값 중 상기 제1 암호문의 j-1(이때, j=i+1, i는 0≤i≤m-1인 자연수)번째 부분 비트 열 및 제2 암호문의 j-1번째 부분 비트 열에 대응하는 값을 j번째 중간 값으로 추출하고,
상기 해밍 웨이트가 동일한 제3 값 및 제4 값을 포함하는 제2 룩업 테이블에서 상기 제3 값 및 상기 제4 값 중 상기 j번째 중간 값 및 j-1번째 결과 값에 대응하는 값을 j번째 결과 값으로 추출하고,
j≠m인 경우, 상기 j를 증가시키면서 상기 j번째 중간 값으로 추출하는 단계 및 상기 j번째 결과 값으로 추출하는 단계를 반복 수행하고,
j=m인 경우, m번째 결과 값을 상기 제1 암호문과 상기 제2 암호문의 비교 결과 값으로 출력하는, 암호문 비교 장치.
- 청구항 7에 있어서,
상기 하나 이상의 프로세서는, 사전 설정된 분할 단위에 기초하여, 상기 제1 암호문 및 상기 제2 암호문을 각각 m개의 부분 비트 열로 분할하는, 암호문 비교 장치.
- 청구항 7에 있어서,
상기 하나 이상의 프로세서는,
상기 제1 값 및 상기 제2 값 중 상기 제1 룩업 테이블 내 인덱스가 상기 제1 암호문의 j-1번째 부분 비트 열과 상기 제2 암호문의 j-1번째 부분 비트열을 연결한 비트 열과 동일한 값을 상기 j번째 중간 값으로 추출하고,
상기 제3 값 및 상기 제4 값 중 상기 제2 룩업 테이블 내 인덱스가 상기 j번째 중간 값 및 j-1번째 결과 값을 연결한 값과 동일한 값을 상기 j번째 결과 값으로 추출하는, 암호문 비교 장치.
- 청구항 7에 있어서,
상기 제1 값 및 상기 제2 값은, 상기 제1 암호문의 j-1번째 부분 비트 열과 상기 제2 암호문의 j-1번째 부분 비트열의 동일성 여부를 나타내는 사전 설정된 값이고,
상기 제3 값 및 상기 제4 값은, 상기 제1 암호문과 상기 제2 암호문의 동일성 여부를 나타내는 사전 설정된 값인, 암호문 비교 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210145850A KR20230061028A (ko) | 2021-10-28 | 2021-10-28 | 부채널 공격을 방지하기 위한 암호문 비교 장치 및 방법 |
PCT/KR2022/016659 WO2023075490A1 (en) | 2021-10-28 | 2022-10-28 | Apparatus and method for ciphertext comparison capable of preventing side channel attack |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210145850A KR20230061028A (ko) | 2021-10-28 | 2021-10-28 | 부채널 공격을 방지하기 위한 암호문 비교 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230061028A true KR20230061028A (ko) | 2023-05-08 |
Family
ID=86159627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210145850A KR20230061028A (ko) | 2021-10-28 | 2021-10-28 | 부채널 공격을 방지하기 위한 암호문 비교 장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20230061028A (ko) |
WO (1) | WO2023075490A1 (ko) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7865917B2 (en) * | 2004-12-17 | 2011-01-04 | Martin E Hellman | Security enhanced tiered subscription broadcast system |
KR102411883B1 (ko) * | 2018-01-11 | 2022-06-22 | 삼성전자주식회사 | 전자 장치, 서버 및 그 제어 방법 |
KR102550812B1 (ko) * | 2018-10-26 | 2023-07-03 | 삼성에스디에스 주식회사 | 동형 암호를 이용한 암호문 비교 방법 및 이를 수행하기 위한 장치 |
KR102192594B1 (ko) * | 2019-01-18 | 2020-12-17 | 세종대학교산학협력단 | 신뢰기관이 없는 다중 클라이언트 환경의 순서 노출 암호화를 위한 장치 및 방법 |
-
2021
- 2021-10-28 KR KR1020210145850A patent/KR20230061028A/ko active Search and Examination
-
2022
- 2022-10-28 WO PCT/KR2022/016659 patent/WO2023075490A1/en active Application Filing
Non-Patent Citations (3)
Title |
---|
A. Basso, et al., "SABER: Mod-LWR based KEM(Round 3 Submission)," NIST PQC Round 3 submission, Oct. 21, 2020. |
E. Alkim, et al., "FrodoKEM: Learning With Errors Key Encapsulation," NIST PQC Round 3 submission, Sep. 30, 2020. |
R. Avanzi, et al., "CRYSTALS-Kyber: Algorithm Specifications And Supporting Documentation," NIST PQC Round 3 submission, Oct. 1, 2020. |
Also Published As
Publication number | Publication date |
---|---|
WO2023075490A1 (en) | 2023-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108463968B (zh) | 可变长度数据的快速格式保留加密 | |
US20120124366A1 (en) | System and method for a derivation function for key per page | |
KR102550812B1 (ko) | 동형 암호를 이용한 암호문 비교 방법 및 이를 수행하기 위한 장치 | |
JP6346942B2 (ja) | パスワードへの攻撃を阻害すること | |
CN112152786A (zh) | 无签名扩展的快速xmss签名验证和临时数采样过程 | |
JP2011164607A (ja) | シンボルシーケンスの編集距離のプライバシーを保護した計算の方法およびシステム | |
EP2991264B1 (en) | Encrypted text matching system, method and program | |
JP6044738B2 (ja) | 情報処理装置、プログラム及び記憶媒体 | |
EP3667647A1 (en) | Encryption device, encryption method, decryption device, and decryption method | |
Zhdanov et al. | Block symmetric cryptographic algorithm based on principles of variable block length and many-valued logic | |
CN114154174A (zh) | 后量子签名设施的状态同步 | |
US20220311596A1 (en) | A computer-implemented method of performing feistel-network-based block-cipher encryption of plaintext | |
WO2019043921A1 (ja) | 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム | |
EP2991265B1 (en) | Encrypted text matching system, method and program | |
US7809130B1 (en) | Password recovery system and method | |
US7289629B2 (en) | Primitives for fast secure hash functions and stream ciphers | |
WO2016063512A1 (ja) | Macタグリスト生成装置、macタグリスト検証装置、macタグリスト生成方法、macタグリスト検証方法およびプログラム記録媒体 | |
JP6844696B2 (ja) | 認証タグ生成装置、認証タグ検証装置、方法及びプログラム | |
KR102132685B1 (ko) | 순서 노출 암호화를 위한 장치 및 방법 | |
EP2991266B1 (en) | Encrypted text matching system, method, and computer readable medium | |
JP2009169316A (ja) | ハッシュ関数演算装置及び署名装置及びプログラム及びハッシュ関数演算方法 | |
Shahapure et al. | Variation and security enhancement of block ciphers by embedding | |
KR20230061028A (ko) | 부채널 공격을 방지하기 위한 암호문 비교 장치 및 방법 | |
CN111447072B (zh) | 用于生成数据等价零知识证明的方法、设备及存储介质 | |
US7505586B2 (en) | Method for computer-based encryption and decryption of data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |