KR102203238B1 - 모듈러 곱셈 연산을 수행하는 연산 장치 및 방법 - Google Patents
모듈러 곱셈 연산을 수행하는 연산 장치 및 방법 Download PDFInfo
- Publication number
- KR102203238B1 KR102203238B1 KR1020190160760A KR20190160760A KR102203238B1 KR 102203238 B1 KR102203238 B1 KR 102203238B1 KR 1020190160760 A KR1020190160760 A KR 1020190160760A KR 20190160760 A KR20190160760 A KR 20190160760A KR 102203238 B1 KR102203238 B1 KR 102203238B1
- Authority
- KR
- South Korea
- Prior art keywords
- multiplication
- ciphertext
- information
- module
- result
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000012545 processing Methods 0.000 title description 7
- 238000004364 calculation method Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 description 22
- 238000004891 communication Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 239000013598 vector Substances 0.000 description 6
- 238000009826 distribution Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
Description
도 2는 본 개시의 일 실시 예에 따른 연산 장치의 구성을 나타낸 블럭도,
도 3은 본 개시의 일 실시 예에 따른 암호문 연산 방법을 설명하기 위한 흐름도,
도 4는 본 개시의 제1 실시 예에 따른 모듈 연산 방법을 설명하기 위한 도면,
도 5는 도 4의 알고리즘으로 동작하는 아크텍처를 도시한 도면,
도 6은 본 개시의 제2 실시 예에 따른 모듈 연산 방법을 설명하기 위한 도면,
도 7은 도 6의 알고리즘으로 동작하는 아크텍처를 도시한 도면,
도 8은 본 개시의 일 실시 예에 따른 소수 세트의 예를 도시한 도면,
도 9는 병렬적으로 모듈 연산을 수행하는 방법을 설명하기 위한 도면, 그리고,
도 10은 병렬적으로 모듈 연산을 수행하는 경우의 효과를 설명하기 위한 도면이다.
300: 제2 서버 장치 400: 연산 장치
410: 통신 장치 420: 메모리
430: 디스플레이 440: 조작 입력 장치
450: 프로세서
Claims (15)
- 복수의 암호문에 대한 모듈 연산 명령을 입력받는 단계;
기결정된 복수의 소수 정보를 저장하는 룩업 테이블을 이용하여 상기 복수의 암호문에 대한 모듈 연산을 수행하는 단계; 및
상기 연산 결과를 출력하는 단계;를 포함하고,
상기 복수의 소수 정보 각각은,
2의 지수승들의 조합으로 표현되고,
상기 모듈 연산을 수행하는 단계는,
소수(prime number)를 구성하는 복수의 2의 지수승 각각의 지수(exponent)에 기초하여 개별적인 시프트 연산을 수행하고, 시프트 연산 결과들을 가산 연산 또는 감산 연산하고,
상기 소수는,
서로 다른 지수로 구성된 3개 또는 4개의 2의 지수승들의 감가산 값인 암호문 연산 방법. - 삭제
- 삭제
- 복수의 암호문에 대한 모듈 연산 명령을 입력받는 단계;
기결정된 복수의 소수 정보를 저장하는 룩업 테이블을 이용하여 상기 복수의 암호문에 대한 모듈 연산을 수행하는 단계; 및
상기 연산 결과를 출력하는 단계;를 포함하고,
상기 룩업 테이블은,
261-226+1, 261-224-220+1, 261-224+1, 261-222+219+1, 261-221+1, 261-221+216+1, 261+222+220+1, 261+223-218+1, 261+223+221+1, 261+224-219+1, 261+225+223+1 또는 261+226+216+1 중 적어도 하나를 포함하는 암호문 연산 방법. - 복수의 암호문에 대한 모듈 연산 명령을 입력받는 단계;
기결정된 복수의 소수 정보를 저장하는 룩업 테이블을 이용하여 상기 복수의 암호문에 대한 모듈 연산을 수행하는 단계; 및
상기 연산 결과를 출력하는 단계;를 포함하고,
상기 모듈 연산을 수행하는 단계는,
제1 암호문 및 제2 암호문을 제1 곱셈 연산하는 단계;
상기 복수의 소수 정보 중 하나의 소수 정보에 대응되는 역수 정보와 상기 제1 곱셈 연산 결과를 제2 곱셈 연산하는 단계;
상기 제2 곱셈 연산 결과와 상기 하나의 소수 정보를 이용하여 제3 곱셈 연산하는 단계; 및
상기 제1 곱셈 연산 결과와 상기 제3 곱셈 연산 결과를 감산 연산하는 단계;를 포함하는 암호문 연산 방법. - 제5항에 있어서,
상기 하나의 소수 정보는,
2의 지수승들의 정보를 포함하고,
상기 제3 곱셈 연산하는 단계는,
상기 복수의 2의 지수승 각각의 지수에 기초하여 개별적인 시프트 연산을 수행하고, 시프트 연산 결과들을 가산 연산 또는 감산 연산하여 제3 곱셈 연산을 수행하는 암호문 연산 방법. - 제5항에 있어서,
상기 역수 정보는,
2의 지수승들의 정보를 포함하고,
상기 제2 곱셈하는 단계는,
상기 복수의 2의 지수승 각각의 지수에 기초하여 개별적인 시프트 연산을 수행하고, 시프트 연산 결과들을 가산 연산 또는 감산 연산하여 제2 곱셈 연산을 수행하는 암호문 연산 방법. - 제5항에 있어서,
상기 제2 곱셈 연산하는 단계 및 상기 제3 곱셈 연산하는 단계는,
연산 결과를 상기 제1 암호문 또는 상기 제2 암호문의 비트 수와 같은 크기의 비트 수로 출력하는 암호문 연산 방법. - 복수의 암호문에 대한 모듈 연산 명령을 입력받는 단계;
기결정된 복수의 소수 정보를 저장하는 룩업 테이블을 이용하여 상기 복수의 암호문에 대한 모듈 연산을 수행하는 단계; 및
상기 연산 결과를 출력하는 단계;를 포함하고,
상기 모듈 연산을 수행하는 단계는,
'하나의 소수 정보에 대응되는 역수와 제2 암호문을 곱셈 연산한 사전 계산 값'과 제1 암호문을 제1 곱셈 연산하는 단계;
상기 제1 암호문과 상기 제2 암호문을 제2 곱셈 연산하는 단계;
상기 제1 곱셈 연산된 결과에 상기 소수 정보를 이용하여 제3 곱셈 연산하는 단계; 및
상기 제2 곱셈 연산 결과와 상기 제3 곱셈 연산 결과를 감산 연산하는 단계;를 포함하는 암호문 연산 방법. - 복수의 암호문에 대한 모듈 연산 명령을 입력받는 단계;
기결정된 복수의 소수 정보를 저장하는 룩업 테이블을 이용하여 상기 복수의 암호문에 대한 모듈 연산을 수행하는 단계; 및
상기 연산 결과를 출력하는 단계;를 포함하고,
상기 소수 정보에 대응되는 소수 값은,
복수의 서로 다른 스케일링 팩터를 승산한 값이며,
상기 복수의 서로 다른 스케일링 팩터들은 서로 소 관계인 값들인 암호문 연산 방법. - 제10항에 있어서,
상기 모듈 연산을 수행하는 단계는,
상기 복수의 암호문 각각의 기저별로 모듈 연산을 수행하는 암호문 연산 방법. - 연산 장치에 있어서,
적어도 하나의 인스트럭션(instruction) 및 기결정된 복수의 소수 정보를 저장하는 메모리; 및
상기 적어도 하나의 인스트럭션을 실행하는 프로세서;를 포함하고,
상기 프로세서는,
상기 적어도 하나의 인스트럭션을 실행함으로써,
상기 기결정된 복수의 소수 정보 중 하나의 소수 정보를 이용하여 복수의 암호문에 대한 모듈 연산을 수행하고,
상기 소수 정보에 대응되는 소수 값은,
복수의 서로 다른 스케일링 팩터를 승산한 값이며,
상기 복수의 서로 다른 스케일링 팩터들은 서로 소 관계인 값들이며,
상기 프로세서는,
상기 복수의 암호문 각각의 기저별로 모듈 연산을 수행하는 연산 장치. - 제12항에 있어서,
상기 복수의 소수 정보 각각은,
2의 지수승들의 조합으로 표현되고,
상기 프로세서는,
소수(prime number)를 구성하는 복수의 2의 지수승 각각의 지수(exponent)에 기초하여 개별적인 시프트 연산을 수행하고, 시프트 연산 결과들을 가산 연산 또는 감산 연산하는 연산 장치. - 삭제
- 제12항에 있어서,
상기 프로세서는,
FPGA(Field Programmable Gate Array)인 연산 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/811,555 US11509454B2 (en) | 2019-05-22 | 2020-03-06 | Apparatus for processing modular multiply operation and methods thereof |
PCT/KR2020/004105 WO2020235797A1 (en) | 2019-05-22 | 2020-03-26 | Apparatus for processing modular multiply operation and methods thereof |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190059940 | 2019-05-22 | ||
KR20190059940 | 2019-05-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200135129A KR20200135129A (ko) | 2020-12-02 |
KR102203238B1 true KR102203238B1 (ko) | 2021-01-14 |
Family
ID=73791919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190160760A Active KR102203238B1 (ko) | 2019-05-22 | 2019-12-05 | 모듈러 곱셈 연산을 수행하는 연산 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102203238B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240008787A (ko) * | 2022-07-12 | 2024-01-19 | 한국전자통신연구원 | 가속기 장치 및 가속기 장치의 동작 방법 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115525906A (zh) * | 2021-06-24 | 2022-12-27 | 清华大学无锡应用技术研究院 | 密文整数的处理方法、装置、系统及存储介质 |
CN114139693B (zh) * | 2021-12-03 | 2024-08-13 | 安谋科技(中国)有限公司 | 神经网络模型的数据处理方法、介质和电子设备 |
CN114584284B (zh) * | 2022-04-15 | 2024-10-15 | 支付宝(杭州)信息技术有限公司 | 同态加密操作方法、装置和电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030065696A1 (en) * | 2001-09-28 | 2003-04-03 | Ruehle Michael D. | Method and apparatus for performing modular exponentiation |
US20140355758A1 (en) * | 2011-12-15 | 2014-12-04 | Inside Secure | Method of generating prime numbers proven suitable for chip cards |
-
2019
- 2019-12-05 KR KR1020190160760A patent/KR102203238B1/ko active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030065696A1 (en) * | 2001-09-28 | 2003-04-03 | Ruehle Michael D. | Method and apparatus for performing modular exponentiation |
US20140355758A1 (en) * | 2011-12-15 | 2014-12-04 | Inside Secure | Method of generating prime numbers proven suitable for chip cards |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240008787A (ko) * | 2022-07-12 | 2024-01-19 | 한국전자통신연구원 | 가속기 장치 및 가속기 장치의 동작 방법 |
KR102810367B1 (ko) | 2022-07-12 | 2025-05-22 | 한국전자통신연구원 | 가속기 장치 및 가속기 장치의 동작 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20200135129A (ko) | 2020-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11509454B2 (en) | Apparatus for processing modular multiply operation and methods thereof | |
KR102040106B1 (ko) | 실수 평문에 대한 동형 암호화 방법 | |
KR102203238B1 (ko) | 모듈러 곱셈 연산을 수행하는 연산 장치 및 방법 | |
KR102297536B1 (ko) | 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법 | |
US11239995B2 (en) | Apparatus for processing approximately encrypted messages and methods thereof | |
KR101965628B1 (ko) | 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들 | |
KR102167565B1 (ko) | 근사 암호화된 암호문에 대한 재부팅 연산을 수행하는 장치 및 방법 | |
KR102304992B1 (ko) | 동형 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법 | |
KR102498133B1 (ko) | 모듈러 곱셈 연산을 수행하는 연산 장치 및 방법 | |
US11201735B2 (en) | Apparatus for performing threshold design on secret key and method thereof | |
JP7170878B2 (ja) | 暗号文に対する非多項式演算を行う装置及び方法 | |
KR20210128303A (ko) | 공간 복잡도를 고려한 동형 암호화 또는 복호화 방법 | |
KR102782557B1 (ko) | 동형 암호문의 변환 장치 및 방법 | |
KR102382952B1 (ko) | 근사 계산에 대한 계산 검증 | |
KR20230003954A (ko) | 영지식 증명을 위한 암호문 처리 방법 및 장치 | |
KR102160294B1 (ko) | 비밀 키에 대한 정족수 설계를 수행하는 장치 및 방법 | |
KR102393941B1 (ko) | 근사 암호화된 암호문에 대한 인코딩 또는 디코딩 | |
KR102257779B1 (ko) | 다자간 계산을 위한 유사 보간 | |
KR20240000079A (ko) | 동형 암호문을 처리하는 장치 및 방법 | |
US20240039695A1 (en) | Electronic apparatus for generating homomorphic encrypted message and method therefor | |
KR20240140829A (ko) | 동형 암호문에 대한 연산을 수행하는 전자 장치 및 이의 제어 방법 | |
KR20240102803A (ko) | 동형 암호문의 선형변환 장치 및 방법 | |
KR20230049052A (ko) | 격자전자서명의 비밀 키 생성 방법 및 이를 이용한 장치 | |
JPWO2020116807A5 (ko) | ||
KR20250013031A (ko) | 범주형 데이터를 동형 암호화하는 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20191205 |
|
PA0201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20201127 Patent event code: PE09021S01D |
|
PG1501 | Laying open of application | ||
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20201230 |
|
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20210108 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20210111 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20241210 Start annual number: 5 End annual number: 5 |