JP2020140120A - 演算処理方法、演算処理装置、及び半導体装置 - Google Patents
演算処理方法、演算処理装置、及び半導体装置 Download PDFInfo
- Publication number
- JP2020140120A JP2020140120A JP2019036619A JP2019036619A JP2020140120A JP 2020140120 A JP2020140120 A JP 2020140120A JP 2019036619 A JP2019036619 A JP 2019036619A JP 2019036619 A JP2019036619 A JP 2019036619A JP 2020140120 A JP2020140120 A JP 2020140120A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- cpu
- multiplication
- arithmetic
- calculation
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 61
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 239000004065 semiconductor Substances 0.000 title claims description 4
- 238000004364 calculation method Methods 0.000 claims abstract description 99
- 238000000034 method Methods 0.000 claims abstract description 37
- 230000004044 response Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 39
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
Images
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
Description
本実施の形態では、nビットモンゴメリ乗算剰余の算出を含むマルチ演算(MultMonDiv)と、nビット乗算とを、CPUが適宜選択することにより、2nビットモンゴメリ乗算剰余の算出が行われる。
図1は、本発明の実施の形態1に係る演算処理装置の構成の一例を示す図である。図1は図16に類似しており、演算器1020が演算器20に置き換えられている点が異なる。演算器20は、CPU10の命令により、nビットモンゴメリ乗算剰余の算出(MultMon)と、nビット乗算とを切り換えて実行する。
<演算処理方法>
図3は、図2のアルゴリズムに対応するフロー図である。図3のフロー図は、ステップS101〜S108を含む。ステップS101では、CPU10は、メモリ30に対してカウント値の初期化を実行し、カウント値を「1」に設定する。ここで、カウント値とは、図2のアルゴリズムにおける処理の進捗状況を識別する値である。詳しくは後述するが、各Stepの処理が完了するごとに、カウント値が更新される。例えば、カウント値が「4」に設定されていれば、図2における処理がStep3まで完了していることが示される。
本実施の形態によれば、CPU10は、メモリ30から読み出したプログラムに基づき、nビットモンゴメリ乗算剰余の算出、又はnビット乗算を選択して演算器に実行させる。
2nビットモンゴメリ乗算剰余の算出は、図2以外のアルゴリズムでも可能である。そこで、ここでは、図2以外のアルゴリズムを変形例として例示する。図4は、本発明の実施の形態1の変形例に係る2nビットモンゴメリ乗算剰余算出のアルゴリズムを例示する図である。図4のStep1〜Srep5は、図2と同じであるが、図4のStep6がマルチ演算に置き換えられている。図5は、図4のアルゴリズムに対応するフロー図である。
次に、実施の形態2について説明する。なお、以下では、すでに述べた内容と重複する箇所については、原則として説明を省略する。
次に、実施の形態3について説明する。従来手法を用いることにより、2n、4n、8nビット等のモンゴメリ乗算剰余の算出は可能ではあるが、3nビットモンゴメリ乗算剰余の算出には、一旦、4nビットモンゴメリ乗算剰余の算出を行う必要がある。しかし、この方法では、nビットモンゴメリ乗算剰余の算出回数が増え、演算時間が長くなるとともに、4nビットのメモリ領域が必要となる。そこで、本実施の形態では、nビットモンゴメリ乗算剰余やnビット乗算を用いた3nビットモンゴメリ乗算剰余の算出方法について説明する。
図8は、図7のアルゴリズムに対応するフロー図である。図7は、図3に対し、ステップS103、S106の処理内容が異なる。図7に示すように、本実施の形態では、Step3、9、12においてマルチ演算が実行される。このため、図8のステップS103では、カウント値が「3、9、12」の場合(Yes)、CPU10は、マルチ演算(MultMonDiv)を選択し、ステップS104の処理が実行される。一方、カウント値がそれ以外の値「1〜2、4〜8、10〜11、13〜14」である場合(No)、CPU10は、乗算を選択し、ステップS105の処理が実行される。
次に、実施の形態4について説明する。本実施の形態では、nビットモンゴメリ乗算剰余を行う演算器(第1演算器)と、nビット乗算を行う演算器(第2演算器)とがそれぞれ独立して設けられている。図9は、本発明の実施の形態4に係る演算処理装置の構成の一例を示す図である。図9に示す演算処理装置201は、図1の演算器20が演算器221、222に置き換えられている。演算器221は、CPU10の命令に基づきnビットモンゴメリ乗算剰余の算出を実行する。演算器222は、CPU10の命令に基づき、nビット乗算を実行する。
次に、実施の形態5について説明する。本実施の形態では、マルチ演算をnビット乗算及び加減算により実行する場合について説明する。図12は、本発明の実施の形態5に係る演算処理装置の構成の一例を示す図である。図12に示す演算処理装置301は、図1の演算器20が演算器320に置き換えられている。演算器320は、CPU10の命令に基づきnビット乗算を実行する。すなわち、本実施の形態では、演算器においてnビットモンゴメリ乗算剰余の算出が直接行われることはない。
Claims (15)
- CPUと、
前記CPUの命令によりnビットモンゴメリ乗算剰余の算出、又はnビット乗算を切り換えて行う演算器と、
メモリと、
を備えた演算処理装置において、nビットの整数倍のビット数のモンゴメリ乗算剰余を算出する演算処理方法であって、
前記CPUが、前記メモリから読み出したプログラムに基づき、nビットモンゴメリ乗算剰余の算出、又はnビット乗算から演算方法を選択する第1ステップと、
前記CPUが、選択した前記演算方法による演算を前記演算器に実行させる第2ステップと、
を有する、
演算処理方法。 - 請求項1に記載の演算処理方法において、
前記第1ステップでは、前記CPUは、nビットモンゴメリ乗算剰余の算出を含むマルチ演算を実行するとき、nビットモンゴメリ乗算剰余の算出を前記演算方法として選択し、乗算を実行するとき、nビット乗算を前記演算方法として選択する、
演算処理方法。 - 請求項1に記載の演算処理方法において、
前記演算器は、nビットモンゴメリ乗算剰余の算出、nビット乗算、及び加減算を切り換えて行い、
第1ステップでは、前記CPUが、前記メモリから読み出したプログラムに基づき、nビットモンゴメリ乗算剰余の算出、nビット乗算、及び加減算から前記演算方法を選択する、
演算処理方法。 - 請求項1に記載の演算処理方法において、
前記演算器は、nビットモンゴメリ乗算剰余の算出を行う第1演算器と、nビット乗算を行う第2演算器と、が独立して設けられており、
前記CPUは、前記第1ステップにおいてnビットモンゴメリ乗算剰余の算出を選択した場合、前記第2ステップにおいて前記第1演算器による演算を実行させ、前記第1ステップにおいてnビット乗算を選択した場合、前記第2ステップにおいて前記第2演算器による演算を実行させる、
演算処理方法。 - 請求項4に記載の演算処理方法において、
前記CPUは、前記第1ステップにおいてnビットモンゴメリ乗算剰余の算出及びnビット乗算を選択した場合、前記第2ステップにおいて前記第1演算器による演算と前記第2演算器による演算とを並行して実行させる、
演算処理方法。 - 請求項1に記載の演算処理方法において、
前記CPUは、2nビット又は3nビットモンゴメリ乗算剰余を算出する、
演算処理方法。 - CPUと、
前記CPUの命令によりnビットモンゴメリ乗算剰余の算出、又はnビット乗算を切り換えて行う演算器と、
メモリと、
を備え、
前記CPUは、前記メモリから読み出したプログラムに基づき、nビットモンゴメリ乗算剰余の算出、又はnビット乗算を選択して前記演算器に実行させ、nビットの整数倍のビット数のモンゴメリ乗算剰余を算出する、
演算処理装置。 - 請求項7に記載の演算処理装置において、
前記CPUは、nビットモンゴメリ乗算剰余の算出を含むマルチ演算を実行するとき、nビットモンゴメリ乗算剰余の算出を選択して前記演算器に実行させ、乗算を実行するとき、nビット乗算を選択して前記演算器に実行させる、
演算処理装置。 - 請求項7に記載の演算処理装置において、
前記演算器は、前記CPUの命令によりnビットモンゴメリ乗算剰余の算出、nビット乗算、及び加減算を切り換えて行う、
演算処理装置。 - 請求項7に記載の演算処理装置において、
前記演算器は、nビットモンゴメリ乗算剰余の算出を行う第1演算器と、nビット乗算を行う第2演算器と、が独立して設けられている、
演算処理装置。 - 請求項10に記載の演算処理装置において、
前記CPUは、前記第1演算器におけるnビットモンゴメリ乗算剰余の算出と、前記第2演算器におけるnビット乗算とを並行して実行させる、
演算処理装置。 - 請求項7に記載の演算処理装置において、
前記CPUは、2nビット又は3nビットモンゴメリ乗算剰余を算出する、
演算処理装置。 - CPUと、
前記CPUの命令によりnビット乗算を切り換えて行う演算器と、
メモリと、
を備え、
前記CPUは、前記メモリから読み出したプログラムに基づき、nビット乗算を選択して前記演算器に実行させ、nビットの整数倍のビット数のモンゴメリ乗算剰余を算出し、
前記CPUは、複数回の乗算を含むマルチ演算を実行するとき、及び1回のみの乗算を実行するときのいずれにおいても、nビット乗算を選択して前記演算器に実行させる、
演算処理装置。 - 請求項13に記載の演算処理装置において、
前記CPUは、2nビット又は3nビットモンゴメリ乗算剰余を算出する、
演算処理装置。 - 請求項7に記載の演算処理装置を備えた、
半導体装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019036619A JP7286239B2 (ja) | 2019-02-28 | 2019-02-28 | 演算処理方法、演算処理装置、及び半導体装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019036619A JP7286239B2 (ja) | 2019-02-28 | 2019-02-28 | 演算処理方法、演算処理装置、及び半導体装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020140120A true JP2020140120A (ja) | 2020-09-03 |
JP7286239B2 JP7286239B2 (ja) | 2023-06-05 |
Family
ID=72280305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019036619A Active JP7286239B2 (ja) | 2019-02-28 | 2019-02-28 | 演算処理方法、演算処理装置、及び半導体装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7286239B2 (ja) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005122141A (ja) * | 2003-10-15 | 2005-05-12 | Microsoft Corp | モンゴメリ乗算におけるsimd命令の使用 |
WO2007080652A1 (ja) * | 2006-01-13 | 2007-07-19 | Fujitsu Limited | モンゴメリ法用乗算剰余計算装置 |
JP2007212701A (ja) * | 2006-02-09 | 2007-08-23 | Renesas Technology Corp | 剰余演算処理装置 |
WO2009034800A1 (ja) * | 2007-09-14 | 2009-03-19 | Hitachi, Ltd. | 剰余乗算処理装置 |
JP2010091913A (ja) * | 2008-10-10 | 2010-04-22 | Renesas Technology Corp | データ処理装置 |
JP2013057828A (ja) * | 2011-09-08 | 2013-03-28 | Canon Inc | 情報処理装置およびその方法 |
-
2019
- 2019-02-28 JP JP2019036619A patent/JP7286239B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005122141A (ja) * | 2003-10-15 | 2005-05-12 | Microsoft Corp | モンゴメリ乗算におけるsimd命令の使用 |
WO2007080652A1 (ja) * | 2006-01-13 | 2007-07-19 | Fujitsu Limited | モンゴメリ法用乗算剰余計算装置 |
JP2007212701A (ja) * | 2006-02-09 | 2007-08-23 | Renesas Technology Corp | 剰余演算処理装置 |
WO2009034800A1 (ja) * | 2007-09-14 | 2009-03-19 | Hitachi, Ltd. | 剰余乗算処理装置 |
JP2010091913A (ja) * | 2008-10-10 | 2010-04-22 | Renesas Technology Corp | データ処理装置 |
JP2013057828A (ja) * | 2011-09-08 | 2013-03-28 | Canon Inc | 情報処理装置およびその方法 |
Non-Patent Citations (2)
Title |
---|
MASAYUKI YOSHINO ET AL.: "Unbridle the Bit-Length of a Crypto-coprocessor with Montgomery Multiplication", LNSC, INTERNATIONAL WORKSHOP ON SELECTED AREAS IN CRYPTOGRAPHY, vol. 4356, JPN6022032881, 2007, ISSN: 0005063366 * |
吉野 雅之 ほか: "コプロセッサの2倍のビット長をもつモンゴメリ乗算", 電子情報通信学会技術研究報告, vol. 106, no. 175, JPN6013019901, 13 July 2006 (2006-07-13), JP, pages 87 - 94, ISSN: 0005063365 * |
Also Published As
Publication number | Publication date |
---|---|
JP7286239B2 (ja) | 2023-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5378579B2 (ja) | フォールディングを用いるモジュール削減 | |
TW550498B (en) | Method and apparatus for modular multiplying and calculating unit for modular multiplying | |
US10768898B2 (en) | Efficient modulo calculation | |
WO2015164996A1 (zh) | 椭圆域曲线运算方法和椭圆域曲线运算器 | |
CN109814838B (zh) | 获取加解密运算中的中间结果组的方法、硬件装置和系统 | |
JP3532860B2 (ja) | 剰余系表現を利用した演算装置及び方法及びプログラム | |
US8781112B2 (en) | Signed montgomery arithmetic | |
US7558817B2 (en) | Apparatus and method for calculating a result of a modular multiplication | |
JP2004227344A (ja) | 乗算器及び暗号回路 | |
JP2000353077A (ja) | 多倍長演算装置 | |
JP5175983B2 (ja) | 演算装置 | |
Will et al. | Computing mod without mod | |
JP2020140120A (ja) | 演算処理方法、演算処理装置、及び半導体装置 | |
KR20080050226A (ko) | 모듈러 곱셈 장치 및 설계 방법 | |
JP4182226B2 (ja) | 剰余系の計算方法及び装置並びにプログラム | |
JP2006508464A (ja) | ルックアップテーブルを備える乗算器 | |
JPH06175583A (ja) | べき乗剰余演算回路 | |
JP2000207387A (ja) | 演算装置及び暗号処理装置 | |
KR20190022023A (ko) | 하드웨어 구현된 모듈러 역원 모듈 | |
JP2007286380A (ja) | 有限可換群演算方法、装置およびそのプログラム | |
JP2951685B2 (ja) | 固定小数点演算器 | |
JP2010122246A (ja) | 逆元演算装置および逆元演算プログラム | |
JP2004102071A (ja) | 多項式剰余系演算装置、方法及びプログラム | |
JP2007503036A (ja) | モジュラ乗算を行うための方法、および2nビットの数を使用してユークリッド乗算を行うための方法 | |
JP2006338215A (ja) | ベクトル積和演算回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210811 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220713 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220809 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221006 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20221213 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230313 |
|
C60 | Trial request (containing other claim documents, opposition documents) |
Free format text: JAPANESE INTERMEDIATE CODE: C60 Effective date: 20230313 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20230323 |
|
C21 | Notice of transfer of a case for reconsideration by examiners before appeal proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C21 Effective date: 20230328 |
|
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: 20230523 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230523 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7286239 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |