JP5157018B2 - ガロア体上の元の除算演算回路 - Google Patents
ガロア体上の元の除算演算回路 Download PDFInfo
- Publication number
- JP5157018B2 JP5157018B2 JP2010140131A JP2010140131A JP5157018B2 JP 5157018 B2 JP5157018 B2 JP 5157018B2 JP 2010140131 A JP2010140131 A JP 2010140131A JP 2010140131 A JP2010140131 A JP 2010140131A JP 5157018 B2 JP5157018 B2 JP 5157018B2
- Authority
- JP
- Japan
- Prior art keywords
- output
- divisor
- dividend
- digit
- bits
- 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
- 238000004364 calculation method Methods 0.000 claims description 63
- 238000013500 data storage Methods 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 5
- 238000000034 method Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 239000013598 vector Substances 0.000 description 10
- 239000000284 extract Substances 0.000 description 8
- 230000011218 segmentation Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
Images
Description
例えば、インターネットの普及によって、我々はネットワークに接続された世界中のサーバが提供するサービスの恩恵を受けることができる。また、ディジタル携帯電話の普及によって、必要なときにすぐにコミュニケーションをとることが可能となり、通話以外の付加サービスを利用することができる。さらに、クレジットカードやプリペイトカードなどは、現金のやりとりによる煩わしさを解消してくれるという利点がある。
このような情報のディジタル化は、我々に利便性を提供してくれる反面、不正利用による被害を受け易いという問題を有する。例えば、盗聴によるプライバシーの侵害や個人情報の流出、複写・改ざん・なりすましによるシステムの不正利用などがそれである。そこで、これらの問題の解決策として、最近では暗号技術が注目されており、その中でもガロア体上の演算を利用した暗号技術の一つである楕円曲線暗号の研究開発が盛んに行われている。
この楕円曲線暗号は、楕円曲線上の離散対数問題に安全性の根拠を置く公開鍵暗号系であり、IEEE P1363で標準化の検討がなされている。
このように、従来の符号・暗号の分野では、ガロア体上の演算が利用されている。ガロア体GF(2m)は、2m個の元からなる集合であり、その表現方法としてベクトル表現がよく用いられる。上記のベクトル表現においては、ガロア体GF(2m)上の元aはGF(2)の元
を用いて、m次元ベクトル
として表現する。ベクトル表現においては、元の表現はベクトル空間の基底によって決定される。
を基底とする。また、このとき、ガロア体GF(2m)上の元aの多項式表現は、xを変数として、
となる。ガロア体GF(2m)上の元同士の演算は、上記多項式表現を用いると容易に理解することができる。
例えば、GF(26)上の2つの元を
A=(1,0,0,1,1,1)
B=(1,1,0,0,0,1)
とし、それらの加算式C=A+Bは、多項式表現を用いると、
となる。即ち、
C=(1+1,0+1,0+0,1+0,1+0,1+1)
=(0,1,0,1,1,0)
である。ここに、+はGF(2)上の演算であるから、排他的論理和演算となる。
これと同様に、GF(26)上の2つの元
A=(1,0,0,1,1,1)
B=(1,1,0,0,0,1)
の減算式C=A−Bは、
C=(1−1,0−1,0−0,1−0,1−0,1−1)=(0,1,0,1,1,0)
である。ここに、−もGF(2)上の演算であるから、排他的論理和演算となる。
また、GF(26)上の2つの元の乗算式D=A・Bは、多項式表現を用いると、次式(1)のように計算することができる。
…………(1)
F=(1,0,1,0,1,0,1)
とする。すなわち、
である。この既約多項式によって、上記(1)式を5次以下の多項式へと変形する。即ち、F(x)を0とおき、次式(2)のように6次以上の項に繰り返し適用して、5次以下にする。
…………(2)
まず、(1)式の最高次が10次なので、(2)式にx4を乗じると、
となる。この式を(1)式の10次の項に代入すると、
のようになり、この時点での最高次が9次なので、同様の計算を行う。これを繰り返して、5次以下にすると最終的な結果は、
となり、乗算結果のベクトル表現は、
D=(1,0,0,1,1,1)
となる。
このように、乗算演算では、(1)式を(2)式の既約多項式Fで5次以下とする演算処理を行う際に、途中の演算結果の桁数を増やさない(次数を落とす)ための除算を行いその剰余を求めている点に着目し、本発明者らは除算演算を行う際にも同様の演算回路を利用することができないかを検討している。
また、従来の除算演算回路では、乗算と加算とを一定の条件に従って繰り返し演算処理することにより除算演算を行っていた。
さらに、通常のCPU等の演算回路には、一般的に用いられる除算演算回路(以下、標数Pの除算演算回路という)が内蔵されている。一方で、符号・暗号処理等を行う際には、上記したガロア体GF(2m)上のベクトルで表される2つの元の除算演算回路(以下、標数2の除算演算回路という)を必要とする場合があった。そこで、これら両者の除算演算処理を必要とする場合、従来はそれぞれ別個の演算回路を用意していた。
また、従来の除算演算回路における除算演算は、乗算と加算とが一定の条件に従って繰り返し行われるため、計算量が膨大となり、計算時間が長くかかるという問題があった。
さらに、一般的に用いられる標数Pの除算演算回路と、符号・暗号処理等を行うための標数2の除算演算回路の両方が必要な場合は、従来はそれぞれ別個の演算回路を使用していたため、回路規模が増加し、コスト増になるという問題があった。
本発明は、上記課題に鑑みてなされたものであり、除数の制限がなく、演算速度が速い上、標数Pと標数2の両方の除算演算処理を行う場合であっても回路規模を増加させずに、低コストに実現することができるガロア体上の元の除算演算方法および除算演算回路を提供することを目的とする。
(実施の形態1)
この実施の形態1は、本発明のガロア体GF(2m)上の元の除算を実現する除算演算回路を説明するものである。
図1は、本実施の形態1に係るガロア体上の元の除算演算回路10の構成例を示す図である。この構成例では、除数を5ビットとし、最上位桁が常に1である必要がある。つまり、除数が4ビットや3ビットでは計算することのできない構成である。
図1に示す除算演算回路10は、被除数格納出力手段としてのシフトレジスタ12、除数格納出力手段としてのレジスタ14〜22、演算データ格納出力手段としてのレジスタ24〜30、論理積手段としての論理積素子32〜38、排他的論理和手段としての排他的論理和素子40〜46、演算結果格納手段としてのシフトレジスタ48などにより構成されている。
シフトレジスタ12には、被除数Aが格納され、1クロック毎に上位桁から出力するものである。ここでは、一例として被除数A=(1,1,0,1,0,0,1,1,1)とすると、1,1,1,0,0,1,0,1,1の順に出力される。
レジスタ14〜22は、除数Bを格納するもので、レジスタ22に最上位桁(MSB)、そしてレジスタ20、18、16…と順に格納してゆき、レジスタ14に最下位桁(LSB)を格納する。ここでは、一例として除数B=(1,0,0,1,1)とすると、レジスタ14〜22には順に1,0,0,1,1が格納される。
レジスタ24〜30は、演算用のレジスタであって、レジスタ30が最上位桁となる。レジスタ24〜30は、演算前に全て「0」にリセットされる。各レジスタ24〜30には、対応する桁のレジスタ14〜22からの除数Bと、レジスタ30からの出力との論理積(論理積素子32〜38による)出力と、一つ下位の桁の出力(例えば、最下位桁のレジスタ24にはシフトレジスタ12からの出力)との排他的論理和(排他的論理和素子40〜46による)出力がそれぞれ入力される。
排他的論理和素子40〜46は、減算を実行する素子である。
論理積素子32〜38は、論理積を実行する素子であり、ここに入力されるレジスタ30からの出力は、減算するかしないかの選択信号である。通常、この値は「0」(減算をしない)であり、演算用のレジスタ24〜30の値をそのまま次桁へシフトさせる。
以上のように、本実施の形態1の除算演算回路10が構成されており、シフトレジスタ12に格納された被除数Aの上位桁から順にシフトしていって、被除数Aの上位5桁を常に見ている。
また、レジスタ30の出力は、そのままシフトレジスタ48にも格納され、これが商となる。このような処理動作は、被除数Aの全ビットが出力されるまで実行される。例えば、被除数Aがmビットであればmクロックで動作を止めるようにする。そして、この時にレジスタ24〜30に格納されている値が剰余となり、レジスタ30に格納されている値が最上位桁(MSB)となる。
図2は、図1の除算演算回路10による演算処理状態を示す図である。ここでは、被除数A=(1,1,0,1,0,0,1,1,1)、除数B=(1,0,0,1,1)として、実際にA/Bを計算したものである。
ここでは、被除数Aが9ビットであるため、図2に示すように、9クロック目まで演算処理が行われる。その結果、商が10110となり、剰余が1101となる。
図3は、図1の除算演算回路10を用いて除算演算を行う場合の処理動作を説明する図である。
図3に示すように、被除数A=(1,1,0,1,0,0,1,1,1)が格納されたシフトレジスタ12からレジスタ24〜30へ被除数Aの最上位ビットから順にシフトさせて、4クロック目で上位4ビットを格納し、5ビット目がシフトレジスタ12の最上位桁に位置する状態として、除数Bと同じ5ビット(nビット)数分だけ被除数Aから抽出して、これを演算対象A´とする。
ここで、レジスタ30に格納された演算対象A´の最上位ビットの「1」を商c4=1とする。
このように、演算対象A´の最上位ビットが「1」であれば、演算対象A´から除数Bを減算し、それを減算結果A″として抽出する。
その減算結果A″の最上位ビットが「0」ならば、その最上位ビットを除く4ビット(n−1ビット)列を抽出すると共に、その4ビット列に被除数Aのa3の「1」を最下位ビットとして付加し、これを新たな演算対象A´として抽出して、その最上位ビットの「0」を商c3=0とする。
上記と同様の手順に従い、演算対象A´の最上位ビットが「0」であるので、最上位ビットを除く4ビット列を抽出し、その4ビット列に被除数Aのa2の「0」を最下位ビットとして付加し、これを新たな演算対象A´として抽出して、その最上位ビットの「1」を商c2=1とする。
この新たな演算対象A´は、最上位ビットが「1」であるので除数Bを減算し、それを減算結果A″として抽出する。
その減算結果A″の最上位ビットが「0」であるので、最上位ビットを除く4ビット列を抽出し、被除数Aのa1の「1」を最下位ビットとして付加し、これを新たな演算対象A´として抽出し、その最上位ビットの「1」を商c1=1とする。
新たな演算対象A´は、最上位ビットが「1」であるので除数Bを減算し、それを減算結果A″として抽出する。
減算結果A″の最上位ビットが「0」であるので、最上位ビットを除く4ビット列を抽出し、被除数Aのa0の「1」を最下位ビットとして付加し、これを新たな演算対象A´として抽出して、その最上位ビットの「0」を商c0=0とする。
このときの新たな演算対象A´の最上位ビットを除く4ビット列が剰余Dとなる。
その結果、商Cは、「10110」となり、剰余Dが「1101」となる。
以上説明したように、本実施の形態1によれば、除数が既約多項式のみに制限されることなく、迅速にガロア体上の元の除算演算を行うことができる。
本実施の形態2は、ガロア体GF(2m)上の除数のビット数が制限されない除算を実現するものである。
図4は、本実施の形態2に係るガロア体上の元の除算演算回路50の構成例を示す図である。この構成例では、除数の最大ビット数を5ビットとする。つまり、除数としては1〜5ビットまでを使用することができる。
図4に示す除算演算回路50は、被除数格納出力手段としてのシフトレジスタ52、除数格納出力手段としてのレジスタ54〜62、演算データ格納出力手段としてのレジスタ64〜70、論理積手段としての論理積素子72〜78、排他的論理和手段としての排他的論理和素子80〜86、有効桁数検出手段としてのセレクタ88〜96、演算結果格納手段としてのシフトレジスタ98などにより構成されている。
シフトレジスタ52には、被除数Aが格納され、1クロック毎に上位桁から出力するものである。ここでは、一例として被除数A=(1,1,0,1,0,0,1,1,1)とすると、1,1,1,0,0,1,0,1,1の順に出力される。
レジスタ54〜62は、除数Bを格納するもので、レジスタ62に最上位桁(MSB)、そしてレジスタ60、58、56…と順に格納してゆき、レジスタ54に最下位桁(LSB)を格納する。ここでは、一例として5ビットの除数B=(1,0,1,0,0)とすると、レジスタ54〜62には順に1,0,1,0,0が格納される。
レジスタ64〜70は、演算用のレジスタであって、レジスタ70が最上位桁となる。レジスタ64〜70は、演算前に全て「0」にリセットされる。各レジスタ64〜70には、対応する桁のレジスタ54〜62からの除数Bと、セレクタ96からの出力信号100との論理積(論理積素子72〜78による)出力と、一つ下位の桁の出力(例えば、最下位桁のレジスタ64にはシフトレジスタ52からの出力)との排他的論理和(排他的論理和素子80〜86による)出力が入力される。
論理積素子72〜78は、論理積を実行する素子であり、ここに入力されるセレクタ96からの出力信号100は、減算するかしないかの選択信号である。この選択信号は、レジスタ54〜62からの除数Bと、シフトレジスタ52からの出力、およびレジスタ64〜70の各出力と、セレクタ88〜96とによって制御される。
この各セレクタ88〜96を制御する制御信号は、レジスタ54〜62から出力される除数Bのそれぞれの値である。この制御信号の値が「1」の時は、その次数に対応する演算用のレジスタ64〜70の出力がそのままセレクタ出力となり、制御信号の値が「0」の時は、一つ下の次数のセレクタ出力を上位次数のセレクタへ渡すようにする。
最終的な出力信号100は、除数Bの値が「1」である次数の中で最高次のセレクタ96の出力となる。これにより、除数Bの有効ビット数を検出している。本実施の形態2では、除数B=(1,0,1,0,0)であるので、レジスタ58からセレクタ92に除数Bの最高次の「1」が出力されて、レジスタ66の出力が出力信号100となる。また、例えば、除数B=(1,0,0,1,1)の場合は、レジスタ70の出力が出力信号100となる。
通常、出力信号100の値は「0」である(図5の1クロック目参照)。すなわち、減算をせずに演算用のレジスタ64〜70をそのままシフトさせる。このようにして、被除数Aの上位桁から順にシフトしていって、有効ビットの次の値が「1」となった時に減算が実行される。
また、出力信号100の値が「1」になった場合は(図5の2〜3クロック目参照)、論理積素子72〜78がレジスタ54〜60からの除数Bの値を出力し、排他的論理和素子80〜86において減算が実行される。
そして、出力信号100は、そのままシフトレジスタ98にも格納され、これが商Cとなる。このような処理動作は、被除数Aの全ビットが出力されるまで行われる。すなわち、被除数Aがmビットであれば、mクロックで処理動作を止め、この時のレジスタ64〜70に格納されている値が剰余Dとなる。その時のレジスタ70の値が最上位桁(MSB)である。
また、図5は、除数のビット数の制限を受けない図4の除算演算回路50による演算処理状態を示す図である。ここでは、除数B=(1,0,1,0,0)が3ビットであっても、除算演算回路50でA/Bを計算することにより、商が1101000となり、剰余Dが11となる。
図6は、図4の除算演算回路50を用いて除算演算を行う場合の処理動作を説明する図である。
図6に示すように、被除数A=(1,1,0,1,0,0,1,1,1)がシフトレジスタ52に格納され、その上位のレジスタ64〜70に4(n−1)ビット分の「0」を置いて、これを被除数Aとし、その被除数Aの上位5(n)ビット列「10000」を演算対象A´として抽出する。ここで、除数B=(1,0,1,0,0)であるので、0次から「1」の値を持つ次数の中で最高次までの有効ビット数をtとすると、t=3となる。このため、上記した演算対象A´「10000」の3ビット目の「0」が商c8=0となる。
この演算対象A´の3ビット目が「0」であれば、演算対象A´の最上位ビットを除く4ビット(n−1ビット)列を抽出すると共に、その4ビット列に被除数Aのa7の「1」を最下位ビットとして付加し、これを新たな演算対象A´として抽出して、その3ビット目の「0」を商c7=0とする。
同様に演算対象A´の3ビット目が「0」であるので、その演算対象A´の最上位ビットを除く4ビット列を抽出すると共に、その4ビット列に被除数Aのa6の「1」を最下位ビットとして付加し、これを新たな演算対象A´として抽出して、その3ビット目の「1」を商c6=1とする
新たな演算対象A´の3ビット目が「1」ならば、除数Bを減算して、その減算結果A″として抽出し、その減算結果A″の最上位ビットを除く4(n−1)ビット列を抽出し、被除数Aのa5の「0」を最下位ビットとして付加し、これを新たな演算対象A´として抽出する。そして、この新たな演算対象A´の3ビット目の「1」を商c5=1とする。
この新たな演算対象A´の3ビット目は、「1」であるので除数Bを減算し、それを新たな減算結果A″として抽出し、その減算結果A″の最上位ビットを除く4ビット列を抽出して、被除数Aのa4の「0」を最下位ビットとして付加し、これを新たな演算対象A´として抽出する。そして、この新たな演算対象A´の3ビット目の「0」を商c4=0とする。
この新たな演算対象A´の3ビット目が「1」であるので除数Bを減算し、それを新たな減算結果A″として抽出し、減算結果A″の最上位ビットを除く4ビット列を抽出して、被除数Aのa2の「0」を最下位ビットとして付加し、これを新たな演算対象A´として抽出する。そして、この新たな演算対象A´の3ビット目の「0」を商c2=0とする。
新たな演算対象A´の3ビット目は、「0」であるので、その演算対象A´の最上位ビットを除く4ビット列を抽出すると共に、被除数Aのa1の「1」を最下位ビットとして付加し、これを新たな演算対象A´として抽出して、その3ビット目の「0」を商c1=0とする。
同様に、新たな演算対象A´の3ビット目が「0」であるので、その演算対象A´の最上位ビットを除く4ビット列を抽出すると共に、被除数Aのa0の「1」を最下位ビットとして付加し、これを新たな演算対象A´として抽出して、その3ビット目の「0」を商c0=0とする。
この商Cのc0までを求めた時の新たな演算対象A´の最上位ビットを除いた4(n−1)ビット列が剰余Dとなる。
このように、本実施の形態2では、被除数A=(1,1,0,1,0,0,1,1,1)とし、除数B=(1,0,1,0,0)として、図4の除算演算回路50により実際にA/Bを計算すると、その時の商Cが「0001011」となり、その剰余Dを「11」と求めることができる。
以上説明したように、本実施の形態2によれば、ガロア体上の元の除算および剰余算を除数Bのビット制限なく実現することができる。
本実施の形態3は、ガロア体GF(2m)上ベクトルで表わされる2つの元の除算演算(標数2の除算)と、一般的に用いられる除算演算(標数Pの演算)のどちらの除算演算をも可能とする除算演算回路を実現するものである。
図7は、本実施の形態3に係る除算演算回路110の構成例を示す図である。この構成例では、除数の最大ビット数を4ビットとする。つまり、除数としては1〜4ビットまでを使用することができる。
図7に示す除算演算回路110は、シフトレジスタ112、レジスタ114〜120、除算演算用モジュール122〜130、レジスタ132〜138、インバータ140、セレクタ142、シフトレジスタ144などにより構成されている。
シフトレジスタ112には、被除数Aが格納され、1クロック毎に上位桁から出力するものである。
レジスタ114〜120は、除数Bを格納するもので、レジスタ120に最上位桁(MSB)、そしてレジスタ118、116…と順に格納してゆき、レジスタ114に最下位桁(LSB)を格納する。
今、ここでは一例として標数Pにおいて75÷12を計算しようとすると、被除数75の2進表現1001011がシフトレジスタ112に格納され、1,1,0,1,0,0,1の順に出力されて、除数12の2進表現1100がレジスタ114〜120に順番に0,0,1,1と格納される。
同様に標数2においても、ベクトルで表現されるガロア体上の2つの元、被除数A=(1,1,0,1,0,1,0,0,1)、除数B=(1,0,1,1)の除算演算時には、シフトレジスタ112に被除数Aが格納され、1,0,0,1,0,1,0,1,1の順に出力されて、レジスタ114〜120に除数Bが順番に1,0,1,1と格納される。
レジスタ132〜138は、演算用のレジスタであり、レジスタ138が最上位桁となり、演算前に全て「0」にリセットされる。
図8(a)に示した除算演算用モジュール122(124〜130も同様)の左側のA〜Fは、入力信号であり、右側のL〜Nは出力信号である。その除算演算用モジュール122の内部は、図8(b)〜(d)に示すように、3つのブロックにそれぞれ分かれている。
図8(b)は、除算演算の為の演算(減算)を行う演算部である。入力信号Fは、減算処理を実行するか否かの実行/非実行の選択信号であり、「1」で実行、「0」で非実行となる。この減算非実行時は、前段のレジスタからの入力信号Aがそのままセレクタ154を通って出力される(出力信号L)。また、減算実行時には、入力信号A、除数Bの対応桁の値、前段からのボロー信号の3つの値がエクスクル−シブオアゲート152により排他的論理和演算がなされ、セレクタ154を通って出力される。但し、標数2の演算時には、ボロー信号は不要となるので、標数P/標数2の選択信号E(「1」で標数Pを選択、「0」で標数2を選択)によって、アンドゲート150の出力がエクスクル−シブオアゲート152に入力され、マスクされる。そして、レジスタ132〜138の入力には、この演算部の出力信号Lが入力される。
図8(c)は、標数P用の演算制御部であるボロー計算部であり、前段の除算演算用モジュールの標数P用のボロー計算部の出力信号Mがボロー信号Cとして入力される。このボロー信号Cと除数Bの対応桁の値がオアゲート158に入力され、その出力信号と前段からのレジスタからの入力信号Aの反転信号がアンドゲート160に入力される。また、ボロー信号Cと除数Bの対応桁の値をアンドゲート156に入力し、その出力信号と前記アンドゲート160の出力信号とをオアゲート162に入力し、その出力信号Mが次段の除算演算用モジュール等に出力される。この図8(c)のボロー計算部へのA、B、Cの入力信号の組み合わせと、出力信号Mとの関係を一覧に示したのが図9である。
図8(d)は、標数2用の演算制御部であり、セレクタ164を備えている。このセレクタ164に入力される入力信号Bは、除数Bに対応する桁の値であり、これが「1」の時は前段レジスタの出力Aを出力し、「0」の時は標数2の制御信号Dを出力する。前段の標数2用の演算制御部の出力信号Nは、次段の標数2の制御信号Dとして入力される。
通常、信号148の値は「0」、すなわち、減算処理をせずに演算用のレジスタ132〜138をそのままシフトさせる。このようにして、シフトレジスタ112に格納されている被除数Aの上位桁から順にシフトしていき、信号148の減算実行/非実行選択信号が「1」となった時に減算処理が実行される。信号148の出力は、そのままシフトレジスタ144に格納され、これが商となる。
上記の動作をシフトレジスタ112の被除数Aの全ビットが出力されるまで、すなわち、被除数Aがmビットであればmクロックで動作を止めるようにする。また、この時のレジスタ132〜138の値が剰余となり、そのうちのレジスタ138の値が最高位桁(MSB)となる。
図10は、図7の除算演算回路110による標数Pの演算処理過程を説明する図である。図10に示されるように、標数Pにおける75÷+9を実際に計算すると、商が8(2進数表現で1000)、剰余が3(2進表現で11)と求めることができる。
また、図11は、図7の除算演算回路110による標数2の演算処理過程を説明する図であり、被除数A=(1,1,0,1,0,1,0,0,1)、除数B=(1,0,1,1)の場合であって、A/Bを実際に計算すると、商が101010、剰余が101というように求めることができる。
以上説明したように、本実施の形態3によれば、標数Pと標数2のどちらの場合の除算演算であっても、それぞれ別に回路を設けることなく、低コストの除算演算回路を実現することができる。
Claims (1)
- ガロア体上のmビットとnビット(m、nは共に自然数で、m>n)のベクトルで表現される2つの元である被除数A=(a0,…,am−1)と除数B=(b0,…,bn−1)に対してA/Bを演算し、最大でmビットで表現される商C=(c0,…,cm−1)と、最大でn−1ビットで表現される剰余D=(d0,…,dn−2)とを求めるためのガロア体上の元の除算演算回路であって、
mビットから成る前記被除数Aを格納し、上位ビットから順次出力する被除数格納出力手段と、
nビットから成る前記除数Bを各桁毎に格納し、それぞれ個別に出力する除数格納出力手段と、
各桁毎の演算データをそれぞれ格納し、その演算データを次桁へ出力する演算データ格納出力手段と、
前記被除数格納出力手段から出力される被除数あるいは前記演算データ格納出力手段から出力される各桁の演算データを前記除数格納出力手段から出力される除数の値に基づいて、そのまま出力するか、一つ下の桁の出力を上位桁へ渡すかを選択して前記除数の有効桁数を検出する有効桁数検出手段と、
前記有効桁数検出手段からの出力と、前記除数格納出力手段から出力される各桁の除数Bとの論理積をとって減算処理するか否かを選択する論理積手段と、
前記論理積手段からの論理積出力と、前記被除数格納出力手段から出力される被除数あるいは前記演算データ格納出力手段から出力される演算データとの排他的論理和をとって減算処理を実行する排他的論理和手段と、
前記有効桁数検出手段からの出力を順次入力して格納する演算結果格納手段と、
を備え、前記被除数Aの全ビットが出力されるまで演算処理を実行することにより、前記演算結果格納手段に前記商Cが格納され、前記演算データ格納出力手段に剰余Dが格納されることを特徴とするガロア体上の元の除算演算回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010140131A JP5157018B2 (ja) | 2010-06-21 | 2010-06-21 | ガロア体上の元の除算演算回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010140131A JP5157018B2 (ja) | 2010-06-21 | 2010-06-21 | ガロア体上の元の除算演算回路 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP37196599A Division JP2001188468A (ja) | 1999-12-27 | 1999-12-27 | ガロア体上の元の除算演算方法および除算演算回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010217921A JP2010217921A (ja) | 2010-09-30 |
JP5157018B2 true JP5157018B2 (ja) | 2013-03-06 |
Family
ID=42976763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010140131A Expired - Fee Related JP5157018B2 (ja) | 2010-06-21 | 2010-06-21 | ガロア体上の元の除算演算回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5157018B2 (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63167527A (ja) * | 1986-12-27 | 1988-07-11 | Ricoh Co Ltd | 拡張ガロア体上の最大公約多項式算出回路および多項式互除演算回路 |
JP3614978B2 (ja) * | 1996-05-13 | 2005-01-26 | 株式会社東芝 | ガロア体の除算方法および除算装置 |
JPH10154068A (ja) * | 1996-11-22 | 1998-06-09 | Toshiba Corp | M系列符号発生器 |
JP3238128B2 (ja) * | 1998-06-02 | 2001-12-10 | 松下電器産業株式会社 | リードソロモン符号化装置および方法 |
-
2010
- 2010-06-21 JP JP2010140131A patent/JP5157018B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010217921A (ja) | 2010-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW550498B (en) | Method and apparatus for modular multiplying and calculating unit for modular multiplying | |
CN111444518B (zh) | 安全处理器及其操作方法、加密或解密数据的方法 | |
Ferozpuri et al. | High-speed FPGA implementation of the NIST round 1 rainbow signature scheme | |
JP2024525122A (ja) | 完全準同型評価のための計算ネットワーク変換 | |
CN113467752B (zh) | 用于隐私计算的除法运算装置、数据处理系统及方法 | |
KR20240004830A (ko) | 완전 동형 암호화에서 사용하기 위한 블라인드 회전 | |
CN106716345A (zh) | 用于执行混淆算术的电子计算设备 | |
Greconici | Kyber on risc-v | |
Parihar et al. | Fast Montgomery modular multiplier for rivest–shamir–adleman cryptosystem | |
JP2004227344A (ja) | 乗算器及び暗号回路 | |
CN108809323B (zh) | 循环冗余校验码的生成方法和装置 | |
JP5157018B2 (ja) | ガロア体上の元の除算演算回路 | |
JP5211398B2 (ja) | ガロア体上の元の除算演算回路 | |
KR102491902B1 (ko) | 완전동형암호 기법으로 암호화된 데이터의 연산을 위한 장치 및 방법 | |
KR102491894B1 (ko) | 완전동형암호 기법으로 암호화된 데이터의 로지스틱 회귀 분석 연산 장치 및 방법 | |
WO2005013243A1 (ja) | モンゴメリ乗算剰余における変換パラメータの計算装置、方法およびそのプログラム | |
CN116483313A (zh) | 信息处理方法、装置、电子设备及计算机可读存储介质 | |
JP2001188468A (ja) | ガロア体上の元の除算演算方法および除算演算回路 | |
JP5840086B2 (ja) | 縮約装置、縮約方法、およびプログラム | |
CN209560522U (zh) | 获取加解密运算中的中间结果组的硬件装置 | |
KR100974624B1 (ko) | 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법, 그장치 및 이를 기록한 기록매체 | |
Devika et al. | Efficient hardware prototype of ECDSA modules for blockchain applications | |
JP4472808B2 (ja) | 積和演算装置及びこれを用いた暗号・復号装置 | |
US8447796B2 (en) | Apparatus with a vector generation unit and encoder for receiving first and second inputs to generate at least significant zero (LSZ) | |
Monfared et al. | Secure and efficient exponentiation architectures using Gaussian normal basis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100714 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100715 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110118 |
|
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: 20121106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121122 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151221 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |