(57)【特許請求の範囲】
【請求項１】
システムであって、
暗号化装置、及び
当該暗号化装置に結合されたホスト・プロセッサ、
を有し、
前記暗号化装置は、集積回路パッケージ内に第１の暗号ユニットと第２の暗号ユニットと記憶要素とプロセッサとを有し、
前記ホスト・プロセッサは、暗号化入力情報の暗号化フォーマットに応じて、該暗号化入力情報を前記集積回路パッケージ内のプロセッサ又は前記第１の暗号ユニットへ選択的に転送し、
前記集積回路パッケージ内で、前記プロセッサ、前記第１の暗号ユニット、及び前記第２の暗号ユニットはそれぞれ前記記憶要素に結合され、
前記第１の暗号ユニットは前記集積回路パッケージの入力を介して受信された第１の暗号化フォーマットを有する前記暗号化入力情報を受信し、第１の暗号アルゴリズムを使用して前記暗号化入力情報を非暗号化フォーマットを有する情報へ解読し、該非暗号化フォーマットを有する情報を前記記憶要素に格納し、
前記記憶要素に結合された前記第２の暗号ユニットは前記非暗号化フォーマットを有する情報を受信し、第２の暗号アルゴリズムを使用して前記情報を、前記集積回路パッケージの出力を介して出力されるべき第２の暗号化フォーマットを有する情報へ再暗号化する、
ことを特徴とするシステム。
【請求項２】
前記第１の暗号化フォーマット及び前記第１の暗号アルゴリズムが、前記第２の暗号化フォーマット及び前記第２の暗号アルゴリズムとはそれぞれ異なる、
ことを特徴とする請求項１に記載のシステム。
【請求項３】
前記第１の暗号ユニットは前記記憶要素から前記非暗号化フォーマットを有する情報を受信し、前記第１の暗号アルゴリズムを使用して前記情報を、前記集積回路パッケージの出力を介して出力されるべき前記第１の暗号化フォーマットを有する情報へ再暗号化する、
ことを特徴とする請求項１に記載のシステム。
【発明の詳細な説明】
関連出願へのクロス・レファレンス
本出願の発明者は、「Ａｐｐａｒａｔｕｓ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｐｒｏｖｉｄｉｎｇ  Ｓｅｃｕｒｅｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ」（米国特許出願第０８／２５１，４８６号）、「Ｓｅｃｕｒｅｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｐｒｏｖｉｄｉｎｇ  Ｓｅｃｕｒｅｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ」（米国特許出願第０８／５３８，８６９号）、および「Ａ  Ｍｅｔｈｏｄ  Ｆｏｒ  Ｐｒｏｖｉｄｉｎｇ  Ａ  Ｒｏｖｉｎｇ  Ｓｏｆｔｗａｒｅ  Ｌｉｃｅｎｓｅ  Ｉｎ  Ａ  Ｈａｒｄｗａｒｅ  Ａｇｅｎｔ−Ｂａｓｅｄ  Ｓｙｓｔｅｍ」（米国特許出願第０８／４７２，９５１号）という名称の３つの同時係属出願を出願しており、「Ｒｏｖｉｎｇ  Ｓｏｆｔｗａｒｅ  Ｌｉｃｅｎｓｅ  Ｆｏｒ  Ａ  Ｈａｒｄｗａｒｅ  Ａｇｅｎｔ」（米国特許第５，４７３，６９２号）という名称の特許の発行を最近受けている。これらの出願および特許は、本出願の譲受人が所有するものである。
発明の背景
１．発明の分野
本発明は暗号手法の分野に関する。より具体的に言うと本発明は、暗号化された情報を、機密保護がなされていない非暗号化フォーマットの情報を露出させることなく、１つの暗号化フォーマットから別の暗号化フォーマットに変換する暗号装置に関する。
２．本発明の関連技術の説明
今日の社会では、デジタル情報（すなわちデータ、制御信号、アドレス）を１つの場所から他の場所へ伝送するときに、目標とする受信者には明瞭で暖昧さがないが、不正な侵入者（ｉｎｔｅｒｌｏｐｅｒ）には理解不能な方法で伝送することがますます求められている。したがって一般に、デジタル情報は送信される前に、メイン・メモリに記憶された暗号化アルゴリズムを実行するホスト・プロセッサによって暗号化される。このような暗号化には、特定の目標受信者用の通信キーが使用される。その後、目標受信者が、暗号化された情報を解読し、使用する。従来からのこの暗号化伝送手法は、機密情報（例えば親展、所有権など）が伝送される政府用途、ならびに商業用途に一般的に使用されている。
同様に、コンピュータに接続したメイン・メモリまたは大容量記憶装置にデジタル情報を暗号化フォーマットで記憶することも求められている。これを実施するのは、無許可の人が、メイン・メモリまたは大容量記憶装置から非暗号化フォーマット（すなわち、プレーン・テキスト）の機密情報をフロッピー・ディスクにダウンロードすることを防止するためである。しかし、暗号化フォーマットでの情報の保存も、従来からの暗号化伝送手法も、機密保護のないプレーン・テキストを露出させない（すなわち、暗号アルゴリズムを実行している要素の境界外に出さない）ように完全に保護するものではない。例えば、暗号化されたドキュメントを１台のコンピュータから別のコンピュータに転送するためには、このドキュメントを解読してプレーン・テキストとし、特定の目標受信者用の通信キーで再び暗号化することになる。したがって、プレーン・テキストが少なくともシステム・バス上で露出され、ドキュメントのサイズがメイン・メモリのサイズよりも大きい場合には、プレーン・テキストが一次的にコンピュータの大容量記憶装置（例えば、内蔵ハード・ディスク）に記憶される可能性がある。この露出の問題には、機密保護に関連したいくつかの欠点がある。
明らかな欠点の１つは、プレーン・テキストが内蔵ハード・ディスクから直ぐに除去されない場合、または別のコンピュータがそのハードディスクに、ローカル・エリア・ネットワークを介してアクセス可能である場合には、無許可の人がプレーン・テキストを読むことができることである。プレーン・テキストがハードディスクに記憶されることがないように、送信者が、ハードディスクまたはドキュメントからプレーン・テキストをこまめに除去する場合でも、ソフトウェア手段（例えばコンピュータウィルス）またはハードウェア手段（例えば論理解析器）を介してコンピュータのシステム・バスを監視する単純な作業によって、侵入者が、プレーン・テキストにアクセスすることができる可能性は残る。
他の欠点は、暗号化フォーマットされたメッセージが、異なる暗号化フォーマットでこのメッセージを再暗号化する権限を持つ第三者（例えばシステム管理者）に送られるときには、目的の受信者だけがメッセージ内容を読むことができることを保証する機構が存在しないことである。
他の欠点は、内容配布を介して、またはソフトウェア・パッケージによって供給された（すなわちコピープロテクトされた）データの無許可使用を防止する機構が存在しないことである。
したがって、１つの暗号化フォーマットとして１つのソースに元々含まれ、別のまたは同じ暗号化フォーマットを介して別のソースに転送する必要がある非暗号化フォーマットの情報（すなわちプレーン・テキスト）へのアクセスを十分に制限する暗号装置を作り出すことが求められている。この暗号装置は、侵入者が安全な情報を盗むことを実質的に排除する。これは、侵入者がその情報を、バス線からよりも明らかに難しいチップ・パッケージ内の集積回路から得なければならないからである。
発明の簡単な概要
本発明は、第１の暗号化フォーマットを有する入力情報を解読して、非暗号化フォーマットの情報を生成する暗号装置に関する。暗号化されていないこの情報はその後、第２の暗号化フォーマットに基づいて再暗号化される。第２の暗号化フォーマットを有する情報が暗号装置から出力される。解読および再暗号化動作は全て、暗号装置内で実施される。
【図面の簡単な説明】
本発明の特徴および利点は、本発明の以下の詳細な説明から明らかとなろう。
第１図は、本発明に関連した暗号装置が組み込まれたコンピュータ・システムのブロック図である。
第２Ａ図ないし第２Ｄ図は、暗号装置のさまざまな実施形態のブロック図である。
第３図は、暗号装置の他の実施形態の詳細ブロック図である。
第４図は、暗号装置の外部からプレーン・テキスト情報へのアクセスを排除する方法を示す流れ図である。
発明の詳細な説明
本発明は、情報を、１つの暗号化フォーマットから同じまたは別の暗号化フォーマットに、中間のプレーン・テキストを機密保護のされていない環境に露出させることなく変換する装置および方法に関する。以下の説明では、本発明を完全に理解することができるよう多数の詳細を記載する。しかし、例示する実施形態とは異なる多くの実施形態によって、本発明の趣旨および範囲から逸脱することなく本発明を実施することができることは当業者には明白である。また、本発明が不必要に不明瞭になること避けるために、周知の回路、要素等を詳細に説明することはしない。
詳細説明では、本明細書に定義する特性または品質を説明するために、暗号手法に関連するいくつかの用語を頻繁に使用する。「通信キー」は、Ｒｉｖｅｓｔ、ＳｈａｍｉｒおよびＡｄｌｅｍａｎ（「ＲＳＡ」）などの暗号アルゴリズムによって使用され、公開キーと秘密キーのペア、および二当事者間で秘密裏に共有する選択キーを使用するデータ暗号化規格（「ＤＥＳ」）を使用する符号化および／または復号パラメータである。通信キーは通常、長さ「ｎ」ビットの２進データの連続分布（「ストリング」）である。ただし「ｎ」は任意の数である。「ドキュメント」は一般に、一続きのバス・サイクルで転送される情報として定義される（例えばデータ、アドレス、キーなど）。「プレーン・テキスト」は、暗号化されていない情報として定義され、テキスト、ビデオ、オーディオおよびその他の媒体を表すディジタル・データを含む。ただしこれらに限定されるわけではない。
第１図を参照して、本発明を利用するコンピュータ・システム１００の実施形態を示す。コンピュータ・システム１００は、プロセッサ・サブシステム１１０、メモリ・サブシステム１２０および入出力（「Ｉ／Ｏ」）サブシステム１３０を含む複数のサブシステムを含む。これらのサブシステムおよび暗号装置１４０は、サブシステム間およびサブシステムと暗号装置１４０の間の情報の伝達を可能にするシステム・バス１５０を介して相互に結合される。代替として、暗号装置１４０を、Ｉ／Ｏバス１６０（例えばＰＣＩバスまたはＩＳＡバス）、ホスト・プロセッサ１１１内のローカル・バス、またはその他のバス機構に結合することも考えられる。
プロセッサ・サブシステム１１０は、メモリ・サブシステム１２０からの命令を実行するホスト・プロセッサ１１１を含み、コンピュータ・システム１００からの情報を処理する。１つのホスト・プロセッサ１１１のみが示されているが、このコンピュータ・システム１００に２つ以上のプロセッサを使用することも考えられる。さらに、メモリ・サブシステム１２０は、ダイナミック・ランダム・アクセス・メモリ（「ＤＲＡＭ」）、リード・オンリー・メモリ（「ＲＯＭ」）、ビデオ・ランダム・アクセス・メモリ（「ＶＲＡＭ」）などの１つまたは複数の記憶装置１２２へのアクセスを制御するメモリ・コントローラ１２１を含んでもよい。記憶装置１２２は、ホスト・プロセッサ１１１が使用する情報を記憶する。
Ｉ／Ｏサブシステム１３０は、Ｉ／Ｏバス１６０とシステム・バス１５０の間のインタフェースの働きをするＩ／Ｏコントローラ１３１を含む。このコントローラは、異なるバスに結合された装置間で情報を転送するための通信経路を提供する。Ｉ／Ｏバス１６０は、コンピュータ・システム１００内の少なくとも１つの周辺装置と情報をやり取りする。この周辺装置の例には、ディスプレイ装置１３２（例えばＣＲＴ、液晶ディスプレイ、フラット・パネル・ディスプレイなど）、文字数字入力装置１３３（例えばキーボード、キー・パッドなど）、カーソル制御装置１３４（例えばマウス、トラックボール、タッチパッド、ジョイスティックなど）、大容量記憶装置１３５（例えば磁気テープ、ハードディスク・ドライブ、フロッピー・ディスク・ドライブなど）、コンピュータ・システム１００と遠隔に位置するシステムとの間での情報の送受を可能とする情報トランシーバ装置１３６（例えばファックス・マシン、モデム、スキャナなど）、およびハード・コピー装置１３７（例えばプロッタ、プリンタなど）などがある。第１図に示したコンピュータ・システム１００は、これらの構成要素の全てまたはいくつか、あるいは、これら以外の構成要素を使用することができると考えられる。
コンピュータ・システム以外でも、暗号化通信に依存する一切の電子システム内で暗号装置１４０を実現することができると考えられる。これらの電子システムには例えば、ケーブル・テレビジョン制御ボックス、銀行のＡＴＭマシン、およびおそらくは、１つの暗号化フォーマットの情報を受信し、別の暗号化フォーマットの情報を送信または記憶するように構成することができるネットワークされた周辺ノードが含まれる。これらの例は例示のためのものであり、本発明を限定するものとして解釈してはならない。
次に第２Ａ図について説明する。暗号装置１４０は、システム・バスに結合され、選択された暗号化フォーマットを有する情報（例えばドキュメント、ファイルなど）を情報トランシーバ装置から受信し、この情報を別の暗号化されたフォーマットに再暗号化する（暗号化し直す）ことができる。暗号装置１４０は、損傷および有害な汚染物質から保護し、侵入者が、プレーン・テキストまたはキー情報を得ることを難しくするために集積回路構成要素パッケージ１４２内に埋め込まれた、好ましくは密封状態に埋め込まれた１つまたは複数の集積回路１４１を含む。集積回路１４１は、解読ユニット１４３、およびこれが結合した暗号化ユニット１４４を有する。これらのユニットの機能については、１９９６年に出版されたＢｒｕｃｅ  Ｓｃｈｎｅｉｄｅｒ著「Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ  Ｓｅｃｏｎｄ  Ｅｄｉｔｉｏｎ：Ｐｒｏｔｏｃｏｌｓ，Ａｌｇｏｒｉｔｈｍｓ，ａｎｄ  Ｓｏｕｒｃｅ  Ｃｏｄｅ  ｉｎ  Ｃ」に記載されている。
解読ユニット１４３は、第１の暗号化フォーマットの情報（「暗号化ＤＡＴＡ  ＩＮ」）を受け取り、これを解読する。したがって解読ユニット１４３は、必要な通信キー「ＫＥＹin」で情報を解読し、これをプレーン・テキストとするように構成される。したがって解読ユニット１４３は、ハードウェアでこの機能を実現してもよいし、ファームウェアで実現してもよい。暗号化ユニット１４４は、プレーン・テキストを受け取り、選択された通信キー「ＫＥＹOUT」に従ってこれを再暗号化し、再暗号化された情報（「再暗号化ＤＡＴＡ  ＯＵＴ）を生成する。暗号化された情報は暗号装置１４０から、メモリ・サブシステムまたは大容量記憶装置に出力され記憶されるか、あるいは、トランシーバ・ユニットに出力され、遠隔に位置する別のシステムに送信される。
解読ユニット１４３および暗号化ユニット１４４は、ハードウェアで前述のとおりに機能するように実現してもよいし、ファームウェアで実現してもよい。解読ユニット１４３および暗号化ユニット１４４を、暗号アルゴリズムを実行し、プレーン・テキストを安全な環境に維持することができる汎用マイクロプロセッサ、またはこの解読または暗号化を実行することができる高機能電子デバイスとすることができることは明らかである。
その他の実施態様を使用することもできる。例えば、第２Ｂ図のように、解読ユニット１４３と暗号化ユニット１４４の間にバッファ１４５を挿入して、プレーン・テキストを一次的に保存してもよい。この実施態様は、暗号化フォーマットどうしが、タイミング調整が必要なほどに異なる場合に必要となることがある。第２Ｃ図では、解読および再暗号化が、同じ暗号「ユニット」１４６によって処理される。このユニットでは、入力情報を解読した後に、プレーン・テキストを、好ましくはバッファ１４７からフィードバックさせて再暗号化する。第２Ｄ図では、プロセッサ１４８が、必要な暗号化および解読アルゴリズムを記憶要素１４９から獲得して解読および再暗号化を実行する。暗号装置１４０に入力される暗号化データおよび暗号装置１４０から出力される暗号化データはともに、第２Ａ図ないし第２Ｃ図と同一の接続ピンを介してバスに転送してもよいし、異なる接続ピンを介して転送してもよい。
第３図に、第２Ａ図ないし第２Ｄ図に示した機能を組み込んだ汎用暗号装置の詳細ブロック図を示す。暗号装置１４０は、プロセッサ２００、複数のバッファ２１０、２２０、記憶要素２３０、および複数の暗号ユニット２４０、２５０を含む。暗号装置１４０は通常、Ｉ／Ｏバスに結合された大容量記憶装置、情報トランシーバ装置などの装置、あるいはホスト・プロセッサから暗号化された入力情報を受け取る。暗号化された情報は、入力情報の暗号化フォーマットに応じて選択的に、通信線２０１を介してプロセッサ２００に送られるか、または通信線２０２を介して第１の暗号化ユニット２４０に送られる。経路の選択は通常、ホスト・プロセッサ１１１によって実行される。データ・フローを制御するのは、それぞれの暗号ユニットは、１種類の暗号化フォーマットの情報しか解読することができないのに対して、プロセッサ２００は、記憶要素２３０に含まれる暗号アルゴリズムを実行することで暗号化または解読をより低い速度で実行するように構成することができるためである。
暗号化された情報が第１の暗号ユニット２４０に伝達される場合には、第１の暗号ユニット２４０が、暗号化された情報を解読してプレーン・テキスト・フォーマットとし、この解読された情報を通信線２４１を介して記憶装置２３０に転送する。暗号化された情報がプロセッサ２００に伝達される場合には、プロセッサ２００が、特定の暗号アルゴリズムを実行して暗号化された情報を解読し、解読されたプレーン・テキストの形態の情報を通信線２０３を介して記憶装置２３０に送信する。
第２の暗号化フォーマットに暗号化するために、プレーン・テキストは別々の３本のデータ経路に引き継がれる。第１のデータ経路は、情報を受け取ったときと同じフォーマットでプレーン・テキストを暗号化するものである。この場合、プレーン・テキストは通信線２４２を介して第１の暗号ユニット２４０に伝達される。このときユニット２４０は、第１の暗号化フォーマットにプレーン・テキストを暗号化し、通信線２２１を介して出力バッファ２２０にその情報を出力する。第２のデータ経路は、第１の暗号ユニット２４０によっても第２の暗号ユニット２５０によっても提供されない暗号化フォーマットでプレーン・テキストを暗号化する必要がある場合の経路である。この状況では、プレーン・テキストは通信線２０４を介してプロセッサ２００へ送られる。プロセッサ２００は、プレーン・テキストを受け取り、関連する暗号アルゴリズムを実行してその情報を暗号化する。次いで、プロセッサ２００は暗号化された情報を通信線２２２を介して出力バッファ２２０に転送する。第３のデータ経路は、プレーン・テキストを、第２の暗号ユニット２５０が提供するフォーマットで暗号化する場合の経路である。プレーン・テキストは、通信線２５１を介して第２の暗号ユニット２５０に送られる。第２の暗号ユニット２５０は、プレーン・テキストを第２の暗号化フォーマットに暗号化し、その情報を、通信線２２３を介して出力バッファ２２０に送信する。その後、出力バッファ２２０は、暗号化された情報をシステム・バスに転送し、記憶装置または大容量記憶装置に保存するか、または情報トランシーバ装置を介して遠隔システムに送信する。
コンテキスト配布されたデータ（context distributed data）の少なくとも一部分を暗号化し、このデータを解読し、処理し、後に暗号化して、暗号装置内に保存するだけでコピープロテクトを行うことができると考えられる。
次に第４図に参照して、暗号装置に入力されたデータの再暗号化動作を示す流れ図を示す。段階３００で、第１のフォーマットで暗号化されたデータが、暗号装置に入力される。次に、タイミングの問題に対処するために任意の段階３０５で、暗号化されたデータをバッファリングする。次に段階３１０で、暗号化されたデータを、所定の暗号アルゴリズムおよび通信キーを使用して解読する。この動作は、選択した実施形態に応じて、ハードウェアで実行してもよいし、ファームウェア、またはソフトウェアで実行してもよい。データ解読後、プレーン・テキストを、必要に応じてランダム・アクセス・メモリ（装置１４０にある）に記憶させる（段階３１５）。その後段階３２０で、暗号装置に入力されたフォーマットとは異なる暗号化フォーマットが所望の場合には、所定の第２の暗号アルゴリズムおよび通信キーを使用してプレーン・テキストを暗号化し、入力で受信したフォーマットと同じ暗号化フォーマットを含む暗号化を所望の場合には、所定の第１のアルゴリズムおよび通信キーを使用して暗号化する。次に任意の段階３２５で、段階３０５と同様にタイミングの問題に対処するために、暗号化されたデータをバッファリングする。その後、再暗号化されたデータを暗号装置から出力し、大容量記憶装置に保存するか、または情報トランシーバ装置３３０を介して送信する。
本明細書に記載した発明は、多くの異なる方法で、多くの異なる構成を使用して設計することができる。本発明を、さまざまな実施形態について説明してきたが、当業者なら、本発明の趣旨および範囲から逸脱することなくその他の実施形態を想起することができよう。したがって本発明は、以下の請求の範囲に関して判断されなければならない。
【図１】
0004703791.tif 000002
【図２Ａ】
0004703791.tif 000003
【図２Ｂ】
0004703791.tif 000004
【図２Ｃ】
0004703791.tif 000005
【図２Ｄ】
0004703791.tif 000006
【図３】
0004703791.tif 000007
【図４】
0004703791.tif 000008