KR20040055192A - 자바카드에서의 멱승연산을 위한 모듈러 곱셈장치 및 그방법 - Google Patents

자바카드에서의 멱승연산을 위한 모듈러 곱셈장치 및 그방법 Download PDF

Info

Publication number
KR20040055192A
KR20040055192A KR1020020081817A KR20020081817A KR20040055192A KR 20040055192 A KR20040055192 A KR 20040055192A KR 1020020081817 A KR1020020081817 A KR 1020020081817A KR 20020081817 A KR20020081817 A KR 20020081817A KR 20040055192 A KR20040055192 A KR 20040055192A
Authority
KR
South Korea
Prior art keywords
modular
multiplication
java card
module
buffer
Prior art date
Application number
KR1020020081817A
Other languages
English (en)
Other versions
KR100512759B1 (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 KR10-2002-0081817A priority Critical patent/KR100512759B1/ko
Publication of KR20040055192A publication Critical patent/KR20040055192A/ko
Application granted granted Critical
Publication of KR100512759B1 publication Critical patent/KR100512759B1/ko

Links

Classifications

    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 공개키 암/복호화에서 빈번하게 나타나는 모듈러 멱승연산을 자바카드 상에서 고속으로 수행하기 위하여 몽고메리 알고리즘을 이용한 모듈러 곱셈장치 및 그 방법에 관한 것이다. 이러한 본 발명의 장치는 자바카드 상에서 n비트의 연산항 A와 B를 고속으로 연산을 수행하기 위한 기본 사칙 연산 모듈이, 메모리를 재활용할 수 있도록 2n+2 비트의 공통 버퍼(common buffer)와, 캐리를 저장하기 위한 2비트의 캐리 버퍼(carry buffer)를 포함한다.
본 발명에 따르면, 몽고메리 알고리즘에 따른 모듈러 곱셈 모듈을 구성함으로써, 자원이 제한된 자바카드 상에서 공개키 암호화 알고리즘에서 빈번하게 나타나는 모듈러 멱승연산을 고속으로 수행할 수 있다.

Description

자바카드에서의 멱승연산을 위한 모듈러 곱셈장치 및 그 방법{ Device and Method of modular multiplication for modular exponentiation on Javacard}
본 발명은 자바카드 상에서의 모듈러 곱셈 모듈을 구성하는 장치 및 방법에 관한 것으로, 더욱 상세하게는 공개키 암/복호화에서 빈번하게 나타나는 모듈러 멱승연산을 자바카드 상에서 고속으로 수행하기 위하여 몽고메리 알고리즘을 이용한 모듈러 곱셈장치 및 그 방법에 관한 것이다.
일반적으로, Diffie-Hellman 방식에서 유래한 이산대수 문제에 기반한 공개키암호시스템이나 RSA와 같이 소인수분해 문제에 기반한 공개키 암호화시스템에서는 큰 정수에 대한 모듈러 멱승(exponentiation) 연산이 필수적이다. 이와 같이 공개키 암호 알고리즘에서 많이 나타나는 모듈러 멱승 연산을 수행하기 위해서는 시간이 많이 걸리는데, 모듈러 멱승 연산은 반복적인 모듈러 곱셈 연산으로 이루어진다. 따라서 모듈러 멱승 연산의 고속화를 위해서는 모듈러 곱셈 연산의 고속화가 필요한데, 몽고메리 알고리즘을 이용한 모듈러 곱셈이 이에 적합하다.
본 발명의 목적은 상기와 같은 필요성을 충족시키기 위하여 자바카드 상에서 몽고메리 알고리즘을 이용한 모듈러 곱셈장치와 모듈러 곱셈장치 및 방법을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 자바카드에서의 멱승연산을 위한 모듈러 곱셈장치는, 자바카드 상에서 n비트의 연산항 A와 B를 고속으로 연산을 수행하기 위한 기본 사칙 연산 모듈이, 메모리를 재활용할 수 있도록 2n+2 비트의 공통 버퍼(common buffer)와, 캐리를 저장하기 위한 2비트의 캐리 버퍼(carry buffer)를 포함하는 것을 특징으로 한다.
또한 상기와 같은 목적을 달성하기 위하여 본 발명의 자바카드에서의 멱승연산을 위한 모듈러 곱셈방법은, A, B, M, R에 대한 모듈러 곱셈을 수행하는 방법에 있어서, 상기 M과 R의 최대공약수를 구하는 제1 단계; 상기 R에 대한 M의 모듈러 역원을 구하고, 이를 R로 감산하여 M'를 구하는 제2 단계; 곱셈연산에 사용되는 인자인 n비트 길이의 A와 B를 승산하여 T를 구하는 제3 단계; 상기 T와 상기 M'를 승산하고, 그 결과를 다시 R로 모듈러 연산하여 U를 구하는 제4 단계; 상기 M과 U을 승산하고, 이 값을 T와 가산한 다음, 이를 R로 제산하여 새로운 T를 구하는 제5 단계; 및 상기 새로운 T에 대해 T ≥ M이면 최종값은 T-M으로 하고, 그렇지 않으면 최종값은 T로 하는 제6 단계를 포함하는 것을 특징으로 한다.
도 1은 본 발명이 적용되는 자바카드의 전체 구성을 도시한 개략도,
도 2는 본 발명에 사용되는 공통 버퍼를 이용한 기본 사칙연산 모듈 구성도,
도 3은 본 발명에 사용되는 응용 연산인 최대공약수 연산 모듈 구성도,
도 4는 본 발명에 따른 모듈러 곱셈 모듈의 구성도이다.
*도면의 주요부분에 대한 부호의 설명
100;자바카드 102;카드 하드웨어
104;카드 운영체제 106;자바가상머신
108;자바카드 API 110;기본 연산모듈
112;가산 모듈 114;감산 모듈
116;승산모듈 118;쉬프트 모듈
120;응용 연산모듈 122;역원 연산모듈
124;최대공약수 연산모듈 130;모듈러 곱셈모듈
140-1,140-2;카드 애플릿
이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 먼저, 본 발명을 이해하기 쉽도록 몽고메리 알고리즘을 간단히 설명한다.
몽고메리(Montgomery)는 모듈러 곱셈을 계산하기 위한 효율적인 알고리즘을 다음 수학식 1과 같이 제안하였다.
여기서, A, B, R, M은 양의 정수 값이고, A, B < M 이며, R은 기저(base) 이며, M과 R은 서로소이다. A, B, R, M을 기수(radix) r을 사용하여 다시 표현하면 다음 수학식2와 같다.
상기 수학식 2에서 Ai, Bi는 A, B 각각의 i번째 비트값을 나타내고, n은 A, B의 비트 길이를 나타내며, ri는 기수(radix) r의 i멱승 값이다. 이를 다시 풀어 쓰면 다음 수학식 3과 같다.
,
이진수 기반의 시스템에서는 r은 2가 된다.
통상, 모듈라 곱셈 "AB mod M"은 A와 B를 곱한 후, 몫 추정 기법에 의한 나눗셈을 수행한 뒤 그 나머지를 취하는 방법을 사용하는데, 고전적인 방법과 바렛(Barret) 알고리즘이 대표적이다. 그러나 이 방법들은 나눗셈을 이용하므로 몫 추정 과정이 복잡하다는 점과 하드웨어 구현이 어려운 단점을 지니고 있다.
반면, 몽고메리 알고리즘은 모듈라 감소(modular reduction)시 반복적인 나눗셈을 하는 대신, 모듈라 M 잉여 집합(residue class modulo M)을 M-residue로 정의하고, 이 집합 내에서 덧셈과 곱셈만으로 빠른 모듈라 감소를 수행한다.
몽고메리 모듈라 곱셈 알고리즘에서는 먼저 M보다 크고 M과 서로 소(relative prime)인 R을 정의하는데, 연산기의 처리 단위를 고려하여 "mod R"과 "div R" 이 용이하도록 일반적으로 R=rn을 사용한다. 또한 이 알고리즘에서는 임의의 x에 대한 M-residue를 "xR mod M"으로 정의하며, 주된 연산은 M-residue로 변환된 A와 B에 대한 모듈라 곱셈 "ABR-1mod M"을 수행하는 것이다. 여기서 AB는 단순히 두 수의 곱셈 과정이며, 이 결과에 대해 R-1을 곱하는 과정이 모듈라 감소에 해당한다.
다음 수학식 4는 몽고메리 모듈라 감소(Montgomery reduction)에 관한 절차를 나타내며, 수학식5는 몽고메리 모듈라 감소를 이용한 몽고메리 곱셈(Montgomery multiplication)에 관한 절차를 나타낸다. 수학식6은 수학식5를 간략화시킨 것이다. 수학식6에서 R-1과 M'은 " RR-1-MM'=1 " 인 관계에 있다.
도 1은 본 발명이 적용되는 기본적인 자바카드의 구조 및 모듈러 곱셈 모듈의 구성에 대한 간략한 도면이다.
도면을 참조하면, 자바카드(100)는 자바 기술을 활용한 스마트 카드로서, 카드 하드웨어(Card Hardware:102)와 카드 운영체제(COS: Card Operating System, 104) 부분이 일반적인 스마트 카드의 구성성분이고, 자바카드(100)는 그 위에 자바카드 가상머신(JCVM: Java Card Virtual Machine, 106)과 자바카드 API(JavaCard API, 108)를 추가하여, 스마트 카드 위에서 자바기술을 적용할 수 있게 한 것이다.
자바 클래스로 이루어진 카드 애플릿(Card Applet; 140-1,140-2)은 자바카드 API(JavaCard API;108)를 참조하고, 자바카드 가상머신(JCVM; 106) 위에서 수행되게 된다. 카드 애플릿(Card Applet; 140-1,140-2)의 기능에 따라 자바카드 API(JavaCard API; 108) 이외의 별도의 API를 구성할 수도 있다.
본 발명에서는 암호연산에서 많이 나타나는 모듈러 멱승 연산을 고속으로 수행할 수 있도록, 몽고메리 알고리즘을 기반으로 한 모듈러 멱승 연산 모듈 및 기타연산 모듈을 별도의 API 형태로 구성한 것이다. 따라서 암호연산을 행하게 되는 카드 애플릿(Card Applet)은 이 모듈러 멱승 연산 모듈을 참조하여 고속으로 암호연산을 수행할 수 있게 된다.
이러한 모듈들의 구성은 우선 사칙연산 모듈(110)을 기본으로 하고, 그 위에 이를 응용한 모듈러 역원 연산(122)과 최대공약수 연산 모듈(124)이 위치한다. 그리고 모듈러 곱셈 모듈(130)은 기본 사칙 연산 모듈(112,114,116,118)과 응용 연산 모듈(120)을 이용하여 수행되게 된다.
도 2는 본 발명에 따라 기본 사칙연산을 자바카드(100) 상에서 수행할 수 있게 재구성한 연산 모듈을 도시한 도면이다. 이때 자바카드(100)에서 카드 하드웨어(Card Hardware; 102)는 8bit CPU와, 256byte의 RAM과 20Kb의 EEPROM 으로 구성되어 있다. 사용자가 데이터나 실행파일을 저장할 수 있는 곳은 EEPROM이고, 256바이트의 RAM과 8bit CPU를 통해 파일을 실행하게 된다.
이처럼 CPU와 메모리 자원의 제한으로, 수행할 수 있는 연산 변수형에도 제한을 두게 되는데, 최대 변수형은 "short"이고, 실제 연산할 수 있는 변수형은 byte형이다. 따라서 본 발명의 실시예에서는 기본 사칙연산을 구현함에 있어 바이트 배열 연산을 기본으로 한다.
기본 사칙연산으로 가산, 감산, 승산, 제산등이 있는데, 본 발명의 실시예에서 제산(division)은 다른 연산에 비해 그 계산량이 많아 수행속도가 느리므로, 같은 기능을 수행하면서 속도가 빠른 쉬프트 연산으로 대체한다.
그리고 사용할 수 있는 메모리가 한정되어 있으므로, 메모리를 재사용할 수있는 구조로 사칙 연산 모듈을 설계하였는데, 연산항의 크기를 n비트라고 할 때, 공통 버퍼(common buffer: S) 개념의 메모리를 2n+2 비트 크기로 잡고, 캐리(carry)에 대한 처리를 위해 캐리 버퍼(carry buffer: C)를 2비트 크기로 잡는다.
공통 버퍼를 S, 캐리 버퍼를 C, 연산항을 A, B 라고 할 때, B를 S의 하위 n비트에 저장하고, A를 S의 상위 n비트에 저장한다. 본 발명에서는 각 연산에서 나온 결과값을 다시 공통 버퍼(S)에 저장함으로써 한정된 메모리를 재사용할 수 있게 된다.
도 2의 연산(Computation)은 공통버퍼(S)의 상하위 바이트에 저장된 A, B와 캐리버퍼(C)를 이용하여 가산(Add), 감산(Sub), 승산(Mul) 연산을 수행하는 블럭(202)으로서, A와 B의 각 비트 및 캐리버퍼(C)의 값을 연산하여 그 결과값을 다시 공통버퍼(S)의 하위비트부터 채워나가게 된다. 이 때 캐리가 발생하면 캐리버퍼(C)에 캐리값을 저장하게 된다.
도 2의 쉬프트(Shift)는 쉬프트 연산을 나타내는 것으로서, 오른쪽 쉬프트(shirt right)의 경우 양의 t값을 쉬프트 함수(shift_function;204)에 입력하고, 왼쪽 쉬프트(left shift)의 경우 음의 t값을 쉬프트 함수(shift_function;204)에 입력한다.
도 3은 본 발명에 따라 최대공약수 연산절차를 도시한 도면으로서, 다음 수학식 7에 기반한 것이다.
도 3에서 "A mod B"연산을 쉬프트 연산으로 나타내었는데, 여기서 B가 2n으로 구성되었다고 가정한다. A를 n만큼 오른쪽으로 쉬프트하고(301), 이를 Temp1이라고 하면, Temp1은 A/B의 값을 가지게 된다. 이 때 Temp1은 양의 정수이다. Temp1을 n만큼 왼쪽으로 쉬프트한(302) 다음, A에서 Temp1을 감산(subtraction)하게 되면(303) A를 B로 나눈 나머지 즉, "A mod B"가 된다. 이 값을 Temp라고 하고, B값을 A에 넣고, Temp값을 B에 넣는다(304). B가 0이 아니면 위의 절차를 다시 수행하고, B가 0이면, 그 때의 A의 값이 A와 B의 최대공약수가 된다(305~307).
도 4는 본 발명에 따라 실제 모듈러 곱셈 모듈을 구성하는 방법을 나타낸 도면이다. 도 4에는 기본 연산 모듈과 응용연산 모듈을 이용하여 모듈러 곱셈 모듈을 구성하는 절차가 단계 1(Step 1) 내지 단계 6(Step 6)로서 도시되어 있다.
도 4를 참조하면, 몽고메리 알고리즘에 따라서 단계 1(Step 1)에서 M과 R의 최대공약수를 구한다(401). 이 때 M과 R은 모두 n비트이다. 그리고 R은 2의 n멱승이다. 만약, M과 R의 최대공약수가 1이 아니면 M을 재선택해야 한다(402,403).
단계 2(Step 2)에서는 상기 수학식 6의 (1)단계로서 M'를 구하는 과정을 나타내는데, 먼저 R에 대한 M의 모듈러 역원인 " M-1mod R "을 구하고(404), 이를 R 즉, 2n로 감산(subtraction)하면 "M' = -M-1mod R "을 구할 수 있다(405).
단계 3(Step 3)은 수학식 6의 (2) 단계로 T를 구하는 과정인데, 실제 곱셈연산에 사용되는 인자인 n비트 길이의 A와 B를 승산(multiplication)함(406)으로써 T를 얻는다.
단계 4(Step 4)는 수학식 6의 (3)단계로 U를 구하는 과정으로서, 먼저 단계 3(Step 3)에서 얻은 T와 단계 2(Step 2)에서 얻은 M'를 승산(multiplication)하고(407), 그 결과를 다시 R로 모듈러 연산을 하게 되는데, 모듈러 연산은 내부적으로 제산(division)과 감산(subtraction)으로 이루어진다. 제산(division)은 계산량이 많기 때문에, 본 발명에서는 이를 쉬프트연산으로 대체하여 수행하게 된다. 자세히 살펴보면, 승산한 결과를 Temp1이라고 할 때, Temp1을 R에 대해서 모듈러 연산을 수행한다.
우선, Temp1을 R로 제산(division)하게 되는데, 이는 우측 쉬프트 연산으로 수행하게 된다(408). 우측 쉬프트한 Temp1을 다시 좌측 쉬프트한 다음(409), 원래의 Temp1에서 감산(subtraction)하면(410), R로 나눈 나머지, 즉, R에 대한 모듈러 값을 얻게 된다.
단계 5(Step 5)는 수학식 6의 (4) 단계로 새로운 T를 구하는 과정으로서, 단계 4(Step 4)에서의 M과 U을 승산(multiplication)하고(411), 이 값을 단계 3(Step 3)에서 구한 T와 가산(addition)한 다음(412), 이를 R로 제산(division)하는데, 이때 제산(division)은 우측 쉬프트 연산으로 수행하게 된다(413).
단계 5(Step 5)를 통해 새로운 T인 (T+UM)/R를 얻게 된다. 단계 6(Step 6)은 수학식 6의 (5)단계로 최종값을 구하는 과정으로서, 만약 T ≥ M이면 최종값은 T-M이 되고(414,415), 그렇지 않으면 최종값은 T가 되는 것이다(416).
이상에서 설명한 바와 같이, 본 발명은 몽고메리 알고리즘에 따른 모듈러 곱셈 모듈을 구성함으로써, 자원이 제한된 자바카드 상에서 공개키 암호화 알고리즘에서 빈번하게 나타나는 모듈러 멱승연산을 고속으로 수행할 수 있다.
이상에서 설명한 것은 본 발명에 따른 자바카드에서의 멱승연산을 위한 모듈러 곱셈장치 및 그 방법을 설명한 하나의 실시 예에 불과한 것으로써, 본 발명은 상기한 실시 예에 한정되지 않고, 이하의 특허 청구의 범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 사상이 미친다고 할 것이다.

Claims (5)

  1. 자바카드 상에서 n비트의 연산항 A와 B를 고속으로 연산을 수행하기 위한 기본 사칙 연산 모듈이,
    메모리를 재활용할 수 있도록 2n+2 비트의 공통 버퍼(common buffer)와,
    캐리를 저장하기 위한 2비트의 캐리 버퍼(carry buffer)를 포함하는 것을 특징으로 하는 자바카드에서의 멱승연산을 위한 모듈러 곱셈장치.
  2. 제 1항에 있어서, 상기 공통 버퍼에 각 연산항을 저장하고, 연산 결과값을 다시 공통 버퍼에 저장하도록 된 것을 특징으로 하는 자바카드에서의 멱승연산을 위한 모듈러 곱셈장치.
  3. 제 1항에 있어서, 상기 기본 사칙 연산은 나눗셈 연산을 쉬프트 연산으로 대체해서 계산량을 줄이는 것을 특징으로 하는 자바카드에서의 멱승연산을 위한 모듈러 곱셈장치.
  4. A, B, M, R에 대한 모듈러 곱셈을 수행하는 방법에 있어서,
    상기 M과 R의 최대공약수를 구하는 제1 단계;
    상기 R에 대한 M의 모듈러 역원을 구하고, 이를 R로 감산하여 M'를 구하는 제2 단계;
    곱셈연산에 사용되는 인자인 n비트 길이의 A와 B를 승산하여 T를 구하는 제3 단계;
    상기 T와 상기 M'를 승산하고, 그 결과를 다시 R로 모듈러 연산하여 U를 구하는 제4 단계;
    상기 M과 U을 승산하고, 이 값을 T와 가산한 다음, 이를 R로 제산하여 새로운 T를 구하는 제5 단계; 및
    상기 새로운 T에 대해 T ≥ M이면 최종값은 T-M으로 하고, 그렇지 않으면 최종값은 T로 하는 제6 단계;
    를 포함하는 것을 특징으로 하는 자바카드에서의 멱승연산을 위한 모듈러 곱셈방법.
  5. 제 4항에 있어서, 상기 모듈러 연산은 쉬프트 연산과 감산 연산으로 대체해서 계산량을 줄이는 것을 특징으로 하는 자바카드에서의 멱승연산을 위한 모듈러 곱셈방법.
KR10-2002-0081817A 2002-12-20 2002-12-20 자바카드에서의 멱승연산을 위한 모듈러 곱셈장치 및 그방법 KR100512759B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0081817A KR100512759B1 (ko) 2002-12-20 2002-12-20 자바카드에서의 멱승연산을 위한 모듈러 곱셈장치 및 그방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0081817A KR100512759B1 (ko) 2002-12-20 2002-12-20 자바카드에서의 멱승연산을 위한 모듈러 곱셈장치 및 그방법

Publications (2)

Publication Number Publication Date
KR20040055192A true KR20040055192A (ko) 2004-06-26
KR100512759B1 KR100512759B1 (ko) 2005-09-07

Family

ID=37347910

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0081817A KR100512759B1 (ko) 2002-12-20 2002-12-20 자바카드에서의 멱승연산을 위한 모듈러 곱셈장치 및 그방법

Country Status (1)

Country Link
KR (1) KR100512759B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105320686A (zh) * 2014-07-29 2016-02-10 苏州融卡智能科技有限公司 一种优化java卡选择实例的方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105068784B (zh) * 2015-07-16 2018-02-16 清华大学 实现基于蒙哥马利模乘的Tate对算法的电路

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105320686A (zh) * 2014-07-29 2016-02-10 苏州融卡智能科技有限公司 一种优化java卡选择实例的方法

Also Published As

Publication number Publication date
KR100512759B1 (ko) 2005-09-07

Similar Documents

Publication Publication Date Title
US6714648B2 (en) IC card equipped with elliptic curve encryption processing facility
US7831650B2 (en) Method for modular multiplication
JPH11305996A (ja) 乗算を用いる計算装置のデ―タ処理高速化方法および装置
US7580966B2 (en) Method and device for reducing the time required to perform a product, multiplication and modular exponentiation calculation using the Montgomery method
Rodríguez-Henríquez et al. Parallel Itoh–Tsujii multiplicative inversion algorithm for a special class of trinomials
US20020126838A1 (en) Modular exponentiation calculation apparatus and modular exponentiation calculation method
Zheng et al. Exploiting the floating-point computing power of GPUs for RSA
US8417760B2 (en) Device and method for calculating a multiplication addition operation and for calculating a result of a modular multiplication
US8781112B2 (en) Signed montgomery arithmetic
CN113467750A (zh) 用于基数为4的srt算法的大整数位宽除法电路及方法
US6546104B1 (en) Montgomery reduction apparatus
Dong et al. Utilizing the Double‐Precision Floating‐Point Computing Power of GPUs for RSA Acceleration
KR20040067779A (ko) 정보 처리방법
KR100512759B1 (ko) 자바카드에서의 멱승연산을 위한 모듈러 곱셈장치 및 그방법
CN101243388A (zh) 用于在加密计算中执行求逆运算的电路结构和方法
Yuan et al. Memory‐constrained implementation of lattice‐based encryption scheme on standard Java Card platform
EP1366596B1 (en) Circuit and method for squaring long integers
Chang et al. Vectorized big integer operations for cryptosystems on the intel mic architecture
JPH11143688A (ja) 演算装置並びにこれを利用したrsa暗号演算装置及び楕円暗号演算装置
KR100297110B1 (ko) 모듈러곱셈기
KR100974624B1 (ko) 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법, 그장치 및 이를 기록한 기록매체
Seo et al. Multi-precision squaring on MSP and ARM processors
JP3779479B2 (ja) Icカード
KR100858559B1 (ko) 잉여 이진수의 덧셈 방법, 잉여 이진수의 곱셈 방법, 잉여이진수 덧셈기 및 잉여 이진수 곱셈기
KR100257124B1 (ko) 공통 피승수 모듈라 곱셈을 이용한 고속 멱승 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080805

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee