(57)【特許請求の範囲】
【請求項１】
ストリーム暗号処理用の鍵系列を出力する鍵系列出力装置であって、
初期鍵および初期ベクトルを初期値としてレジスタに格納する格納手段と、
前記格納手段のレジスタに格納された値を更新する更新手段と、
前記格納手段のレジスタに格納された値から生成した鍵系列を出力する鍵系列出力手段
と、
前記格納手段と前記鍵系列出力手段との接続を制御する第１のスイッチ手段と、
を備え、
前記鍵系列出力手段により鍵系列を出力せずに、前記更新手段により前記格納手段のレジスタに格納された値の更新を行う場合に、前記第１のスイッチ手段をオフすることを特徴とする鍵系列出力装置。
【請求項２】
所定の段階において前記格納手段のレジスタに格納されている値を記憶する外部記憶装置と、
前記格納手段と前記外部記憶装置との接続を制御する第２のスイッチ手段と、
を備え、
前記外部記憶装置に記憶されている値を前記格納手段に読み込む場合に、前記第２のスイッチ手段をオンすることを特徴とする請求項１に記載の鍵系列出力装置。
【請求項３】
前記第２のスイッチ手段は、前記格納手段と前記更新手段との接続も制御し、前記格納手段の接続先を前記更新手段または前記外部記憶装置に切り替えることを特徴とする請求項２に記載の鍵系列出力装置。
【請求項４】
前記格納手段への初期鍵および初期ベクトルの入力を制御する第３のスイッチ手段を備え、
前記第３のスイッチ手段は、前記初期鍵および前記初期ベクトルを前記格納手段に格納する場合に、前記第３のスイッチ手段をオンすることを特徴とする請求項１から請求項３のいずれか１項に記載の鍵系列出力装置。
【請求項５】
請求項１から請求項４のいずれか１項に記載の鍵系列出力装置と、
前記鍵系列出力装置から出力された鍵系列と外部から入力された平文との排他的論理和演算を行なって、暗号文を出力する暗号化手段と、
を備えることを特徴とするストリーム暗号の暗号化装置。
【請求項６】
請求項１から請求項４のいずれか１項に記載の鍵系列出力装置と、
前記鍵系列出力装置から出力された鍵系列と外部から入力された暗号文との排他的論理和演算を行なって、平文を出力する復号手段と、
を備えることを特徴とするストリーム暗号の復号装置。
【請求項７】
ストリーム暗号処理用の鍵系列を生成する鍵系列出力装置における鍵系列出力方法であって、
前記鍵系列出力装置が、初期鍵および初期ベクトルを格納手段のレジスタに格納し、当該格納手段を初期化する第１のステップと、
前記鍵系列出力装置が、前記格納手段のレジスタに格納された値から生成した鍵系列を出力する鍵系列出力手段と、前記格納手段との接続を制御する第１のスイッチ手段をオフにする第２のステップと、
前記鍵系列出力装置が、前記格納手段のレジスタに格納された値を所定の値まで更新する第３のステップと、
前記鍵系列出力装置が、前記第３のステップにおいて、前記格納手段のレジスタに格納された値が所定の値まで更新されたことに応じて、前記第１のスイッチ手段をオンにする第４のステップと、
前記鍵系列出力手段が、前記所定の値まで更新された格納手段のレジスタに格納された値を用いて生成した鍵系列を出力する第５のステップと、
前記鍵系列出力装置が、前記鍵系列が出力される毎に、前記格納手段のレジスタに格納された値を更新する第６のステップと、
を含む鍵系列出力方法。
【請求項８】
ストリーム暗号処理用の鍵系列を生成する鍵系列出力装置における鍵系列出力方法をコンピュータに実行させるためのプログラムであって、
前記鍵系列出力装置が、初期鍵および初期ベクトルを格納手段のレジスタに格納し、当該格納手段を初期化する第１のステップと、
前記鍵系列出力装置が、前記格納手段のレジスタに格納された値から生成した鍵系列を出力する鍵系列出力手段と、前記格納手段との接続を制御する第１のスイッチ手段をオフにする第２のステップと、
前記鍵系列出力装置が、前記格納手段のレジスタに格納された値を所定の値まで更新する第３のステップと、
前記鍵系列出力装置が、前記第３のステップにおいて、前記格納手段のレジスタに格納された値が所定の値まで更新されたことに応じて、前記第１のスイッチ手段をオンにする第４のステップと、
前記鍵系列出力手段が、前記所定の値まで更新された格納手段のレジスタに格納された値を用いて生成した鍵系列を出力する第５のステップと、
前記鍵系列出力装置が、前記鍵系列が出力される毎に、前記格納手段のレジスタに格納された値を更新する第６のステップと、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリーム暗号処理用の鍵系列を生成する鍵系列出力装置、ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、鍵系列出力方法、およびプログラムに関する。
【背景技術】
【０００２】
暗号技術は、インターネット等のデジタル通信網上での電子商取引や電子申請のセキュリティを確保するために必須の技術である。暗号技術には、大きく分けて「公開鍵暗号」と「共通鍵暗号」との２つがある。後者の「共通鍵暗号」には、ブロック暗号とストリーム暗号との２つがあるが、ストリーム暗号はブロック暗号よりも高速処理に優れた暗号であることから、巨大なデータの暗号化／復号化にはブロック暗号よりも優れ、近年の情報の大規模化・通信の高速化に伴い注目を集めている。
【０００３】
近年、ＰＣと比べ能力の低い携帯電話上でも動作可能なストリーム暗号としてＫ２が提案されている。Ｋ２は、代表的なブロック暗号のＡＥＳと比べ、４〜１０倍高速に処理を行うことができる（例えば、非特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】Ｓ．  Ｋｉｙｏｍｏｔｏ，Ｔ．  Ｔａｎａｋａ，Ｋ．  Ｓａｋｕｒａｉ，“Ｋ２  Ｓｔｒｅａｍ  Ｃｉｐｈｅｒ，”ＩＣＥＴＥ  ２００７，ＣＣＩＳ  ２３，ｐｐ．２１４−２２６，Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ，２００８．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ストリーム暗号において暗号化／復号に用いる鍵系列は、初期値である初期鍵および初期ベクトルに加え、鍵系列を生成する鍵系列出力装置（擬似乱数生成器やストリーム暗号アルゴリズムともいう）に備えられ、鍵系列が出力される毎に更新される内部メモリの値に依存するため、通常の実装では、データの途中部分からの暗号化／復号を効率的に行うことはできないという問題点があった。このため、早送り・巻き戻し、途中再生が必要となる音楽コンテンツ等の暗号化／復号には、ストリーム暗号は適さないという問題点があった。
【０００６】
そこで、本発明は、上述の課題に鑑みてなされたものであり、内部メモリの効率的な更新が可能なストリーム暗号の鍵系列出力装置を提供し、ストリーム暗号によって暗号化／復号されるコンテンツの早送り・巻き戻し、途中再生を可能にすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
【０００８】
（１）  本発明は、ストリーム暗号処理用の鍵系列を生成する鍵系列出力装置であって、初期鍵および初期ベクトルを初期値としてレジスタに格納する格納手段（例えば、図１の内部メモリ１００に相当）と、前記格納手段のレジスタに格納された値を更新する更新手段（例えば、図１の内部メモリ更新部１１０に相当）と、前記格納手段のレジスタに格納された値から生成した鍵系列を出力する鍵系列出力手段（例えば、図１の鍵系列出力部１２０に相当）と、前記格納手段と前記鍵系列出力手段との接続を制御する第１のスイッチ手段（例えば、図１のスイッチＳｂ２１０に相当）と、を備え、前記鍵系列出力手段により鍵系列を出力せずに、前記更新手段により前記格納手段のレジスタに格納された値の更新を行う場合に、前記第１のスイッチ手段をオフすることを特徴とする鍵系列出力装置を提案している。
【０００９】
この発明によれば、格納手段は、初期鍵および初期ベクトルを初期値としてレジスタに格納する。更新手段は、格納手段のレジスタに格納された値を更新する。鍵系列出力手段は、格納手段のレジスタに格納された値から生成した鍵系列を出力する。第１のスイッチ手段は、格納手段と鍵系列出力手段との接続を制御し、鍵系列出力手段により鍵系列を出力せずに、更新手段により格納手段のレジスタに格納された値の更新を行う場合にオフになる。したがって、従来と異なって、鍵系列を出力せずに格納手段（内部メモリ）のレジスタに格納された値を更新できることにより、鍵系列の出力に要していた時間を省き、格納手段（内部メモリ）を効率的に更新できる。その結果、データの任意の部分のストリーム暗号による暗号化／復号が可能となり、さらに、ストリーム暗号によって暗号化／復号されるコンテンツの早送り・巻き戻し、途中再生を可能にすることができる。
【００１０】
（２）  本発明は、（１）の鍵系列出力装置について、所定の段階において前記格納手段のレジスタに格納されている値を記憶する外部記憶装置（例えば、図１の外部記憶装置１３０に相当）と、前記格納手段と前記外部記憶装置との接続を制御する第２のスイッチ手段（例えば、図１のスイッチＳｃ２２０に相当）と、を備え、前記外部記憶装置に記憶されている値を前記格納手段のレジスタに読み込む場合に、前記第２のスイッチ手段をオンすることを特徴とする鍵系列出力装置を提案している。
【００１１】
この発明によれば、外部記憶装置は、所定の段階において格納手段のレジスタに格納されている値を記憶する。第２のスイッチ手段は、格納手段と外部記憶装置との接続を制御し、外部記憶装置に記憶されている値を格納手段のレジスタに読み込む場合にオンになる。したがって、所定の段階において格納手段のレジスタに格納されている値を外部記憶装置に記憶しておくことにより、格納手段のレジスタに格納された値を所定の段階まで更新する処理を行わずに、格納手段のレジスタに所定の段階において格納される値を提供することができる。その結果、ストリーム暗号によって暗号化／復号されるコンテンツの早送り・巻き戻し、途中再生をより高速に実現することができる。
【００１２】
（３）  本発明は、（２）の鍵系列出力装置について、前記第２のスイッチ手段は、前記格納手段と前記更新手段との接続も制御し、前記格納手段の接続先を前記更新手段または前記外部記憶装置に切り替えることを特徴とする鍵系列出力装置を提案している。
【００１３】
この発明によれば、第２のスイッチ手段は、格納手段と更新手段との接続も制御し、格納手段の接続先を更新手段または外部記憶装置に切り替える。したがって、格納手段には、外部記憶装置または更新手段のいずれか一方が接続されるようにすることができる。
【００１４】
（４）  本発明は、（１）から（３）の鍵系列出力装置について、前記格納手段への初期鍵および初期ベクトルの入力を制御する第３のスイッチ手段（例えば、図１のスイッチＳａ２００に相当）を備え、前記第３のスイッチ手段は、前記初期鍵および前記初期ベクトルを前記格納手段に格納する場合に、前記第３のスイッチ手段をオンすることを特徴とする鍵系列出力装置を提案している。
【００１５】
この発明によれば、第３のスイッチは、格納手段への初期鍵および初期ベクトルの入力を制御し、初期鍵および初期ベクトルを格納手段に格納する場合に、第３のスイッチ手段はオンになる。したがって、格納手段のレジスタに初期鍵および初期ベクトルの入力しない場合には、格納手段への接続を切断しておくことができる。
【００１６】
（５）  本発明は、（１）から（４）のいずれかの鍵系列出力装置と、前記鍵系列生成装置から出力された鍵系列と外部から入力された平文との排他的論理和演算を行なって、暗号文を出力する暗号化手段（例えば、図４の暗号化部２０に相当）と、を備えるストリーム暗号の暗号化装置を提案している。
【００１７】
この発明によれば、（１）から（４）のいずれかの鍵系列出力装置を用いて、ストリーム暗号の暗号化装置を構成することができる。したがって、従来よりも効率的に格納手段（内部メモリ）を更新できる鍵系列出力装置を備えることにより、平文の任意の部分の暗号化が可能な暗号化装置を構成できる。その結果、データの任意の部分のストリーム暗号による暗号化／復号が可能となる。
【００１８】
（６）  本発明は、（１）から（４）のいずれかの鍵系列出力装置と、前記鍵系列出力装置から出力された鍵系列と外部から入力された暗号文との排他的論理和演算を行なって、平文を出力する復号手段（例えば、図５の復号部３０に相当）と、を備えるストリーム暗号の復号装置を提案している。
【００１９】
この発明によれば、（１）から（４）のいずれかの鍵系列出力装置を用いて、ストリーム暗号の復号装置を構成することができる。したがって、従来よりも効率的に格納手段（内部メモリ）を更新できる鍵系列出力装置を備えることにより、平文の任意の部分の復号が可能な復号装置を構成できる。その結果、ストリーム暗号により暗号化されたコンテンツの早送り・巻き戻し、途中再生を可能にすることができる。
【００２０】
（７）  本発明は、ストリーム暗号処理用の鍵系列を生成する鍵系列出力装置における
鍵系列出力方法であって、前記鍵系列出力装置が、初期鍵および初期ベクトルを格納手段のレジスタに格納し、当該格納手段を初期化する第１のステップ（例えば、図２のステップＳ２〜Ｓ４に相当）と、前記鍵系列出力装置が、前記格納手段のレジスタに格納された値から生成した鍵系列を出力する鍵系列出力手段と、前記格納手段との接続を制御する第１のスイッチ手段をオフにする第２のステップ（例えば、図２のステップＳ５に相当）と、前記鍵系列出力装置が、前記格納手段のレジスタに格納された値を所定の値まで更新する第３のステップ（例えば、図２のステップＳ６に相当）と、前記鍵系列出力装置が、前記第３のステップにおいて、前記格納手段のレジスタに格納された値が所定の値まで更新されたことに応じて、前記第１のスイッチ手段をオンにする第４のステップ（例えば、図２のステップＳ７、Ｓ８に相当）と、前記鍵系列出力手段が、前記所定の値まで更新された格納手段のレジスタに格納された値を用いて生成した鍵系列を出力する第５のステップ（例えば、図２のステップＳ９に相当）と、前記鍵系列出力装置が、前記鍵系列が出力される毎に、前記格納手段のレジスタに格納された値を更新する第６のステップ（例えば、図２のステップＳ１０に相当）と、を含む鍵系列出力方法を提案している。
【００２１】
この発明によれば、まず、第１のステップにおいて、鍵系列出力装置が、初期鍵および初期ベクトルを格納手段のレジスタに格納し、格納手段を初期化する。次に、第２のステップにおいて、鍵系列出力装置が、格納手段のレジスタに格納された値から生成した鍵系列を出力する鍵系列出力手段と、格納手段との接続を制御する第１のスイッチ手段をオフにする。次に、第３のステップにおいて、鍵系列出力装置が、格納手段のレジスタに格納された値を所定の値まで更新する。次に、第４のステップにおいて、鍵系列出力装置が、第３のステップにて、格納手段のレジスタに格納された値が所定の値まで更新されたことに応じて、第１のスイッチ手段をオンにする。次に、第５のステップにおいて、鍵系列出力手段が、所定の値まで更新された格納手段のレジスタに格納された値を用いて生成した鍵系列を出力する。次に、第６のステップにおいて、鍵系列出力装置が、鍵系列が出力される毎に、格納手段のレジスタに格納された値を更新する。したがって、従来と異なって、鍵系列を出力せずに格納手段（内部メモリ）のレジスタに格納された値を更新できることにより、鍵系列の出力に要していた時間を省き、格納手段（内部メモリ）を効率的に更新できる。その結果、データの任意の部分のストリーム暗号による暗号化／復号が可能となり、ストリーム暗号によって暗号化／復号されるコンテンツの早送り・巻き戻し、途中再生を可能にすることができる。
【００２２】
（８）  本発明は、ストリーム暗号処理用の鍵系列を生成する鍵系列出力装置における
鍵系列出力方法をコンピュータに実行させるためのプログラムであって、前記鍵系列出力装置が、初期鍵および初期ベクトルを格納手段のレジスタに格納し、当該格納手段を初期化する第１のステップ（例えば、図２のステップＳ２〜Ｓ４に相当）と、前記鍵系列出力装置が、前記格納手段のレジスタに格納された値から生成した鍵系列を出力する鍵系列出力手段と、前記格納手段との接続を制御する第１のスイッチ手段をオフにする第２のステップ（例えば、図２のステップＳ５に相当）と、前記鍵系列出力装置が、前記格納手段のレジスタに格納された値を所定の値まで更新する第３のステップ（例えば、図２のステップＳ６に相当）と、前記鍵系列出力装置が、前記第３のステップにおいて、前記格納手段のレジスタに格納された値が所定の値まで更新されたことに応じて、前記第１のスイッチ手段をオンにする第４のステップ（例えば、図２のステップＳ７、Ｓ８に相当）と、前記鍵系列出力手段が、前記所定の値まで更新された格納手段のレジスタに格納された値を用いて生成した鍵系列を出力する第５のステップ（例えば、図２のステップＳ９に相当）と、前記鍵系列出力装置が、前記鍵系列が出力される毎に、前記格納手段のレジスタに格納された値を更新する第６のステップ（例えば、図２のステップＳ１０に相当）と、
をコンピュータに実行させるプログラムを提案している。
【００２３】
この発明によれば、まず、第１のステップにおいて、鍵系列出力装置が、初期鍵および初期ベクトルを格納手段のレジスタに格納し、格納手段を初期化する。次に、第２のステップにおいて、鍵系列出力装置が、格納手段のレジスタに格納された値から生成した鍵系列を出力する鍵系列出力手段と、格納手段との接続を制御する第１のスイッチ手段をオフにする。次に、第３のステップにおいて、鍵系列出力装置が、格納手段のレジスタに格納された値を所定の値まで更新する。次に、第４のステップにおいて、鍵系列出力装置が、第３のステップにて、格納手段のレジスタに格納された値が所定の値まで更新されたことに応じて、第１のスイッチ手段をオンにする。次に、第５のステップにおいて、鍵系列出力手段が、所定の値まで更新された格納手段のレジスタに格納された値を用いて生成した鍵系列を出力する。次に、第６のステップにおいて、鍵系列出力装置が、鍵系列が出力される毎に、格納手段のレジスタに格納された値を更新する。したがって、従来と異なって、鍵系列を出力せずに格納手段（内部メモリ）のレジスタに格納された値を更新できることにより、鍵系列の出力に要していた時間を省き、格納手段（内部メモリ）を効率的に更新できる。その結果、データの任意の部分のストリーム暗号による暗号化／復号が可能となり、ストリーム暗号によって暗号化／復号されるコンテンツの早送り・巻き戻し、途中再生を可能にすることができる。
【発明の効果】
【００２４】
本発明によれば、内部メモリの効率的な更新が可能なストリーム暗号の鍵系列出力装置を提供することができる。また、データの任意の部分のストリーム暗号による暗号化／復号が可能となり、ストリーム暗号によって暗号化／復号されるコンテンツの早送り・巻き戻し、途中再生を可能にすることができる。
【図面の簡単な説明】
【００２５】
【図１】本実施形態に係る鍵系列生成装置の機能構成を示す図である。
【図２】本実施形態に係るデータの任意の部分からの第１の鍵系列出力処理フローを示す図である。
【図３】本実施形態に係るデータの任意の部分からの第２の鍵系列出力処理フローを示す図である。
【図４】本応用例に係るストリーム暗号の暗号化装置の機能構成を示す図である。
【図５】本応用例に係るストリーム暗号の復号装置の機能構成を示す図である。
【発明を実施するための形態】
【００２６】
以下、図面を用いて、本発明の実施形態について詳細に説明する。なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含むさまざまなバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【００２７】
＜鍵系列出力装置の機能構成＞
図１は、本実施形態に係る鍵系列出力装置１０の機能構成を示す図である。鍵系列出力装置１０は、ストリーム暗号の暗号化および復号に用いる鍵系列を生成する装置であって、内部メモリ１００と、内部メモリ更新部１１０と、鍵系列出力部１２０と、外部記憶装置１３０と、スイッチＳａ２００と、スイッチＳｂ２１０と、スイッチＳｃ２２０とを備える。
【００２８】
内部メモリ１００は、後述する鍵系列出力部１２０で鍵系列を生成するために必要な値を内部のレジスタに格納する。
【００２９】
内部メモリ更新部１１０は、初期鍵と初期ベクトルとを格納した内部メモリ１００を撹拌し、内部メモリ１００の初期化処理を行う。また、内部メモリ更新部１１０は、内部メモリ更新関数により内部メモリ１００を更新する。
【００３０】
鍵系列出力部１２０は、内部メモリ１００に格納されている値を用いて鍵系列を生成し、生成した鍵系列を出力する。具体的には、鍵系列出力部１２０は、内部メモリの各レジスタの値をスワップ等でランダムに入れ替えて鍵系列を生成してもよいし、内部メモリ１００の内部のレジスタとして線形フィードバックレジスタを用いて、線形フィードバックレジスタから得られるビット列を非線形関数に通すことで鍵系列を生成してもよい。
【００３１】
外部記憶装置１３０は、内部メモリ１００に格納する値を記憶する。ここで、内部メモリ１００に格納する値とは、鍵系列の出力処理の所定の段階において内部メモリに格納されている値であって、予め用意された値であってもよいし、内部メモリ１００から定期的に取得した値であってもよい。なお、外部記憶装置１３０は、内部メモリ１００に格納する値を複数記憶してもよい。
【００３２】
スイッチＳａ２００は、内部メモリ１００への初期鍵および初期ベクトルの入力を制御する。鍵系列出力装置１０が処理を開始し、初期鍵および初期ベクトルを内部メモリ１００に格納する場合に、スイッチＳａ２００がオンになる。初期鍵および初期ベクトルを内部メモリ１００に格納すると、スイッチＳａ２００がオフになり、初期鍵および初期ベクトルを内部メモリ１００に入力できなくなる。
【００３３】
スイッチＳｂ２１０は、内部メモリ１００と鍵系列出力部１２０との接続を制御する。鍵系列出力部１２０にて鍵系列を出力する場合に、スイッチＳｂ２１０がオンになる。一方、鍵系列出力部１２０にて鍵系列を出力せず、内部メモリ１００の更新のみを行う場合に、スイッチＳｂ２１０がオフになる。
【００３４】
従来の鍵系列出力装置は、鍵系列出力部１２０と内部メモリ１００とは常に接続され、内部メモリ１００を更新する毎に鍵系列の出力が行われていた。一方、上述したように、本発明においては、スイッチＳｂ２１０を設け、内部メモリ１００と鍵系列出力部１２０との接続を制御することにより、鍵系列の出力を行わずに内部メモリ１００を更新することができる。それにより、鍵系列の出力に要していた時間を省くことができ、データの任意の部分からの鍵系列を効率的に出力できる。
【００３５】
スイッチＳｃ２２０は、内部メモリ１００と外部記憶装置１３０との接続を制御する。また、スイッチＳｃ２２０は内部メモリ１００と内部メモリ更新部１１０との接続を制御する。本実施形態において、スイッチＳｃ２２０は、内部メモリ１００の接続先を外部記憶装置１３０または内部メモリ更新部１１０に切り替える機能を有するが、内部メモリ１００と外部記憶装置１３０との接続を制御する機能のみを備え、内部メモリ１００と内部メモリ更新部１１０とは常に接続するようにしてもよい。
【００３６】
外部記憶装置１３０に記憶されている値を内部メモリ１００に読み込ませる場合に、スイッチＳｃ２２０が外部記憶装置１３０側にオンになる。また、外部記憶装置１３０が内部メモリ１００に格納されている値を取得し、記憶する場合に、スイッチＳｃ２２０が外部記憶装置１３０側にオンになる。一方、内部メモリ更新部１１０が内部メモリ１００を更新する場合には、スイッチＳｃ２２０が内部メモリ更新部１１０側にオンになる。
【００３７】
従来の鍵系列出力装置は、内部メモリ１００に格納されている値を記憶しておくことはできず、常にデータの最初から鍵系列を生成していた。一方、上述したように、本発明において内部メモリ１００に格納されている値を外部記憶装置１３０に記憶しておくことができるので、データの任意の部分から鍵系列を生成することができる。
【００３８】
次に、データの任意の部分からの鍵系列出力処理について、図２および図３を用いて説明する。従来は、データの最初からしか鍵系列を生成できなかったが、データの任意の部分から鍵系列を生成することができることにより、早送り・巻き戻し、途中再生が可能なコンテンツの暗号化／復号をストリーム暗号によって実現することができる。
【００３９】
本実施形態において、データの任意の部分からの鍵系列出力処理には２つの処理方法がある。１つは、スイッチＳｂ２１０により内部メモリ１００と鍵系列出力部１２０との接続を制御することによって、データの任意の部分からの鍵系列を出力する方法（以下、第１の方法とする）である。もう１つは、外部記憶装置１３０を用いることによって、データの任意の部分からの鍵系列を出力する方法（以下、第２の方法とする）である。
【００４０】
図２は、本実施形態に係る第１の方法によるデータの任意の位置からの鍵系列出力処理フローを示す図である。なお、本処理において、スイッチＳｃ２２０は、内部メモリ更新部１１０側にオンになっているとする。
【００４１】
まず、ステップＳ１において、鍵系列出力装置１０は、鍵系列生成の処理を既に開始しているか否かを判断する。鍵系列生成の処理をまだ開始していない場合には、ステップＳ２に処理を進める。一方、系列生成の処理を既に開始している場合には、ステップＳ５に処理を進める。
【００４２】
次に、ステップＳ２において、鍵系列出力装置１０は、スイッチＳａ２００をオンにする。
【００４３】
次に、ステップＳ３において、鍵系列出力装置１０は、初期鍵と初期ベクトルとを内部メモリ１００に格納し、内部メモリ更新部１１０により内部メモリ１００の初期化処理を行う。
【００４４】
次に、ステップＳ４において、鍵系列出力装置１０は、スイッチＳａ２００をオフにする。
【００４５】
次に、ステップＳ５において、鍵系列出力装置１０は、スイッチＳｂ２１０をオフにする。
【００４６】
次に、ステップＳ６において、内部メモリ更新部１１０は、内部メモリ更新関数により内部メモリ１００を更新する。
【００４７】
次に、ステップＳ７において、鍵系列出力装置１０は、内部メモリ１００の値が、データの任意の部分に対応する鍵系列を生成できる値まで更新されたか否かを判断する。内部メモリ１００の値がデータの任意の部分に対応する鍵系列を生成できる値まで更新された場合には、ステップＳ８に処理を進める。一方、内部メモリ１００の値がデータの任意の部分に対応する鍵系列を生成できる値まで更新されていない場合には、ステップＳ６に処理を戻す。
【００４８】
次に、ステップＳ８において、鍵系列出力装置１０は、スイッチＳｂ２１０をオンする。
【００４９】
次に、ステップＳ９において、鍵系列出力部１２０は、内部メモリ１００の値から鍵系列を出力する。
【００５０】
次に、ステップＳ１０において、内部メモリ更新部１１０は、内部メモリ更新関数により内部メモリ１００を更新する。
【００５１】
このように、第１の方法では、内部メモリ１００の値をデータの任意の部分に対応する鍵系列を生成できる値まで、鍵系列を出力せずに更新することにより、鍵系列出力に要する時間を省いて高速にデータの任意の部分に対応する鍵系列を生成できる状態までもっていくことができる。このように、第１の方法では、鍵系列を出力せずに、内部メモリ１００の値をデータの任意の部分に対応する鍵系列を生成できる値まで、鍵系列を出力せずに更新するので、コンテンツの早送りに特に適している。
【００５２】
図３は、本実施形態に係る第２の方法によるデータの任意の位置からの鍵系列出力処理フローを示す図である。なお、本処理において、スイッチＳｂ２１０は、オンになっているとする。
【００５３】
まず、ステップＳ２１において、鍵系列出力装置１０は、スイッチＳｃ２２０を外部記憶装置１３０側にオンする。
【００５４】
次に、ステップＳ２２において、鍵系列出力装置１０は、内部メモリ１００に外部記憶装置１３０に記憶されている値を読み込む。
【００５５】
次に、ステップＳ２３において、鍵系列出力装置１０は、スイッチＳｃ２２０を内部メモリ更新部１１０側にオンする。
【００５６】
次に、ステップＳ２４において、鍵系列出力部１２０は、内部メモリ１００の値から鍵系列を出力する。
【００５７】
次に、ステップＳ２５において、内部メモリ更新部１１０は、内部メモリ更新関数により内部メモリ１００を更新する。
【００５８】
このように、第２の方法では、データの任意の部分の内部メモリ１００の値を外部記憶装置１３０に記憶しておき、データの任意の部分からの鍵系列の生成が指示されたことに応じて、内部メモリ１００に外部記憶装置１３０の値を読み込むことにより、データの任意の部分からの鍵系列の出力を可能にする。このように、第２の方法では、データの任意の部分の鍵系列生成から開始することができることから、特に、コンテンツの途中再生に有効である。また、第２の方法に第１の方法を組み合わせることにより、コンテンツの巻き戻しも可能となる。
【００５９】
以上説明したように、本実施形態によれば、スイッチＳａ２００、スイッチＳｂ２１０、スイッチＳｃ２２０、外部記憶装置１３０を備えることにより、内部メモリ１００の効率的な更新が可能なストリーム暗号の鍵系列生成装置を提供することができる。また、データの任意の部分のストリーム暗号による暗号化／復号が可能となり、ストリーム暗号によって暗号化／復号されるコンテンツの早送り・巻き戻し、途中再生を可能にすることができる。
【００６０】
＜第１の応用例＞
本応用例に係るストリーム暗号の暗号化装置１は、図４に示すように、鍵系列出力装置１０と、暗号化部２０とから構成されている。なお、鍵系列出力装置１０については、上記にて説明したため、詳細な説明は省略する。
【００６１】
暗号化部２０は、鍵系列出力装置１０から出力された鍵系列と、外部から入力された平文とを排他的論理和演算することにより、暗号文を出力する。特に、暗号化部２０は、平文の任意の部分の暗号化をすることができる。
【００６２】
したがって、本応用例のストリームの暗号化装置１は、鍵系列出力装置１０を用いて構築されたことから、ストリーム暗号によって、データの任意の部分の暗号化／復号が可能となる。
【００６３】
＜第２の応用例＞
本応用例に係るストリーム暗号の復号装置２は、図５に示すように、鍵系列出力装置１０と、復号部３０とから構成されている。なお、鍵系列出力装置１０については、上記にて説明したため、詳細な説明は省略する。
【００６４】
復号部３０は、鍵系列出力装置１０から出力された鍵系列と、外部から入力された暗号文とを排他的論理和演算することにより、平文を出力する。特に、復号部３０は、暗号文の任意の部分の復号をすることができる。
【００６５】
したがって、本応用例のストリームの復号装置２は、鍵系列出力装置１０を用いて構築されたことから、ストリーム暗号により暗号化されたコンテンツの早送り・巻き戻し、途中再生を可能にすることができる。
【００６６】
なお、上述の一連の処理をプログラムとしてコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを鍵系列出力装置、ストリーム暗号の暗号化装置、ストリーム暗号の復号装置に読み込ませ、実行することによって鍵系列出力装置、本発明のストリーム暗号の暗号化装置、ストリーム暗号の復号装置を実現することができる。
【００６７】
また、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００６８】
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００６９】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００７０】
１      暗号化装置
２      復号装置
１０    鍵系列出力装置
２０    暗号化部
３０    復号部
１００  内部メモリ
１１０  内部メモリ更新部
１２０  鍵系列出力部
１３０  外部記憶装置
２００  スイッチＳａ
２１０  スイッチＳｂ
２２０  スイッチＳｃ
【図１】
0005748634.tif 000002
【図２】
0005748634.tif 000003
【図３】
0005748634.tif 000004
【図４】
0005748634.tif 000005
【図５】
0005748634.tif 000006