KR20230061028A - 부채널 공격을 방지하기 위한 암호문 비교 장치 및 방법 - Google Patents

부채널 공격을 방지하기 위한 암호문 비교 장치 및 방법 Download PDF

Info

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
Application number
KR1020210145850A
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 KR1020210145850A priority Critical patent/KR20230061028A/ko
Priority to PCT/KR2022/016659 priority patent/WO2023075490A1/en
Publication of KR20230061028A publication Critical patent/KR20230061028A/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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)
    • 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
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1475Passive attacks, e.g. eavesdropping or listening without modification of the traffic monitored
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • 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/20Manipulating the length of blocks of bits, e.g. padding or block truncation
    • 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/26Testing 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

부채널 공격을 방지하기 위한 암호문 비교 장치 및 방법{APPARATUS AND METHOD FOR CIPHERTEXT COMPARISON CAPABLE OF PREVENTING SIDE CHANNEL ATTACK}
개시되는 실시예들은 암호화 기술과 관련된다.
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]
Figure pat00001
(이때, 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]
Figure pat00002
[수학식 3]
Figure pat00003
(이때, 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]
Figure pat00004
(이때, 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]
Figure pat00005
[수학식 3]
Figure pat00006
(이때, 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는 일 실시예에 따른 암호문 비교 방법에 대한 예시적인 의사 코드를 도시하고 있는 도면
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 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에 도시된 예에서
Figure pat00007
은 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
Figure pat00008
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]
Figure pat00009
수학식 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]
Figure pat00010
[수학식 4]
Figure pat00011
수학식 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: 네트워크 통신 인터페이스

Claims (12)

  1. 제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 암호문의 비교 결과 값으로 출력하는 단계를 포함하는, 암호문 비교 방법.
  2. 청구항 1에 있어서,
    상기 분할하는 단계는, 사전 설정된 분할 단위에 기초하여, 상기 제1 암호문 및 상기 제2 암호문을 각각 m개의 부분 비트 열로 분할하는, 암호문 비교 방법.
  3. 청구항 1에 있어서,
    상기 j번째 중간 값으로 추출하는 단계는, 상기 제1 값 및 상기 제2 값 중 상기 제1 룩업 테이블 내 인덱스가 상기 제1 암호문의 j-1번째 부분 비트 열과 상기 제2 암호문의 j-1번째 부분 비트열을 연결한 비트 열과 동일한 값을 상기 j번째 중간 값으로 추출하고,
    상기 j번째 결과 값으로 추출하는 단계는, 상기 제3 값 및 상기 제4 값 중 상기 제2 룩업 테이블 내 인덱스가 상기 j번째 중간 값 및 j-1번째 결과 값을 연결한 값과 동일한 값을 상기 j번째 결과 값으로 추출하는, 암호문 비교 방법.
  4. 청구항 1에 있어서,
    상기 제1 값 및 상기 제2 값은, 상기 제1 암호문의 j-1번째 부분 비트 열과 상기 제2 암호문의 j-1번째 부분 비트열의 동일성 여부를 나타내는 사전 설정된 값이고,
    상기 제3 값 및 상기 제4 값은, 상기 제1 암호문과 상기 제2 암호문의 동일성 여부를 나타내는 사전 설정된 값인, 암호문 비교 방법.
  5. 청구항 1에 있어서,
    상기 j번째 중간 값은, 아래의 수학식 1
    [수학식 1]
    Figure pat00012

    (이때, 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인 값)
    을 만족하는, 암호문 비교 방법.
  6. 청구항 5에 있어서,
    상기 j번째 결과 값은, 아래의 수학식 2 또는 3
    [수학식 2]
    Figure pat00013

    [수학식 3]
    Figure pat00014

    (이때, rj는 상기 j번째 결과 값, r0=A3, tmpj는 상기 j번째 중간 값, A3은 상기 제3 값, A4는 상기 제4 값, T2[rj-1∥tmpj]은 상기 제2 룩업 테이블에서 인덱스가 rj-1∥tmpj 인 값)
    을 만족하는, 암호문 비교 방법.
  7. 하나 이상의 명령어를 저장하는 메모리; 및
    상기 하나 이상의 명령어를 실행하는 하나 이상의 프로세서를 포함하고,
    상기 하나 이상의 프로세서는,
    제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 암호문의 비교 결과 값으로 출력하는, 암호문 비교 장치.
  8. 청구항 7에 있어서,
    상기 하나 이상의 프로세서는, 사전 설정된 분할 단위에 기초하여, 상기 제1 암호문 및 상기 제2 암호문을 각각 m개의 부분 비트 열로 분할하는, 암호문 비교 장치.
  9. 청구항 7에 있어서,
    상기 하나 이상의 프로세서는,
    상기 제1 값 및 상기 제2 값 중 상기 제1 룩업 테이블 내 인덱스가 상기 제1 암호문의 j-1번째 부분 비트 열과 상기 제2 암호문의 j-1번째 부분 비트열을 연결한 비트 열과 동일한 값을 상기 j번째 중간 값으로 추출하고,
    상기 제3 값 및 상기 제4 값 중 상기 제2 룩업 테이블 내 인덱스가 상기 j번째 중간 값 및 j-1번째 결과 값을 연결한 값과 동일한 값을 상기 j번째 결과 값으로 추출하는, 암호문 비교 장치.
  10. 청구항 7에 있어서,
    상기 제1 값 및 상기 제2 값은, 상기 제1 암호문의 j-1번째 부분 비트 열과 상기 제2 암호문의 j-1번째 부분 비트열의 동일성 여부를 나타내는 사전 설정된 값이고,
    상기 제3 값 및 상기 제4 값은, 상기 제1 암호문과 상기 제2 암호문의 동일성 여부를 나타내는 사전 설정된 값인, 암호문 비교 장치.
  11. 청구항 7에 있어서,
    상기 j번째 중간 값은, 아래의 수학식 1
    [수학식 1]
    Figure pat00015

    (이때, 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인 값)
    을 만족하는, 암호문 비교 장치.
  12. 청구항 11에 있어서,
    상기 j번째 결과 값은, 아래의 수학식 2 또는 3
    [수학식 2]
    Figure pat00016

    [수학식 3]
    Figure pat00017

    (이때, rj는 상기 j번째 결과 값, r0=A3, tmpj는 상기 j번째 중간 값, A3은 상기 제3 값, A4는 상기 제4 값, T2[rj-1∥tmpj]은 상기 제2 룩업 테이블에서 인덱스가 rj-1∥tmpj 인 값)
    을 만족하는, 암호문 비교 장치.
KR1020210145850A 2021-10-28 2021-10-28 부채널 공격을 방지하기 위한 암호문 비교 장치 및 방법 KR20230061028A (ko)

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)

* Cited by examiner, † Cited by third party
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 세종대학교산학협력단 신뢰기관이 없는 다중 클라이언트 환경의 순서 노출 암호화를 위한 장치 및 방법

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
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