KR20220071047A - Fpga를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법 - Google Patents
Fpga를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법 Download PDFInfo
- Publication number
- KR20220071047A KR20220071047A KR1020200158242A KR20200158242A KR20220071047A KR 20220071047 A KR20220071047 A KR 20220071047A KR 1020200158242 A KR1020200158242 A KR 1020200158242A KR 20200158242 A KR20200158242 A KR 20200158242A KR 20220071047 A KR20220071047 A KR 20220071047A
- Authority
- KR
- South Korea
- Prior art keywords
- multiplication
- modular
- bit
- scalar
- elliptic curve
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/76—Protecting 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 application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- 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/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/722—Modular multiplication
-
- 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/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
-
- 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/002—Countermeasures against attacks on cryptographic mechanisms
-
- 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/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/386—Special constructional features
- G06F2207/3884—Pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Optimization (AREA)
- Computer Security & Cryptography (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Algebra (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Complex Calculations (AREA)
Abstract
본 발명은 몽고메리 사다리 방식에서 사용되는 연산을 스케줄링하고 개선된 모듈러 연산 방법으로 효율적으로 계산할 수 있도록 한 FPGA(Field Programmable Gate Array)를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법에 관한 것으로, 타원곡선암호 스칼라 곱셈을 위한 몽고메리 사다리 스칼라 1비트 연산 스케줄링을 위한 몽고메리 사다리 스칼라 1비트 곱셈기가,몽고메리 사다리 스칼라 1비트 연산을 파이프라인 구조로 구현하는 스케줄러;n비트 모듈러 덧셈을 d 스테이지 파이프라인 구조로 구현하는 파이프라인 모듈러 덧셈/뺄셈기;최대 256비트까지 n 비트 모듈러 곱셈을 10 스테이지 파이프라인 구조로 구현하는 모듈러 곱셈기;를 포함하는 것이다.
Description
본 발명은 타원 곡선 암호 시스템에 관한 것으로, 구체적으로 몽고메리 사다리 방식에서 사용되는 연산을 스케줄링하고 개선된 모듈러 연산 방법으로 효율적으로 계산할 수 있도록 한 FPGA(Field Programmable Gate Array)를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법에 관한 것이다.
정보화 사회의 도래와 함께 암호 알고리즘 및 암호 프로토콜(Protocol)을 이용한 정보의 보호는 그 중요성을 더해가고 있다.
정보를 보호하는데 사용되는 암호 알고리즘 중에서 RSA(Rivest Shamir Adleman) 암호시스템 및 타원 곡선 암호 시스템(Elliptic Curve Cryptography)에서 사용하는 공개키(open key) 암호 알고리즘은, 비밀키(Secret Key) 암호 알고리즘의 단점인 키(Key) 분배 문제, 전자서명 문제 등을 해결하면서 인터넷이나 금융 망과 같은 여러 분야의 응용에 빠르게 적용되고 있다.
이와 같은 타원곡선암호(Elliptic Curve Cryptography, ECC)는 다른 공개키 암호 시스템과 비교하여 작은 크기의 키를 사용하면서 동일한 안전도를 가진다. 작은 키를 사용하기 때문에 계산 시간, 전력 소비, 저장공간에서 이점이 있다.
타원곡선 스칼라 곱셈 연산은 타원곡선상의 점 P에 스칼라 상수 k를 곱하여 타원곡선상의 점 Q를 구하는 것이다.
점 P에 k를 곱하는 것은 P를 k개 타원곡선 덧셈 연산을 수행하는 것과 같다.
식으로 정의하면 Q = kP = P+P+...+P(k번)와 같다.
그러나 이와 같은 종래 기술의 타원 곡선 암호 시스템은 부채널 공격에 대한 내성, 연산 속도, 비용 측면에서 한계가 있어 개선이 요구되고 있다.
따라서, 부채널 공격에 대한 내성 강화 및 시간이 많이 소요되는 연산 횟수를 줄여 효율적인 연산을 수행할 수 있도록 하는 새로운 기술의 개발이 요구되고 있다.
본 발명은 종래 기술의 타원 곡선 암호 시스템의 문제점을 해결하기 위한 것으로, 몽고메리 사다리 방식에서 사용되는 연산을 스케줄링하고 개선된 모듈러 연산 방법으로 효율적으로 계산할 수 있도록 한 FPGA(Field Programmable Gate Array)를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명은 몽고메리 사다리를 이용해서 타원곡선 스칼라 곱셈 연산을 하는 것에 의해 부채널 공격에 대한 내성이 강화되도록 한 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명은 좌표계를 변환해서 시간이 많이 소요되는 연산 횟수를 줄여 효율적인 연산을 수행할 수 있도록 한 FPGA(Field Programmable Gate Array)를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명은 FPGA로 구현하여 암호시스템의 안전도를 향상시키면서 내부 알고리즘의 교체를 용이하도록 한 FPGA(Field Programmable Gate Array)를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명은 몽고메리 사다리 방식에 사용되는 모듈러 연산을 파이프라인 구조로 구현하여 성능을 개선하고, FPGA로 구현하여 소프트웨어로 구현하는 것과 비교하여 안전한 구조를 가지면서 저비용으로 교체가 가능하여 유연한 구조를 갖도록 한 FPGA(Field Programmable Gate Array)를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치는 타원곡선암호 스칼라 곱셈을 위한 몽고메리 사다리 스칼라 1비트 연산 스케줄링을 위한 몽고메리 사다리 스칼라 1비트 곱셈기가, 몽고메리 사다리 스칼라 1비트 연산을 파이프라인 구조로 구현하는 스케줄러;n비트 모듈러 덧셈을 d 스테이지 파이프라인 구조로 구현하는 파이프라인 모듈러 덧셈/뺄셈기;최대 256비트까지 n 비트 모듈러 곱셈을 10 스테이지 파이프라인 구조로 구현하는 모듈러 곱셈기;를 포함하는 것을 특징으로 한다.
다른 목적을 달성하기 위한 본 발명에 따른 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 방법은 몽고메리 알고리즘 스케줄러, 모듈러 덧셈기, 모듈러 곱셈기를 포함하는 타원곡선암호 스칼라 곱셈을 위한 연산 장치에서의 몽고메리 사다리를 이용한 스칼라 1비트 연산을 위하여, 모듈러 곱셈기가 디지털 신호 처리 장치를 사용해 mixed 카라추바 알고리즘의 부분 곱셈 연산하는 단계;중간 곱셈 결과를 매핑하여 누산하는 단계;누산된 결과를 모듈러 공간으로 값을 축소하는 단계;를 포함하는 것을 특징으로 한다.
이상에서 설명한 바와 같은 본 발명에 따른 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법은 다음과 같은 효과가 있다.
첫째, 몽고메리 사다리 방식에서 사용되는 연산을 스케줄링하고 개선된 모듈러 연산 방법으로 효율적으로 계산할 수 있도록 한다.
둘째, 몽고메리 사다리를 이용해서 타원곡선 스칼라 곱셈 연산을 하는 것에 의해 부채널 공격에 대한 내성이 강화되도록 한다.
셋째, 좌표계를 변환해서 시간이 많이 소요되는 연산 횟수를 줄여 효율적인 연산을 수행할 수 있도록 한다.
넷째, FPGA로 구현하여 암호시스템의 안전도를 향상시키면서 내부 알고리즘의 교체를 용이하도록 한다.
다섯째, 몽고메리 사다리 방식에 사용되는 모듈러 연산을 파이프라인 구조로 구현하여 성능을 개선하고, FPGA로 구현하여 소프트웨어로 구현하는 것과 비교하여 안전한 구조를 가지면서 저비용으로 교체가 가능하여 유연한 구조를 갖도록 한다.
도 1은 본 발명에 따른 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치의 구성도
도 2는 본 발명의 일 실시예에 따른 몽고메리 사다리 연산 스케줄링 방법을 나타낸 구성도
도 3은 본 발명의 일 실시예에 따른 파이프라인 모듈러 덧셈/뺄셈 연산기 구성도
도 4는 본 발명의 일 실시예에 따른 파이프라인 모듈러 곱셈 연산기 구성도
도 5는 본 발명의 일 실시예에 따른 모듈러 곱셈 과정 중 중간 곱셈 결과를 누산하기 위한 매핑 방법을 나타낸 구성도
도 6은 본 발명의 일 실시예에 따른 모듈러 곱셈 과정 중 캐리 저장 덧셈기 트리(Carry Save Adder Tree, CSAT)를 나타낸 구성도
도 2는 본 발명의 일 실시예에 따른 몽고메리 사다리 연산 스케줄링 방법을 나타낸 구성도
도 3은 본 발명의 일 실시예에 따른 파이프라인 모듈러 덧셈/뺄셈 연산기 구성도
도 4는 본 발명의 일 실시예에 따른 파이프라인 모듈러 곱셈 연산기 구성도
도 5는 본 발명의 일 실시예에 따른 모듈러 곱셈 과정 중 중간 곱셈 결과를 누산하기 위한 매핑 방법을 나타낸 구성도
도 6은 본 발명의 일 실시예에 따른 모듈러 곱셈 과정 중 캐리 저장 덧셈기 트리(Carry Save Adder Tree, CSAT)를 나타낸 구성도
이하, 본 발명에 따른 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법의 바람직한 실시 예에 관하여 상세히 설명하면 다음과 같다.
본 발명에 따른 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법의 특징 및 이점들은 이하에서의 각 실시 예에 대한 상세한 설명을 통해 명백해질 것이다.
도 1은 본 발명에 따른 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치의 구성도이다.
본 발명에 따른 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법은 몽고메리 사다리 방식에서 사용되는 연산을 스케줄링하고 개선된 모듈러 연산 방법으로 효율적으로 계산할 수 있도록 한 것이다.
본 발명은 몽고메리 사다리 방식에 사용되는 모듈러 연산을 파이프라인 구조로 구현하여 성능을 개선하고, FPGA로 구현하여 소프트웨어로 구현하는 것과 비교하여 안전한 구조를 가지면서 저비용으로 교체가 가능하여 유연한 구조를 갖도록 한다.
본 발명의 일 실시예에 따른 타원곡선암호 스칼라 곱셈 장치는 몽고메리 사다리 방법으로 구현되어 모듈러 곱셈/덧셈/뺄셈 연산을 스케줄링하는 스케줄러와, 모듈러 덧셈/뺄셈기와, 모듈러 곱셈기를 포함한다.
모듈러 곱셈기는 디지털 신호 처리 장치를 사용한 mixed 카라추바 알고리즘의 중간 곱셈 연산 단계; 중간 곱셈 결과를 매핑하여 누산하는 단계; 누산된 결과를 모듈러 공간으로 축소하는 단계를 수행한다.
본 발명에 따른 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치는 도 1에서와 같이, 타원곡선암호 스칼라 곱셈을 위한 몽고메리 사다리 스칼라 1비트 연산 스케줄링을 위한 몽고메리 사다리 스칼라 1비트 곱셈기(100)가, 몽고메리 사다리 스칼라 1비트 연산을 파이프라인 구조로 구현하는 스케줄러(110)와, n비트 모듈러 덧셈을 d 스테이지 파이프라인 구조로 구현하는 파이프라인 모듈러 덧셈/뺄셈기(120)와, 최대 256비트까지 n 비트 모듈러 곱셈을 10 스테이지 파이프라인 구조로 구현하는 모듈러 곱셈기(130)를 포함한다.
본 발명에 따른 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 방법은 다음과 같다.
타원곡선암호 스칼라 곱셈을 위한 연산 장치가 몽고메리 알고리즘 스케줄러, 모듈러 덧셈기, 모듈러 곱셈기를 포함하고, 몽고메리 사다리를 이용한 스칼라 1비트 연산을 위하여, 모듈러 곱셈기가 디지털 신호 처리 장치를 사용해 mixed 카라추바 알고리즘의 부분 곱셈 연산하는 단계, 중간 곱셈 결과를 매핑하여 누산하는 단계, 누산된 결과를 모듈러 공간으로 값을 축소하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 타원곡선암호 스칼라 곱셈을 위한 몽고메리 사다리 연산 장치는 스케줄러(110), 모듈러 덧셈/뺄셈기(120), 모듈러 곱셈기(130)를 포함하는 것으로, 연산 과정을 구체적으로 설명하면 다음과 같다.
스케줄러(110)는 표 1에 나와있는 몽고메리 사다리 알고리즘에서 스칼라 1비트 연산(4, 5 과정)에 대해 파이프라인 구조로 스케줄링한다.
또한, 4, 5 과정에서 점 (P, Q, R)에 대한 연산을 점 (P, Q+R, 2R) = (P, S, T)로 매핑하고 자코비안 좌표계로 변환한 표 2의 알고리즘으로 스케줄링한다.
모듈러 덧셈/뺄셈기(120)는 n 비트 모듈러 덧셈을 d 스테이지 파이프라인 구조로 구성한 연산 장치이다.
예시에서는 최대 256비트 모듈러 덧셈을 4 스테이지 파이프라인 구조로 연산하는 것을 보인다.
모듈러 곱셈기(130)는 n 비트 모듈러 곱셈 장치로 최대 256비트까지 10 스테이지 파이프라인 구조로 연산 가능하고 그보다 큰 비트의 연산을 위해서는 스테이지 수를 추가해야한다.
도 2는 본 발명의 일 실시예에 따른 몽고메리 사다리 연산 스케줄링 방법을 나타낸 구성도이다.
도 2는 스케줄러(110)에 대한 도면으로, 표 2의 수학식의 알고리즘을 4 스테이지 모듈러 덧셈/뺄셈과 10 스테이지 모듈러 곱셈으로 스케줄링하여 총 46 클럭 사이클로 몽고메리 사다리 스칼라 1비트 연산을 한다.
도 3은 본 발명의 일 실시예에 따른 파이프라인 모듈러 덧셈/뺄셈 연산기 구성도이다.
도 3은 모듈러 덧셈/뺄셈기(120)를 구체화한 도면으로 n 비트 덧셈/뺄셈을 d 스테이지 파이프라인 구조로 연산한다.
스테이지마다 n 비트를 d로 나눈 m 비트만큼 연산하고 그 결과를 붙여 최종 결과를 출력한다.
op가 add일 경우, 는 (res0, res1) = (cin+a+b, cin+a+b-p) 중에 큰 값이 되고 op가 sub일 경우, 는 (res0, res1) = (a-b-cin, a-b+p-cin) 중에 큰 값이 된다. 최종적으로 부터 까지 d개를 이어 를 연산한다.
도 4는 본 발명의 일 실시예에 따른 파이프라인 모듈러 곱셈 연산기 구성도이다.
도 4는 모듈러 곱셈기(130)에 대한 구체적인 도면으로 수학식 1을 활용한 n 비트 모듈러 곱셈 예시는 최대 256비트까지 총 10 스테이지 파이프라인 구조로 나타낸다.
디지털 신호 처리 장치(Digital Signal Processing, DSP)를 사용한 부분 곱셈 연산(Stage 1~4); 중간 곱셈 결과를 누산(Stage 5~7); 누산된 결과를 모듈러 공간으로 축소(Stage 8~10)하는 부분으로 구성된다.
Stage 2-3에서는 17비트 MACC(Multiply and Accumulate)를 사용해서 Stage 1에서 16비트 RCA로 연산한 와 를 곱하고 Stage 1-2에서 연산한 를 가져와 연산하여 최종적으로 , 에 대해서 수학식 1에 있는 를 계산한다.
중간 곱셈 결과를 누산할 때 캐리 저장 덧셈기 트리(Carry Save Adder Tree, CSAT)를 사용할 수 있다.
Stage 8-10에서는 곱셈 결과를 모듈러 공간에 따라 축소한다. n 비트 모듈러 곱셈에서 예시와 같이 n=256 일 때, 스테이지 7에서 출력의 크기는 512비트이다.
모듈러 공간에 따라 축소하는 예시로 표 3의 수학식에서와 같이 512비트 입력을 256비트로 축소하는 방법이 있다.
표 3의 수학식에서 덧셈 연산으로만 구현하기 위해 와 을 더한 결과를 Stage 8의 첫번째 CSAT 입력으로 는 두번째 CSAT 입력으로 넣고 출력한 결과를 CSAT에 입력하여 통해 최종 연산 결과를 출력하고 Stage 9-10에서 공간으로 축소한다.
도 5는 본 발명의 일 실시예에 따른 모듈러 곱셈 과정 중 중간 곱셈 결과를 누산하기 위한 매핑 방법을 나타낸 구성도이고, 도 6은 본 발명의 일 실시예에 따른 모듈러 곱셈 과정 중 캐리 저장 덧셈기 트리(Carry Save Adder Tree, CSAT)를 나타낸 구성도이다.
즉, 34비트 RCA로 연산하였지만 뺄셈과 식의 최종 값을 보면 최종 결과 크기의 최대는 33비트가 된다.
계산한 결과와 를 계산한 중간 곱셈 의 연산결과는 L00 이고 연산 결과 중 33번째 비트인 MSB(Most significant Bit)를 마지막 층에 모으고 중간층은 나머지 32비트 연산 결과의 블록들이다.
블록에 있는 값을 세로로 누산할 때 CSAT를 사용하여 최종 누산 결과의 크기는 2n 비트가 된다.
도 5의 예시는 256비트 모듈러 곱셈일 때. L00 ~ L17 층을 가지고 512비트 출력하는 매핑 방법을 나타낸다.
도 6을 참조하면 도 5와 같이 중간 곱셈 결과를 매핑한 층에 따라 덧셈해서 결과를 출력을 낼 수 있다. CSAT는 2n 입력일 경우 전가산기 2n개로 구성되는 3:2 압축기(Compressor)로 만들 수 있다.
이상에서 설명한 본 발명에 따른 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법은 몽고메리 사다리 방식에 사용되는 모듈러 연산을 파이프라인 구조로 구현하여 성능을 개선하고, FPGA로 구현하여 소프트웨어로 구현하는 것과 비교하여 안전한 구조를 가지면서 저비용으로 교체가 가능하여 유연한 구조를 갖도록 한 것이다.
이상에서의 설명에서와 같이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 본 발명이 구현되어 있음을 이해할 수 있을 것이다.
그러므로 명시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 하고, 본 발명의 범위는 전술한 설명이 아니라 특허청구 범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100. 몽고메리 사다리 스칼라 1비트 곱셈기
110. 스케줄러
120. 모듈러 덧셈/뺄셈기
130. 모듈러 곱셈기
110. 스케줄러
120. 모듈러 덧셈/뺄셈기
130. 모듈러 곱셈기
Claims (10)
- 타원곡선암호 스칼라 곱셈을 위한 몽고메리 사다리 스칼라 1비트 연산 스케줄링을 위한 몽고메리 사다리 스칼라 1비트 곱셈기가,
몽고메리 사다리 스칼라 1비트 연산을 파이프라인 구조로 구현하는 스케줄러;
n비트 모듈러 덧셈을 d 스테이지 파이프라인 구조로 구현하는 파이프라인 모듈러 덧셈/뺄셈기;
최대 256비트까지 n 비트 모듈러 곱셈을 10 스테이지 파이프라인 구조로 구현하는 모듈러 곱셈기;를 포함하는 것을 특징으로 하는 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치. - 제 1 항에 있어서, 모듈러 곱셈기는 디지털 신호 처리 장치를 사용한 mixed 카라추바 알고리즘의 중간 곱셈 연산,
중간 곱셈 결과를 매핑하여 누산 및 누산된 결과를 모듈러 공간으로 축소하는 과정을 수행하는 것을 특징으로 하는 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치. - 몽고메리 알고리즘 스케줄러, 모듈러 덧셈기, 모듈러 곱셈기를 포함하는 타원곡선암호 스칼라 곱셈을 위한 연산 장치에서의 몽고메리 사다리를 이용한 스칼라 1비트 연산을 위하여,
모듈러 곱셈기가 디지털 신호 처리 장치를 사용해 mixed 카라추바 알고리즘의 부분 곱셈 연산하는 단계;
중간 곱셈 결과를 매핑하여 누산하는 단계;
누산된 결과를 모듈러 공간으로 값을 축소하는 단계;를 포함하는 것을 특징으로 하는 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 방법. - 제 4 항에 있어서, 모듈러 곱셈기가,
디지털 신호 처리 장치(Digital Signal Processing, DSP)를 사용한 부분 곱셈 연산(Stage 1~4)과, 중간 곱셈 결과를 누산(Stage 5~7)과, 누산된 결과를 모듈러 공간으로 축소(Stage 8~10)하는 부분으로 구성되는 10 스테이지 파이프라인 구조를 갖는 것을 특징으로 하는 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 방법. - 제 9 항에 있어서, 중간 곱셈 결과를 누산할 때 캐리 저장 덧셈기 트리(Carry Save Adder Tree, CSAT)를 사용하고,
Stage 8-10에서는 곱셈 결과를 모듈러 공간에 따라 축소하는 것을 특징으로 하는 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200158242A KR102457163B1 (ko) | 2020-11-23 | 2020-11-23 | Fpga를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법 |
US17/510,844 US11368303B2 (en) | 2020-11-23 | 2021-10-26 | System and method for calculating faster ECC scalar multiplication on FPGA |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200158242A KR102457163B1 (ko) | 2020-11-23 | 2020-11-23 | Fpga를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220071047A true KR20220071047A (ko) | 2022-05-31 |
KR102457163B1 KR102457163B1 (ko) | 2022-10-20 |
Family
ID=81657424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200158242A KR102457163B1 (ko) | 2020-11-23 | 2020-11-23 | Fpga를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11368303B2 (ko) |
KR (1) | KR102457163B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102612588B1 (ko) * | 2023-05-15 | 2023-12-12 | 메티스엑스 주식회사 | 프로그램가능 반도체 소자, 이를 포함하는 전자 장치, 및 프로그램가능 반도체 소자에 의해 연산을 수행하는 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100098017A (ko) | 2009-02-27 | 2010-09-06 | 고려대학교 산학협력단 | 확장된 몽고메리 레더를 이용한 스칼라 곱셈 방법 |
KR20120028432A (ko) | 2010-09-15 | 2012-03-23 | 고려대학교 산학협력단 | 타원곡선암호를 위한 연산 장치 및 방법 |
KR101925614B1 (ko) | 2017-11-08 | 2018-12-05 | 부산대학교 산학협력단 | 타원곡선 암호화 시스템에서의 스칼라 곱셈 처리 방법 및 타원곡선 암호화 시스템 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020057796A1 (en) * | 1998-12-24 | 2002-05-16 | Lambert Robert J. | Method for accelerating cryptographic operations on elliptic curves |
US7509486B1 (en) * | 1999-07-08 | 2009-03-24 | Broadcom Corporation | Encryption processor for performing accelerated computations to establish secure network sessions connections |
CA2593723C (en) * | 2007-06-27 | 2016-04-19 | Certicom Corp. | Multi-dimensional montgomery ladders for elliptic curves |
US9118482B2 (en) * | 2013-09-27 | 2015-08-25 | Intel Corporation | Fault tolerant apparatus and method for elliptic curve cryptography |
-
2020
- 2020-11-23 KR KR1020200158242A patent/KR102457163B1/ko active IP Right Grant
-
2021
- 2021-10-26 US US17/510,844 patent/US11368303B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100098017A (ko) | 2009-02-27 | 2010-09-06 | 고려대학교 산학협력단 | 확장된 몽고메리 레더를 이용한 스칼라 곱셈 방법 |
KR20120028432A (ko) | 2010-09-15 | 2012-03-23 | 고려대학교 산학협력단 | 타원곡선암호를 위한 연산 장치 및 방법 |
KR101925614B1 (ko) | 2017-11-08 | 2018-12-05 | 부산대학교 산학협력단 | 타원곡선 암호화 시스템에서의 스칼라 곱셈 처리 방법 및 타원곡선 암호화 시스템 |
Non-Patent Citations (1)
Title |
---|
김동성 외 1인, ‘듀얼 필드 모듈러 곱셈을 지원하는 몽고메리 곱셈기’, JKIICE 한국정보통신학회논문지 Vol. 24, No. 6, 2020.06, pp.736~743. * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102612588B1 (ko) * | 2023-05-15 | 2023-12-12 | 메티스엑스 주식회사 | 프로그램가능 반도체 소자, 이를 포함하는 전자 장치, 및 프로그램가능 반도체 소자에 의해 연산을 수행하는 방법 |
Also Published As
Publication number | Publication date |
---|---|
US11368303B2 (en) | 2022-06-21 |
KR102457163B1 (ko) | 2022-10-20 |
US20220166619A1 (en) | 2022-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Erdem et al. | A general digit-serial architecture for montgomery modular multiplication | |
KR100891323B1 (ko) | 이진 필드 ecc에서 랜덤 포인트 표현을 이용하여 파워해독의 복잡도를 증가시키기 위한 암호화 방법 및 장치 | |
JP3939658B2 (ja) | モジュラー乗算を行うための装置、および、モジュラー乗算を行うための算術演算装置 | |
US20070064930A1 (en) | Modular exponentiation with randomized exponent | |
CN110309674B (zh) | 一种基于全同态加密的排序方法 | |
KR101326078B1 (ko) | 모듈러 곱셈 방법, 모듈러 곱셈기 및 모듈러 곱셈기를구비하는 암호 연산 시스템 | |
US20090136025A1 (en) | Method for scalarly multiplying points on an elliptic curve | |
Öztürk | Design and implementation of a low-latency modular multiplication algorithm | |
Liu et al. | High performance modular multiplication for SIDH | |
KR100442218B1 (ko) | 몽고메리의 알고리즘을 이용한 멱승 잉여 연산기 | |
JPWO2007080652A1 (ja) | モンゴメリ法用乗算剰余計算装置 | |
Jalali et al. | ARMv8 SIKE: Optimized supersingular isogeny key encapsulation on ARMv8 processors | |
TW202044083A (zh) | 安全處理器、所述安全處理器的操作方法、以及加密或解密資料的方法 | |
KR102457163B1 (ko) | Fpga를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법 | |
TW201017525A (en) | Semi-sequential Galois field multiplier and the method for performing the same | |
Page et al. | Parallel cryptographic arithmetic using a redundant Montgomery representation | |
Ding et al. | A reconfigurable high-speed ECC processor over NIST primes | |
US7062044B1 (en) | Method of elliptic curve cryptographic key agreement using coefficient splitting | |
CN113434886B (zh) | 联合生成用于安全计算的数据元组的方法及装置 | |
JP3183670B2 (ja) | 演算装置、演算方法並びにその演算方法を記録した記録媒体 | |
KR20090113138A (ko) | MSD first GF(3^m) 직렬 곱셈 장치, 그방법 및 이를 기록한 기록매체 | |
JP2004530919A5 (ko) | ||
Seo et al. | MoTE-ECC based encryption on MSP430 | |
Dąbrowski et al. | Generation and Implementation of Cryptographically Strong Elliptic Curves | |
Andre | Efficient adaptation of the Karatsuba algorithm for implementing on FPGA very large scale multipliers for cryptographic algorithms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |