(57)【特許請求の範囲】
【請求項１】
周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器と、
前記複数のストリーム暗号器から出力される第１の鍵系列を入力し、第２の鍵系列を出力する非線形関数器と、
該第２の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する排他的論理和演算器と、
を備えたことを特徴とするストリーム暗号の暗号化装置。
【請求項２】
前記非線形関数がＳＰＮ構造であることを特徴とする請求項１に記載のストリーム暗号の暗号化装置。
【請求項３】
前記非線形関数が前記複数のストリーム暗号器に対応して配置された非線形関数器と、
前記非線形関数器からの出力値を入力し、前記第２の鍵系列を出力する線形置換関数器と、
を備えたことを特徴とする請求項２に記載のストリーム暗号の暗号化装置。
【請求項４】
前記非線形関数器の入力ビットが短いことを特徴とする請求項３に記載のストリーム暗号の暗号化装置。
【請求項５】
前記線形置換関数器の出力ビット長を可変できることを特徴とする請求項３に記載のストリーム暗号の暗号化装置。
【請求項６】
前記ストリーム暗号器が、
初期鍵と初期ベクトルとを用いて、初期化処理を行う初期化処理手段と、
鍵系列処理を実行し、鍵系列を生成する鍵系列生成手段と、
を備えたことを特徴とする請求項１に記載のストリーム暗号の暗号化装置。
【請求項７】
周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器と、
前記複数のストリーム暗号器から出力されるビット列を入力し、鍵系列を出力する非線形関数器と、
該鍵系列と平文との排他的論理和演算を行い、暗号文を出力する排他的論理和演算器と、
を備えたことを特徴とするストリーム暗号の暗号化装置。
【請求項８】
前記ストリーム暗号器が、
初期鍵と初期ベクトルとを用いて、初期化処理を行う初期化処理手段と、
内部状態の中から平文と同じ長さのビット列を選択して、前記非線形関数器に出力するビット列出力手段と、
を備えたことを特徴とする請求項７に記載のストリーム暗号の暗号化装置。
【請求項９】
前記選択されたビット列が１ビット以上、かつ、前記内部状態の半分以下であることを特徴とする請求項８に記載のストリーム暗号の暗号化装置。
【請求項１０】
前記平文の長さが前記内部状態の半分よりも大きい場合には、１ビット以上、かつ、内部状態の半分以下の平文について処理を行い、残りの平文の暗号化する場合には、前記初期化処理手段が初期ベクトルを変更して、再度、初期化処理を行うことを特徴とする請求項８に記載のストリーム暗号の暗号化装置。
【請求項１１】
周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う第１のステップと、
周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、鍵系列処理を実行し、第１の鍵系列を生成し、非線形関数器に出力する第２のステップと、
前記非線形関数が、前記複数のストリーム暗号器から出力される第１の鍵系列を入力し、第２の鍵系列を出力する第３のステップと、
排他的論理和演算器が、該第２の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第４のステップと、
からなることを特徴とするストリーム暗号の暗号化方法。
【請求項１２】
周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う第１のステップと、
周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、内部状態の中から平文と同じ長さのビット列を選択し、非線形関数器に出力する第２のステップと、
前記非線形関数が、前記複数のストリーム暗号器から出力されるビット列を入力し、鍵系列を出力する第３のステップと、
排他的論理和演算器が、該鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第４のステップと、
からなることを特徴とするストリーム暗号の暗号化方法。
【請求項１３】
ストリーム暗号の暗号方法をコンピュータに実行させるためのプログラムであって、
周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う第１のステップと、
周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、鍵系列処理を実行し、第１の鍵系列を生成し、非線形関数器に出力する第２のステップと、
前記非線形関数が、前記複数のストリーム暗号器から出力される第１の鍵系列を入力し、第２の鍵系列を出力する第３のステップと、
排他的論理和演算器が、該第２の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第４のステップと、
をコンピュータに実行させるためのプログラム。
【請求項１４】
ストリーム暗号の暗号方法をコンピュータに実行させるためのプログラムであって、
周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う第１のステップと、
周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、内部状態の中から平文と同じ長さのビット列を選択し、非線形関数器に出力する第２のステップと、
前記非線形関数が、前記複数のストリーム暗号器から出力されるビット列を入力し、鍵系列を出力する第３のステップと、
排他的論理和演算器が、該鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第４のステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリーム暗号の暗号化装置、ストリーム暗号の暗号化方法およびプログラムに関する。
【背景技術】
【０００２】
近年、インターネットの目覚しい普及により、コンピュータを利用した様々なサービスが提供されている。こうして提供されるサービスの多くは、その通信内容を秘匿化するために暗号が利用されている。ここで、暗号方式としては、１つの鍵で暗号化と復号化とを行う共通鍵暗号方式が一般的であるが、この共通鍵暗号方式は、大きくブロック暗号方式とストリーム暗号方式とに大別される。
【０００３】
ストリーム暗号方式の一例としては、乱数系列のビットデータを入力し、変換されたビットデータを複数の内部メモリから出力する非線形関数器であって、入力した乱数系列のビットデータと複数の内部メモリのうち一部の内部メモリデータとを加算する加算器と、入力データを非線形置換する非線形置換器と、を備え、複数の内部メモリが少なくとも非線形置換器を介して、環状に接続されストリーム暗号装置が提案されている（例えば、特許文献１参照。）。上記、従来技術によれば、安全かつ高速な処理を可能とする非線形関数器およびこれを用いたストリーム暗号の暗号化装置等を提供することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３２７９８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところが、暗号化したデータの長期保存を目的とした場合、より高度な安全性を求められる場合がある。ブロック暗号方式では、ラウンド関数の実行回数を増加させることで、安全性を向上させることができる。一方で、ストリーム暗号においてどのようにして効率よく安全性を向上させるかは、課題となっていた。
【０００６】
そこで、本発明は、上述の課題に鑑みてなされたものであり、既存のストリーム暗号を用いてより安全性の高い暗号方式を実現するストリーム暗号の暗号化装置、ストリーム暗号の暗号化方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
【０００８】
（１）本発明は、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器（例えば、図１のストリーム暗号器１０ａ〜１０ｃに相当）と、前記複数のストリーム暗号器から出力される第１の鍵系列を入力し、第２の鍵系列を出力する非線形関数器（例えば、図１の非線形関数器２０に相当）と、該第２の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する排他的論理和演算器（例えば、図１の排他的論理和演算器３０に相当）と、を備えたことを特徴とするストリーム暗号の暗号化装置を提案している。
【０００９】
この発明によれば、複数のストリーム暗号器は、周期がそれぞれに異なり、並列に配置されている。非線形関数器は、複数のストリーム暗号器から出力される第１の鍵系列を入力し、第２の鍵系列を出力する。排他的論理和演算器は、第２の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する。したがって、各ストリーム暗号器の周期を異ならせることにより、第２の鍵系列の長周期性を実現して、安全性の高いストリーム暗号の暗号化装置を実現することができる。
【００１０】
（２）本発明は、（１）のストリーム暗号の暗号化装置について、前記非線形関数がＳＰＮ構造であることを特徴とするストリーム暗号の暗号化装置を提案している。
【００１１】
この発明によれば、非線形関数がＳＰＮ構造である。つまり、非線形関数がＳＰＮ構造であるために、攻撃者は、すべての第１の鍵系列を攻撃しないと暗号を解くことができない。
【００１２】
（３）本発明は、（２）のストリーム暗号の暗号化装置について、前記非線形関数が前記複数のストリーム暗号器に対応して配置された非線形関数器（例えば、図２の非線形置換関数２１ａ〜２１ｃに相当）と、前記非線形関数器からの出力値を入力し、前記第２の鍵系列を出力する線形置換関数器（例えば、図２の線形置換関数２２に相当）と、を備えたことを特徴とする請求項２に記載のストリーム暗号の暗号化装置を提案している。
【００１３】
この発明によれば、非線形関数が複数のストリーム暗号器に対応して配置された非線形関数器と、非線形関数器からの出力値を入力し、第２の鍵系列を出力する線形置換関数器と、を備えている。したがって、このように、非線形関数器を上記のような、いわゆる、ＳＰＮ構造とすることにより、攻撃者は、すべての第１の鍵系列を攻撃しないと暗号を解くことができない。
【００１４】
（４）本発明は、（３）のストリーム暗号の暗号化装置について、前記非線形関数器の入力ビットが短いことを特徴とするストリーム暗号の暗号化装置を提案している。
【００１５】
この発明によれば、非線形関数器の入力ビットが短い。これにより、安全性の向上とともに、処理速度を早くすることができる。
【００１６】
（５）本発明は、（３）のストリーム暗号の暗号化装置について、前記線形置換関数器の出力ビット長を可変できることを特徴とするストリーム暗号の暗号化装置を提案している。
【００１７】
この発明によれば、線形置換関数器の出力ビット長を可変できる。つまり、出力ビット長を可変することにより、安全性を増減させることができる。
【００１８】
（６）本発明は、（１）のストリーム暗号の暗号化装置について、前記ストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う初期化処理手段（例えば、図３の初期化処理部１１に相当）と、鍵系列処理を実行し、鍵系列を生成する鍵系列生成手段（例えば、図３の鍵系列生成部１２に相当）と、を備えたことを特徴とするストリーム暗号の暗号化装置を提案している。
【００１９】
この発明によれば、ストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う初期化処理手段と、鍵系列処理を実行し、鍵系列を生成する鍵系列生成手段とから構成されている。つまり、一般的なストリーム暗号器を用いて、従来よりも安全性の高いストリーム暗号の暗号化装置を実現することができる。
【００２０】
（７）本発明は、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器（例えば、図５のストリーム暗号器１０ｄ〜１０ｆに相当）と、前記複数のストリーム暗号器から出力されるビット列を入力し、鍵系列を出力する非線形関数器（例えば、図５の非線形関数器２５に相当）と、該鍵系列と平文との排他的論理和演算を行い、暗号文を出力する排他的論理和演算器（例えば、図５の排他的論理和演算部３０に相当）と、を備えたことを特徴とするストリーム暗号の暗号化装置を提案している。
【００２１】
この発明によれば、複数のストリーム暗号器は、周期がそれぞれに異なり、並列に配置されている。非線形関数器は、複数のストリーム暗号器から出力されるビット列を入力し、鍵系列を出力する。排他的論理和演算器は、鍵系列と平文との排他的論理和演算を行い、暗号文を出力する。したがって、各ストリーム暗号器の周期を異ならせることにより、鍵系列の長周期性を実現し、安全性を向上させるとともに、短い平文について、鍵系列生成処理を実行せずに暗号化を行うため、異なるロジックを追加する必要がなく、暗号化処理の効率化を図ることができる。
【００２２】
（８）本発明は、（７）のストリーム暗号の暗号化装置について、前記ストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う初期化処理手段（例えば、図６の初期化処理部１１に相当）と、内部状態の中から平文と同じ長さのビット列を選択して、前記非線形関数器に出力するビット列出力手段（例えば、図６のビット選択部１３に相当）と、を備えたことを特徴とするストリーム暗号の暗号化装置を提案している。
【００２３】
この発明によれば、初期化処理手段は、初期鍵と初期ベクトルとを用いて、初期化処理を行う。ビット列出力手は、内部状態の中から平文と同じ長さのビット列を選択して、非線形関数器に出力する。したがって、短い平文について、鍵系列生成処理を実行せずに暗号化を行うため、異なるロジックを追加する必要がなく、暗号化処理の効率化を図ることができる。
【００２４】
（９）本発明は、（８）のストリーム暗号の暗号化装置について、前記選択されたビット列が１ビット以上、かつ、前記内部状態の半分以下であることを特徴とするストリーム暗号の暗号化装置を提案している。
【００２５】
この発明によれば、選択されたビット列が１ビット以上、かつ、内部状態の半分以下である。つまり、ストリーム暗号の内部状態に対して、半分以下の短い平文を暗号化する場合に、内部状態のビット列を直接使うことで処理負荷を軽減する。
【００２６】
（１０）本発明は、（８）のストリーム暗号の暗号化装置について、前記平文の長さが前記内部状態の半分よりも大きい場合には、１ビット以上、かつ、内部状態の半分以下の平文について処理を行い、残りの平文の暗号化する場合には、前記初期化処理手段が初期ベクトルを変更して、再度、初期化処理を行うことを特徴とするストリーム暗号の暗号化装置を提案している。
【００２７】
この発明によれば、平文の長さが内部状態の半分よりも大きい場合には、１ビット以上、かつ、内部状態の半分以下の平文について処理を行い、残りの平文の暗号化する場合には、初期化処理手段が初期ベクトルを変更して、再度、初期化処理を行う。つまり、平文の長さが内部状態の半分よりも大きい場合には、少なくとも、内部状態の半分以下のビット列に区切って、それぞれについて、再度、初期化処理を行い、暗号化の処理を実行する。これにより、平文の長さが内部状態の半分よりも大きい場合であっても、鍵系列生成処理を実行せずに暗号化を行うため、異なるロジックを追加する必要がなく、暗号化処理の効率化を図ることができる。
【００２８】
（１１）本発明は、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う第１のステップ（例えば、図４のステップＳ１０１に相当）と、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、鍵系列処理を実行し、第１の鍵系列を生成し、非線形関数器に出力する第２のステップ（例えば、図４のステップＳ１０２に相当）と、前記非線形関数が、前記複数のストリーム暗号器から出力される第１の鍵系列を入力し、第２の鍵系列を出力する第３のステップ（例えば、図４のステップＳ１０３に相当）と、排他的論理和演算器が、該第２の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第４のステップ（例えば、図４のステップＳ１０４に相当）と、からなることを特徴とするストリーム暗号の暗号化方法を提案している。
【００２９】
この発明によれば、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行い、鍵系列処理を実行し、第１の鍵系列を生成し、非線形関数器に出力する。そして、非線形関数が、複数のストリーム暗号器から出力される第１の鍵系列を入力し、第２の鍵系列を出力し、排他的論理和演算器が、第２の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する。したがって、各ストリーム暗号器の周期を異ならせることにより、第２の鍵系列の長周期性を実現して、安全性の高いストリーム暗号の暗号化装置を実現することができる。
【００３０】
（１２）本発明は、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う第１のステップ（例えば、図７のステップＳ２０１に相当）と、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、内部状態の中から平文と同じ長さのビット列を選択し、非線形関数器に出力する第２のステップ（例えば、図７のステップＳ２０２に相当）と、前記非線形関数が、前記複数のストリーム暗号器から出力されるビット列を入力し、鍵系列を出力する第３のステップ（例えば、図７のステップＳ２０３に相当）と、排他的論理和演算器が、該鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第４のステップ（例えば、図７のステップＳ２０４に相当）と、からなることを特徴とするストリーム暗号の暗号化方法を提案している。
【００３１】
この発明によれば、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行い、内部状態の中から平文と同じ長さのビット列を選択し、非線形関数器に出力する。そして、非線形関数が、複数のストリーム暗号器から出力されるビット列を入力し、鍵系列を出力し、排他的論理和演算器が、鍵系列と平文との排他的論理和演算を行い、暗号文を出力する。したがって、各ストリーム暗号器の周期を異ならせることにより、鍵系列の長周期性を実現して、安全性の高いストリーム暗号の暗号化装置を実現することができる。また、短い平文について、鍵系列生成処理を実行せずに暗号化を行うため、異なるロジックを追加する必要がなく、暗号化処理の効率化を図ることができる。
【００３２】
（１３）本発明は、ストリーム暗号の暗号方法をコンピュータに実行させるためのプログラムであって、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う第１のステップ（例えば、図４のステップＳ１０１に相当）と、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、鍵系列処理を実行し、第１の鍵系列を生成し、非線形関数器に出力する第２のステップ（例えば、図４のステップＳ１０２に相当）と、前記非線形関数が、前記複数のストリーム暗号器から出力される第１の鍵系列を入力し、第２の鍵系列を出力する第３のステップ（例えば、図４のステップＳ１０３に相当）と、排他的論理和演算器が、該第２の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第４のステップ（例えば、図４のステップＳ１０４に相当）と、をコンピュータに実行させるためのプログラムを提案している。
【００３３】
この発明によれば、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行い、鍵系列処理を実行し、第１の鍵系列を生成し、非線形関数器に出力する。そして、非線形関数が、複数のストリーム暗号器から出力される第１の鍵系列を入力し、第２の鍵系列を出力し、排他的論理和演算器が、第２の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する。したがって、各ストリーム暗号器の周期を異ならせることにより、第２の鍵系列の長周期性を実現して、安全性の高いストリーム暗号の暗号化装置を実現することができる。
【００３４】
（１４）本発明は、ストリーム暗号の暗号方法をコンピュータに実行させるためのプログラムであって、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う第１のステップ（例えば、図７のステップＳ２０１に相当）と、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、内部状態の中から平文と同じ長さのビット列を選択し、非線形関数器に出力する第２のステップ（例えば、図７のステップＳ２０２に相当）と、前記非線形関数が、前記複数のストリーム暗号器から出力されるビット列を入力し、鍵系列を出力する第３のステップ（例えば、図７のステップＳ２０３に相当）と、排他的論理和演算器が、該鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第４のステップ（例えば、図７のステップＳ２０４に相当）と、をコンピュータに実行させるためのプログラムを提案している。
【００３５】
この発明によれば、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行い、内部状態の中から平文と同じ長さのビット列を選択し、非線形関数器に出力する。そして、非線形関数が、複数のストリーム暗号器から出力されるビット列を入力し、鍵系列を出力し、排他的論理和演算器が、鍵系列と平文との排他的論理和演算を行い、暗号文を出力する。したがって、各ストリーム暗号器の周期を異ならせることにより、鍵系列の長周期性を実現して、安全性の高いストリーム暗号の暗号化装置を実現することができる。また、短い平文について、鍵系列生成処理を実行せずに暗号化を行うため、異なるロジックを追加する必要がなく、暗号化処理の効率化を図ることができる。
【発明の効果】
【００３６】
本発明によれば、各ストリーム暗号器の周期を異ならせることにより、第２の鍵系列の長周期性を実現して、安全性の高いストリーム暗号の暗号化装置を実現することができるという効果がある。また、ストリーム暗号の内部状態に対して、短い平文あるいは暗号文を暗号化あるいは復号化する場合に、内部状態のビット列を直接使うことで処理負荷を軽減することができるという効果がある。
【図面の簡単な説明】
【００３７】
【図１】本発明の第１の実施形態に係るストリーム暗号の暗号化装置の構成を示す図である。
【図２】本発明の第１の実施形態に係る非線形関数器の構成を示す図である。
【図３】本発明の第１の実施形態に係るストリーム暗号器の構成を示す図である。
【図４】本発明の第１の実施形態に係るストリーム暗号の暗号化装置の処理を示す図である。
【図５】本発明の第２の実施形態に係るストリーム暗号の暗号化装置の構成を示す図である。
【図６】本発明の第２の実施形態に係るストリーム暗号器の構成を示す図である。
【図７】本発明の第２の実施形態に係るストリーム暗号の暗号化装置の処理を示す図である。
【発明を実施するための形態】
【００３８】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【００３９】
＜第１の実施形態＞
図１から図４を用いて、本実施形態に係るストリーム暗号の暗号化装置について説明する。
【００４０】
＜ストリーム暗号の暗号化装置の構成＞
図１に示すように、本実施形態に係るストリーム暗号の暗号化装置は、ストリーム暗号器１０ａ〜１０ｃと、非線形関数器２０と、排他的論理和演算部３０とから構成されている。
【００４１】
ストリーム暗号器１０ａ〜１０ｃは、初期鍵と初期ベクトルとを用いて、初期化処理を行うとともに、鍵系列処理を実行して鍵系列を生成する。なお、複数あるストリーム暗号器１０ａ〜１０ｃの動作周期は、それぞれ異なっている。これにより、非線形関数器２０が出力する鍵系列の長周期性を実現して、安全性の高いストリーム暗号の暗号化装置を実現することができる。なお、各ストリーム暗号器１０ａ〜１０ｃの詳細な構成については、後述する。
【００４２】
非線形関数器２０は、ストリーム暗号器１０ａ〜１０ｃのそれぞれから第１の鍵系列を入力し、第２の鍵系列を出力する。なお、本実施形態においては、変形形態として、非線形関数器２０が出力する出力ビット長を可変することができる。このように、非線形関数器２０の出力ビット長を可変することにより、安全性を増減させることができる。また、非線形関数器２０は、ＳＰＮ構造であることが望ましいが、その詳細な構成例については、後述する。
【００４３】
排他的論理和演算部３０は、第２の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する。
【００４４】
＜非線形関数器の構成＞
図２に示すように、本実施形態に係る非線形関数器は、非線形置換関数２１ａ〜２１ｃと、線形置換関数２２とから構成され、いわゆる、ＳＰＮ構造になっている。
【００４５】
非線形置換関数２１ａ〜２１ｃは、上述のストリーム暗号器１０ａ〜１０ｃに対応して設けられ、ストリーム暗号器１０ａ〜１０ｃから第１の鍵系列を入力し、これを非線形置換関数で処理してその処理結果を線形置換関数２２に出力する。なお、非線形置換関数２１ａ〜２１ｃには、入力ビットの短い非線形置換関数を用いてもよい。
【００４６】
線形置換関数２２は、非線形置換関数２１ａ〜２１ｃから第１の鍵系列を非線形置換関数で処理した処理結果を入力し、これを線形置換関数で処理して第２の鍵系列を出力する。
【００４７】
＜ストリーム暗号器の構成＞
図３に示すように、本実施形態に係るストリーム暗号器は、初期化処理部１１と、鍵系列生成部１２とから構成されている。
【００４８】
初期化処理部１１は、初期鍵と初期ベクトルとを入力し、初期化処理を実行する。鍵系列生成部１２は、鍵系列処理を実行し、鍵系列を生成する。つまり、本実施形態のストリーム暗号器は、従来から知られている通常のものを用いてもよい。
【００４９】
＜ストリーム暗号の暗号化装置の処理＞
図４を用いて、本実施形態に係るストリーム暗号の暗号化装置の処理について説明する。
【００５０】
まず、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器１０ａ〜１０ｃが、初期鍵と初期ベクトルとを用いて、初期化処理を行い（ステップＳ１０１）、鍵系列処理を実行し、第１の鍵系列を生成し、非線形関数器２０に出力する（ステップＳ１０２）。
【００５１】
そして、非線形関数器２０が、複数のストリーム暗号器１０ａ〜１０ｃから出力される第１の鍵系列を入力し、第２の鍵系列を出力し（ステップＳ１０３）、排他的論理和演算器３０が、第２の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する（ステップＳ１０４）。
【００５２】
以上、説明したように、本実施形態によれば、各ストリーム暗号器の周期を異ならせることにより、第２の鍵系列の長周期性を実現して、安全性の高いストリーム暗号の暗号化装置を実現することができる。
【００５３】
＜第２の実施形態＞
図５から図７を用いて、本実施形態に係るストリーム暗号の暗号化装置について説明する。
【００５４】
＜ストリーム暗号の暗号化装置の構成＞
図５に示すように、本実施形態に係るストリーム暗号の暗号化装置は、ストリーム暗号器１０ｄ〜１０ｆと、非線形関数器２５と、排他的論理和演算部３０とから構成されている。なお、第１の実施形態と同一の符号を付す構成要素については、同一の機能を有するものであることからその詳細な説明は省略する。
【００５５】
ストリーム暗号器１０ｄ〜１０ｆは、初期鍵と初期ベクトルとを用いて、初期化処理を行うとともに、内部状態の中から平文と同じ長さのビット列を選択して、非線形関数器２５に出力する。なお、複数あるストリーム暗号器１０ａ〜１０ｃの動作周期は、それぞれ異なっている。これにより、非線形関数器２０が出力する鍵系列の長周期性を実現して、安全性の高いストリーム暗号の暗号化装置を実現することができる。また、本実施形態は、短い平文を暗号化するのに好適である。なお、各ストリーム暗号器１０ｄ〜１０ｆの詳細な構成については、後述する。
【００５６】
非線形関数器２５は、ストリーム暗号器１０ｄ〜１０ｆのそれぞれからビット列を入力し、第２の鍵系列を出力する。なお、本実施形態においては、変形形態として、非線形関数器２０が出力する出力ビット長を可変することができる。このように、非線形関数器２０の出力ビット長を可変することにより、安全性を増減させることができる。また、非線形関数器２０は、ＳＰＮ構造であることが望ましい。
【００５７】
＜ストリーム暗号器の構成＞
図６に示すように、本実施形態に係るストリーム暗号器は、初期化処理部１１と、ビット選択部１２とから構成されている。なお、第１の実施形態と同一の符号を付す構成要素については、同一の機能を有するものであることからその詳細な説明は省略する。
【００５８】
ビット選択部１２は、内部状態の中から平文と同じ長さのビット列を選択して、非線形関数器２５に出力する。なお、本実施形態では、安全性を担保するために、平文の長さは、内部状態の大きさの半分以下であることが望ましい。つまり、本実施形態においては、短い平文について、鍵系列生成処理を実行せずに暗号化を行うため、異なるロジックを追加する必要がなく、暗号化処理の効率化を図ることができる。
【００５９】
＜ストリーム暗号の暗号化装置の処理＞
図７を用いて、本実施形態に係るストリーム暗号の暗号化装置の処理について説明する。
【００６０】
まず、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器１０ｄ〜１０ｆが、初期鍵と初期ベクトルとを用いて、初期化処理を行い（ステップＳ２０１）、内部状態の中から平文と同じ長さのビット列を選択して、非線形関数器２５に出力する（ステップＳ２０２）。
【００６１】
そして、非線形関数器２５が、複数のストリーム暗号器１０ｄ〜１０ｆから出力されるビット列を入力し、鍵系列を出力し（ステップＳ２０３）、排他的論理和演算器３０が、の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する（ステップＳ２０４）。
【００６２】
以上、説明したように、本実施形態によれば、各ストリーム暗号器の周期を異ならせることにより、鍵系列の長周期性を実現して、安全性の高いストリーム暗号の暗号化装置を実現することができる。また、短い平文について、鍵系列生成処理を実行せずに暗号化を行うため、異なるロジックを追加する必要がなく、暗号化処理の効率化を図ることができる。
【００６３】
なお、ストリーム暗号の暗号化装置の処理をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをストリーム暗号の暗号化装置に読み込ませ、実行することによって本発明のストリーム暗号の暗号化装置を実現することができる。ここでいうコンピュータシステムとは、ＯＳや周辺装置等のハードウェアを含む。
【００６４】
また、「コンピュータシステム」は、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されても良い。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００６５】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００６６】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００６７】
１０ａ；ストリーム暗号器
１０ｂ；ストリーム暗号器
１０ｃ；ストリーム暗号器
１０ｄ；ストリーム暗号器
１０ｅ；ストリーム暗号器
１０ｆ；ストリーム暗号器
１１；初期化処理部
１２；鍵系列生成部
１３；ビット選択部
２０；非線形関数器
２１ａ；非線形置換関数
２１ｂ；非線形置換関数
２１ｃ；非線形置換関数
２２；線形置換関数
２５；非線形関数器
３０；排他的論理和演算器
【図１】
0005559011.tif 000002
【図２】
0005559011.tif 000003
【図３】
0005559011.tif 000004
【図４】
0005559011.tif 000005
【図５】
0005559011.tif 000006
【図６】
0005559011.tif 000007
【図７】
0005559011.tif 000008