JP2000298575A - 情報処理システム - Google Patents

情報処理システム

Info

Publication number
JP2000298575A
JP2000298575A JP11106825A JP10682599A JP2000298575A JP 2000298575 A JP2000298575 A JP 2000298575A JP 11106825 A JP11106825 A JP 11106825A JP 10682599 A JP10682599 A JP 10682599A JP 2000298575 A JP2000298575 A JP 2000298575A
Authority
JP
Japan
Prior art keywords
arithmetic
bits
bit
units
precision
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.)
Withdrawn
Application number
JP11106825A
Other languages
English (en)
Inventor
Kazuhiko Amano
和彦 天野
Tsugio Nakamura
次男 中村
Hiroshi Kasahara
宏 笠原
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP11106825A priority Critical patent/JP2000298575A/ja
Publication of JP2000298575A publication Critical patent/JP2000298575A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 可変精度演算が行えるシステムをハードウェ
ア的に構築し、しかも演算の高速化を図る情報処理シス
テムを提供する。 【解決手段】 入力データに対して、処理手順に従って
演算処理して出力する情報処理システムは、処理手順に
基づいてそれぞれ最大演算精度nビットにて演算するx
個の演算ユニットと、x個の演算ユニット同士の複数の
カスケード接続端子とを有する。x個の演算ユニットの
各々は、それぞれ演算精度がn1ビットのy個(y=n
/n1)の演算モジュールと、そのy個の演算モジュー
ル同士の複数のカスケード接続端子とを有する。このy
個の演算モジュールの各々は、n1個の1ビット演算セ
ルにてそれぞれ形成されるn1段の並列演算器を1ビッ
トずつシフトさせて配置して構成され。n×mビット
(x≧m≧2)の任意演算精度の演算を行うときに、m
個の演算ユニットがカスケード接続され、各演算ユニッ
トにて(m−1)回の繰り返し演算が行われる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報処理システム
に係り、特にハードウェア構成によって任意精度の演算
を行う情報処理システムに関する。
【0002】
【背景技術】従来より、乱数発生、ウェーブレット変
換、ニューラルネットワーク、高速フーリエ演算、ディ
ジタルフィルタ等の複雑、かつ、大規模な演算を伴う場
合には、開発コスト、開発期間などの観点から特殊な用
途を除き、専用のハードウェアを用いることなく、汎用
の演算装置を用い、ソフトウェアにより実現する構成を
採っていた。
【0003】また、インターネットの普及等伴うプライ
バシイ保護や電子商取引の観点から情報セキュリティ機
構が重要性を増し、暗号技術が注目されている。中で
も、暗号強度とディジタル署名などによる認証機能があ
ることから、秘密鍵暗号方式よりも公開鍵暗号方式が期
待されている。
【0004】秘密鍵暗号方式としてはDES(Data Enc
ryption Standard)、公開鍵暗号方式としてはRSA
(Rivest Shamir Adleman criptograph)がある。
【0005】原理的には、DESはデータビット列の並
び換えや置換による方式で、RSAは極めて多ビットの
剰余演算を行う方式であり、一般に秘密鍵暗号方式に比
べて公開鍵暗号方式は数百倍遅くなる。これは、公開鍵
暗号方式においては、数百ビット以上を法とする非常に
多精度の剰余演算を行うことによる。
【0006】そこで、通常、多量のデータ列の暗号化に
は高速な秘密鍵暗号方式を用い、データ量の少ない認
証、署名および鍵の配送などには公開鍵暗号方式を用い
るように暗号方式の使い分けがなされている。
【0007】また、公開鍵暗号では、暗号強度を鍵のビ
ット長を変えることにより選択できるため、通信相手の
公開したさまざまなビット数の公開鍵を用いて演算がで
きることが求められている。
【0008】さらに、乱数発生、ウェーブレット変換、
ニューラルネットワーク、高速フーリエ演算、ディジタ
ルフィルタ等を汎用の演算装置を用いてソフトウェアに
より実現する手法においては、汎用の演算装置の演算精
度を超えて演算を行う場合に、全てソフトウェア側で対
応する必要があり、プログラミングの手間及び処理時間
の増大によりその実現が現実的ではなくなってしまう場
合が生じていた。
【0009】さらにDESではハードウェア技術を用い
て実現されなければならないと規定されているように、
ソフトウェアだけによる暗号/復号システムの場合、第
三者による解読を避けるのは事実上困難である。暗号ア
ルゴリズムの一部をハードウェア化すれば暗号強度はよ
り高いものとなる。
【0010】
【発明が解決しようとする課題】例えばRSA暗号は、
その安全性が素因数分解の困難さという数学的問題に関
しており、現在では1024ビットという極めて高精度
なべき乗剰余演算を基本としている。
【0011】このため、一般の計算機が扱える程度での
ソフトウェアによる演算では、非常に多くの演算時間を
要することから、べき乗剰余演算を効率的に実行するア
ルゴリズムあるいはハードウェアの設計が極めて重要な
課題となっている。
【0012】これまでに高速化を主眼とした多くの研究
がなされ、実際に1チップ化した例も報告されている
(電子情報通信学会論文誌 D-I Vol.J80-D-I No.8 pp.
725-735 1997-8など)。
【0013】高精度化のために専用ハードウェアを用い
る場合、高精度化に対しては大幅な集積度増が大きな問
題として挙げられる。また、計算機の性能向上により、
更に1024ビット以上のべき乗剰余演算といった高精
度化が進むと予測され、上記の高集積度増の問題はより
顕著となる。
【0014】また、公開鍵暗号システムでは暗号強度を
高めるため、さまざまなビット長の鍵を用いて、いわゆ
る可変長精度での演算が行われる。この場合、前述のシ
ステムオンチップのような大規模化が進むと、全ての回
路を最初から設計することは極めて困難となる。
【0015】本発明者等は、更なる高精度、システムの
大規模化、可変精度演算の各要求に対して、チップスラ
イス化が最も適した手段と考え、RSA公開鍵暗号のチ
ップスライス化を目指した。そして本発明者等は、ビッ
トシフトとラッチとを繰り返す順序回路方式の情報処理
システムを提案している(PCT/JP98/0558
6)。
【0016】本発明の目的は、可変精度演算が行えるシ
ステムをハードウェア的に容易に構築することが可能で
あって、しかも演算のさらなる高速化を図ることができ
る情報処理システムを提供することにある。
【0017】
【課題を解決するための手段】本発明の一態様は、入力
データに対して、処理手順に従って演算処理して出力す
る情報処理システムにおいて、前記処理手順に基づい
て、それぞれ最大演算精度nビット(n:自然数)にて
演算するx個の演算ユニットと、前記x個の演算ユニッ
ト同士をカスケード接続するための複数のカスケード接
続端子と、を有し、前記x個の演算ユニットの各々は、
それぞれ演算精度がn1ビットのy個(y=n/n1)
の演算モジュールと、前記y個の演算モジュール同士を
カスケード接続するための複数のカスケード接続端子
と、を有し、前記y個の演算モジュールの各々は、n1
個の1ビット演算セルにてそれぞれ形成されるn1段の
並列演算器を1ビットずつシフトさせて配置して構成さ
れ、n×mビット(x≧m≧2)の演算を行うときに、
m個の前記演算ユニットがカスケード接続され、各演算
ユニットにて(m−1)回の繰り返し演算が行われるこ
とを特徴とする。
【0018】本発明の一態様によれば、各演算モジュー
ルはn1個の1ビット演算セルにてそれぞれ形成される
n1段の並列演算器を1ビットずつシフトさせて配置し
て構成され、すなわちn12個の1ビット演算セルにて
構成される。この演算モジュールをy個カスケード接続
して1演算ユニットを構成し、かつその演算ユニットを
m個カスケード接続することで、各演算ユニットにて
(m−1)回の繰り返し演算を行うことで、n×mビッ
トの任意演算精度の演算を行う準並列形の演算器を構成
している。
【0019】このように、演算処理を複数の演算処理ユ
ニットにて分散処理することでハードウェア処理が容易
となり、暗号/復号、乱数発生処理、ウェーブレット変
換処理、高速フーリエ変換処理、デジタルフィルタ処理
などの演算量が多く、精度が要求される場合でも、容易
にシステムを構築して演算処理の高速化を図ることとが
できる。
【0020】PCT/JP98/05586にて提案し
た、n1ビット精度の1演算モジュールにてn1個のク
ロックに従ってシフトとラッチを繰り返す順序回路形の
ものと比較すれば、演算時間を短縮できる。
【0021】本発明の一態様において、演算処理に求め
られる演算精度をn2×mビット(n1≦n2≦n)の
任意ビット精度としたとき、n2=n1×y1(ただし
y1≦y)を満たすように、各々の前記演算ユニット内
にてy1個の演算モジュールがカスケード接続すればよ
い。このように、各演算ユニット内の演算モジュールの
接続数を変更することでも、ビット精度が可変となる。
【0022】本発明の他の態様は、入力データに対し
て、処理手順に従って演算処理して出力する情報処理シ
ステムにおいて、前記処理手順に基づいて、それぞれ最
大演算精度nビット(n:自然数)にて演算するx個の
演算ユニットと、前記x個の演算ユニット同士をカスケ
ード接続するための複数のカスケード接続端子と、を有
し、前記x個の演算ユニットの各々は、それぞれ演算精
度n1(n1<n)で、少なくとも2種の演算を行うy
2個(y=n/n1)の演算モジュールと、前記y2個の
演算モジュール同士をカスケード接続するための複数の
カスケード接続端子と、を有し、前記y2個の演算モジ
ュールの各々は、n1個の1ビット演算セルにてそれぞ
れ形成されるn1段の並列演算器を1ビットずつシフト
させて配置して構成され、n×mビット(x≧m≧2)
の演算を行うときに、m2個の前記演算ユニットがカス
ケード接続されることを特徴とする。
【0023】本発明の他の態様は、各演算モジュールは
n1個の1ビット演算セルにてそれぞれ形成されるn1
段の並列演算器を1ビットずつシフトさせて配置して構
成され、すなわちn12個の1ビット演算セルにて構成
される点で、上述の準並列形演算器と同じである。
【0024】本発明の他の態様では、この演算モジュー
ルをy個カスケード接続して1演算ユニットを構成し、
かつその演算ユニットをm2個カスケード接続すること
で、各演算ユニットにて繰り返し演算を行うことなく、
n×mビットの任意演算精度の演算を行う完全並列形の
演算器を構成している。
【0025】PCT/JP98/05586にて提案し
た、n1ビット精度の1演算モジュールにてn1個のク
ロックに従ってシフトとラッチを繰り返す順序回路形の
ものと比較すれば、完全並列形では演算時にクロックが
必要でないので、演算時間を大幅に短縮できる。
【0026】演算処理に求められる任意演算精度をn2
×mビット(n1≦n2≦n)としたときには、n2=
n1×y1(ただしy1≦y)を満たすように、各々の
演算ユニット内にて(y1)2個の演算モジュールをカ
スケード接続すればよい。このように、各演算ユニット
内の演算モジュールの接続数を変更することでも、ビッ
ト精度が可変となる。
【0027】本発明のさらに他の態様は、入力データに
対して、処理手順に従って演算処理して出力する情報処
理システムにおいて、前記処理手順に基づいて、それぞ
れ所定の演算精度にて演算する複数の演算モジュールを
それぞれ有する複数の演算ユニットと、前記複数の演算
ユニット同士及び前記複数の演算モジュール同士をカス
ケード接続するための複数のカスケード接続端子と、を
有し、演算処理に必要な所望演算精度に基づいて、必要
数の前記演算モジュール及び前記演算ユニットがカスケ
ード接続され、その演算処理に必要なクロック数は前記
所望演算精度のビット数が大きいほど増大され、そのク
ロック周波数は前記所望演算精度のビット数が大きいほ
ど低く設定されることを特徴とする。
【0028】この本発明の他の態様は、演算時にクロッ
クが必要な上述の準並列形、順序回路形等に適用があ
る。演算ユニットを準並列形または順序回路形などにて
構成した場合には、演算に必要な所望演算精度が与えら
れた場合、その所望演算精度のビット数が大きいほど、
1つのクロックにて実施すべき演算時間を長く要する。
【0029】そこで、このクロック周波数を可変とし、
所望演算精度のビット数が大きいほどクロック周波数を
低くし、所望演算精度のビット数が小さいほどクロック
周波数を高くしている。この結果、所望演算精度のビッ
ト数に合わせてその演算に必要な時間を確保するととも
に、所望演算精度のビット数の演算時間を最適化して、
無駄に演算時間を要しないようにすることができる。
【0030】上述した本発明の各態様では、各演算モジ
ュールは除算モジュール、乗算モジュールあるいはその
両者を含むべき乗剰余演算モジュールなどを有すること
ができる。
【0031】これらの各演算モジュールにて構成される
複数の演算ユニットでは、公開鍵暗号方式などに用いら
れるY=X2 mod Nの演算を分散処理することが
できる。
【0032】また、本発明の上述した各形態では、演算
ユニット間及び/または演算モジュール間を光信号によ
り信号が伝送されるようにすると、信号伝搬時間をほと
んど無視でき、演算のさらなる高速化が図れると共に、
信号伝搬遅延等に伴う設計上の制約がなくなるため情報
処理システムの設計を容易化できる。
【0033】
【発明の実施の形態】次に図面を参照して本発明の好適
な実施の形態を説明する。
【0034】(第1の実施の形態)図1(A)に第1の
実施の形態の情報処理システムのブロック図を示す。
【0035】情報処理システム10は、図1(A)に示
すように例えば2つの汎用のマイクロプロセッサにより
構成される。図1(A)において、この情報処理システ
ム10は、システム全体を制御するためのメインマイク
ロプロセッサ1と、メインマイクロプロセッサ1とバス
2を介して接続されたプログラマブルディジタルプロセ
ッサ3と、を備えている。プログラマブルディジタルプ
ロセッサ3は、メインマイクロプロセッサ1に代わって
予め設定されたプログラム(処理手順)に従って高速で
所望演算精度の演算を行うコプロセッサ(coprocesso
r)として機能する。
【0036】ここで、バス2には、図示は省略してある
が、この情報処理システム10に要求される仕様に応じ
て、キーボード、マウスなどの入力装置、プリンタなど
の出力装置、ROM、RAM等の記憶装置及びハードデ
ィスク装置などの外部装置などが直接、あるいは、イン
ターフェース装置を介して接続されている。
【0037】図2は、図1に示すプログラマブルディジ
タルプロセッサ3の構成を示している。このプログラマ
ブルディジタルプロセッサ3は、図示しないシステムR
OM、システムRAMを有し、暗号、復号処理、乱数発
生処理、ウェーブレット変換処理、高速フーリエ変換処
理、デジタルフィルタ処理などの処理手順が予めメイン
マイクロプロセッサ1側からバス2を介してロードされ
てプログラミングされる。
【0038】このプログラマブルディジタルプロセッサ
3は、全体の制御を司るコントロールユニット5と、演
算途中の各種データ、処理手順などを格納するRAM
6、ROM8と、それぞれ演算精度nビット(nは自然
数で固定)で演算を行うx(x≧2で固定)個の演算ユ
ニット7−1〜7−xと、これら演算ユニット7−1〜
7−x同士をカスケード接続するためのスイッチSW
と、アドレスデータ、命令データなどを転送するための
内部システムバス4Aと、各種データを転送するための
内部データバス4Bと、を備えている。なお、内部シス
テムバス4Aと内部データバス4Bとで、内部バス4を
構成している。また、スイッチSWは、実施の形態の構
成を図面上で理解できるように便宜的に図示したもので
ある。実際には、実効的にカスケード接続される演算ユ
ニットの数は、プログラマブルディジタルプロセッサ3
内の例えばコントロールユニット5から発生する基準ク
ロック信号の数に基づいて決定され、機械的にスイッチ
SWがオン、オフする構成ではない。
【0039】ここで、演算ユニット7−1〜7−xの各
々は、nビットの最大ビット精度にて演算が行われる。
この演算ユニット7−1〜7−xの各々は、図2に示す
ように、y個の演算モジュール9−1〜9−y(y≧2
で固定)と、それらをカスケード接続するためのスイッ
チSWとを有する。このスイッチSWも、実施の形態の
構成を図面上で理解できるように便宜的に図示したもの
である。
【0040】演算モジュール9−1〜9−yの各々は、
n1=n/yビット精度で演算を行い、(n1)2個の
1ビット演算セルを有する。n1個の1ビット演算セル
を並列接続することで並列演算器が構成され、n1個の
並列演算器が1ビットずつシフトさせて配置されること
で、各々の演算モジュール9−1〜9−yが構成され
る。
【0041】例えば、n=32ビット、y=8個とする
と、各々の演算ユニット7−1の最大演算精度がn=3
2ビットであり、各々の演算モジュール9−1〜9−y
は、n1=n/y=32/8=4ビットの精度で演算を
行うことができる。このとき、各々の演算モジュール9
−1〜9−yは、(n1)2=42=16個の1ビット演
算セルを有し、4個の並列演算器を1ビットずつシフト
させることで構成される。
【0042】そして、n×mビットの任意精度(2≦m
≦x)に拡張して演算を行う場合には、演算ユニット7
−1〜7−xの中のm個のユニットをカスケード接続
し、かつ各演算ユニットにてy個の演算モジュールをカ
スケード接続し、各演算ユニットにて(m−1)回繰り
返し演算(すなわち計m回の演算)を行う。
【0043】各々の演算ユニット7−1〜7−xでは、
必ずしもy個の演算モジュール9−1〜9−yの全てを
カスケード接続する必要はない。求められる演算のビッ
ト精度に応じて必要数y1(1≦y1≦y)個の演算モ
ジュールがカスケード接続される。すなわち、図2のプ
ログラマブルディジタルプロセッサ3のコントロールユ
ニット5は、演算ユニット7−1〜7−xに対し、メイ
ンマイクロプロセッサユニット1及び/またはRAM6
からの処理手順に基づいて、要求された任意演算精度n
2×m(n1≦n2≦n)に対応して、n2=y1×n
1を満足するように、1演算ユニット内にてカスケード
接続される演算モジュールの数y1と、カスケード接続
される演算ユニットの数mとを制御する。
【0044】ここで、図8は、説明の便宜上y=1と
し、演算ユニット7−1〜7−xがそれぞれ一つの演算
モジュールで構成された場合であって、2つの演算ユニ
ット7−1,7−2をカスケード接続した場合を示して
いる。
【0045】なお、図8は、1つの演算ユニット(1つ
の演算モジュール)がn=n1=n/y=4ビット精度
の演算を行い、全体で8ビット(n×m=4×2=8)
のビット精度で演算を行う例を示している。また、図8
に示す各演算ユニット7−1,7−2は、n2=n12
16個の1ビット演算セルとして、4列4行で計16個
の1ビット減算セル30を有し、2つの演算ユニット
(演算モジュール)にてm−1=2−1=1回の繰り返
し演算が行われて、8ビット精度の除算を行うようにな
っている。
【0046】また、図8において、4つの1ビット減算
セル30にてそれぞれ構成された第1段の並列減算器3
0A〜第4段の並列減算器30Dは、2段目から順に1
ビットずつ右にシフトされて配置されている。そして、
第1段の各並列減算器30Aに被除数を切り換えて入力
させるためのスイッチS3〜S0と、1ビットラッチ回路
32とが設けられている。
【0047】図9は1ビット減算セル30の回路構成を
示している。1ビット減算器FSにて被減数Xiから減
数Yiと下位桁からの桁借りCiとの減算、つまりXi
−Yi−Ciを行い、上位桁への桁借りCoを出力す
る。その商Riを出力するか、あるいは前の結果(X
i)を出力するかの切り換えは、減算抑止信号P,P’
で制御される。
【0048】図10は、n個の1ビット減算セルにて構
成されるnビット並列減算器を示している。図10にお
いて、n=4としたものが、4つの1ビット減算セル3
0にてそれぞれ構成される第1段の並列減算器30A〜
第4段の並列減算器30Dとなる。
【0049】同一段の並列減算器同士は、下位からの桁
借りCinの端子,上位への桁借りC0utの端子がカ
スケード接続される。最終段の並列減算器の出力Coは
NOTゲートにて反転されて、Coutから商が出力さ
れる。減算結果は正で“0”、負で“1”となるため、
各並列減算器の下位、上位の借り入出力にはNOTゲー
トを接続してある。また、最終段の並列除算器のCou
tが、減算抑止信号として、各段のPinにフィードバ
ックされる。
【0050】図11は、説明の便宜上1モジュールで構
成される1ユニットの減算器を示している。除数4ビッ
ト(Y0〜Y3)の減数に対して7ビットの被減数となる
が、被減数の上位4ビット(PR3〜PR0)は部分剰余
のフィードバック用としても用いられる。被減数の下位
3ビット(X2〜X0)としては、下位ユニットの部分剰
余7ビット(RR6〜RR0)のうち、上位3ビット(R
6〜RR4)が伝搬する。
【0051】被除数は4ビットずつ、最下位段ユニット
のX3〜X0に与えられ、最上位段ユニットのCO3〜C
0にその被除数に対する商4ビットがその都度出力さ
れる。なお、最終段ユニットのX3だけは、部分剰余の
フィードバック側に切り替わらない構造となっている。
【0052】この1モジュールで構成される除算ユニッ
トでは、4ビット÷4ビットの除算を実施して、4ビッ
トの商と剰余とを得る。8ビットの被除数では剰余ビッ
トが4ビットを越え、除算のオーバーフローを起こして
しまう。このため、初めに上位4ビットを“0”にし、
その後部分剰余のフィードバック側に切り換えるため
に、図11に示す制御信号SWが設定されている。ま
た、図11に示す制御信号LMDは、部分剰余のフィー
ドバック中、最下位のユニットにはPR0側に切り替え
ずに、被除数のX3を固定とするための制御信号であ
る。
【0053】ここで、図8に示す乗算ユニット7−1,
7−2をカスケード接続して、8ビット精度の除算を行
う場合について説明する。図8のスイッチS3〜S0が同
図に示す位置にセットされ、被除数の上位X7〜X4が右
側の演算ユニット7−1に与えられる。除数Y7〜Y0
対する結果の商の上位4ビットQ7〜Q4は、左側の演算
ユニット7−2のCO3〜CO0から出力される。このと
きの部分剰余R6〜R0はラッチされ、演算ユニット7−
1,7−2にフィードバックされる。
【0054】次に、スイッチS3〜S0が図8の状態から
右側(ラッチ側)に切り換えられ、右側の演算ユニット
7−1には被除数の下位X3〜X0が与えられ、先にラッ
チされた部分剰余と除数との減算が実行される。この結
果、左側の演算ユニット7−2から商の下位Q3〜Q0
出力される。
【0055】このとき、8ビットの剰余は、上位4ビッ
トR7〜R4が左側の演算ユニット7−2のr3〜r0
り、下位4ビットR3〜R0が右側の演算ユニット7−1
のr3〜r0よりそれぞれ出力される。除数の上位4ビッ
トY7〜Y4は左側の演算ユニット7−1の各1ビット減
算セル30の減数として、下位4ビットY3〜Y0は右側
の演算ユニット7−2の各1ビット減算セル30の減数
として与えられる。
【0056】このように、n×m=4×2=8ビット精
度の演算では、2個の演算ユニット7−1,7−2をカ
スケード接続し、各演算ユニットにて(m−1)=2−
1=1回の繰り返し演算(すなわち計2回の演算)を行
えばよいことが分かる。
【0057】同様に、12ビット精度の除算を行うに
は、n×m=4×3=12であるので、m=3個の演算
ユニット7−1,7−2,7−3をカスケード接続し、
各演算ユニットにて(m−1)=3−1=2回の繰り返
し演算(すなわち計3回の演算)を行えばよい。このと
き、最下位ユニット7−1から被除数を上位から4ビッ
トずつ、3回に分けて与える。結果の商も、最上位ユニ
ット7−3から上位→中位→下位と3回に分けて出力さ
れる。剰余は各ユニット7−1,7−2,7−3から4
ビットずつ出力される。
【0058】図12は、演算ユニット7−1,7−2,
7−3をカスケード接続したときの動作タイミングチャ
ートである。図12は、送信要求が与えられてから最初
のクロックの立ち下がりで被除数が与えられるものとし
た場合のタイミングを示している。
【0059】図12に示すように、上位ビットの被除数
が与えられてから半クロック後の立ち上がりで商の上位
ビットを転送(ラッチ)し、同時に部分剰余を各ユニッ
トにてラッチする。
【0060】次に、被除数の中位ビットが与えられると
き、各ユニットの被除数をラッチ側に切り換え、半クロ
ック後の立ち上がりで商の中位ビットを転送する。この
とき同様に部分剰余を各ユニットにてラッチする。
【0061】最後に、被除数の下位ビットが与えられた
後にも同様に、商の下位ビットと結果の全剰余の転送を
行う。
【0062】次に、図1(A)及び図2に示す装置の動
作について説明する。
【0063】まず、メインマイクロプロセッサ1がプロ
グラマブルディジタルプロセッサ3に対し、演算命令、
演算に必要なデータ及び要求する演算精度に対応する演
算精度データをバス2を介して与える。
【0064】これによりプログラマブルディジタルプロ
セッサ3のコントロールユニット5は、演算ユニット7
−1〜7−xに対し、メインマイクロプロセッサユニッ
ト1及び/またはRAM6からの処理手順(例えば、図
20で示す暗号手順)に基づいて、要求された任意演算
精度(y1×n1×m)に対応する、1演算ユニット内
にてカスケード接続される演算モジュールの数y1と、
カスケード接続される演算ユニットの数mとを制御す
る。演算ユニット7−1〜7−xは、各演算データの精
度情報に基づいて、カスケード接続されるべき演算ユニ
ット数m及び各演算ユニット内にて接続される演算モジ
ュール数y1を判断する。例えば、要求された演算精度
が1024ビットの場合、n=64,y=4を固定とす
ると、y1=4,m=16あるいはy1=2,m=32
等が選ばれる。
【0065】このカスケード接続されるべき演算ユニッ
ト数m及び1演算ユニット内の演算モジュール数y1
は、演算に必要な基準クロック信号の数によって決定さ
れる。この基準クロック信号は、図1(A)に示す情報
処理システム10が有する図示しない基準クロック信号
発生回路にて発生される。
【0066】これにより、演算に必要とされたm個の演
算ユニット及び1演算ユニット内のy1個の演算モジュ
ールは実効的にカスケード接続され、コントロールユニ
ット5は、予めプログラミングされた処理手順に基づい
て演算を演算ユニットにて行わせることとなる。
【0067】そして得られた精度y1×n1×mの演算
結果をバス2を介してメインプロセッサユニット1側に
出力することとなる。
【0068】ここで、この第1の実施の形態ではチップ
間すなわち図1(A)のマイクロプロセッサユニット1
とプログラマブルディジタルプロセッサ3間のバス2上
の信号を、多チャンネルの電気信号としても良いし、あ
るいは例えば波長の異なる多チャンネルの光信号として
も良い。チップ間を光通信する技術は既に多くの提案が
ある。
【0069】さらに加えて、この第1の実施の形態で
は、1チップを構成するプログラマブルディジタルプロ
セッサ3内の一部または全部のユニット間にて、光信号
を伝送することも可能である。すなわち、図2に示すプ
ログラマブルディジタルプロセッサ3の内部システムバ
ス4Aと内部データバス4Bとを光伝送路とするのであ
る。こうすると、コントロールユニット105と、RA
M6と、ROM8と、x個の演算ユニット7−1〜7−
xとの各間で、内部システムバス4Aと内部データバス
4Bを介して光信号を伝送することができる。このと
き、RAM6を構成する記憶素子として、電気信号以外
の情報例えば強誘電メモリのように磁化された情報を記
憶するようにすれば、光信号を電気信号に変換する必要
はない。例えば強誘電メモリを用いた場合には、光信号
に基づいて磁化された情報を記憶すればよい。さらに
は、x個の演算ユニット7−1〜7−xの間も実質的に
バス接続され、各演算ユニットを構成するy個の演算モ
ジュールもバス接続されているため、これらのバスを光
伝送路とし、演算ユニット間及び演算モジュール間も光
信号により伝送することが可能である。なお、1チップ
内の内部バスを光伝送路とする具体的例については後述
する。
【0070】以上の説明においては、最大x個の演算ユ
ニットが装着されている場合について説明したが、後に
機能拡張する場合などに備えて、プログラマブルディジ
タルプロセッサ3に外部演算ユニットをカスケード接続
するための端子を設けてもよい。このように、外部演算
ユニットをカスケード接続するように構成すれば、内部
演算ユニットのみをカスケード接続して得られる演算精
度以上の演算精度を確保することができる。
【0071】より詳細には、プログラマブルディジタル
プロセッサ3を1チップ構成とした場合であっても、図
2に破線で示すように、一または複数のプログラマブル
ディジタルプロセッサ3'を、内部データバス及び図示
しないカスケード接続端子を介してカスケード接続する
ことができる。こうすると、プログラマブルディジタル
プロセッサ3'内の演算ユニットを、プログラマブルデ
ィジタルプロセッサ3'内の演算ユニットとカスケード
接続したのと等価となる。この意味で、プログラマブル
ディジタルプロセッサ3内の内部演算ユニット7−1〜
7−xに対して、一または複数のプログラマブルディジ
タルプロセッサ3'の演算ユニットは、外部演算ユニッ
トとして機能する。そして、本実施の形態では、この内
部演算ユニットとが外部演算ユニット間も光信号により
伝送することが可能である。
【0072】また、複数の外部演算ユニットを例えば、
TFT(Thin Film Transistor)で構成した場合には、
欠損などにより不良トランジスタが発生することに起因
して、最大でz個の外部演算ユニットの全体が使用でき
なくなる恐れがある。
【0073】そこで、演算ユニットの歩留まり率Aに対
して、少なくともK(z≧K/A)個の演算ユニットを
予め用意しておくことが好ましい。こうすると、K個の
演算ユニットのうち良品の演算ユニットを最大でz個接
続することできる。
【0074】さらにこのことは、演算ユニットばかりで
なく、外部演算ユニットを構成する演算モジュールにつ
いても同じことが言えるので、外部演算モジュールの歩
留まり率A'に対して、各外部演算ユニット中に少なく
ともL1(y≧L1/A')演算モジュールを予め用意
しておくと良い。こうすると、L1個の演算モジュール
のうち良品の演算モジュールをy個接続することができ
る。従って、演算モジュールに不良が発生した場合で
も、冗長演算モジュールに接続切換を行うことにより、
その演算ユニットは良品として扱うことが可能となる。
【0075】また、プログラマブルディジタルプロセッ
サ3内に最大演算精度n×X1ビットで演算を行う内部
演算ユニットと、プログラマブルディジタルプロセッサ
3’内に最大演算精度n×X2ビットで演算を行う外部
演算ユニットとをカスケード接続して、トータルの最大
演算精度n×(X1+X2)の演算を実施することもで
きる。
【0076】なお、情報処理システム10を構成する場
合に、図1(A)の実施の形態ではメインマイクロプロ
セッサ1が必須の構成要件となっていた。しかし、プロ
グラマブルディジタルプロセッサ3にメインマイクロプ
ロセッサ1の機能を持たせ、バス2を介して記憶装置あ
るいは外部記憶装置からプログラムをロードするように
構成すれば、図1(B)に示す情報処理システム10’
のように、メインマイクロプロセッサ1は不要となる。
【0077】また、以上の説明においては、プログラマ
ブルディジタルプロセッサ3がプログラムをロードする
場合についてのみ説明したが、これに限定されるもので
はない。例えば予めマスクROM、PROM、EEPR
OMなどの不揮発性のメモリに処理手順のプログラムを
格納しておき、これに基づいて固定化した処理手順に基
づいて動作したり、固定化した処理手順をハードウエア
ロジックで実現することも可能である。
【0078】ここで第1の実施の形態のより具体的な例
として、本発明を疑似乱数発生装置に適用した例につい
て説明する。
【0079】Nが大きな素数の積の場合に、非線形演算
子であるY=X2 mod Nを用いて、計算量的に安
全な疑似乱数を作ることが可能である。この場合におい
て、「計算量的に安全な」とは、安全性が崩れるという
こと(すなわち、生成した乱数列の一部である部分乱数
列から、生成した乱数列の他の部分の部分乱数列を推測
することができること)と、Nを因数分解できるという
こととが、計算量的に同等であるということである。
【0080】換言すれば、数学の長い歴史の中で、因数
分解についての簡単な計算法が見つかっていないので、
多分、乱数は予測できないであろうということである。
【0081】Y=X2 mod N を用いて、計算量的に安全な疑似乱数を発生するための
ブロック図を図3に示す。この場合において、 N=P・Q であり、PとQとは共に大きな素数である。
【0082】図3に示すように、入力データ(X、N)
に対し、 Y=X2 mod N の演算処理を行う際に、第1の実施の形態のプログラマ
ブルディジタルプロセッサ3を用いることにより、任意
精度で疑似乱数を発生させることができる。
【0083】以上の説明のように、本実施の形態によれ
ば、所望精度の演算を行うための情報処理システムをハ
ードウェア的に容易に実現することが可能であるととも
に、演算精度の拡張に対してもハードウェア的に容易に
対応することが可能となる。
【0084】この第1の実施の形態の説明においては、
プログラマブルディジタルプロセッサ3内にコントロー
ルユニット5及びRAM6を設ける構成としていたが、
メインマイクロプロセッサ1側にこれらの機能を行わせ
るように情報処理システムを構成し、演算ユニットのみ
を1チップ構成とし、任意精度汎用演算プロセッサとし
て機能させることも可能である。
【0085】(第2の実施の形態)次に暗号化処理及び
復号処理を行う暗号/復号システムに本発明を適用した
第2の実施の形態について説明する。
【0086】[1] RSA方式の原理説明 まず具体的な実施の形態の説明に先立ち、代表的な公開
鍵方式暗号であるRSA方式について説明する。
【0087】ネットワーク暗号の利用形態としては、送
信者が暗号鍵を用いて平文を暗号化して送信し、その暗
号文の受信者は復号鍵を用いて復号し平文に戻す処理を
行うものである。
【0088】秘密鍵暗号方式では暗号鍵と復号鍵が同一
であるのに対し、公開鍵暗号方式は同一ではなく、暗号
鍵を公開し、復号鍵を秘密に保持する方式である。次に
代表的な公開鍵暗号方式であるRSA方式の原理につい
て述べる。
【0089】平文をある適当なブロックに分け、それに
相当する数値をMとする。素数pとqを定め、復号鍵
(プライベートキー)として秘密にし、次の関係にある
nとeを公開鍵(パブリックキー)とする。
【0090】 n=pq …… (1) gcd(e,(p−1,q−1))=1 …… (2) ここで、e及び(p−1)(q−1)の最大公約数は
1、すなわち、(p−1)(q−1)と互いに素な正数
eを適当に決める。
【0091】そして、下記の(3)式に示すように、送
信者はパブリックキーを用いて、nを法とする平文Mの
e乗の剰余演算(Meをnで割った余りCを算出)を行
い、暗号文Cを送信する。
【0092】 Me≡C mod n …… (3) これにより、暗号文Cを受信した受信者は、まず、プラ
イベートキーを用いて、下記の(4)式により(p−
1)(q−1)を法とするeの逆数dを求める。
【0093】 ed≡1 mod (p−1)(q−1) …… (4) 得られたdにより、下記の(5)式から暗号文Cを平文
Mに復号する。
【0094】 Cd≡M mod n …… (5) ところで、式(4)と式(5)は、(p−1)と(q−
1)の最少公倍数lcm(p−1,q−1)を用いる
と、dを小さく定めることができ、下記の(6)式及び
(7)式に示すように、計算量の軽減がはかれる。
【0095】 gcd(e,lcm(p−1,q−1))=1 …… (6) ed≡1 mod lcm(p−1,q−1) …… (7) この場合において、パブリックキーnはプライベートキ
ーpとqの積であるため、容易に素因数分解できないよ
う、通常512ビット以上に選定される。
【0096】以上のようにRSA方式は素因数分解とい
う数学的要素と多精度剰余演算を行うことなどで、暗号
強度の高い方式であると広く認知されている。
【0097】[2] 剰余計算例 式(3)と式(5)のべき乗剰余演算結果が暗号・復号
文となるため、丸め操作や浮動少数点演算が使えず整数
演算でなければならない。べき乗剰余演算は指数をその
システムで除算可能な部分に分割して、より小さな剰余
演算の積の繰り返しで求めることができる。説明の容易
性のため、ごく小さい数値の例を示す。
【0098】パブリックキーをn=55、e=7とし、
プライベートキーをp=5、q=11とする。
【0099】平文M=3とすると、暗号文Cは、暗号化
においてはパブリックキーのnとeを用いて、式(3)
より 37≡C mod 55 から C=42 を得る。
【0100】復号ではプライベートキーのpとqよりd
を次のように選定する。
【0101】式(4)より 7d≡1 mod (5−1)(11−1) すなわち、 7d≡1 mod 40 から d=23 となる。
【0102】4223≡M mod 55 から M=3 となる。
【0103】剰余演算においては X≡r1 mod n、 Y≡r2 mod n のとき、nを法とする下記の式(8)の乗算が成立す
る。
【0104】 X・Y≡r1・r2 mod n …… (8) この関係式により指数部分を演算可能な部分に分割す
る。
【0105】例えば、 そこで、先ず、425及び423についての2種類の剰余
を求める。
【0106】 425≡12 mod 55 423≡3 mod 55 式(8)から となる。
【0107】次にr1・r2からその剰余r1-2を求め
る。
【0108】 r1・r2≡12・12≡r1-2 mod 55 より、 r1-2=34 となる。以下同様にして、 r1-2・r3≡34・12≡r1-3 mod 55 より、 r1-3=23 となる。さらに r1-3・r4≡23・12≡r1-4 mod 55 より、 r1-4=1 となる。さらにまた、 r1-4・r5≡1・3≡r mod 55 となって、 r=3 を得ることとなる。
【0109】以上の剰余演算過程における各剰余乗算の
最大精度は法であるnの2倍以下で済む。このようにし
て、小さな数値に置き換えた剰余演算の繰り返しで、目
的とする剰余を算出することができる。
【0110】[3] 暗号化及び復号処理の一般的手法 ここで、図22を参照してRSAに基づく暗号化及び復
号処理の一般的手法について説明する。
【0111】まず、Am≡R mod nについての剰
余演算では、A、m、nの各値を入力する(ステップS
1)。
【0112】合同式 Am≡R mod n は暗号化
においては平文MがA、パブリックキーeがmとして、
パブリックキーnを法とする剰余演算によって得られた
Rが暗号文Cになる。復号では暗号文CがA、パブリッ
クキーeとプライベートキーp、qから選定されたdが
mとして、nを法とする剰余演算によって得られたRが
平文Mである。
【0113】先ず、Aのビット数K1を求め(ステップ
S2)、Aのビット数K1から剰余演算システムにおけ
るANの最大指数Nを求める(ステップS3)。
【0114】次に最大指数Nが1であるか否かを判別し
(ステップS4)、最大指数N=1であればA2で精度
オーバーになるため、 A≡r mod n を求め(ステップS5)、剰余rのビット数kを求め
(ステップS6)、ビット数kからAのブロック規模を
判断する(ステップS7)。
【0115】Aのブロック規模が精度内であれば(ステ
ップS7;No)、m個のAに対するnを法とする乗算
を行い、その結果から求める剰余Rを得る(ステップS
8)。
【0116】また、Aのブロック規模が精度外であれば
(ステップS7;Yes)、データが大きすぎてオーバ
ーフローを起こしてしまうので(ステップS9)、Aの
ブロック規模を小さくすべく、演算処理を終了する(ス
テップS10)。
【0117】一方、Nが2以上であれば(ステップS
4;No)、mをqN+aに分解し(ステップS1
1)、aが0でないときは(ステップS12;Ye
s)、Aaを求め(ステップS13)、Aaをnで割った
余りr1を求める(ステップS14)。 次にq=0で
あるか否かを判別し(ステップS15)、q=0ならば
(ステップS15;Yes)r1が求める剰余Rである
(ステップS16)。
【0118】ステップS15の判別において、q≠0で
あるならば(ステップS15;No)、ANを求め(ス
テップS17)、ANをnで割った剰余rを求める(ス
テップS18)。
【0119】そして剰余rをr00に代入し(ステップ
S19)、q個のANに対するnを法とする乗算を行い
(ステップS20)、a≠0であるならば(ステップS
21;No)、得られた乗算結果rとr1との積をnで
割った剰余を求め(ステップS22)、求めた剰余rを
最終的に求めるべき剰余Rとし(ステップS23)、剰
余Rを剰余データとして出力する(ステップS24)。
【0120】このようにRSAに基づいた公開鍵暗号方
式の暗号化及び復号処理(剰余演算処理)は複雑であ
り、特に暗号/復号システムにおいては、前述したよう
に、nは512ビット以上と高精度であるため、除算の
分散処理が不可能であれば、本第1の実施の形態のよう
なハードウェア化は困難であり、上記処理をソフトウェ
アで処理することとなり、そのプログラミングも簡単で
はないので、多くの演算時間を要することは容易に推察
できる。
【0121】[4]公開鍵暗号/復号システムの構成 図4は、第2の実施の形態の公開鍵暗号/復号システム
のブロック図である。
【0122】公開鍵暗号/復号システム11は、大別す
ると、パーソナルコンピュータシステム12と、パーソ
ナルコンピュータシステム12の入出力インターフェー
ス17を介して接続されたべき乗剰余演算装置13と、
を備えて構成されている。
【0123】パーソナルコンピュータシステム12は、
各種データを入力するためのキーボード15と、各種表
示を行うためのディスプレイ16と、入出力インターフ
ェース17及び図示しないハードディスクなどの外部記
憶装置を内蔵したパーソナルコンピュータ本体18と、
各種プリントアウトを行うプリンタ19と、を備えて構
成されている。
【0124】べき乗剰余演算装置13は、大別すると図
5に示すように、所定の精度範囲内で任意精度の除算を
行う任意精度除算装置20と、所定の精度範囲内で任意
精度の乗算を行う任意精度乗算装置21とを備え、これ
らはバス22により接続される。
【0125】[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)ス
イッチSW1〜SW(H−1)は、精度情報データに基
づいて必要な数の除算器をカスケード接続することとな
る。
【0126】ここで、これらの8ビット精度の除算器
は、図8に示す16個の1ビット減算セル30からなる
4ビット減算器を1モジュールとしたとき、2モジュー
ル分をカスケード接続することで構成できる。
【0127】また、図6に示すスイッチSW1〜SW
(H−1)も、図2の場合と同様に説明の便宜上図示し
たものである。また、各8ビット除算器の間及び各8ビ
ット除算器への入出力を、全て光信号で伝送するように
構成することもできる。
【0128】より具体的には、8ビット精度の除算を行
う場合には、全てのスイッチSW1〜SW(H−1)が
開状態であり、第1除算器25−1のみが動作し、16
ビット精度の除算を行う場合には、第1スイッチSW1
のみが閉状態となり、第1除算器25−1及び第2除算
器25−2が動作し、(8×J)精度の除算を行う場合
には(J:2以上(H−1)以下の整数)、第1スイッ
チSW1〜第(J−1)スイッチSW(J−1)が全て
閉状態となり第1除算器25−1〜第J除算器25−J
が動作することとなる。
【0129】そして、被除数データ及び除数データは、
下位8ビットから8ビット単位で第1除算器25−1か
ら第J除算器に順次与えられることとなる。
【0130】なお、任意精度乗算装置21は、任意精度
除算装置20の8ビット除算器を8ビット乗算器に変更
した構成とほぼ同様の構成であるので、その説明を省略
する。また、図4に示すバス22を光伝送路とすれば、
これら任意精度乗算装置21と任意精度除算装置20と
の間を、光信号により伝送することができる。
【0131】[6]除算器の構成 次に任意精度除算装置を構成している除算器の構成につ
いて説明する。
【0132】[6.1] 除算器のアルゴリズム まず、除算器の説明に先立ち、除算器のアルゴリズムに
ついて説明する。
【0133】除算に関しては、乗算ほどではないが、い
ろいろなアルゴリズムが考案されている。また、信号処
理においては、除算は乗算ほど頻繁に用いられるわけで
はない。
【0134】しかしながら、信号の正規化、コンピュー
タ通信や情報ネットワークにおける秘匿技術としての暗
号化/復号に、音声認識における特徴抽出において、周
波数スペクトルを基本とする線形予測係数の演算(積和
が70回、除算が12回)、フォールトトレラントシス
テムにおいてなどの例に見られるように、除算を必要と
する場合、その実現は乗算ほど容易ではなく、従来にお
いては、高精度で高速に結果を得るための有効な手段が
なかった。
【0135】除算の実現方法としては、以下の4種類が
知られている。 (1)変数xと1/x の関係を示すルックアップテー
ブル(変換表)をROM内に用意しておき、y/xなる
除算を、y(1/X) なる乗算に置き換えて実行する
「逆数ROM方式」。 (2)y/x なる除算を直接実行する代わりに、対数
ROMによりxとyからlogxとlogyを求め、そ
れからz=logx−logyの減算を行い、最後に指
数ROMによりexpzを求める「対数計算方式」。 (3)被除数に対してシフトと減算を試行錯誤的に繰り
返す「減算シフト方式」。 (4)乗算を繰り返し実行しながら結果を求めるべき商
の値に収束させていく「収束形除算方式」。
【0136】このうち、逆数ROM方式が最も高速であ
るが、高精度を要求するとルックアップテーブルを格納
すべきROMの容量が指数的に大きくなる欠点がある。
従って、信号処理においては比較的粗い精度でよい場合
に限られて使用されている。
【0137】次の対数計算方式も対数ROMの容量の制
約からくる精度上の検討を十分に行ったうえで用いる必
要があり、その意味でも以上の二つのROM方式はどの
ような場合にも用い得る汎用的な方法とは言い難い。
【0138】以上の4方式のうち、どのような精度に対
しても除算可能な方式は減算シフト方式と収束形除算方
式であるといえる。
【0139】収束形除算方式は被除数と除数を分数の分
子と分母とみなし、分母が1に近づくまで分子分母に同
一の収束係数を乗じていき、得られた最終的な分子の値
が商になる。あるいは、除数の逆数を収束アルゴリズム
によって求め、商はこの逆数と被除数の積から求めるこ
とができる。
【0140】しかし、複数チップ(モジュール)接続に
よる除算能力の拡張機能を考慮した場合、近似演算によ
る収束が行われる収束形除算方式では部分剰余の伝搬が
さらに近似されることになり、誤差が大きくなってしま
うという問題点が生じる。
【0141】この点、減算シフト方式ではそのような問
題はなく、任意精度で除算可能であり、複数チップ(モ
ジュール)接続による除算能力の拡張機能をも考慮した
場合、最も適しているといえる。
【0142】[6.2] 除算能力の拡張機能 次に、除算能力の拡張機能について考察する。
【0143】例えば、 567890/1234 の除算を実行するには図7(A)に示すように、被除数
と除数の減算が繰り返し実行される。
【0144】ここで、除数2けたの除算器(または除算
モジュール)を用いて、除数を4けたに拡張した使用を
考えてみると、図7(B)及び図7(C)に示すよう
に、除数1234を除数12と除数34とに分割すると
ともに、被除数567890を被除数567及び被除数
890とに分割し、12と34の除数で分散処理した結
果から除算能力の拡張した解(図7(A)相当)を得る
という乗算器のような使い方(乗算においては可能)は
できない。
【0145】従って、除算は使用可能けた数の範囲内で
有効であり、1ビットでも除算能力を超えた使用に対し
ては、たとえメモリーや外部回路を用いても容易には対
処できない。
【0146】また、除算においては通常丸め操作を行う
が、暗号/復号システムにおいては、このような使用は
できない。
【0147】以上のような理由によって、従来において
は、ハードウェア化された除算器は少なく処理速度の遅
いソフトウェアで対処していた。
【0148】ところで、本除算器のアルゴリズムは被除
数に対してシフトと減算を試行錯誤的に繰り返す「減算
シフト方式」に基づいたもので、その一般的な基本式は
以下の漸化式(A)で表される。
【0149】
【数1】
【0150】この漸化式(A)中の下記の式(B)が求
める商Qであり、最終剰余Rは2-n(n)である。
【0151】
【数2】
【0152】各演算工程における商のディジットqj+1
は2RとDの大小関係で以下のように定まる。
【0153】2R(j)<Dの場合、qj+1=0 2R(j)≧Dの場合、qj+1=1 つまり、まず仮の部分剰余R(j+1)(=2R(j)−D)を
求めて、部分剰余R(j+1)が正または“0"ならばqj+1
=1が求まり、真の部分剰余とする。もし、部分剰余R
(j+1)が負ならば、qj+1=0で仮の部分剰余の減算を取
消す。
【0154】以上の操作は、R(n)をnディジットだけ
右にシフトすることから求まることを先の漸化式は意味
している。
【0155】しかし、以上の漸化式は単にnディジット
の商に対してのものである。除算データを各モジュール
に分散した場合、各モジュールの被除数と除数はそれぞ
れ連結した状態で行われなければならない。
【0156】一般に、除数に対して被除数のけた数が多
いため、分散した除数を連結して被除数との減算を行う
ことは、除数の連結とそれに伴う減算器やラッチ回路の
連結などにより容易には実現できなかった。
【0157】これに対し、本実施の形態の除算器は、分
散した除数と減算器は各モジュール内に固定し、被除数
を連結して減算を行うようにしてモジュールの分散化を
可能にしている。
【0158】[6.3] 除算の具体例 ここで、図8に示す4ビット減算を行う演算ユニット7
−1のみにて、7÷2=3余り1の除算を2進法にて行
う例を、図13及び図14を参照して説明する。
【0159】図13において、被除数7は2進法で(0
111)と4ビットで表され、除数2は2進法で(00
10)と4ビットで表される。被除数7を除数2で除す
場合、図13に示す計算手順により、2進法での商(0
011)とその剰余(0001)が得られる。
【0160】この除算は、図8に示す演算ユニット7−
1では、図14に示すようにして実施される。先ず、図
8のスイッチS3〜S0が同図に示す位置にセットされ、
第1段(最上位)の並列減算器30Aに、被減数として
上位3ビットが“0”、最下位ビットがX3(=0)で
ある(0000)が与えられる。また、第1段(最上
位)の並列減算器30Aに、減数として除数である(0
010)が与えられる。並列減算器30Aを構成する各
1ビット減算セル30は、上位への桁借りCiを含め
て、各ビット毎にXi−Yi−Ciを演算し、被減数
(0000)−減数(0010)−上位からの借り桁
(1100)=(1110)を得る。
【0161】第1段の並列減算器30AのCO3出力は
“1”であるから、NOT素子を介して得られる最上位
ビットの解は“0”となる。
【0162】次に、第2段の並列除算器30Bでは、被
減数として(0001)が、減数として(0010)が
与えられる。この第2段の並列減算器30Bでも同様
に、各1ビット減算セル30は、上位への桁借りCiを
含めて、各ビット毎にXi−Yi−Ciを演算し、被減
数(0001)−減数(0010)−上位からの借り桁
(1100)=(1111)を得る。
【0163】第2段の並列減算器30BのCO2出力は
“1”であるから、NOT素子を介して得られる下位3
ビット目の解は“0”となる。
【0164】次に、第3段の並列除算器30Cでは、被
減数として(0011)が、減数として(0010)が
与えられる。この第3段の並列減算器30Cでも同様
に、各1ビット減算セル30は、上位への桁借りCiを
含めて、各ビット毎にXi−Yi−Ciを演算し、被減
数(0011)−減数(0010)−上位からの借り桁
(0000)=(0001)を得る。
【0165】第3段の並列減算器30CのCO1出力は
“0”であるから、NOT素子を介して得られる下位2
ビット目の解は“1”となる。
【0166】最後に、第4段(最下位段)の並列除算器
30Dでは、被減数として、減算結果の下位3ビット
(001)に最下位ビットX0=1が加えられた(00
11)が、減数として(0010)が与えられる。この
第4段の並列減算器30Dでも同様に、各1ビット減算
セル30は、上位への桁借りCiを含めて、各ビット毎
にXi−Yi−Ciを演算し、被減数(0011)−減
数(0010)−上位からの借り桁(0000)=(0
001)を得る。
【0167】第4段の並列減算器30DのCO0出力は
“0”であるから、NOT素子を介して得られる最下位
ビットの解は“1”となる。従って、商は(0011)
となる。また、第4段の並列除算器30Dから出力され
る(R3,R2,R1,R0)=(0001)が剰余とな
る。
【0168】次に、図8に示す演算ユニット7−1,7
−2をカスケード接続して、77÷19=4余り1の除
算を2進法にて行う例を、図15及び図16を参照して
説明する。
【0169】図15において、被除数77は2進法で
(01001101)と8ビットで表され、除数19は
2進法で(00010011)と8ビットで表される。
被除数77を除数19で除する場合、図15に示す計算
手順により、2進法での商(0000100)とその剰
余(00000001)が得られる。
【0170】この除算は、図8に示す演算ユニット7−
1及び7−2をカスケード接続して、図16に示すよう
にして実施される。先ず、図8のスイッチS3〜S0が同
図に示す位置にセットされ、演算ユニット7−1の第1
段(最上位段)の並列減算器30Aに、被減数として上
位3ビットが“0”、最下位ビットがX7(=0)であ
る(0000)が与えられる。演算ユニット7−2の第
1段(最上位段)の並列減算器30Aには、全ビットに
“0”が与えられる。よって、2つの第1段の減算器3
0Aに与えられた被減数は(00000000)とな
る。
【0171】また、2つの第1段(最上位)の並列減算
器30Aに、減数として除数である(0001001
1)が与えられる。2つの並列減算器30Aを構成する
各1ビット減算セル30は、上位への桁借りCiを含め
て、各ビット毎にXi−Yi−Ciを演算し、被減数
(00000000)−減数(00010011)−上
位からの借り桁(11111110)=(111111
11)を得る。
【0172】演算ユニット7−2の第1段の並列減算器
30AのCO3出力は“1”であるから、NOT素子を
介して得られる最上位ビットの解は“0”となる。
【0173】次に、2つの第2段の並列除算器30Bで
は、被減数として(00000001)が、減数として
(00010011)が与えられる。この2つの第2段
の並列減算器30Bでも同様に、各1ビット減算セル3
0は、上位への桁借りCiを含めて、各ビット毎にXi
−Yi−Ciを演算し、被減数(00000001)−
減数(00010011)−上位からの借り桁(111
11100)=(11101110)を得る。
【0174】演算ユニット7−2の第2段の並列減算器
30BのCO2出力は“1”であるから、NOT素子を
介して得られる上位2ビット目の解は“0”となる。
【0175】次に、2つの第3段の並列除算器30Cで
は、被減数として(00000010)が、減数として
(00010011)が与えられる。この2つの第3段
の並列減算器30Cでも同様に、各1ビット減算セル3
0は、上位への桁借りCiを含めて、各ビット毎にXi
−Yi−Ciを演算し、被減数(00000010)−
減数(00010011)−上位からの借り桁(111
11110)=(11101111)を得る。
【0176】演算ユニット7−2の第3段の並列減算器
30CのCO1出力は“0”であるから、NOT素子を
介して得られる上位3ビット目の解は“1”となる。
【0177】次に、2つの第4段(最下位段)の並列除
算器30Dでは、被減数として(00000100)
が、減数として(00010011)が与えられる。こ
の2つの第4段の並列減算器30Dでも同様に、各1ビ
ット減算セル30は、上位への桁借りCiを含めて、各
ビット毎にXi−Yi−Ciを演算し、被減数(000
00100)−減数(00010011)−上位からの
借り桁(111100010)=(11110001)
を得る。
【0178】演算ユニット7−2の第4段の並列減算器
30DのCO0出力は“0”であるから、NOT素子を
介して得られる上位4ビット目の解は“1”となる。
【0179】次に、スイッチS3〜S0を図8の状態から
右側に切り換える。こうすると、演算ユニット7−1の
第4段の並列減算器30Dのr3〜r0と、演算ユニット
7−2の第4段の並列減算器30Dのr2〜r0とが、上
記のスイッチを介して、2つの第1段の並列減算器30
Aに上位7ビットの被減数として与えられる。なお、最
下位ビットX3はスイッチS0を介して演算ユニット7−
1に与えられる。
【0180】この結果、2つの並列減算器30Aを構成
する各1ビット減算セル30は、上位への桁借りCiを
含めて、各ビット毎にXi−Yi−Ciを演算し、被減
数(000001001)−減数(00010011)
−上位からの借り桁(11101100)=(1111
0110)を得る。
【0181】演算ユニット7−2の第1段の並列減算器
30AのCO3出力は“1”であるから、NOT素子を
介して得られる下位4ビット目の解は“0”となる。
【0182】次に、2つの第2段の並列除算器30Bで
は、被減数として(000010011)が、減数とし
て(00010011)が与えられる。この2つの第2
段の並列減算器30Bでも同様に、各1ビット減算セル
30は、上位への桁借りCiを含めて、各ビット毎にX
i−Yi−Ciを演算し、被減数(00010011)
−減数(00010011)−上位からの借り桁(00
000000)=(00000000)を得る。
【0183】演算ユニット7−2の第2段の並列減算器
30BのCO2出力は“0”であるから、NOT素子を
介して得られる下位3ビット目の解は“1”となる。
【0184】次に、2つの第3段の並列除算器30Cで
は、被減数として(00000000)が、減数として
(00010011)が与えられる。この2つの第3段
の並列減算器30Cでも同様に、各1ビット減算セル3
0は、上位への桁借りCiを含めて、各ビット毎にXi
−Yi−Ciを演算し、被減数(00000000)−
減数(00010011)−上位からの借り桁(111
11110)=(11101101)を得る。
【0185】演算ユニット7−2の第3段の並列減算器
30CのCO1出力は“1”であるから、NOT素子を
介して得られる下位2ビット目の解は“0”となる。
【0186】最後に、2つの第4段(最下位段)の並列
除算器30Dでは、被減数として(00000001)
が、減数として(00010011)が与えられる。こ
の2つの第4段の並列減算器30Dでも同様に、各1ビ
ット減算セル30は、上位への桁借りCiを含めて、各
ビット毎にXi−Yi−Ciを演算し、被減数(000
000001)−減数(00010011)−上位から
の借り桁(11111100)=(11101110)
を得る。
【0187】演算ユニット7−2第4段の並列減算器3
0DのCO0出力は“1”であるから、NOT素子を介
して得られる最下位ビットの解は“0”となる。また、
2つの第4段の並列除算器30Dから出力される
(R6,R5,R4,R3,R2,R1,R0)=(0000
0001)が剰余となる。
【0188】[6.4] 準並列形と完全並列形 次に、図8の除算器を準並列形除算器と称した場合、こ
れとは異なる完全並列形除算器について、図17を参照
して説明する。
【0189】図17では、図8と同様にそれぞれ1演算
モジュールで構成された4つの演算ユニット7−1〜7
−4をカスケード接続することで、8ビット精度の除算
を行う構成を示している。
【0190】このように構成すると、図8に示す2つの
演算ユニット7−1,7−2をカスケード接続して8ビ
ット精度の除算を実行するには、繰り返し演算を1回行
ったが、図17の例ではその繰り返し演算と同じ演算
を、他の2つの演算ユニット7−3,7−4にて実施で
きる。
【0191】また、16ビット精度に拡張して除算を実
行するには、16個の演算ユニットをカスケード接続す
ればよい。このように、一つの演算ユニットのビット精
度をnとし、n×mのビット精度に拡張して演算を行う
には、m2個の演算モジュールをカスケード接続すれば
よい。
【0192】実際には、図2に示す実施の形態と同様
に、完全並列形の最大x個の演算ユニット7−1〜7−
xを設け、その各々が複数の演算モジュールを有する。
ここで、各演算ユニット7−1〜7−xの各々の最大ビ
ット精度をnビットとする。その各々の演算ユニット
は、それぞれn1ビット精度のy2個(y=n/n1)
の演算モジュールと、y2個の演算モジュール同士をカ
スケード接続するための複数のカスケード接続端子とを
有するものとする。
【0193】このy2個の演算モジュールの各々は、n
1個の1ビット演算セルにてそれぞれ形成されるn1段
の並列演算器を1ビットずつシフトさせて配置して構成
される。
【0194】例えば、1演算ユニットの最大ビット精度
n=16ビットとし、1演算モジュールのビット精度n
1=4ビットとしたとき、1演算ユニットに必要な演算
モジュールの数y2=(n/n1)2=16個となる。こ
の4個の演算モジュールは、図17に示すものと同じ
く、(n/y)=(16/4)=4個の1ビット演算セ
ルにてそれぞれ構成される4段の並列演算器を有して構
成される。
【0195】上記の構成にてn×mビット(x≧m≧
2)の演算を行うときに、m2個の演算ユニットがカス
ケード接続される。例えば、n×m=64×16=10
24ビットに拡張して演算するには、64ビット精度の
演算ユニット(つまり4ビット精度の演算モジュールの
162個のカスケード接続)を162個カスケード接続す
ればよい。
【0196】また、演算処理に求められ演算精度をn2
×mビット(n1≦n2≦n)としたとき、n2=n1
×y1(ただしy1≦y)を満たすように、各々の演算
ユニット内にて(y1)2個の演算モジュールがカスケ
ード接続される。例えば、n2×m=32×16=51
2ビットに拡張して演算するには、n1=4ビットとし
たとき、y1=32÷4=8となる。よって、1演算ユ
ニット内にて4ビット精度の演算モジュールを(y1)
2=82個カスケード接続すればよい。
【0197】このように完全並列形の演算器の場合、1
モジュール(1ユニット)のビット精度をnとし、n×
mのビット精度に拡張して演算を行う場合には、m2
の演算モジュール(ユニット)が必要となる。よって、
演算モジュール(ユニット)の数の点から言えば、完全
並列形よりも準並列形の方が優れている。
【0198】[7] 暗号化処理及び復号処理(剰余演
算処理) RSAに基づいた公開鍵暗号方式の暗号化及び復号処理
(剰余演算処理)について図18を参照して説明する。
【0199】AN≡A mod n の剰余演算では本暗号/復号システムにおいてA、N、
nの各値を入力する(ステップS31)。
【0200】次にAをA1に代入し(ステップS3
2)、演算用変数kの初期値を1とする(ステップS3
3)。
【0201】そして、演算用変数kがN未満である間、
すなわち、次式 k<N を満たしている間(ステップS39)は、以下のステッ
プS34〜ステップS38の処理を繰り返す。
【0202】まず、N=1であるか否かを判別する(ス
テップS34)。
【0203】ステップS34の判別において、N=1で
ある場合には、A1をA0に代入する(ステップS3
5)。
【0204】また、N≠1である場合には、A1及びA
の乗算を行い、乗算結果をA0に代入する(ステップS
36) そして、 A0≡A mod n を求め(ステップS37)、演算用変数kをk+1とす
る(ステップS38)。
【0205】そして、演算用変数kがN以上となった場
合に、得られた剰余Aが求める剰余となる。このとき、
乗算の最大精度はAのビット数の2倍である。
【0206】このように、本第1の実施の形態のべき乗
剰余演算装置を用いれば、図22の従来の処理と比較し
て処理を非常に単純化することができる。
【0207】[8] べき乗剰余演算装置のクロック数
とゲート数 [8.1] 並列形と順序回路形 ここで、べき乗剰余演算装置を構成する演算機構のう
ち、最もクロック数を要する除算機構のクロック数につ
いて、上述した準並列形、完全並列形の構成を、PCT
/JP98/05586に開示された順序回路形の構成
と比較して説明する。
【0208】順序回路形とは、図2に示す情報処理シス
テムにおいて、演算ユニット7−1〜7−xがそれぞれ
演算精度2mビットで演算処理する場合であって、演算
処理に必要な所望演算精度を2n1(n1>m)ビットと
したとき、カスケード接続される演算ユニットの数X
を、x≧X≧2n1/2mに設定している。また、各演算
ユニットは演算精度2m/yで演算を行うy個の演算モジ
ュールを有し、演算処理に必要な所望演算精度を2
n1(n1>m)ビットとしたとき、カスケード接続され
る演算モジュールの数Yを、y≧Y≧2n1/2m/yに設
定している。この演算モジュールをべき乗剰余演算ユニ
ットとして構成できる。
【0209】この順序回路形の演算ユニットでは、クロ
ックが入力される毎にシフトとラッチとを行って、べき
乗剰余演算を実施している。
【0210】このように、nビット並列減算器を1ビッ
トシフトさせてn段設けたものが並列形で、n回のシフ
トとラッチを繰り返すのが順序回路形である。
【0211】[8.2] 演算時間 上述した並列形は回路素子と配線の遅延、順序回路形は
同遅延にラッチとシフト操作に時間的余裕を考慮してク
ロック周期が設定され、そのクロック時間によって演算
時間が定まる。
【0212】ここで、NAND,NORおよびNOTゲ
ートなどの基本素子の遅延を1[Δ]として、基本とな
るnビット並列減算器の最長伝搬遅延がt1[Δ]であ
る場合、並列形の最長伝搬遅延である演算時間はn・t
1[Δ]になる。
【0213】順序回路形は、同様に基本素子の遅延をt
1[Δ]とし、減算結果のラッチおよびシフト操作にお
いてそれぞれの時間的余裕をt2[Δ]とすれば、1ス
テップの周期(t1+2・t2)[Δ]が定まる。そし
て、そのnクロックを用いて演算が実行されるので、演
算時間は(t1+2・t2)×n[Δ]で表される。
【0214】1演算ユニットのnビット精度のm倍の除
算を実行する場合、完全並列形はm 2個の演算ユニット
をカスケード接続するだけで制御もクロックも不要であ
る。完全並列形の最長伝搬遅延時間は、下記の式(C)
となる。
【0215】
【数3】
【0216】1演算ユニットのnビット精度のm倍の除
算を実行する場合、順序回路形はm個の演算ユニットの
カスケード接続で、n×mクロックを要する。
【0217】順序回路形の最長伝搬遅延時間は、下記の
式(D)となる。
【0218】
【数4】
【0219】1演算ユニットのnビット精度のm倍の除
算を実行する場合、準並列形はm個の演算ユニットのカ
スケード接続で、(m−1)回の部分剰余のラッチを繰
り返して除算を実行する。このため、準並列形は順序回
路形と比較すると、シフトが不要でラッチ操作のみとな
り、順序回路形よりも時間的余裕は小さくて済むが、ク
ロック数はmクロックと余裕をもって算出する。
【0220】準並列形の最長伝搬時間は、下記の式
(E)となる。
【0221】
【数5】
【0222】以上の3形式を比較すると、クロックを用
いない完全並列形がもっとも高速演算が可能となる。こ
の完全並列形に比べて、順序回路形は2・t2・n・m
[Δ]の増となり、準並列形は2・t2・m[Δ]の増
となる。従って、準並列形は順序回路形に比べて1/n
の遅延減で演算を実行することができる。1演算ユニッ
ト(1チップ)の精度nを大きくすれば、精度拡張時は
nクロック分の時間的余裕をとる必要がない分、準並列
形は順序回路形よりも高速演算が可能となる。
【0223】[8.3] 必要除算器数とゲート数 1除算器の精度を16ビット及び32ビットとした場
合、128ビット及び1024ビットにそれぞれ精度拡
張したときの除算器数とゲート数の比較を下記の表1〜
表3に示す。
【0224】
【表1】
【0225】
【表2】
【0226】
【表3】
【0227】表1〜表3の比較から明らかなように、1
除算器のビット精度のm倍のビット精度に拡張する場合
には、除算器の必要数は順序回路形及び準並列形ではm
個で済むのに対して、完全並列形ではm2個と膨大とな
り、総ゲート数も増大する。る。
【0228】[9] クロック周波数 演算ユニットを準並列形または順序回路形にて構成した
場合には、図2に示すコントロールユニット5が演算ユ
ニットでの演算に必要なクロックを発生するクロック発
生器を有している。このクロック発生器は分周器を含
み、発生されるクロック周波数が可変である。
【0229】ここで、演算に必要な所望演算精度が与え
られた場合、その所望演算精度のビット数が大きいほ
ど、1つのクロックにて実施すべき演算時間を長く要す
る。このため、クロック周波数を固定とした場合であっ
て、所望演算精度のビット数が大きい場合に合わせてク
ロック周波数を固定とすると、所望演算精度のビット数
が小さい場合に演算時間が無駄に長くなる。逆に、所望
演算精度のビット数が小さい場合に合わせてクロック周
波数を固定とすると、所望演算精度のビット数が大きい
場合に演算時間マージンがとれず、極端な場合には演算
不能となる。
【0230】そこで、このクロック周波数を可変とし、
所望演算精度のビット数が大きいほどクロック周波数を
低くし、所望演算精度のビット数が小さいほどクロック
周波数を高くしている。この結果、所望演算精度のビッ
ト数に合わせてその演算に必要な時間を確保するととも
に、所望演算精度のビット数の演算時間を最適化して、
無駄に演算時間を要しないようにすることができる。
【0231】[10] べき乗剰余演算の例 次に上記べき乗剰余演算装置を用いて、ab≡M mo
d cを演算する演算例ついて、図19〜図21を参照
して説明する。
【0232】指数bがnビットの場合、べき乗剰余演算
に必要な演算処理は、図19に示すように、(1)〜
(4)の4段階の乗算処理及び除算処理に分解すること
ができる。この場合において、(1)及び(3)の乗算
は、図20のiビット乗算器21にて実施され、(2)
及び(4)の除算は、図20の2iビット除算器20に
て実施される。(1)及び(3)の乗算処理における乗
算精度は、最大cのビット数i以下となり、その積は最
大でcのビット数iの2倍精度となる。また、(2)及
び(4)の除算(剰余演算)処理における除算精度は、
最大でcのビット数iの2倍の精度となる。このiビッ
ト乗算器21と2iビット除算器20とは、図5の任意
精度乗算装置21と任意精度除算装置20と同様の構成
を有する。
【0233】なお、図20において、入力される値は
a,b,cであり、Mが格納されるレジスタには、当初
のMは1に初期化されている。そして、M←M× a
modcの演算(b=0)では、a,Mがiビット乗算
器21に入力され、その結果をcで割った余りをMとし
て格納する。また、a←a2 mod cの演算(b=
1)では、iビット乗算器21に2つのaを入力するこ
とによりa2が求められる。
【0234】ここで、図19中の(1)ではr12,r
2,r33…の演算がiビット乗算器21で実施され、
図19中の(2)ではr12,r22,…をそれぞれcで
割った余りがr2,r3…(計算途中のM)として、2
iビット除算器20で求められる。図19中の(3)で
は、k1=r1×r2、k2=RO×r3、k3=R1
×r4…の乗算がiビット乗算器21で実施される。ま
た、図19中の(4)では、K1,K2,…をcで割っ
た余りがそれぞれR0,R1,…(計算途中のM)とし
て、2iビット除算器20で求められ、最終段階でkn
−2をcで割った余りRn−3が求めるべき値Mとな
る。
【0235】この計算例の実例を図21に示す。図21
は、18619≡M mod 377を復号してM=17
を求めた計算手順を示している。
【0236】図21において、(2)の剰余の値「28
9」,「204」,「146」,「204」は、186
2,2892,2042,1462をそれぞれ377で割っ
た余りとして求められる。また、(3)の積の値は、5
3754=186×289,44880=220×20
4として求められる。さらに、(4)のM=17は、4
4880を377で割った余りとして求められる。
【0237】以上の説明のように第2の実施の形態によ
れば、乗算精度nビット、除算精度2nビットでべき乗
剰余演算を行うべき乗剰余演算ユニットを構成し、この
べき乗剰余演算ユニットをm個カスケード接続すること
により、n×mビット精度の暗号化及び復号を行うこと
が可能となる。このため、容易にシステムのハードウェ
ア的な拡張を図ることが可能となっている。
【0238】以上の説明においては、公開鍵暗号方式の
RSA暗号の場合について説明したが、楕円曲線暗号に
も同様に適用が可能である。
【0239】上記第2の実施の形態においては、全ての
べき乗剰余演算装置をパーソナルコンピュータシステム
の外部に設けていたが、べき乗剰余演算装置の一部を予
めパーソナルコンピュータシステムの内部に設け、精度
拡張のためのべき乗剰余演算ユニット用拡張スロットを
パーソナルコンピュータシステムに予め設け、メモリの
拡張をメモリ拡張スロットにより行う場合と同様に、べ
き乗剰余演算ユニットを拡張スロットに装着することに
より容易に演算精度拡張を行えるようにしてもよい。
【0240】以上の実施の形態においては、パーソナル
コンピュータにより本発明を実現する場合についてのみ
説明したが、ワークステーションや、各種計測機器、家
電製品などの機器への組込型コンピュータについても同
様に適用が可能である。
【0241】(第3の実施の形態)次に、第1,第2の
実施の形態の中で説明した1チップ内での光伝送につい
て説明する。
【0242】(マイクロコンピュータの概要)図23
は、本発明を適用した情報処理システムとしてのマイク
ロコンピュータ100の一例を示すブロック図である。
【0243】図23において、マイクロコンピュータ1
00は、下記の各種機能ユニットを含んでいる。すなわ
ち、CPU(中央処理ユニット)102、ROM(リー
ド・オンリー・メモリ)104、キャッシュメモリとし
てのRAM(ランダム・アクセス・メモリ)106、高
周波発振回路108、低周波発振回路110、リセット
回路112、プリスケーラ114、16ビットプログラ
マブルタイマ116や8ビットプログラマブルタイマ1
18やクロックタイマ120などのタイマ回路、インテ
リジェントDMAC(ダイレクト・メモリ・アクセス・
コントローラ)122や高速DMAC124などのデー
タ転送制御回路、割り込みコントローラ126、シリア
ルインターフェース128、BCU(バス・コントロー
ル・ユニット)130、A/D(アナログ/デジタル)
変換器132やD/A(デジタル/アナログ)変換器1
34などのアナログインターフェース回路、入力ポート
136や出力ポート138やI/O(入力/出力)ポー
ト140などのI/O回路が、マイクロコンピュータ1
00内に配置されている。さらに、マイクロコンピュー
タ100は、CPU102と他の機能ユニット104〜
140と間を接続するデータバス142やアドレスバス
144などのバスライン146や、各種端子148を含
んでいる。これらは、一枚の半導体基板上に形成されて
いる。なお、図23ではデータバス142とアドレスバ
ス144とを分離しているが、データとアドレスとを時
分割で伝送するようにすれば、データ/アドレスバスと
してデータとアドレスとを1本のラインで兼用して伝送
させてもよい。
【0244】また、図23に示すバスライン146に
は、図2に示す内部バス4が接続され、上述した各構成
はマイクロプログラマブルプロセットユニット3にも接
続されている。
【0245】(各種機能ユニット間での光信号の送受信
のための構成)本実施の形態の特徴は、データバス14
2、アドレスバス144、内部バス4を伝送される信号
を光信号としたことである。すなわち、多チャンネルの
データ例えば32ビットのデータは、それぞれ波長の異
なる光信号として、光伝送媒体にて形成されたデータバ
ス142中を同時に光伝送される。アドレス信号も同様
に、波長の異なる多チャンネルの光信号として、アドレ
スバス144を同時に光伝送される。なお、データバス
142及びアドレスバス144が1本の光伝送媒体にて
兼用される場合には、光信号のデータ及びアドレスは時
分割にて伝送される。
【0246】ここで、上述の機能ユニット102〜14
0は全て、従来通り、多チャンネルの電気信号にて各種
機能を実現するために動作し、半導体素子等にて形成さ
れている。このため、各種の機能ユニット102〜14
0は、バスライン146(データバス142及び/又は
アドレスバス144)を介して入力される多チャンネル
の電気信号を多チャンネルの光信号に変換する信号入力
部と、多チャンネルの電気信号を多チャンネルの光信号
に変換してバスライン146に出力させる信号出力部と
のいずれか一方または双方を有する。
【0247】図24は、マイクロコンピュータ100が
形成された基板200の一部を概略的に示す図である。
図24には、基板200上に形成された第1の機能ユニ
ット210(機能ユニット102〜140のいずれか一
つ)より第2の機能ユニット220(機能ユニット10
2〜140の他の一つ)に向けて、バスライン146を
介して信号を送出するための構成が図示されている。
【0248】第1の機能ユニット210は、電気回路領
域212と、その電気回路領域212からの出力信号
(多チャンネルの電気信号)を伝送する配線部214
と、多チャンネルの電気信号に基づいてそれぞれ波長の
異なる多チャンネルの光信号を発光出力する信号出力部
としての発光部216とを有する。
【0249】第2の機能ユニット220は、多チャンネ
ルの光信号を多チャンネルの電気信号に変換する信号入
力部としての受光部222と、多チャンネルの電気信号
を増幅する増幅回路224と、その電気信号を伝送する
配線部226と、電気回路領域228とを有する。な
お、増幅回路224は、受光部222からの電気信号の
電圧レベルを、第2の機能ユニット220にて必要な電
圧レベルまでシフトさせるレベルシフタとして機能し、
必要に応じて設けられる。
【0250】発光部216と受光部222との間に形成
されるバスライン146は、光伝送媒体である導波路2
30として構成され、多チャンネルの光信号を同時に伝
送する。
【0251】図24に示す発光部216は多チャンネル
の電気信号を多チャンネルの光信号に変換するために、
多チャンネルの数と等しい数の発光素子を有する。同様
に、受光部222も多チャンネル分の受光素子を有す
る。
【0252】なお、第1,第2の機能ユニット210,
220間で双方向の信号伝送を行うこともできる。この
場合、第1の機能ユニット210は、図24に示す光伝
送媒体としての導波路230と光学的に接続された受光
部と、該受光部からの電気信号を増幅する増幅器とを有
する。一方、第2の機能ユニット220は、導波路23
0と光学的に接続された発光部222を有する。
【0253】図25は、図24に示す発光部216のう
ちの一部である3つの発光素子216A〜216C及び
導波路230の一例を示す断面図である。図25では、
共通の導波路230上に3チャンネル分の発光素子21
6A〜216Cが形成されている状態が図示されてい
る。
【0254】図25において、導波路230は、例え
ば、下層のSiO2層240と上層のSiO2層242と
の間にコアとなる透明電極例えばITO(インジウム・
ティン・オキサイド)層244を設けて構成される。な
お、コアとなるITO層244の全ての外表面は、Si
2層240またはSiO2層242により覆われて光漏
れが防止されている。
【0255】発光素子216A〜216Cは、後述する
ように一部の層の組成、材料等が異なる点を除いて同一
の構成を有するため、以下発光素子216Aについて説
明する。発光素子216Aは、上層のSiO2層242
上に、各チャンネルの発光箇所を仕切るためのバンク2
50を有する。このバンク250内には、ITO層25
2、発光層254が順次積層され、発光層254及びバ
ンク250の一部を覆って金属電極(例えばAl−L
i)256が形成されている。なお、ITO層252の
下層に、狭帯域の波長を通過させる光学フィルターを形
成してもよい。このようにして、導波路230上には、
バンク250により光学的に隔絶された複数の発光素子
216A〜216Cなどが形成される。
【0256】発光素子216Aの発光層254は、例え
ば有機EL(エレクトロルミネッセンス)にて形成され
る。この有機ELは、例えば図26に示すように、イン
クジェットノズル258よりITO層252上に吐出さ
れ、例えば約0.1μmの膜厚にて形成される。そし
て、有機ELの材料を選択することで、あるチャンネル
の発光素子216Aの発光層254から発光される光の
波長を、他の全てのチャンネルの発光素子216B,2
16C等の発光層254の発光波長と異ならせている。
【0257】発光層254として有機ELを用いると、
発光波長の選択の自由度が大きく、事実上特定の材料を
選択したり、材料を復号することで、あらゆる波長の選
択が可能である。
【0258】有機発光材料としては、発光材料中の励起
子のエネルギーが有機物質の禁止帯幅に対応するHOM
O(最高被占準位)−LUMO(最低空準位)間のエネ
ルギー差に相当するものが選択される。例えば、低分
子、高分子、特に主鎖に共役系の発達した共役高分子、
導電性分子や色素分子が選択される。
【0259】有機発光材料として、低分子有機材料を用
いる場合、例えば青色発光させるには、アントラセン、
PPCP、Zn(OXZ)2、ジスチルベンゼン(DS
B)、その誘導体(PESB)等が用いられる。また、
例えば赤色発光させるには、BPPC、ベリレン、DC
Mなどが用いられる。
【0260】また、有機発光材料として高分子有機材料
を用いる場合であって、例えば赤色発光させるために
は、PATなど、オレンジ色発光させるにはMEH−P
PVなど、青色発光させるにはPDAF、FP−PP
P、RO−PPP、PPPなど、紫色発光させるにはP
MPSなどが用いられる。
【0261】その他、有機発光材料として、PPV、R
O−PPV、CN−PPV、PdphQX、PQX、PV
K(ポリ(N−ビニルカルバゾール))、PPS、PN
PS、PBPSなどが用いられる。
【0262】特にPVKは、Eu錯体などキャリア輸送
能力の劣る色素分子などのドーパントインクの混合濃度
や吐出回数を制御することで発振波長(発光色)を変え
ることができる。例えば、PVKからなる有機発光材料
に蛍光色素をドープすると発光色を調整することができ
る。
【0263】また、PVKにローダミンBやDCMをド
ープ可能に構成する場合には、発光色を緑色から赤まで
任意に変えることができる。
【0264】また、光の波長(ピーク波長や波長帯域な
ど)は、図25のITO層252の下層に追加配置され
る光学フィルターによってある程度調整可能である。
【0265】白色光のような波長帯域の広い光が発光さ
れ、その波長を調整する場合は、上記光学フィルターと
して、通常の吸収型の光学カラーフィルターを用いるこ
とができ、これにより所望の色(波長)の光のみを通過
させて光信号とすることができる。
【0266】また、ITO層252の下層に追加配置さ
れる光学フィルタとしては、分布反射型多層膜ミラー
(DBRミラー)を用いることができる。このDBRミ
ラーは、屈折率の異なる複数の薄膜を積層したもの、特
に屈折率の異なる2種類の薄膜で構成されたペアを複数
有するものである。この薄膜を構成する成分としては、
例えば半導体材料や誘電体材料なとが挙げられ、これら
のうちでは誘電体材料が好ましい。これらは、通常の真
空成膜法あるいは液相成膜法を用いて形成することがで
きる。また、誘電体材料は、有機溶媒に可溶な有機化合
物を出発原料として用いることができ、この場合図26
のインクジェット方式によるパターン形成の適用が可能
となる。
【0267】発光素子216A〜216Cは、垂直共振
器型の面発光レーザとすることもできる。この面発光レ
ーザは、それぞれ反射率が異なる2つのミラー例えば分
布反射型多層膜(DBR)ミラー(図25の例では下層
のミラーの反射率が低い)の間に、クラッド層及び活性
層(量子井戸構造が好ましい)を交互に積層させて形成
し、上下各層のミラーと上下各層の電極(図25の例で
は下部電極はITOなどの透明電極である)との間には
それぞれコンタクト層が配置されて形成される。
【0268】なお、この種の面発光レーザの詳細は、本
願出願人の先の出願(特願平10−2012415、特
願平10−201244、特開平7−198203な
ど)に開示されているので、その詳細な説明は省略す
る。
【0269】各チャンネルの面発光レーザの発光波長
も、エピタキシャル成長される材料例えばGaAlAs
の組成を選択することで変更可能であり、図26のイン
クジェット方式によるパターン形成によって、組成の異
なる複数の面発光レーザを導波路230上に実装するこ
とができる。
【0270】発光素子216Aのさらに他の例として、
図28に示すような端面発光レーザ270を用いること
もできる。この端面発光レーザ270の端面272から
出射された光274は、ITOなどの光伝送媒体にて形
成されたウェーブガイド276内を伝搬される。各チャ
ンネルの端面発光レーザの発光波長も、その構成材料の
組成を選択することで変更可能である。
【0271】図27は、図25に示す導波路230の延
長線上に設けられた3チャンネル分の受光素子222A
〜222Cの一例を示している。この受光素子222A
〜222Cも後述する一部の層の組成、材料等が異なる
点を除いて共通の構成を有するため、以下受光素子22
2Aについて説明する。この受光素子222Aは、導波
路230の上層のSiO2層242が除去された領域の
ITO層244上に、光学フィルター262と、透明電
極としてのITO層263と、第1導電型半導体層例え
ばn型GaAlAs層264と、第2導電型半導体層例
えばp型GaAlAs層266と、金属電極268とを
有する。
【0272】ここで、第1,第2導電型半導体層26
4,266はPINフォトダイオードを構成する。この
PINフォトダイオードを構成する他の例として、p型
a−SiC(p型半導体)と、i型a−Si層と、n型
a−SiC層とを有するものでもよい。このとき、金属
電極268として、Al−Si−Cu層を用いることが
できる。
【0273】光学フィルター262は、例えばX1nm
以上の波長の光を通過させる第1の光学フィルターと、
X2(>X1)nm以下の波長の光を通過させる第2の
光学フィルターとの少なくとも2層を有し、X1〜X2
nmの波長の光を通過させる狭帯域光フィルターとして
機能する。なお、この光学フィルター262の構成を、
図25のITO層252の下層に追加配置される光学フ
ィルターに適用することもできる。逆に、図25のIT
O層252の下層に追加配置される光学フィルターとし
て説明した材料を、光学フィルター262に用いること
もできる。
【0274】上記の構造により、導波路230を伝搬さ
れ、光学フィルター262を通過した特定波長の光は、
第1,第2導電型半導体層264,266の間の界面に
形成される空乏層にて光−電流変換され、この電気信号
を電極263,268を介して取り出すことができる。
【0275】ところで、光学フィルター262は、その
構成材料の選択により、通過される光の波長を変更でき
る。また、第1,第2導電型半導体層264,268な
どにて構成されるフォトダイオードも、構成材料例えば
GaAlAsの組成を選択することで、検出できる光の
波長を変更できる。これにより、あるチャンネルの受光
素子222Aにて検出される光の波長を、他の全てのチ
ャンネルの受光素子222B,222Cなどでの検出波
長と異ならせている。なお、光学フィルタ262、第
1,第2導電型半導体層264,268は、図26に示
すインクジェットノズル258を用いた層形成方法によ
り形成することができる。あるいは、検出波長の異なる
受光素子222A,222B,222Cを、導波路23
0上に実装してもよい。
【0276】(マイクロコンピュータの動作説明)図2
3に示すCPU102が例えばキャッシュメモリである
RAM106よりデータを読み込む場合には、CPU1
02よりRAM106を選択するチップイネーブルまた
はチップセレクト信号、さらには読み出しアドレス信号
などが、それぞれ多チャンネルの電気信号として出力さ
れる。
【0277】ここで、図24に示す第1の機能回路21
0がCPU102とすると、この多チャンネルの電気信
号は図24の電気回路領域212より出力される。この
多チャンネルの電気信号は配線部214を介して発光部
216に入力される。発光部216を構成する各々の発
光素子は、図25に示す金属電極256に各チャンネル
の電気信号の一つが入力され、それに基づいて発振(発
光)制御される発光層254にて各チャンネル固有の波
長の光信号が発光される。これにより、各チャンネル毎
に発光制御された光信号が各チャンネルの発光層254
より発光され、ITO層252を介して導波路230に
入射される。導波路230では、図25に示すようにコ
アとなるITO層244を光が伝搬される。
【0278】図24の第2の機能ユニット220をRA
M106とすると、その受光部222に、導波路230
を伝搬された光信号が入射される。ここで、図27に示
すように、受光部を構成する各々の受光素子222A〜
222Cは、それぞれ異なる波長の光を通過させる光学
フィルタ262を有するので、多チャンネル分の数だけ
配置された各々の受光素子222A〜222Cには、各
チャンネルに対応する波長の光のみがそれぞれ入射され
る。さらに、各々の受光素子222A〜222Cは、各
々の光学フィルタ262を通過した波長の光を検出する
ように構成されているため、各チャンネル毎に電気信号
を出力することができる。
【0279】その後は、従来のLSIなどと同様にRA
M106が電気的に駆動され、必要なデータがRAM1
06より読み出される。RAM106より読み出された
電気信号は、図24では省略した第2の機能ユニット2
20側の発光部にて光信号に変換され、図24に示す導
波路230を介して伝搬される。この光信号は、図24
ではした第1の機能ユニット210側の受光部にて電気
信号に変換され、増幅器を介してCPU102に供給さ
れる。
【0280】このように、情報処理システムとしてのマ
イクロコンピュータ100内の各機能ユニット間の信号
の授受を光によって行うことにより、伝送速度のロスを
ほとんど無視することができる。従って、さらに高集積
化が進んだとしても、伝送遅延を考慮した設計が不要と
なり、回路の構築設計が大幅に簡易化される。しかも、
マイクロコンピュータ100内の各機能ユニット間の信
号の授受を光によって行うことにより、マイクロコンピ
ュータ100の発熱も低減させることができる。
【0281】なお、図23に示すマイクロコンピュータ
100と、その周辺機器との間を光通信する構成とする
こともできる。周辺機器としては、LCDやCRTなど
の表示部、プリンタなどを挙げることができる。
【0282】この場合、図23に示す入力ポート13
6、出力ポート138、I/Oポート140として、バ
スライン146に対して多チャンネルの光信号を入出力
する構成とすればよい。このとき、光信号を入出力しな
い時に通路を遮断する光シャッターを各ポートに設け、
チップセレクト信号などにより周辺機器が指定された場
合にのみ光シャッターを開放する構成としてもよい。
【0283】(第4の実施の形態)本発明の第4の実施
の形態は、従来の例えばLSIとして1チップ内に集積
されていた複数の機能ユニットを、異なる半導体装置に
振り分けて収容したシステムLSIに関する。
【0284】図29は、図23に示すマイクロコンピュ
ータ100の一部の構成を第1の半導体装置300に搭
載し、他の全部または一部を第2の半導体装置302に
搭載し、第1,第2の半導体装置300,302を外部
バスライン304にて接続したシステムLSIをベース
基板306上に形成した状態を示している。外部バスラ
イン304は図24で示した導波路230の他、例えば
光ファイバーにて形成され、第1,第2の半導体装置3
00,302間は光により信号の授受が行われる。な
お、第1の半導体装置300及び第2の半導体装置30
2内に複数の機能ユニットが配置される場合、各半導体
装置内での機能ユニット間は第1の実施の形態と同様に
して光により信号の授受が行われる。
【0285】ここで、図29に示す第2の半導体装置3
02内に、図23に示すキャッシュメモリとしてのRA
M106と、ROM104と、光伝送媒体で形成された
内部バスライン310とが、第2の基板312上に少な
くとも搭載されている。一方、図29に示す第2の半導
体装置300内には、図23に示すCPU102、内部
バスライン146の他、第2の半導体装置302に搭載
されない機能ユニット108〜140が、第1の基板3
08上に搭載されているものとする。
【0286】この構成により、第1の半導体装置300
内では、CPU102は内部バスライン146を介し
て、第1の半導体装置300内に搭載された他の機能ユ
ニット108〜140との間で光信号によるデータ、ア
ドレスの信号授受を行うことができる。一方、第1の半
導体装置300内のCPU102と、第2の半導体装置
302内のROM104,RAM106との間では、第
1の半導体装置300内の内部バスライン146、外部
バスライン304及び第2の半導体装置302内の内部
バスライン310を介して、データ、アドレスの信号の
授受を光信号を用いて行うことができる。
【0287】このような構成により、従来はCPU10
2と共に1チップ内に納める必要があった機能ユニット
の少なくとも一つを、外部に取り出すことができ、しか
も外部に取り出した機能ユニット104,106とCP
U102との間の伝送遅延は無視することができる。こ
のため、1チップ化される第1の半導体装置300の集
積度を低くでき、歩留まりが向上する他、CPU102
により直接アクセスされる機能ユニットとして例えばR
OM104,RAM106の外付けが可能になる。従っ
て、1チップの基本設計思想を共通化させながら、外付
け素子による機能の追加を自由に設計することが可能と
なる。なお、第2の半導体装置302に等される機能ユ
ニットとしては、上述のようなメモリに限定されるもの
ではない。
【0288】(第5の実施の形態)図30は、本発明の
第5の実施の形態を示す概略説明図である。図30に示
すように、本実施の形態では発光部、受光部、導波路
が、三次元に設置されている。図30において、基板4
00上には第1層〜第5層410a〜410eが形成さ
れている。第5層410eにおける発光部413と受光
部427の関係は、図24に示す水平な導波路230に
て接続された発光部216と受光部222の関係と同じ
である。また、異なる層間における発光部413と受光
部424の関係、発光部414と受光部422,42
5,426の関係、発光部412と受光部421との関
係、発光部423と受光部411との関係は、導波路が
垂直部分を有する点のみが異なり、基本的には図24に
示す発光部216と受光部222の関係と同じである。
【0289】このデバイスを製造するには、下記のよう
にすることが好ましい。まず、第1層〜第5層410a
〜410eをそれぞれ異なる第1〜第5基板上に形成す
る。次いで、第1層410aが形成される第1基板は、
図30の基板400とすることができるが、もしそうで
ない場合には第1層410aを第1基板から剥離させ、
図30の基板400上に転写する。以下、同様にして第
2層410b〜410eをそれぞれ第2基板〜第5基板
から剥離させ、位置合わせしながら図30に示す順序で
基板400上に転写して積層する。この剥離、転写方法
は本願出願人による特願平8−225643号などに開
示されているので省略する。
【0290】このデバイスによれば、第3の実施の形態
と同様な効果を奏することができると共に、さらに高集
積化を果たすことができる。
【0291】なお、本発明は上記実施の形態に限定され
るものではなく、本発明の要旨の範囲内で種々の変形実
施が可能である。例えば、上述した実施の形態では発光
素子として有機EL、半導体レーザを例に挙げたが、こ
れらに限らず無機EL、発光ダイオードなどで構成する
こともできる。さらに、受光素子としても、PINフォ
トダイオードに限らず、PNフォトダイオード、アバラ
ンシェフォトダイオードなどの各種ダイオード、フォト
トランジスタ、フォトルミネッセンスなどを用いること
ができる。
【0292】また、本発明の情報処理システムである例
えばマイクロコンピュータは、図23の機能ユニットを
有するものに限らず、用途に応じて種々の規模及び種類
の機能ユニットを配置することができる。特に、第4の
実施の形態のようなシステムLSIの一つをマイクロコ
ンピュータとして1チップ化した場合には、従来のマイ
クロコンピュータに必要であった機能ユニットの一部を
省略することも可能である。1チップ内より省略された
機能ユニットは、該1チップと外部バスラインを介して
接続される他の半導体装置に搭載されればよい。
【0293】また、本発明のマイクロコンピュータある
いはシステムLSIが搭載される電子機器としては、従
来よりマイクロコンピュータ化されたあらゆる機器を挙
げることができ、特に消費電力の低下が求められる携帯
用電子機器の他、情報通信機器、家電、業務用電子機
器、工作機械、自動車部品等に好適に実施できる。
【0294】(第6の実施の形態)次に、第2の実施の
形態または第3の実施の形態の構成を利用して実現され
る本発明の第6の実施の形態に係るシステムLSIにつ
いて、図31を参照して説明する。
【0295】図31に示すシステムLSI500は、開
発メーカが異なる複数の機能ブロック501,502,
503…が搭載されたシステムLSIである。図31に
示す3つの機能ブロック501,502,503は、そ
れぞれA社,B社,C社が独自に開発したライブラリに
基づいて設計されたものである。このシステムLSI5
00は、C社によって製造されたものと仮定する。C社
は、機能ブロック501,502の焼き付けのための知
的所有権に関する権利をA社及びB社から許諾され、こ
のシステムLSIを製造する。
【0296】ここで、A社及びB社は、C社が製造する
システムLSIの数に基づいて、ライセンス料が計算さ
れるとすると、C社から正確な製造数の申告を受ける必
要があり、ライセンス料の管理はA〜C社の全てにとっ
て煩雑となる。
【0297】この第6の実施の形態は、この種の知的所
有権に関するライセンス料の管理を、開発メーカ、製造
メーカに負担をかけずに行うための改良に関する。
【0298】例えばA社の開発した機能ブロック501
を利用するエンドユーザに、上述したRSA方式の復号
鍵(プライベートキー)をライセンスによって開示す
る。そして、この第6の実施の形態では、システムLS
I500の利用者のうち、復号鍵を有するエンドユーザ
のみが機能ブロック501を利用できるようにしたもの
である。
【0299】以下、機能ブロック501の構成及び動作
について説明する。
【0300】機能ブロック501は、四則演算機能エリ
アを有する。この四則演算機能エリアは、エンドユーザ
に与えられた所定の復号鍵が入力された際に、暗号化及
び復号の少なくとも一方の演算を先ず実施する。機能ブ
ロック501は、この演算が成立した時以降初めて、暗
号化及び復号以外の一般の四則演算機能がイネーブルと
される。
【0301】具体的には、機能ブロック501は、図2
に示すx個の演算ユニット7−1〜7−xを、四則演算
機能ユニットとして有している。この中の一部が、図5
または図20に示すべき乗剰余演算ユニットとして共用
されている。
【0302】ここで、例えば機能ブロック501での一
般四則演算機能をイネーブルとするには、第2の実施の
形態の[1]RSA方式の原理説明の欄の(3)式の暗
号文Me≡C mod nを解読することが必要十分条
件として設定されている。そこで、エンドユーザはライ
センスにより予め取得した復号鍵を入力し、第2の実施
の形態の[1]RSA方式の原理説明の欄の(4)
(5)式の演算を、機能ブロック501内の複数のべき
乗剰余演算ユニットを用いて実施し、暗号文を復号す
る。この復号の結果、機能ブロック501内に設けられ
た図2に示すx個の演算ユニット7−1〜7−xを用い
た一般の四則演算機能がイネーブルとなり、機能ブロッ
ク501を利用できるようになる。
【0303】なお、機能ブロック501を利用する毎に
復号鍵を入力するのが煩雑であれば、ライセンスにより
取得した復号鍵を記憶する記憶部を設けても良い。
【0304】このように、機能ブロック501には、第
1の実施の形態の図2の構成が備えられ、その一部が第
2の実施の形態にて説明した暗号文の復号のために用い
られる。
【0305】ここで、システムLSI500を構成する
各機能ブロック間、各機能ブロック内での信号伝送は、
第3〜第5の実施の形態の技術を利用して、光伝送とす
ることができることは言うまでもない。
【図面の簡単な説明】
【図1】図1(A)及び図1(B)は、本発明の第1の
実施の形態に係る情報処理システムの概要構成を示すブ
ロック図である。
【図2】図2は、図1(A)及び図1(B)中のプログ
ラマブルディジタルプロセッサの概要構成を示すブロッ
ク図である。
【図3】図3は、第1の実施の形態を疑似乱数発生回路
に適用した具体例を示すブロック図である。
【図4】図4は、本発明の第2の実施の形態に係る暗号
/復号システムの概要構成ブロック図である。
【図5】図5は、べき乗剰余演算装置の概要構成を示す
ブロック図である。
【図6】図6は、任意精度除算装置の概要構成を示すブ
ロック図である。
【図7】図7(A)〜図7(C)はそれぞれ、除算分散
処理の困難性を説明する説明図である。
【図8】準並列形の除算器を2モジュール(2ユニッ
ト)分カスケード接続した状態を示す回路図である。
【図9】図8に示す1ビット減算セルの回路図である。
【図10】図8に示す各段の並列減算器の回路図であ
る。
【図11】図8に示す演算モジュール(ユニット)の詳
細を示す回路図である。
【図12】3個の演算モジュール(ユニット)を接続し
て場合の動作タイミングチャートである。
【図13】7÷2=3余り1りの演算を4ビットの2進
法演算で示す説明図である。
【図14】図13に示す演算を1演算ユニットにて実施
した場合の演算手順を示す説明図である。
【図15】77÷19=4余り1りの演算を8ビットの
2進法演算で示す説明図である。
【図16】図15に示す演算を2演算ユニットにて実施
した場合の演算手順を示す説明図である。
【図17】完全並列形の除算器を4モジュール(4ユニ
ット)分カスケード接続した状態を示す回路図である。
【図18】図18は、本発明の第2の実施の形態におけ
るRSAに基づいた公開鍵暗号方式の暗号化及び復号処
理の処理手順を示している。
【図19】図19は、ab≡M mod cの演算手法
を説明する説明図である。
【図20】図20は、図19の演算を実行する回路のブ
ロック図である。
【図21】図21は、図19の手法に従って、18619
≡M mod 377を復号してM=17を求めた演算
例の説明図である。
【図22】図22は、従来におけるRSAに基づいた公
開鍵暗号方式の暗号化及び復号処理の処理手順である。
【図23】図23は、本発明の第3の実施の形態に係る
マイクロコンピュータの一例を示すブロック図である。
【図24】図24は、図23に示すマイクロコンピュー
タの光伝送部を含む領域の概略説明図である。
【図25】図25は、図24に示す発光部を構成する3
チャンネル分の発光素子の概略断面図である。
【図26】図26は、図25に示す発光層の製膜方法の
一例を示す概略説明図である。
【図27】図27は、図24に示す受光部を構成する3
チャンネル分の受光素子の概略断面図である。
【図28】図28は、図24に示す発光部の変形例を示
す概略説明図である。
【図29】図29は、本発明の第4の実施の形態に係る
システムLSIを示す概略説明図である。
【図30】図30は、発光部、導波路及び受光部を三次
元的に配置した本発明の第5の実施の形態を示す概略説
明図である。
【図31】図31は、本発明の第6の実施の形態に係る
システムLSIの概略図である。
【符号の説明】
1 メインプロセッサユニット 2 バス 3,3’ プログラマブルディジタルプロセッサ 4 内部バス 5 コントロールユニット 6 RAM 7−1〜7−x 演算ユニット 8 ROM 9−1〜9−y 演算モジュール 10,10’ 情報処理システム 12 パーソナルコンピュータ 13 べき乗剰余演算装置 15 キーボード 16 ディスプレイ 17 入出力インターフェース 18 コンピュータ本体 19 プリンタ 20 任意精度除算ユニット 21 任意精度乗算ユニット 22 バス 25−1〜25−H 8ビット除算器 30 1ビット演算セル(減算セル) 30A〜30D 並列演算器(並列減算器) 32 ラッチ回路 100 マイクロコンピュータ 500 システムLSI 501〜503 機能ブロック
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B013 DD01 DD04 5B016 AA01 AA05 BA07 BA10 CA01 DA04 DA10 EA11 GA02 GA05 JA10 5B022 AA05 BA07 CA04 DA09 FA01 FA07 FA10 5J104 AA22 AA36 JA23 NA18

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 入力データに対して、処理手順に従って
    演算処理して出力する情報処理システムにおいて、 前記処理手順に基づいて、それぞれ最大演算精度nビッ
    ト(n:自然数)にて演算するx個の演算ユニットと、 前記x個の演算ユニット同士をカスケード接続するため
    の複数のカスケード接続端子と、 を有し、 前記x個の演算ユニットの各々は、 それぞれ演算精度がn1ビットのy個(y=n/n1)
    の演算モジュールと、 前記y個の演算モジュール同士をカスケード接続するた
    めの複数のカスケード接続端子と、 を有し、 前記y個の演算モジュールの各々は、 n1個の1ビット演算セルにてそれぞれ形成されるn1
    段の並列演算器を1ビットずつシフトさせて配置して構
    成され、 n×mビット(x≧m≧2)の演算を行うときに、m個
    の前記演算ユニットがカスケード接続され、各演算ユニ
    ットにて(m−1)回の繰り返し演算が行われることを
    特徴とする情報処理システム。
  2. 【請求項2】 請求項1において、 演算処理に求められる演算精度をn2×mビット(n1
    ≦n2≦n)としたとき、n2=n1×y1(ただしy
    1≦y)を満たすように、各々の前記演算ユニット内に
    てy1個の前記演算モジュールがカスケード接続される
    ことを特徴とする情報処理システム。
  3. 【請求項3】 入力データに対して、処理手順に従って
    演算処理して出力する情報処理システムにおいて、 前記処理手順に基づいて、それぞれ最大演算精度nビッ
    ト(n:自然数)にて演算するx個の演算ユニットと、 前記x個の演算ユニット同士をカスケード接続するため
    の複数のカスケード接続端子と、 を有し、 前記x個の演算ユニットの各々は、 それぞれ演算精度n1(n1<n)で、少なくとも2種
    の演算を行うy2個(y=n/n1)の演算モジュール
    と、 前記y2個の演算モジュール同士をカスケード接続する
    ための複数のカスケード接続端子と、 を有し、 前記y2個の演算モジュールの各々は、 n1個の1ビット演算セルにてそれぞれ形成されるn1
    段の並列演算器を1ビットずつシフトさせて配置して構
    成され、 n×mビット(x≧m≧2)の演算を行うときに、m2
    個の前記演算ユニットがカスケード接続されることを特
    徴とする情報処理システム。
  4. 【請求項4】 請求項3において、 演算処理に求められる演算精度をn2×mビット(n1
    ≦n2≦n)としたとき、n2=n1×y1(ただしy
    1≦y)を満たすように、各々の前記演算ユニット内に
    て(y1)2個の前記演算モジュールがカスケード接続
    されることを特徴とする情報処理システム。
  5. 【請求項5】 入力データに対して、処理手順に従って
    演算処理して出力する情報処理システムにおいて、 前記処理手順に基づいて、それぞれ所定の演算精度にて
    演算する複数の演算モジュールをそれぞれ有する複数の
    演算ユニットと、 前記複数の演算ユニット同士及び前記複数の演算モジュ
    ール同士をカスケード接続するための複数のカスケード
    接続端子と、 を有し、 演算処理に必要な所望演算精度に基づいて、必要数の前
    記演算モジュール及び前記演算ユニットがカスケード接
    続され、 その演算処理に必要なクロック数は前記所望演算精度の
    ビット数が大きいほど増大され、そのクロック周波数は
    前記所望演算精度のビット数が大きいほど低く設定され
    ることを特徴とする情報処理システム。
  6. 【請求項6】 請求項1乃至5のいずれかにおいて、 各々の前記演算モジュールは、1ビット減算セルにて構
    成される並列減算器を多段に有する除算モジュールを含
    むことを特徴とする情報処理システム。
  7. 【請求項7】 請求項1乃至5のいずれかにおいて、 各々の前記演算モジュールは、1ビット加算セルにて構
    成される並列加算器を多段で有する乗算モジュールを含
    むことを特徴とする情報処理システム。
  8. 【請求項8】 請求項1乃至5のいずれかにおいて、 各々の前記演算モジュールは、 1ビット減算セルにて構成される並列減算器を多段に有
    する除算モジュールと、 1ビット加算セルにて構成される並列加算器を多段で有
    する乗算モジュールと、を含むべき乗剰余演算モジュー
    ルであることを特徴とする情報処理システム。
  9. 【請求項9】 請求項1乃至8のいずれかにおいて、 前記入力データをX、Nとし、出力データYをとしたと
    き、カスケード接続された前記演算ユニットは、Y=X
    2 mod Nの演算処理を実施することを特徴とする
    情報処理システム。
  10. 【請求項10】 請求項1乃至9のいずれかにおいて、 前記演算ユニット間は光信号により信号が伝送されるこ
    とを特徴とする情報処理システム。
  11. 【請求項11】 請求項1乃至10のいずれかにおい
    て、 前記演算モジュール間は光信号により信号が伝送される
    ことを特徴とする情報処理システム。
JP11106825A 1999-04-14 1999-04-14 情報処理システム Withdrawn JP2000298575A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11106825A JP2000298575A (ja) 1999-04-14 1999-04-14 情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11106825A JP2000298575A (ja) 1999-04-14 1999-04-14 情報処理システム

Publications (1)

Publication Number Publication Date
JP2000298575A true JP2000298575A (ja) 2000-10-24

Family

ID=14443561

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11106825A Withdrawn JP2000298575A (ja) 1999-04-14 1999-04-14 情報処理システム

Country Status (1)

Country Link
JP (1) JP2000298575A (ja)

Similar Documents

Publication Publication Date Title
JP4092735B2 (ja) 情報処理システム及び暗号/復号システム
US5742530A (en) Compact microelectronic device for performing modular multiplication and exponentiation over large numbers
US7320015B2 (en) Circuit and method for performing multiple modulo mathematic operations
JP4180024B2 (ja) 乗算剰余演算器及び情報処理装置
Lou et al. Lower bound analysis and perturbation of critical path for area-time efficient multiple constant multiplications
Tian et al. Fast modular multipliers for supersingular isogeny-based post-quantum cryptography
US7480691B2 (en) Arithmetic device for multiple precision arithmetic for Montgomery multiplication residue arithmetic
Parhami RNS representations with redundant residues
KR100508092B1 (ko) 저전력 모듈로 곱셈을 수행하는 연산장치
JP2000261486A (ja) パケット通信システム
JP2000298575A (ja) 情報処理システム
Chen et al. Scalable and systolic Montgomery multipliers over GF (2 m)
JP2000259077A (ja) 情報処理システム
Rashmi et al. Optimized reversible montgomery multiplier
Modugu et al. A fast low-power modulo 2 n+ 1 multiplier design
Kameyama et al. Modular design of multiple-valued arithmetic VLSI system using signed-digit number system
Preethy et al. A 36-bit balanced moduli MAC architecture
Sakthimohan et al. A 2 GHz High-Performance Design of Braun Multiplier with Hybrid Full Adder for ALU
Onions A high-speed integrated circuit with applications to RSA Cryptography
Hong et al. A fast bit-interleaving RSA cryptosystem based on Radix-4 cellular-array modular multiplier
REDDY et al. 8x8 Hybrid Serial-Serial Multiplier with Asynchronous 1’s Counters
JP2001194993A (ja) 剰余演算装置及び方法
Nibouche et al. Bit-level architectures for Montgomery's multiplication
Wu et al. Efficient exponentiation using weakly dual basis
Khatibzadeh et al. A novel pipelined multiplier for high-speed DSP applications

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060704