KR20220055079A - NTRU LPRime 알고리즘에 대한 부채널 공격을 방지하기 위한 장치 및 방법 - Google Patents

NTRU LPRime 알고리즘에 대한 부채널 공격을 방지하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR20220055079A
KR20220055079A KR1020200139186A KR20200139186A KR20220055079A KR 20220055079 A KR20220055079 A KR 20220055079A KR 1020200139186 A KR1020200139186 A KR 1020200139186A KR 20200139186 A KR20200139186 A KR 20200139186A KR 20220055079 A KR20220055079 A KR 20220055079A
Authority
KR
South Korea
Prior art keywords
order
position index
generating
index value
order table
Prior art date
Application number
KR1020200139186A
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 KR1020200139186A priority Critical patent/KR20220055079A/ko
Priority to US17/081,810 priority patent/US11853419B2/en
Publication of KR20220055079A publication Critical patent/KR20220055079A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • 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
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Storage Device Security (AREA)

Abstract

NTRU(Nth degree Truncated polynomial Ring Units) LPRime 알고리즘에 대한 부채널 공격을 방지하기 위한 장치 및 방법이 제공된다. 일 실시예에 따른 부채널 공격 방지 방법은, NTRU LPrime 알고리즘의 복호화 알고리즘을 통해 생성될 비밀 정보인 비트 열(bit string)의 각 비트 값에 대한 위치 인덱스 값을 포함하는 순서 테이블을 생성하는 단계; 임의의 수(random number)에 기초하여 상기 각 비트 값에 대한 위치 인덱스 값의 상기 순서 테이블 내 정렬 순서를 셔플링(shuffling)하는 단계; 상기 각 비트 값에 대한 위치 인덱스 값의 상기 순서 테이블 내 정렬 순서에 따라 상기 각 비트 값의 생성 순서를 결정하는 단계; 및 상기 복호화 알고리즘을 통해 상기 비밀 정보를 생성하되, 상기 결정된 생성 순서에 따라 상기 각 비트 값을 생성하여 상기 비밀 정보를 생성하는 단계를 포함한다.

Description

NTRU LPRime 알고리즘에 대한 부채널 공격을 방지하기 위한 장치 및 방법{APPARATUS AND METHOD FOR PREVENTING SIDE CHANNEL ATTACK FOR NTRU LPRime ALGORITHM}
개시되는 실시예들은 부채널 공격을 방지하기 위한 기술과 관련된다.
NIST(National Institute of Standards and Technology)에서는 2016년도부터 양자 내성 암호(PQC, Post Quantum Cryptography) 기술에 대한 표준화 공모 사업을 진행하고 있으며 2019년 1월 30일에 NTRU LPRime 알고리즘을 포함한 총 26개의 알고리즘이 2라운드 후보로 발표되었다.
2라운드 선정 기준에 부채널 분석에 대한 안전성이 포함되면서 부채널 분석 중에서 가장 잘 알려진 단순 전력 분석(SPA, simple power analysis)에 안전하도록 구현한 결과물이 NIST에 제출되었다. 그러나 단순 전력 분석에 안전하더라도 단 하나의 파형을 이용하여 비밀 정보를 도출하는 강력한 부채널 분석 기법인 단일 파형 공격(single trace attack)에는 여전히 취약점을 가지고 있으므로, 이에 대한 대응기법의 설계가 필요하다.
Daniel J. Bernstein, et al. "NTRU Prime: round 2 20190330"
개시되는 실시예들은 NTRU LPRime 알고리즘에 대한 부채널 공격을 방지하기 위한 장치 및 방법을 제공하기 위한 것이다.
일 실시예에 따른 부채널 공격 방지 방법은, NTRU (Nth degree Truncated polynomial Ring Units) LPrime 알고리즘의 복호화 알고리즘을 통해 생성될 비밀 정보인 비트 열(bit string)의 각 비트 값에 대한 위치 인덱스 값을 포함하는 순서 테이블을 생성하는 단계; 임의의 수(random number)에 기초하여 상기 각 비트 값에 대한 위치 인덱스 값의 상기 순서 테이블 내 정렬 순서를 셔플링(shuffling)하는 단계; 상기 각 비트 값에 대한 위치 인덱스 값의 상기 순서 테이블 내 정렬 순서에 따라 상기 각 비트 값의 생성 순서를 결정하는 단계; 및 상기 복호화 알고리즘을 통해 상기 비밀 정보를 생성하되, 상기 결정된 생성 순서에 따라 상기 각 비트 값을 생성하여 상기 비밀 정보를 생성하는 단계를 포함한다.
상기 셔플링하는 단계는, 상기 순서 테이블 내에 포함된 i(이때, i는 상기 정렬 순서로서 1≤i≤L-1인 정수, L은 상기 비트 열의 길이) 번째 위치 인덱스 값에 대한 임의의 수 Ri(이때, Ri는 0≤Ri인 정수)를 생성하는 단계; 상기 i 및 상기 임의의 수 Ri에 기초하여 상기 순서 테이블 내 j(이때, j는 0≤j≤i인 정수) 번째 위치 인덱스 값을 선택하는 단계; 및 상기 i 번째 위치 인덱스 값과 상기 j 번째 위치 인덱스 값의 상기 순서 테이블 내 정렬 순서를 교환(swap)하는 단계를 포함할 수 있다.
상기 순서 테이블을 생성하는 단계는, 상기 비트 열 내 대응되는 위치의 순서에 따라 상기 각 비트 값에 대한 위치 인덱스 값이 정렬된 순서 테이블을 생성할 수 있다.
상기 선택하는 단계는, 아래의 수학식 1
[수학식 1]
j=Ri mod (i+1)
에 기초하여 상기 j번째 위치 인덱스 값을 선택할 수 있다.
일 실시예에 따른 부채널 공격 방지 장치는, 하나 이상의 명령어를 저장하는 메모리; 및 상기 하나 이상의 명령어를 실행하는 하나 이상의 프로세서를 포함하고, 상기 하나 이상의 프로세서는, NTRU (Nth degree Truncated polynomial Ring Units) LPrime 알고리즘의 복호화 알고리즘을 통해 생성될 비밀 정보인 비트 열(bit string)의 각 비트 값에 대한 위치 인덱스 값을 포함하는 순서 테이블을 생성하는 단계; 임의의 수(random number)에 기초하여 상기 각 비트 값에 대한 위치 인덱스 값의 상기 순서 테이블 내 정렬 순서를 셔플링(shuffling)하는 단계; 상기 각 비트 값에 대한 위치 인덱스 값의 상기 순서 테이블 내 정렬 순서에 따라 상기 각 비트 값의 생성 순서를 결정하는 단계; 및 상기 복호화 알고리즘을 통해 상기 비밀 정보를 생성하되, 상기 결정된 생성 순서에 따라 상기 각 비트 값을 생성하여 상기 비밀 정보를 생성하는 단계를 수행할 수 있다.
상기 셔플링하는 단계는, 상기 순서 테이블 내에 포함된 i(이때, i는 상기 정렬 순서로서 1≤i≤L-1인 정수, L은 상기 비트 열의 길이) 번째 위치 인덱스 값에 대한 임의의 수 Ri(이때, Ri는 0≤Ri인 정수)를 생성하는 단계; 상기 i 및 상기 임의의 수 Ri에 기초하여 상기 순서 테이블 내 j(이때, j는 0≤j≤i인 정수) 번째 위치 인덱스 값을 선택하는 단계; 및 상기 i 번째 위치 인덱스 값과 상기 j 번째 위치 인덱스 값의 상기 순서 테이블 내 정렬 순서를 교환(swap)하는 단계를 포함할 수 있다.
상기 순서 테이블을 생성하는 단계는, 상기 비트 열 내 대응되는 위치의 순서에 따라 상기 각 비트 값에 대한 위치 인덱스 값이 정렬된 순서 테이블을 생성할 수 있다.
상기 선택하는 단계는, 아래의 수학식 1
[수학식 1]
j=Ri mod (i+1)
에 기초하여 상기 j번째 위치 인덱스 값을 선택할 수 있다.
개시되는 실시예들에 따르면, NTRU LPRime 알고리즘의 복호화 과정을 통해 생성되는 비밀 정보를 획득하기 위한 단일 파형 공격의 공격 복잡도를 높임으로써, 단일 파형 공격에 의한 비밀 정보 획득을 방지할 수 있다.
도 1은 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
도 2는 일 실시예에 따른 부채널 공격 방어 방법의 순서도
도 3은 일 실시예에 따른 셔플링 과정을 나타낸 도면
도 4는 NTRU LPRime 알고리즘의 디캡슐화(decapsulation) 알고리즘의 유사 코드(pseudo code)를 나타낸 도면
도 5는 도 4에 도시된 복호화 알고리즘의 수행을 위해 구현된 소스 코드를 도시한 도면
도 6는 도 5에 포함된 마스크 알고리즘의 수행을 위해 구현된 소스 코드를 도시한 도면
도 7은 일 실시예에 따른 부채널 공격 방어 방법이 적용되도록 수정된 복호화 알고리즘의 소스 코드를 도시한 도면
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(110)은 컴퓨팅 장치(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는 일 실시예에 따른 부채널 공격 방어 방법의 순서도이다.
도 2에 도시된 방법은 예를 들어, 도 1에 도시된 컴퓨팅 장치(12)에 의해 수행될 수 있다.
도 2를 참조하면, 우선 컴퓨팅 장치(12)는 NTRU (Nth degree Truncated polynomial Ring Units) LPrime 알고리즘의 복호화 알고리즘(이하, 복호화 알고리즘)을 통해 생성될 비밀 정보인 비트 열(bit string)의 각 비트 값에 대한 위치 인덱스 값을 포함하는 순서 테이블을 생성한다(210).
일 실시예에 따르면, 복호화 알고리즘을 통해 생성될 비밀 정보가 L(이때, L은 1보다 큰 정수) 비트의 비트 열인 경우, 비트 열의 구성하는 L개의 비트 값 각각의 위치 인덱스 값은 각 비트 값의 비트 열 내 위치를 나타내는 정보를 의미할 수 있다.
예를 들어, 비밀 정보가 4 비트의 비트 열 r=(r0,r1,r3,r4)∈{0,1}인 것으로 가정하면, 비트 열 r의 첫 번째 비트 값인 'r0'의 위치 인덱스 값은 '0', 두 번째 비트 값인 'r1'의 위치 인덱스 값은 '1', 세 번째 비트 값인 'r2'의 위치 인덱스 값은 '2', 네 번째 비트 값인 'r3'의 위치 인덱스 값은 '3'일 수 있다. 그러나, 위치 인덱스 값은 반드시 상술한 예에 한정되는 것은 아니며, 상술한 예 외에도 비트 열 내 특정 위치를 식별하기 위해 이용될 수 있는 다양한 값이 위치 인덱스 값으로 이용될 수 있다.
한편, 일 실시예에 따르면, 순서 테이블에 포함된 각 위치 인덱스 값은 비트 열 내 대응되는 위치의 순서대로 정렬될 수 있다. 구체적으로, 상술한 예와 같이 비밀 정보가 비트 열 r=(r0,r1,r3,r4)인 것으로 가정하면, 컴퓨팅 장치(12)는 예를 들어, 아래의 표 1과 같은 순서 테이블을 생성할 수 있다.
Order 0 1 2 3 4
Index 0 1 2 3 4
구체적으로, 표 1에 도시된 순서 테이블에서 'Index' 행에 기재된 값은 비트 열 r에 포함된 각 비트 값의 위치 인덱스 값을 나타내며, "Order' 행에 기재된 값은 각 위치 인덱스 값의 순서 테이블 내 정렬 순서를 나타내는 순서 인덱스 값을 나타낸다.
이후, 컴퓨팅 장치(12)는 임의의 수(random number)에 기초하여 순서 테이블에 포함된 각 위치 인덱스 값의 순서 테이블 내 정렬 순서를 셔플링(shuffling)한다(220).
이후, 컴퓨팅 장치(12)는 셔플링을 통해 결정된 순서 테이블 내 각 위치 인덱스 값의 정렬 순서에 따라 복호화 알고리즘을 통해 생성될 비밀 정보의 각 비트 값에 대한 생성 순서를 결정한다(230).
이후, 컴퓨팅 장치(12)는 복호화 알고리즘을 이용하여 비밀 정보를 생성하되, 230 단계에서 결정된 생성 순서에 따라 비밀 정보의 각 비트 값을 생성한다(240).
예를 들어, 셔플링을 통해 상술한 표 1의 순서 테이블에 포함된 위치 인덱스 값이 아래의 표 2에 도시된 순서 테이블과 같이 셔플링된 경우, 컴퓨팅 장치(12)는 r4, r1, r3, r2, r0의 순서대로 비밀 정보의 비트 값을 생성할 수 있다.
Order 0 1 2 3 4
Index 4 1 3 2 0
도 3은 일 실시예에 따른 셔플링 과정을 나타낸 도면이다.
도 3에 도시된 셔플링 과정은 예를 들어, 도 2에 도시된 220 단계에서 수행될 수 있다.
우선, 컴퓨팅 장치(12)는 순서 테이블에 포함된 각 위치 인덱스 값의 정렬 순서를 나타내는 순서 인덱스 값 i를 i=L-1로 초기화한다(310).
이후, 컴퓨팅 장치(12)는 임의의 수 Ri (이때, Ri는 0≤Ri인 정수)를 생성한다(320).
이후, 컴퓨팅 장치(12)는 순서 인덱스 값 i 및 임의의 수 Ri에 기초하여 순서 테이블 내 순서 인덱스 값이 j(이때, j는 0≤j≤i인 정수)인 위치 인덱스 값을 선택한다(330).
이때, 일 실시예에 따르면, 컴퓨팅 장치(12)는 아래의 수학식 1을 이용하여 순서 인덱스 값 j를 결정할 수 있다.
[수학식 1]
j=Ri mod (i +1)
이후, 컴퓨팅 장치(12)는 i 번째 위치 인덱스 값과 j 번째 위치 인덱스 값의 순서 테이블 내 정렬 순서를 교환(swap)한다(340).
예를 들어, 순서 테이블이 표 1과 동일하고, i=4, j=1인 것으로 가정하면 컴퓨팅 장치(12)는 순서 테이블 내 4번째 위치 인덱스 값인 '4'와 1번째 위치 인덱스 값인 '1'의 정렬 순서를 변경할 수 있으며, 이에 따라 표 1에 도시된 순서 테이블은 아래의 표 3과 같이 변경될 수 있다.
Order 0 1 2 3 4
Index 0 4 2 3 1
이후, 컴퓨팅 장치(12)는 순서 인덱스 값 i를 1만큼 감소시킨 후(350), i=0인지 여부를 판단한다(360).
이때, i>0인 경우, 컴퓨팅 장치(12)는 i=0을 만족할 때까지 310 내지 360 단계를 반복 수행하고, i=0인 경우, 셔플링을 종료한다.
도 4는 NTRU LPRime 알고리즘의 디캡슐화(decapsulation) 알고리즘의 유사 코드(pseudo code)를 나타낸 도면이다.
도 4에 도시된 유사 코드를 참조하면, 유사 코드의 5번째 줄과 6번째 줄에 기재된 과정은 복호화 알고리즘이 수행되는 과정이며, Right 함수는 양의 정수(positive integer) τ에 의해
Figure pat00001
(이때, q는 소수(prime number))로 사전 정의된 함수를 나타낸다.
한편, 도 5는 도 4에 도시된 복호화 알고리즘의 수행을 위해 구현된 소스 코드를 도시한 도면, 도 6은 도 5에 포함된 마스크 알고리즘의 수행을 위해 구현된 소스 코드를 도시한 도면이다.
도 5 및 도 6을 참조하면, r=(r0,r1,…,rL-1)∈{0,1}에 포함된 각 비트 ri(=r[i])를 마스크 알고리즘 'int16_negative_mask'의 입력으로 이용하여 생성된 출력 값을 -u라 할 때 L 비트의 비밀 정보 r'= r=(r'0,r'1,…,r'L-1)∈{0,1}에 포함되는 각 비트 값은 r'i=-(-u)이다.
한편, 도 5 및 도 6에 도시된 예에서, 단일 파형 공격에 의한 공격 위치가 마스크 알고리즘을 이용하여 비밀 정보 r'의 각 비트 값 r'i를 반환하는 위치이고, 전력 소비 모델이 해밍 웨이트(HW, Hamming weight) 정보에 의존한다고 가정하면, 중간 값이 x일 때 소비하는 전력량은 P=ε·HW(x)+Pnoise(이때, ε는 상수, Pnoise는 노이즈)이다. 즉, 중간 값의 HW값과 소비전력은 선형성을 갖는다.
즉, int16_negative_mask(r[i])=0xffff이면 r'i=1이고, int16_negative_mask(r[i])=0x0000이면 r'i=0이다. 따라서, r'i=1일 때 중간값 0xffff의 HW값인 16에 비례한 전력 소비가 발생하고, r'i=0일 때 중간값 0x0000의 HW값인 0에 비례하는 전력 소비가 발생하므로, 단일 파형 공격에 의해 비밀 정보 r'가 노출될 수 있다.
한편, 도 7은 일 실시예에 따른 부채널 공격 방어 방법이 적용되도록 수정된 복호화 알고리즘의 소스 코드를 도시한 도면이다.
구체적으로, 도 7에 도시된 소스 코드는 순서 테이블의 생성 및 셔플링 과정(710)이 수행되도록 도 5에 도시된 소스 코드를 수정한 소스 코드이다.
도 7에 도시된 소스 코드에 따르면, 순서 테이블의 생성 및 셔플링 과정(710)을 통해 생성된 순서 테이블에서 각 위치 인덱스 값의 정렬 순서에 따라 각 위치 인덱스 값에 대응되는 비밀 정보 r'의 비트 값이 생성되도록 int_negative_mask 연산 과정(720)이 수행된다.
즉, 도 7에 도시된 소스 코드에 따르면, int_negative_mask 연산 과정(620)에서 비밀 정보 r'의 각 비트 값은 서로 독립으로 생성되므로 단일 파형 공격을 통해 현재 생성된 비트 값이 0인지 1인지 여부를 알 수 있으나, 현재 생성된 비트 값이 r'의 비트 열 내 어떤 위치의 비트 값인지 알 수 없다. 따라서, 현재 생성된 비트 값이 r'의 비트 열 내 어떤 위치의 비트 값인지를 파악하려면 r'의 비트 열 내 각 비트 값의 생성 순서를 파악하기 위한 공격이 추가로 필요하므로 공격 복잡도가 높아지게 된다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스

Claims (8)

  1. NTRU (Nth degree Truncated polynomial Ring Units) LPrime 알고리즘의 복호화 알고리즘을 통해 생성될 비밀 정보인 비트 열(bit string)의 각 비트 값에 대한 위치 인덱스 값을 포함하는 순서 테이블을 생성하는 단계;
    임의의 수(random number)에 기초하여 상기 각 비트 값에 대한 위치 인덱스 값의 상기 순서 테이블 내 정렬 순서를 셔플링(shuffling)하는 단계;
    상기 각 비트 값에 대한 위치 인덱스 값의 상기 순서 테이블 내 정렬 순서에 따라 상기 각 비트 값의 생성 순서를 결정하는 단계; 및
    상기 복호화 알고리즘을 통해 상기 비밀 정보를 생성하되, 상기 결정된 생성 순서에 따라 상기 각 비트 값을 생성하여 상기 비밀 정보를 생성하는 단계를 포함하는 부채널 공격 방지 방법.
  2. 청구항 1에 있어서,
    상기 셔플링하는 단계는, 상기 순서 테이블 내에 포함된 i(이때, i는 상기 정렬 순서로서 1≤i≤L-1인 정수, L은 상기 비트 열의 길이) 번째 위치 인덱스 값에 대한 임의의 수 Ri(이때, Ri는 0≤Ri인 정수)를 생성하는 단계;
    상기 i 및 상기 임의의 수 Ri에 기초하여 상기 순서 테이블 내 j(이때, j는 0≤j≤i인 정수) 번째 위치 인덱스 값을 선택하는 단계; 및
    상기 i 번째 위치 인덱스 값과 상기 j 번째 위치 인덱스 값의 상기 순서 테이블 내 정렬 순서를 교환(swap)하는 단계를 포함하는 부채널 공격 방지 방법.
  3. 청구항 2에 있어서,
    상기 순서 테이블을 생성하는 단계는, 상기 비트 열 내 대응되는 위치의 순서에 따라 상기 각 비트 값에 대한 위치 인덱스 값이 정렬된 순서 테이블을 생성하는 부채널 공격 방지 방법.
  4. 청구항 2에 있어서,
    상기 선택하는 단계는, 아래의 수학식 1
    [수학식 1]
    j=Ri mod (i+1)
    에 기초하여 상기 j번째 위치 인덱스 값을 선택하는 부채널 공격 방지 방법.
  5. 하나 이상의 명령어를 저장하는 메모리; 및
    상기 하나 이상의 명령어를 실행하는 하나 이상의 프로세서를 포함하고,
    상기 하나 이상의 프로세서는,
    NTRU (Nth degree Truncated polynomial Ring Units) LPrime 알고리즘의 복호화 알고리즘을 통해 생성될 비밀 정보인 비트 열(bit string)의 각 비트 값에 대한 위치 인덱스 값을 포함하는 순서 테이블을 생성하는 단계;
    임의의 수(random number)에 기초하여 상기 각 비트 값에 대한 위치 인덱스 값의 상기 순서 테이블 내 정렬 순서를 셔플링(shuffling)하는 단계;
    상기 각 비트 값에 대한 위치 인덱스 값의 상기 순서 테이블 내 정렬 순서에 따라 상기 각 비트 값의 생성 순서를 결정하는 단계; 및
    상기 복호화 알고리즘을 통해 상기 비밀 정보를 생성하되, 상기 결정된 생성 순서에 따라 상기 각 비트 값을 생성하여 상기 비밀 정보를 생성하는 단계를 수행하는 부채널 공격 방지 장치.
  6. 청구항 5에 있어서,
    상기 셔플링하는 단계는, 상기 순서 테이블 내에 포함된 i(이때, i는 상기 정렬 순서로서 1≤i≤L-1인 정수, L은 상기 비트 열의 길이) 번째 위치 인덱스 값에 대한 임의의 수 Ri(이때, Ri는 0≤Ri인 정수)를 생성하는 단계;
    상기 i 및 상기 임의의 수 Ri에 기초하여 상기 순서 테이블 내 j(이때, j는 0≤j≤i인 정수) 번째 위치 인덱스 값을 선택하는 단계; 및
    상기 i 번째 위치 인덱스 값과 상기 j 번째 위치 인덱스 값의 상기 순서 테이블 내 정렬 순서를 교환(swap)하는 단계를 포함하는 부채널 공격 방지 장치.
  7. 청구항 6에 있어서,
    상기 순서 테이블을 생성하는 단계는, 상기 비트 열 내 대응되는 위치의 순서에 따라 상기 각 비트 값에 대한 위치 인덱스 값이 정렬된 순서 테이블을 생성하는 부채널 공격 방지 장치.
  8. 청구항 6에 있어서,
    상기 선택하는 단계는, 아래의 수학식 1
    [수학식 1]
    j=Ri mod (i+1)
    에 기초하여 상기 j번째 위치 인덱스 값을 선택하는 부채널 공격 방지 장치.
KR1020200139186A 2020-10-26 2020-10-26 NTRU LPRime 알고리즘에 대한 부채널 공격을 방지하기 위한 장치 및 방법 KR20220055079A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200139186A KR20220055079A (ko) 2020-10-26 2020-10-26 NTRU LPRime 알고리즘에 대한 부채널 공격을 방지하기 위한 장치 및 방법
US17/081,810 US11853419B2 (en) 2020-10-26 2021-02-01 Apparatus and method for preventing side channel attack for NTRU LPRime algorithm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200139186A KR20220055079A (ko) 2020-10-26 2020-10-26 NTRU LPRime 알고리즘에 대한 부채널 공격을 방지하기 위한 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20220055079A true KR20220055079A (ko) 2022-05-03

Family

ID=81257407

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200139186A KR20220055079A (ko) 2020-10-26 2020-10-26 NTRU LPRime 알고리즘에 대한 부채널 공격을 방지하기 위한 장치 및 방법

Country Status (2)

Country Link
US (1) US11853419B2 (ko)
KR (1) KR20220055079A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020134618A1 (de) * 2020-12-22 2022-06-23 Infineon Technologies Ag Sicherheits-controller und verfahren zur verarbeitung von datenelementen eines datenfeldes

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0013398D0 (en) * 2000-06-01 2000-07-26 Tao Group Ltd A method of protecting a cryptosystem from a multiple transmission attack
US10795858B1 (en) * 2014-02-18 2020-10-06 Erich Schmitt Universal abstraction and de-abstraction of a digital data stream
KR101914028B1 (ko) * 2017-04-28 2018-11-01 삼성에스디에스 주식회사 부채널 공격에 안전한 연산 장치 및 방법
US10915464B2 (en) * 2017-09-12 2021-02-09 Ememory Technology Inc. Security system using random number bit string
EP3474484A1 (en) * 2017-10-17 2019-04-24 Koninklijke Philips N.V. Cryptographic device with updatable shared matrix
DE102018122278A1 (de) * 2018-09-12 2020-03-12 Infineon Technologies Ag Ausführen einer kryptographischen Operation
DE102019108095A1 (de) * 2019-03-28 2020-10-01 Infineon Technologies Ag Ausführen einer kryptografischen Operation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Daniel J. Bernstein, et al. "NTRU Prime: round 2 20190330"

Also Published As

Publication number Publication date
US20220129547A1 (en) 2022-04-28
US11853419B2 (en) 2023-12-26

Similar Documents

Publication Publication Date Title
US11362835B2 (en) Efficient post-quantum anonymous attestation with signature-based join protocol and unlimited signatures
US10360390B2 (en) Oblivious order-preserving encryption
Volpano et al. Verifying secrets and relative secrecy
US10715320B2 (en) Password generation with key and derivation parameter
RU2661308C2 (ru) Вычислительное устройство, конфигурируемое с помощью табличной сети
JP5851074B2 (ja) 関数の計算のためのルックアップテーブルを記憶した計算装置
EP3166041A1 (en) Format preserving masking system and method
US20130232323A1 (en) Obfuscation of control flow of software
JPWO2016113886A1 (ja) 乱数拡大装置、乱数拡大方法及び乱数拡大プログラム
CN112152786A (zh) 无签名扩展的快速xmss签名验证和临时数采样过程
KR20220055079A (ko) NTRU LPRime 알고리즘에 대한 부채널 공격을 방지하기 위한 장치 및 방법
RU2680761C1 (ru) Безопасные преобразования данных
US20200073952A1 (en) Method and Apparatus for Acceleration of Hash-Based Lookup
CN117882334A (zh) 经典和后量子签名的高效杂交
CN106295379A (zh) 加密输入法和装置、解密输入法和装置及相关设备
JP2019020794A (ja) 文書管理装置、文書管理システム及びプログラム
US20210342486A1 (en) Encrypted data processing
US10176153B1 (en) Generating custom markup content to deter robots
KR20220055083A (ko) Lac 알고리즘에 대한 부채널 공격을 방지하기 위한 장치 및 방법
CN111339547A (zh) 用于生成数据标签的方法、电子设备及计算机存储介质
CN111447072B (zh) 用于生成数据等价零知识证明的方法、设备及存储介质
CN107667368A (zh) 用于sparse函数的非可延展混淆器
CN110213037B (zh) 一种适合硬件环境的流密码加密方法及系统
CN111371557A (zh) 区块链数据处理方法、装置、电子设备及介质
WO2017071541A1 (zh) 一种数字验证码的生成方法及装置