(57)【要約】【課題】  複数のデータ暗号鍵の生成を効率的に実行する装置、および方法を実現する。【解決手段】  暗号化の必要な多くのデータに対して、それぞれ異なる暗号鍵を適用したｎ重の多重暗号アルゴリズムを行う構成において、複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理により、第１のデータの多重化暗号処理に適用する複数のデータ暗号鍵を生成し、第１のデータに対応する複数のデータ暗号鍵の構成データまたは鍵生成過程における生成データを、複数の異なるマスター鍵を個別に適用した暗号処理における各々の入力値として設定し、第２のデータに対応する複数のデータ暗号鍵の生成処理を実行する構成とした。本構成により、各データ対応の複数のデータ暗号鍵の生成を並列実行可能となり、効率的に複数の鍵を生成することができる。【選択図】  図７
2005094071.tif 000002
【特許請求の範囲】
【請求項１】
暗号鍵生成処理を実行する暗号処理装置であり、
暗号処理対象となる複数のデータ各々に対して多重化暗号処理アルゴリズムを実行するための複数の異なるデータ暗号鍵生成を行う暗号処理部と、
複数の異なるマスター鍵を生成可能なマスター鍵対応情報を格納したメモリとを有し、
前記暗号処理部は、
前記複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理により、第１のデータの多重化暗号処理に適用する複数のデータ暗号鍵を生成し、
前記第１のデータに対応する複数のデータ暗号鍵の構成データまたは鍵生成過程における生成データを、第２のデータに対応する複数のデータ暗号鍵の生成処理として行われる前記複数の異なるマスター鍵を個別に適用した暗号処理における各々の入力値として設定する構成を有することを特徴とする暗号処理装置。
【請求項２】
前記暗号処理部は、
前記複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理を並列処理として実行する構成であることを特徴とする請求項１に記載の暗号処理装置。
【請求項３】
前記暗号処理部は、
前記第１のデータの多重化暗号処理に適用する複数のデータ暗号鍵の生成において、初期値（ＩＶ）を生成し、該初期値を入力値とした暗号処理を実行する構成であることを特徴とする請求項１に記載の暗号処理装置。
【請求項４】
前記暗号処理部は、
複数のデータ暗号鍵各々の生成処理構成として、前段の暗号処理結果を入力として繰り返し暗号処理を実行する多段暗号処理構成を有し、
前記多段暗号処理構成における最終段の暗号処理段の出力値を、異なるデータに対応するデータ暗号鍵の生成処理として行われる暗号処理における各々の入力値として設定する構成を有することを特徴とする請求項１に記載の暗号処理装置。
【請求項５】
前記暗号処理部は、
前記多段暗号処理構成における各段の出力値に基づいて前記データ暗号鍵を生成する構成であることを特徴とする請求項４に記載の暗号処理装置。
【請求項６】
前記暗号処理部は、
複数のデータ暗号鍵各々の生成処理構成として、多段構成を持たない唯一の暗号処理を実行する暗号処理部構成を有し、
前記暗号処理部からの出力値に基づいて前記データ暗号鍵を生成する構成であることを特徴とする請求項１に記載の暗号処理装置。
【請求項７】
前記暗号処理部は、
共通鍵ブロック暗号アルゴリズムに基づく暗号処理を実行する構成であることを特徴とする請求項１に記載の暗号処理装置。
【請求項８】
暗号鍵生成処理を実行する暗号処理装置であり、
暗号処理対象となる複数のデータ各々に対して多重化暗号処理アルゴリズムを実行するための複数の異なるデータ暗号鍵生成を行う暗号処理部と、
複数の異なるマスター鍵を生成可能なマスター鍵対応情報を格納したメモリとを有し、
前記暗号処理部は、
前記複数の異なるマスター鍵を個別に適用し、予め生成したカウンタ値を入力とした独立した複数の暗号処理により、第１のデータの多重化暗号処理に適用する複数のデータ暗号鍵を生成し、
前記第１のデータと異なる各データの多重化暗号処理に適用する複数のデータ暗号鍵の生成における暗号処理においては、前記カウンタ値を、順次増分した値を入力として、前記複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理を実行する構成を有することを特徴とする暗号処理装置。
【請求項９】
前記暗号処理部は、
前記複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理を並列処理として実行する構成であることを特徴とする請求項８に記載の暗号処理装置。
【請求項１０】
前記暗号処理部は、
複数のデータ暗号鍵各々の生成処理構成として、前段の暗号処理結果を入力として繰り返し暗号処理を実行する多段暗号処理構成を有することを特徴とする請求項８に記載の暗号処理装置。
【請求項１１】
前記暗号処理部は、
前記多段暗号処理構成における各段の出力値に基づいて前記データ暗号鍵を生成する構成であることを特徴とする請求項１０に記載の暗号処理装置。
【請求項１２】
前記暗号処理部は、
複数のデータ暗号鍵各々の生成処理構成として、多段構成を持たない唯一の暗号処理を実行する暗号処理部構成を有し、
前記暗号処理部からの出力値に基づいて前記データ暗号鍵を生成する構成であることを特徴とする請求項８に記載の暗号処理装置。
【請求項１３】
前記暗号処理部は、
共通鍵ブロック暗号アルゴリズムに基づく暗号処理を実行する構成であることを特徴とする請求項８に記載の暗号処理装置。
【請求項１４】
暗号処理対象となる複数のデータ各々に対して多重化暗号処理アルゴリズムを実行するための複数の異なるデータ暗号鍵生成を行う暗号鍵生成方法であり、
複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理により、第１のデータの多重化暗号処理に適用する複数のデータ暗号鍵を生成するステップと、
前記第１のデータに対応する複数のデータ暗号鍵の構成データまたは鍵生成過程における生成データを、前記複数の異なるマスター鍵を個別に適用した暗号処理における各々の入力値として設定し、第２のデータに対応する複数のデータ暗号鍵の生成処理を実行するステップと、
を有することを特徴とする暗号鍵生成方法。
【請求項１５】
前記暗号鍵生成方法は、さらに、
前記複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理を並列処理として実行することを特徴とする請求項１４に記載の暗号鍵生成方法。
【請求項１６】
前記暗号鍵生成方法は、さらに、
前記第１のデータの多重化暗号処理に適用する複数のデータ暗号鍵の生成において、初期値（ＩＶ）を生成し、該初期値を入力値とした暗号処理を実行することを特徴とする請求項１４に記載の暗号鍵生成方法。
【請求項１７】
前記暗号鍵生成方法は、さらに、
複数のデータ暗号鍵各々の生成処理構成として、前段の暗号処理結果を入力として繰り返し暗号処理を実行する多段暗号処理を実行し、
前記多段暗号処理における最終段の暗号処理段の出力値を、異なるデータに対応するデータ暗号鍵の生成処理として行われる暗号処理における各々の入力値として設定するステップを有することを特徴とする請求項１４に記載の暗号鍵生成方法。
【請求項１８】
前記暗号鍵生成方法は、さらに、
前記多段暗号処理における各段の出力値に基づいて前記データ暗号鍵を生成することを特徴とする請求項１７に記載の暗号鍵生成方法。
【請求項１９】
前記暗号鍵生成方法は、さらに、
複数のデータ暗号鍵各々の生成処理として、多段暗号処理を適用せず唯一の暗号処理を実行し、該暗号処理出力値に基づいて前記データ暗号鍵を生成することを特徴とする請求項１４に記載の暗号鍵生成方法。
【請求項２０】
前記暗号鍵生成方法は、
共通鍵ブロック暗号アルゴリズムに基づく暗号処理を実行することを特徴とする請求項１４に記載の暗号鍵生成方法。
【請求項２１】
暗号処理対象となる複数のデータ各々に対して多重化暗号処理アルゴリズムを実行するための複数の異なるデータ暗号鍵生成を行う暗号鍵生成方法であり、
複数の異なるマスター鍵を個別に適用し、予め生成したカウンタ値を入力とした独立した複数の暗号処理により、第１のデータの多重化暗号処理に適用する複数のデータ暗号鍵を生成するステップと、
前記第１のデータと異なる各データの多重化暗号処理に適用する複数のデータ暗号鍵の生成における暗号処理において、前記カウンタ値を、順次増分した値を入力として、前記複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理を実行するステップと、
を有することを特徴とする暗号鍵生成方法。
【請求項２２】
前記暗号鍵生成方法は、さらに、
前記複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理を並列処理として実行することを特徴とする請求項２１に記載の暗号鍵生成方法。
【請求項２３】
前記暗号鍵生成方法は、さらに、
複数のデータ暗号鍵各々の生成処理構成として、前段の暗号処理結果を入力として繰り返し暗号処理を実行する多段暗号処理を実行することを特徴とする請求項２１に記載の暗号鍵生成方法。
【請求項２４】
前記暗号鍵生成方法は、さらに、
前記多段暗号処理における各段の出力値に基づいて前記データ暗号鍵を生成することを特徴とする請求項２３に記載の暗号鍵生成方法。
【請求項２５】
前記暗号鍵生成方法は、さらに、
複数のデータ暗号鍵各々の生成処理として、多段構成を持たない唯一の暗号処理を実行し、前記暗号処理出力値に基づいて前記データ暗号鍵を生成することを特徴とする請求項２１に記載の暗号鍵生成方法。
【請求項２６】
前記暗号鍵生成方法は、
共通鍵ブロック暗号アルゴリズムに基づく暗号処理を実行することを特徴とする請求項２１に記載の暗号鍵生成方法。
【請求項２７】
暗号処理対象となる複数のデータ各々に対して多重化暗号処理アルゴリズムを実行するための複数の異なるデータ暗号鍵生成を行うコンピュータ・プログラムであり、
複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理により、第１のデータの多重化暗号処理に適用する複数のデータ暗号鍵を生成するステップと、
前記第１のデータに対応する複数のデータ暗号鍵の構成データまたは鍵生成過程における生成データを、前記複数の異なるマスター鍵を個別に適用した暗号処理における各々の入力値として設定し、第２のデータに対応する複数のデータ暗号鍵の生成処理を実行するステップと、
を有することを特徴とするコンピュータ・プログラム。
【請求項２８】
暗号処理対象となる複数のデータ各々に対して多重化暗号処理アルゴリズムを実行するための複数の異なるデータ暗号鍵生成を行うコンピュータ・プログラムであり、
複数の異なるマスター鍵を個別に適用し、予め生成したカウンタ値を入力とした独立した複数の暗号処理により、第１のデータの多重化暗号処理に適用する複数のデータ暗号鍵を生成するステップと、
前記第１のデータと異なる各データの多重化暗号処理に適用する複数のデータ暗号鍵の生成における暗号処理において、前記カウンタ値を、順次増分した値を入力として、前記複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理を実行するステップと、
を有することを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号処理装置、および暗号鍵生成方法、並びにコンピュータ・プログラムに関する。さらに詳細には、様々なデータの暗号化に適用する異なる暗号鍵の生成処理を効率的に実行することを可能とした暗号処理装置、および暗号鍵生成方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００２】
昨今、ネットワーク通信、電子商取引の発展に伴い、通信におけるセキュリティ確保が重要な問題となっている。セキュリティ確保の１つの方法が暗号技術であり、現在、様々な暗号化手法を用いた通信が実際に行なわれている。
【０００３】
家庭内においても家電機器やコンピュータ、その他の周辺機器をネットワーク接続し、各機器間での通信を可能とした、いわゆるホームネットワークが浸透しつつある。ホームネットワークは、ネットワーク接続機器間で通信を行なうことにより各機器のデータ処理機能を共有することを可能とするものである。ネットワーク接続機器間のコンテンツ送受信等、ユーザに利便性・快適性を提供するものであり、今後、ますます普及することが予測される。
【０００４】
例えば家庭内においてコンテンツサーバに格納したコンテンツをホームネットワークに接続された様々な機器において、再生する場合、暗号化コンテンツおよびその復号に適用する鍵を設定することが必要となる。
【０００５】
しかし、コンテンツサーバに格納するコンテンツは時間とともに増大するが、これらの全てのコンテンツを１つの鍵を適用して暗号化して格納した場合、その１つの鍵の漏洩によって全ての格納コンテンツが復号されてしまい、第三者によって不正アクセスされた場合、コンテンツ漏洩の問題が大きくなってしまう。
【０００６】
そこで、コンテンツサーバに格納するコンテンツをコンテンツ毎に異なる鍵を適用して暗号化すれば、万が一１つの鍵が漏洩しても、そのコンテンツ漏洩の被害は最小限にとどめることが可能となる。さらに、各コンテンツをあるデータ単位毎に分割し、そのそれぞれを異なる鍵により暗号化すれば、被害の範囲をさらに狭めることが可能となる。
【０００７】
すなわち、図１に示すように、コンテンツサーバ１００には、多数の暗号化コンテンツ（コンテンツ１，２，３・・・ｍ）が格納され、それぞれのコンテンツに対応する暗号鍵を異なる鍵（Ｋ１，Ｋ２，Ｋ３・・・Ｋｍ）として設定し、ネットワークに接続された機器１０１，１０２，１０３でコンテンツを利用する場合、暗号化コンテンツと、その対応鍵を転送し、ネットワーク接続機器１０１，１０２，１０３は、暗号化コンテンツに対応する鍵を適用した復号処理を行ってコンテンツを再生、利用するものである。
【０００８】
この場合、暗号化コンテンツの生成や、暗号化コンテンツの復号処理を実行するサーバ、ＰＣ等のネットワーク接続機器を構成する情報処理装置のメモリは限られたメモリ領域であり保持可能なデータ量には限りがあるため、全ての鍵を機器内に保存するのは、メモリ領域を浪費することにつながる。そこで、機器は自身が予め保持する固定サイズの鍵情報Ｋ（マスター鍵：Ｋｍａｓｔｅｒ）から暗号化するコンテンツに対応する複数の鍵を生成可能な構成とするのが好ましい。このような構成とすることで、コンテンツ利用時など、必要に応じてコンテンツ対応の鍵を生成して利用することができる。
【０００９】
マスター鍵から、暗号処理によってコンテンツ対応の鍵を生成するために適用可能なアルゴリズムとしては、共通鍵ブロック暗号方式がある。
【００１０】
共通鍵ブロック暗号アルゴリズムを用いて機器自身が予め保持する固定サイズの鍵情報Ｋ（マスター鍵：Ｋｍａｓｔｅｒ）から、暗号化するコンテンツ等の各種データ毎に対応する複数の鍵を生成する構成を考える。なお、以下では、機器自身が予め保持する固定サイズの鍵情報Ｋ（マスター鍵：Ｋｍａｓｔｅｒ）に基づいて生成する鍵（Ｋ１，Ｋ２，・・Ｋｍ）を適用した暗号化あるいは復号処理を実行するコンテンツやデータまたはそれらをあるデータ単位ごとに分割したものを分割領域データと称する。分割領域データには音楽、画像データ等のコンテンツ、ユーザデータ、プログラムなどの様々なデータが含まれる。
【００１１】
鍵生成に共通鍵ブロック暗号アルゴリズムを利用する場合の処理について、図２を参照して説明する。
【００１２】
（１）まず機器が保有、または乱数等に基づいて生成する初期値（ＩＶ：Ｉｎｉｔｉａｌ  Ｖａｌｕｅ）２０２を機器の保有するマスター鍵Ｋｍａｓｔｅｒ２０１により暗号化し、得られた暗号文を分割領域データ暗号化用の第一の鍵Ｋ１，２１１−１とする。
（２）さらに（１）のプロセスで得られた暗号文としての第一の鍵Ｋ１，２１１−１を再びマスター鍵Ｋｍａｓｔｅｒにより暗号化することで次の分割領域データ暗号化用の鍵Ｋ２，２１１−２を得る。
（３）上記（２）の処理を繰り返すことにより任意個（ｍ個）の鍵Ｋ１，２１１−１〜Ｋｍ，２１１−ｍを生成する。
【００１３】
鍵Ｋ１，２１１−１〜鍵Ｋｍ，２１１−ｍは、分割領域データ１，２１２−１〜分割領域データｍ，２１２−ｍの各々に対応する暗号鍵とされる。
【００１４】
このとき用いられる共通鍵ブロック暗号アルゴリズムとしては、共通鍵暗号方式の代表的な方式である米国連邦標準暗号方式としてのＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）、あるいはＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）のように、単独の共通鍵ブロック暗号を利用する場合と、トリプルＤＥＳの様に共通鍵ブロック暗号を多重に利用することが可能である。多重の暗号化を行うことによりセキュリティレベルを向上させることが可能である。
【００１５】
図３にトリプルＤＥＳの適用による暗号鍵の生成処理例を示す。
（１）まず機器が保有、または乱数等に基づいて生成する初期値（ＩＶ：Ｉｎｉｔｉａｌ  Ｖａｌｕｅ）３０５を機器の保有する第１マスター鍵Ｋｍａｓｔｅｒ１，３０１により暗号化し出力１を生成する。
（２）さらに（１）のプロセスで得られた出力１を第２マスター鍵Ｋｍａｓｔｅｒ２，３０２により復号することで次の出力２を生成する。
（３）さらに（２）のプロセスで得られた出力２を第３マスター鍵Ｋｍａｓｔｅｒ３，３０３により暗号化することで分割領域データ１，３１２に対応する暗号処理用の鍵であるデータ暗号鍵Ｋ１，３１１を得る。
【００１６】
以下、同様の処理を繰り返し、各分割領域データ暗号化用のデータ暗号鍵Ｋ２〜Ｋｍを得る。このように、トリプルＤＥＳを適用することにより、セキュリティレベルの向上は図れるが、処理時間が増大するという問題がある。トリプルＤＥＳの場合は、シングルＤＥＳを適用した場合の３倍の時間を要する。なお、ここではトリプルＤＥＳを適用した例を示しているため、（２）において復号処理が行われているが、単独の共通鍵ブロック暗号を複数回利用する場合には、全て暗号化処理としてもよい。
【００１７】
一般に、鍵生成用の共通鍵ブロック暗号アルゴリズムとしてｎ重に多重化した暗号アルゴリズムを利用した場合、鍵生成にかかる演算時間はＡＥＳやＤＥＳ暗号化処理を単独で利用する場合と比較してｎ倍となる。
【００１８】
さらに、上述したｎ重暗号化及び復号処理（以下、単に暗号処理という）によって生成した複数の鍵を適用した分割データ（分割領域データ）に対する暗号処理についても、トリプルＤＥＳの様に例えばｎ重に多重化した暗号アルゴリズムを利用したとすると、鍵生成処理とデータ暗号化処理の総処理時間としての演算時間はｎ×ｎ倍となり処理コストが著しく増大してしまう。
【００１９】
従来処理方式に従った、機器自身が予め保持する固定サイズの鍵情報Ｋ（マスター鍵：Ｋｍａｓｔｅｒ）から暗号化対象となる分割領域データに対応する複数の鍵を生成する処理シーケンス例について、図４の暗号処理構成図、図５に示すフローチャートに従って説明する。
【００２０】
図４は、共通鍵ブロック暗号アルゴリズムに従って機器自身が予め保持する固定サイズの鍵情報Ｋ（マスター鍵：Ｋｍａｓｔｅｒ）から暗号化する領域（分割領域データ）に対応する複数の鍵を生成する処理を説明する図である。図５はこの複数鍵の生成処理の手順を説明するフロー図である。
【００２１】
各データの定義は、以下の通りである。
Ｋｍａｓｔｅｒ：鍵生成用の秘密情報
ＩＶ  ：鍵生成時の初期値
ｘ    ：分割領域データの個数
ｉ    ：分割領域データ固有の番号
Ｅｂ  ：分割領域データ暗号化用の共通鍵ブロック暗号アルゴリズム
ｋｂ  ：分割領域データ暗号化用の共通鍵ブロック暗号アルゴリズムの鍵のビット長
ｍｂ  ：分割領域データ暗号化用の共通鍵ブロック暗号アルゴリズムのブロックのビッ  Ｋｉ  ：ｉ番目の分割領域データを暗号化するための鍵（ｉ＝１，２，…，ｘ），｜Ｋｉ｜＝ｋｂ
ト長（ｋｂ≧ｍｂ）
Ｅｇ  ：鍵生成用の共通鍵ブロック暗号アルゴリズム
ｋｇ  ：鍵生成用の共通鍵ブロック暗号アルゴリズムの鍵のビット長
ｍｇ  ：鍵生成用の共通鍵ブロック暗号アルゴリズムのブロックのビット長（ｋｇ≧ｍｇ）
ｔ  ：ｋｂ／ｍｇ以上の最小の整数
ＴｒｕｎｃＬ（ｚ１，…，ｚｔ）：ｔ個の入力ｚｉ（１＜ｉ＜ｔ）から、Ｌビットの値を出力する関数
‖  ：ビットの連接
Ｅ（ｋｅｙ，ｍｓｇ）：共通鍵ブロック暗号アルゴリズムＥにおける鍵（ｋｅｙ）による平文（ｍｓｇ）の暗号文
【００２２】
各分割領域データを各々異なる鍵を用いて共通鍵ブロック暗号Ｅｂにより暗号化する場合、複数の鍵が必要となる。これらの鍵を予め機器内に存在するマスター鍵としての秘密情報Ｋｍａｓｔｅｒから共通鍵ブロック暗号Ｅｇを利用して生成する。例えば図４に示す鍵生成ブロック３５１〜３５ｘによって複数（ｘ個）の暗号鍵を生成する。
【００２３】
図５に示す処理シーケンスに従って各分割領域データ用の鍵Ｋｉ（ｉ＝１，…，ｘ）を生成する。機器は、予めメモリに初期値ＩＶ（ｍｂビット）、マスター鍵Ｋｍａｓｔｅｒ（ｋｇビット）を有し、暗号処理を実行する鍵生成処理部にこれらの値を入力して以下の処理を行う。
【００２４】
ステップＳ１０１において、Ｍ０＝ＩＶ（初期値）とし、ステップＳ１０２において、分割領域データの識別値としてのｉをｉ＝０と設定し、ステップＳ１０３において、鍵生成に必要となるＭの識別子であるｓをｓ＝０とする初期設定を行う。
【００２５】
ステップＳ１０４において、ｉにｉ＋１を代入し、ステップＳ１０５において、ｓにｓ＋１を代入する。
【００２６】
ステップＳ１０６において、以下の計算により、Ｍｓを生成する。
Ｍｓ＝Ｅｇ（Ｋｍａｓｔｅｒ，Ｍｓ−１）
【００２７】
Ｅｇ（Ｋａ，Ｍｂ）は、鍵ＫａによりメッセージＭｂを共通鍵ブロック暗号アルゴリズムＥｇを適用して暗号化する処理を意味する。上記処理は、メッセージＭｓ−１をマスター鍵Ｋｍａｓｔｅｒを適用した共通鍵ブロック暗号アルゴリズムＥｇにより暗号化して、メッセージＭｓを生成する処理である。
【００２８】
ステップＳ１０７では、ｔ、すなわち、ｋｂ／ｍｇ以上の最小の整数ｔが、ｓを割り切るか否かを判定し、ＹｅｓならばステップＳ１０８に進む。Ｎｏの場合は、ステップＳ１０５に戻り、ステップＳ１０５以下を繰り返す。
【００２９】
ステップＳ１０８では、ｔ個の値Ｍ（ｉ−１）ｔ＋１，Ｍ（ｉ−１）ｔ＋２，…，Ｍ（ｉ−１）ｔ＋ｔを入力として、以下の式に従って、ｋｂビットの鍵Ｋｉを生成する。
Ｋｉ＝Ｔｒｕｎｃｋｂ（Ｍ（ｉ−１）ｔ＋１，Ｍ（ｉ−１）ｔ＋２，…，Ｍ（ｉ−１）ｔ＋ｔ）
【００３０】
前述したように、ＴｒｕｎｃＬ（ｚ１，…，ｚｔ）は、ｔ個の入力ｚｉ  （１  ＜  ｉ  ＜  ｔ）から、Ｌビットの値を出力する関数であり、上記式は、ｔ個の入力：Ｍ（ｉ−１）ｔ＋１，Ｍ（ｉ−１）ｔ＋２，…，Ｍ（ｉ−１）ｔ＋ｔから、ｋｂビットの鍵Ｋｉを生成する処理である。
【００３１】
ステップＳ１０９では、ｉ＝ｘならば、処理を終了する。そうでなければ、ステップＳ１０４に戻りステップＳ１０４以下を繰り返し実行する。
【００３２】
上述の処理手法によって、１つのマスター鍵Ｋｍａｓｔｅｒから複数の分割領域データ対応の暗号鍵Ｋ１〜Ｋｘを生成することが可能である。前述したように、鍵生成処理に適用するアルゴリズムをトリプルＤＥＳのようにｎ重暗号処理アルゴリズムとすると、セキュリティレベルの向上は図れるが、処理時間が増大するという問題がある。トリプルＤＥＳの場合は、シングルＤＥＳを適用した場合の３倍の時間を要し、ｎ重暗号処理によって生成した複数の鍵を適用した分割データ（分割領域データ）に対する暗号処理についても、トリプルＤＥＳの様に例えばｎ重に多重化した暗号アルゴリズムを利用したとすると、鍵生成処理とデータ暗号化処理の総処理時間としての演算時間はｎ×ｎ倍となり処理コストが著しく増大してしまうという問題がある。
【００３３】
また、上述した従来方法ではｉ番目の鍵Ｋｉを生成するためにＫ１，Ｋ２，…，Ｋｉ―１を全て生成する必要があり、ｉが大きくなればなるほど鍵生成に時間がかかりランダムアクセスに適さないというデメリットがある。
【発明の開示】
【発明が解決しようとする課題】
【００３４】
本発明は、上記問題点に鑑みてなされたものであり、分割領域データの暗号化及び復号演算にｎ重の多重化した共通鍵ブロック暗号アルゴリズムを利用しセキュリティレベルを向上させ、鍵生成には多重化しない共通鍵ブロック暗号アルゴリズムを利用することにより、鍵生成にかかる時間を上記の方式と比較してｎ分の１に短縮することが可能とするとともに、並列処理を行うことも可能な暗号処理装置、および暗号鍵生成方法、並びにコンピュータ・プログラムを提供する。
【００３５】
また、上述したように、従来法ではｉ番目の鍵Ｋｉを生成するためにＫ１，Ｋ２，…，Ｋｉ―１を全て生成する必要があり、ｉが大きくなればなるほど鍵生成に時間がかかりランダムアクセスに適さないというデメリットがあるが、本発明は、このようなデメリットを解消し、任意の分割領域データに対応する鍵を高速に生成可能とした暗号処理装置、および暗号鍵生成方法、並びにコンピュータ・プログラムを提供する。
【課題を解決するための手段】
【００３６】
本発明の第１の側面は、
暗号鍵生成処理を実行する暗号処理装置であり、
暗号処理対象となる複数のデータ各々に対して多重化暗号処理アルゴリズムを実行するための複数の異なるデータ暗号鍵生成を行う暗号処理部と、
複数の異なるマスター鍵を生成可能なマスター鍵対応情報を格納したメモリとを有し、
前記暗号処理部は、
前記複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理により、第１のデータの多重化暗号処理に適用する複数のデータ暗号鍵を生成し、
前記第１のデータに対応する複数のデータ暗号鍵の構成データまたは鍵生成過程における生成データを、第２のデータに対応する複数のデータ暗号鍵の生成処理として行われる前記複数の異なるマスター鍵を個別に適用した暗号処理における各々の入力値として設定する構成を有することを特徴とする暗号処理装置にある。
【００３７】
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理部は、前記複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理を並列処理として実行する構成であることを特徴とする。
【００３８】
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理部は、前記第１のデータの多重化暗号処理に適用する複数のデータ暗号鍵の生成において、初期値（ＩＶ）を生成し、該初期値を入力値とした暗号処理を実行する構成であることを特徴とする。
【００３９】
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理部は、複数のデータ暗号鍵各々の生成処理構成として、前段の暗号処理結果を入力として繰り返し暗号処理を実行する多段暗号処理構成を有し、前記多段暗号処理構成における最終段の暗号処理段の出力値を、異なるデータに対応するデータ暗号鍵の生成処理として行われる暗号処理における各々の入力値として設定する構成を有することを特徴とする。
【００４０】
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理部は、前記多段暗号処理構成における各段の出力値に基づいて前記データ暗号鍵を生成する構成であることを特徴とする。
【００４１】
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理部は、複数のデータ暗号鍵各々の生成処理構成として、多段構成を持たない唯一の暗号処理を実行する暗号処理部構成を有し、前記暗号処理部からの出力値に基づいて前記データ暗号鍵を生成する構成であることを特徴とする。
【００４２】
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理部は、共通鍵ブロック暗号アルゴリズムに基づく暗号処理を実行する構成であることを特徴とする。
【００４３】
さらに、本発明の第２の側面は、
暗号鍵生成処理を実行する暗号処理装置であり、
暗号処理対象となる複数のデータ各々に対して多重化暗号処理アルゴリズムを実行するための複数の異なるデータ暗号鍵生成を行う暗号処理部と、
複数の異なるマスター鍵を生成可能なマスター鍵対応情報を格納したメモリとを有し、
前記暗号処理部は、
前記複数の異なるマスター鍵を個別に適用し、予め生成したカウンタ値を入力とした独立した複数の暗号処理により、第１のデータの多重化暗号処理に適用する複数のデータ暗号鍵を生成し、
前記第１のデータと異なる各データの多重化暗号処理に適用する複数のデータ暗号鍵の生成における暗号処理においては、前記カウンタ値を、順次増分した値を入力として、前記複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理を実行する構成を有することを特徴とする暗号処理装置にある。
【００４４】
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理部は、前記複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理を並列処理として実行する構成であることを特徴とする。
【００４５】
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理部は、複数のデータ暗号鍵各々の生成処理構成として、前段の暗号処理結果を入力として繰り返し暗号処理を実行する多段暗号処理構成を有することを特徴とする。
【００４６】
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理部は、前記多段暗号処理構成における各段の出力値に基づいて前記データ暗号鍵を生成する構成であることを特徴とする。
【００４７】
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理部は、複数のデータ暗号鍵各々の生成処理構成として、多段構成を持たない唯一の暗号処理を実行する暗号処理部構成を有し、前記暗号処理部からの出力値に基づいて前記データ暗号鍵を生成する構成であることを特徴とする。
【００４８】
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理部は、共通鍵ブロック暗号アルゴリズムに基づく暗号処理を実行する構成であることを特徴とする。
【００４９】
さらに、本発明の第３の側面は、
暗号処理対象となる複数のデータ各々に対して多重化暗号処理アルゴリズムを実行するための複数の異なるデータ暗号鍵生成を行う暗号鍵生成方法であり、
複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理により、第１のデータの多重化暗号処理に適用する複数のデータ暗号鍵を生成するステップと、
前記第１のデータに対応する複数のデータ暗号鍵の構成データまたは鍵生成過程における生成データを、前記複数の異なるマスター鍵を個別に適用した暗号処理における各々の入力値として設定し、第２のデータに対応する複数のデータ暗号鍵の生成処理を実行するステップと、
を有することを特徴とする暗号鍵生成方法にある。
【００５０】
さらに、本発明の暗号鍵生成方法の一実施態様において、前記暗号鍵生成方法は、さらに、前記複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理を並列処理として実行することを特徴とする。
【００５１】
さらに、本発明の暗号鍵生成方法の一実施態様において、前記暗号鍵生成方法は、さらに、前記第１のデータの多重化暗号処理に適用する複数のデータ暗号鍵の生成において、初期値（ＩＶ）を生成し、該初期値を入力値とした暗号処理を実行することを特徴とする。
【００５２】
さらに、本発明の暗号鍵生成方法の一実施態様において、前記暗号鍵生成方法は、さらに、複数のデータ暗号鍵各々の生成処理構成として、前段の暗号処理結果を入力として繰り返し暗号処理を実行する多段暗号処理を実行し、前記多段暗号処理における最終段の暗号処理段の出力値を、異なるデータに対応するデータ暗号鍵の生成処理として行われる暗号処理における各々の入力値として設定するステップを有することを特徴とする。
【００５３】
さらに、本発明の暗号鍵生成方法の一実施態様において、前記暗号鍵生成方法は、さらに、前記多段暗号処理における各段の出力値に基づいて前記データ暗号鍵を生成することを特徴とする。
【００５４】
さらに、本発明の暗号鍵生成方法の一実施態様において、前記暗号鍵生成方法は、さらに、複数のデータ暗号鍵各々の生成処理として、多段暗号処理を適用せず唯一の暗号処理を実行し、該暗号処理出力値に基づいて前記データ暗号鍵を生成することを特徴とする。
【００５５】
さらに、本発明の暗号鍵生成方法の一実施態様において、前記暗号鍵生成方法は、共通鍵ブロック暗号アルゴリズムに基づく暗号処理を実行することを特徴とする。
【００５６】
さらに、本発明の第４の側面は、
暗号処理対象となる複数のデータ各々に対して多重化暗号処理アルゴリズムを実行するための複数の異なるデータ暗号鍵生成を行う暗号鍵生成方法であり、
複数の異なるマスター鍵を個別に適用し、予め生成したカウンタ値を入力とした独立した複数の暗号処理により、第１のデータの多重化暗号処理に適用する複数のデータ暗号鍵を生成するステップと、
前記第１のデータと異なる各データの多重化暗号処理に適用する複数のデータ暗号鍵の生成における暗号処理において、前記カウンタ値を、順次増分した値を入力として、前記複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理を実行するステップと、
を有することを特徴とする暗号鍵生成方法にある。
【００５７】
さらに、本発明の暗号鍵生成方法の一実施態様において、前記暗号鍵生成方法は、さらに、前記複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理を並列処理として実行することを特徴とする。
【００５８】
さらに、本発明の暗号鍵生成方法の一実施態様において、前記暗号鍵生成方法は、さらに、複数のデータ暗号鍵各々の生成処理構成として、前段の暗号処理結果を入力として繰り返し暗号処理を実行する多段暗号処理を実行することを特徴とする。
【００５９】
さらに、本発明の暗号鍵生成方法の一実施態様において、前記暗号鍵生成方法は、さらに、前記多段暗号処理における各段の出力値に基づいて前記データ暗号鍵を生成することを特徴とする。
【００６０】
さらに、本発明の暗号鍵生成方法の一実施態様において、前記暗号鍵生成方法は、さらに、複数のデータ暗号鍵各々の生成処理として、多段構成を持たない唯一の暗号処理を実行し、前記暗号処理出力値に基づいて前記データ暗号鍵を生成することを特徴とする。
【００６１】
さらに、本発明の暗号鍵生成方法の一実施態様において、前記暗号鍵生成方法は、共通鍵ブロック暗号アルゴリズムに基づく暗号処理を実行することを特徴とする。
【００６２】
さらに、本発明の第５の側面は、
暗号処理対象となる複数のデータ各々に対して多重化暗号処理アルゴリズムを実行するための複数の異なるデータ暗号鍵生成を行うコンピュータ・プログラムであり、
複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理により、第１のデータの多重化暗号処理に適用する複数のデータ暗号鍵を生成するステップと、
前記第１のデータに対応する複数のデータ暗号鍵の構成データまたは鍵生成過程における生成データを、前記複数の異なるマスター鍵を個別に適用した暗号処理における各々の入力値として設定し、第２のデータに対応する複数のデータ暗号鍵の生成処理を実行するステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【００６３】
さらに、本発明の第６の側面は、
暗号処理対象となる複数のデータ各々に対して多重化暗号処理アルゴリズムを実行するための複数の異なるデータ暗号鍵生成を行うコンピュータ・プログラムであり、
複数の異なるマスター鍵を個別に適用し、予め生成したカウンタ値を入力とした独立した複数の暗号処理により、第１のデータの多重化暗号処理に適用する複数のデータ暗号鍵を生成するステップと、
前記第１のデータと異なる各データの多重化暗号処理に適用する複数のデータ暗号鍵の生成における暗号処理において、前記カウンタ値を、順次増分した値を入力として、前記複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理を実行するステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【００６４】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、ＣＤやＦＤ、ＭＯなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００６５】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００６６】
本発明の構成によれば、暗号化の必要な多くのデータに対して、それぞれ異なる暗号鍵を適用したｎ重の多重暗号アルゴリズムを行う構成において、各データ対応の鍵をマスター鍵に基づいて生成することを可能とするとともに、複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理により、第１のデータの多重化暗号処理に適用する複数のデータ暗号鍵を生成し、第１のデータに対応する複数のデータ暗号鍵の構成データまたは鍵生成過程における生成データを、複数の異なるマスター鍵を個別に適用した暗号処理における各々の入力値として設定し、第２のデータに対応する複数のデータ暗号鍵の生成処理を実行する構成とし、また、各データ対応の複数のデータ暗号鍵の生成を並列実行可能な構成としたので、効率的に複数の鍵を生成することができる。また、暗号鍵生成処理を実行する装置に格納する情報をマスター鍵、および初期値のみに限定することが可能となり、格納データの増大に伴って格納すべきデータ暗号鍵を増加させることのない構成が実現される。
【００６７】
さらに、本発明の構成によれば、暗号化の必要な多くのデータに対して、それぞれ異なる暗号鍵を適用したｎ重の多重暗号アルゴリズムを行う構成において、複数の異なるマスター鍵を個別に適用し、予め生成したカウンタ値を入力とした独立した複数の暗号処理により、第１のデータの多重化暗号処理に適用する複数のデータ暗号鍵を生成し、第１のデータと異なる各データの多重化暗号処理に適用する複数のデータ暗号鍵の生成に際しては、カウンタ値を、順次増分した値を入力として、複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理を実行する構成としたので、多くのデータを多重暗号アルゴリズムによって暗号化し、格納する場合においても、カウンタ値と、データの識別値を対応付けることで、マスター鍵を適用した暗号処理における入力値を求めることが可能となり、処理対象のデータ選択に基づいて、即座にマスター鍵を適用して多重暗号アルゴリズムを行うためのデータ暗号鍵を生成することができる。
【発明を実施するための最良の形態】
【００６８】
以下、本発明の暗号処理装置、および暗号鍵生成方法、並びにコンピュータ・プログラムの詳細について説明する。
【００６９】
本発明は、分割領域データの暗号化及び復号演算にｎ重の多重化した共通鍵ブロック暗号アルゴリズムを利用しセキュリティレベルを向上させ、鍵生成には多重化しない共通鍵ブロック暗号アルゴリズムを利用することにより、鍵生成にかかる時間を上記の方式と比較してｎ分の１に短縮することを可能にするとともに、さらに処理を並列にすることにより、鍵生成にかかる時間をより短縮することが可能な構成を持つ。
【００７０】
また、従来法ではｉ番目の鍵Ｋｉを生成するためにＫ１，Ｋ２，…，Ｋｉ―１を全て生成する必要があり、ｉが大きくなればなるほど鍵生成に時間がかかりランダムアクセスに適さないというデメリットがあるが、以下において説明する本発明の構成では、このようなデメリットを解消し、任意の分割領域データに対応する鍵を高速に生成することが可能となる。
【実施例１】
【００７１】
図６以下を参照して、本発明の実施例１に係る構成を説明する。図６の構成例は、データ暗号鍵の生成処理に多重化しない暗号処理構成を用いた例である。例えば１つのＤＥＳ暗号処理あるいは１つのＡＥＳ暗号処理等の単独の共通鍵ブロック暗号処理構成を用いる。一方、コンテンツ、ユーザデータの暗号化対象としての分割領域データに対する暗号化処理としてはｎ重の多重化した共通鍵ブロック暗号アルゴリズム、例えばトリプルＤＥＳを適用した構成である。
【００７２】
なお、以下の説明において、データ暗号鍵は、コンテンツ、ユーザデータ等の分割領域データに対する暗号化処理、復号処理を実行するための鍵であり、機器、すなわち、コンテンツ、ユーザデータ等の分割領域データを暗号化して格納、あるいは復号して再生、利用する情報処理装置に格納されたマスター鍵Ｋｍａｓｔｅｒに基づいて生成される鍵である。
【００７３】
まず、図６〜図８を参照して、データ暗号鍵の生成処理に単一の暗号化処理構成を用いた例について説明する。なお、以下に説明する例では、分割領域データに対する暗号化としてトリプルＤＥＳを適用した構成を説明するが、本発明は、コンテンツ、ユーザデータの暗号化対象としての分割領域データに対する暗号化処理としてｎ重の多重化した暗号アルゴリズムを適用する構成であれば、トリプルＤＥＳに限らず、様々な暗号化アルゴリズムの適用が可能である。
【００７４】
図６に示す構成を適用した鍵の生成処理、および分割領域データに対する暗号処理（暗号化、復号）について説明する。
【００７５】
まず、図６に示す構成を適用した鍵生成処理、すなわちデータ暗号鍵の生成処理について説明する。データ暗号鍵は、情報処理装置に格納されたマスター鍵Ｋｍａｓｔｅｒに基づいて生成される。１つの分割領域データ１，４３１を対象としたデータ暗号鍵は、この実施例においては３つの暗号鍵が生成される。本実施例においては、分割領域データに対する暗号化処理としてはｎ重の多重化した共通鍵ブロック暗号アルゴリズムを適用する。本実施例ではトリプルＤＥＳの３重暗号処理であるので３つのデータ暗号鍵を生成する。
【００７６】
３つのデータ暗号鍵は、図６に示すＫ１，１４１１−１、Ｋ１，２４１１−２、Ｋ１，３４１１−３の３つである。これらは、いずれも情報処理装置内のメモリに格納されたマスター鍵に基づいて生成する。
【００７７】
本実施例において、マスター鍵は、図に示すように、Ｋｍａｓｔｅｒ１４０１、Ｋｍａｓｔｅｒ２４０２、Ｋｍａｓｔｅｒ３４０３の３種類あり、これら３つのマスター鍵が情報処理装置のメモリに格納される。
【００７８】
まず、第１のデータ暗号鍵Ｋ１，１４１１−１は、第１のマスター鍵Ｋｍａｓｔｅｒ１４０１を適用した暗号処理によって生成される。暗号処理アルゴリズムとしては、例えばＤＥＳ、ＡＥＳ等の多重化しない共通鍵ブロック暗号アルゴリズムが適用される。
【００７９】
初期値ＩＶ（Ｉｎｉｔｉａｌ Ｖａｌｕｅ）４０５を入力として、第１のマスター鍵Ｋｍａｓｔｅｒ１４０１を適用してＤＥＳ、ＡＥＳ等の多重化しない共通鍵ブロック暗号アルゴリズムを実行して、第１のデータ暗号鍵Ｋ１，１４１１−１を生成する。初期値ＩＶは、新たなデータ暗号鍵の生成の際に乱数に基づいて生成するか、あるいは情報処理装置内のメモリに予め格納された値を用いてもよい。
【００８０】
図６に示す例では、第１のマスター鍵Ｋｍａｓｔｅｒ１４０１、初期値ＩＶ４０５、いずれも６４ビットデータであり、共通鍵ブロック暗号アルゴリズムの適用によって生成するデータ暗号鍵Ｋ１，１４１１−１も６４ビット鍵である。
【００８１】
第２のデータ暗号鍵Ｋ１，２４１１−２は、第２のマスター鍵Ｋｍａｓｔｅｒ２４０２を適用し、初期値ＩＶ４０５を入力して、例えばＤＥＳ、ＡＥＳ等の多重化しない共通鍵ブロック暗号アルゴリズムの適用により生成される。
【００８２】
第３のデータ暗号鍵Ｋ１，３４１１−３は、第３のマスター鍵Ｋｍａｓｔｅｒ３４０３を適用し、初期値ＩＶ４０５を入力して、例えばＤＥＳ、ＡＥＳ等の多重化しない共通鍵ブロック暗号アルゴリズムの適用により生成される。
【００８３】
このように、データ暗号鍵の生成処理には、多重化しない共通鍵ブロック暗号アルゴリズムが適用される。この鍵生成処理によって生成された３つのデータ暗号鍵Ｋ１，１４１１−１、Ｋ１，２４１１−２、Ｋ１，３４１１−３の３つの鍵を適用して分割領域データ１，４３１に対する暗号化あるいは復号化の暗号処理が実行される。すなわち、分割領域データに対する暗号処理は、複数のデータ暗号鍵を適用したｎ重の共通鍵ブロック暗号アルゴリズムが適用される。
【００８４】
本実施例においては、分割領域データに対する暗号処理を、３重の共通鍵ブロック暗号アルゴリズムとしてのトリプルＤＥＳを適用した例を示している。
【００８５】
分割領域データ１，４３１を入力として、データ暗号鍵Ｋ１，１４１１−１を適用したＤＥＳ暗号処理、データ暗号鍵Ｋ１，２４１１−２を適用したＤＥＳ復号処理、データ暗号鍵Ｋ１，３４１１−３を適用したＤＥＳ暗号処理が連続して実行され、最終的な暗号化データとしての分割領域データ暗号化データ１，４４１が生成される。なお、ここでは、ｎ重暗号化処理の一例としてトリプルＤＥＳを示しているが、ＡＥＳ暗号処理を多重化したり、ＤＥＳ暗号処理をさらに多重化した構成としてもよい。
【００８６】
図６には、１つの分割領域データ１，４３１に対応する３つのデータ暗号鍵Ｋ１，１４１１−１、Ｋ１，２４１１−２、Ｋ１，３４１１−３を生成する処理について示しているが、これらの３つのデータ暗号鍵Ｋ１，１４１１−１、Ｋ１，２４１１−２、Ｋ１，３４１１−３を初期値として、次の分割領域データ２，４３１に対応するデータ暗号鍵が生成される。
【００８７】
図７を参照して、次の分割領域データ２，４３２に対応するデータ暗号鍵の生成処理について説明する。図７には、分割領域データ１，４３１、分割領域データ２，４３２の２つの分割領域データに対応する処理例を示している。
【００８８】
分割領域データ１，４３１に対応する３つのデータ暗号鍵は、先に図６を参照して説明した通り、３つのマスター鍵Ｋｍａｓｔｅｒ１４０１、Ｋｍａｓｔｅｒ２４０２、Ｋｍａｓｔｅｒ３４０３に基づいて、初期値ＩＶ４０５を入力として多重化しない共通鍵ブロック暗号アルゴリズムによって生成される。
【００８９】
このようにして生成された分割領域データ１，４３１に対応する３つのデータ暗号鍵Ｋ１，１４１１−１、Ｋ１，２４１１−２、Ｋ１，３４１１−３は、次の分割領域データ２，４３２に対応する３つのデータ暗号鍵Ｋ２，１４１２−１、Ｋ２，２４１２−２、Ｋ２，３４１２−３の生成時の入力値として適用される。
【００９０】
３つのデータ暗号鍵Ｋ１，１４１１−１、Ｋ１，２４１１−２、Ｋ１，３４１１−３は、それぞれ６４ビットデータであり、その鍵データを入力として、３つのマスター鍵Ｋｍａｓｔｅｒ１４０１、Ｋｍａｓｔｅｒ２４０２、Ｋｍａｓｔｅｒ３４０３に基づいて多重化しない共通鍵ブロック暗号アルゴリズムが実行され、次の分割領域データ２，４３２に対応する３つのデータ暗号鍵Ｋ２，１４１２−１、Ｋ２，２４１２−２、Ｋ２，３４１２−３が生成される。これらの３つのデータ暗号鍵Ｋ２，１４１２−１、Ｋ２，２４１２−２、Ｋ２，３４１２−３が分割領域データ２，４３２に対応する暗号鍵として、トリプルＤＥＳ暗号処理用の鍵とされる。
【００９１】
分割領域データ２，４３２に対応する３つのデータ暗号鍵Ｋ２，１４１２−１、Ｋ２，２４１２−２、Ｋ２，３４１２−３は、さらに、図示しない、分割領域データ３に対応する３つのデータ暗号鍵の生成処理の際の入力値として適用される。
【００９２】
本実施例では、データ暗号鍵は、全て６４ビットデータとして設定し、各データ暗号鍵生成処理において適用する共通鍵ブロック暗号アルゴリズムも６４ビットデータの入力に対する処理構成としてある。
【００９３】
なお、データ暗号鍵が６４ビットデータ以外のデータ長である場合には、例えばビット長を変換する予め設定された変換テーブルあるいは変換行列などを適用したビット調整処理を行った後、暗号処理を実行する構成とすればよい。
【００９４】
以下に、図７に示す処理、すなわち、分割領域データ１，２に対するそれぞれのデータ暗号鍵の生成と、分割領域データ１，２に対する暗号処理の各プロセスにおいて実行する暗号処理シーケンスを示す。
【００９５】
（１）分割領域データ１を対象とした処理
（１ａ）ＩＶをＫｍａｓｔｅｒ１で暗号化し，Ｋ１，１生成
Ｋ１，１＝Ｅ（Ｋｍａｓｔｅｒ１，ＩＶ）
（１ｂ）ＩＶをＫｍａｓｔｅｒ２で暗号化し，Ｋ１，２生成
Ｋ１，２＝Ｅ（Ｋｍａｓｔｅｒ２，ＩＶ）
（１ｃ）ＩＶをＫｍａｓｔｅｒ３で暗号化し，Ｋ１，３生成
Ｋ１，３＝Ｅ（Ｋｍａｓｔｅｒ３，ＩＶ）
（１ｄ）Ｋ１，１，Ｋ１，２，Ｋ１，３で分割領域データ１を暗号化
暗号化分割領域データ１＝Ｅ（Ｋ１，３，Ｄ（Ｋ１，２，Ｅ（Ｋ１，１，分割領域データ１）））・・（３ｋｅｙ  Ｔ−ＤＥＳを適用）ただし、ＡＥＳ等単独の共通鍵ブロック暗号を単に多重化する場合であれば、各暗号処理は暗号化処理のみ、もしくは暗号化処理と復号処理の組み合わせた処理であってもよい。
【００９６】
（２）分割領域データ２を対象とした処理
（２ａ）Ｋ１，１をＫｍａｓｔｅｒ１で暗号化し，Ｋ２，１生成
Ｋ２，１＝Ｅ（Ｋｍａｓｔｅｒ１，Ｋ１，１）
（２ｂ）Ｋ１，２をＫｍａｓｔｅｒ２で暗号化し，Ｋ２，２生成
Ｋ２，２＝Ｅ（Ｋｍａｓｔｅｒ２，Ｋ１，２）
（２ｃ）Ｋ１，３をＫｍａｓｔｅｒ３で暗号化し，Ｋ２，３生成
Ｋ２，３＝Ｅ（Ｋｍａｓｔｅｒ３，Ｋ１，３）
（２ｄ）Ｋ２，１，Ｋ２，２，Ｋ２，３で分割領域データ２を暗号化
暗号化分割領域データ２＝Ｅ（Ｋ２，３，Ｄ（Ｋ２，２，Ｅ（Ｋ２，１，分割領域データ２）））・・・（３ｋｅｙ  Ｔ−ＤＥＳを適用）ただし、ＡＥＳ等単独の共通鍵ブロック暗号を単に多重化する場合であれば、各暗号処理は暗号化処理のみ、もしくは暗号化処理と復号処理の組み合わせた処理であってもよい。
【００９７】
上記処理は、２つの分割領域データのみを対象とした処理例を示しているが、以下、第３の分割領域データ３に対応する３つのデータ暗号鍵の生成には、その前段の分割領域データ２，４３２に対応する３つのデータ暗号鍵Ｋ２，１４１２−１、Ｋ２，２４１２−２、Ｋ２，３４１２−３が入力値として利用され、さらに、第３の分割領域データ３に対応する３つのデータ暗号鍵は、第４の分割領域データ４に対応する３つのデータ暗号鍵の生成時の入力値として利用される。
【００９８】
すなわち、第１の分割領域データに対応するデータ暗号鍵の生成時にのみ初期値（ＩＶ）が入力として適用され、第２番目以降の分割領域データに対応するデータ暗号鍵の生成時には、前段の分割領域データに対応するデータ暗号鍵が入力値として利用される。すなわち分割領域データｎに対応するデータ暗号鍵が入力値として分割領域データｎ−１に対応するデータ暗号鍵が適用される。ただし、ｎ≧２である。
【００９９】
このように、鍵生成には、多重化しない暗号処理アルゴリズムを適用し、コンテンツ等の分割領域データの暗号化には、トリプルＤＥＳ等の多重化暗号アルゴリズムを適用したので、鍵生成処理における計算量が削減されるとともに、コンテンツ等の分割領域データを高いセキュリティレベルを持つ暗号化データの設定とすることが可能となる。
【０１００】
図８を参照して、鍵生成にも多重化暗号処理を適用した場合と、本実施例の処理構成との処理量について比較して説明する。
【０１０１】
図８（Ａ）は、データ暗号鍵の生成に、多重化暗号処理アルゴリズム、具体的にはトリプルＤＥＳを適用し、コンテンツ等の分割領域データの暗号処理にも多重化暗号処理アルゴリズム、具体的にはトリプルＤＥＳを適用した例である。一方、図８（Ｂ）は、上述した本発明の実施例１に従った処理例に従って、データ暗号鍵の生成に、多重化しない暗号処理アルゴリズム、具体的にはＤＥＳを適用し、コンテンツ等の分割領域データの暗号処理にのみ多重化暗号処理アルゴリズム、具体的にはトリプルＤＥＳを適用した例である。
【０１０２】
図８（Ａ）、（Ｂ）ともＥｎｎ、Ｅｃｎｎは、データ暗号鍵生成処理に適用する共通鍵ブロック暗号処理の１単位、すなわち６４ビットデータを入力とし、６４ビット鍵を適用した暗号処理を実行して、６４ビットのデータを暗号化する処理単位を示している。Ｅｎｎはデータ暗号鍵の生成プロセス、Ｅｃｎｎは分割領域データに対する暗号処理を示している。同様に、Ｄｎｎ、Ｄｃｎｎは、データ暗号鍵生成処理に適用する共通鍵ブロック暗号処理の１単位、すなわち６４ビットデータを入力とし、６４ビット鍵を適用した復号処理を実行して、６４ビットのデータを復号する処理単位を示している。Ｄｎｎはデータ暗号鍵の生成プロセス、Ｄｃｎｎは分割領域データに対する復号処理を示している。
【０１０３】
図８（Ａ）の処理では、
分割領域データ１に対する３つのデータ暗号鍵を生成するための暗号処理単位は、
暗号化処理がＥ１１〜Ｅ１６の６単位
復号処理がＤ１１〜Ｄ１３の３単位
分割領域データ１に対する暗号処理に要する暗号処理単位は、
暗号化処理がＥｃ１１〜Ｅｃ１２の２単位
復号処理がＤｃ１１の１単位
分割領域データ２に対する３つのデータ暗号鍵を生成するための暗号処理単位は、
暗号化処理がＥ２１〜Ｅ２６の６単位
復号処理がＤ２１〜Ｄ２３の３単位
分割領域データ２に対する暗号処理に要する暗号処理単位は、
暗号化処理がＥｃ２１〜Ｅｃ２２の２単位
復号処理がＤｃ２１の１単位
の６＋２＋６＋２＝１６の暗号化処理及び３＋１＋３＋１＝８の復号処理の実行が必要である。
【０１０４】
一方、図８（Ｂ）の処理では、
分割領域データ１に対する３つのデータ暗号鍵を生成するための暗号処理単位は、
暗号化処理がＥ１１〜Ｅ１３の３単位
分割領域データ１に対する暗号処理に要する暗号処理単位は、
暗号化処理がＥｃ１１〜Ｅｃ１２の２単位
復号処理がＤｃ１１の１単位
分割領域データ２に対する３つのデータ暗号鍵を生成するための暗号処理単位は、
暗号化処理がＥ２１〜Ｅ２３の３単位
分割領域データ２に対する暗号処理に要する暗号処理単位は、
暗号化処理がＥｃ２１〜Ｅｃ２２の２単位
復号処理がＤｃ２１の１単位
の３＋２＋３＋２＝１０の暗号化処理及び０＋１＋０＋１＝２の復号処理の実行のみとなる。
【０１０５】
上述のように、２つの分割領域データに対する処理量は、図８（Ａ）の処理において暗号化処理が１６処理単位であり復号処理が８処理単位、図８（Ｂ）の処理において暗号化処理が１０処理単位であり復号処理が２処理単位となり、図８（Ｂ）の処理により、大幅な計算量の削減が実現される。
【０１０６】
また、本実施例の処理においては、分割領域データ１に対するデータ暗号鍵の生成においてのみ初期値（ＩＶ）が適用され、その他の分割領域データに対するデータ暗号鍵の生成には、前段のデータ暗号鍵を適用するので、鍵生成を行う装置においてメモリに格納するデータは、本実施例の場合、３つのマスター鍵と、１つの初期値（ＩＶ）のみでよく、全ての分割領域に対応する鍵を保持する方式に比べてメモリに格納維持するデータ量が大幅に削減可能となる。
【０１０７】
上述した説明では、コンテンツ、ユーザデータの暗号化対象としての分割領域データに対する暗号化処理としてトリプルＤＥＳを適用した例を説明したが、前述したようにｎ重の多重化した暗号アルゴリズムを適用する構成であれば、トリプルＤＥＳに限らず、様々な暗号アルゴリズムの適用が可能である。
【０１０８】
上述した図６〜図８を参照した処理例は、データ暗号鍵の生成処理に単一の暗号化処理構成を用いた例であった。次に、データ暗号鍵の生成処理に複数のＤＥＳ暗号処理や、複数のＡＥＳ暗号処理構成等、複数の共通鍵ブロック暗号処理を並列に実行する構成例について説明する。
【０１０９】
図９に分割領域データに対する暗号処理をｎ重（ｎ≧２）の多重化した暗号アルゴリズムとした場合に必要とする各分割領域データの暗号処理に適用するｎ個のデータ暗号鍵の生成処理構成を説明する図を示す。
【０１１０】
上段の鍵生成ブロック５０１が第１の分割領域データ１に対応するｎ個のデータ暗号鍵Ｋ１，１〜Ｋ１，ｎを生成する処理ブロックである。下段の鍵生成ブロック５０ｘが第ｘの分割領域データｘに対応するｎ個のデータ暗号鍵Ｋｘ，１〜Ｋｘ，ｎを生成する処理ブロックである。
【０１１１】
各鍵生成ブロック５０１，５０ｘにおいて、ｎ個のデータ暗号鍵Ｋ１，１〜Ｋ１，ｎを生成する個々のデータ暗号鍵生成処理ブロック５０１−１〜ｎおよび５０ｘ−１〜ｎの各々には、複数（ｔ'個）の暗号処理ブロックが含まれる。ただし、ｔ'≧２である。例えばデータ暗号鍵生成処理ブロック５０１−１には、Ｅｅ１〜Ｅｅｔ'までのｔ'個の暗号処理ブロックが含まれる。
【０１１２】
なお、ｔ'＝１の場合は、上述した処理例に相当し、１つのＤＥＳ、ＡＥＳ等の共通鍵ブロック暗号処理アルゴリズムの適用によって１つのデータ暗号鍵Ｋ１，１を生成する構成となる。
【０１１３】
ｔ'≧２とした本構成では、Ｅｅ１〜Ｅｅｔ'までの２以上の複数（ｔ'個）の暗号処理ブロックの各々が１つのＤＥＳ、ＡＥＳ等の共通鍵ブロック暗号アルゴリズムを実行し、その結果得られる暗号文出力、すなわちｔ'個の暗号文出力Ｍ１，１〜Ｍ１，ｔ'に基づいて、１つのデータ暗号鍵Ｋ１，１を生成する。
【０１１４】
各鍵生成ブロック５０１，５０ｘにおいて、ｎ個のデータ暗号鍵Ｋ１，１〜Ｋ１，ｎを生成する個々のデータ暗号鍵生成処理ブロック５０１−１〜ｎおよび５０ｘ−１〜ｎの各々は、並列に動作可能である。すなわち、例えばブロック５０１に含まれるｎ個のデータ暗号鍵生成処理ブロック５０１−１〜ｎは並列に動作可能であり、並列処理により、ｎ個のデータ暗号鍵Ｋ１，１〜Ｋ１，ｎを生成可能である。
【０１１５】
データ暗号鍵生成処理ブロック５０１−１においては、情報処理装置に格納された第１マスター鍵Ｋｍａｓｔｅｒ１を適用した複数段（ｔ'段）の暗号処理を行う処理構成であり、データ暗号鍵生成処理ブロック５０１−ｎにおいては、情報処理装置に格納された第ｎマスター鍵Ｋｍａｓｔｅｒｎを適用した複数段（ｔ'段）の暗号処理を行う処理構成となっている。
【０１１６】
情報処理装置には、ｎ個のマスター鍵が予め格納され、これらのマスター鍵を適用した暗号処理が並列に実行される。
【０１１７】
第１の分割領域データに対応するｎ個のデータ暗号鍵Ｋ１，１〜Ｋ１，ｎを生成する際の適用鍵は、ｎ個のマスター鍵Ｋｍａｓｔｅｒ１〜Ｋｍａｓｔｅｒｎであり、初期値（ＩＶ）を入力として、ｔ'段の暗号処理構成によって、前段の暗号処理結果を入力として、後段の暗号処理が実行され、各段の暗号処理結果に基づいて１つのデータ暗号鍵が生成される。
【０１１８】
例えばデータ暗号鍵生成処理ブロック５０１−１においては、初期値ＩＶを入力として、マスター鍵Ｋｍａｓｔｅｒ１を適用した暗号処理の結果、暗号文Ｍ１，１が出力され、暗号文Ｍ１，１は次段の暗号処理部に入力されて、さらに、マスター鍵Ｋｍａｓｔｅｒ１を適用した暗号処理の結果、暗号文Ｍ１，２が出力され、暗号文Ｍ１，２は次段の暗号処理部に入力されて、さらに、マスター鍵Ｋｍａｓｔｅｒ１を適用した暗号処理の結果、暗号文Ｍ１，３が出力され、以下、同様にｔ'段の暗号処理が実行される。
【０１１９】
各段の出力暗号文Ｍ１，１〜Ｍ１，ｔ'に基づいて、１つのデータ暗号鍵Ｋ１，１が生成される。データ暗号鍵Ｋ１，１は、以下の式に従って生成する。
Ｋ１，１＝Ｔｒｕｎｋｋｅ（Ｍ１，１，・・・・Ｍ１，ｔ'）
【０１２０】
なお、Ｔｒｕｎｋｋｅ（Ｍ１，１，・・・・Ｍ１，ｔ'）は、ｔ'個の入力Ｍ１，１，・・・・Ｍ１，ｔ'から、ｋｅビットの値を出力する関数である。この処理によってｋｅビットの１つのデータ暗号鍵が生成される。
【０１２１】
同様の処理が、鍵生成ブロック５０１内に構成されたｎ個のデータ暗号鍵生成ブロック５０１−１〜ｎにおいて実行され、第１の分割領域データのｎ重暗号処理に適用するためのｎ個のデータ暗号鍵Ｋ１，１〜Ｋ１，ｎを生成する。なお、これらの処理は並列に実行可能である。
【０１２２】
なお、第２の分割領域データ以降のデータ暗号鍵の生成には、初期値（ＩＶ）は適用しない。前述した処理例では、前段の分割領域データに対応して生成されたデータ暗号鍵が、初期値に変わる入力値としたが、本処理例では、前段の分割領域データに対応して生成されたデータ暗号鍵自体ではなく、前段の分割領域データに対応するデータ暗号鍵生成ブロックの最終段の出力を入力値として適用する。
【０１２３】
例えば、図９の下段に示す第ｘ番目の分割領域データに対応する鍵生成ブロック５１ｘでは、前段（ｘ−１）の分割領域データに対応する鍵生成ブロックの最終段の出力を入力値として適用する。
【０１２４】
例えば、データ暗号鍵生成ブロック５０ｘ−１では、前段（ｘ−１）の分割領域データに対応するデータ暗号鍵生成ブロックの最終段の出力は、図９に示すようにＭ１，（ｘ−１）ｔ'であるので、この値をデータ暗号鍵生成ブロック５０ｘ−１の最初の暗号処理部Ｅｅ１の入力とした暗号処理を実行する。
【０１２５】
この構成により、データ暗号鍵Ｋｎ，ｍのビット数と、各暗号処理部Ｅｅｎの処理ビット数は一致することが不要であり、それぞれ任意のビット数とすることができる。
【０１２６】
図１０に示すフローチャートを参照して、データ暗号鍵の生成処理シーケンスについて説明する。
【０１２７】
なお、各データの定義は、以下の通りである。
Ｋｍａｓｔｅｒ：鍵生成用の秘密情報
ＩＶ  ：鍵生成時の初期値
ｘ    ：分割領域データの個数
ｉ    ：分割領域データ固有の番号
Ｋｉ  ：ｉ番目の分割領域データを暗号化するための鍵（ｉ＝１，２，…，ｘ），｜Ｋｉ｜＝ｋｂ
Ｅｂ  ：分割領域データ暗号化用の共通鍵ブロック暗号アルゴリズム
ｋｂ  ：分割領域データ暗号化用の共通鍵ブロック暗号アルゴリズムの鍵のビット長
ｍｂ  ：分割領域データ暗号化用の共通鍵ブロック暗号アルゴリズムのブロックのビット長（ｋｂ≧ｍｂ）
Ｅｇ  ：鍵生成用の共通鍵ブロック暗号アルゴリズム
ｋｇ  ：鍵生成用の共通鍵ブロック暗号アルゴリズムの鍵のビット長
ｍｇ  ：鍵生成用の共通鍵ブロック暗号アルゴリズムのブロックのビット長（ｋｇ≧ｍｇ）
ｊ    ：各分割領域データに対応して生成するデータ暗号鍵番号（ｊ番目のデータ暗号鍵の生成にはｊ番目のマスター鍵Ｋｍａｓｔｅｒｊが適用される。
ｔ  ：ｋｂ／ｍｇ以上の最小の整数
ＴｒｕｎｃＬ（ｚ１，…，ｚｔ）：ｔ個の入力ｚｉ（１＜ｉ＜ｔ）から、Ｌビットの値を出力する関数
‖  ：ビットの連接
Ｅ（ｋｅｙ，ｍｓｇ）：共通鍵ブロック暗号アルゴリズムＥにおける鍵（ｋｅｙ）による平文（ｍｓｇ）の暗号文
【０１２８】
また、鍵生成処理を実行する情報処理装置は、前提条件として、以下の条件を満たすものとする。
（１）鍵生成を行うための秘密情報Ｋｍａｓｔｅｒとして予めｎｋｅビットの鍵がメモリに格納されている。
（２）鍵生成には共通鍵ブロック暗号アルゴリズムＥｅが利用可能。
（３）分割領域データの共通鍵ブロック暗号アルゴリズムＥｂは単独の共通鍵ブロックアルゴリズムＥｅがｎ重に多重化されている。ｍｂ＝ｍｅ，ｋｂ＝ｎｋｅ
【０１２９】
図１０に示すフローチャートの各ステップについて説明する。図１０のフローチャートは、ｘ個の分割領域データに対応するデータ暗号鍵の生成処理フローであり、１つの分割領域データはｎ重暗号処理を行うためのｎ個の暗号鍵が設定される。図１０の処理フローでは、ｘ個のｎｋｅビットの鍵Ｋ１，…，Ｋｘを生成する。例えば、１つのｎｋｅビットの鍵Ｋ１がｎ等分されて、ｎ個のデータ暗号鍵Ｋ１，１〜Ｋ１，ｎとされる。
【０１３０】
データ暗号鍵の生成処理を実行する情報処理装置は、予めメモリに初期値ＩＶ（ｍｂビット）、複数（ｎ個）のマスター鍵Ｋｍａｓｔｅｒ１〜Ｋｍａｓｔｅｒｎ（各々ｋｇビット）を有する。なお、ｎｋｅビットの１つのマスター鍵Ｋｍａｓｔｅｒ（ｎｋｅビット）を格納し、このマスター鍵をｎ等分して複数（ｎ個）のマスター鍵Ｋｍａｓｔｅｒ１〜Ｋｍａｓｔｅｒｎ（各々ｋｇビット）を生成してもよい。なお、メモリに初期値ＩＶが格納されていない場合は、新たに乱数等に基づいてから生成する。
【０１３１】
ステップＳ２０１において、初期値ＩＶを生成またはメモリから取得し、Ｍ１，０＝Ｍ２，０＝…＝Ｍｎ，０＝ＩＶとする。初期値ＩＶは、例えば乱数生成処理によって生成する。生成後の初期値は、メモリに格納する。このステップの処理、すなわち、Ｍ１，０＝Ｍ２，０＝…＝Ｍｎ，０＝ＩＶとする処理は、図９に示す上段のブロック、すなわち第１の分割領域データに対応するデータ暗号鍵の生成用の初期値として設定する処理である。
【０１３２】
次に、ステップＳ２０２において、マスター鍵Ｋｍａｓｔｅｒを以下の式を満たす鍵長ｋｅビットのｎ個の鍵に分割する。
Ｋｍａｓｔｅｒ＝Ｋｍａｓｔｅｒ１‖…‖Ｋｍａｓｔｅｒｎ
この処理によりｎ個のマスター鍵を生成する。
【０１３３】
次にステップＳ２０３において、分割領域データの識別値としてのｉをｉ＝０と設定し、ステップＳ２０４において、鍵生成用に必要となるＭの識別子であるｓをｓ＝０とする初期設定を行う。
【０１３４】
ステップＳ２０５において、ｉにｉ＋１を代入し、ステップＳ２０６において、ｓにｓ＋１を代入する。
【０１３５】
ステップＳ２０７において、ｊ＝１，…，ｎに対して以下の演算により、暗号文Ｍｊ、ｓを生成する。
Ｍｊ，ｓ＝Ｅｅ（Ｋｍａｓｔｅｒｊ，Ｍｊ，ｓ−１）
この処理は、図９に示す各データ暗号鍵生成ブロックの１つの暗号処理部Ｅｅｎにおける処理である。
【０１３６】
次に、ステップＳ２０８において、ｔ'がｓを割り切るならば、ステップ２０９へ進む。そうでなければ、ステップＳ２０６に戻り、ステップＳ２０６以下を繰り返し実行する。ただし、ｔ'＝ｋｅ／ｍｅとする。
【０１３７】
ステップＳ２０９では、ｊ＝１，…，ｎに対して、以下の計算により、データ暗号鍵Ｋｉ，ｊを求める。
Ｋｉ，ｊ＝Ｔｒｕｎｃｋｅ（Ｍｊ，（ｉ−１）ｔ'＋１，…，Ｍｊ，（ｉ―１）ｔ'＋ｔ'）
【０１３８】
ステップＳ２１０では、Ｋｉ＝Ｋｉ，１‖…‖Ｋｉ，ｎとして出力する。
Ｋｉは、ｉ番目の分割領域データに対応して設定されるｎ個のデータ暗号鍵の連結データを示す。分割領域データに対する暗号処理においては、Ｋｉに基づいて、ｎ個のデータ暗号鍵Ｋｉ，１〜Ｋｉ，ｎを生成して適用する。
【０１３９】
ステップＳ２１１では、ｉ＝ｘならば、処理を終了する。そうでなければ、ステップＳ２０５に戻り、ステップＳ２０５以下の処理を繰り返し実行する。
【０１４０】
本処理例に従えば、各分割領域データに対応する複数のデータ暗号鍵を並列処理によって生成可能となり、分割領域データの暗号処理を多重（ｎ重）暗号アルゴリズムを適用して実行する場合の複数（ｎ個）のデータ暗号鍵を効率的に生成することが可能となる。
【０１４１】
図９では、ｔ'段（ただし、ｔ'＝ｋｅ／ｍｅ）の多段構成によって１つのデータ暗号鍵を生成する構成例を示し、任意のデータ暗号鍵のビット数に対応可能な構成例を示したが、鍵の構成ビット数ｋｅと、各暗号処理部の出力暗号文Ｍｎ，ｎの構成ビット数ｍｅが等しい場合、すなわち、ｋｅ＝ｍｅの場合は、各データ暗号鍵の生成処理部を多段構成とすることなく１つの暗号処理部として設定可能である。図１１に構成例を示す。
【０１４２】
図１１に示す構成では、データ暗号鍵生成ブロック５５１において、第１の分割領域データに対応するｎ個のデータ暗号鍵を生成し、データ暗号鍵生成ブロック５５２において、第２の分割領域データに対応するｎ個のデータ暗号鍵を生成し、データ暗号鍵生成ブロック５５ｘにおいて、第ｘの分割領域データに対応するｎ個のデータ暗号鍵を生成する構成である。
【０１４３】
各データ暗号鍵生成ブロックは、図９に示す構成と異なり、１つの暗号処理部における暗号処理のみによって、１つのデータ暗号鍵Ｋｎ，ｎを生成する構成である。これは、先に図６を参照して説明した構成と同様の構成である。
【０１４４】
データ暗号鍵生成ブロック５５１〜５５ｘにおいては、ｎ個のデータ暗号鍵の生成において、それぞれ異なるマスター鍵Ｋｍａｓｔｅｒ１〜Ｋｍａｓｔｅｒｎを適用して暗号処理を実行するので、並列な処理が可能であり、効率的に多重暗号処理に適用する複数のデータ暗号鍵を生成することができる。
【実施例２】
【０１４５】
次に、本発明の第２の実施例について説明する。第２の実施例は、第１の実施例において説明したｎ重暗号処理に適用するｎ個のデータ暗号鍵の生成時に適用していた初期値（ＩＶ）、あるいは前段の暗号処理結果をカウンタ値として設定した構成である。
【０１４６】
図１２を参照して本実施例の概要について説明する。図１２には、分割領域データ１，６３１、分割領域データ２，６３２の２つの分割領域データに対応する処理例を示している。
【０１４７】
分割領域データ１，６３１に対応する３つのデータ暗号鍵は、３つのマスター鍵Ｋｍａｓｔｅｒ１６０１、Ｋｍａｓｔｅｒ２６０２、Ｋｍａｓｔｅｒ３６０３に基づいて、カウンタ値（ｃｔｒ）６０５を入力として多重化しない共通鍵ブロック暗号アルゴリズムによって生成される。
【０１４８】
このようにして生成された分割領域データ１，６３１に対応する３つのデータ暗号鍵Ｋ１，１６１１−１、Ｋ１，２６１１−２、Ｋ１，３６１１−３は、一例として、それぞれ６４ビットデータであり、これらの３つのデータ暗号鍵Ｋ１，１６１１−１、Ｋ１，２６１１−２、Ｋ１，３６１１−３が分割領域データ１，６３１に対応する多重暗号処理アルゴリズムに適用する鍵、例えばトリプルＤＥＳ暗号処理用の３つの鍵とされる。
【０１４９】
分割領域データ２，６３２に対応する３つのデータ暗号鍵は、３つのマスター鍵Ｋｍａｓｔｅｒ１６０１、Ｋｍａｓｔｅｒ２６０２、Ｋｍａｓｔｅｒ３６０３に基づいて、カウンタ値（ｃｔｒ＋１）６０６を入力として多重化しない共通鍵ブロック暗号アルゴリズムによって生成される。
【０１５０】
すなよち、本実施例では、暗号処理対象となる分割領域データのナンバリング１，２，３，・・・に従って、暗号処理部に入力する入力値を初期設定カウンタ値＝ｃｔｒに対して１つづづインクリメントし、
分割領域データ１に対応するデータ暗号鍵の生成用入力値＝ｃｔｒとしたとき、
分割領域データ２：入力値＝ｃｔｒ＋１
分割領域データ３：入力値＝ｃｔｒ＋２
：
分割領域データｎ：入力値＝ｃｔｒ＋ｎ−１
として設定される。
【０１５１】
以下に、図１２に示す処理、すなわち、分割領域データ１，２に対するそれぞれのデータ暗号鍵の生成と、分割領域データ１，２に対する暗号処理の各プロセスにおいて実行する暗号処理シーケンスを示す。
【０１５２】
（１）分割領域データ１を対象とした処理
（１ａ）カウンタ値ｃｔｒをＫｍａｓｔｅｒ１で暗号化し，Ｋ１，１生成
Ｋ１，１＝Ｅ（Ｋｍａｓｔｅｒ１，ｃｔｒ）
（１ｂ）ｃｔｒをＫｍａｓｔｅｒ２で暗号化し，Ｋ１，２生成
Ｋ１，２＝Ｅ（Ｋｍａｓｔｅｒ２，ｃｔｒ）
（１ｃ）ｃｔｒをＫｍａｓｔｅｒ３で暗号化し，Ｋ１，３生成
Ｋ１，３＝Ｅ（Ｋｍａｓｔｅｒ３，ｃｔｒ）
（１ｄ）Ｋ１，１，Ｋ１，２，Ｋ１，３で分割領域データ１を暗号化
暗号化分割領域データ１＝Ｅ（Ｋ１，３，Ｄ（Ｋ１，２，Ｅ（Ｋ１，１，分割領域データ１）））・・（３ｋｅｙ  Ｔ−ＤＥＳを適用）ただし、ＡＥＳ等単独の共通鍵ブロック暗号を単に多重化する場合であれば、各暗号処理は暗号化処理のみ、もしくは暗号化処理と復号処理の組み合わせた処理であってもよい。
【０１５３】
（２）分割領域データ２を対象とした処理
（２ａ）カウンタ値ｃｔｒ＋１をＫｍａｓｔｅｒ１で暗号化し，Ｋ２，１生成
Ｋ２，１＝Ｅ（Ｋｍａｓｔｅｒ１，ｃｔｒ＋１）
（２ｂ）カウンタ値ｃｔｒ＋１をＫｍａｓｔｅｒ２で暗号化し，Ｋ２，２生成
Ｋ２，２＝Ｅ（Ｋｍａｓｔｅｒ２，ｃｔｒ＋１）
（２ｃ）カウンタ値ｃｔｒ＋１をＫｍａｓｔｅｒ３で暗号化し，Ｋ２，３生成
Ｋ２，３＝Ｅ（Ｋｍａｓｔｅｒ３，ｃｔｒ＋１）
（２ｄ）Ｋ２，１，Ｋ２，２，Ｋ２，３で分割領域データ２を暗号化
暗号化分割領域データ２＝Ｅ（Ｋ２，３，Ｄ（Ｋ２，２，Ｅ（Ｋ２，１，分割領域データ２）））・・・（３ｋｅｙ  Ｔ−ＤＥＳを適用）ただし、ＡＥＳ等単独の共通鍵ブロック暗号を単に多重化する場合であれば、各暗号処理は暗号化処理のみ、もしくは暗号化処理と復号処理の組み合わせた処理であってもよい。
【０１５４】
上記処理は、２つの分割領域データのみを対象とした処理例を示しているが、以下、第３の分割領域データ３に対応する３つのデータ暗号鍵の生成には、ｃｔｒ＋２が入力値として利用され、さらに、第４の分割領域データ４に対応する３つのデータ暗号鍵の生成にはｃｔｒ＋３が入力値として利用される。
【０１５５】
図１２に示す構成例は、１つのデータ暗号鍵の生成処理を単一の暗号処理部において実行する構成例であるが、任意のデータ暗号鍵ビット数に対応する、より一般的な構成例を図１３に示す。
【０１５６】
図１３に示す図は、１つの分割領域データ、すなわち、ｉ番目の分割領域データに対する複数のデータ暗号鍵を生成する１つの処理ブロックを示している。複数のデータ暗号鍵は、ｎ重（ｎ≧２）の多重化した暗号アルゴリズムとした場合に必要とする各分割領域データの暗号処理に適用するｎ個のデータ暗号鍵である。
【０１５７】
ブロック６７１は、第ｉの分割領域データに対応するｎ個のデータ暗号鍵Ｋｉ，１〜Ｋｉ，ｎを生成する処理ブロックである。
【０１５８】
ブロック６７１において、ｎ個のデータ暗号鍵Ｋｉ，１〜Ｋｉ，ｎを生成する個々のデータ暗号鍵生成処理ブロック６７１−１〜ｎの各々には、複数（ｔ'個）の暗号処理ブロックが含まれる。ただし、ｔ'≧２である。例えばデータ暗号鍵生成処理ブロック６７１−１には、Ｅｅ１〜Ｅｅｔまでのｔ'個の暗号処理ブロックが含まれる。
【０１５９】
なお、ｔ'＝１の場合は、上述した処理例に相当し、１つのＤＥＳ、ＡＥＳ等の共通鍵ブロック暗号処理アルゴリズムの適用によって１つのデータ暗号鍵Ｋ１，１を生成する構成となる。
【０１６０】
ｔ'≧２とした本構成では、Ｅｅ１〜Ｅｅｔ'までの２以上の複数（ｔ'個）の暗号処理ブロックの各々が１つのＤＥＳ、ＡＥＳ等の共通鍵ブロック暗号処理アルゴリズムを実行し、その結果得られる出力、すなわちｔ'個の出力Ｍ１，１〜Ｍ１，ｔ'に基づいて、１つのデータ暗号鍵Ｋｉ，１を生成する。
【０１６１】
ブロック６７１において、ｎ個のデータ暗号鍵Ｋｉ，１〜Ｋｉ，ｎを生成する個々のデータ暗号鍵生成処理ブロック６７１−１〜ｎの各々は、並列に動作可能である。すなわち、並列処理により、ｎ個のデータ暗号鍵Ｋｉ，１〜Ｋｉ，ｎを生成可能である。
【０１６２】
データ暗号鍵生成処理ブロック６７１−１においては、情報処理装置に格納された第１マスター鍵Ｋｍａｓｔｅｒ１を適用した複数段（ｔ'段）の暗号処理を行う処理構成であり、データ暗号鍵生成処理ブロック６７１−ｎにおいては、情報処理装置に格納された第ｎマスター鍵Ｋｍａｓｔｅｒｎを適用した複数段（ｔ'段）の暗号処理を行う処理構成となっている。
【０１６３】
情報処理装置には、ｎ個のマスター鍵が予め格納され、これらのマスター鍵を適用した暗号処理が並列に実行される。
【０１６４】
第ｉの分割領域データに対応するｎ個のデータ暗号鍵Ｋｉ，１〜Ｋｉ，ｎを生成する際の適用鍵は、ｎ個のマスター鍵Ｋｍａｓｔｅｒ１〜Ｋｍａｓｔｅｒｎであり、これらの鍵を適用して、カウンタ値ｃｔｒ＋ｉ−１を入力として、ｔ'段の暗号処理によって１つのデータ暗号鍵が生成される。
【０１６５】
例えばデータ暗号鍵生成処理ブロック６７１−１においては、カウンタ値ｃｔｒ＋ｉ−１を入力として、マスター鍵Ｋｍａｓｔｅｒ１を適用した暗号処理の結果、暗号文Ｍ１，１が出力され、暗号文Ｍ１，１は次段の暗号処理部に入力されて、さらに、マスター鍵Ｋｍａｓｔｅｒ１を適用した暗号処理の結果、暗号文Ｍ１，２が出力され、暗号文Ｍ１，２は次段の暗号処理部に入力されて、さらに、マスター鍵Ｋｍａｓｔｅｒ１を適用した暗号処理の結果、暗号文Ｍ１，３が出力され、以下、同様にｔ'段の暗号処理が実行される。
【０１６６】
各段の出力暗号文Ｍ１，１〜Ｍ１，ｔ'に基づいて、１つのデータ暗号鍵Ｋｉ，１が生成される。データ暗号鍵Ｋｉ，１は、以下の式に従って生成する。
Ｋｉ，１＝Ｔｒｕｎｋｋｅ（Ｍ１，１，・・・・Ｍ１，ｔ'）
【０１６７】
なお、Ｔｒｕｎｋｋｅ（Ｍ１，１，・・・・Ｍ１，ｔ'）は、ｔ'個の入力Ｍ１，１，・・・・Ｍ１，ｔ'から、ｋｅビットの値を出力する関数である。この処理によってｋｅビットの１つのデータ暗号鍵が生成される。
【０１６８】
同様の処理が、ブロック６７１内に構成されたｎ個のデータ暗号鍵生成ブロック６７１−１〜ｎにおいて実行され、第ｉの分割領域データのｎ重暗号処理に適用するためのｎ個のデータ暗号鍵Ｋｉ，１〜Ｋｉ，ｎを生成する。なお，これらの処理は並列処理が可能である。
【０１６９】
この構成により、データ暗号鍵Ｋｎ，ｍのビット数と、各暗号処理部Ｅｅｎの処理ビット数は一致することが不要であり、それぞれ任意のビット数とすることができる。
【０１７０】
図１４に示すフローチャートを参照して、データ暗号鍵の生成処理シーケンスについて説明する。
【０１７１】
なお、各データの定義は、以下の通りである。
Ｋｍａｓｔｅｒ：鍵生成用の秘密情報
ＩＶ  ：鍵生成時の初期値
ｘ    ：分割領域データの個数
ｉ    ：分割領域データ固有の番号
Ｅｂ  ：分割領域データ暗号化用の共通鍵ブロック暗号アルゴリズム
ｋｂ  ：分割領域データ暗号化用の共通鍵ブロック暗号アルゴリズムの鍵のビット長
ｍｂ  ：分割領域データ暗号化用の共通鍵ブロック暗号アルゴリズムのブロックのビット長（ｋｂ≧ｍｂ）
Ｋｉ  ：ｉ番目の分割領域データを暗号化するための鍵（ｉ＝１，２，…，ｘ），｜Ｋｉ｜＝ｋｂ
Ｅｇ  ：鍵生成用の共通鍵ブロック暗号アルゴリズム
ｋｇ  ：鍵生成用の共通鍵ブロック暗号アルゴリズムの鍵のビット長
ｍｇ  ：鍵生成用の共通鍵ブロック暗号アルゴリズムのブロックのビット長（ｋｇ≧ｍｇ）
ｊ    ：各分割領域データに対応して生成するデータ暗号鍵番号（ｊ番目のデータ暗号鍵の生成にはｊ番目のマスター鍵Ｋｍａｓｔｅｒｊが適用される。
ｔ  ：ｋｂ／ｍｇ以上の最小の整数
ＴｒｕｎｃＬ（ｚ１，…，ｚｔ）：ｔ個の入力ｚｉ（１＜ｉ＜ｔ）から、Ｌビットの値を出力する関数
‖  ：ビットの連接
Ｅ（ｋｅｙ，ｍｓｇ）：共通鍵ブロック暗号アルゴリズムＥにおける鍵（ｋｅｙ）による平文（ｍｓｇ）の暗号文
ｃｔｒ  ：カウンタ値
【０１７２】
また、鍵生成処理を実行する情報処理装置は、以下の条件を満たすものとする。
（１）鍵生成を行うための秘密情報Ｋｍａｓｔｅｒとして予めｎｋｅビットの鍵がメモリに格納されている。
（２）鍵生成には共通鍵ブロック暗号アルゴリズムＥｅが利用可能。
（３）分割領域データの共通鍵ブロック暗号アルゴリズムＥｂは単独の共通鍵ブロック暗号アルゴリズムＥｅがｎ重に多重化されている。ｍｂ＝ｍｅ，ｋｂ＝ｎｋｅ
【０１７３】
図１４に示すフローチャートの各ステップについて説明する。図１４のフローチャートは、第ｉ番目の分割領域データに対応するデータ暗号鍵の生成処理フローであり、１つの分割領域データはｎ重暗号処理を行うためのｎ個の暗号鍵が設定される。図１４の処理フローでは、ｎｋｅビットの鍵Ｋ１，…，Ｋｘを生成する。例えば、１つのｎｋｅビットの鍵Ｋ１がｎ等分されて、ｎ個のデータ暗号鍵Ｋ１，１〜Ｋ１，ｎとされる。
【０１７４】
データ暗号鍵の生成処理を実行する情報処理装置は、予めメモリに生成済みのカウンタ値ｃｔｒ（ｍｂビット）、複数（ｎ個）のマスター鍵Ｋｍａｓｔｅｒ１〜Ｋｍａｓｔｅｒｎ（各々ｋｇビット）を有する。なお、ｎｋｅビットの１つのマスター鍵Ｋｍａｓｔｅｒ（ｎｋｅビット）を格納し、このマスター鍵をｎ等分して複数（ｎ個）のマスター鍵Ｋｍａｓｔｅｒ１〜Ｋｍａｓｔｅｒｎ（各々ｋｇビット）を生成してもよい。なお、カウンタ値が生成済みでない場合は、新たに生成する。
【０１７５】
ステップＳ３０１において、カウンタ値（ｃｔｒ）を生成またはメモリから入力する。さらに、生成するデータ暗号鍵に対応する分割領域データの番号ｉを入力する。さらに、Ｍ１，０＝Ｍ２，０＝…＝Ｍｎ，０＝ｃｔｒ＋ｉとする。カウンタ値（ｃｔｒ）を生成する場合は、例えば乱数生成処理によって生成する。あるいは初期値＝０として設定してもよい。生成後のカウンタ値は、メモリに格納する。このステップの処理、すなわち、Ｍ１，０＝Ｍ２，０＝…＝Ｍｎ，０＝ｃｔｒ＋ｉとする処理は、図１３に示すブロック６７１に対応するデータ暗号鍵の生成用の各ブロック６７１−１〜ｎの入力値を設定する処理である。
【０１７６】
次に、ステップＳ３０２において、マスター鍵Ｋｍａｓｔｅｒを以下の式を満たす鍵長ｋｅビットのｎ個の鍵に分割する。
Ｋｍａｓｔｅｒ＝Ｋｍａｓｔｅｒ１‖…‖Ｋｍａｓｔｅｒｎ
この処理によりｎ個のマスター鍵を生成する。
【０１７７】
次にステップＳ３０３において鍵生成用に用いるＭの識別子であるｓをｓ＝０とする初期設定を行い、ステップＳ３０４においてｓにｓ＋１を代入する。
【０１７８】
次に、ステップＳ３０５において、ｊ＝１，…，ｎに対して以下の演算により、暗号文Ｍｊ、ｓを生成する。
Ｍｊ，ｓ＝Ｅｅ（Ｋｍａｓｔｅｒｊ，Ｍｊ，ｓ−１）
この処理は、図１３に示す各データ暗号鍵生成ブロックの１つの暗号処理部Ｅｅｎにおける処理である。
【０１７９】
次に、ステップＳ３０６において、ｓがｔ'と一致するならば、ステップＳ３０７へ進む。そうでなければ、ステップＳ３０４に戻り、ステップＳ３０４以下を繰り返し実行する。ただし、ｔ'＝ｋｅ／ｍｅとする。
【０１８０】
ステップＳ３０７では、ｊ＝１，…，ｎに対して、以下の計算により、データ暗号鍵Ｋｉ，ｊを求める。
Ｋｉ，ｊ＝Ｔｒｕｎｃｋｅ（Ｍｊ，１，…，Ｍｊ，ｔ'）
【０１８１】
ステップＳ３０８では、Ｋｉ＝Ｋｉ，１‖…‖Ｋｉ，ｎとして出力する。
Ｋｉは、ｉ番目の分割領域データに対応して設定されるｎ個のデータ暗号鍵の連結データを示す。分割領域データに対する暗号処理においては、Ｋｉに基づいて、ｎ個のデータ暗号鍵Ｋｉ，１〜Ｋｉ，ｎを生成して適用する。
【０１８２】
本処理例に従えば、各分割領域データに対応する複数のデータ暗号鍵を並列処理によって生成可能となり、分割領域データの暗号処理を多重（ｎ重）暗号アルゴリズムを適用して実行する場合の複数（ｎ個）のデータ暗号鍵を効率的に生成することが可能となる。また、カウンタ値を適用したので、各分割領域データに対応する入力値としてのカウンタ値を即座に求めることが可能となる。例えばｉ番目の分割領域データの入力値はｃｔｒ＋ｉ−１として即座に算出可能である。
【０１８３】
すなわち、コンテンツサーバ等において、多くのデータを多重暗号アルゴリズムによって暗号化し格納する場合においても、カウンタ値と、分割領域データ番号等のデータ識別値を対応に基づいて、マスター鍵を適用した暗号処理における入力値を即座に求めることが可能となり、処理対象のデータ選択に基づいて入力値を決定し、マスター鍵を適用して多重暗号アルゴリズムを行うためのデータ暗号鍵を効率的に生成することができる。なお、分割領域データ番号等のデータ識別値に基づいて入力値としてのカウンタ値を求める処理は演算処理によって行うか、あるいはカウンタ値と分割領域データ番号等のデータ識別値付けたテーブルをメモリに格納し、このテーブルを参照することで実行可能である。
【０１８４】
最後に、上述の暗号処理を実行する情報処理装置７００の構成例を図１５に示す。上述の処理は、例えばＰＣ、サーバ等、様々な情報処理装置において実行可能である。
【０１８５】
ＣＰＵ（Ｃｅｎｔｒａｌ ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）７０１は、暗号処理の開始や、終了、データの送受信の制御、各構成部間のデータ転送制御、その他の各種プログラムを実行するプロセッサである。メモリ７０２は、ＣＰＵ７０１が実行するプログラム、あるいは演算パラメータとしての固定データを格納するＲＯＭ（Ｒｅａｄ-Ｏｎｌｙ-Ｍｅｍｏｒｙ）、ＣＰＵ７０１の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用されるＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）等からなる。ここに上述したマスター鍵、初期値、カウンタ値などの格納領域が形成される。また、メモリ７０２は暗号処理において中間的に生成される鍵データ、例えばデータ暗号鍵等の格納領域として使用可能である。データ等の格納領域は、耐タンパ構造を持つメモリとして構成されることが好ましい。
【０１８６】
暗号処理部７０３は、例えば上述したＤＥＳその他のアルゴリズムに従った暗号処理、復号処理等を実行する。なお、ここでは、暗号処理手段を個別モジュールとした例を示したが、このような独立した暗号処理モジュールを設けず、例えば暗号処理プログラムをＲＯＭに格納し、ＣＰＵ７０１がＲＯＭ格納プログラムを読み出して実行するように構成してもよい。
【０１８７】
乱数発生器７０４は、暗号処理に必要となる各種データ、例えば上述した実施例における初期値、カウンタ値の生成などにおいて必要となる乱数の発生処理を実行する。
【０１８８】
データ入出力部７０５は、外部とのデータ通信を実行するデータ通信処理部であり、例えばコンテンツの格納部としてのハードディスク等の大容量記憶部、あるいはネットワークを介したデータ通信を実行し、情報処理装置７００内で生成した暗号文の出力、あるいは記憶部、外部機器からのデータ入力などを実行する。
【０１８９】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０１９０】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【０１９１】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＭＯ（Ｍａｇｎｅｔｏ  ｏｐｔｉｃａｌ）ディスク，ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【０１９２】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０１９３】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【０１９４】
上述したように、本発明は、暗号化の必要な多くのデータに対して、それぞれ異なる暗号鍵を適用したｎ重の多重暗号アルゴリズムを行う構成において、各データ対応の鍵をマスター鍵に基づいて生成することを可能とするとともに、複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理により、第１のデータの多重化暗号処理に適用する複数のデータ暗号鍵を生成し、第１のデータに対応する複数のデータ暗号鍵の構成データまたは鍵生成過程における生成データを、複数の異なるマスター鍵を個別に適用した暗号処理における各々の入力値として設定し、第２のデータに対応する複数のデータ暗号鍵の生成処理を実行する構成とし、また、各データ対応の複数のデータ暗号鍵の生成を並列実行可能な構成としたので、効率的に複数の鍵を生成することができる。また、暗号鍵生成処理を実行する装置に格納する情報をマスター鍵、および初期値のみに限定することが可能となり、格納データの増大に伴って格納すべきデータ暗号鍵を増加させることのない構成が実現される。従って、ＰＣ、コンテンツサーバ等、多数の暗号化データを格納、または復号して利用する情報処理装置において適用可能である。
【０１９５】
さらに、本発明の構成によれば、暗号化の必要な多くのデータに対して、それぞれ異なる暗号鍵を適用したｎ重の多重暗号アルゴリズムを行う構成において、複数の異なるマスター鍵を個別に適用し、予め生成したカウンタ値を入力とした独立した複数の暗号処理により、第１のデータの多重化暗号処理に適用する複数のデータ暗号鍵を生成し、第１のデータと異なる各データの多重化暗号処理に適用する複数のデータ暗号鍵の生成に際しては、カウンタ値を、順次増分した値を入力として、複数の異なるマスター鍵を個別に適用した独立した複数の暗号処理を実行する構成としたので、多くのデータを多重暗号アルゴリズムによって暗号化し、格納する場合においても、カウンタ値と、データの識別値を対応付けることで、マスター鍵を適用した暗号処理における入力値を求めることが可能となり、処理対象のデータ選択に基づいて、即座にマスター鍵を適用して多重暗号アルゴリズムを行うためのデータ暗号鍵を生成することができる。従って、ＰＣ、コンテンツサーバ等、多数の暗号化データを格納、または復号して利用する情報処理装置において適用可能である。
【図面の簡単な説明】
【０１９６】
【図１】本発明の適用可能な構成例を説明する図である。
【図２】鍵生成に共通鍵ブロック暗号アルゴリズムを利用する場合の処理について説明する図である。
【図３】トリプルＤＥＳの適用による暗号鍵の生成処理例を示す図である。
【図４】複数の鍵を生成する暗号処理構成を示す図である。
【図５】分割領域データに対応する複数の鍵を生成する処理シーケンスを示す図である。
【図６】本発明の第１実施例に係る暗号処理構成を説明する図である。
【図７】本発明の第１実施例に係る暗号処理構成であり、複数の分割領域データに対応するデータ暗号鍵の生成処理構成について説明する図である。
【図８】本発明の第１実施例に係る暗号処理構成と、従来構成の処理量を比較する図である。
【図９】分割領域データに対する暗号処理をｎ重（ｎ≧２）の多重化した暗号アルゴリズムとした場合に必要とする各分割領域データの暗号処理に適用するｎ個のデータ暗号鍵の生成処理構成を説明する図である。
【図１０】本発明の第１実施例に係る暗号鍵生成処理シーケンスを説明するフロー図である。
【図１１】鍵の構成ビット数ｋｅと、各暗号処理部の出力暗号文Ｍｎ，ｎの構成ビット数ｍｅが等しい場合、すなわち、ｋｅ＝ｍｅの場合のデータ暗号鍵生成処理構成を説明する図である。
【図１２】本発明の第２実施例に係る暗号処理構成であり、複数の分割領域データに対応するデータ暗号鍵の生成処理構成について説明する図である。
【図１３】本発明の第２実施例に係る暗号処理構成であり、ｉ番目の分割領域データに対する複数のデータ暗号鍵を生成する処理ブロックを示す図である。
【図１４】本発明の第２実施例に係る暗号鍵生成処理シーケンスを説明するフロー図である。
【図１５】本発明の処理を実行可能な情報処理装置の構成例を示す図である。
【符号の説明】
【０１９７】
１００  コンテンツサーバ
１０１，１０２，１０３  ネットワーク接続機器
２０１  マスター鍵
２０２  初期値
２１１  データ暗号鍵
２１２  分割領域データ
３０１，３０２，３０３  マスター鍵
３０５  初期値
３１１  データ暗号鍵
３１２  分割領域データ
３５１，３５ｘ  鍵生成ブロック
４０１，４０２，４０３  マスター鍵
４０５  初期値
４１１  データ暗号鍵
４１２  データ暗号鍵
４３１  分割領域データ１
４４１  分割領域データ暗号化データ
４３２  分割領域データ２
５０１，５０ｘ  データ暗号鍵生成ブロック
５５１，５５２，５５ｘ  データ暗号鍵生成ブロック
６０１，６０２，６０３  マスター鍵
６０５，６０６  カウンタ値
６１１，６１２  データ暗号鍵
６３１  分割領域データ１
６３２  分割領域データ２
６７１  データ暗号鍵生成ブロック
７００  情報処理装置
７０１  ＣＰＵ（Ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）
７０２  メモリ
７０３  暗号処理部
７０４  乱数発生器
７０５  データ入出力信部
【図１】
2005094071.tif 000003
【図２】
2005094071.tif 000004
【図３】
2005094071.tif 000005
【図４】
2005094071.tif 000006
【図５】
2005094071.tif 000007
【図６】
2005094071.tif 000008
【図７】
2005094071.tif 000009
【図８】
2005094071.tif 000010
【図９】
2005094071.tif 000011
【図１０】
2005094071.tif 000012
【図１１】
2005094071.tif 000013
【図１２】
2005094071.tif 000014
【図１３】
2005094071.tif 000015
【図１４】
2005094071.tif 000016
【図１５】
2005094071.tif 000017