(57)【特許請求の範囲】
【請求項１】
命令を記憶するための命令記憶部と、上記命令記憶部に記憶された命令をフェッチする命令フェッチ部と、上記命令フェッチ部でフェッチされた命令をデコードするデコード部と、データを記憶するためのデータ記憶部と、上記データ記憶部に記憶されたデータを演算するための演算部と、前記デコード部でデコードされた情報に基づいて上記演算部および前記データ記憶部を制御する制御部とを有し、前記演算部には、ワード長もしくはその倍数長の排他的論理和演算を含む論理演算用回路および整数演算用回路を内蔵し、さらに、該演算部の一部がガロア体ＧＦ（２ｍ）用拡張演算部となっていて、該ＧＦ（２ｍ）用拡張演算部では、ワード長もしくはその倍数長のＧＦ（２ｍ）用拡張演算用回路が内蔵されており、前記演算部では、前記制御部から伝送される制御情報に基づいて、前記データ記憶部からデータを読み込み、それらを演算し、その演算結果を該データ記憶部へ書き込む演算プロセッサであって、
前記ＧＦ（２ｍ）用拡張演算部として、
ｎを自然数としたとき、ｎビットで表される２つのベクトル
Ａ＝（ａｎ−１，・・・，ａ０）
Ｂ＝（ｂｎ−１，・・・，ｂ０）
及び、２ｎビットで表されるベクトル
Ｃ＝（ｃ２ｎ−１，・・・，ｃ０）
を、条件式
0004484002.tif 000097
に従って、互いに演算し、２ｎビットのベクトル
Ｄ＝（ｄ２ｎ−１，・・・，ｄ０）
を得る積和演算装置であって、前記条件を満たすａｉ、ｂｊの各組み合せについて、論理積演算を実行する論理積手段と、前記条件を満たす前記論理積手段の演算結果の各組み合わせについて、排他的論理和演算を実行し、又は前記条件を満たす該排他的論理和演算の結果と前記論理積手段の演算結果の各組み合わせについて、排他的論理和演算を実行する第１の排他的論理和手段と、前記条件を満たす前記論理積手段又は前記第１の排他的論理和手段の演算結果と前記ベクトルＣの各ビットについて、排他的論理和演算を実行し、前記ベクトルＤの各ビットを得る第２の排他的論理和手段と、を備えた演算回路を含んでいることを特徴とする演算プロセッサ。
【請求項２】
前記命令記憶部と前記データ記憶部の一方、あるいはその両方がプロセッサの外部記憶であることを特徴とする請求項１に記載の演算プロセッサ。
【請求項３】
前記ＧＦ（２ｍ）用拡張演算部に装備されたＧＦ（２ｍ）用拡張演算用回路を例外処理することなく動作させることが可能な命令セットを有することを特徴とする請求項１又は２に記載の演算プロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、演算回路および演算プロセッサに係り、特に、符号・暗号装置等に用いられるガロア体上の演算を行うための演算回路および演算プロセッサに関する。
【０００２】
【従来の技術】
近年、情報のディジタル化によって様々なサービスが提供され、快適な生活環境が整備されつつある。
例えば、インターネットの普及によって、我々はネットワークに接続された世界中のサーバが提供するサービスの恩恵を受けることができる。また、ディジタル携帯電話の普及によって、必要なときにすぐにコミュニケーションをとることが可能となり、通話以外の付加サービスを利用することができる。さらに、クレジットカードやプリペイトカードなどは、現金のやりとりによる煩わしさを解消してくれるという利点がある。
このような情報のディジタル化は、我々に利便性を提供してくれる反面、不正利用による被害を受け易いという問題を有する。例えば、盗聴によるプライバシーの侵害や個人情報の流出、複写・改ざん・なりすましによるシステムの不正利用などがそれである。そこで、これらの問題の解決策として、最近では暗号技術が注目されており、その中でもガロア体上の演算を利用した暗号技術の一つである楕円曲線暗号の研究開発が盛んに行われている。
この楕円曲線暗号は、楕円曲線上の離散対数問題に安全性の根拠を置く公開鍵暗号系であり、IEEE P1363で標準化の検討がなされているものである。IEEE P1363において標準化が検討されている楕円曲線暗号は、定義体としてガロア体ＧＦ（ｐ）を用いる場合と、ＧＦ（２m）を用いる場合の２種類が選択可能である。従って、１つの暗号装置で、ＧＦ（ｐ）上およびＧＦ（２m）上で定義された２種類の楕円曲線暗号を処理しなければならない場合も考えられ、ＧＦ（ｐ）と、ＧＦ（２m）両方の演算を高速に実行可能なプロセッサが要求されている。
これらのガロア体ＧＦ（ｐ）とＧＦ（２m）の詳細については、一般の代数書に記載されているため、ここでは以下に簡単に説明することにする。
ガロア体ＧＦ（ｐ）は、ｐを素数とするｐ個の元からなる集合であり、通常０以上ｐ未満の整数を元として用いる。
【０００３】
ＧＦ（ｐ）上の２つの元ａ、ｂのＧＦ（ｐ）上の加算は、
0004484002.tif 000002
となる。ここで、
0004484002.tif 000003
とは、ａ＋ｂをｐで割った剰余を算出することを示している。これは、ａ＋ｂがｐ以上になった場合に、ｐを減ずることでも実現できる。
また、ＧＦ（ｐ）上の２つの元ａ、ｂのＧＦ（ｐ）上の乗算は、
0004484002.tif 000004
となる。ここで、
0004484002.tif 000005
とは、ａｂをｐで割った剰余を算出することを示している。
楕円曲線暗号が計算量的に安全となるためには、上記ｐの大きさは、160ビット程度は必要となる。最近のプロセッサにおいては、プロセッサのワード長、もしくはその倍数長の整数の乗算および除算は、ハードウェアにより高速に演算できるようになってきた。従って、任意のｐに対して、ＧＦ（ｐ）上の加算および乗算は、演算プロセッサを用いる場合、プロセッサのワード長またはその倍数長の整数加算、整数減算に加えて、整数乗算、整数除算を組み合わせて使用することができ、高速に演算することが可能である。
また、ガロア体ＧＦ（２m）は、２m個の元からなる集合であり、各々の元の表現方法には一般的にベクトル表現が用いられている。このベクトル表現とは、ＧＦ（２m）をＧＦ（２）のｍ次元ベクトル空間とみなし、任意の元ａをｍ次元ベクトル
0004484002.tif 000006
と表現するものである。ここで、ベクトルの各要素ａiは、ＧＦ（２）の元、即ち、０または１である。また、上記したｍを拡大次数と呼ぶ。
【０００４】
上記したベクトル表現においては、ベクトル空間の基底の一つに多項式基底がある。この多項式基底は、ＧＦ（２）上のｍ次モニック既約多項式ｆ（ｘ）を生成多項式とし、ｆ（ｘ）の根である元ｚを用いて、
0004484002.tif 000007
を基底とする。また、このときのＧＦ（２m）上の任意の元
0004484002.tif 000008
をｘに関するＧＦ（２）上の多項式
0004484002.tif 000009
即ち、ＧＦ（２）［ｘ］の元として表現することができる。この表現を多項式表現と呼ぶ。
さらに、ＧＦ（２m）上の２つの元ａ、ｂのＧＦ（２m）上の加算について説明すると、元がベクトル表現されていれば、
0004484002.tif 000010
となり、各々を多項式表現すれば、
0004484002.tif 000011
であるから、その加算結果は、
0004484002.tif 000012
となり、各項の係数がＧＦ（２）上の元であることを考慮してベクトル表現すれば、
0004484002.tif 000013
となる。
【０００５】
このように、ＧＦ（２m）上の加算は、２つの元ａ、ｂを要素毎にＧＦ（２）上で加算することになる。ＧＦ（２）上の加算は排他的論理和によって実現できるので、ＧＦ（２m）上の加算は、２つの元ａ、ｂを要素毎に排他的論理和演算すればよい。
任意のｍに対して、ＧＦ（２m）上の加算は、演算プロセッサを用いる場合、プロセッサのワード長またはその倍数長の排他的論理和演算を繰り返し用いることにより、実現することができる。
また、ＧＦ（２m）上の２つの元ａ、ｂのＧＦ（２m）上の乗算について説明すると、元がベクトル表現されていれば、乗数および被乗数は、
0004484002.tif 000014
となり、これらを多項式表現すれば、
0004484002.tif 000015
となるから、上記ａ、ｂを多項式表現して乗算した結果である
0004484002.tif 000016
を、上記生成多項式
0004484002.tif 000017
で除算して、その剰余
0004484002.tif 000018
を算出する。この剰余がＧＦ（２m）上の乗算結果となり、ベクトル表現すれば、
0004484002.tif 000019
となる。
ＧＦ（２m）上の乗算は、上述したように、ＧＦ（２）上のｍ−１次以下の多項式同士の乗算、および、ＧＦ（２）上の２ｍ−２次以下の多項式と、ＧＦ（２）上のｍ次多項式との除算により実現することができる。
しかし、ＧＦ（２m）上の乗算は、従来よりシフトレジスタを用いて構成されるのが通例であった。
【０００６】
図６は、従来のＧＦ（２m）乗算回路の一構成例を示した図である。図６における乗算回路600は、従来より用いらているＧＦ（２m）乗算回路の一例であり、以下にその動作を説明する。
上述したように、ＧＦ（２m）の生成多項式を、
0004484002.tif 000020
とし、
0004484002.tif 000021
を満たす任意のｍに対して、ＧＦ（２m）上の元
0004484002.tif 000022
における乗算を計算するには、まず、
0004484002.tif 000023
を設定しておく。図６の端子６０７は、計算を開始するまでは、０を入力しておく。この状態では、Dフリップフロップ６０１〜６０３にはｘ0〜ｘn-1に入力される値が設定されている。
そこで、端子６０７に１を入力すると、計算が開始され、ｍクロック後のDフリップフロップ６０４〜６０６に結果が格納される。即ち、乗算結果を
0004484002.tif 000024
とすると、
0004484002.tif 000025
として取り出せる。
従って、ＧＦ（２m）上の乗算は、シフトレジスタを用いた専用回路で実現するのが通例であるため、ＧＦ（２m）の演算は、通常のプロセッサに、上記専用回路をコプロセッサとして付加することにより実現していた。
【０００７】
【発明が解決しようとする課題】
しかしながら、このような従来の演算プロセッサにあっては、乗算回路６００は、拡大次数ｍが大きくなると、ｍに比例して回路規模を大きくしなければならないという問題があった。
また、この乗算回路６００は、一度回路を設計してしまうと、ｎ＜ｍとなる拡大次数の乗算が計算不可能となるため、汎用性に乏しいという問題があった。
さらに、乗算回路６００は、通常のプロセッサの演算回路に対して、回路規模が大きくなるという問題があった。
そこで、ＧＦ（２m）上の乗算を、前述したように、ＧＦ（２）上のｍ−１次以下の多項式同士の乗算、および、ＧＦ（２）上の２ｍ−２次以下の多項式と、ＧＦ（２）上のｍ次多項式との除算により実現することも考えられる。これによれば、ＧＦ（２）上の多項式の乗算および除算は、通常、プロセッサのワード長もしくはその倍数長の排他的論理和演算およびシフト演算を繰り返し適用することにより実現可能である。しかしながら、プロセッサのワード長もしくはその倍数長の排他的論理和演算およびシフト演算を繰り返し適用するだけでは、そのステップ数が多くなってしまい、高速に演算することができないという問題を生じる。
本発明は、上記課題に鑑みてなされたものであり、任意のｐおよび任意のｍに対して、ガロア体ＧＦ（ｐ）とガロア体ＧＦ（２m）の両方の演算を高速に実現することが可能な演算回路および演算プロセッサを提供することを目的としている。
【０００８】
【課題を解決するための手段】
上記の目的を達成するため、請求項１記載の発明は、命令を記憶するための命令記憶部と、上記命令記憶部に記憶された命令をフェッチする命令フェッチ部と、上記命令フェッチ部でフェッチされた命令をデコードするデコード部と、データを記憶するためのデータ記憶部と、上記データ記憶部に記憶されたデータを演算するための演算部と、前記デコード部でデコードされた情報に基づいて上記演算部および前記データ記憶部を制御する制御部とを有し、前記演算部には、ワード長もしくはその倍数長の排他的論理和演算を含む論理演算用回路および整数演算用回路を内蔵し、さらに、該演算部の一部がガロア体ＧＦ（２ｍ）用拡張演算部となっていて、該ＧＦ（２ｍ）用拡張演算部では、ワード長もしくはその倍数長のＧＦ（２ｍ）用拡張演算用回路が内蔵されており、前記演算部では、前記制御部から伝送される制御情報に基づいて、前記データ記憶部からデータを読み込み、それらを演算し、その演算結果を該データ記憶部へ書き込む演算プロセッサであって、
前記ＧＦ（２ｍ）用拡張演算部として、
ｎを自然数としたとき、ｎビットで表される２つのベクトル
Ａ＝（ａｎ−１，・・・，ａ０）
Ｂ＝（ｂｎ−１，・・・，ｂ０）
及び、２ｎビットで表されるベクトル
Ｃ＝（ｃ２ｎ−１，・・・，ｃ０）
を、条件式
0004484002.tif 000026
に従って、互いに演算し、２ｎビットのベクトル
Ｄ＝（ｄ２ｎ−１，・・・，ｄ０）
を得る積和演算装置であって、前記条件を満たすａｉ、ｂｊの各組み合せについて、論理積演算を実行する論理積手段と、前記条件を満たす前記論理積手段の演算結果の各組み合わせについて、排他的論理和演算を実行し、又は前記条件を満たす該排他的論理和演算の結果と前記論理積手段の演算結果の各組み合わせについて、排他的論理和演算を実行する第１の排他的論理和手段と、前記条件を満たす前記論理積手段又は前記第１の排他的論理和手段の演算結果と前記ベクトルＣの各ビットについて、排他的論理和演算を実行し、前記ベクトルＤの各ビットを得る第２の排他的論理和手段と、を備えた演算回路を含むものである。
【０００９】
請求項２記載の発明は、請求項１に記載の演算プロセッサにおいて、前記命令記憶部と前記データ記憶部の一方、あるいはその両方をプロセッサの外部記憶としたものである。
【００１０】
請求項３記載の発明は、請求項１又は２に記載の演算プロセッサにおいて、前記ＧＦ（２ｍ）用拡張演算部に装備されたＧＦ（２ｍ）用拡張演算用回路を例外処理することなく動作させることが可能な命令セットを有するものである。
【００１１】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
（実施の形態１）
この実施の形態１では、本発明における演算プロセッサについて説明するものである。
図１は、本実施の形態１に係る演算プロセッサ１００の構成例を示したブロック図である。
図１において、演算プロセッサ１００は、命令を記憶するための命令記憶部１０１と、その命令記憶部１０１に記憶された命令をフェッチ（fetch）する命令フェッチ部１０３と、その命令フェッチ部１０３でフェッチされた命令をデコードするデコード部１０４と、データを記憶するためのデータ記憶部１０２と、そのデータ記憶部１０２に記憶されたデータを演算するための演算部１０６と、デコード部１０４でデコードされた情報に基づいて演算部１０６およびデータ記憶部１０２を制御する制御部１０５とを備えている。
そして、演算部106では、ワード長もしくはその倍数長の排他的論理和演算を含む論理演算および整数演算がサポートされている。さらに、その演算部１０６の一部は、ガロア体ＧＦ（２m）用拡張演算部１０６ａとなっていて、そのＧＦ（２m）用拡張演算部１０６ａでは、ワード長もしくはその倍数長のＧＦ（２m）用拡張演算がサポートされている。また、演算部１０６は、制御部１０５から伝送される制御情報に基づいて、データ記憶部１０２からデータを読み込んで、それらの演算を行い、その演算結果をデータ記憶部１０２に書き込むようにする。
【００１２】
また、図２は、図１の演算部１０６の一部であるガロア体ＧＦ（２m）用拡張演算部１０６ａに搭載される乗算回路２００を示した図であり、ここでは特に、請求項１の演算回路（乗算回路）においてｎ＝４とした場合の回路構成例である。
図２に示す乗算回路２００は、４ビットで表される２つのベクトル
0004484002.tif 000027
を入力するための入力端子ａ０〜ａ３、ｂ０〜ｂ３と、８ビットで表されるベクトル
0004484002.tif 000028
を出力するための出力端子ｄ０〜ｄ７とを備えており、１６個の論理積素子と、９個の排他的論理和素子などにより構成されている。
次に、その動作について説明する。
まず、上記した入力端子ａ０〜ａ３に上記ベクトルの各要素ａ0〜ａ3を各々入力し、上記した入力端子ｂ０〜ｂ３に上記ベクトルの各要素ｂ0〜ｂ3を各々入力すれば、上記した出力端子ｄ０〜ｄ７には、
0004484002.tif 000029
によって計算されるｄ0〜ｄ7が各々出力される。
【００１３】
また、図３は、図１の演算部１０６の一部であるガロア体ＧＦ（２m）用拡張演算部１０６ａに搭載される積和演算回路３００を示した図であり、ここでは特に、請求項２の演算回路（積和演算回路）においてｎ＝４とした場合の回路構成例である。
図３に示す積和演算回路３００は、４ビットで表される２つのベクトル
0004484002.tif 000030
を入力するための入力端子ａ０〜ａ３、ｂ０〜ｂ３と、８ビットで表されるベクトル
0004484002.tif 000031
を入力するための入力端子ｃ０〜ｃ７と、８ビットで表されるベクトル
0004484002.tif 000032
を出力するための出力端子ｄ０〜ｄ７とを備えており、16個の論理積素子と、16個の排他的論理和素子などにより構成されている。
次に、その動作について説明する。
まず、上記した入力端子ａ０〜ａ３に上記ベクトルの各要素ａ0〜ａ3を各々入力し、上記した入力端子ｂ０〜ｂ３に上記ベクトルの各要素ｂ0〜ｂ3を各々入力し、上記した入力端子ｃ０〜ｃ７に上記ベクトルの各要素ｃ0〜ｃ7を各々入力すると、出力端子ｄ０〜ｄ７には、
0004484002.tif 000033
によって計算されるｄ0〜ｄ7を各々出力することができる。
また、図４は、図１の演算部１０６の一部であるガロア体ＧＦ（２m）用拡張演算部１０６ａに搭載される２乗演算回路４００を示した図であり、ここでは特に、請求項３の演算回路（２乗演算回路）においてｎ＝４とした場合の回路構成例である。
図４に示す２乗演算回路４００は、４ビットで表されるベクトル
0004484002.tif 000034
を入力するための入力端子ａ０〜ａ３と、８ビットで表されるベクトル
0004484002.tif 000035
を出力するための出力端子ｄ０〜ｄ７などにより構成されている。
次に、その動作について説明する。
まず、上記した入力端子ａ０〜ａ３に上記ベクトルの各要素ａ0〜ａ3を各々入力すれば、出力端子ｄ０〜ｄ７には、
0004484002.tif 000036
によって計算されるｄ0〜ｄ7が各々出力される。
【００１４】
また、図５は、図１の演算部１０６の一部であるガロア体ＧＦ（２m）用拡張演算部１０６ａに搭載される除算回路５００を示した図であり、ここでは特に、請求項４の演算回路（除算回路）においてｎ＝４とした場合の回路構成例である。
図５に示す除算回路５００は、８ビットで表されるベクトル
0004484002.tif 000037
を入力するための入力端子ｄ０〜ｄ７と、４ビットで表されるベクトル
0004484002.tif 000038
を入力するための入力端子ａ０〜ａ３と、８ビットで表されるベクトル
0004484002.tif 000039
を出力するための出力端子ｑ０〜ｑ７と、４ビットで表されるベクトル
0004484002.tif 000040
を出力するための出力端子ｒ０〜ｒ３と、制御信号入力端子５０１とを備え、Dフリップフロップ５１１〜５１８、５２１〜５２３、５３１〜５３８、セレクタ、排他的論理和素子および論理積素子などにより構成されている。
【００１５】
次に、この除算回路５００の動作について説明する。
まず、前記した入力端子ｄ０〜ｄ８に前記したベクトルの各要素ｄ0〜ｄ7を各々入力して、前記した入力端子ａ０〜ａ３に前記したベクトルの各要素ａ0〜ａ3を各々入力しておく。
また、制御信号入力端子５０１には、計算を開始するまでは０を入力しておく。この状態では、Dフリップフロップ５１１〜５１８には入力端子ｄ０〜ｄ７に入力される値が設定されており、 Dフリップフロップ５２１〜５２３の値は０に設定されている。
【００１６】
そこで、制御信号入力端子５０１に１を入力すると、計算が開始されて、８クロック後のDフリップフロップ５２１〜５２３、およびDフリップフロップ５３１〜５３８に結果が格納される。即ち、前記８ビットで表されるベクトル
0004484002.tif 000041
の各要素を係数とするＧＦ（２）上の多項式を、
0004484002.tif 000042
として、前記４ビットで表されるベクトル
0004484002.tif 000043
の各要素を係数とするＧＦ（２）上の多項式を、
0004484002.tif 000044
としたとき、前記Ｄ（ｘ）を上記Ａ（ｘ）で割った商は、前記８ビットで表されるベクトル
0004484002.tif 000045
の各要素を用いて、
0004484002.tif 000046
となり、前記Ａ（ｘ）を前記Ｂ（ｘ）で割った剰余は、前記４ビットで表されるベクトル
0004484002.tif 000047
の各要素を用いて、
0004484002.tif 000048
となるものとすると、８クロック後、出力端子ｑ０〜ｑ７には、前記ベクトル
0004484002.tif 000049
の各要素ｑ0〜ｑ7が各々出力され、出力端子ｒ０〜ｒ３には、各々前記ベクトル
0004484002.tif 000050
の各要素ｒ0〜ｒ3が出力される。
以上説明したように、本実施の形態１によれば、演算プロセッサ１００を用いて任意のｍに対するガロア体ＧＦ（２m）上の演算を、図２〜図５に示した乗算回路、積和演算回路、２乗演算回路、除算回路、および、演算プロセッサに内蔵されたプロセッサのワード長、またはその倍数長の排他的論理和演算回路などによって高速に実現することができる。
【００１７】
（実施の形態２）
この実施の形態２では、本発明の演算プロセッサを用いてガロア体ＧＦ（２m）上の２乗算および乗算を実現する場合について説明する。
まず、ｎを自然数としたとき、ｎビットで表される２つのベクトル
0004484002.tif 000051
および、２ｎビットで表されるベクトル
0004484002.tif 000052
を互いに演算して、２ｎビットのベクトル
0004484002.tif 000053
とする積和演算回路であって、上記した２ｎビットのベクトルの各要素が、
0004484002.tif 000054
である積和演算回路の動作を、
0004484002.tif 000055
と表すものとする。また、ｎを自然数としたとき、２ｎビットで表されるベクトル
0004484002.tif 000056
と、０ベクトルを除くｎビットで表されるベクトル
0004484002.tif 000057
を演算して、２ｎビットで表されるベクトル
0004484002.tif 000058
および
0004484002.tif 000059
を算出する除算回路であって、上記した２ｎビットで表されるベクトル
0004484002.tif 000060
の各要素を係数とするＧＦ（２）上の多項式を、
0004484002.tif 000061
とし、前記ｎビットで表されるベクトル
0004484002.tif 000062
の各要素を係数とするＧＦ（２）上の多項式を、
0004484002.tif 000063
としたとき、前記ＧＦ（２）上の多項式Ｄ（ｘ）を上記ＧＦ（２）上の多項式Ａ（ｘ）で割った商は、前記２ｎビットで表されるベクトル
0004484002.tif 000064
の各要素を用いて、
0004484002.tif 000065
となり、前記Ｄ（ｘ）を前記Ａ（ｘ）で割った剰余は、前記ｎビットで表されるベクトル
0004484002.tif 000066
の各要素を用いることにより、
0004484002.tif 000067
となる除算回路の動作を、
0004484002.tif 000068
と表すものとする。
【００１８】
更に、Ｃ＝（ＣL，ＣR）即ち、
0004484002.tif 000069
と定義し、Ｄ＝（ＤL，ＤR）即ち、
0004484002.tif 000070
と定義し、Ｑ＝（ＱL，ＱR）即ち、
0004484002.tif 000071
と定義する。
また、ガロア体ＧＦ（２m）の生成多項式を、
0004484002.tif 000072
とし、上記生成多項式の係数を要素としたベクトルを、
0004484002.tif 000073
とし、ガロア体ＧＦ（２m）上の２元を、
0004484002.tif 000074
とし、これら３つのベクトルを、次のようにｎビット毎にブロック分割するようにする。すなわち、
0004484002.tif 000075
ただし、
0004484002.tif 000076
である。また、
0004484002.tif 000077
但し、
0004484002.tif 000078
とし、ｗに演算結果を格納するものとする。
【００１９】
第１の例としては、ガロア体ＧＦ（２m）上の２乗算
0004484002.tif 000079
の計算手続きを、以下に示す。
ここにおいてＸ←ＹはＹの内容をＸに代入することを示す。また、Ｘ<<ＹはＸの内容をＹビット左シフトすることを表し、Ｘ>>ＹはＸの内容をＹビット右シフトすることを表す。
0004484002.tif 000080
0004484002.tif 000081
0004484002.tif 000082
0004484002.tif 000083
0004484002.tif 000084
0004484002.tif 000085
0004484002.tif 000086
0004484002.tif 000087
【００２０】
また、第２の例として、ガロア体ＧＦ（２m）上の乗算
0004484002.tif 000088
の計算手続きを、以下に示す。
0004484002.tif 000089
0004484002.tif 000090
0004484002.tif 000091
0004484002.tif 000092
0004484002.tif 000093
0004484002.tif 000094
0004484002.tif 000095
0004484002.tif 000096
なお、上述した２つの例で用いた積和演算回路によるステップは、乗算回路によるステップと排他的論理和演算回路によるステップとの組み合わせによって実現してもよい。
以上説明したように、本実施の形態２によれば、上述した演算プロセッサ１００を用いて、ガロア体ＧＦ（２m）上の２乗算および乗算を実現するにあたって、図２〜図５に示した乗算回路、積和演算回路、２乗演算回路、および除算回路を効果的に使用することができ、演算処理を高速に実現することができる。
【００２１】
【発明の効果】
本発明は、以上説明してきたように、演算プロセッサの演算部にプロセッサのワード長、もしくはその倍数長のＧＦ（２m）用拡張演算部を付加して、元の演算プロセッサに備わる命令の実行手続きと同様な手続きを行うことにより、ＧＦ（２m）用拡張演算が実行できるようにしたものであるので、ＧＦ（ｐ）上の演算処理に加えて、ＧＦ（２m）上の演算処理を高速に実現する上で著しい効果を発揮する。
【図面の簡単な説明】
【図１】本実施の形態１に係る演算プロセッサの概略構成を示した図である。
【図２】本実施の形態１に係る乗算回路の概略構成を示した図である。
【図３】本実施の形態１に係る積和演算回路の概略構成を示した図である。
【図４】本実施の形態１に係る２乗演算回路の概略構成を示した図である。
【図５】本実施の形態１に係る除算回路の概略構成を示した図である。
【図６】従来のＧＦ（２m）乗算回路の一例の概略構成を示した図である。
【符号の説明】
１００    演算プロセッサ、
１０１    命令記憶部、
１０２    データ記憶部、
１０３    命令フェッチ部、
１０４    デコード部、
１０５    制御部、
１０６    演算部、
１０６ａ    ＧＦ（２m）用拡張演算部。
【図１】
0004484002.tif 000098
【図２】
0004484002.tif 000099
【図３】
0004484002.tif 000100
【図４】
0004484002.tif 000101
【図５】
0004484002.tif 000102
【図６】
0004484002.tif 000103