明 細 書
情報処理システム、 暗号/復号システム、 システム L S I及び電子機器 [技術分野]
本発明は、 情報処理システム及び暗号/復号システムに係り、 特にハードゥエ ァ構成によつて任意精度の演算を行う情報処理システム及びハードゥエァ構成に よって任意精度の演算を行って暗号化及び復号を行う暗号/復号システムに関 する。 さらに本発明は、 内部バスラインまたは外部バスラインを光伝送方式とし た情報処理システム、 システム L S I及び電子機器に関する。
[背景技術]
従来より、 乱数発生、 ゥヱーブレッ ト変換、 ニューラルネッ トワーク、 高速フ 一リエ演算、 ディジタルフィル夕等の複雑、 かつ、 大規模な演算を伴う場合には、 開発コスト、 開発期間などの観点から特殊な用途を除き、 専用のハードウェアを 用いることなく、 汎用の演算装置を用い、 ソフトウェアにより実現する構成を採 つていた。
また、 イン夕一ネッ トの普及と共に電子商取引やプライバシー保護の観点から、 情報セキュリティの技術の必要が高まり、 その有効な手段としての暗号技術が注 目されている。
暗号方式は秘密鍵暗号と公開鍵暗号に大別され、 代表的な方式としては、 秘密 鍵暗号としては D E S (Data Encryption Standard) 、 公開鍵暗号としては R S A (Rivest Shamir Adleman cnptograph) がある。
原理的には、 D E Sはデータビッ ト列の並び換えや置換による方式で、 R S A は極めて多ビットの剰余演算を行う方式であり、 一般に秘密鍵暗号方式に比べて 公開鍵暗号方式は数百倍遅くなる。 これは、 公開鍵暗号方式においては、 数百ビ ット以上を法とする非常に多精度の剰余演算を行うことによる。
そこで、 通常、 多量のデータ列の暗号化には高速な秘密鍵暗号方式を用い、 デ 一夕量の少ない認証、 署名および鍵の配送などには公開鍵暗号方式を用いるよう に暗号方式の使い分けがなされている。
また、 公開鍵暗号では、 暗号強度を鍵のビッ ト長を変えることにより選択でき るため、 通信相手の公開したさまざまなビッ ト数の公開鍵を用いて演算ができる ことが求められている。
乱数発生、 ウェーブレッ ト変換、 ニューラルネッ トワーク、 高速フ一リエ演算、 ディジタルフィル夕等を汎用の演算装置を用いてソフ トウエアにより実現する手 法においては、 汎用の演算装置の演算精度を超えて演算を行う場合に、 全てソフ トウェア側で対応する必要があり、 プログラミングの手間及び処理時間の増大に よりその実現が現実的ではなくなつてしまう場合が生じていた。
さらに D E Sではハードウエア技術を用いて実現されなければならないと規定 されているように、 ソフトウェアだけによる暗号/復号システムの場合、 第三者 による解読を避けるのは事実上困難である。 暗号アルゴリズムの一部をハードウ エア化すれば暗号強度はより高いものとなる。
これは公開鍵式暗号方式においても同様であり、 例えば、 1チップ公開鍵暗号 プロセッサが提案されている (電子情報通信学会論文誌 D-I Vol. J80-D-I No.8 pp.725-735 1997-8) 。
しかしながら、 上記 1チップ公開鍵暗号プロセッサにおいては、 予めハードウ エアで規定された精度内での任意精度の処理は可能であるが、 規定された精度を 超える精度が要求された場合には処理はできず、 新たなハードウエアの設計を行 わなければならないという問題点が生じる。
また、 演算装置を、 例えば、 T F T (Thin Film Transistor) で 1チップ構成 とする場合には、 動作しないトランジスタの存在により演算装置全体が使用でき なくなってしまい、 歩留まり率が低下するとともに、 製造コス トの上昇を招くと いう問題点が生じる。
さらに他の課題として、 近年マイクロコンビユー夕の発達により、 各種の分野 にて機器の小型化と高付加価値化が進んでいる一方で、 マイクロコンピュー夕の 設計は極めて困難となっている。 マイクロプロセッサ (M P U ) を 1チヅプ化し て構成されるマイクロコンピュー夕の高集積度化が進むにつれ、 配線幅はサブミ クロンオーダとなって高抵抗化が進み、 多層構造化により浮遊容量も増大するた
め、 配線部には分布定数回路が形成されて、 電気信号の伝搬遅延は増大する一方 である。
従って、 マイクロコンピュー夕内の C P U (中央処理ユニッ ト) が他の機能ュ ニッ トに対してデ一夕、 アドレスを伝送するのに要する時間、 他の機能ユニット からデータが入力されるまでに要する時間を考慮して、 C P Uの命令サイクルな どを決定する必要があり、 信号伝搬遅延に起因した設計の負荷が多くなつている ( しかも、 近年は軽薄短小化と付加機能の増大化に従い、 マイクロコンピュータ の超 L S Iと、 高集積化の方向にのみ進んでおり、 マイクロコンピュー夕の設計 はさらに困難になる一方である。
配線抵抗、 容量の増大は、 信号伝搬遅延だけでなく、 信号としての矩形波に変 形も生じさせる。 近年特に携帯用電子機器を中心として省電力化が進んでおり、 電圧レベルが低い矩形波の変形の度合いが大きいと、 信号としての機能を確保で きなくなり、 誤動作の原因ともなる。
そこで、 本発明の目的は、 所望精度の演算が行えるシステムをハードウェア的 に容易に構築することが可能な情報処理システムを提供することにある。
本発明の他の目的は、 任意精度 (任意ビッ ト数) の演算が要求されるシステム をハードウヱァ的に容易に構築することが可能な暗号/復号システムを提供する と あ 0
本発明のさらに他の目的は、 1チップ構成とする場合の実効的な歩留まり率を 向上して、 システムの信頼性を向上することが可能な情報処理システム及び暗号 /復号システムを提供することにある。
本発明のさらに他の目的は、 信号伝搬遅延、 信号波形の変形を無視できる程度 に低減して、 その設計を容易とすることができる情報処理システム及びシステム L S I並びにそれを用いた電子機器を提供することにある。
本発明のさらに他の目的は、 他社開発の機能ブロックを搭載しながらも、 その 知的所有権に関する管理を上述の暗号/復号システム等を利用して容易化するこ とができるシステム L S I及びそれを用いた電子機器を提供することにある。
[発明の開示]
本発明は、 入力データに対して、 処理手順に従って演算処理して出力する情報 処理システムにおいて、
前記処理手順に基づいて、 それそれ演算精度 2mビッ ト (m : 自然数) にて演算 する複数の演算ュニッ 卜と、
前記演算ュニッ ト同士をカスケ一ド接続するための複数のカスケ一ド接続端子 と、
を有し、
演算処理時に必要な最大演算精度を 2。ビッ ト (nは自然数で固定) としたとき、 x≥ 2n/2m (xは自然数) を満たすように前記演算ュニッ 卜が X個カスケード 接続されることを特徴とする。
本発明によれば、 演算処理を複数の演算処理ュニッ トにて分散処理することで ハードウェア処理が容易となり、 乱数発生処理、 ウエーブレッ ト変換処理、 高速 フーリエ変換処理、 デジタルフィル夕処理などの演算量が多く、 精度が要求され る場合でも、 容易にシステムを構築して演算処理の高速化を図ることとができる。 また、 分散処理の結果、 演算ユニッ トのゲート数を抑制することができ、 装置コ ストを低減することが可能となる。
本発明においては、 演算処理時に必要な演算精度を 2nlビッ ト (1 1 ≤ 11で11 1は可変) としたとき、 X l≥ 2nl/2m (x 1は自然数で可変) を満たすように 前記演算ユニッ トが X 1個カスケ一ド接続される。 このとき、 クロック発生回路 は、 演算処理時に 2nl個の前記基準クロック信号を発生させる。 これにより、 X 個のうちの X 1個の演算ュニッ トが実効的にカスケ一ド接続される。 こうすると、 X 1個以外の演算ュニッ トにて消費される電力を節約でき、 演算速度も高速化さ れる。 さらに、 複数の演算ユニット間にて光信号により信号が伝送されるように すれば、 演算速度はより高速となる。
複数の演算ュニットの各々は、 演算精度 2m/yで演算を行うべき演算モジュール をそれそれ y個 (yは自然数で固定) を有し、 y個の演算モジュールをカスケ一 ド接続することにより構成することができる。
このとき、 演算処理時に必要な演算精度を 2nlビッ ト (11 1 ≤ 11で11 1は可変)
としたとき、 y l≥2nl/2m/y (y 1は自然数で可変) を満たすように y 1個の 演算モジュールがカスケ一ド接続されればよい。
あるいは、 2 nlビヅ ト精度の演算を行うのに、 (X 1— 1 ) 個のカスケード接 続された演算ユニッ トにて演算精度 2n2 (n2<nl) にて演算が実施され、 前 記 (X 1— 1 ) 個の演算ュニッ トとカスケ一ド接続される他の一つの演算ュニッ トでは、 y l≥ (2nl-2n2) /2m/y (y l≤yで y 1は可変) を満たす y 1個 の演算モジュールがカスケ一ド接続さされればよい。
この最大 y個の演算モジュール間を光信号により信号が伝送されるようにすれ ば、 各演算ユニッ ト内での演算が高速化される。
本発明では、 処理手順を記憶する第 1の記憶部をさらに有することができる。 さらに、 第 1の記憶部に記憶された処理手順に基づいて複数の演算ュニッ 卜の制 御を行う演算制御手段をさらに備えることができる。 このとき、 複数の演算ュニ ットと演算制御手段との間を、 光信号により信号が伝送されるようにしてもよい。 また、 複数の演算ュニッ トでの演算結果を一時的に記憶する第 2の記憶部を有 し、 第 2の記憶部と複数の演算ュニッ トとの間を光信号により信号が伝送される ように構成しても良い。
複数の演算ユニッ トでの演算の一例として、 入力データを X、 Nとし、 出力デ 一夕 Yをとしたとき、 疑似乱数発生のために、 Y = X2 mod Nの演算の例を 挙げることができる。
ここで、 複数のの演算ュニッ 卜の歩留まり率を Aとしたとき、 全演算ュニッ ト の数を K (x≥K/A) 個用意しておけば、 そののうち良品の演算ユニッ トを最 犬で X個カスケ一ド接続することができる。
あるいは、 演算モジュールの歩留まり率を A,としたとき、 前記複数の演算ュニ ヅ トの各々は、 全演算モジュールの数を L (y≥L/A, )個用意しておけば、 そのうち、 良品の演算モジュールを最大で y個カスケ一ド接続することができる。 本発明の他の態様によれば、 入力データに対して、 処理手順に従って演算処理 して出力する情報処理システムにおいて、
前記処理手順に基づいて、 それそれ演算精度 2 ビッ ト (ml : 自然数で固定)
にて演算する複数の内部演算ュニッ トと、
演算精度 2m2ビッ ト (m2 : 自然数で固定) で演算をする複数の外部演算ュニ ッ 卜と、
前記複数の内部演算ュニッ ト及び前記複数の外部演算ュニッ トをカスケード接 続するためのカスケ一ド接続端子と、
を有し、
演算処理時の最大演算精度を 2 ビッ ト (nは自然数で可変) としたとき、 z≥ (2n— 2ml) /2m2 (zは自然数で固定) を満たすように前記外部演算ユニッ ト が z個カスケ一ド接続されることを特徴とする。
こうすると、 演算精度を容易にハードウェア的に拡張することができ、 システ ムの信頼性を確保しつつ、 情報処理システムのシステム設計が容易となる。
本発明のさらに他の態様に係る暗号/復号システムによれば、 複数のべき乗剰 余演算ユニッ トと、
前記複数のべき乗剰余演算ュニッ トをカスケ一ド接続するための複数のカスケ —ド端子と、
を有し、
前記複数のべき乗剰余演算ュニッ トの各々は、
乗算精度 21 "ビット (mは自然数で固定) で乗算を行う乗算ユニッ トと、 除算精度 22'mビッ 卜で除算を行う除算ュニッ 卜と、
を有し、
前記複数のべき乗剰余演算ュニッ トにより実施されるべき乗剰余演算の最大演 算精度を 2n (nは自然数で固定) としたとき、
X≥ 2 2 m (Xは自然数で固定)
を満たすように、 前記複数のべき乗剰余演算ユニッ トが X個接続されて、 暗号化 及び復号を行うことを特徴とする。
こうすると、 暗号化または復号のための演算処理を複数の演算処理ュニッ 卜に て分散処理することでハードウェア処理が容易となり、 演算量が多く、 精度が要 求される場合でも、 容易にシステムを構築して演算処理の高速化を図ることとが
できる。 また、 分散処理の結果、 演算ユニッ トのゲート数を抑制することができ、 装置コストを低減することが可能となる。
本発明のさらに他の態様に係る暗号/復号システムによれば、 乗算精度 2 mlビ ッ ト (mlは自然数で固定) 、 除算精度 22'mlビッ トでべき乗剰余演算を行う複 数の内部べき乗剰余演算ュニッ 卜と、
乗算精度 2m2ビッ ト (m2は自然数で固定) 、 除算精度 22'm2ビッ トでべき乗 剰余演算を行う複数の外部べき乗剰余演算ュニッ トと、
前記複数の内部及び外部べき乗剰余演算ュニッ トをカスケ一ド接続するための カスケ一ド接続端子と、
を有し、
最大ビッ ト精度 2n (nは自然数で固定) で暗号化及び復号を行うに際して、 z≥ (2n- 2ml) /2m2 (zは自然数で固定) を満たすように前記外部べき乗 剰余演算ュニッ トを z個接続することを特徴とする。
こうすると、 べき乗剰余演算における演算精度を容易にハードウエア的に拡張 することができ、 鍵の精度において十分な信頼性を確保することができる。
さらに少ないゲート数で外部べき乗剰余演算ュニッ トを構成することができる ため、 パーソナルコンピュータシステムにおいても暗号/復号システムを容易に 構築することが可能となる。
本発明のさらに他の態様によれば、 多チヤンネルの電気信号に基づいてそれそ れ動作する複数の機能ュニットと、 それらの間で信号を伝送するバスラインとを、 有する情報処理システムであって、
前記複数の機能ュニッ 卜の各々は、 信号出力部及び/又は信号入力部を有し、 前記信号出力部は、 多チャンネルの電気信号を波長の異なる多チャンネルの光 信号に変換して出力する電気一光信号変換手段を有し、
前記信号入力部は、 波長の異なる多チャンネルの前記光信号を多チャンネルの 前記電気信号をに変換する光一電気信号変換手段を有し、
前記バスラインは光伝送媒体にて形成されていることを特徴とする。
この場合、 一の機能ユニッ トと他の機能ユニッ トとの間の信号伝送は、 光伝送
媒体であるバスラインを介して、 波長分割された多チャンネルの光信号を伝送す ることで行われる。 このため、 各機能ユニッ トの信号出力部は、 多チャンネルの 電気信号を多チャンネルの光信号に変換する電気—光信号変換手段を有し、 各機 能ュニッ 卜の信号入力部は、 多チャンネルの光信号を多チャンネルの電気信号に 変換する光一電気信号変換手段を有する。
1チップのマイクロコンヒュ一夕の各機能ュニッ ト間を光通信しているため、 光の速度による信号伝搬によつて信号伝搬遅延をほとんどは無視できる。 結果と して、 その信号伝搬遅延等に伴う設計上の制約がなくなり、 情報処理システムの 設計を容易化できる。
本発明では、 複数の機能ユニッ トの一つは中央処理ユニッ ト (C P U ) であり、 前記バスラインはデ一夕バスラインとアドレスバスラインとを含むことができる。
C P Uに接続されたデ一夕、 ァドレスバスラインの双方を光伝送ラインとするも のである。
この場合、 デ一夕バスラインとァドレスバスラインとは 1本の光伝送媒体にて 兼用することもできる。 デ一夕とアドレスとは同時でなく、 時分割で伝送すれば よいからである。
本発明ではさらに、 バスラインには、 周辺機器と光通信するための光入出力部 が接続されていることが好ましい。 こうすると、 情報処理システム内の各機能ュ ニッ トの電気一光信号変換手段にて変換された光信号を、 そのまま周辺機器に送 信でき、 逆に周辺機器からの光信号をそのまま情報処理システムに入力できる。 また、 光信号へのノイズの重畳や、 光信号からのノイズの放出もなくなるという 利点もある。
周辺機器と光通信するための光入出力部は、 前記バスラインを介して前記中央 処理ュニッ 卜から伝送されるチップセレク ト信号により、 前記周辺機器との間で の光通信が可能とされることが好ましい。 このとき、 光入出力部としては、 チッ プセレク ト信号により動作される光シャッター等にて構成できる。
本発明のさらに他の態様によれば、 第 1の内部バスラインを有する第 1の半導 体装置と、 第 2の内部バスラインを有する第 2の半導体装置とを、 外部バスライ
ンを介して接続して成るシステム L S Iであって、
前記第 1の半導体装置は、 第 1の信号出力部及び第 1の信号入力部を有し、 多 チャンネルの電気信号に基づいて動作する中央処理ユニッ ト (C P U ) が、 前記 第 1の内部バスラインと共に第 1の基板上に形成され、
前記第 2の半導体装置は、 第 2の信号出力部及び第 2の信号入力部を有し、 か つ、 前記中央処理ユニッ トからの信号により制御されて、 多チャンネルの電気信 号に基づいて動作する被制御ュニッ トが、 前記第 2の内部バスラインと共に第 2 の基板上に形成され、
前記第 1, 第 2の信号出力部は、 多チャンネルの電気信号を波長の異なる多チ ヤンネルの光信号に変換して出力する電気一光信号変換手段をそれそれ有し、 前記第 1, 第 2の信号入力部は、 波長の異なる多チャンネルの前記光信号を多 チャンネルの前記電気信号に変換する光一電気信号変換手段をそれそれ有し、 前記第 1, 第 2の内部バスライン及び前記外部バスラインは、 それそれ光伝送 媒体にて形成されていることを特徴とする。
こうすると、 例えば第 1の半導体装置を上述の 1チップ化されたマイクロコン ピュー夕とした場合、 本来マイクロコンピュー夕内に搭載されるべき機能ュニッ 卜の少なくとも一つは、 第 2の半導体装置に搭載できる。 この場合、 第 1, 第 2 の半導体装置内の機能ユニッ ト同士は、 第 1 , 第 2の内部バスライン及び外部バ スラインを介して光による信号の授受が行われる。 従って、 空間的には異なる基 板上に配置された機能ュニット同士が、 光の伝送速度で通信できるバスラインに て接続されるため、 機能的には上述の 1チップ内で光による信号の授受が行われ る複数の機能ュニッ トを搭載したマイクロコンビユー夕と等価となる。
このように、 本来 1チップ内に搭載されるべき機能ュニッ トの一部を外部に取 り出すことができるため、 高集積化の必要はなくなるという利点がある。 あるい は、 マイクロコンビユー夕に演算機能、 メモリなどを増設したい場合にも、 従来 のように 1チップマイクロコンピュー夕の設計をやり直す必要なく、 基本となる マイクロコンピュー夕に光伝送媒体である外部バスラインを介して半導体装置を 外付けすればよい。 従って、 マイクロコンビユー夕の汎用性が高まるという利点
もある。
特に、 本発明を適用すればキヤシュメモリの容量の変更を自由に行うことがで きる。
さらに好ましくは、 本発明において、 内部バスラインの内部クロックを外部バ スラインへも供給する構成とする。 これによつて、 内部クロックが全機能ュニッ トの標準クロックとなり、 同期モ一ドでデータ処理を行うことが可能となる。 上記の本発明に係る情報処理システムまたはシステム L S Iを電子機器に搭載 すれば、 その電子機器の機能変更にも容易に対応できる。
本発明のさらに他の態様によれば、 開発メ一力が異なる複数の機能プロックが 搭載されたシステム L S Iであって、
前記複数の機能プロックの少なくとも一つは、 四則演算機能ェリァを有し、 前記四則演算機能エリアは、 所定の復号鍵が入力された際に復号ための演算を 実施し、 その復号が成立した時以降初めて、 前記復号以外の四則演算機能がイネ 一ブルとされることを特徴とする。
このシステム L S Iには、 例えば A社の開発した機能プロヅクが含まれている とする。 このシステム L S I中の A社の開発した機能プロックを利用するェンド ュ一ザに、 例えば R S A方式の復号鍵 (プライベートキー) をライセンスによつ て開示する。 そして、 本システム L S Iの利用者のうち、 復号鍵を有するエンド ュ一ザのみが機能ブロックを利用できるようにしたものである。 これにより、 A 社の開発した機能プロックを利用するには、 A社から復号鍵をライセンスによつ て取得する必要が生じ、 知的所有権に関する管理が容易となる。
この四則演算機能エリアには、 上述した通り、 処理手順に基づいて、 それそれ 演算精度 2 ffiビッ ト (m : 自然数で固定) にて演算する X個のカスケード接続され る演算ユニッ トを備えることができる。 この複数の演算ユニッ トの一部は、 カス ケ一ド接続される複数のべき乗剰余演算ュニッ トを含むことができる。
[図面の簡単な説明]
図 1 A及び図 1 Bは、 本発明の第 1実施例に係る情報処理システムの概要構成
を示すプロック図である。
図 2は、 図 1 A及び図 1 B中のプログラマブルディジタルプロセッサの概要構 成を示すプロック図である。
図 3は、 第 1実施例を疑似乱数発生回路に適用した具体例を示すプロック図で ある。
図 4は、 本発明の第 2実施例に係る暗号/復号システムの概要構成プロック図 である。
図 5は、 べき乗剰余演算装置の概要構成を示すプロック図である。
図 6は、 任意精度除算装置の概要構成を示すプロック図である。
図 7 A〜図 7 Cはそれそれ、 除算分散処理の困難性を説明する説明図である。 図 8は、 任意精度除算器の構成と動作の説明図である。
図 9は、 除算器の概要構成を示すブロック図である。
図 1 0は、 除算器の動作タイミングチャートである。
図 1 1は、 本発明の第 2実施例における R S Aに基づいた公開鍵暗号方式の暗 号化及び復号処理の処理手順を示している。
図 1 2は、 べき乗剰余演算装置に必要なゲート数を説明する図である。
図 1 3 Aは、 a b≡M m o d cの演算手法を説明する説明図である。
図 1 3 Bは、 図 1 3 Aの演算を実行する回路のプロック図である。
図 1 3 Cは、 図 1 3 Aの手法に従って、 1 8 6 1 9≡M m o d 3 7 7を復号 して M = 1 7を求めた演算例の説明図である。
図 1 4は、 図 1 3 Aにて必要な演算処理時間の計算を示す説明図である。 図 1 5は、 演算処理時間の例を示す説明図である。
図 1 6は、 従来における R S Aに基づいた公開鍵暗号方式の暗号化及び復号処 理の処理手順である。
図 1 7は、 本発明の第 4実施例に係るマイクロコンピュータの一例を示すプロ ック図である。
図 1 8は、 図 1 7に示すマイクロコンピュータの光伝送部を含む領域の概略説 明図である。
図 1 9は、 図 1 8に示す発光部を構成する 3チャンネル分の発光素子の概略断 面図である。
図 2 0は、 図 1 9に示す発光層の製膜方法の一例を示す概略説明図である。 図 2 1は、 図 1 8に示す受光部を構成する 3チャンネル分の受光素子の概略断 面図である。
図 2 2は、 図 1 8に示す発光部の変形例を示す概略説明図である。
図 2 3は、 本発明の第 5実施例に係るシステム L S Iを示す概略説明図である。 図 2 4は、 発光部、 導波路及び受光部を三次元的に配置した本発明の第 6実施 例を示す概略説明図である。
図 2 5は、 本発明の第 7実施例に係るシステム L S Iの概略図である。
[発明を実施するための最良の形態]
次に図面を参照して本発明の好適な実施例を説明する。
(第 1実施例)
図 1 Aに第 1実施例の情報処理システムのプロック図を示す。
情報処理システム 1 0は、 図 1 Aに示すように例えば 2つの汎用のマイクロプ 口セッサにより構成される。 図 1 Aにおいて、 この情報処理システム 1 0は、 シ ステム全体を制御するためのメインマイクロプロセッサ 1と、 メインマイクロプ 口セヅサ 1とバス 2を介して接続されたプログラマブルディジ夕ルプロセッサ 3 と、 を備えている。 プログラマブルディジタルプロセッサ 3は、 メインマイクロ プロセッサ 1に代わって予め設定されたプログラム (処理手順) に従って高速で 所望演算精度の演算を行うコプロセッサ (coprocessor) として機能する。
ここで、 バス 2には、 図示は省略してあるが、 この情報処理システム 1 0に要 求される仕様に応じて、 キ一ボード、 マウスなどの入力装置、 プリン夕などの出 力装置、 R 0 M、 R A M等の記憶装置及びハードディスク装置などの外部装置な どが直接、 あるいは、 イン夕一フェース装置を介して接続されている。
図 2は、 図 1に示すプログラマブルディジ夕ルプロセッサ 3の構成を示してい る。 このプログラマブルディジタルプロセッサ 3は、 図示しないシステム R 0 M、 システム R A Mを有し、 乱数発生処理、 ゥヱーブレッ ト変換処理、 高速フーリエ
変換処理、 デジタルフィル夕処理などの処理手順が予めメインマイクロプロセッ サ 1側からロードされてプログラミングされる。
このプログラマブルディジ夕ルプロセッサ 3は、 全体の制御を司るコントロー ルユニッ ト 5と、 演算途中の各種データ、 処理手順などを格納する RAM 6、 R OM8と、 それそれ演算精度 2mビッ ト (mは自然数で固定) で演算を行う X (X は自然数で固定) 個の演算ュニッ ト 7— 1〜7— Xと、 これら演算ュニッ ト 7— 1〜7— X同士をカスケ一ド接続するためのスィツチ SWと、 ァドレスデ一夕、 命令データなどを転送するための内部システムバス 4 Aと、 各種データを転送す るための内部デ一夕バス 4 Bと、 を備えている。 なお、 内部システムバス 4 Aと 内部デ一夕バス 4 Bとで、 内部バス 4を構成している。 また、 スイッチ SWは、 実施例の構成を図面上で理解できるように便宜的に図示したものである。 実際に は、 実効的にカスケ一ド接続される演算ユニッ トの数は、 プログラマブルディジ タルプロセッサ 3内の例えばコントロールュニッ ト 5から発生する基準クロック 信号の数に基づいて決定され、 機械的にスィッチ SWがオン、 オフする構成では ない。 この点については後述する。
この場合において、 全ての演算ュニッ トを X個カスケード接続した場合に得ら れる最大ビッ ト精度を 2n ( nは自然数で固定) とした時、 カスケード接続される 最大個数 Xは、 以下に示す条件式を満たしている必要がある。
x≥ 2n/ m
なお、 必要な演算精度が最大ビッ ト精度 2n以下のビッ ト精度 2nl ( n lは可変 でかつ n l ≤ n) である場合には、 X個の演算ュニヅ ト 7— 1〜7— Xを全て動 作可能状態としても演算結果を得ることは可能であるが、 最大 X個の演算ュニッ トのうち、
x≥x 1≥ 2nl/2m (x 1は可変)
を満たすように X 1個の演算ュニッ ト 7—:!〜 7— X 1を実効的に動作するよう にカスケード接続すればよい。 こうして、 2 nlビッ ト精度の演算を行うようにす れば、 電力を不必要に消費することなく、 消費電力の適正化を図ることができ、 さらに演算処理時間も最適化することが可能となる。
ここで、 演算ュニヅ ト 7—:! 〜 7— Xの各々は、 それぞれ演算精度 2 m/y (yは 2以上の整数) で演算を行うべき y個の演算モジュール 9— 1 ~9—yが、 スィ ツチ SWを介してカスケード接続可能となっている。 なお、 スィッチ SWは、 実 施例の構成を図面上で理解できるように便宜的に図示したものである。 実際には、 実効的にカスケード接続される演算モジュールの数は、 上述の通り、 プログラマ ブルディジ夕ルプロセッサ 3内の例えばコントロールュニッ ト 5からの基準クロ ック信号の数に基づいて決定され、 機械的にスィッチ SWがオン、 オフする構成 ではない。
ここで、 例えば演算ュニヅ ト 7— 1と演算ュニヅ 卜 7— 2とが実効的にカスケ ―ド接続された場合には、 トータルで 2 y個の演算モジュールがカスケ一ド接続 されたことと等価となる。
そして、 本実施例では、 一つの演算ユニッ トの全 y個の演算モジュール 9一 1 〜9— yのうち、 2nlビッ ト精度の演算を行うのに十分な個数 y 1≥ 2 nl/2m/ y (y 1≤y) の演算モジュールを実効的にカスケード接続することも可能である < こうすれば、 消費電力及び演算処理時間をより最適化することが可能となる。
あるいは、 2nlビッ ト精度の演算を行うのに、 (X 1— 1 ) 個の演算ユニット 7- 1-7- (X— 1) と、 演算ュニヅ ト 7— X 1の中の y 1個の演算モジユー ルとを用いることも可能である。 この場合に、 (X 1— 1 ) 個の演算ユニッ ト 7 — 1〜7— (X— 1) で 2n2 (n2< n 1) のビッ ト精度の演算が実施されると すると、 y 1 (2nl-2n2) /2m/y (y 1≤y) を満たせばよい。
次に、 図 1 A及び図 2に示す装置の動作について説明する。
まず、 メインマイクロプロセッサ 1がプログラマブルディジ夕ルプロセッサ 3 に対し、 演算命令、 演算に必要なデータ及び要求する演算精度に対応する演算精 度デ一夕をバス 2を介して与える。
これによりプログラマプルディジ夕ルプロセッサ 3のコントロールュニッ ト 5 は、 演算ュニッ ト 7—:!〜 7— Xに対し、 メィンマイク口プロセッサュニッ ト 1 及び/または RAM6からの処理手順 (例えば、 図 13Bで示す暗号手順) に基 づいて、 要求された演算精度 2nlに対応する数の演算ュニッ トあるいは演算モジ
ユールを制御する。 演算ユニッ ト 7— 1〜マ— Xは、 各演算デ一夕の精度情報に 基づいて、 カスケード接続されるべきュニッ ト数及びモジュール数を判断する。 このカスケード接続されるべきュニッ ト数及びモジュール数は、 演算に必要な基 準クロック信号の数によって決定される。 この基準クロック信号は、 図 1 Aに示 す情報処理システム 1 0が有する図示しない基準クロック信号発生回路にて発生 される。
これにより、 演算に必要とされた数の演算ュニッ ト及び演算モジュールは実効 的にカスケ一ド接続され、 コントロールユニット 5は、 予めプログラミングされ た処理手順に基づいて演算を演算ュニッ トにて行わせることとなる。
そして得られた精度 2 n 1の演算結果をバス 2を介してメインプロセッサュニッ ト 1側に出力することとなる。
ここで、 この第 1実施例ではチップ間すなわち図 1 Aのマイクロプロセッサュ ニッ ト 1とプログラマブルディジ夕ルプロセッサ 3間のバス 2上の信号を、 多チ ャンネルの電気信号としても良いし、 あるいは例えば波長の異なる多チャンネル の光信号としても良い。 チップ間を光通信する技術は既に多くの提案がある。 さらに加えて、 この第 1実施例では、 1チップを構成するプログラマブルディ ジ夕ルプロセッサ 3内の一部または全部のュニッ ト間にて、 光信号を伝送するこ とも可能である。 すなわち、 図 2に示すプログラマブルディジタルプロセッサ 3 の内部システムバス 4 Aと内部デ一夕バス 4 Bとを光伝送路とするのである。 こ うすると、 コントロールユニッ ト 1 0 5と、 R A M 6と、 R O M 8と、 x個の演 算ュニッ ト 7— 1〜7—Xとの各間で、 内部システムバス 4 Aと内部データバス 4 Bを介して光信号を伝送することができる。 このとき、 R A M 6を構成する記 憶素子として、 電気信号以外の情報例えば強誘電メモリのように磁化された情報 を記憶するようにすれば、 光信号を電気信号に変換する必要はない。 例えば強誘 電メモリを用いた場合には、 光信号に基づいて磁化された情報を記憶すればよい c さらには、 X個の演算ユニッ ト 7— l〜7— xの間も実質的にバス接続され、 各 演算ュニッ トを構成する y個の演算モジュールもバス接続されているため、 これ らのバスを光伝送路とし、 演算ュニッ ト間及び演算モジュール間も光信号により
伝送することが可能である。
なお、 1チップ内の内部バスを光伝送路とする具体的例については後述する。 以上の説明においては、 最大 X個の演算ュニッ トが装着されている場合につい て説明したが、 後に機能拡張する場合などに備えて、 プログラマブルディジタル プロセッサ 3に外部演算ュニッ トをカスケード接続するための端子を設けてもよ い。 このように、 外部演算ユニットをカスケ一ド接続するように構成すれば、 内 部演算ュニッ トのみをカスケ一ド接続して得られる演算精度以上の演算精度を確 保することができる。
より詳細には、 プログラマブルディジタルプロセッサ 3を 1チップ構成とした 場合であっても、 図 2に破線で示すように、 一または複数のプログラマブルディ ジ夕ルプロセッサ 3'を、 内部デ一夕バス及び図示しないカスケ一ド接続端子を介 してカスケ一ド接続することができる。 こうすると、 プログラマブルディジタル プロセッサ 3,内の演算ュニッ トを、 プログラマブルディジ夕ルプロセッサ 3'内 の演算ユニッ トとカスケード接続したのと等価となる。 この意味で、 プログラマ ブルディジ夕ルプロセヅサ 3内の内部演算ュニット 7— 1〜7— Xに対して、 一 または複数のプログラマブルディジタルプロセッサ 3,の演算ュニッ トは、 外部演 算ユニッ トとして機能する。 そして、 本実施例では、 この内部演算ユニッ トとが 外部演算ュニッ ト間も光信号により伝送することが可能である。
また、 複数の外部演算ユニッ トを例えば、 TFT (Thin F i lm T r ans i s t or) で構成した場合には、 欠損などにより不良トランジスタが発 生することに起因して、 最大で z個の外部演算ュニッ トの全体が使用できなくな る恐れがある。
そこで、 演算ュニッ 卜の歩留まり率 Aに対して、 少なくとも (z≥K/A) 個の演算ユニッ トを予め用意しておくことが好ましい。 こうすると、 K個の演算 ュニッ トのうち良品の演算ュニッ トを最大で z個接続することできる。
さらにこのことは、 演算ユニッ トばかりでなく、 外部演算ユニッ トを構成する 演算モジュールについても同じことが言えるので、 外部演算モジュールの歩留ま り率 A'に対して、 各外部演算ュニッ ト中に少なくとも (y≥L/A') 演算モ
ジュールを予め用意しておくと良い。 こうすると、 L個の演算モジュールのうち 良品の演算モジュールを y個接続することができる。 従って、 演算モジュールに 不良が発生した場合でも、 冗長演算モジュールに接続切換を行うことにより、 そ の演算ュニッ トは良品として扱うことが可能となる。
また、 プログラマブルディジタルプロセッサ 3内に演算精度 2mlビッ ト (ml : 自然数) で演算を行う内部演算ュニッ 卜と、 プログラマブルディジタルプロセ ッサ 3, 内に演算精度 2m2ビッ ト (πι2 : 自然数) で演算を行う外部演算ュニッ トとをカスケ一ド接続して、 最大演算精度 2 ηの演算を実施するには、 外部演算ュ ニッ 卜の接続数 ζを下記の式を満足するように設定すればよい。
z≥ (2n-2ml) /2m2
さらに所望のビヅ ト精度 2nl (n lは自然数、 かつ、 n l≤n) にて演算する 場合には、 z個の外部演算ユニッ トのうち、
z≥z 1≥ (2nl-2ml) /2m2 (z 1は自然数)
を満たすように外部演算ュニッ トをカスケード接続すれば、 演算に必要な外部演 算ユニッ トのみを動作させることができる。 この結果、 消費電力の適正化、 演算 処理時間の適正化を図ることができる。
なお、 情報処理システム 10を構成する場合に、 図 1 Aの実施例ではメインマ イク口プロセッサ 1が必須の構成要件となっていた。 しかし、 プログラマブルデ ィジ夕ルプロセッサ 3にメインマイクロプロセッサ 1の機能を持たせ、 バス 2を 介して記憶装置あるいは外部記憶装置からプログラムをロードするように構成す れば、 図 1 Bに示す情報処理システム 10 ' のように、 メインマイクロプロセッ サ 1は不要となる。
また、 以上の説明においては、 プログラマブルディジタルプロセッサ 3がプロ グラムをロードする場合についてのみ説明したが、 これに限定されるものではな い。 例えば予めマスク ROM、 PROM, EEPROMなどの不揮発性のメモリ に処理手順のプログラムを格納しておき、 これに基づいて固定化した処理手順に 基づいて動作したり、 固定化した処理手順をハ一ドウエアロジックで実現するこ とも可能である。
ここで第 1実施例のより具体的な例として、 本発明を疑似乱数発生装置に適用 した例について説明する。
Nが大きな素数の積の場合に、 非線形演算子である Y = X 2 m o d Nを用い て、 計算量的に安全な疑似乱数を作ることが可能である。 この場合において、 「計算量的に安全な」 とは、 安全性が崩れるということ (すなわち、 生成した乱 数列の一部である部分乱数列から、 生成した乱数列の他の部分の部分乱数列を推 測することができること) と、 Nを因数分解できるということとが、 計算量的に 同等であるということである。
換言すれば、 数学の長い歴史の中で、 因数分解についての簡単な計算法が見つ かっていないので、 多分、 乱数は予測できないであろうということである。
Y = X 2 m o d N
を用いて、 計算量的に安全な疑似乱数を発生するためのプロック図を図 3に示す。 この場合において、
N二 P · Q
であり、 Pと Qとは共に大きな素数である。
図 3に示すように、 入力データ (X、 N ) に対し、
Y = X 2 m o d N
の演算処理を行う際に、 第 1実施例のプログラマブルディジ夕ルプロセッサ 3を 用いることにより、 任意精度で疑似乱数を発生させることができる。
以上の説明のように、 本実施例によれば、 所望精度の演算を行うための情報処 理システムをハードウエア的に容易に実現することが可能であるとともに、 演算 精度の拡張に対してもハードウエア的に容易に対応することが可能となる。
この第 1実施例の説明においては、 プログラマブルディジ夕ルプロセッサ 3内 にコントロールュニッ ト 5及び R A M 6を設ける構成としていたが、 メインマイ クロプロセッサ 1側にこれらの機能を行わせるように情報処理システムを構成し、 演算ュニッ トのみを 1チップ構成とし、 任意精度汎用演算プロセッサとして機能 させることも可能である。
(第 2実施例)
次に暗号化処理及び復号処理を行う暗号ノ復号システムに本発明を適用した第 2実施例について説明する。
[1] RS A方式の原理説明
まず具体的な実施例の説明に先立ち、 代表的な公開鍵方式暗号である R S A方 式について説明する。
ネッ トワーク暗号の利用形態としては、 送信者が暗号鍵を用いて平文を暗号化 して送信し、 その暗号文の受信者は復号鍵を用いて復号し平文に戻す処理を行う ものである。
秘密鍵暗号方式では暗号鍵と復号鍵が同一であるのに対し、 公開鍵暗号方式は 同一ではなく、 暗号鍵を公開し、 復号鍵を秘密に保持する方式である。 次に代表 的な公開鍵暗号方式である R S A方式の原理について述べる。
平文をある適当なブロックに分け、 それに相当する数値を Mとする。 素数 と qを定め、 復号鍵 (プライベートキー) として秘密にし、 次の関係にある nと e を公開鍵 (パブリックキー) とする。
n = p q ( 1 ) gcd (e, (p- 1, q - 1) ) = 1 …"- (2) ここで、 e及び (p— 1) (q- 1) の最大公約数は 1、 すなわち、 (p— 1) (q - 1 ) と互いに素な正数 eを適当に決める。
そして、 下記の (3) 式に示すように、 送信者はパブリックキ一を用いて、 n を法とする平文 Mの e乗の剰余演算 (Meを nで割った余り Cを算出) を行い、 暗 号文 Cを送信する。
Me≡C mod n …… (3) これにより、 暗号文 Cを受信した受信者は、 まず、 プライべ一トキ一を用いて、 下記の (4) 式により (p— l) (q- 1) を法とする eの逆数 dを求める。
e d≡ 1 mod (p— l) (q- 1 ) …… (4) 得られた dにより、 下記の (5) 式から暗号文 Cを平文 Mに復号する。
Cd≡M mod n …… (5) ところで、 式 (4) と式 (5) は、 (p— 1) と (q— 1) の最少公倍数 1 c
m (p- 1 , q - 1 ) を用いると、 dを小さく定めることができ、 下記の (6) 式及び (7) 式に示すように、 計算量の軽減がはかれる。
g c d (e, 1 cm (p— 1 , q - 1 ) ) = 1 ( 6 ) e d≡ l mo d l cm (p— 1 , q— 1) ( 7 ) この場合において、 パブリックキ一nはプライべ一トキ一 pと qの積であるた め、 容易に素因数分解できないよう、 通常 5 12ビッ ト以上に選定される。 以上のように R S A方式は素因数分解という数学的要素と多精度剰余演算を行 うことなどで、 暗号強度の高い方式であると広く認知されている。
[ 2 ] 剰余計算例
式 (3) と式 ( 5) のべき乗剰余演算結果が暗号 ·復号文となるため、 丸め操 作や浮動少数点演算が使えず整数演算でなければならない。 べき乗剰余演算は指 数をそのシステムで除算可能な部分に分割して、 より小さな剰余演算の積の繰り 返しで求めることができる。 説明の容易性のため、 ごく小さい数値の例を示す。 パブリックキ一を n= 55、 e = 7とし、 プライべ一トキ一を p = 5、 q = 1 1とする。
平文 M= 3とすると、 暗号文 Cは、 暗号化においてはパブリックキーの nと e を用いて、 式 (3) より
37≡ C mo d 55
から
C = 42
を得る。
復号ではプライベートキーの pと qより dを次のように選定する。
式 (4) より
7 d≡ l mo d (5— 1) ( 1 1— 1)
すなわち、
7 d≡ 1 mo d 40
から
d = 23
となる。
4223≡M mod 55
から
M= 3
となる。
剰余演算においては
X≡ r 1 mod n、
Y≡ r 2 mod n
のとき、 nを法とする下記の式 (8) の乗算が成立する。
X ' Y≡r l ' r 2 mod n (8) この関係式により指数部分を演算可能な部分に分割する。
例えば、
= 425 · 425 · 425 · 425 · 423
そこで、 先ず、 425及び 423についての 2種類の剰余を求める。
425≡ 12 mod 55
423≡ 3 mod 55
式 ( 8 ) から
4223≡ 12 · 12 · 12 · 12 · 3≡r mod 55
个 T 个 个
r 1 r 2 r 3 r 4 r 5
となる。
次に r 1 · r 2からその剰余 r -2を求める。
r l - r 2≡ 12 - 12≡r^ 2 mod 55
より、
r ι— 2 = 34
となる。 以下同様にして、
r 1 - 2 · r 3≡ 34 · 12≡ r 1 - 3 mod 55
より、
r 1- 3 = 23
となる。 さらに
Γ ι -3 · r 4≡23 - 12≡ri-4 mo d 55
より、
r 1-4 = 1
となる。 さらにまた、
となって、
r = 3
を得ることとなる。
以上の剰余演算過程における各剰余乗算の最大精度は法である nの 2倍以下で 済む。 このようにして、 小さな数値に置き換えた剰余演算の繰り返しで、 目的と する剰余を算出することができる。
[ 3 ] 暗号化及び復号処理の一般的手法
ここで、 図 1 6を参照して R S Aに基づく暗号化及び復号処理の一般的手法に ついて説明する。
まず、 Am≡R mo d nについての剰余演算では、 A、 m、 nの各値を入 力する (ステップ S 1 ) 。
合同式 Am≡R mo d n は暗号化においては平文 Mが A、 パブリック キー eが mとして、 パブリックキー nを法とする剰余演算によって得られた Rが 暗号文 Cになる。 復号では暗号文 Cが A、 パブリックキー eとプライべ一トキ一 p、 qから選定された dが mとして、 nを法とする剰余演算によって得られた R が平文 Mである。
先ず、 Aのビッ ト数 K 1を求め (ステップ S 2 ) 、 Aのビッ ト数 K 1から剰余 演算システムにおける ANの最大指数 Nを求める (ステップ S 3) 。
次に最大指数 Nが 1であるか否かを判別し (ステップ S 4) 、 最大指数 N= l であれば A2で精度ォ一バーになるため、
A≡ r mod n
を求め (ステヅプ S 5) 、 剰余 rのビッ ト数 kを求め (ステップ S 6) 、 ビッ ト 数 kから Aのブロック規模を判断する (ステップ S 7) 。
Aのブロック規模が精度内であれば (ステップ S 7 ; No) 、 m個の Aに対す る nを法とする乗算を行い、 その結果から求める剰余 Rを得る (ステップ S 8) 。
また、 Aのブロック規模が精度外であれば (ステップ S 7 ; Ye s) 、 データ が大きすぎてオーバーフローを起こしてしまうので (ステップ S 9) 、 Aのプロ ック規模を小さくすべく、 演算処理を終了する (ステップ S 10) 。
一方、 Nが 2以上であれば (ステップ S 4 ; N o) 、 mを qN+aに分解し (ステップ S 1 1 ) 、 aが 0でないときは (ステップ S 12 ; Y e s ) 、 Aaを求 め (ステップ S 13) 、 A aを nで割った余り r 1を求める (ステップ S 14) 。
次に q = 0であるか否かを判別し (ステップ S 15) 、 q= 0ならば (ステツ プ S 15 ; Ye s) r 1が求める剰余 Rである (ステップ S 16) 。
ステップ S 15の判別において、 q≠ 0であるならば (ステップ S 15 ; No)、 ANを求め (ステップ S 17) 、 ANを nで割った剰余 rを求める (ステップ S 1 8) o
そして剰余 rを r 00に代入し (ステップ S 19) 、 q個の ANに対する nを法 とする乗算を行い (ステップ S 20) 、 a≠ 0であるならば (ステップ S 21 ; No) 、 得られた乗算結果 rと r 1との積を nで割った剰余を求め (ステップ S 22) 、 求めた剰余 rを最終的に求めるべき剰余 Rとし (ステップ S 23) 、 剰 余 Rを剰余データとして出力する (ステップ S24) 。
このように R S Aに基づいた公開鍵暗号方式の暗号化及び復号処理 (剰余演算 処理) は複雑であり、 特に暗号/復号システムにおいては、 前述したように、 n は 5 12ビッ ト以上と高精度であるため、 除算の分散処理が不可能であれば、 本 第 1実施例のようなハ一ドウエア化は困難であり、 上記処理をソフ トウエアで処 理することとなり、 そのプログラミングも簡単ではないので、 多くの演算時間を 要することは容易に推察できる。
[4] 公開鍵暗号/復号システムの構成
図 4は、 第 2実施例の公開鍵暗号/復号システムのブロック図である。
公開鍵暗号/復号システム 1 1は、 大別すると、 パーソナルコンピュータシス テム 12と、 パーソナルコンピュータシステム 1 2の入出力ィン夕一フェース 1 7を介して接続されたべき乗剰余演算装置 1 3と、 を備えて構成されている。 パーソナルコンピュータシステム 12は、 各種デ一夕を入力するためのキーボ —ド 1 5と、 各種表示を行うためのディスプレイ 1 6と、 入出力ィンターフェ一 ス 17及び図示しないハードディスクなどの外部記憶装置を内蔵したパーソナル コンピュータ本体 18と、 各種プリントアウトを行うプリン夕 19と、 を備えて 構成されている。
べき乗剰余演算装置 13は、 大別すると図 5に示すように、 所定の精度範囲内 で任意精度の除算を行う任意精度除算装置 20と、 所定の精度範囲内で任意精度 の乗算を行う任意精度乗算装置 2 1とを備え、 これらはバス 22により接続され る。
[5] 任意精度除算装置及び任意精度乗算装置の構成
任意精度除算装置 20は、 図 6に示すように、 被除数データ及び除数データが それそれ入力される 8ビッ ト精度の第 1除算器 25一 1〜第 H除算器 25— H (H : 2以上の整数) の H個の除算器と、 精度情報デ一夕に基づいて対応する 8 ビヅ ト精度の除算器をカスケ一ド接続するための第 1スィッチ SW1〜第 (H— 1 ) スイッチ SW (H- 1) の (H— 1 ) 個のスィッチと、 を備えて構成されて おり、 第 1スィツチ〜第 (H— 1) スィッチ SW 1〜SW (H— 1) は、 精度情 報デ一夕に基づいて必要な数の除算器をカスケ一ド接続することとなる。
なお、 これらスィッチ SW1〜SW (H— 1) も、 図 2の場合と同様に説明の 便宜上図示したものである。 また、 各 8ビッ ト除算器の間及び各 8ビッ ト除算器 への入出力を、 全て光信号で伝送するように構成することもできる。
より具体的には、 8ビッ ト精度の除算を行う場合には、 全てのスィッチ SW1 〜SW (H— 1) が開状態であり、 第 1除算器 25— 1のみが動作し、 1 6ビッ ト精度の除算を行う場合には、 第 1スィッチ SW 1のみが閉状態となり、 第 1除 算器 25 - 1及び第 2除算器 2 5— 2が動作し、 (8 x J) 精度の除算を行う場
合には (J : 2以上 (H— 1 ) 以下の整数) 、 第 1スィッチ S W 1〜第 (J— 1 ) スィッチ S W ( J - 1 ) が全て閉状態となり第 1除算器 2 5 - 1〜第 J除算器 2 5— Jが動作することとなる。
そして、 被除数デ一夕及び除数デ一夕は、 下位 8ビッ トから 8ビット単位で第 1除算器 2 5— 1から第 J除算器に順次与えられることとなる。
同様に、 複数の除算器を乗算精度 2 raビッ ト (m: 自然数で固定) 、 除算精度 2 21 "ビットでべき乗剰余演算を行う外部べき乗剰余演算ュニッ トとして構成し、 被 除数データ、 除数データ及び精度情報データの入力信号ライン並びに商データ及 び剰余データの出力信号ラインをカスケ一ド接続するためのカスケ一ド接続端子 をそれそれのべき乗剰余演算ュニッ 卜に設け、
X = 2 n/ 2 m (ただし、 nは自然数、 Xは自然数)
を満たすようにべき乗剰余演算ュニッ トを X個接続することにより最大 2 nビッ ト 精度の暗号化及び復号を行うための任意精度べき乗剰余演算装置を構成すること が可能となる。
なお、 任意精度乗算装置 2 1は、 任意精度除算装置 2 0の 8ビッ ト除算器を 8 ビッ ト乗算器に変更した構成とほぼ同様の構成であるので、 その説明を省略する。 また、 図 4に示すバス 2 2を光伝送路とすれば、 これら任意精度乗算装置 2 1と 任意精度除算装置 2 0との間を、 光信号により伝送することができる。
[ 6 ] 除算器の構成
次に任意精度除算装置を構成している除算器の構成について説明する。
[ 6 . 1 ] 除算器のアルゴリズム
まず、 除算器の説明に先立ち、 除算器のアルゴリズムについて説明する。
除算に関しては、 乗算ほどではないが、 いろいろなアルゴリズムが考案されて いる。 また、 信号処理においては、 除算は乗算ほど頻繁に用いられるわけではな い o
しかしながら、 信号の正規化、 コンピュータ通信や情報ネッ トワークにおける 秘匿技術としての暗号化/復号に、 音声認識における特徴抽出において、 周波数 スペク トルを基本とする線形予測係数の演算 (積和が 7 0回、 除算が 1 2回) 、
フォールト トレラントシステムにおいてなどの例に見られるように、 除算を必要 とする場合、 その実現は乗算ほど容易ではなく、 従来においては、 高精度で高速 に結果を得るための有効な手段がなかった。
除算の実現方法としては、 以下の 4種類が知られている。
(1) 変数 Xと 1/x の関係を示すルックアップテーブル (変換表) を RO M内に用意しておき、 y/xなる除算を、 y (1/X) なる乗算に置き換えて 実行する 「逆数 ROM方式」 。
(2) y/x なる除算を直接実行する代わりに、 対数 ROMにより Xと yか ら 1 o gxと 10 g yを求め、 それから z = 10 g X— 10 g yの減算を行い、 最後に指数 ROMにより exp zを求める 「対数計算方式」 。
(3)被除数に対してシフトと減算を試行錯誤的に繰り返す 「減算シフ ト方式」 。
(4) 乗算を繰り返し実行しながら結果を求めるべき商の値に収束させていく 「収束形除算方式」 。
このうち、 逆数 ROM方式が最も高速であるが、 高精度を要求するとルックァ ップテーブルを格納すべき ROMの容量が指数的に大きくなる欠点がある。 従つ て、 信号処理においては比較的粗い精度でよい場合に限られて使用されている。 次の対数計算方式も対数 ROMの容量の制約からくる精度上の検討を十分に行 つたうえで用いる必要があり、 その意味でも以上の二つの ROM方式はどのよう な場合にも用い得る汎用的な方法とは言い難い。
以上の 4方式のうち、 どのような精度に対しても除算可能な方式は減算シフト 方式と収束形除算方式であるといえる。
収束形除算方式は被除数と除数を分数の分子と分母とみなし、 分母が 1に近づ くまで分子分母に同一の収束係数を乗じていき、 得られた最終的な分子の値が商 になる。 あるいは、 除数の逆数を収束アルゴリズムによって求め、 商はこの逆数 と被除数の積から求めることができる。
しかし、 複数チップ (モジュール) 接続による除算能力の拡張機能を考慮した 場合、 近似演算による収束が行われる収束形除算方式では部分剰余の伝搬がさら に近似されることになり、 誤差が大きくなってしまうという問題点が生じる。
この点、 減算シフト方式ではそのような問題はなく、 任意精度で除算可能であ り、 複数チップ (モジュール) 接続による除算能力の拡張機能をも考慮した場合、 最も適しているといえる。
次に、 除算能力の拡張機能について考察する。
例えば、
567890/1 234
の除算を実行するには図 7 Aに示すように、 被除数と除数の減算が繰り返し実行 される。
ここで、 除数 2けたの除算器 (または除算モジュール) を用いて、 除数を 4け たに拡張した使用を考えてみると、 図 7 B及び図 7 Cに示すように、 除数 1 23 4を除数 12と除数 34とに分割するとともに、 被除数 567890を被除数 5 67及び被除数 890とに分割し、 12と 34の除数で分散処理した結果から除 算能力の拡張した解 (図 7A相当) を得るという乗算器のような使い方 (乗算に おいては可能) はできない。
従って、 除算は使用可能けた数の範囲内で有効であり、 1ビッ トでも除算能力 を超えた使用に対しては、 たとえメモリ一や外部回路を用いても容易には対処で きない。
また、 除算においては通常丸め操作を行うが、 暗号/復号システムにおいては、 このような使用はできない。
以上のような理由によって、 従来においては、 ハ一ドウエア化された除算器は 少なく処理速度の遅いソフ トゥエアで対処していた。
ところで、 本除算器のアルゴリズムは被除数に対してシフトと減算を試行錯誤 的に繰り返す 「減算シフト方式」 に基づいたもので、 その一般的な基本式は以下 の漸化式で表される。
R (0,/D =∑ 2"^ι+ ( 2— nR (n)) /D
∑ 2— が求める商 Qであり、 最終剰余 Rは 2— nR (n)である。 各演算工程における商のディジヅ ト qj + 1は 2 Rと Dの大小関係で以下のように 疋まる。
2 R (j) <Dの場合、 q j + 0
2 R (j) Dの場合、 q j + 1= 1
つまり、 まず仮の部分剰余 R + (=2R (j)—D) を求めて、 部分剰余 R (j + 1)が正または "0"ならば qj + 1= 1が求まり、 真の部分剰余とする。 もし、 部分剰余 R + が負ならば、 q j + 1=0で仮の部分剰余の減算を取消す。
以上の操作は、 R (n)を nディジッ トだけ右にシフトすることから求まること を先の漸化式は意味している。
しかし、 以上の漸化式は単に nディジヅ トの商に対してのものである。 除算デ 一夕を各モジュールに分散した場合、 各モジユールの被除数と除数はそれそれ連 結した状態で行われなければならない。
一般に、 除数に対して被除数のけた数が多いため、 分散した除数を連結して被 除数との減算を行うことは、 除数の連結とそれに伴う減算器ゃラツチ回路の連結 などにより容易には実現できなかった。
これに対し、 本実施例の除算器は、 分散した除数と減算器は各モジュール内に 固定し、 被除数を連結してシフ 卜と減算を行うようにしてモジュールの分散化を 可能にしている。
この場合、 筆算とは逆に除数を固定した減算なので被除数は左シフトになる。 例えば、 簡単のために 1モジュ一ルが 4ビッ ト除算器について 2モジュールに 拡張したときの各ステップの動作を図 8に示す。
2モジュールに分散した除数は減算器とラッチ回路を伴ってそのけた借り用端 子 BOと BNで連結される。 被除数は Q Iと QO端子により連結されて初段の R
Iに戻される。 除数部分は各モジュールに固定で、 被除数が必要なけた数だけ左 シフ トと減算を繰返して演算を終了する。
商 qと部分剰余は各減算処理における減算結果によって決まるものである。 な お、 演算は 8ビッ トの減算器の場合、 7ステップで終了し、 8ステップ目では商 q 0の格納だけになる。 この結果、 後述の被除数ラッチ · シフ ト回路 3 2 (図 9 参照) に商データ Qが、 後述の部分剰余のシフ ト回路 3 4 (図 9参照) には剰余 デ一夕が得られることとなる。
[ 6 . 2 ] 除算器の概要構成
図 9に第 1除算器 2 5 — 1を例として除算器の概要構成ブロック図を示す。 第 1除算器 2 5— 1は、 入力された 8ビッ ト除数データをラッチする除数ラッ チ回路 3 1と、 被除数データをラッチし、 シフト操作を行うための被除数ラッチ • シフ ト回路 3 2と、 被除数デ一夕に対応する被除数から除数データに対応する 除数を減算する並列減算回路 3 3と、 部分剰余デ一夕を格納し、 シフ ト操作を行 う部分剰余シフ ト回路 3 4と、 除算に必要なシフ トパルスを発生する制御回路 3 5と、 を備えて構成されている。
[ 6 . 3 ] 除算器の動作
次に除算器の動作について図 1 0を参照して説明する。
時刻 t 1において、 除算開始パルス/ S T A T (/はロウアクティブを示す。 以下、 同様) が立ち下がると、 除算開始パルス/ S T A Tの次の立ち上がり (時 刻 t 2 ) までの間に第 1除算器 2 5 - 1は初期化される。
次に時刻 t 2以降で基準クロック信号 C Kが最初に立ち下がる時刻 t 3におい て被除数デ一夕 ( 8ビッ ト) が被除数ラッチ ·シフト回路 3 2にラッチされ、 除 数デ一夕 (8ビッ ト) が除数ラッチ回路 3 1にラッチされる。
そして、 時刻 t 4において、 基準クロック信号 C Kが次に立上ると、 並列減算 回路 3 3において、 被除数と除数の減算が行われ、 減算結果が正または " 0 "なら ば、 切換スィッチ 3 6は並列減算回路 3 3側となり、 並列減算回路 3 3の減算結 果が負であるならば切換スィツチ 3 6は、 部分剰余シフ ト回路 3 4側となる。 この結果、 時刻 t 5において、 部分剰余シフ ト回路 3 4の部分剰余デ一夕がシ フ トされるとともに、 並列減算回路 3 3の減算結果である部分剰余デ一夕あるい は減算前に部分剰余シフト回路 3 4に保持されていた減算前の部分剰余データが
部分剰余シフ ト回路 34にラッチされる。
同様に時刻 t 5〜時刻 t 6の間に被除数が必要な回数だけ、 すなわち、 全 8ビ ッ トであるから残りの 7ビッ トに対応する 7回の被除数と除数の減算処理及び部 分剰余シフ ト回路のシフト処理及びラツチ処理が繰り返される。
そして時刻 t 6において、 基準クロヅク信号 CKが立ち下がると、 除算終了信 号/ D ENDが "L"レベルとなり、 上位桁の減算器 (ここでは、 第 2減算器 25 一 2) が同様に動作を開始することとなる。
そして、 さらに上位桁の減算器 25— 3〜25— Jにおいて同様の除算動作が 行われて、 最後の減算器 25— Jの除算終了信号/ D ENDが第 1減算器 25- 1に出力されると減算処理を終了することとなる。
これらの結果、 各減算器 25— 1〜25— Jの被除数ラツチ . シフト回路 32 には商データ (8ビッ ト) が求められ、 部分剰余シフ ト回路 34には剰余データ がそれそれ求められることとなる。
以上の動作はすべて制御回路 35が出力するシフトパルス S L Aに同期して行 われるため、 多くの減算器をカスケ一ド接続して除算能力を拡張した際にも伝搬 遅延によるタイミング的な誤動作を生じることはない。
[7] 暗号化処理及び復号処理 (剰余演算処理)
R S Aに基づいた公開鍵暗号方式の暗号化及び復号処理 (剰余演算処理) につ いて図 11を参照して説明する。
AN≡A mod n
の剰余演算では本暗号/復号システムにおいて A、 N、 nの各値を入力する (ス テツプ S 31 ) 。
次に Aを A 1に代入し (ステップ S 32 ) 、 演算用変数 kの初期値を 1とする (ステップ S 33) 。
そして、 演算用変数 kが N未満である間、 すなわち、 次式
k<N
を満たしている間 (ステップ S 39) は、 以下のステップ S 34〜ステップ S 3 8の処理を繰り返す。
まず、 N= 1であるか否かを判別する (ステップ S 34) 。
ステップ S 34の判別において、 N= lである場合には、 A 1を AOに代入す る (ステップ S 35) 。
また、 N≠ lである場合には、 A 1及び Aの乗算を行い、 乗算結果を AOに代 入する (ステップ S 36)
そして、
A 0≡ A mod n
を求め (ステップ S 37) 、 演算用変数 kを k+ 1とする (ステップ S 38) 。 そして、 演算用変数 kが N以上となった場合に、 得られた剰余 Aが求める剰余 となる。 このとき、 乗算の最大精度は Aのビッ ト数の 2倍である。
このように、 本第 1実施例のべき乗剰余演算装置を用いれば、 図 16の従来の 処理と比較して処理を非常に単純化することができる。
[8] べき乗剰余演算装置のゲート数
ここで、 べき乗剰余演算装置を構成する際に必要とされるゲート数について説 明する。
周知のように暗号 Z復号システムにおける剰余演算では極めて高精度であるこ とから、 1モジュールの乗算器の乗算精度を 16ビッ ト、 1モジュールの除算器 の除算精度を 32ビッ トとして、 1ュニッ 卜にそれそれ 4モジュールを内蔵 (乗 算 16〜 64ビッ ト、 除算 32〜 128ビヅ 卜の可変精度) した場合のゲ一ト数 を図 12に示す。
図 12に示すように、 1モジュールの 32ビヅ ト精度除算器を構成するために は、 1700ゲート必要であり、 べき乗剰余演算装置 1ユニッ ト中の任意精度除 算装置では、
1700 x4 = 6800 [ゲート]
が必要となる。
また、 図 12に示すように、 1モジュールの 16ビッ ト精度乗算器を構成する ためには、 1032ゲート必要であり、 べき乗剰余演算装置 1ユニッ ト中の任意 精度乗算装置では、
1032 x 4 = 4 128 [ゲート]
が必要となる。
従って、 べき乗剰余演算装置に必要とされるゲート数は、
6800 + 4 128= 10928 [ゲート]
であり、 制御回路及び動的な接続回路を含めて一つのべき乗剰余演算装置を 12 000 [ゲート] 程度でワンチップ化することが可能となる。
なお、 5 12ビッ ト精度では 8ユニッ ト、 1024ビッ ト精度では 1 6ュニッ トをそれそれ必要とする。
[ 9 ] 演算時間
次に上記べき乗剰余演算装置を用いて、
a b≡M mo d c
を演算する場合に要する演算時間ついて図 1 3 A〜図 13 C、 図 14及び図 1 5 を参照して説明する。
指数 bが nビッ トの場合、 べき乗剰余演算に必要な演算処理は、 図 13Aに示 すように、 ( 1) 〜 (4) の 4段階の乗算処理及び除算処理に分解することがで きる。 この場合において、 ( 1 ) 及び (3) の乗算は、 図 138の丄ビッ ト乗算 器 2 1にて実施され、 (2) 及び (4) の除算は、 図 13 Bの 2 iビヅ ト除算器 20にて実施される。 ( 1) 及び (3) の乗算処理における乗算精度は、 最大 c のビット数 i以下となり、 その積は最大で cのビッ ト数 iの 2倍精度となる。 ま た、 (2) 及び (4) の除算 (剰余演算) 処理における除算精度は、 最大で cの ビヅ ト数 iの 2倍の精度となる。 この iビッ ト乗算器 2 1と 2 iビヅト除算器 2 0とは、 図 5の任意精度乗算装置 2 1と任意精度除算装置 20と同様の構成を有 する。
なお、 図 1 3Bにおいて、 入力される値は a, b, cであり、 Mが格納される レジス夕には、 当初の Mは 1に初期化されている。 そして、 M Mx a mo d cの演算 (b = 0) では、 a, Mが iビッ ト乗算器 2 1に入力され、 その結 果を cで割った余りを Mとして格納する。 また、 a a2 mo d cの演算 (b = 1 ) では、 iビヅ ト乗算器 2 1に 2つの aを入力することにより a 2が求められ
る。
ここで、 図 13 A中の ( 1 ) では r 12, r 22, r 33…の演算が iビッ ト乗算 器 2 1で実施され、 図 13A中の (2) では r I2, r 22, …をそれそれ cで割 つた余りが r 2, r 3- (計算途中の M) として、 2 iビッ ト除算器 20で求め られる。 図 13A中の (3) では、 kl = r l xr2、 k 2 =RO x r 3, k 3 =R 1 xr4…の乗算が iビヅ ト乗算器 21で実施される。 また、 図 13A中の (4) では、 K 1 , K 2, …を cで割った余りがそれそれ R 0, R 1, … (計算 途中の M) として、 2 iビヅ ト除算器 20で求められ、 最終段階で kn— 2を c で割った余り Rn— 3が求めるべき値 Mとなる。
この計算例の実例を図 13 Cに示す。 図 13 Cは、 18619≡M mod 3 77を復号して M= 17を求めた計算手順を示している。
図 13 Cにおいて、 ( 2 ) の剰余の値 「289」 , 「204」 , 「146」 , 「204」 は、 1862, 2892, 2042, 1462をそれそれ 377で割った 余りとして求められる。 また、 ( 3 ) の積の値は、 53754= 186 x289, 44880 = 220x 204として求められる。 さらに、 (4) の M= 17は、 44880を 377で割った余りとして求められる。
ここで、 図 13八の&、 b、 cが全て 1024ビッ トである場合の最大演算時 間を必要な基準クロック数で表すと、 図 14に示すように、 ( 1) の乗算時間に 1047552 [クロック] 、 ( 2 ) の剰余演算時間に 2095104 [クロッ ク] 、 (3) の乗算時間に 1047552 [クロック] 、 (4) の剰余演算時間 に 2095104 [クロック] 必要であり、 合計で 6285312 [クロック] 必要となる。
この結果、 基準クロック周波数を 66 [MHz] として演算を行った場合、 演 算時間は、 95. 2 [ms e c] となる。
同様に、 a及び bが 1024ビッ トであり、 指数 bのビット数を 512ビット 及び 9ビッ トとした場合の演算時間は、 図 15に示すように、 それそれ 47. 6 [ms e c] , 0. 7 [ms e c] となる。 ただし、 これらの演算時間は、 毎回 の積及び剰余を最大精度とした時の算出結果であるため、 実際には、 これらの値
よりも小さな値となる。
以上の説明のように第 2実施例によれば、 乗算精度 2 mビッ ト (m : 自然数) 、 除算精度 22 mビッ トでべき乗剰余演算を行うべき乗剰余演算ュニッ トを構成し、 x = 2n/2ra (ただし、 nは自然数、 Xは自然数)
を満たすようにべき乗剰余演算ュニッ トを X個接続することにより、 2nビッ ト精 度の暗号化及び復号を行うことが可能となる。 このため、 容易にシステムのハー ドウエア的な拡張を図ることが可能となっている。
なお、 上記 Xの関係式はべき乗剰余演算ュニッ 卜の最大演算精度が要求される 演算精度と等しい場合であったが、
x> 2n/2m (ただし、 nは自然数、 Xは自然数)
を満たすようにべき乗剰余演算ュニッ トを X個接続することによつても演算能力 に余裕が生まれるだけで、 同様の効果が得られる。
さらに、 べき乗剰余演算ュニッ 卜で演算可能なビッ ト精度 2 nよりも低いビッ ト 精度 2nl (n lは自然数、 かつ、 n l ≤ n) が要求された場合には、 接続されて いる X個のべき乗剰余演算ュニッ トのうち、
x≥x 1≥ 2nl/2m (ただし、 x lは自然数)
を満たすように X 1個のべき乗剰余演算ュニッ トをカスケ一ド接続するように構 成すれば、 演算に不要なべき乗剰余演算ュニッ 卜には電力を供給する必要がない ので、 消費電力の適正化が図れるととともに、 演算処理時間の適正化が図れるこ ととなる。
さらにべき乗剰余演算ュニッ トを、 カスケード接続可能な y個の乗算精度 2 ω/ y、 y個の除算精度 22 ' (ra/y)でべき乗剰余演算を行うべき乗剰余演算モジュール で構成することができる。 この場合、 接続されているべき乗剰余演算モジュール のうち、 2111ビッ ト精度の暗号化及び復号を行うのに十分な個数 y 1≥ 2nl/2 m/yのべき乗剰余演算モジュールをカスケ一ド接続するようにすれば、 さらなる消 費電力の適正化及び演算処理時間の適正化が図れることとなる。
また、 第 2実施例によれば、 除算の分散処理を実現した任意精度除算器を 12 8ビッ ト精度とし、 任意精度乗算器を 64ビッ ト精度でワンチップ化しても約 1
万 2千ゲート規模で済み、 その乗除算ユニッ ト (チップ) を 8 〜 1 6ユニッ ト力 スケ一ド接続することにより 5 1 2 〜 1 0 2 4ビッ ト精度に容易に対応可能であ る。 同様にさらなる高精度化も容易に実現することができる。
そして、 演算は精度に比例したクロック数 (例えば、 5 1 2ビッ ト精度では 5 1 2クロック) で実行し、 ボード上に完全なハードウェアで構築できるので高速 化が可能である。
また、 各パーソナルコンピュータシステム毎に暗号/復号システムを容易に構 築することができ、 情報セキュリティの意味からも望ましい暗号/復号システム を実現することが可能である。
また、 上記説明においては、 最大で X個のべき乗剰余演算ユニッ トが設けられ ている場合について説明したが、 例えば、 べき乗剰余演算ユニットを T F T (Th in Fi lm Transistor) で構成した場合には、 欠損などにより不良トランジスタが 発生することにより 1個のべき乗剰余演算ュニッ 卜が使用できないだけで、 べき 乗剰余演算ュニッ ト全体が使用できなくなり、 実効的な歩留まり率が低下するこ ととなり、 製造コストの上昇を招くこととなる。
そこで、 べき乗剰余演算ユニッ トの歩留まり率 Aに対して、 少なくとも K個 ( x≥K /A ) のべき乗剰余演算ユニッ トを予め用意し、 K個のべき乗剰余演算 ユニッ トのうち良品べき乗剰余演算ュニットを X個接続するように冗長構成を採 用することが好ましい。 こうすると、 べき乗剰余演算モジュールに不良が発生し た場合でも、 冗長べき乗剰余演算モジュールに接続切換を行うことにより、 その ベき乗剰余演算ュニッ トは良品として扱うことが可能となる。
さらにこのことは、 べき乗剰余演算ユニッ トばかりでなく、 べき乗剰余演算ュ ニッ トを構成するべき乗剰余演算モジュールについても同じことが言える。 すな わち、 べき乗剰余演算モジュールの歩留まり率 A'に対して、 各べき乗剰余演算ュ ニッ ト中に少なくとも L個 (y≥L /A' ) のべき乗剰余演算モジュールを予め用 意し、 L個のべき乗剰余演算モジュールのうち良品べき乗剰余演算モジュールを y個接続するように冗長構成を採用する。 こうすると、 べき乗剰余演算モジユー ルに不良が発生した場合でも、 冗長べき乗剰余演算モジュールに接続切換を行う
ことにより、 そのべき乗剰余演算ュニッ 卜は良品として扱うことが可能となる。 以上の説明においては、 公開鍵暗号方式の R S A暗号の場合について説明した が、 楕円曲線暗号にも同様に適用が可能である。
(第 3実施例)
上記第 2実施例においては、 全てのべき乗剰余演算装置をパーソナルコンビュ 一夕システムの外部に設けていたが、 この第 3実施例は、 べき乗剰余演算装置の 一部を予めパーソナルコンピュータシステムの内部に設け、 精度拡張のためのベ き乗剰余演算ュニッ ト用拡張スロヅ トをパーソナルコンビュ一夕システムに予め 設け、 メモリの拡張をメモリ拡張スロッ トにより行う場合と同様に、 べき乗剰余 演算ュニッ トを拡張スロッ 卜に装着することにより容易に演算精度拡張を行える ようにした実施例である。
より詳細には、 図 4に示すパーソナルコンピュータシステム 1 1のメインボ一 ド上に予め、 乗算精度 2 m lビッ ト (m l : 自然数で固定) 、 除算精度 2 2 m lビッ トでべき乗剰余演算を行う内部べき乗剰余演算ュニッ トと、 乗算精度 2 m2ビット (m 2 : 自然数で固定) 、 除算精度 2 2 m 2ビットでべき乗剰余演算を行う外部べ き乗剰余演算ュニットをカスケ一ド接続するためのカスケ一ド接続端子としての べき乗剰余演算ュニッ ト用拡張スロッ トを設けておく。 そして、
z≥ ( 2 n - 2 ffi l ) / 2 m 2 ( n, zは自然数で固定)
を満たすように、 べき乗剰余演算ュニッ ト用拡張スロッ 卜に外部べき乗剰余演算 ユニッ トを接続する。 この結果、 2 nビット精度の暗号化及び復号を容易に行うこ とが可能となる。 この外部べき乗剰余演算ユニッ トに関しても、 第 2実施例にて 説明した各種の変更が可能である。
以上の実施例においては、 パーソナルコンピュータにより本発明を実現する場 合についてのみ説明したが、 ワークステーションや、 各種計測機器、 家電製品な どの機器への組込型コンピュータについても同様に適用が可能である。
(第 4実施例)
次に、 第 1〜第 3実施例の中で説明した 1チップ内での光伝送について説明す る。
(マイクロコンピュー夕の概要)
図 17は、 本発明を適用した情報処理システムとしてのマイクロコンピュー夕 100の一例を示すブロック図である。
図 17において、 マイクロコンピュー夕 100は、 下記の各種機能ユニッ トを 含んでいる。 すなわち、 CPU (中央処理ュニッ ト) 102、 ROM (リード ' オンリー 'メモリ) 104、 キャッシュメモリとしての RAM (ランダム · ァク セス 'メモリ) 106、 高周波発振回路 108、 低周波発振回路 1 10、 リセッ ト回路 112、 プリスケーラ 1 14、 16ビットプログラマブル夕イマ 116や 8ビヅ トプログラマブル夕イマ 118やクロック夕イマ 120などのタイマ回路、 インテリジェント DMAC (ダイレクト ·メモリ 'アクセス · コントローラ) 1 22や高速 DMA C 124などのデ一夕転送制御回路、 割り込みコントローラ 1 26、 シリアルイン夕一フエ一ス 128、 B CU (バス · コン トロール 'ュニッ ト) 130、 A/D (アナログ/デジタル) 変換器 132や D/A (デジタル/ アナログ) 変換器 134などのアナログィン夕ーフェース回路、 入力ポート 13 6や出力ポート 138や I/O (入力/出力) ポート 140などの I/O回路が、 マイクロコンピュー夕 100内に配置されている。 さらに、 マイクロコンビュ一 夕 100は、 CPU102と他の機能ュニッ ト 104〜 140と間を接続するデ —夕バス 142ゃァドレスバス 144などのバスライン 146や、 各種端子 14 8を含んでいる。 これらは、 一枚の半導体基板上に形成されている。 なお、 図 1 7ではデ一夕バス 142とアドレスバス 144とを分離しているが、 デ一夕とァ ドレスとを時分割で伝送するようにすれば、 デ一夕/ァドレスバスとしてデ一夕 とアドレスとを 1本のラインで兼用して伝送させてもよい。
また、 図 17に示すバスライン 146には、 図 2に示す内部バス 4が接続され、 上述した各構成はマイクロプログラマブルプロセッ トュニット 3にも接続されて いる。
(各種機能ュニッ ト間での光信号の送受信のための構成)
本実施例の特徴は、 デ一夕バス 142、 アドレスバス 144、 内部バス 4を伝 送される信号を光信号としたことである。 すなわち、 多チャンネルのデータ例え
ば 3 2ビッ トのデータは、 それそれ波長の異なる光信号として、 光伝送媒体にて 形成されたデータバス 1 4 2中を同時に光伝送される。 アドレス信号も同様に、 波長の異なる多チャンネルの光信号として、 ァドレスバス 1 4 4を同時に光伝送 される。 なお、 データバス 1 4 2及びアドレスバス 1 4 4が 1本の光伝送媒体に て兼用される場合には、 光信号のデ一夕及びァドレスは時分割にて伝送される。 ここで、 上述の機能ュニッ ト 1 0 2〜 1 4 0は全て、 従来通り、 多チャンネル の電気信号にて各種機能を実現するために動作し、 半導体素子等にて形成されて いる。 このため、 各種の機能ュニッ ト 1 0 2〜 1 4 0は、 バスライン 1 4 6 (デ 一夕バス 1 4 2及び/又はァドレスバス 1 4 4 ) を介して入力される多チャンネ ルの電気信号を多チャンネルの光信号に変換する信号入力部と、 多チャンネルの 電気信号を多チヤンネルの光信号に変換してバスライン 1 4 6に出力させる信号 出力部とのいずれか一方または双方を有する。
図 1 8は、 マイクロコンピュー夕 1 0 0が形成された基板 2 0 0の一部を概略 的に示す図である。 図 1 8には、 基板 2 0 0上に形成された第 1の機能ユニット 2 1 0 (機能ュニヅ ト 1 0 2 ~ 1 4 0のいずれか一つ) より第 2の機能ュニッ ト 2 2 0 (機能ュニヅ ト 1 0 2〜 1 4 0の他の一つ) に向けて、 バスライン 1 4 6 を介して信号を送出するための構成が図示されている。
第 1の機能ュニッ ト 2 1 0は、 電気回路領域 2 1 2と、 その電気回路領域 2 1 2からの出力信号 (多チャンネルの電気信号) を伝送する配線部 2 1 4と、 多チ ャンネルの電気信号に基づいてそれそれ波長の異なる多チャンネルの光信号を発 光出力する信号出力部としての発光部 2 1 6とを有する。
第 2の機能ュニッ ト 2 2 0は、 多チャンネルの光信号を多チャンネルの電気信 号に変換する信号入力部としての受光部 2 2 2と、 多チャンネルの電気信号を増 幅する増幅回路 2 2 4と、 その電気信号を伝送する配線部 2 2 6と、 電気回路領 域 2 2 8とを有する。 なお、 増幅回路 2 2 4は、 受光部 2 2 2からの電気信号の 電圧レベルを、 第 2の機能ュニヅ ト 2 2 0にて必要な電圧レベルまでシフトさせ るレベルシフ夕として機能し、 必要に応じて設けられる。
発光部 2 1 6と受光部 2 2 2との間に形成されるバスライン 1 4 6は、 光伝送
媒体である導波路 2 3 0として構成され、 多チャンネルの光信号を同時に伝送す る。
図 1 8に示す発光部 2 1 6は多チャンネルの電気信号を多チャンネルの光信号 に変換するために、 多チャンネルの数と等しい数の発光素子を有する。 同様に、 受光部 2 2 2も多チャンネル分の受光素子を有する。
なお、 第 1 , 第 2の機能ュニッ ト 2 1 0, 2 2 0間で双方向の信号伝送を行う こともできる。 この場合、 第 1の機能ュニヅ ト 2 1 0は、 図 1 8に示す光伝送媒 体としての導波路 2 3 0と光学的に接続された受光部と、 該受光部からの電気信 号を増幅する増幅器とを有する。 一方、 第 2の機能ユニッ ト 2 2 0は、 導波路 2 3 0と光学的に接続された発光部 2 2 2を有する。
図 1 9は、 図 1 8に示す発光部 2 1 6のうちの一部である 3つの発光素子 2 1 6 A〜2 1 6 C及び導波路 2 3 0の一例を示す断面図である。 図 1 9では、 共通 の導波路 2 3 0上に 3チャンネル分の発光素子 2 1 6 A〜2 1 6 Cが形成されて いる状態が図示されている。
図 1 9において、 導波路 2 3 0は、 例えば、 下層の S i 02層 2 4 0と上層の S i 0 2層 2 4 2との間にコアとなる透明電極例えば I T〇 (インジウム ·ティン - ォキサイ ド) 層 2 4 4を設けて構成される。 なお、 コアとなる I T 0層 2 4 4の 全ての外表面は、 S i 0 2層 2 4 0または S i 0 2層 2 4 2により覆われて光漏れ が防止されている。
発光素子 2 1 6 A〜2 1 6 Cは、 後述するように一部の層の組成、 材料等が異 なる点を除いて同一の構成を有するため、 以下発光素子 2 1 6 Aについて説明す る。 発光素子 2 1 6 Aは、 上層の S i 0 2層 2 4 2上に、 各チャンネルの発光箇所 を仕切るためのバンク 2 5 0を有する。 このバンク 2 5 0内には、 I T O層 2 5 2、 発光層 2 5 4が順次積層され、 発光層 2 5 4及びバンク 2 5 0の一部を覆つ て金属電極 (例えば A 1 _ L i ) 2 5 6が形成されている。 なお、 I T O層 2 5 2の下層に、 狭帯域の波長を通過させる光学フィル夕一を形成してもよい。 この ようにして、 導波路 2 3 0上には、 バンク 2 5 0により光学的に隔絶された複数 の発光素子 2 1 6 A〜2 1 6 Cなどが形成される。
発光素子 216 Aの発光層 254は、 例えば有機 EL (エレクトロルミネッセ ンス) にて形成される。 この有機 ELは、 例えば図 20に示すように、 インクジ ェヅ トノズル 258より I TO層 252上に吐出され、 例えば約 0. 1〃mの膜 厚にて形成される。 そして、 有機 E Lの材料を選択することで、 あるチャンネル の発光素子 216 Aの発光層 254から発光される光の波長を、 他の全てのチヤ ンネルの発光素子 216 B, 216 C等の発光層 254の発光波長と異ならせて いる。
発光層 254として有機 ELを用いると、 発光波長の選択の自由度が大きく、 事実上特定の材料を選択したり、 材料を復号することで、 あらゆる波長の選択が 可能である。
有機発光材料としては、 発光材料中の励起子のエネルギーが有機物質の禁止帯 幅に対応する HOMO (最高被占準位) 一 LUMO (最低空準位) 間のエネルギ 一差に相当するものが選択される。 例えば、 低分子、 高分子、 特に主鎖に共役系 の発達した共役高分子、 導電性分子や色素分子が選択される。
有機発光材料として、 低分子有機材料を用いる場合、 例えば青色発光させるに は、 アントラセン、 PPCP、 Zn (OxZ) 2s ジスチルベンゼン (DSB) 、 その誘導体 (PESB) 等が用いられる。 また、 例えば赤色発光させるには、 B PPC、 ベリレン、 DCMなどが用いられる。
また、 有機発光材料として高分子有機材料を用いる場合であって、 例えば赤色 発光させるためには、 PATなど、 オレンジ色発光させるには MEH— PP Vな ど、 青色発光させるには PDAF、 FP— PPP、 RO— PPP、 PPPなど、 紫色発光させるには P MP Sなどが用いられる。
その他、 有機発光材料として、 PPV、 RO-PP V, CN— PPV、 P d p hQxヽ PQXヽ P VK (ポリ (N—ビニルカルバゾール) ) 、 PPS、 PNPS、 PB P Sなどが用いられる。
特に PVKは、 Eu錯体などキヤリア輸送能力の劣る色素分子などのドーパン トインクの混合濃度や吐出回数を制御することで発振波長 (発光色) を変えるこ とができる。 例えば、 PVKからなる有機発光材料に蛍光色素をドープすると発
光色を調整することができる。
また、 P V Kにローダミン Bや D C Mをドープ可能に構成する場合には、 発光 色を緑色から赤まで任意に変えることができる。
また、 光の波長 (ピーク波長や波長帯域など) は、 図 1 9の I T O層 2 5 2の 下層に追加配置される光学フィル夕一によってある程度調整可能である。
白色光のような波長帯域の広い光が発光され、 その波長を調整する場合は、 上 記光学フィル夕一として、 通常の吸収型の光学カラ一フィル夕一を用いることが でき、 これにより所望の色 (波長) の光のみを通過させて光信号とすることがで きる。
また、 I T O層 2 5 2の下層に追加配置される光学フィル夕としては、 分布反 射型多層膜ミラ一 (D B Rミラー) を用いることができる。 この D B Rミラ一は、 屈折率の異なる複数の薄膜を積層したもの、 特に屈折率の異なる 2種類の薄膜で 構成されたペアを複数有するものである。 この薄膜を構成する成分としては、 例 えば半導体材料や誘電体材料なとが挙げられ、 これらのうちでは誘電体材料が好 ましい。 これらは、 通常の真空成膜法あるいは液相成膜法を用いて形成すること ができる。 また、 誘電体材料は、 有機溶媒に可溶な有機化合物を出発原料として 用いることができ、 この場合図 2 0のインクジエツ ト方式によるパターン形成の 適用が可能となる。
発光素子 2 1 6 A〜2 1 6 Cは、 垂直共振器型の面発光レーザとすることもで きる。 この面発光レーザは、 それそれ反射率が異なる 2つのミラー例えば分布反 射型多層膜 (D B R ) ミラー (図 1 9の例では下層のミラーの反射率が低い) の 間に、 クラッ ド層及び活性層 (量子井戸構造が好ましい) を交互に積層させて形 成し、 上下各層のミラ一と上下各層の電極 (図 1 9の例では下部電極は I T Oな どの透明電極である) との間にはそれぞれコンタク ト層が配置されて形成される。 なお、 この種の面発光レーザの詳細は、 本願出願人の先の出願 (特願平 1 0— 2 0 1 2 4 1 5、 特願平 1 0— 2 0 1 2 4 4、 特閧平 7— 1 9 8 2 0 3など) に 開示されているので、 その詳細な説明は省略する。
各チャンネルの面発光レーザの発光波長も、 ェピタキシャル成長される材料例
えば Ga A 1 Asの組成を選択することで変更可能であり、 図 20のインクジェ ッ ト方式によるパターン形成によって、 組成の異なる複数の面発光レーザを導波 路 230上に実装することができる。
発光素子 216 Aのさらに他の例として、 図 22に示すような端面発光レーザ 270を用いることもできる。 この端面発光レ一ザ 270の端面 272から出射 された光 274は、 I TOなどの光伝送媒体にて形成されたウエーブガイ ド 27 6内を伝搬される。 各チャンネルの端面発光レーザの発光波長も、 その構成材料 の組成を選択することで変更可能である。
図 21は、 図 19に示す導波路 230の延長線上に設けられた 3チャンネル分 の受光素子 222 A〜222 Cの一例を示している。 この受光素子 222 A〜2 22 Cも後述する一部の層の組成、 材料等が異なる点を除いて共通の構成を有す るため、 以下受光素子 222 Aについて説明する。 この受光素子 222 Aは、 導 波路 230の上層の S i 02層 242が除去された領域の I TO層 244上に、 光 学フィルタ一 262と、 透明電極としての I TO層 263と、 第 1導電型半導体 層例えば n型 GaAl As層 264と、 第 2導電型半導体層例えば p型 G a A 1 As層 266と、 金属電極 268とを有する。
ここで、 第 1 , 第 2導電型半導体層 264, 266は P I Nフォトダイオード を構成する。 この P I Nフォトダイオードを構成する他の例として、 p型 a— S i C (p型半導体) と、 i型 a— S i層と、 n型 a— S i C層とを有するもので もよい。 このとき、 金属電極 268として、 A 1— S i— Cu層を用いることが できる。
光学フィル夕一 262は、 例えば X 1 nm以上の波長の光を通過させる第 1の 光学フィル夕一と、 X2 (>X 1 ) nm以下の波長の光を通過させる第 2の光学 フィル夕一との少なくとも 2層を有し、 X 1〜X 2 nmの波長の光を通過させる 狭帯域光フィル夕一として機能する。 なお、 この光学フィルター 262の構成を、 図 19の I TO層 252の下層に追加配置される光学フィル夕一に適用すること もできる。 逆に、 図 19の I TO層 252の下層に追加配置される光学フィル夕 —として説明した材料を、 光学フィルター 262に用いることもできる。
上記の構造により、 導波路 230を伝搬され、 光学フィルター 262を通過し た特定波長の光は、 第 1 , 第 2導電型半導体層 264, 266の間の界面に形成 される空乏層にて光一電流変換され、 この電気信号を電極 263 , 268を介し て取り出すことができる。
ところで、 光学フィル夕一 262は、 その構成材料の選択により、 通過される 光の波長を変更できる。 また、 第 1 , 第 2導電型半導体層 264, 268などに て構成されるフォトダイオードも、 構成材料例えば GaAl Asの組成を選択す ることで、 検出できる光の波長を変更できる。 これにより、 あるチャンネルの受 光素子 222 Aにて検出される光の波長を、 他の全てのチャンネルの受光素子 2 22 B, 222 Cなどでの検出波長と異ならせている。 なお、 光学フィル夕 26 2、 第 1 , 第 2導電型半導体層 264, 268は、 図 20に示すィンクジェッ ト ノズル 258を用いた層形成方法により形成することができる。 あるいは、 検出 波長の異なる受光素子 222 A, 222 B, 222 Cを、 導波路 230上に実装 してもよい。
(マイクロコンピュー夕の動作説明)
図 17に示す CPU 102が例えばキヤヅシュメモリである RAMI 06より デ一夕を読み込む場合には、 CPU 102 RAM106を選択するチップィ ネーブルまたはチップセレクト信号、 さらには読み出しアドレス信号などが、 そ れそれ多チヤンネルの電気信号として出力される。
ここで、 図 18に示す第 1の機能回路 210が CPU 102とすると、 この多 チャンネルの電気信号は図 18の電気回路領域 212より出力される。 この多チ ヤンネルの電気信号は配線部 214を介して発光部 2 16に入力される。 発光部 216を構成する各々の発光素子は、 図 19に示す金属電極 256に各チャンネ ルの電気信号の一つが入力され、 それに基づいて発振 (発光) 制御される発光層 254にて各チャンネル固有の波長の光信号が発光される。 これにより、 各チヤ ンネル毎に発光制御された光信号が各チャンネルの発光層 254より発光され、 I TO層 252を介して導波路 230に入射される。 導波路 230では、 図 19 に示すようにコアとなる I TO層 244を光が伝搬される。
図 18の第 2の機能ュニヅ ト 220を RAM106とすると、 その受光部 22 2に、 導波路 230を伝搬された光信号が入射される。 ここで、 図 21に示すよ うに、 受光部を構成する各々の受光素子 222 A〜222 Cは、 それそれ異なる 波長の光を通過させる光学フィル夕 262を有するので、 多チャンネル分の数だ け配置された各々の受光素子 222 A- 222 Cには、 各チャンネルに対応する 波長の光のみがそれそれ入射される。 さらに、 各々の受光素子 222 A〜222 Cは、 各々の光学フィル夕 262を通過した波長の光を検出するように構成され ているため、 各チャンネル毎に電気信号を出力することができる。
その後は、 従来の L S Iなどと同様に RAM 106が電気的に駆動され、 必要 なデ一夕が RAM 106より読み出される。 RAM 106より読み出された電気 信号は、 図 18では省略した第 2の機能ュニッ ト 220側の発光部にて光信号に 変換され、 図 18に示す導波路 230を介して伝搬される。 この光信号は、 図 1 8ではした第 1の機能ュニット 210側の受光部にて電気信号に変換され、 増幅 器を介して CPU 102に供給される。
このように、 情報処理システムとしてのマイクロコンビユー夕 100内の各機 能ュニッ ト間の信号の授受を光によって行うことにより、 伝送速度のロスをほと んど無視することができる。 従って、 さらに高集積化が進んだとしても、 伝送遅 延を考慮した設計が不要となり、 回路の構築設計が大幅に簡易化される。 しかも、 マイクロコンピュー夕 100内の各機能ュニット間の信号の授受を光によって行 うことにより、 マイクロコンピュー夕 100の発熱も低減させることができる。 なお、 図 17に示すマイクロコンビユー夕 100と、 その周辺機器との間を光 通信する構成とすることもできる。 周辺機器としては、 LCDや CRTなどの表 示部、 プリン夕などを挙げることができる。
この場合、 図 17に示す入力ポート 136、 出力ポート 138、 I/Oポート 140として、 バスライン 146に対して多チャンネルの光信号を入出力する構 成とすればよい。 このとき、 光信号を入出力しない時に通路を遮断する光シャツ 夕一を各ポートに設け、 チップセレク ト信号などにより周辺機器が指定された場 合にのみ光シャツ夕一を開放する構成としてもよい。
(第 5実施例)
本発明の第 5実施例は、 従来の例えば LS Iとして 1チップ内に集積されてい た複数の機能ュニッ トを、 異なる半導体装置に振り分けて収容したシステム L S Iに関する。
図 23は、 図 17に示すマイクロコンピュー夕 100の一部の構成を第 1の半 導体装置 300に搭載し、 他の全部または一部を第 2の半導体装置 302に搭載 し、 第 1 , 第 2の半導体装置 300, 302を外部バスライン 304にて接続し たシステム L S Iをベース基板 306上に形成した状態を示している。 外部バス ライン 304は図 18で示した導波路 230の他、 例えば光ファイバ一にて形成 され、 第 1, 第 2の半導体装置 300, 302間は光により信号の授受が行われ る。 なお、 第 1の半導体装置 300及び第 2の半導体装置 302内に複数の機能 ュニッ 卜が配置される場合、 各半導体装置内での機能ュニッ ト間は第 1実施例と 同様にして光により信号の授受が行われる。
ここで、 図 23に示す第 2の半導体装置 302内に、 図 17に示すキャッシュ メモリとしての RAMI 06と、 : OM104と、 光伝送媒体で形成された内部 バスライン 310とが、 第 2の基板 312上に少なくとも搭載されている。 一方、 図 23に示す第 2の半導体装置 300内には、 図 17に示す CPU 102、 内部 バスライン 146の他、 第 2の半導体装置 302に搭載されない機能ュニッ ト 1 08〜 140が、 第 1の基板 308上に搭載されているものとする。
この構成により、 第 1の半導体装置 300内では、 CPU 102は内部バスラ イン 146を介して、 第 1の半導体装置 300内に搭載された他の機能ュニット 108〜 140との間で光信号によるデ一夕、 ァドレスの信号授受を行うことが できる。 一方、 第 1の半導体装置 300内の CPU 102と、 第 2の半導体装置 302内の ROM 104, RAM 106との間では、 第 1の半導体装置 300内 の内部バスライン 146、 外部バスライン 304及び第 2の半導体装置 302内 の内部バスライン 310を介して、 データ、 アドレスの信号の授受を光信号を用 いて行うことができる。
このような構成により、 従来は CPU 102と共に 1チップ内に納める必要が
あった機能ユニッ トの少なくとも一つを、 外部に取り出すことができ、 しかも外 部に取り出した機能ュニヅ ト 1 0 4 , 1 0 6と C P U 1 0 2との間の伝送遅延は 無視することができる。 このため、 1チヅプ化される第 1の半導体装置 3 0 0の 集積度を低くでき、 歩留まりが向上する他、 C P U 1 0 2により直接アクセスさ れる機能ュニヅトとして例えば R O M 1 0 4 , R AM 1 0 6の外付けが可能にな る。 従って、 1チップの基本設計思想を共通化させながら、 外付け素子による機 能の追加を自由に設計することが可能となる。 なお、 第 2の半導体装置 3 0 2に 等される機能ュニットとしては、 上述のようなメモリに限定されるものではない。
(第 6実施例)
図 2 4は、 本発明の第 6実施例を示す概略説明図である。 図 2 4に示すように、 本実施例では発光部、 受光部、 導波路が、 三次元に設置されている。 図 2 4にお いて、 基板 4 0 0上には第 1層〜第 5層 4 1 0 a〜4 1 0 eが形成されている。 第 5層 4 1 0 eにおける発光部 4 1 3と受光部 4 2 7の関係は、 図 1 8に示す水 平な導波路 2 3 0にて接続された発光部 2 1 6と受光部 2 2 2の関係と同じであ る。 また、 異なる層間における発光部 4 1 3と受光部 4 2 4の関係、 発光部 4 1 4と受光部 4 2 2, 4 2 5 , 4 2 6の関係、 発光部 4 1 2と受光部 4 2 1との関 係、 発光部 4 2 3と受光部 4 1 1との関係は、 導波路が垂直部分を有する点のみ が異なり、 基本的には図 1 8に示す発光部 2 1 6と受光部 2 2 2の関係と同じで ある。
このデバイスを製造するには、 下記のようにすることが好ましい。 まず、 第 1 層〜第 5層 4 1 0 a〜4 1 0 eをそれそれ異なる第 1〜第 5基板上に形成する。 次いで、 第 1層 4 1 0 aが形成される第 1基板は、 図 2 4の基板 4 0 0とするこ とができるが、 もしそうでない場合には第 1層 4 1 0 aを第 1基板から剥離させ、 図 2 4の基板 4 0 0上に転写する。 以下、 同様にして第 2層 4 1 0 b〜4 1 0 e をそれそれ第 2基板〜第 5基板から剥離させ、 位置合わせしながら図 2 4に示す 順序で基板 4 0 0上に転写して積層する。 この剥離、 転写方法は本願出願人によ る特願平 8— 2 2 5 6 4 3号などに開示されているので省略する。
このデバイスによれば、 第 4実施例と同様な効果を奏することができると共に、
さらに高集積化を果たすことができる。
なお、 本発明は上記実施例に限定されるものではなく、 本発明の要旨の範囲内 で種々の変形実施が可能である。 例えば、 上述した実施例では発光素子として有 機 E L、 半導体レーザを例に挙げたが、 これらに限らず無機 E L、 発光ダイォ一 ドなどで構成することもできる。 さらに、 受光素子としても、 P I Nフォトダイ オードに限らず、 P Nフォトダイオード、 アバランシェフオトダイオードなどの 各種ダイオード、 フォト トランジスタ、 フォトルミネッセンスなどを用いること ができる。
また、 本発明の情報処理システムであるマイクロコンピュー夕は図 1 7の機能 ュニッ トを有するものに限らず、 用途に応じて種々の規模及び種類の機能ュニッ トを配置することができる。 特に、 第 5実施例のようなシステム L S Iの一つを マイクロコンピュー夕として 1チップ化した場合には、 従来のマイクロコンピュ —夕に必要であった機能ュニッ 卜の一部を省略することも可能である。 1チップ 内より省略された機能ュニッ トは、 該 1チップと外部バスラインを介して接続さ れる他の半導体装置に搭載されればよい。
また、 本発明のマイクロコンビュ一夕あるいはシステム L S Iが搭載される電 子機器としては、 従来よりマイクロコンピュータ化されたあらゆる機器を挙げる ことができ、 特に消費電力の低下が求められる携帯用電子機器の他、 情報通信機 器、 家電、 業務用電子機器、 工作機械、 自動車部品等に好適に実施できる。
(第 7実施例)
次に、 第 2実施例または第 4実施例の構成を利用して実現される本発明の第 7 実施例に係るシステム L S Iについて、 図 2 5を参照して説明する。
図 2 5に示すシステム L S 1 5 0 0は、 開発メーカが異なる複数の機能ブロッ ク 5 0 1 , 5 0 2, 5 0 3…が搭載されたシステム L S Iである。 図 2 5に示す 3つの機能ブロック 5 0 1, 5 0 2 , 5 0 3は、 それそれ A社, B社, C社が独 自に開発したライブラリに基づいて設計されたものである。 このシステム L S I 5 0 0は、 C社によって製造されたものと仮定する。 C社は、 機能ブロック 5 0 1 , 5 0 2の焼き付けのための知的所有権に関する権利を A社及び B社から許諾
され、 このシステム L S Iを製造する。
ここで、 A社及び B社は、 C社が製造するシステム L S Iの数に基づいて、 ラ ィセンス料が計算されるとすると、 C社から正確な製造数の申告を受ける必要が あり、 ライセンス料の管理は A〜C社の全てにとって煩雑となる。
この第 7実施例は、 この種の知的所有権に関するライセンス料の管理を、 開発 メーカ、 製造メーカに負担をかけずに行うための改良に関する。
例えば A社の開発した機能プロック 5 0 1を利用するェンドユーザに、 上述し た R S A方式の復号鍵 (プライべ一トキ一) をライセンスによって開示する。 そ して、 この第 7実施例では、 システム L S I 5 0 0の利用者のうち、 復号鍵を有 するェンドユーザのみが機能プロック 5 0 1を利用できるようにしたものである < 以下、 機能ブロック 5 0 1の構成及び動作について説明する。
機能ブロック 5 0 1は、 四則演算機能エリアを有する。 この四則演算機能エリ ァは、 エンドユーザに与えられた所定の復号鍵が入力された際に、 暗号化及び復 号の少なくとも一方の演算を先ず実施する。 機能プロック 5 0 1は、 この演算が 成立した時以降初めて、 暗号化及び復号以外の一般の四則演算機能がィネーブル とされる。
具体的には、 機能プロック 5 0 1は、 図 2に示す X個の演算ュニッ ト 7— 1〜 7— Xを、 四則演算機能ユニッ トとして有している。 この中の一部が、 図 5また は図 1 3 Bに示すべき乗剰余演算ュニッ トとして共用されている。
ここで、 例えば機能ブロック 5 0 1での一般四則演算機能をイネ一ブルとする には、 第 2実施例の [ 1 ] R S A方式の原理説明の欄の ( 3 ) 式の暗号文 M e≡ C m o d nを解読することが必要十分条件として設定されている。 そこで、 ェンドユーザはライセンスにより予め取得した復号鍵を入力し、 第 2実施例の [ 1 ] R S A方式の原理説明の欄の ( 4 ) ( 5 ) 式の演算を、 機能プロック 5 0 1内の複数のべき乗剰余演算ユニッ トを用いて実施し、 暗号文を復号する。 この 復号の結果、 機能プロック 5 0 1内に設けられた図 2に示す X個の演算ュニッ ト 7— 1〜 7— Xを用いた一般の四則演算機能がイネ一ブルとなり、 機能ブロック 5 0 1を利用できるようになる。
なお、 機能ブロック 5 0 1を利用する毎に復号鍵を入力するのが煩雑であれば、 ライセンスにより取得した復号鍵を記憶する記憶部を設けても良い。
このように、 機能プロック 5 0 1には、 第 1実施例の図 2の構成が備えられ、 その一部が第 2実施例にて説明した暗号文の復号のために用いられる。
ここで、 システム L S I 5 0 0を構成する各機能ブロック間、 各機能ブロック 内での信号伝送は、 第 4〜第 6実施例の技術を利用して、 光伝送とすることがで きることは言うまでもない。