KR19990024971A - 모듈러 승산장치 - Google Patents
모듈러 승산장치 Download PDFInfo
- Publication number
- KR19990024971A KR19990024971A KR1019970046376A KR19970046376A KR19990024971A KR 19990024971 A KR19990024971 A KR 19990024971A KR 1019970046376 A KR1019970046376 A KR 1019970046376A KR 19970046376 A KR19970046376 A KR 19970046376A KR 19990024971 A KR19990024971 A KR 19990024971A
- Authority
- KR
- South Korea
- Prior art keywords
- output
- multiplier
- modular
- register
- word
- Prior art date
Links
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
-
- 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
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)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
Abstract
본 발명은 2N 모듈러를 이용한 모듈러 승산장치에 관한 것으로서, 승수의 각 워드와 피승수와의 곱인 부분적에 대하여 모듈러 N의 2배인 2N으로 모듈러를 수행하는데 있어서, 2N의 최상위 2 워드값과 근을 이용하여 추정 몫을 미리 구한 후, 각 부분적 워드와 추정 몫을 곱한 후, 그때 정수값을 부분적과 곱했을 때 나머지를 다음 워드의 승수와 피승수의 부분적과 더한 후 이전과 같은 모듈러를 반복해서 수행하며, 마지막 부분적에 대한 모듈러 수행 결과가 N 보다는 크고 2N 보다 작은 경우에는 최종값을 N으로 모듈러를 취하도록 함으로써, 모듈러 승산을 보다 빠르고 효율적으로 처리할 수 있는 장점을 갖으며, 모듈러 승산기와 대용량 키용 정보보호 기술에 사용되는 모듈러 지수승 연산장치의 연산을 빠르고 효율적으로 처리할 수 있는 효과를 가진다.
Description
본 발명은 모듈러 N의 2배인 모듈러 2N을 이용한 모듈러 승산장치에 관한 것이다.
근래 들어 국내외에서는 대용량 암호 키를 사용하는 정보보호 기술분야에서 모듈러 승산을 고속화시키기 위한 연구가 활발하게 추진되고 있다.
특히, 해독 기술의 발달에 대응하기 위한 차원에서 암호 알고리즘의 빈도를 강화하기 위하여 모듈러 승산을 반복적으로 사용하는 연산 구조를 갖는 것이 일반화되고 있다.
따라서 모듈러 지수승에서는 제곱 연산과 모듈러 승산이 반복되는 연산으로써, 모듈러 승산 기능의 처리 속도가 전체 암호 알고리즘의 처리 속도에 중요한 역할을 맡고 있다.
그러므로 암호 알고리즘의 처리 속도를 향상시키기 위해서는 모듈러 승산 기능을 고속화시키는 것이 무엇보다도 중요하다.
이러한 모듈러 승산 기능은 일반적으로 두수의 곱에 대하여 모듈러 값으로 제산을 수행함으로써 이루어진다.
종래의 모듈러 승산 기능은 승수의 각 워드에 대한 피승수의 부분적에 대하여 제산기를 사용하여 모듈러를 취하거나, 모듈러를 취할 때마다 마지막 워드를 제거함으로써 모듈러 연산을 수행하여 왔다.
그러나 이러한 모듈러 승산장치는 적절한 몫을 설정하기 위하여 복잡한 제산기를 사용하거나, 유클리드(Euclid) 알고리즘을 이용하는 모듈러 역승산기를 사용해야 하기 때문에 처리 속도를 향상시키는데 한계가 있어서, 대용량 키(key)를 사용하는 암호 알고리즘을 실시간으로 처리하기에는 어려운 단점이 있다.
상기 단점을 해결하기 위해 본 발명은, 두수를 곱하여 모듈러를 취하는 과정에서 사용되는 연산자의 개수를 줄임으로써 연산을 보다 더 빠르고 효율적으로 수행하고자 하였다.
특히 연산 시간이 많이 걸리는 제산 회로를 이용하는 모듈러 수행에 있어서 종래 기술보다 하드웨어가 크지 않으면서 몫을 빠르고 효율적으로 구할 수 있는 모듈러 승산장치를 만들고자 하였다.
상기에 따라 본 발명의 모듈러 승산장치는 승수의 각 워드에 의한 부분적에 대하여 모듈러를 수행하는 과정에서 모듈러 N의 2배인 2N의 최적 유효 워드(Most Significant Word, 이하 MSW라 칭함)를 이용한 추정 몫에 대한 역수를 미리 계산 후, 이 값을 부분적에 곱하여 얻은 적의 정수값을 취함으로써, 하드웨어가 증가하지 않으면서 모듈러 승산을 빠르고 효율적으로 수행하는 것을 목적으로 한다.
도 1은 본 발명이 적용되는 2N 모듈러를 이용한 승산장치 구성도,
도 2는 본 발명에 따른 몫추정 계산장치 구성도.
도면의 주요부분에 대한 부호의 설명
10 : 피승수 레지스터 20 : 승수 레지스터
30 : 승수 워드 카운터 40 : 부분적 계산기
50 : 덧셈기 60 : 몫추정 계산기
70 : 체배기 80 : 2N 모듈러 레지스터
90 : 뺄셈기 100 : 다중화기
110 : N 모듈러 레지스터 120 : 결과 레지스터
130 : 좌측 워드 시프터 61 : 근 레지스터
62 : Mn-1레지스터 63 : 덧셈기
64 : 워드제산기
상기 목적을 달성하기 위해 본 발명은, 피승수(A)를 저장하는 피승수 레지스터와, 승수(B)를 저장하는 승수 레지스터와, 상기 승수 레지스터의 워드 개수를 카운터 하는 승수 워드 카운터와, 상기 피승수 레지스터의 출력(A)과 상기 승수 레지스터의 출력(B)을 워드 단위로 부분적을 계산하는 부분적 계산기와, 상기 부분적 계산기의 출력(P)과 좌측 워드 시프터의 출력(L)을 더하는 덧셈기와, 상기 덧셈기의 출력(D)과 N 모듈러 레지스터의 출력(Mn-1)으로부터 몫을 추정하는 몫추정 계산기와, 상기 몫추정 계산기의 출력(Q)으로 2N 모듈러 레지스터의 출력(E)을 체배하는 체배기와, 상기 승수 워드 카운터의 출력(W)으로부터 상기 체배기의 출력(G)과 N 모듈러 레지스터의 출력(F) 중 어느 하나를 선택하는 다중화기와, 상기 덧셈기의 출력(D)으로부터 다중화기의 출력(H)을 빼는 뺄셈기와, 상기 뺄셈기의 출력(K)을 좌측으로 한 워드만큼 시프트시키는 좌측 워드 시프터와, 상기 뺄셈기의 출력(K)을 저장하는 결과 레지스터로 이루어진 것을 특징으로 한다.
일반적으로 모듈러 승산 기능은 승수와 피승수를 모두 곱한 최종 적에 대하여 모듈러 N으로 제산을 수행하거나, 승수의 각 워드와 피승수를 곱한 부분적에 대하여 모듈러 N으로 제산을 수행하도록 되어 있다.
그러나 본 발명은 승수의 각 워드와 피승수와의 곱인 부분적에 대하여 모듈러 N의 2배인 2N으로 모듈러를 수행하는데 있어서, 2N의 최상위 2워드값과 근을 이용하여 추정 몫을 미리 구한 후, 추정 몫으로부터 얻어진 값과 보정된 부분적의 차이를 취하고, 그 값을 다시 부분적에 더하여 부분적을 보정하는 과정을 승수 워드 개수만큼 반복해서 수행한다.
한편, 이러한 마지막 부분적에 대한 모듈러 수행 결과가 N보다는 크고 2N보다는 작은 경우에는 최종값을 N으로 다시 모듈러를 취하도록 한다.
이하 첨부된 도면을 참조하여 본 발명을 상세히 설명하면 다음과 같다.
도 1은 본 발명이 적용되는 2N 모듈러를 이용한 승산장치 구성도로서, 피승수 레지스터, 승수 레지스터, 부분적 계산기, 덧셈기, 승수 워드 카운터, 덧셈기, 몫추정 계산기, 체배기, 뺄셈기, 다중화기, 2N 모듈러 레지스터, N 모듈러 레지스터, 결과 레지스터, 좌측 워드 시프터로 이루어져 있다.
상기 도 1에서 보는 바와 같이 피승수 레지스터(10)에 있는 값 A와 승수 레지스터(20)에 있는 값 B를 곱하는데 있어서, 승수 레지스터 값의 각 워드에 대한 피승수의 부분적 P를 부분적 계산기(50)에서 구한다.
승수 레지스터의 각 워드에 대한 부분적 P는 덧셈기(50)에서 좌측 워드 시프터(130)의 값 L과 더해진다.
그러나 처음 연산에 있어서, 승수 레지스터(20)의 첫 번째 워드에 대한 좌측 워드 시프터 값 L은 초기치 값인 '0'이므로 이때의 덧셈기(50)의 출력은 부분적 계산기의 값 P가 그대로 출력된다.
몫추정 계산기(60)는 N 모듈러 레지스터(110)의 최상위 워드 값 Mn-1과 근 W를 이용하여 Q=W/(W+Mn-1)에 의하여 몫추정값 Q가 구해져 체배기*(70)로 입력된다.
체배기(70)는 2N 모듈러 레지스터(80)의 값 E를 몫추정값 Q 만큼 체배를 하여 출력 G를 다중화기(100)로 내어 보낸다.
한편 다중화기(100)에서는 승수 워드 카운터(30)에 의하여 승수 레지스터(20)의 마지막 워드를 카운터하는 경우를 제외하고는 체배기의 출력 G를 내어보내고, 승수 워드 카운터(30)의 출력 C가 승수 레지스터(20)의 마지막 워드를 카운터한 경우에는 모듈러 레지스터(110)의 출력 F를 내어보낸다.
뺄셈기(90)는 덧셈기(50)의 출력 D에서 다중화기(100)의 출력 H를 빼서 결과 값 K를 내어 보낸다.
이때, 승수 워드 카운터(30)가 승수 레지스터(20)의 마지막 워드를 카운터하지 않은 경우에는 뺄셈기(90)의 출력 K가 좌측 워드 시프터(130)에 의하여 왼쪽으로 한 워드만큼 시프트되어 덧셈기(50)에 입력되어 부분적 P와 더해진다.
그러나 승수 워드 카운터(30)가 승수 레지스터(20)의 마지막 워드를 카운터한 경우에는, 그때 뺄셈기(90)의 출력 K를 저장하고 있는 결과 레지스터(120)의 값이 최종 결과가 되어 연산이 끝난다.
도 2는 본 발명에 따른 몫추정 계산장치 구성도로서, 상기 도 1의 몫추정 계산기(60)에 대한 구성도로서 근 레지스터, Mn-1, 덧셈기, 워드제산기로 이루어져 있다.
상기 구성에 따라 근 레지스터(61)에 저장되어 있는 값 W와 Mn-1레지스터(62)에 저장되어 있는 값 Mn-1을 덧셈기(63)에서 더하여 그 결과 S를 워드제산기(64)로 보낸다.
워드제산기(64)는 근 레지스터(61)로부터 출력되는 값 W를 덧셈기(63)의 출력 S로 나누어 정수값 Q를 취함으로써 몫을 추정한다.
아울러, 본 발명의 모듈러 승산장치의 구성도는 다음과 같다.
모듈러 승산을 위한 피승수값을 입력으로 하는 피승수 레지스터(10)의 출력은 부분적 계산기(40) 하나의 입력으로 연결되고, 승수값을 입력으로 하는 승수 레지스터(20)의 출력은 부분적 계산기(40)의 나머지 하나의 입력으로 연결된다.
또한 승수 레지스터(20)의 출력은 승수 워드 카운터(30)의 입력으로도 연결된다.
제 1 덧셈기(50)의 하나의 입력은 부분적 덧셈기(40)의 출력에 연결되고, 또 다른 하나의 입력은 좌측 워드 시프터(130)의 출력에 연결되며, 제 1 덧셈기(5)의 출력은 뺄셈기(90)의 입력으로 연결된다.
체배기(70)의 하나의 입력은 몫추정 계산기(60)의 출력과 연결되고, 또 다른 하나의 입력은 2N 모듈러 레지스터(80)의 출력과 연결된다.
다중화기(100)는 세 개의 입력과 하나의 출력을 갖는데, 하나의 입력은 체배기(70)의 출력과 연결되고, 또 다른 하나의 입력은 N 모듈러 레지스터(110)의 출력과 연결되고, 나머지 하나의 입력은 N 승수워드 카운터(30)의 출력과 연결된다.
한편 다중화기(100)의 출력은 뺄셈기의 입력과 연결되며, 뺄셈기의 출력은 결과 레지스터(120)의 입력과 좌측 워드 시프터(130)의 입력으로 연결된다.
그리고 제 2 덧셈기(63)의 하나의 입력은 근 레지스터(61)의 출력과 연결되고, 나머지 하나의 입력은 N 모듈러 레지스터(110)의 MSB를 입력으로 하는 Mn-1레지스터(61)의 출력과 연결된다.
아울러, 워드제산기(64)의 하나의 입력은 근 레지스터(61)의 출력과 연결되고, 나머지 하나의 입력은 제 2 덧셈기(63)의 출력과 연결된다.
상술한 바와 같이 본 발명은 승수의 각 워드에 대하여 모듈러를 수행하는 모듈러 승산장치의 구성에 있어서, 특히 매 부분적마다 모듈러값으로 모듈러를 수행하는데 이때, 모듈러 값의 2배를 이용하는 몫추정 계산장치를 이용하여 모듈러를 수행함으로써, 기존의 모듈러 승산장치보다 연산 속도를 훨씬 빠르고 효율적으로 수행할 수 있다는 장점을 가지고 있다.
따라서 본 발명을 IC 카드와 같은 정보보호 응용 분야에 적용할 경우, 기존의 반도체 공정보다 가격이 싼 반도체 공정을 사용하고도 처리 속도를 실시간으로 처리할 수 있기 때문에 종래 기술을 사용했을 때보다 가격 경쟁력이 뛰어나다.
Claims (2)
- 모듈러 승산장치에 있어서,피승수(A)를 저장하는 피승수 레지스터 수단과;승수(B)를 저장하는 승수 레지스터 수단과;상기 승수 레지스터의 워드 개수를 카운터하는 승수 워드 카운터 수단과;상기 피승수 레지스터 수단의 출력(A)과 상기 승수 레지스터 수단의 출력(B)의 워드 단위로 부분적을 계산하는 부분적 계산 수단과;상기 부분적 계산 수단의 출력(P)과 좌측 워드 시프터 수단의 출력(L)을 더하는 덧셈 수단과;상기 덧셈 수단의 출력(D)과 N 모듈러 레지스터 수단의 출력(Mn-1)으로부터 몫을 추정하는 몫추정 계산 수단과;상기 몫추정 계산 수단의 출력(Q)으로부터 2N 모듈러 레지스터 수단의 출력(E)을 체배하는 체배 수단과;상기 승수 워드 카운터 수단의 출력(W)으로부터 상기 체배 수단의 출력(G)과 N 모듈러 레지스터의 출력(F) 중 어느 하나를 선택하는 다중화 수단과;상기 덧셈 수단의 출력(D)으로부터 다중화 수단의 출력(H)을 빼는 뺄셈 수단과;상기 뺄셈 수단의 출력(K)을 좌측을 한 워드만큼 시프트시키는 좌측 워드 시프트 수단과;상기 뺄셈 수단의 출력(K)을 저장하는 결과 레지스터 수단을 포함하는 것을 특징으로 하는 모듈러 승산장치.
- 제 1 항에 있어서, 상기 몫추정 계산기는상기 N 모듈 레지스터 수단의 출력(Mn-1)과 근 레지스터 수단의 출력(W)을 더하는 덧셈기와;상기 근 레지스터 수단의 출력(W)을 상기 덧셈기의 출력(W)으로 나누어 정수값을 취하는 워드제산기로 이루어진 것을 특징으로 하는 모듈러 승산장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970046376A KR19990024971A (ko) | 1997-09-09 | 1997-09-09 | 모듈러 승산장치 |
US08/984,505 US5954788A (en) | 1987-09-09 | 1997-12-03 | Apparatus for performing modular multiplication |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970046376A KR19990024971A (ko) | 1997-09-09 | 1997-09-09 | 모듈러 승산장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR19990024971A true KR19990024971A (ko) | 1999-04-06 |
Family
ID=19521062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970046376A KR19990024971A (ko) | 1987-09-09 | 1997-09-09 | 모듈러 승산장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5954788A (ko) |
KR (1) | KR19990024971A (ko) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6748410B1 (en) | 1997-05-04 | 2004-06-08 | M-Systems Flash Disk Pioneers, Ltd. | Apparatus and method for modular multiplication and exponentiation based on montgomery multiplication |
KR100684134B1 (ko) * | 1997-05-04 | 2007-02-16 | 엠시스템스 리미티드 | 몽고메리 승산에 기초한 모듈의 승산 및 누승을 위한 개선된 장치와 방법 |
US6038318A (en) * | 1998-06-03 | 2000-03-14 | Cisco Technology, Inc. | Optimized machine computation of exponential functions and modulo functions |
US7240204B1 (en) | 2000-03-31 | 2007-07-03 | State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University | Scalable and unified multiplication methods and apparatus |
US7519439B2 (en) * | 2002-11-06 | 2009-04-14 | Texas Instruments Incorporated | Efficient digital processor for feedback control applications |
FR2862454A1 (fr) * | 2003-11-18 | 2005-05-20 | Atmel Corp | Methode de reduction modulaire aleatoire et equipement associe |
FR2885711B1 (fr) * | 2005-05-12 | 2007-07-06 | Atmel Corp | Procede et materiel modulaire et aleatoire pour la reduction polynomiale |
FR2897963A1 (fr) * | 2006-02-28 | 2007-08-31 | Atmel Corp | Procede pour les conjectures de quotient rapide et une manip ulation de congruences |
US8024391B2 (en) * | 2006-11-06 | 2011-09-20 | Atmel Rousset S.A.S. | Modular multiplication method with precomputation using one known operand |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5144574A (en) * | 1989-01-30 | 1992-09-01 | Nippon Telegraph And Telephone Corporation | Modular multiplication method and the system for processing data |
EP0502712B1 (en) * | 1991-03-05 | 2000-05-31 | Canon Kabushiki Kaisha | Calculating apparatus and method of encrypting/decrypting communication data by using the same |
DE69226110T2 (de) * | 1991-03-22 | 1999-02-18 | Philips Electronics N.V., Eindhoven | Recheneinheit zum Multiplizieren langer ganzer Zahlen Modul M und R.S.A-Wandler mit einer derartigen Multiplikationsanordnung |
US5513133A (en) * | 1992-11-30 | 1996-04-30 | Fortress U&T Ltd. | Compact microelectronic device for performing modular multiplication and exponentiation over large numbers |
US5349551A (en) * | 1993-07-30 | 1994-09-20 | The United States Of America As Represented By The Director Of National Security Agency | Device for and method of preforming an N-bit modular multiplication in approximately N/2 steps |
US5828590A (en) * | 1996-11-27 | 1998-10-27 | United Microelectronics Corp. | Multiplier based on a variable radix multiplier coding |
-
1997
- 1997-09-09 KR KR1019970046376A patent/KR19990024971A/ko not_active Application Discontinuation
- 1997-12-03 US US08/984,505 patent/US5954788A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5954788A (en) | 1999-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
De Win et al. | A fast software implementation for arithmetic operations in GF (2 n) | |
US5742530A (en) | Compact microelectronic device for performing modular multiplication and exponentiation over large numbers | |
CN101194457B (zh) | 随机模数化多项式约简方法及其硬件 | |
Kwon et al. | Two implementation methods of a 1024-bit RSA cryptoprocessor based on modified Montgomery algorithm | |
KR101326078B1 (ko) | 모듈러 곱셈 방법, 모듈러 곱셈기 및 모듈러 곱셈기를구비하는 암호 연산 시스템 | |
US4949293A (en) | Method and apparatus for computing residue with respect to arbitrary modulus | |
CA2741698C (en) | Method and apparatus for modulus reduction | |
JP5182364B2 (ja) | サイドチャネル攻撃に対する耐タンパ性を有する暗号処理方法 | |
KR100442218B1 (ko) | 몽고메리의 알고리즘을 이용한 멱승 잉여 연산기 | |
CN101213512A (zh) | 保护数据处理设备以抵御攻击或分析的装置和方法 | |
US5121429A (en) | Digital signal processing | |
Großschädl | A bit-serial unified multiplier architecture for finite fields GF (p) and GF (2 m) | |
US20050105723A1 (en) | Randomized modular reduction method and hardware therefor | |
CN111092718A (zh) | 加密方法、装置及电子设备 | |
Gutub et al. | Scalable VLSI architecture for GF (p) Montgomery modular inverse computation | |
KR19990024971A (ko) | 모듈러 승산장치 | |
JP2002207589A (ja) | 演算回路および演算方法 | |
KR20040060445A (ko) | 4-2 컴프레서를 이용한 몽고메리 모듈러 승산기 및 그승산 방법 | |
Dhem et al. | Recent results on modular multiplications for smart cards | |
KR100297110B1 (ko) | 모듈러곱셈기 | |
KR100486697B1 (ko) | 모듈러연산장치및그방법 | |
KR100322740B1 (ko) | 모듈러 연산장치 및 그 방법 | |
JP3684314B2 (ja) | 複素乗算器および複素相関器 | |
Takagi | A modular multiplication algorithm with triangle additions | |
Dyka et al. | Multiplier as a Mean for Reducing Vulnerability of Atomic Patterns to Horizontal Address-Bit Attacks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |