KR20230130382A - 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 장치, 방법 및 그 방법을 이용한 전자서명 및 암호화 연산 방법 - Google Patents

기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 장치, 방법 및 그 방법을 이용한 전자서명 및 암호화 연산 방법 Download PDF

Info

Publication number
KR20230130382A
KR20230130382A KR1020220027485A KR20220027485A KR20230130382A KR 20230130382 A KR20230130382 A KR 20230130382A KR 1020220027485 A KR1020220027485 A KR 1020220027485A KR 20220027485 A KR20220027485 A KR 20220027485A KR 20230130382 A KR20230130382 A KR 20230130382A
Authority
KR
South Korea
Prior art keywords
rejection
sequence table
sample
parallel optimization
matrix vector
Prior art date
Application number
KR1020220027485A
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 KR1020220027485A priority Critical patent/KR20230130382A/ko
Publication of KR20230130382A publication Critical patent/KR20230130382A/ko

Links

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/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/72Protecting 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 in cryptographic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • 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/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 장치, 방법 및 그 방법을 이용한 전자서명 및 암호화 연산 방법에 관한 것으로, 상기 기각 샘플링 병렬 최적화 방법은 제1 다항식 행렬 벡터 생성 과정에서 시드(seed)를 기초로 복수의 샘플값들을 포함하는 최초 샘플을 생성한 뒤 각 샘플값에 대한 수용-기각 평가를 통해 수용 샘플값들로 구성된 최종 샘플을 생성하고, 상기 수용-기각 평가 과정에서 기각이 발생한 경우 해당 기각 샘플값의 위치를 시퀀스화하여 기각 시퀀스 테이블에 저장하는 단계; 및 제2 다항식 행렬 벡터 생성 과정에서 상기 시드를 기초로 상기 최초 샘플을 생성한 뒤 상기 기각 시퀀스 테이블에 저장된 상기 기각 샘플값의 위치를 이용하여 상기 수용-기각 평가 과정의 수행없이 상기 수용 샘플값들을 선택하여 상기 최종 샘플을 생성하는 단계;를 포함한다.

Description

기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 장치, 방법 및 그 방법을 이용한 전자서명 및 암호화 연산 방법{DEVICE AND METHOD FOR PARALLEL OPTIMIZATION OF REJECT SAMPLING USING REJECTION SEQUENCE TABLE, AND DIGITAL SIGNATURE AND ENCRYPTION OPERATION METHOD USING THE METHOD THEREOF}
본 발명은 기각 샘플링 과정의 병렬 최적화 기술에 관한 것으로, 보다 상세하게는 양자내성암호(PQC) 기반 전자서명 알고리즘(DSA)에 대한 그래픽 카드 장비(GPU)에서의 내부 기각 샘플링 과정의 병렬 최적화를 구현하는 기술에 관한 것이다.
샘플링(Sampling)은 어떤 자료에서 특정 값을 추출하는 행위를 의미할 수 있다. 암호학 분야에서 샘플링이란, 표본추출로써 특정 분포 내에 있는 무작위의 값을 추출하는 방법을 의미할 수 있다. 무작위 값 추출을 위한 샘플링에 사용되는 대표적인 방식에는 가우시안 샘플링(Gaussian Samling), 기각 샘플링 (Rejection Sampling) 등이 포함될 수 있으며, 해당 기법들은 다양한 암호화 알고리즘에서 활용될 수 있다.
특히, 전자서명 알고리즘에서는 특정 시드를 확장하여 다항식 행렬 벡터를 생성할 때 기각 샘플링이 활용될 수 있으며, 기각 샘플링의 특성상 다른 샘플링 알고리즘과 달리 샘플을 생성한 뒤에 해당 샘플을 평가하여 수용(Accept)될 수 있는지 기각(Reject)될지를 결정하는 과정이 추가로 필요할 수 있다. 또한, 특정 전자서명 알고리즘에서는 서로가 동일한 시드를 교환한 다음 해당 시드를 기각 샘플링하여 동일한 다항식 행렬 벡터를 생성하는 과정이 포함될 수 있다.
하지만, 다항식 행렬 벡터를 그대로 저장해서 전송하는 경우 전송할 용량이 매우 크다는 문제가 존재하고, 시드값만을 받아 다항식 행렬 벡터를 기각 샘플링을 통해 생성하는 경우에는 비효율적인 수용-기각 과정을 반복해야 하는 문제가 발생할 수 있다.
한국공개특허 제10-2021-0130196호 (2021.10.29)
본 발명의 일 실시예는 양자내성암호(PQC) 기반 전자서명 알고리즘(DSA)에 대한 그래픽 카드 장비(GPU)에서의 내부 기각 샘플링 과정의 병렬 최적화를 구현하는 기술을 제공하고자 한다.
실시예들 중에서, 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 방법은 제1 다항식 행렬 벡터 생성 과정에서 시드(seed)를 기초로 복수의 샘플값들을 포함하는 최초 샘플을 생성한 뒤 각 샘플값에 대한 수용-기각 평가를 통해 수용 샘플값들로 구성된 최종 샘플을 생성하고, 상기 수용-기각 평가 과정에서 기각이 발생한 경우 해당 기각 샘플값의 위치를 시퀀스화하여 기각 시퀀스 테이블에 저장하는 단계; 및 제2 다항식 행렬 벡터 생성 과정에서 상기 시드를 기초로 상기 최초 샘플을 생성한 뒤 상기 기각 시퀀스 테이블에 저장된 상기 기각 샘플값의 위치를 이용하여 상기 수용-기각 평가 과정의 수행없이 상기 수용 샘플값들을 선택하여 상기 최종 샘플을 생성하는 단계;를 포함한다.
상기 제1 다항식 행렬 벡터 생성 과정은 클라이언트(client)를 통해 수행되고, 상기 제2 다항식 행렬 벡터 생성 과정은 서버(server)를 통해 수행될 수 있다.
상기 제1 다항식 행렬 벡터 생성 과정은 CPU를 통해 수행되고, 상기 제2 다항식 행렬 벡터 생성 과정은 GPU를 통해 병렬적으로 수행될 수 있다.
상기 최종 샘플을 생성하는 단계는 상기 GPU의 독립적인 스레드들 각각이 상기 기각 시퀀스 테이블을 참조하여 상기 수용 샘플값들에 직접 접근하는 단계를 포함할 수 있다.
상기 제1 다항식 행렬 벡터 생성 과정의 상기 시드와 상기 기각 시퀀스 테이블만이 상기 제2 다항식 행렬 벡터 생성 과정으로 전달될 수 있다.
상기 제1 및 제2 다항식 행렬 벡터 생성 과정들 각각은 상기 최종 샘플의 각 샘플값을 다항식의 계수로 사용하는 행렬 생성 함수를 통해 수행될 수 있다.
상기 제1 및 제2 다항식 행렬 벡터 생성 과정들 각각은 양자내성암호(Post-Quantum Cryptography, PQC) 기반 전자서명 알고리즘(Digital Signature Algorithm, DSA)에 포함되어 수행될 수 있다.
상기 기각 시퀀스 테이블에 저장하는 단계는 상기 시드가 갱신될 때마다 상기 기각 시퀀스 테이블을 갱신하는 단계를 포함할 수 있다.
상기 기각 시퀀스 테이블에 저장하는 단계는 상기 최초 샘플의 각 샘플값에 대한 기각 발생 순서에 따라 상기 해당 기각 샘플값의 위치를 상기 기각 시퀀스 테이블에 순차적으로 저장하는 단계를 포함할 수 있다.
실시예들 중에서, 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 장치는 제1 다항식 행렬 벡터 생성 과정에서 시드(seed)를 기초로 복수의 샘플값들을 포함하는 최초 샘플을 생성한 뒤 각 샘플값에 대한 수용-기각 평가를 통해 수용 샘플값들로 구성된 최종 샘플을 생성하고, 상기 수용-기각 평가 과정에서 기각이 발생한 경우 해당 기각 샘플값의 위치를 시퀀스화하여 기각 시퀀스 테이블에 저장하는 제1 연산 모듈; 및 제2 다항식 행렬 벡터 생성 과정에서 상기 시드를 기초로 상기 최초 샘플을 생성한 뒤 상기 기각 시퀀스 테이블에 저장된 상기 기각 샘플값의 위치를 이용하여 상기 수용-기각 평가 과정의 수행없이 상기 수용 샘플값들을 선택하여 상기 최종 샘플을 생성하는 제2 연산 모듈;을 포함한다.
상기 제1 연산 모듈은 상기 제1 다항식 행렬 벡터 생성 과정의 상기 시드와 상기 기각 시퀀스 테이블만을 상기 제2 연산 모듈에게 전달할 수 있다.
상기 제1 연산 모듈은 상기 시드가 갱신될 때마다 상기 기각 시퀀스 테이블을 갱신할 수 있다.
상기 제2 연산 모듈은 상기 최종 샘플의 모든 샘플값을 사용한 경우 상기 제1 연산 모듈에게 상기 시드의 갱신을 요청할 수 있다.
상기 제1 및 제2 연산 모듈들은 상기 최종 샘플의 각 샘플값을 다항식의 계수로 사용하여 랜덤화된 다항식 행렬 벡터를 생성하는 연산 모듈에 포함되어 구현될 수 있다.
실시예들 중에서, 전자서명 및 암호화 연산 방법은 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 방법이 적용된다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
본 발명의 일 실시예에 따른 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 장치, 방법 및 그 방법을 이용한 전자서명 및 암호화 연산 방법은 양자내성암호(PQC) 기반 전자서명 알고리즘(DSA)에 대한 그래픽 카드 장비(GPU)에서의 내부 기각 샘플링 과정의 병렬 최적화를 구현할 수 있다.
본 발명의 일 실시예에 따른 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 장치 및 방법은 암호학 분야에서 기각 샘플링 과정을 GPU의 병렬 연산에 특화하여 고속화할 수 있으며, 이에 따라 자율주행 자동차 통신 환경에서 양자내성암호 기반 전자서명 알고리즘을 고속화하고 신속한 전자서명 생성 및 검증을 진행하는데 활용될 수 있으며 서버에서 클라이언트로 전달받는 메시지에 대한 신속한 검증을 요구하는 환경에서도 효과적으로 활용될 수 있다.
도 1은 기각 샘플링 과정을 설명하는 도면이다.
도 2는 기각 샘플링 알고리즘을 설명하는 도면이다.
도 3은 워프 발산 문제 현상을 설명하는 도면이다.
도 4는 본 발명에 따른 기각 샘플링 병렬 최적화 시스템을 설명하는 도면이다.
도 5는 본 발명에 따른 기각 샘플링 병렬 최적화 장치의 기능적 구성을 설명하는 도면이다.
도 6은 본 발명에 따른 전자서명 알고리즘의 동작 과정을 설명하는 도면이다.
도 7은 본 발명에 따른 기각 샘플링 병렬 최적화 방법의 동작 과정을 설명하는 도면이다.
도 8은 본 발명에 따른 GPU 환경에서 RST를 활용한 기각 샘플링 병렬 최적화 방법의 일 실시예를 설명하는 도면이다.
도 9는 본 발명에 따른 RST를 활용한 기각 샘플링 알고리즘을 설명하는 도면이다.
도 10은 하나의 다항식 행렬을 생성하는데 필요한 평균 소요 시간에 관한 실험 결과를 설명하는 도면이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
전자서명(Digital Signature Algorithm, DSA)은 공개키 암호 방식을 사용할 때 데이터 변조 여부와 데이터 송신자를 확인하기 위해서 사용될 수 있다. 송신자는 데이터를 송신할 때 데이터뿐만 아니라 전자서명을 추가하여 송신하게 되고, 여기에서 전자서명은 데이터로 계산한 해시값을 송신자의 비밀키로 암호화한 것에 해당할 수 있다. 데이터를 수신한 수신자는 송신자의 공개키로 전자서명을 복호화한 값과 전자서명을 복호화한 해시값을 판단하여 데이터가 변조되지 않았음을 확인할 수 있다.
기존에는 타원곡선 암호화 알고리즘을 활용한 전자서명 알고리즘(Elliptic Curve Digital Signature Algorithm, ECDSA)이 다양한 보안 분야에서 활용되어 왔다. 하지만, 양자 컴퓨터의 등장으로 인하여 타원곡선과 같은 공개키 기반 암호 알고리즘에 대한 위험성이 제기되었다. 양자 알고리즘에도 안전한 차세대 양자내성암호의 후보들은 난수를 활용하여 암호화 및 전자서명 연산을 수행할 수 있다. 이때, 이러한 난수 생성 과정에서 다양한 샘플링 함수들이 사용될 수 있다.
도 1은 기각 샘플링 과정을 설명하는 도면이다.
도 1을 참조하면, 기각 샘플링의 목표는 생성되는 샘플들이 특정 샘플의 분포 p에 따르도록 하는 것일 수 있다. 하지만, p에서 직접 샘플을 생성하는 것이 어렵거나 불가능한 경우, 우선 쉽게 샘플을 생성할 수 있는 q에서 샘플들을 생성한 뒤 수용-기각 과정을 거쳐서 p에 따르는 샘플들만 수용하는 과정을 통해 마치 p에서 직접 샘플을 생성한 것처럼 샘플링을 진행할 수 있다. 도 1에서, p(x)는 p에 대한 분포 함수이고, q(x)는 q에 대하 분포 함수이며, M은 상수이다.
도 2는 기각 샘플링 알고리즘을 설명하는 도면이다.
도 2를 참조하면, Crystals-Dilithium 전자서명 알고리즘은 기각 샘플링을 활용하여 랜덤한 다항식 기반 행렬 벡터를 생성하는 연산을 포함할 수 있다. 해당 행렬 벡터 생성 과정은 전체 연산 시간 중 40%를 차지할 정도로 연산 부담이 클 수 있다.
도 2와 같이, CRYSTALS-Dilithium에서 다항식 행렬을 생성하기 위하여 기각 샘플링 함수가 호출될 수 있다. 기각 샘플링 함수의 연산 과정은 CRYSTALS-Dilithium에서 사용하고자 하는 무작위의 다항식 행렬을 생성하기 위해 수행될 수 있다. 즉, 다항식 행렬을 구성하는 다수의 다항식들에 대한 각 다항식의 항들은 기각 샘플링을 통해 생성된 N개의 샘플들을 기초로 생성될 수 있다.
구체적으로, 기각 샘플링 알고리즘은 첫 시드를 기초로 생성된 샘플값들을 하나씩 판단해가면서 수용 혹은 기각 여부를 결정할 수 있다. 이때, 수용 결정에 따라 수용된 값들은 다항식의 항으로 입력되지만, 기각되는 값들은 버려질 수 있다. 만약 첫 시드로 생성된 샘플값들이 모두 사용되었음에도 다항식의 항들이 모두 생성되지 못한 경우 시드는 갱신될 수 있고 새 샘플값들을 생성하는 동작이 반복 수행될 수 있다.
도 3은 워프 발산 문제 현상을 설명하는 도면이다.
도 3을 참조하면, GPU는 일반적으로 그래픽 연산을 위해 개발된 장치이지만, GPU 상에서의 범용 계산 능력을 활용하여 다양한 알고리즘을 연산시킬 수 있다. GPU는 다수의 스트리밍 멀티프로세서(Streaming Multiprocessor, SM)로 구성되어 있으며, 스트리밍 멀티프로세서는 다수의 스레드(thread)를 사용하여 다수의 작업을 병렬로 수행할 수 있다. 특히, 스레드는 32개마다 하나의 명령어 수행 단위인 워프(Warp)에 의하여 일련의 연산을 동시에 수행할 수 있다.
또한, 하나의 워프 상에서 최고의 연산 효율을 수행하기 위해서는 워프 내 스레드들이 모두 동일한 연산을 진행할 필요가 있다. 하지만, 각종 조건문에 의하여 동일 워프 내의 스레드들이 서로 다른 연산을 수행하게 되는 경우, 워프 발산(Warp Divergence)이 발생될 수 있다.
즉, 도 3과 같이, 워프 발산이 발생하는 경우 조건문에 의해 수행되는 하나의 분기 내의 스레드들이 연산을 진행하는 동안 해당 조건을 만족시키지 않는 스레드들은 연산을 멈추고 다른 스레드들의 연산이 끝날 때까지 대기할 수 있다(워프 발산 구간). 워프 발산 현상은 병렬 연산을 위해 채용하는 GPU 장치의 목적에 위배될 수 있으며, 전체 연산 과정의 효율성을 현저히 감소시킬 수 있다.
이하, 도 4 내지 10을 참조하면 본 발명에 따른 기각 샘플링 병렬 최적화 방법을 보다 자세히 설명한다.
도 4는 본 발명에 따른 기각 샘플링 병렬 최적화 시스템을 설명하는 도면이다.
도 4를 참조하면, 기각 샘플링 병렬 최적화 시스템(400)은 사용자 단말(410), 기각 샘플링 병렬 최적화 장치(430) 및 데이터베이스(450)를 포함하여 구현될 수 있다.
사용자 단말(410)은 사용자에 의해 운용되는 단말 장치에 해당할 수 있다. 본 발명의 실시예에서 사용자는 하나 이상의 사용자로 이해될 수 있으며, 복수의 사용자들은 하나 이상의 사용자 그룹으로 구분될 수 있다. 하나 이상의 사용자들 각각은 하나 이상의 사용자 단말(410)에 대응될 수 있다. 즉, 제1 사용자는 제1 사용자 단말, 제2 사용자는 제2 사용자 단말, ..., 제n(상기 n은 자연수) 사용자는 제n 사용자 단말에 대응될 수 있다.
또한, 사용자 단말(410)은 기각 샘플링 병렬 최적화 시스템(100)을 구성하는 하나의 장치로서 기각 샘플링 병렬 최적화 장치(430)와 연동하여 기각 샘플링 병렬 최적화를 위한 시드 생성 과정이나 암호화 연산 과정 등에 참여할 수 있는 컴퓨팅 장치에 해당할 수 있다. 예를 들어, 사용자 단말(410)은 기각 샘플링 병렬 최적화 장치(430)와 연결되어 동작 가능한 스마트폰, 노트북 또는 컴퓨터로 구현될 수 있으며, 반드시 이에 한정되지 않고, 태블릿 PC 등 포함하여 다양한 디바이스로도 구현될 수 있다.
또한, 사용자 단말(410)은 기각 샘플링 병렬 최적화 장치(430)와 연동하기 위한 전용 프로그램 또는 어플리케이션을 설치하여 실행할 수 있다. 예를 들어, 사용자 단말(410)은 시드 생성에 필요한 잡음 데이터를 생성하여 제공할 수 있으며, 기각 샘플링 병렬 최적화 장치(430)에 의해 생성된 샘플이나 다항식 행렬 등에 직접 접근할 수도 있다. 또한, 해당 동작 과정은 전용 프로그램 또는 어플리케이션을 통해 제공되는 인터페이스를 통해 이루어질 수 있다.
한편, 사용자 단말(410)은 기각 샘플링 병렬 최적화 장치(430)와 네트워크를 통해 연결될 수 있고, 복수의 사용자 단말(410)들은 기각 샘플링 병렬 최적화 장치(430)와 동시에 연결될 수도 있다.
기각 샘플링 병렬 최적화 장치(430)는 본 발명에 따른 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 방법을 수행하는 컴퓨터 또는 프로그램에 해당하는 서버로 구현될 수 있다. 또한, 기각 샘플링 병렬 최적화 장치(430)는 사용자 단말(410)과 유선 네트워크 또는 블루투스, WiFi, LTE 등과 같은 무선 네트워크로 연결될 수 있고, 네트워크를 통해 사용자 단말(410)과 데이터를 송·수신할 수 있다.
또한, 기각 샘플링 병렬 최적화 장치(430)는 본 발명에 따른 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 방법을 수행하기 위하여 독립된 외부 시스템(도 1에 미도시함)과 연결되어 동작하도록 구현될 수 있다. 일 실시예에서, 기각 샘플링 병렬 최적화 장치(430)는 클라우드 서버로 구현될 수 있으며, 클라우드 서비스를 통해 기각 샘플링 병렬 최적화 방법이 적용된 다양한 보안 기능을 제공할 수 있다.
일 실시예에서, 기각 샘플링 병렬 최적화 장치(430)는 전자서명 및 암호화 연산 장치에 포함되어 구현될 수 있다. 즉, 전자서명 및 암호화 연산 장치는 본 발명에 따른 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 방법이 적용된 전자서명 알고리즘이나 암호화 알고리즘을 구현할 수 있다.
다른 실시예에서, 기각 샘플링 병렬 최적화 장치(430)는 그래픽 카드 장치에 포함되어 구현될 수 있다. 즉, 그래픽 카드 장치에 포함된 그래픽 처리 유닛(GPU)에 본 발명에 따른 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 방법이 적용되어 병렬 처리 환경에서 최적화된 연산 기술이 구현될 수 있다.
데이터베이스(450)는 기각 샘플링 병렬 최적화 장치(430)의 동작 과정에서 필요한 다양한 정보들을 저장하는 저장장치에 해당할 수 있다. 예를 들어, 데이터베이스(450)는 샘플링 과정에서 생성된 샘플값과 기각 시퀀스 테이블 등을 저장할 수 있으며, 반드시 이에 한정되지 않고, 기각 샘플링 병렬 최적화 장치(430)가 본 발명에 따른 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 방법을 수행하는 과정에서 다양한 형태로 수집 또는 가공된 정보들을 저장할 수 있다.
또한, 도 1에서, 데이터베이스(450)는 기각 샘플링 병렬 최적화 장치(430)와 독립적인 장치로서 도시되어 있으나, 반드시 이에 한정되지 않고, 논리적인 저장장치로서 기각 샘플링 병렬 최적화 장치(430)에 포함되어 구현될 수 있음은 물론이다.
도 5는 본 발명에 따른 기각 샘플링 병렬 최적화 장치의 기능적 구성을 설명하는 도면이다.
도 5를 참조하면, 기각 샘플링 병렬 최적화 장치(430)는 제1 연산 모듈(510), 제2 연산 모듈(530) 및 제어 모듈(550)을 포함할 수 있다.
제1 연산 모듈(510)은 제1 다항식 행렬 벡터 생성 과정에서 시드(seed)를 기초로 복수의 샘플값들을 포함하는 최초 샘플을 생성한 뒤 각 샘플값에 대한 수용-기각 평가를 통해 수용 샘플값들로 구성된 최종 샘플을 생성하고, 수용-기각 평가 과정에서 기각이 발생한 경우 해당 기각 샘플값의 위치를 시퀀스화하여 기각 시퀀스 테이블에 저장하는 동작을 수행할 수 있다. 여기에서, 다항식 행렬 벡터는 전자서명의 생성과 검증 또는 암호화 연산에서 수행되는 다항식 연산을 위한 다항식 기반 행렬 벡터에 해당할 수 있다. 즉, 다항식 행렬 벡터 생성 과정은 시드를 기초로 생성되는 샘플값을 이용하여 랜덤한 다항식 행렬 벡터를 생성하는 과정에 해당할 수 있다.
따라서, 다항식 행렬 벡터 생성 과정에는 시드를 기초로 샘플값을 생성하는 과정이 포함될 수 있다. 이때, 시드를 기초로 샘플값을 생성하는 과정은 시드를 기초로 최초 샘플을 생성하는 제1 과정, 최초 샘플의 각 샘플값에 대해 수용-기각 평가를 수행하는 제2 과정, 그리고 수용-기각 평가에 따라 수용된 샘플값(즉, 수용 샘플값)들만을 이용하여 최종 샘플을 생성하는 제3 과정을 통해 진행될 수 있다. 한편, 최초 샘플 및 최종 샘플은 각각 시드를 기초로 생성된 복수의 샘플값들의 집합에 해당할 수 있으며, 최종 샘플은 기 설정된 크기(또는 길이)로 생성될 수 있다.
또한, 제1 연산 모듈(510)은 최초의 다항식 행렬 벡터를 생성하는 동안 기각 샘플링의 결과를 이용하여 기각 시퀀스 테이블(Rejection Sequence Table, RST)을 생성할 수 있다. 여기에서, 기각 시퀀스 테이블은 기각 위치가 저장된 테이블에 해당할 수 있다. 즉, 제1 연산 모듈(510)은 최초 샘플의 샘플값에 대한 수용-기각 평가 과정에서 기각이 발생할 때마다(기각 발생 순서에 따라) 해당 기각된 값의 위치를 번호매김하여 기각 시퀀스 테이블에 순차적으로 저장할 수 있다.
일 실시예에서, 제1 연산 모듈(510)은 제1 다항식 행렬 벡터 생성 과정의 시드와 기각 시퀀스 테이블만을 제2 연산 모듈(530)에게 전달할 수 있다. 제1 연산 모듈(510)에 의해 생성된 기각 시퀀스 테이블이 제2 연산 모듈(530)에 전달된 결과 제2 연산 모듈(530)에서 수행되는 제2 다항식 행렬 벡터 생성 과정에서 수용-기각 평가 과정은 생략될 수 있다. 이에 따라, 제2 연산 모듈(530)은 불필요한 연산을 수행하지 않음으로써 제2 다항식 행렬 벡터 생성 과정을 보다 효율적으로 처리할 수 있다.
일 실시예에서, 제1 연산 모듈(510)은 시드가 갱신될 때마다 기각 시퀀스 테이블을 갱신할 수 있다. 기각 시퀀스 테이블은 동일한 시드에 기초한 기각 샘플링 과정에서 수용-기각 평가 과정의 반복적인 실행을 줄이기 위한 용도로 사용될 수 있다. 제1 연산 모듈(510)은 시드가 갱신된 후 최초의 기각-수용 평가 과정에서 도출된 기각 샘플값의 위치에 따라 기존의 기각 시퀀스 테이블을 갱신할 수 있다.
제2 연산 모듈(530)은 제2 다항식 행렬 벡터 생성 과정에서 시드를 기초로 최초 샘플을 생성한 뒤 기각 시퀀스 테이블에 저장된 기각 샘플값의 위치를 이용하여 수용-기각 평가 과정의 수행없이 수용 샘플값들을 선택하여 최종 샘플을 생성할 수 있다. 즉, 제2 연산 모듈(530)은 기각 시퀀스 테이블을 통해 최초 샘플에서 기각 발생 위치를 사전에 인지할 수 있고, 최초 샘플에서 기각 샘플값들을 제외시킨 후 수용 샘플값들에 직접 접근하여 최종 샘플을 생성할 수 있다.
일 실시예에서, 제2 연산 모듈(530)은 최종 샘플의 모든 샘플값을 사용한 경우 제1 연산 모듈(510)에게 시드의 갱신을 요청할 수 있다. 제2 연산 모듈(530)은 다항식 행렬 벡터 생성 과정에서 최종 샘플의 각 샘플값을 다항식의 계수로 사용할 수 있다. 만약 최종 샘플의 샘플값을 모두 사용하였음에도 다항식의 항을 모두 생성하지 못한 경우, 시드의 갱신을 통해 새로운 샘플값들이 생성되도록 할 수 있다. 이를 위해, 제2 연산 모듈(530)은 제1 연산 모듈(510)에게 시드의 갱신을 요청할 수 있으며, 제1 연산 모듈(510)은 시드를 갱신하면서 기각 시퀀스 테이블에 대한 갱신 동작을 함께 수행할 수 있다.
일 실시예에서, 제1 연산 모듈(510) 및 제2 연산 모듈(530)은 최종 샘플의 각 샘플값을 다항식의 계수로 사용하여 랜덤화된 다항식 행렬 벡터를 생성하는 연산 모듈에 포함되어 구현될 수 있다. 제1 연산 모듈(510)과 제2 연산 모듈(530)은 기본적으로 시드를 기초로 샘플링을 통해 랜덤화된 샘플값들을 생성하는 동작을 수행하도록 구현될 수 있으며, 필요에 따라 생성된 샘플값을 이용하여 추가적인 연산을 수행할 수 있다. 이때, 제1 연산 모듈(510)과 제2 연산 모듈(530)은 하나의 연산 모듈에 포함되어 구현될 수 있다.
예를 들어, 연산 모듈이 임의의 샘플값을 이용하여 다항식 행렬 벡터를 생성하는 동작을 수행하는 경우, 제1 연산 모듈(510)과 제2 연산 모듈(530)이 해당 연산 모듈에 포함되어 샘플값을 제공하는 동작을 수행하거나 또는 생성된 샘플값을 기초로 해당 연산 모듈의 일부 동작을 대신하여 수행할 수 있다.
다른 실시예로서, 제1 연산 모듈(510)과 제2 연산 모듈(530)은 서로 다른 연산 모듈에 포함되어 구현될 수 있다. 예를 들어, 제1 연산 모듈(510)과 제2 연산 모듈(530)은 서로 다른 독립된 장치들에 각각 포함될 수 있으며, 이 경우 상호 간에 네트워크를 통해 데이터를 주고 받을 수 있다.
제어 모듈(550)는 기각 샘플링 병렬 최적화 장치(430)의 전체적인 동작을 제어하고, 제1 연산 모듈(510) 및 제2 연산 모듈(530) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.
도 6은 본 발명에 따른 전자서명 알고리즘의 동작 과정을 설명하는 도면이다.
도 6을 참조하면, 전자서명 알고리즘은 기각 샘플링을 활용하여 랜덤한 다항식 기반 행렬 벡터를 생성하는 연산을 포함할 수 있다. 구체적으로, 전자서명 알고리즘의 동작은 시드 생성 단계(S610), 기각 샘플링 수행 단계(S630), 다항식 행렬 벡터 생성 단계(S650) 및 전자서명 생성/검증 단계(S670)를 포함할 수 있다.
먼저 시드 생성 단계(S610)에서는 샘플값 생성을 위해 사용되는 시드가 생성될 수 있다. 이때, 시드는 내부 시스템은 물론 외부 장치를 통해서도 수집될 수 있다. 기각 샘플링 수행 단계(S630)에서는 시드를 기초로 생성된 무작위 샘플값들에 대한 수용-기각 평가 과정이 수행될 수 있고, 평가 결과에 따라 수용된 샘플값들이 선별될 수 있다. 이후, 수용된 샘플값들은 최종 샘플로서 생성될 수 있다.
또한, 다항식 행렬 벡터 생성 단계(S650)에서는 수용된 샘플값들을 다항식의 계수로 사용하여 다항식 행렬 벡터가 생성될 수 있다. 다항식 행렬 벡터는 각 다항식의 계수들을 하나의 행 또는 열에 배치하여 생성될 수 있으며, 이에 따라 하나의 다항식 행렬 벡터를 통해 복수의 다항식들이 동시에 표현될 수 있다.
마지막으로, 전자서명 생성/검증 단계(S670)에서는 다항식 행렬 벡터를 이용하여 전자서명을 생성하거나 또는 전자서명을 검증하는 동작을 수행될 수 있다. 이때, 전자서명의 생성 및 검증 동작은 전자서명 알고리즘에 따라 수행될 수 있다. Crystals-Dilithium 전자서명 알고리즘의 경우 랜덤한 다항식 기반 행렬 벡터를 생성하는 연산을 포함하고 있으며, 행렬 벡터의 생성 과정의 연산 시간은 전체 연산 시간 중 40%를 차지할 수 있다.
도 7은 본 발명에 따른 기각 샘플링 병렬 최적화 방법의 동작 과정을 설명하는 도면이다.
도 7을 참조하면, 기각 샘플링 병렬 최적화 방법은 적합한 샘플값들을 선별하는 샘플링 과정에서 불필요한 수용-기각 평가 과정을 생략할 수 있다. 구체적으로, 기각 샘플링 병렬 최적화 방법은 최초 샘플 생성 단계(S710), 수용-기각 평가 단계(S730), 기각 시퀀스 테이블 구축 단계(S750) 및 최종 샘플 단계(S770)을 포함할 수 있다.
먼저, 최초 샘플 생성 단계(S710)에서는 시드를 기초로 복수의 샘플값들이 생성될 수 있다. 즉, 최초 샘플은 시드를 기초로 새롭게 생성된 복수의 샘플값들의 집합에 해당할 수 있다. 특히, 기각 샘플링의 경우 생성된 최초 샘플에 대해 수용-기각 평가 과정을 추가적으로 수행하여 샘플값들 중 일부에 대해서는 수용하여 받아들이고 나머지에 대해서는 기각하여 제외시킬 수 있다.
다음으로, 수용-기각 평가 단계(S730)에서는 최초 샘플의 각 샘플값들에 대해 수용 또는 기각을 결정하는 동작이 수행될 수 있다. 수용-기각의 평가는 사전에 설정된 기각율(rejection ratio)에 따라 결정될 수 있다. 예를 들어, 특정 샘플값에 대해 기각율을 산출한 다음 기각율이 기 설정된 값 이하인 경우 해당 특정 샘플값은 기각될 수 있다.
기각 시퀀스 테이블 구축 단계(S750)에서는 최초 샘플에 대한 수용-기각 평가 결과를 기초로 기각 샘플값의 위치를 테이블에 기록하는 동작이 수행될 수 있다. 즉, 수용-기각 평가는 최초 샘플의 각 샘플값마다 순차적으로 수행될 수 있으며, 특정 샘플값에 대한 기각이 발생한 경우 해당 기각의 위치를 테이블에 순차적으로 저장하는 과정을 통해 기각 시퀀스 테이블이 생성될 수 있다.
최종 샘플 단계(S770)에서는 기각-수용 평가 과정을 통해 수용된 샘플값들만을 묶어 최종 샘플을 생성하는 동작이 수행될 수 있다. 즉, 최종 샘플은 수용된 샘플값들로 이루어진 집합으로 표현될 수 있다.
일 실시예에서, 기각 샘플링 병렬 최적화 방법은 제1 다항식 행렬 벡터 생성 과정에서 시드(seed)를 기초로 복수의 샘플값들을 포함하는 최초 샘플을 생성한 뒤 각 샘플값에 대한 수용-기각 평가를 통해 수용 샘플값들로 구성된 최종 샘플을 생성하고, 수용-기각 평가 과정에서 기각이 발생한 경우 해당 기각 샘플값의 위치를 시퀀스화하여 기각 시퀀스 테이블에 저장하는 제1 단계 및 제2 다항식 행렬 벡터 생성 과정에서 시드를 기초로 최초 샘플을 생성한 뒤 기각 시퀀스 테이블에 저장된 기각 샘플값의 위치를 이용하여 수용-기각 평가 과정의 수행없이 수용 샘플값들을 선택하여 최종 샘플을 생성하는 제2 단계를 포함하여 구현될 수 있다.
일 실시예에서, 기각 샘플링 병렬 최적화 방법은 제1 다항식 행렬 벡터 생성 과정을 클라이언트(client)를 통해 수행하고, 제2 다항식 행렬 벡터 생성 과정을 서버(server)를 통해 수행할 수 있다. 즉, 본 발명에 따른 기각 샘플링 병렬 최적화 방법은 서버-클라이언트 구조의 시스템에 적용될 수 있으며, 서버와 클라이언트 간에 수행되는 인증 및 검증 동작, 데이터 암호화 동작 등에 활용될 수 있다.
일 실시예에서, 기각 샘플링 병렬 최적화 방법은 CPU와 GPU를 포함하여 구현된 독립된 장치에 적용될 수 있다. 이 때, 기각 샘플링 병렬 최적화 방법의 제1 다항식 행렬 벡터 생성 과정은 CPU를 통해 수행될 수 있으며, 기각 샘플링 병렬 최적화 방법의 제2 다항식 행렬 벡터 생성 과정은 GPU를 통해 병렬적으로 수행될 수 있다. 구체적으로, GPU의 독립적인 스레드들 각각은 기각 시퀀스 테이블을 참조하여 수용 샘플값들에 직접 접근할 수 있고, 이에 따라 다른 스레드들의 동작에 상관없이 독립적인 연산을 실행함으로써 기각 샘플링의 병렬 연산을 구현할 수 있다.
또한, 제1 다항식 행렬 벡터 생성 과정과 제2 다항식 행렬 벡터 생성 과정은 각각 독립된 모듈을 통해 수행되도록 구현될 수 있으며, 모듈 간의 통신을 통해 시드와 기각 시퀀스 테이블 만이 일방에서 타방으로 전달될 수 있다.
또한, 제1 다항식 행렬 벡터 생성 과정과 제2 다항식 행렬 벡터 생성 과정은 최종 샘플의 각 샘플값을 다항식의 계수로 사용하는 행렬 생성 함수를 통해 수행될 수 있다. 즉, 행렬 생성 함수는 다항식 행렬 벡터를 생성하는 연산을 수행할 수 있으며, 다항식 행렬 벡터의 생성을 위해 랜덤하게 생성된 샘플값을 활용할 수 있다.
또한, 제1 다항식 행렬 벡터 생성 과정과 제2 다항식 행렬 벡터 생성 과정은 양자내성암호(Post-Quantum Cryptography, PQC) 기반 전자서명 알고리즘(Digital Signature Algorithm, DSA)에 포함되어 수행될 수 있다. 예를 들어, 제1 다항식 행렬 벡터 생성 과정과 제2 다항식 행렬 벡터 생성 과정은 Crystals-Dilithium 전자서명 알고리즘에 포함되어 수행될 수 있다. 전자서명 알고리즘은 행렬 생성 함수를 포함할 수 있으며, 행렬 생성 함수는 다항식 기반의 행렬 벡터를 이용하여 관련 연산을 수행할 수 있다.
도 8은 본 발명에 따른 GPU 환경에서 RST를 활용한 기각 샘플링 병렬 최적화 방법의 일 실시예를 설명하는 도면이다.
도 8을 참조하면, 기각 샘플링 병렬 최적화 방법은 기각 시퀀스 테이블(RST)를 활용하여 기각 샘플링 과정의 한계를 극복할 수 있다. 구체적으로, 기각 샘플링의 경우 GPU를 활용하면 수용-기각 평가 과정이 병렬적으로 수행될 수 있다. 다만, GPU의 독립적인 스레드들은 다른 스레드에서 최초 생성된 샘플값에 대해 다른 스레드에 의한 수용 또는 기각 여부를 정확히 판단하기 어려울 수 있다. 예를 들어, 특정 위치 i에서 샘플링이 완료된 다항식의 계수에 해당하는 값이 몇 번 기각된 뒤 최종적으로 수용된 것인지를 정확히 인지하기 어려울 수 있다. 즉, GPU의 스레드들은 자신의 앞 번호 스레드에 의해 수행된 수용-기각 평가 과정이 모두 완료된 경우에만 샘플값과 다항식의 항을 정확히 알 수 있기 때문에, 각 스레드들에서의 동작은 병렬이 아닌 순차적으로 진행될 수 있다.
도 8에서, 기각 샘플링 병렬 최적화 방법에 따르면 최초의 다항식 벡터 행렬 생성 과정에서 첫 번째 연산 주체는 수용-기각 평가 과정을 진행할 수 있고 해당 과정에서 기각이 발생할 때마다 해당 기각값의 위치를 시퀀스화하여 기각 시퀀스 테이블에 저장할 수 있다. 예를 들어, 도 8의 경우, 최초 샘플값의 x2와 x6에서 각각 기각(Reject)이 발생할 수 있으며, 기각 시퀀스 테이블(RST)에는 기각 위치에 해당하는 2와 6이 순차적으로 저장될 수 있다. 한편, 기각 시퀀스 테이블의 크기는 샘플링 수용 확률을 기초로 결정될 수 있다.
이후, 해당 시드가 재사용되는 경우 시드값 뿐만 아니라 기각 시퀀스 테이블을 같이 전달함으로써 다음의 다항식 벡터 행렬 생성 과정에서는 최초 샘플값이 생성된 뒤 수용-기각 판단 과정이 생략될 수 있고 기각 시퀀스 테이블에 저장된 기각 위치에 해당하는 값들이 사전에 제거될 수 있다. 이에 따라, 남은 값들은 모두 수용이 보장된 값에 해당할 수 있다. 이후, GPU의 독립적인 스레드들은 다른 스레드들의 수용-기각 여부에 상관없이 기각 시퀀스 테이블에 따라 재배열된 독립적인 위치에 접근하여 최초의 샘플값을 그대로 수용함으로써 병렬적으로 해당 값들을 다항식의 계수로서 저장할 수 있다.
도 9는 본 발명에 따른 RST를 활용한 기각 샘플링 알고리즘을 설명하는 도면이다.
도 9를 참조하면, 기각 샘플링 병렬 최적화 방법은 도 2에서 도시하는 기존의 기각 샘플링 알고리즘과 달리 전체 샘플값들에 대한 수용-기각 평가 과정이 생략될 수 있고 기각 시퀀스 테이블(T)에 저장된 기각 위치의 샘플값을 제외한 나머지 샘플값들에 직접 접근하는 방식으로 수행될 수 있다. 즉, 최초 샘플에서 기각 시퀀스 테이블에 저장된 기각 위치의 샘플값에 대한 접근이 제한되고 나머지 샘플값들에 대한 순차적인 접근을 통해 최종 출력을 위한 집합이 생성될 수 있다.
도 10은 하나의 다항식 행렬을 생성하는데 필요한 평균 소요 시간에 관한 실험 결과를 설명하는 도면이다.
도 10을 참조하면, 구현 성능 측정에 활용된 장비로는 NVIDIA Jetson AGX Xavier이 활용될 수 있다. NVIDIA Jetson AGX Xavier는 GPU가 탑재된 임베디드 장치에 해당할 수 있으며, 8 코어의 ARM A5x 64비트 CPU와 512 개의 볼타 코어를 포함한 GPU가 탑재될 수 있다. 성능 평가는 Linux OS 환경에서 기각 샘플링을 활용한 다항식 기반 행렬 생성에 소요된 시간을 기준으로 구현물에 대한 성능을 측정하는 방식으로 수행될 수 있다.
또한, 성능 평가는 동일한 함수를 1000번 호출한 것에 대한 평균 시간을 기준으로 수행될 수 있으며, 다항식의 차수는 256차로 고정되고 GPU의 블록당 스레드 수를 워프의 크기인 32개로 설정하여 모든 스레드가 여덟 번씩의 연산을 통해 하나의 다항식을 샘플링할 수 있도록 구현한 결과물을 기준으로 측정될 수 있다.
도 10의 경우, CRYSTASL-Dilithium의 보안 강도인 2/3/5에서의 각각의 연산 결과를 나타낼 수 있다. CRYSTASL-Dilithium 2의 경우, CPU에서의 하나의 다항식 벡터를 생성하기 위해 소요된 시간은 162.4 μs이며, GPU에서 32개의 스레드를 사용하여 하나의 다항식 벡터를 생성하기 위해 소요된 시간은 77.5 μs로, 약 2.1배의 성능 향상을 확인할 수 있다. 그리고, 다수의 스레드들의 묶음인 블록을 동시에 다수 활용하여 연산하였을 경우, 32개의 블록이 총 1024개의 스레드를 사용하여 32개의 다항식 행렬을 동시에 생성하였을 경우, 하나의 다항식 행렬을 생성하는데 소요된 시간은 9.4 μs로, CPU와 대비하여 약 17.3배의 성능이 향상되었음을 확인할 수 있다. 동시에 가용하는 블록의 수가 커질수록 임계점에 다다르기 전까지의 성능은 계속해서 상승하며, 성능 임계점에 도달하는 2,048개의 블록을 동시에 가용하였을 때 하나의 다항식 행렬을 생성하기 위해 소요되는 시간은 약 6.2 μs로, CPU에 비하여 약 26.2배의 향상된 성능 결과를 확인할 수 있다.
이와 같이, CRYSTALS-Dilithium 3에서는 GPU를 사용하였을 때 CPU에 비하여 최대 30.4배의 향상된 다항식 행렬 생성 속도를 확인할 수 있으며, CRYSTALS-Dilithium 5에서는 최대 29.3배의 성능 향상 결과를 확인할 수 있다.
본 발명에 따른 기각 샘플링 병렬 최적화 방법의 결과로, CPU 구현에 비해 약 26.2(CRYSTALS-Dilithium 2), 30.4(CRYSTALS-Dilithium 3), 29.3(CRYSTALS-Dilithium 5)배의 성능 향상을 달성할 수 있다. 본 발명에 따른 기각 샘플링 병렬 최적화 방법과 결과는 CRYSTALS-Dilithium 전체 성능을 향상시키는데 활용될 수 있으며, CRYSTALS-Dilithium뿐만 아니라 기각 샘플링을 활용하는 다양한 암호 알고리즘에도 활용될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
400: 기각 샘플링 병렬 최적화 시스템
410: 사용자 단말 430: 기각 샘플링 병렬 최적화 장치
450: 데이터베이스
510: 제1 연산 모듈 530: 제2 연산 모듈
550: 제어 모듈

Claims (15)

  1. 제1 다항식 행렬 벡터 생성 과정에서 시드(seed)를 기초로 복수의 샘플값들을 포함하는 최초 샘플을 생성한 뒤 각 샘플값에 대한 수용-기각 평가를 통해 수용 샘플값들로 구성된 최종 샘플을 생성하고, 상기 수용-기각 평가 과정에서 기각이 발생한 경우 해당 기각 샘플값의 위치를 시퀀스화하여 기각 시퀀스 테이블(Rejection Sequence Table, RST)에 저장하는 단계; 및
    제2 다항식 행렬 벡터 생성 과정에서 상기 시드를 기초로 상기 최초 샘플을 생성한 뒤 상기 기각 시퀀스 테이블에 저장된 상기 기각 샘플값의 위치를 이용하여 상기 수용-기각 평가 과정의 수행없이 상기 수용 샘플값들을 선택하여 상기 최종 샘플을 생성하는 단계;를 포함하는 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 방법.
  2. 제1항에 있어서,
    상기 제1 다항식 행렬 벡터 생성 과정은 클라이언트(client)를 통해 수행되고,
    상기 제2 다항식 행렬 벡터 생성 과정은 서버(server)를 통해 수행되는 것을 특징으로 하는 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 방법.
  3. 제1항에 있어서,
    상기 제1 다항식 행렬 벡터 생성 과정은 CPU를 통해 수행되고,
    상기 제2 다항식 행렬 벡터 생성 과정은 GPU를 통해 병렬적으로 수행되는 것을 특징으로 하는 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 방법.
  4. 제3항에 있어서,
    상기 최종 샘플을 생성하는 단계는
    상기 GPU의 독립적인 스레드들 각각이 상기 기각 시퀀스 테이블을 참조하여 상기 수용 샘플값들에 직접 접근하는 단계를 포함하는 것을 특징으로 하는 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 방법.
  5. 제1항에 있어서,
    상기 제1 다항식 행렬 벡터 생성 과정의 상기 시드와 상기 기각 시퀀스 테이블만이 상기 제2 다항식 행렬 벡터 생성 과정으로 전달되는 것을 특징으로 하는 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 방법.
  6. 제1항에 있어서,
    상기 제1 및 제2 다항식 행렬 벡터 생성 과정들 각각은
    상기 최종 샘플의 각 샘플값을 다항식의 계수로 사용하는 행렬 생성 함수를 통해 수행되는 것을 특징으로 하는 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 방법.
  7. 제1항에 있어서,
    상기 제1 및 제2 다항식 행렬 벡터 생성 과정들 각각은
    양자내성암호(Post-Quantum Cryptography, PQC) 기반 전자서명 알고리즘(Digital Signature Algorithm, DSA)에 포함되어 수행되는 것을 특징으로 하는 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 방법.
  8. 제1항에 있어서,
    상기 기각 시퀀스 테이블에 저장하는 단계는
    상기 시드가 갱신될 때마다 상기 기각 시퀀스 테이블을 갱신하는 단계를 포함하는 것을 특징으로 하는 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 방법.
  9. 제1항에 있어서,
    상기 기각 시퀀스 테이블에 저장하는 단계는
    상기 최초 샘플의 각 샘플값에 대한 기각 발생 순서에 따라 상기 해당 기각 샘플값의 위치를 상기 기각 시퀀스 테이블에 순차적으로 저장하는 단계를 포함하는 것을 특징으로 하는 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 방법.
  10. 제1 다항식 행렬 벡터 생성 과정에서 시드(seed)를 기초로 복수의 샘플값들을 포함하는 최초 샘플을 생성한 뒤 각 샘플값에 대한 수용-기각 평가를 통해 수용 샘플값들로 구성된 최종 샘플을 생성하고, 상기 수용-기각 평가 과정에서 기각이 발생한 경우 해당 기각 샘플값의 위치를 시퀀스화하여 기각 시퀀스 테이블(Rejection Sequence Table, RST)에 저장하는 제1 연산 모듈; 및
    제2 다항식 행렬 벡터 생성 과정에서 상기 시드를 기초로 상기 최초 샘플을 생성한 뒤 상기 기각 시퀀스 테이블에 저장된 상기 기각 샘플값의 위치를 이용하여 상기 수용-기각 평가 과정의 수행없이 상기 수용 샘플값들을 선택하여 상기 최종 샘플을 생성하는 제2 연산 모듈;을 포함하는 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 장치.
  11. 제10항에 있어서, 상기 제1 연산 모듈은
    상기 제1 다항식 행렬 벡터 생성 과정의 상기 시드와 상기 기각 시퀀스 테이블만을 상기 제2 연산 모듈에게 전달하는 것을 특징으로 하는 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 장치.
  12. 제10항에 있어서, 상기 제1 연산 모듈은
    상기 시드가 갱신될 때마다 상기 기각 시퀀스 테이블을 갱신하는 것을 특징으로 하는 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 장치.
  13. 제12항에 있어서, 상기 제2 연산 모듈은
    상기 최종 샘플의 모든 샘플값을 사용한 경우 상기 제1 연산 모듈에게 상기 시드의 갱신을 요청하는 것을 특징으로 하는 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 장치.
  14. 제10항에 있어서, 상기 제1 및 제2 연산 모듈들은
    상기 최종 샘플의 각 샘플값을 다항식의 계수로 사용하여 랜덤화된 다항식 행렬 벡터를 생성하는 연산 모듈에 포함되어 구현되는 것을 특징으로 하는 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 장치.
  15. 제1항의 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 방법이 적용된 전자서명 및 암호화 연산 방법.
KR1020220027485A 2022-03-03 2022-03-03 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 장치, 방법 및 그 방법을 이용한 전자서명 및 암호화 연산 방법 KR20230130382A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220027485A KR20230130382A (ko) 2022-03-03 2022-03-03 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 장치, 방법 및 그 방법을 이용한 전자서명 및 암호화 연산 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220027485A KR20230130382A (ko) 2022-03-03 2022-03-03 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 장치, 방법 및 그 방법을 이용한 전자서명 및 암호화 연산 방법

Publications (1)

Publication Number Publication Date
KR20230130382A true KR20230130382A (ko) 2023-09-12

Family

ID=88019943

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220027485A KR20230130382A (ko) 2022-03-03 2022-03-03 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 장치, 방법 및 그 방법을 이용한 전자서명 및 암호화 연산 방법

Country Status (1)

Country Link
KR (1) KR20230130382A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210130196A (ko) 2019-02-19 2021-10-29 메사추세츠 인스티튜트 오브 테크놀로지 양자-보안 사물 인터넷을 위한 설정가능한 래티스 암호 프로세서 및 관련된 기법들

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210130196A (ko) 2019-02-19 2021-10-29 메사추세츠 인스티튜트 오브 테크놀로지 양자-보안 사물 인터넷을 위한 설정가능한 래티스 암호 프로세서 및 관련된 기법들

Similar Documents

Publication Publication Date Title
JP7221954B2 (ja) 変更から検証鍵を保護し、正当性のプルーフの有効性を確かめるためのシステム
CN107819569B (zh) 登录信息的加密方法及终端设备
US10467389B2 (en) Secret shared random access machine
CN103546288A (zh) Sm2数字签名生成算法的实现方法及装置
CN111950030A (zh) 基于区块链的数据共享存储方法、终端设备和存储介质
CN111611621A (zh) 基于区块链的分布式数据加密存储方法和电子设备
CN109376021A (zh) 接口调用的响应方法及服务器
CN111950032A (zh) 基于区块链的数据存储方法、终端设备和存储介质
CN112613053A (zh) 一种数据加解密方法及装置
Longo et al. How low can you go? Using side-channel data to enhance brute-force key recovery
CN113454597A (zh) 区块链交易处理系统和方法
CN111629063A (zh) 基于区块链的分布式文件下载的方法和电子设备
CN111610938B (zh) 分布式数据编码存储方法、电子设备和计算机可读存储介质
KR102553775B1 (ko) 연산 결과를 증명 및 검증하는 페어링 기반 영지식 증명 프로토콜 시스템
KR20230130382A (ko) 기각 시퀀스 테이블을 이용한 기각 샘플링 병렬 최적화 장치, 방법 및 그 방법을 이용한 전자서명 및 암호화 연산 방법
US20210344510A1 (en) Computer-implemented system and method including public key combination verification
CN111931204A (zh) 用于分布式系统的加密去重存储方法、终端设备
AU2019223507A1 (en) Secure computation device, secure computation authentication system, secure computation method, and program
US9842086B2 (en) Calculation device, calculation method, and program
CN114466012A (zh) 内容初始化方法、装置、电子设备和存储介质
Yuan et al. Portable Implementation of Postquantum Encryption Schemes and Key Exchange Protocols on JavaScript‐Enabled Platforms
CN113467974A (zh) 一种标识信息生成方法
CN103198258B (zh) 复合系统以及传输数据的方法
Tanygin et al. The Method for Reducing Memory Costs for Messages Processing
CN111949738A (zh) 基于区块链的数据存储去重方法、终端设备和存储介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal