(57)【特許請求の範囲】
【請求項１】
暗号化すべき複数個ｎの原データＭk(ｋ＝１〜ｎ)に対して、一の正則行列Ｊと、一のマスターキー行列Ｂとを設定し、前記マスターキー行列Ｂとの間の積の結果が前記正則行列Ｊと等しくなる前記複数個ｎの暗号子行列Ａk(ｋ＝１〜ｎ)を生成する暗号子行列生成部と(Ｂ＊Ａk＝Ｊ)、
各前記暗号子行列Ａk(ｋ＝１〜ｎ)との積が前記正則行列Ｊとそれぞれ等しくなる前記複数個ｎの普通キー行列Ｂk(ｋ＝１〜ｎ)を生成する普通キー生成部と、
前記原データＭkと前記暗号子行列Ａkとの積の結果である暗号化データ行列Ｅkを生成する暗号化データ生成部と、
を有し、
前記マスターキー行列Ｂは、各前記暗号化データ行列Ｅkが復号可能であり、
前記普通キー行列Ｂkは、当該普通キー行列Ｂkとの積の結果が前記正則行列Ｊと等しくなる前記暗号子行列Ａkによって生成された前記暗号化データ行列Ｅkだけが復号可能である暗号化データ生成装置。
【請求項２】
請求項１記載の暗号化データ生成装置によって、暗号化すべき前記複数個ｎの原データＭkに(ｋ＝１〜ｎ)対して、一の正則行列Ｊと、一のマスターキー行列Ｂを設定し、前記マスターキー行列Ｂとの間の積の結果が前記正則行列Ｊと等しくなる複数個ｎの暗号子行列Ａk(ｋ＝１〜ｎ)を生成し、
各前記暗号子行列Ａk(ｋ＝１〜ｎ)との積が前記正則行列Ｊと等しくなる前記複数個ｎの普通キー行列Ｂk(ｋ＝１〜ｎ)を生成し、
前記原データＭkと前記暗号子行列Ａkとの積の結果である暗号化データ行列Ｅkを生成する暗号化データ生成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はツリー構造をとって階層化された複数の平文データを、階層化を保って暗号化すると共に、各階層毎に設定された単一の復号化用の鍵で当該階層および下位の各階層に属する暗号化データを復号化する階層的暗号／復号化方法および装置並びに記録媒体に関するものである。
【０００２】
【従来の技術】
従来、暗号化された音楽データを、インターネットを用いて音楽サーバよりクライアントに配信し、クライアントは配信されて暗号化音楽データを再生装置に保持された秘密鍵で復号化し、復号化した音楽データをアナログ変換して音響信号として再生装置より出力するデータのネットワーク配信が、例えば特開２０００−９００３９号公報に記載されている。
【０００３】
【発明が解決しようとする課題】
しかしながら従来の方法であると、例えばクライアントより特定のジャンル、歌手の音楽データを多数配信して欲しいとの要求があると、音楽サーバは他の音楽データの配信関係から要求に答えるべく連続して多数の音楽データを配信できないため、各音楽データを個別にクライアントに配信することになる。
【０００４】
その結果、音楽データ配信数に応じた課金処理、データ配信処理が煩雑になり、且つ、クライアント側の装置においても音楽データが配信される毎に秘密鍵で暗号化音楽データを復号化するため音響信号への再生に時間を要するという問題点がある。
【０００５】
この発明は上記のような問題点を解消するためになされたものであり、少数データあるいは多数データに拘わらず、データ配信の負荷および配信されたデータ復号化の負荷を単一データの配信の場合と同程度にすることができる階層的暗号／復号化方法及び装置並びに記録媒体を提供することを目的とする。
【０００６】
上記課題を解決するために、本発明は、暗号化すべき複数個ｎの原データＭk(ｋ＝１〜ｎ)に対して、一の正則行列Ｊと、一のマスターキー行列Ｂとを設定し、前記マスターキー行列Ｂとの間の積の結果が前記正則行列Ｊと等しくなる前記複数個ｎの暗号子行列Ａk(ｋ＝１〜ｎ)を生成する暗号子行列生成部と(Ｂ＊Ａk＝Ｊ)、各前記暗号子行列Ａk(ｋ＝１〜ｎ)との積が前記正則行列Ｊとそれぞれ等しくなる前記複数個ｎの普通キー行列Ｂk(ｋ＝１〜ｎ)を生成する普通キー生成部と、前記原データＭkと前記暗号子行列Ａkとの積の結果である暗号化データ行列Ｅkを生成する暗号化データ生成部と、を有し、前記マスターキー行列Ｂは、各前記暗号化データ行列Ｅkが復号可能であり、前記普通キー行列Ｂkは、当該普通キー行列Ｂkとの積の結果が前記正則行列Ｊと等しくなる前記暗号子行列Ａkによって生成された前記暗号化データ行列Ｅkだけが復号可能である暗号化データ生成装置である。
本発明は、上記記載の暗号化データ生成装置によって、暗号化すべき前記複数個ｎの原データＭkに(ｋ＝１〜ｎ)対して、一の正則行列Ｊと、一のマスターキー行列Ｂを設定し、前記マスターキー行列Ｂとの間の積の結果が前記正則行列Ｊと等しくなる複数個ｎの暗号子行列Ａk(ｋ＝１〜ｎ)を生成し、各前記暗号子行列Ａk(ｋ＝１〜ｎ)との積が前記正則行列Ｊと等しくなる前記複数個ｎの普通キー行列Ｂk(ｋ＝１〜ｎ)を生成し、前記原データＭkと前記暗号子行列Ａkとの積の結果である暗号化データ行列Ｅkを生成する暗号化データ生成方法である。
【０００７】
本発明は、図１の基本構成図に示すように暗号／復号化方法がプログラムされたコンピュータにより平文データを暗号化および復号化する階層的暗号／復号化装置であって、暗号化する平文データを入力する平文データ入力手段１と、平文データを複数の領域に分ける領域区分手段２と、各領域間において全ての領域を包括する第１階層と、この第１階層に包括される各領域間に定義した複数の包括関係に従って包括した複数の領域群を、前記第１階層の下位の階層群にグループ化する階層生成手段３と、階層化された領域を暗号化し、前記平文データを暗号化データとすると共に、各階層毎に復号化用の鍵を生成する暗号化手段４Ａ，４Ｂとを備え、前記各鍵は暗号化データ中、対応する階層および当該階層の下位に属する暗号化データを復号化することができる。
【０００８】
本発明は、暗号化手段４Ａは、図２の基本構成図に示すように乱数発生部４１、この発生した乱数に基づき第１階層に属する暗号化データを復号化する第１鍵を生成する第１鍵生成部４２と、この第１鍵に基づいて第１階層に属する領域を暗号化する第１暗号子を生成する第１暗号子生成部４３と、この第１鍵に基づいて下位の階層に属する各領域を暗号化するための第２暗号子を生成する第２暗号子生成部４４と、第２暗号子により暗号化されて下位の階層に属する暗号文を復号化する第２鍵を上記各第２暗号子毎に生成する第２鍵生成部４５と、前記第１，第２暗号子に基づき各領域を暗号化する暗号化部４６とを備えることができる。
【０００９】
本発明は、暗号化手段４Ｂは、図３の基本構成図に示すように乱数発生部４１、この発生した乱数に基づき第１階層に属する暗号化データを復号化する第１鍵を生成する第１鍵生成部４２と、この第１鍵に基づき第１階層に属する領域を暗号化する第１暗号子を生成する第１暗号子生成部４３と、前記第１鍵に基づき下位の階層に属する領域を暗号化する第２暗号子を生成する第２暗号子生成部４４と、この暗号子で生成された暗号化データを復号化する第２鍵を生成する第２鍵生成部４５と、この第２鍵に基づき更に下位に属する領域を暗号化する第３暗号子を生成する第３暗号子生成部４７と、この第３暗号子で生成された暗号化データを復号化する第３鍵を生成する第３鍵生成部４８と、前記第１，第２、第３の暗号子に基づき各領域を暗号化する暗号化部４９とを備え、所定の階層に属する暗号化データは、この暗号化データを復号化する鍵と当該階層より上位の各階層に属する暗号化データを復号化する鍵で復号化することができる。
【００１０】
本発明は、暗号化する平文データを入力する平文データ入力手順と、平文データを複数の領域に分ける領域区分手順と、各領域間において全ての領域を包括する第１階層と、この第１階層に包括される各領域間に定義した複数の包括関係に従って包括した複数の領域群を、前記第１階層の下位の階層群にグループ化する階層生成手順と、階層化された領域を暗号化し、前記平文データを暗号化データとすると共に、各階層毎に復号化用の鍵を生成する暗号化手順とをコンピュータに実行させ平文データを暗号化および復号化するプログラムを記録することができる。
【００１１】
本発明は、乱数を発生する手順、この発生した乱数に基づき第１階層に属する暗号化データを復号化する第１鍵を生成する第１鍵生成手順と、この第１鍵に基づいて第１階層に属する領域を暗号化する第１暗号子を生成する第１暗号子生成手順と、この第１鍵に基づいて下位の階層に属する各領域を暗号化するための第２暗号子を生成する第２暗号子生成手順と、第２暗号子により暗号化されて下位の階層に属する暗号文を復号化する第２鍵を上記各第２暗号子毎に生成する第２鍵生成手順と、前記第１，第２暗号子に基づき各領域を暗号化する暗号化手順とを含むことができる。
【００１２】
本発明は、乱数を発生する手順、この発生した乱数に基づき第１階層に属する暗号化データを復号化する第１鍵を生成する第１鍵生成手順と、この第１鍵に基づき第１階層に属する領域を暗号化する第１暗号子を生成する第１暗号子生成手順と、前記第１鍵に基づき下位の階層に属する領域を暗号化する第２暗号子を生成する第２暗号子生成手順と、この第２暗号子で生成された暗号化データを復号化する第２鍵を生成する第２鍵生成手順と、この第２鍵に基づき更に下位に属する領域を暗号化する第３暗号子を生成する第３暗号子生成手順と、この第３暗号子で生成された暗号化データを復号化する第３鍵を生成する第３鍵生成手順とを含むことができる。
【００１３】
【発明の実施の形態】
実施の形態１．
先ず、本発明の実施の形態を説明する前に階層的暗号化の概念を、例を挙げて説明する。暗号化の方法には大別して、情報の送り手と受け手が同一の鍵を持つ秘密鍵方式と、情報の送り手と受け手が同一の鍵を持つ必要のない公開鍵方式があり、DES (Data Encryption Standard)とRSA (Rivest-Shamir-Adelman)はそれぞれ秘密鍵方式、公開鍵方式の代表的なものである、本発明は秘密鍵方式である。
【００１４】
図４（ａ）に示すように、従来は平文データなる３つの独立した情報を暗号化して秘密情報１，２，３を作成した場合に、各秘密情報を解読（復号化）するには各秘密情報に対応して秘密鍵Ｋ１，Ｋ２，Ｋ３を必要とし、秘密情報が増すに連れて秘密鍵が増え、鍵の管理に関する負担が増える。
【００１５】
しかしながら、図４（ｂ）に示すように、各秘密情報毎の秘密鍵は存在するが、何れの秘密情報をも解読できるマスターキーが存在するように各情報を暗号化し、秘密情報１，２，３を生成する場合を階層数２の階層的暗号化法と呼ぶ。この暗号化化法では、マスターキーは最も強い第１階層の鍵ＫＭ、個別の秘密鍵Ｋ１，Ｋ２，Ｋ３は弱い第２階層の鍵となり、情報を一元管理する場合に秘密鍵の管理の負担が軽減される。
【００１６】
更に、階層数３の階層的暗号化法の一例として図４（ｃ）に示す方法がある。
各情報を極秘情報Ａ、かなり秘匿性を高い情報Ｂ、やや秘密の情報Ｃとし、秘密情報Ａには秘密情報Ｂ，Ｃが包含され、秘密情報Ｂには秘密情報Ｃが包含されている。このように、秘密情報Ａを解読できる秘密鍵ＫＰ１、秘密情報Ｂのみを解読できる秘密鍵ＫＰ２、秘密情報Ｃのみを解読できる秘密鍵ＫＰ３が存在するように一塊りの情報Ａ，Ｂ，Ｃを暗号化して秘密情報Ａ，Ｂ，Ｃを生成する場合を階層数３の階層的暗号化法と呼ぶ。
【００１７】
この暗号化化法では、秘密情報Ｃは秘密鍵ＫＰ１，ＫＰ２，ＫＰ３で、秘密情報Ｂは秘密鍵ＫＰ１，ＫＰ２で、秘密情報Ａは秘密鍵ＫＰ１で、それぞれ復号化できる。従って、秘密鍵ＫＰ１は秘密情報Ａ、秘密情報Ｂ、秘密情報Ｃを解読できる最も強い第１階層の鍵であり、、秘密鍵ＫＰ２は秘密情報Ｂ、秘密情報Ｃを解読できる中間の強さの第２階層の鍵であり、秘密鍵ＫＰ３は秘密情報Ｃのみを解読する最も弱い鍵となる。
【００１８】
次に階層数２の階層的暗号化法の具体的な例を図４（ｂ）に従って説明する。
インターネットを用いた電子マネーにおいて、支払の決済会社（例えばクレジットカードを決済する会社）は各会員毎の秘密鍵（第２階層の鍵）Ｋ１，Ｋ２，Ｋ３とこれら第１階層の秘密鍵であるマスターキー（各会員毎の秘密鍵で暗号化した全ての秘密情報を復号化できる鍵）ＫＭを用意し、各会員にはそれぞれ秘密鍵Ｋ１，Ｋ２，Ｋ３を与える。
【００１９】
会員はインターネットを通してショッピングサイト（電子商店）より買い物をし、支払をクレジットカードによる電子貨幣を使用する際、各会員は与えられた秘密鍵Ｋ１，Ｋ２，Ｋ３で自分の会員のＩＤ（例えばクレジットカード番号）を暗号化し、電子商店に送る。ＩＤは暗号化されているため、電子商店においては読み取ることができず、不正使用に用いられることはない。
【００２０】
電子商店は暗号化されたＩＤを支払いの決済会社に送る。支払いの決済会社は送られてきたＩＤをマスターキーＫＭによりコンピュータの処理で復号化して、会員が幾らのものを購入しようとしているのか、また、会員の銀行口座を調べ、残金より引き落とし可能かを調べる。可能であれば電子商店に送金し、可能でなければ会員にその旨を知らせる。
【００２１】
このように各会員は秘密鍵でも自己のＩＤを暗号化できると共に、支払いの決済会社は各会員の暗号化ＩＤを各秘密鍵Ｋ１，Ｋ２，Ｋ３に頼らずマスターキーＫＭで全て解読できるようにＩＤをコンピュータの処理で階層的暗号化する。
【００２２】
次に階層数３の階層的暗号化法を具体的な例により説明する。
階層数３の階層化暗号化法と通常の暗号化法との違いは、次のとおりである。
通常の暗号化は平文データを３つに分けたとき、それぞれの平文データに隠蔽化（暗号化）を施し、そのための暗号化と共に復号化する秘密鍵が３個必要になる。３つの平文データには包含関係がない。すなわち平文データをＭとし、その部分集合をＭｉとするとき、以下の関係となるように分割をとる必要がある。
【００２３】
Ｍ1∪Ｍ2∪Ｍ3＝Ｍ            ・・（１）
Ｍｉ∩Ｍｊ＝φ（ｉ≠ｊ）      ・・（２）
【００２４】
一方、本階層的暗号化方法でも平文を３つに分けたとき必要となる鍵の個数は３つだが、隠蔽化する平文に包含関係を持たせることができる。即ち以下のような取り方が可能である。
【００２５】
Ｍ1⊂Ｍ2⊂Ｍ3＝Ｍ            ・・（３）
【００２６】
或いは以下のような取り方も可能である。
【００２７】
Ｍ1⊂Ｍ3＝Ｍ                ・・（４）
Ｍ2⊂Ｍ3＝Ｍ                ・・（５）
Ｍ1∩Ｍ2＝φ                ・・（６）
【００２８】
以上のことにより次のような暗号化方法が可能になる。
例えば３章からなる本があり、その本をインターネットで販売する場合、第１章のみを読みたい読者（グループ１）、第１章と第２章を読みたい読者（グループ２）、第１章、第２章、第３章のすべての章を読みたい読者（グループ３）に分けることを考える。
【００２９】
グループ１に対しては第１章のデータは復号化できるが、第２章と第３章のデータは復号化できない鍵を与える。グループ２に対しては第１章、第２章のデータは復号化できるが、第３章のデータは復号化できない鍵を与える。グループ３に対してはすべての章のデータを復号化できる鍵を与える。
【００３０】
このように鍵の復号化可能範囲を設定して全ての章を復号化する鍵の値段、第１章と第２章を復号化する鍵の値段、第１章を復号化する鍵の値段を変える。
従来の暗号化方法ではすべての章を購入したい読者は３つの鍵を購入する必要があるが、本方法で鍵の個数は１個で足りる。
【００３１】
階層数３の階層的暗号化方法における他の応用は次のとおりである。
元の画像を、荒いレゾルーションを持つ第１画像、細かいレゾルーションを持つ第２画像、中間のレゾルーションを持つ画像の線形和と等しいか、ほぼ等しいようにする第３画像の３つの画像に分解する。これは画像の主成分をKarhanen-Loeve分解によって抽出することが可能である。
【００３２】
３つの画像を、画像間に任意に定義した包含関係に従っ階層的に暗号化する。
即ち、第１の暗号化画像は第２、第３の暗号化画像を包含し、第２の暗号化画像は第３の暗号化画像を包含するように階層的に暗号化し、第１の暗号化画像を復号化できる秘密鍵１、第２の暗号化画像を復号化できる秘密鍵２，第３の暗号化画像を解読できる秘密鍵を生成する。
尚、包含関係はこの関係に限るものではない。
【００３３】
秘密鍵１を与えられた人は第１、第２、第３の暗号化画像を復号化して画像再生を行えるため高いレゾルーションを持つ画像を画面上に再生できる。秘密鍵２を与えられて人は第２、第３の暗号化画像を復号化して画像再生できるため中間のレゾルーションを持つ画像を画面上に再生できる。秘密鍵３を与えられて人は第３の暗号化画像を復号化して画像再生できるため荒いレゾルーションを持つ画像を画面上に再生できる。
【００３４】
従来の暗号化法では元の高いレゾルーションを持つ画像を復元するためには３つの鍵が必要だが、本階層数３の階層的暗号化法では、秘密鍵は１個でよい。また荒いレゾルーションを持つ画像データだけを復号化する鍵は安くし、元の高いレゾルーションを持つ画像データを復号化することができる鍵は高くするといったことが可能である。
【００３５】
更に、図４（ｃ）に示すように、極秘情報Ｃ１、かなり秘匿性の高い情報Ｃ２、やや秘密の情報Ｃ３の３つの情報を最終的に復号しないと完全な情報が得られないように、秘密情報Ｃ１，Ｃ２，Ｃ３を３層に階層化した場合、全ての秘密情報を解読できる資格を有する人には秘密鍵ＫＰ１を与えて全ての秘密情報Ｃ１，Ｃ２，Ｃ３の復号を許可し、情報の根幹となる秘密情報Ｃ１を除いて秘密情報Ｃ２，Ｃ３を解読できる資格を有する人には秘密鍵ＫＰ２を与えて秘密情報Ｃ２，Ｃ３の復号を許可し、情報の概要を示す秘密情報Ｃ３を解読できる資格を有する人には秘密鍵ＫＰ３を与えて秘密情報Ｃ３の復号を許可するようにしてもよい。
【００３６】
次に本発明に係る階層的暗号化方法の数学的説明とアルゴリズムを説明する。このアルゴリズムは階層的暗号／復号化方法、記録媒体に記録した階層的暗号／復号化プログラムを成すものである。そして、このプログラムを図示しないコンピュータで処理することで階層的暗号／復号化方法を実施する。また、本発明に係る階層的暗号／復号化装置は図示しないコンピュータのにて構成される。
先ず符号化行列の生成するために、次のような線形方程式系を考える。
【００３７】
【数１】
0004850351.tif 000002
ここでｂijとｃiとはランダムに生成された数である。式の数が変数の数に等しいとき、すなわちｍ＝ｎのとき、解ベクトル  ａ＝（ｘ0，ｘ1，…ｘm-1）が一意的に決まる。 式の数が変数の数より大きい時は、上の方程式系を満たすような解ベクトルは一般に存在しない。式の数が変数の数より少ないときは、すなわち（ｍ〉ｎ）のときは無限個の解ベクトルが存在する。
次に線形方程式系がｎ−個集まった系を考える（以下の議論においてｍ〉ｎを仮定する）。系は行列を用いることによってベクトル表示により次のように表記することができる。
尚、以下各ベクトル表示は各アルファベットに「"」を付して表示する。
【００３８】
Ｂ"Ａ"＝Ｊ"            ・・（８）
【００３９】
ここで、Ｂ"はｂｉｊを要素とする（ｎ×ｍ）行列、Ａ"はｎ−個の解ベクトルａ(ａは（ｍ×１）ベクトルである）を要素とする（ｍ×ｎ）行列、Ｊ"はｃｉｊを要素とする（ｎ×ｎ）行列である（Ｊ"として正則行列を選ぶ。すなわちｄｅｔ（Ｊ）≠０）である。
マスターキーと普通鍵は次のように決定される。
固定されたＢ"とＪ"に対して、非加算無限個の解が存在する。適当に選んだ（Ｂ"，Ｊ"）をマスター鍵と呼ぶ。あるマスターキー（Ｂ"，Ｊ"）に対して、Ｂ"Ａ"i＝Ｊ"を満たす集合｛Ａ"i｝を考える。Ｊ"とＡ"iに対して以下の関係を満たすＢ"は非加算無限個存在する。
【００４０】
Ｂ"Ａ"j＝Ｊ"            ・・（９）
【００４１】
上記のようなＢ"を１個とり、Ｂ"kと書くと、以下の関係が成り立つ。
【００４２】
Ｂ"kＡ"i＝Ｊ"                    ・・（１０）
【００４３】
上記で（Ｂ"k，Ｊ"）を普通鍵と呼ぶ。符号化は次のように行われる。メッセージＭ"（平文）は（ｎ×１）の列ベクトルである。暗号化されたメーセージＥ"を以下のように定義する。
【００４４】
Ｅ"i＝Ａ"iＭ"              ・・（１１）
【００４５】
暗号化されたメッセージＥ"は（ｍ×１）行列である。復号化は次のように行われる。Ｊ"は正則なので、Ｊ"-1が存在する。
【００４６】
Ｊ"-1Ｂ"kＥ"i＝Ｊ"-1Ｂ"kＡ"iＭ"＝Ｊ"-1Ｊ"Ｍ"＝Ｍ"        ・・（１２）
【００４７】
従って普通鍵Ｂkを使って、暗号化メッセージＥ"iから平文Ｍ"を復号化できる。
一方、マスターキーＢ"と平文Ｍ"との間には以下の関係があるからマスターキーＢ"を使って、暗号化メッセージＥ"iを平文Ｍ"に復号化できる。
【００４８】
Ｊ"-1Ｂ"Ｅ"i＝Ｊ"-1Ｂ"Ａ"iＭ"＝Ｊ"-1Ｊ"Ｍ"＝Ｍ"    ・・（１３）
【００４９】
階層数が２の場合の概念図は図５（ａ）に示す通りである。
以上の概念図に沿って階層数が２の場合における階層的暗号化方法のアルゴリズムの概要を説明する。
次の暗号化するに当たり５つのステップをとる。
１）マスターキーＢ１１を生成する
２）そのマスターキーに対応する暗号子Ａ１１，Ａ１２，Ａ１３を生成する
３）それぞれの暗号子Ａ１１，Ａ１２，Ａ１３に対応する普通鍵Ｂ２１，Ｂ２２，Ｂ２３を生成する。
４）暗号子Ａ１１，Ａ１２，Ａ１３によって平文Ｍを隠蔽する。
５）非線形差分方程式で、更に隠蔽をする。
【００５０】
次に上記各ステップに対して説明をする。
（１）マスターキーＢ１１を生成するアルゴリズム
マスターキーＢ１１は（ｍ×ｎ）の行列であり、適当な乱数発生アルゴリズムによって生成する。
【００５１】
（２）マスターキーＢ１１から暗号子Ａ１１，Ａ１２，Ａ１３を生成するアルゴリズムについて述べる。
階層が２のとき、ｍ＝４，ｎ＝３として説明する。この場合次の関係式が成り立つことが要請される。
【００５２】
Ｂ"Ａ"＝Ｊ"        ・・（１４）
【００５３】
ただしＡ"は未知であり、Ｂ"は既知である。Ｊ"は単位行列とする（実際には単位行列である必要はなく、正則行列であることが必要条件である）。
【００５４】
【数２】
0004850351.tif 000003
【００５５】
上記行列式を要素ごとに書くと以下のようになる。
【００５６】
【数３】
0004850351.tif 000004
【００５７】
次に上記行列式おける左辺各項の１個目の項を右辺に移項する。
【００５８】
【数４】
0004850351.tif 000005
【００５９】
ａ00，ａ01，ａ02を乱数によって発生させる。右辺は未知変数を含まなくなるので、Ｃとおく。次に上記式（１７）におけるｂijを要素とする（ｎ×ｎ）行列を以下のように置き、その逆行列を計算する。
【００６０】
【数５】
0004850351.tif 000006
【００６１】
Ｃ"（Ｂ"-ｐａｒｔ）-1を計算すれば上記式（１８）におけるａijを要素とする（ｎ×ｎ）行列であるＡ"の残りの変数も求まる。途中の議論で分かるように、Ａ"の持つ自由度は３であるが、乱数の発生の仕方は無数個存在するので、一個のＡ"に対しては無数個存在する。
【００６２】
（３）暗号子Ａ１１，Ａ１２，Ａ１３から普通鍵Ｂ２１，２２，２３を生成するアルゴリズムについて述べる。階層数が２のとき(ｍ＝４)として説明する。
【００６３】
Ｂ"Ａ"＝Ｊ"        ・・（１９）
【００６４】
Ａ"は既知であり、Ｂ"は未知である。Ｊ"は単位行列とする（単位行列である必要はなく、正則行列であることが必要条件である）。
【００６５】
【数６】
0004850351.tif 000007
【００６６】
単位行列Ｊ"を要素ごとに書くと以下のようになる。
【００６７】
【数７】
0004850351.tif 000008
【００６８】
上記単位行列における左辺各項の１個目の項を右辺に移項する。
【００６９】
【数８】
0004850351.tif 000009
【００７０】
右辺のｂ00，ｂ10，ｂ20を乱数によって発生させる。右辺は未知変数を含まなくなるので、Ｃ"とおく。次に上記式（２２）におけるａijを要素とする（ｎ×ｎ）行列を以下のように置き、その逆行列を計算する。
【００７１】
【数９】
0004850351.tif 000010
【００７２】
Ｃ"（Ａ"-ｐａｒｔ）-1を計算すれば上記式（２２）におけるｂijを要素とする（ｎ×ｎ）行列であるＢ"の残りの変数も求まる。途中の議論で分かるように、Ｂ"の持つ自由度は３であるが、乱数の発生の仕方は無数個存在するので、一個の鍵Ｂ"に対してＡ"は無数個存在する。
【００７３】
なお、次のような方法も可能である（実際のプログラムではこの方法で計算している）。両辺の置換をとると以下のようである。
【００７４】
Ａ"tＢ"t＝Ｊ"t          ・・（２４）
【００７５】
である。Ｂ"'＝Ａ"t、Ａ"'＝Ｂ"tと置けば、Ａ"'は未知、Ｂ"'は既知で前項のアルゴリズムが適用できるので、それからＡ"を求めればよい。
【００７６】
ここまでの演算では平文と暗号化されたメッセージとの間には線形関係が成り立っている。平文と暗号化されたメッセージが同時に利用できない場合、つまり暗号化モジュールが手元にない部外者にとっては暗号化されたメッセージから元の文を復元するためには総当たりしかない。
【００７７】
一方、暗号化モジュールが手元にあって平文と暗号化されたメッセージが同時に利用できる場合でも暗号が破られないようにすることを非線形差分方程式を使って実現する。次の微分方程式を考える。次の式はMackey-Glassの微分方程式と呼ばれるものである。
【００７８】
dx（t）/dt＝（ax（t−τ）／（（１＋x（t−τ）10）））−ｂｘ（ｔ）
・・（２５）
【００７９】
ｘ（ｔ）＝１（ｔ≦０）、ａ＝0.2、b=0.1とすると、右辺はτにかかわらず恒等的にゼロになり、ｘ（ｔ）は定数になるが、ｘ（ｔ）の初期値、あるいはａやｂの値を若干変化させると様々な時系列を生成する。この方程式はパラメータを適当に選ぶと周期解を持たないことが知られている。
【００８０】
Ｅ"i＝Ａ"iＭ"          ・・（２６）
【００８１】
上式を、Ｇ"を上の差分方程式から取り出したベクトル、ｆを適当な非線形関数としてＥ"iを以下のように定義する。
【００８２】
Ｅ"i＝ｆ（Ａ"i，Ｍ"，Ｇ"）        ・・（２７）
【００８３】
Ｇ"はＭ"に依存させることも、独立であるようにとることも可能である。
【００８４】
階層数が３の場合の概念図は図５（ｂ）に示す通りである。
階層数３の場合の階層的暗号方法のアルゴリズムは次のようになる
１）  Ｂ１1（最も強い鍵）を生成する。
２）  Ｂ１１に対して暗号子Ａ１１を生成する。
３）  Ｂ１１に対して暗号子Ａ１２（極秘情報を隠蔽するための暗号子）を生成する
４）  Ａ１１に対して鍵Ｂ２１（中間の強さの鍵）を生成する
５）  Ｂ２１とＢ１１からＡ２１（秘匿性が最も低い情報を隠蔽するための暗号子）を生成する
６）  Ｂ２１とＢ１１からＡ２２（中間極秘情報を隠蔽するための暗号子）を生成する
７）  Ａ２１に対して鍵Ｂ３１（最も弱い鍵）を生成する
８）  Ａ２１，Ａ２２，Ａ２１を使って平文を隠蔽する
９）  非線形差分方程式で、更に隠蔽をする
１）８），９）については階層数が２のときと同様なので、省略する。
従って、先ず５）そして６）について説明する。すなわち鍵Ｂ"１，Ｂ"２が与えられているとき暗号子Ａ"を生成するアルゴリズムは次のとおりである。
【００８５】
ｍ０＝ｍ１＝７        ・・（２９）
２*ｎ０＝ｎ１＝６    ・・（３０）
【００８６】
以上の関係から、Ｂ"１，Ｂ"２は鍵であるから以下の関係が成り立つ。
【００８７】
Ｂ"１*Ａ"１＝Ｊ"      （３１）
Ｂ"２*Ａ"２＝Ｊ"      （３２）
【００８８】
Ｂ"１（３×７），Ｂ"２（３×７）から６行７列行列Ｂ"-combinedと７行６列行列Ａ"-combinedを定義し、これらの行列の積を計算する。
【００８９】
【数１０】
0004850351.tif 000011
ここでＲ"は、乱数を要素に持つ３行３列の行列である。これは前節で述べたｍ１−ｎ１＝１の場合に相当しているので、それを用いてＡ"-combinedを求めることができる。
【００９０】
最後に４）そして７）について説明する。すなわち暗号子Ａ"が与えられているとき鍵Ｂ"生成するアルゴリズムは次のとおりである。
前節とほとんど全く同様である。Ａ"の他にＡ"と全く同じ行数、列数を持つ行列Ａ"-dummyを用意し、Ａ"とＡ"-dummyからＢ"を生成すればよい。
【００９１】
本方法を使って隠蔽する平文の大きさは自由に選ぶことができる。またテキスト、画像データ、音声データ、バイナリデータ等のようなデジタルコンテンツが可能な種類の平文にも適用できる。
【００９２】
【発明の効果】
以上のようにこの発明によれば、第１の階層に属する暗号化データを復号化する鍵は全ての階層の暗号化データを復号化することができ、次に階層に属する暗号化データを復号化する鍵は以下の階層に属する全ての階層の暗号化データを復号化することができるため、鍵の数を減らすことができ鍵管理が容易になるという効果がある。
【００９３】
また、暗号化データを有料でネットワーク配信する場合には、配信されるデータの値段に応じた鍵を送るだけでよく、配信分だけの暗号化データを送信データにして配信するという手間が省け、データ伝送効率が向上するという効果がある。
【図面の簡単な説明】
【図１】図１は本発明に係る階層的暗号／復号化装置の基本構成図である。
【図２】図２は本発明に係る暗号化手段の基本構成図である。
【図３】図３は本発明に係る暗号化手段の他の基本構成図である。
【図４】図４は本発明に係る階層的暗号／復号化方法の概念を説明する図である。
【図５】図５は本発明に係る階層的暗号化方法の概念を説明する図である。
【符号の説明】
１          平分データ入力手段
２          領域区分手段
３          階層生成手段
４Ａ，４Ｂ  暗号化手段
４１        乱数発生部
４２        第１鍵生成部
４３        第１暗号子生成部
４４        第２暗号子生成部
４５        第２鍵生成部
４６，４９  暗号化部
４７        第３暗号子生成部
４８        第３鍵生成部
【図１】
0004850351.tif 000012
【図２】
0004850351.tif 000013
【図３】
0004850351.tif 000014
【図４】
0004850351.tif 000015
【図５】
0004850351.tif 000016