(57)【特許請求の範囲】
【請求項１】
情報に対して所定の処理を施す制御装置と、
前記制御装置と当該情報処理装置を構成する他の装置を接続する外部バスを有する情報処理装置において、
前記制御装置は、１つの半導体チップで構成され、
前記制御装置は、外部バス制御部と、プロセッサと、鍵生成器と、鍵保管手段と、メモリとを有し、
前記制御装置は、前記鍵生成器で生成された鍵を用いて情報を暗号化して、前記外部バス制御部を介して当該制御装置の外部へ出力し、
前記メモリは、前記制御装置内で前記情報を暗号化するのに用いられ、
前記外部バス制御部は、前記制御装置内の制御バスと外部制御バスとの間、前記制御装置内のアドレスバスと外部アドレスバスとの間、前記制御装置内のデータバスと外部データバスとの間に接続され、
前記外部バス制御部は、前記プロセッサがアクセスするアドレスを監視し、前記プロセッサがアクセスするアドレスが前記メモリのアドレスであることを検知した場合に、外部バス制御信号を駆動させず、前記外部データバスを駆動しないように制御し又はデータ値を固定し、さらにアドレス値を固定し、
前記外部バス制御部は、前記外部アドレスバスを監視し、前記外部アドレスバスからのアクセスのアドレスが前記メモリのアドレスであることを検知した場合に、前記データバスを駆動しないように制御し又はデータ値を固定し、さらにアドレス値を固定することを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記生成器は、前記情報を暗号化する度に乱数を用いて前記鍵を生成し、
前記鍵保管手段は、前記情報の暗号化の度に生成された前記鍵を格納することを特徴とする情報処理装置。
【請求項３】
請求項１に記載の情報処理装置において、
前記生成器は、前記情報を暗号化する度に乱数を用いて前記鍵を生成し、
前記制御装置は、前記制御装置内で生成されて前記鍵保管手段に格納された前記鍵を用いて前記情報の暗号化の度に生成された前記鍵を暗号化し、暗号化された前記鍵を、暗号化された前記情報と共に当該前記制御装置の外部へ出力することを特徴とする情報処理装置。
【請求項４】
請求項１に記載の情報処理装置において、
前記制御装置で暗号化された情報を格納する記憶装置を有することを特徴とする情報処理装置。
【請求項５】
請求項４に記載の情報処理装置において、
前記制御装置は、前記記憶装置内の前記暗号化された情報を前記メモリへ読み込み、前記暗号化された情報を復号化することを特徴とする手段を有することを特徴とする情報処
理装置。
【請求項６】
請求項１に記載の情報処理装置において、
ネットワークを介して他の情報処理装置と接続され、
前記制御装置は、前記他の情報処理装置から前記他の情報処理装置の秘密鍵に対応する公開鍵を受信し、前記公開鍵を用いて前記鍵を暗号化し、
前記情報処理装置は、前記鍵を用いて暗号化された前記情報を前記他の情報処理装置へ送信する場合に、前記公開鍵を用いて暗号化された前記鍵を前記他の情報処理装置へ送信し、
前記公開鍵を用いて暗号化された前記鍵は、前記公開鍵に対応する前記秘密鍵を用いてのみ復号化可能であることを特徴とする情報処理装置。
【請求項７】
請求項１に記載の情報処理装置において、
前記制御装置を複数個有し、夫々の制御装置にて暗号化を行うことを特徴とする情報処理装置。
【請求項８】
請求項１に記載の情報処理装置において、
前記制御装置は、暗号化されたプログラムを外部記憶装置から受信し、前記メモリへ転送して展開し、前記メモリ上で前記暗号化されたプログラムを復号化し、復号化されたプログラムに従って、暗号化される以前の前記情報を生成することを特徴とする情報処理装置。
【請求項９】
請求項１に記載の情報処理装置において、
前記制御装置は、
前記情報の暗号化処理のアルゴリズムが格納された暗号処理アルゴリズム格納装置と、
前記暗号処理アルゴリズム格納装置内の前記アルゴリズムに従って暗号化処理を実行する暗号化装置とを有することを特徴とする情報処理装置。
【請求項１０】
情報を処理する制御装置を有し、暗号化された暗号化情報を格納する磁気ディスクを制御するディスクシステムコントローラにおいて、
前記制御装置は、１つの半導体チップで構成され、
前記制御装置は、外部バス制御部と、プロセッサと、鍵生成器と、鍵保管手段と、メモリとを有し、前記暗号化情報の読み出し要求を受け取った場合、前記鍵を生成し、前記磁気ディスクに格納された情報の配置を示す暗号化されている暗号化ファイル配置情報を、前記磁気ディスクから読み出し、読み出した暗号化ファイル配置情報を前記鍵を用いて復号化し、復号化されたファイル配置情報に基づいて、前記暗号化情報を前記磁気ディスクから読み出し、
前記メモリは、前記制御装置内で前記暗号化ファイル配置情報を復号化するのに用いられ、
前記外部バス制御部は、前記制御装置内の制御バスと前記制御装置外の外部制御バスとの間、前記制御装置内のアドレスバスと前記制御装置外の外部アドレスバスとの間、前記制御装置内のデータバスと前記制御装置外の外部データバスとの間に接続され、
前記外部バス制御部は、前記プロセッサがアクセスするアドレスを監視し、前記プロセッサがアクセスするアドレスが前記メモリのアドレスであることを検知した場合に、外部バス制御信号を駆動させず、前記外部データバスを駆動しないように制御し又はデータ値を固定し、さらにアドレス値を固定し、
前記外部バス制御部は、前記外部アドレスバスを監視し、前記外部アドレスバスからのアクセスのアドレスが前記メモリのアドレスであることを検知した場合に、前記データバスを駆動しないように制御し又はデータ値を固定し、さらにアドレス値を固定することを特徴とするディスクシステムコントローラ。
【請求項１１】
請求項１０に記載ディスクシステムコントローラにおいて、
当該ディスクコントローラは、複数の磁気ディスクに接続されていることを特徴とするディスクシステムコントローラ。
【請求項１２】
請求項１０に記載ディスクシステムコントローラにおいて、
情報処理装置に接続されており、前記情報処理装置からの要求により、前記暗号化情報を読み出すことを特徴とするディスクコシステムントローラ。
【発明の詳細な説明】
技術分野
本発明は、情報の保管、転送時の秘密性を保つために暗号を使用する情報処理装置に関する。その中でも特に、秘密性保持の高い情報処理を構築することに関する。
背景技術
暗号を使用する情報処理装置の従来技術としては、以下のものがある。
ハードディスクドライブのような外部記憶装置に、情報を暗号化して記憶するものとして、特開平１０−２７５１１５号公報がある。特開平１０−２７５１１５号公報では、外部記憶装置１２に一旦書き込まれた暗号化データＹａ，Ｙｂを情報端末装置１１へ転送する過程で、暗号化・復号鍵蓄積部３５に蓄積された復号鍵Ｋｂを用いながら当該暗号化データＹａ，Ｙｂに逐次的に復号処理を施すものである。
また、情報処理装置内に専用の暗号処理装置を設けたものとして、特開平１０−２１４２３３号公報がある。特開平１０−２１４２３３号公報では、携帯型ＰＣの中にデータを暗号化して暗号化ファイルのボディ部を生成する暗号化装置を備えている。
ここで、暗号化や復号化といった暗号処理は、一般に主記憶上のデータを対象に処理するため、主記憶上に秘密にすべきデータが存在する。情報を暗号化するためには、暗号アルゴリズムに従い情報を処理しなければならないが、暗号アルゴリズムと暗号に用いる鍵情報と暗号をかける秘密情報全てを、安全に処理する必要が生じる。
しかし、これらの従来技術では以下の問題が存在する。
従来技術においては、秘密情報や暗号処理の途中経過が主記憶上に存在するため、幾つかの手法で情報を取り出す事が可能になる問題がある。この問題は、ＣＰＵや主記憶などが、複数の半導体で構成されている情報処理装置において、ＣＰＵを用いて暗号処理を行うと暗号アルゴリズムや暗号をかける秘密情報や暗号処理の途中経過が主記憶上に存在するためである。
また、情報処理装置内には、情報処理装置を構成する各半導体部品を接続する信号線（例えばバス）が存在するため、この信号線を観察し、情報を解析する事により、暗号化する前のデータや復号化したデータを簡単に取り出せるという問題がある。
また、装置外部の信号線に対して暗号化したデータを送出するものとして、特開平２−２９７６２６があるが、暗号化するのに必要な鍵情報は外部から与えられており、この鍵情報の機密管理を確実に行わないと、データの暗号化が意味を成さなくなる問題がある。
発明の開示
従来技術の問題を解決するために、本発明では、以下の構成とした。
情報処理装置を構成する半導体内部で暗号化処理を施す。また、暗号化処理に必要な鍵情報も半導体内部で生成する。また、情報処理装置内の信号線上に暗号に関する情報を出力しない。情報処理装置の信号線上には、他者に観察されてもかまわない情報が出力される。この情報としては、暗号化された情報や暗号化する必要のない情報などである。なお、暗号に関する情報としては、暗号化されていない情報や暗号化された情報を復号するための情報を含む。
より具体的には、本発明の構成は、情報処理装置での処理を実行する処理装置（ＣＰＵ）と同一半導体チップに、ＲＡＭと暗号処理アルゴリズムと暗号処理ハードウェアと、鍵情報生成ハードウェアと、鍵情報格納ハードウェアを集積したものである。なお、本発明では便宜上ＣＰＵと読んでいるが、名称はこれに限られず、情報処理装置を構成する半導体チップであればよい。その中でも特に、情報処理装置の制御や演算処理を行う処理装置がよい。つまり、本発明は、情報処理装置を構成する１半導体チップ内で鍵情報の生成を含め暗号化処理が閉じているものである。さらに、本発明では、ＣＰＵが複数個あり、それぞれにおいて、暗号化処理が行う構成としてもよい。
また、この暗号処理が内蔵するＲＡＭ内で処理されてもよい。
また、ＣＰＵに内蔵されるＲＡＭを主記憶として用い、アプリケーションプログラムの実行も内蔵するＲＡＭ内で処理されるものでもよい。
また、アプリケーションプログラム自体も暗号化され、外部記憶装置には、暗号化ファイルが存在する構成にしたものでもある。
また、外部バスへのデータ出力を制御する外部バス制御部を設けてもよい。この外部バス制御部では、内部ＲＡＭがアクセスされているときのデータを外部バスへ出力しないよう制御してもよい。さらに、このデータ外部バスに出力してもよい情報か否かを判断して、出力してもよい場合にデータを外部バスに出力するように制御してもよい。
また、通信データの暗号化／復号化をＣＰＵ内部で処理するものである。
さらに、これらのいずれかの構成によって、情報に応じて暗号化するか否かを決定してもよい。情報が、暗号化しなくともよい情報であれば暗号化せずに情報処理装置の信号線上に出力する構成としてもよい。
さらに、本発明は、ディスクシステムコントローラ内のプロセッサ内部で暗号処理を可能にすることで、磁気ディスク上のファイル配置情報を暗号化したものも含まれる。
発明を実施するための最良の形態
以下、図面を用いて本発明の実施例を説明する。
まず、本発明の第一の実施例を第１図および第２図を用いて説明する。第１図は、少なくとも、ＣＰＵ（１０２）、主記憶装置（１０３）、外部記憶装置（１０４）を備える情報処理装置（１０１）の構成を模式的に表した図である。ＣＰＵ（１０２）、主記憶装置制御部（１１７）、外部記憶装置制御部（１１５）は、理論上のシステムバス（１１４）で接続され、各々に主記憶装置（１０３）、外部記憶装置（１０４）が接続される。実際の信号線の接続は、第７図のようになるが、データの流れを理論的に考えると、模式的に第１図のように表す事が出来る。
ＣＰＵ（１０２）は、マイクロプロセッサ（１０５）と、暗号処理アルゴリズムＲＯＭ（１０６）と、暗号処理ハードウェア（１０７）と、ＲＡＭ（１０８）と、鍵保管領域（１１２）と、外部バス制御部（１０９）からなる。さらに、これらを同一半導体チップ上に集積する。
ＣＰＵ（１０２）内部では、マイクロプロセッサバス（１１０）に、暗号処理アルゴリズムＲＯＭ（１０６）と、暗号処理ハードウェア（１０７）と、ＲＡＭ（１０８）と、外部バス制御部（１０９）が接続される。本実施例においては、ＣＰＵ内部でデータに対する暗号化処理が行われる。
ファイル（１１１）を暗号化するには、暗号処理アルゴリズムＲＯＭ（１０６）に従い、必要であれば暗号処理ハードウェア（１０７）を用いて暗号化する。この時の暗号化に用いる鍵データは、ＣＰＵ（１０２）内で生成しても良いし、あらかじめ与えられるデータを用いても良い。但し、この鍵データはＣＰＵ（１０２）内の鍵保管領域（１１２）、保持されていなければならない。暗号化処理おいて、途中経過のデータが生成される場合は、その途中経過のデータもＲＡＭ（１０８）内に格納する。このようにして、ファイル（１１１）から暗号化ファイル（１１３）を生成する。
暗号化ファイル（１１３）は、システムバス（１１４）を通して外部記憶装置制御部（１１５）を経由して外部記憶装置（１０４）に格納する。
外部記憶装置（１０４）に格納されている暗号化ファイル（１１６）を復号化する場合は、逆の順序で処理を行う。
まず、外部記憶装置（１０４）から暗号化ファイル（１１６）を外部記憶装置制御部（１１５）を経由してＲＡＭ（１０８）に読み込む。次に、暗号処理アルゴリズムＲＯＭ（１０６）に従い、必要であれば暗号処理ハードウェア（１０７）を用いて復号化する。
大量のデータを高速に暗号化／復号化するためには、暗号鍵と復号鍵が共通である共通鍵暗号系を用いる。共通鍵暗号系では、暗号と復号は処理の順序が逆になっているだけで、最小単位の処理自体は暗号化も復号化も同じである。暗号処理アルゴリズムＲＯＭ（１０６）には、復号化処理の手順も格納しておく。また、暗号処理ハードウェア（１０７）は復号化でも使用する事が可能である。
第２図は、第１図のファイル（１１１）を生成するまでの過程を示したものである。
アプリケーションプログラム（２０１）は、稼動時以外は外部記憶装置内に格納されている。このアプリケーションプログラムに起動がかかると主記憶に展開され動作可能な状態になる。動作可能になったアプリケーションプログラム（２０２）は、オペレーティングシステム等にの情報処理装置管理プログラムに対して、作業領域の割り当てを要求する。このとき、オペレーティングシステム等にの情報処理装置管理プログラムは、作業領域（２０３）としてＲＡＭ（１０８）内の空間を割り当てる。
この状態で、アプリケーションプログラム（２０２）は、マイクロプロセッサ（１０５）で処理され、生成された情報は作業領域（２０３）に格納される。この生成された情報の中から外部記憶装置に格納すべきデータをファイル（１１１）として生成する。
アプリケーションプログラム（２０２）自体は主記憶上に存在し、そのアプリケーションプログラムの作業領域（２０３）をＲＡＭ（１０８）上に取るためには、オペレーティングシステム等の情報処理装置管理プログラムが管理するマイクロプロセッサが持つメモリ管理機能を用い、アプリケーションプログラムの作業領域を示す論理アドレスをＲＡＭ（１０８）内の物理アドレスに変換する事で可能になる。
鍵保持部（１１２）は、ＲＡＭ（１０８）の領域内に設けられていても良いが、不揮発性でなけれならない。ＥＥＰＲＯＭやＦｌａｓｈＲＯＭのような不揮発性のＲＯＭで構成しても良いし、バッテリバックアップされたＳＲＡＭで構成しても良い。バッテリバックアップされたＳＲＡＭで構成した場合、暗号に使用した鍵を取り出そうと、情報処理装置に攻撃が加えられた場合にそれを検知し、バックアップ電源を切断する事で、鍵情報を消失させ秘密情報を守ることも可能になる。
このように、情報の生成、暗号処理を同一半導体チップ内で行う事により、半導体チップの端子等の信号を観察するような解析方法でも、暗号のかからない秘密情報を入手する事は困難になる。
次に、本発明の第二の実施例を第３図を用いて説明する。
第３図は、ＣＰＵ（１０１）内のＲＡＭ（１０８）を、情報処理装置（１０１）の主記憶として構成したものである。
この場合、外部記憶装置に格納されているアプリケーションプログラム（３０１）は、起動時にＲＡＭ（１０８）に展開され動作可能になる。動作可能になったアプリケーションプログラム（３０２）は、オペレーティングシステム等の情報処理装置管理プログラムに対して、作業領域の割り当てを要求する。このとき、オペレーティングシステム等にの情報処理装置管理プログラムは、作業領域（３０３）としてＲＡＭ（１０８）内の空間を割り当てる。この状態で、アプリケーションプログラム（３０２）は、マイクロプロセッサ（１０５）で処理され、生成された情報は作業領域（３０３）に格納される。この生成された情報の中から外部記憶装置に格納すべきデータをファイル（１１１）として生成する。
生成されたファイル（１１１）は、暗号処理アルゴリズムＲＯＭ（１０６）に従い、必要であれば暗号処理ハードウェア（１０７）を用いて暗号化される。暗号化されたファイル（１１３）は、外部記憶装置に暗号化ファイル（１１６）として格納される。
第３図では、ＣＰＵ外部の主記憶装置を図示していないが、秘密情報を生成するアプリケーションプログラムとそれ以外のアプリケーションプログラムを区別し、秘密情報を生成するアプリケーションプログラムの実行は、ＲＡＭ（１０８）で行い、それ以外のアプリケーションプログラムは、従来通りＣＰＵ外部の主記憶装置で処理する構成を取っても良い。
このように、ＲＡＭ（１０８）を主記憶にする事により、ＣＰＵ（１０２）外部にはアプリケーションプログラム（３０１）をＲＡＭ（１０８）に展開する時のデータ転送しか発生せず、アプリケーションプログラム自体の処理も安全に行える。
本発明の第三の実施例を第４図を用いて説明する。
本実施例では、暗号化されたアプリケーションプログラム（４０１）を外部記憶装置（１０４）に格納している。このアプリケーションプログラムは、情報処理装置のＣＰＵ内で復号化される。このため、バス（１１４）上には、復号化されたアプリケーションプログラムは出力されず、復号化されたアプリケーションプログラムはＣＰＵ内部で閉じている。このため、他者がこのアプリケーションプログラムを観察することを防止できる。
以下、第三の実施例の詳細を説明する。外部記憶装置内の暗号化アプリケーションプログラム（４０１）は、起動時にバス（１１４）を通して情報処理装置内のＲＡＭ（１０８）に転送される。転送された暗号化アプリケーションプログラム（４０２）は、ＲＡＭ（１０８）に展開される。展開された暗号化アプリケーションプログラム（４０２）は、ＲＡＭ（１０８）内で復号化され、アプリケーションプログラム（４０３）になる。この状態でアプリケーションプログラム（４０３）が動作し、ＲＡＭ（１０８）内の作業領域（４０４）を用いながら情報を生成する。生成された情報は必要な部分が選択され、ファイル（１１１）としてまとめられる。ファイル（１１１）を暗号化し、暗号ファイル（１１３）を生成する。暗号ファイル（１１３）を暗号ファイル（１１６）として外部記憶装置（１０４）に格納する。
このように、アプリケーションプログラム自体も暗号化ファイルの一つとして外部記憶装置に格納する事により、さらに安全性を高める事も出来る。
なお、この暗号化アプリケーションプログラム（４０１）を生成するためには、アプリケーションプログラム自体をファイル（１１１）として、暗号化を行うものである。
次に、第５図および第６図を用いて、本発明の外部バス制御部の説明をする。
第一から第三の各実施例に用いられる外部バス制御部（１０９）は、ＣＰＵ内部と外部とのデータの入出力を制御するものである。例えば、マイクロプロセッサ（１０５）が行う、暗号処理のために暗号処理アルゴリズムＲＯＭ（１０６）又は、暗号処理ハードウェア（１０７）又は、ＲＡＭ（１０８）へのアクセスをＣＰＵ（１０２）外部に出ないように制御する。但し、マイクロプロセッサ（１０５）のアクセスがＣＰＵ外部に出力されても構わないものであれば、外部に出力されるよう制御してもよい。この場合、ＣＰＵ外部に出力されても構わないデータとしては、暗号処理を行わず他の情報処理装置に転送するデータなどがある。
外部バス制御部（５０１）は、マイクロプロセッサ（５０２）の制御バス（５０３）、アドレスバス（５０４）、データバス（５０５）と、ＣＰＵの外部へ出る外部制御バス（５０６）、外部アドレスバス（５０７）、外部データバス（５０８）の間にあり、外部制御バス生成部（５０９）と、アドレス比較部（５１０）と、アドレス方向制御部（５１２）と、データ方向制御部（５１３）と、マスク信号生成部（５１１）と、信号マスク部（５１４）（５１９）から構成される。
制御バス（５０３）と外部制御バス（５０６）は、マイクロプロセッサからのバスサイクル開始信号、バス方向指示信号、バスサイクル終了信号、バス調停信号等が通される。これらの信号によりバスサイクルが制御される。
外部制御バス生成部（５０９）は、マイクロプロセッサからのバスサイクル開始信号、バス方向指示信号、バスサイクル終了信分、バス調停信号等を監視する。外部制御バス生成部（５０９）は、マイクロプロセッサがバスアクセス権を所有しているか否かを判断し、その情報をアドレス方向制御部（５１２）に伝える。また、同じ情報をアドレス比較器（５１０）にも伝える。アドレス比較器（５１０）は、ＣＰＵ（１０２）内部の暗号処理アルゴリズムＲＯＭ（１０６）、暗号処理ハードウェア（１０７）、ＲＡＭ（１０８）が割り当てられているアドレスを把握しており、アドレスバス（５０４）又は、外部アドレスバス（５０７）から入力されるアドレスと比較する。
外部制御バス生成部（５０９）が制御バス（５０３）からマイクロプロセッサがバスアクセス権を所有していると判断すると、アドレス比較器（５１０）はマイクロプロセッサからのアドレスを監視し、ＲＡＭ（１０８）のアドレスへのアクセスと検出すると、外部制御バス生成部（５０９）に伝え、外部バス制御信号を駆動させない。また、マスク信号生成部（５１１）にも伝え、信号マスク部（５１４）（５１９）にマスク信号を出力し、外部アドレスバス（５０７）、外部データバス（５０８）を駆動しないように制御する。もしくは、強制的にアドレスの値やデータの値を固定してしまう。
外部制御バス生成部（５０９）が制御バス（５０３）からマイクロプロセッサがバスアクセス権を所有していないと判断すると、アドレス比較器（５１０）は外部アドレスバスを監視し、ＲＡＭ（１０８）のアドレスへのアクセスと検出すると、外部制御バス生成部（５０９）に伝える。外部制御バス生成部（５０９）は、制御バス（５０３）へこのバスサイクルを伝達しない。もしくは、信号マスク部（５１４）（５１９）にマスク信号を出力し、アドレスバス（５０４）、データバス（５０５）を駆動しないように制御する。または、強制的にアドレスの値やデータの値を固定してしまう。
アドレスの値やデータの値を固定する方法として、第６図のように、信号マスク部（６０１）のゲート（６０２）と信号マスク部（６０３）のゲート（６０４）のように、ゲートの論理を変える事により実現できる。
このように、アドレス信号マスク回路で、ＲＡＭ（１０８）領域以外の読み書きされても問題ない領域にアドレスを変換する事も可能である。
これにより、ＣＰＵ（１０２）内部の処理をＣＰＵ（１０２）のバスであるシステムバス（１１４）を観察する事で推測する事が不可能になる。よって、ＣＰＵ（１０２）内部で行う暗号処理の安全性が高まる。
次に第７図から第１３図を用いて、鍵情報の取り扱いについて説明する。
暗号化、複合化には鍵情報が必要であり、この鍵情報の秘匿化がシステム全体の安全性を高める。従来は、鍵情報を外部から与え、その鍵を人間が厳重に管理することで、システムの安全性を高めてきた。
本発明では、半導体内部で暗号化に必要な鍵情報を生成し、その情報は、半導体内部にのみ保持し、半導体外部に出力する場合は特定の相手にのみ分かる手段で出力することを特徴とする。鍵情報は乱数を用いて生成する。論理的に乱数を生成する場合、一般に疑似乱数として生成する。これは、ある種情報から複数の演算をくり返すことにより、離散した数値列を求めるものである。ところが、この疑似乱数は、種情報が同じであれば、同じ順序で離散した数列を生成してしまうため、種情報を入手すれば、同じ乱数を生成でき、再生可能乱数にななってしまう。よって、種情報を厳重に管理する必要性が生じる。そこで本発明では、種情報を必要としない乱数生成器（１１３）を設ける。
第７図は物理現象を用いて乱数を生成する乱数生成器（１１３）の構成例を示している。第７図では、乱数生成器（１１３）は、定電圧ダイオードやツェナーダイオードのノイズを元に乱数を生成する。第７図は、定電圧ダイオード（７０１）、抵抗（７０２）とコンデンサ（７０３）で構成されるローパスフィルタ（７０４）、コンパレータ（７０５）、フリップフロップ（７０６）で構成される。
定電圧ダイオード（７０１）は、信号波形（７０７）のようにノイズを発生する。このノイズは、定電圧ダイオード（７０１）の内部の半導体接合部分で生じる雪崩降伏がランダムに起きることに起因する物理現象である。このノイズをローパスフィルタ（７０４）を通すと信号波形（７０８）のように信号波形（７０７）の平均値に近い値をとる。この２つの信号をコンパレータ（７０５）に入力することにより、信号波形（７０９）のような、ランダムなパルス幅をもつ２値信号に変換することが出来る。この信号をさらにフリップフロップ（７０６）で半導体素子内の基準クロックに同期化させ、ランダムビット信号波形（７１０）を得る。
このランダムなビット列を必要なビットだけ、シフトレジスタに入力するなり、単位時間のパルスの数を計測するなりして乱数を得る。
これにより、乱数生成に種がいらず、再生不可能な乱数を得ることが出来る。また、ローパスフィルタ（７０４）により、ノイズを含む信号（７０７）の平均値（７０８）を求め、その平均値とノイズを含む信号を比較することにより、定電圧ダイオードの電圧に温度等による電圧変動等が生じても、乱数生成に影響が及ばない乱数生成器を構成することが出来る。
第７図では、定電圧ダイオードをノイズ源として用いているが、物理現象に基づくノイズを発生する物であれば、これに限る物ではない。
第８図は、生成した鍵情報など秘密にしておく情報を格納する鍵保管領域の構成例を示している。第８図は、鍵保管領域（１１２）を、バッテリバックアップされたＳＲＡＭで構成した例を示したものである。
本発明のＣＰＵ（１０２）を、ＳＲＡＭ（８０４）とＳＲＡＭ制御回路（８０９）、その他のＣＰＵ内部倫理ブロック（８０２）に分け、ＳＲＡＭ（８０４）とＳＲＡＭ制御回路（８０９）専用の電源（８０５）と、内部倫理ブロック（８０２）用の主電源（８０３）をそれぞれ設ける。主電源（８０３）と鍵保管領域（１１２）用電源（８０５）は、タイオード（８０６）（８０７）を介してＳＲＡＭ（８０４）の電源（８０８）として供給される。また、同じ電源（８０８）はＳＲＡＭ制御回路（８０９）の電源としても使用する。ゲート（８１０）は、内部論理ブロックで使用されている初期化信号（８１１）と主電源（８０３）とを監視し、主電源（８０３）へ電力が供給されておりなおかつ内部倫理ブロックの初期化が終了するまで、ＳＲＡＭ（８０４）への信号を全て無効になるように固定する。これにより、鍵保管領域（１１２）にのみ電力を供給し、他の部分への電力供給を停止した状態でも、余分な漏れ電流等を無くすことができ、さらに電力供給を停止した部分に、ノイズ等が印加されたり、動作保証以下の電圧で誤動作したとしても、その影響を遮断することができる。ゲート（８１０）が″Ｌ″を出力すると、ゲート（８１２）は″Ｌ″を出力し、アドレス信号線（８１３）の電圧が何であっても変化しない。また、ゲート（８１５）も″Ｌ″を出力しバッファ（８１６）の出力インピーダンスを高くするため、データ信号線（８１４）へ漏れ電流を流すことがなくなる。また、ゲート（８２０）も″Ｌ″を出力するため、バッファ（８２１）の出力インピーダンスを高くするため、データ信線（８２３）の電圧が何であっても、データ信号線（８１９）へ伝えることがない。また、ゲート（８２４）は″Ｈ″を出力し制御信号（８２６）を無効化して、ＳＲＡＭの動作を止める。さらに、ゲート（８１０）（８１２）（８１５）（８２０）（８２４）、バッファ（８２１）をＣＭＯＳ構造の素子で構成にすることにより、入力信号（８１４）（８１７）（８２３）（８２２）（８２５）に流れる漏れ電流を微小に押さえることができるため、内部論理ブロック（８０２）への電力供給が停止しても、鍵保管用電源（８０５）の電力が漏れ出ることはない。これにより、鍵保管用電源（８０５）から消費する電力を必要最小限に抑えることができ、バックアップバッテリ（８２８）の寿命を長くすることができる。
主電源（８０３）から電力が供給され、内部論理ブロック（８０２）の初期化が終了すると、ゲート（８１０）は″Ｈ″を出力する。すると、ゲート（８１２）は、アドレス信号線（８１３）のデータをアドレス信号線（８１４）に伝える。ゲート（８１５）は、ＳＲＡＭ読み出し信号（８１７）が有効なときにバッファ（８１６）を有効にしデータ信号線（８１９）のデータをデータ信号線（８１８）に伝える。ゲート（８２０）は、ＳＲＡＭ書き込み信号（８２２）が有効なときにバッファ（８２１）を有効にしデータ信号線（８２３）のデータをデータ信号線（８１９）に伝える。ゲート（８２４）は、制御信号線（８２５）のデータを制御信号線（８２６）へ伝える。これにより、正常にＳＲＡＭ（８０４）をアクセス可能になる。
また、ＣＰＵ（１０２）を収納する匡体等のケースに各種感知器を設け、それらからの信号を元に、バッテリ（８２８）から供給される鍵保管用電源（８０５）を制御する異常検出器（８２７）を設ける。匡体等のケースの分解、解体等の異常を検出したときに、ＳＲＡＭ（８０４）への電力供給を停止し、鍵情報を消失させてしまうものである。さらには、主電源（８０３）から電力が供給されている場合には、異常検出器（８２７）が作動して、鍵保管用電源（８０５）からの電力供給を絶っても、主電源（８０３）からＳＲＡＭ（８０４）へ電力が供給されてしまうため、異常検出信号（８２９）を内部論理ブロック（８０２）に入力し、異常を伝え、動作を制限または停止させる。
ＣＰＵ（１０２）内で、ＳＲＡＭ（８０４）への電源を統合してもよいが、主電源とバッテリからの電力を、異常検出器（８２７）内で統合し、いかなる場合でも異常を検出したら、ＳＲＡＭ（８０４）へ電力が供給を絶つ構成にしてもよい。
異常検出器（８２７）とＣＰＵ（１０２）を接続する信号線および電源線は極力短くかつ基板の内部を通す等、簡単には探針不可能なように実装する必要がある。さらに、配線箇所の異なる、複数の信号線で接続する等、防御手段を講じる必要がある。これにより、装置を分解されても秘密鍵が半導体素子外部に漏れることがなくなる。
本発明で生成する鍵は、半導体自体を識別する為に必要な鍵と、情報を暗号化するのに用いる鍵の２種類あり、それぞれ使用目的が異なる。前者を認証用の鍵、後者を情報暗号化の為の鍵とする。頻繁に鍵を生成する必要がある鍵は、情報暗号化の為の鍵であり、基本的には情報暗号化の度に生成する。認証用の鍵は、月単位や年単位といった定められた期間毎に生成し、半導体自体を識別する情報として用いる。
第９図は、暗号化した装置と復号化する装置が同一である場合の、暗号化鍵と復号化鍵の取り扱いを示したものである。
半導体であるＣＰＵ（１０２）内部で生成した情報（９０１）を暗号化し、外部記憶装置（１０４）等に暗号化ファイル（１１６）として格納し、再びＣＰＵ（１０２）内部で使用するために復号化する場合、鍵情報（９０２）はＣＰＵ（１０２）内部にのみ存在すれば良い。暗号化ファイル（１１３）（１１６）をこのＣＰＵ（１０２）でのみ扱えるようにするためには、鍵情報（９０２）をＣＰＵ（１０２）内部の乱数生成器（１１３）で生成し、鍵保管領域（１１２）にのみ保管しておく。
また、複数の情報（９０３）、（９０５）に対して暗号化する場合に、それぞれ異なる暗号鍵（９０４）、（９０６）を用いる場合は、それぞれの鍵情報（９０４）、（９０６）を鍵保管領域（１１２）に保管する必要がある。
図では、メモリ（１０８）内で暗号化処理と復号化処理を行う構成を図示しているが、ＣＰＵ（１０２）内の処理であれば、暗号アルゴリズム（１０６）を用いた方法でも、暗号処理ハードウェア（１０７）を用いた方法でも良い。
また、第１０図に示したように、鍵保管領域（１１２）内には、予め乱数生成器（１１３）で生成した鍵（１００１）のみを保管し、情報（１００２）（１００３）を暗号化する度に、それぞれの情報に対応して生成した鍵（１００４）（１００５）を鍵（１００１）で暗号化し、暗号化鍵（１００６）（１００７）を作る。情報（１００２）（１００３）は、それぞれ鍵（１００４）（１００５）を用いて暗号化し、暗号化ファイル（１００８）（１００９）を生成する。このようにして、生成した暗号化ファイル（１００８）と暗号化鍵（１００６）とをまとめてファイル（１０１０）として外部記憶装置格納し、生成した暗号化ファイル（１００９）と暗号化鍵（１００７）とまとめてファイル（１０１１）として外部記憶装置格納することで、鍵保管領域（１１２）に格納する鍵情報を削減しても良い。
第１１図は、情報を暗号化する装置と暗号化された情報を復号化する装置が異なる場合の鍵の取り使いを示したものである。この場合、相手が正しいか否か確認する事が必要になる。これを、相手を認証すると呼ぶ。
相手を認証する手段としては、非対象鍵暗号を用いて行う。非対象鍵とは、情報を暗号化し暗号文にする鍵と暗号文を復号化し情報に戻す鍵が異なる暗号をさす。非対称鍵暗号は公開鍵暗号とも呼ばれ、暗号化鍵と復号化鍵の２つの鍵のうち片方を公開し、もう一方は秘密にして用いる。暗号化鍵で暗号化した情報は、対応する復号化鍵のみで復号化が可能である。つまり、二つの鍵のうち、公開する方を公開鍵、秘密にする方を秘密鍵とすると、公開鍵で暗号化した暗号文は、秘密鍵でのみ復号可能であり、秘密鍵で暗号化した暗号文は、公開鍵でのみ復号可能である性質を持つ。これを用いることにより。特定の相手にのみ解る手段で情報を送る事や、発信者を特定する事が可能になる。
特定の相手にのみ情報を送りたい場合は、相手の公開鍵を入手し、相手の公開鍵を用いて送りたい情報を暗号化する。このようにして出来た暗号文は、同じ公開鍵では復号化できず、相手が秘密にしている秘密鍵でのみ復号化が可能な暗号文となる。これにより、特定の相手にのみに情報を伝達する事が可能になる。一般には、非対称暗号（公開鍵暗号）は処理が複雑で、時間も必要とする事から実際の情報の暗号は、対称鍵暗号（共通鍵暗号）で暗号化し、この暗号化で使用する鍵を毎回乱数より生成し、この鍵情報を非対称鍵暗号（公開鍵暗号）を用いて、相手に秘密裏に送る方法をとる。
送信者を特定する方法は、情報を送る側が情報そのものまたは、情報に対応する情報（ダイジェスト等）を秘密鍵で暗号化した暗号化情報を相手に送る。相手は、送信側の公開鍵を入手し、送られてきた暗号化情報を送信側の公開鍵で復号化し、正当な内容と判断することで、送信側のみが所有する秘密鍵で暗号化されていたと判断し、送信側が正当であると判断出来る。
第１１図において、装置Ａ（１１０１ａ）および装置Ｂ（１１０１ｂ）では、予め各々の装置自身が装置識別情報として、公開鍵（１１０４ａ）（１１０４ｂ）と秘密鍵（１１０５ａ）（１１０５ｂ）を生成しておく。これらの鍵は、剰余演算を用いた公開鍵暗号では、二つの素数積を用いて生成される。素数は乱数生成（１１０２ａ）（１１０２ｂ）し、その乱数が素数であるか否かを判断し生成する（１１０３ａ）（１１０３ｂ）。ここで生成した鍵は、半導体自体を識別する為に必要な鍵である。
ここで、情報（１１１６）を装置Ａ（１１０１ａ）から装置Ｂ（１１０１ｂ）へ送る事を考える。
装置Ａ（１１０１ａ）から装置Ｂ（１１０１ｂ）にのみ解釈出来る手段で、情報（１１１６）を送るためには、情報（１１１６）を暗号化して送る事になるが、その時に使用する鍵は、その時のみ有効で、他の情報転送時には他の鍵を使用した方が、万が一鍵情報が漏洩しても被害を最小限にくい止める事ができる。その為には、毎回生成する情報（１１１６）を暗号化する共通鍵（１１１１）を、装置Ｂにのみ伝えなければならない。
これを実現するためには、まず装置Ａ（１１０１ａ）は、装置Ｂを（１１０１ｂ）へ公開鍵転送要求（１１０６）を出す。これをう受けて、装置Ｂを（１１０１ｂ）は装置Ｂ公開鍵（１１０４ｂ）を装置Ａ（１１０１ａ）へ転送する（１１０７）。装置Ａ（１１０１ａ）は、乱数を生成し（１１０９）、その乱数を元に共通鍵（１１１１）を生成する（１１１０）。生成した共通鍵（１１１１）を、装置Ｂ（１１０１ｂ）から受け取った、装置Ｂ公開鍵（１１０８）を公開鍵暗号化し（１１１２）、暗号化鍵情報（１１１３）を生成する。また、共通鍵（１１１１）で情報（１１１６）を共通鍵暗号化（１１１５）し、暗号化情報（１１１７）を生成する。この暗号化鍵情報（１１１３）と暗号化情報（１１１７）を送ることにより、装置Ｂにのみ解釈可能な状態で、情報（１１１６）を送る事ができる。装置Ｂ（１１０１ｂ）では、受け取った暗号化鍵情報（１１１９）を装置Ｂ秘密鍵（１１０５ｂ）で公開鍵復号化し（１１２０）、共通鍵（１１２１）を取り出し、この共通鍵（１１２１）で受け取った暗号化情報（１１２２）を共通鍵復号化し（１１２３）、情報（１１２４）を得る。
さらに、情報転送（１１１８）が装置Ａ（１１０１ａ）から送られた事を証明するためには、第１２図のように、情報（１１１６）のダイジェストをハッシュ関数（１２０１）を用いて、ハッシュ値（１１０２）として求め、このハッシュ値（１１０２）を、装置Ａ秘密鍵（１１０５ａ）で公開鍵暗号化し（１２０３）、暗号化ハッシュ値（１２０４）を生成する。装置Ａ公開鍵（１１０４ａ）を装置Ｂ（１１０１ｂ）へ転送し（１２０５）、暗号化ハッシュ値（１２０４）を装置Ａ（１１０１ａ）の署名として転送する（１２０６）。装置Ｂ（１１０１ｂ）では、受け取った装置Ａ公開鍵（１２０７）を用いて、暗号化ハッシュ値（１２０８）を公開鍵復号化し（１２０９）、装置Ａ（１１０１ａ）で生成したハッシュ値（１２１０）を得る。一方、受け取った情報（１１２４）から、ハッシュ関数（１２１１）を用いて、ハッシュ値（１２１２）を求める。この二つのハッシュ値（１２１０）（１２１２）を比較し（１２１３）、結果が同じであれば、情報（１１２４）の送り主を装置Ａ（１１０１ａ）と確認する事ができる。
第１２図では、情報（１１１６）のハッシュ値を求める方法を示したが、情報（１１１６）のデータの大きさが小さい場合、情報そのものを装置Ａ秘密鍵（１１０５ａ）で暗号化し、装置Ａ公開鍵（１１０４ａ）と共に転送しても良い。
相手の公開鍵を入手する方法は、図に示したように、相手から入手しても良いし、相手と利害関係のない第三者から入手仕手も良い。
ここで、相手から公開鍵を入手する場合に、入手した公開鍵が本当に正しいか、他人が相手に成り済ましていないかを確認する必要が生ずる。
第１３図は、第１１、１２図において相手から受け取った公開鍵が本当に正しいか否かを確認する手段を示したものである。第１３図は、各装置を認証する認証局として、装置Ｃ（１３０１）を設けた構成をとったものである。装置Ｃ（１３０１）は、システムに参加する各装置の公開鍵を認証する。そのために、装置Ｃ（１３０１）内部で乱数生成し（１３０２）、その乱数から素数を生成し（１３０３）、装置Ｃの公開鍵（１３０４）と秘密鍵（１３０５）を生成しておく。この装置Ｃの秘密鍵がシステム内で最も機密にしなければならない情報になる。
装置Ａ（１１０１ａ）、装置Ｂ（１１０１ｂ）で、装置識別用に生成した公開鍵（１１０４ａ）（１１０４ｂ）と秘密鍵（１１０５ａ）（１１０５ｂ）の内、それぞれの公開鍵を装置Ｃ（１３０１）に対して、認証依頼として転送する（１３１６ａ）（１３１６ｂ）。認証依頼を受けた装置Ｃ（１３０１）は、受け取った各装置の公開鍵（１３０６ａ）（１３０６ｂ）を、装置Ｃの秘密鍵（１３０５）で公開鍵暗号化し（１３０７ａ）（１３０７ｂ）、認証書（１３０８ａ）（１３０８ｂ）を生成する。この、認証書と装置Ｃの公開鍵（１３０４）を一緒にした認証結果（１３０９ａ）をそれぞれの装置へ転送する（１３１７ａ）（１３１７ｂ）。
各装置は、自分の公開鍵の認証書を記憶しておく。情報転送の為の公開鍵要求がきたら、自分の公開鍵（１１０５ｂ）を転送すると共に、認証書も転送し、自分装置Ｃによって、認証されている事を示す。受け取った認証書（１３１２）は、記憶してある装置Ｃの公開鍵を用いて、公開鍵復号化される（１３１３）。認証書（１３１２）内の装置Ｂの公開鍵（１３１４）を取り出し、装置Ｂ（１１０１ｂ）から転送された公開鍵（１１０８）と比較する（１３１５）ことにより、装置Ｂの公開鍵の正当性を検証する。
装置Ｃによる認証作業における装置とその公開鍵の対応は、電子的な確認だけでなく、装置に改良等第三者の手が加えられていないか等、細かい検査ののちに行われるものである。
このような、手順を踏むことにより相手から、公開鍵を入手しても正当性を確認する事が可能になる。
次に、本発明の第四の実施例を、第１４図を用いて説明する。
第１４図は、一般的な情報処理装置の構成を模式的に表した図である。情報処理装置（１４０１）は、複数の半導体部品から構成されいる。ＣＰＵ（１４０２）はプロセッサバス（１４０４）で、キャッシュメモリと主記憶制御部（１４０５）に接続される。主記憶制御部（１４０５）は、システムバス制御部を含み、メモリバス（１４１３）とシステムバス（１４０７）が接続される。メモリバス（１４１３）には、主記憶装置（１４０６）が接続され、システムバス（１４０７）には、外部記憶装置（１４０８）、表示系制御部（１４１０）、通信系制御部（１４１１）、その他Ｉ／Ｏ制御部（１４１２）が接続される。表示系制御部（１４１０）は、専用バスで主記憶装置制御部＆システムバス制御部（１４０５）に接続されていても良い。外部記憶装置制御部（１４０８）には、外部記憶装置（１４０９）が接続される。
主記憶装置（１４０６）のアドレス領域と、システムバス（１４０７）に接続される各部分のアドレス領域は異なっているため、アドレスでアクセスすべき領域を判断し、主記憶装置制御部＆システムバス制御部（１４０５）が切り替えている。
このような、情報処理装置（１４０１）では、情報処理装置を一つのシステムと捉えると、このシステム内の主となるプロセッサは、ＣＰＵ（１４０２）である。このＣＰＵ内部で暗号化処理を閉じさせる。例えば、ＣＰＵ（１４０２）を第１図のように、マイクロプロセッサ（１０５）と、暗号処理アルゴリズムＲＯＭ（１０６）と、暗号処理ハードウェア（１０７）と、ＲＡＭ（１０８）と、鍵保管領域（１１２）と、外部バス制御部（１０９）で構成し、さらに、同一半導体チップ上に集積する。また、本発明は、第１９図および第２０図に示すとおり、複数のＣＰＵを有する情報処理装置であってもよい。
本発明の第五の実施例を第１５図を用いて説明する。
第１５図は、情報処理装置が他の情報処理装置と接続され、通信可能である構成を示す図である。ここでは、第１図の外部記憶装置の代わりに、通信系制御部を設けた構成をとる。なお、通信系制御部は、情報処理装置の外に接続されていてもよい。
情報処理装置（１５０１）は、ＣＰＵ（１５０２）と、通信系制御部（１５０３）とを備え、システムバス（１５１４）で接続される。ＣＰＵ（１５０２）は、マイクロプロセッサ（１５０５）、暗号処理アルゴリズムＲＯＭ（１５０６）、暗号処理ハードウェア（１５０７）、ＲＡＭ（１５０８）、外部バス制御部（１５０９）、鍵保管領域（１５１２）から構成され、マイクロプロセッサバス（１５１０）で接続される。
第１５図では、情報処理装置は、ＣＰＵと通信系制御で構成されているが、他に主記憶や外部記憶装置等が備わっていても良い。通信系制御部（１５０３）を経由した通信回線（１５０４）の先に、外部記憶装置と同じ機能を持つ装置が接続されていても良いし、情報処理装置が接続されていても良い。
但し、通信回線（１５０４）の先に接続される装置が、記憶装置か情報処理装置かで、暗号の掛け方が異なる。
通信回線の先に接続される装置が、外部記憶装置の場合、データを暗号化し、それを記憶装置に格納し、暗号化されたデータを記憶装置から読み出して復号化するものである。このため、暗号化に用いた鍵は、暗号化を行った情報処理装置のＣＰＵだけが保持していれば良い。
通信回線の先に接続される装置が、情報処理装置の場合、通信回線を挟んで情報処理装置Ａと情報処理装置Ｂが存在する。この場合、情報処理装置Ａで情報を暗号化し、情報処理装置Ｂで情報を復号化する状況が生ずる。大量のデータを高速に暗号化／復号化するためには、共通鍵暗号系が適する。しかし、暗号化と復号化で同じ鍵を用いるため、情報処理装置ＡとＢで、同じ鍵を所有していなければならない。この同じ鍵を、情報処理装置ＡとＢであらかじめ設定しておいても良いし、暗号化したデータを送る前に、情報処理装置ＡとＢで相互認証を行い、暗号化に用いた鍵を共有する方法を取っても良い。相互認証にも暗号処理が用いられるため、これらの処理は、ＣＰＵ内部で処理される。
この情報処理装置ＡとＢがネットワークを介して接続されている様子を第２３図に示す。
ＲＡＭ（１５０８）内で、暗号化したデータを通信単位に再編集し、通信プロトコルに従い、通信系制御部（１５０３）に転送する事により、安全な通信が可能になる。ＲＡＭ（１５０８）内で暗号化したデータを通信系制御部（１５０３）に転送し、通信系制御部（１５０３）において、暗号化したデータを通信単位に再編集し、通信プロトコルに従い、通信路（１５０４）にデータを送出しても良い。
本発明の第六の実施例を第１６図、第１７図、第１８図、第２１図および第２２図を用いて説明する。
第１６図は、磁気ディスク（１６０１）等の外部記憶装置群を、ディスクシステムコントローラ（１６０２）が制御する構成を取り、ディスクシステムコントローラ（１６０２）は、上位の情報処理装置であるホストシステム（１６０３）に接続されている。
磁気ディスク（１６０１）内には、ファイルとして記憶されているデータと、そのファイルが磁気ディスク上の何処に格納されているかを示すファイル配置情報がある。ＰＣ等の小型情報処理装置では、ファイルとファイル配置情報を管理するファイルシステムプログラムを、小型情報処理装置のＣＰＵが処理する場合もあるが、高速動作や高信頼性を実現するディスクシステムコントローラでは、ディスクシステムコントローラ自体がファイルとファイル配置情報を管理する場合もある。
本実施例は後者に適用したものである。ホストシステム（１６０３）では、ファイル（１６０４）とファイル識別子（１６０５）で管理する。ファイル（１６０４）が暗号化されてるか否かは、ホストシステムに依存し、ディスクシステムコントローラでは関知しなくて良い。ディスクシステムコントローラ（１６０２）では、磁気ディスク（１６０１）上のファイル配置情報（１６０６）を暗号化して管理する。
本実施例での、ホストシステムが暗号化した暗号化ファイル（１６０７）を読み出すまでの動作を説明する。
まず、ホストシステムは、必要とする暗号化ファイルに対応するファイル識別子（１６０５）をディスクシステムコントローラ（１６０２）に送り、暗号化ファイルの読み出し要求を行う。読み出し要求を受けたディスクシステムコントローラ（１６０２）は、磁気ディスク（１６０１）から、暗号化されたファイル配置情報（１６０６）を読み出し、ディスクシステムコントローラ（１６０２）内で復号化し、ファイル配置情報（１６０８）を取り出す。このファイル配置情報（１６０８）内からファイル識別子（１６０５）を検索し、実際のファイルの配置情報を得る。選られたファイル配置情報を用いて、要求された暗号化ファイル（１６０７）を磁気ディスク（１６０１）から読み出し、ホストシステム（１６０３）へ転送する。
磁気ディスクにファイルを書き込む場合を第１０図で説明する。ファイル配置情報（１６０８）を得るまでは、前記暗号化ファイルの読み出し動作と同じである。ファイル配置情報（１６０８）から、磁気ディスク（１６０１）の空き状態を確認し、磁気ディスク（１６０１）空き領域に暗号化ファイル（１６０４）を書き込む。書込み終了後、ファイル配置情報（１６０８）を更新し、暗号化した後、磁気ディスク（１６０１）に暗号化ファイル配置情報（１７０１）として書き込む。
第１８図で、ディスクシステムコントローラの構成を説明する。
本発明のディスクシステムコントローラ（１８０１）は、内部にディスクシステムのＣＰＵ（１８０２）と、磁気ディスクインタフェース（１８１３）と、ホストシステムインタフェース（１８０４）を持ち、ＣＰＵ（１８０２）は、マイクロプロセッサ（１８０５）と、暗号処理アルゴリズムＲＯＭ（１８０６）と、暗号処理ハードウェア（１８０７）と、ＲＡＭ（１８０８）と、鍵保管領域（１８１１）と、外部バス制御部（１８０９）と、乱数生成器（１８２０）で構成される。
なお、第２１図および第２２図に示す通り、１台の情報処理装置に複数の磁気ディスク装置が接続される構成としてもよい。
このような、ディスクシステムコントローラを用いる事により、磁気ディスク内の情報を全て暗号化する事が可能になり、情報保管時の安全性が高まる。
本発明の暗号処理ハードウェアは、暗号化と復号化において共通の鍵を用いる共通鍵暗号では、専用のハードウェアであり、ローテータ、加算器、論理演算器等で構成される。共通鍵暗号としては、あるデータ長を単位に、ビットのローテートと加算と論理演算を主演算とした暗号化手段であるＭｕｌｔｉ系の暗号、Ｍ６暗号等を用いる事も出来る。
公開鍵暗号を用いる場合は、演算量の大きい剰余演算器を専用のハードウェアとして設ける。
産業上の利用可能性
本発明によれば、情報処理装置内のシステムバスやプロセッサバスにも秘密情報を出さずに、暗号処理が可能になる。暗号処理とその処理に関する秘密情報、暗号アルゴリズム、途中経過、鍵情報等が、同一半導体内で処理されるため、秘密保持効果が高い情報処理装置を構築できる。
【図面の簡単な説明】
第１図は、本発明の情報処理装置の構成を示す図である。第２図は、本発明の情報処理装置におけるファイル生成を説明する図である。第３図は、本発明の１形態である主記憶を内蔵するＣＰＵを有する情報処理装置の構成を示す図である。第４図は、本発明の１形態である外部記憶装置に格納しているアプリケーションプログラムをＣＰＵで暗号化する情報処理装置の構成を示す図である。第５図は、外部バス制御部の構成を示す図である。第６図は、外部バス制御部で外部バスへのデータを出力させない１実施例を説明する図である。第７図は、鍵生成に必要な乱数生成部の構成を示す図である。第８図は、鍵保管部の構成を示す図である。第９図は、暗号化および復号化する装置が自分自身である場合の暗号化複合化処理と鍵の関係を示す図である。第１０図は、第９図の鍵の取扱いを変え、記憶しなければならない鍵情報を少なくする構成を示す図である。第１１図は、暗号化する装置と復号化する装置が異なる場合の、暗号化処理と鍵の関係、複合化処理と鍵の関係を示す図である。第１２図は、第１１図に加えて、送信者の保証情報を付加した構成を示す図である。第１３図は、相手から入手する鍵情報を認証する仕組みを示す図である。第１４図は、本発明をプロセッサバスおよびシステム情報処理装置に適用した場合の構成を示す図である。第１５図は、本発明を通信に適用した場合の構成を示す図である。第１６図は、外部記憶装置に本発明を適用した場合を説明する図である。第１７図は、第１６図の構成で暗号化ファイル配置情報の書込みを説明する図である。第１８図は、ディスクコントローラの構成を示す図である。第１９図は、本発明の１形態である複数のＣＰＵを有する情報処理装置を示す図である。第２０図は、第１９図の変形例を示す図である。第２１図は、第１６図に示した構成の変形例である。第２２図は、第１６図に示した構成の変形例である。第２３図は、第１５図に示す情報処理装置がネットワークに接続されている全体システムを表わす図である。
【図１】
0003975677.tif 000002
【図２】
0003975677.tif 000003
【図３】
0003975677.tif 000004
【図４】
0003975677.tif 000005
【図５】
0003975677.tif 000006
【図６】
0003975677.tif 000007
【図７】
0003975677.tif 000008
【図８】
0003975677.tif 000009
【図９】
0003975677.tif 000010
【図１０】
0003975677.tif 000011
【図１１】
0003975677.tif 000012
【図１２】
0003975677.tif 000013
【図１３】
0003975677.tif 000014
【図１４】
0003975677.tif 000015
【図１５】
0003975677.tif 000016
【図１６】
0003975677.tif 000017
【図１７】
0003975677.tif 000018
【図１８】
0003975677.tif 000019
【図１９】
0003975677.tif 000020
【図２０】
0003975677.tif 000021
【図２１】
0003975677.tif 000022
【図２２】
0003975677.tif 000023
【図２３】
0003975677.tif 000024