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