JP2006023647A - 乗算剰余演算器及び情報処理装置 - Google Patents
乗算剰余演算器及び情報処理装置 Download PDFInfo
- Publication number
- JP2006023647A JP2006023647A JP2004203435A JP2004203435A JP2006023647A JP 2006023647 A JP2006023647 A JP 2006023647A JP 2004203435 A JP2004203435 A JP 2004203435A JP 2004203435 A JP2004203435 A JP 2004203435A JP 2006023647 A JP2006023647 A JP 2006023647A
- Authority
- JP
- Japan
- Prior art keywords
- bits
- storage element
- multiplicand
- multiplier
- selector
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
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/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/728—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 using Montgomery reduction
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
【解決手段】 S=S+A×B+u×Nを算出するための乗算剰余演算器であって、複数のビット数q単位で供給される乗数Bの値に応じて被乗数Aまたは0の値を切換えて出力し、ビット数q単位で供給される乗数Nの値に応じて被乗数uまたは0の値を切換えて出力するセレクタと、セレクタから順次出力される値を用いてA×B+u×Nの演算を実行する桁上げ保存加算器と、桁上げ保存加算器からビット数q単位で出力されるA×B+u×Nの演算結果とビット数q単位で供給される過去の該演算結果とを加算し、該加算結果を乗算剰余演算結果Sとして出力する加算器とを有する構成とする。
【選択図】 図1
Description
d=19=1+2×(1+2×(0+2×(0+2×1)))により、
C=M19modN
=M1+2×(1+2×(0+2×(0+2×1)))modN
=(((((M1)2M0)2M0)2M1)2M1modN
=(((M2)2)2M)2MmodN
となる。このようにdを分解すれば、Mを単純にd回掛けるよりも演算回数を低減できるため、演算時間を短縮できる。なお、dの分解方法については様々な方法が知られており、上記はその一例を示している。
(1)v=−N-1modr
(2)S=0
(3)for i=0 to n−1 {
(4) S=S+Ai・B
(5) u=S・vmodr
(6) S=S+u・N
(7) S=S/r
(8)}
乗算剰余演算は、上記アルゴリズムからS=S+Ai×B+u×N(i=0〜n−1)の繰り返し演算処理に置き換え可能であり、この処理を実現するための回路である乗算剰余演算器は、例えば図6に示すような構成になる。
三谷政昭著、「やり直しのための工業数学」、第5版、CQ出版社、2003年2月1日、p.115−122
複数のビット数q単位で供給される前記乗数Bの値に応じて前記被乗数Aまたは0の値を切換えて出力し、前記ビット数q単位で供給される前記乗数Nの値に応じて前記被乗数uまたは0の値を切換えて出力するセレクタと、
前記セレクタから順次出力される値を用いてA×B+u×Nの演算を実行する桁上げ保存加算器と、
前記桁上げ保存加算器から前記ビット数q単位で出力される前記A×B+u×Nの演算結果と、前記ビット数q単位で供給される過去の該演算結果とを加算し、該加算結果を前記乗算剰余演算結果Sとして出力する加算器と、
を有する構成である。
前記被乗数Aを保持し、前記セレクタに供給する第1の記憶素子と、
前記被乗数uを保持し、前記セレクタに供給する第2の記憶素子と、
前記乗数Bを保持し、前記セレクタに前記ビット数q単位で供給する第3の記憶素子と、
前記乗数Nを保持し、前記セレクタに前記ビット数q単位で供給する第4の記憶素子と、
前記加算器から出力される前記乗算剰余演算結果Sを保持し、前記ビット数q単位で該乗算剰余演算結果Sを前記加算器に供給する第5の記憶素子と、
を有する構成である。
制御部により、前記S=S+A×B+u×Nの演算時に前記u生成部を参照することで前記被乗数uの値を決定する構成である。
S=S+AiB+uN=00となるuは、u[1:0]=00
N[1:0]=01,(S+AiB)[1:0]=01のとき、
S=S+AiB+uN=00となるuは、u[1:0]=11
N[1:0]=01,(S+AiB)[1:0]=10のとき、
S=S+AiB+uN=00となるuは、u[1:0]=10
N[1:0]=01,(S+AiB)[1:0]=11のとき、
S=S+AiB+uN=00となるuは、u[1:0]=01
N[1:0]=11,(S+AiB)[1:0]=00のとき、
S=S+AiB+uN=00となるuは、u[1:0]=00
N[1:0]=11,(S+AiB)[1:0]=01のとき、
S=S+AiB+uN=00となるuは、u[1:0]=01
N[1:0]=11,(S+AiB)[1:0]=10のとき、
S=S+AiB+uN=00となるuは、u[1:0]=10
N[1:0]=11,(S+AiB)[1:0]=11のとき、
S=S+AiB+uN=00となるuは、u[1:0]=11
以上をまとめると、表1のようになる。
u=Svmod2q
ここで、vは演算開始時に一度だけ計算する値である。なお、rに代えて2qとしているのはrを2進数で表したためである。
2 第2のラッチ回路
4 第1のシフトレジスタ
5 第2のシフトレジスタ
6 CSA
71 第1のセレクタ
72 第2のセレクタ
73 第3のセレクタ
74 第4のセレクタ
8 第3のシフトレジスタ
9 加算器
10 u生成部
11 制御部
20 処理装置
21 CPU
22 主記憶装置
23 記録媒体
24 データ蓄積装置
25 メモリ制御インタフェース部
26 I/Oインタフェース部
27 乗算剰余演算器
28 通信制御装置
29 バス
30 入力装置
40 出力装置
Claims (17)
- 被乗数をA、uとし、乗数をB、Nとし、乗算剰余演算結果をSとしたとき、S=S+A×B+u×Nを算出するための乗算剰余演算器であって、
複数のビット数q単位で供給される前記乗数Bの値に応じて前記被乗数Aまたは0の値を切換えて出力し、前記ビット数q単位で供給される前記乗数Nの値に応じて前記被乗数uまたは0の値を切換えて出力するセレクタと、
前記セレクタから順次出力される値を用いてA×B+u×Nの演算を実行する桁上げ保存加算器と、
前記桁上げ保存加算器から前記ビット数q単位で出力される前記A×B+u×Nの演算結果と、前記ビット数q単位で供給される過去の該演算結果とを加算し、該加算結果を前記乗算剰余演算結果Sとして出力する加算器と、
を有する乗算剰余演算器。 - 前記被乗数Aを保持し、前記セレクタに供給する第1の記憶素子と、
前記被乗数uを保持し、前記セレクタに供給する第2の記憶素子と、
前記乗数Bを保持し、前記セレクタに前記ビット数q単位で供給する第3の記憶素子と、
前記乗数Nを保持し、前記セレクタに前記ビット数q単位で供給する第4の記憶素子と、
前記加算器から出力される前記乗算剰余演算結果Sを保持し、前記ビット数q単位で該乗算剰余演算結果Sを前記加算器に供給する第5の記憶素子と、
をさらに有する請求項1記載の乗算剰余演算器。 - 前記桁上げ保存加算器の動作を制御する制御部をさらに有する請求項1または2記載の乗算剰余演算器。
- 前記制御部は、
前記第1の記憶素子に前記被乗数Aをセットし、
前記第2の記憶素子に前記被乗数uをセットし、
前記第3の記憶素子に前記乗数Bをセットし、
前記第4の記憶素子に前記乗数Nをセットし、
前記セレクタに0を供給する請求項3記載の乗算剰余演算器。 - 予め算出された、前記被乗数A、前記乗数B、前記乗数N、及び前記乗算剰余演算結果Sの値に対する前記被乗数uの値の関係が格納されるu生成部をさらに有し、
前記制御部は、
前記S=S+A×B+u×Nの演算時に前記u生成部を参照することで前記被乗数uの値を決定する請求項3または4記載の乗算剰余演算器。 - 前記ビット数qは2である請求項1乃至5のいずれか1項記載の乗算剰余演算器。
- 前記ビット数qは4である請求項1乃至5のいずれか1項記載の乗算剰余演算器。
- 前記第1の記憶素子及び前記第2の記憶素子はラッチ回路である請求項2乃至7のいずれか1項記載の乗算剰余演算器。
- 前記第3の記憶素子、前記第4の記憶素子及び前記第5の記憶素子はシフトレジスタである請求項2乃至8のいずれか1項記載の乗算剰余演算器。
- 請求項1に記載の乗算剰余演算器と、
前記被乗数Aを保持し、前記セレクタに供給する第1の記憶素子と、
前記被乗数uを保持し、前記セレクタに供給する第2の記憶素子と、
前記乗数Bを保持し、前記セレクタに前記ビット数q単位で供給する第3の記憶素子と、
前記乗数Nを保持し、前記セレクタに前記ビット数q単位で供給する第4の記憶素子と、
前記加算器から出力される前記乗算剰余演算結果Sを保持し、前記ビット数q単位で該乗算剰余演算結果Sを前記加算器に供給する第5の記憶素子と、
を有する情報処理装置。 - 前記桁上げ保存加算器の動作を制御する制御部をさらに有する請求項10記載の情報処理装置。
- 前記制御部は、
前記第1の記憶素子に前記被乗数Aをセットし、
前記第2の記憶素子に前記被乗数uをセットし、
前記第3の記憶素子に前記乗数Bをセットし、
前記第4の記憶素子に前記乗数Nをセットし、
前記セレクタに0を供給する請求項11記載の情報処理装置。 - 予め算出された、前記被乗数A、前記乗数B、前記乗数N、及び前記乗算剰余演算結果Sの値に対する前記被乗数uの値の関係が格納されるu生成部をさらに有し、
前記制御部は、
前記S=S+A×B+u×Nの演算時に前記u生成部を参照することで前記被乗数uの値を決定する請求項11または12記載の情報処理装置。 - 前記ビット数qは2である請求項10乃至13のいずれか1項記載の情報処理装置。
- 前記ビット数qは4である請求項10乃至13のいずれか1項記載の情報処理装置。
- 前記第1の記憶素子及び前記第2の記憶素子はラッチ回路である請求項10乃至15のいずれか1項記載の情報処理装置。
- 前記第3の記憶素子、前記第4の記憶素子及び前記第5の記憶素子はシフトレジスタである請求項10乃至16のいずれか1項記載の情報処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004203435A JP4170267B2 (ja) | 2004-07-09 | 2004-07-09 | 乗算剰余演算器及び情報処理装置 |
US11/176,222 US20060008081A1 (en) | 2004-07-09 | 2005-07-08 | Modular-multiplication computing unit and information-processing unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004203435A JP4170267B2 (ja) | 2004-07-09 | 2004-07-09 | 乗算剰余演算器及び情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006023647A true JP2006023647A (ja) | 2006-01-26 |
JP4170267B2 JP4170267B2 (ja) | 2008-10-22 |
Family
ID=35541385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004203435A Expired - Fee Related JP4170267B2 (ja) | 2004-07-09 | 2004-07-09 | 乗算剰余演算器及び情報処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20060008081A1 (ja) |
JP (1) | JP4170267B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010139544A (ja) * | 2008-12-09 | 2010-06-24 | Renesas Electronics Corp | 剰余演算装置、及び剰余演算方法 |
US11777729B2 (en) | 2017-01-20 | 2023-10-03 | Enveil, Inc. | Secure analytics using term generation and homomorphic encryption |
US11196541B2 (en) | 2017-01-20 | 2021-12-07 | Enveil, Inc. | Secure machine learning analytics using homomorphic encryption |
US11196540B2 (en) | 2017-01-20 | 2021-12-07 | Enveil, Inc. | End-to-end secure operations from a natural language expression |
US10880275B2 (en) | 2017-01-20 | 2020-12-29 | Enveil, Inc. | Secure analytics using homomorphic and injective format-preserving encryption |
US10721057B2 (en) | 2017-01-20 | 2020-07-21 | Enveil, Inc. | Dynamic channels in secure queries and analytics |
US11507683B2 (en) | 2017-01-20 | 2022-11-22 | Enveil, Inc. | Query processing with adaptive risk decisioning |
US10902133B2 (en) | 2018-10-25 | 2021-01-26 | Enveil, Inc. | Computational operations in enclave computing environments |
US10817262B2 (en) * | 2018-11-08 | 2020-10-27 | Enveil, Inc. | Reduced and pipelined hardware architecture for Montgomery Modular Multiplication |
KR20200082617A (ko) * | 2018-12-31 | 2020-07-08 | 삼성전자주식회사 | 메모리 장치를 이용한 계산 방법 및 이를 수행하는 메모리 장치 |
US11601258B2 (en) | 2020-10-08 | 2023-03-07 | Enveil, Inc. | Selector derived encryption systems and methods |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4153938A (en) * | 1977-08-18 | 1979-05-08 | Monolithic Memories Inc. | High speed combinatorial digital multiplier |
JPS60163128A (ja) * | 1984-02-02 | 1985-08-26 | Nec Corp | 乗算回路 |
JPS6222146A (ja) * | 1985-07-23 | 1987-01-30 | Toshiba Corp | 並列乗算器 |
CA2008774C (en) * | 1989-01-30 | 1999-10-05 | Hikaru Morita | Modular multiplication method and the system for processing data |
US5321752A (en) * | 1991-09-05 | 1994-06-14 | Canon Kabushiki Kaisha | Method of and apparatus for encryption and decryption of communication data |
US5513133A (en) * | 1992-11-30 | 1996-04-30 | Fortress U&T Ltd. | Compact microelectronic device for performing modular multiplication and exponentiation over large numbers |
JPH0720778A (ja) * | 1993-07-02 | 1995-01-24 | Fujitsu Ltd | 剰余計算装置、テーブル作成装置および乗算剰余計算装置 |
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 |
KR100458031B1 (ko) * | 2003-03-14 | 2004-11-26 | 삼성전자주식회사 | 몽고메리 유형의 모듈라 곱셈 장치 및 방법 |
US20040252829A1 (en) * | 2003-04-25 | 2004-12-16 | Hee-Kwan Son | Montgomery modular multiplier and method thereof using carry save addition |
JP2004326112A (ja) * | 2003-04-25 | 2004-11-18 | Samsung Electronics Co Ltd | マルチプルモジュラス選択器、累算器、モンゴメリー掛け算器、マルチプルモジュラス発生方法、部分掛け発生方法、累算方法、掛け算方法、モジュラス選択器、およびブースレコーダ |
-
2004
- 2004-07-09 JP JP2004203435A patent/JP4170267B2/ja not_active Expired - Fee Related
-
2005
- 2005-07-08 US US11/176,222 patent/US20060008081A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20060008081A1 (en) | 2006-01-12 |
JP4170267B2 (ja) | 2008-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4870932B2 (ja) | 多重精度を支援する拡張型モンゴメリモジュラ掛け算器 | |
US7904498B2 (en) | Modular multiplication processing apparatus | |
Öztürk et al. | Low-power elliptic curve cryptography using scaled modular arithmetic | |
US20060008080A1 (en) | Modular-multiplication computing unit and information processing unit | |
US20060008081A1 (en) | Modular-multiplication computing unit and information-processing unit | |
US7024560B2 (en) | Power-residue calculating unit using Montgomery algorithm | |
Shantha et al. | Analysis and implementation of ECC algorithm in lightweight device | |
US7046800B1 (en) | Scalable methods and apparatus for Montgomery multiplication | |
JP3302043B2 (ja) | 暗号通信方法及びそのシステム | |
KR100508092B1 (ko) | 저전력 모듈로 곱셈을 수행하는 연산장치 | |
KR100478974B1 (ko) | 직렬 유한체 승산기 | |
Ghoreishi et al. | High speed RSA implementation based on modified Booth's technique and Montgomery's multiplication for FPGA platform | |
EP1455270A2 (en) | Method and apparatus for basis conversion in finite field and a multiplier | |
Arazi et al. | On calculating multiplicative inverses modulo $2^{m} $ | |
KR20070062901A (ko) | 중국인 나머지 정리(crt)와 캐리 저장 가산 기반의모듈러 곱셈 장치 및 방법 | |
JP2004334212A (ja) | モンゴメリ掛け算器及び掛け算方法 | |
Ors et al. | Hardware implementation of an elliptic curve processor over GF (p) with montgomery modular multiplier | |
Shylashree et al. | FPGA implementation of high speed scalar multiplication for ECC in GF (p) | |
Poomagal et al. | Modular multiplication algorithm in cryptographic processor: A review and future directions | |
de Macedo Mourelle et al. | Fast reconfigurable hardware for the M-ary modular exponentiation | |
JP3137599B2 (ja) | BのC乗のnを法とした剰余を計算する回路 | |
US7471789B2 (en) | Encryption circuit achieving higher operation speed | |
Kakde et al. | Performance analysis of Montgomery multiplier for public key cryptosystem | |
KR100725675B1 (ko) | 불필요한 연산을 줄이도록 하는 카라슈바 곱셈 방법 | |
Güneysu et al. | Modular Integer Arithmetic for Public Key Cryptography |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060227 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20060413 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060413 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20060413 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060823 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080716 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080806 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110815 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4170267 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110815 Year of fee payment: 3 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110815 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110815 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120815 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120815 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130815 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |