(57)【要約】【課題】  スムーズな中断再開処理を可能とする。【解決手段】  所定ブロック前に暗号化された暗号文と、ブロック単位の暗号文生成終了毎にカウントしたカウント値と暗号鍵データとを用いて、暗号化するブロック毎にブロック鍵を作成する手法を採用し、暗号文生成装置１００と暗号文復号装置２００の双方に備えられた制御手段１、１１のいずれかが、暗号文生成の再開時に、他方の装置へ再開用データを送って他装置の前記カウンタの値と前記所定ブロック前の暗号文のデータとを設定させると共に、自装置の前記カウンタの値と前記所定ブロック前の暗号文のデータとを設定する。【選択図】  図１
2006279489.tif 000002
【特許請求の範囲】
【請求項１】
平文を所定の長さを持つブロックに分割し、分割されたブロック単位にブロック鍵を用いて暗号文生成を行って暗号文を得る暗号文生成装置であって、ブロック単位の暗号文生成終了毎にカウントするカウンタと、現時点において暗号文生成を行っているブロックよりも所定ブロック前に暗号化された暗号文と、前記カウンタによるカウント値と、暗号鍵データとを用いて、暗号化するブロック毎にブロック鍵を作成するブロック鍵作成手段とを具備する暗号文生成装置と、
前記暗号文生成装置により暗号化された暗号文を所定の長さを持つブロックに分割し、分割されたブロック単位にブロック鍵を用いて復号化を行って平文を得る暗号文復号装置であって、ブロック単位の暗号文復号化終了毎にカウントするカウンタと、現時点において暗号文復号化を行っているブロックよりも所定ブロック前に復号化した復号化前の暗号文と、前記カウンタによるカウント値と、暗号鍵データとを用いて、復号化するブロック毎にブロック鍵を作成するブロック鍵作成手段とを具備する暗号文復号装置とにより構成され、
前記暗号文生成装置と前記暗号文復号装置の双方に制御手段が備えられており、いずれかの制御手段が、暗号文生成の再開時に、他方の装置へ再開用データを送って他装置の前記カウンタの値と前記所定ブロック前の暗号文のデータとを設定させると共に、自装置の前記カウンタの値と前記所定ブロック前の暗号文のデータとを設定することを特徴とする請求項に記載の暗号化復号化システム。
【請求項２】
前記暗号文生成装置と前記暗号文復号装置の少なくとも一方には、
前記カウンタの現在値より１つ前のカウント値を記憶するカウント値記憶部と、前記所定ブロック前の暗号文のデータの１ステップ前の履歴情報を記憶する暗号文記憶部との少なくとも一方が備えられ、
制御手段は、再開用データを前記カウント値記憶部と前記暗号文記憶部との少なくとも一方から得ることを特徴とする請求項１に記載の暗号化復号化システム。
【請求項３】
前記制御手段は、暗号文復号化の初期時と再開時に、前記カウンタの値と前記所定ブロック前の暗号文のデータとを設定することを特徴とする請求項１に記載の暗号化復号化システム。
【請求項４】
コンピュータが暗号文を生成するに際しコンピュータにより実行されると、前記コンピュータが平文を所定の長さを持つブロックに分割し、分割されたブロック単位にブロック鍵を用いて暗号文生成を行って暗号文を得る処理を行う暗号文生成プログラムにおいて、
ブロック単位の暗号文生成終了毎にカウントすることによりカウント値を得るカウントステップと、
現時点において暗号文生成を行っているブロックよりも所定ブロック前に暗号化された暗号文と、前記カウントステップによって得られるカウント値と、暗号鍵データとを用いて、暗号化するブロック毎にブロック鍵を作成するブロック鍵作成ステップと
暗号文生成の再開時に、暗号文復号装置へ再開用データを送って暗号文復号装置の前記カウンタの値と前記所定ブロック前の暗号文のデータとを設定させると共に、自装置の前記カウンタの値と前記所定ブロック前の暗号文のデータとを設定する制御ステップと
を具備することを特徴とする暗号文生成プログラム。
【請求項５】
前記制御ステップは、暗号文生成の初期時と再開時に、自装置の前記カウント値と前記所定ブロック前の暗号文のデータとを設定することを特徴とする請求項４に記載の暗号文生成プログラム。
【請求項６】
コンピュータが暗号文を復号化するに際しコンピュータにより実行されると、前記コンピュータが暗号化された暗号文を所定の長さを持つブロックに分割し、分割されたブロック単位にブロック鍵を用いて復号化を行って平文を得る処理を行う暗号文復号プログラムにおいて、
ブロック単位の暗号文復号化終了毎にカウントすることによりカウント値を得るカウントステップと、
現時点において暗号文復号化を行っているブロックよりも所定ブロック前に復号化した復号化前の暗号文と、前記カウントステップによって得られるカウント値と、暗号鍵データとを用いて、復号化するブロック毎にブロック鍵を作成するブロック鍵作成ステップと、
暗号文復号化の再開時に、暗号文生成装置へ再開用データを送って暗号文生成装置の前記カウンタの値と前記所定ブロック前の暗号文のデータとを設定させると共に、自装置の前記カウンタの値と前記所定ブロック前の暗号文のデータとを設定する制御ステップと
を具備することを特徴とする暗号文復号プログラム。
【請求項７】
前記制御ステップは、暗号文復号化の初期時と再開時に、前記カウント値と前記所定ブロック前の暗号文のデータとを設定することを特徴とする請求項６に記載の暗号文復号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、平文／暗号文を所定の長さを持つブロックに区切り、ブロック単位で暗号化／復号化処理を行う暗号文生成装置と暗号文復号装置により構成される暗号化復号化システム、そのシステムにおいて上記各装置を実現する暗号文生成プログラム及び暗号文復号プログラムに関するものである。
【背景技術】
【０００２】
ディジタル放送、映画或いは音楽等のコンテンツを暗号化する手法として、従来ストリーム暗号が用いられている。しかし、コンテンツをストリーム配信する場合には、暗号化転送中に、何らかの理由で通信路が遮断した場合や、視聴者の意図的な一時停止要求等といった「中断」という状況が考慮される必要がある。通信路の復旧や、視聴者の再生要求といった「再開」に対して、中断位置からの転送再開に際し、従来からの一般的なストリーム暗号では、先頭データから中断位置までの暗号化／復号化の再計算が必要であった。従って、特に動画像データのようなデータ量の大きいコンテンツを扱う場合には、「再開」要求から暗号化／復号化が可能となるまで比較的長い時間を要するなど、スムーズな「再開」処理が不可能であった。
【０００３】
例えば映画コンテンツにおいて先頭から4Gバイト目のデータ位置で中断した場合に、端末の実効処理速度が10Mbpsとすると、暗号化／復号化が可能となるまで4G/10M=200[ 秒]=3 分40秒の待ち時間が必要である。これは人間感覚的に長い時間といえる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記の中断時に関し、暗号化／復号化演算における計算途中の内部情報を一時記憶させておく手法が考えられ、係る手法を用いる場合には、再開時において、記憶された計算途中情報を読み込み、中断位置からの計算が即時に可能となるため、わざわざ先頭位置からの再計算は不要となり、上記課題に対する柔軟な解決策を与えることができる。しかしながら、暗号化／復号化における計算途中の内部情報を外部に記憶させることは、暗号解読情報を与える可能性が大きくなるため、セキュリティ上望ましい手法とは言い難い。従って、再計算による手法は不可避であった。
【０００５】
上記理由により、再計算による手法を採用する場合でも、データをブロック単位に区切り、ブロック単位で暗号化／復号化処理を完結させることによって、再開時には中断位置ブロックの先頭からの再計算だけで済ませることが可能である。これによれば、データ最先頭位置からの再計算は不要となるため、暗号化／復号化処理再開までの時間を短縮することは可能である。しかし、擬似乱数と平文に対し排他的論理和を施すストリーム暗号においては、固定暗号鍵を利用する場合には、ブロックごとに同一の擬似乱数パターンに対し平文を排他的論理和演算する処理となるため、十分な暗号化強度が保たれるとは言い難い。ブロック毎に鍵をランダムに変更する案が考えられるが、別途、鍵変更用の擬似乱数生成アルゴリズムを用意する必要があり、構成の複雑化を招来する問題点があった。
【０００６】
例えば、特許文献１には、暗号ビットストリーム生成部を備えたストリーム暗号方式のシステムが開示されているが、データの暗号化前にフレームカウンタ挿入回路によるフレームカウントを行い、これを用いて暗号部と復号部との同期を回復するシステムがしめされているが、中断位置からの計算が即時に可能となるものとはなっていない。
【特許文献１】特開２００１−３４５７９９号公報
【０００７】
本提案は、ブロック単位処理を前提とするストリーム暗号化手法を採用するシステムにおいて、送信側と受信側で共通の固定暗号鍵を採用した場合でも、ブロック毎に異なる乱数パターンの生成が可能なストリーム暗号化手法を提案するものであり、別途鍵変更用の乱数生成アルゴリズムを用いずとも、スムーズな中断再開処理を可能とする暗号化復号化システムを提供し、また、このシステムにおける暗号文生成装置と暗号文復号装置を実現する暗号文生成プログラム及び暗号文復号プログラムを提供することを課題とするものである。
【課題を解決するための手段】
【０００８】
本発明に係る暗号化復号化システムは、平文を所定の長さを持つブロックに分割し、分割されたブロック単位にブロック鍵を用いて暗号文生成を行って暗号文を得る暗号文生成装置であって、ブロック単位の暗号文生成終了毎にカウントするカウンタと、現時点において暗号文生成を行っているブロックよりも所定ブロック前に暗号化された暗号文と、前記カウンタによるカウント値と、暗号鍵データとを用いて、暗号化するブロック毎にブロック鍵を作成するブロック鍵作成手段とを具備する暗号文生成装置と、前記暗号文生成装置により暗号化された暗号文を所定の長さを持つブロックに分割し、分割されたブロック単位にブロック鍵を用いて復号化を行って平文を得る暗号文復号装置であって、ブロック単位の暗号文復号化終了毎にカウントするカウンタと、現時点において暗号文復号化を行っているブロックよりも所定ブロック前に復号化した復号化前の暗号文と、前記カウンタによるカウント値と、暗号鍵データとを用いて、復号化するブロック毎にブロック鍵を作成するブロック鍵作成手段とを具備する暗号文復号装置とにより構成され、前記暗号文生成装置と前記暗号文復号装置の双方に制御手段が備えられており、いずれかの制御手段が、暗号文生成の再開時に、他方の装置へ再開用データを送って他装置の前記カウンタの値と前記所定ブロック前の暗号文のデータとを設定させると共に、自装置の前記カウンタの値と前記所定ブロック前の暗号文のデータとを設定することを特徴とする。
【０００９】
本発明に係る暗号化復号化システムは、前記暗号文生成装置と前記暗号文復号装置の少なくとも一方には、前記カウンタの現在値より１つ前のカウント値を記憶するカウント値記憶部と、前記所定ブロック前の暗号文のデータの１ステップ前の履歴情報を記憶する暗号文記憶部との少なくとも一方が備えられ、制御手段は、再開用データを前記カウント値記憶部と前記暗号文記憶部との少なくとも一方から得ることを特徴とする。
【００１０】
本発明に係る暗号化復号化システムでは、前記制御手段は、暗号文復号化の初期時と再開時に、前記カウンタの値と前記所定ブロック前の暗号文のデータとを設定することを特徴とする。
【００１１】
本発明に係る暗号文生成プログラムは、コンピュータが暗号文を生成するに際しコンピュータにより実行されると、前記コンピュータが平文を所定の長さを持つブロックに分割し、分割されたブロック単位にブロック鍵を用いて暗号文生成を行って暗号文を得る処理を行う暗号文生成プログラムにおいて、ブロック単位の暗号文生成終了毎にカウントすることによりカウント値を得るカウントステップと、現時点において暗号文生成を行っているブロックよりも所定ブロック前に暗号化された暗号文と、前記カウントステップによって得られるカウント値と、暗号鍵データとを用いて、暗号化するブロック毎にブロック鍵を作成するブロック鍵作成ステップと暗号文生成の再開時に、暗号文復号装置へ再開用データを送って暗号文復号装置の前記カウンタの値と前記所定ブロック前の暗号文のデータとを設定させると共に、自装置の前記カウンタの値と前記所定ブロック前の暗号文のデータとを設定する制御ステップとを具備することを特徴とする。
【００１２】
本発明に係る暗号文生成プログラムでは、前記制御ステップは、暗号文生成の初期時と再開時に、自装置の前記カウント値と前記所定ブロック前の暗号文のデータとを設定することを特徴とする。
【００１３】
本発明に係る暗号文復号プログラムは、コンピュータが暗号文を復号化するに際しコンピュータにより実行されると、前記コンピュータが暗号化された暗号文を所定の長さを持つブロックに分割し、分割されたブロック単位にブロック鍵を用いて復号化を行って平文を得る処理を行う暗号文復号プログラムにおいて、ブロック単位の暗号文復号化終了毎にカウントすることによりカウント値を得るカウントステップと、現時点において暗号文復号化を行っているブロックよりも所定ブロック前に復号化した復号化前の暗号文と、前記カウントステップによって得られるカウント値と、暗号鍵データとを用いて、復号化するブロック毎にブロック鍵を作成するブロック鍵作成ステップと、暗号文復号化の再開時に、暗号文生成装置へ再開用データを送って暗号文生成装置の前記カウンタの値と前記所定ブロック前の暗号文のデータとを設定させると共に、自装置の前記カウンタの値と前記所定ブロック前の暗号文のデータとを設定する制御ステップとを具備することを特徴としている。
【００１４】
本発明に係る暗号文復号プログラムでは、前記制御ステップは、暗号文復号化の初期時と再開時に、前記カウント値と前記所定ブロック前の暗号文のデータとを設定することを特徴とする。
【発明の効果】
【００１５】
本発明では、所定ブロック前に暗号化された暗号文と、ブロック単位の暗号文生成終了毎にカウントしたカウント値と暗号鍵データとを用いて、暗号化するブロック毎にブロック鍵を作成する手法を採用し、暗号文生成装置と暗号文復号装置の双方に備えられた制御手段のいずれかが、暗号文生成の再開時に、他方の装置へ再開用データを送って他装置の前記カウンタの値と前記所定ブロック前の暗号文のデータとを設定させると共に、自装置の前記カウンタの値と前記所定ブロック前の暗号文のデータとを設定するので、暗号化のブロック単位に鍵が変更される構成が暗号文生成の再開時に適切に再開動作することになり、再開後にもブロック毎に異なる乱数パターンが生成可能となる。また、このような乱数パターンが生成される暗号化手法による暗号文を復号化できる効果を奏する。
【発明を実施するための最良の形態】
【００１６】
本発明では、複雑・大掛かりな構成を用いずにブロック毎に異なる乱数パターンを生成可能とするという目的を、所定ブロック前に暗号化された暗号文と、ブロック単位の暗号文生成終了毎にカウントしたカウント値と暗号鍵データとを用いて、暗号化するブロック毎にブロック鍵を作成することにより達成し、スムーズな中断再開処理を可能とするために、１つ前の暗号文ブロックとカウンタの値を再開用に記憶して、再開時に設定するように構成して達成したものである。
【実施例１】
【００１７】
以下添付図面を参照して本発明の実施例を説明する。図１に、暗号化復号化システムの構成を示す。暗号化復号化システムは、暗号文生成装置１００と暗号文復号装置２００により構成される。暗号文生成装置１００は、装置全体を統括制御する制御部１を有し、平文格納部２、暗号化部３、ブロック鍵作成部４、暗号鍵記憶部５、ブロックカウンタ６、前暗号文供給部７、暗号文出力部８、暗号文記憶部９、カウント値記憶部１０を備えている。
【００１８】
平文格納部２には、暗号化すべき平文（暗号化前のデータ）が制御部１の制御によって１ブロック毎（例えば、１バイト毎）に格納される。暗号化部３は、ブロック毎の平文とブロック鍵作成部４により作成されたブロック鍵とに基づいて例えばＸＯＲ（排他的論理和）演算により暗号文生成を行うものである。
【００１９】
ブロック鍵作成部４にはブロックカウンタ６の出力と、前暗号文供給部７により供給される１ステップ前に暗号化された暗号文と、暗号鍵記憶部５から暗号鍵データとが与えられる。ここでは、１ステップ前に暗号化された暗号文を与えたが、一般的には所定ステップ前に暗号化された暗号文を与えることになる。ブロック鍵作成部４は前暗号文供給部７により供給される暗号文を鍵長に揃える圧縮を行い、暗号文と暗号鍵及びブロックカウンタ６の出力をビット毎にＸＯＲ（排他的論理和）演算を行うなどしてブロック鍵を作成する。上記の圧縮の手法としては、暗号文中の所定ビット部分を抽出するなどが簡便であるが、どのような手法を用いるかについて特に制限はない。
【００２０】
ブロックカウンタ６は、暗号化部３が１ブロックの平文について暗号化を終了したときに所定値づつカウントアップまたはカウントダウンを行うものである。ブロックカウンタ６の出力ビット長は、例えば鍵長に等しいものとする。カウント値記憶部１０は、ブロックカウンタ６のカウント値より１ステップ前のカウント値を記憶しておくものである。
【００２１】
暗号鍵記憶部５は、予め定められた暗号鍵を記憶しておくものである。暗号文出力部８は、暗号化部３により暗号化された暗号文を、相手側へ伝送するものである。暗号文記憶部９は、少なくとも直前のステップにより暗号化された１ブロック分の暗号文を記憶しているものである。
【００２２】
制御部１は、装置全体の統括制御において、暗号文生成の初期時と再開時に、ブロックカウンタ６の値と前暗号文供給部７へ所定の暗号文のデータを設定し、また、暗号鍵記憶部５へ暗号鍵を記憶する。更に、制御部１は、暗号化部３が１ブロックの平文について暗号化を終了し、次の１ブロックの平文を平文格納部２から全て読み出したときに、更に新たな１ブロックの平文を平文格納部２へ格納する制御を行うものである。
【００２３】
暗号文復号装置２００は、上記暗号文生成装置によって暗号化された暗号文を復号化するものであり、この暗号文復号装置２００は、装置全体を統括制御する制御部１１を有し、暗号文格納部１２、復号化部１３、ブロック鍵作成部１４、暗号鍵記憶部１５、ブロックカウンタ１６、前暗号文供給部１７、復号文出力部１８、暗号文記憶部１９、カウント値記憶部２０を備えている。
【００２４】
暗号文格納部１２には、復号化すべき暗号文のデータが制御部１１の制御によって１ブロック毎（例えば、１バイト毎）に格納される。復号化部１３は、ブロック毎の暗号文とブロック鍵作成部１４により作成されたブロック鍵とに基づいて例えばＸＯＲ（排他的論理和）演算により暗号文の復号化を行うものである。
【００２５】
ブロック鍵作成部１４にはブロックカウンタ１６の出力と、前暗号文供給部１７により供給される１ステップ前に復号化に用いた復号化前の暗号文と、暗号鍵記憶部１５から暗号鍵データ（暗号文生成装置１００の暗号鍵記憶部５に記憶された暗号鍵データと同一の暗号鍵データ）とが与えられる。ここでは、１ステップ前に暗号化した暗号文を与えたが、一般的には所定ステップ前に復号化に用いた復号化前の暗号文を与えることになる。ブロック鍵作成部１４は前暗号文供給部１７により供給される暗号文を鍵長に揃える圧縮を行い、暗号文と暗号鍵及びブロックカウンタ１６の出力をビット毎にＸＯＲ（排他的論理和）演算を行うなどしてブロック鍵を作成する。上記の圧縮の手法としては、暗号文中の所定ビット部分を抽出するなどが簡便であるが、どのような手法を用いるかについて特に制限はない。
【００２６】
ブロックカウンタ１６は、復号化部１３が１ブロックの暗号文について復号化を終了したときに暗号文生成装置のブロックカウンタ１６と同じ所定値づつカウントアップまたはカウントダウンを行うものである。ブロックカウンタ１６の出力ビット長は、例えば鍵長に等しいものとする。カウント値記憶部２０は、ブロックカウンタ１６のカウント値より１ステップ前のカウント値を記憶しておくものである。
【００２７】
暗号鍵記憶部１５は、予め定められた暗号鍵（暗号文生成装置の暗号鍵記憶部５に記憶された暗号鍵データと同一の暗号鍵データ）を記憶しておくものである。復号文出力部１８は、復号化部１３により復号化された復号文を、例えばコンテンツを再生する端末側へ伝送し、或いは記憶媒体へ記憶する処理部へ送出するものである。暗号文記憶部１９は、前暗号文供給部１７により少なくとも１ステップ前に供給された暗号文を記憶しているものである。
【００２８】
制御部１１は、装置全体の統括制御において、復号文生成の初期時と再開時に、ブロックカウンタ１６の値と前暗号文供給部１７へ所定の暗号文のデータを設定し、また、暗号鍵記憶部１５へ暗号鍵を記憶する。更に、制御部１１は、復号化部１３が１ブロックの暗号文について復号化を終了し、次の１ブロックの暗号文を暗号文格納部１２から全て読み出したときに、暗号文格納部１２の暗号文を前暗号文供給部１７へ送り出すと共に更に新たな１ブロックの暗号文を暗号文格納部１２へ格納する制御を行うものである。
【００２９】
暗号文生成装置１００と暗号文復号装置２００における夫々の制御手段１、１１は、伝送路により相互に情報を送受可能に構成されている。また、暗号文生成装置１００と暗号文復号装置２００における夫々の制御手段１、１１の内、いずれかの制御手段が、暗号文生成の再開時に、他方の装置へ再開用データを送って他装置のブロックカウンタの値と前暗号文供給部（７、１７）に対して所定ブロック前の暗号文のデータとを設定させると共に、自装置におけるブロックカウンタの値と前暗号文供給部（１７、７）に対して所定ブロック前の暗号文のデータとを設定する。
【００３０】
以上の通りに各部より構成される暗号文生成装置１００は、実際には、パーソナルコンピュータやワークステーションなどのコンピュータにより構成されており、図２に示されるフローチャートに対応する暗号文生成プログラムを上記コンピュータが実行することにより、制御部１、暗号化部３、ブロック鍵作成部４、ブロックカウンタ６、前暗号文供給部７、暗号文出力部８の動作が実現されるので、以下において、図２に示されるフローチャートに基づき動作を説明する。
【００３１】
暗号文復号装置２００から送られるコンテンツの転送要求などにより、当該プログラムがスタートされると、その入力に応じて、初期スタートであるか否かを検出する（Ｓ１）。例えば、再スタートの場合には、再スタートの指示と必要なデータ（カウント値等）が、初期スタートの場合には、スタートの指示のみが入力されるので、これらの情報に基づき判定を行う。
【００３２】
上記ステップＳ１においてＹＥＳへ分岐すると、ブロックカウンタ６に対して、予めプログラムにセットされているスタート用のカウント値をセットし、前暗号文供給部７に対して、予めプログラムにセットされているスタート用の暗号文データ（任意のデータ）をセットする（Ｓ２：制御ステップ）。
【００３３】
一方、上記ステップＳ１においてＮＯへ分岐すると、ブロックカウンタ６に対して、外部から与えられた再スタート用のカウント値をセットし、前暗号文供給部７に対して、外部から与えられたカウント値に対応する再スタート用の暗号文データをセットする（Ｓ３：制御ステップ）。
【００３４】
以上のステップＳ２またはステップＳ３の処理を終えると、予めプログラムにセットされている暗号鍵データを暗号鍵記憶部５へセットする（Ｓ４）。次に、ブロックカウンタ６にセットしたカウント値に応じた１ブロック分の平文データを平文格納部２へ読み出す（Ｓ５）。即ち、初期スタートの場合には、最初の１ブロック分の平文データが平文格納部２へ格納され、再スタートの場合には、上記カウント値がブロックカウンタ６にセットされていたときに、平文格納部２にセットされていた平文データを平文格納部２へ格納する。
【００３５】
続いて、暗号鍵記憶部５にセットされている暗号鍵データと、ブロックカウンタ６にセットされているカウント値と、前暗号文供給部７にセットされている暗号文データとを用いて前述の通りにしてブロック鍵が作成され（ブロック鍵作成ステップ）、このブロック鍵に基づき平文の暗号化が行われ（暗号化ステップ）、暗号文出力部８としての出力が行われる（Ｓ６）。
【００３６】
次に、ブロックカウンタ６を更新（所定値のカウントアップもしくはカウントダウン）し（Ｓ７：カウントステップ）、前暗号文供給部７にその時点において暗号化された１ブロック分の暗号文をセットする（Ｓ８）。暗号文記憶部９には、前暗号文供給部７に記憶されている暗号文が順次記憶され、カウント値記憶部１０には、ブロックカウンタ６のカウント値が上書きされる。そこで、記憶媒体等に暗号化すべき平文データが残っているかを検出することにより全ての平文についての暗号化済みを確認する（Ｓ９）。
【００３７】
上記のステップＳ９において暗号化されずに残っている平文がある場合には、ステップＳ５へ戻って次の１ブロックの平文に対する暗号化へと進む。このようにして、ステップＳ５からステップＳ９へ進み、このステップＳ９からステップＳ５へ戻るルーチンが繰り返されて、ステップＳ９において全ての平文についての暗号化済みが確認できると、エンドとなる。
【００３８】
図１を用いて説明した通りに各部より構成される暗号文復号装置２００は、実際には、パーソナルコンピュータやワークステーションなどのコンピュータにより構成されており、図３に示されるフローチャートに対応する暗号文復号プログラムを上記コンピュータが実行することにより、制御部１１、復号化部１３、ブロック鍵作成部１４、ブロックカウンタ１６、前暗号文供給部１７、復号文出力部１８の動作が実現されるので、以下において、図３に示されるフローチャートに基づき動作を説明する。
【００３９】
例えば、暗号文生成装置１００へコンテンツの転送要求を送ることにより、プログラムがスタートされると、外部からの入力に応じて、初期スタートであるか否かを検出する（Ｓ１１）。例えば、再スタートの場合には、再スタートの指示と必要なデータ（カウント値等）が、初期スタートの場合には、スタートの指示のみが入力されるので、ステップＳ１１における判断が上記情報に基づき行われる。
【００４０】
上記ステップＳ１１においてＹＥＳへ分岐すると、ブロックカウンタ１６に対して、予めプログラムにセットされているスタート用のカウント値（暗号生成プログラムのものと同じカウント値）をセットし、前暗号文供給部１７に対して、予めプログラムにセットされているスタート用の暗号文データ（任意のデータ：暗号生成プログラムのものと同じデータ）をセットする（Ｓ１２：制御ステップ）。
【００４１】
一方、上記ステップＳ１１においてＮＯへ分岐すると、ブロックカウンタ１６に対して、再スタート用のカウント値をセットし、前暗号文供給部１７に対して、カウント値に対応する再スタート用の暗号文データセットする（Ｓ１３：制御ステップ）。
【００４２】
以上のステップＳ１２またはステップＳ１３の処理を終えると、予めプログラムにセットされている暗号鍵データを暗号鍵記憶部１５へセットする（Ｓ１４）。次に、ブロックカウンタ１６にセットしたカウント値に応じた１ブロック分の暗号文データを暗号文格納部１２へ読み出す（Ｓ１５）。即ち、初期スタートの場合には、最初の１ブロック分の暗号文データが暗号文格納部１２へ格納され、再スタートの場合には、上記カウント値がブロックカウンタ１６にセットされていたときに、暗号文格納部１２にセットされていた暗号文データが暗号文格納部１２へ格納される。
【００４３】
続いて、暗号鍵記憶部１５にセットされている暗号鍵データと、ブロックカウンタ１６にセットされているカウント値と、前暗号文供給部１７にセットされている暗号文データとを用いて前述の通りにしてブロック鍵が作成され（ブロック鍵作成ステップ）、このブロック鍵に基づき暗号文の復号化（暗号化と逆の処理）が行われ（復号化ステップ）、復号文出力部１８としての出力が行われる（Ｓ１６）。
【００４４】
次に、ブロックカウンタ１６を更新（所定値のカウントアップもしくはカウントダウン）し（Ｓ１７：カウントステップ）、前暗号文供給部１７にその時点において復号化した１ブロック分の復号化前の暗号文を暗号文格納部１２から転送してセットする（Ｓ１８）。暗号文記憶部１９には、前暗号文供給部１７に記憶されている暗号文が順次記憶され、カウント値記憶部２０には、ブロックカウンタ１６のカウント値が上書きされる。そこで、記憶媒体等に復号化すべき暗号文データが残っているかを検出することにより全ての暗号文についての復号化済みを確認する（Ｓ１９）。
【００４５】
上記のステップＳ１９において復号化されずに残っている復号文がある場合には、ステップＳ１５へ戻って次の１ブロックの暗号文に対する復号化へと進む。このようにして、ステップＳ１５からステップＳ１９へ進み、このステップＳ１９からステップＳ１５へ戻るルーチンが繰り返されて、ステップＳ１９において全ての暗号文についての復号化済みが確認できると、エンドとなる。
【００４６】
以上のような暗号文生成装置１００または暗号文生成プログラムによる処理によって、コンテンツが暗号化されて転送されて暗号文復号装置２００が受け取り、暗号文復号装置２００または暗号文復号プログラムによる処理によって、不具合なく全ての暗号文が復号化された場合に係る通信シーケンスの一例を図４に示す。この例にあっては、暗号文復号装置２００が転送要求（３０１）を暗号文生成装置１００へ転送して処理が開始され、暗号文生成装置１００と暗号文復号装置２００において初期化が行われている（３０２）。この後、暗号文生成装置１００においては暗号化の処理と暗号文の送信が行われ、暗号文復号装置２００においては暗号文の受信と暗号文の復号化が行われ（３０３〜３０６）、最終の第ｎブロックまでが正常に送られると、暗号文生成装置１００から暗号文復号装置２００へ終了通知が送られて、暗号文生成装置１００と暗号文復号装置２００において処理が終了となる（３０７、３０８）。このように正常終了となる場合には、図２のステップＳ３における処理と図３のステップＳ１３における処理は行われない。
【００４７】
これに対し、暗号文復号装置２００から中断要求を暗号文生成装置１００へ送ることができ、これにより処理を中断することができる。図５に示す通信シーケンスは、この中断の一例を示している。即ち、図４と比較して明らかな通り、第３ブロックの暗号文が暗号文復号装置２００にて受信されたときに、暗号文復号装置２００から中断要求（４１１）が送られ、これを暗号文生成装置１００が受信して中断判断（４１２）を行い、それぞれの処理が終了されている。第４ブロック以降の暗号文は暗号文復号装置２００にて受信されるが、破棄される（４１５）。
【００４８】
また、暗号文を所定数のブロック分受信する毎に、暗号文復号装置２００から正常受信情報（５１２）を暗号文生成装置１００へ送る構成を採用した場合には、図６に示す通信シーケンスとなる。正常受信情報（５１２）を受信した暗号文生成装置１００の制御部１は、受信情報受理（５１３）の処理を行い、次の所定時間間隔からなる受信情報受理期間（５１４）の監視を行う。通信路の遮断や異常終了等（５１１）により暗号が届かない状態（５１５）が継続し、所定時間間隔からなる受信情報受理期間（５１４）に正常受信情報（５１２）を受信しなければ、暗号文生成装置１００の制御部１は、中断判断（５１６）を行うと共に終了処理を行う。
【００４９】
図５または図６に示した中断が生じた場合には、暗号文生成装置１００の制御部１または暗号文復号装置２００の制御部１１による再開（再スタート）処理が行われる。暗号文生成装置１００の制御部１による再開（再スタート）処理が行われる場合には、図１に示した暗号文復号装置２００の暗号文記憶部１９とカウント値記憶部２０は必ずしも必須ではない。また、暗号文復号装置２００の制御部１１による再開（再スタート）処理が行われる場合には、図１に示した暗号文生成装置１００の暗号文記憶部９とカウント値記憶部１０は必ずしも必須ではない。
【００５０】
暗号文復号装置２００の制御部１１による再開（再スタート）処理が行われる場合を説明する。係る場合には図５または図６による中断によってカウント値記憶部２０には、正常に処理されたカウント値（ｍ）が記憶されている。そこで、暗号文復号装置２００の制御部１１は、このカウント値（ｍ）を含んだ再送要求（６０１）を図７に示すように暗号文生成装置１００の制御部１へ送出すると共に、このカウント値（ｍ）の次のカウント値（１ずつカウントアップするとして、ｍ＋１）をブロックカウンタ１６にセットし、暗号文記憶部１９に最後に記憶された１ブロックの暗号文を前暗号文供給部１７にセットする再開の初期化（ステップＳ１３）を行う。
【００５１】
このカウント値（ｍ）を含んだ再送要求（６０１）を受け取った暗号文生成装置１００の制御部１は、再開の初期化（図７の６０２：ステップＳ３に対応）を次のように行う。当該カウント値（ｍ）に１を加えたカウント値（ｍ＋１）をブロックカウンタ６にセットし、暗号文記憶部９を検索してこのカウント値（ｍ）に対応する位置に記憶されている暗号文（ｍに対応する暗号文）を取り出し、前暗号文供給部７にセットすると共に、ブロックカウンタ６のカウント値（ｍ＋１）に対応する１ブロックの平文を平文格納部２へ格納し、暗号化処理を開始する（６０３）。これにより第（ｍ＋１）番目の暗号文が送信される（６０４）。
【００５２】
暗号文復号装置２００の制御部１１は、第（ｍ＋１）番目の暗号文を受け取る（６０５）と、この暗号文を暗号文格納部１２へ格納し、復号化の処理を行う（６０６）。以降、最終の第ｎブロックまでが正常に送られると、暗号文生成装置１００から暗号文復号装置２００へ終了通知（６０７）が送られて、暗号文生成装置１００と暗号文復号装置２００において処理が終了となる（６０８）。
【００５３】
この例では、カウント値（ｍ）を含んだ再送要求（６０１）としたが、カウント値（ｍ）及びカウント値（ｍ）に対応する暗号文を含んだ再送要求を暗号文生成装置１００へ送るようにしても良い。このようにすると、暗号文生成装置１００の暗号文記憶部９とカウント値記憶部１０は不要である。また、カウント値（ｍ）を含んだ再送要求（６０１）を送る場合にはあって、暗号文記憶部９を検索してこのカウント値（ｍ）に対応する位置に記憶されている暗号文（ｍに対応する暗号文）を取り出し、暗号文復号装置２００へ返送する構成を採ることもでき、係る場合には、暗号文復号装置２００の暗号文記憶部１９は不要である。また、カウント値（ｍ）が暗号文生成装置１００へ送られる限りにおいてカウント値記憶部１０は不要である。暗号文生成装置１００の暗号文記憶部９に、カウント値対応に中断時点までの暗号文が記憶されている場合には、暗号文を含んだ再送要求を暗号文生成装置１００へ送るようにしても良い。これに対応して、暗号文生成装置１００の制御部１が暗号文記憶部９を検索しカウント値（ｍ）を検出して、ブロックカウンタ６へセットする。
【００５４】
暗号文生成装置１００の制御部１による再開（再スタート）処理が行われる場合には、暗号文復号装置２００からの再開要求に応えて暗号文生成装置１００の制御部１が暗号文復号装置２００の制御部１１へ、上記カウント値（ｍ）またはカウント値（ｍ）とカウント値（ｍ）に対応の暗号文を送るものとする。カウント値（ｍ）は暗号文生成装置１００の制御部１が中断判断を行った時点から所定ステップ前の暗号化の際のブロックカウンタ６のカウント値（ｍ＋１）より１少ない値とする。
【００５５】
上記カウント値（ｍ）を受け取った暗号文復号装置２００の制御部１１は、このカウント値（ｍ）の次のカウント値（１ずつカウントアップするとして、ｍ＋１）をブロックカウンタ１６にセットし、暗号文記憶部１９においてカウント値（ｍ）に対応する位置に記憶された１ブロックの暗号文を取り出して前暗号文供給部１７にセットする再開の初期化（ステップＳ１３）を行う。この場合には、暗号文記憶部１９にある程度のステップ文の暗号文が記憶されている必要があるが、カウント値記憶部２０は不要である。また、暗号文生成装置１００の制御部１がカウント値（ｍ）とカウント値（ｍ）に対応の暗号文を送って、これを暗号文復号装置２００の制御部１１が受け取る場合には、制御部１１は、このカウント値（ｍ）の次のカウント値（１ずつカウントアップするとして、ｍ＋１）をブロックカウンタ１６にセットし、カウント値（ｍ）に対応の暗号文を前暗号文供給部１７にセットするものとする。この場合には、カウント値記憶部２０及び暗号文記憶部１９は不要である。
【００５６】
以上のようにして、図１に示した暗号文復号装置２００の暗号文記憶部１９とカウント値記憶部２０、また、暗号文生成装置１００の暗号文記憶部９とカウント値記憶部１０のうち、所要の構成を備えることにより記憶されたカウント値に基づき再スタートが可能な構成を採用しているので、例えば伝送路などの不具合により再度の暗号化或いは再度の復号化が必要な場合にも迅速に対応することが可能である。
【図面の簡単な説明】
【００５７】
【図１】本発明に係る暗号化復号化システムの実施例の構成を示すブロック図。
【図２】本発明に係る暗号化復号化システムの暗号文生成装置をコンピュータにより実現する場合の暗号文生成プログラムによる処理を示すフローチャート。
【図３】本発明に係る暗号化復号化システムの暗号文復号装置をコンピュータにより実現する場合の暗号文復号プログラムによる処理を示すフローチャート。
【図４】本発明に係る暗号化復号化システムにおいて暗号化された暗号文が正常に伝送され最終的に適切に復号化された場合に対応する通信シーケンスの例を示す図。
【図５】本発明に係る暗号化復号化システムにおいて暗号文復号装置から中断要求が送り出されて中断となった場合に対応する通信シーケンスの例を示す図。
【図６】本発明に係る暗号化復号化システムにおいて暗号文復号装置が、所定時間間隔からなる受信情報受理期間に正常受信情報を受信しないことによって中断となった場合に対応する通信シーケンスの例を示す図。
【図７】本発明に係る暗号化復号化システムにおいて中断からの再開処理が行われた場合に対応する通信シーケンスの例を示す図。
【符号の説明】
【００５８】
１  １１  制御部 
２  平文格納部 
３  暗号化部 
４  １４  ブロック鍵生成部 
５  １５  暗号鍵記憶部 
６  １６  ブロックカウンタ 
７  前暗号文供給部 
８  暗号文出力部 
９  暗号文記憶部 
１０、２０  カウント値記憶部 
１２  暗号文格納部 
１３  復号化部 
１７  前暗号文供給部 
１８  復号文出力部 
１９  暗号文記憶部
【図１】
2006279489.tif 000003
【図２】
2006279489.tif 000004
【図３】
2006279489.tif 000005
【図４】
2006279489.tif 000006
【図５】
2006279489.tif 000007
【図６】
2006279489.tif 000008
【図７】
2006279489.tif 000009