JPH0326114A - 乗算剰余演算器 - Google Patents

乗算剰余演算器

Info

Publication number
JPH0326114A
JPH0326114A JP1159699A JP15969989A JPH0326114A JP H0326114 A JPH0326114 A JP H0326114A JP 1159699 A JP1159699 A JP 1159699A JP 15969989 A JP15969989 A JP 15969989A JP H0326114 A JPH0326114 A JP H0326114A
Authority
JP
Japan
Prior art keywords
value
adder
remainder
register
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.)
Pending
Application number
JP1159699A
Other languages
English (en)
Inventor
Kenzo Urabe
健三 占部
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.)
Kokusai Electric Corp
Original Assignee
Kokusai Electric Corp
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 Kokusai Electric Corp filed Critical Kokusai Electric Corp
Priority to JP1159699A priority Critical patent/JPH0326114A/ja
Publication of JPH0326114A publication Critical patent/JPH0326114A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (発明の属する技術分野) 本発明は、二つの正数(A,B)の乗算値A・Bの他の
正数Nを法とする剰余(Nで除した時の剰余、〔A−B
〕modNと表す)を求める(以下、この演算を乗算剰
余演算という)乗算剰余演算器に関するものである。
(従来技術とその問題点) 上記に示した乗算剰余演算は、符号理論や暗号理論の符
復号処理における要素演算に用いられている。
このような乗算剰余演算を実現する従来の方法では、乗
算に供される2つの正数A,Bのうち、Aの2進値表現
を下式 Bをシフトレジスタに格納し、左へ1ビットシフト(2
倍演算)する毎に、その結果が法の正数Nより大きい場
合にのみNを減ずるという処理によって(2)弐右辺の
〔2“・B ) modNを逐次算出する。
手順■: ak一”1”のとき、過去の累算値 (但しlはAの2進値上のビット数) で定義すると、Ac!:Bとの乗算剰余値(A−B)f
fiod Nは下式 を求める。
手順■: 上記手順■で求めた結果が法の正数Nより大きい場合に
のみ、Nを滅じて となることに着目し、概略、次の処理手順により演算を
実行している。
手順■: 上記手順■〜■の処理を正数八の2進値表現上の最下位
ビッ} (LSB ; ao)から順に最上位ビノト(
M S B ; a x−+ )までl回実1〒するこ
とにより、(A − B ) modNを求めることが
できる。
これらの手順を実行する従来の乗算剰余演算器の一構成
例を第2図に示す。図において、201は前記〔21・
B ) modNを格納する補助レジスタ、202は加
算器で、上記補助レジスタ201の出力を左へ1ビット
シフトし、LSBとして“O”を追加することによって
等価的に2倍演算を施した値を一方の入力とし、法の正
数Nの2の補数値一Nを他方の入力とすることにより補
助レジスタ201の出力値の2倍値からNを減じた値を
出力する。
203は切替器で、加算器202の出力のMSBにより
加算器202の出力が負(M S B =“1”)のと
きは上記補助レジスタ201の出力の2倍値を、また、
正(MSB=“0”)のときは上記2倍値からNを減じ
た加算器202の出力をそれぞれ切替えて、前記補助レ
ジスタ201に入力する。204は、八の2進値の各桁
aiに従って前記手順■に示した累算値 を格納する累算値レジスタである.205. 206は
加X器で、205は累算値レジスタ204の出力値と前
記補助レジスタ201の出力値とを加算し、手順■に示
した新たな累算値を出力する。一方、加算器206は加
算器202と同様、加算器205の出力を一方の入力と
し、法の正数Nの2の補数値一Nを他方の入力とするこ
とにより、加算器205の出力値からNを減じた値を出
力する。207は切替器203と同様の切替器で、加算
器206の出力のMSBにより加算器206の出力が負
(MSB=“1”)のときは加算器205の出力値を、
また、正(M.SB一“0″)のときは加算器205の
出力からNを減じた206の出力を、それぞれ切替えて
、前記累算値レジスタ204へ入力する。なお、累算値
レジスタ204は前記205, 207. 204の一
巡のループ演算毎にaiを入力し、ai一“1”のとき
のみ切替器207の出力を格納するものとする。
以上の構或において、第2図の一点鎖線で囲まれたブロ
ック208の部分は前記の手順■の処理を実行し、ブロ
ック209の部分は手順■および■を実行しており、そ
れぞれi回実行を繰り返したとき、累算値レジスタ20
4には乗算剰余値(A−B〕modNが格納されること
になる。
以上が、従来の方法に基づく構成の一例であるが、しか
しながら、このような構或においては、各々、同規模の
加(減)算器が3個、切替器が2個、補助レジスタと累
算値レジスタとがそれぞれ個別にl個必要となり、回路
規模が大きくなる。
また、加算器205と206は縦続接続されており、互
いに並列に実行できないため、処理速度が低下する等の
欠点がある。
後者の不具合を解消する従来の他の方法として、第2図
のブロック20Bにおいて、補助レジスタ20lを第1
の補助レジスタとし、その出力値の2倍値2X (2’
・B ) o+odN (非負値)のNを法とする算術
系で等価な負値(例えば2X (2’・B〕lIlOd
N4N)を得るための加算器と第2の補助レジスタを追
加するとともに、ブロック209においては、加算器2
06と切替器207によるNを法とする剰余演算を省略
し、累算値レジスタ204と加算器205による累算結
果の絶対値が常に所定の上限値を超えないように上記第
1および第2の補助レジスタ出力のいずれか一方を切替
えて加算器205へ供給するという構或がある。
この構成によれば、加算器205と206の縦続接続は
解消されるので高速化は可能となるが、必要とする加算
器,切替器の総数は第2図の構或と同じであり、加えて
上記負値を記憶保持する第2の補助レジスタが増設され
るために、回路規模は増大してしまうという欠点がある
(発明の目的) 本発明の目的は、前記従来の乗算剰余演算器において生
ずる回路規模や処理速度上の問題を緩和し、比較的小規
模で高速な乗算剰余演算器を提供することにある。
(発明の構戒および作用) 〔構 或〕 第1図は本発明の実施例を示す一構戒例図である。図に
おいて、101はそれぞれ(n+1)ビット(nは法の
正数Nの2進値表現上の有効桁数)の数値αiを累算値
として格納する累算値レジス?であって、αi1はその
格納された値の記憶保持出力である。102は上記累算
値レジスタ101の出力αi+1を左へ1ビットシフト
し、LSBとして“0”を追加することによって等価的
に2倍演算を施した値2αi.1の上位mビット(但し
、n〉m≧2)の威分β■と乗算に供せられる一方の正
数Aの2進値表現上の各桁aiとを入力し、次式により
予め計算されたnビットの値δ.、すなわち δ. = ( 2 n+Z−m ・β,+ a 1−B
 ) modN ・−(3)(但しBは乗算に供せられ
る他方の正数)を逐次出力するメモリであって、その規
模は2 allワード(1ワード当たりnビット)であ
る。103は加算器で、前記2αi+1の下位(n+2
−m)ビットの或分r= と上記δ.とを入力しこれら
を加算した(n+1)ビットの値を前記αiとして累算
値レジスタ101の入力へ供給する。104は、累算値
レジスタ101に得られる最終の累算値のNを法とする
剰余値を求める剰余演算器であって、加算器,切替器等
を用いて構成される。
〔作 用] 第1図の構或例図に基づく本発明の作用を、数式を用い
て次に説明する。
まず、第l図の構成における各出力値α,.1,αiβ
、,γ.,δ.の間には次式による関係が戒立している
2α,,, = 2 ″+z−t″・β1+γ1・・・
・(4)αi=γ,+δ.     ・・・・(5)(
5)式に(4)式と(3)式を代入し、γ、,δ、を消
去すると、下弐を得る。
α、−2αi+1   2n+2−・.β8+ 〔2l
1+21・β,+ a 1−B ]modN  ・−(
6)よって、αiのNを法とする剰余値〔αH〕mod
Nは、(6)式より、 [ α4] modN−[:2 aH.,+ a .・
B ) modN  −−−C1)となる。
一方、算出目標である乗算剰余値[:A−B〕modN
は、(1)式より、一般に、 ? (2 ( −−2 (2az−+−B + a z
−z・B ) +ao。
+az.− B) aoan+...−〕modN+a
o−B〕modN ・−(8)と表すことができること
から、今、数列C l− 1 +Cz−2+・−,C■
,・−IcIIcoを次式で定義すると、(8)式と(
9−1)〜(9−5)式によりCo  = (A ゜B
 ) modN  ・・・・・(10)が或り立つ。こ
こで前記(7)式と(9−3)式とを比較すると、αi
とCiは次式 〔α= ’J modN =C t    ・・・・・
(11)で与えられる関係にあり、両者はNを法とする
代数系で等価である。
以上から、第1図に示した本発明の構或例において、A
の最上位桁aZ−1から順に下位側へ向かってa、が1
ビット毎にメモリ102に供給される度に、加算器10
3から得られる累算値α曇を累算値レジスタ101へ格
納するという演算を乏回繰り返すことにより最終的に加
算器1.03の出力に得られるα。は、N法とする代数
系において、〔A・B ) +sodNと等価となるこ
とがわかる。
なお、加算器103の出力αiはn+1ビットであり、
N(≧2″−’)の有効桁nビットよりlビットだけ大
きいので、α。の値域は次式で示される。
0≦α。〈211≦4N   ・・・・・(l1)従っ
て、α。が得られたとき、α0から高々3Nを減ずる補
正操作を剰余演算器104を用いて最後に実行すること
により、目標とする(A−B〕modNが求められるこ
とがわかる。
ちなみに、メモリ102への入力β,の桁数mをm=3
に設定した場合は、γ,の桁数が(n−1)ビットとな
り、その値域が、 γ,<2″−1≦N   ・・・・(l2)となるため
、(3)式,(5)式より αi<2N ・・・・(13) となり、剰余演算器104による補正操作は高々1回N
を減ずるのみでよく、このときのメモリ102の規模は
2′″+1=16ワード(nビット/ワード)構或とな
る。
(発明の効果) 以上詳細に説明したように、本発明によれば、各々1個
のメモリ,加算器およびレジスタで実現できるので回路
規模が比較的に小さい。また、処理速度に最も影響を与
える加算器はl個であるため従来の高速の構或例と比べ
同等以上の処理速度を達或することができる等の利点が
ある。
【図面の簡単な説明】
第l図は本発明の実施例を示す構或例図、第2図は従来
の乗算剰余演算器の一構或例図である。 101・・・累算値レジスタ、 102・・・メモリ、
103・・・加算器、 104・・・剰余演算器、20
1・・・補助レジスタ、 202, 205, 206
・・・加算器、203, 207・・・切替器、204
・・・累算値レジスタ、208. 209・・・演算ブ
ロック。

Claims (1)

  1. 【特許請求の範囲】 2つの正数A、Bの乗算値A・Bの他の正数Nを法とす
    る剰余を求めるにあたってA、Nの2進値表現上の有効
    桁数をそれぞれl、n(自然数)とするとき、 (n+1)ビットの数値α_iを累算値として格納する
    累算値レジスタと、 該累算値レジスタの(n+1)ビットの記憶保持出力α
    _i_+_1の2倍値2α_i_+_1の上位mビット
    (mは2以上の自然数)の成分β_iと上記Aの2進値
    表現上の各桁a_i(i=l−1(最上位)〜0(最下
    位))とを入力し、次式 δ_i=〔2^n^+^2^−^m・β_i+a_i・
    B〕modNで与えられるnビットの値δ_iを出力す
    るメモリ前記2α_i_+_1の下位(n+2−m)ビ
    ットの成分γ_iと上記δ_iとを加算しその出力値を
    前記累算値α_iとして前記累算値レジスタへ入力する
    加算器と、 前記累算値レジスタに得られる最終の累算値のNを法と
    する剰余値を求める剰余演算器とを備えて、 前記Aの最上位桁a_l_−_1から順に下位側へ向か
    ってa_iが1ビット毎に前記メモリに供給される度に
    前記加算器から得られる累算値α_iを前記累算値レジ
    スタに格納する演算をl回繰り返すことにより、前記剰
    余演算器上に前記乗算値A・BのNを法とする剰余値が
    得られるように構成した乗算剰余演算器。
JP1159699A 1989-06-23 1989-06-23 乗算剰余演算器 Pending JPH0326114A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1159699A JPH0326114A (ja) 1989-06-23 1989-06-23 乗算剰余演算器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1159699A JPH0326114A (ja) 1989-06-23 1989-06-23 乗算剰余演算器

Publications (1)

Publication Number Publication Date
JPH0326114A true JPH0326114A (ja) 1991-02-04

Family

ID=15699384

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1159699A Pending JPH0326114A (ja) 1989-06-23 1989-06-23 乗算剰余演算器

Country Status (1)

Country Link
JP (1) JPH0326114A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0655146A (ja) * 1992-07-31 1994-03-01 Kitou Kogyo Kk 洗浄装置
JPH0631878U (ja) * 1992-09-30 1994-04-26 鬼頭工業株式会社 洗浄装置
JPH0631875U (ja) * 1992-09-30 1994-04-26 鬼頭工業株式会社 洗浄装置
JPH07275807A (ja) * 1994-04-05 1995-10-24 Ritsukusu Kk 高圧水洗浄装置
JP4785072B2 (ja) * 2005-09-08 2011-10-05 日本たばこ産業株式会社 シガレットボックス及びそのアウタブランク

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0655146A (ja) * 1992-07-31 1994-03-01 Kitou Kogyo Kk 洗浄装置
JPH0631878U (ja) * 1992-09-30 1994-04-26 鬼頭工業株式会社 洗浄装置
JPH0631875U (ja) * 1992-09-30 1994-04-26 鬼頭工業株式会社 洗浄装置
JPH07275807A (ja) * 1994-04-05 1995-10-24 Ritsukusu Kk 高圧水洗浄装置
JP4785072B2 (ja) * 2005-09-08 2011-10-05 日本たばこ産業株式会社 シガレットボックス及びそのアウタブランク

Similar Documents

Publication Publication Date Title
US6049815A (en) Method and apparatus for finite field multiplication
US4891781A (en) Modulo arithmetic processor chip
US7831650B2 (en) Method for modular multiplication
US5261001A (en) Microcircuit for the implementation of RSA algorithm and ordinary and modular arithmetic, in particular exponentiation, with large operands
KR100591761B1 (ko) 몽고메리 모듈러 곱셈기 및 캐리 저장 가산을 이용한몽고메리 모듈러 곱셈 방법
JP2004326112A (ja) マルチプルモジュラス選択器、累算器、モンゴメリー掛け算器、マルチプルモジュラス発生方法、部分掛け発生方法、累算方法、掛け算方法、モジュラス選択器、およびブースレコーダ
KR100459732B1 (ko) 4-2 컴프레서를 이용한 몽고메리 모듈러 승산기 및 그승산 방법
JPS595350A (ja) 組合わせ乗算器
US6366940B1 (en) High-speed modular multiplication apparatus achieved in small circuit
US20010054053A1 (en) Method and apparatus for finite field multiplication
US6769006B2 (en) Method and apparatus for calculating a reciprocal
JP2004258141A (ja) モンゴメリ乗算剰余の多倍長演算のための演算装置
JPH0326114A (ja) 乗算剰余演算器
EP0281303A2 (en) Modulo arithmetic processor chip
Muscedere et al. On efficient techniques for difficult operations in one and two-digit DBNS index calculus
JPH086766A (ja) 正弦余弦演算装置
US7403966B2 (en) Hardware for performing an arithmetic function
JP4293665B2 (ja) 剰余乗算装置
JP2529890B2 (ja) 乗算剰余演算器
JPH0368415B2 (ja)
JPH0371332A (ja) 剰余乗算回路および剰余乗算方法
JP3261600B2 (ja) 剰余乗算器
JP2519288B2 (ja) 乗除算器
JP2568608B2 (ja) 乗算回路
JPH05324274A (ja) 2進10進変換装置