(57)【要約】【課題】任意長の鍵系列を出力できるとともに、出力する鍵系列の長さに応じて、適切なセキュリティレベルをコントロールする。【解決手段】初期鍵および初期ベクトルを生成するとともに、鍵系列の出力時に内部状態を更新する内部状態更新関数と、内部状態更新関数から出力された内部状態を記憶する内部状態記憶手段と、内部状態記憶手段に記憶された内部状態を読み込んで、鍵系列を出力する鍵系列生成関数と、鍵系列生成関数から出力された鍵系列と入力した平文との排他的論理和演算を実行して暗号文を出力する排他的論理和演算器とからなり、鍵系列生成関数が、任意の個数の前処理ブロックと関数ブロックとを連結して構成される。【選択図】図１
2008286965.tif 000002
【特許請求の範囲】
【請求項１】
平文を入力し、暗号文を出力するストリーム暗号の暗号化装置であって、
初期鍵および初期ベクトルを生成するとともに、鍵系列の出力時に内部状態を更新する内部状態更新関数と、
該内部状態更新関数から出力された内部状態を記憶する内部状態記憶手段と、
該内部状態記憶手段に記憶された内部状態を読み込んで、鍵系列を出力する鍵系列生成関数と、
該鍵系列生成関数から出力された鍵系列と前記入力した平文との排他的論理和演算を実行して暗号文を出力する排他的論理和演算器と、を備え、
前記鍵系列生成関数が、第１の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第１の加算器と、該第１の加算器から出力された値を非線形処理する第１の非線形関数と、該第１の非線形関数からの値を格納する第３の内部メモリと、第２の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第２の加算器と、該第２の加算器から出力された値を非線形処理する第２の非線形関数と、該第２の非線形関数からの値を格納する第４の内部メモリと、前記第１の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第１の排他的論理和演算器と、前記第２の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第２の排他的論理和演算器と、前記第３の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第３の排他的論理和演算器と、前記第４の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第４の排他的論理和演算器と、からなる関数ユニットを出力する鍵系列の長さに応じて所定数連結していることを特徴とするストリーム暗号の暗号化装置。
【請求項２】
前記鍵系列生成関数が、加算器と、該加算器の出力を非線形処理する非線形関数と、該非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに前記関数ユニットの前方に所定数連結していることを特徴とする請求項１に記載のストリーム暗号の暗号化装置。
【請求項３】
前記請求項１または２に記載のストリーム暗号の暗号化装置を用いたストリーム暗号の暗号化方法であって、
初期鍵、初期ベクトルを内部状態メモリに読み込む第１のステップと、
初期攪拌処理により内部状態メモリを攪拌する第２のステップと、
鍵系列生成関数が、内部状態メモリの値を読み込んで鍵系列を出力する第３のステップと、
内部状態メモリを更新する第４のステップと、
該出力された鍵系列と平文との排他的論理和演算により暗号文を出力する第５のステップと、
を備えたことを特徴とするストリーム暗号の暗号化方法。
【請求項４】
前記請求項１または２に記載のストリーム暗号の暗号化装置を用いたストリーム暗号の暗号化方法をコンピュータに実行させるためのプログラムであって、
初期鍵、初期ベクトルを内部状態メモリに読み込む第１のステップと、
初期攪拌処理により内部状態メモリを攪拌する第２のステップと、
鍵系列生成関数が、内部状態メモリの値を読み込んで鍵系列を出力する第３のステップと、
内部状態メモリを更新する第４のステップと、
該出力された鍵系列と平文との排他的論理和演算により暗号文を出力する第５のステップと、
をコンピュータに実行させるためのプログラム。
【請求項５】
暗号文を入力し、平文を出力するストリーム暗号の復号化装置であって、
初期鍵および初期ベクトルを生成するとともに、鍵系列の出力時に内部状態を更新する内部状態更新関数と、
該内部状態更新関数から出力された内部状態を記憶する内部状態記憶手段と、
該内部状態記憶手段に記憶された内部状態を読み込んで、鍵系列を出力する鍵系列生成関数と、
該鍵系列生成関数から出力された鍵系列と前記入力した暗号文との排他的論理和演算を実行して平文を出力する排他的論理和演算器と、を備え、
前記鍵系列生成関数が、第１の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第１の加算器と、該第１の加算器から出力された値を非線形処理する第１の非線形関数と、該第１の非線形関数からの値を格納する第３の内部メモリと、第２の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第２の加算器と、該第２の加算器から出力された値を非線形処理する第２の非線形関数と、該第２の非線形関数からの値を格納する第４の内部メモリと、前記第１の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第１の排他的論理和演算器と、前記第２の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第２の排他的論理和演算器と、前記第３の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第３の排他的論理和演算器と、前記第４の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第４の排他的論理和演算器と、からなる関数ユニットを出力する鍵系列の長さに応じて所定数連結していることを特徴とするストリーム暗号の復号化装置。
【請求項６】
前記鍵系列生成関数が、加算器と、該加算器の出力を非線形処理する非線形関数と、該非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに前記関数ユニットの前方に所定数連結していることを特徴とする請求項５に記載のストリーム暗号の復号化装置。
【請求項７】
平文を入力し、暗号文を出力するとともに、該暗号文を入力にフィードバックする自己同期型ストリーム暗号の暗号化装置であって、
初期値を入力し、拡大鍵を生成する鍵拡大関数と、
該生成された拡大鍵を記憶する拡大鍵記憶手段と、
該拡大鍵記憶手段に記憶された拡大鍵と前回暗号化した暗号文あるいは初期ベクトルを読み込んで、鍵系列を出力する鍵系列生成関数と、
該鍵系列生成関数から出力された鍵系列と前記入力した平文との排他的論理和演算を実行して暗号文を出力する排他的論理和演算器と、
該出力された暗号文を圧縮処理して前記鍵系列生成関数にフィードバックする圧縮関数と、
を備え、
前記鍵系列生成関数が、第１の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第１の加算器と、該第１の加算器から出力された値を非線形処理する第１の非線形関数と、該第１の非線形関数からの値を格納する第３の内部メモリと、第２の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第２の加算器と、該第２の加算器から出力された値を非線形処理する第２の非線形関数と、該第２の非線形関数からの値を格納する第４の内部メモリと、前記第１の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第１の排他的論理和演算器と、前記第２の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第２の排他的論理和演算器と、前記第３の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第３の排他的論理和演算器と、前記第４の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第４の排他的論理和演算器と、からなる関数ユニットを出力する鍵系列の長さに応じて所定数連結していることを特徴とする自己同期型ストリーム暗号の暗号化装置。
【請求項８】
前記鍵系列生成関数が、加算器と、該加算器の出力を非線形処理する非線形関数と、該非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに前記関数ユニットの前方に所定数連結していることを特徴とする請求項７に記載の自己同期型ストリーム暗号の暗号化装置。
【請求項９】
前記請求項７または８に記載のストリーム暗号の自己同期型暗号化装置を用いたストリーム暗号の暗号化方法であって、
初期鍵を鍵拡大関数で拡大し、拡大鍵としてメモリにセットする第１のステップと、
鍵系列生成関数が、拡大鍵と前回暗号化した暗号文あるいは初期ベクトルとを読み込んで鍵系列を出力する第２のステップと、
鍵系列と平文との排他的論理和演算を実行することにより、暗号文を出力する第３のステップと、
該出力した暗号文をフィードバックさせ、鍵生成関数へ入力する第４のステップと、
を備えたことを特徴とするストリーム暗号の暗号化方法。
【請求項１０】
前記請求項７または８に記載のストリーム暗号の自己同期型暗号化装置を用いたストリーム暗号の暗号化方法をコンピュータに実行させるためのプログラムであって、
初期鍵を鍵拡大関数で拡大し、拡大鍵としてメモリにセットする第１のステップと、
鍵系列生成関数が、拡大鍵と前回暗号化した暗号文あるいは初期ベクトルとを読み込んで鍵系列を出力する第２のステップと、
鍵系列と平文との排他的論理和演算を実行することにより、暗号文を出力する第３のステップと、
該出力した暗号文をフィードバックさせ、鍵生成関数へ入力する第４のステップと、
をコンピュータに実行させるためのプログラム。
【請求項１１】
暗号文を入力し、平文を出力する自己同期型ストリーム暗号の復号化装置であって、
初期値を入力し、拡大鍵を生成する鍵拡大関数と、
該生成された拡大鍵を記憶する拡大鍵記憶手段と、
該拡大鍵記憶手段に記憶された拡大鍵と前回復号化した平文あるいは初期ベクトルを読み込んで、鍵系列を出力する鍵系列生成関数と、
該鍵系列生成関数から出力された鍵系列と前記入力した暗号文との排他的論理和演算を実行して平文を出力する排他的論理和演算器と、
該出力された平文を圧縮処理して前記鍵系列生成関数にフィードバックする圧縮関数と、
を備え、
前記鍵系列生成関数が、第１の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第１の加算器と、該第１の加算器から出力された値を非線形処理する第１の非線形関数と、該第１の非線形関数からの値を格納する第３の内部メモリと、第２の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第２の加算器と、該第２の加算器から出力された値を非線形処理する第２の非線形関数と、該第２の非線形関数からの値を格納する第４の内部メモリと、前記第１の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第１の排他的論理和演算器と、前記第２の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第２の排他的論理和演算器と、前記第３の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第３の排他的論理和演算器と、前記第４の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第４の排他的論理和演算器と、からなる関数ユニットを出力する鍵系列の長さに応じて所定数連結していることを特徴とする自己同期型ストリーム暗号の復号化装置。
【請求項１２】
前記鍵系列生成関数が、加算器と、該加算器の出力を非線形処理する非線形関数と、該非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに前記関数ユニットの前方に所定数連結していることを特徴とする請求項１１に記載の自己同期型ストリーム暗号の復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、自己同期型ストリーム暗号の暗号化装置、自己同期型ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、自己同期型ストリーム暗号の暗号化方法およびプログラムに関する。
【背景技術】
【０００２】
近年、インターネットの目覚しい普及により、コンピュータを利用した様々なサービスが提供されている。こうして提供されるサービスの多くは、その通信内容を秘匿化するために暗号が利用されている。ここで、暗号方式としては、１つの鍵で暗号化と復号化とを行う共通鍵暗号方式が一般的であるが、この共通鍵暗号方式は、大きくブロック暗号方式とストリーム暗号方式とに大別される。
【０００３】
ストリーム暗号方式は、ブロック暗号方式よりも高速な処理が期待できるため、例えば、映画等の大容量データを伝送するための方式として、近年、注目を浴びている。なお、記したストリーム暗号を生成するための方法および装置の一例が以下の特許文献１に開示されている。
【特許文献１】特表２００２−５３６９１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のストリーム暗号では、固定長の鍵系列しか出力できなかったために、処理負荷の最適化を図ることができなかった。また、任意長の鍵系列を出力する構成を構築したとしても、出力する鍵系列の長さに対応してセキュリティレベルをコントロールするようなものは存在しなかった。
【０００５】
そこで、本発明は、上述の課題に鑑みてなされたものであり、任意長の鍵系列を出力できるとともに、出力する鍵系列の長さに応じて、適切なセキュリティレベルをコントロールできるストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、自己同期型ストリーム暗号の暗号化装置、自己同期型ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、自己同期型ストリーム暗号の暗号化方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために以下の事項を提案している。
（１）本発明は、平文を入力し、暗号文を出力するストリーム暗号の暗号化装置であって、初期鍵および初期ベクトルを生成するとともに、鍵系列の出力時に内部状態を更新する内部状態更新関数（例えば、図１の内部状態更新関数１１に相当）と、該内部状態更新関数から出力された内部状態を記憶する内部状態記憶手段（例えば、図１の内部状態保存メモリ１２に相当）と、該内部状態記憶手段に記憶された内部状態を読み込んで、鍵系列を出力する鍵系列生成関数（例えば、図１の鍵系列生成関数１０に相当）と、該鍵系列生成関数から出力された鍵系列と前記入力した平文との排他的論理和演算を実行して暗号文を出力する排他的論理和演算器（例えば、図１の排他的論理和演算器１７ａ、１７ｂ、１７ｃ、・・・、１７ｎに相当）と、を備え、前記鍵系列生成関数が、第１の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第１の加算器と、該第１の加算器から出力された値を非線形処理する第１の非線形関数と、該第１の非線形関数からの値を格納する第３の内部メモリと、第２の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第２の加算器と、該第２の加算器から出力された値を非線形処理する第２の非線形関数と、該第２の非線形関数からの値を格納する第４の内部メモリと、前記第１の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第１の排他的論理和演算器と、前記第２の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第２の排他的論理和演算器と、前記第３の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第３の排他的論理和演算器と、前記第４の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第４の排他的論理和演算器と、からなる関数ユニットを出力する鍵系列の長さに応じて所定数連結していることを特徴とするストリーム暗号の暗号化装置を提案している。
【０００７】
この発明によれば、内部状態更新関数が、初期鍵および初期ベクトルを生成するとともに、鍵系列の出力時に内部状態を更新し、内部状態記憶手段が、内部状態更新関数から出力された内部状態を記憶し、鍵系列生成関数が、内部状態記憶手段に記憶された内部状態を読み込んで、鍵系列を出力し、排他的論理和演算器が、鍵系列生成関数から出力された鍵系列と前記入力した平文との排他的論理和演算を実行して暗号文を出力する。そして、鍵系列生成関数が、関数ユニットを出力する鍵系列の長さに応じて所定数連結している。したがって、ワード長の任意倍の鍵系列を一括して生成できるとともに、連結する関数ユニットの個数に応じて、適切なセキュリティレベルをコントロールすることができる。
【０００８】
（２）本発明は、（１）のストリーム暗号の暗号化装置について、前記鍵系列生成関数が、加算器と、該加算器の出力を非線形処理する非線形関数と、該非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに前記関数ユニットの前方に所定数連結していることを特徴とするストリーム暗号の暗号化装置を提案している。
【０００９】
この発明によれば、鍵系列生成関数が、加算器と、加算器の出力を非線形処理する非線形関数と、該非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに関数ユニットの前方に所定数連結している。したがって、出力する鍵系列の長さが短い場合でも、前処理ユニットを関数ユニットの前段に所定数配置することにより、適正なセキュリティレベルをコントロールすることができる。
【００１０】
（３）本発明は、（１）または（２）のストリーム暗号の暗号化装置を用いたストリーム暗号の暗号化方法であって、初期鍵、初期ベクトルを内部状態メモリに読み込む第１のステップ（例えば、図２のステップＳ１０１に相当）と、初期攪拌処理により内部状態メモリを攪拌する第２のステップ（例えば、図２のステップＳ１０２に相当）と、鍵系列生成関数が、内部状態メモリの値を読み込んで鍵系列を出力する第３のステップ（例えば、図２のステップＳ１０３に相当）と、内部状態メモリを更新する第４のステップ（例えば、図２のステップＳ１０５に相当）と、該出力された鍵系列と平文との排他的論理和演算により暗号文を出力する第５のステップ（例えば、図２のステップＳ１０４に相当）と、を備えたことを特徴とするストリーム暗号の暗号化方法を提案している。
【００１１】
この発明によれば、（１）または（２）のストリーム暗号の暗号化装置を用いて、まず、初期鍵、初期ベクトルを内部状態メモリに読み込み、初期攪拌処理により内部状態メモリを攪拌し、鍵系列生成関数が、内部状態メモリの値を読み込んで鍵系列を出力する。そして、内部状態メモリを更新し、出力された鍵系列と平文との排他的論理和演算により暗号文を出力する。したがって、適切なセキュリティレベルを保ちながら、ワード長の任意倍の鍵系列を一括して生成できる。
【００１２】
（４）本発明は、（１）または（２）のストリーム暗号の暗号化装置を用いたストリーム暗号の暗号化方法をコンピュータに実行させるためのプログラムであって、初期鍵、初期ベクトルを内部状態メモリに読み込む第１のステップ（例えば、図２のステップＳ１０１に相当）と、初期攪拌処理により内部状態メモリを攪拌する第２のステップ（例えば、図２のステップＳ１０２に相当）と、鍵系列生成関数が、内部状態メモリの値を読み込んで鍵系列を出力する第３のステップ（例えば、図２のステップＳ１０３に相当）と、内部状態メモリを更新する第４のステップ（例えば、図２のステップＳ１０５に相当）と、該出力された鍵系列と平文との排他的論理和演算により暗号文を出力する第５のステップ（例えば、図２のステップＳ１０４に相当）と、をコンピュータに実行させるためのプログラムを提案している。
【００１３】
この発明によれば、（１）または（２）のストリーム暗号の暗号化装置を用いて、まず、初期鍵、初期ベクトルを内部状態メモリに読み込み、初期攪拌処理により内部状態メモリを攪拌し、鍵系列生成関数が、内部状態メモリの値を読み込んで鍵系列を出力する。そして、内部状態メモリを更新し、出力された鍵系列と平文との排他的論理和演算により暗号文を出力する。したがって、適切なセキュリティレベルを保ちながら、ワード長の任意倍の鍵系列を一括して生成できる。
【００１４】
（５）暗号文を入力し、平文を出力するストリーム暗号の復号化装置であって、初期鍵および初期ベクトルを生成するとともに、鍵系列の出力時に内部状態を更新する内部状態更新関数（例えば、図３の内部状態更新関数１１に相当）と、該内部状態更新関数から出力された内部状態を記憶する内部状態記憶手段（例えば、図３の内部状態保存メモリ１２に相当）と、該内部状態記憶手段に記憶された内部状態を読み込んで、鍵系列を出力する鍵系列生成関数（例えば、図３の鍵系列生成関数１０に相当）と、該鍵系列生成関数から出力された鍵系列と前記入力した暗号文との排他的論理和演算を実行して平文を出力する排他的論理和演算器（例えば、図３の排他的論理和演算器１８ａ、１８ｂ、１８ｃ、・・・、１８ｎに相当）と、を備え、前記鍵系列生成関数が、第１の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第１の加算器と、該第１の加算器から出力された値を非線形処理する第１の非線形関数と、該第１の非線形関数からの値を格納する第３の内部メモリと、第２の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第２の加算器と、該第２の加算器から出力された値を非線形処理する第２の非線形関数と、該第２の非線形関数からの値を格納する第４の内部メモリと、前記第１の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第１の排他的論理和演算器と、前記第２の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第２の排他的論理和演算器と、前記第３の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第３の排他的論理和演算器と、前記第４の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第４の排他的論理和演算器と、からなる関数ユニットを出力する鍵系列の長さに応じて所定数連結していることを特徴とするストリーム暗号の復号化装置を提案している。
【００１５】
この発明によれば、内部状態更新関数が、初期鍵および初期ベクトルを生成するとともに、鍵系列の出力時に内部状態を更新し、内部状態記憶手段が、内部状態更新関数から出力された内部状態を記憶し、鍵系列生成関数が、内部状態記憶手段に記憶された内部状態を読み込んで、鍵系列を出力し、排他的論理和演算器が、鍵系列生成関数から出力された鍵系列と前記入力した暗号文との排他的論理和演算を実行して平文を出力する。そして、鍵系列生成関数が、関数ユニットを出力する鍵系列の長さに応じて所定数連結している。したがって、セキュリティレベルを適切に保ちながら、任意長の鍵系列からなる暗号文を復号することができる。
【００１６】
（６）本発明は、（５）のストリーム暗号の復号化装置について、前記鍵系列生成関数が、加算器と、該加算器の出力を非線形処理する非線形関数と、該非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに前記関数ユニットの前方に所定数連結していることを特徴とするストリーム暗号の復号化装置を提案している。
【００１７】
この発明によれば、鍵系列生成関数が、加算器と、加算器の出力を非線形処理する非線形関数と、非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに前記関数ユニットの前方に所定数連結している。したがって、出力される鍵系列の長さが短い暗号文の場合でも、前処理ユニットを関数ユニットの前段に所定数配置することにより、適正なセキュリティレベルを保ちながら、復号を行うことができる。
【００１８】
（７）本発明は、平文を入力し、暗号文を出力するとともに、該暗号文を入力にフィードバックする自己同期型ストリーム暗号の暗号化装置であって、初期値を入力し、拡大鍵を生成する鍵拡大関数（例えば、図５の鍵拡大関数２１に相当）と、該生成された拡大鍵を記憶する拡大鍵記憶手段（例えば、図５の拡大鍵保存メモリ２２に相当）と、該拡大鍵記憶手段に記憶された拡大鍵と前回暗号化した暗号文あるいは初期ベクトルを読み込んで、鍵系列を出力する鍵系列生成関数（例えば、図５の鍵系列生成関数２０に相当）と、該鍵系列生成関数から出力された鍵系列と前記入力した平文との排他的論理和演算を実行して暗号文を出力する排他的論理和演算器（例えば、図５の排他的論理和演算器２７ａ、２７ｂ、２７ｃ、・・・、２７ｎに相当）と、該出力された暗号文を圧縮処理して前記鍵系列生成関数にフィードバックする圧縮関数（例えば、図５の圧縮関数２８に相当）と、を備え、前記鍵系列生成関数が、第１の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第１の加算器と、該第１の加算器から出力された値を非線形処理する第１の非線形関数と、該第１の非線形関数からの値を格納する第３の内部メモリと、第２の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第２の加算器と、該第２の加算器から出力された値を非線形処理する第２の非線形関数と、該第２の非線形関数からの値を格納する第４の内部メモリと、前記第１の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第１の排他的論理和演算器と、前記第２の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第２の排他的論理和演算器と、前記第３の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第３の排他的論理和演算器と、前記第４の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第４の排他的論理和演算器と、からなる関数ユニットを出力する鍵系列の長さに応じて所定数連結していることを特徴とする自己同期型ストリーム暗号の暗号化装置を提案している。
【００１９】
この発明によれば、鍵拡大関数が、初期値を入力し、拡大鍵を生成し、拡大鍵記憶手段が、生成された拡大鍵を記憶する。鍵系列生成関数は、拡大鍵記憶手段に記憶された拡大鍵と前回暗号化した暗号文あるいは初期ベクトルを読み込んで、鍵系列を出力する。排他的論理和演算器は、鍵系列生成関数から出力された鍵系列と入力した平文との排他的論理和演算を実行して暗号文を出力する。そして、圧縮関数が、出力された暗号文を圧縮処理して鍵系列生成関数にフィードバックする。また、鍵系列生成関数は、関数ユニットを出力する鍵系列の長さに応じて所定数連結している。したがって、ワード長の任意倍の鍵系列を一括して生成できるとともに、連結する関数ユニットの個数に応じて、適切なセキュリティレベルをコントロールすることができる。
【００２０】
（８）本発明は、（７）の自己同期型ストリーム暗号の暗号化装置について、前記鍵系列生成関数が、加算器と、該加算器の出力を非線形処理する非線形関数と、該非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに前記関数ユニットの前方に所定数連結していることを特徴とする自己同期型ストリーム暗号の暗号化装置を提案している。
【００２１】
この発明によれば、鍵系列生成関数が、加算器と、加算器の出力を非線形処理する非線形関数と、該非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに関数ユニットの前方に所定数連結している。したがって、出力する鍵系列の長さが短い場合でも、前処理ユニットを関数ユニットの前段に所定数配置することにより、適正なセキュリティレベルをコントロールすることができる。
【００２２】
（９）本発明は、（７）または（８）に記載のストリーム暗号の自己同期型暗号化装置を用いたストリーム暗号の暗号化方法であって、初期鍵を鍵拡大関数で拡大し、拡大鍵としてメモリにセットする第１のステップ（例えば、図６のステップＳ３０１に相当）と、鍵系列生成関数が、拡大鍵と前回暗号化した暗号文あるいは初期ベクトルとを読み込んで鍵系列を出力する第２のステップ（例えば、図６のステップＳ３０２に相当）と、鍵系列と平文との排他的論理和演算を実行することにより、暗号文を出力する第３のステップ（例えば、図６のステップＳ３０３に相当）と、該出力した暗号文をフィードバックさせ、鍵生成関数へ入力する第４のステップ（例えば、図６のステップＳ３０３に相当）と、を備えたことを特徴とするストリーム暗号の暗号化方法を提案している。
【００２３】
この発明によれば、（７）または（８）に記載のストリーム暗号の自己同期型暗号化装置を用いて、まず、初期鍵を鍵拡大関数で拡大し、拡大鍵としてメモリにセットし、鍵系列生成関数が、拡大鍵と前回暗号化した暗号文あるいは初期ベクトルとを読み込んで鍵系列を出力し、鍵系列と平文との排他的論理和演算を実行することにより、暗号文を出力する。そして、出力した暗号文をフィードバックさせ、鍵生成関数へ入力する。したがって、適切なセキュリティレベルを保ちながら、ワード長の任意倍の鍵系列を一括して生成できる。
【００２４】
（１０）本発明は、（７）または（８）に記載のストリーム暗号の自己同期型暗号化装置を用いたストリーム暗号の暗号化方法をコンピュータに実行させるためのプログラムであって、初期鍵を鍵拡大関数で拡大し、拡大鍵としてメモリにセットする第１のステップ（例えば、図６のステップＳ３０１に相当）と、鍵系列生成関数が、拡大鍵と前回暗号化した暗号文あるいは初期ベクトルとを読み込んで鍵系列を出力する第２のステップ（例えば、図６のステップＳ３０２に相当）と、鍵系列と平文との排他的論理和演算を実行することにより、暗号文を出力する第３のステップ（例えば、図６のステップＳ３０３に相当）と、該出力した暗号文をフィードバックさせ、鍵生成関数へ入力する第４のステップ（例えば、図６のステップＳ３０３に相当）と、をコンピュータに実行させるためのプログラム。
【００２５】
この発明によれば、（７）または（８）に記載のストリーム暗号の自己同期型暗号化装置を用いて、まず、初期鍵を鍵拡大関数で拡大し、拡大鍵としてメモリにセットし、鍵系列生成関数が、拡大鍵と前回暗号化した暗号文あるいは初期ベクトルとを読み込んで鍵系列を出力し、鍵系列と平文との排他的論理和演算を実行することにより、暗号文を出力する。そして、出力した暗号文をフィードバックさせ、鍵生成関数へ入力する。したがって、適切なセキュリティレベルを保ちながら、ワード長の任意倍の鍵系列を一括して生成できる。
【００２６】
（１１）本発明は、暗号文を入力し、平文を出力する自己同期型ストリーム暗号の復号化装置であって、初期値を入力し、拡大鍵を生成する鍵拡大関数（例えば、図７の鍵拡大関数２１に相当）と、該生成された拡大鍵を記憶する拡大鍵記憶手段（例えば、図７の拡大鍵保存メモリ２２に相当）と、該拡大鍵記憶手段に記憶された拡大鍵と前回復号化した平文あるいは初期ベクトルを読み込んで、鍵系列を出力する鍵系列生成関数（例えば、図７の鍵系列生成関数２０に相当）と、該鍵系列生成関数から出力された鍵系列と前記入力した暗号文との排他的論理和演算を実行して平文を出力する排他的論理和演算器（例えば、図７の排他的論理和演算器２９ａ、２９ｂ、２９ｃ、・・・、２９ｎに相当）と、該出力された平文を圧縮処理して前記鍵系列生成関数にフィードバックする圧縮関数（例えば、図７の圧縮関数３０に相当）と、を備え、前記鍵系列生成関数が、第１の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第１の加算器と、該第１の加算器から出力された値を非線形処理する第１の非線形関数と、該第１の非線形関数からの値を格納する第３の内部メモリと、第２の内部メモリの値と前記内部状態記憶手段から出力される値との加算値を出力する第２の加算器と、該第２の加算器から出力された値を非線形処理する第２の非線形関数と、該第２の非線形関数からの値を格納する第４の内部メモリと、前記第１の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第１の排他的論理和演算器と、前記第２の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第２の排他的論理和演算器と、前記第３の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第３の排他的論理和演算器と、前記第４の内部メモリの値と前記内部状態記憶手段から出力される値との排他的論理和演算を実行して鍵系列を出力する第４の排他的論理和演算器と、からなる関数ユニットを出力する鍵系列の長さに応じて所定数連結していることを特徴とする自己同期型ストリーム暗号の復号化装置を提案している。
【００２７】
本発明によれば、鍵拡大関数が初期値を入力し、拡大鍵を生成する。拡大鍵記憶手段は、生成された拡大鍵を記憶する。鍵系列生成関数は、拡大鍵記憶手段に記憶された拡大鍵と前回復号化した平文あるいは初期ベクトルを読み込んで、鍵系列を出力し、排他的論理和演算器が、鍵系列生成関数から出力された鍵系列と入力した暗号文との排他的論理和演算を実行して平文を出力する。そして、圧縮関数が、出力された平文を圧縮処理して鍵系列生成関数にフィードバックする。また、鍵系列生成関数が、関数ユニットを出力する鍵系列の長さに応じて所定数連結している。したがって、セキュリティレベルを適切に保ちながら、任意長の鍵系列からなる暗号文を復号することができる。
【００２８】
（１２）本発明は、（１１）の自己同期型ストリーム暗号の復号化装置について、前記鍵系列生成関数が、加算器と、該加算器の出力を非線形処理する非線形関数と、該非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに前記関数ユニットの前方に所定数連結していることを特徴とする自己同期型ストリーム暗号の復号化装置を提案している。
【００２９】
この発明によれば、鍵系列生成関数が、加算器と、加算器の出力を非線形処理する非線形関数と、非線形関数からの値を格納する内部メモリと、からなる前処理ユニットをさらに前記関数ユニットの前方に所定数連結している。したがって、出力される鍵系列の長さが短い暗号文の場合でも、前処理ユニットを関数ユニットの前段に所定数配置することにより、適正なセキュリティレベルを保ちながら、復号を行うことができる。
【発明の効果】
【００３０】
本発明によれば、構成に柔軟性を持たせることにより、ワード長の任意倍の鍵系列をセキュリティレベルを適切に保ちつつ、一括して生成することができるという効果がある。また、本発明によれば、ワード長の任意倍の鍵系列で構成された暗号文をセキュリティレベルを適切に保ちつつ、復号できるという効果がある。
【発明を実施するための最良の形態】
【００３１】
以下、図面を用いて、本発明の実施形態について詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【００３２】
＜第１の実施形態＞
図１から図４を用いて、第１の実施形態について説明する。
【００３３】
＜暗号化装置の構成＞
第１の実施形態に係る暗号化装置は、図１に示すように、鍵系列生成関数１０と、内部状態更新関数１１と、内部状態保存メモリ１２と、排他的論理和演算器１７ａ、１７ｂ、１７ｃ、・・・、１７ｎとから構成されている。また、鍵系列生成関数１０は、任意の数の前処理ブロックと関数ブロックとから構成され、前処理ブロックは、例えば、加算器１３ａと、非線形関数１４ａと、内部メモリ１５ａとから構成され、関数ブロックは、内部メモリ１５ｃ〜１５ｆと、加算器１３ｄ、１３ｅと、非線形関数１４ｃ、１４ｄと、排他的論理和演算器１６ａ〜１６ｄとから構成されている。
【００３４】
ここで、内部状態更新関数１１は、初期鍵および初期ベクトルを生成するとともに、鍵系列の出力時に内部状態を更新する。内部状態保存メモリ１２は、内部状態更新関数１１から出力された内部状態を記憶する。鍵系列生成関数１０は、内部状態保存メモリ１２に記憶された内部状態を読み込んで、鍵系列を出力する。排他的論理和演算器１７ａ、１７ｂ、１７ｃ、・・・、１７ｎは、鍵系列生成関数１０から出力された鍵系列と入力した平文との排他的論理和演算を実行して暗号文を出力する。
【００３５】
また、鍵系列生成関数１０の一部をなす関数ブロックを構成する加算器１３ｄは、内部メモリ１５ｃの値と内部状態保存メモリ１２から出力される値との加算値を出力する。非線形関数１４ｄは、加算器１３ｄから出力された値を非線形処理する。内部メモリ１５ｆは、非線形関数１４ｄからの値を格納する。加算器１３ｅは、内部メモリ１５ｅの値と内部状態保存メモリ１２から出力される値との加算値を出力する。非線形関数１４ｃは、加算器１３ｅから出力された値を非線形処理する。内部メモリ１５ｄは、非線形関数１４ｃからの値を格納する。排他的論理和演算器１６ａは、内部メモリ１５ｃの値と内部状態保存メモリ１２から出力される値との排他的論理和演算を実行して鍵系列を出力する。排他的論理和演算器１６ｄは、内部メモリ１５ｆの値と内部状態保存メモリ１２から出力される値との排他的論理和演算を実行して鍵系列を出力する。排他的論理和演算器１６ｃは、内部メモリ１５ｅの値と内部状態保存メモリ１２から出力される値との排他的論理和演算を実行して鍵系列を出力する。排他的論理和演算器は、内部メモリ１５ｄの値と内部状態保存メモリ１２から出力される値との排他的論理和演算を実行して鍵系列を出力する。
【００３６】
上記の構成からなる関数ブロックを所定数連結することにより、ワード長の任意倍の鍵系列を一括して生成できる。また、連結する関数ユニットの個数に応じて、鍵生成関数内の値が非線形関数を通る頻度が高まることから、適切なセキュリティレベルをコントロールすることができる。
【００３７】
さらに、鍵系列生成関数１０の一部をなす前処理ブロックを構成する加算器１３ａは、例えば、内部メモリの値と内部状態保存メモリ１２に格納された値との加算処理を実行する。非線形関数１４ａは、加算器１３ａの出力に対して非線形処理を施す。内部メモリ１５ａは、非線形関数１４ａにおいて非線形処理を施した値を格納する。
【００３８】
上記の構成からなる前処理ブロックを関数ブロックの前に所定数連結することにより、鍵系列が短い場合であっても、鍵生成関数内の値が非線形関数を通る頻度を高めることができることから、適正なセキュリティレベルをコントロールすることができる。
【００３９】
＜暗号化処理＞
図２を用いて、本実施形態に係る暗号化装置を用いた暗号化処理について説明する。
まず、初期鍵、初期ベクトルを内部状態保存メモリ１２に読み込む（ステップＳ１０１）。次に、初期攪拌処理により内部状態保存メモリ１２の内部を攪拌する（ステップ１０２）。鍵系列生成関数１０は、内部状態保存メモリ１２の値を読み込んで鍵系列を出力する（ステップＳ１０３）。このとき、内部状態保存メモリ１２の値を更新処理し（ステップＳ１０５）、ステップＳ１０１に戻るとともに、鍵系列生成関数１０から出力された鍵系列と平文とを排他的論理和演算器１７ａ〜１７ｎにより排他的論理和演算して暗号文を出力する（ステップＳ１０４）。
【００４０】
したがって、本実施形態に係る暗号化装置によれば、適切なセキュリティレベルを保ちながら、ワード長の任意倍の鍵系列を一括して生成できる。
【００４１】
＜復号化装置の構成＞
上記の暗号化装置に対応した復号化装置は、図３に示すように、鍵系列生成関数１０と、内部状態更新関数１１と、内部状態保存メモリ１２と、排他的論理和演算器１８ａ、１８ｂ、１８ｃ、・・・、１８ｎとから構成されている。また、鍵系列生成関数１０は、任意の数の前処理ブロックと関数ブロックとから構成され、前処理ブロックは、例えば、加算器１３ａと、非線形関数１４ａと、内部メモリ１５ａとから構成され、関数ブロックは、内部メモリ１５ｃ〜１５ｆと、加算器１３ｄ、１３ｅと、非線形関数１４ｃ、１４ｄと、排他的論理和演算器１６ａ〜１６ｄとから構成されている。なお、上記の暗号化装置と同一の符号を付す構成要素については、同一の機能を有することから、その詳細な説明は省略する。
【００４２】
排他的論理和演算器１８ａ、１８ｂ、１８ｃ、・・・、１８ｎは、鍵系列生成関数１０から出力された鍵系列と入力した暗号文との排他的論理和演算を実行して平文を出力する。
【００４３】
したがって、本実施形態に係る復号化装置においては、セキュリティレベルを適切に保ちながら、任意長の鍵系列からなる暗号文を復号することができる。また、出力される鍵系列の長さが短い暗号文の場合でも、前処理ユニットを関数ユニットの前段に所定数配置することにより、適正なセキュリティレベルを保ちながら、復号を行うことができる。
【００４４】
＜復号処理＞
図４を用いて、本実施形態に係る復号化装置を用いた復号化処理について説明する。
まず、初期鍵、初期ベクトルを内部状態保存メモリ１２に読み込む（ステップＳ２０１）。次に、初期攪拌処理により内部状態保存メモリ１２の内部を攪拌する（ステップ２０２）。鍵系列生成関数１０は、内部状態保存メモリ１２の値を読み込んで鍵系列を出力する（ステップＳ２０３）。このとき、内部状態保存メモリ１２の値を更新処理し（ステップＳ２０５）、ステップＳ１０１に戻るとともに、鍵系列生成関数１０から出力された鍵系列と暗号文とを排他的論理和演算器１８ａ〜１８ｎにより排他的論理和演算して平文を出力する（ステップＳ２０４）。
【００４５】
したがって、本実施形態に係る復号化装置によれば、適切なセキュリティレベルを保ちながら、任意長の鍵系列からなる暗号文を復号することができる。
【００４６】
＜第２の実施形態＞
次に、図５から図８を用いて、第２の実施形態について説明する。
【００４７】
＜自己同期型暗号化装置の構成＞
第２の実施形態に係る自己同期型暗号化装置は、図５に示すように、鍵系列生成関数２０と、鍵拡大関数２１と、拡大鍵保存メモリ２２と、排他的論理和演算器２７ａ、２７ｂ、２７ｃ、・・・、２７ｎと、圧縮関数２８とから構成されている。また、鍵系列生成関数２０は、任意の数の前処理ブロックと関数ブロックとから構成され、前処理ブロックは、例えば、加算器２３ａと、非線形関数２４ａと、内部メモリ２５ａとから構成され、関数ブロックは、内部メモリ２５ｃ〜２５ｆと、加算器２３ｄ、２３ｅと、非線形関数２４ｃ、２４ｄと、排他的論理和演算器２６ａ〜２６ｄとから構成されている。なお、鍵系列生成関数２０の内部構成は、第１の実施形態と同様であるため、その詳細な説明は省略する。
【００４８】
ここで、鍵拡大関数２１は、初期値を入力し、拡大鍵を生成する。拡大鍵保存メモリ２２は、生成された拡大鍵を記憶する。鍵系列生成関数２０は、拡大鍵保存メモリ２２に記憶された拡大鍵と前回暗号化した暗号文あるいは初期ベクトルを読み込んで、鍵系列を出力する。排他的論理和演算器２７ａ、２７ｂ、２７ｃ、・・・、２７ｎは、鍵系列生成関数２０から出力された鍵系列と入力した平文との排他的論理和演算を実行して暗号文を出力する。圧縮関数２８は、出力された暗号文を圧縮処理して鍵系列生成関数２０にフィードバックする。
【００４９】
＜自己同期型暗号化装置の暗号化処理＞
図６を用いて、第２の実施形態に係る自己同期型暗号化装置の暗号化処理について説明する。
まず、初期鍵を鍵拡大関数２１で拡大し、拡大鍵として拡大鍵保存メモリ２２にセットする（ステップＳ３０１）。鍵系列生成関数２０は、拡大鍵保存メモリ２２にセットされた拡大鍵と前回暗号化した暗号文あるいは初期ベクトルとを読み込んで鍵系列を出力する（ステップＳ３０２）。そして、出力された鍵系列と平文との排他的論理和演算を実行することにより、暗号文を出力し、出力した暗号文を圧縮関数２８を介してフィードバックさせ、鍵系列生成関数２０へ入力する（ステップＳ３０３）。
【００５０】
したがって、本実施形態に係る自己同期型暗号化装置においては、ワード長の任意倍の鍵系列を一括して生成できるとともに、連結する関数ユニットの個数に応じて、適切なセキュリティレベルをコントロールすることができる。また、出力する鍵系列の長さが短い場合でも、前処理ユニットを関数ユニットの前段に所定数配置することにより、適正なセキュリティレベルをコントロールすることができる。
【００５１】
＜自己同期型復号化装置の構成＞
第２の実施形態に係る自己同期型復号化装置は、図７に示すように、鍵系列生成関数２０と、鍵拡大関数２１と、拡大鍵保存メモリ２２と、排他的論理和演算器２９ａ、２９ｂ、２９ｃ、・・・、２９ｎと、圧縮関数３０とから構成されている。また、鍵系列生成関数２０は、任意の数の前処理ブロックと関数ブロックとから構成され、前処理ブロックは、例えば、加算器２３ａと、非線形関数２４ａと、内部メモリ２５ａとから構成され、関数ブロックは、内部メモリ２５ｃ〜２５ｆと、加算器２３ｄ、２３ｅと、非線形関数２４ｃ、２４ｄと、排他的論理和演算器２６ａ〜２６ｄとから構成されている。なお、鍵系列生成関数２０の内部構成は、上記、自己同期型暗号化装置と同様であるため、詳細な説明は省略する。
【００５２】
ここで、排他的論理和演算器２９ａ、２９ｂ、２９ｃ、・・・、２９ｎは、鍵系列生成関数２０から出力された鍵系列と入力した暗号文との排他的論理和演算を実行して平文を出力する。圧縮関数３０は、出力された平文を圧縮処理して鍵系列生成関数２０にフィードバックする。
【００５３】
＜自己同期型復号化装置の復号化処理＞
図８を用いて、第２の実施形態に係る自己同期型復号化装置の復号化処理について説明する。
まず、初期鍵を鍵拡大関数２１で拡大し、拡大鍵として拡大鍵保存メモリ２２にセットする（ステップＳ４０１）。鍵系列生成関数２０は、拡大鍵保存メモリ２２にセットされた拡大鍵と前回復号化した平文あるいは初期ベクトルとを読み込んで鍵系列を出力する（ステップＳ４０２）。そして、出力された鍵系列と暗号文との排他的論理和演算を実行することにより、平文を出力し、出力した平文を圧縮関数３０を介してフィードバックさせ、鍵系列生成関数２０へ入力する（ステップＳ４０３）。
【００５４】
したがって、本実施形態に係る自己同期型復号化装置においては、セキュリティレベルを適切に保ちながら、任意長の鍵系列からなる暗号文を復号することができる。また、出力される鍵系列の長さが短い暗号文の場合でも、前処理ユニットを関数ユニットの前段に所定数配置することにより、適正なセキュリティレベルを保ちながら、復号を行うことができる。
【００５５】
なお、上述の一連の処理をプログラムとしてコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをストリーム暗号の暗号化装置、復号化装置、自己同期型暗号化装置および自己同期型復号化装置に読み込ませ、実行することによって本発明のストリーム暗号の暗号化装置、復号化装置自己同期型暗号化装置および自己同期型復号化装置を実現することができる。
【００５６】
また、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００５７】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００５８】
また、本発明は、様々なストリーム暗号の評価に広く適用することができる。したがって、ストリーム暗号を使用するようなブロードバンド事業や携帯電話をはじめとするモバイル通信におけるシステム構築に広く利用することが可能である。
【００５９】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【図面の簡単な説明】
【００６０】
【図１】第１の実施形態に係る暗号化装置の構成図である。
【図２】第１の実施形態に係る暗号化装置における暗号処理を示すフローである。
【図３】第１の実施形態に係る復号化装置の構成図である。
【図４】第１の実施形態に係る復号化装置における復号処理を示すフローである。
【図５】第１の実施形態に係る自己同期型暗号化装置の構成図である。
【図６】第１の実施形態に係る自己同期型暗号化装置における暗号処理を示すフローである。
【図７】第１の実施形態に係る自己同期型復号化装置の構成図である。
【図８】第１の実施形態に係る自己同期型復号化装置における復号処理を示すフローである。
【符号の説明】
【００６１】
１０、２０・・・鍵系列生成関数、１１・・・内部状態更新関数、１２・・・内部状態保存メモリ、１７ａ、１７ｂ、１７ｃ、・・・、１７ｎ、１８ａ、１８ｂ、１８ｃ、・・・、１８ｎ、２７ａ、２７ｂ、２７ｃ、・・・、２７ｎ、２９ａ、２９ｂ、２９ｃ、・・・、２９ｎ排他的論理和演算器、２１・・・鍵拡大関数、２２・・・拡大鍵保存メモリ、２８、３０・・・圧縮関数
【図１】
2008286965.tif 000003
【図２】
2008286965.tif 000004
【図３】
2008286965.tif 000005
【図４】
2008286965.tif 000006
【図５】
2008286965.tif 000007
【図６】
2008286965.tif 000008
【図７】
2008286965.tif 000009
【図８】
2008286965.tif 000010