KR20220071047A - Fpga를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법 - Google Patents

Fpga를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법 Download PDF

Info

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
Application number
KR1020200158242A
Other languages
English (en)
Other versions
KR102457163B1 (ko
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 KR1020200158242A priority Critical patent/KR102457163B1/ko
Priority to US17/510,844 priority patent/US11368303B2/en
Publication of KR20220071047A publication Critical patent/KR20220071047A/ko
Application granted granted Critical
Publication of KR102457163B1 publication Critical patent/KR102457163B1/ko

Links

Images

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
    • 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/76Protecting 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]
    • 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/60Methods 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/72Methods 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/722Modular multiplication
    • 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/60Methods 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/72Methods 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/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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
    • 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/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining
    • 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/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures 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를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법{System and Method for Calculating Faster ECC scalar multiplication on FPGA}
본 발명은 타원 곡선 암호 시스템에 관한 것으로, 구체적으로 몽고메리 사다리 방식에서 사용되는 연산을 스케줄링하고 개선된 모듈러 연산 방법으로 효율적으로 계산할 수 있도록 한 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번)와 같다.
그러나 이와 같은 종래 기술의 타원 곡선 암호 시스템은 부채널 공격에 대한 내성, 연산 속도, 비용 측면에서 한계가 있어 개선이 요구되고 있다.
따라서, 부채널 공격에 대한 내성 강화 및 시간이 많이 소요되는 연산 횟수를 줄여 효율적인 연산을 수행할 수 있도록 하는 새로운 기술의 개발이 요구되고 있다.
대한민국 공개특허 제10-2012-0028432호 대한민국 등록특허 제10-1925614호 대한민국 공개특허 제10-2010-0098017호
본 발명은 종래 기술의 타원 곡선 암호 시스템의 문제점을 해결하기 위한 것으로, 몽고메리 사다리 방식에서 사용되는 연산을 스케줄링하고 개선된 모듈러 연산 방법으로 효율적으로 계산할 수 있도록 한 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)를 나타낸 구성도
이하, 본 발명에 따른 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)를 포함하는 것으로, 연산 과정을 구체적으로 설명하면 다음과 같다.
Figure pat00001
스케줄러(110)는 표 1에 나와있는 몽고메리 사다리 알고리즘에서 스칼라 1비트 연산(4, 5 과정)에 대해 파이프라인 구조로 스케줄링한다.
또한, 4, 5 과정에서 점 (P, Q, R)에 대한 연산을 점 (P, Q+R, 2R) = (P, S, T)로 매핑하고 자코비안 좌표계로 변환한 표 2의 알고리즘으로 스케줄링한다.
Figure pat00002
Figure pat00003
,
Figure pat00004
,
Figure pat00005
,
Figure pat00006
,
Figure pat00007
라고 할 때, 표 2의 수학식의 입력은
Figure pat00008
,
Figure pat00009
,
Figure pat00010
,
Figure pat00011
,
Figure pat00012
이다.
표 2의 수학식의 출력
Figure pat00013
를 가지고
Figure pat00014
,
Figure pat00015
로 좌표계를 재변환하여 스칼라 1비트에 대한 연산을 마친다.
모듈러 덧셈/뺄셈기(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일 경우,
Figure pat00016
는 (res0, res1) = (cin+a+b, cin+a+b-p) 중에 큰 값이 되고 op가 sub일 경우,
Figure pat00017
는 (res0, res1) = (a-b-cin, a-b+p-cin) 중에 큰 값이 된다. 최종적으로
Figure pat00018
부터
Figure pat00019
까지 d개를 이어
Figure pat00020
를 연산한다.
도 4는 본 발명의 일 실시예에 따른 파이프라인 모듈러 곱셈 연산기 구성도이다.
도 4는 모듈러 곱셈기(130)에 대한 구체적인 도면으로 수학식 1을 활용한 n 비트 모듈러 곱셈 예시는 최대 256비트까지 총 10 스테이지 파이프라인 구조로 나타낸다.
디지털 신호 처리 장치(Digital Signal Processing, DSP)를 사용한 부분 곱셈 연산(Stage 1~4); 중간 곱셈 결과를 누산(Stage 5~7); 누산된 결과를 모듈러 공간으로 축소(Stage 8~10)하는 부분으로 구성된다.
Figure pat00021
Stage 1에서는 16 비트 리플 캐리 덧셈기(Ripple Carry Adder, RCA)를 사용해서 수학식 1에 있는
Figure pat00022
,
Figure pat00023
에 대해서
Figure pat00024
,
Figure pat00025
를 계산한다.
수학식 1에서
Figure pat00026
이고 b는 기수를 나타낸다.
Stage 1-2에서는 16비트 곱셈기를 사용해
Figure pat00027
에 대해서
Figure pat00028
를 계산한다.
Stage 2-3에서는 17비트 MACC(Multiply and Accumulate)를 사용해서 Stage 1에서 16비트 RCA로 연산한
Figure pat00029
Figure pat00030
를 곱하고 Stage 1-2에서 연산한
Figure pat00031
를 가져와 연산하여 최종적으로
Figure pat00032
,
Figure pat00033
에 대해서 수학식 1에 있는
Figure pat00034
를 계산한다.
Stage 4에서는 34비트 덧셈기를 사용해서 Stage 2-3에서 17비트 MACC로 연산한 결과에
Figure pat00035
를 연산하여 수학식 1에 있는
Figure pat00036
를 계산한다.
Stage 5-7에서는 Stage 1-2에서 계산한
Figure pat00037
결과와
Figure pat00038
를 계산한 중간 곱셈 결과를 가지고 배열하고 덧셈하여 최종적으로 수학식 1에 있는
Figure pat00039
를 연산한다.
중간 곱셈 결과를 누산할 때 캐리 저장 덧셈기 트리(Carry Save Adder Tree, CSAT)를 사용할 수 있다.
Stage 8-10에서는 곱셈 결과를 모듈러 공간에 따라 축소한다. n 비트 모듈러 곱셈에서 예시와 같이 n=256 일 때, 스테이지 7에서 출력의 크기는 512비트이다.
모듈러 공간에 따라 축소하는 예시로 표 3의 수학식에서와 같이 512비트 입력을 256비트로 축소하는 방법이 있다.
Figure pat00040
표 3의 수학식에서 덧셈 연산으로만 구현하기 위해
Figure pat00041
Figure pat00042
을 더한 결과를 Stage 8의 첫번째 CSAT 입력으로
Figure pat00043
는 두번째 CSAT 입력으로 넣고 출력한 결과를 CSAT에 입력하여 통해 최종 연산 결과를 출력하고 Stage 9-10에서
Figure pat00044
공간으로 축소한다.
도 5는 본 발명의 일 실시예에 따른 모듈러 곱셈 과정 중 중간 곱셈 결과를 누산하기 위한 매핑 방법을 나타낸 구성도이고, 도 6은 본 발명의 일 실시예에 따른 모듈러 곱셈 과정 중 캐리 저장 덧셈기 트리(Carry Save Adder Tree, CSAT)를 나타낸 구성도이다.
도 5는 수학식 1에서의
Figure pat00045
Figure pat00046
의 연산 결과를 블록으로 표현한다.
Figure pat00047
의 연산 결과는 32비트 크기를 가지고
Figure pat00048
의 연산 결과는 33비트 크기를 가진다.
즉, 34비트 RCA로 연산하였지만 뺄셈과 식의 최종 값을 보면 최종 결과 크기의 최대는 33비트가 된다.
계산한
Figure pat00049
결과와
Figure pat00050
를 계산한 중간 곱셈
Figure pat00051
의 연산결과는 L00 이고
Figure pat00052
연산 결과 중 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. 모듈러 곱셈기

Claims (10)

  1. 타원곡선암호 스칼라 곱셈을 위한 몽고메리 사다리 스칼라 1비트 연산 스케줄링을 위한 몽고메리 사다리 스칼라 1비트 곱셈기가,
    몽고메리 사다리 스칼라 1비트 연산을 파이프라인 구조로 구현하는 스케줄러;
    n비트 모듈러 덧셈을 d 스테이지 파이프라인 구조로 구현하는 파이프라인 모듈러 덧셈/뺄셈기;
    최대 256비트까지 n 비트 모듈러 곱셈을 10 스테이지 파이프라인 구조로 구현하는 모듈러 곱셈기;를 포함하는 것을 특징으로 하는 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치.
  2. 제 1 항에 있어서, 모듈러 곱셈기는 디지털 신호 처리 장치를 사용한 mixed 카라추바 알고리즘의 중간 곱셈 연산,
    중간 곱셈 결과를 매핑하여 누산 및 누산된 결과를 모듈러 공간으로 축소하는 과정을 수행하는 것을 특징으로 하는 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치.
  3. 제 1 항에 있어서, 스케줄러는,
    Figure pat00053
    의 몽고메리 사다리 알고리즘에서 스칼라 1비트 연산(4, 5 과정)에 대해 파이프라인 구조로 스케줄링을 하고,
    4, 5 과정에서 점 (P, Q, R)에 대한 연산을 점 (P, Q+R, 2R) = (P, S, T)로 매핑하고 자코비안 좌표계로 변환한 알고리즘으로 스케줄링을 하는 것을 특징으로 하는 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치.
  4. 몽고메리 알고리즘 스케줄러, 모듈러 덧셈기, 모듈러 곱셈기를 포함하는 타원곡선암호 스칼라 곱셈을 위한 연산 장치에서의 몽고메리 사다리를 이용한 스칼라 1비트 연산을 위하여,
    모듈러 곱셈기가 디지털 신호 처리 장치를 사용해 mixed 카라추바 알고리즘의 부분 곱셈 연산하는 단계;
    중간 곱셈 결과를 매핑하여 누산하는 단계;
    누산된 결과를 모듈러 공간으로 값을 축소하는 단계;를 포함하는 것을 특징으로 하는 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 방법.
  5. 제 4 항에 있어서, 모듈러 곱셈기가,
    디지털 신호 처리 장치(Digital Signal Processing, DSP)를 사용한 부분 곱셈 연산(Stage 1~4)과, 중간 곱셈 결과를 누산(Stage 5~7)과, 누산된 결과를 모듈러 공간으로 축소(Stage 8~10)하는 부분으로 구성되는 10 스테이지 파이프라인 구조를 갖는 것을 특징으로 하는 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 방법.
  6. 제 5 항에 있어서, 모듈러 곱셈기는,
    Figure pat00054
    으로 연산을 하고,
    Stage 1에서는 16 비트 리플 캐리 덧셈기(Ripple Carry Adder, RCA)를 사용해서
    Figure pat00055
    ,
    Figure pat00056
    에 대해서
    Figure pat00057
    ,
    Figure pat00058
    를 계산하고,
    Figure pat00059
    이고 b는 기수를 나타내는 것을 특징으로 하는 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 방법.
  7. 제 6 항에 있어서, Stage 1-2에서는 16비트 곱셈기를 사용해
    Figure pat00060
    에 대해서
    Figure pat00061
    를 계산하고,
    Stage 2-3에서는 17비트 MACC(Multiply and Accumulate)를 사용해서 Stage 1에서 16비트 RCA로 연산한
    Figure pat00062
    Figure pat00063
    를 곱하고 Stage 1-2에서 연산한
    Figure pat00064
    를 가져와 연산하여 최종적으로
    Figure pat00065
    ,
    Figure pat00066
    에 대해서
    Figure pat00067
    를 계산하는 것을 특징으로 하는 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 방법.
  8. 제 7 항에 있어서, Stage 4에서는 34비트 덧셈기를 사용해서 Stage 2-3에서 17비트 MACC로 연산한 결과에
    Figure pat00068
    를 연산하여
    Figure pat00069
    를 계산하는 것을 특징으로 하는 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 방법.
  9. 제 8 항에 있어서, Stage 5-7에서는 Stage 1-2에서 계산한
    Figure pat00070
    결과와
    Figure pat00071
    를 계산한 중간 곱셈 결과를 가지고 배열하고 덧셈하여 최종적으로,
    Figure pat00072
    를 연산하는 것을 특징으로 하는 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 방법.
  10. 제 9 항에 있어서, 중간 곱셈 결과를 누산할 때 캐리 저장 덧셈기 트리(Carry Save Adder Tree, CSAT)를 사용하고,
    Stage 8-10에서는 곱셈 결과를 모듈러 공간에 따라 축소하는 것을 특징으로 하는 FPGA를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 방법.
KR1020200158242A 2020-11-23 2020-11-23 Fpga를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법 KR102457163B1 (ko)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102612588B1 (ko) * 2023-05-15 2023-12-12 메티스엑스 주식회사 프로그램가능 반도체 소자, 이를 포함하는 전자 장치, 및 프로그램가능 반도체 소자에 의해 연산을 수행하는 방법

Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
김동성 외 1인, ‘듀얼 필드 모듈러 곱셈을 지원하는 몽고메리 곱셈기’, JKIICE 한국정보통신학회논문지 Vol. 24, No. 6, 2020.06, pp.736~743. *

Cited By (1)

* Cited by examiner, † Cited by third party
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