(57)【要約】    【課題】それを用いることにより、連続的にべき乗剰余演算処理を実行しなければならなくなった場合にも，効率的に動作する情報処理装置を実現できるべき乗剰余演算回路、連続的にべき乗剰余演算処理を実行しなければならなくなった場合にも，効率的に動作する情報処理装置を提供する。    【解決手段】べき乗剰余演算回路２０を、外部から入力された，べき乗剰余演算処理の処理パラメータを，複数個（例えば、２個）記憶可能な入力／出力バッファ２３、入力／出力バッファ２３に記憶されている各処理パラメータにて指定される内容のべき乗剰余演算処理を順次実行して処理結果を出力するべき乗剰余演算コア部２４等を備えた回路として構成しておく。    【選択図】図２
2008058751.tif 000002
【特許請求の範囲】
【請求項１】
外部から入力された，べき乗剰余演算処理の処理パラメータを，複数個記憶可能な処理パラメータ記憶部と、
前記処理パラメータ記憶部に記憶されている各処理パラメータにて指定される内容のべき乗剰余演算処理を順次実行して処理結果を出力するべき乗剰余演算部と
を備えることを特徴とするべき乗剰余演算回路。
【請求項２】
前記処理パラメータを設定するための入力データレジスタと、べき乗剰余演算処理の処理結果を記憶するための出力データレジスタとを有し、
入力された前記処理パラメータを前記処理パラメータ記憶部に記憶させる機能と、
前記べき乗剰余演算部の処理結果を外部から読み出し可能な形で記憶しておくための処理結果記憶部であって、前記べき乗剰余演算部が処理結果を出力する度に、その処理結果で、記憶している情報が更新される処理結果記憶部を、さらに備える
ことを特徴とする請求項１記載のべき乗剰余演算回路。
【請求項３】
請求項１又は請求項２に記載のべき乗剰余演算回路と、
べき乗剰余演算処理を必要とする処理を，前記べき乗剰余演算回路を利用して行う制御部と
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、べき乗剰余演算処理を行うためのべき乗剰余演算回路と、べき乗剰余演算処理を必要とする処理を行う情報処理装置とに、関する。
【背景技術】
【０００２】
近年の情報処理装置の中には、公開鍵暗号方式によって暗号化されたデータを授受するものが存在しているが、公開鍵暗号方式によるデータの暗号化／復号化時に必要とされるべき乗剰余演算処理（式“Ｚ＝ＡB mod Ｃ”におけるＺを演算する処理）は、極めて複雑な処理である。このため、公開鍵暗号方式によって暗号化されたデータを授受する情報処理装置は、通常、べき乗剰余演算処理を行うための半導体集積回路（以下、べき乗剰余演算回路と表記する；例えば、特許文献１参照）が搭載されたものとなっている。
【０００３】
べき乗剰余演算回路が搭載されている情報処理装置は、当然、べき乗剰余演算回路が搭載されていない情報処理装置（べき乗剰余演算処理がソフトにより行われる装置）よりも、公開鍵暗号方式によるデータの暗号化／復号化が高速に完了する装置となっている。
【０００４】
ただし、既存のべき乗剰余演算回路は、演算処理が完了した後でなければ、次の演算処理用のパラメータ（上記式におけるＡ，Ｂ及びＣ）を設定できない回路となっている。そして、べき乗剰余演算処理は、ハードウェア（べき乗剰余演算回路）で実行しても数百ミリ秒〜数秒の時間が必要とされる処理であり、べき乗剰余演算処理の実行が必要となる時期が，前回のべき乗剰余演算処理を開始してから数百ミリ秒〜数秒程度の時間が経過したときであるとは限らないため、べき乗剰余演算回路を搭載した情報処理装置は、連続的にべき乗剰余演算処理を実行しなければならなくなった場合，他のタスクを開始することなく，べき乗剰余演算回路による演算処理の完了を待つ装置（そのような処理を行うファームウェアが用いられた装置）となっている。
【０００５】
【特許文献１】特開２００４−１２５８９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
そこで、本発明の課題は、それを用いることにより、連続的にべき乗剰余演算処理を実行しなければならなくなった場合にも効率的に動作する情報処理装置を実現できる“べき乗剰余演算回路”、連続的にべき乗剰余演算処理を実行しなければならなくなった場合にも効率的に動作する情報処理装置を、提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のべき乗剰余演算回路は、外部から入力された，べき乗剰余演算処理の処理パラメータを，複数個記憶可能な処理パラメータ記憶部と、処理パラメータ記憶部に記憶されている各処理パラメータにて指定される内容のべき乗剰余演算処理を順次実行して処理結果を出力するべき乗剰余演算部とを備える。
【０００８】
すなわち、本発明のべき乗剰余演算回路は、或る処理パラメータにて指定される内容のべき乗剰余演算処理の実行中に、次の処理パラメータの入力を受け付けられる構成を有する回路となっている。従って、このべき乗剰余演算回路を、べき乗剰余演算処理を必要とする処理を，べき乗剰余演算回路を利用して行う制御部（べき乗剰余演算処理を必要とする処理を行う場合、べき乗剰余演算回路の動作の完了を待つことなく，処理パラメータをべき乗剰余演算回路に設定して、他のタスクを開始する制御部等）と組み合わせれば（請求項３記載のように情報処理装置を構成しておけば）、連続的にべき乗剰余演算処理を実行しなければならなくなった場合にも，効率的に動作する情報処理装置を実現できることになる。
【０００９】
なお、本発明のべき乗剰余演算回路は、べき乗剰余演算部の処理結果を外部から読み出し可能な形で複数個記憶しておくための記憶部を備えた回路や、べき乗剰余演算部の処理結果を外部から読み出し可能な形で記憶しておくための処理結果記憶部であって、べき乗剰余演算部が処理結果を出力する度に、その処理結果で、記憶している情報が更新される処理結果記憶部を備えた回路として構成しておくことが出来る。
【発明を実施するための最良の形態】
【００１０】
以下、本発明を実施するための最良の形態を、図面を参照して詳細に説明する。
【００１１】
図１に示したように、本発明の一実施形態に係る印刷装置１０は、操作パネル１１とコントローラ１２と印刷エンジン１３とを備えた装置である。また、印刷装置１０は、本装置用のプリンタドライバがインストールされているＰＣ（パーソナルコンピュータ）と、パラレルケーブルやＬＡＮケーブルで接続されて使用される装置となっている。
【００１２】
本印刷装置１０が備える印刷エンジン１３は、用紙上に印刷（画像形成）を行うユニットである。操作パネル１１は、ユーザとの間のインタフェース手段として、印刷装置１０の筐体上に設けられているユニットである。この操作パネル１１は、ＬＣＤ，複数個のＬＥＤ及び押しボタンスイッチ等で構成されたものとなっている。
【００１３】
コントローラ１２は、ＰＣから送信されてきたデータが指定している内容の処理（印刷を印刷エンジン１３に行わせる処理等）を行うユニットである。このコントローラ１２は、ＲＳＡ暗号（公開鍵暗号の一種）により暗号化されたデータ（以下、暗号化データと表記する）を処理可能なユニットであると共に、暗号化データを処理するための回路として、図２に示した構成のべき乗剰余演算回路２０を備えたユニットとなっている。
【００１４】
このべき乗剰余演算回路２０内のＩＦ部２１は、図示してあるように、演算開始レジスタ，入力データレジスタ，出力データレジスタ，ステータスレジスタ１及びステータスレジスタ２を備えた回路である。
【００１５】
ＩＦ部２１が備える入力データレジスタは、べき乗剰余演算回路２０に行わせる演算処理（べき乗剰余演算処理）のパラメータ（Ｚ＝ＡB mod ＣにおけるＡ，Ｂ及びＣ）が，コントローラ１２上のＣＰＵにより設定されるレジスタである。演算開始レジスタは，べき乗剰余演算回路２０の動作を開始させる際に、ＣＰＵにより所定値（本実施形態では、“１”）が設定されるレジスタである。出力データレジスタは、べき乗剰余演算の演算結果（Ｚ＝ＡB mod ＣにおけるＺ）が設定されるレジスタである。ステータスレジスタ１，２は、いずれも、１ビットのデータ（“１”／“０”；用途は後述）を記憶しておくためのレジスタである。
【００１６】
入力／出力バッファ２３は、入力データレジスタに設定されたパラメータを一時記憶しておくための２個の入力バッファ（以下、入力バッファ１，２と表記する）、及び、べき乗剰余演算の演算結果を一時記憶しておくための２個の出力バッファ（以下、出力バッファ１，２と表記する）として機能する回路（バッファメモリ）である。
【００１７】
上記したＩＦ部２１は、この入力／出力バッファ２３の入力バッファ１，２に，入力データレジスタに設定されたパラメータを設定する処理や、入力／出力バッファ２３の出力バッファ１，２に設定された演算結果を，出力データレジスタに取り込む処理を実行する回路となっている。具体的には、ＩＦ部２１は、以下のように動作する回路となっている。
【００１８】
ＩＦ部２１は、べき乗剰余演算コア部２４によってステータスレジスタＸ（Ｘ＝１，２）に“０”が設定された場合（詳細は後述）には、入力／出力バッファ２３の出力バッファＸに設定されている値（べき乗剰余演算コア部２４の演算結果）を，出力データレジスタに取り込む処理を、行う。
【００１９】
また、ＩＦ部２１は、新たなパラメータが入力データレジスタに設定された場合には、まず、ステータスレジスタ１の値が“０”であるという条件α，或いは、ステータスレジスタ１の値が“１”であり，かつ，ステータスレジスタ２の値が“０”であるという条件βが満たされているか否かを判断する。そして、ＩＦ部２１は、条件αが満たされていた場合には、今回，入力データレジスタに設定されたパラメータを入力／出力バッファ２３の入力バッファ１に設定する処理と，ステータスレジスタ１に“１”を設定する処理とを、行う。また、ＩＦ部２１は、条件βが満たされていた場合には、今回，入力データレジスタに設定されたパラメータを入力／出力バッファ２３の入力バッファ２に設定する処理と，ステータスレジスタ２に“１”を設定する処理とを、行う。なお、ＩＦ部２１は、条件α，βのいずれもが満たされていなかった場合（ステータスレジスタ１，２の値がいずれも“１”であった場合）には、何も行わない回路となっている。
【００２０】
コア制御部２２は、ＩＦ部２１の演算開始レジスタに所定値が設定されたときに、べき乗剰余演算コア部２４の動作を開始させる回路である。
【００２１】
べき乗剰余演算コア部２４は、以下の機能を有する回路である。
【００２２】
べき乗剰余演算コア部２４は、動作の開始が指示されると、まず、入力／出力バッファ２３の入力バッファ１に設定されているパラメータ（以下、パラメータ１と表記する）で指定される内容のべき乗剰余演算処理を開始する。なお、このべき乗剰余演算処理は、ＳＲＡＭ２５を、作業領域として使用する処理となっている。
【００２３】
べき乗剰余演算コア部２４は、パラメータ１に関する演算処理（パラメータ１で指定される内容のべき乗剰余演算処理）が完了した際には、演算結果を入力／出力バッファ２３の出力バッファ１に設定する処理と，“０”をＩＦ部２１のステータスレジスタ１に設定する処理とを、行う。そして、べき乗剰余演算コア部２４は、ＩＦ部２１のステータスレジスタ２の値が“１”であるか否かを判断し、ステータスレジスタ２の値が“０”であった場合には、動作を終了して、動作の開始が指示されるのを待機する状態となる。
【００２４】
一方、ステータスレジスタ２の値が“１”であった場合、べき乗剰余演算コア部２４は、入力／出力バッファ２３の入力バッファ２に設定されているパラメータ（以下、パラメータ２と表記する）で指定される内容のべき乗剰余演算処理を開始する。そして、べき乗剰余演算コア部２４は、パラメータ２に関する演算処理が完了した際には、演算結果を入力／出力バッファ２３の出力バッファ２に設定する処理と、“０”をＩＦ部２１のステータスレジスタ２に設定する処理とを、行う。その後、べき乗剰余演算コア部２４は、ＩＦ部２１のステータスレジスタ１の値が“１”であるか否かを判断する。そして、べき乗剰余演算コア部２４は、ステータスレジスタ１の値が“１”でなかった場合には、動作を終了し、ステータスレジスタ１の値が“１”であった場合には、動作の開始が指示された場合と同じ動作を開始する。
【００２５】
そして、本実施形態に係る印刷装置１０は、上記のような機能を有する“べき乗剰余演算回路２０”，（或るパラメータに関するべき乗剰余演算処理の実行中に、次のパラメータの入力を受け付けられる回路）が，コントローラ１２に搭載されている装置であるとともに、そのファームウェア（コントローラ１２上のＣＰＵが実行するプログラム）として、連続的にべき乗剰余演算処理を行う必要が生じた場合、ソフト的にパラメータのバッファリングを行うものではなく、べき乗剰余演算回路２０にパラメータを設定してしまうもの〔べき乗剰余演算回路２０にパラメータを設定した後、他のタスク（及び，ステータスレジスタ１，２の値が“０”に変わるの監視する処理／タスク）を開始し、ステータスレジスタ１，２の値が“０”に変わったときに、出力データレジスタの値を読み出すもの〕を用いた装置となっている。
【００２６】
《変形形態》
上記した印刷装置１０，べき乗剰余演算回路２０は、各種の変形を行うことが出来る。例えば、べき乗剰余演算回路２０を、３個以上のパラメータを記憶可能な入力／出力バッファ２２を備えた回路（３個以上のパラメータを設定しておくことが可能な回路）や、入力／出力バッファ２２上の各処理結果をＣＰＵが読み出せる回路に変形することが出来る。また、印刷装置１０に、スキャンしたデータを暗号化して出力する機能を付加しておくことも出来る。また、べき乗剰余演算回路２０を用いて、印刷機能を有さない装置（スキャナ等）を実現しても良いことなどは当然のことである。
【図面の簡単な説明】
【００２７】
【図１】本発明の一実施形態に係る印刷装置の構成図。
【図２】実施形態に係る印刷装置に用いられているべき乗剰余演算回路の構成図。
【符号の説明】
【００２８】
１０  印刷装置、  １１  操作パネル、  １２  コントローラ
１３  印刷エンジン、  ２０  べき乗剰余演算回路、  ２１  ＩＦ部
２２  コア制御部、  ２３  入力／出力バッファ
２４  べき乗剰余演算コア部、  ２５  ＳＲＡＭ
【図１】
2008058751.tif 000003
【図２】
2008058751.tif 000004