説明

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

【課題】異なるロジックを追加する事無く、短い平文あるいは暗号文に対する暗号化処理あるいは復号化処理の効率化を図る。
【解決手段】初期鍵と初期ベクトルとを用いて、初期化処理を行い、初期化処理終了後に、内部状態の中から暗号文と同じ長さのビット列を選択する。そして、その選択したビット列と暗号文との排他的論理和演算を行い、平文を出力する。したがって、短い暗号文について、鍵系列生成処理を実行せずに復号化を行うため、異なるロジックを追加する必要がなく、復号化処理の効率化を図ることができる。

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


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

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2011−130312(P2011−130312A)
【公開日】平成23年6月30日(2011.6.30)
【国際特許分類】
【出願番号】特願2009−288629(P2009−288629)
【出願日】平成21年12月21日(2009.12.21)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】