KR20030003435A - 암호시스템에 사용하기 위한 최적의 역원을 구하기 위한방법 및 장치 - Google Patents

암호시스템에 사용하기 위한 최적의 역원을 구하기 위한방법 및 장치 Download PDF

Info

Publication number
KR20030003435A
KR20030003435A KR1020010039176A KR20010039176A KR20030003435A KR 20030003435 A KR20030003435 A KR 20030003435A KR 1020010039176 A KR1020010039176 A KR 1020010039176A KR 20010039176 A KR20010039176 A KR 20010039176A KR 20030003435 A KR20030003435 A KR 20030003435A
Authority
KR
South Korea
Prior art keywords
variable
squared
register
inverse
bits
Prior art date
Application number
KR1020010039176A
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 KR1020010039176A priority Critical patent/KR20030003435A/ko
Publication of KR20030003435A publication Critical patent/KR20030003435A/ko

Links

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

타원곡선 암호시스템(ECC)에서, 유한체 요소를 나타내는 입력 정보에 대해 역원을 구하여 발생하기 위한 방법이 개시되어 있다. 상기 방법은 상기 입력 정보에 대응하는 비트 수(n)를 m진법(여기서, m은 3 이상의 자연수)으로 표현하는 과정과, 상기 비트 수를 m으로 나누어 하나의 몫을 구하고 이 구해진 몫을 m으로 나누어 다른 몫을 구하는 동작을 반복적으로 수행하고, 상기 구해진 몫들에 대응하는 제곱 로직들을 결정하는 과정과, 상기 결정된 제곱 로직들과 곱셈기의 조합에 의해 상기 입력 정보에 대한 역원을 구하고 역원 결과 값을 출력하는 과정을 포함한다.

Description

암호시스템에 사용하기 위한 최적의 역원을 구하기 위한 방법 및 장치 {OPTIMAL FINITE FIELD INVERSION METHOD AND DEVICE FOR USE IN A ELLIPTIC CURVE CRYPTOSYSTEM}
본 발명은 암호시스템에 관한 것으로, 특히 타원곡선 암호시스템에 사용하기 위한 역원을 구하는 방법 및 장치에 관한 것이다.
셀룰라 전화기와 같은 이동 통신기기(mobile device), 전자 상거래를 위한 스마트 카드(smart card) 및 전자 화폐, 소형 컴퓨터(small-sized computer) 등을 사용하는 통신시스템에서 암호화 방식들을 사용하여 정보를 안전하게 전송하는 것은 바람직한 일이다. 특히, 최근에 인터넷의 사용 인구가 급속하게 증가하고 또한 상기 인터넷을 통한 개인 정보 등의 전송이 빈번해짐에 따라 안전하지 못한 채널을 통한 보다 안전한 정보의 전송이 요구되고 있는 실정이다. 이러한 환경하에서, 통신시스템의 비용 및 수익성을 위해서는 전송되는 정보의 양을 최소화할 필요가 있다.
소위 타원곡선을 사용하는 암호시스템(Elliptic Curve Cryptosystem: 이하 "ECC시스템"이라 칭함)은 이동 통신기기, 스마트 카드나 전자 화폐, 소형 컴퓨터 등을 사용하는 통신시스템에서 최근에 널리 각광받고 있는 공개키(public key) 암호시스템이다. 왜냐하면, RSA(Rivest-Shamir-Adleman)와 같은 다른 공개키 암호 표준들에 비해 대역폭 및 계산 시간의 관점에서 상기 ECC시스템은 보다 효율적이기 때문이다. 즉, 상기 ECC시스템은 다른 암호 표준들과 같은 수준의 안정성을 제공하면서도 암호화 및 복호화에 사용되는 키(key)의 크기를 더욱 더 작게 한다는 장점을 제공한다.
상기 ECC시스템은 당해 분야 통상의 지식을 가진 자에게 잘 알려진 바와 같이, 타원곡선상의 점들의 집합에서, 덧셈(addition), 배수(doubling), 뺄셈(subtraction), 스칼라 곱셈(scalar multiplication) 등의 연산을 정의하여 구현한 공캐키(public key) 암호시스템이다. 즉, 상기 ECC시스템은 유한체(finite fields) 위에서 정의된 타원곡선 집합에서의 이산 대수 문제에 기초한 암호시스템이다. 이러한 ECC시스템의 개념이 도 1에 도시되어 있다.
상기 도 1을 참조하면, 타원곡선(Elliptic curve)과 점(point) 연산이 정의되어 있다. 덧셈은 P와 Q의 연산이며 "P + Q"로 표시된다. 배수는 P + P를 의미하며 일반적으로 "2P"로 표시된다. 뺄셈은 P와 Q = ( x2, - y2)의 덧셈 연산이며 "P-Q"로 표시된다. 스칼라 곱셈 “nP ”는 n개의 P 가산, 즉 P + P + ··· + P를 의미한다. 상기 nP의 연산은 덧셈, 배수, 뺄셈을 반복적으로 사용하여 구할 수 있는데, 모듈러(modular) 멱승의 구현에서 사용되는 2진 방식(binary method)과 유사한 방식으로 구현된다. 예를 들어, 33P를 구할 경우, P를 32번 가산하지 않고, 33을 2진수로 표현한 (100001)2를 이용한다. 즉,(100001)2P = 2(2(2(2(2P)))) + P와 같이 계산하면, 5번의 배수와 1번의 덧셈으로 33P를 구할 수 있다. 상기 타원 곡선에 대해서는 여러 가지 정의가 존재하지만, 대표적으로 다음과 같이 정의된다. 타원 곡선은 다항식 y2+ axy + by = x3+ cx2+ dx + e의 해집합과 무한원점(O)을 말한다. 이러한 타원 곡선에 대한 연산은 통상 하기의 <표 1>과 같이 표현된다. 하기의 <표 1>에 나타낸 바와 같은 표현은 당해 분야 통상의 지식을 가진 자에게 잘 알려진 사실이므로, 이에 대한 구체적인 설명을 여기서는 생략하기로 한다.
상기 도 1에서 알 수 있듯이, x1, y1, x2, y2등에 대한 연산은 모듈러 덧셈, 뺄셈, 곱셈, 제곱, 나눗셈이다. 본 발명과 관련한 ECC는 하기의 <표 2>에 나타낸 바와 같이, 크기가 2n인 갈로아 체(Galois field) GF( 2n)상에서의 타원 곡선을 사용한다. 통상 이러한 유한체는 확대 갈로아 체(Extension Galois field)라 불리운다. 그러므로, x + y 또는 x - y연산은 간단한 배타적 논리합(XOR: eXclusive OR) 연산이 된다. 따라서 갈로아 체 개념을 사용하는 ECC에서는 곱셈 연산()과, 역원 연산(x-1)이 중요한 연산이 된다.
도 2는 본 발명이 적용되는 일반적인 ECC시스템의 블록 다이아그램이다.
상기 도 2를 참조하면, ECC시스템은 입출력 블록(Chip IO(Input Output) Block) 70과, 제어로직 블록(Control Logic Block) 60과, 스칼라 곱셈 로직 블록(Scalar Multiplication Logic Block) 50과, 덧셈/배수/뺄셈 로직 블록(Addition/Doubling/Subtraction Logic Block) 40과, 역원 로직 블록(Inversion Logic Block) 30, 제곱 로직 블록(Squaring Logic Block) 20과, 곱셈기 로직 블록(Multiplier Logic Block ) 10으로 구성된다. 이러한 ECC시스템은 통상 하나의 칩(chip)으로 구현된다.
상기 곱셈기 로직 블록 10은 n비트(bits)의 s와 t를 입력하여 유한체 GF( 2n)상에서 곱셈 연산을 하고, 그 곱셈 연산 결과에 따른 n비트의 s*t를 구한다. 상기 제곱 로직 블록 20은 n비트의 z에 대하여 유한체 GF( 2n)상에서 제곱 연산을 하고그 제곱 연산 결과에 따른 z2를 구한다. 상기 제곱 로직 블록 20은 상기 곱셈기 로직 블록 10과 연계하여 구현될 수도 있고, 상기 곱셈기 로직 블록 10과 별도로 구현될 수도 있다. 상기 역원 로직 블록 30은 g를 입력하여 유한체 GF( 2n)상에서 역원 연산을 하고, 그 역원 연산 결과에 따른 g-1을 출력한다. 이때 상기 역원 로직 블록 30은 상기 곱셈기 로직 블록 10과 상기 제곱 로직 블록 20을 이용하여 역원 연산을 수행한다. 상기 덧셈/배수/뺄셈 로직 블록 40은 P1, P2를 입력하여 유한체 GF( 2n)상에서 덧셈, 배수, 뺄셈 연산을 수행하고, 그 연산 결과에 따른 P3를 출력한다. 이때 상기 덧셈/배수/뺄셈 로직 블록 40은 상기 역원 로직 블록 30, 상기 곱셈기 로직 블록 10 및 상기 제곱 로직 블록 20을 이용하여 연산을 수행한다. 상기 스칼라 곱셈 로직 블록 50은 n을 입력하여 유한체 GF( 2n)상에서 스칼라 곱셈 연산을 수행하고, 그 연산 결과에 따른 op를 출력한다. 이때 상기 스칼라 곱셈 로직 블록 50은 상기 덧셈/배수/뺄셈 로직 블록 40을 반복적으로 사용하여 스칼라 곱셈 연산을 수행한다. 상기 제어 로직 블록 60은 상기 칩 입출력 로직 블록 7O의 내부 제어 레지스터(control register)에 저장되는 명령들(addition, doubling, subtraction, scalar multiplication)을 해석하여 각 블록들 동작을 제어한다. 상기 칩 입출력 로직 블록 70은 칩 외부에서 주소(addr)와 데이터(data)를 입력받아 계산에 필요한 n , P1, P2, a를 해당 블록으로 전달하고, 계산 결과값 P3를 전달받아 데이터로서 출력한다. 또한 상기 칩 입출력 로직 블록 70은 명령들을 내부 제어 레지스터(control register)에 저장해 두었다가 상기 제어 로직 블록 60에 전달한다.
전술한 도 2에 도시한 바와 같은 ECC시스템의 구성 요소들중에서 본 발명은 역원 로직 블록과 관련한 것임을 밝혀두는 바이다. 상기 ECC시스템에 사용될 역원 알고리즘으로는 논문 "Non-Conventional Basis of Finite Fields - implementing a fast communication between two elliptic curve cryptosystems in software and hardware. Sang Ho Oh, Chang Han Kim, Joong Chul Yoon, Hee Jin Kim, and Jong In Lim, contribution to IEEE standard P1363, 1999. (page 5)"에 게재된 바와 같은 알고리즘이 사용될 수 있을 것이다. 상기 알고리즘은 AOP(all-one-polynomials)를 사용하여 제곱기를 단순히 비트위치바꿈으로 구현함으로써 역원을 구할 시 곱셈기의 연산 횟수를 줄일 수 있도록 한다.
그러나, 상기 알고리즘은 역원을 위해 입력되는 비트들의 수를 단지 2진법으로 표현하여 나타내기 때문에 역원을 구하기 위해 필요한 연산기들의 숫자 및 연산 횟수를 줄이는데 한계가 있다는 문제점이 있다. 특히 곱셈기의 연산 횟수를 줄이는데 한계가 있다.
따라서 본 발명의 목적은 타원곡선 암호시스템(ECC시스템)에서 사용되는 역원을 구하기 위해 필요한 연산기들의 숫자를 줄이는 방법 및 장치를 제공함에 있다.
본 발명의 다른 목적은 ECC시스템에서의 역원을 구하기 위해 필요한 곱셈기와 같은 연산기의 연산 횟수를 줄이는 방법 및 장치를 제공함에 있다.
이러한 목적들을 달성하기 위한 본 발명에 따르면, 타원곡선 암호시스템에서, 유한체 요소를 나타내는 입력 정보에 대해 역원을 구하여 발생하기 위한 방법은, 상기 입력 정보에 대응하는 비트 수(n)를 m진법(여기서, m은 3 이상의 자연수)으로 표현하는 과정과, 상기 비트 수를 m으로 나누어 하나의 몫을 구하고 이 구해진 몫을 m으로 나누어 다른 몫을 구하는 동작을 반복적으로 수행하고, 상기 구해진 몫들에 대응하는 제곱 로직들을 결정하는 과정과, 상기 결정된 제곱 로직들과 곱셈기의 조합에 의해 상기 입력 정보에 대한 역원을 구하고 역원 결과 값을 출력하는 과정을 포함한다.
도 1은 본 발명이 적용되는 타원곡선 암호화시스템의 개념을 설명하기 위한 도면.
도 2는 일반적인 타원곡선 암호화시스템의 블록 다이아그램.
도 3은 본 발명의 실시예에 따른 개선된 역원 알고리즘의 개략적인 흐름을 보여주는 도면.
도 4는 본 발명의 실시예에 따른 개선된 역원 알고리즘의 기본 원리를 보여주는 도면.
도 5는 본 발명의 실시예에 따른 개선된 역원 알고리즘의 원리를 적용한 예를 보여주는 도면.
도 6은 본 발명의 실시예에 따른 최적의 역원 장치의 구성을 보여주는 도면.
도 7은 도 6에 도시된 장치에 의해 최적의 역원을 구하는 동작의 처리 흐름도.
이하 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 참조번호들 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
전술한 바와 같이, 본 발명은 논문 "Non-Conventional Basis of FiniteFields - implementing a fast communication between two elliptic curve cryptosystems in software and hardware. Sang Ho Oh, Chang Han Kim, Joong Chul Yoon, Hee Jin Kim, and Jong In Lim, contribution to IEEE standard P1363, 1999. (page 5)"에 게재된 바와 같은 역원 알고리즘(이하 "단순 역원 알고리즘(Simple Inversion Algorithm)"이라 칭함)이 가지는 문제점을 개선하기 위한 것이다. 상기 논문에 설명되어 있듯이, 상기 단순 역원 알고리즘은 AOP(all-one-polynomials)를 사용한다. 또한 상기 논문에는 제곱(squaring)은 단순히 각 입력 정보들의 비트 위치를 바꿈으로 구현할 수 있으므로, ECC시스템을 하나의 칩으로 구현하는 경우에 칩의 크기나 성능에 큰 영향이 없다는 사실이 설명되어 있다. 그러나 곱셈기는 칩에서 차지하는 크기가 매우 크므로, 가능하면 적은 하나의 곱셈기를 적은 횟수로 사용할 필요가 있다. 이러한 필요에 따라 본 출원의 발명자들은 후술될 도 3에 도시된 바와 같은 흐름에 따라 역원이 구해지도록 함으로써, ECC시스템의 칩내에 구비되는 곱셈기, 제곱기와 같은 연산기들의 숫자를 보다 더 줄이고 이들 연산기들의 연산 횟수를 보다 더 줄임으로써, 역원을 구함에 있어 성능이 향상되도록 하였다.
하기에서는 먼저 본 발명의 실시예에 따른 역원 알고리즘(이하 "개선된 역원 알고리즘(Advanced Inversion Algorithm)"이라 칭함)과, 상기 개선된 역원 알고리즘의 개략적인 흐름과, 상기 개선된 역원 알고리즘의 기본 원리, 상기 개선된 역원 알고리즘의 원리의 일 예가 설명될 것이다. 다음에는, 본 발명의 구체적인 실시예에 따른 역원 장치와, 이 장치에 의해 역원을 구하는 동작의 처리 흐름이 설명될것이다. 마지막으로, 본 발명의 실시예에 따른 개선된 역원 알고리즘이 상기 단순 역원 알고리즘에 대해 가지는 성능을 대비적으로 설명할 것이다.
A.개선된 역원 알고리즘
ECC시스템에서 역원을 구할 시 입력과 출력은 하기의 <표 3>과 같이 정의될 수 있다.
상기 <표 3>에서, α는 유한체 GF( 2n+1)상에서 역원을 구하기 위해 입력되는 원소이고, 이때 n은 양의 정수이고, α-1은 역원 결과이다.
본 발명의 실시예에 따른 개선된 역원 알고리즘은 하기의 <표 4>와 같이 표현된다.
상기 <표 4>를 참조하면, 1. 단계에서는 t를 n으로 설정하고, x를 1로 설정하고, u를 α2으로 설정한다. 여기서 t는 n을 m진법으로 표현한 값이다. 예를 들어, n이 171인 경우, 이 171을 3진법으로 표현하면 t는 20100 이다. t가 0보다 큰 경우에는 2. 단계가 수행된다. 상기 2. 단계는의 값과 t의 값에 따라서 2.1 단계 또는 2.2 단계와 2.3 단계가 수행된다. 여기서,은 t의 마지막 비트, 즉 LSB(Least Significant Bit)를 나타낸다. 상기 2.1 단계는이 0이고, t가 1보다 큰 경우에 수행된다. 상기 2.1 단계는 2.1.1 단계와 2.1.2 단계로 구분된다. 상기 2.1.1 단계는 일종의 t의 모든 비트들을 오른쪽 방향으로 1만큼 각각 시프트시키는 단계이다. 즉, 상기 2.1.1 단계에서는값을값으로 설정하고,값을값으로 설정하고,값을값으로 설정하고, 0을값으로 설정하는 바와 같이 각 비트들의 값을 다른 비트들의 값 또는 0으로 설정하는데, 이는 각 비트들의 값을 오른쪽 방향으로 1만큼 시프트시키는 것에 대응한다. 상기 2.1.2 단계에서는의 값을로 설정하고,의 값을로 설정하고,의 값을로 설정한다. 또한 상기 2.1.2 단계에서는의 값을 u로 설정한다. 상기 2.1.2 단계의 동작은 순차적으로 수행되는 동작이다. t가 1인 경우에는 2.2 단계가 수행된다. 상기 2.2 단계에서는의 값을 x로 설정한 후 종료하고, 그렇지 않은 경우에는의 값을 x로 설정하고의 값을 u로 설정한다.값이 0보다 큰 경우에는 203 단계에서의 값을으로 설정한다.
B.개선된 역원 알고리즘의 개략적인 흐름
도 3은 본 발명의 실시예에 따른 개선된 역원 알고리즘의 개략적인 흐름을 보여주는 도면이다.
상기 도 3을 참조하면,가 주어질 때, 110단계에서의 비트 수를 계산한다. 112단계에서 상기 (의 비트 수)에서 1을 뺀 값을 n으로 결정한다. 114단계에서 상기 결정된 n을 개선된 역원 알고리즘을 위해 최적의 m진법으로 표현한다. 116단계에서 상기 결정된 m진법에 적합한 제곱 로직들(squaring logics)을 설정한다. 118단계에서는 개선된 역원 알고리즘을 이용하여 역원을 구한다.각 단계의 동작들은 후술되는 설명으로부터 보다 명확해질 것이다.
최적화된 m진법 표현 (Optimized m-ary)
상기 114단계에서, n`을 개선된 역원 알고리즘을 위해 최적의 m진법으로 표현하는 방법은 곱셈기를 사용하는 횟수가 최소가 되도록 진법을 사용하는 것이다. 상기 개선된 역원 알고리즘을 상세하게 살펴보면 곱셈 횟수에 대해서 다음과 같은 사실이 있음을 알 수 있다.
① n을 m진법으로 표현했을 때의 자릿수 - 1(즉, 개선된 역원 알고리즘 k) 만큼의 2.1.2 단계를 수행하므로, 이 단계에서 수행되는 곱셈의 횟수는이다.
② 2.2 단계에서 수행되는 곱셈의 횟수는, n을 m진법으로 표현했을 때 '0'이 아닌 숫자들의 합이다.
③ 최초의 2.2 단계는 단순히 x에 u를 대입하는 과정이므로, 곱셈 횟수에 포함시키지 않는다.
예를 들어, 172비트의(n = 171)가 입력되면 다음과 같이, 진법에 따른 곱셈 횟수를 계산할 수 있다.
위에서 보면 쉽게 알 수 있듯이, 5진법 이상의 경우 ①만으로도 10회 이상의 곱셈 연산이 필요하므로, 3진법이 곱셈 횟수가 가장 적음을 알 수 있다. 따라서, 172비트에 대해서는 3진법이 최적의 진법으로 선택된다.
제곱 로직 결정 (Squaring Logic Decision)
진법이 결정되면 t가 결정되고, 따라서 개선된 역원 알고리즘의 단계 2.1.2에서 사용되는 제곱 로직(에서)들이 상기 116단계에서 결정된다. 제곱 로직들을 결정하는 방법은 상기 개선된 역원 알고리즘의 단계 2.1.1을 보면 쉽게 알 수 있다. 이를 다시 정리하면 하기와 같다.
① n을 m으로 나눈 몫 t를 구한다.
② t가 1보다 크면, 하나의 제곱 로직를 결정한다. 또 n에 t를 대입하고, ①을 수행한다.
③ t가 1 이하이면, 종료한다.
예를 들어, n=171, m=3이라고 가정할 때, 사용되는 제곱 로직들은이다.
개선된 역원 알고리즘 (Advanced Inversion Algorithm)
상기 116단계에서 제곱 로직들이 결정되면, 118단계에서 개선된 역원 알고리즘에 따라 역원을 구하는 동작이 수행된다. 이러한 개선된 역원 알고리즘은,이므로,을 구하는 방법에 대한 알고리즘이다. 주어진에 대해서 m을 결정하고, 곱셈 로직과 제곱 로직들을를 구한다.
C.개선된 역원 알고리즘 기본 원리 및 그 예
도 4는 본 발명의 실시예에 따른 개선된 역원 알고리즘의 기본 원리를 보여주는 도면이다.
상기 도 4를 참조하면, 먼저를 구하고, n을 m등분한 위치의값들을 구하여 곱한다. 다음으로 n/m을 m등분한 위치의를 구하여 곱한다. 이를 계속적으로 반복하여를 구한다. 단,가 m로 나누어지지 않을 때는 그 때까지 구한 값을 저장하고, 이 값을 제곱하여를 1씩 감소시키는 작업을가 m으로 나누어질 때까지 반복한다. 이때 제곱할 때마다 구해진은 기존의 저장된 값과 곱한다.
도 5는 본 발명의 실시예에 따른 개선된 역원 알고리즘의 원리를 적용한 예를 보여주는 도면이다.
상기 도 5를 참조하면, n=171, m=3이라고 가정할 때 개선된 역원 알고리즘의 원리를 적용한 예가 도시되어 있다. 적용 예에 따르면, n=171을 m=3등분한 위치의값들을 구하여 곱한다. 다음으로 n/m을 m등분한 위치의를 구하여 곱한다. 이를 계속적으로 반복하여를 구한다. 단,가 m로 나누어지지 않을 때는 그 때까지 구한 값을 저장하고, 이 값을 제곱하여를 1씩 감소시키는 작업을가 m으로 나누어질 때까지 반복한다. 이때 제곱할 때마다 구해진은 기존의 저장된 값과 곱한다.
D.구체적인 실시 예
하기에서는 n=171, m=3인 경우를 전제로 하여 설계된 본 발명의 구체적인 실시예에 따른 역원 장치와 이 장치에 의해 역원이 구해지는 동작의 흐름이 설명될 것이다. 이때 상기 역원 장치는 AOP(all-one-polynomial)를 사용한다. 따라서, 제곱 로직은 단순히 비트위치바꿈으로 대체되어 곱셈 로직이 주요 연산기가 된다. GF(2172)의 곱셈 로직의 크기는 매우 크므로, 하나의 곱셈 로직만을 사용하여 역원 장치를 설계하였다는 사실에 유의하여야 한다. 상기 역원 장치는 하나의 곱셈 로직(Multiplier Logic)을 포함하고 또한 복수개의 제곱 로직(Squaring Logic)들을 포함하여 설계된다. 실제, ECC시스템의 전체 아키텍처(architecture)에서는 역원 장치내에 있는 곱셈 로직과 제곱 로직들은 도 2에 도시된 바와 같이 덧셈/배수/뺄셈 로직 40을 위해 사용될 수 있다.
실시 예에 따른 역원 장치
도 6은 본 발명의 실시예에 따른 최적의 역원 장치의 구성을 보여주는 도면이다.
상기 도 6을 참조하면, 본 발명의 실시예에 따른 역원 장치는 제어 로직 310과, 복수개의 제곱 로직들 312,326,328,330,332,334,336과, 복수개의 레지스터들 314,316,338과, 복수개의 선택기들 318,320,322,324와, 곱셈기 342를 포함한다. 상기 선택기들은 멀티플렉서(Multiplexer)로서 구현될 수 있다.
제곱 로직 312는 역원 계산될 유한체 원소를 나타내는 복수개(172)의 비트들을 입력하고, 이 복수개의 비트들을 제곱하여 출력한다. 상기 제곱 로직 312의 출력 단자는 제1 선택기 318의 '0' 입력 단자와, 제2 선택기의 '00' 입력 단자에 접속된다. V 레지스터 314의 입력 단자는 제3 선택기 322의 출력 단자에 접속되고, 출력 단자는 제2 선택기 320의 '01' 입력 단자에 접속된다. U 레지스터 316의 입력 단자는 제4 선택기 324의 출력 단자에 접속되고, 출력 단자는 제1 선택기 318의 '1' 입력 단자와 제2 선택기 320의 '10' 입력 단자에 접속된다. 제1 선택기(Mux1) 318의 '0' 입력 단자는 제어 로직 310의 출력 단자에 접속되고, '1' 입력 단자는 U 레지스터 316의 출력 단자에 접속되고, 출력 단자는 곱셈기 342의 제1 입력 단자에 접속된다. 제2 선택기(Mux2) 320의 '00' 입력 단자는 제어 로직 310의 출력 단자에 접속되고, '01' 입력 단자는 V 레지스터 314의 출력 단자에 접속되고, '10' 입력 단자는 U 레지스터 316의 출력 단자에 접속되고, 출력 단자는 제곱 로직들 326,328,330,332의 입력 단자들에 접속된다. 제3 선택기(Mux3) 322의 '0' 입력 단자는 제5 선택기 340의 출력 단자에 접속되고, '1' 입력 단자는 제곱 로직 334의 출력 단자에 접속되고, 출력 단자는 V 레지스터 322의 입력 단자에 접속된다. 제4 선택기(Mux4) 324의 '0' 입력 단자는 곱셈기 342의 출력 단자에 접속되고, '1' 입력 단자는 제곱 로직 336의 출력 단자에 접속되고, 출력 단자는 U 레지스터 316의 입력 단자에 접속된다. 57 제곱 로직 326의 입력 단자는 제2 선택기 320의 출력 단자에 접속되고, 출력 단자는 제5 선택기 340의 '000' 입력 단자에 접속된다. 19 제곱 로직 328의 입력 단자는 제2 선택기 320의 출력 단자에 접속되고, 출력 단자는제5 선택기 340의 '001' 입력 단자에 접속된다. 6 제곱 로직 330의 입력 단자는 제2 선택기 320의 출력 단자에 접속되고, 출력 단자는 제5 선택기 340의 '010' 입력 단자에 접속된다. 2 제곱 로직 322의 입력 단자는 제2 선택기 320의 출력 단자에 접속되고, 출력 단자는 제5 선택기 340의 '011' 입력 단자에 접속된다. 제곱 로직 334의 입력 단자는 U 레지스터 316의 출력 단자에 접속되고, 출력 단자는 제3 선택기 322의 '1' 입력 단자에 접속된다. 제곱 로직 336의 입력 단자는 곱셈기 342의 출력 단자에 접속되고, 출력 단자는 제4 선택기 324의 '1' 입력 단자에 접속된다. 제5 선택기(Mux5) 340의 '000' 입력 단자는 57 제곱 로직 326의 출력 단자에 접속되고, '001' 입력 단자는 19 제곱 로직 328의 출력 단자에 접속되고, '010' 입력 단자는 6 제곱 로직 330의 출력 단자에 접속되고, '011' 입력 단자는 2 제곱 로직 332의 출력 단자에 접속되고, '100' 입력 단자는 X 레지스터 338의 출력 단자에 접속되고, '101' 입력 단자는 V 레지스터 314의 출력 단자에 접속되고, 출력 단자는 곱셈기 342의 제2 입력 단자에 접속된다. X 레지스터 338의 입력 단자는 곱셈기 342의 출력 단자에 접속되고, 출력 단자는 제5 선택기 340의 '100' 입력 단자에 접속된다. 곱셈기 342의 제1 입력 단자는 제1 선택기 318의 출력 단자에 접속되고, 제2 입력 단자는 제5 선택기 340의 출력 단자에 접속되고, 출력 단자는 X 레지스터 338의 입력 단자와 제4 선택기 324의 '0' 입력 단자와 제곱 로직 336의 입력 단자에 접속된다. 제어 로직 310은 후술될 도 7에 도시된 바와 같은 흐름에 따른 역원 동작이 수행되도록 상기와 같이 역원 장치를 구성하는 요소들을 전반적으로 제어한다. 즉, 상기 제어 로직 310은 선택기들 318,320,322,324,340을 제어하고, 레지스터들 314,316,338을 제어한다. 이러한 제어 로직 310은 시작(start) 신호가 입력되는 경우 역원을 구하는 동작을 시작하고 역원이 구해진 경우 종료(done) 신호를 출력한다.
실시 예에 따라 역원을 구하는 흐름
도 7은 도 6에 도시된 장치에 의해 최적의 역원이 구해지는 동작의 처리 흐름도이다. 이러한 처리 흐름에 따른 동작은 상기 도 6에 도시된 역원 장치의 제어 로직 310에 의해 제어되어 하기와 같이 수행된다. 이때 선택기들과 레지스터들의 설정값은 특별한 언급이 없는 경우에는 이전 값을 갖는다.
① 시작 신호가 입력되면, 역원 계산을 위한 입력값 α를 입력받는다.
② Mux1 : 0, Mux2 : 00, Mux3 : 0, Mux4 : 0, Mux5 : 000 값을 설정하고, V 레지스터 314와 U 레지스터 316에 값을 저장한다. 이때 도 11의 401단계, 402단계, 403단계가 수행된다.
③ Mux1 : 1, Mux2 : 01 값을 설정하고, U 레지스터 316에 값을 저장한다. 이때 404단계, 405단계가 수행된다.
④ Mux2 : 10, Mux5 : 001 값을 설정하고, V 레지스터 314와 U 레지스터 316에 값을 저장한다. 이때 406단계, 407단계가 수행된다.
⑤ Mux2 : 01, Mux4 : 1 값을 설정하고, X 레지스터 338과 U 레지스터 316에 값을 저장한다. 이때 408단계, 409단계, 4010단계, 4011단계가 수행된다.
⑥ Mux2 : 10, Mux4 : 0, Mux5 : 010 값을 설정하고, V 레지스터 314와 U 레지스터 316에 값을 저장한다. 이때 4012단계, 4013단계가 수행된다.
⑦ Mux2 : 01 값을 설정하고, U 레지스터 316에 값을 저장한다. 이때 4014단계, 4015단계가 수행된다.
⑧ Mux2 : 10, Mux5 : 011 값을 설정하고, V 레지스터 314와 U 레지스터 316에 값을 저장한다. 이때 4016단계, 4017단계가 수행된다.
⑨ Mux2 : 01 값을 설정하고, U 레지스터 316에 값을 저장한다. 이때 4018단계, 4019단계가 수행된다.
⑩ Mux3 : 1, Mux5 : 100 값을 설정하고, V 레지스터 314와 U 레지스터 316에 값을 저장한다. 이때 4020단계, 4021단계가 수행된다.
⑪ Mux5 : 101 값을 설정하고, U 레지스터 316에 값을 저장한다. 이때 4022단계가 수행된다.
⑫ 역원 결과값인 α-1을 출력하고, 종료(done) 신호를 출력한다.
전술한 도 6 및 도 7과 관련하여 본 발명의 구체적인 실시예에 따라 역원을 구하는 동작의 흐름이 설명되었다. 이러한 흐름을 보다 구체적으로 나타내면 하기와 같다. 하기에서 []로 나타낸 수는 역원을 구하는 동작의 순서를 나타내고, [] 오른쪽 옆에 기재한 숫자는 <표 4>에 나타낸 본 발명의 실시예에 따른 개선된 역원 알고리즘에서의 단계를 나타낸다.
Advanced Inversion Algorithm:
위에서 나타낸 바와 같은 본 발명의 실시예에 따른 개선된 역원 알고리즘에 의해 역원을 구하는 구체적인 동작과 대비되는 종래 기술에 따라 단순 역원 알고리즘 및 이 단순 역원 알고리즘에 의해 역원을 구하는 동작을 설명하면 하기와 같다. 하기의 <표 5>는 단순 역원 알고리즘을 나타낸다. 그리고 하기에서 []로 나타낸 수는 역원을 구하는 동작의 순서를 나타내고, [] 오른쪽 옆에 기재한 숫자는 <표 5>에 나타낸 단순 역원 알고리즘에서의 단계를 나타낸다.
상기 <표 5>에 나타낸 단순 역원 알고리즘은 상기 <표 4>에 나타낸 개선된 역원 알고리즘과 유사하다. 그러나 이들 알고리즘의 가장 큰 차이는 t의 값을 2진(binary)법으로 표현하느냐, m진법(m-ary)으로 표현하느냐에 있다는 사실에 유의할 필요가 있다.
Simple Inversion Algorithm:
E.성능 비교
하기에서는 본 발명의 실시예에 따른 개선된 역원 알고리즘에 의해 역원을 구하는 경우와 종래 기술에 따른 단순 역원 알고리즘에 의해 역원을 구하는 경우의 성능을 비교한다. 이러한 성능을 비교함에 있어서는 요구되는 연산기와 연산 회수의 측면을 고려하여 이를 <표 6>과 <표 7>로 나타낸다. 단,의 경우는 곱셈연산이 아닌, 단순 대입연산으로 생각한다.
상기 <표 6>은 단순 역원 알고리즘에 의해 역원을 구하는 경우에 요구되는 연산기와 연산 횟수를 정리한 것이다. 상기 <표 7>은 개선된 역원 알고리즘에 의해 역원을 구하는 경우에 요구되는 연산기와 연산 횟수를 정리한 것이다. 위의 비교에서도 알 수 있듯이 알고리즘 2가 연산기의 숫자에서나 연산횟수에서 뛰어난 성능을 가진다. 앞에서 언급한 논문에 나오는 AOP(all-one-polynomials)을 사용하여 제곱기를 단순히 비트위치바꿈으로 구현한다고 하더라도 개선된 역원 알고리즘은 단순 역원 알고리즘보다 곱셈기의 연산횟수가 적다. 따라서,이 주어졌을 때, n을 2진수로 표현하여 역원을 구하는 종래의 알고리즘보다, n을 적절한 m-ary로 표현하여 역원을 구하는 본 발명의 알고리즘이 보다 효율적임을 알 수 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이 본 발명은 ECC 시스템에서 역원을 위해이 주어졌을 때, n을 2진수로 표현하여 역원을 구하는 종래의 알고리즘보다, n을 적절한 m-ary로 표현하여 역원을 구하는 본 발명의 알고리즘이 요구되는 연산기의 수나 연산 횟수의 측면에서 보다 효율적임을 알 수 있다.

Claims (15)

  1. 타원곡선 암호시스템에서, 유한체 요소를 나타내는 입력 정보에 대해 역원을 구하기 위한 방법에 있어서,
    상기 입력 정보()에 대응하는 비트 수(n)를 m진법(여기서, m은 3 이상의 자연수)으로 표현하는 과정과,
    상기 비트 수를 m으로 나누어 하나의 몫을 구하고 이 구해진 몫을 m으로 나누어 다른 몫을 구하는 동작을 반복적으로 수행하고, 상기 구해진 몫들에 대응하는 제곱 로직들을 결정하는 과정과,
    상기 결정된 제곱 로직들과 곱셈기의 조합에 의해 상기 입력 정보에 대한 역원을 구하고 역원 결과 값을 출력하는 과정을 포함함을 특징으로 하는 상기 방법.
  2. 제1항에 있어서, 상기 비트 수는 상기 입력 정보의 비트 수에서 1을 뺀 수임을 특징으로 하는 상기 방법.
  3. 제1항에 있어서, 상기 m진법으로 표현하는 과정은, 상기 비트 수에 대한 곱셈 횟수를 진법별로 계산하여 가장 적은 곱셈 횟수를 가지는 진법을 선택하여 표현하는 것을 특징으로 하는 상기 방법.
  4. 제1항에 있어서, 상기 제곱 로직들을 결정하는 과정은,
    n을 m으로 나눈 몫 t를 구하는 (a)과정과,
    t가 1보다 큰 경우 하나의 제곱 로직을 결정하는 (b)과정과,
    n에 t를 대입하고 상기 (a)과정으로 되돌아가는 (c)과정을 포함함을 특징으로 하는 상기 방법.
  5. 제4항에 있어서, t가 1 이하인 경우 상기 제곱 로직들을 결정하는 과정을 종료하는 과정을 더 포함함을 특징으로 하는 상기 방법.
  6. 제1항에 있어서, 상기 입력 정보에 대한 역원은 다음과 같은 알고리즘을 이용하여 구해짐을 특징으로 하는 상기 방법.
  7. 타원곡선 암호시스템에서, 유한체 GF()상의 입력 정보()에 대해 역원()을 구하기 위한 방법에 있어서,
    상기 입력 정보()에 대응하는 비트 수(n)를 m진법(여기서, m은 3 이상의 자연수)으로 표현되는 제1변수 t로 설정하고, 제2변수 x를 1로 설정하고,을 제3변수 u로 설정하는 과정과,
    상기 제1변수가 0보다 큰 경우, 상기 제1변수가 1보다 크고 상기 제1변수의 최하위비트(LSB)가 0인지 여부를 판단하는 과정과,
    상기 제1변수의 LSB가 0이고 상기 제1변수가 1보다 큰 경우, 상기 제1변수의 각 비트들을 오른쪽 방향으로 시프트시키고, 상기 제3변수의 값을 하기의 <수학식 1>과 같이 설정하는 과정과,
    상기 제1변수가 1인 경우, 상기 제2변수와 상기 제3변수를 곱셈 연산한 후종료하고, 그렇지 않은 경우 상기 제3변수를 u2로 설정하고 상기 제2변수와 상기 제3변수를 곱셈 연산하는 과정과,
    상기 제1변수의 LSB가 0보다 큰 경우, 상기 제1변수의 LSB를 이전의 LSB에서 1을 뺀 값으로 설정하는 과정을 포함하고, 상기 제3변수의 값을 상기 역원 값을 출력함을 특징으로 하는 상기 방법.
    여기서,이다.
  8. 제7항에 있어서, 상기 비트 수는 상기 입력 정보의 비트 수에서 1을 뺀 수임을 특징으로 하는 상기 방법.
  9. 제7항에 있어서, 상기 m은, 상기 비트 수에 대한 곱셈 횟수를 진법별로 계산하여 가장 적은 곱셈 횟수를 가지는 진법을 나타내는 수임을 특징으로 하는 상기 방법.
  10. 제7항에 있어서, 상기 비트 수 n이 171인 경우, 상기 m은 3으로 정해짐을 특징으로 하는 상기 방법.
  11. 제7항에 있어서, 상기 제3변수의 값을 상기 <수학식 1>과 같이 설정하는 과정은, { n을 m진법으로 표현했을 때의 자릿수 - 1 }만큼 수행됨을 특징으로 하는 상기 방법.
  12. 타원곡선 암호시스템에서, 유한체 요소를 나타내는 입력 정보에 대해 역원을 구하기 위한 장치에 있어서,
    상기 입력 정보()에 대응하는 비트 수(n)가 m진법(여기서, m은 3 이상의 자연수)으로 표현되고, 상기 비트 수를 m으로 나누어 구해지는 하나의 몫과, 이 구해진 하나의 몫을 m으로 나누어 다른 몫을 구하는 동작을 반복적으로 수행함에 의해 구해진 몫들을 포함하는 복수의 몫들에 대응하는 복수의 제곱 로직들과,
    제1 변수(v)의 저장을 위한 제1 레지스터와,
    제2 변수(x)의 저장을 위한 제2 레지스터와,
    제3 변수(u)의 저장을 위한 제3 레지스터와,
    곱셈을 위한 곱셈기를 포함하고,
    상기 복수의 제곱 로직들은, 상기 입력 정보에 대한 제곱 결과(u)와 상기제2 레지스터 및 상기 제3 레지스터로부터의 출력들을 선택적으로 입력하여 제곱 연산한 후 출력하고,
    상기 곱셈기는, 상기 입력 정보에 대한 제곱 결과(u)와 상기 제3 레지스터로부터의 출력을 선택적으로 제1 입력으로 제공받고, 상기 복수의 제곱 로직들로부터의 출력을 제2 입력으로 제공받아 곱셈 연산한 후 출력하고,
    상기 제1 레지스터는, 상기 곱셈 결과와 상기 제3 레지스터로부터의 출력에 대응하는 결과를 선택적으로 제공받아 저장하고,
    상기 제2 레지스터는, 상기 곱셈 결과를 저장하고 상기 복수의 제곱 로직들로부터 출력되는 제곱 결과들과의 조합을 위해 출력하고,
    상기 제3 레지스터는, 상기 곱셈 결과와 상기 곱셈 결과에 대응하는 결과를 선택적으로 제공받아 저장하고,
    상기 제3 레지스터의 출력은 상기 비트 수가 m진법으로 표현되는 변수의 값이 1인 경우 상기 입력 정보에 대한 역원 값으로 출력되는 것을 특징으로 하는 상기 장치.
  13. 제12항에 있어서, 상기 레지스터들의 동작을 제어하기 위한 제어 로직을 더 포함함을 특징으로 하는 상기 장치.
  14. 제12항에 있어서, 상기 복수의 제곱 로직들과 상기 제1 레지스터의 사이, 상기 곱셈기와 상기 제3 레지스터의 사이, 상기 제1 레지스터와 상기 복수의 제곱 로직들의 사이, 상기 제3 레지스터와 상기 곱셈기의 사이에는 선택적인 신호의 제공을 위한 선택기들이 더 포함됨을 특징으로 하는 상기 장치.
  15. 제12항에 있어서, 상기 제곱 로직들의 제곱 크기는,
    n을 m으로 나눈 몫 t를 구하고, t가 1보다 큰 경우 하나의 제곱 로직을 결정하고, 이러한 동작을 n에 t를 대입하여 반복적으로 수행하여 결정하는 것을 특징으로 하는 상기 장치.
KR1020010039176A 2001-06-30 2001-06-30 암호시스템에 사용하기 위한 최적의 역원을 구하기 위한방법 및 장치 KR20030003435A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010039176A KR20030003435A (ko) 2001-06-30 2001-06-30 암호시스템에 사용하기 위한 최적의 역원을 구하기 위한방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010039176A KR20030003435A (ko) 2001-06-30 2001-06-30 암호시스템에 사용하기 위한 최적의 역원을 구하기 위한방법 및 장치

Publications (1)

Publication Number Publication Date
KR20030003435A true KR20030003435A (ko) 2003-01-10

Family

ID=27712982

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010039176A KR20030003435A (ko) 2001-06-30 2001-06-30 암호시스템에 사용하기 위한 최적의 역원을 구하기 위한방법 및 장치

Country Status (1)

Country Link
KR (1) KR20030003435A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7680272B2 (en) 2003-12-24 2010-03-16 Samsung Electronics Co., Ltd. Inverse calculation circuit, inverse calculation method, and storage medium encoded with computer-readable computer program code
KR20200102126A (ko) * 2019-02-21 2020-08-31 한국전자통신연구원 유한체 나눗셈 연산기 및 그것을 갖는 타원곡선 암호 시스템 및 그것의 동작 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02155314A (ja) * 1988-12-08 1990-06-14 Toshiba Corp 有限体上の逆元計算装置
KR19980037406A (ko) * 1996-11-21 1998-08-05 이준 메모리를 사용하여 유한체상에서 역원을 구하는 방법
US5982895A (en) * 1997-12-24 1999-11-09 Motorola, Inc. Finite field inverse circuit for use in an elliptic curve processor
US6230179B1 (en) * 1997-04-18 2001-05-08 Motorola, Inc. Finite field multiplier with intrinsic modular reduction
KR20020086005A (ko) * 2001-05-10 2002-11-18 학교법인 정석학원 타원곡선 암호 시스템을 위한 역원 연산기
KR20020094256A (ko) * 2001-06-08 2002-12-18 이광엽 타원곡선암호화의 유한체 역원과 승산 장치 및 그 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02155314A (ja) * 1988-12-08 1990-06-14 Toshiba Corp 有限体上の逆元計算装置
KR19980037406A (ko) * 1996-11-21 1998-08-05 이준 메모리를 사용하여 유한체상에서 역원을 구하는 방법
US6230179B1 (en) * 1997-04-18 2001-05-08 Motorola, Inc. Finite field multiplier with intrinsic modular reduction
US5982895A (en) * 1997-12-24 1999-11-09 Motorola, Inc. Finite field inverse circuit for use in an elliptic curve processor
KR20020086005A (ko) * 2001-05-10 2002-11-18 학교법인 정석학원 타원곡선 암호 시스템을 위한 역원 연산기
KR20020094256A (ko) * 2001-06-08 2002-12-18 이광엽 타원곡선암호화의 유한체 역원과 승산 장치 및 그 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7680272B2 (en) 2003-12-24 2010-03-16 Samsung Electronics Co., Ltd. Inverse calculation circuit, inverse calculation method, and storage medium encoded with computer-readable computer program code
KR20200102126A (ko) * 2019-02-21 2020-08-31 한국전자통신연구원 유한체 나눗셈 연산기 및 그것을 갖는 타원곡선 암호 시스템 및 그것의 동작 방법
US11431499B2 (en) 2019-02-21 2022-08-30 Electronics And Telecommunications Research Institute Finite-field division operator, elliptic curve cryptosystem having finite-field division operator and method for operating elliptic curve cryptosystem

Similar Documents

Publication Publication Date Title
Islam et al. FPGA implementation of high-speed area-efficient processor for elliptic curve point multiplication over prime field
US7505587B2 (en) Elliptic curve cryptosystem apparatus, storage medium storing elliptic curve cryptosystem program, and elliptic curve cryptosystem arithmetic method
KR102136911B1 (ko) 스칼라 또는 멱수와의 곱셈 연산을 포함하는 암호화 방법
US8504602B2 (en) Modular multiplication processing apparatus
US7961874B2 (en) XZ-elliptic curve cryptography with secret key embedding
EP1014617A2 (en) Method and apparatus for elliptic curve cryptography and recording medium therefor
US20090136025A1 (en) Method for scalarly multiplying points on an elliptic curve
Großschädl A bit-serial unified multiplier architecture for finite fields GF (p) and GF (2 m)
Harb et al. FPGA implementation of the ECC over GF (2m) for small embedded applications
JP2006023648A (ja) 乗算剰余演算器及び情報処理装置
Tian et al. Efficient software implementation of the SIKE protocol using a new data representation
Choi et al. Efficient design and performance analysis of a hardware right-shift binary modular inversion algorithm in GF (p)
Vollala et al. Efficient modular exponential algorithms compatible with hardware implementation of public‐key cryptography
CN115270155A (zh) 一种获取大数拓展最大公约数的方法及硬件架构
JP2005055488A (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム
Al-Haija et al. Cost-effective design for binary Edwards elliptic curves crypto-processor over GF (2N) using parallel multipliers and architectures
KR20030003435A (ko) 암호시스템에 사용하기 위한 최적의 역원을 구하기 위한방법 및 장치
US8850213B2 (en) Method for verifying an electronic signature and data processing device
KR20020086005A (ko) 타원곡선 암호 시스템을 위한 역원 연산기
KR100974624B1 (ko) 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법, 그장치 및 이를 기록한 기록매체
JP4502817B2 (ja) 楕円曲線スカラー倍計算方法および装置
Realpe-Muñoz et al. High-performance elliptic curve cryptoprocessors over GF (2^ m) GF (2 m) on Koblitz curves
Poomagal et al. Modular multiplication algorithm in cryptographic processor: A review and future directions
JP2004177582A (ja) 楕円曲線暗号装置、楕円曲線暗号演算方法
KR102253211B1 (ko) 소수체와 이진체 상의 타원곡선을 지원하는 공개키 암호 시스템의 하드웨어 구현을 위한 연산장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application