JP4408712B2 - 多倍長データ積和演算処理回路及びモンゴメリ積和剰余演算回路 - Google Patents
多倍長データ積和演算処理回路及びモンゴメリ積和剰余演算回路 Download PDFInfo
- Publication number
- JP4408712B2 JP4408712B2 JP2004017205A JP2004017205A JP4408712B2 JP 4408712 B2 JP4408712 B2 JP 4408712B2 JP 2004017205 A JP2004017205 A JP 2004017205A JP 2004017205 A JP2004017205 A JP 2004017205A JP 4408712 B2 JP4408712 B2 JP 4408712B2
- Authority
- JP
- Japan
- Prior art keywords
- product
- sum
- data
- bit width
- register
- 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
- 238000012545 processing Methods 0.000 title claims description 59
- 238000004364 calculation method Methods 0.000 claims description 113
- 238000013500 data storage Methods 0.000 claims 1
- 238000000034 method Methods 0.000 description 35
- 230000014509 gene expression Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 12
- 101100385237 Mus musculus Creg1 gene Proteins 0.000 description 9
- 238000012546 transfer Methods 0.000 description 9
- 101150070878 Ereg gene Proteins 0.000 description 8
- 238000010521 absorption reaction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000013478 data encryption standard Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 101150111571 mreg gene Proteins 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000010008 shearing Methods 0.000 description 1
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/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
-
- 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
-
- 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/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
Description
公開鍵方式は、公開鍵と秘密鍵の一対の鍵を用意しておき、送信者が受信者の公開鍵で暗号化し、受信者は受信者しか知りえない秘密鍵で復号化する。例えば、ネットワーク上で商品を購入する場合に、顧客は業者から公開鍵を送ってもらい、これによってクレジットカード番号などの情報を暗号化して送信する。業者は秘密鍵によって受信した情報を復号化する。公開鍵を広く公開することによって、不特定多数の者との通信の秘密が簡単に確保できる。
T=A×B+C………………(1)
M=T×NDmodR………(2)
X=(M×N+T)/R……(3)
Y=X−N……………………(4)
なお、入力値NDは、R×R-1−N×ND=1の条件を満たす値である。
入力値A、B、C、Nは多倍長の値(例えば2048bit)であって、メモリ領域にワードごとに整列して格納されている。入力値Rは2のべき乗値(例えば22048)であり、値そのものではなく、データ長のみの情報が格納されている。入力値NDは演算器のビット幅のみ必要となるが、その理由は後述する。
(1.1) for (i=0 to s−1){
(1.2) a:=A[i]
(1.3) d:=0
(1.4) for(j=0 to s−1){
(1.5) b:=B[j]
(1.6) if(i==0) c=C[j]
(1.7) else c=T[i+j]
(1.8) (d,e):=a×b+c+d
(1.9) T[i+j]:=e
(1.10) }
(1.11) T[i+s]:=d
(1.12) }
上記のように、iとjをループ変数とした2重ループ(行番号1.1〜1.12の外ループと、行番号1.4〜1.10の内ループ)で下位ビット側から繰り返す。ここで、定数s(行番号1.1、1.4、1.11)は、データ長をワード長で割った数字である。表記中変数の次の[]の値は、データの中のワード位置を下位側から示す値である。例えば、ワード長が32ビットならば、A[0]は、Aの下位32ビットの値を示す。
従来の多倍長データ積和演算処理回路900は、メモリ901と、MAC902と、レジスタ903、904、905、906、907と、からなる。メモリ901上には、演算に必要な多倍長の入力値A、B、Cが存在する。MAC902は、入力値A、B、Cをワードごとに入力し、演算処理を行って、T=A×B+Cをメモリ901上に書き込む。
まず、図示しない制御回路にてループ変数i,jが作成され、メモリ901に対してのアドレス入力とされる。次にメモリ901からワード長(W)分の入力値A[i]、B[j]、C[j]もしくはC[j]の代わりにT[i+j]をリードし、これらをa、b、cとしてレジスタ903、904、905に保持した後、MAC902を使用して、行番号1.8の(d,e):=a×b+c+dを演算し、d,eをそれぞれ、レジスタ906、907に保持させる。dは次のサイクルの演算の入力として再利用し、eをT[i+j]の新値としてメモリ901にライト更新する。
式(1)、(2)、(3)の演算は、独立して行うと入力値NDが多倍長必要になるため、効率的ではない。そのため非特許文献2にあるような処理手法が一般に知られている。その処理手法とは、式(1)の演算処理過程で、演算中間値Tが下位側から順に決定していくときに、その都度、演算中間値Tの最下位ワードに対し、式(2)の演算結果である演算中間値Mの最下位ワードを演算決定し、式(3)の出力値Xを演算していく方法である。この場合入力値NDは演算ワード長のみで十分となる。
また本発明の他の目的は、シングルポートメモリを用いても効率よくモンゴメリ積和剰余演算が可能なモンゴメリ積和剰余演算回路を提供することである。
なお、以下では、基数Rを2のべき乗数、整数Nを奇数値として説明を行う。
図1は、本発明の実施の形態の多倍長データ積和演算処理回路の原理図である。
以下、図1の多倍長データ積和演算処理回路10の動作を説明する。
以下では、入力値A、B、C、Nを入力し、モンゴメリ積和剰余演算を行い、出力値X、Yと出力値Yの正負の符号をシングルポートメモリに出力する場合について説明する。
,a7,a6,a5,a4,a3,a2,a1,a0};
B[255:0]={b15,b14,b13,b12,b11,b10,b9,b8
,b7,b6,b5,b4,b3,b2,b1,b0};
以下、C、N、T、M、X、Yも同様に表現する。
T=A×B+C……………………………………………………(5)
M={t3、t2、t1、t0}×NDmod264…………(6)
X=(M×N+T)/264………………………………………(7)
Y=X−N…………………………………………………………(8)
0<Yの場合は、出力値Xの値が演算結果であり、0≧Yの場合は、出力値Yの値が演算結果である。
本発明の実施の形態のモンゴメリ積和剰余演算回路100は、式(5)〜(8)で示したモンゴメリ積和剰余演算を行う回路であり、図1で示したような多倍長データ積和演算処理回路(図2では、積和演算部110、120と表記している)を2つ直列に接続した構成となっている。なお、図2では、メモリの図示を省略している。また、本発明の実施の形態のモンゴメリ積和剰余演算回路100は、式(8)の演算を行うための減算部130を有している。
MAC111は、入力値A、B、Cのうち、例えば入力値Aを被乗数、入力値Bを乗数とした場合、ビット幅が異なる乗数と被乗数とで積和演算を行う。すなわち、被乗数の入力値Aを64ビット幅、乗数である入力値Bを16ビット幅として積和演算A×B+Cを行い、演算結果を出力する。
Breg113は、メモリより読み出した多倍長データの入力値Bを64ビット分格納するレジスタである。また、図示しないクロック信号に応じて入力値Bの64ビットのうち下位16ビットずつシフトさせてMAC111に供給する。なお、Breg113は、更に、32ビット分のバッファを有している。これは入力値B、Cは同時に1クロック時間では読み出せないので、入力値Bの読み出しを2クロック時間分前にして、MAC111への16ビットのデータ供給のタイミングを入力値Cと揃えるためである。
MAC121は、{t3,t2,t1,t0}×NDの演算結果のうち下位の64ビットのみを演算することで(264の剰余を演算することに相当)、式(6)を演算し、式(7)のM×N+Tを行い、演算結果を出力する。
16ビット減算器131は、式(8)の演算を行い、演算結果を出力する。
以下、図2のモンゴメリ積和剰余演算回路100の動作を説明する前に、MAC111、121の構成及び、メモリの管理構成及び制御コマンドレジスタの例を説明する。
図のように、MAC111は、ビット幅80ビット=64ビット×16ビット+16ビット+64ビットの構成である。図2で説明した入力値Aを格納するAreg112から入力される64ビットの値をAIN[63:0]、入力値Bを格納するBreg113から入力される16ビットの値をBIN[15:0]、入力値Cを格納するCreg114から入力される16ビットの値をCIN[15:0]、MAC111の演算結果の80ビットのうち上位の64ビットを格納するDreg115から入力される64ビットの値をDIN[63:0]と表記している。また、MAC111から出力される80ビットの値をXOUT[79:0]、Dreg115に一旦格納させるための4ビットのキャリーの出力値をYOUT[3:0]、4ビットのキャリーを格納したDreg115から入力されるキャリーをYIN[3:0]と表記している。
部分積生成部201は、AINとBINの部分積AB00[63:0]〜AB15[63:0]を生成する。なお、図示を省略したが16ビット×16ビットの部分積の生成を行う回路が4つ並列に配置されたAND−ARRAY構造となっている。
桁上げ加算器203、204、205、206、207は、1クロック時間で下位16ビットの値のみ確定値が出力すればよいので、16ビットずつの5つに分割して加算を実施する構成となっている(5つでキャリー分割している)。このため、YIN[3:0]、YOUT[3:0]のキャリー入出力が存在する。
従来のような(W)×(W)+(W)+(W)(Wはワード長)のビット幅構成のMACのキャリー分割幅はWとすることができる。一方、本発明の実施の形態のように、64ビット×16ビット+16ビット+64ビット、1Wを32ビットとすると(2W)×(W/2)+(W/2)+(2W)のビット幅構成のMAC111のキャリー分割幅は、(W/2)とすることができる。この2つのMACの1回の演算量は同じと見ることができるが、出力遅延時間は、後者の方が速くすることができる。ただし、キャリー分割を行っている場合には、演算最後に桁上げの処理時間が必要になる。しかしながら多倍長データの積和演算を行う場合であって、ワード長とデータ長の比が十分大きな場合には、動作クロック周波数をあげられる後者の構成のほうが全体の処理時間を短くすることができる。
次に、本発明の実施の形態におけるメモリの管理構成について説明する。
本発明の実施の形態のモンゴメリ積和剰余演算回路100では、メモリを単一の構成としているので、必要なデータを複数個格納する。それぞれのデータは、格納されている領域の先頭アドレスとデータ長がわかれば特定することができ、演算を実行する際には、入力値A、B、C、N、出力値X、Yの入出力領域として、メモリ上の領域を任意に割り振ることが可能になる。
メモリを管理する機構として図示しない制御部とは別に、モンゴメリ積和剰余演算回路100側に複数のポインタ格納レジスタを用意しておく。ポインタ格納レジスタには対応するメモリ領域の先頭アドレスが重複無く格納されるようにしておく。Amem、Bmem、…、Nmemは、図示しない制御部が指定するデータ領域名であり、ポインタ格納レジスタの1つ1つと対応している。すなわち図示しない制御部から見てポインタ格納レジスタは1つのデータ領域を示すことになる。例えば、図示しない制御部がデータ領域名Amemを指定した場合には、メモリ実アドレスの先頭アドレス“0110”を格納しているポインタ格納レジスタというデータ領域を指定することになる。
図のような制御コマンドレジスタは、図示しない制御部から見えるコマンドレジスタであり、図4で説明したように、データ領域として、Amem〜Nmemが存在しているので、4ビットの数値をそれぞれの領域名の引数(argument:図中では略してargと表記している)として指定することができる。32ビットのコマンドレジスタとした場合、例えば、図5のように、bit[3:0]は、R/W(読み出しまたは書き込み)の演算結果出力領域を指定するための領域を示し、演算結果である出力値Yが指定される。また、bit[7:4]は、R/Wの作業領域を指定するための領域を示し、演算結果である出力値Xが指定される(なお、XとYが逆でもかまわない)。ここで、作業領域とはメモリの内容が破壊される領域で演算後の値の保障がされない領域である。
このようなメモリ管理構成・制御方法は、図示しない制御部にて代替実施することも可能であるが、制御部が組み込み型プロセッサであって処理能力に乏しい場合でも、モンゴメリ積和剰余演算回路100側にポインタ格納レジスタを設けて実施することで、メモリ内部に非常に多くのデータが存在する場合でも演算処理を高速に実施できる。
図6は、本発明の実施の形態のモンゴメリ積和剰余演算回路の動作を示すタイミングチャートの前半のステップである。
このタイミングチャート上では、上からクロックサイクル、図示しない制御部からのメモリへのアクセスがリードなのかライトなのかを示す“Memory Access”、メモリから読み出すデータを指定するための“Memory Read Data”、メモリへ書き込むデータを指定するための“Memory Write Data”が示されている。さらに、図2で示したモンゴメリ積和剰余演算回路100の各レジスタの値が示される。すなわち、Areg112の64ビットの値、Breg113の下位16ビット、Creg114の下位16ビット、Dreg115の64ビット、Ereg124の16ビット、Freg122の64ビット、Greg123の下位16ビット、Hreg125の64ビット、Ireg133の上位16ビット、Jreg132の下位16ビット、Kreg134の上位16ビットである。
この図では、式(8)を行う減算部については、図2で示した回路と同様であるので図示及び説明を省略する。またメモリも図示を省略したが、64ビット幅のシングルポートメモリである。
また以下の理由により、MAC301のビット数を81ビット=65×16+16+65としている。
この回路構成では、式(5)〜(7)の演算をそれぞれのMACで演算処理を行う構成である。
MAC411は、32ビット×32ビットの部分積生成回路501−1、…、501−15、501−16が、16個並列構造となった部分積生成部501と、複数項加算器部502と、中間レジスタ503と、4項加算器部504と、544ビットの桁上げ吸収加算器505により構成されている。
このように複数項加算器部502と、4項加算器部504との間が中間レジスタ503により分割し、パイプライン動作させる構成においては、前段側の複数項加算器部502の遅延時間と、後段側の544ビットの桁上げ吸収加算器505の遅延時間を等しくすることで、MAC411の高速化が可能となる。
以下図9の回路で各入力値が512ビット以下のモンゴメリ積和剰余演算を行う場合について簡単に説明する。
入力値Aの最下位512ビットを使用して、512ビット以下で示した手順で16回演算を行う。その間は、求めた演算中間値Mを全てPreg433に保持しておく。その後、演算中間値Mの512ビットをNreg432に転送し、入力値NをメモリからPreg433に取り込み、最後段のMAC431では、演算中間値Mの512ビットと、入力値Nの下位32ビット、演算中間値Tの下位32ビットから出力値Xの演算を継続する(図中のSwap)。以上の処理を入力値Aを変更して繰り返すことで、512ビットより大きな値でのモンゴメリ積和剰余演算が可能となる。
11 メモリ
12 MAC
13、14、15、16、17 レジスタ
Claims (5)
- 多倍長データに対し積和演算処理を行う多倍長データ積和演算処理回路において、
前記多倍長データを格納し、1クロックで第1のビット幅のデータを転送可能なシングルポートメモリと、
ビット幅が異なる乗数と被乗数と、加算値とで前記積和演算処理を行う積和演算器と、
第2のビット幅をもち、前記第2のビット幅の前記被乗数を前記積和演算器に入力する第1のレジスタと、
前記第1のビット幅をもち、クロックごとに第3のビット幅の前記乗数を前記積和演算器に入力する第2のレジスタと、
前記第1のビット幅をもち、前記クロックごとに前記第3のビット幅の第1の加算値を前記積和演算器に入力する第3のレジスタと、
前記積和演算器での演算結果のうち、上位の前記第2のビット幅を保持し、第2の加算値として前記積和演算器に入力する第4のレジスタと、
前記積和演算器での演算結果のうち、下位の前記第3のビット幅ごとを生成データとして保持していき、前記第1のビット幅に達した場合に、前記シングルポートメモリに書き込む第5のレジスタとを有し、
前記シングルポートメモリは、前記第1のレジスタ、前記第2のレジスタ及び前記第3のレジスタに前記第1のビット幅ごとにデータを供給し、前記乗数、前記第1の加算値及び前記生成データのデータ量の総和は、前記第1のビット幅以下であることを特徴とする多倍長データ積和演算処理回路。 - 前記積和演算器における桁上げ加算器を複数に分割したことを特徴とする請求項1記載の多倍長データ積和演算処理回路。
- 1クロックで第1のビット幅のデータを転送可能なシングルポートメモリに格納された多倍長データを入力してモンゴメリ積和剰余演算を行うモンゴメリ積和剰余演算回路において、
ビット幅が異なる乗数と被乗数と、加算値とで前記積和演算処理を行う積和演算器と、
第2のビット幅をもち、前記第2のビット幅の前記被乗数を前記積和演算器に入力する第1のレジスタと、前記第1のビット幅をもち、クロックごとに第3のビット幅の前記乗数を前記積和演算器に入力する第2のレジスタと、前記第1のビット幅をもち、前記クロックごとに前記第3のビット幅の第1の加算値を前記積和演算器に入力する第3のレジスタと、前記積和演算器での演算結果のうち、上位の前記第2のビット幅を保持し、第2の加算値として前記積和演算器に入力する第4のレジスタと、前記積和演算器での演算結果のうち、下位の前記第3のビット幅ごとを生成データとして保持していき、前記第1のビット幅に達した場合に、前記シングルポートメモリに書き込む第5のレジスタとを具備する積和演算処理部を1つ、または直列に接続した複数個を有し、前記シングルポートメモリは、前記第1のレジスタ、前記第2のレジスタ及び前記第3のレジスタに前記第1のビット幅ごとにデータを供給し、前記乗数、前記第1の加算値及び前記生成データのデータ量の総和は、前記第1のビット幅以下であることを特徴とするモンゴメリ積和剰余演算回路。 - 前記積和演算器は、前記積和演算器における桁上げ加算器を複数に分割したことを特徴とする請求項3記載のモンゴメリ積和剰余演算回路。
- 前記モンゴメリ積和剰余演算で用いるデータの前記メモリ上での先頭アドレスを格納するポインタ格納レジスタを更に有し、外部の制御部により前記データの前記メモリ上での入出力先として指定されたデータ領域名を変えずに、前記ポインタ格納レジスタに格納された前記先頭アドレスを入れ替えることで、前記制御部にて参照可能な前記データを入れ替えることを特徴とする請求項3記載のモンゴメリ積和剰余演算回路。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004017205A JP4408712B2 (ja) | 2004-01-26 | 2004-01-26 | 多倍長データ積和演算処理回路及びモンゴメリ積和剰余演算回路 |
EP04017172A EP1560110A1 (en) | 2004-01-26 | 2004-07-21 | Multiple-word multiplication-accumulation circuit and Montgomery modular multiplication-accumulation circuit |
US10/898,178 US8078661B2 (en) | 2004-01-26 | 2004-07-26 | Multiple-word multiplication-accumulation circuit and montgomery modular multiplication-accumulation circuit |
KR1020040063153A KR100682354B1 (ko) | 2004-01-26 | 2004-08-11 | 다배장 데이터 곱합 연산 처리 회로 및 몽고메리 곱합잉여 연산 회로 |
CNB2004100581735A CN100504758C (zh) | 2004-01-26 | 2004-08-13 | 多字乘法-累加电路和蒙哥马利模乘法-累加电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004017205A JP4408712B2 (ja) | 2004-01-26 | 2004-01-26 | 多倍長データ積和演算処理回路及びモンゴメリ積和剰余演算回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005209095A JP2005209095A (ja) | 2005-08-04 |
JP4408712B2 true JP4408712B2 (ja) | 2010-02-03 |
Family
ID=34650749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004017205A Expired - Fee Related JP4408712B2 (ja) | 2004-01-26 | 2004-01-26 | 多倍長データ積和演算処理回路及びモンゴメリ積和剰余演算回路 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8078661B2 (ja) |
EP (1) | EP1560110A1 (ja) |
JP (1) | JP4408712B2 (ja) |
KR (1) | KR100682354B1 (ja) |
CN (1) | CN100504758C (ja) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4544870B2 (ja) * | 2004-01-26 | 2010-09-15 | 富士通セミコンダクター株式会社 | 演算回路装置 |
JP4783382B2 (ja) | 2006-01-13 | 2011-09-28 | 富士通株式会社 | モンゴメリ法用乗算剰余計算装置 |
WO2008114315A1 (ja) | 2007-03-19 | 2008-09-25 | Fujitsu Limited | Fault攻撃対策機能を搭載した組み込み装置 |
US8028015B2 (en) * | 2007-08-10 | 2011-09-27 | Inside Contactless S.A. | Method and system for large number multiplication |
JP5097138B2 (ja) * | 2009-01-15 | 2012-12-12 | シャープ株式会社 | モンゴメリ乗算のための演算回路及び暗号回路 |
WO2011036746A1 (ja) * | 2009-09-24 | 2011-03-31 | 株式会社東芝 | 演算装置 |
US8478969B2 (en) | 2010-09-24 | 2013-07-02 | Intel Corporation | Performing a multiply-multiply-accumulate instruction |
US9343124B1 (en) * | 2011-07-29 | 2016-05-17 | Altera Corporation | Method and system for operating a multi-port memory system |
US9081657B2 (en) * | 2011-10-13 | 2015-07-14 | Conexant Systems, Inc. | Apparatus and method for abstract memory addressing |
US9384168B2 (en) | 2013-06-11 | 2016-07-05 | Analog Devices Global | Vector matrix product accelerator for microprocessor integration |
JP6095792B2 (ja) * | 2013-10-10 | 2017-03-15 | 日本電信電話株式会社 | 秘密ビット分解装置、秘密モジュラス変換装置、秘密ビット分解方法、秘密モジュラス変換方法、プログラム |
DE112013007736T5 (de) | 2013-12-28 | 2016-12-22 | Intel Corporation | RSA-Algorithmusbeschleunigungsprozessoren, -Verfahren, -Systeme und Befehle |
US11262982B2 (en) * | 2018-07-23 | 2022-03-01 | SK Hynix Inc. | Computation circuit including a plurality of processing elements coupled to a common accumulator, a computation device and a system including the same |
JP7129857B2 (ja) * | 2018-09-07 | 2022-09-02 | ルネサスエレクトロニクス株式会社 | 積和演算装置、積和演算方法、及びシステム |
CN109669666B (zh) * | 2018-11-06 | 2022-12-16 | 清华大学 | 乘累加处理器 |
CN109669670B (zh) * | 2018-12-26 | 2020-09-22 | 贵州华芯通半导体技术有限公司 | 用于蒙哥马利模乘中的不均等分块的数据处理方法及装置 |
WO2020159800A1 (en) * | 2019-01-28 | 2020-08-06 | Rambus Inc. | Memory-integrated neural network |
US11475102B2 (en) * | 2019-02-21 | 2022-10-18 | Samsung Electronics Co., Ltd. | Adaptive matrix multiplication accelerator for machine learning and deep learning applications |
CN109933304B (zh) * | 2019-03-20 | 2022-06-21 | 成都三零嘉微电子有限公司 | 适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法 |
DE102020102453A1 (de) * | 2020-01-31 | 2021-08-05 | Infineon Technologies Ag | Integrierte Schaltung zum modularen Multiplizieren von zwei ganzen Zahlen für ein kryptographisches Verfahren und Verfahren zur kryptographischen Verarbeitung von Daten basierend auf modularer Multiplikation |
US20230185537A1 (en) * | 2020-04-23 | 2023-06-15 | University Of Southern California | Design of high-performance and scalable montgomery modular multiplier circuits |
CN113076061A (zh) * | 2021-03-18 | 2021-07-06 | 四川和芯微电子股份有限公司 | 单ram多模块数据的缓存方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG52303A1 (en) * | 1993-12-20 | 1998-09-28 | Motorola Inc | Arithmetic engine |
GB2291515B (en) * | 1994-07-14 | 1998-11-18 | Advanced Risc Mach Ltd | Data processing using multiply-accumulate instructions |
US5787025A (en) * | 1996-02-28 | 1998-07-28 | Atmel Corporation | Method and system for performing arithmetic operations with single or double precision |
US5941940A (en) * | 1997-06-30 | 1999-08-24 | Lucent Technologies Inc. | Digital signal processor architecture optimized for performing fast Fourier Transforms |
US5847981A (en) * | 1997-09-04 | 1998-12-08 | Motorola, Inc. | Multiply and accumulate circuit |
US6085210A (en) | 1998-01-22 | 2000-07-04 | Philips Semiconductor, Inc. | High-speed modular exponentiator and multiplier |
US6484194B1 (en) | 1998-06-17 | 2002-11-19 | Texas Instruments Incorporated | Low cost multiplier block with chain capability |
KR100322740B1 (ko) * | 1998-07-10 | 2002-03-08 | 윤종용 | 모듈러 연산장치 및 그 방법 |
KR100325430B1 (ko) * | 1999-10-11 | 2002-02-25 | 윤종용 | 상이한 워드 길이의 산술연산을 수행하는 데이터 처리장치 및 그 방법 |
US6557022B1 (en) * | 2000-02-26 | 2003-04-29 | Qualcomm, Incorporated | Digital signal processor with coupled multiply-accumulate units |
US6957242B1 (en) * | 2000-10-26 | 2005-10-18 | Cypress Semiconductor Corp. | Noninterfering multiply-MAC (multiply accumulate) circuit |
JP3709553B2 (ja) * | 2000-12-19 | 2005-10-26 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 演算回路および演算方法 |
-
2004
- 2004-01-26 JP JP2004017205A patent/JP4408712B2/ja not_active Expired - Fee Related
- 2004-07-21 EP EP04017172A patent/EP1560110A1/en not_active Ceased
- 2004-07-26 US US10/898,178 patent/US8078661B2/en not_active Expired - Fee Related
- 2004-08-11 KR KR1020040063153A patent/KR100682354B1/ko active IP Right Grant
- 2004-08-13 CN CNB2004100581735A patent/CN100504758C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005209095A (ja) | 2005-08-04 |
US8078661B2 (en) | 2011-12-13 |
CN100504758C (zh) | 2009-06-24 |
KR100682354B1 (ko) | 2007-02-15 |
EP1560110A1 (en) | 2005-08-03 |
KR20050077001A (ko) | 2005-07-29 |
US20050165876A1 (en) | 2005-07-28 |
CN1648853A (zh) | 2005-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4408712B2 (ja) | 多倍長データ積和演算処理回路及びモンゴメリ積和剰余演算回路 | |
JP5266354B2 (ja) | ガロア拡大体・積算/積算加算・積和演算装置 | |
JP4870932B2 (ja) | 多重精度を支援する拡張型モンゴメリモジュラ掛け算器 | |
JP3525209B2 (ja) | べき乗剰余演算回路及びべき乗剰余演算システム及びべき乗剰余演算のための演算方法 | |
JP2722411B2 (ja) | モンゴメリ法によるモジュラリダクションの実施方法 | |
JP3703092B2 (ja) | 複数のほぼ完全に同一のプロセッサ要素を用いるモジュラ乗算のためのハードウェア | |
KR100442218B1 (ko) | 몽고메리의 알고리즘을 이용한 멱승 잉여 연산기 | |
JP2010044398A (ja) | 多倍長演算装置 | |
JP3532860B2 (ja) | 剰余系表現を利用した演算装置及び方法及びプログラム | |
Gutub et al. | Efficient scalable VLSI architecture for Montgomery inversion in GF (p) | |
JP4823467B2 (ja) | ガロア体からの二つの係数を乗算するための方法及びこの方法を遂行するための乗算器 | |
US7240204B1 (en) | Scalable and unified multiplication methods and apparatus | |
JP2004258141A (ja) | モンゴメリ乗算剰余の多倍長演算のための演算装置 | |
JP2000353077A (ja) | 多倍長演算装置 | |
CN102884505B (zh) | 数据处理装置和数据处理方法 | |
JP5175983B2 (ja) | 演算装置 | |
JP4360792B2 (ja) | べき乗剰余演算器 | |
JP2006508464A (ja) | ルックアップテーブルを備える乗算器 | |
JP2001034167A (ja) | 演算装置及び暗号処理装置 | |
KR100417136B1 (ko) | 다항식 기저에서 유한체 승산 장치 및 그 방법 | |
Zhang et al. | A high performance pseudo-multi-core ECC processor over GF (2 163) | |
JP2000207387A (ja) | 演算装置及び暗号処理装置 | |
KR20000000770A (ko) | 모듈러 곱셈장치 | |
KR20070062901A (ko) | 중국인 나머지 정리(crt)와 캐리 저장 가산 기반의모듈러 곱셈 장치 및 방법 | |
KR20040045152A (ko) | 모듈러 곱셈 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070115 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080729 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090128 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090217 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090410 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090630 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090827 |
|
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: 20091110 |
|
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: 20091110 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4408712 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: 20121120 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121120 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
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: 20121120 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: 20121120 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131120 Year of fee payment: 4 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |