JP6973677B1 - 逆数算出方法、装置、およびプログラム - Google Patents

逆数算出方法、装置、およびプログラム Download PDF

Info

Publication number
JP6973677B1
JP6973677B1 JP2021047134A JP2021047134A JP6973677B1 JP 6973677 B1 JP6973677 B1 JP 6973677B1 JP 2021047134 A JP2021047134 A JP 2021047134A JP 2021047134 A JP2021047134 A JP 2021047134A JP 6973677 B1 JP6973677 B1 JP 6973677B1
Authority
JP
Japan
Prior art keywords
reciprocal
value
information processing
power
bit
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
Application number
JP2021047134A
Other languages
English (en)
Other versions
JP2022146258A (ja
Inventor
健二 高務
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2021047134A priority Critical patent/JP6973677B1/ja
Application granted granted Critical
Publication of JP6973677B1 publication Critical patent/JP6973677B1/ja
Priority to US17/652,170 priority patent/US20220308840A1/en
Publication of JP2022146258A publication Critical patent/JP2022146258A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/72Methods 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/722Modular multiplication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/72Methods 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/724Finite field arithmetic
    • G06F7/726Inversion; Reciprocal calculation; Division of elements of a finite field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】バイナリデータにおいて10進数の逆数を算出する性能を向上させる逆数算出方法、装置およびプログラムを提供する。【解決手段】情報処理装置が実行する方法であって、2の冪乗を法とする剰余体上の積算において10進数の逆数を算出する。【選択図】図1

Description

本発明は、逆数算出方法、装置、およびプログラムに関する。
従来、コンピュータによる種々のアルゴリズムにおいて、逆数の算出が用いられている(特許文献1)。
例えば、ホワイトボックス暗号方式(White-Box Cryptography)では、暗号鍵の値とアルゴリズムで決められている演算をルックアップテーブルへと合成する。その際、連続する演算間の入出力の部分に任意の変換と逆変換を挟み込み、変換を前の演算のルックアップテーブルに、逆変換を後の演算のルックアップテーブルに、それぞれ合成することで暗号鍵を難読化している。この難読化に適用可能な任意の変換と逆変換の演算の1つとして、積算と逆数の積算がある。
特開2002−175180号公報
しかしながら、昨今のIoT(Internet of Things)の普及により見られる計算パワーの小さい組込機器等では、積算値に対する逆数の算出の負荷が大きい。さらに、RSA(Rivest, Shamir, Adleman)暗号等の素数を法とする剰余体上の積算では、積算後の値のビット数が積算前の値のビット数よりも増えるといった計算上の問題があった。
そこで、本発明の一実施形態では、バイナリデータにおいて10進数の逆数を算出する性能を向上させることを目的とする。
本発明の一実施形態に係る方法は、情報処理装置が実行する方法であって、2の冪乗を法とする剰余体上の積算において10進数の逆数を算出する。
本発明の一実施形態によれば、バイナリデータにおいて10進数の逆数を算出する性能を向上させることができる。
本発明の一実施形態に係る逆数を算出する処理のフローチャートである。 本発明の一実施形態に係る逆数の算出の一例である。 本発明の一実施形態に係る逆数を算出する処理のフローチャートである。 本発明の一実施形態に係るWhite−box AESへの適用例である。 本発明の一実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。
以下、図面に基づいて本発明の実施の形態を説明する。なお、情報処理装置1が、逆数を算出する処理を実行するものとする。
<概略>
本発明では、2の冪乗を法とする剰余体上での逆数が存在する条件を満たすため、積算値を奇数に限定する。対象の奇数を、1倍、2倍、4倍、・・・と2の冪乗倍したものを加算するまたは加算しないを、加算した値の下位側のビットから0(ゼロ)となるように選択していき、加算する(1)または加算しない(0)をビット列としたものを逆数とする。
積算値を奇数に限定した2の冪乗を法とする剰余体上の積算により以下が成り立つため、積算後の値は積算前の値と同じビット数で表現できる。
x×a=y
y×b=x (x,y,a,bは全てnビット。a,bは奇数)
nビットの値xに対し、nビットの奇数aを積算し、元の値と同じnビットの値yに写像する。積算したnビットの奇数aの逆数bも同様にnビットであり、積算後の値yにさらにこの逆数bを積算することで、元のnビットの値xに逆変換される。積算値の逆数算出の計算量はO(n)と小さく(ユークリッドの互除法の計算量は、0(Log(2)である)、ブロック暗号で一般的に使われる128ビットのデータであったとしても、組込機器でも少ない計算負荷で逆数を算出できる。
<方法>
図1は、本発明の一実施形態に係る逆数を算出する処理のフローチャートである。
値aの逆数bとの積をmとする。a、bはnビットの奇数であるとする(2の冪乗を法とする剰余体上で逆数が存在するためには、a、bは奇数である)。
a*a−1mod2=1(=m)
b=a−1=2+2+2+・・・ (bを2進数で表したものである)
=1 (固定(bは奇数であるので、b=1である))
m=a*b=a*b+2*a*b+4*a*b+8*a*b・・・
以外の係数(上記のbの係数"2*a"、bの係数"4*a"、bの係数"8*a"、・・・)は最下位ビットが0(ゼロ)のため、mはb以外とは独立している。つまり、a=b=m=1(固定)である。b確定下で、b0、以外の係数は下位2ビットが0(ゼロ)のため、m1=0となるbは一意に算出可能である。そのため、b〜b確定下では、mi+1=0となるbi+1は一意に算出可能である。
情報処理装置1は、mが最終的に"1d・・・d0・・・01"と下位nビットが最下位ビットを除いて0となるように、bの下位ビットから決定していく。なお、dは任意の値(0または1)であってよい。
ステップ1(S1)において、情報処理装置1は、m=a,b=1とする。
ステップ2(S2)〜ステップ5(S5)において、情報処理装置1は、mについて、i=1からn−1まで順番に、
=0の場合 b=0
=1の場合 b=1,m=m+2*a
とmを更新しながらbを決めていく。なお、aが奇数であるので、m=1である。
例えば、m1=0の場合、m1を0にする値を加算する必要はなく、b1=0と決定することができる。m1=1の場合、m1を0にする値(aを2倍した値)を加算する必要があり、b1=1と決定することができる。
<算出例>
図2は、本発明の一実施形態に係る逆数の算出の一例である。
図2では、19(00010011)×27(00011011)=1mod256(8ビットデータ),a=19,b=27=a−1の例を説明する。図2の各行は、i=0〜7のときの、乗算結果の計算過程、2×a、bを示す。逆数bの上位ビットは、乗算結果の下位ビットには影響を与えないので、最終の乗算結果が1となるよう、逆数の下位ビットから順に確定していく。
[i=0のとき]
図2の(1)において、b(最下位)は、1で固定である。図2の(2)において乗算の結果が1となるために、逆数の最下位ビットは1であることが必須である。そのため、a×1の加算が行われる。
図2の(3)は、乗算結果の計算過程のiビット目(太字)と一致している。
[i=1のとき]
図2の(4)において、乗算結果の1ビット目が0(ゼロ)となるよう、逆数の1ビット目は1を選択する。そのため、a×2の加算が行われる。
[i=2のとき]
図2の(5)において、2ビット目は既に0(ゼロ)なので、逆数の2ビット目は0を選択する。そのため、a×4の加算は行われない。
以下、同様に行われる。
[i=3のとき]
乗算結果の3ビット目が0(ゼロ)となるよう、逆数の3ビット目は1を選択する。そのため、a×8の加算が行われる。
[i=4のとき]
乗算結果の4ビット目が0(ゼロ)となるよう、逆数の4ビット目は1を選択する。そのため、a×16の加算が行われる。
[i=5のとき]
5ビット目は既に0(ゼロ)なので、逆数の5ビット目は0を選択する。そのため、a×32の加算が行われない。
[i=6のとき]
6ビット目は既に0(ゼロ)なので、逆数の6ビット目は0を選択する。そのため、a×64の加算が行われない。
[i=7のとき]
7ビット目は既に0(ゼロ)なので、逆数の7ビット目は0を選択する。そのため、a×128の加算が行われない。図2の(6)において、下位8ビットの10進数は1である。
<レジスタでの演算>
図3は、本発明の一実施形態に係る逆数を算出する処理のフローチャートである。なお、図1では本発明の概念を説明するために2のi乗を加算する形をとっているが、図3では実際の処理を想定し、都度2の冪乗を計算する処理やそれを格納するメモリを削減する形をとっている。
図1と同様に、値aの逆数bとの積をmとする。a、bは奇数であるとする。図3では、レジスタが32ビット、値(a,b,m)が128ビットの場合を説明する。図3では、a,b,mを32ビットの4つの配列として扱う。
a=a[3](=a127,a126,・・・,a96),a[2](=a95,・・・,a64),a[1](=a63,・・・,a32),a[0](=a31,・・・,a) なお、b,mも同様である。
ステップ11(S11)において、情報処理装置1は、m=a,b=1とする。
ステップ12(S12)〜ステップ16(S16)において、情報処理装置1は、mについて、i=1からn−1まで順番に、
a=a×2
=0の場合 b=0
=1の場合 b=1,m=m+a
とaおよびmを更新しながらbを決めていく。なお、aの初期値が奇数であるので、m=1である。
mに2の冪乗倍して加算するaについては、iの繰り返しにおいて都度2倍した値に更新しながらmに加算する。
ステップ13(S13)において、以下のとおりである。
a=a*2:
a[3]=a[3]<<1 OR a[2]>>31
a[2]=a[2]<<1 OR a[1]>>31
a[1]=a[1]<<1 OR a[0]>>31
a[0]=a[0]<<1
ステップ15(S15)において、レジスタ単位での加算時の桁溢れはキャリーフラグを用いる。
m=m+a:
cf=0
i=0〜3で以下繰り返し。
cfn=(m[i]>>1+a[i]>>1+(m[i]ANDa[i]AND1))>>31
m[i]+=a[i]+cf
cf=cfn
<逆変換の証明>
ここで、逆変換の証明について説明する。
nビットの任意の値xに値aを積算し、その値にさらにaの逆数bを積算すると値xに戻ることを証明する。
前提:
a*b=2*D0+1
aにその逆数bを積算した値は、2の冪乗の剰余を計算すると1(Dは剰余計算で消える係数)となる。
x*a=2*D1+y
xにaを積算した値は、2の冪乗の剰余を計算するとyとなる。
y*b=2*D2+z
yに逆数bを積算した値は、2の冪乗の剰余を計算するとz(=x)となる。
計算プロセス比較:
x*(a*b)=2*D0*x+x
(x*a)*b=2*D1*b+y*b
=2*D1*b+2*D2+z
=2*(D1*b+D2)+z
xに(a*b)を乗算したものと、(x*a)にbを乗算したものは同じである。つまり、x=zである。
((x*a)mod2)*b=y*b
=2*D2+z
(x*a)をnビットの変数に格納(=2の冪乗で剰余計算)した後でも、逆数bを積算した値に2の冪乗で剰余計算した値はzである。
結論:計算過程で桁溢れが発生しても、積算・逆数積算の関係は成り立つ。
<White−box AESへの適用>
図4は、本発明の一実施形態に係るWhite−box AESへの適用例である。
図4に示されるように、本発明は、White−box AES(Advanced Encryption Standard)の変換gと逆変換g−1へ適用することができる。
図4の(A)は、入力値に逆数g−1(難読化成分)を積算した値にMixColumns処理を行い、次の演算と対となる難読化成分を合成したルックアップテーブルである。
図4の(B)は、AddRoundKey処理とSubBytes処理を行った後に積算値g(難読化成分)を積算した値を出力するルックアップテーブルである。
<効果>
このように、従来の手法では、有効な逆数算出手段がない場合には逆数を全探索で求めていたが、本発明では、2の冪乗を法とする剰余体上で逆数を高速に算出可能である。また、本発明は暗号演算に適用可能であり、nビットのブロックデータにおいて、n−1ビットのデータ量(上記の値aの組み合わせ)の演算後のデータはnビットであり、ビット数が増えない。
<ハードウェア構成>
図5は、本発明の一実施形態に係る情報処理装置1のハードウェア構成の一例を示すブロック図である。情報処理装置1は、CPU(Central Processing Unit)1001、ROM(Read Only Memory)1002、RAM(Random Access Memory)1003を有する。CPU1001、ROM1002、RAM1003は、いわゆるコンピュータを形成する。
また、情報処理装置1は、補助記憶装置1004、表示装置1005、操作装置1006、I/F(Interface)装置1007、ドライブ装置1008を有することができる。なお、情報処理装置1の各ハードウェアは、バスBを介して相互に接続されている。
CPU1001は、補助記憶装置1004にインストールされている各種プログラムを実行する演算デバイスである。
ROM1002は、不揮発性メモリである。ROM1002は、補助記憶装置1004にインストールされている各種プログラムをCPU1001が実行するために必要な各種プログラム、データ等を格納する主記憶デバイスとして機能する。具体的には、ROM1002はBIOS(Basic Input/Output System)やEFI(Extensible Firmware Interface)等のブートプログラム等を格納する、主記憶デバイスとして機能する。
RAM1003は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)等の揮発性メモリである。RAM1003は、補助記憶装置1004にインストールされている各種プログラムがCPU1001によって実行される際に展開される作業領域を提供する、主記憶デバイスとして機能する。
補助記憶装置1004は、各種プログラムや、各種プログラムが実行される際に用いられる情報を格納する補助記憶デバイスである。
表示装置1005は、情報処理装置1の内部状態等を表示する表示デバイスである。
操作装置1006は、情報処理装置1の管理者が情報処理装置1に対して各種指示を入力する入力デバイスである。
I/F装置1007は、ネットワークに接続し、他の装置と通信を行うための通信デバイスである。
ドライブ装置1008は記憶媒体1009をセットするためのデバイスである。ここでいう記憶媒体1009には、CD−ROM、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記憶媒体1009には、EPROM (Erasable Programmable Read Only Memory)、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれていてもよい。
なお、補助記憶装置1004にインストールされる各種プログラムは、例えば、配布された記憶媒体1009がドライブ装置1008にセットされ、該記憶媒体1009に記録された各種プログラムがドライブ装置1008により読み出されることでインストールされる。あるいは、補助記憶装置1004にインストールされる各種プログラムは、I/F装置1007を介して、ネットワークよりダウンロードされることでインストールされてもよい。
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
1001 CPU
1002 ROM
1003 RAM
1004 補助記憶装置
1005 表示装置
1006 操作装置
1007 I/F装置
1008 ドライブ装置
1009 記憶媒体

Claims (5)

  1. 情報処理装置が実行する、10進数の値aの逆数である10進数の値bを算出する方法であって、前記aおよび前記bは奇数であり、
    前記情報処理装置のプロセッサが、前記aをビット列にするステップと、
    前記プロセッサが、2の冪乗を法とする剰余体上の積算において、前記aを2の冪乗倍した値を加算するか加算しないかを選択し、加算する場合には1とし加算しない場合には0としたビット列を前記bとするステップと、
    前記プロセッサが、前記bを前記aの逆数として算出するステップと
    を含む方法。
  2. 記aと前記bの積をmとしたときに、前記aと、前記bと、前記mとのそれぞれを複数の配列として、前記aの逆数である前記bを算出する請求項1に記載の方法。
  3. ホワイトボックス暗号方式のAESにおいて、前記aの逆数である前記bを算出する請求項1または2に記載の方法。
  4. プロセッサを備え、10進数の値aの逆数である10進数の値bを算出する情報処理装置であって、前記aおよび前記bは奇数であり、
    前記プロセッサは、
    前記aをビット列にし、
    2の冪乗を法とする剰余体上の積算において、前記aを2の冪乗倍した値を加算するか加算しないかを選択し、加算する場合には1とし加算しない場合には0としたビット列を前記bとし、
    前記bを前記aの逆数として算出する、情報処理装置。
  5. 10進数の値aの逆数である10進数の値bを算出し、前記aおよび前記bは奇数である情報処理装置に、
    前記aをビット列にする手順と、
    2の冪乗を法とする剰余体上の積算において、前記aを2の冪乗倍した値を加算するか加算しないかを選択し、加算する場合には1とし加算しない場合には0としたビット列を前記bとする手順と、
    前記bを前記aの逆数として算出する手順と
    を実行させるためのプログラム。
JP2021047134A 2021-03-22 2021-03-22 逆数算出方法、装置、およびプログラム Active JP6973677B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021047134A JP6973677B1 (ja) 2021-03-22 2021-03-22 逆数算出方法、装置、およびプログラム
US17/652,170 US20220308840A1 (en) 2021-03-22 2022-02-23 Reciprocal calculating method and reciprocal calculating apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021047134A JP6973677B1 (ja) 2021-03-22 2021-03-22 逆数算出方法、装置、およびプログラム

Publications (2)

Publication Number Publication Date
JP6973677B1 true JP6973677B1 (ja) 2021-12-01
JP2022146258A JP2022146258A (ja) 2022-10-05

Family

ID=78766748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021047134A Active JP6973677B1 (ja) 2021-03-22 2021-03-22 逆数算出方法、装置、およびプログラム

Country Status (2)

Country Link
US (1) US20220308840A1 (ja)
JP (1) JP6973677B1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000165375A (ja) * 1998-11-30 2000-06-16 Hitachi Ltd 情報処理装置、icカード
JP2000330470A (ja) * 1999-03-15 2000-11-30 Matsushita Electric Ind Co Ltd べき乗演算装置、べき乗剰余演算装置、楕円べき倍点演算装置、並びのそれらの方法、記録媒体
WO2008149496A1 (ja) * 2007-05-30 2008-12-11 Panasonic Corporation 情報セキュリティ装置
WO2018108705A1 (en) * 2016-12-12 2018-06-21 Koninklijke Philips N.V. An electronic calculating device arranged to calculate the product of integers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000165375A (ja) * 1998-11-30 2000-06-16 Hitachi Ltd 情報処理装置、icカード
JP2000330470A (ja) * 1999-03-15 2000-11-30 Matsushita Electric Ind Co Ltd べき乗演算装置、べき乗剰余演算装置、楕円べき倍点演算装置、並びのそれらの方法、記録媒体
WO2008149496A1 (ja) * 2007-05-30 2008-12-11 Panasonic Corporation 情報セキュリティ装置
WO2018108705A1 (en) * 2016-12-12 2018-06-21 Koninklijke Philips N.V. An electronic calculating device arranged to calculate the product of integers

Also Published As

Publication number Publication date
US20220308840A1 (en) 2022-09-29
JP2022146258A (ja) 2022-10-05

Similar Documents

Publication Publication Date Title
JP4875700B2 (ja) ランダム化されたモジュラー多項式のリダクション方法およびそのためのハードウェア
US8392494B2 (en) Method and apparatus for performing efficient side-channel attack resistant reduction using montgomery or barrett reduction
US8498411B1 (en) Using multiples above two with running totals and reference values other than 0 and 2 (window size) in elliptic curve cryptography scalar multiplication acceleration tables
US10768898B2 (en) Efficient modulo calculation
CN107004084B (zh) 用于加密操作的乘法掩码
TW200822664A (en) Modular reduction using folding
KR100442218B1 (ko) 몽고메리의 알고리즘을 이용한 멱승 잉여 연산기
US8781112B2 (en) Signed montgomery arithmetic
CN111385092B (zh) 使用信息盲化的密码装置及其密码处理方法
JP2006145852A (ja) モンゴメリ変換装置、演算装置、icカード、暗号装置、復号装置及びプログラム
KR20040067779A (ko) 정보 처리방법
JP6973677B1 (ja) 逆数算出方法、装置、およびプログラム
CN110336658B (zh) 基于aes算法的加密方法、用户设备、存储介质及装置
CN110034918B (zh) 一种sm4加速方法和装置
WO2023232951A1 (en) Method and circuit for securely mapping a masked variable
Will et al. Computing mod without mod
JP4616169B2 (ja) モンゴメリ乗算剰余における変換パラメータの計算装置、方法およびそのプログラム
JPWO2011036746A1 (ja) 演算装置
JP2010507813A (ja) 中央演算処理装置の演算能力を高めるための暗号方法および暗号装置
US20030147529A1 (en) Table driven method for calculating arithmetic inverse for use in cryptography
TWI793020B (zh) 防禦密碼系統時間攻擊之方法、密碼系統處理電路及電子裝置
CN118312138B (zh) 蒙哥马利模乘的硬件加速器实现方法及硬件加速器
US11973866B2 (en) Cryptographic processing method, related electronic device and computer program
JP2007503036A (ja) モジュラ乗算を行うための方法、および2nビットの数を使用してユークリッド乗算を行うための方法
JP2004226516A (ja) べき乗剰余演算方法及びそのプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210322

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20210322

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20210430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210702

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: 20211005

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211018

R150 Certificate of patent or registration of utility model

Ref document number: 6973677

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150