동형암호 연산 방법 및 장치
HOMOMORPHIC ENCRYPTION OPEATION APPARATUS AND METHOD
특허 요약
NTT 처리 방법 및 장치가 개시된다. 일 실시 예에 따른 NTT 연산 방법은 다항식에 대응하는 행렬의 동일한 열의 원소들은 동일한 레인(lane) 그룹의 데이터 레인에 할당되도록 행렬의 원소를 데이터 레인에 할당하는 단계, 레인 그룹 별로 N의 네제곱근의 데이터 레인에 대한 제1 NTT 연산을 수행하는 단계, 제1 NTT 연산의 결과를 저장하는 버퍼의 읽기 순서의 조정에 기초하여, 행렬이 전치되도록 제1 NTT 연산의 결과를 데이터 레인에 할당하는 단계 및 레인 그룹 별로 N의 네제곱근의 데이터 레인에 대한 제2 NTT를 수행하는 단계를 포함할 수 있다.
청구항
번호청구항
1

다항식에 대응하는 행렬 - 상기 행렬은 정방 행렬이며, 상기 행렬에 포함된 원소의 개수는 N임 - 의 동일한 열의 원소들은 동일한 레인(lane) 그룹의 데이터 레인에 할당되도록 상기 행렬의 원소를 상기 데이터 레인에 할당하는 단계;상기 레인 그룹 별로 상기 N의 네제곱근의 데이터 레인에 대한 제1 NTT 연산을 수행하는 단계;상기 제1 NTT 연산의 결과를 저장하는 버퍼의 읽기 순서의 조정에 기초하여, 상기 행렬이 전치되도록 상기 제1 NTT 연산의 결과를 상기 데이터 레인에 할당하는 단계;상기 레인 그룹 별로 상기 N의 네제곱근의 데이터 레인에 대한 제2 NTT를 수행하는 단계를 포함하는, NTT 연산 방법.

2

제1항에 있어서,상기 행렬은 상기 다항식의 N개의 계수가 행 우선 순서(row-majored order)로 저장된 크기의 행렬인,NTT 연산 방법.

3

제1항에 있어서,상기 행렬은 크기의 서브행렬을 원소로 포함하는 4차원의 행렬에 대응되는,NTT 연산 방법.

4

제1항에 있어서,일 유형의 상기 데이터 레인에는 상기 행렬에 포함된 크기의 서브행렬의 원소가 할당되는,NTT 연산 방법.

5

제1항에 있어서,상기 레인 그룹은 개의 데이터 레인을 포함하고, NTT 연산의 한 사이클에서 일 유형의 레인 그룹의 개의 데이터 레인에는 상기 행렬의 동일한 열에 포함된 원소가 할당되는,NTT 연산 방법.

6

제1항에 있어서,일 유형의 레인 그룹에는 상기 행렬 내 연속적인 개의 열에 포함된 원소가 할당되는,NTT 연산 방법.

7

제1항에 있어서,상기 제1 NTT 연산 및 상기 제2 NTT 연산은상기 행렬의 열에 대한 버터플라이(butterfly) 연산;트위스팅 연산;상기 행렬의 전치 연산; 및상기 행렬의 행에 대한 버터플라이 연산을 포함하는,NTT 연산 방법.

8

제1항에 있어서,상기 제1 NTT 연산 및 상기 제2 NTT 연산은DFT(Discrete Fourier Transform) 연산 및 FFT 연산 중 적어도 하나를 포함하는,NTT 연산 방법.

9

제1항에 있어서,상기 트위스팅 연산은 일정 공비의 등비 수열에 대응하는 트위들 요인(twiddle factor)에 기초하여 수행되는,NTT 연산 방법.

10

제1항에 있어서,상기 레인 그룹의 개수는 하나 이상 및 상기 N의 네제곱근 이하로 결정되는,NTT 연산 방법.

11

제1항에 있어서,상기 제2 NTT 연산의 결과는 레지스터 파일에 저장하는 단계를 더 포함하는,NTT 연산 방법.

12

하드웨어와 결합되어 제1항 내지 제11항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.

13

다항식에 대응하는 행렬- 상기 행렬은 정방 행렬이며, 상기 행렬에 포함된 원소의 개수는 N임 - 의 원소가 할당되는 데이터 레인;상기 N의 네제곱근의 데이터 레인을 포함하는 레인 그룹에 대응하는 NTT 연산을 위한 서브모듈; 및상기 서브모듈에 대응하는 전치 및 트위스팅 유닛을 포함하고,상기 서브모듈은상기 N의 네제곱근의 데이터 레인에 대한 제1 NTT 연산을 수행하는 제1 NTT 유닛 및 상기 N의 네제곱근의 데이터 레인에 대한 제2 NTT 연산을 수행하는 제2 NTT 유닛을 포함하는,NTT 연산기.

14

제13항에 있어서,상기 전치 및 트위스팅 유닛은 상기 제1 NTT 유닛의 연산 결과를 저장하는 버퍼를 더 포함하는,NTT 연산기.

15

제13항에 있어서,상기 제2 NTT 유닛의 연산 결과를 저장하는 레지스터를 더 포함하는,NTT 연산기.

16

제13항에 있어서,상기 서브모듈은상기 서브모듈의 버터플라이 연산에서 요구되는 트위들 요인을 제공하는 트위들 요인 피더를 더 포함하는,NTT 연산기.

17

제13항에 있어서,상기 제1 NTT 연산 및 상기 제2 NTT 연산은상기 행렬의 열에 대한 버터플라이(butterfly) 연산;트위스팅 연산;상기 행렬의 전치 연산; 및상기 행렬의 행에 대한 버터플라이 연산을 포함하는,NTT 연산기.

18

제1항에 있어서,상기 제1 NTT 연산 및 상기 제2 NTT 연산은DFT(Discrete Fourier Transform) 연산 및 FFT 연산 중 적어도 하나를 포함하는,NTT 연산기.

19

제13항에 있어서,상기 레인 그룹은 개의 데이터 레인을 포함하고, NTT 연산의 한 사이클에서 일 유형의 레인 그룹의 개의 데이터 레인에는 상기 행렬의 동일한 열에 포함된 원소가 할당되는,NTT 연산기.

20

제13항에 있어서,일 유형의 레인 그룹에는 상기 행렬 내 연속적인 개의 열에 포함된 원소가 할당되는,NTT 연산기.