(57)【特許請求の範囲】
【請求項１】
親ノードに親ノードの鍵である親ノード鍵を配置し、子ノードにデータの暗号化及または復号する子ノードの鍵である子ノード鍵または子ノードのデータである子ノードデータを前記親ノード鍵で暗号化したデータを配置するような木構造で、鍵及びデータを管理する鍵データベースと、
前記データの暗号化及び復号と前記鍵の暗号化及び復号を行う暗復号処理装置と、
前記鍵データベースと前記暗復号処理装置を用いて、前記データの暗号化及び復号を行う鍵管理ソフトウエアと、で構成されるデータ処理装置であって、
前記鍵管理ソフトウエアは、鍵削除手段を備え、
前記鍵削除手段は、上位アプリケーションからの前記木構造のノードの削除の要求に対して、
暗号強度比較表と処理時間比較表を参照して、新たな親ノードを決定するノード探索部と、
前記暗号強度比較表と前記処理時間比較表を参照して、前記ノード探索部によって探索された前記ノードよりセキュリティ強度を低下させない新たなノードを作成する、新規ノード作成部と、
前記新規ノード作成部によって作成したノードに、前記削除が指定されたノードをルートノードとする部分木を接続する、ノード接続部と、
を行う手段を備えることを特徴とするデータ処理装置。
【請求項２】
前記暗復号処理装置は、さらに、前記鍵データベースの木構造のルートに対応する鍵を格納すること、を特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記鍵データベースは、さらに、前記ノードにパスワードを格納し、
前記鍵管理ソフトウエアは、前記新規ノード作成部によって作成したノードのパスワードを決定するパスワード変更部と
を備えることを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
前記パスワード変更部は、さらに、前記削除が指定されたノードからルートまでの全てのノードに格納された複数のパスワードから、最も長いパスワードを選択する、
ことを特徴とする請求項３に記載のデータ処理装置。
【請求項５】
親ノードに親ノードの鍵である親ノード鍵を配置し、子ノードにデータの暗号化及または復号する子ノードの鍵である子ノード鍵または子ノードのデータである子ノードデータを前記親ノード鍵で暗号化したデータを配置するような木構造で、鍵及びデータを管理する鍵データベースと、
前記データの暗号化及び復号と前記鍵の暗号化及び復号を行う暗復号処理装置と、
前記鍵データベースと前記暗復号処理装置を用いて、前記データの暗号化及び復号を行う鍵管理ソフトウエアと、で構成されるデータ処理装置であって、
前記鍵管理ソフトウエアは、鍵追加部を備え、
前記鍵追加部は、上位アプリケーションからの前記木構造のノードの追加の要求に対して、
暗号強度比較表と処理時間比較表を参照して、親ノードの暗号アルゴリズムと鍵長を変更するノード変更手段と、
前記ノード変更手段によって変更された親ノードに、前記追加が要求されたノードを接続する
ことを特徴とする前記データ処理装置。
【請求項６】
前記暗復号処理装置は、さらに、前記鍵データベースの木構造のルートに対応する鍵を格納すること、
を特徴とする請求項５に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルやデータを暗復号する装置等で、暗復号に使用する鍵を、木構造の鍵データベースを用いて管理する鍵管理ソフトウエアにおいて、高速に暗復号処理を行う方法に関するものである。
【背景技術】
【０００２】
近年、Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ（ＰＣ）や携帯電話などのデータ処理装置に格納された個人情報などのデータの盗難が問題となっている。
前述のデータの盗難は、コンピュータウイルスなどの悪意のあるプログラムによって行われることがある。ここで、悪意のあるプログラムは、対象とするデータ処理装置で動作するプログラムの不具合などを利用して、対象とするデータ処理装置において不正に動作し、ＰＣや携帯電話の記憶装置に格納されているデータを読み取る。そして、悪意のあるプログラムは、ネットワークを介して、読み取ったデータを攻撃者などに送付する。
【０００３】
このようなデータの盗難を防ぐ技術として、データ暗復号化手段がある。データ暗復号化手段は、公開鍵暗号方式であるＲＳＡ暗号や共通鍵暗号方式であるＡＥＳ暗号などの暗号アルゴリズムを用いて、データを秘密の鍵で暗号化する暗号化手段と、暗号化されたデータを復号化する復号化手段を含む。ここで、暗号化されたデータは暗号化に用いた鍵と対応する鍵を使わなくては正しく復号できない。
【０００４】
データ暗復号化手段を用いることによって、たとえ、悪意のあるプログラムが、データ処理装置に格納されたデータを読み取り、攻撃者に送付した場合であっても、鍵を知らない攻撃者はデータを正しく復号できない。したがって、攻撃者に正しい情報を取得されることを防ぐ事ができる。しかしながら、データ暗復号化手段では、秘密の鍵が暴露された場合には、攻撃者が暗号化されたデータを復号できるようになり、正しい情報を盗難されるという課題がある。
【０００５】
そこで、Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｕｏｐ（ＴＣＧ）において、データ暗号化手段に使用する鍵を保護する仕様が公開されている。
以下に、図１５、図１６、図１７、図１８を用いて、非特許文献１においてＰｒｏｔｅｃｔｅｄ  Ｓｔｏｒａｇｅという名称で公開されているデータ暗復号手段の説明を行う。
図１５は、データ暗復号手段を実現するための鍵管理ソフトウエアが管理する鍵データベースを示す図である。
【０００６】
鍵データベース  ２００は、鍵を木構造で管理する。鍵データベース  ２００の木構造は、ルート鍵のノード  ２０１とルート鍵で暗号化された鍵Ａのノード  ２０２とルート鍵で暗号化された鍵Ｂのノード  ２０３で構成される。
ルート鍵で暗号化された鍵Ａのノード  ２０２には、ルート鍵で暗号化された鍵Ａが格納されている。鍵Ａは、図示していないデータを暗復号するために使用される鍵である。
【０００７】
ルート鍵で暗号化された鍵Ｂのノード  ２０２には、ルート鍵で暗号化された鍵Ｂが格納されている。鍵Ｂは、図示していないデータを暗復号するために使用される鍵である。
図１６は、鍵管理ソフトウエアが鍵のロードやデータの暗復号に利用する暗復号処理装置のハードウエア構成図である。
暗復号処理装置  ２１０は、不揮発性メモリ  ２１１と暗復号エンジン  ２１２と鍵格納部  ２１３を含む。
【０００８】
さらに、暗復号処理装置  ２１０は、暗復号処理装置  ２１０外部からの処理データの盗み取り及び改竄ができないように耐タンパ化されている。
不揮発性メモリ  ２１１は外部電源から電力が供給されない場合でも、記憶しているデータが失われない不揮発な記憶装置である。不揮発性メモリ  ２１１はルート鍵  ２１４を格納する。ルート鍵  ２１４は公開鍵暗号方式の秘密鍵や、共通鍵暗号方式の秘密鍵である。
【０００９】
暗復号エンジン  ２１２は、暗号化された鍵の復号と、鍵の暗号化と、暗号化されたデータの復号と、データの暗号化を行う装置である。
鍵格納部  ２１３は、暗号エンジン  ２１２が使用する鍵を格納する装置である。
図１７は、鍵管理ソフトウエアが、暗復号処理装置  ２１０に鍵をロードする処理の流れを示す図である。
【００１０】
図１８は、鍵管理ソフトウエアが、暗復号処理装置  ２１０を用いてデータを暗復号する処理の流れを示す図である。
以下、図１７と図１８を用いて、図１５の鍵Ａが暗復号処理装置  ２１０にロードされ、データの暗復号を実現する処理の説明を行う。
＜鍵のロード処理＞
鍵管理ソフトウエアは、図示していないアプリケーションから鍵Ａのロードを要求される。（Ｓ２００）
鍵管理ソフトウエアは、指定された鍵に対応するノード  ２０２を鍵管理データベース  ２００から取得し、暗復号処理装置  ２１０にロードする。（Ｓ２０１）
暗復号処理装置  ２１０は、暗号エンジン  ２１２を用いて、ルート鍵で暗号化された鍵Ａを、ルート鍵  ２１４で復号化し、鍵格納部  ２１３に格納する。（Ｓ２０２）
鍵管理ソフトウエアは、暗復号処理装置  ２１０から鍵のロード終了を示す通知を受け取り、鍵のロード処理を終了する。（Ｓ２０３）
＜データの暗復号処理＞
前述の鍵のロード手段によって鍵Ａが鍵格納部  ２１３に格納された後に、鍵管理ソフトウエアは、図示していないアプリケーションからデータの暗号または復号処理を要求される。（Ｓ２１０）
鍵管理ソフトウエアは、アプリケーションから入力されたデータを、暗復号処理装置  ２１０に入力し、鍵Ａを用いて暗号化もしくは復号化を行うように、暗復号処理装置  ２１０に依頼する。（Ｓ２１１）
暗復号処理装置  ２１０は、入力されたデータを、暗号エンジン  ２１２を用いて、鍵格納部  ２１３に格納された鍵Ａで暗号化もしくは復号化し、出力する。（Ｓ２１２）
鍵管理ソフトウエアは、暗復号処理装置  ２１０から出力されたデータを、アプリケーションに通知して、暗復号処理を終了する。（Ｓ２１３）
前述のように、鍵データベースと暗復号処理装置を用いることで、平文の鍵は常に耐タンパ化された暗復号処理装置内部に格納されて使用することが可能となる。そのため、平文の鍵の盗み取りを防ぐ事が可能となる。
【００１１】
また、データ暗復号を行うユーザまたはアプリケーションは、鍵データベース  ２００に鍵を登録する際に、図１５のルート鍵で暗号化された鍵Ａのノード  ２０２やルート鍵で暗号化された鍵Ｂのノード  ２０３にパスワードを設定する場合もある。その場合には、データ暗復号を行う場合に、ユーザまたはアプリケーションは、鍵管理ソフトウエアに、使用する鍵が格納されているノードに対応するパスワードを入力して、データの暗復号を行う。
【００１２】
また、特許文献１は、木構造を用いたデータ管理において、ノードの削除を実現する技術である。以下、図１９を用いて簡単に説明を行う。
図１９は、ＤＶＤ再生装置などの端末を管理する端末管理データベース  ２２０を示す図である。
端末管理データベース  ２２０は、ルート  ２２１と中間ノードＡ  ２２２と中間ノードＢ  ２２３とリーフＣ  ２２４と中間ノードＤ  ２２５とリーフＥ  ２２６とリーフＦ  ２２７とリーフＧ  ２２８で構成する木構造のデータベースである。ここで、ルートとは親ノードを持たないノードであり、木構造の頂点に位置する。また、中間ノードとは、親ノードと子ノードを持つノードである。また、リーフとは、親ノードのみを持つノードである。
【００１３】
端末管理データベース  ２２０のリーフＣ  ２２４とリーフＥ  ２２６とリーフＦ  ２２７とリーフＧ  ２２８は、端末に対応する情報を格納する。
ここで、リーフＦ  ２２７とリーフＧ  ２２８に対応する端末を無効化（リボーク処理）する場合には、中間ノードＤ  ２２５を、端末管理データベース  ２２０から削除する。これによって、リーフＦ  ２２７とリーフＧ  ２２８を一度に、端末管理データベース  ２２０から削除することが可能である。
【特許文献１】特開２００２−１５２１８７号公報
【非特許文献１】ＴＣＧ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｏｖｅｒｖｉｅｗ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｒｅｖｉｓｉｏｎ  １．３  ２８ｔｈ  Ｍａｒｃｈ  ２００７
【発明の開示】
【発明が解決しようとする課題】
【００１４】
非特許文献１の手法では、木構造を用いた鍵データベースを用いて、平文の鍵を保護してデータ暗復号が行う。
しかしながら、この手法では、ルートからリーフまでに存在する中間ノードの数（以下、木構造の深さと呼ぶ）が多くなると、データの暗復号処理性能が低下するという課題があった。
【００１５】
以下、図２０を用いて、この課題を簡単に説明する。図２０は、鍵データベース  ２３０を示した図である。鍵データベース  ２３０は、ルート鍵を格納するノード  ２３１と、ルート鍵で暗号化された鍵Ａを格納するノード  ２３２と、鍵Ａで暗号化された鍵Ｂを格納するノード  ２３３と、鍵Ｂで暗号化された鍵Ｃを格納するノード  ２３４と、鍵Ｃで暗号化された鍵Ｄを格納するノード  ２３５によって構成される。
【００１６】
鍵データベース  ２３０から鍵Ｄを取得するには、ルート鍵で暗号化された鍵Ａをルート鍵で復号化して鍵Ａを取得するロード処理と、鍵Ａで暗号化された鍵Ｂを鍵Ａで復号化して鍵Ｂを取得するロード処理と、鍵Ｂで暗号化された鍵Ｃを鍵Ｂで復号化して鍵Ｃを取得するロード処理と、鍵Ｃで暗号化された鍵Ｄを鍵Ｃで復号化して鍵Ｄを取得するロード処理の合計４回の鍵のロード処理が必要となる。
【００１７】
さらに、特許文献１の手法では、木構造のデータベースを用いて、効率的にリーフを削除する方法は開示されているが、中間ノードを削除した場合、その中間ノードに接続する全てのリーフが削除されてしまうという課題がある。
本発明は、前述従来の課題を解決するものであり、複数の暗号アルゴリズムの鍵管理を、木構造の鍵データベースで行うソフトウエアにおいて、鍵の削除及び追加を行う場合に、セキュリティ強度を低下させることなく、木構造を変更することで、高速な処理を実現する手段を提供することを目的とする。
【課題を解決するための手段】
【００１８】
前記従来の課題を解決するために、本発明に関するデータ処理装置は、データの暗号化及び復号する鍵を、親ノードに格納された鍵で暗号化し、子ノードで保持する木構造で管理する鍵データベースと、前記データの暗号化及び復号と前記鍵の暗号化及び復号を行う暗復号処理装置と、前記鍵データベースと前記暗復号処理装置を用いて、前記データの暗号化及び復号を行う鍵管理ソフトウエアを備え、前記鍵管理ソフトウエアは、鍵削除手段を備え、前記鍵削除手段は、上位アプリケーションからの前記木構造のノードの削除の要求に対して、暗号強度比較表と処理時間比較表を参照して、新たな親ノードを決定するノード探索部と、前記暗号強度比較表と前記処理時間比較表を参照して、前記ノード探索部によって探索された前記ノードよりセキュリティ強度を低下させない新たなノードを作成する、新規ノード作成部と、前記新規ノード作成部によって作成したノードに、前記削除が指定されたノードに接続しているノード群を接続する、ノード接続部を備えることを特徴とする。
【００１９】
さらに、前記暗復号処理装置は、さらに、前記鍵データベースの木構造のルートに対応する鍵を格納すること、を特徴とする。
【発明の効果】
【００２０】
このような構成により、本発明に関するデータ処理装置は、鍵の盗み取りを保護して、データの暗復号を行う事ができる。
このような構成により、本発明のデータ処理装置は、木構造の一部ノードを変更することで、鍵の追加及び削除を柔軟に行う事ができる。
さらに、前記鍵データベースは、さらに、前記ノードにパスワードを格納し、前記鍵管理ソフトウエアは、前記新規ノード作成部によって作成したノードのパスワードを決定するパスワード変更部とを備え、前記パスワード変更部は、さらに、前記削除が指定されたノードからルートまでの全てのノードに格納された複数のパスワードから、最も語長が長いパスワードを選択する、ことを特徴とする。
【００２１】
このような構成により、本発明のデータ処理装置は、パスワードによる保護を用いて特定のユーザまたはアプリケーションのみに鍵を使用させることができる。
【００２３】
さらに、データの暗号化及び復号する鍵を、親ノードに格納された鍵で暗号化し、子ノードで保持する木構造で管理する鍵データベースと、前記データの暗号化及び復号と前記鍵の暗号化及び復号を行う暗復号処理装置と、前記鍵データベースと前記暗復号処理装置を用いて、前記データの暗号化及び復号を行う鍵管理ソフトウエアと、で構成されるデータ処理装置であって、前記鍵管理ソフトウエアは、鍵追加部を備え、前記鍵追加部は、上位アプリケーションから、前記木構造のノードの追加の要求に対して、暗号強度比較表と処理時間比較表を参照して、親ノードの暗号アルゴリズムと鍵の長さを変更するノード変更手段と、前記ノード変更手段によって変更された親ノードに、前記追加が要求されたノードを接続する、ことを特徴とし、さらに、前記暗復号処理装置は、さらに、前記鍵データベースの木構造のルートに対応する鍵を格納すること、を特徴とする。
【００２４】
このような構成により、本発明に関するデータ処理装置は、鍵の盗み取りを保護して、データの暗復号を行う事ができる。
このような構成により、本発明のデータ処理装置は、木構造の一部ノードを変更することで、鍵の追加及び削除を柔軟に行う事ができる。
【発明を実施するための最良の形態】
【００２６】
以下に、本発明の実施の形態について、図面を参照しながら説明を行う。
（実施の形態１）
図１は、本発明の実施の形態１に関わる鍵データベースを示す図である。
図１において、鍵データベース  １００は、ルート  １０１と、中間ノード−１  １０２と、中間ノード−２  １０３と、中間ノード−３  １０４と、中間ノード−４  １０５と、中間ノード−５  １０６と、中間ノード−６  １０７と、リーフ−１  １０８と、リーフ−２  １０９と、リーフ−３  １１０と、リーフ−４  １１１と、リーフ−５  １１２と、リーフ−６  １１３と、リーフ−７  １１４と、リーフ−８  １１５とで構成されている。ここで、ルートとは親ノードを持たないノードであり、木構造の頂点に位置する。また、中間ノードとは、親ノードと子ノードを持つノードである。また、リーフとは、親ノードのみを持つノードである。
【００２７】
ルート  １０１は、中間ノード−１  １０２と中間ノード−２  １０３の親ノードである。中間ノード−１  １０２は、中間ノード−３  １０４と中間ノード−４  １０５の親ノードである。中間ノード−２  １０３は、中間ノード−５  １０６と中間ノード−６  １０７の親ノードである。中間ノード−３はリーフ−１  １０８とリーフ−２  １０９の親ノードである。中間ノード−４  １０５はリーフ−３  １１０とリーフ−４  １１１の親ノードである。中間ノード−５  １０６はリーフ−５  １１２とリーフ−６  １１３の親ノードである。中間ノード−６  １０７はリーフ−７  １１４とリーフ−８  １１５の親ノードである。
【００２８】
図１のルート及び中間ノードには、子ノードに格納される鍵を保護するために使用する鍵が割り当てられており、リーフにはデータの暗復号を行うために使用する鍵が割り当てられる。
図１のルートと中間ノードとリーフには、鍵を管理するために、それぞれノード情報構造が使用される。
【００２９】
図２は、ノード情報構造  １２０のデータ構造を示す図である。
ノード情報構造  １２０は、暗号種別  １２１と、鍵長  １２２と、鍵  １２３と、親ノード識別子  １２４と、パスワード  １２５と、その他の付属情報  １２６のフィールドで構成される。
暗号種別  １２１のフィールドには、ＲＳＡ暗号や楕円暗号などの公開鍵暗号方式や、ＡＥＳ暗号や３ＤＥＳ暗号などの共通鍵暗号方式の暗号アルゴリズムの名称や、前述の暗号アルゴリズムに対応する識別子が格納される。
【００３０】
鍵長  １２２のフィールドには、暗号種別  １２１で指定された暗号アルゴリズムで暗復号を行う場合に使用する鍵の長さが格納される。格納される値はビット長やバイト長などの数値でもよい。さらに、予め決められている鍵の長さに対応する識別子でもよい。
鍵  １２３のフィールドには、暗号種別  １２１で指定された暗号アルゴリズムで暗復号を行う場合に使用する鍵が暗号化されて格納される。格納される値は鍵の値を直接格納してもよい。ただし、ルートに対応する鍵は、ノード情報構造の鍵  １２３のフィールドには格納しない。ルートに対応する鍵の格納場所については後述する。また、鍵  １２３のフィールドに格納する鍵は、親ノード識別子  １２４で指定されている中間ノードまたはルートの鍵（各ノードの親ノードの鍵）を使用して暗号化されている。
【００３１】
親ノード識別子  １２４は、図１に示す木構造において、ノード情報構造  １２０が割り当てられているノードに対する親ノードを指定する識別子が格納される。格納される値は、親ノードの位置を格納してもよい。さらに、予め決められている識別子や動的に生成した識別子を格納してもよい。
パスワード  １２５は、各ノードの割り当てられたパスワードを格納するフィールドである。格納する値は、入力されたパスワードを格納してもよい。さらに、入力されたパスワードに対して、ＳＨＡ１演算などの一方向性関数を用いて識別子を作成し、作成した識別子を格納してもよい。また、パスワード  １２５は、鍵を登録する際に、記載していないユーザまたはアプリケーションによって、その鍵に対応するパスワードが、鍵管理ソフトウエアに入力されることによって、値が格納される。さらに、パスワード  １２５は、データ暗復号を行う際に、記載していないユーザまたはアプリケーションによって入力されたパスワードと比較する際に、参照される。
【００３２】
その他の付属情報  １２６は、他に各ノードが必要とする情報を格納するフィールドである。
＜実施の形態１のハードウエアの構成の説明＞
図３は、図１の鍵データベース及び図２のノード情報構造を用いてデータ暗復号を行う、データ処理装置  １３０のハードウエア構成図である。
【００３３】
図３において、データ処理装置  １３０は、ＣＰＵ  １３１とメモリ  １３２と記憶装置  １３３と暗復号処理装置  １３４とで構成される。さらに、ＣＰＵ  １３１とメモリ  １３２と記憶装置  １３３と暗復号処理装置  １３４とが、バス  １３５を介して互いに接続されている。
データ処理装置  １３０は、さらに、図３に図示されていない入出力部などを備えているが、これらは本発明の本質ではないので説明を省略する。
【００３４】
以下、データ処理装置  １３０の各構成要素の詳細について説明する。
＜データ処理装置のハードウエアの構成要素の説明＞
ＣＰＵ  １３１は、メモリ  １３２に格納されたプログラム等に含まれる命令コードを実行することにより、データ処理装置  １３０全体の動作を制御する。
メモリ  １３２は、鍵管理ソフトウエア  １３５と、アプリケーションＡ  １３６とアプリケーションＢ  １３７と、オペレーティングシステム  １３８とデバイスドライバ  １３９と、鍵データベース  １４６を格納する揮発性メモリである。なお、鍵データベース１４６は、データ処理装置  １３０が暗復号に用いる鍵を、図１に示したデータ構造で管理するデータベースである。
【００３５】
記憶装置  １３３は、アプリケーションＡ  １３６やアプリケーションＢ  １３７などで使用する暗号化されたデータＡ  １４０と暗号化されたデータＢ  １４１を格納する。
暗復号処理装置  １３４は、不揮発性メモリ  １４２と暗復号エンジン  １４３と鍵格納部  １４４で構成される。
さらに、暗復号処理装置  １３４は、暗復号処理装置  １３４外部からの処理データの盗み取り及び改竄ができないように耐タンパ化されている。
【００３６】
＜暗復号処理装置の構成要素の説明＞
不揮発性メモリ  １４２は外部電源から電力が供給されない場合でも、記憶しているデータが失われない不揮発な記憶装置である。不揮発性メモリ  １４２はルート鍵  １４５を格納する。ルート鍵  １４５は公開鍵暗号方式の秘密鍵や、共通鍵暗号方式の秘密鍵である。さらに、ルート鍵  １４５は、図１の鍵データベース  １００のルート  １０１に対応する鍵である。ルート鍵  １４５は、他のすべてのノードの鍵の復号に用いる鍵であるので、メモリ上の鍵データベース  １４６ではなく、耐タンパ化された暗復号処理装置が管理している。なお、鍵データベース  １４６に含まれる鍵すべてを耐タンパ化された領域に記録すると、求められる記録容量が大きくなってしまうため、他の全てのノードの鍵を復号する際に必要となるルート鍵だけを耐タンパ化された領域で保護している。
【００３７】
暗号エンジン  １４３は、暗号化された鍵の復号と、鍵の暗号化と、暗号化されたデータの復号と、データの暗号化を行う装置である。暗復号に用いる暗号アルゴリズムは、公開鍵暗号方式であるＲＳＡ暗号や共通鍵暗号方式であるＡＥＳ暗号などの暗号アルゴリズムなどを用いる。
鍵格納部  １４４は、暗号エンジン  １４３が使用する鍵を格納する装置である。
【００３８】
＜実施の形態１のソフトウエアの構成の説明＞
図４は、図１の鍵データベース及び図２のノード情報構造を用いてデータ暗復号を行う、データ処理装置  １３０のソフトウエア構成図である。
図４の構成要素は、図３のメモリ  １３２に格納された各構成要素に対応する。
データ処理装置  １５０は、アプリケーションＡ  １５１とアプリケーションＢ  １５２と、鍵管理ソフトウエア  １５４とオペレーティングシステム  １５５とデバイスドライバ  １５６と鍵データベース  １６９とで構成される。
【００３９】
アプリケーションＡ  １５１とアプリケーションＢ  １５２は、図３に示したアプリケーションＡ  １３６とアプリケーションＢ  １３７と同一である。アプリケーションＡ  １５１とアプリケーションＢ  １５２は、データ処理装置  １５０が提供する応用機能を提供する。例えば、ＴＣＰ／ＩＰを用いた通信機能や、著作権で保護された音楽コンテンツの再生機能、個人情報を提供するサービスなどを提供する。
【００４０】
鍵管理ソフトウエア  １５４は、図３に示した鍵管理ソフトウェア１３５と同一である。鍵管理ソフトウエア  １５４は、鍵登録手段  １５７と、鍵削除手段  １５８と、データ暗復号部  １５９と、処理時間比較表更新手段  １６０と、ノード探索部  １６１と、ノード接続部  １６２と、新規ノード作成部  １６３と、ノード更新部  １６４と、パスワード変更部  １６５と、パスワード確認部  １６６と、暗号強度比較表格納部  １６７と、処理時間比較表格納部  １６８を含む。鍵管理ソフトウェア  １５４を構成する各機能部の詳細は後述する。
【００４１】
オペレーティングシステム  １５５は、図３に示したオペレーティングシステム  １３８と同一である。オペレーティングシステム  １５５は、アプリケーションＡ  １５１とアプリケーションＢ  １５２のスケジューリングやアプリケーション間のデータ通信を行う。
デバイスドライバ  １５６は、図３に示したデバイスドライバ  １３９と同一である。デバイスドライバ  １５５は、鍵管理ソフトウエア  １５４が、暗復号処理装置  １３４を制御する機能を提供する。
【００４２】
＜鍵管理ソフトウエアの構成要素の説明＞
以下、鍵管理ソフトウェア  １５７を構成する各機能部の説明を行う。
鍵登録手段  １５７は、上位アプリケーションから指示されて、鍵データベース  １６９に、新たに鍵を登録する。
鍵削除手段  １５８は、上位アプリケーションから指示されて、鍵データベース  １６９から、鍵を削除する。
【００４３】
データ暗復号部  １５９は、上位アプリケーションから指示されて、鍵データベース  １６９の鍵と暗復号処理装置  １３４を用いて、データの暗復号を行う。
処理時間比較表更新手段  １６０は、上位アプリケーションから指示されて、処理時間比較表格納部  １６７に格納されている処理時間比較表を更新する。
ノード探索部  １６１は、鍵データベース  １６９から指定されたノードと新たな親ノードを探索する手段である。詳細については後述する。
【００４４】
ノード接続部  １６２は、鍵データベース  １６９にノードを接続する手段である。詳細については後述する。
新規ノード作成部  １６３は、鍵データベース  １６９の新たなノードを作成する手段である。詳細については後述する。
ノード変更手段  １６４は、鍵データベース  １６９のノードの暗号アルゴリズムを変更する手段である。詳細については後述する。
【００４５】
パスワード変更部  １６５は、鍵データベース  １６９の新たなノードに割り当てられたパスワードを変更する手段である。詳細については後述する。
パスワード確認部  １６６は、鍵データベース  １６９で管理する鍵を使用する際に、パスワードを用いて認証する手段である。詳細ついては後述する。
暗号強度比較表格納部  １６７は、後述する暗号強度比較表を保持する手段である。
【００４６】
処理時間比較表格納部  １６８は、後述する処理時間比較表を保持する手段である。
＜暗号強度比較表の説明＞
図５は、暗号強度比較表格納部  １６７が保持する暗号強度比較表  １７０を示す図である。
暗号強度比較表  １７０は、暗号アルゴリズム  １７１と、同一セキュリティ強度の鍵長−１  １７２と、同一セキュリティ強度の鍵長−２  １７３と、同一セキュリティ強度の鍵長−３  １７４と、同一セキュリティ強度の鍵長−４  １７５の表で構成される。なお、同一セキュリティ強度の鍵長のフィールドは、５つ以上あっても良いし、３つ以下であってもよい。
【００４７】
暗号アルゴリズム  １７１のフィールドには、比較を行う暗号アルゴリズムの一覧表を格納する。例えば、ＲＳＡ暗号や楕円暗号などの公開鍵暗号方式や、ＡＥＳ暗号や３ＤＥＳ暗号などの共通鍵暗号方式の暗号アルゴリズムなどを格納する。
同一セキュリティ強度の鍵長−１  １７２のフィールドには、各暗号アルゴリズムで、同一セキュリティ強度となる鍵長を格納する。例えば、ＲＳＡ暗号の鍵長が１０２４ビットと同一のセキュリティ強度の楕円暗号の鍵長が１６０ビットの場合には、ＲＳＡ暗号の鍵長の１０２４ビットに対応する楕円暗号のフィールドには、１６０ビットを格納する。同様に、ＲＳＡ暗号の鍵長が１０２４ビットと同一のセキュリティ強度のＡＥＳ暗号の鍵長が８０ビットの場合には、ＲＳＡ暗号の鍵長の１０２４ビットに対応するＡＥＳ暗号のフィールドには、８０ビットを格納する。
【００４８】
さらに、同一セキュリティ強度−２  １７３は、ＲＳＡ暗号の２０４８ビットの鍵長のセキュリティと同等の各暗号アルゴリズムの鍵長を格納し、同一セキュリティ強度−３  １７４は、ＲＳＡ暗号の３０７２ビットの鍵長のセキュリティと同等の各暗号アルゴリズムの鍵長を格納し、同一セキュリティ強度−４  １７５は、ＲＳＡ暗号の７６８０ビットの鍵長のセキュリティと同等の各暗号アルゴリズムの鍵長を格納する。
【００４９】
なお、ＮＩＳＴ  ＳＰ  ８００−５７  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  ｆｏｒ  Ｋｅｙ  Ｍａｎａｇｅｍｅｎｔ、  Ｐａｒｔ  １  ｐｐ．６３（ｈｔｔｐ：／／ｃｓｒｃ．ｎｉｓｔ．ｇｏｖ／ｐｕｂｌｉｃａｔｉｏｎｓ／ｎｉｓｔｐｕｂｓ／８００−５７−Ｐａｒｔ１−ｒｅｖｉｓｅｄ２＿Ｍａｒ０８−２００７．ｐｄｆ）に、各暗号アルゴリズムのセキュリティ強度を鍵長で比較する内容が開示されている。
【００５０】
なお、同一セキュリティ強度の鍵長−１  １７２、同一セキュリティ強度の鍵長−２  １７３、同一セキュリティ強度の鍵長−３  １７４のフィールドには、同一セキュリティ強度の鍵長が存在しない場合には、同一セキュリティ強度より長い鍵長を格納してもよい。
＜処理時間比較表の説明＞
図６は、処理時間比較表格納部  １６８が保持する処理時間比較表  １８０を示す図である。
【００５１】
処理時間比較表  １８０は、暗復号処理装置タイプ  １８１と暗号アルゴリズム毎の処理性能比較  １８２で構成される。
暗復号処理装置タイプ  １８１は、暗復号処理装置を識別する情報を格納する。格納する情報は暗復号処理装置の名称でもよい。さらに、暗復号処理装置の認証情報を格納してもよい。
【００５２】
暗号アルゴリズム毎の処理性能比較  １８２は、暗復号処理装置タイプ  １８１のフィールドに格納された暗復号処理装置に対する、各暗号アルゴリズムの比較可能な処理性能に関する情報を格納する。暗号アルゴリズム毎の処理性能比較  １８２は、暗号アルゴリズムのフィールド  １８３と、暗号アルゴリズム毎の比較情報  １８４とで構成される。
暗号アルゴリズムのフィールド  １８３はＲＳＡ暗号や楕円暗号などの公開鍵暗号方式や、ＡＥＳ暗号や３ＤＥＳ暗号などの共通鍵暗号方式の暗号アルゴリズムなどの名称を格納する。
【００５３】
比較情報  １８４は、暗号アルゴリズムのフィールド  １８３に格納された暗号アルゴリズムの処理性能を格納する。格納する値は、各暗号アルゴリズムで暗復号を行う場合の処理速度の順位を示す値や、単位時間あたりの処理可能なデータサイズを格納する。なお、図６では、一例として処理速度の順位を示す値が格納されている。
＜データ処理装置の動作説明＞
以下、データ処理装置の動作の説明を行う。中間ノードに格納された鍵の削除、新しい鍵の登録、および処理時間比較表の更新の処理以外は、非特許文献１に記載の仕様と同様であるので、説明を省略する。
【００５４】
１．データ処理装置による中間ノードに格納された鍵の削除の説明
以下に、図７を用いて、データ処理装置  １５０が、鍵データベース  １００から中間ノードに格納された鍵の削除を実現する方法を説明する。
上位アプリケーションから、鍵管理ソフトウエア  １５４に、中間ノードに格納された鍵を指定して、鍵の削除が要求される。要求を受け付けると、鍵削除手段  １５８が、中間ノード削除処理を開始する（Ｓ１００）。
【００５５】
鍵削除手段  １５８から指示されたノード探索部  １６１は、中間ノードの探索及び最適接続ノードの探索を行う（Ｓ１０１）。探索手段に関しては後述する。
次に、鍵削除手段  １５８は、探索された中間ノードを削除する（Ｓ１０２）。
次に、鍵削除手段  １５８から指示された新規ノード作成部  １６３は、新規ノードを作成する（Ｓ１０３）。作成手段に関しては後述する。
【００５６】
次に、鍵削除手段  １５８から指示されたノード接続部  １６２は、新規ノードに、関連するノードまたはリーフを接続する（Ｓ１０４）。接続手段に関しては後述する。
次に、鍵削除手段  １５８から指示されたパスワード変更部  １６５は、接続が変更された中間ノードまたはリーフのパスワードを変更する（Ｓ１０５）。パスワード変更部に関しては後述する。
【００５７】
そして、鍵削除手段  １５８は、中間ノードの削除処理を終了する。（Ｓ１０６）
１．１．中間ノードの探索及び最適接続ノードの探索の説明
以下に、図８を用いて、図７のＳ１０１で実現する、中間ノードの探索及び最適接続ノードの探索を説明する。図８は、図７のＳ１０１で行う処理の詳細を示している。
図７のＳ１０１に遷移することで、中間ノードの探索及び最適接続ノードの探索が開始する（Ｓ１１０）。
【００５８】
ノード探索部  １６１は、指定された中間ノードを、ルートからリーフに向かって探索し、発見する（Ｓ１１１）。ノードの探索は、木構造の探索で用いる一般的なアルゴリズム（深さ優先探索、幅優先探索など）で実現できるので詳細な説明は省略する。
次に、ノード探索部  １６１は、ルートから、指定された中間ノードの親ノードまでのパスに存在する、複数のノードをノード群として取得する（Ｓ１１２）。
【００５９】
次に、ノード探索部  １６１は、取得したノード群に格納された複数の鍵の中で、最も鍵長が長く、かつ、セキュリティ強度の最も高い鍵を持つ中間ノードを選択する。この選択には、暗号強度比較表  １７０を用いる（Ｓ１１３）。
次に、Ｓ１１３で選択した中間ノードを、新たな親ノードとして決定する（Ｓ１１４）。
【００６０】
そして、ノード探索部  １６１は、中間ノードの探索及び最適接続ノードの探索を終了する（Ｓ１１５）。
１．２．新規ノードの作成
以下に、図９を用いて、図７のＳ１０３で実現する、新規ノードの作成の探索を説明する。図９は、図７のＳ１０３で行う処理の詳細を示している。
【００６１】
図７のＳ１０３に遷移することで、新規ノードの作成の処理が開始する（Ｓ１２０）。
次に、新規ノード作成部  １６３は、ノード情報構造  １２０を新たに作成する（Ｓ１２１）。
次に、新規ノード作成部  １６３は、処理速度比較表  １８０を参照し、最も処理速度の速い暗号アルゴリズムを選択し、ノード情報構造  １２０の暗号種別のフィールド  １２１に格納する（Ｓ１２２）。
【００６２】
次に、新規ノード作成部  １６３は、ノード探索部  １６１がＳ１０１で取得した親ノードの鍵長と同一の鍵長を、暗号強度比較表  １７０を参照して取得し、ノード情報構造  １２０の鍵長のフィールド  １２２に格納する（Ｓ１２３）。
次に、新規ノード作成部  １６３は、Ｓ１２３で取得した鍵長と同じ長さの乱数を取得する（Ｓ１２４）。なお、乱数は図示していない乱数生成器を用いてもよいし、演算によって取得してもよい。
【００６３】
次に、新規ノード作成部  １６３は、Ｓ１０１で取得した親ノードの親ノードに格納された鍵で、Ｓ１２４で取得した乱数を暗号化して、ノード情報構造  １２０の鍵のフィールド  １２３に格納する（Ｓ１２５）。すなわち、この乱数を新規ノードに格納する鍵とする。なお、Ｓ１２５で行う鍵の暗号化は、暗復号処理装置  １３４を用いて行う。
次に、新規ノード作成部  １６３は、Ｓ１０１で取得した親ノードのパスワードを取得し、ノード情報構造  １２０のパスワードのフィールド  １２５に格納する（Ｓ１２６）。
【００６４】
次に、新規ノード作成部  １６３は、Ｓ１０１で取得した親ノードの親ノードの識別子を、ノード情報構造  １２０の親ノード識別子  １２４に格納に格納する（Ｓ１２７）。
そして、新規ノード作成部  １６３は、新規ノードの作成を終了する（Ｓ１２８）。
１．３．新規ノードへの関連するノードまたはリーフの接続
以下に、図１０を用いて、図７のＳ１０４で実現する、新規ノードへの関連するノードまたはリーフの接続を説明する。
【００６５】
図７のＳ１０４に遷移することで、Ｓ１３０に遷移する。
次に、ノード接続部  １６２は、削除が指定された中間ノードに接続された中間ノードまたはリーフを１つ選択し、選択したノードの鍵を暗復号処理装置にロードする（Ｓ１３１）。なお、ロードされる鍵は、削除が指定された中間ノードの鍵で復号化した上でロードされる。
【００６６】
次に、ノード接続部  １６２は、Ｓ１０３で生成された新規ノードに格納された鍵で、ロードされた鍵を暗号化する（Ｓ１３２）。なお、Ｓ１３２で行う鍵の暗号化は、暗復号処理装置  １３４を用いて行う。
次に、ノード接続部  １６２は、Ｓ１３１で選択したノードのノード情報構造  １２０の鍵のフィールド  １２３に、Ｓ１３２で暗号化した鍵を格納する（Ｓ１３３）。
【００６７】
次に、ノード接続部  １６２は、Ｓ１３１で選択したノードのノード情報構造  １２０の親ノード識別子のフィールド  １２４に、Ｓ１０３で生成された新規ノードの識別子を格納する（Ｓ１３４）。
次に、ノード接続部  １６２は、削除が指定された中間ノードに接続する中間ノードまたはリーフが全て、Ｓ１０３で作成された新規ノードに接続しているか確認する（１３５）。全て接続されていない場合には、Ｓ１３１に遷移し、全て接続されている場合にはＳ１３６に遷移する。
【００６８】
Ｓ１３６に遷移することで、ノード接続部  １６２は、新規ノードへの関連するノードまたはリーフの接続を終了する。
１．４．パスワードの変更
以下に、図１１を用いて、図７のＳ１０５で実現する、パスワード変更に関して説明する。図１１は、図７のＳ１０５で行う処理の詳細を示している。
【００６９】
図７のＳ１０５に遷移することで、パスワードの変更の処理が開始する（Ｓ１４０）。
次に、パスワード変更部  １６５は、ルートから削除するように指定された中間ノードの親ノードまでのパスに存在する中間ノードをノード群として取得する（Ｓ１４１）。
次に、パスワード変更部  １６５は、Ｓ１４１で取得したノード群に格納されたパスワードの中で、最もパスワードの語長が長いパスワードを選択する（Ｓ１４２）。
【００７０】
次に、パスワード変更部  １６５は、Ｓ１０４で新たに接続された全ての中間ノードまたはリーフのノード情報構造  １２０のパスワードのフィールド  １２５に、Ｓ１４２で選択したパスワードを格納する（Ｓ１４３）。
そして、パスワード変更部  １６５は、パスワード変更処理を終了する（Ｓ１４４）。
なお、Ｓ１４２で選択するパスワードは、Ｓ１４１で選択したノード群の全てのパスワードを結合したものでもよい。
【００７１】
なお、Ｓ１４２で選択するパスワードは、予め決められたパスワードを選択してもよい。
なお、Ｓ１４２で選択するパスワードは、Ｓ１４１で取得したノード群に格納されたパスワードの中で、最もパスワードの語長が長いパスワードと、予め決められたパスワードを結合したものでもよい。
【００７２】
１．５  データ処理装置による鍵の削除のまとめ
本実施の形態では、中間ノードに格納されている鍵を削除する際に、前記中間ノードに接続する中間ノード及びリーフを、ルートから前記中間ノードの親ノードの中で最もルートに近く、かつノードに格納された鍵の鍵長が最も長いノードに接続する。これにより、新たに接続する前記中間ノード及び前記リーフに格納する鍵を暗復号処理装置にロードするために行う、鍵のロード処理の回数を削除することができる。
【００７３】
さらに、本実施の形態では、中間ノードに格納されている鍵を削除する際に、新たに接続されるノードと比較してより高速な暗号アルゴリズムに対応するノードを新たに作成し、その作成したノードに、新たに接続する前記中間ノード及び前記リーフを接続する。これにより、新たに接続する前記中間ノード及び前記リーフに格納する鍵を暗復号処理装置にロードする処理を、高速化することができる。
【００７４】
２．データ処理装置による鍵の登録の説明
以下に、図１２を用いて、データ処理装置  １５０が、鍵データベース  １００に、新たに鍵を登録する際の動作を説明する。
上位アプリケーションから、鍵管理ソフトウエア  １５４に、新たな鍵を指定して、鍵の登録を要求する。要求された鍵の登録によって、鍵登録手段  １５７が、鍵の登録処理を開始する（Ｓ１５０）。このとき指定される情報には、新たな鍵および、新たな鍵を用いる暗号の暗号種別、新たな鍵の鍵長、親ノード識別子、パスワードが含まれる。なお、親ノード識別子としては、新たな鍵の親ノードとしたいノードの識別子を指定する。
【００７５】
鍵登録手段  １５７から指示されたノード更新部  １６４は、親ノード識別子が示す親ノードの暗号アルゴリズムの変更を行う（Ｓ１５１）。この暗号アルゴリズムの変更に際して、親ノードに格納された鍵の変更も行われる。暗号アルゴリズムの変更の詳細に関しては後述する。
次に、鍵登録手段  １５７は、ノード情報構造  １２０を作成する。そして、Ｓ１５１で変更した親ノードに格納された鍵を用いて、指定された鍵を暗号化して、ノード情報構造  １２０の鍵のフィールドに格納する。さらに、暗号種別、鍵長、親ノード識別子、パスワードの各フィールドに、指定された値を格納する（Ｓ１５２）。なお、Ｓ１５２における、鍵の暗号化は、暗復号処理装置  １３４を用いて行う。
【００７６】
そして、鍵追加部  １５７は、鍵の登録処理を終了する（Ｓ１５３）。
なお、鍵管理ソフトウエア  １５４は、図１２で示す鍵の登録処理を用いて作成する鍵データベースと、さらに上位アプリケーションから指定された木構造を持つ鍵データベースとを保持してもよい。
２つのデータベースを保持する場合には、データ暗復号処理手段  １５９が、データの暗復号処理の際に入力されるパスワードを、パスワード確認部  １６６を用いて、確認することによって、２つのデータベースを選択して、データの暗復号を行ってもよい。
【００７７】
２．１．親ノードの暗号アルゴリズムの変更
以下に、図１３を用いて、図１２のＳ１５１で実現する、親ノードの暗号アルゴリズムの変更に関して説明する。図１３は、図１２のＳ１５１で行う処理の詳細を示している。
図１２のＳ１５１に遷移することで、親ノードの暗号アルゴリズムの変更の処理が開始する（Ｓ１６０）する。
【００７８】
次に、ノード更新部  １６４が、処理時間比較表  １８０を参照して、親ノードのノード情報構造  １２０に格納された暗号アルゴリズムより高速な暗号アルゴリズムを選択する（Ｓ１６１）。
次に、ノード更新部  １６４が、暗号強度比較表  １７０を参照して、親ノードの鍵長と同一となる、Ｓ１６１で選択した暗号アルゴリズムの同一セキュリティ強度の鍵長を選択する（Ｓ１６２）。
【００７９】
次に、ノード更新部  １６４が、Ｓ１６２で選択した鍵長と同じ長さの乱数を取得する（Ｓ１６３）。なお、乱数は図示していない乱数生成器を用いてもよいし、演算によって取得してもよい。
次に、ノード更新部  １６４は、上位アプリケーションから指定された親ノードの鍵で、Ｓ１６３で取得した乱数を暗号化して、親ノードのノード情報構造  １２０の鍵のフィールド  １２３に格納する（Ｓ１６４）。すなわち、生成した乱数を親ノードの鍵とする。
【００８０】
そして、ノード更新部  １６４は、親ノードの暗号アルゴリズムの変更を終了する（Ｓ１６５）。
２．２．データ処理装置による鍵の登録のまとめ
本実施の形態では、鍵を登録する際に、新たに接続される親ノードと比較してより高速な暗号アルゴリズムに対応するノードを新たに作成し、その作成したノードに、リーフを接続する。これにより、新たに接続するリーフに格納する鍵を暗復号処理装置にロードする処理を、高速化することができる。
【００８１】
３．データ処理装置による処理時間比較表の更新の説明
以下に、図１４を用いて、データ処理装置  １５０が、処理時間比較表  １８０を更新する方法を説明する。
上位アプリケーションが、鍵管理ソフトウエア  １５４に、新たな処理時間比較表を指定して、処理時間比較表の更新を要求する。要求によって、処理時間比較表更新手段  １６０が、処理時間比較表の更新を開始する（Ｓ１７０）。
【００８２】
次に、処理時間比較表更新手段  １６０は、新たな処理情報比較表  １８０の暗復号処理装置タイプのフィールド  １８１を確認する（Ｓ１７１）。
次に、処理時間比較表更新手段  １６０は、処理時間比較表格納部  １６８に格納されている処理時間比較表  １８０を削除する（Ｓ１７２）。
次に、処理時間比較表更新手段  １６０は、新たな処理時間比較表  １８０を、処理時間比較表格納部  １６８に格納する（Ｓ１７３）。
【００８３】
そして、処理時間比較表更新手段  １６０は、処理時間比較表の更新を終了する（Ｓ１７４）。
なお、Ｓ１７１の確認手段は、暗復号処理装置タイプのフィールドに格納されている識別子を確認してもよい。
なお、Ｓ１７１の確認手段は、暗復号処理装置タイプのフィールドに格納されている処理時間比較表の電子署名を確認してもよい。
【００８４】
なお、Ｓ１００の中間ノードの削除処理は、鍵管理データベースの整理処理（デフラグ処理）で行ってもよい。
なお、ノード情報構造  １２０のその他の付属情報  １２６は、対応する中間ノードが削除されていることを示す削除済みフラグを格納してもよい。さらに、その他の付属情報  １２６の削除済みフラグは、上位アプリケーションが、中間ノードに格納された鍵を削除する要求を行った際に設定され、そして、鍵管理データベースの整理処理（デフラグ処理）を行う際に、実際の中間ノードに格納された鍵の削除を行ってもよい。
【００８５】
（その他変形例）
（１）上記の実施の形態では、鍵データベース  １４６が、メモリ  １３２に格納されていたが、記憶装置  １３３に格納されていてもよい。
（２）上記の実施の形態では、Ｓ１１３において、暗号強度比較表を参照して、取得したノード群の鍵の中で、同一セキュリティ強度が最も高いノードを選択していたが、同一セキュリティ強度が最も低いノードを選択してもよい。この場合、鍵長が最も短くなり、処理を高速化することができる。
【００８６】
（３）上記実施の形態では、暗復号処理装置  １３４を、ハードウエア装置で実現していたが、ソフトウエアで実現してもよい。さらに、暗復号処理装置  １３４を実現するソフトウエアは、安全なソフトウエア実行環境で実行されてもよい。
（４）上記の実施の形態で述べた構成要素については、その一部または全てを実現可能な範囲でソフトウェアとして実装してもよい。この場合、集積回路上に乗せなくてはならないハードウェアの量を抑えることができるので、より集積度を向上させることができる。
【００８７】
（５）上記の実施の形態で述べた構成要素については、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。
【００８８】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又は全てを含むように１チップ化されてもよい。この場合、上記の構成要素をソフトウェアで実装するよりも処理を高速化することができる。
（６）システムＬＳＩは集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもあるが、システムＬＳＩ１００を上記のいずれの集積度で実現した場合も本発明に含まれることは言うまでもない。また、ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【００８９】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて構成要素の集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
（７）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。前記ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。前記ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【００９０】
（８）また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙＤｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記ディジタル信号であるとしてもよい。
【００９１】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【００９２】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（９）これらの実施の形態および変形例の組合せであってもよい。
【産業上の利用可能性】
【００９３】
本発明にかかる木構造を持つ鍵管理ソフトウエアによるデータ暗復号の実行手法は、鍵の削除及び追加の際に、セキュリティ強度を保持して木構造の変更を行うことにより、木構造の深さを短くするという効果を有する。そのため、高速なデータの暗号化を行う機器等の分野で特に有効である。
【図面の簡単な説明】
【００９４】
【図１】本発明の実施の形態１の鍵データベースを示す図
【図２】本発明の実施の形態１のノード情報構造のデータ構造を示すブロック図
【図３】本発明の実施の形態１のハードウエア構成を示すブロック図
【図４】本発明の実施の形態１のソフトウエア構成を示すブロック図
【図５】本発明の実施の形態１の暗号強度比較表のデータ構造を示す図
【図６】本発明の実施の形態１の処理速度比較表のデータ構造を示す図
【図７】本発明の実施の形態１の中間ノードに格納された鍵の削除を示すシーケンス図
【図８】本発明の実施の形態１の中間ノードの探索及び最適接続ノードの探索を示すシーケンス図
【図９】本発明の実施の形態１の新規ノードの作成を示すシーケンス図
【図１０】本発明の実施の形態１の新規ノードへの関連するノードまたはリーフの接続を示すシーケンス図
【図１１】本発明の実施の形態１のパスワードの変更を示すシーケンス図
【図１２】本発明の実施の形態１のデータ処理装置による鍵の登録を示すシーケンス図
【図１３】本発明の実施の形態１の親ノードの暗号アルゴリズムの変更を示すシーケンス図
【図１４】本発明の実施の形態１の処理時間比較表の更新を示すシーケンス図
【図１５】従来の鍵データベースの一例を示す図
【図１６】従来の暗復号処理装置の一例を示す図
【図１７】鍵のロード処理を示すシーケンス図
【図１８】データの暗復号処理を示すシーケンス図
【図１９】従来の端末管理を行う端末管理データベースを示す図
【図２０】従来の鍵データベースの一例を示す図
【符号の説明】
【００９５】
１００、１４６、１６９、２００、２２０、２３０  鍵データベース
１０１、２０１、２２１、２３１  ルート
１０２、１０３、１０４、１０５、１０６、１０７、２２２、２２３、２２５、２３２、２３３、２３４  中間ノード
１０８、１０９、１１０、１１１、１１２、１１３、１１４、１１５、２０２、２０３、２２４、２２６、２２７、２２８、２３５  リーフ
１２０  ノード情報構造
１２１  暗号種別のフィールド
１２２  鍵長のフィールド
１２３  鍵のフィールド
１２４  親ノード識別子のフィールド
１２５  パスワードのフィールド
１２６  その他の付属情報のフィールド
１３０、１５０  データ処理装置
１３１  ＣＰＵ
１３２  メモリ
１３３  記憶装置
１３４、２１０  暗復号処理装置
１３５、１５４  鍵管理ソフトウエア
１３６、１３７、１５１、１５２  アプリケーション
１３８、１５５  オペレーティングシステム
１３９、１５６  デバイスドライバ
１４０、１４１  暗号化されたデータ
１４２、２１１  不揮発性メモリ
１４３、２１２  暗復号エンジン
１４４、２１３  鍵格納部
１４５、２１４  ルート鍵
１５７  鍵登録手段
１５８  鍵削除手段
１５９  データ暗復号処理手段
１６０  処理時間比較表更新手段
１６１  ノード探索部
１６２  ノード接続部
１６３  新規ノード作成部
１６４  ノード更新部
１６５  パスワード変更部
１６６  パスワード確認部
１６７  暗号強度比較表格納部
１６８  処理時間比較表格納部
１７０  暗号強度比較表
１７１  暗号アルゴリズムのフィールド
１７２、１７３、１７４、１７５  同一セキュリティ強度の鍵長のフィールド
１８０  処理時間比較表
１８１  暗復号処理装置タイプのフィールド
１８２  暗号アルゴリズム毎の処理性能比較のフィールド
１８３  暗号アルゴリズムのフィールド
１８４  比較値のフィールド
【図１】
0004995651.tif 000002
【図２】
0004995651.tif 000003
【図３】
0004995651.tif 000004
【図４】
0004995651.tif 000005
【図５】
0004995651.tif 000006
【図６】
0004995651.tif 000007
【図７】
0004995651.tif 000008
【図８】
0004995651.tif 000009
【図９】
0004995651.tif 000010
【図１０】
0004995651.tif 000011
【図１１】
0004995651.tif 000012
【図１２】
0004995651.tif 000013
【図１３】
0004995651.tif 000014
【図１４】
0004995651.tif 000015
【図１５】
0004995651.tif 000016
【図１６】
0004995651.tif 000017
【図１７】
0004995651.tif 000018
【図１８】
0004995651.tif 000019
【図１９】
0004995651.tif 000020
【図２０】
0004995651.tif 000021