JP5097138B2 - モンゴメリ乗算のための演算回路及び暗号回路 - Google Patents
モンゴメリ乗算のための演算回路及び暗号回路 Download PDFInfo
- Publication number
- JP5097138B2 JP5097138B2 JP2009006262A JP2009006262A JP5097138B2 JP 5097138 B2 JP5097138 B2 JP 5097138B2 JP 2009006262 A JP2009006262 A JP 2009006262A JP 2009006262 A JP2009006262 A JP 2009006262A JP 5097138 B2 JP5097138 B2 JP 5097138B2
- Authority
- JP
- Japan
- Prior art keywords
- array
- variable
- circuit
- memory
- product
- 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.)
- Expired - Fee Related
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)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Complex Calculations (AREA)
Description
公開鍵(e、n)を用いて平文Mを暗号化し、暗号文Cを生成する場合、暗号文Cは、以下の数1により生成される。
C=Memodn
(但し、0≦M<n)
M=Cdmodn
n=p×q(p、qは素数)
e×d≡1mod(p−1)(q−1)
RSA暗号の数1式C=Memodnの右辺は、M2modn=M×Mmodn、M3modn=M×M2modn、…Memodn=M×Me−1modnのように、逐次計算で求められる。即ち、γ=α×βmodnを繰り返し行うことで計算できる。
Z=A×B×R−1modn
〈1〉上記実施形態では、RSA暗号回路103がICカード100に搭載されており、本発明回路1を用いて暗号化処理を行う場合について説明したが、例えば、ICカードリーダ等に搭載されるRSA暗号回路103等では、本発明回路1を用いて復号化処理を行うように構成しても良い。
10 積和演算回路
100 ICカード
101 I/O
102 CPU
103 本発明に係るRSA暗号回路
103a ループカウンタ回路
104 ROM
105 RAM
106 不揮発性メモリ
M1 第1メモリ
M2 第2メモリ
R1 被乗数格納用レジスタ
R2 キャリーレジスタ
a[s−1:0] 第1配列
b[s−1:0] 第2配列
t[s+1:0] 中間結果格納用配列
n[s−1:0] 第3配列
m 被乗算変数
Claims (4)
- ビット幅rの第1変数、第2変数、第3変数、第4変数を受け付け、前記第3変数と、前記第1変数と前記第2変数の積算結果と、前記第4変数の和を演算してビット幅2rの演算結果データを出力する積和演算処理を行う積和演算回路と、
ビット幅r、要素数sの中間結果格納用配列を格納する記憶領域を備えた同期式1ポートRAMで構成され、前記中間結果格納用配列の各要素を前記第3変数として前記積和演算回路に出力する第1メモリと、
ビット幅r、要素数sの第1配列及び第2配列を格納する記憶領域を備えた同期式1ポートRAMで構成され、前記第1配列の各要素を前記第1変数として前記積和演算回路に出力する第2メモリと、
前記第2メモリから前記第2配列を要素単位で受け付けて記憶し、前記第2変数として前記積和演算回路に出力する被乗数格納用レジスタと、
前記演算結果データの内の上位rビットからなる上位ビット側データを受け付けて記憶し、前記第4変数として前記積和演算回路に出力するキャリーレジスタと、を備えて構成され、
前記第2メモリから、所定の第1ループカウンタ値で示される前記第2配列の要素を読み出して前記被乗数格納用レジスタに格納する第1読み出し処理と、
前記第2メモリから所定の第2ループカウンタ値で示される前記第1配列の要素を読み出し、前記第1メモリから前記第2ループカウンタ値で示される前記中間結果格納用配列の要素を読み出し、前記被乗数格納用レジスタの値を読み出し、前記キャリーレジスタの値を読み出し、夫々、前記積和演算回路に入力する第2読み出し処理と、
前記キャリーレジスタに前記上位ビット側データを書き込むと共に、前記第1メモリに、前記演算結果データの内の下位rビットからなる下位ビット側データを、前記第2ループカウンタ値で示される前記中間結果格納用配列の要素として書き込む書き込み処理と、を実行可能に構成され、
前記第2読み出し処理、前記積和演算処理、前記書き込み処理、及び、前記第2ループカウンタ値の更新を繰り返し実行する第1サブループ処理を、前記第1読み出し処理の実行後に実行することを特徴とするモンゴメリ乗算のための演算回路。 - 前記第2メモリが、更に、ビット幅r、要素数sの第3配列と、ビット幅rの被乗算変数を格納する記憶領域を備え、前記第3配列の各要素を対応する前記第1配列の各要素として前記積和演算回路に出力し、前記被乗算変数を前記第2配列の各要素として前記被乗数格納用レジスタに出力するように構成されていることを特徴とする請求項1に記載のモンゴメリ乗算のための演算回路。
- 前記第3配列の各要素を対応する前記第1配列の各要素として用いた前記第2読み出し処理、前記積和演算処理、前記書き込み処理、及び、前記第2ループカウンタ値の更新を繰り返し実行する第2サブループ処理を実行可能に構成され、
少なくとも、通常の前記第1読み出し処理、前記第1サブループ処理、前記被乗算変数を前記第2配列の各要素として用いた前記第1読み出し処理、前記第2サブループ処理、及び、前記第1ループカウンタ値の更新を、この順に繰り返し実行するメインループ処理を実行することを特徴とする請求項2に記載のモンゴメリ乗算のための演算回路。 - 請求項1〜3の何れか1項に記載のモンゴメリ乗算のための演算回路を用い、RSA暗号の暗号化処理または復号化処理の少なくとも何れか一方を行うことを特徴とするRSA暗号回路。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009006262A JP5097138B2 (ja) | 2009-01-15 | 2009-01-15 | モンゴメリ乗算のための演算回路及び暗号回路 |
US12/686,185 US8291223B2 (en) | 2009-01-15 | 2010-01-12 | Arithmetic circuit for montgomery multiplication and encryption circuit |
CN2010100029957A CN101782846B (zh) | 2009-01-15 | 2010-01-15 | 用于蒙哥马利乘法的运算电路及密码电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009006262A JP5097138B2 (ja) | 2009-01-15 | 2009-01-15 | モンゴメリ乗算のための演算回路及び暗号回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010164721A JP2010164721A (ja) | 2010-07-29 |
JP5097138B2 true JP5097138B2 (ja) | 2012-12-12 |
Family
ID=42336964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009006262A Expired - Fee Related JP5097138B2 (ja) | 2009-01-15 | 2009-01-15 | モンゴメリ乗算のための演算回路及び暗号回路 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8291223B2 (ja) |
JP (1) | JP5097138B2 (ja) |
CN (1) | CN101782846B (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102012005427A1 (de) * | 2012-03-16 | 2013-09-19 | Giesecke & Devrient Gmbh | Verfahren und System zur gesicherten Kommunikation zwischen einen RFID-Tag und einem Lesegerät |
KR101925868B1 (ko) | 2012-05-17 | 2018-12-06 | 삼성전자주식회사 | 모듈러 계산 유닛 및 그것을 포함하는 보안 시스템 |
CN103067184B (zh) * | 2012-11-26 | 2016-07-06 | 大唐移动通信设备有限公司 | 离线计费的异常处理方法及*** |
CN103207770B (zh) | 2013-04-16 | 2016-09-28 | 飞天诚信科技股份有限公司 | 一种在嵌入式***中实现大数预计算的方法 |
EP3087470B1 (en) * | 2013-12-28 | 2020-03-25 | Intel Corporation | Rsa algorithm acceleration processors, methods, systems, and instructions |
CN107404380B (zh) * | 2017-06-30 | 2020-09-11 | 吴尽昭 | 一种基于异步数据通路的rsa算法 |
CN107196764A (zh) * | 2017-07-19 | 2017-09-22 | 龙迅半导体(合肥)股份有限公司 | 一种rsa加解密处理方法和装置 |
CN112287408B (zh) * | 2020-12-28 | 2021-03-30 | 九州华兴集成电路设计(北京)有限公司 | Rsa单核数据*** |
CN115030357B (zh) * | 2022-07-23 | 2023-11-21 | 莱芜凤凰建工集团有限公司 | 一种房屋建筑墙体结构及施工方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3525209B2 (ja) * | 1996-04-05 | 2004-05-10 | 株式会社 沖マイクロデザイン | べき乗剰余演算回路及びべき乗剰余演算システム及びべき乗剰余演算のための演算方法 |
JPH11143688A (ja) * | 1997-11-06 | 1999-05-28 | Fujitsu Ltd | 演算装置並びにこれを利用したrsa暗号演算装置及び楕円暗号演算装置 |
US6026421A (en) * | 1997-11-26 | 2000-02-15 | Atmel Corporation | Apparatus for multiprecision integer arithmetic |
KR100304693B1 (ko) * | 1998-07-22 | 2001-09-29 | 윤종용 | 모듈러연산장치및모듈러연산기능을갖는ic카드 |
US6963644B1 (en) * | 1999-04-07 | 2005-11-08 | Matsushita Electric Industrial Co., Ltd. | Multi-word arithmetic device for faster computation of cryptosystem calculations |
JP3934290B2 (ja) * | 1999-09-30 | 2007-06-20 | 株式会社東芝 | 離散コサイン変換処理装置、逆離散コサイン変換処理装置及び離散コサイン変換処理装置・逆離散コサイン変換処理装置 |
JP2002007112A (ja) * | 2000-06-20 | 2002-01-11 | Sony Corp | 剰余演算計算方法および剰余演算計算装置 |
JP3709553B2 (ja) | 2000-12-19 | 2005-10-26 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 演算回路および演算方法 |
FR2822260A1 (fr) * | 2001-03-14 | 2002-09-20 | Bull Sa | Procedes et dispositifs pour accelerer le temps de calcul d'un produit de montgomery d'un multiplication et d'une exponentiation modulaire |
IL143951A0 (en) * | 2001-06-21 | 2003-09-17 | Discretix Technologies Ltd | A method and apparatus for carrying out efficiently arithmetic computations in hardware |
JP4408712B2 (ja) * | 2004-01-26 | 2010-02-03 | 富士通マイクロエレクトロニクス株式会社 | 多倍長データ積和演算処理回路及びモンゴメリ積和剰余演算回路 |
US8028015B2 (en) * | 2007-08-10 | 2011-09-27 | Inside Contactless S.A. | Method and system for large number multiplication |
-
2009
- 2009-01-15 JP JP2009006262A patent/JP5097138B2/ja not_active Expired - Fee Related
-
2010
- 2010-01-12 US US12/686,185 patent/US8291223B2/en active Active
- 2010-01-15 CN CN2010100029957A patent/CN101782846B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US8291223B2 (en) | 2012-10-16 |
JP2010164721A (ja) | 2010-07-29 |
CN101782846A (zh) | 2010-07-21 |
US20100183145A1 (en) | 2010-07-22 |
CN101782846B (zh) | 2012-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5097138B2 (ja) | モンゴメリ乗算のための演算回路及び暗号回路 | |
KR100693239B1 (ko) | 정보 처리 장치, ic 카드 | |
KR100373669B1 (ko) | 비밀 정보의 처리 장치, 비밀 정보의 처리 프로그램을 기록한 기록 매체 및 처리 시스템 | |
US7639808B2 (en) | Elliptic curve cryptosystem apparatus, elliptic curve cryptosystem method, elliptic curve cryptosystem program and computer readable recording medium storing the elliptic curve cryptosystem program | |
CN100583739C (zh) | 加密装置、加密方法及其存储介质 | |
JP4668931B2 (ja) | 電力解析攻撃に対する耐タンパ性を持った暗号化処理装置 | |
JP4199937B2 (ja) | 耐タンパー暗号処理方法 | |
EP1816624A1 (en) | Encryption computing device | |
JP4909403B2 (ja) | 安全にデータを求める方法 | |
JP2002297033A (ja) | 情報処理装置の演算方法および耐タンパー演算撹乱実装方式 | |
US7835517B2 (en) | Encryption processing apparatus, encryption processing method, and computer program | |
US8300810B2 (en) | Method for securely encrypting or decrypting a message | |
EP3503459B1 (en) | Device and method for protecting execution of a cryptographic operation | |
Hutter et al. | NaCl’s crypto_box in hardware | |
US20100183142A1 (en) | Encryption Processing Apparatus, Encryption Processing Method, and Computer Program | |
JP2010164904A (ja) | 楕円曲線演算処理装置、楕円曲線演算処理プログラム及び方法 | |
Pereira et al. | x-only point addition formula and faster compressed SIKE | |
KR101154845B1 (ko) | 스칼라 배산기 및 스칼라 배산프로그램 | |
WO2008013154A1 (en) | Extension filed multiplication program and extension filed multiplication device | |
JP2010271363A (ja) | モンゴメリ乗算回路、rsa暗号回路、及び、icカード | |
JP5179933B2 (ja) | データ処理装置 | |
US20240163074A1 (en) | Circuit for a Combined Key Value-Dependent Exchange and Randomization of Two Values | |
US20240163085A1 (en) | Method for Combined Key Value-Dependent Exchange and Randomization of Two Input Values | |
JP2014145958A (ja) | 半導体装置 | |
JP2004053814A (ja) | 楕円曲線暗号装置及び楕円曲線暗号演算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110223 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120817 |
|
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: 20120828 |
|
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: 20120921 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5097138 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: 20150928 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |