JP2000261486A - パケット通信システム - Google Patents

パケット通信システム

Info

Publication number
JP2000261486A
JP2000261486A JP6264299A JP6264299A JP2000261486A JP 2000261486 A JP2000261486 A JP 2000261486A JP 6264299 A JP6264299 A JP 6264299A JP 6264299 A JP6264299 A JP 6264299A JP 2000261486 A JP2000261486 A JP 2000261486A
Authority
JP
Japan
Prior art keywords
encryption
packet
modular exponentiation
multiplication
units
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
JP6264299A
Other languages
English (en)
Inventor
Kazuhiko Amano
和彦 天野
Tatsuya Shimoda
達也 下田
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 JP6264299A priority Critical patent/JP2000261486A/ja
Publication of JP2000261486A publication Critical patent/JP2000261486A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

(57)【要約】 【課題】 パケット通信にて高いセキュリティシステム
を構築すること。 【解決手段】 複数の端末機(12A−1〜12A−
3,12B−1〜12B−3,12C−1〜12C−
3)と複数のルータ(10A〜10D)とが接続された
ネットワーク上にて、アドレスフィールド(18A)と
データフィールド(18B)とを含むパケット(18)
を伝送するパケット通信システムである。複数の端末機
及びルータの各々は暗号/復号装置(14)を有する。
複数の端末機の各々の暗号/復号装置は、パケット送信
時には少なくともアドレスフィールド(18A)内のア
ドレス情報を暗号化し、パケット受信時には暗号化され
たアドレス情報を復号する。ルータの暗号/復号装置
は、暗号化されたアドレス情報を復号し、ルーティング
テーブル内の情報に従って選択された通信経路にパケッ
ト(18)を送信する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数の端末機と少
なくとも一つのルータとが接続されたネットワーク上に
て、アドレスフィールドとデータフィールドとを含むパ
ケットを伝送するパケット通信システムに関し、とくに
そのセキュリティシステムの構築に関する。
【0002】
【背景技術及び発明が解決しようとする課題】近年、イ
ンターネット、ローカルエリアネットワーク等のパケッ
ト交換網を介してパケット通信が盛んに行われている。
この際、機密性の高いデータを送る場合には、公衆回線
上にて暗号化されたデータを送信するのが通常である。
【0003】暗号方式は秘密鍵暗号と公開鍵暗号に大別
され、代表的な方式としては、秘密鍵暗号としてはDE
S(Data Encryption Standard)、公開鍵暗号としては
RSA(Rivest Shamir Adleman criptograph)があ
る。
【0004】原理的には、DESはデータビット列の並
び換えや置換による方式で、RSAは極めて多ビットの
剰余演算を行う方式であり、一般に秘密鍵暗号方式に比
べて公開鍵暗号方式は数百倍遅くなる。これは、公開鍵
暗号方式においては、数百ビット以上を法とする非常に
多精度の剰余演算を行うことによる。
【0005】そこで、通常、多量のデータ列の暗号化に
は高速な秘密鍵暗号方式を用い、データ量の少ない認
証、署名および鍵の配送などには公開鍵暗号方式を用い
るように暗号方式の使い分けがなされている。
【0006】また、公開鍵暗号では、暗号強度を鍵のビ
ット長を変えることにより選択できるため、通信相手の
公開したさまざまなビット数の公開鍵を用いて演算がで
きることが求められている。
【0007】ここで、機密性の高いデータを送る場合に
アプリケーションソフトウェアを用いて暗号化または復
号処理を実施すると、解読が困難となるように暗号化を
複雑化するほど、暗号化及び/または復号されるデータ
量が膨大化するほど、その処理に比較的長い時間を要す
る。
【0008】また、アプリケーションソフトウェアを用
いた暗号化または復号処理は、オペレーションシステム
(OS)まで上がって来たパケットの内容を読む必要が
ある。このとき、発信元または送信先以外の機器のOS
に記録されたパケットの内容は、悪意を持てば解読可能
であり、あるいは回線アナライザなどを用いて他人の通
信を盗み見ることができ、セキュリティが低いという問
題があった。
【0009】特に、DESではハードウェア技術を用い
て実現されなければならないと規定されているように、
ソフトウェアだけによる暗号/復号システムの場合、第
三者による解読を避けるのは事実上困難である。暗号ア
ルゴリズムの一部をハードウェア化すれば暗号強度はよ
り高いものとなる。
【0010】これは公開鍵式暗号方式においても同様で
あり、例えば、1チップ公開鍵暗号プロセッサが提案さ
れている(電子情報通信学会論文誌 D-I Vol.J80-D-I
No.8pp.725-735 1997-8)。
【0011】しかしながら、上記1チップ公開鍵暗号プ
ロセッサにおいては、予めハードウェアで規定された精
度内での任意精度の処理は可能であるが、規定された精
度を超える精度が要求された場合には処理はできず、新
たなハードウェアの設計を行わなければならないという
問題点が生じる。
【0012】そこで、本発明の目的は、暗号化されるデ
ータ量を少なくしながらも、セキュリティの高いパケッ
ト通信が可能なパケット通信システムを提供することに
ある。
【0013】本発明の他の目的は、暗号化または復号す
るための任意精度の演算が行えるシステムをハードウェ
ア的に容易に構築することを可能として、よりセキュリ
ティの高いパケット通信システムを提供することにあ
る。
【0014】
【課題を解決するための手段】本発明は、複数の端末機
と少なくとも一つのルータとが接続されたネットワーク
上にて、アドレスフィールドとデータフィールドとを含
むパケットを伝送するパケット通信システムにおいて、
前記複数の端末機及び前記少なくとも一つのルータの各
々は、暗号/復号装置を有し、前記複数の端末機の各々
は、パケット送信時には前記暗号/復号装置にて少なく
とも前記アドレスフィールド内のアドレス情報を暗号化
し、パケット受信時には暗号化された前記アドレス情報
を前記暗号/復号装置にて復号し、前記少なくとも一つ
のルータは、暗号化された前記アドレス情報を前記暗号
/復号装置にて復号し、ルーティングテーブル内の情報
に従って選択された通信経路に前記パケットを送信する
ことを特徴とする。
【0015】この場合、複数の端末機の各々は、パケッ
ト送信時には暗号/復号装置にて前記アドレスフィール
ド内の送信先アドレス情報及び発信元アドレス情報のい
ずれか一方または双方が暗号化される。
【0016】このように本発明によれば、暗号化される
アドレス情報には、アドレスフィールド内のアドレス情
報が含まれる。パケット内のデータフィールド中のデー
タが暗号化されずに盗聴されても、発信元と送信先のい
ずれか一方または双方が暗号化されていれば、そのデー
タ自体は意味をなさない場合があるからである。従っ
て、発信元アドレス情報及び送信先アドレス情報の双方
またはいずれか一方のみを暗号化すれば、結果としてデ
ータの機密性が確保される。
【0017】パケットのデータフィールドに、機密デー
タが格納された機密データフィールドが設け、複数の端
末機の各々は、パケット送信時には暗号/復号装置にて
機密データフィールド内の機密データを暗号化すること
ができる。
【0018】こうすると、パケットの機密性のセキュリ
ティがより高く担保される。
【0019】各々の暗号/復号装置は、複数のべき乗剰
余演算ユニットと、前記複数のべき乗剰余演算ユニット
をカスケード接続するための複数のカスケード端子と、
を有し、前記複数のべき乗剰余演算ユニットの各々は、
乗算精度2mビット(mは自然数で固定)で乗算を行う
乗算ユニットと、除算精度22・mビットで除算を行う除
算ユニットと、を有し、前記複数のべき乗剰余演算ユニ
ットにより実施されるべき乗剰余演算の最大演算精度を
n(nは自然数で固定)としたとき、 x≧2n/2m(xは自然数で固定) を満たすように、前記複数のべき乗剰余演算ユニットが
x個接続されて、暗号化または復号を行うことができ
る。
【0020】こうすると、暗号化または復号のための演
算処理を複数のべき乗剰余演算処理ユニットにて分散処
理することでハードウェア処理が容易となり、演算量が
多く、精度が要求される場合でも、容易にシステムを構
築して演算処理の高速化を図ることができる。このよう
に、べき乗剰余演算における演算精度を容易にハードウ
ェア的に拡張することができ、暗号化及び復号に用いる
鍵の精度に、十分な信頼性を確保することができる。ま
た、ハードウェアにて暗号化、復号を行うようにすれ
ば、オペレーションシステムまでデータを引き上げずに
処理できるので、セキュリティが担保される。
【0021】また、分散処理の結果、べき乗剰余演算ユ
ニットのゲート数を抑制することができ、装置コストを
低減することが可能となる。こうのうよ少ないゲート数
でべき乗剰余演算ユニットを構成することができるた
め、例えばパーソナルコンピュータシステム間でのパケ
ット通信においても、暗号/復号システムを容易に構築
することが可能となる。
【0022】暗号化または復号の算処理時にあっては、
その演算処理に必要な演算精度を2 n1ビット(n1≦n
でn1は可変)としたとき、x1≧2n1/2m(x1≦
xで可変)を満たすように、前記複数のべき乗剰余演算
ユニットがx1個カスケード接続される。このとき、例
えばクロック発生回路から、演算処理時に2n1個の基準
クロック信号を発生させる。このようにして、x個のう
ちのx1個の演算ユニットが実効的にカスケード接続さ
れる。こうすると、x1個以外の演算ユニットにて消費
される電力を節約でき、演算速度も高速化される。さら
に、複数の演算ユニット間にて光信号により信号が伝送
されるようにすれば、演算速度はより高速となる。
【0023】複数のべき乗剰余演算ユニット間は光信号
が伝送されるようにすれば、暗号/復号装置内での演算
がさらに高速化される。
【0024】各々のべき乗剰余乗算ユニットは、演算精
度2m/yで演算を行うべき演算モジュールをそれぞれy
個(yは自然数で固定)を有し、y個の演算モジュール
をカスケード接続することにより構成することができ
る。
【0025】このとき、演算処理時に必要な演算精度を
n1ビット(n1≦nでn1は可変)としたとき、y1
≧2n1/2m/y(y1は自然数で可変)を満たすように
y1個の演算モジュールがカスケード接続されればよ
い。
【0026】この最大y個の演算モジュール間を光信号
により信号が伝送されるようにすれば、各演算ユニット
内での演算が高速化される。
【0027】
【発明の実施の形態】次に図面を参照して本発明の好適
な実施の形態を説明する。
【0028】(ネットワークシステムの説明)図1は、
本発明に係るネットワークシステムを示している。図1
において、複数の端末機であるパーソナルコンピータ1
2A−1〜12A−3,12B−1〜12B−3,12
C−1〜12C−3及び4台のルータ10A〜10Dが
回線11にて接続されることで、ネットワーク(パケッ
ト交換網)が構成される。このパケット交換網はいくつ
かのルール(プロトコル)にて統制され、例えばインタ
ーネットであれば、ネットワークがTCP/IP(TRAN
SMISSION CONTROL PROTOCOL/INTERNET PROTCOL)=OS
Iプロトコルの4層(トランスポート層)/3層(ネッ
トワーク層)に対応する通信プロトコルを実装し、コン
ピュータ間の公衆通信ネットワークを構成している。
【0029】ここで、ルータ10A〜10Dは、パケッ
トが相手先に届けられるようにガイドするインテリジェ
ント型のブリッジで、各パケットの最初の数行に記載さ
れているアドレスを読み、その宛先にパケットを送る最
善の経路を、混み具合も考慮して決定するものである。
【0030】図1に示す各々のパーソナルコンピュータ
12A−1〜12A−3,12B−1〜12B−3,1
2C−1〜12C−3は、図2に示すようにパーソナル
コンピュータ12としての同一の構成を有している。
【0031】パーソナルコンピュータ12は、大別する
と、入出力装置13Aを介して回線11と接続され、ハ
ードディスクなどの外部記憶装置を内蔵したパーソナル
コンピュータ本体13と、パーソナルコンピュータ本体
13に対して、入出力インターフェース13B及びバス
2を介して接続された暗号/復号装置(プログラマブル
ディジタルプロセッサ)14とを備えている。パーソナ
ルコンピュータ12はさらに、各種データを入力するた
めのキーボード15と、各種表示を行うためのディスプ
レイ16と、図示しないディスプレイなどを備えてい
る。
【0032】このように、回線11にて互いに接続され
た各々のパーソナルコンピュータ12は、それぞれ暗号
/復号装置14を有している。そして、一のパーソナル
コンピュータ12より回線11を介して他のパーソナル
コンピュータ12に情報を出力する場合に、回線11を
伝送される情報の一部は暗号化される。すなわち、一の
パーソナルコンピュータ12に設けられた暗号/復号装
置14は、送信情報を暗号化し、他のパーソナルコンピ
ュータ12に設けられた暗号/復号装置14は受信情報
を復号する。
【0033】一方、ルータ10A〜10Dは、図3に示
すようにルータ10としての同一の構成を有している。
このルータ10は、内蔵されたルーティングテーブルの
情報に従って、パケット通信の経路選択をするルータ本
体17と、ルータ本体17に対して、図2と同様にバス
2を介して接続された暗号/復号装置(プログラマブル
ディジタルプロセッサ)14とを備えている。
【0034】ここで、各々のパーソナルコンピュータ1
2の入出力部13Aにて送受信されるパケット18は、
図4に示すように、アドレスフィールド18Aとデータ
フィールド18Bとを含んでいる。
【0035】本実施の形態ではの各々のパーソナルコン
ピュータ10の暗号/復号装置14は、パケット送信時
には少なくともアドレスフィールド18A内のアドレス
情報を暗号化し、パケット受信時には暗号化されアドレ
ス情報18Bを復号する。一方、各ルータの暗号/復号
装置14は、暗号化されたアドレス情報を復号し、ルー
ティングテーブル(通信経路制御情報)内の情報に従っ
て選択された通信経路にパケット18を送信する。
【0036】暗号化されるアドレス情報は、図4に示す
発信元アドレスフィールド18A−1内の発信元アドレ
ス情報及び送信先アドレスフィールド18A−2内の送
信先アドレス情報の双方またはいずれか一方でよい。例
えば、図1のパーソナルコンピュータ12A−1よりパ
ーソナルコンピュータに、100万円を送金するという
課金データを送る場合を例に挙げて説明する。この場
合、データとして「100万円を送金する」が暗号化さ
れずに盗聴されても、送り元と送り先のいずれか一方ま
たは双方が暗号化されていれば、そのデータ自体は意味
をなさない。従って、発信元アドレス情報及び送信先ア
ドレス情報の双方またはいずれか一方のみを暗号化すれ
ば、結果としてデータの機密性が確保される。
【0037】あるいは、暗号化される一部の情報は、ア
ドレスフィールド18A内のアドレス情報に加えて、デ
ータフィールド18B内の機密データフィルド18B−
1中の機密データを含むことができる。上記の例におい
て、機密データフィールド18B−1内に「送り主12
A−1、送り先12C−1」とあり、通常データフィー
ルド18B−2内に「100万円を送金する」とあった
場合、アドレスフィールド18A及び機密データフィー
ルド18B−1の情報を暗号化することで、上記と同様
にデータの機密性が確保される。
【0038】あるいは、機密データフィールド18B−
1内に「100万円を送金する」とあり、通常データフ
ィールド18B−2内に「送り主12A−1、送り先1
2C−1」とあった場合も同様にデータの機密性は確保
できる。このように、こうすると、暗号化される情報量
が少ないにも関わらず、セキュリティを高いレベルで確
保できる。また、特定フィールド内の情報のみ暗号化す
るようにすれば、パケット18内のどの情報を暗号化す
るかを、フィールドによって区別できるからである。
【0039】一方、ルータ10では、パケット18内の
アドレスフィールド18A内の情報とルータ本体17内
のルーティングテーブルの情報とに基づいて、どのルー
タあるいはパーソナルコンピュータにパケット18を送
信すべきかの経路選択を行う。このためにルータ10の
暗号/復号装置14では、パケット18内のアドレスフ
ィールド18A内の暗号化された発信元アドレスフィー
ルド18A−1及び/または送信先アドレスフィールド
18A−2内のアドレス情報を復号する。これにより、
ルータ10は発信元アドレス及び送信先アドレスを知る
ことができ、パケット10の送信経路の選択を行うこと
ができる。
【0040】(暗号/復号装置の概略構成及び動作)図
5は、図2及び図3に示す暗号/復号装置14の構成を
示している。
【0041】この暗号/復号装置14は、図示しないシ
ステムROM、システムRAMを有し、暗号化及び復号
の処理手順が予め、図2に示すパーソナルコンピュータ
本体13内あるいは図3に示すルータ本体17内のメイ
ンマイクロプロセッサ1側からバス2を介してロードさ
れてプログラミングされる。
【0042】この暗号/復号装置14は、全体の制御を
司るコントロールユニット5と、演算途中の各種デー
タ、処理手順などを格納するRAM6及びROM8と、
それぞれ演算精度2mビット(mは自然数で固定)で演
算を行うx(xは自然数で固定)個のべき乗剰余演算ユ
ニット7−1〜7−xと、これらべき乗剰余演算ユニッ
ト7−1〜7−x同士をカスケード接続するためのスイ
ッチSWと、アドレスデータ、命令データなどを転送す
るための内部システムバス4Aと、各種データを転送す
るための内部データバス4Bと、を備えている。なお、
内部システムバス4Aと内部データバス4Bとで、内部
バス4を構成している。また、スイッチSWは、本実施
の形態の構成を図面上で理解できるように便宜的に図示
したものである。実際には、実効的にカスケード接続さ
れるべき乗剰余演算ユニットの数は、暗号/復号装置1
4内の例えばコントロールユニット5から発生する基準
クロック信号の数に基づいて決定され、機械的にスイッ
チSWがオン、オフする構成ではない。この点について
は後述する。
【0043】この場合において、全てのべき乗剰余演算
ユニットをx個カスケード接続した場合に得られる最大
ビット精度を2n(nは自然数で固定)とした時、カス
ケード接続される最大個数xは、以下に示す条件式を満
たしている必要がある。
【0044】x≧2n/2m なお、必要な演算精度が最大ビット精度2n以下のビッ
ト精度2n1(n1は可変でかつn1≦n)である場合に
は、x個のべき乗剰余演算ユニット7−1〜7−xを全
て動作可能状態としても演算結果を得ることは可能であ
るが、最大x個のべき乗剰余演算ユニットのうち、 x≧x1≧2n1/2m(x1は可変) を満たすようにx1個のべき乗剰余演算ユニット7−1
〜7−x1を実効的に動作するようにカスケード接続す
ればよい。こうして、2n1ビット精度の演算を行うよう
にすれば、電力を不必要に消費することなく、消費電力
の適正化を図ることができ、さらに演算処理時間も最適
化することが可能となる。
【0045】ここで、べき乗剰余演算ユニット7−1〜
7−xの各々は、それぞれ演算精度2m/y(yは2以上
の整数)で演算を行うべきy個のべき乗剰余演算モジュ
ール9−1〜9−yが、スイッチSWを介してカスケー
ド接続可能となっている。なお、スイッチSWは、実施
例の構成を図面上で理解できるように便宜的に図示した
ものである。実際には、実効的にカスケード接続される
べき乗剰余演算モジュールの数は、上述の通り、暗号/
復号装置14内の例えばコントロールユニット5からの
基準クロック信号の数に基づいて決定され、機械的にス
イッチSWがオン、オフする構成ではない。
【0046】ここで、例えばべき乗剰余演算ユニット7
−1とべき乗剰余演算ユニット7−2とが実効的にカス
ケード接続された場合には、トータルで2y個のべき乗
剰余演算モジュールがカスケード接続されたことと等価
となる。
【0047】そして、本実施例では、一つのべき乗剰余
演算ユニットの全y個のべき乗剰余演算モジュール9−
1〜9−yのうち、2n1ビット精度の演算を行うのに十
分な個数y1≧2n1/2m/y(y1≦y)の演算モジュ
ールを実効的にカスケード接続することも可能である。
こうすれば、消費電力及び演算処理時間をより最適化す
ることが可能となる。
【0048】あるいは、2n1ビット精度の演算を行うの
に、(x1−1)個のべき乗剰余演算ユニット7−1〜
7−(x1−1)と、べき乗剰余演算ユニット7−x1
の中のy1個のべき乗剰余演算モジュールとを用いるこ
とも可能である。この場合に、(x1−1)個のべき乗
剰余演算ユニット7−1〜7−(x1−1)で2n2(n
2<n1)のビット精度の演算が実施されるとすると、
y1≧(2n1−2n2)/2m/y(y1≦y)を満たせば
よい。
【0049】次に、図1〜図5に示す装置の動作につい
て説明する。
【0050】まず、メインマイクロプロセッサ1が暗号
/復号装置14に対し、暗号化/復号に要求される演算
精度に対応する演算精度データをバス2を介して与え
る。
【0051】これにより暗号/復号装置14のコントロ
ールユニット5は、べき乗剰余演算ユニット7−1〜7
−xに対し、メインマイクロプロセッサユニット1及び
/またはRAM6からの処理手順(後述する図15で示
す暗号手順)に基づいて、要求された演算精度2n1に対
応する数のべき乗剰余演算ユニットあるいはべき乗剰余
演算モジュールを制御する。べき乗剰余演算ユニット7
−1〜7−xは、各演算データの精度情報に基づいて、
カスケード接続されるべきユニット数及びモジュール数
を判断する。このカスケード接続されるべきユニット数
及びモジュール数は、演算に必要な基準クロック信号の
数によって決定される。この基準クロック信号は、図2
に示すコンピュータ本体13または図3に示すルータ本
体17あるいは図5に示すコントロールユニット5が有
する図示しない基準クロック信号発生回路にて発生され
る。
【0052】これにより、演算に必要とされた数のべき
乗剰余演算ユニット及び演算モジュールは実効的にカス
ケード接続され、コントロールユニット5は、予めプロ
グラミングされた処理手順に基づいて演算をべき乗剰余
演算ユニットにて行わせることとなる。
【0053】そして得られた精度2n1の演算結果(暗
号)をバス2、コンピュータ本体13の入出力部13A
を介して、回線11側に出力するか、あるいは復号結果
をバス2を介してコンピュータ本体13またはルータ本
体17内のメインマイクロプロセッサ1に出力する。
【0054】ここで、この実施の形態ではチップ間すな
わち図5のメインマイクロプロセッサユニット1と暗号
/復号装置14間のバス2上の信号を、多チャンネルの
電気信号としても良いし、あるいは例えば波長の異なる
多チャンネルの光信号としても良い。チップ間を光通信
する技術は既に多くの提案がある。
【0055】さらに加えて、この実施の形態では、1チ
ップを構成する暗号/復号装置14内の一部または全部
のユニット間にて、光信号を伝送することも可能であ
る。すなわち、図5に示す暗号/復号装置14の内部シ
ステムバス4Aと内部データバス4Bとを光伝送路とす
るのである。こうすると、コントロールユニット5と、
RAM6と、ROM8と、x個のべき乗剰余演算ユニッ
ト7−1〜7−xとの各間で、内部システムバス4Aと
内部データバス4Bを介して光信号を伝送することがで
きる。このとき、RAM6を構成する記憶素子として、
電気信号以外の情報例えば強誘電メモリのように磁化さ
れた情報を記憶するようにすれば、光信号を電気信号に
変換する必要はない。例えば強誘電メモリを用いた場合
には、光信号に基づいて磁化された情報を記憶すればよ
い。さらには、x個のべき乗剰余演算ユニット7−1〜
7−xの間も実質的にバス接続されているため、これら
のバスを光伝送路とし、べき乗剰余演算ユニット間も光
信号により伝送することが可能である。なお、1チップ
内の内部バスを光伝送路とする具体的例については後述
する。
【0056】以上の説明においては、最大x個のべき乗
剰余演算ユニットが装着されている場合について説明し
たが、後に機能拡張する場合などに備えて、暗号/復号
装置14に外部べき乗剰余演算ユニットをカスケード接
続するための端子を設けてもよい。このように、外部べ
き乗剰余演算ユニットをカスケード接続するように構成
すれば、内部べき乗剰余演算ユニットのみをカスケード
接続して得られる演算精度以上の演算精度を確保するこ
とができる。
【0057】より詳細には、暗号/復号装置14を1チ
ップ構成とした場合であっても、図5にて破線で示すよ
うに、一または複数のプログラマブルディジタルプロセ
ッサ14’を、内部データバス及び図示しないカスケー
ド接続端子を介してカスケード接続することができる。
こうすると、プログラマブルディジタルプロセッサ1
4’内のべき乗剰余演算ユニットを、暗号/復号装置1
4内のべき乗剰余演算ユニットとカスケード接続したの
と等価となる。この意味で、暗号/復号装置14内の内
部べき乗剰余演算ユニット7−1〜7−xに対して、一
または複数のプログラマブルディジタルプロセッサ1
4’のべき乗剰余演算ユニットは、外部べき乗剰余演算
ユニットとして機能する。そして、本実施例では、この
内部べき乗剰余演算ユニットとが外部べき乗剰余演算ユ
ニット間も光信号により伝送することが可能である。
【0058】また、複数の外部べき乗剰余演算ユニット
を例えば、TFT(Thin Film Transistor)で構成した
場合には、欠損などにより不良トランジスタが発生する
ことに起因して、最大でz個の外部べき乗剰余演算ユニ
ットの全体が使用できなくなる恐れがある。
【0059】そこで、べき乗剰余演算ユニットの歩留ま
り率Aに対して、少なくともK(z≧K/A)個のべき
乗剰余演算ユニットを予め用意しておくことが好まし
い。こうすると、K個のべき乗剰余演算ユニットのうち
良品のべき乗剰余演算ユニットを最大でz個接続するこ
とできる。
【0060】また、暗号/復号装置14内にて演算精度
m1ビット(m1:自然数)で演算を行う内部べき乗剰
余演算ユニットと、プログラマブルディジタルプロセッ
サ14’内にて演算精度2m2ビット(m2:自然数)で
演算を行う外部べき乗剰余演算ユニットとをカスケード
接続して、最大演算精度2nの演算を実施するには、外
部べき乗剰余演算ユニットの接続数zを下記の式を満足
するように設定すればよい。
【0061】z≧(2n−2m1)/2m2 さらに所望のビット精度2n1(n1は自然数、かつ、n
1≦n)にて演算する場合には、z個の外部べき乗剰余
演算ユニットのうち、 z≧z1≧(2n1−2m1)/2m2(z1は自然数) を満たすように外部べき乗剰余演算ユニットをカスケー
ド接続すれば、演算に必要な外部べき乗剰余演算ユニッ
トのみを動作させることができる。この結果、消費電力
の適正化、演算処理時間の適正化を図ることができる。
【0062】なお、暗号/復号装置14を構成する場合
に、図5に示す構成ではメインマイクロプロセッサ1が
必須の構成要件となっていた。しかし、暗号/復号装置
14にメインマイクロプロセッサ1の機能を持たせ、バ
ス2を介して記憶装置あるいは外部記憶装置からプログ
ラムをロードするように構成すれば、メインマイクロプ
ロセッサ1は不要となる。
【0063】また、以上の説明においては、暗号/復号
装置14がプログラムをロードする場合についてのみ説
明したが、これに限定されるものではない。例えば予め
マスクROM、PROM、EEPROMなどの不揮発性
のメモリに処理手順のプログラムを格納しておき、これ
に基づいて固定化した処理手順に基づいて動作したり、
固定化した処理手順をハードウエアロジックで実現する
ことも可能である。
【0064】以上の説明のように、本実施の形態によれ
ば、所望精度の演算を行うための暗号/復号装置14を
ハードウェア的に容易に実現することが可能であるとと
もに、演算精度の拡張に対してもハードウェア的に容易
に対応することが可能となる。
【0065】この実施の形態においては、暗号/復号装
置14内にコントロールユニット5及びRAM6を設け
る構成としていたが、メインマイクロプロセッサ1側に
これらの機能を行わせるように暗号/復号装置14を構
成し、べき乗剰余演算ユニットのみを1チップ構成と
し、任意精度汎用演算プロセッサとして機能させること
も可能である。
【0066】(暗号化及び復号処理の具体例)次に、暗
号/復号装置14での具体的な暗号化処理及び復号処理
について説明する。
【0067】[1] RSA方式の原理説明 まず具体的な処理内容の説明に先立ち、代表的な公開鍵
方式暗号であるRSA方式について説明する。
【0068】ネットワーク暗号の利用形態としては、送
信者が暗号鍵を用いて平文を暗号化して送信し、その暗
号文の受信者は復号鍵を用いて復号し平文に戻す処理を
行うものである。
【0069】秘密鍵暗号方式では暗号鍵と復号鍵が同一
であるのに対し、公開鍵暗号方式は同一ではなく、暗号
鍵を公開し、復号鍵を秘密に保持する方式である。次に
代表的な公開鍵暗号方式であるRSA方式の原理につい
て述べる。
【0070】平文をある適当なブロックに分け、それに
相当する数値をMとする。素数pとqを定め、復号鍵
(プライベートキー)として秘密にし、次の関係にある
nとeを公開鍵(パブリックキー)とする。
【0071】 n=pq …… (1) gcd(e,(p−1,q−1))=1 …… (2) ここで、e及び(p−1)(q−1)の最大公約数は
1、すなわち、(p−1)(q−1)と互いに素な正数
eを適当に決める。
【0072】そして、下記の(3)式に示すように、送
信者はパブリックキーを用いて、nを法とする平文Mの
e乗の剰余演算(Meをnで割った余りCを算出)を行
い、暗号文Cを送信する。
【0073】 Me≡C mod n …… (3) これにより、暗号文Cを受信した受信者は、まず、プラ
イベートキーを用いて、下記の(4)式により(p−
1)(q−1)を法とするeの逆数dを求める。
【0074】 ed≡1 mod (p−1)(q−1) …… (4) 得られたdにより、下記の(5)式から暗号文Cを平文
Mに復号する。
【0075】 Cd≡M mod n …… (5) ところで、式(4)と式(5)は、(p−1)と(q−
1)の最少公倍数lcm(p−1,q−1)を用いる
と、dを小さく定めることができ、下記の(6)式及び
(7)式に示すように、計算量の軽減がはかれる。
【0076】 gcd(e,lcm(p−1,q−1))=1 …… (6) ed≡1 mod lcm(p−1,q−1) …… (7) この場合において、パブリックキーnはプライベートキ
ーpとqの積であるため、容易に素因数分解できないよ
う、通常512ビット以上に選定される。
【0077】以上のようにRSA方式は素因数分解とい
う数学的要素と多精度剰余演算を行うことなどで、暗号
強度の高い方式であると広く認知されている。
【0078】[2] 剰余計算例 式(3)と式(5)のべき乗剰余演算結果が暗号・復号
文となるため、丸め操作や浮動少数点演算が使えず整数
演算でなければならない。べき乗剰余演算は指数をその
システムで除算可能な部分に分割して、より小さな剰余
演算の積の繰り返しで求めることができる。説明の容易
性のため、ごく小さい数値の例を示す。
【0079】パブリックキーをn=55、e=7とし、
プライベートキーをp=5、q=11とする。
【0080】平文M=3とすると、暗号文Cは、暗号化
においてはパブリックキーのnとeを用いて、式(3)
より 37≡C mod 55 から C=42 を得る。
【0081】復号ではプライベートキーのpとqよりd
を次のように選定する。
【0082】式(4)より 7d≡1 mod (5−1)(11−1) すなわち、 7d≡1 mod 40 から d=23 となる。
【0083】4223≡M mod 55 から M=3 となる。
【0084】剰余演算においては X≡r1 mod n、 Y≡r2 mod n のとき、nを法とする下記の式(8)の乗算が成立す
る。
【0085】 X・Y≡r1・r2 mod n …… (8) この関係式により指数部分を演算可能な部分に分割す
る。
【0086】例えば、 そこで、先ず、425及び423についての2種類の剰余
を求める。
【0087】 425≡12 mod 55 423≡3 mod 55 式(8)から 4223≡12・12・12・12・ 3≡r mod 55 ↑ ↑ ↑ ↑ ↑ r1 r2 r3 r4 r5 となる。
【0088】次にr1・r2からその剰余r1-2を求め
る。
【0089】 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 を得ることとなる。
【0090】以上の剰余演算過程における各剰余乗算の
最大精度は法であるnの2倍以下で済む。このようにし
て、小さな数値に置き換えた剰余演算の繰り返しで、目
的とする剰余を算出することができる。
【0091】[3] 暗号化及び復号処理の一般的手法 ここで、図19を参照してRSAに基づく暗号化及び復
号処理の一般的手法について説明する。
【0092】まず、Am≡R mod nについての剰
余演算では、A、m、nの各値を入力する(ステップS
1)。
【0093】合同式 Am≡R mod n は暗号化
においては平文MがA、パブリックキーeがmとして、
パブリックキーnを法とする剰余演算によって得られた
Rが暗号文Cになる。復号では暗号文CがA、パブリッ
クキーeとプライベートキーp、qから選定されたdが
mとして、nを法とする剰余演算によって得られたRが
平文Mである。
【0094】先ず、Aのビット数K1を求め(ステップ
S2)、Aのビット数K1から剰余演算システムにおけ
るANの最大指数Nを求める(ステップS3)。
【0095】次に最大指数Nが1であるか否かを判別し
(ステップS4)、最大指数N=1であればA2で精度
オーバーになるため、 A≡r mod n を求め(ステップS5)、剰余rのビット数kを求め
(ステップS6)、ビット数kからAのブロック規模を
判断する(ステップS7)。
【0096】Aのブロック規模が精度内であれば(ステ
ップS7;No)、m個のAに対するnを法とする乗算
を行い、その結果から求める剰余Rを得る(ステップS
8)。
【0097】また、Aのブロック規模が精度外であれば
(ステップS7;Yes)、データが大きすぎてオーバ
ーフローを起こしてしまうので(ステップS9)、Aの
ブロック規模を小さくすべく、演算処理を終了する(ス
テップS10)。
【0098】一方、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)。
【0099】ステップS15の判別において、q≠0で
あるならば(ステップS15;No)、ANを求め(ス
テップS17)、ANをnで割った剰余rを求める(ス
テップS18)。
【0100】そして剰余rをr00に代入し(ステップ
S19)、q個のANに対するnを法とする乗算を行い
(ステップS20)、a≠0であるならば(ステップS
21;No)、得られた乗算結果rとr1との積をnで
割った剰余を求め(ステップS22)、求めた剰余rを
最終的に求めるべき剰余Rとし(ステップS23)、剰
余Rを剰余データとして出力する(ステップS24)。
【0101】このようにRSAに基づいた公開鍵暗号方
式の暗号化及び復号処理(剰余演算処理)は複雑であ
り、特に暗号/復号システムにおいては、前述したよう
に、nは512ビット以上と高精度であるため、除算の
分散処理が不可能であれば、本実施の形態のようなハー
ドウェア化は困難であり、上記処理をソフトウェアで処
理することとなり、そのプログラミングも簡単ではない
ので、多くの演算時間を要することは容易に推察でき
る。
【0102】[4]公開鍵暗号/復号システムの構成 図6は、公開鍵を用いた図1の暗号/復号装置14を、
べき乗剰余演算装置として表したブロック図である。べ
き乗剰余演算装置としてのこの暗号/復号装置14は、
大別すると、所定の精度範囲内で任意精度の除算を行う
任意精度除算装置20と、所定の精度範囲内で任意精度
の乗算を行う任意精度乗算装置21とを備え、これらは
バス22により接続される。
【0103】この任意精度除算装置(除算ユニット)2
0と任意精度乗算装置(乗算ユニット)21とは、図5
に示すべき乗剰余演算ユニット7−1〜7−xのうちの
一つのべき乗剰余演算ユニット1に対応する。
【0104】任意精度除算装置22は、最大乗算精度2
mビット(m:自然数で固定)内の任意乗算精度で乗算
を行い、任意精度除算装置20(除算ユニット)は、最
大除算精度22mビット内の任意除算精度で除算を行う。
そして、x=2n/2mを満たすようにべき乗剰余演算ユ
ニット7−1〜7−xをx個接続することにより、最大
nビット精度の暗号化及び復号を行うための任意精度
べき乗剰余演算装置(暗号/復号装置14)を構成する
ことが可能となる。
【0105】[5]任意精度除算装置及び任意精度乗算
装置の構成 任意精度除算装置20は、図7に示すように、被除数デ
ータ及び除数データがそれぞれ入力される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)は、精度情報デ
ータに基づいて必要な数の除算器をカスケード接続する
こととなる。
【0106】なお、これらスイッチSW1〜SW(H−
1)も、図5の場合と同様に説明の便宜上図示したもの
である。また、各8ビット除算器の間及び各8ビット除
算器への入出力を、全て光信号で伝送するように構成す
ることもできる。
【0107】より具体的には、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
が動作することとなる。
【0108】そして、被除数データ及び除数データは、
下位8ビットから8ビット単位で第1除算器25−1か
ら第J除算器に順次与えられることとなる。
【0109】なお、任意精度乗算装置21は、任意精度
除算装置20の8ビット除算器を8ビット乗算器に変更
した構成とほぼ同様の構成であるので、その説明を省略
する。
【0110】このように、べき乗剰余演算を行う図5に
示すべき乗剰余演算ユニット7−1〜7−xが、被除数
データ、除数データ及び精度情報データの入力信号ライ
ン並びに商データ及び剰余データの出力信号ラインをカ
スケード接続するためのカスケード接続端子を有し、x
=2n/2mを満たすようにべき乗剰余演算ユニット7−
1〜7−xを最大でx個接続することにより、最大2n
ビット精度の暗号化及び復号を行うことができる。
【0111】なお、図6に示すバス22を光伝送路とす
れば、これら任意精度乗算装置21と任意精度除算装置
20との間を、光信号により伝送することができる。
【0112】[6]除算器の構成 次に任意精度除算装置20を構成している除算器の構成
について説明する。
【0113】[6.1] 除算器のアルゴリズム まず、除算器の説明に先立ち、除算器のアルゴリズムに
ついて説明する。
【0114】除算に関しては、乗算ほどではないが、い
ろいろなアルゴリズムが考案されている。また、信号処
理においては、除算は乗算ほど頻繁に用いられるわけで
はない。
【0115】しかしながら、信号の正規化、コンピュー
タ通信や情報ネットワークにおける秘匿技術としての暗
号化/復号に、音声認識における特徴抽出において、周
波数スペクトルを基本とする線形予測係数の演算(積和
が70回、除算が12回)、フォールトトレラントシス
テムにおいてなどの例に見られるように、除算を必要と
する場合、その実現は乗算ほど容易ではなく、従来にお
いては、高精度で高速に結果を得るための有効な手段が
なかった。
【0116】除算の実現方法としては、以下の4種類が
知られている。
【0117】(1)変数xと1/x の関係を示すルッ
クアップテーブル(変換表)をROM内に用意してお
き、y/xなる除算を、y(1/X) なる乗算に置き
換えて実行する「逆数ROM方式」。
【0118】(2)y/x なる除算を直接実行する代
わりに、対数ROMによりxとyから logxとlo
gyを求め、それからz=logx−logyの減算を
行い、最後に指数ROMによりexpzを求める「対数
計算方式」。
【0119】(3)被除数に対してシフトと減算を試行
錯誤的に繰り返す「減算シフト方式」。
【0120】(4)乗算を繰り返し実行しながら結果を
求めるべき商の値に収束させていく「収束形除算方
式」。
【0121】このうち、逆数ROM方式が最も高速であ
るが、高精度を要求するとルックアップテーブルを格納
すべきROMの容量が指数的に大きくなる欠点がある。
従って、信号処理においては比較的粗い精度でよい場合
に限られて使用されている。
【0122】次の対数計算方式も対数ROMの容量の制
約からくる精度上の検討を十分に行ったうえで用いる必
要があり、その意味でも以上の二つのROM方式はどの
ような場合にも用い得る汎用的な方法とは言い難い。
【0123】以上の4方式のうち、どのような精度に対
しても除算可能な方式は減算シフト方式と収束形除算方
式であるといえる。
【0124】収束形除算方式は被除数と除数を分数の分
子と分母とみなし、分母が1に近づくまで分子分母に同
一の収束係数を乗じていき、得られた最終的な分子の値
が商になる。あるいは、除数の逆数を収束アルゴリズム
によって求め、商はこの逆数と被除数の積から求めるこ
とができる。
【0125】しかし、複数チップ(モジュール)接続に
よる除算能力の拡張機能を考慮した場合、近似演算によ
る収束が行われる収束形除算方式では部分剰余の伝搬が
さらに近似されることになり、誤差が大きくなってしま
うという問題点が生じる。
【0126】この点、減算シフト方式ではそのような問
題はなく、任意精度で除算可能であり、複数チップ(モ
ジュール)接続による除算能力の拡張機能をも考慮した
場合、最も適しているといえる。
【0127】次に、除算能力の拡張機能について考察す
る。
【0128】例えば、 567890/1234 の除算を実行するには図8(A)に示すように、被除数
と除数の減算が繰り返し実行される。
【0129】ここで、除数2けたの除算器(または除算
モジュール)を用いて、除数を4けたに拡張した使用を
考えてみると、図8(B)及び図8(C)に示すよう
に、除数1234を除数12と除数34とに分割すると
ともに、被除数567890を被除数567及び被除数
890とに分割し、12と34の除数で分散処理した結
果から除算能力の拡張した解(図8(A)相当)を得る
という乗算器のような使い方(乗算においては可能)は
できない。
【0130】従って、除算は使用可能けた数の範囲内で
有効であり、1ビットでも除算能力を超えた使用に対し
ては、たとえメモリーや外部回路を用いても容易には対
処できない。
【0131】また、除算においては通常丸め操作を行う
が、暗号/復号システムにおいては、このような使用は
できない。
【0132】以上のような理由によって、従来において
は、ハードウェア化された除算器は少なく処理速度の遅
いソフトウェアで対処していた。
【0133】ところで、本除算器のアルゴリズムは被除
数に対してシフトと減算を試行錯誤的に繰り返す「減算
シフト方式」に基づいたもので、その一般的な基本式は
以下の漸化式で表される。
【0134】
【数1】
【0135】
【数2】
【0136】式(B)が求める商Qであり、最終剰余R
は2-n(n)である。
【0137】各演算工程における商のディジットqj+1
は2RとDの大小関係で以下のように定まる。
【0138】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で仮の部分剰余の減算を取
消す。
【0139】以上の操作は、R(n)をnディジットだけ
右にシフトすることから求まることを先の漸化式は意味
している。
【0140】しかし、以上の漸化式は単にnディジット
の商に対してのものである。除算データを各モジュール
に分散した場合、各モジュールの被除数と除数はそれぞ
れ連結した状態で行われなければならない。
【0141】一般に、除数に対して被除数のけた数が多
いため、分散した除数を連結して被除数との減算を行う
ことは、除数の連結とそれに伴う減算器やラッチ回路の
連結などにより容易には実現できなかった。
【0142】これに対し、本実施例の除算器は、分散し
た除数と減算器は各モジュール内に固定し、被除数を連
結してシフトと減算を行うようにしてモジュールの分散
化を可能にしている。
【0143】この場合、筆算とは逆に除数を固定した減
算なので被除数は左シフトになる。
【0144】例えば、簡単のために1モジュールが4ビ
ット除算器について2モジュールに拡張したときの各ス
テップの動作を図9に示す。
【0145】2モジュールに分散した除数は減算器とラ
ッチ回路を伴ってそのけた借り用端子BOとBNで連結
される。被除数はQIとQO端子により連結されて初段
のRIに戻される。除数部分は各モジュールに固定で、
被除数が必要なけた数だけ左シフトと減算を繰返して演
算を終了する。
【0146】商qと部分剰余は各減算処理における減算
結果によって決まるものである。なお、演算は8ビット
の減算器の場合、7ステップで終了し、8ステップ目で
は商q0の格納だけになる。この結果、後述の被除数ラ
ッチ・シフト回路32(図10参照)に商データQが、
後述の部分剰余のシフト回路34(図10参照)には剰
余データが得られることとなる。
【0147】[6.2] 除算器の概要構成 図10に第1除算器25−1を例として除算器の概要構
成ブロック図を示す。
【0148】第1除算器25−1は、入力された8ビッ
ト除数データをラッチする除数ラッチ回路31と、被除
数データをラッチし、シフト操作を行うための被除数ラ
ッチ・シフト回路32と、被除数データに対応する被除
数から除数データに対応する除数を減算する並列減算回
路33と、部分剰余データを格納し、シフト操作を行う
部分剰余シフト回路34と、除算に必要なシフトパルス
を発生する制御回路35と、を備えて構成されている。
【0149】[6.3] 除算器の動作 次に除算器の動作について図11を参照して説明する。
【0150】時刻t1において、除算開始パルス/ST
AT(/はロウアクティブを示す。以下、同様)が立ち
下がると、除算開始パルス/STATの次の立ち上がり
(時刻t2)までの間に第1除算器25−1は初期化さ
れる。
【0151】次に時刻t2以降で基準クロック信号CK
が最初に立ち下がる時刻t3において被除数データ(8
ビット)が被除数ラッチ・シフト回路32にラッチさ
れ、除数データ(8ビット)が除数ラッチ回路31にラ
ッチされる。
【0152】そして、時刻t4において、基準クロック
信号CKが次に立上ると、並列減算回路33において、
被除数と除数の減算が行われ、減算結果が正または
“0"ならば、切換スイッチ36は並列減算回路33側
となり、並列減算回路33の減算結果が負であるならば
切換スイッチ36は、部分剰余シフト回路34側とな
る。
【0153】この結果、時刻t5において、部分剰余シ
フト回路34の部分剰余データがシフトされるととも
に、並列減算回路33の減算結果である部分剰余データ
あるいは減算前に部分剰余シフト回路34に保持されて
いた減算前の部分剰余データが部分剰余シフト回路34
にラッチされる。
【0154】同様に時刻t5〜時刻t6の間に被除数が
必要な回数だけ、すなわち、全8ビットであるから残り
の7ビットに対応する7回の被除数と除数の減算処理及
び部分剰余シフト回路のシフト処理及びラッチ処理が繰
り返される。
【0155】そして時刻t6において、基準クロック信
号CKが立ち下がると、除算終了信号/DENDが
“L"レベルとなり、上位桁の減算器(ここでは、第2
減算器25−2)が同様に動作を開始することとなる。
【0156】そして、さらに上位桁の減算器25−3〜
25−Jにおいて同様の除算動作が行われて、最後の減
算器25−Jの除算終了信号/DENDが第1減算器2
5−1に出力されると減算処理を終了することとなる。
【0157】これらの結果、各減算器25−1〜25−
Jの被除数ラッチ・シフト回路32には商データ(8ビ
ット)が求められ、部分剰余シフト回路34には剰余デ
ータがそれぞれ求められることとなる。
【0158】以上の動作はすべて制御回路35が出力す
るシフトパルスSLAに同期して行われるため、多くの
減算器をカスケード接続して除算能力を拡張した際にも
伝搬遅延によるタイミング的な誤動作を生じることはな
い。
【0159】[7] 暗号化処理及び復号処理(剰余演
算処理) RSAに基づいた公開鍵暗号方式の暗号化及び復号処理
(剰余演算処理)について図12を参照して説明する。
【0160】AN≡A mod n の剰余演算では本暗号/復号システムにおいてA、N、
nの各値を入力する(ステップS31)。
【0161】次にAをA1に代入し(ステップS3
2)、演算用変数kの初期値を1とする(ステップS3
3)。
【0162】そして、演算用変数kがN未満である間、
すなわち、次式 k<N を満たしている間(ステップS39)は、以下のステッ
プS34〜ステップS38の処理を繰り返す。
【0163】まず、N=1であるか否かを判別する(ス
テップS34)。
【0164】ステップS34の判別において、N=1で
ある場合には、A1をA0に代入する(ステップS3
5)。
【0165】また、N≠1である場合には、A1及びA
の乗算を行い、乗算結果をA0に代入する(ステップS
36)そして、 A0≡A mod n を求め(ステップS37)、演算用変数kをk+1とす
る(ステップS38)。
【0166】そして、演算用変数kがN以上となった場
合に、得られた剰余Aが求める剰余となる。このとき、
乗算の最大精度はAのビット数の2倍である。
【0167】このように、本実施の形態のべき乗剰余演
算装置を用いれば、図19の従来の処理と比較して処理
を非常に単純化することができる。
【0168】[8] べき乗剰余演算装置のゲート数 ここで、べき乗剰余演算装置を構成する際に必要とされ
るゲート数について説明する。
【0169】周知のように暗号/復号システムにおける
剰余演算では極めて高精度であることから、1モジュー
ルの乗算器の乗算精度を16ビット、1モジュールの除
算器の除算精度を32ビットとして、1ユニットにそれ
ぞれ4モジュールを内蔵(乗算16〜64ビット、除算
32〜128ビットの可変精度)した場合のゲート数を
図13に示す。
【0170】図13に示すように、1モジュールの32
ビット精度除算器を構成するためには、1700ゲート
必要であり、べき乗剰余演算装置1ユニット中の任意精
度除算装置では、 1700×4=6800[ゲート] が必要となる。
【0171】また、図13に示すように、1モジュール
の16ビット精度乗算器を構成するためには、1032
ゲート必要であり、べき乗剰余演算装置1ユニット中の
任意精度乗算装置では、 1032×4=4128[ゲート] が必要となる。
【0172】従って、べき乗剰余演算装置に必要とされ
るゲート数は、 6800+4128=10928[ゲート] であり、制御回路及び動的な接続回路を含めて一つのべ
き乗剰余演算装置を12000[ゲート]程度でワンチ
ップ化することが可能となる。
【0173】なお、512ビット精度では8ユニット、
1024ビット精度では16ユニットをそれぞれ必要と
する。
【0174】[9] 演算時間 次に上記べき乗剰余演算装置を用いて、 ab≡M mod c を演算する場合に要する演算時間ついて図14〜図18
を参照して説明する。
【0175】指数bがnビットの場合、べき乗剰余演算
に必要な演算処理は、図14に示すように、(1)〜
(4)の4段階の乗算処理及び除算処理に分解すること
ができる。この場合において、図14の(1)及び
(3)の乗算は、図15のiビット乗算器21にて実施
され、図14の(2)及び(4)の除算は、図15の2
iビット除算器20にて実施される。図14の(1)及
び(3)の乗算処理における乗算精度は、最大cのビッ
ト数i以下となり、その積は最大でcのビット数iの2
倍精度となる。また、図14の(2)及び(4)の除算
(剰余演算)処理における除算精度は、最大でcのビッ
ト数iの2倍の精度となる。このiビット乗算器21と
2iビット除算器20とは、図6の任意精度乗算装置2
1と任意精度除算装置20と同様の構成を有する。
【0176】なお、図15において、入力される値は
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が求められる。
【0177】ここで、図14中の(1)ではr12,r
2,r33…の演算がiビット乗算器21で実施され、
図14中の(2)ではr12,r22,…をそれぞれcで
割った余りがr2,r3…(計算途中のM)として、2
iビット除算器20で求められる。図14中の(3)で
は、k1=r1×r2、k2=RO×r3、k3=R1
×r4…の乗算がiビット乗算器21で実施される。ま
た、図14中の(4)では、K1,K2,…をcで割っ
た余りがそれぞれR0,R1,…(計算途中のM)とし
て、2iビット除算器20で求められ、最終段階でkn
−2をcで割った余りRn−3が求めるべき値Mとな
る。
【0178】この計算例の実例を図16に示す。図16
は、18619≡M mod 377を復号してM=17
を求めた計算手順を示している。
【0179】図16において、(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で割った余りとして求められる。
【0180】ここで、図14のa、b、cが全て102
4ビットである場合の最大演算時間を必要な基準クロッ
ク数で表すと、図17に示すように、(1)の乗算時間
に1047552[クロック]、(2)の剰余演算時間
に2095104[クロック]、(3)の乗算時間に1
047552[クロック]、(4)の剰余演算時間に2
095104[クロック]必要であり、合計で6285
312[クロック]必要となる。
【0181】この結果、基準クロック周波数を66[M
Hz]として演算を行った場合、演算時間は、95.2
[msec]となる。
【0182】同様に、a及びbが1024ビットであ
り、指数bのビット数を512ビット及び9ビットとし
た場合の演算時間は、図18に示すように、それぞれ4
7.6[msec]、0.7[msec]となる。ただ
し、これらの演算時間は、毎回の積及び剰余を最大精度
とした時の算出結果であるため、実際には、これらの値
よりも小さな値となる。
【0183】以上の説明のように、乗算精度2mビット
(m:自然数)、除算精度22・mビットでべき乗剰余演
算を行うべき各々の乗剰余演算ユニットを構成し、 x=2n/2m (ただし、nは自然数、xは自然
数) を満たすようにべき乗剰余演算ユニットをx個接続する
ことにより、2nビット精度の暗号化及び復号を行うこ
とが可能となる。このため、容易にシステムのハードウ
ェア的な拡張を図ることが可能となっている。
【0184】なお、上記xの関係式はべき乗剰余演算ユ
ニットの最大演算精度が要求される演算精度と等しい場
合であったが、 x>2n/2m (ただし、nは自然数、xは自然
数) を満たすようにべき乗剰余演算ユニットをx個接続する
ことによっても演算能力に余裕が生まれるだけで、同様
の効果が得られる。
【0185】さらに、べき乗剰余演算ユニットで演算可
能なビット精度2nよりも低いビット精度2n1(n1は
自然数、かつ、n1≦n)が要求された場合には、接続
されているx個のべき乗剰余演算ユニットのうち、 x≧x1≧2n1/2m (ただし、x1は自然数) を満たすようにx1個のべき乗剰余演算ユニットをカス
ケード接続するように構成すれば、演算に不要なべき乗
剰余演算ユニットには電力を供給する必要がないので、
消費電力の適正化が図れるととともに、演算処理時間の
適正化が図れることとなる。
【0186】さらにべき乗剰余演算ユニットを、図5に
示すように、カスケード接続可能なy個の乗算精度2
m/y、y個の除算精度22・(m/y)でべき乗剰余演算を行う
べき乗剰余演算モジュール9−1〜9−yで構成するこ
とができる。この場合、接続されているべき乗剰余演算
モジュールのうち、2n1ビット精度の暗号化及び復号を
行うのに十分な個数y1≧2n1/2m/yのべき乗剰余演
算モジュールをカスケード接続するようにすれば、さら
なる消費電力の適正化及び演算処理時間の適正化が図れ
ることとなる。
【0187】また、除算の分散処理を実現した任意精度
除算器を128ビット精度とし、任意精度乗算器を64
ビット精度でワンチップ化しても約1万2千ゲート規模
で済み、その乗除算ユニット(チップ)を8〜16ユニ
ットカスケード接続することにより512〜1024ビ
ット精度に容易に対応可能である。同様にさらなる高精
度化も容易に実現することができる。
【0188】そして、演算は精度に比例したクロック数
(例えば、512ビット精度では512クロック)で実
行し、ボード上に完全なハードウェアで構築できるので
高速化が可能である。
【0189】また、上記説明においては、最大でx個の
べき乗剰余演算ユニットが設けられている場合について
説明したが、例えば、べき乗剰余演算ユニットをTFT
(Thin Film Transistor)で構成した場合には、欠損な
どにより不良トランジスタが発生することにより1個の
べき乗剰余演算ユニットが使用できないだけで、べき乗
剰余演算ユニット全体が使用できなくなり、実効的な歩
留まり率が低下することとなり、製造コストの上昇を招
くこととなる。
【0190】そこで、べき乗剰余演算ユニットの歩留ま
り率Aに対して、少なくともK個(x≧K/A)のべき
乗剰余演算ユニットを予め用意し、K個のべき乗剰余演
算ユニットのうち良品べき乗剰余演算ユニットをx個接
続するように冗長構成を採用することが好ましい。こう
すると、べき乗剰余演算モジュールに不良が発生した場
合でも、冗長べき乗剰余演算モジュールに接続切換を行
うことにより、そのべき乗剰余演算ユニットは良品とし
て扱うことが可能となる。
【0191】さらにこのことは、べき乗剰余演算ユニッ
トばかりでなく、べき乗剰余演算ユニットを構成するべ
き乗剰余演算モジュールについても同じことが言える。
すなわち、べき乗剰余演算モジュールの歩留まり率A'
に対して、各べき乗剰余演算ユニット中に少なくともL
個(y≧L/A')のべき乗剰余演算モジュールを予め
用意し、L個のべき乗剰余演算モジュールのうち良品べ
き乗剰余演算モジュールをy個接続するように冗長構成
を採用する。こうすると、べき乗剰余演算モジュールに
不良が発生した場合でも、冗長べき乗剰余演算モジュー
ルに接続切換を行うことにより、そのべき乗剰余演算ユ
ニットは良品として扱うことが可能となる。
【0192】以上の説明においては、公開鍵暗号方式の
RSA暗号の場合について説明したが、楕円曲線暗号に
も同様に適用が可能である。
【0193】なお、上述した実施の形態では、全てのべ
き乗剰余演算装置をコンピュータ本体13の外部に設け
ていたが、べき乗剰余演算装置(暗号/復号装置14)
の一部を予めコンピュータ本体13またはルータ本体1
7の内部に設けることもできる。この場合、精度拡張の
ためのべき乗剰余演算ユニット用拡張スロットをコンピ
ュータ本体13またはルータ本体17に予め設け、メモ
リの拡張をメモリ拡張スロットにより行う場合と同様
に、べき乗剰余演算ユニットを拡張スロットに装着する
ことにより容易に演算精度拡張を行うことができる。
【0194】また、実施の形態においては、回線11に
より互いに接続される複数のパーソナルコンピュータ1
2に本発明を適用したが、ワークステーションや、各種
計測機器、家電製品などの機器への組込型コンピュータ
についても同様に適用が可能である。
【0195】さらに、本発明が適用されるパケット交換
網としては、LANの他、インターネットなどにも適用
できる。インターネットの場合、パケットとして機能す
るIP(INTERNET PROTCOL)データグラム内のヘッダフ
ィールドにIPアドレス(発信元アドレス及び送信先ア
ドレス)が格納され、データフィールドにデータが格納
される。IPアドレス(32ビット)は、発信元及び送
信先を一意に決めるアドレス情報である。従って、本発
明では少なくともヘッダフィールド内の発信元アドレス
及び送信先アドレスのいずれか一方または双方を暗号化
すればよい。もちろん、データフィールド内に機密デー
タフィールドを設け、その中の機密データも併せて暗号
化してもよい。特に、インターネットのように情報の透
過性の高いネットワークシステムに本発明を適用する意
義が高い。
【0196】(暗号化及び復号処理の高速化について)
図20は、図2及び図3に示す暗号/復号装置14をプ
ログラマブルディジタルプロセッサ148として、他の
機能ブロックと共に1チップ化したマイクロコンピュー
タ100を示している。
【0197】図20において、マイクロコンピュータ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を含
んでいる。これらは、一枚の半導体基板上に形成されて
いる。なお、図2ではデータバス142とアドレスバス
144とを分離しているが、データとアドレスとを時分
割で伝送するようにすれば、データ/アドレスバスとし
てデータとアドレスとを1本のラインで兼用して伝送さ
せてもよい。
【0198】また、図20に示すバスライン146に
は、図5に示す内部バス4が接続され、上述した各構成
は、図5に示す暗号/復号装置14と同一構成を有する
プログラマブルディジタルプロセッサ148にも接続さ
れている。従って、図1に示す回線11に対して、入力
ポート136、出力ポート138またはI/0ポート1
40を介して入出力される情報の一部または全部が、プ
ログラマブルプロセット148にて暗号化または復号さ
れる。
【0199】ここで、データバス142、アドレスバス
144及び内部バス4を伝送される信号を光信号とする
ことができる。こうすることで、マイクロコンピュータ
100内部での信号伝送速度を格段に高速にすることが
できる。すなわち、多チャンネルのデータ例えば32ビ
ットのデータは、それぞれ波長の異なる光信号として、
光伝送媒体にて形成されたデータバス142中を同時に
光伝送される。アドレス信号も同様に、波長の異なる多
チャンネルの光信号として、アドレスバス144を同時
に光伝送される。なお、データバス142及びアドレス
バス144が1本の光伝送媒体にて兼用される場合に
は、光信号のデータ及びアドレスは時分割にて伝送され
る。内部バス4についても同様にして光信号を伝送させ
る。
【0200】ここで、上述の機能ユニット102〜14
0は全て、従来通り、多チャンネルの電気信号にて各種
機能を実現するために動作し、半導体素子等にて形成さ
れている。このため、各種の機能ユニット102〜14
0は、バスライン146(データバス142及び/又は
アドレスバス144)を介して入力される多チャンネル
の電気信号を多チャンネルの光信号に変換する信号入力
部と、多チャンネルの電気信号を多チャンネルの光信号
に変換してバスライン146に出力させる信号出力部と
のいずれか一方または双方を有する。
【0201】図21は、マイクロコンピュータ100が
形成された基板200の一部を概略的に示す図である。
図21には、基板200上に形成された第1の機能ユニ
ット210(機能ユニット102〜140のいずれか一
つ)より第2の機能ユニット220(機能ユニット10
2〜140の他の一つ)に向けて、バスライン146を
介して信号を送出するための構成が図示されている。
【0202】第1の機能ユニット210は、電気回路領
域212と、その電気回路領域212からの出力信号
(多チャンネルの電気信号)を伝送する配線部214
と、多チャンネルの電気信号に基づいてそれぞれ波長の
異なる多チャンネルの光信号を発光出力する信号出力部
としての発光部216とを有する。
【0203】第2の機能ユニット220は、多チャンネ
ルの光信号を多チャンネルの電気信号に変換する信号入
力部としての受光部222と、多チャンネルの電気信号
を増幅する増幅回路224と、その電気信号を伝送する
配線部226と、電気回路領域228とを有する。な
お、増幅回路224は、受光部222からの電気信号の
電圧レベルを、第2の機能ユニット220にて必要な電
圧レベルまでシフトさせるレベルシフタとして機能し、
必要に応じて設けられる。
【0204】発光部216と受光部222との間に形成
されるバスライン146は、光伝送媒体である導波路2
30として構成され、多チャンネルの光信号を同時に伝
送する。
【0205】図21に示す発光部216は多チャンネル
の電気信号を多チャンネルの光信号に変換するために、
多チャンネルの数と等しい数の発光素子を有する。同様
に、受光部222も多チャンネル分の受光素子を有す
る。
【0206】なお、第1,第2の機能ユニット210,
220間で双方向の信号伝送を行うこともできる。この
場合、第1の機能ユニット210は、図21に示す光伝
送媒体としての導波路230と光学的に接続された受光
部と、該受光部からの電気信号を増幅する増幅器とを有
する。一方、第2の機能ユニット220は、導波路23
0と光学的に接続された発光部222を有する。
【0207】図22は、図21に示す発光部216のう
ちの一部である3つの発光素子216A〜216C及び
導波路230の一例を示す断面図である。図22では、
共通の導波路230上に3チャンネル分の発光素子21
6A〜216Cが形成されている状態が図示されてい
る。
【0208】図22において、導波路230は、例え
ば、下層のSiO2層240と上層のSiO2層242と
の間にコアとなる透明電極例えばITO(インジウム・
ティン・オキサイド)層244を設けて構成される。な
お、コアとなるITO層244の全ての外表面は、Si
2層240またはSiO2層242により覆われて光漏
れが防止されている。
【0209】発光素子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などが形成される。
【0210】発光素子216Aの発光層254は、例え
ば有機EL(エレクトロルミネッセンス)にて形成され
る。この有機ELは、例えば図23に示すように、イン
クジェットノズル258よりITO層252上に吐出さ
れ、例えば約0.1μmの膜厚にて形成される。そし
て、有機ELの材料を選択することで、あるチャンネル
の発光素子216Aの発光層254から発光される光の
波長を、他の全てのチャンネルの発光素子216B,2
16C等の発光層254の発光波長と異ならせている。
【0211】発光層254として有機ELを用いると、
発光波長の選択の自由度が大きく、事実上特定の材料を
選択したり、材料を復号することで、あらゆる波長の選
択が可能である。
【0212】有機発光材料としては、発光材料中の励起
子のエネルギーが有機物質の禁止帯幅に対応するHOM
O(最高被占準位)−LUMO(最低空準位)間のエネ
ルギー差に相当するものが選択される。例えば、低分
子、高分子、特に主鎖に共役系の発達した共役高分子、
導電性分子や色素分子が選択される。
【0213】有機発光材料として、低分子有機材料を用
いる場合、例えば青色発光させるには、アントラセン、
PPCP、Zn(OXZ)2、ジスチルベンゼン(DS
B)、その誘導体(PESB)等が用いられる。また、
例えば赤色発光させるには、BPPC、ベリレン、DC
Mなどが用いられる。
【0214】また、有機発光材料として高分子有機材料
を用いる場合であって、例えば赤色発光させるために
は、PATなど、オレンジ色発光させるにはMEH−P
PVなど、青色発光させるにはPDAF、FP−PP
P、RO−PPP、PPPなど、紫色発光させるにはP
MPSなどが用いられる。
【0215】その他、有機発光材料として、PPV、R
O−PPV、CN−PPV、PdphQX、PQX、PV
K(ポリ(N−ビニルカルバゾール))、PPS、PN
PS、PBPSなどが用いられる。
【0216】特にPVKは、Eu錯体などキャリア輸送
能力の劣る色素分子などのドーパントインクの混合濃度
や吐出回数を制御することで発振波長(発光色)を変え
ることができる。例えば、PVKからなる有機発光材料
に蛍光色素をドープすると発光色を調整することができ
る。
【0217】また、PVKにローダミンBやDCMをド
ープ可能に構成する場合には、発光色を緑色から赤まで
任意に変えることができる。
【0218】また、光の波長(ピーク波長や波長帯域な
ど)は、図22のITO層252の下層に追加配置され
る光学フィルターによってある程度調整可能である。
【0219】白色光のような波長帯域の広い光が発光さ
れ、その波長を調整する場合は、上記光学フィルターと
して、通常の吸収型の光学カラーフィルターを用いるこ
とができ、これにより所望の色(波長)の光のみを通過
させて光信号とすることができる。
【0220】また、ITO層252の下層に追加配置さ
れる光学フィルタとしては、分布反射型多層膜ミラー
(DBRミラー)を用いることができる。このDBRミ
ラーは、屈折率の異なる複数の薄膜を積層したもの、特
に屈折率の異なる2種類の薄膜で構成されたペアを複数
有するものである。この薄膜を構成する成分としては、
例えば半導体材料や誘電体材料なとが挙げられ、これら
のうちでは誘電体材料が好ましい。これらは、通常の真
空成膜法あるいは液相成膜法を用いて形成することがで
きる。また、誘電体材料は、有機溶媒に可溶な有機化合
物を出発原料として用いることができ、この場合図23
のインクジェット方式によるパターン形成の適用が可能
となる。
【0221】発光素子216A〜216Cは、垂直共振
器型の面発光レーザとすることもできる。この面発光レ
ーザは、それぞれ反射率が異なる2つのミラー例えば分
布反射型多層膜(DBR)ミラー(図22の例では下層
のミラーの反射率が低い)の間に、クラッド層及び活性
層(量子井戸構造が好ましい)を交互に積層させて形成
し、上下各層のミラーと上下各層の電極(図22の例で
は下部電極はITOなどの透明電極である)との間には
それぞれコンタクト層が配置されて形成される。
【0222】なお、この種の面発光レーザの詳細は、本
願出願人の先の出願(特願平10−2012415、特
願平10−201244、特開平7−198203な
ど)に開示されているので、その詳細な説明は省略す
る。
【0223】各チャンネルの面発光レーザの発光波長
も、エピタキシャル成長される材料例えばGaAlAs
の組成を選択することで変更可能であり、図23のイン
クジェット方式によるパターン形成によって、組成の異
なる複数の面発光レーザを導波路230上に実装するこ
とができる。
【0224】発光素子216Aのさらに他の例として、
図25に示すような端面発光レーザ270を用いること
もできる。この端面発光レーザ270の端面272から
出射された光274は、ITOなどの光伝送媒体にて形
成されたウェーブガイド276内を伝搬される。各チャ
ンネルの端面発光レーザの発光波長も、その構成材料の
組成を選択することで変更可能である。
【0225】図24は、図21に示す導波路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とを
有する。
【0226】ここで、第1,第2導電型半導体層26
4,266はPINフォトダイオードを構成する。この
PINフォトダイオードを構成する他の例として、p型
a−SiC(p型半導体)と、i型a−Si層と、n型
a−SiC層とを有するものでもよい。このとき、金属
電極268として、Al−Si−Cu層を用いることが
できる。
【0227】光学フィルター262は、例えばX1nm
以上の波長の光を通過させる第1の光学フィルターと、
X2(>X1)nm以下の波長の光を通過させる第2の
光学フィルターとの少なくとも2層を有し、X1〜X2
nmの波長の光を通過させる狭帯域光フィルターとして
機能する。なお、この光学フィルター262の構成を、
図22のITO層252の下層に追加配置される光学フ
ィルターに適用することもできる。逆に、図22のIT
O層252の下層に追加配置される光学フィルターとし
て説明した材料を、光学フィルター262に用いること
もできる。
【0228】上記の構造により、導波路230を伝搬さ
れ、光学フィルター262を通過した特定波長の光は、
第1,第2導電型半導体層264,266の間の界面に
形成される空乏層にて光−電流変換され、この電気信号
を電極263,268を介して取り出すことができる。
【0229】ところで、光学フィルター262は、その
構成材料の選択により、通過される光の波長を変更でき
る。また、第1,第2導電型半導体層264,268な
どにて構成されるフォトダイオードも、構成材料例えば
GaAlAsの組成を選択することで、検出できる光の
波長を変更できる。これにより、あるチャンネルの受光
素子222Aにて検出される光の波長を、他の全てのチ
ャンネルの受光素子222B,222Cなどでの検出波
長と異ならせている。なお、光学フィルタ262、第
1,第2導電型半導体層264,268は、図23に示
すインクジェットノズル258を用いた層形成方法によ
り形成することができる。あるいは、検出波長の異なる
受光素子222A,222B,222Cを、導波路23
0上に実装してもよい。
【0230】次に、バス上にて光信号を伝送させる場合
の動作の一例について説明する。図20に示すCPU1
02が例えばキャッシュメモリであるRAM106より
データを読み込む場合には、CPU102よりRAM1
06を選択するチップイネーブルまたはチップセレクト
信号、さらには読み出しアドレス信号などが、それぞれ
多チャンネルの電気信号として出力される。
【0231】ここで、図21に示す第1の機能回路21
0がCPU102とすると、この多チャンネルの電気信
号は図21の電気回路領域212より出力される。この
多チャンネルの電気信号は配線部214を介して発光部
216に入力される。発光部216を構成する各々の発
光素子は、図22に示す金属電極256に各チャンネル
の電気信号の一つが入力され、それに基づいて発振(発
光)制御される発光層254にて各チャンネル固有の波
長の光信号が発光される。これにより、各チャンネル毎
に発光制御された光信号が各チャンネルの発光層254
より発光され、ITO層252を介して導波路230に
入射される。導波路230では、図22に示すようにコ
アとなるITO層244を光が伝搬される。
【0232】図21の第2の機能ユニット220をRA
M106とすると、その受光部222に、導波路230
を伝搬された光信号が入射される。ここで、図24に示
すように、受光部を構成する各々の受光素子222A〜
222Cは、それぞれ異なる波長の光を通過させる光学
フィルタ262を有するので、多チャンネル分の数だけ
配置された各々の受光素子222A〜222Cには、各
チャンネルに対応する波長の光のみがそれぞれ入射され
る。さらに、各々の受光素子222A〜222Cは、各
々の光学フィルタ262を通過した波長の光を検出する
ように構成されているため、各チャンネル毎に電気信号
を出力することができる。
【0233】その後は、従来のLSIなどと同様にRA
M106が電気的に駆動され、必要なデータがRAM1
06より読み出される。RAM106より読み出された
電気信号は、図21では省略した第2の機能ユニット2
20側の発光部にて光信号に変換され、図21に示す導
波路230を介して伝搬される。この光信号は、図21
に示す第1の機能ユニット210側の受光部にて電気信
号に変換され、増幅器を介してCPU102に供給され
る。
【0234】このように、マイクロコンピュータ100
内の各機能ユニット間の信号の授受を光によって行うこ
とにより、伝送速度のロスをほとんど無視することがで
きる。従って、さらに高集積化が進んだとしても、伝送
遅延を考慮した設計が不要となり、回路の構築設計が大
幅に簡易化される。しかも、マイクロコンピュータ10
0内の各機能ユニット間の信号の授受を光によって行う
ことにより、マイクロコンピュータ100の発熱も低減
させることができる。
【0235】なお、図20に示すマイクロコンピュータ
100と、その周辺機器との間を光通信する構成とする
こともできる。周辺機器としては、LCDやCRTなど
の表示部、プリンタなどを挙げることができる。
【0236】この場合、図20に示す入力ポート13
6、出力ポート138、I/Oポート140として、バ
スライン146に対して多チャンネルの光信号を入出力
する構成とすればよい。このとき、光信号を入出力しな
い時に通路を遮断する光シャッターを各ポートに設け、
チップセレクト信号などにより周辺機器が指定された場
合にのみ光シャッターを開放する構成としてもよい。
【図面の簡単な説明】
【図1】本発明の実施の形態に係わるパケット通信シス
テムを模式的に示す図である。
【図2】図1に示すパーソナルコンピュータの概要構成
を示す図である。
【図3】図1に示すルータの概要構成を示す図である。
【図4】図1に示す回線を伝送されるパケットの一例を
示す図である。
【図5】図2及び図3中の暗号/復号装置の概要構成を
示すブロック図である。
【図6】図2及び図3中の暗号/復号装置をべき乗剰余
演算装置として示すブロック図である。
【図7】図6中の任意精度除算装置の概要構成を示すブ
ロック図である。
【図8】(A)〜(C)はそれぞれ、除算分散処理の困
難性を説明する説明図である。
【図9】任意精度除算器の構成と動作の説明図である。
【図10】除算器の概要構成を示すブロック図である。
【図11】除算器の動作タイミングチャートである。
【図12】RSAに基づいた公開鍵暗号方式の暗号化及
び復号処理の処理手順を示す図である。
【図13】べき乗剰余演算装置に必要なゲート数を説明
する図である。
【図14】ab≡M mod cの演算手法を説明する
説明図である。
【図15】図14の演算を実行する回路のブロック図で
ある。
【図16】図14の手法に従って、18619≡M mo
d 377を復号してM=17を求めた演算例の説明図
である。
【図17】図14にて必要な演算処理時間の計算を示す
説明図である。
【図18】演算処理時間の例を示す説明図である。
【図19】従来におけるRSAに基づいた公開鍵暗号方
式の暗号化及び復号処理の処理手順である。
【図20】暗号/復号装置を搭載したマイクロコンピュ
ータの一例を示すブロック図である。
【図21】図20に示すマイクロコンピュータの光伝送
部を含む領域の概略説明図である。
【図22】図21に示す発光部を構成する3チャンネル
分の発光素子の概略断面図である。
【図23】図22に示す発光層の製膜方法の一例を示す
概略説明図である。
【図24】図21に示す受光部を構成する3チャンネル
分の受光素子の概略断面図である。
【図25】図21に示す発光部の変形例を示す概略説明
図である。
【符号の説明】
1 メインマイクロプロセッサユニット 2 バス 4 内部バス 5 コントロールユニット 6 RAM 7−1〜7−x べき乗剰余演算ユニット 8 ROM 9−1〜9−y べき乗剰余演算モジュール 10,10A〜10D ルータ 11 回線 12 パーソナルコンピュータ 13 コンピュータ本体 13A 入出力部 13B 入出力インターフェース 14 暗号/復号装置(べき乗剰余演算装置) 15 キーボード 16 ディスプレイ 17 ルータ本体 18 パケット 18A アドレスフィールド 18A−1 発信元アドレスフィールド 18A−2 送信先アドレスフィールド 18B データフィールド 18B−1 機密データフィールド 18B−2 通常データフィールド 20 任意精度除算装置(除算ユニット) 21 任意精度乗算装置(乗算ユニット) 22 バス 25−1〜25−H 8ビット除算器(除算モジュー
ル) 31 除数ラッチ回路 32 被除数ラッチ・シフト回路 33 並列減算回路 34 部分剰余・シフト回路 35 並列減算回路 100 マイクロコンピュータ 142 データバス 144 アドレスバス 146 バスライン 148 プログラマブルディジタルプロセッサ(暗号/
復号装置)
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5J104 AA01 AA02 AA22 CA01 JA23 JA28 NA18 PA00 5K030 GA05 GA15 HA08 HC01 HC14 HD03 HD07 5K033 AA08 CB08 DA05 DB14 DB19 EC03

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 複数の端末機と少なくとも一つのルータ
    とが接続されたネットワーク上にて、アドレスフィール
    ドとデータフィールドとを含むパケットを伝送するパケ
    ット通信システムにおいて、 前記複数の端末機及び前記少なくとも一つのルータの各
    々は、暗号/復号装置を有し、 前記複数の端末機の各々は、パケット送信時には前記暗
    号/復号装置にて少なくとも前記アドレスフィールド内
    のアドレス情報を暗号化し、パケット受信時には暗号化
    された前記アドレス情報を前記暗号/復号装置にて復号
    し、 前記少なくとも一つのルータは、暗号化された前記アド
    レス情報を前記暗号/復号装置にて復号し、ルーティン
    グテーブル内の情報に従って選択された通信経路に前記
    パケットを送信することを特徴とするパケット通信シス
    テム。
  2. 【請求項2】 請求項1において、 前記複数の端末機の各々は、パケット送信時には前記暗
    号/復号装置にて前記アドレスフィールド内の送信先ア
    ドレス情報を暗号化することを特徴とするパケット通信
    システム。
  3. 【請求項3】 請求項1または2において、 前記複数の端末機の各々は、パケット送信時には前記暗
    号/復号装置にて前記アドレスフィールド内の発信元ア
    ドレス情報を暗号化することを特徴とするパケット通信
    システム。
  4. 【請求項4】 請求項1乃至3のいずれかにおいて、 前記パケットの前記データフィールドには機密データが
    格納された機密データフィールドが設けられ、 前記複数の端末機の各々は、パケット送信時には前記暗
    号/復号装置にて前記機密データフィールド内の前記機
    密データを暗号化することを特徴とするパケット通信シ
    ステム。
  5. 【請求項5】 請求項1乃至4のいずれかにおいて、 各々の前記暗号/復号装置は、 複数のべき乗剰余演算ユニットと、 前記複数のべき乗剰余演算ユニットをカスケード接続す
    るための複数のカスケード端子と、 を有し、 前記複数のべき乗剰余演算ユニットの各々は、 乗算精度2mビット(mは自然数で固定)で乗算を行う
    乗算ユニットと、 除算精度22・mビットで除算を行う除算ユニットと、 を有し、 前記複数のべき乗剰余演算ユニットにより実施されるべ
    き乗剰余演算の最大演算精度を2n(nは自然数で固
    定)としたとき、 x≧2n/2m(xは自然数で固定) を満たすように、前記複数のべき乗剰余演算ユニットが
    x個接続されて、暗号化または復号を行うことを特徴と
    するパケット通信システム。
  6. 【請求項6】 請求項5において、 演算処理時に必要な演算精度を2n1ビット(n1≦nで
    n1は可変)としたとき、x1≧2n1/2m(x1≦x
    でx1は可変)を満たすように、前記複数のべき乗剰余
    演算ユニットがx1個カスケード接続されることを特徴
    とするパケット通信システム。
  7. 【請求項7】 請求項5または6において、 前記複数のべき乗剰余演算ユニット間は光信号により信
    号が伝送されることを特徴とするパケット通信システ
    ム。
  8. 【請求項8】 請求項5乃至7のいずれかにおいて、 各々の前記べき乗剰余乗算ユニットは、 乗算精度2m/y(yは自然数で固定)で乗算を行うy個
    の乗算モジュールと、 y個の前記乗算モジュールをカスケード接続するための
    カスケード端子と、 を有し、 前記除算ユニットは、 除算精度22・(m/y)で除算を行うy個の除算モジュール
    と、 y個の前記除算モジュールをカスケード接続するための
    カスケード端子と、 を有することを特徴とするパケット通信システム。
  9. 【請求項9】 請求項8において、 前記y個の乗算モジュール間及び前記y個の乗算モジュ
    ール間は、光信号により信号が伝送されることを特徴と
    するパケット通信システム。
JP6264299A 1999-03-10 1999-03-10 パケット通信システム Withdrawn JP2000261486A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6264299A JP2000261486A (ja) 1999-03-10 1999-03-10 パケット通信システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6264299A JP2000261486A (ja) 1999-03-10 1999-03-10 パケット通信システム

Publications (1)

Publication Number Publication Date
JP2000261486A true JP2000261486A (ja) 2000-09-22

Family

ID=13206200

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6264299A Withdrawn JP2000261486A (ja) 1999-03-10 1999-03-10 パケット通信システム

Country Status (1)

Country Link
JP (1) JP2000261486A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006151582A (ja) * 2004-11-29 2006-06-15 Toshiba Elevator Co Ltd エレベータ用データ伝送システム
EP1978703A1 (en) * 2007-04-02 2008-10-08 British Telecommunications Public Limited Company Method of transferring data packets
WO2008147302A1 (en) 2007-05-09 2008-12-04 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for protecting the routing of data packets
WO2009148666A2 (en) * 2008-03-06 2009-12-10 Raytheon Company Internet gatekeeper protocol
WO2010021577A1 (en) * 2008-08-22 2010-02-25 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for avoiding unwanted data packets
US11936636B2 (en) 2021-09-15 2024-03-19 Kabushiki Kaisha Toshiba Communication device, communication method, and communication system

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006151582A (ja) * 2004-11-29 2006-06-15 Toshiba Elevator Co Ltd エレベータ用データ伝送システム
EP1978703A1 (en) * 2007-04-02 2008-10-08 British Telecommunications Public Limited Company Method of transferring data packets
US8181014B2 (en) 2007-05-09 2012-05-15 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for protecting the routing of data packets
WO2008147302A1 (en) 2007-05-09 2008-12-04 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for protecting the routing of data packets
EP2145458A1 (en) * 2007-05-09 2010-01-20 Telefonaktiebolaget L M Ericsson (publ) Method and apparatus for protecting the routing of data packets
EP2145458A4 (en) * 2007-05-09 2014-11-26 Ericsson Telefon Ab L M METHOD AND APPARATUS FOR PROTECTING ROUTING OF DATA PACKETS
CN101682656B (zh) * 2007-05-09 2013-07-24 艾利森电话股份有限公司 用于保护数据分组的路由选择的方法和设备
WO2009148666A2 (en) * 2008-03-06 2009-12-10 Raytheon Company Internet gatekeeper protocol
GB2469782A (en) * 2008-03-06 2010-10-27 Raytheon Co Internet gatekeeper protocol
WO2009148666A3 (en) * 2008-03-06 2010-07-22 Raytheon Company Internet gatekeeper protocol
CN102132532A (zh) * 2008-08-22 2011-07-20 艾利森电话股份有限公司 用于避免不需要的数据分组的方法和装置
US8576845B2 (en) 2008-08-22 2013-11-05 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for avoiding unwanted data packets
CN102132532B (zh) * 2008-08-22 2014-05-21 艾利森电话股份有限公司 用于避免不需要的数据分组的方法和装置
WO2010021577A1 (en) * 2008-08-22 2010-02-25 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for avoiding unwanted data packets
US11936636B2 (en) 2021-09-15 2024-03-19 Kabushiki Kaisha Toshiba Communication device, communication method, and communication system

Similar Documents

Publication Publication Date Title
JP4092735B2 (ja) 情報処理システム及び暗号/復号システム
EP0531158B1 (en) Method of and apparatus for encryption and decryption of communication data
EP0502712B1 (en) Calculating apparatus and method of encrypting/decrypting communication data by using the same
US20050089161A1 (en) Data converter and method thereof
US7389316B1 (en) Method and apparatus for true random number generation
JP2000261486A (ja) パケット通信システム
Tian et al. Fast modular multipliers for supersingular isogeny-based post-quantum cryptography
KR100508092B1 (ko) 저전력 모듈로 곱셈을 수행하는 연산장치
US7480691B2 (en) Arithmetic device for multiple precision arithmetic for Montgomery multiplication residue arithmetic
Abed et al. Performance evaluation of the SM4 cipher based on field‐programmable gate array implementation
Ashaq et al. FPGA implementation of PRESENT block cypher with optimised substitution box
JPH05324277A (ja) 暗号通信方法
Parihar et al. Fast Montgomery modular multiplier for rivest–shamir–adleman cryptosystem
Cilardo Modular inversion based on digit‐level speculative addition
JP2000259077A (ja) 情報処理システム
US20220069980A1 (en) Information processing apparatus, secure computation method, and program
KR102241252B1 (ko) 모듈러 연산 방법, 장치 및 시스템
JP2000298575A (ja) 情報処理システム
Ambika et al. Data security using serial commutative RSA CORE for multiple FPGA system
FR2818765A1 (fr) Multiplicateur modulaire et processeur de cryptage/decryptage utilisant le multiplicateur modulaire
Li et al. High-speed and low-complexity modular reduction design for crystals-kyber
Mukaida et al. Design of high-speed and area-efficient Montgomery modular multiplier for RSA algorithm
CN112953706B (zh) 信息处理方法和装置
Zhang et al. Certifying multi‐power rsa
Abulibdeh et al. Boosted PUF: Boosting Efficiency and Resilience in Configurable RO PUF for IoT Devices

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060606