(57)【特許請求の範囲】
【請求項１】
ストリーム暗号の初期化処理回路であって、
出力ビットを入力にフィードバックするフィードバックレジスタと、
前記フィードバックレジスタと並列に設けられた動的線形フィードバックシフトレジスタと、
前記フィードバックレジスタからのビット入力により、前記動的線形フィードバックシフトレジスタにクロックビットを出力するクロック制御手段と、
前記フィードバックレジスタと前記動的線形フィードバックシフトレジスタからのビット入力を演算して鍵系列を出力する演算手段と、
を備え、
前記演算手段から出力される鍵系列を前記フィードバックレジスタあるいは前記動的線形フィードバックシフトレジスタのいずれかにフィードバックし、データの攪拌処理が終了した時点で、前記演算手段から出力される鍵系列のフィードバック先を切り替えることを特徴とする初期化処理回路。
【請求項２】
前記演算手段から出力される鍵系列を用いた前記データの攪拌処理が早く終了する前記フィードバックレジスタあるいは前記動的線形フィードバックシフトレジスタのいずれかから先にフィードバックすることを特徴とする請求項１に記載のストリーム暗号の初期化処理回路。
【請求項３】
前記フィードバックレジスタあるいは前記動的線形フィードバックシフトレジスタのいずれかが初期鍵を読み込み、他方が初期ベクトルを読み込むことを特徴とする請求項１または請求項２に記載のストリーム暗号の初期化処理回路。
【請求項４】
請求項１から請求項３の初期化処理回路と、
鍵系列を生成する鍵系列生成手段と、
前記生成した鍵系列と平文との排他的論理和を行う排他的論理和演算手段と、
を備えたことを特徴とするストリーム暗号化装置。
【請求項５】
請求項１から請求項３の初期化処理回路と、
鍵系列を生成する鍵系列生成手段と、
前記生成した鍵系列と暗号文との排他的論理和を行う排他的論理和演算手段と、
を備えたことを特徴とするストリーム復号化装置。
【請求項６】
ストリーム暗号の初期化処理回路における初期化方法であって、
フィードバックレジスタあるいは前記フィードバックレジスタと並列に設けられた動的線形フィードバックシフトレジスタのいずれかが初期鍵を読み込み、他方が初期ベクトルを読み込む第１のステップと、
前記フィードバックレジスタが出力ビットを入力にフィードバックしてデータの攪拌処理を行う第２のステップと、
前記動的線形フィードバックシフトレジスタが出力ビットを入力にフィードバックしてデータの攪拌処理を行う第３のステップと、
前記フィードバックレジスタからのビット入力により、前記動的線形フィードバックシフトレジスタに出力するクロックビットを用いて前記動的線形フィードバックシフトレジスタがデータの攪拌処理を行う第４のステップと、
前記フィードバックレジスタと前記動的線形フィードバックシフトレジスタからのビット入力を演算して鍵系列を出力する第５のステップと、
該鍵系列を前記フィードバックレジスタあるいは前記動的線形フィードバックシフトレジスタのいずれかにフィードバックし、データの攪拌処理が終了した時点で、前記演算手段から出力される鍵系列のフィードバック先を切り替える第６のステップと、
を備えたことを特徴とするストリーム暗号の初期化処理方法。
【請求項７】
ストリーム暗号の初期化処理回路における初期化方法をコンピュータに実行させるためのプログラムであって、
フィードバックレジスタあるいは前記フィードバックレジスタと並列に設けられた動的線形フィードバックシフトレジスタのいずれかが初期鍵を読み込み、他方が初期ベクトルを読み込む第１のステップと、
前記フィードバックレジスタが出力ビットを入力にフィードバックしてデータの攪拌処理を行う第２のステップと、
前記動的線形フィードバックシフトレジスタが出力ビットを入力にフィードバックしてデータの攪拌処理を行う第３のステップと、
前記フィードバックレジスタからのビット入力により、前記動的線形フィードバックシフトレジスタに出力するクロックビットを用いて前記動的線形フィードバックシフトレジスタがデータの攪拌処理を行う第４のステップと、
前記フィードバックレジスタと前記動的線形フィードバックシフトレジスタからのビット入力を演算して鍵系列を出力する第５のステップと、
鍵系列を前記フィードバックレジスタあるいは前記動的線形フィードバックシフトレジスタのいずれかにフィードバックし、データの攪拌処理が終了した時点で、前記演算手段から出力される鍵系列のフィードバック先を切り替える第６のステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリーム暗号化装置、ストリーム復号化装置の初期化処理回路、初期化処理方法およびプログラムに関する。
【背景技術】
【０００２】
近年、インターネットの目覚しい普及により、コンピュータを利用した様々なサービスが提供されている。こうして提供されるサービスの多くは、その通信内容を秘匿化するために暗号が利用されている。ここで、暗号方式としては、１つの鍵で暗号化と復号化とを行う共通鍵暗号方式が一般的であるが、この共通鍵暗号方式は、大きくブロック暗号方式とストリーム暗号方式とに大別される。
【０００３】
ストリーム暗号方式は、ブロック暗号方式よりも高速な処理が期待できるため、例えば、映画等の大容量データを伝送するための方式として、近年、注目を浴びているが、ストリーム暗号方式の場合には、暗号処理と復号処理との同期をとらなければならないという問題があった。そのため、一定サイズ以上の誤りなく受信した暗号文を利用して、同期を自動的に回復する自己同期型のストリーム暗号装置が提案されている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−１６１９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ストリーム暗号は、ビット単位の演算にすることにより小型ハードウェアに適用することが可能であるが、初期化処理に時間を要するという問題点があった。また、十分な安全性を有するアルゴリズムとするには、回路規模を大きくする、処理時間を増大させる必要があった。
【０００６】
そこで、本発明は、上述の課題に鑑みてなされたものであり、初期化処理を従来よりも効率化し、さらに安全で高速な、ビット単位の演算を行なうストリーム暗号の初期化処理回路、ストリーム暗号化装置、ストリーム復号化装置、ストリーム暗号の初期化処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するために、以下の事項を提案している。
【０００８】
（１）本発明は、ストリーム暗号の初期化処理回路であって、出力ビットを入力にフィードバックするフィードバックレジスタと、前記フィードバックレジスタと並列に設けられた動的線形フィードバックシフトレジスタと、前記フィードバックレジスタからのビット入力により、前記動的線形フィードバックシフトレジスタにクロックビットを出力するクロック制御手段と、前記フィードバックレジスタと前記動的線形フィードバックシフトレジスタからのビット入力を演算して鍵系列を出力する演算手段と、を備えたことを特徴とするストリーム暗号の初期化処理回路を提案している。
【０００９】
この発明によれば、フィードバックレジスタは、出力ビットを入力にフィードバックする。動的線形フィードバックシフトレジスタは、フィードバックレジスタと並列に設けられている。クロック制御手段は、フィードバックレジスタからのビット入力により、動的線形フィードバックシフトレジスタにクロックビットを出力する。演算手段は、フィードバックレジスタと動的線形フィードバックシフトレジスタからのビット入力を演算して鍵系列を出力する。したがって、フィードバックレジスタを並列に設けることにより、初期化処理を効率化できる。また、一方に、動的線形フィードバックシフトレジスタを使用することにより、周期性を保証するとともに、安全性を向上させることができる。
【００１０】
（２）本発明は、（１）の初期化処理回路について、前記フィードバックレジスタが非線形フィードバックシフトレジスタであることを特徴とするストリーム暗号の初期化処理回路を提案している。
【００１１】
この発明によれば、フィードバックレジスタが非線形フィードバックシフトレジスタである。つまり、動的線形フィードバックシフトレジスタと非線形フィードバックシフトレジスタとを組み合わせることにより、さらに安全性を強化することができる。
【００１２】
（３）本発明は、（２）の初期化処理回路について、前記演算手段が非線形フィルタであることを特徴とするストリーム暗号の初期化処理回路を提案している。
【００１３】
この発明によれば、演算手段が非線形フィルタである。つまり、動的線形フィードバックシフトレジスタと非線形フィードバックシフトレジスタと非線形フィルタの組合せにより安全性を相乗的に向上させることができる。このことにより、非線形フィルタの回路規模を最小化することができ、全体の回路規模削減に寄与する。
【００１４】
（４）本発明は、（１）から（３）の初期化処理回路について、前記演算手段から出力される鍵系列を前記フィードバックレジスタあるいは前記動的線形フィードバックシフトレジスタのいずれかにフィードバックし、データの攪拌処理が終了した時点で、前記演算手段から出力される鍵系列のフィードバック先を切り替えることを特徴とする初期化処理回路を提案している。
【００１５】
この発明によれば、演算手段から出力される鍵系列をフィードバックレジスタあるいは動的線形フィードバックシフトレジスタのいずれかにフィードバックし、データの攪拌処理が終了した時点で、演算手段から出力される鍵系列のフィードバック先を切り替える。これにより最適な初期化処理を実現することができる。
【００１６】
（５）本発明は、（４）の初期化処理回路について、前記演算手段から出力される鍵系列を用いた前記データの攪拌処理が早く終了する前記フィードバックレジスタあるいは前記動的線形フィードバックシフトレジスタのいずれかから先にフィードバックすることを特徴とするストリーム暗号の初期化処理回路を提案している。
【００１７】
この発明によれば、演算手段から出力される鍵系列を用いたデータの攪拌処理が早く終了するフィードバックレジスタあるいは動的線形フィードバックシフトレジスタのいずれかから先にフィードバックする。つまり、データの攪拌処理が早く終了するフィードバックレジスタあるいは動的線形フィードバックシフトレジスタのいずれかから先にフィードバックすることにより、切り替え後には、すでに攪拌済みのデータを用いて、初期化処理をすることができる。
【００１８】
（６）本発明は、（１）の初期化処理回路について、前記フィードバックレジスタあるいは前記動的線形フィードバックシフトレジスタのいずれかが初期鍵を読み込み、他方が初期ベクトルを読み込むことを特徴とするストリーム暗号の初期化処理回路を提案している。
【００１９】
この発明によれば、フィードバックレジスタあるいは動的線形フィードバックシフトレジスタのいずれかが初期鍵を読み込み、他方が初期ベクトルを読み込む。このことにより、初期ベクトルのみを変更する場合において、事前計算による処理の効率化を実現できる。
【００２０】
（７）本発明は、（１）から（６）の初期化処理回路と、鍵系列を生成する鍵系列生成手段と、前記生成した鍵系列と平文との排他的論理和を行う排他的論理和演算手段と、を備えたことを特徴とするストリーム暗号化装置を提案している。
【００２１】
この発明によれば、初期化処理が効率的でかつ、回路規模を抑えることができるアルゴリズムを実現できるため、小型デバイスでも用いることのできる軽量なストリーム暗号化装置を提供することができる。
【００２２】
（８）本発明は、（１）から（６）の初期化処理回路と、鍵系列を生成する鍵系列生成手段と、前記生成した鍵系列と暗号文との排他的論理和を行う排他的論理和演算手段と、を備えたことを特徴とするストリーム復号化装置を提案している。
【００２３】
この発明によれば、初期化処理が効率的でかつ、回路規模を抑えることができるアルゴリズムを実現できるため、小型デバイスでも用いることのできる軽量なストリーム復号化装置を提供することができる。
【００２４】
（９）本発明は、ストリーム暗号の初期化処理回路における初期化方法であって、フィードバックレジスタあるいは前記フィードバックレジスタと並列に設けられた動的線形フィードバックシフトレジスタのいずれかが初期鍵を読み込み、他方が初期ベクトルを読み込む第１のステップと、前記フィードバックレジスタが出力ビットを入力にフィードバックしてデータの攪拌処理を行う第２のステップと、前記動的線形フィードバックシフトレジスタが出力ビットを入力にフィードバックしてデータの攪拌処理を行う第３のステップと、前記フィードバックレジスタからのビット入力により、前記動的線形フィードバックシフトレジスタに出力するクロックビットを用いて前記動的線形フィードバックシフトレジスタがデータの攪拌処理を行う第４のステップと、を備えたことを特徴とするストリーム暗号の初期化処理方法を提案している。
【００２５】
この発明によれば、フィードバックレジスタあるいはフィードバックレジスタと並列に設けられた動的線形フィードバックシフトレジスタのいずれかが初期鍵を読み込み、他方が初期ベクトルを読み込む。次に、フィードバックレジスタが出力ビットを入力にフィードバックしてデータの攪拌処理を行い、動的線形フィードバックシフトレジスタが出力ビットを入力にフィードバックしてデータの攪拌処理を行う。そして、フィードバックレジスタからのビット入力により、動的線形フィードバックシフトレジスタに出力するクロックビットを用いて前記動的線形フィードバックシフトレジスタがデータの攪拌処理を行う。したがって、フィードバックレジスタを並列に設けることにより、初期化処理を効率化できる。また、一方に、動的線形フィードバックシフトレジスタを使用することにより、周期性を保証するとともに、安全性を向上させることができる。
【００２６】
（１０）本発明は、ストリーム暗号の初期化処理回路における初期化方法であって、フィードバックレジスタあるいは前記フィードバックレジスタと並列に設けられた動的線形フィードバックシフトレジスタのいずれかが初期鍵を読み込み、他方が初期ベクトルを読み込む第１のステップと、前記フィードバックレジスタが出力ビットを入力にフィードバックしてデータの攪拌処理を行う第２のステップと、前記動的線形フィードバックシフトレジスタが出力ビットを入力にフィードバックしてデータの攪拌処理を行う第３のステップと、前記フィードバックレジスタからのビット入力により、前記動的線形フィードバックシフトレジスタに出力するクロックビットを用いて前記動的線形フィードバックシフトレジスタがデータの攪拌処理を行う第４のステップと、前記フィードバックレジスタと前記動的線形フィードバックシフトレジスタからのビット入力を演算して鍵系列を出力する第５のステップと、該鍵系列を前記フィードバックレジスタあるいは前記動的線形フィードバックシフトレジスタのいずれかにフィードバックし、データの攪拌処理が終了した時点で、前記演算手段から出力される鍵系列のフィードバック先を切り替える第６のステップと、を備えたことを特徴とするストリーム暗号の初期化処理方法を提案している。
【００２７】
この発明によれば、フィードバックレジスタあるいはフィードバックレジスタと並列に設けられた動的線形フィードバックシフトレジスタのいずれかが初期鍵を読み込み、他方が初期ベクトルを読み込む。次に、フィードバックレジスタが出力ビットを入力にフィードバックしてデータの攪拌処理を行い、動的線形フィードバックシフトレジスタが出力ビットを入力にフィードバックしてデータの攪拌処理を行う。そして、フィードバックレジスタからのビット入力により、動的線形フィードバックシフトレジスタに出力するクロックビットを用いて動的線形フィードバックシフトレジスタがデータの攪拌処理を行い、フィードバックレジスタと動的線形フィードバックシフトレジスタからのビット入力を演算して鍵系列を出力する。さらに、その鍵系列をフィードバックレジスタあるいは動的線形フィードバックシフトレジスタのいずれかにフィードバックし、データの攪拌処理が終了した時点で、演算手段から出力される鍵系列のフィードバック先を切り替える。したがって、フィードバックレジスタを並列に設けることにより、初期化処理を効率化できる。また、一方に、動的線形フィードバックシフトレジスタを使用することにより、周期性を保証するとともに、安全性を向上させることができる。また、これにより、最適な初期化処理を実現することができる。
【００２８】
（１１）本発明は、ストリーム暗号の初期化処理回路における初期化方法をコンピュータに実行させるためのプログラムであって、フィードバックレジスタあるいは前記フィードバックレジスタと並列に設けられた動的線形フィードバックシフトレジスタのいずれかが初期鍵を読み込み、他方が初期ベクトルを読み込む第１のステップと、前記フィードバックレジスタが出力ビットを入力にフィードバックしてデータの攪拌処理を行う第２のステップと、前記動的線形フィードバックシフトレジスタが出力ビットを入力にフィードバックしてデータの攪拌処理を行う第３のステップと、前記フィードバックレジスタからのビット入力により、前記動的線形フィードバックシフトレジスタに出力するクロックビットを用いて前記動的線形フィードバックシフトレジスタがデータの攪拌処理を行う第４のステップと、をコンピュータに実行させるためのプログラムを提案している。
【００２９】
この発明によれば、フィードバックレジスタあるいはフィードバックレジスタと並列に設けられた動的線形フィードバックシフトレジスタのいずれかが初期鍵を読み込み、他方が初期ベクトルを読み込む。次に、フィードバックレジスタが出力ビットを入力にフィードバックしてデータの攪拌処理を行い、動的線形フィードバックシフトレジスタが出力ビットを入力にフィードバックしてデータの攪拌処理を行う。そして、フィードバックレジスタからのビット入力により、動的線形フィードバックシフトレジスタに出力するクロックビットを用いて前記動的線形フィードバックシフトレジスタがデータの攪拌処理を行う。したがって、フィードバックレジスタを並列に設けることにより、初期化処理を効率化できる。また、一方に、動的線形フィードバックシフトレジスタを使用することにより、周期性を保証するとともに、安全性を向上させることができる。
【００３０】
（１２）本発明は、ストリーム暗号の初期化処理回路における初期化方法をコンピュータに実行させるためのプログラムであって、フィードバックレジスタあるいは前記フィードバックレジスタと並列に設けられた動的線形フィードバックシフトレジスタのいずれかが初期鍵を読み込み、他方が初期ベクトルを読み込む第１のステップと、前記フィードバックレジスタが出力ビットを入力にフィードバックしてデータの攪拌処理を行う第２のステップと、前記動的線形フィードバックシフトレジスタが出力ビットを入力にフィードバックしてデータの攪拌処理を行う第３のステップと、前記フィードバックレジスタからのビット入力により、前記動的線形フィードバックシフトレジスタに出力するクロックビットを用いて前記動的線形フィードバックシフトレジスタがデータの攪拌処理を行う第４のステップと、前記フィードバックレジスタと前記動的線形フィードバックシフトレジスタからのビット入力を演算して鍵系列を出力する第５のステップと、該鍵系列を前記フィードバックレジスタあるいは前記動的線形フィードバックシフトレジスタのいずれかにフィードバックし、データの攪拌処理が終了した時点で、前記演算手段から出力される鍵系列のフィードバック先を切り替える第６のステップと、をコンピュータに実行させるためのプログラムを提案している。
【００３１】
この発明によれば、フィードバックレジスタあるいはフィードバックレジスタと並列に設けられた動的線形フィードバックシフトレジスタのいずれかが初期鍵を読み込み、他方が初期ベクトルを読み込む。次に、フィードバックレジスタが出力ビットを入力にフィードバックしてデータの攪拌処理を行い、動的線形フィードバックシフトレジスタが出力ビットを入力にフィードバックしてデータの攪拌処理を行う。そして、フィードバックレジスタからのビット入力により、動的線形フィードバックシフトレジスタに出力するクロックビットを用いて動的線形フィードバックシフトレジスタがデータの攪拌処理を行い、フィードバックレジスタと動的線形フィードバックシフトレジスタからのビット入力を演算して鍵系列を出力する。さらに、その鍵系列をフィードバックレジスタあるいは動的線形フィードバックシフトレジスタのいずれかにフィードバックし、データの攪拌処理が終了した時点で、演算手段から出力される鍵系列のフィードバック先を切り替える。したがって、フィードバックレジスタを並列に設けることにより、初期化処理を効率化できる。また、一方に、動的線形フィードバックシフトレジスタを使用することにより、周期性を保証するとともに、安全性を向上させることができる。また、これにより、最適な初期化処理を実現することができる。
【発明の効果】
【００３２】
本発明によれば、ビット単位で処理を行うため、初期化処理が効率的でかつ、回路規模を抑えることができるアルゴリズムを実現する
【図面の簡単な説明】
【００３３】
【図１】第１の実施形態に係る初期化処理回路の構成を示す図である。
【図２】第１の実施形態に係る初期化処理回路の処理を示すフロー図である。
【図３】第１の実施形態に係る初期化処理回路の構成を示す図である。
【図４】第１の実施形態に係る初期化処理回路の処理を示すフロー図である。
【図５】本発明の初期化処理回路を用いたストリーム暗号化装置の構成を示す図である。
【図６】本発明の初期化処理回路を用いたストリーム暗号化装置の構成を示す図である。
【発明を実施するための形態】
【００３４】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【００３５】
＜第１の実施形態＞
図１および図２を用いて、本発明の第１の実施形態について説明する。
【００３６】
＜初期化処理回路の構成＞
図１を用いて、本実施形態に係る初期化処理回路の構成について説明する。
本実施形態に係る初期化処理回路１００は、図１に示すように、非線形フィードバックシフトレジスタ１０１と、動的線形フィードバックシフトレジスタ１０２と、クロック制御部１０３と、非線形フィルタ１０４とから構成されている。なお、非線形フィードバックシフトレジスタ１０１と動的線形フィードバックシフトレジスタ１０２とは、図１に示すように、並列に設けられている。つまり、動的線形フィードバックシフトレジスタと非線形フィードバックシフトレジスタとを組み合わせることにより、さらに安全性を強化することができる。また、図１では、非線形フィードバックシフトレジスタ１０１と動的線形フィードバックシフトレジスタ１０２とがそれぞれ１個ずつの構成になっているが、これに限らず、対をなせば、複数であってもよい。
【００３７】
非線形フィードバックシフトレジスタ１０１は、フィードバック関数として非線形関数を使用するものである。また、非線形フィードバックシフトレジスタ１０１は、非線形フィルタ１０４及びクロック制御部１０３に必要なビットを出力する。その後、フィードバック関数により各レジスタをアップデートし、再びビットを出力するという処理を繰り返す。非線形関数の例を数１に示す。なお、数１において、ｘ０、ｘ１、・・・は、非線形フィードバックシフトレジスタ１０１におけるレジスタのビットである。
【００３８】
【数１】
0005495754.tif 000002
【００３９】
動的線形フィードバックシフトレジスタ１０２は、フィードバック関数として複数の線形フィードバック関数をクロック制御装置の決定に従って選択する動的フィードバック関数を使用するものである。動的線形フィードバックシフトレジスタ１０２は、非線形フィルタに必要なビットを出力する。その後、フィードバック関数により各レジスタをアップデートし、再びビットを出力するという処理を繰り返す。動的線形関数の例を数２にしめす。なお、数２において、ｂｔ、ｂｔ＋１４、・・・は、動的線形フィードバックシフトレジスタ１０２におけるレジスタのビットであり、ｃ０、ｃ１、・・・は、クロックビットを示し、文字上部にある「−」の記号は、反転を意味する。
【００４０】
【数２】
0005495754.tif 000003
【００４１】
クロック制御部１０３は、非線形フィードバックシフトレジスタ１０１からの入力ビットに対して、動的線形フィードバックシフトレジスタ１０２のフィードバック関数を決定する処理を行う。なお、クロック制御部１０３を設けることにより、更なる攪拌ルートを設けることができるため、初期化処理動作を効率化することができる。
【００４２】
非線形フィルタ１０４は、非線形フィードバックシフトレジスタ１０１及び動的線形フィードバックシフトレジスタ１０２から入力されるビットから非線形関数により鍵系列を計算して出力する。なお、動的線形フィードバックシフトレジスタと非線形フィードバックシフトレジスタと非線形フィルタの組合せにより安全性を相乗的に向上させることができる。このことにより、非線形フィルタの回路規模を最小化することができ、全体の回路規模削減に寄与する。
【００４３】
＜初期化処理回路の処理＞
図２を用いて、本実施形態に係る初期化処理回路の処理について説明する。
まず、非線形フィードバックシフトレジスタ１０１あるいはこれと並列に設けられた動的線形フィードバックシフトレジスタ１０２のいずれかが初期鍵を読み込み、他方が初期ベクトルを読み込む（ステップＳ１０１）。
【００４４】
非線形フィードバックシフトレジスタ１０１が出力ビットを入力にフィードバックしてデータの攪拌処理を行う（ステップＳ１０２）。
【００４５】
一方、動的線形フィードバックシフトレジスタ１０２が出力ビットを入力にフィードバックしてデータの攪拌処理を行う。一方、非線形フィードバックシフトレジスタ１０１からのビット入力により、動的線形フィードバックシフトレジスタ１０２に出力するクロックビットを用いて動的線形フィードバックシフトレジスタ１０２がデータの攪拌処理を行う（ステップＳ１０３）。
【００４６】
以上、説明したように、本実施形態によれば、フィードバックレジスタを並列に設けることにより、初期化処理を効率化できる。また、一方に、動的線形フィードバックシフトレジスタを使用することにより、周期性を保証するとともに、安全性を向上させることができる。
【００４７】
＜第２の実施形態＞
図３および図４を用いて、本発明の第２の実施形態について説明する。
【００４８】
＜初期化処理回路の構成＞
図３を用いて、本実施形態に係る初期化処理回路の構成について説明する。
本実施形態に係る初期化処理回路１１０は、図３に示すように、非線形フィードバックシフトレジスタ１０１と、動的線形フィードバックシフトレジスタ１０２と、クロック制御部１０３と、非線形フィルタ１０４とから構成されている。
【００４９】
図３に示すように、基本的な構成要素は、第１の実施形態と同様であるが、初期化処理において、非線形フィルタ１０４から出力される鍵系列を例えば、非線形フィードバックシフトレジスタ１０１にフィードバックし、非線形フィードバックシフトレジスタ１０１において、データの攪拌が終了すると、フィードバックを動的線形フィードバックシフトレジスタ１０２に切り替える。これにより、最適な初期化処理を実現することができる。
【００５０】
なお、鍵系列のフィードバックは、鍵系列を用いたデータの攪拌処理が早く終了するフィードバックレジスタから先にフィードバックする。つまり、データの攪拌処理が早く終了するフィードバックレジスタあるいは動的線形フィードバックシフトレジスタのいずれかから先にフィードバックすることにより、切り替え後には、すでに攪拌済みのデータを用いて、初期化処理をすることができる。
【００５１】
また、例えば、非線形フィードバックシフトレジスタ１０１が初期鍵を読み込み、動的線形フィードバックシフトレジスタ１０２が初期ベクトルを読み込む。このことにより、初期ベクトルのみを変更する場合において、事前計算による処理の効率化を実現できる。
【００５２】
さらに、初期鍵と初期ベクトルの読み込みにおいて、初期鍵と初期ベクトルとが、それぞれ別々のレジスタに入力されるため、初期ベクトルの変更のみを行う場合、初期鍵に関する処理を事前処理として独立に実施可能であり、初期化処理に要する計算時間を節約することができる。
【００５３】
＜初期化処理回路の処理＞
図４を用いて、本実施形態に係る初期化処理回路の処理について説明する。
まず、非線形フィードバックシフトレジスタ１０１あるいはこれと並列に設けられた動的線形フィードバックシフトレジスタ１０２のいずれかが初期鍵を読み込み、他方が初期ベクトルを読み込む（ステップＳ２０１）。
【００５４】
非線形フィードバックシフトレジスタ１０１が出力ビットを入力にフィードバックしてデータの攪拌処理を行う（ステップＳ２０２）。
【００５５】
一方、動的線形フィードバックシフトレジスタ１０２が出力ビットを入力にフィードバックしてデータの攪拌処理を行う。一方、非線形フィードバックシフトレジスタ１０１からのビット入力により、動的線形フィードバックシフトレジスタ１０２に出力するクロックビットを用いて動的線形フィードバックシフトレジスタ１０２がデータの攪拌処理を行う（ステップＳ２０３）。
【００５６】
次に、非線形フィードバックシフトレジスタ１０１と動的線形フィードバックシフトレジスタ１０２からのビット入力を演算して鍵系列を出力し（ステップＳ２０４）、鍵系列を非線形フィードバックシフトレジスタ１０１にフィードバックし、データの攪拌処理が終了した時点で、前記演算手段から出力される鍵系列のフィードバック先を動的線形フィードバックシフトレジスタ１０２に切り替える（ステップＳ２０５）。
【００５７】
以上、説明したように、本実施形態によれば、フィードバックレジスタを並列に設けることにより、初期化処理を効率化できる。また、一方に、動的線形フィードバックシフトレジスタを使用することにより、周期性を保証するとともに、安全性を向上させることができる。また、これにより、最適な初期化処理を実現することができる。
【００５８】
＜本発明の初期化処理回路を用いたストリーム暗号化装置＞
図５を用いて、本発明の初期化処理回路を用いたストリーム暗号化装置について説明する。
【００５９】
＜ストリーム暗号化装置の構成＞
ストリーム暗号化装置は、図５に示すように、初期化処理回路１００と、鍵系列生成部２００と、ＸＯＲ演算器３００とから構成されている。ここで、鍵系列生成部２００は鍵系列を生成する。ＸＯＲ演算器３００は、平文と鍵系列生成部２００が生成した鍵系列のＸＯＲ演算を行い、暗号文を生成する。
【００６０】
＜ストリーム暗号化装置の処理＞
まず、初期鍵、初期ベクトルを読み込み、初期化処理を実施する。次に、鍵系列生成処理を実行し、鍵系列を生成し、生成した鍵系列と平文とを排他的論理和することで、暗号化する。
【００６１】
したがって、上記のストリーム暗号化装置によれば、初期化処理が効率的でかつ、回路規模を抑えることができるアルゴリズムを実現できるため、小型デバイスでも用いることのできる軽量なストリーム暗号化装置を提供することができる。
【００６２】
＜本発明の初期化処理回路を用いたストリーム復号化装置＞
図６を用いて、本発明の初期化処理回路を用いたストリーム復号化装置について説明する。
【００６３】
＜ストリーム復号化装置の構成＞
ストリーム復号化装置は、図６に示すように、初期化処理回路１００と、鍵系列生成部２００と、ＸＯＲ演算器３００とから構成されている。ここで、鍵系列生成部２００は鍵系列を生成する。ＸＯＲ演算器３００は、暗号文と鍵系列生成部２００が生成した鍵系列のＸＯＲ演算を行い、平文を生成する。
【００６４】
＜ストリーム復号化装置の処理＞
まず、初期鍵、初期ベクトルを読み込み、初期化処理を実施する。次に、鍵系列生成処理を実行し、鍵系列を生成し、生成した鍵系列と暗号文とを排他的論理和することで、復号化する。
【００６５】
したがって、上記のストリーム復号化装置によれば、初期化処理が効率的でかつ、回路規模を抑えることができるアルゴリズムを実現できるため、小型デバイスでも用いることのできる軽量なストリーム復号化装置を提供することができる。
【００６６】
なお、初期化処理回路の処理をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを初期化処理回路に読み込ませ、実行することによって本発明の初期化処理回路、ストリーム暗号化装置、ストリーム復号化装置を実現することができる。ここでいうコンピュータシステムとは、ＯＳや周辺装置等のハードウェアを含む。
【００６７】
また、「コンピュータシステム」は、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されても良い。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００６８】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００６９】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００７０】
１００；初期化処理回路
１０１；非線形フィードバックシフトレジスタ
１０２；動的線形フィードバックシフトレジスタ
１０３；クロック制御部
１０４；非線形フィルタ
１１０；初期化処理回路
【図１】
0005495754.tif 000004
【図２】
0005495754.tif 000005
【図３】
0005495754.tif 000006
【図４】
0005495754.tif 000007
【図５】
0005495754.tif 000008
【図６】
0005495754.tif 000009