JP7402191B2 - 乗算装置、乗算方法及び乗算プログラム - Google Patents
乗算装置、乗算方法及び乗算プログラム Download PDFInfo
- Publication number
- JP7402191B2 JP7402191B2 JP2021033600A JP2021033600A JP7402191B2 JP 7402191 B2 JP7402191 B2 JP 7402191B2 JP 2021033600 A JP2021033600 A JP 2021033600A JP 2021033600 A JP2021033600 A JP 2021033600A JP 7402191 B2 JP7402191 B2 JP 7402191B2
- Authority
- JP
- Japan
- Prior art keywords
- multiplication
- value
- mask
- integers
- values
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 29
- 238000004364 calculation method Methods 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 32
- 230000001186 cumulative effect Effects 0.000 claims description 22
- 230000014509 gene expression Effects 0.000 claims description 14
- 230000000873 masking effect Effects 0.000 claims description 7
- 238000005070 sampling Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Landscapes
- Complex Calculations (AREA)
Description
本実施形態の乗算方法では、Toom-Cook法において、乱数によるマスキングを適用した値の乗算を行うことで、サイドチャネル攻撃による乗算結果の推定を防ぐ。また、演算結果に対するマスク値を並行して計算し減算することで、正しい乗算結果が復元される。
乗算装置1は、サーバ装置又はパーソナルコンピュータ等の情報処理装置(コンピュータ)であり、制御部10及び記憶部20の他、各種データの入出力デバイス及び通信デバイス等を備える。
例えば、法Q=100とすると、整数1234は、「12Q+34」と変形でき、多項式表現は、「12x+34」となる。
例えば、多項式a(x)=12x+34に対して、x=-1,0,1の標本点の値は、それぞれ、a(-1)=-12+34=22,a(0)=34,a(1)=12+34=46となる。
なお、標本点の取り方は任意であるが、変数xの値として、絶対値の小さい整数が選択されることが好ましい。1次式に対しては、例えば、x=-1,0,1の3点が用いられる。
例えば、標本値a(-1)=22に対して、マスク値生成部13は、マスク値として乱数(例えば、12)を生成し、マスクされた標本値a’(-1)=22+12=34を提供する。
つまり、累積マスク演算部15は、2つの整数による本来の正しい乗算結果に対して、マスク値に起因して累積される余剰な値のみを、前述の連立方程式から求まる理論式に基づいて算出する。
a=a1Q+a0
b=b1Q+b0
a(x)=a1x+a0
b(x)=b1x+b0
となり、乗算結果Rの多項式表現は、
R(x)=a(x)b(x)=R2x2+R1x+R0
となる。
a(-1)=-a1+a0
a(0)=a0
a(1)=a1+a0
b(-1)=-b1+b0
b(0)=b0
b(1)=b1+b0
である。
例えば、Q=100とすると、整数1234は、「12Q+34」と変形でき、多項式表現は、「12x+34」となる。この場合、標本値として、a(-1)=-a1+a0=-12+34=22,a(0)=a0=34,a(1)=a1+a0=46が得られる。
ma(-1),ma(0),ma(1),ma(-1),ma(0),ma(1)
をランダムに生成して加算すると、マスクされた標本値として、
a’(-1)=a(-1)+ma(-1)
a’(0)=a(0)+ma(0)
a’(1)=a(1)+ma(1)
b’(-1)=b(-1)+mb(-1)
b’(0)=b(0)+mb(0)
b’(1)=b(1)+mb(1)
が得られる。
R’(-1)=R’2-R’1+R’0=a’(-1)b’(-1)
R’(0)=R’0=a’(0)b’(0)
R’(1)=R’2+R’1+R’0=a’(1)b’(1)
これにより、マスクされた乗算結果R’(Q)=R’2Q2+R’1Q+R’0が得られる。
乗算装置1は、Toom-Cook法の出力R’(Q)からマスク値Mを減算することにより、乗算結果R(Q)=(a1Q+a0)(b1Q+b0)を得る。
ステップS1において、乗算の入力である2つの整数a,bは、分割多項式化され、多項式a(x),b(x)が求められる。
なお、破線枠内が従来のアルゴリズム(図2)に対して新たに追加された部分であり、サイドチャネル攻撃へのマスキングによる対策が適用されている。
したがって、乗算装置1は、Toom-Cook法を用いた乗算処理において、マスキングによりサイドチャネル攻撃を防ぎつつ、高速に乗算を実行できる。
この結果、現行の公開鍵暗号、さらには耐量公開鍵暗号のハードウェア実装において、消費電力等の測定を行うことで鍵値を推測するサイドチャネル攻撃を防止することができる。
これにより、乗算装置1は、演算式を簡潔にして処理負荷を低減できる。
10 制御部
11 多項式化部
12 標本点算出部
13 マスク値生成部
14 乗算処理部
15 累積マスク演算部
16 マスク解除部
20 記憶部
Claims (5)
- 2つの整数を、それぞれ所定の法で分割して多項式で表現する多項式化部と、
前記多項式それぞれに対して、複数の標本点の値を算出する標本点算出部と、
前記標本点のそれぞれに対して、ランダムなマスク値を生成するマスク値生成部と、
前記マスク値を加算することによりマスクされた標本点を用いて、前記2つの整数の乗算値を表現する多項式の係数を決定し、前記法を代入することにより、マスクされた乗算値を算出する乗算処理部と、
前記標本点の値及び前記マスク値に基づいて、前記乗算処理部による演算結果に含まれる前記マスク値の累積値を算出する累積マスク演算部と、
前記乗算処理部による演算結果から前記累積値を減算することでマスクを解除し、前記2つの整数の乗算値を算出するマスク解除部と、を備える乗算装置。 - 前記多項式化部は、前記2つの整数を、それぞれ変数xの1次式で表現し、
前記標本点算出部は、前記変数xが-1,0,1の場合の標本点の値をそれぞれ算出する請求項1に記載の乗算装置。 - 前記乗算処理部は、処理途中の演算において、乗算対象の整数を1次式に分割するToom-Cook法を再帰的に繰り返す請求項1又は請求項2に記載の乗算装置。
- 2つの整数を、それぞれ所定の法で分割して多項式で表現する多項式化ステップと、
前記多項式それぞれに対して、複数の標本点の値を算出する標本点算出ステップと、
前記標本点のそれぞれに対して、ランダムなマスク値を生成するマスク値生成ステップと、
前記マスク値を加算することによりマスクされた標本点を用いて、前記2つの整数の乗算値を表現する多項式の係数を決定し、前記法を代入することにより、マスクされた乗算値を算出する乗算処理ステップと、
前記標本点の値及び前記マスク値に基づいて、前記乗算処理ステップにおける演算結果に含まれる前記マスク値の累積値を算出する累積マスク演算ステップと、
前記乗算処理ステップにおける演算結果から前記累積値を減算することでマスクを解除し、前記2つの整数の乗算値を算出するマスク解除ステップと、をコンピュータが実行する乗算方法。 - 請求項1から請求項3のいずれかに記載の乗算装置としてコンピュータを機能させるための乗算プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021033600A JP7402191B2 (ja) | 2021-03-03 | 2021-03-03 | 乗算装置、乗算方法及び乗算プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021033600A JP7402191B2 (ja) | 2021-03-03 | 2021-03-03 | 乗算装置、乗算方法及び乗算プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022134466A JP2022134466A (ja) | 2022-09-15 |
JP7402191B2 true JP7402191B2 (ja) | 2023-12-20 |
Family
ID=83231438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021033600A Active JP7402191B2 (ja) | 2021-03-03 | 2021-03-03 | 乗算装置、乗算方法及び乗算プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7402191B2 (ja) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006201641A (ja) | 2005-01-24 | 2006-08-03 | Mitsubishi Electric Corp | 非線形演算装置及び暗号処理装置及び非線形演算方法及び非線形演算プログラム |
JP2006309068A (ja) | 2005-05-02 | 2006-11-09 | Nippon Telegr & Teleph Corp <Ntt> | ペアリング演算装置、ペアリング演算方法、およびペアリング演算プログラム |
JP2010091913A (ja) | 2008-10-10 | 2010-04-22 | Renesas Technology Corp | データ処理装置 |
US20140169553A1 (en) | 2012-12-14 | 2014-06-19 | Microsoft Corporation | Masking with shared random bits |
JP2016510914A (ja) | 2013-03-15 | 2016-04-11 | クリプトグラフィ リサーチ, インコーポレイテッド | 非対称マスク済み乗算 |
US20180294950A1 (en) | 2017-04-11 | 2018-10-11 | The Governing Council Of The University Of Toronto | Homomorphic Processing Unit (HPU) for Accelerating Secure Computations under Homomorphic Encryption |
JP2020537191A (ja) | 2017-10-17 | 2020-12-17 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | 更新可能な共有マトリクスを備える暗号装置 |
-
2021
- 2021-03-03 JP JP2021033600A patent/JP7402191B2/ja active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006201641A (ja) | 2005-01-24 | 2006-08-03 | Mitsubishi Electric Corp | 非線形演算装置及び暗号処理装置及び非線形演算方法及び非線形演算プログラム |
JP2006309068A (ja) | 2005-05-02 | 2006-11-09 | Nippon Telegr & Teleph Corp <Ntt> | ペアリング演算装置、ペアリング演算方法、およびペアリング演算プログラム |
JP2010091913A (ja) | 2008-10-10 | 2010-04-22 | Renesas Technology Corp | データ処理装置 |
US20140169553A1 (en) | 2012-12-14 | 2014-06-19 | Microsoft Corporation | Masking with shared random bits |
JP2016510914A (ja) | 2013-03-15 | 2016-04-11 | クリプトグラフィ リサーチ, インコーポレイテッド | 非対称マスク済み乗算 |
US20180294950A1 (en) | 2017-04-11 | 2018-10-11 | The Governing Council Of The University Of Toronto | Homomorphic Processing Unit (HPU) for Accelerating Secure Computations under Homomorphic Encryption |
JP2020537191A (ja) | 2017-10-17 | 2020-12-17 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | 更新可能な共有マトリクスを備える暗号装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2022134466A (ja) | 2022-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bernstein et al. | Fast constant-time gcd computation and modular inversion | |
Bernstein et al. | On the correct use of the negation map in the Pollard rho method | |
Bauer et al. | Horizontal collision correlation attack on elliptic curves: –Extended Version– | |
Van Oorschot et al. | Parallel collision search with cryptanalytic applications | |
Strenzke et al. | Side channels in the McEliece PKC | |
Acıiçmez et al. | New branch prediction vulnerabilities in OpenSSL and necessary software countermeasures | |
KR100891323B1 (ko) | 이진 필드 ecc에서 랜덤 포인트 표현을 이용하여 파워해독의 복잡도를 증가시키기 위한 암호화 방법 및 장치 | |
KR101089121B1 (ko) | 빠른 집합 검증 방법 및 그 장치 | |
Szepieniec et al. | Extension field cancellation: a new central trapdoor for multivariate quadratic systems | |
JP6629466B2 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、プログラム | |
US20070064930A1 (en) | Modular exponentiation with randomized exponent | |
JP5182364B2 (ja) | サイドチャネル攻撃に対する耐タンパ性を有する暗号処理方法 | |
Ambrose et al. | Differential attacks on deterministic signatures | |
JP2019515353A (ja) | 暗号化べき乗アルゴリズムへのセーフ−エラーフォールトインジェクション攻撃に対する対策 | |
Oliveira et al. | Fast point multiplication algorithms for binary elliptic curves with and without precomputation | |
Schindler | Exclusive exponent blinding may not suffice to prevent timing attacks on RSA | |
De Micheli et al. | A tale of three signatures: practical attack of ECDSA with wNAF | |
JP6916770B2 (ja) | 秘匿計算装置、秘匿計算方法及び秘匿計算プログラム | |
JP2007189692A (ja) | Dfaに対抗する方法を含むモンゴメリ電力ラダーアルゴリズム | |
JP7402191B2 (ja) | 乗算装置、乗算方法及び乗算プログラム | |
Aono et al. | On the optimality of lattices for the Coppersmith technique | |
US7697683B2 (en) | Cryptography-processing method, cryptography-processing apparatus and computer program | |
Reyes et al. | A performance comparison of elliptic curve scalar multiplication algorithms on smartphones | |
EP3707593B1 (en) | A computation device and method | |
Cao et al. | Generalized attack on ECDSA: known bits in arbitrary positions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230306 |
|
TRDD | Decision of grant or rejection written | ||
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20231110 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20231114 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231208 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7402191 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |