説明

ストリーム暗号の暗号化装置、ストリーム暗号の暗号化方法およびプログラム

【課題】既存のストリーム暗号を用いてより安全性の高い暗号方式を実現する。
【解決手段】複数のストリーム暗号器は、周期がそれぞれに異なり、並列に配置されている。非線形関数器は、複数のストリーム暗号器から出力される第1の鍵系列を入力し、第2の鍵系列を出力する。排他的論理和演算器は、第2の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する。したがって、各ストリーム暗号器の周期を異ならせることにより、第2の鍵系列の長周期性を実現して、安全性の高いストリーム暗号の暗号化装置を実現することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストリーム暗号の暗号化装置、ストリーム暗号の暗号化方法およびプログラムに関する。
【背景技術】
【0002】
近年、インターネットの目覚しい普及により、コンピュータを利用した様々なサービスが提供されている。こうして提供されるサービスの多くは、その通信内容を秘匿化するために暗号が利用されている。ここで、暗号方式としては、1つの鍵で暗号化と復号化とを行う共通鍵暗号方式が一般的であるが、この共通鍵暗号方式は、大きくブロック暗号方式とストリーム暗号方式とに大別される。
【0003】
ストリーム暗号方式の一例としては、乱数系列のビットデータを入力し、変換されたビットデータを複数の内部メモリから出力する非線形関数器であって、入力した乱数系列のビットデータと複数の内部メモリのうち一部の内部メモリデータとを加算する加算器と、入力データを非線形置換する非線形置換器と、を備え、複数の内部メモリが少なくとも非線形置換器を介して、環状に接続されストリーム暗号装置が提案されている(例えば、特許文献1参照。)。上記、従来技術によれば、安全かつ高速な処理を可能とする非線形関数器およびこれを用いたストリーム暗号の暗号化装置等を提供することができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−327982号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところが、暗号化したデータの長期保存を目的とした場合、より高度な安全性を求められる場合がある。ブロック暗号方式では、ラウンド関数の実行回数を増加させることで、安全性を向上させることができる。一方で、ストリーム暗号においてどのようにして効率よく安全性を向上させるかは、課題となっていた。
【0006】
そこで、本発明は、上述の課題に鑑みてなされたものであり、既存のストリーム暗号を用いてより安全性の高い暗号方式を実現するストリーム暗号の暗号化装置、ストリーム暗号の暗号化方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
【0008】
(1)本発明は、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器(例えば、図1のストリーム暗号器10a〜10cに相当)と、前記複数のストリーム暗号器から出力される第1の鍵系列を入力し、第2の鍵系列を出力する非線形関数器(例えば、図1の非線形関数器20に相当)と、該第2の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する排他的論理和演算器(例えば、図1の排他的論理和演算器30に相当)と、を備えたことを特徴とするストリーム暗号の暗号化装置を提案している。
【0009】
この発明によれば、複数のストリーム暗号器は、周期がそれぞれに異なり、並列に配置されている。非線形関数器は、複数のストリーム暗号器から出力される第1の鍵系列を入力し、第2の鍵系列を出力する。排他的論理和演算器は、第2の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する。したがって、各ストリーム暗号器の周期を異ならせることにより、第2の鍵系列の長周期性を実現して、安全性の高いストリーム暗号の暗号化装置を実現することができる。
【0010】
(2)本発明は、(1)のストリーム暗号の暗号化装置について、前記非線形関数がSPN構造であることを特徴とするストリーム暗号の暗号化装置を提案している。
【0011】
この発明によれば、非線形関数がSPN構造である。つまり、非線形関数がSPN構造であるために、攻撃者は、すべての第1の鍵系列を攻撃しないと暗号を解くことができない。
【0012】
(3)本発明は、(2)のストリーム暗号の暗号化装置について、前記非線形関数が前記複数のストリーム暗号器に対応して配置された非線形関数器(例えば、図2の非線形置換関数21a〜21cに相当)と、前記非線形関数器からの出力値を入力し、前記第2の鍵系列を出力する線形置換関数器(例えば、図2の線形置換関数22に相当)と、を備えたことを特徴とする請求項2に記載のストリーム暗号の暗号化装置を提案している。
【0013】
この発明によれば、非線形関数が複数のストリーム暗号器に対応して配置された非線形関数器と、非線形関数器からの出力値を入力し、第2の鍵系列を出力する線形置換関数器と、を備えている。したがって、このように、非線形関数器を上記のような、いわゆる、SPN構造とすることにより、攻撃者は、すべての第1の鍵系列を攻撃しないと暗号を解くことができない。
【0014】
(4)本発明は、(3)のストリーム暗号の暗号化装置について、前記非線形関数器の入力ビットが短いことを特徴とするストリーム暗号の暗号化装置を提案している。
【0015】
この発明によれば、非線形関数器の入力ビットが短い。これにより、安全性の向上とともに、処理速度を早くすることができる。
【0016】
(5)本発明は、(3)のストリーム暗号の暗号化装置について、前記線形置換関数器の出力ビット長を可変できることを特徴とするストリーム暗号の暗号化装置を提案している。
【0017】
この発明によれば、線形置換関数器の出力ビット長を可変できる。つまり、出力ビット長を可変することにより、安全性を増減させることができる。
【0018】
(6)本発明は、(1)のストリーム暗号の暗号化装置について、前記ストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う初期化処理手段(例えば、図3の初期化処理部11に相当)と、鍵系列処理を実行し、鍵系列を生成する鍵系列生成手段(例えば、図3の鍵系列生成部12に相当)と、を備えたことを特徴とするストリーム暗号の暗号化装置を提案している。
【0019】
この発明によれば、ストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う初期化処理手段と、鍵系列処理を実行し、鍵系列を生成する鍵系列生成手段とから構成されている。つまり、一般的なストリーム暗号器を用いて、従来よりも安全性の高いストリーム暗号の暗号化装置を実現することができる。
【0020】
(7)本発明は、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器(例えば、図5のストリーム暗号器10d〜10fに相当)と、前記複数のストリーム暗号器から出力されるビット列を入力し、鍵系列を出力する非線形関数器(例えば、図5の非線形関数器25に相当)と、該鍵系列と平文との排他的論理和演算を行い、暗号文を出力する排他的論理和演算器(例えば、図5の排他的論理和演算部30に相当)と、を備えたことを特徴とするストリーム暗号の暗号化装置を提案している。
【0021】
この発明によれば、複数のストリーム暗号器は、周期がそれぞれに異なり、並列に配置されている。非線形関数器は、複数のストリーム暗号器から出力されるビット列を入力し、鍵系列を出力する。排他的論理和演算器は、鍵系列と平文との排他的論理和演算を行い、暗号文を出力する。したがって、各ストリーム暗号器の周期を異ならせることにより、鍵系列の長周期性を実現し、安全性を向上させるとともに、短い平文について、鍵系列生成処理を実行せずに暗号化を行うため、異なるロジックを追加する必要がなく、暗号化処理の効率化を図ることができる。
【0022】
(8)本発明は、(7)のストリーム暗号の暗号化装置について、前記ストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う初期化処理手段(例えば、図6の初期化処理部11に相当)と、内部状態の中から平文と同じ長さのビット列を選択して、前記非線形関数器に出力するビット列出力手段(例えば、図6のビット選択部13に相当)と、を備えたことを特徴とするストリーム暗号の暗号化装置を提案している。
【0023】
この発明によれば、初期化処理手段は、初期鍵と初期ベクトルとを用いて、初期化処理を行う。ビット列出力手は、内部状態の中から平文と同じ長さのビット列を選択して、非線形関数器に出力する。したがって、短い平文について、鍵系列生成処理を実行せずに暗号化を行うため、異なるロジックを追加する必要がなく、暗号化処理の効率化を図ることができる。
【0024】
(9)本発明は、(8)のストリーム暗号の暗号化装置について、前記選択されたビット列が1ビット以上、かつ、前記内部状態の半分以下であることを特徴とするストリーム暗号の暗号化装置を提案している。
【0025】
この発明によれば、選択されたビット列が1ビット以上、かつ、内部状態の半分以下である。つまり、ストリーム暗号の内部状態に対して、半分以下の短い平文を暗号化する場合に、内部状態のビット列を直接使うことで処理負荷を軽減する。
【0026】
(10)本発明は、(8)のストリーム暗号の暗号化装置について、前記平文の長さが前記内部状態の半分よりも大きい場合には、1ビット以上、かつ、内部状態の半分以下の平文について処理を行い、残りの平文の暗号化する場合には、前記初期化処理手段が初期ベクトルを変更して、再度、初期化処理を行うことを特徴とするストリーム暗号の暗号化装置を提案している。
【0027】
この発明によれば、平文の長さが内部状態の半分よりも大きい場合には、1ビット以上、かつ、内部状態の半分以下の平文について処理を行い、残りの平文の暗号化する場合には、初期化処理手段が初期ベクトルを変更して、再度、初期化処理を行う。つまり、平文の長さが内部状態の半分よりも大きい場合には、少なくとも、内部状態の半分以下のビット列に区切って、それぞれについて、再度、初期化処理を行い、暗号化の処理を実行する。これにより、平文の長さが内部状態の半分よりも大きい場合であっても、鍵系列生成処理を実行せずに暗号化を行うため、異なるロジックを追加する必要がなく、暗号化処理の効率化を図ることができる。
【0028】
(11)本発明は、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う第1のステップ(例えば、図4のステップS101に相当)と、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、鍵系列処理を実行し、第1の鍵系列を生成し、非線形関数器に出力する第2のステップ(例えば、図4のステップS102に相当)と、前記非線形関数が、前記複数のストリーム暗号器から出力される第1の鍵系列を入力し、第2の鍵系列を出力する第3のステップ(例えば、図4のステップS103に相当)と、排他的論理和演算器が、該第2の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第4のステップ(例えば、図4のステップS104に相当)と、からなることを特徴とするストリーム暗号の暗号化方法を提案している。
【0029】
この発明によれば、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行い、鍵系列処理を実行し、第1の鍵系列を生成し、非線形関数器に出力する。そして、非線形関数が、複数のストリーム暗号器から出力される第1の鍵系列を入力し、第2の鍵系列を出力し、排他的論理和演算器が、第2の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する。したがって、各ストリーム暗号器の周期を異ならせることにより、第2の鍵系列の長周期性を実現して、安全性の高いストリーム暗号の暗号化装置を実現することができる。
【0030】
(12)本発明は、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う第1のステップ(例えば、図7のステップS201に相当)と、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、内部状態の中から平文と同じ長さのビット列を選択し、非線形関数器に出力する第2のステップ(例えば、図7のステップS202に相当)と、前記非線形関数が、前記複数のストリーム暗号器から出力されるビット列を入力し、鍵系列を出力する第3のステップ(例えば、図7のステップS203に相当)と、排他的論理和演算器が、該鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第4のステップ(例えば、図7のステップS204に相当)と、からなることを特徴とするストリーム暗号の暗号化方法を提案している。
【0031】
この発明によれば、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行い、内部状態の中から平文と同じ長さのビット列を選択し、非線形関数器に出力する。そして、非線形関数が、複数のストリーム暗号器から出力されるビット列を入力し、鍵系列を出力し、排他的論理和演算器が、鍵系列と平文との排他的論理和演算を行い、暗号文を出力する。したがって、各ストリーム暗号器の周期を異ならせることにより、鍵系列の長周期性を実現して、安全性の高いストリーム暗号の暗号化装置を実現することができる。また、短い平文について、鍵系列生成処理を実行せずに暗号化を行うため、異なるロジックを追加する必要がなく、暗号化処理の効率化を図ることができる。
【0032】
(13)本発明は、ストリーム暗号の暗号方法をコンピュータに実行させるためのプログラムであって、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う第1のステップ(例えば、図4のステップS101に相当)と、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、鍵系列処理を実行し、第1の鍵系列を生成し、非線形関数器に出力する第2のステップ(例えば、図4のステップS102に相当)と、前記非線形関数が、前記複数のストリーム暗号器から出力される第1の鍵系列を入力し、第2の鍵系列を出力する第3のステップ(例えば、図4のステップS103に相当)と、排他的論理和演算器が、該第2の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第4のステップ(例えば、図4のステップS104に相当)と、をコンピュータに実行させるためのプログラムを提案している。
【0033】
この発明によれば、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行い、鍵系列処理を実行し、第1の鍵系列を生成し、非線形関数器に出力する。そして、非線形関数が、複数のストリーム暗号器から出力される第1の鍵系列を入力し、第2の鍵系列を出力し、排他的論理和演算器が、第2の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する。したがって、各ストリーム暗号器の周期を異ならせることにより、第2の鍵系列の長周期性を実現して、安全性の高いストリーム暗号の暗号化装置を実現することができる。
【0034】
(14)本発明は、ストリーム暗号の暗号方法をコンピュータに実行させるためのプログラムであって、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う第1のステップ(例えば、図7のステップS201に相当)と、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、内部状態の中から平文と同じ長さのビット列を選択し、非線形関数器に出力する第2のステップ(例えば、図7のステップS202に相当)と、前記非線形関数が、前記複数のストリーム暗号器から出力されるビット列を入力し、鍵系列を出力する第3のステップ(例えば、図7のステップS203に相当)と、排他的論理和演算器が、該鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第4のステップ(例えば、図7のステップS204に相当)と、をコンピュータに実行させるためのプログラムを提案している。
【0035】
この発明によれば、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行い、内部状態の中から平文と同じ長さのビット列を選択し、非線形関数器に出力する。そして、非線形関数が、複数のストリーム暗号器から出力されるビット列を入力し、鍵系列を出力し、排他的論理和演算器が、鍵系列と平文との排他的論理和演算を行い、暗号文を出力する。したがって、各ストリーム暗号器の周期を異ならせることにより、鍵系列の長周期性を実現して、安全性の高いストリーム暗号の暗号化装置を実現することができる。また、短い平文について、鍵系列生成処理を実行せずに暗号化を行うため、異なるロジックを追加する必要がなく、暗号化処理の効率化を図ることができる。
【発明の効果】
【0036】
本発明によれば、各ストリーム暗号器の周期を異ならせることにより、第2の鍵系列の長周期性を実現して、安全性の高いストリーム暗号の暗号化装置を実現することができるという効果がある。また、ストリーム暗号の内部状態に対して、短い平文あるいは暗号文を暗号化あるいは復号化する場合に、内部状態のビット列を直接使うことで処理負荷を軽減することができるという効果がある。
【図面の簡単な説明】
【0037】
【図1】本発明の第1の実施形態に係るストリーム暗号の暗号化装置の構成を示す図である。
【図2】本発明の第1の実施形態に係る非線形関数器の構成を示す図である。
【図3】本発明の第1の実施形態に係るストリーム暗号器の構成を示す図である。
【図4】本発明の第1の実施形態に係るストリーム暗号の暗号化装置の処理を示す図である。
【図5】本発明の第2の実施形態に係るストリーム暗号の暗号化装置の構成を示す図である。
【図6】本発明の第2の実施形態に係るストリーム暗号器の構成を示す図である。
【図7】本発明の第2の実施形態に係るストリーム暗号の暗号化装置の処理を示す図である。
【発明を実施するための形態】
【0038】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【0039】
<第1の実施形態>
図1から図4を用いて、本実施形態に係るストリーム暗号の暗号化装置について説明する。
【0040】
<ストリーム暗号の暗号化装置の構成>
図1に示すように、本実施形態に係るストリーム暗号の暗号化装置は、ストリーム暗号器10a〜10cと、非線形関数器20と、排他的論理和演算部30とから構成されている。
【0041】
ストリーム暗号器10a〜10cは、初期鍵と初期ベクトルとを用いて、初期化処理を行うとともに、鍵系列処理を実行して鍵系列を生成する。なお、複数あるストリーム暗号器10a〜10cの動作周期は、それぞれ異なっている。これにより、非線形関数器20が出力する鍵系列の長周期性を実現して、安全性の高いストリーム暗号の暗号化装置を実現することができる。なお、各ストリーム暗号器10a〜10cの詳細な構成については、後述する。
【0042】
非線形関数器20は、ストリーム暗号器10a〜10cのそれぞれから第1の鍵系列を入力し、第2の鍵系列を出力する。なお、本実施形態においては、変形形態として、非線形関数器20が出力する出力ビット長を可変することができる。このように、非線形関数器20の出力ビット長を可変することにより、安全性を増減させることができる。また、非線形関数器20は、SPN構造であることが望ましいが、その詳細な構成例については、後述する。
【0043】
排他的論理和演算部30は、第2の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する。
【0044】
<非線形関数器の構成>
図2に示すように、本実施形態に係る非線形関数器は、非線形置換関数21a〜21cと、線形置換関数22とから構成され、いわゆる、SPN構造になっている。
【0045】
非線形置換関数21a〜21cは、上述のストリーム暗号器10a〜10cに対応して設けられ、ストリーム暗号器10a〜10cから第1の鍵系列を入力し、これを非線形置換関数で処理してその処理結果を線形置換関数22に出力する。なお、非線形置換関数21a〜21cには、入力ビットの短い非線形置換関数を用いてもよい。
【0046】
線形置換関数22は、非線形置換関数21a〜21cから第1の鍵系列を非線形置換関数で処理した処理結果を入力し、これを線形置換関数で処理して第2の鍵系列を出力する。
【0047】
<ストリーム暗号器の構成>
図3に示すように、本実施形態に係るストリーム暗号器は、初期化処理部11と、鍵系列生成部12とから構成されている。
【0048】
初期化処理部11は、初期鍵と初期ベクトルとを入力し、初期化処理を実行する。鍵系列生成部12は、鍵系列処理を実行し、鍵系列を生成する。つまり、本実施形態のストリーム暗号器は、従来から知られている通常のものを用いてもよい。
【0049】
<ストリーム暗号の暗号化装置の処理>
図4を用いて、本実施形態に係るストリーム暗号の暗号化装置の処理について説明する。
【0050】
まず、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器10a〜10cが、初期鍵と初期ベクトルとを用いて、初期化処理を行い(ステップS101)、鍵系列処理を実行し、第1の鍵系列を生成し、非線形関数器20に出力する(ステップS102)。
【0051】
そして、非線形関数器20が、複数のストリーム暗号器10a〜10cから出力される第1の鍵系列を入力し、第2の鍵系列を出力し(ステップS103)、排他的論理和演算器30が、第2の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する(ステップS104)。
【0052】
以上、説明したように、本実施形態によれば、各ストリーム暗号器の周期を異ならせることにより、第2の鍵系列の長周期性を実現して、安全性の高いストリーム暗号の暗号化装置を実現することができる。
【0053】
<第2の実施形態>
図5から図7を用いて、本実施形態に係るストリーム暗号の暗号化装置について説明する。
【0054】
<ストリーム暗号の暗号化装置の構成>
図5に示すように、本実施形態に係るストリーム暗号の暗号化装置は、ストリーム暗号器10d〜10fと、非線形関数器25と、排他的論理和演算部30とから構成されている。なお、第1の実施形態と同一の符号を付す構成要素については、同一の機能を有するものであることからその詳細な説明は省略する。
【0055】
ストリーム暗号器10d〜10fは、初期鍵と初期ベクトルとを用いて、初期化処理を行うとともに、内部状態の中から平文と同じ長さのビット列を選択して、非線形関数器25に出力する。なお、複数あるストリーム暗号器10a〜10cの動作周期は、それぞれ異なっている。これにより、非線形関数器20が出力する鍵系列の長周期性を実現して、安全性の高いストリーム暗号の暗号化装置を実現することができる。また、本実施形態は、短い平文を暗号化するのに好適である。なお、各ストリーム暗号器10d〜10fの詳細な構成については、後述する。
【0056】
非線形関数器25は、ストリーム暗号器10d〜10fのそれぞれからビット列を入力し、第2の鍵系列を出力する。なお、本実施形態においては、変形形態として、非線形関数器20が出力する出力ビット長を可変することができる。このように、非線形関数器20の出力ビット長を可変することにより、安全性を増減させることができる。また、非線形関数器20は、SPN構造であることが望ましい。
【0057】
<ストリーム暗号器の構成>
図6に示すように、本実施形態に係るストリーム暗号器は、初期化処理部11と、ビット選択部12とから構成されている。なお、第1の実施形態と同一の符号を付す構成要素については、同一の機能を有するものであることからその詳細な説明は省略する。
【0058】
ビット選択部12は、内部状態の中から平文と同じ長さのビット列を選択して、非線形関数器25に出力する。なお、本実施形態では、安全性を担保するために、平文の長さは、内部状態の大きさの半分以下であることが望ましい。つまり、本実施形態においては、短い平文について、鍵系列生成処理を実行せずに暗号化を行うため、異なるロジックを追加する必要がなく、暗号化処理の効率化を図ることができる。
【0059】
<ストリーム暗号の暗号化装置の処理>
図7を用いて、本実施形態に係るストリーム暗号の暗号化装置の処理について説明する。
【0060】
まず、周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器10d〜10fが、初期鍵と初期ベクトルとを用いて、初期化処理を行い(ステップS201)、内部状態の中から平文と同じ長さのビット列を選択して、非線形関数器25に出力する(ステップS202)。
【0061】
そして、非線形関数器25が、複数のストリーム暗号器10d〜10fから出力されるビット列を入力し、鍵系列を出力し(ステップS203)、排他的論理和演算器30が、の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する(ステップS204)。
【0062】
以上、説明したように、本実施形態によれば、各ストリーム暗号器の周期を異ならせることにより、鍵系列の長周期性を実現して、安全性の高いストリーム暗号の暗号化装置を実現することができる。また、短い平文について、鍵系列生成処理を実行せずに暗号化を行うため、異なるロジックを追加する必要がなく、暗号化処理の効率化を図ることができる。
【0063】
なお、ストリーム暗号の暗号化装置の処理をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをストリーム暗号の暗号化装置に読み込ませ、実行することによって本発明のストリーム暗号の暗号化装置を実現することができる。ここでいうコンピュータシステムとは、OSや周辺装置等のハードウェアを含む。
【0064】
また、「コンピュータシステム」は、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されても良い。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
【0065】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0066】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0067】
10a;ストリーム暗号器
10b;ストリーム暗号器
10c;ストリーム暗号器
10d;ストリーム暗号器
10e;ストリーム暗号器
10f;ストリーム暗号器
11;初期化処理部
12;鍵系列生成部
13;ビット選択部
20;非線形関数器
21a;非線形置換関数
21b;非線形置換関数
21c;非線形置換関数
22;線形置換関数
25;非線形関数器
30;排他的論理和演算器

【特許請求の範囲】
【請求項1】
周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器と、
前記複数のストリーム暗号器から出力される第1の鍵系列を入力し、第2の鍵系列を出力する非線形関数器と、
該第2の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する排他的論理和演算器と、
を備えたことを特徴とするストリーム暗号の暗号化装置。
【請求項2】
前記非線形関数がSPN構造であることを特徴とする請求項1に記載のストリーム暗号の暗号化装置。
【請求項3】
前記非線形関数が前記複数のストリーム暗号器に対応して配置された非線形関数器と、
前記非線形関数器からの出力値を入力し、前記第2の鍵系列を出力する線形置換関数器と、
を備えたことを特徴とする請求項2に記載のストリーム暗号の暗号化装置。
【請求項4】
前記非線形関数器の入力ビットが短いことを特徴とする請求項3に記載のストリーム暗号の暗号化装置。
【請求項5】
前記線形置換関数器の出力ビット長を可変できることを特徴とする請求項3に記載のストリーム暗号の暗号化装置。
【請求項6】
前記ストリーム暗号器が、
初期鍵と初期ベクトルとを用いて、初期化処理を行う初期化処理手段と、
鍵系列処理を実行し、鍵系列を生成する鍵系列生成手段と、
を備えたことを特徴とする請求項1に記載のストリーム暗号の暗号化装置。
【請求項7】
周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器と、
前記複数のストリーム暗号器から出力されるビット列を入力し、鍵系列を出力する非線形関数器と、
該鍵系列と平文との排他的論理和演算を行い、暗号文を出力する排他的論理和演算器と、
を備えたことを特徴とするストリーム暗号の暗号化装置。
【請求項8】
前記ストリーム暗号器が、
初期鍵と初期ベクトルとを用いて、初期化処理を行う初期化処理手段と、
内部状態の中から平文と同じ長さのビット列を選択して、前記非線形関数器に出力するビット列出力手段と、
を備えたことを特徴とする請求項7に記載のストリーム暗号の暗号化装置。
【請求項9】
前記選択されたビット列が1ビット以上、かつ、前記内部状態の半分以下であることを特徴とする請求項8に記載のストリーム暗号の暗号化装置。
【請求項10】
前記平文の長さが前記内部状態の半分よりも大きい場合には、1ビット以上、かつ、内部状態の半分以下の平文について処理を行い、残りの平文の暗号化する場合には、前記初期化処理手段が初期ベクトルを変更して、再度、初期化処理を行うことを特徴とする請求項8に記載のストリーム暗号の暗号化装置。
【請求項11】
周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う第1のステップと、
周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、鍵系列処理を実行し、第1の鍵系列を生成し、非線形関数器に出力する第2のステップと、
前記非線形関数が、前記複数のストリーム暗号器から出力される第1の鍵系列を入力し、第2の鍵系列を出力する第3のステップと、
排他的論理和演算器が、該第2の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第4のステップと、
からなることを特徴とするストリーム暗号の暗号化方法。
【請求項12】
周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う第1のステップと、
周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、内部状態の中から平文と同じ長さのビット列を選択し、非線形関数器に出力する第2のステップと、
前記非線形関数が、前記複数のストリーム暗号器から出力されるビット列を入力し、鍵系列を出力する第3のステップと、
排他的論理和演算器が、該鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第4のステップと、
からなることを特徴とするストリーム暗号の暗号化方法。
【請求項13】
ストリーム暗号の暗号方法をコンピュータに実行させるためのプログラムであって、
周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う第1のステップと、
周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、鍵系列処理を実行し、第1の鍵系列を生成し、非線形関数器に出力する第2のステップと、
前記非線形関数が、前記複数のストリーム暗号器から出力される第1の鍵系列を入力し、第2の鍵系列を出力する第3のステップと、
排他的論理和演算器が、該第2の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第4のステップと、
をコンピュータに実行させるためのプログラム。
【請求項14】
ストリーム暗号の暗号方法をコンピュータに実行させるためのプログラムであって、
周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、初期鍵と初期ベクトルとを用いて、初期化処理を行う第1のステップと、
周期がそれぞれに異なり、並列に配置された複数のストリーム暗号器が、内部状態の中から平文と同じ長さのビット列を選択し、非線形関数器に出力する第2のステップと、
前記非線形関数が、前記複数のストリーム暗号器から出力されるビット列を入力し、鍵系列を出力する第3のステップと、
排他的論理和演算器が、該鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第4のステップと、
をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate