KR101952547B1 - 격자-기반 암호시스템용 ntt-기반 다항식 곱셈 방법 및 장치 - Google Patents

격자-기반 암호시스템용 ntt-기반 다항식 곱셈 방법 및 장치 Download PDF

Info

Publication number
KR101952547B1
KR101952547B1 KR1020180146673A KR20180146673A KR101952547B1 KR 101952547 B1 KR101952547 B1 KR 101952547B1 KR 1020180146673 A KR1020180146673 A KR 1020180146673A KR 20180146673 A KR20180146673 A KR 20180146673A KR 101952547 B1 KR101952547 B1 KR 101952547B1
Authority
KR
South Korea
Prior art keywords
ntt
processor
polynomial
intt
multiplication
Prior art date
Application number
KR1020180146673A
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 KR1020180146673A priority Critical patent/KR101952547B1/ko
Application granted granted Critical
Publication of KR101952547B1 publication Critical patent/KR101952547B1/ko

Links

Images

Classifications

    • 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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5324Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers
    • 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/552Indexing scheme relating to groups G06F7/552 - G06F7/5525
    • G06F2207/5523Calculates a power, e.g. the square, of a number or a function, e.g. polynomials

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

격자-기반 암호시스템용 NTT-기반 다항식 곱셈 방법 및 장치가 제시된다. 본 발명에서 제안하는 격자-기반 암호시스템용 NTT-기반 다항식 곱셈 장치는 곱하고자 하는 두 다항식에 대하여 NTT 연산하는 NTT 프로세서, 두 다항식에 대한 NTT 연산의 결과를 점 곱셈(Point-wise Multiplication) 연산하는 PWM 프로세서, 점 곱셈 연산의 결과를 INTT 연산하는 INTT 프로세서 및 다항식 곱셈 과정에서의 모든 연산 값을 이용하여 환의 조건을 만족시키도록 조정하는 모듈러 감소(Modular Reduction) 프로세서를 포함한다.

Description

격자-기반 암호시스템용 NTT-기반 다항식 곱셈 방법 및 장치{Method and Apparatus for Number Theoretic Transform based Polynomial Multiplier For Lattice based Cryptosystem}
본 발명은 격자-기반 암호시스템용 NTT-기반 다항식 곱셈 장치 및 방법에 관한 것으로, 보다 상세하게는, NTT 연산에서 스테이지를 8-병렬 연산과 파이프라인 연산을 함으로써 클럭 속도를 높이고, MDF(Multi-path Delay Feedback) 구조를 적용하여 데이터 처리율을 높인 다항식 곱셈기에 관한 것이다.
최근 들어 미래의 양자컴퓨터(Quantum Computer)를 대비하여 격자-기반(Lattice-based) 암호, 해시-기반(Hash-based) 암호, 코드-기반(Code-based) 암호 등의 다양한 암호 알고리즘들의 연구가 진행되고 있다. 이 중 격자-기반 암호는 격자위의 수학적 난제들을 기반으로 하며 가장 활발한 연구가 진행되고 있다. 격자-기반의 암호 알고리즘들은 수백 차원의 격자에서 임의의 위치에 가장 가까운 점(Lattice Point)을 찾기가 어렵다는 것을 근거로 하며, 격자 에서의 연산들은 수식적으로 다항식으로 표현한다.
NTT(Number Theoretic Transform) 연산은 유한체 환(Ring)안에 갇혀 동작하는 FFT(Fast Fourie Transform) 변환식이다. 환의 조건은
Figure 112018117333922-pat00001
이며 n은 NTT에서 연산되는 다항식의 차수이다. NTT 연산을 기반으로 하는 다항식 곱셈기는 FFT 이론과 콘볼루션 이론(Convolution Theory)으로 구성되며 계산 복잡도를 줄임과 동시에 다항식 계산까지 수행할 수 있다. 이때, NTT가 환에서 동작을 하기 위해 모듈러 감소(Modular Reduction)를 필요로 한다.
NTT 연산은 파이프 라인 구조를 이용하여 하드웨어 설계가 가능하다. NTT 연산의 파이프 라인 구조는 데이터의 흐름에 따라 SDF(Single-path Delay Feedback) 구조, MDF(Multi-path Delay Feedback) 구조, MDC(Multi-Path Delay Commutator) 구조로 설계할 수 있다. SDF 구조는 BU(Butterfly Unit)의 결과 값을 레지스터에 저장한 다음 피드백 구조를 이용하여 연산한다. SDF 구조는 적은 하드웨어 복잡도를 가지고 있지만 데이터 처리율(Data Throughput)이 낮다는 특징이 있다. MDC 구조는 전환기(Commutator)를 사용하여 데이터 처리율은 높지만 하드웨어 복잡도 역시 높다. MDF 방식은
Figure 112018117333922-pat00002
-병렬 구조일 때 N-스테이지만큼 BU를 공유할 수 있고, 파이프라인 적용시 하드웨어 대비 높은 데이터 처리율을 가진다.
본 발명이 이루고자 하는 기술적 과제는 다항식 곱셈이 많이 사용되는 격자-기반 암호시스템을 위하여 저복잡도 고성능의 다항식 곱셈기를 제공하는데 있다. 이처럼, 효율적인 다항식 곱셈기를 위해 NTT 연산의 BU 스테이지를 8-병렬 연산 및 파이프라인 구조를 사용하여 클럭 속도를 만족시키는 방법을 제공한다. 또한, 하드웨어의 복잡도를 줄이고 데이터 처리율을 높일 수 있는 MDF 구조를 적용한 NTT-기반 다항식 곱셈기를 제공하고자 한다.
일 측면에 있어서, 본 발명에서 제안하는 격자-기반 암호시스템용 NTT-기반 다항식 곱셈 장치는 곱하고자 하는 두 다항식에 대하여 NTT 연산하는 NTT 프로세서, 두 다항식에 대한 NTT 연산의 결과를 점 곱셈(Point-wise Multiplication) 연산하는 PWM 프로세서, 점 곱셈 연산의 결과를 INTT 연산하는 INTT 프로세서 및 다항식 곱셈 과정에서의 모든 연산 값을 이용하여 환의 조건을 만족시키도록 조정하는 모듈러 감소(Modular Reduction) 프로세서를 포함한다.
NTT 프로세서는 512차 다항식을 수신할 수 있는 다항식 곱셈기의 입력에 대해 NTT 연산을 수행하는 8-병렬 MDF-기반 NTT 프로세서이다.
INTT 프로세서는 512차 다항식을 수신할 수 있는 다항식 곱셈기의 입력에 대해 NTT 연산을 수행하는 8-병렬 MDF-기반 INTT 프로세서이다.
모듈러 감소 프로세서는 SAMS2 알고리즘을 이용하여 다항식 연산의 결과가 미리 정해진 소수(Prime Number)의 값보다 크지 않도록 결과 값을 조정한다.
또 다른 일 측면에 있어서, 본 발명에서 제안하는 격자-기반 암호시스템용 NTT-기반 다항식 곱셈 방법은 NTT 프로세서를 통해 곱하고자 하는 두 다항식에 대하여 NTT 연산하는 단계, 두 다항식에 대한 NTT 연산의 결과를 점 곱셈(Point-wise Multiplication)을 이용하여 연산하는 단계, 점 곱셈 연산의 결과를 INTT 프로세서를 통해 INTT 연산하는 단계 및 다항식 곱셈 과정에서의 모든 연산 값을 이용하여 모듈러 감소(Modular Reduction) 프로세서를 통해 환의 조건을 만족시키는 단계를 포함한다.
본 발명의 실시예들에 따르면 다항식 곱셈기 설계에 있어서 곱셈기 내부에 높은 데이터 처리율을 갖는 8-병렬 MDF-기반 NTT 프로세서를 배치하여 곱셈 과정을 병렬 처리함으로써, 곱셈 과정 지연 시간을 줄이고 높은 데이터 처리량을 가질 수 있다. 또한, 파이프 라인을 사용함으로써, 높은 클럭 속도를 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 NTT-기반 다항식 곱셈기의 도면을 나타낸다.
도 2는 본 발명의 일 실시예에 따른 NTT-기반 다항식 곱셈기의 과정을 나타낸다.
도 3은 NTT 연산에서 사용된 쿨리-튜키(Cooley-Tukey) 알고리즘의 신호 흐름도이다.
도 4는 INTT 연산에서 사용된 젠틀맨-산데(Gentleman-Sande) 알고리즘의 신호 흐름도이다.
도 5는 본 발명에서 제안하는 NTT-기반 다항식 곱셈기에서 8-병렬 MDF-기반 NTT 프로세서의 도면이다.
도 6은 본 발명에서 제안하는 NTT-기반 다항식 곱셈기에서 8-병렬 MDF-기반 INTT 프로세서의 도면이다.
도 7는 MDF-기반 NTT 프로세서와 INTT 프로세서를 사용하는 다항식 곱셈기의 타이밍도이다.
도 8은 SAMS2 알고리즘을 사용하는 모듈러 감소(Modular Reduction)의 알고리즘을 나타낸다.
이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 NTT-기반 다항식 곱셈기의 도면을 나타낸다.
본 발명에서 제안하는 격자-기반 암호시스템용 NTT-기반 다항식 곱셈 장치는 곱하고자 하는 두 다항식에 대하여 NTT 연산하는 NTT 프로세서, 두 다항식에 대한 NTT 연산의 결과를 점 곱셈(Point-wise Multiplication) 연산하는 PWM 프로세서, 점 곱셈 연산의 결과를 INTT 연산하는 INTT 프로세서 및 다항식 곱셈 과정에서의 모든 연산 값을 이용하여 환의 조건을 만족시키도록 조정하는 모듈러 감소(Modular Reduction) 프로세서를 포함한다.
본 발명의 실시예에 따른 NTT 프로세서는 512차 다항식을 수신할 수 있는 다항식 곱셈기의 입력에 대해 NTT 연산을 수행하는 8-병렬 MDF-기반 NTT 프로세서일 수 있다.
본 발명의 실시예에 따른 INTT 프로세서는 512차 다항식을 수신할 수 있는 다항식 곱셈기의 입력에 대해 NTT 연산을 수행하는 8-병렬 MDF-기반 INTT 프로세서일 수 있다.
모듈러 감소 프로세서는 SAMS2 알고리즘을 이용하여 다항식 연산의 결과가 미리 정해진 소수(Prime Number)의 값보다 크지 않도록 결과 값을 조정한다.
도 1를 참조하면, 곱하고자 하는 두 다항식 a(x)와 b(x)가 수신되어 NTT 연산 및 INTT 연산을 수행하고 곱셈의 결과인 c(x)가 출력된다.
도 2는 본 발명의 일 실시예에 따른 NTT-기반 다항식 곱셈기의 과정을 나타낸다.
구하고자 하는 두 다항식 A와 B가 수신되면 NTT 연산을 개별적으로 진행한다. 수학식 1은 NTT의 연산식을 나타낸다.
Figure 112018117333922-pat00003
수학식 1
다항식 A는 환 안에 닫혀 있으며 구성원 a는 길이가 n 벡터로 이루어져 있다. 벡터(Vector)
Figure 112018117333922-pat00004
는 다항식 A의 계수이다. 숫자 n은 1의 n 제곱근(root of unity)이다. 즉 1 mod q 의 식을 만족해야 한다. 또한 n과 w는
Figure 112018117333922-pat00005
,
Figure 112018117333922-pat00006
의 조건을 만족하는 숫자로 구성된다.
개별적으로 진행된 두 입력 다항식 A와 B에대한 NTT의 결과는 점 곱셈(Point-wise Multiplication)을 사용하여 같은 차수의 계수들끼리 점 곱셈을 수행한다. 점 곱셈 수행 결과는 다시 INTT 연산을 진행하여 최종적으로 두 다항식 A와 B에 대한 곱셈 결과를 얻는다. 수학식 2는 INTT 연산식을 나타낸다.
Figure 112018117333922-pat00007
수학식 2
각 연산에서는 결과 값이 환의 조건을 만족시키도록 모듈러 감소(Modular Reduction) 연산을 수행한다. 수학식 3은 NTT-기반 다항식 곱셈기의 연산식을 나타낸다.
Figure 112018117333922-pat00008
수학식 3
도 3은 NTT 연산에서 사용된 쿨리-튜키(Cooley-Tukey) 알고리즘의 신호 흐름도이다.
도 4는 INTT 연산에서 사용된 젠틀맨-산데(Gentleman-Sande) 알고리즘의 신호 흐름도이다.
본 발명에서 제안하는 다항식 곱셈기의 NTT 프로세서는 쿨리-튜키(Cooley-Tukey) 알고리즘을 사용하며 8-병렬 구조를 가진다. 첫번째 BU 스테이지는 32-포인트(point)로 동작을 하며 파이 곱셈을 한다. 그 후 결과 값을 환의 조건에 맞추기 위하여 모듈러 감소(Modular Reduction) 연산을 수행한다. 이후의 BU 스테이지는 다시 16- 포인트부터 2- 포인트 계산을 하는 기본 BU 스테이지로 구성되어 있으며 NTT 프로세서에는 총 9개의 스테이지가 있다. 본 발명에서 제안하는 다항식 곱셈기의 INTT 프로세서는 젠틀맨-산데(Gentleman-Sande) 알고리즘을 사용하며 NTT 프로세서와 마찬가지로 8-병렬 구조를 가진다. NTT 프로세서와는 다르게 INTT 프로세서는 2-포인트 BU 스테이지부터 시작하여 32-포인트 BU 스테이지 순으로 구성된다.
도 5는 본 발명에서 제안하는 NTT-기반 다항식 곱셈기에서 8-병렬 MDF-기반 NTT 프로세서의 도면이다.
MDF 구조의 데이터 흐름은 8-병렬을 가지고 있다. MDF는 FIFO를 사용한 피드백 구조를 가지고 있고, 각 BU 스테이지의 사이에는 높은 클럭 속도를 위한 파이프라인 구조가 위치한다. 각 BU 스테이지는 BU 연산을 위한 특정한 시간의 지연을 위해 FIFO를 사용하며, 이후 BU 연산을 진행한 후 파이 값과 곱해진다. 도 5의 MDF-기반 NTT 프로세서는 9개의 스테이지에 맞추어서 구성되어 있으며, 도 5에 나타나는 과정처럼 입력 a(x)와 b(x)에 대해서 NTT 연산을 진행한다. NTT 연산의 내부에는 환의 조건을 만족시키기 위한 모듈러 감소 프로세서가 존재하며, 입력 A와 B에 대한 NTT 연산 결과 값은 PWM(Point-wise Multiplication) 프로세서에서 점 곱셈을 하여 c'(x)를 출력한다.
도 6은 본 발명에서 제안하는 NTT-기반 다항식 곱셈기에서 8-병렬 MDF-기반 INTT 프로세서의 도면이다.
도 5의 MDF-기반 NTT 프로세서와 마찬가지로 9개의 스테이지에 맞추어서 구성되어 있으며 도 5의 연산 결과인 c'(x)를 입력으로 받는다. 도 6의 입력 값은 INTT 연산을 수행한 후 최종적으로 도 5의 두 입력에 대한 곱셈 결과인 c(x)가 출력된다. NTT-기반 다항식 곱셈기의 수식은 상기 수학식 3과 같다.
도 7는 MDF-기반 NTT 프로세서와 INTT 프로세서를 사용하는 다항식 곱셈기의 타이밍도이다.
MDC-기반 NTT 프로세서를 사용하는 다항식 곱셈기는 곱하고자 하는 두 입력 a와 b에 대해서, 입력 a의 NTT 연산이 완료된 후에 입력 b의 연산을 진행한다. 하지만 본 발명에서 제안하는 MDF-기반 NTT 프로세서를 이용한 다항식 곱셈기는 곱하고자 하는 두 입력 a와 b에 대해 동시에 NTT 연산을 수행하여 시간 소비 측면에서 효율적인 연산을 진행한다. 다항식 곱셈기에서 레이턴시(Latency)을 비교하면 MDC-기반 NTT 프로세서를 사용하는 다항식 곱셈기의 경우 409 클럭, MDF-기반 NTT 프로세서를 사용하는 다항식 곱셈의 경우 222 클럭이 사용되어서 본 발명에서 제안하는 다항식 곱셈기가 187 클럭의 시간 이득을 가진다.
도 8은 SAMS2 알고리즘을 사용하는 모듈러 감소(Modular Reduction)의 알고리즘을 나타낸다.
모듈러 감소는 배릿(Barret) 알고리즘을 이용한 SAMS2(Shift-Addition-Multiplication-Subtraction-Subtraction) 알고리즘을 사용한다. 28-비트의 정수 x를 입력(810)으로 받으면 입력을 총 7번의 서로 다른 시프트 연산을 수행(820)한 후 그 결과를 더한다(830). 시프트는 각각 14-비트, 16-비트, 18-비트, 20-비트, 22-비트, 24-비트 그리고 26-비트만큼 수행한다. 덧셈 결과 값은 다항식 곱셈기에서 사용하는 소수(Prime Number)인 12,289와 곱한다(840). 다시 모듈러 감소 프로세서의 28-비트를 가지는 입력 값에서 덧셈 결과와 소수를 곱한 값을 뺄셈한다(850). 뺄셈 값과 소수 값을 비교하여(860), 만약 뺄셈 값이 소수 12,289 보다 작으면 뺄셈 값을 그대로 출력하고(870), 소수 12,289 보다 크면 작아질 때까지 소수 12,289를 뺄셈한다(880).
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다.  또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다.  이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다.  예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다.  또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다.  소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다.  소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다.  상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.  상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.  컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.  프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다.  예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (8)

  1. 곱하고자 하는 두 다항식에 대하여 NTT 연산하는 NTT 프로세서;
    두 다항식에 대한 NTT 연산의 결과를 점 곱셈(Point-wise Multiplication) 연산하는 PWM 프로세서;
    점 곱셈 연산의 결과를 INTT 연산하는 INTT 프로세서; 및
    다항식 곱셈 과정에서의 모든 연산 값을 이용하여 환의 조건을 만족시키도록 조정하는 모듈러 감소(Modular Reduction) 프로세서
    를 포함하는 다항식 곱셈 장치.
  2. 제1항에 있어서,
    NTT 프로세서는,
    512차 다항식을 수신할 수 있는 다항식 곱셈기의 입력에 대해 NTT 연산을 수행하는 8-병렬 MDF-기반 NTT 프로세서인
    다항식 곱셈 장치.
  3. 제1항에 있어서,
    INTT 프로세서는,
    512차 다항식을 수신할 수 있는 다항식 곱셈기의 입력에 대해 NTT 연산을 수행하는 8-병렬 MDF-기반 INTT 프로세서인
    다항식 곱셈 장치.
  4. 제1항에 있어서,
    모듈러 감소 프로세서는,
    SAMS2 알고리즘을 이용하여 다항식 연산의 결과가 미리 정해진 소수(Prime Number)의 값보다 크지 않도록 결과 값을 조정하는
    다항식 곱셈 장치.
  5. NTT 프로세서를 통해 곱하고자 하는 두 다항식에 대하여 NTT 연산하는 단계;
    두 다항식에 대한 NTT 연산의 결과를 점 곱셈(Point-wise Multiplication)을 이용하여 연산하는 단계;
    점 곱셈 연산의 결과를 INTT 프로세서를 통해 INTT 연산하는 단계; 및
    다항식 곱셈 과정에서의 모든 연산 값을 이용하여 모듈러 감소(Modular Reduction) 프로세서를 통해 환의 조건을 만족시키는 단계
    를 포함하는 다항식 곱셈 방법.
  6. 제5항에 있어서,
    NTT 프로세서를 통해 곱하고자 하는 두 다항식에 대하여 NTT 연산하는 단계는,
    512차 다항식을 수신할 수 있는 다항식 곱셈기의 입력에 대해 NTT 연산을 수행하는 8-병렬 MDF-기반 NTT 프로세서를 이용하는
    다항식 곱셈 방법.
  7. 제5항에 있어서,
    점 곱셈 연산의 결과를 INTT 프로세서를 통해 INTT 연산하는 단계는,
    512차 다항식을 수신할 수 있는 다항식 곱셈기의 입력에 대해 NTT 연산을 수행하는 8-병렬 MDF-기반 INTT 프로세서를 이용하는
    다항식 곱셈 방법.
  8. 제5항에 있어서,
    다항식 곱셈 과정에서의 모든 연산 값을 이용하여 모듈러 감소(Modular Reduction) 프로세서를 통해 환의 조건을 만족시키는 단계는,
    SAMS2 알고리즘을 이용하여 다항식 연산의 결과가 미리 정해진 소수(Prime Number)의 값보다 크지 않도록 결과 값을 조정하는
    다항식 곱셈 방법.
KR1020180146673A 2018-11-23 2018-11-23 격자-기반 암호시스템용 ntt-기반 다항식 곱셈 방법 및 장치 KR101952547B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180146673A KR101952547B1 (ko) 2018-11-23 2018-11-23 격자-기반 암호시스템용 ntt-기반 다항식 곱셈 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180146673A KR101952547B1 (ko) 2018-11-23 2018-11-23 격자-기반 암호시스템용 ntt-기반 다항식 곱셈 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101952547B1 true KR101952547B1 (ko) 2019-02-26

Family

ID=65562639

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180146673A KR101952547B1 (ko) 2018-11-23 2018-11-23 격자-기반 암호시스템용 ntt-기반 다항식 곱셈 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101952547B1 (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112819168A (zh) * 2021-01-07 2021-05-18 南京航空航天大学 一种格密码加解密中的环多项式乘法器电路
US11206136B1 (en) 2020-05-27 2021-12-21 Nxp B.V. Method for multiplying polynomials for a cryptographic operation
US11444767B1 (en) 2021-03-03 2022-09-13 Nxp B.V. Method for multiplying polynomials for a cryptographic operation
KR102451633B1 (ko) * 2021-12-09 2022-10-06 인하대학교 산학협력단 동형암호를 위한 암호화 처리 장치 및 방법
KR102462395B1 (ko) 2022-03-08 2022-11-03 인하대학교 산학협력단 양자내성암호를 위한 모듈-lwe 기반 암호 프로세서 시스템 및 방법
KR102498123B1 (ko) * 2022-07-15 2023-02-09 인하대학교 산학협력단 동형암호를 위한 가변적으로 동작하는 ntt 기반 다항식 곱셈기 장치 및 방법
US11847938B2 (en) 2021-08-03 2023-12-19 Nxp B.V. Combining regular and symbolic NTTs using co-processors
WO2024117318A1 (ko) * 2022-11-30 2024-06-06 한국전자기술연구원 동형 암호문 연산을 프로세싱 인 메모리에서 수행하기 위한 맵핑 방법 및 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101652899B1 (ko) * 2015-07-27 2016-09-01 아주대학교 산학협력단 8-병렬 엠디씨 구조를 적용한 고속 푸리에 변환 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101652899B1 (ko) * 2015-07-27 2016-09-01 아주대학교 산학협력단 8-병렬 엠디씨 구조를 적용한 고속 푸리에 변환 장치

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11206136B1 (en) 2020-05-27 2021-12-21 Nxp B.V. Method for multiplying polynomials for a cryptographic operation
CN112819168A (zh) * 2021-01-07 2021-05-18 南京航空航天大学 一种格密码加解密中的环多项式乘法器电路
CN112819168B (zh) * 2021-01-07 2024-04-05 南京航空航天大学 一种格密码加解密中的环多项式乘法器电路
US11444767B1 (en) 2021-03-03 2022-09-13 Nxp B.V. Method for multiplying polynomials for a cryptographic operation
US11847938B2 (en) 2021-08-03 2023-12-19 Nxp B.V. Combining regular and symbolic NTTs using co-processors
KR102451633B1 (ko) * 2021-12-09 2022-10-06 인하대학교 산학협력단 동형암호를 위한 암호화 처리 장치 및 방법
KR102462395B1 (ko) 2022-03-08 2022-11-03 인하대학교 산학협력단 양자내성암호를 위한 모듈-lwe 기반 암호 프로세서 시스템 및 방법
KR102498123B1 (ko) * 2022-07-15 2023-02-09 인하대학교 산학협력단 동형암호를 위한 가변적으로 동작하는 ntt 기반 다항식 곱셈기 장치 및 방법
WO2024117318A1 (ko) * 2022-11-30 2024-06-06 한국전자기술연구원 동형 암호문 연산을 프로세싱 인 메모리에서 수행하기 위한 맵핑 방법 및 시스템

Similar Documents

Publication Publication Date Title
KR101952547B1 (ko) 격자-기반 암호시스템용 ntt-기반 다항식 곱셈 방법 및 장치
Bhardwaj et al. Power-and area-efficient approximate wallace tree multiplier for error-resilient systems
JP6526415B2 (ja) ベクトル・プロセッサおよび方法
Wang et al. FPGA implementation of a large-number multiplier for fully homomorphic encryption
Chung et al. A high-performance elliptic curve cryptographic processor over GF (p) with SPA resistance
Garrido The feedforward short-time fourier transform
US20200012707A1 (en) Digital Sample Rate Conversion
CN111695671A (zh) 训练神经网络的方法及装置、电子设备
Sasdrich et al. Exploring RFC 7748 for hardware implementation: Curve25519 and Curve448 with side-channel protection
Langhammer et al. Efficient FPGA modular multiplication implementation
TW202020654A (zh) 具有壓縮進位之數位電路
Sundhar et al. Performance analysis of Wallace tree multiplier with Kogge stone adder using 15-4 compressor
TWI743648B (zh) 加速非線性數學計算的系統及方法
El-Motaz et al. A cordic-friendly FFT architecture
Xu et al. Square-rich fixed point polynomial evaluation on FPGAs
KR102541388B1 (ko) Mdf 기반 ntt를 이용한 링-lwe 암호프로세서 장치 및 방법
US8798129B2 (en) Biquad infinite impulse response system transformation
Petrovsky et al. Design and implementation of reversible integer quaternionic paraunitary filter banks on adder-based distributed arithmetic
KR101707334B1 (ko) 효율적인 타원곡선 암호화 연산 장치 및 그 방법
Jiang et al. Adaptive filter design using stochastic circuits
US8516028B2 (en) System and method for providing memory bandwidth efficient correlation acceleration
Mankar et al. Multiplier‐less VLSI architectures for radix‐22 folded pipelined complex FFT core
KR101974779B1 (ko) 16비트 이하 양의 정수용 파이프라인형 제곱기
Shaffer Implementation of a parallel extended Kalman filter using a bit-serial silicon compiler
Van Der Byl et al. A many processing element framework for the discrete fourier transform

Legal Events

Date Code Title Description
GRNT Written decision to grant