(57)【特許請求の範囲】
【請求項１】
初期鍵と初期ベクトルを入力して、初期化処理を実行する第１の初期化処理手段と、
鍵系列生成処理を実行し、前記初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成後、動作を停止する第１の鍵系列生成処理手段と、
該第１の鍵系列生成処理手段が生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する第２の初期化処理手段と、
鍵系列生成処理を実行し、暗号化する平文と同等のデータ長の鍵系列を生成する第２の鍵系列生成処理手段と、
該第２の鍵系列生成処理手段により生成された鍵系列のビットデータと暗号化する平文との排他的論理和演算を行って、暗号文を出力する排他的論理和演算手段と、
を備えたことを特徴とするストリーム暗号の暗号化装置。
【請求項２】
前記第１の初期化処理手段の処理と前記第１の鍵系列生成処理手段の処理とを耐タンパデバイス内で実行することを特徴とする請求項１に記載のストリーム暗号の暗号化装置。
【請求項３】
前記第１の初期化処理手段の初期化処理に、過去に用いた初期鍵および初期ベクトルとは異なる初期鍵および初期ベクトルを用いることを特徴とする請求項１または請求項２に記載のストリーム暗号の暗号化装置。
【請求項４】
初期鍵と初期ベクトルを入力して、初期化処理を実行する第１の初期化処理手段と、
鍵系列生成処理を実行し、前記初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成後、動作を停止する第１の鍵系列生成処理手段と、
該第１の鍵系列生成処理手段が生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する第２の初期化処理手段と、
鍵系列生成処理を実行し、復号する暗号文と同等のデータ長の鍵系列を生成する第２の鍵系列生成処理手段と、
該第２の鍵系列生成処理手段により生成された鍵系列のビットデータと復号する暗号文との排他的論理和演算を行って、平文を出力する排他的論理和演算手段と、
を備えたことを特徴とするストリーム暗号の復号化装置。
【請求項５】
初期鍵と初期ベクトルを入力して、初期化処理を実行する第１の初期化処理手段と、
鍵系列生成処理を実行し、前記初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成後、動作を停止する第１の鍵系列生成処理手段と、
該第１の鍵系列生成処理手段が生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する第２の初期化処理手段と、
鍵系列生成処理を実行し、入力する平文と同等のデータ長の鍵系列を生成する第２の鍵系列生成処理手段と、
該第２の鍵系列生成処理手段において生成された鍵系列と入力した平文との排他的論理和演算を行って、演算結果を前記第１の初期化処理手段にフィードバックするとともに、最終的な暗号文をメッセージ認証子として出力する排他的論理和演算手段と、
を備えたことを特徴とするＭＡＣ生成装置。
【請求項６】
コンピュータが、
初期鍵と初期ベクトルを入力して、初期化処理を実行する第１のステップと、
鍵系列生成処理を実行し、前記初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成後、動作を停止する第２のステップと、
該第２のステップにおいて生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する第３のステップと、
鍵系列生成処理を実行し、暗号化する平文と同等のデータ長の鍵系列を生成する第４のステップと、
該第４のステップにおいて生成された鍵系列のビットデータと暗号化する平文との排他的論理和演算を行って、暗号文を出力する第５のステップと、
を実行するストリーム暗号の暗号化方法。
【請求項７】
コンピュータが、
初期鍵と初期ベクトルを入力して、初期化処理を実行する第１のステップと、
鍵系列生成処理を実行し、前記初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成後、動作を停止する第２のステップと、
該第２のステップにおいて生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する第３のステップと、
鍵系列生成処理を実行し、復号する暗号文と同等のデータ長の鍵系列を生成する第４のステップと、
該第４のステップにおいて生成された鍵系列のビットデータと復号する暗号文との排他的論理和演算を行って、平文を出力する第５のステップと、
を実行するストリーム暗号の復号化方法。
【請求項８】
コンピュータが、
初期鍵と初期ベクトルを入力して、初期化処理を実行する第１のステップと、
鍵系列生成処理を実行し、前記初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成後、動作を停止する第２のステップと、
該第２のステップにおいて生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する第３のステップと、
鍵系列生成処理を実行し、入力する平文と同等のデータ長の鍵系列を生成する第４のステップと、
該第４のステップにおいて生成された鍵系列と入力した平文との排他的論理和演算を行って、演算結果を前記第１のステップにフィードバックするとともに、最終的な暗号文をメッセージ認証子として出力する第５のステップと、
を実行するＭＡＣ生成方法。
【請求項９】
コンピュータに、
初期鍵と初期ベクトルを入力して、初期化処理を実行する第１のステップと、
鍵系列生成処理を実行し、前記初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成後、動作を停止する第２のステップと、
該第２のステップにおいて生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する第３のステップと、
鍵系列生成処理を実行し、暗号化する平文と同等のデータ長の鍵系列を生成する第４のステップと、
該第４のステップにおいて生成された鍵系列のビットデータと暗号化する平文との排他的論理和演算を行って、暗号文を出力する第５のステップと、
を実行させるためのストリーム暗号の暗号化プログラム。
【請求項１０】
コンピュータに、
初期鍵と初期ベクトルを入力して、初期化処理を実行する第１のステップと、
鍵系列生成処理を実行し、前記初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成後、動作を停止する第２のステップと、
該第２のステップにおいて生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する第３のステップと、
鍵系列生成処理を実行し、復号する暗号文と同等のデータ長の鍵系列を生成する第４のステップと、
該第４のステップにおいて生成された鍵系列のビットデータと復号する暗号文との排他的論理和演算を行って、平文を出力する第５のステップと、
を実行させるためのストリーム暗号の復号化プログラム。
【請求項１１】
コンピュータに、
初期鍵と初期ベクトルを入力して、初期化処理を実行する第１のステップと、
鍵系列生成処理を実行し、前記初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成後、動作を停止する第２のステップと、
該第２のステップにおいて生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する第３のステップと、
鍵系列生成処理を実行し、入力する平文と同等のデータ長の鍵系列を生成する第４のステップと、
該第４のステップにおいて生成された鍵系列と入力した平文との排他的論理和演算を行って、演算結果を前記第１のステップにフィードバックするとともに、最終的な暗号文をメッセージ認証子として出力する第５のステップと、
を実行させるためのＭＡＣ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、既存のストリーム暗号の安全性を向上させるストリーム暗号の暗号化装置、復号化装置、ＭＡＣ生成装置、ストリーム暗号の暗号化方法、復号化方法、ＭＡＣ生成方法およびプログラムに関する。
【背景技術】
【０００２】
近年、インターネットの目覚しい普及により、コンピュータを利用した様々なサービスが提供されている。こうして提供されるサービスの多くは、その通信内容を秘匿化するために暗号が利用されている。ここで、暗号方式としては、１つの鍵で暗号化と復号化とを行う共通鍵暗号方式が一般的であるが、この共通鍵暗号方式は、大きくブロック暗号方式とストリーム暗号方式とに大別される。
【０００３】
ストリーム暗号方式は、ブロック暗号方式よりも高速な処理が期待できるため、例えば、映画等の大容量データを伝送するための方式として、近年、注目を浴びているが、ストリーム暗号方式の場合には、暗号処理と復号処理との同期をとらなければならないという問題があった。そのため、一定サイズ以上の誤りなく受信した暗号文を利用して、同期を自動的に回復する自己同期型のストリーム暗号装置が提案されている（例えば、特許文献１参照。）。
【特許文献１】特開２００１−１６１９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、ストリーム暗号は、初期鍵を初期化処理により攪拌して、初期の内部状態を生成し、生成した状態を逐次更新しながら、暗号化の各系列を生成する。しかしながら、従来のストリーム暗号では、何らかの手段（メモリダンプ等）で内部状態が漏洩した場合、そこから初期鍵が導出されてしまうという問題があった。また、初期化処理に特殊な関数（例えば、ハッシュ関数）を使うことにより、初期鍵を導出できないようにする手法もあるが、異なるロジックを追加するため、実装サイズが大きくなるという問題があった。
【０００５】
そこで、本発明は、上述の課題に鑑みてなされたものであり、異なるロジックを追加する事無く、既存のストリーム暗号の安全性を向上させるストリーム暗号の暗号化装置、復号化装置、ＭＡＣ生成装置、ストリーム暗号の暗号化方法、復号化方法、ＭＡＣ生成方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の事項を提案している。
【０００７】
（１）本発明は、初期鍵と初期ベクトルを入力して、初期化処理を実行する第１の初期化処理手段と、鍵系列生成処理を実行し、前記初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成する第１の鍵系列生成処理手段と、該生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する第２の初期化処理手段と、鍵系列生成処理を実行し、平文と同等のデータ長の鍵系列を生成する第２の鍵系列生成処理手段と、該生成された鍵系列のビットデータと平文との排他的論理和演算を行って、暗号文を出力する排他的論理和演算手段と、を備えたことを特徴とするストリーム暗号の暗号化装置を提案している。
【０００８】
この発明によれば、第１の初期化処理手段は、初期鍵と初期ベクトルを入力して、初期化処理を実行する。第１の鍵系列生成処理手段は、鍵系列生成処理を実行し、初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成する。第２の初期化処理手段は、生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する。第２の鍵系列生成処理手段は、鍵系列生成処理を実行し、平文と同等のデータ長の鍵系列を生成する。そして、排他的論理和演算手段は、生成された鍵系列のビットデータと平文との排他的論理和演算を行って、暗号文を出力する。したがって、異なるロジックを追加する事無く、既存のストリーム暗号の安全性を向上させることができる。
【０００９】
（２）本発明は、（１）のストリーム暗号の暗号化装置について、前記第１の初期化処理手段の処理と前記第１の鍵系列生成処理手段の処理とを耐タンパデバイス内で実行することを特徴とするストリーム暗号の暗号化装置を提案している。
【００１０】
この発明によれば、第１の初期化処理手段の処理と第１の鍵系列生成処理手段の処理とを耐タンパデバイス内で実行する。したがって、これにより、さらに、安全性を向上させることができる。
【００１１】
（３）本発明は、（１）または（２）のストリーム暗号の暗号化装置について、前記第１の初期化処理手段の初期化処理に、過去に用いた初期鍵および初期ベクトルとは異なる初期鍵および初期ベクトルを用いることを特徴とするストリーム暗号の暗号化装置を提案している。
【００１２】
この発明によれば、第１の初期化処理手段の初期化処理に、過去に用いた初期鍵および初期ベクトルを用いない。したがって、これにより、さらに、安全性を向上させることができる。
【００１３】
（４）本発明は、初期鍵と初期ベクトルを入力して、初期化処理を実行する第１の初期化処理手段と、鍵系列生成処理を実行し、前記初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成する第１の鍵系列生成処理手段と、該生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する第２の初期化処理手段と、鍵系列生成処理を実行し、暗号文と同等のデータ長の鍵系列を生成する第２の鍵系列生成処理手段と、該生成された鍵系列のビットデータと暗号文との排他的論理和演算を行って、平文を出力する排他的論理和演算手段と、を備えたことを特徴とするストリーム暗号の復号化装置を提案している。
【００１４】
この発明によれば、第１の初期化処理手段は、初期鍵と初期ベクトルを入力して、初期化処理を実行する。第１の鍵系列生成処理手段は、鍵系列生成処理を実行し、初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成する。第２の初期化処理手段は、生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する。第２の鍵系列生成処理手段は、鍵系列生成処理を実行し、暗号文と同等のデータ長の鍵系列を生成する。そして、排他的論理和演算手段は、生成された鍵系列のビットデータと暗号文との排他的論理和演算を行って、平文を出力する。したがって、異なるロジックを追加する事無く、既存のストリーム暗号の安全性を向上させることができる。
【００１５】
（５）本発明は、初期鍵と初期ベクトルを入力して、初期化処理を実行する第１の初期化処理手段と、鍵系列生成処理を実行し、前記初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成する第１の鍵系列生成処理手段と、該生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する第２の初期化処理手段と、鍵系列生成処理を実行し、平文と同等のデータ長の鍵系列を生成する第２の鍵系列生成処理手段と、該第２の鍵系列生成手段において生成された鍵系列と平文との排他的論理和演算を行って、演算結果を前記第１の初期化処理手段にフィードバックするとともに、最終的な暗号文をメッセージ認証子として出力する排他的論理和演算手段と、を備えたことを特徴とするＭＡＣ生成装置を提案している。
【００１６】
この発明によれば、第１の初期化処理手段は、初期鍵と初期ベクトルを入力して、初期化処理を実行する。第１の鍵系列生成処理手段は、鍵系列生成処理を実行し、初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成する。第２の初期化処理手段は、生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する。第２の鍵系列生成処理手段は、鍵系列生成処理を実行し、平文と同等のデータ長の鍵系列を生成する。そして、排他的論理和演算手段は、生成された鍵系列と平文との排他的論理和演算を行って、演算結果を第１の初期化処理手段にフィードバックするとともに、最終的な暗号文をメッセージ認証子として出力する。したがって、異なるロジックを追加する事無く、既存のストリーム暗号の安全性を向上させることができる。
【００１７】
（６）本発明は、初期鍵と初期ベクトルを入力して、初期化処理を実行する第１のステップと、鍵系列生成処理を実行し、前記初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成する第２のステップと、該生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する第３のステップと、鍵系列生成処理を実行し、平文と同等のデータ長の鍵系列を生成する第４のステップと、該生成された鍵系列のビットデータと平文との排他的論理和演算を行って、暗号文を出力する第５のステップと、を備えたことを特徴とするストリーム暗号の暗号化方法を提案している。
【００１８】
この発明によれば、初期鍵と初期ベクトルを入力して、初期化処理を実行し、次に、鍵系列生成処理を実行し、初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成する。さらに、生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行し、鍵系列生成処理を実行して、平文と同等のデータ長の鍵系列を生成する。そして、生成された鍵系列のビットデータと平文との排他的論理和演算を行って、暗号文を出力する。したがって、異なるロジックを追加する事無く、既存のストリーム暗号の安全性を向上させることができる。
【００１９】
（７）本発明は、初期鍵と初期ベクトルを入力して、初期化処理を実行する第１のステップと、鍵系列生成処理を実行し、前記初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成する第２のステップと、該生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する第３のステップと、鍵系列生成処理を実行し、暗号文と同等のデータ長の鍵系列を生成する第４のステップと、該生成された鍵系列のビットデータと暗号文との排他的論理和演算を行って、平文を出力する第５のステップと、を備えたことを特徴とするストリーム暗号の復号化方法を提案している。
【００２０】
この発明によれば、初期鍵と初期ベクトルを入力して、初期化処理を実行し、次に、鍵系列生成処理を実行し、初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成する。さらに、生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行し、鍵系列生成処理を実行して、暗号文と同等のデータ長の鍵系列を生成する。そして、生成された鍵系列のビットデータと暗号文との排他的論理和演算を行って、平文を出力する。したがって、異なるロジックを追加する事無く、既存のストリーム暗号の安全性を向上させることができる。
【００２１】
（８）本発明は、初期鍵と初期ベクトルを入力して、初期化処理を実行する第１のステップと、鍵系列生成処理を実行し、前記初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成する第２のステップと、該生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する第３のステップと、鍵系列生成処理を実行し、平文と同等のデータ長の鍵系列を生成する第４のステップと、該生成された鍵系列と平文との排他的論理和演算を行って、演算結果を前記第１のステップにフィードバックするとともに、最終的な暗号文をメッセージ認証子として出力する第５のステップと、を備えたことを特徴とするＭＡＣ生成方法を提案している。
【００２２】
この発明によれば、初期鍵と初期ベクトルを入力して、初期化処理を実行し、次に、鍵系列生成処理を実行し、初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成する。さらに、生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行し、鍵系列生成処理を実行して、平文と同等のデータ長の鍵系列を生成する。そして、生成された鍵系列と平文との排他的論理和演算を行って、演算結果を第１のステップにフィードバックするとともに、最終的な暗号文をメッセージ認証子として出力する。したがって、異なるロジックを追加する事無く、既存のストリーム暗号の安全性を向上させることができる。
【００２３】
（９）本発明は、コンピュータに、初期鍵と初期ベクトルを入力して、初期化処理を実行する第１のステップと、鍵系列生成処理を実行し、前記初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成する第２のステップと、該生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する第３のステップと、鍵系列生成処理を実行し、平文と同等のデータ長の鍵系列を生成する第４のステップと、該生成された鍵系列のビットデータと平文との排他的論理和演算を行って、暗号文を出力する第５のステップと、を実行させるためのストリーム暗号の暗号化プログラムを提案している。
【００２４】
この発明によれば、初期鍵と初期ベクトルを入力して、初期化処理を実行し、次に、鍵系列生成処理を実行し、初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成する。さらに、生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行し、鍵系列生成処理を実行して、平文と同等のデータ長の鍵系列を生成する。そして、生成された鍵系列のビットデータと平文との排他的論理和演算を行って、暗号文を出力する。したがって、異なるロジックを追加する事無く、既存のストリーム暗号の安全性を向上させることができる。
【００２５】
（１０）本発明は、コンピュータに、初期鍵と初期ベクトルを入力して、初期化処理を実行する第１のステップと、鍵系列生成処理を実行し、前記初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成する第２のステップと、該生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する第３のステップと、鍵系列生成処理を実行し、暗号文と同等のデータ長の鍵系列を生成する第４のステップと、該生成された鍵系列のビットデータと暗号文との排他的論理和演算を行って、平文を出力する第５のステップと、を実行させるためのストリーム暗号の復号化プログラムを提案している。
【００２６】
この発明によれば、初期鍵と初期ベクトルを入力して、初期化処理を実行し、次に、鍵系列生成処理を実行し、初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成する。さらに、生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行し、鍵系列生成処理を実行して、暗号文と同等のデータ長の鍵系列を生成する。そして、生成された鍵系列のビットデータと暗号文との排他的論理和演算を行って、平文を出力する。したがって、異なるロジックを追加する事無く、既存のストリーム暗号の安全性を向上させることができる。
【００２７】
（１１）本発明は、コンピュータに、初期鍵と初期ベクトルを入力して、初期化処理を実行する第１のステップと、鍵系列生成処理を実行し、前記初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成する第２のステップと、該生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する第３のステップと、鍵系列生成処理を実行し、平文と同等のデータ長の鍵系列を生成する第４のステップと、該生成された鍵系列と平文との排他的論理和演算を行って、演算結果を前記第１のステップにフィードバックするとともに、最終的な暗号文をメッセージ認証子として出力する第５のステップと、を実行させるためのＭＡＣ生成プログラムを提案している。
【００２８】
この発明によれば、初期鍵と初期ベクトルを入力して、初期化処理を実行し、次に、鍵系列生成処理を実行し、初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成する。さらに、生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行し、鍵系列生成処理を実行して、平文と同等のデータ長の鍵系列を生成する。そして、生成された鍵系列と平文との排他的論理和演算を行って、演算結果を第１のステップにフィードバックするとともに、最終的な暗号文をメッセージ認証子として出力する。したがって、異なるロジックを追加する事無く、既存のストリーム暗号の安全性を向上させることができる。
【発明の効果】
【００２９】
本発明によれば、たとえ、内部状態が漏えいした場合であっても、初期鍵を導出することができない仕組みを構築することができるという効果がある。異なるロジックを追加する事無く、既存のストリーム暗号の安全性を向上させることができるという効果がある。
【発明を実施するための最良の形態】
【００３０】
以下、図面を用いて、本発明の実施形態について詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【００３１】
［第１の実施形態］
＜ストリーム暗号の暗号化装置の構成＞
本実施形態に係るストリーム暗号の暗号化装置は、図１に示すように、初期化処理部１ａと、鍵系列生成処理部２ａと、初期化処理部１ｂと、鍵系列生成処理部２ｂと、排他的論理和演算器（ＸＯＲ）３とから構成されている。
【００３２】
初期化処理部１ａは、初期鍵と初期ベクトルを入力して、初期化処理を実行する。鍵系列生成処理部２ａは、鍵系列生成処理を実行し、初期鍵および初期ベクトルと同等のデータ長の鍵系列を生成する。なお、初期化処理部１ａの処理と鍵系列生成処理部２ａとを耐タンパデバイス内で実行するとさらに好適である。つまり、初期化処理部１ａの処理と鍵系列生成処理部２ａとを耐タンパデバイス内で実行するこれにより、さらに、安全性を向上させることができる。また、初期化処理部１ａの初期化処理に、過去に用いた初期鍵および初期ベクトルを用いない。これにより、さらに、安全性を向上させることができる。
【００３３】
初期化処理部１ｂは、鍵系列生成処理部２ａが生成した鍵系列を新たな初期鍵とみなして、初期化処理を実行する。鍵系列生成処理部２ｂは、鍵系列生成処理を実行し、平文と同等のデータ長の鍵系列を生成する。
【００３４】
排他的論理和演算器（ＸＯＲ）３は、鍵系列生成処理部２ｂが生成した鍵系列のビット列と平文とを入力し、これらの排他的論理和演算を実行することにより暗号文を出力する。
【００３５】
＜ストリーム暗号の暗号化装置の処理＞
次に、図２を用いて、ストリーム暗号の暗号化装置の処理について説明する。
【００３６】
まず、初期化処理部１ａが、初期鍵および初期ベクトル（ＩＶ）を入力して、通常の初期化処理を行う（ステップＳ１０１）。次に、鍵系列生成処理部２ａが、鍵系列生成処理を実行し、初期鍵および初期ベクトル（ＩＶ）と同等の長さになるまで、鍵系列を生成する（ステップＳ１０２）。
【００３７】
さらに、初期化処理部１ｂは、鍵系列生成処理部２ａが生成した鍵系列を新たな初期鍵および初期ベクトル（ＩＶ）とみなし、初期化処理を実行する（ステップＳ１０３）。鍵系列生成処理部２ｂは、鍵系列生成処理を実行し、平文と同等の長さになるまで鍵系列を生成する（ステップＳ１０４）。
【００３８】
そして、鍵系列生成処理部２ｂが生成した鍵系列のビット列と平文とを排他的論理和演算器（ＸＯＲ）３に入力し、排他的論理和演算を行って暗号文として出力する（ステップＳ１０５）。
【００３９】
したがって、本実施形態のストリーム暗号の暗号化装置においては、初期化処理および鍵系列生成処理を２段階で実行する構成としたことから、異なるロジックを追加する事無く、既存のストリーム暗号の安全性を向上させることができる。
【００４０】
［第２の実施形態］
＜ストリーム暗号の復号化装置の構成＞
本実施形態に係るストリーム暗号の復号化装置は、図３に示すように、初期化処理部１ａと、鍵系列生成処理部２ａと、初期化処理部１ｂと、鍵系列生成処理部２ｂと、排他的論理和演算器（ＸＯＲ）４とから構成されている。なお、第１の実施形態と同様の符号を付す要素については、同様の機能を有するものであるから、詳細な説明は省略する。本実施形態に係るストリーム暗号の復号化装置においては、第１の実施形態に係るストリーム暗号の暗号化装置に比べて、排他的論理和演算器（ＸＯＲ）４が鍵系列生成処理部２ｂにより生成された鍵系列のビット列と暗号文とを入力し、これらの排他的論理和演算を実行することにより平文を出力する構成となっている点で相違している。
【００４１】
＜ストリーム暗号の復号化装置の処理＞
次に、図４を用いて、ストリーム暗号の復号化装置の処理について説明する。
まず、初期化処理部１ａが、初期鍵および初期ベクトル（ＩＶ）を入力して、通常の初期化処理を行う（ステップＳ２０１）。次に、鍵系列生成処理部２ａが、鍵系列生成処理を実行し、初期鍵および初期ベクトル（ＩＶ）と同等の長さになるまで、鍵系列を生成する（ステップＳ２０２）。
【００４２】
さらに、初期化処理部１ｂは、鍵系列生成処理部２ａが生成した鍵系列を新たな初期鍵および初期ベクトル（ＩＶ）とみなし、初期化処理を実行する（ステップＳ２０３）。鍵系列生成処理部２ｂは、鍵系列生成処理を実行し、平文と同等の長さになるまで鍵系列を生成する（ステップＳ２０４）。
【００４３】
そして、鍵系列生成処理部２ｂが生成した鍵系列のビット列と暗号文とを排他的論理和演算器（ＸＯＲ）４に入力し、排他的論理和演算を行って暗号文として出力する（ステップＳ２０５）。
【００４４】
したがって、本実施形態のストリーム暗号の復号化装置においては、初期化処理および鍵系列生成処理を２段階で実行する構成としたことから、異なるロジックを追加する事無く、既存のストリーム暗号の安全性を向上させることができる。
【００４５】
［第３の実施形態］
＜ＭＡＣ生成装置の構成＞
本実施形態に係るＭＡＣ生成装置は、図５に示すように、初期化処理部１ａと、鍵系列生成処理部２ａと、初期化処理部１ｂと、鍵系列生成処理部２ｂと、排他的論理和演算器（ＸＯＲ）３とから構成されている。なお、第１の実施形態と同様の符号を付す要素については、同様の機能を有するものであるから、詳細な説明は省略する。本実施形態に係るＭＡＣ生成装置の基本構成は、第１の実施形態に係るストリーム暗号の暗号化装置と同様であるが、排他的論理和演算器（ＸＯＲ）３から出力される暗号文を初期化処理部１ａにフィードバックする点が異なっている。
【００４６】
＜ＭＡＣ生成装置の処理＞
次に、図６を用いて、ＭＡＣ生成装置の処理について説明する。
まず、初期化処理部１ａが、初期鍵および初期ベクトル（ＩＶ）を入力して、通常の初期化処理を行う（ステップＳ３０１）。次に、鍵系列生成処理部２ａが、鍵系列生成処理を実行し、初期鍵および初期ベクトル（ＩＶ）と同等の長さになるまで、鍵系列を生成する（ステップＳ３０２）。
【００４７】
さらに、初期化処理部１ｂは、鍵系列生成処理部２ａが生成した鍵系列を新たな初期鍵および初期ベクトル（ＩＶ）とみなし、初期化処理を実行する（ステップＳ３０３）。鍵系列生成処理部２ｂは、鍵系列生成処理を実行し、平文と同等の長さになるまで鍵系列を生成する（ステップＳ３０４）。
【００４８】
そして、鍵系列生成処理部２ｂが生成した鍵系列のビット列と平文とを排他的論理和演算器（ＸＯＲ）３に入力し、排他的論理和演算を行って暗号文として出力し、これを初期化処理部１ａにフィードバックする（ステップＳ３０５）。
【００４９】
そして、すべての平文を入力したか否かを判断し（ステップＳ３０６）、すべての平文を入力したと判断したときには（ステップＳ３０６の「Ｙｅｓ」）、メッセージ認証子を出力し（ステップＳ３０７）、すべての平文を入力していないと判断したときには（ステップＳ３０６の「Ｎｏ」）、ステップＳ３０１に戻って、処理を続行する。
【００５０】
したがって、本実施形態のＭＡＣ生成装置においては、初期化処理および鍵系列生成処理を２段階で実行する構成としたことから、異なるロジックを追加する事無く、既存のストリーム暗号の安全性を向上させることができる。
【００５１】
なお、上述の一連の処理をプログラムとしてコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ＭＡＣ生成装置に読み込ませ、実行することによって本発明のストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ＭＡＣ生成装置を実現することができる。
【００５２】
また、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００５３】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００５４】
なお、本発明は、様々なストリーム暗号の評価に広く適用することができる。したがって、ストリーム暗号を使用するようなブロードバンド事業や携帯電話をはじめとするモバイル通信におけるシステム構築に広く利用することが可能である。
【００５５】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【図面の簡単な説明】
【００５６】
【図１】第１の実施形態に係るストリーム暗号の暗号化装置の構成を示す図である。
【図２】第１の実施形態に係るストリーム暗号の暗号化装置の処理フローである。
【図３】第２の実施形態に係るストリーム暗号の復号化装置の構成を示す図である。
【図４】第２の実施形態に係るストリーム暗号の復号化装置の処理フローである。
【図５】第３の実施形態に係るＭＡＣ生成装置の構成を示す図である。
【図６】第３の実施形態に係るＭＡＣ生成装置の処理フローである。
【符号の説明】
【００５７】
１ａ・・・初期化処理部
１ｂ・・・初期化処理部
２ａ・・・鍵系列生成処理部
２ｂ・・・鍵系列生成処理部
３、４・・・排他的論理和演算器（ＸＯＲ）
【図１】
0005415020.tif 000002
【図２】
0005415020.tif 000003
【図３】
0005415020.tif 000004
【図４】
0005415020.tif 000005
【図５】
0005415020.tif 000006
【図６】
0005415020.tif 000007