(57)【要約】【課題】  鍵情報をユーザー側で書き込み可能、再生可能にして、グループ内の各人のアクセス権を柔軟に設定、変更できる１組の電子鍵を提供する。【解決手段】  本発明による１組の電子鍵は、コンピュータＰＣに着脱可能であり、鍵情報を記録する鍵情報記録部４１を備え、木構造の階層を有する１組の電子鍵Ｋｊ（ｊ＝１、２、…、ｎ）であって、組に所属する各電子鍵Ｋｊは木構造の階層に対応する各ノードに位置付けられ、各電子鍵Ｋｊは、鍵情報記録部４１に、鍵情報として組を識別するグループ設置番号ＩＩ、位置付けられたノードを識別するノード番号ＮＩ、及びノード番号ＮＩに対応する鍵としてのノード鍵ＮＫを記録可能であり、木構造の上位の電子鍵Ｋｕのノード鍵ＮＫｕから下位の電子鍵Ｋｄのノード鍵ＮＫｄを生成可能であり、下位の電子鍵Ｋｄのノード鍵ＮＫｄから上位の電子鍵Ｋｕのノード鍵ＮＫｕを生成困難である。【選択図】    図２ 
2005347897.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに着脱可能であり、鍵情報を記録する鍵情報記録部を備え、木構造の階層を有する１組の電子鍵であって；
組に所属する各電子鍵は前記木構造の階層に対応する各ノードに位置付けられ；
前記各電子鍵は、前記鍵情報記録部に、鍵情報として前記組を識別するグループ設置番号、位置付けられたノードを識別するノード番号、及び前記ノード番号に対応する鍵としてのノード鍵を記録可能であり；
前記木構造の下位の電子鍵のノード鍵は上位の電子鍵のノード鍵から生成可能であり、前記上位の電子鍵のノード鍵は前記下位の電子鍵のノード鍵から生成困難である；
１組の電子鍵。
【請求項２】
前記鍵情報は、前記コンピュータが暗号化又は／及び復号化に使用する暗号鍵情報を含む；
請求項１に記載の１組の電子鍵。
【請求項３】
前記鍵情報は、前記コンピュータにアクセスを許容してもらうための認証情報又は／及びコンピュータにアクセスを許容するための認証情報を含む；
請求項１又は請求項２に記載の１組の電子鍵。
【請求項４】
前記下位のノード鍵は前記上位のノード鍵から一方向操作を用いて生成される；
請求項１乃至請求項３のいずれか１項に記載の１組の電子鍵。
【請求項５】
前記グループ設置番号及び前記ノード鍵は暗号化されて、前記鍵情報記録部に記録される；
請求項１乃至請求項４のいずれか１項に記載の１組の電子鍵。
【請求項６】
前記木構造の階層に対応する各ノードに位置付けられる各電子鍵の数を零（最上位のルートノード鍵を除く）又は任意の正整数とする；
請求項１乃至請求項５のいずれか１項に記載の１組の電子鍵。
１組の電子鍵。
【請求項７】
木構造の階層を有する１組の電子鍵に所属し、前記木構造の階層に対応する各ノードに位置付けられ、鍵情報として、前記組を識別するグループ設置番号、位置付けられたノードを識別するノード番号、及び前記ノード番号に対応する鍵としてのノード鍵を記録するための鍵情報記録部を有する各電子鍵に、前記鍵情報を書き込み可能なコンピュータであって；
前記グループ設置番号を生成する手段と；
前記ノード番号を設定する手段と；
前記木構造の最上位の電子鍵のノード鍵であるルートノード鍵を生成する手段と；
前記ルートノード鍵を基にして、前記木構造の上位の電子鍵のノード鍵から下位の電子鍵のノード鍵を生成する手段と；
生成された前記グループ設置番号及び前記ノード鍵並びに設定された前記ノード番号を前記各電子鍵に書き込む手段とを備える；
コンピュータ。
【請求項８】
前記木構造の上位の電子鍵のノード鍵から下位の電子鍵のノード鍵を生成する手段は、一方向操作を用いて生成する；
請求項７に記載のコンピュータ。
【請求項９】
前記各電子鍵に記録されるグループ設置番号、ノード番号及びノード鍵は暗号化された情報であり、
前記グループ設置番号、前記ノード番号と前記ノード鍵を暗号化する暗号化鍵、又は／及び前記各電子鍵に記録された暗号化されたグループ設置番号、ノード番号及びノード鍵を復号化する復号化鍵を記録する鍵情報用暗号鍵記録手段と；
前記復号化鍵を用いて復号化されたグループ設置番号及びノード鍵を照合して、前記各電子鍵にアクセスを許容する認証手段とを備える；
請求項７又は請求項８に記載のコンピュータ。
【請求項１０】
前記グループ設置番号及び前記ノード鍵を暗号化した後に、暗号化前の前記グループ設置番号及び前記ノード鍵を消去する手段；
を備える請求項９に記載のコンピュータ。
【請求項１１】
コンピュータに着脱可能であり、鍵情報を記録する鍵情報記録部を備え、木構造の階層を有し、組に所属する各電子鍵は前記木構造の階層に対応する各ノードに位置付けられ、前記鍵情報記録部に、鍵情報として前記組を識別するグループ設置番号、位置付けられたノードを識別するノード番号、及び前記ノード番号に対応する暗号鍵としてのノード鍵とを記録可能である１組の電子鍵の生成方法であって；
前記グループ設置番号を生成する工程と；
前記ノード番号を設定する工程と；
前記木構造の最上位の電子鍵のノード鍵であるルートノード鍵を生成する工程と；
前記ルートノード鍵を基にして、前記木構造の上位の電子鍵のノード鍵から下位の電子鍵のノード鍵を生成する工程と；
生成された前記グループ設置番号及び前記ノード鍵並びに設定された前記ノード番号を前記各電子鍵に書き込む工程とを備える；
１組の電子鍵の生成方法。
【請求項１２】
前記木構造の上位の電子鍵のノード鍵から下位の電子鍵のノード鍵を生成する工程において、一方向操作を用いて生成する；
請求項１１に記載の１組の電子鍵の生成方法。
【請求項１３】
コンピュータに着脱可能であり、鍵情報を記録する鍵情報記録部を備え、木構造の階層を有し、組に所属する各電子鍵は前記木構造の階層に対応する各ノードに位置付けられ、前記鍵情報記録部に、鍵情報として前記組を識別するグループ設置番号、位置付けられたノードを識別するノード番号、及び前記ノード番号に対応する暗号鍵としてのノード鍵を記録可能である１組の電子鍵に属する電子鍵の再生方法であって；
前記グループ設置番号を認証する工程と；
前記ノード番号を設定する工程と；
前記木構造の上位の電子鍵のノード鍵から下位の電子鍵のノード鍵を生成する工程と；
設定された前記ノード番号及び生成された前記ノード鍵を前記電子鍵に書き込む工程とを備える；
電子鍵の再成方法。
【請求項１４】
請求項１１若しくは請求項１２に記載の１組の電子鍵の生成方法又は請求項１３に記載の電子鍵の再生方法をコンピュータに実行させるためのコンピュータ読み取り可能なプログラム。
【請求項１５】
請求項１４に記載のプログラムを記録する記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電子鍵及びその生成方法に関する。詳しくは、暗号化、復号化を行う鍵情報をコンピュータから切り離して保持する電子鍵で、階層構成を有する１組の電子鍵及びその生成方法に関する。
【背景技術】
【０００２】
情報を暗号化、復号化するためには暗号化アルゴリズムとこのアルゴリズムに適用するための鍵情報が必要である。暗号化システムに外部からの攻撃（情報解読の試み）はつき物であるが、この鍵情報をＵＳＢカードやＩＣカードに記録した電子鍵を用いて、コンピュータから物理的に切り離して管理することにより安全性が高くなる。また、電子鍵でコンピュータのログインを自動化できるようにしておくことで、煩雑なパスワードの管理なしにセキュリティを保持できる。
【０００３】
従来、コンピュータが電子鍵から鍵情報を取得するには、各電子鍵に別々のパスワードを付与し、電子鍵がコンピュータに挿入された時に、電子鍵のパスワードを読み出し、パスワードを照合してアクセスを許可し、鍵情報を取得していた。複数の電子鍵にアクセスを許可し、かつこれらの電子鍵に階層構成を持たせグループで使用しようとする場合には、上位の電子鍵に対して下位の電子鍵の全てのパスワードを付与し、下位の電子鍵でアクセス可能な全ての情報に上位の電子鍵でアクセス可能にしていた。
【０００４】
しかし、電子鍵を紛失した場合に、過去に当該電子鍵で暗号化したファイルを使用できなくなるので、電子鍵を再生する必要がある。この場合、従来は、電子鍵の供給者に電子鍵の再生を依頼するのが一般的であった。最近、ユーザ側で再生を行う方式として、例えば新しいＩＣカードに予めコード情報を記録しておき、パスワードをコンピュータから入力すると、コンピュータがパスワードとコード情報から、ハッシュ関数などを用いて紛失した電子鍵と同じ鍵情報を生成し、電子鍵を再生する方法が提案された。（例えば特許文献１参照）
【特許文献１】特開２００２−１７７１１１６号公報（段落００１０〜００１４、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の電子鍵では鍵情報相互に関連性がなく、電子鍵を紛失した場合に供給者側に再生を依頼するか、ユーザー側で再生する場合でも、コード情報を記録したＩＣカードなどを提供してもらう必要があった。この場合、コード情報をＩＣカードなどに書き込んでもらう必要があり、また、ユーザーによるパスワードの管理が必要である。また、パスワードから鍵情報が一意的に定まるので、パスワードとＩＣカードを盗まれると、鍵を再生されるおそれがある。また、１つのＩＣカードのみを再生対象としており、１組の電子鍵を生成、管理するものではない。また、供給者側でも再生のためコード情報などのユーザーの鍵情報を管理しなければならず煩雑であった。
【０００６】
また、階層構成を有する１組の電子鍵を作成しても、組織変更などの際に電子鍵の階層構成をユーザー側で変更できず、柔軟性に欠けていた。
【０００７】
本発明は、階層構成を有する１組の電子鍵に関し、パスワードの管理なしに、高いセキュリティを保持すると同時に、鍵情報をユーザー側で書き込み可能、再生可能にして、グループ内の各人すなわち各電子鍵のアクセス権を柔軟に設定、変更できる１組の電子鍵を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、請求項１に記載の１組の電子鍵は、例えば図１及び図２に示すように、コンピュータＰＣに着脱可能であり、鍵情報を記録する鍵情報記録部４１を備え、木構造の階層を有する１組の電子鍵Ｋｊ（ｊ＝１、２、…、ｎ）であって、組に所属する各電子鍵Ｋｊは木構造の階層に対応する各ノードに位置付けられ、各電子鍵Ｋｊは、鍵情報記録部４１に、鍵情報として組を識別するグループ設置番号ＩＩ、位置付けられたノードを識別するノード番号ＮＩ、及びノード番号ＮＩに対応する鍵としてのノード鍵ＮＫを記録可能であり、木構造の下位の電子鍵Ｋｄのノード鍵ＮＫｄは上位の電子鍵Ｋｕのノード鍵ＮＫｕから生成可能であり、上位の電子鍵Ｋｕのノード鍵ＮＫｕは下位の電子鍵Ｋｄのノード鍵ＮＫｄから生成困難である。
【０００９】
ここにおいて、鍵情報は暗号鍵情報と認証情報とを含み、暗号鍵は平文を暗号化する暗号化鍵、暗号文を復号化する復号化鍵、暗号化と復号化を行う暗号化復号化鍵を総称するものとする。また、木構造とは、１つのノード（節）からスタートして、枝分かれを繰り返して、樹木が枝を伸ばすように広がっていく分岐構造をいう。典型的には全てのノードで２つに枝分かれする２分岐木構造が使用される。なお、階層に対応するノード有するが、分岐を持たない１分岐木構造も木構造に含まれる。また、ノード鍵は典型的にはグループ設置番号ＩＩとノード番号ＮＩとに基いて生成される。また、「記録可能」とはグループ設置番号ＩＩなどの鍵情報が未記録の場合も含むことを意味する。また、コンピュータＰＣへの着脱には、典型的にはＵＳＢポート２などの拡張ポートやＩＣカードリーダ・ライタが使用される。また、「生成困難」とは生成される確率が低いことを意味する。生成不可能であることが理想的であるが、確率の問題なので、確率が極めて低く実質的に不可能であることが好適である。
【００１０】
このように構成すると、木構造の任意の階層構造を有する１組の電子鍵を生成でき、ユーザーは自己の所属グループに適する電子鍵管理システムを構築できる。すなわち、階層構成を有する１組の電子鍵に関し、パスワードの管理なしに、高いセキュリティを保持すると同時に、鍵情報をユーザー側で書き込み可能、再生可能にして、グループ内の各人のアクセス権を柔軟に設定、変更できる１組の電子鍵を提供できる。
【００１１】
また、請求項２に記載の発明は、請求項１に記載の１組の電子鍵において、鍵情報は、コンピュータＰＣが暗号化又は／及び復号化に使用する暗号鍵情報を含む。このように構成すると、鍵情報を暗号化して記録する電子鍵と当該鍵情報の暗号化、復号化を行うツールを有するコンピュータとを切り離すことにより、第三者が鍵情報を取得することや、改ざんすることを防止できる。
【００１２】
また、請求項３に記載の発明は、請求項１又は請求項２に記載の１組の電子鍵において、前記鍵情報は、前記コンピュータにアクセスを許容してもらうための認証情報又は／及びコンピュータにアクセスを許容するための認証情報を含む。このように構成すると、各電子鍵のアクセス権に階層構成を持たせて、グループに適した電子鍵の管理体制を実現できる。
【００１３】
また、請求項４に記載の発明は、請求項１乃至請求項３のいずれか１項に記載の１組の電子鍵において、下位のノード鍵Ｋｄは上位のノード鍵Ｋｕから一方向操作を用いて生成される。ここにおいて一方向操作とは、不可逆操作ともいい、入力から出力を計算するのが容易な反面、出力から入力を算出することが極めて困難である操作のことをいう。一方向操作は、典型的には一方向関数を用いた演算により行われる。一方向関数とは、例えばハッシュ関数のように引数から結果を求めるのは簡単だが、結果から引数を求めることは難しい関数をいう。このように構成すると、上位のノード鍵情報から下位のノード鍵情報を生成できるが、下位のノード鍵情報から上位のノード鍵情報を実質的に生成できないので、各ノード鍵に階層を付与でき、これを用いて電子鍵の階層構造を実現できる。
【００１４】
また、請求項５に記載の発明は、請求項１乃至請求項４のいずれか１項に記載の１組の電子鍵において、グループ設置番号ＩＩ及びノード鍵ＮＫは暗号化されて、鍵情報記録部４１に記録される。このように構成すると、例え電子鍵を紛失し、他人が入手しても、他人に本来のグループ設置番号、ノード番号及びノード鍵を知られるおそれがなく、さらに、電子鍵は当該鍵情報の暗号化、復号化を行うツールを持たないので、高いセキュリティが保持される。また、コンピュータを紛失し、他人が入手した場合でも、コンピュータにアクセスするには所定の電子鍵が必要であり、さらに、コンピュータは暗号文を復号化するための鍵情報を持たないので、高いセキュリティが保持される。
【００１５】
また、請求項６に記載の発明は、請求項１乃至請求項５のいずれか１項に記載の１組の電子鍵において、木構造の階層に対応する各ノードに位置付けられる各電子鍵Ｋｊの数を零（最上位のルートノード鍵を除く）又は任意の正整数とする。このように構成すると、階層構造について、任意の組み合わせの１組の電子鍵を生成でき、グループに適した電子鍵システムを構築できる。
【００１６】
また、請求項７に記載のコンピュータは、例えば図２に示すように、木構造の階層を有する１組の電子鍵に所属し、木構造の階層に対応するノードに位置付けられ、鍵情報として、組を識別するグループ設置番号ＩＩ、位置付けられたノードを識別するノード番号ＮＩ、及びノード番号に対応する鍵としてのノード鍵ＮＫを記録するための鍵情報記録部４１を有する各電子鍵Ｋｊに、鍵情報を書き込み可能なコンピュータＰＣであって、前記グループ設置番号ＩＩを生成する手段６６と、前記ノード番号ＮＩを設定する手段６７と、木構造の最上位の電子鍵のノード鍵であるルートノード鍵ＮＫ１を生成する手段６６と、ルートノード鍵ＮＫ１を基にして、木構造の上位の電子鍵Ｋｕのノード鍵ＮＫｕから下位の電子鍵Ｋｄのノード鍵ＮＫｄを生成する手段６７と、生成されたグループ設置番号ＩＩ及びノード鍵ＮＫ並びに設定されたノード番号ＮＩを各電子鍵Ｋｊに書き込む手段６９とを備える。
【００１７】
ここにおいて、各生成する手段、設定する手段、書き込む手段については、必ずしも独立したハードウエアとして存在している必要はなく、コンピュータの初期化部、演算部、入力部、制御部などの１機能として存在しても良い。このように構成すると、木構造の任意の階層構造を有する１組の電子鍵を生成でき、ユーザーが自己の所属グループに適する電子鍵管理システムを構築するに適したコンピュータを提供できる。
【００１８】
また、請求項８に記載の発明は、請求項７に記載のコンピュータにおいて、木構造の上位の電子鍵Ｋｕのノード鍵ＮＫｕから下位の電子鍵Ｋｄのノード鍵ＮＫｄを生成する手段は、一方向操作を用いて生成する。このように構成すると、上位のノード鍵ＮＫｕから下位のノード鍵ＮＫｄを生成できるが、下位のノード鍵ＮＫｄから上位のノード鍵ＮＫｕを実質的に生成できないので、各ノード鍵に階層を付与でき、これを用いて電子鍵の階層構造を実現できる。
【００１９】
また、請求項９に記載の発明は、請求項７又は請求項８に記載のコンピュータにおいて、各電子鍵Ｋｊに記録されるグループ設置番号ＩＩ、ノード番号ＮＩ及びノード鍵ＮＫは暗号化された情報であり、グループ設置番号ＩＩ、ノード番号ＮＩとノード鍵ＮＫを暗号化する暗号化鍵、又は／及び各電子鍵Ｋｊに記録された暗号化されたグループ設置番号ＩＩ、ノード番号ＮＩ及びノード鍵ＮＫを復号化する復号化鍵を記録する鍵情報用暗号鍵記録手段６２と、復号化鍵を用いて復号化されたグループ設置番号ＩＩ及びノード鍵ＮＫを照合して、各電子鍵Ｋｊにアクセスを許容する認証手段６８とを備える。
【００２０】
このように構成すると、鍵情報を暗号化して記録する電子鍵と当該鍵情報の暗号化、復号化を行うツールを有するコンピュータとを切り離すことにより、第三者が鍵情報を取得することや、改ざんすることを防止できる。
【００２１】
また、請求項１０に記載の発明は、請求項９に記載のコンピュータにおいて、グループ設置番号ＩＩ及びノード鍵ＮＫを暗号化した後に、暗号化前のグループ設置番号ＩＩ及びノード鍵ＮＫを消去する手段７１を備える。このように構成すると、本来の鍵情報を保持しないので、一層セキュリティを高くできる。
【００２２】
また、請求項１１に記載の１組の電子鍵の生成方法は、例えば図４に示すように、コンピュータＰＣに着脱可能であり、鍵情報を記録する鍵情報記録部４１を備え、木構造の階層を有し、組に所属する各電子鍵Ｋｊは木構造の階層に対応する各ノードに位置付けられ、鍵情報記録部４１に、鍵情報として組を識別するグループ設置番号ＩＩ、位置付けられたノードを識別するノード番号ＮＩ、及びノード番号ＮＩに対応する鍵としてのノード鍵ＮＫを記録可能である１組の電子鍵の生成方法であって、グループ設置番号ＩＩを生成する工程（ステップＳ０１２）と、ノード番号ＮＩを設定する工程（ステップＳ０４１）と、木構造の最上位の電子鍵のノード鍵であるルートノード鍵ＮＫ１を生成する工程（ステップＳ０１３）と、ルートノード鍵ＮＫ１を基にして、木構造の上位の電子鍵Ｋｕのノード鍵ＮＫｕから下位の電子鍵Ｋｄのノード鍵ＮＫｄを生成する工程（ステップＳ０４２）と、生成されたグループ設置番号ＩＩ及びノード鍵ＮＫ並びに設定されたノード番号ＮＩを各電子鍵Ｋｊに書き込む工程（ステップＳ０５３）とを備える。
【００２３】
なお、１組の電子鍵の生成には、最初に１組の電子鍵を生成する場合だけでなく、組を拡張生成する場合も含まれ、同じノード番号ＮＩの電子鍵Ｋｊを増数する場合も含まれるものとする。このように構成すると、木構造の任意の階層構造を有する１組の電子鍵を生成でき、ユーザーは自己の所属グループに適する電子鍵管理システムを構築できる。すなわち、階層構成を有する１組の電子鍵に関し、パスワードの管理なしに、高いセキュリティを保持すると同時に、鍵情報をユーザー側で書き込み可能にして、グループ内の各人のアクセス権を柔軟に設定、変更できる１組の電子鍵を提供できる。
【００２４】
また、請求項１２に記載の発明は、請求項１１に記載の１組の電子鍵の生成方法において、木構造の上位の電子鍵Ｋｕのノード鍵ＮＫｕから下位の電子鍵Ｋｄのノード鍵ＮＫｄを生成する工程において、一方向操作を用いて生成する。このように構成すると、上位のノード鍵情報から下位のノード鍵情報を生成できるが、下位のノード鍵情報から上位のノード鍵情報を実質的に生成できないので、各ノード鍵に階層を付与でき、これを用いて電子鍵の階層構造を実現できる。
【００２５】
また、請求項１３に記載の電子鍵の再生方法は、コンピュータＰＣに着脱可能であり、鍵情報を記録する鍵情報記録部４１を備え、木構造の階層を有し、組に所属する各電子鍵Ｋｊは木構造の階層に対応する各ノードに位置付けられ、鍵情報記録部４１に、鍵情報として組を識別するグループ設置番号ＩＩ、位置付けられたノードを識別するノード番号ＮＩ、及びノード番号ＮＩに対応する暗号鍵としてのノード鍵ＮＫを記録可能である１組の電子鍵に属する電子鍵Ｋｊの再成方法であって、グループ設置番号を認証する工程と、ノード番号を設定する工程（ステップＳ０４１）と木構造の上位の電子鍵Ｋｕのノード鍵ＮＫｕから下位の電子鍵Ｋｄのノード鍵ＮＫｄを生成する工程（ステップＳ０４２）と、設定されたノード番号ＮＩ及び生成されたノード鍵ＮＫを電子鍵Ｋｊに書き込む工程（ステップＳ０５３）とを備える。
【００２６】
ここにおいて、再生には、電子鍵を紛失した場合に、紛失した電子鍵と同じ鍵情報を有する電子鍵を生成するだけでなく、組織変更等に合わせて、１組の電子鍵について階層構成を変更するように、電子鍵のノード番号とノード鍵とを書き換える場合も含むものとする。このように構成すると、手持ちの上位の電子鍵Ｋｕを用いていつでも下位の電子鍵Ｋｄを再生可能である。なお、同じノード番号の電子鍵を用いて再生できることは当然である。
【００２７】
また、請求項１４に記載のプログラムは、請求項１１若しくは請求項１２に記載の１組の電子鍵の生成方法又は請求項１３に記載の電子鍵の再生方法をコンピュータＰＣに実行させるためのコンピュータＰＣ読み取り可能なプログラムである。
【００２８】
また、請求項１５に記載の記録媒体は、請求項１３に記載のプログラムを記録する記録媒体である。
【発明の効果】
【００２９】
本発明によれば、階層構成を有する１組の電子鍵に関し、パスワードの管理なしに、高いセキュリティを保持でき、鍵情報をユーザー側で書き込み可能、再生可能であり、グループ内の各人すなわち各電子鍵のアクセス権を柔軟に設定、変更できる１組の電子鍵を提供できる。
【発明を実施するための最良の形態】
【００３０】
以下に図面に基づき本発明の実施の形態について説明する。
【００３１】
本実施の形態における、コンピュータと１組の電子鍵から構成される鍵システムをＦＬＥＫＳ（Ｆｌｅｘｉｂｌｅ  Ｋｅｙ  Ｓｙｓｔｅｍ  の略）と称することとする。このＦＬＥＫＳでは、上位鍵を用いて下位鍵を算出できるが、下位鍵を用いて上位鍵を算出することが極めて困難なので、上位鍵を所持する人は下位鍵を所持する人の情報を管理できると共に、最上級の鍵を基にして、グループの階層構造に適合する１組の電子鍵をフレキシブルに生成、再生可能である。なお、上位の電子鍵をＫｕ、下位の電子鍵をＫｄと表し、また、上位のノード鍵をＮＫｕ、下位のノード鍵をＮＫｄと表すこととする。
【００３２】
図１に、本発明の実施の形態による電子鍵の外形例を示す。本実施の形態におけるＦＬＥＫＳは、１組の電子鍵Ｋｊ（ｊ＝１、２、…、ｎ）とコンピュータＰＣにより構成される。このうち、図には１つの電子鍵Ｋｊのみを代表的に示すが、他の電子鍵も同様の構成である。図１（ａ）は平面図、図１（ｂ）は側面図である。図１において、１は本体部、２はＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）コネクター部である。本体部１には、鍵情報を記録するための鍵情報記録部を有するメモリと鍵情報記録部に記録された鍵情報の出入を制御するためのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）が内蔵されている。ＵＳＢコネクター部２をコンピュータＰＣ（不図示）のＵＳＢポートに挿入することにより、電子鍵ＫｊはＵＳＢ仕様の通信バスを介してコンピュータＰＣと双方向通信が可能である。
【００３３】
すなわち、コンピュータＰＣは、電子鍵Ｋｊの鍵情報記録部に記録された鍵情報を読み出して、当該電子鍵Ｋｊにアクセスを許容するか否かの認証を行い、また、鍵情報を暗号化、復号化するための鍵情報用暗号鍵を用いて鍵情報を復号化し、復号化した鍵情報を平文から暗号文への符号化、暗号文から平文への復号化に使用し、また、１組の電子鍵の各鍵Ｋｊに対して、グループのコンピュータ管理に適した階層構成に対応するように鍵情報を書き込んで、これに適した階層構成を有する１組の電子鍵を作成又は再生できる。また、電子鍵ＫｊをコンピュータＰＣから切り離して携帯、搬送することができ、グループ所属の複数のコンピュータにアクセス可能である。３はキーリング用の孔であり、キーリングを通して、他の電子鍵や他の用途の鍵と束ねて所持可能である。
【００３４】
図２に本発明の実施の形態によるシステム構成例を示す。本実施の形態におけるＦＬＥＫＳは、１組の電子鍵Ｋｊ（ｊ＝１、２、…、ｎ）とコンピュータＰＣにより構成される。図には、電子鍵について１つの電子鍵Ｋｊのみを代表的に示すが、他の電子鍵の構成も同様である。
【００３５】
図２において、電子鍵Ｋｊには、鍵情報を記録するための鍵情報記録部４１を有するメモリ４と、メモリ４に記録された鍵情報の出入（読出、書込）を制御し、また認証のための演算や認証等を行なうＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）５が設けられており、鍵情報記録部４１には、設置番号ＩＩ（ＩＮＳＴＡＬＬＡＴＩＯＮ＿ＩＤ）を記録する第１の設置番号記録部４２、木構造の階層位置を表すノード番号ＮＩ（ＮＯＤＥ＿ＩＤ）を記録するノード番号記録部４３、ノード番号ＮＩに対応する暗号化復号化鍵であるノード鍵ＮＫ（ＮＯＤＥ＿ＫＥＹ）を記録するノード鍵記録部４４、が設けられている。鍵情報記録部４１には例えば電気的に内容を書き換え可能なＲＯＭであるＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）を使用すると、通常はメモリ内容を維持し、必要な場合にのみ書き換えできるので好適である。また、メモリ４はＣＰＵ５の演算などで使用する一時記憶部４５を有し、一時記憶部４５にはＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を使用できる。
【００３６】
これらの、設置番号ＩＩ、ノード番号ＮＩ及びノード鍵ＮＫは暗号化されて記録される。暗号化されることにより、例えば遺失した電子鍵Ｋｊを他人が取得しても、他人は元の鍵情報を知ることができないので、コンピュータＰＣにアクセスできず、コンピュータＰＣの安全性が維持される。また、設置番号ＩＩ、ノード番号ＮＩ及びノード鍵ＮＫを暗号化、復号化する鍵情報用暗号鍵ＥＤはコンピュータＰＣに記録されるので、電子鍵ＫｊもコンピュータＰＣも単独でノード鍵ＮＫを復号化することはできず、電子鍵Ｋｊをコンピュータから切り離しておけば、ハッキングなどの外部からの攻撃に対する耐性（Ｔａｍｐｅｒｉｎｇ  Ｒｅｇｉｓｔａｎｔ）があり、安全性が高いセキュリティが得られる。
【００３７】
ＣＰＵ５は、メモリ４に記録された鍵情報の出入（読出、書込）と電子鍵Ｋｊ内でのデータや信号の流れを制御する第１の制御部５１、認証や暗号化復号化のための演算を行なう第１の演算部５２、第１の演算部５２での演算結果とコンピュータＰＣからの受信結果を比較して認証を行なう第１の認証部５３、乱数を発生する第１の乱数発生部５４、鍵情報用暗号鍵ＥＤや後述する格納鍵ＳＫを使用した後にこれらの鍵情報を消去する第１の消去部５５、コンピュータＰＣと双方向通信を行う第１の通信部５６を有する。
【００３８】
コンピュータＰＣには、内蔵メモリＭＥに、設置番号ＩＩを記録する第２の設置番号記録部６１、設置番号ＩＩ、ノード鍵情報ＮＫ、ノード番号ＮＩを暗号化、復号化するための鍵情報用暗号鍵ＥＤを記録する鍵情報用暗号鍵記録部６２、ＦＬＥＫＳを管理・制御し、生成・再生するためのプログラムを記載した鍵管理ソフトウエアを記録する鍵管理ソフトウエア記録部６３が設けられている。鍵管理ソフトウエアはシステムソフトウエアをインストールする時に記録される。このうち、設置番号ＩＩは暗号化されて記録される。暗号化されることにより、第三者がコンピュータＰＣにアクセスしても、元の設置番号ＩＩが解らないので、コンピュータＰＣの安全性が維持される。また、鍵情報用暗号鍵ＥＤ、鍵管理ソフトウエアも暗号化して記録しても良い。
【００３９】
また、コンピュータＰＣは、キーボード、マウスなどを有し、データやコマンドを入力し、ノード番号を設定する入力部６４、ディスプレイ、プリンタなどを有し、データや演算結果などを出力する出力部６５、初期化を実行し、グループ設置番号を生成し、最上位のノード鍵であるルートノード鍵ＮＫ１（最上位ノード（ＮＯＤＥ＿ＩＤ＝１）をルートノードＮ１と称する）を生成する初期化部６６、ルートノード鍵ＮＫ１を基にして木構造の上位の電子鍵Ｋｕのノード鍵ＮＫｕから下位の電子鍵Ｋｄのノード鍵ＮＫｄを生成し、格納鍵ＳＫを生成し、認証のための演算などを行なう第２の演算部６７、認証のための演算の結果と電子鍵Ｋｊから受信した結果を照合して認証を行なう第２の認証部６８、生成されたグループ設置番号ＩＩ、ノード鍵ＮＫ、設定されたノード番号ＮＩを各電子鍵Ｋｊの鍵情報記録部４１に書き込み、これらの鍵情報を鍵情報記録部４１から読み出し、また、コンピュータＰＣの各部の動作を制御し、鍵管理ソフトウエアを使用して電子鍵Ｋｊの認証や生成を実行させる第２の制御部６９、鍵情報の生成や認証のための演算に使用する乱数を発生する第２の乱数発生部７０、下位の鍵情報を生成した後に生成に使用した上位の鍵情報を消去する、また、格納鍵ＳＫを使用した後に消去する第２の消去部７１、電子鍵Ｋｊと双方向通信を行う第２の通信部７２を有する。
【００４０】
各電子鍵Ｋｊの機能を定める鍵情報（認証情報を含む）は、設置番号ＩＩ（ＩＮＳＴＡＬＬＡＴＩＯＮ＿ＩＤ）、ノード番号ＮＩ（ＮＯＤＥ＿ＩＤ）、ノード鍵ＮＫ（Ｎｏｄｅ  Ｋｅｙ）、格納鍵ＳＫ（Ｓｔｏｒａｇｅ  Ｋｅｙ）の４つである。このうち、前３者が電子鍵Ｋｊに記録される。
【００４１】
設置番号ＩＩはＦＬＥＫＳの所属グループ、すなわち組を識別する番号である。設置番号ＩＩはユーザーがＦＬＥＫＳを購入時に、例えばシステムがＣＤＲＯＭなどで提供するシステムソフトウエアをインストールする時などに、一度だけ４バイト乱数として生成され、コンピュータＰＣの第２の設置番号記録部６１に保持される。第２の設置番号記録部６１には、鍵情報用暗号鍵ＥＤにより暗号化されて記録される。設置番号ＩＩの生成、記録はインストール時に初期化部６６において初期化プログラムが起動され、初期化のプロセスの中で実行される。
【００４２】
１組の電子鍵を生成するときに、組（グループ）に所属する全ての電子鍵Ｋｊに同一の設置番号ＩＩが書き込まれ、同じグループの鍵として管理され、取り扱われる。以降、同じグループの鍵として電子鍵Ｋｊを追加作成する時（生成する時）には、この設置番号ＩＩが使用者グループの識別情報として書き込まれ、また、設置番号ＩＩが書き込まれた電子鍵Ｋｊにノード番号を追加、変更する時（再生する時）には、この設置番号ＩＩが照合され、保持される。
【００４３】
ノード番号ＮＩは、各電子鍵Ｋｊの木構造上の階層に対応する節（ノード）を識別する番号で、例えば階層を１５階とすれば１から３２６５７までの値のいずれかを採用可能である。同じノード番号ＮＩを複数の電子鍵に重複付与することも可能であり、逆にいずれかの節（ノード）に空きが生じても良い。ノード番号ＮＩはグループ内でのアクセス権利の程度を決定する要素である。本実施の形態では、どのノード番号ＮＩをどの電子鍵Ｋｊに書き込むかは、ユーザーが決定でき、ユーザー自身（鍵管理者が代表して行っても良い）で設定（書込）でき、また組織変更などのグループの階層構成の変化に応じてユーザーが再設定することも可能である。コンピュータＰＣは入力部６４でユーザーが設定したノード番号ＮＩを取得する。設定はキーボードなどからデータを入力して行っても良く、ディスプレイ画面に並んだ番号を選択して行なっても良い。これにより、ユーザーはグループの階層構成や状況に応じて、自グループに適した階層構成のＦＬＥＫＳをフレキシブルに構築できる。
【００４４】
ノード鍵ＮＫはノードに対応して、各電子鍵Ｋｊを識別する暗号化復号化鍵であり、本実施の形態では対称鍵暗号方式の（Ｓｙｍｍｅｔｒｉｃ  Ｅｎｃｒｙｐｔｉｏｎ／Ｄｅｃｒｙｐｔｉｏｎ  Ｋｅｙ）の暗号化復号化鍵を使用する。ＦＬＥＫＳにおいて、各電子鍵Ｋｊが実行する暗号化、復号化は全てこのノード鍵ＮＫを用いて行われ、ノード鍵ＮＫはＦＬＥＫＳの機能（暗号化、復号化、認証など）の中で最も重要な鍵である。また、下位のノード鍵ＮＫｄを上位のノード鍵ＮＫｕに基いて算出することが可能であり、逆に下位のノード鍵ＮＫｄから上位のノード鍵ＮＫｕを算出することは実質的に不可能である。このため、上位の電子鍵であれば、同一又は下位の電子鍵のノード鍵の機能を兼用する。この特徴を活かせば、グループ内で情報の共有やアクセスの制限などを適切に設計でき、グループに適した階層構成の１組の電子鍵を生成できる。ノード鍵ＮＫのデータ長は例えば３２バイト長（２５６ｂｉｔ）を使用できるが、別のデータ長とすることも可能である。
【００４５】
対称鍵暗号方式とは、データを暗号化する時と復号化（平文化）する時に同じ鍵を使用する暗号方式であり、最も有名なのは非常に長く幅広い使用実績を持つＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）である。本実施の形態では例えばＧＯＳＴを使用できる。ＧＯＳＴは、対称鍵暗号化方式の一種で、かってソビエト連邦で開発、公開された暗号化方式で鍵長が２５６ビットと長い事が特徴であり、世界中で最も長く広く使用されてきた暗号化方式である米国のＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）のソビエト版といえる。鍵長が長い程、暗号を解読することが困難になるので、極めて高いセキュリティを有するといえる。これに対して公開鍵暗号方式とは、データを暗号化する時には公開鍵を利用し、復号化（平文化）する時には秘密鍵を使用する暗号方式であり、公開鍵は他人に伝えるためのものであることが特徴といえる。
【００４６】
下位のノード鍵ＮＫｄを上位のノード鍵ＮＫｕを用いて算出することが出来、逆に下位のノード鍵ＮＫｄから上位のノード鍵ＮＫｕを算出することを実質的に不可能とし、柔軟なアクセス権を設定する構成は、例えば、階層構成として木構造を利用することにより実現できる。木構造については後述する。
【００４７】
次に、格納鍵ＳＫ（Ｓｔｏｒａｇｅ  Ｋｅｙ）について説明する。設置番号ＩＩ、ノード番号ＮＩおよびノード鍵ＮＫは電子鍵Ｋｊの鍵情報記録部４１に書き込まれる。電子鍵Ｋｊの読み込み、書き込み手順は、ユーザー自身で実行できるように公開されるため、外部の攻撃者が電子鍵Ｋｊを入手してリバースエンジニアリングすることにより、これらの鍵情報を取得する可能性を完全には否定できない。そこで、この種の攻撃に対処するために格納鍵ＳＫが使用される。
【００４８】
格納鍵ＳＫは例えば４バイト（３２ビット）長の乱数で、設置番号ＩＩ（ＩＮＳＴＡＬＬＡＴＩＯＮ＿ＩＤ）を擬似乱数生成関数への乱数シード（種：Ｓｅｅｄ）として利用して生成するので、設定毎に違う値の乱数が生成される。擬似乱数生成関数とは、呼び出し毎に乱数を発生する関数である。乱数シードとは、擬似乱数生成関数を初期化するのに用いられる初期値であり、同一の関数を同じ初期値で初期化すると、以降、繰り返し同じ乱数列が生成される。すなわち、格納鍵ＳＫは設置番号ＩＩを用いて再生できる。格納鍵ＳＫは、第２の乱数発生部７０で必要な場合にその都度生成され、内蔵メモリＭＥなどに記録されることはない。
【００４９】
コンピュータＰＣは電子鍵Ｋｊに鍵情報の書き込み要求を送るときに、格納すべき鍵情報（ノード鍵ＮＫなど）と格納鍵ＳＫを同時に送信する。なお、書き込み要求は通信の盗聴を防ぐために別途、暗号化される（後述の乱数ＰＢを用いて）。電子鍵Ｋｊは書き込み要求を受けると、第１の乱数発生部５４において、格納鍵ＳＫを電子鍵Ｋｊ内の独自の擬似乱数生成関数への乱数シードとして利用し、鍵情報用暗号鍵ＥＤ（３２バイト長のＧＯＳＴ用鍵）を導出する。さらに、導出された鍵情報用暗号鍵ＥＤを利用してコンピュータＰＣから送信された鍵情報（設置番号ＩＩ、ノード番号ＮＩ、ノード鍵ＮＫ）を第１の演算部５２にて暗号化し、第１の制御部５１の制御により鍵情報記録部４１に書き込む。その後、第１の消去部５５にて、格納鍵ＳＫ、暗号化復号化鍵ＥＤおよび平文の鍵情報を消去する。この時点で電子鍵Ｋｊは格納した鍵情報を平文化することが論理的に不可能となる。なお、電子鍵ＫｊとコンピュータＰＣ間の通信は全て第１の制御部５１及び第２の制御部６９の制御により、第１の通信部５６及び第２の通信部７２を介して行われるが、以後説明を省略する。
【００５０】
コンピュータＰＣがこの暗号化された鍵情報（設置番号ＩＩ、ノード番号ＮＩ、ノード鍵ＮＫ）を必要とする時は、コンピュータＰＣから読み出し要求とともに必要な鍵情報（必要なノード鍵ＮＫのノード番号ＮＩなど）および格納鍵ＳＫが電子鍵Ｋｊに送信され、電子鍵は読み出し要求を受けると、第１の乱数発生部５４において、格納鍵ＳＫを電子鍵Ｋｊ内の独自の擬似乱数生成関数への乱数シードとして利用し、鍵情報用暗号鍵ＥＤを導出する。第１の乱数発生部５４で導出された鍵情報用暗号鍵ＥＤを利用して、第１の演算部５２で鍵情報（設置番号ＩＩ、ノード番号ＮＩ、ノード鍵ＮＫ）を復号化した後に、第１の制御部５１の制御によりコンピュータＰＣに送信する。使用した格納鍵ＳＫ及び鍵情報用暗号鍵ＥＤは使用が終了した直後に、第１の消去部５５で消去される。
【００５１】
このように格納鍵ＳＫは必要な場合に再生され、コンピュータＰＣにも電子鍵Ｋｊにも保存されないので、非常に高いセキュリティをもたらす。なお、非常に高いセキュリティを要しない場合には、格納鍵ＳＫで生成された暗号化復号化鍵と異なる暗号化復号化鍵ＥＤを鍵情報用暗号鍵記録部６２に記録し、これを使用しても良い。
【００５２】
図３に、本実施の形態における電子鍵の階層構成の例を示す。グループに所属する各電子鍵Ｋｊは論理的にルートノードＮ１（ノード番号ＮＩが１のノード）を頂点とする２分岐木構造（ｂｉｎａｒｙ  ｔｒｅｅ）上の任意の節（ノード）に配置される。すなわち、各電子鍵Ｋｊは２分岐木構造の階層に対応するノードに位置付けられる。図３の２分岐木構造の各ノードにノード番号ＮＩを付した。この木構造で上位に位置する電子鍵Ｋｕはそれより下位にある全ての電子鍵Ｋｄの機能を兼用する、すなわち下位にある全ての電子鍵Ｋｄに可能な暗号化、復号化を行なうことができる。これを利用することにより組織の上位管理者が部下の管理するデータをアクセス可能になると同時に、部下が木構造上の別の分岐に属するデータへアクセスする事を禁止できる。
【００５３】
さらに、木構造のどのノード鍵ＮＫをいくつ複製するかは最上位管理者が任意に設定できるので、極めて柔軟なデータ管理が可能になる。なお、ルートノードＮ１以外のノードでは鍵数を０としても良い。木構造の分岐の深さは任意であり、例えば１５段まで可能とすると、最大３２６５７個の論理的に異なる鍵を単一のシステム内に設置可能であり、物理的な個数には制限がない。
【００５４】
図３には分岐の深さが３段の例を示す。１番から１５番までの１組の電子鍵が木構造のノード（節）に対応して位置付けられている。木構造上で上位の電子鍵Ｋｕは下位の電子鍵Ｋｄの機能を兼用する。１番の鍵すなわちルートノード鍵Ｋ１は全ての鍵の機能を有する。例えば、４番の電子鍵Ｋ４は自分自身と８番と９番の電子鍵Ｋ８、Ｋ９の機能を有する。８番から１５番までの電子鍵Ｋ８〜Ｋ１５は個人鍵としての機能しか有さない。また、各電子鍵Ｋｊの盗難や紛失に対しても、鍵情報用暗号鍵ＥＤは切り離されたコンピュータＰＣ側に記録されるので解読が困難である上に、上位鍵Ｋｕを用いて下位鍵Ｋｄの再生が可能であり、再生のためには例えばルートノード鍵Ｋ１を１つ保管しておけば良い。なお、ルートノード鍵Ｋ１を２つ分離保管しておけば、１つを紛失してもなお再生可能で安全である。このように再生可能なので、ＦＬＥＫＳのいずれかの機能が失われることはない。
【００５５】
次に、電子鍵Ｋｊの認証レベルについて説明する。
ＦＬＥＫＳは４段階の認証レベルを有しており、アプリケーションに応じて必要な認証レベルを選択して使用できる。認証レベルの低い方式から、デバイス認証、グループ認証、管理者認証、所有者認証の順となる。
【００５６】
デバイス認証（＝ＦＬＥＫＳ認証）は、全電子鍵に共通の認証方式で単にＦＬＥＫＳに属するという事実に基づく認証である。ＵＳＢバスを介して通信している相手がＦＬＥＫＳに属することを確認する。通信プロトコルとして例えばＳＫＩＤ３を使用できる。ＳＫＩＤは対象鍵を利用した認証プロトコルで、レベル３は相互に認証を行うことを意味する。例えば、ＦＬＥＫＳに属する旨の秘密鍵（ＦＬＥＫＳ＿ＩＤ）はあらかじめ電子鍵ＫｊのＣＰＵ５のソフトウエア及びコンピュータＰＣの鍵管理用ソフトウエアに、又は第１の通信部５６及び第２の通信部７２に全製品共通の定数として書き込んでおき、通信開始時にその定数を送受信して認証が行なわれる。
【００５７】
ＳＫＩＤは暗号化の際にハッシュ関数を使用する。ハッシュ関数とは、与えられた原文から固定長の疑似乱数を生成する演算手法を用いる関数で、不可逆な一方向関数を含む。生成した値は「ハッシュ値」と呼ばれ、ハッシュ関数は「要約関数」「メッセージダイジェスト」とも呼ばれる。通信回線を通じてデータを送受信する際に、経路の両端でデータのハッシュ値を求めて両者を比較すれば、データが通信途中で改ざんされていないか調べることができる。不可逆な一方向関数を含むため、ハッシュ値から原文を再現することは実質的にできず、また同じハッシュ値を持つ異なるデータを作成することは極めて困難である。通信の暗号化の補助や、ユーザー認証やデジタル署名などに応用されている。
【００５８】
グループ認証（＝ＩＮＳＴＡＬＬＡＴＩＯＮ認証）は、認証対象の電子鍵が所定のグループに属することを認証する。デバイス認証が成立し、コンピュータＰＣと電子鍵Ｋｊのグループ識別定数（ＩＮＳＴＡＬＬＡＴＩＯＮ＿ＩＤ）が同じ場合に認証される。したがって同じＦＬＥＫＳに属していてもライセンス（購入者）が異なるときは、グループ（組）が異なるものと見做され、認証されない。
【００５９】
ＦＬＥＫＳの電子鍵Ｋｊはユーザーが購入した時点では白紙状態であり、システム管理者が鍵情報の書き込みを行うのが基本である。書き込む情報は大別して、各電子鍵Ｋｊを識別する鍵情報と、購入したソフトウエアライセンス毎に固有のグループ識別定数の２種類である。グループ識別定数を設置番号（ＩＮＳＴＡＬＬＡＴＩＯＮ＿ＩＤ）として、コンピュータＰＣとグループに属する各電子鍵Ｋｊに書き込み、この設置番号（ＩＮＳＴＡＬＬＡＴＩＯＮ＿ＩＤ）を用いてグループ認証が行なわれる。
【００６０】
管理者認証（ｓｕｐｅｒｖｉｓｏｒ  ａｕｔｈｅｎｔｉｃａｔｉｏｎ）は、コンピュータ又はアプリケーションに対して認証対象の電子鍵Ｋｊが同一又は上位の節（ノード）にある場合になされる認証である。すなわち、デバイス認証、グループ認証が成立し、かつ必要とされる認証水準が鍵管理用２分岐木構造（ｂｉｎａｒｙ  ｔｒｅｅ）上で、コンピュータ又はアプリケーションが下位または同一の電子鍵が管理するものである時に認証される。
【００６１】
このレベルの秘密鍵は上述の各電子鍵を識別する鍵情報であり、ノード鍵ＮＫとして各電子鍵Ｋｊのノード鍵記録部４４に記録される。ＦＬＥＫＳではこのノード鍵ＮＫを用いて、２分岐木構造で上位にあるノード鍵ＮＫｕから下位のノード鍵ＮＫｄを算出することが可能であり、他方、下位鍵を算出する計算には例えば一方向関数を利用しているため下位のノード鍵ＮＫｄから上位のノード鍵ＮＫｕを算出することは極めて困難（事実上不可能）である。
【００６２】
所有者認証は、コンピュータＰＣ又はアプリケーションに対して認証対象の電子鍵Ｋｊが同一の節（ノード）にある場合になされる認証である。デバイス認証、グループ認証が成立しかつ必要とされる認証水準が鍵管理用２分木構造（ｂｉｎａｒｙ  ｔｒｅｅ）上で、コンピュータＰＣ又はアプリケーションが同一の電子鍵が管理するものである時のみ認証される。このレベルの秘密鍵は管理者認証と同様に各電子鍵Ｋｊを識別する鍵情報であり、ノード鍵ＮＫとして各電子鍵Ｋｊのノード鍵記録部４４に記録される。
【００６３】
図４に電子鍵Ｋｊの書き込み手順の例を示す。ＦＬＥＫＳは出荷時には鍵情報を含んでおらず、ユーザーは使用状況に応じた木構造のノード配置と鍵の数を入力部６４から設定して、鍵情報を鍵情報記録部４１に書き込むことができる。また、電子鍵Ｋｊを紛失した場合の処置として、白紙状態の予備の電子鍵への鍵情報の書き込みも同様にユーザー自身が行うことができる。
【００６４】
まず、ＦＬＥＫＳ全体を初期化する（ステップＳ００１）。システムユーザーはＦＬＥＫＳの初期化プログラムを起動すると（ステップＳ０１１）、初期化部６６が初期化を実行する。また、初期化の過程で、各電子鍵Ｋｊが所属する組を識別するグループ設置番号ＩＩが生成され（ステップＳ０１２）、グループ設置番号ＩＩに基づいて、最上位ノード（ＮＯＤＥ＿ＩＤ＝１、ルートノード）に対するノード鍵（ルートノード鍵）の値ＮＫ１が乱数として生成される（ステップＳ０１３）。
【００６５】
次に、ユーザーが必要に応じて作成したい電子鍵の木構造上での位置（ノード番号）と個数、すなわち、電子鍵の階層構成を決定する（ステップＳ００２）。
【００６６】
次に、コンピュータＰＣのＵＳＢポートに電子鍵ＫｊのＵＳＢコネクター部２を挿入して通信接続し、コンピュータＰＣと電子鍵Ｋｊ間で相互認証を行なう（ステップＳ００３）。相互認証の手順は、例えば以下の手順による。
【００６７】
まず、コンピュータＰＣは第２の乱数発生部７０で８バイト乱数ＲＡを生成して電子鍵Ｋｊに送信する（ステップＳ０３１）。次に、乱数ＲＡを受信した電子鍵Ｋｊは第１の乱数発生部５４で４バイト乱数ＲＢを生成し、第１の演算部５２でハッシュ関数ＨＫ（ＲＡ，ＲＢ，ＦＬＥＫＳ＿ＩＤ）を計算し、計算結果としてのハッシュ値ＨＫ（ＲＡ，ＲＢ，ＦＬＥＫＳ＿ＩＤ）と乱数ＲＢを送信する（ステップＳ０３２）。ここに、データ列（ＲＡ＋ＲＢ＋ＦＬＥＫＳ＿ＩＤ）は１６バイト情報であり、鍵Ｋは、デバイス認証ＦＬＥＫＳ＿ＩＤまたは端末識別番号ＰＣ＿ＩＤを乱数シードとして擬似乱数生成関数を初期化して生成する３２バイトの乱数鍵であり、デバイス認証ＦＬＥＫＳ＿ＩＤ及び端末識別番号ＰＣ＿ＩＤは共に４バイト定数の通信専用秘密情報であり、ハッシュ関数ＨＫは、データ列（ＲＡ＋ＲＢ＋ＦＬＥＫＳ＿ＩＤ）をＫを鍵として暗号方式ＧＯＳＴを適用して暗号化して、２バイトのハッシュ値である１６ビットのチェックサムＣＲＣ１６（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ  １６）を算出する関数である。
【００６８】
次に、コンピュータＰＣは受信した乱数ＲＢから、第２の演算部６７でハッシュ関数ＨＫ（ＲＡ，ＲＢ，ＦＬＥＫＳ＿ＩＤ）を計算して、第２の認証部６８で計算結果としてのハッシュ値ＨＫ（ＲＡ，ＲＢ，ＦＬＥＫＳ＿ＩＤ）と受信したハッシュ値ＨＫ（ＲＡ，ＲＢ，ＦＬＥＫＳ＿ＩＤ）とを比較する。一致すれば電子鍵ＫｊはコンピュータＰＣに認証される（ステップＳ０３３）。
【００６９】
次に、コンピュータＰＣは第２の演算部６７でハッシュ関数ＨＫ（ＲＢ，ＰＣ＿ＩＤ）を計算して、電子鍵Ｋｊに送信する（ステップＳ０３４）。ここに、データ列（ＲＢ＋ＰＣ＿ＩＤ）は８バイト情報であり、ハッシュ関数ＨＫ（ＲＢ，ＰＣ＿ＩＤ）はデータ列（ＲＢ＋ＰＣ＿ＩＤ）をＫを鍵として暗号方式ＧＯＳＴを適用して暗号化して、２バイトのハッシュ値である１６ビットのチェックサムＣＲＣ１６を算出する。次に、電子鍵Ｋｊは第１の演算部５２でハッシュ関数ＨＫ（ＲＢ，ＰＣ＿ＩＤ）を計算して、第１の認証部Ａ５３で受信したハッシュ値ＨＫ（ＲＢ，ＰＣ＿ＩＤ）と比較する。一致すればコンピュータＰＣは電子鍵Ｋｊに認証される（ステップＳ０３５）。
【００７０】
相互認証が成立した後のコンピュータＰＣと電子鍵Ｋｊ間の通信においては、電子鍵Ｋｊが生成した４バイト乱数ＲＢを乱数シードに使用して、通信データ（先頭２バイトは除く）をＧＯＳＴを利用して暗号化し、送信する。乱数生成は第１の乱数発生部５４、第２の乱数発生部７０で行われ、暗号化は第１の演算部５２、第２の演算部６７で行われる。４バイト乱数ＲＢは通信用セッションキーとして利用され、以後のコンピュータＰＣと電子鍵Ｋｊ間の通信に使用される。
【００７１】
相互認証が成立したら、コンピュータＰＣは、鍵情報のうち、ノード番号ＮＩとノード鍵ＮＫとを取得する（ステップＳ００４）。まず、入力部６４からノード番号ＮＩを設定する（ステップＳ０４１）。設定はキーボードなどでデータを入力して行っても良く、ディスプレイ画面に並んだ番号を選択して行っても良い。次いで第２の演算部６７において、ノード番号ＮＩに対応するノード鍵ＮＫを生成する（ステップＳ０４２）。このときノード鍵ＮＫの算出方法を４ビット木構造を例にして説明する。
【００７２】
図５にノード鍵ＮＫの書き込み手順を説明するための図を示す。図５（ａ）はルートノードＮ１から各ノードへのルートを数字列で表した表であり、図５（ｂ）は木構造上のノードと、各ノードへのルートを数字で表した図である。図５（ａ）の表の数値が図５（ｂ）の各ルートに対応して付されている。
【００７３】
グループ設置番号ＩＩと木構造のルートノード鍵ＮＫ１を基にして、木構造の上位の電子鍵Ｎｕのノード鍵ＮＫｕから順次下位の電子鍵Ｎｄのノード鍵ＮＫｄを生成する（ステップＳ０４２）。この手順は以下のようである。
【００７４】
例として１３番のノードＮ１３を挙げるとルートノードＮ１から１３番ノードＮ１３に到達するには分岐点を右、左、右と辿る。右に分岐を辿ることを１、左に分岐を辿ることを０と表せば、右、左、右は１０１として表現される。この分岐を辿るデータをルートデータと称する。この数字列の最左端に１を常に加えた数字列１１０１が２進方で表したノード番号ＮＩ（この場合１３）となる。ここで最左端の１はルートデータではないが、次に述べる理由で必ず付加する。この例ではノード番号ＮＩは常に４ビットのデータなので最左端の１は格納されているルートデータの幅（この場合３ビット）を決定するためのマークとして必要である。ノード番号ＮＩは例えば１６ビット幅を使用するが、ここでは説明のため簡略化して４ビット幅とする。
【００７５】
１３番のノードＮ１３のノード鍵ＮＫ１３を算出するにはルートノードＮ１と１３番のノードＮ１３までのルートデータ（１０１）と不可逆操作（一方向操作）を利用する。不可逆操作（一方向操作）とは入力から出力を計算するのが容易な反面、出力から入力を算出することが極めて困難である操作のことをいい、「落とし戸関数」（ｔｒａｐ  ｄｏｏｒ  ｆｕｎｃｔｉｏｎ）などとも呼ばれる。不可逆操作（一方向操作）にはさまざまなものがあるが、ここでは対称暗号化方式の一つであるＧＯＳＴ（ソビエト連邦の標準暗号化方式）および着目しているノード鍵ＮＫ自身を利用して、ルート上での次のノード鍵を不可逆計算するものとする。その他、不可逆操作（一方向操作）として一方向関数（Ｏｎｅ  Ｗａｙ  Ｆｕｎｃｔｉｏｎ）や擬似乱数生成関数を利用することも可能である。
【００７６】
ここで、左側の分岐を選択するときの操作を左分岐操作（ＬＥＦＴ  ＲＯＵＴＥ  ＯＰＥＲＡＴＩＯＮ）といい、着目しているノード鍵ＮＫに対して、ノード鍵ＮＫ自身を鍵として使用して暗号方式ＧＯＳＴを用いて暗号化操作を施す。ノード鍵の値ＮＫｊは乱数なので結果も別の乱数となる。また、右側の分岐を選択するときの操作を右分岐操作（ＲＩＧＨＴ  ＲＯＵＴＥ  ＯＰＥＲＡＴＩＯＮ）といい、着目しているノード鍵ＮＫに対して、ノード鍵ＮＫ自身を鍵として使用して暗号方式ＧＯＳＴを用いて復号化操作を施す。ノード鍵の値ＮＫｊは乱数なので結果も別の乱数となる。
【００７７】
ノード鍵ＮＫの算出にあたっては、例えば１３番ノードＮ１３のルートデータ（１０１の部分）に着目すると、始めに右分岐操作を利用してルートノード鍵ＮＫ１を別の乱数に置き換え、この結果をさらに左分岐操作を利用して別の乱数に置き換え、最後にもう一度右分岐操作を利用して別の乱数に置き換えたものがノード１３番のノード鍵ＮＫ１３として生成される。他のノード鍵ＮＫｊについても、類似の操作により生成される。
【００７８】
次に、コンピュータＰＣは、生成した鍵情報（設置番号ＩＩ、ノード番号ＮＩ、ノード鍵ＮＫ）を電子鍵Ｋｊの鍵情報記録部４１へ書き込む（ステップＳ００５）。書き込みのプロセスは、第２の制御部６９により鍵管理ソフトウエアで制御され実行される。コンピュータＰＣは、まず、第２の演算部６７にて、生成した鍵情報（設置番号ＩＩ、ノード番号ＮＩ、ノード鍵ＮＫ）を鍵情報用暗号鍵ＥＤを用いて暗号化する。コンピュータＰＣは、さらに、第２の乱数発生部７０及び第２の演算部６７にて、これらの暗号化された鍵情報を、乱数ＲＢを乱数シード（通信用セッションキー）にして、ＧＯＳＴを利用して暗号化し、第２の制御部７２の制御により電子鍵Ｋｊに送信する（ステップＳ０５１）。電子鍵Ｋｊは暗号化された鍵情報（設置番号ＩＩ、ノード番号ＮＩ、ノード鍵ＮＫ）を受信する。受信された鍵情報（設置番号ＩＩ、ノード番号ＮＩ、ノード鍵ＮＫ）は、第１の乱数発生部５４と第１の演算部５２にて乱数ＲＢを乱数シード（通信用セッションキー）にして、ＧＯＳＴを利用して復号化され、鍵情報用暗号鍵ＥＤを用いて暗号化された鍵情報（設置番号ＩＩ、ノード番号ＮＩ、ノード鍵ＮＫ）となる。
【００７９】
第２の演算部６７にて鍵情報用暗号鍵ＥＤを用いて暗号化されたグループ設置番号ＩＩはコンピュータＰＣ内の第２の設置番号記録部６１に記録される（ステップＳ０５２）。電子鍵ＫｊでＧＯＳＴを利用して、鍵情報用暗号鍵ＥＤを用いて暗号化されたノード鍵ＮＫ、グループ設置番号ＩＩ、ノード番号ＮＩとして復号化された鍵情報は、電子鍵Ｋｊの鍵情報記録部４１に記録される（ステップＳ０５３）。ノード鍵ＮＫはノード鍵記録部４４に、グループ設置番号ＩＩは第１の設置番号記録部４２に、ノード番号ＮＩはノード番号記録部４３にそれぞれ、暗号化された状態で記録される。
【００８０】
これら鍵情報が記録された後に、ノード鍵ＮＫ生成の際に使用した上位のノード鍵（ルートノード鍵ＮＫ１を含む）は第２の消去部７１にてコンピュータＰＣの内蔵メモリＭＥから消去される（ステップＳ０５４）。これにより、新しい出力鍵（下位のノード鍵情報）から元の鍵（上位のノード鍵情報）を計算することは不可能となる。
【００８１】
このノード鍵ＮＫはコンピュータＰＣが何らかの暗号化、復号化処理を行う時に、要求に応じて電子鍵ＫｊからコンピュータＰＣへ送信される。コンピュータＰＣは必要な処理が終了した時に、第２の消去部７１にてノード鍵ＮＫを自己の内蔵メモリＭＥから消去する。
【００８２】
図６に格納鍵ＳＫを用いる場合の、電子鍵Ｋｊの書き込み手順の例を示す。システムの初期化（ステップＳ００１）から鍵情報の取得（ステップＳ００４）のノード番号設定（ステップＳ０４１）までは図４の例と同じであり、その後の工程が変化する。次に、変化する部分を主に説明する。
【００８３】
第２の演算部６７において、ノード鍵ＮＫと共に格納鍵ＳＫを生成する（ステップＳ０４２’）。格納鍵ＳＫは設置番号ＩＩを擬似乱数生成関数への乱数シードとして生成される。
【００８４】
次に、コンピュータＰＣは、生成した鍵情報（設置番号ＩＩ、ノード番号ＮＩ、ノード鍵ＮＫ）を電子鍵Ｋｊの鍵情報記録部４１へ書き込む（ステップＳ００５）。鍵情報を暗号化して送信するステップでは、コンピュータＰＣは、生成した鍵情報（設置番号ＩＩ、ノード番号ＮＩ、ノード鍵ＮＫ）を格納鍵ＳＫと共に、第２の乱数発生部７０及び第２の演算部６７にて、乱数ＲＢを通信用セッションキーとして、ＧＯＳＴを利用して暗号化し、第２の制御部７２の制御により電子鍵Ｋｊに送信する（ステップＳ０５１’）。
【００８５】
電子鍵Ｋｊは暗号化された鍵情報（設置番号ＩＩ、ノード番号ＮＩ、ノード鍵ＮＫ）と格納鍵ＳＫを受信する。第１の乱数発生部５４と第１の演算部５２にて、受信された鍵情報（設置番号ＩＩ、ノード番号ＮＩ、ノード鍵ＮＫ）と格納鍵ＳＫを、乱数ＲＢを通信用セッションキーとしてＧＯＳＴを利用して復号化し、また、復号化された格納鍵ＳＫを擬似乱数生成関数への乱数シードとして利用し、鍵情報用暗号鍵ＥＤを導出する。また、第１の演算部５２にて、鍵情報用暗号鍵ＥＤを用いて鍵情報（設置番号ＩＩ、ノード番号ＮＩ、ノード鍵ＮＫ）を暗号化する。
【００８６】
鍵情報用暗号鍵ＥＤを用いて暗号化されたグループ設置番号ＩＩは、乱数ＲＢを通信用セッションキーとしてコンピュータＰＣに送信され、第２の設置番号記録部６１に記録される（ステップＳ０５２’）。また、鍵情報用暗号鍵ＥＤを用いて暗号化された鍵情報（設置番号ＩＩ、ノード番号ＮＩ、ノード鍵ＮＫ）は、電子鍵Ｋｊの鍵情報記録部４１に記録される（ステップＳ０５３’）。
【００８７】
これら鍵情報が記録された後に、ノード鍵ＮＫ生成の際に使用した上位のノード鍵、鍵情報用暗号鍵ＥＤは、格納鍵ＳＫと共に第２の消去部７１にてコンピュータＰＣの内蔵メモリＭＥから消去される（ステップＳ０５４’）。
【００８８】
コンピュータＰＣは電子鍵Ｋｊに要求した結果送られてきたノード鍵ＮＫのノード番号ＮＩがコンピュータＰＣまたはアプリケーションに与えられたノード番号ＮＩと一致しない場合でも、電子鍵Ｋｊから送られてきたノード鍵ＮＫのノード番号ＮＩが木構造上で上位のものであれば、２つのノード番号ＮＩを参照して、上述したノード鍵ＮＫの生成手順に従って、下位のノード鍵を算出できる。また、送られてきたノード鍵ＮＫのノード番号ＮＩが同一又は木構造上で上位のものでなければ、電子鍵Ｋｊに対してアクセスを拒絶する。
【００８９】
上司は上位の電子鍵Ｋｕを所持し、部下には下位の電子鍵Ｋｄを使用してもらう。上司が特定の部下に秘密情報を送信する場合には、上位のノード鍵ＮＫｕから当該部下のノード番号ＮＩを指定して、下位のノード鍵ＮＫｄを生成し、この生成したノード鍵ＮＫｄを用いて秘密情報を暗号化して送信する。また、特定の部下から秘密情報を受信する場合にも、上位のノード鍵ＮＫｕから当該部下のノード番号ＮＩを指定して、下位のノード鍵ＮＫｄを生成し、この生成したノード鍵ＮＫｄを用いて秘密情報を復号化する。これにより、１対１の暗号化通信が可能になるが、部下が増えても通信相手のノード番号ＮＩを指定するだけで良く、上司は多数の部下のノード鍵ＮＫを所持する必要がなく、システムに予め設定しておく必要もない。
【００９０】
また、同じノード鍵ＮＫを所持する部下同士の通信も可能である。例えば、同じ部の課長は共通のノード鍵で、他部の課長とは異なるノード鍵ＮＫを所持する、その下位では同じ課の係長は共通のノード鍵で、他課の係長とは異なるノード鍵ＮＫを所持する、その下位では同じ係の係員は共通のノード鍵ＮＫを所持するようにすれば、同じ部の課長同士、同じ課の係長同士、同じ係の係員同士の通信が可能になる。また、例えば、１分岐木構造を採用して、全ての部長は共通のノード鍵ＮＫを所持し、全ての課長はその下位の共通のノード鍵ＮＫを所持し、全ての係長はその下位の共通のノード鍵ＮＫを所持し、全ての係員はその下位の共通のノード鍵ＮＫを所持すれば、全ての課長同士、全ての係長同士、全ての係員同士の通信が可能になる。
【００９１】
１組の電子鍵に属する電子鍵Ｋｊを再成するには、生成の手順の一部を用いれば良い。すなわち、グループ設置番号ＩＩが既に生成されていれば、グループ認証するだけで良く、ルートノード鍵ＮＫ１を生成する工程、グループ設置番号ＩＩを電子鍵Ｋｊに書き込む工程は省略でき、ノード番号ＮＩを設定する工程、木構造の上位の電子鍵Ｋｕのノード鍵ＮＫｕから下位の電子鍵Ｋｄのノード鍵ＮＫｄを生成する工程、設定されたノード番号ＩＩ及び生成されたノード鍵ＮＫを電子鍵Ｋｊに書き込む工程を行なえば良い。ここにおいて、再生には、電子鍵を紛失した場合に、紛失した電子鍵と同じ鍵情報を有する電子鍵を生成するだけでなく、組織変更等に合わせて、１組の電子鍵について階層構成を変更するように、電子鍵のノード番号とノード鍵を書き換える場合も含むものとする。
【００９２】
本実施の形態における電子鍵は、以上説明した構成なので、次の機能、効果を有する。
【００９３】
まず、木構造の任意の階層構造を有する１組の電子鍵を生成でき、ユーザーは自己の所属グループに適する電子鍵管理システムを構築できる。すなわち、階層構成を有する１組の電子鍵に関し、パスワードの管理なしに、高いセキュリティを保持すると同時に、鍵情報をユーザー側で書き込み可能、再生可能にして、グループ内の各人のアクセス権を柔軟に設定、変更できる１組の電子鍵を提供できる。
【００９４】
また、本発明の好ましい態様によれば、高い安全性を有する。各電子鍵Ｋｊには鍵情報が記録されているが、これらは暗号化されて保存されており、さらに、これらの鍵情報を複号化するための鍵情報用暗号鍵ＥＤはコンピュータＰＣ側に記録されているため、コンピュータＰＣ単独で又は各電子鍵Ｋｊ単独で鍵情報を複号化することは理論的に不可能である。従ってユーザーが電子鍵を紛失しても、外部の者がハッキングして鍵情報を取得することはできない。
【００９５】
また、本発明の好ましい態様によれば、電子鍵ＫｊとコンピュータＰＣ間の通信は暗号化されて行われ安全性が高い。電子鍵ＫｊはコンピュータＰＣとの間でＳＫＩＤ３による相互認証を行った時点で、電子鍵Ｋｊにより生成された乱数ＰＢを保持し、以降の電子鍵ＫｊとコンピュータＰＣとの間の通信データは乱数ＰＢを用いて暗号化される。この乱数ＰＢはコンピュータＰＣが再認証を行うと新しい別の乱数に変更される。この再認証の発行タイミングはコンピュータＰＣ保有のシステムソフトウエアにより決定される。
【００９６】
また、本発明の好ましい態様によれば、コンピュータＰＣのログインを自動化できる。パスワードを設定しないでコンピュータＰＣを利用することは危険ではあるが、パスワードを入力する手間が面倒なことも事実である。ところで、コンピュータＰＣの起動時に、ＵＳＢポートに予め電子鍵ＫｊのＵＳＢコネクター部２を挿入しておけば自動的にログインが可能である。さらに、上位の電子鍵は下位の電子鍵の機能を兼ねるので、管理者は部下のコンピュータＰＣへのアクセスが可能である。そして、この際に複数の部下のパスワードを管理する必要は全くなく、部下が不意に病欠あるいは退社した場合などでも、容易に部下が管理するコンピュータＰＣのデータ管理を行うことが可能である。
【００９７】
また、従来の電子鍵システムと同様に、保存文書等の暗号化、複号化ができる。重要なデータを暗号化して保存すればデータの違法なコピーや盗難に対して安全である。電子メール等を介してのデータ交換時の暗号化、復号化も可能である。更に本発明によれば、同一のルートノード鍵ＮＫ１から生成した電子鍵Ｋｊは全てデータ交換専用鍵（設置番号ＩＩ、ノード鍵ＮＫ）を別に内蔵しており、これらの鍵情報を用いて、暗号化、複号化が可能であり、予め相手に暗号化鍵を知らせたり、相手の公開鍵を調べたりする必要はなく、暗号化した文書などを送受信できる。
【００９８】
また、従来の電子鍵システムと同様に、プログラム、機器へのアクセス制御の設定が可能である。プログラム、周辺機器などの開発者にとって重要な関心の一つは違法なコピーを防ぐことである。更に本発明のＦＬＥＫＳをシステムに組み込めばソフトや機器を使用する人の認証や制限の設定が可能であり、１つの電子鍵Ｋｊで複数のソフトや機器へのアクセスを可能にでき、フレキシブルな使用が可能である。
【００９９】
また、本発明の応用例として、電子鍵Ｋｊの所有者の認証が可能である。所有者認証により電子鍵Ｋｊの所有者を認証でき、社員等の出勤、退社時間の管理アプリケーションなどに適用可能である。
【０１００】
なお、ＦＬＥＫＳを個人で使用することも可能であるが、以上説明したように、会社等の組織内で使用した時に、その機能を有効に活用することが出来る。
【０１０１】
また、本発明は、上述の１組の電子鍵の生成方法をコンピュータに実行させるためのコンピュータ読み取り可能なプログラムとして実現することも可能であり、かかるプログラムを記録する記録媒体としても実現可能である。プログラムはコンピュータ内蔵のプログラム部に記録されて使用されても良く、外付けの記録装置やＣＤＲＯＭに記録され、プログラム部に読み出されて使用されても良く、またインターネットからプログラム部にダウンロードされて使用されても良い。
【０１０２】
以上、本発明の実施の形態について説明したが、本発明は上記の実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で実施の形態に種々変更を加えられることは明白である。
【０１０３】
例えば、本実施の形態では、全ての鍵情報を暗号化して記録する例を説明したが、一部を暗号化しても記録しても良い。また、本実施の形態では、対称鍵暗号方式の暗号化復号化鍵を採用する例を説明したが、公開鍵など他の方式を採用しても良い。また、暗号化方式としてＧＯＳＴに限られず、ＤＥＳなど他の方式を使用しても良い。また、本実施の形態では、ＧＯＳＴを用いて一方向操作をする例を説明したが、他の一方向関数などによる一方向操作を使用しても良い。
【０１０４】
また、鍵情報用暗号鍵を複数持ち、各鍵情報（設置番号ＩＩ、ノード番号ＮＩ、ノード鍵ＮＫ）を別々の鍵情報用暗号鍵で暗号化、復号化しても良い。また、暗号化復号化に用いるノード鍵と認証を行うノード鍵を別に設けても良い。また、デバイス認証用の秘密鍵を設置番号に埋めこんで、デバイス認証とグループ認証を同時に行うことも可能である。また、コンピュータと電子鍵間の認証は双方向認証に限られず、コンピュータ又は電子鍵のいずれか一方が他方を認証する片方向認証を用いても良い。下位の電子鍵が上位のコンピュータを片方向認証する場合には、電子鍵のノード番号をコンピュータに知らせておく必要があるが、知らせれば、コンピュータで下位のノード鍵を生成し、このノード鍵を用いて認証が可能になる。
【０１０５】
またＩＣカードなどの記憶容量が大きい場合には、鍵生成、再生プログラムや鍵管理ソフトウエアをコンピュータでなく、電子鍵に記憶させることも可能である。また、本実施の形態ではコンピュータ側で上位の電子鍵から下位の電子鍵を生成又は再生する方法を説明したが、電子鍵側で生成又は再生しても良い。なお、この場合には、第１の消去手段は、生成後に上位の電子鍵の鍵情報を消去する機能を有するようにする。また、本実施の形態では、上位の電子鍵から下位の電子鍵を生成又は再生する方法を説明したが、同じノード番号の電子鍵を用いて生成又は再生できることは当然である。また、電子鍵の生成又は再生はユーザに限られず、電子鍵の供給側で行うこともできる。
【産業上の利用可能性】
【０１０６】
本発明は、コンピュータに着脱可能な暗号鍵情報を記録する電子鍵やコンピュータへのアクセスを許容するための認証情報を記録する電子鍵に利用される。
【図面の簡単な説明】
【０１０７】
【図１】本発明の実施の形態による電子鍵の外形例を示す図である。
【図２】本発明の実施の形態によるシステム構成例を示す図である。
【図３】本発明の実施の形態による電子鍵の階層構成の例を示す図である。
【図４】本発明の実施の形態による電子鍵の書き込み手順の例を示す図である。
【図５】本発明の実施の形態によるノード鍵の書き込み手順を説明するための図である。
【図６】格納鍵を用いる場合の電子鍵の書き込み手順の例を示す図である。
【符号の説明】
【０１０８】
１    本体部
２    ＵＳＢコネクター部
３    キーリング孔
４    メモリ
５    ＣＰＵ
４１  鍵情報記録部
４２  第１の設置番号記録部
４３  ノード番号記録部
４４  ノード鍵記録部
４５  一時記憶部
５１  第１の制御部
５２  第１の演算部
５３  第１の認証部
５４  第１の乱数発生部
５５  第１の消去部
５６  第１の通信部
６１  第２の設置番号記録部
６２  鍵情報用暗号鍵記録部
６３  鍵管理ソフトウエア記録部
６４  入力部
６５  出力部
６６  初期化部
６７  第２の演算部
６８  第２の認証部
６９  第２の制御部
７０  第２の乱数発生部
７１  第２の消去部
７２  第２の通信部
Ｋｊ（ｊ＝１、２、…、ｎ）  電子鍵
ＭＥ  コンピュータ内蔵メモリ
ＰＣ  コンピュータ
【図１】
2005347897.tif 000003
【図２】
2005347897.tif 000004
【図３】
2005347897.tif 000005
【図４】
2005347897.tif 000006
【図５】
2005347897.tif 000007
【図６】
2005347897.tif 000008