(57)【特許請求の範囲】
【請求項１】
認証付きストリーム暗号の暗号化装置であって、
鍵系列を生成する鍵系列生成手段と、
該生成した鍵系列を２つに分割する分割手段と、
該分割した一方の鍵系列と平文との排他的論理和演算を行って暗号文を生成する第１のＸＯＲ演算器と、
メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタと、
該フィードバックシフトレジスタのうち、任意の２つのレジスタの排他的論理和演算を行う第２のＸＯＲ演算器と、
該第２のＸＯＲ演算器の出力データと平文と他方の鍵系列との排他的論理和演算を行い出力データを前記フィードバックシフトレジスタに出力する第３のＸＯＲ演算器と、
前記フィードバックシフトレジスタから出力されるメッセージ認証子と前記生成した暗号文とを結合させる結合手段と、
該結合された認証付きストリーム暗号を送信する送信手段と、
を備えたことを特徴とする認証付きストリーム暗号の暗号化装置。
【請求項２】
前記平文の入力が終了した後に、固定のビット列を入力して、前記フィードバックシフトレジスタを空回しすることを特徴とする請求項１に記載の認証付きストリーム暗号の暗号化装置。
【請求項３】
前記フィードバックシフトレジスタが線形フィードバックシフトレジスタであることを特徴とする請求項１に記載の認証付きストリーム暗号の暗号化装置。
【請求項４】
非線形関数を備え、前記フィードバックシフトレジスタが非線形フィードバックシフトレジスタであることを特徴とする請求項１に記載の認証付きストリーム暗号の暗号化装置。
【請求項５】
前記フィードバックシフトレジスタがワード単位である場合に出力データに係数を乗じることを特徴とする請求項１に記載の認証付きストリーム暗号の暗号化装置。
【請求項６】
認証付きストリーム暗号を復号する認証付きストリーム暗号の復号化装置であって、
前記認証付きストリーム暗号を受信する受信手段と、
前記受信した認証付きストリーム暗号から、暗号文を分離する分離手段と、
鍵系列を生成する鍵系列生成手段と、
該生成した鍵系列を２つに分割する分割手段と、
該分割した一方の鍵系列と暗号文との排他的論理和演算を行って平文を生成する第１のＸＯＲ演算器と、
メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタと、
該フィードバックシフトレジスタのうち、任意の２つのレジスタの排他的論理和演算を行う第２のＸＯＲ演算器と、
該第２のＸＯＲ演算器の出力データと平文と他方の鍵系列との排他的論理和演算を行い出力データを前記フィードバックシフトレジスタに出力する第３のＸＯＲ演算器と、
を備えたことを特徴とする認証付きストリーム暗号の復号化装置。
【請求項７】
前記暗号文の入力が終了した後に、固定のビット列を入力して、前記フィードバックシフトレジスタを空回しすることを特徴とする請求項６に記載の認証付きストリーム暗号の復号化装置。
【請求項８】
前記フィードバックシフトレジスタが線形フィードバックシフトレジスタであることを特徴とする請求項６に記載の認証付きストリーム暗号の復号化装置。
【請求項９】
非線形関数を備え、前記フィードバックシフトレジスタが非線形フィードバックシフトレジスタであることを特徴とする請求項６に記載の認証付きストリーム暗号の復号化装置。
【請求項１０】
前記フィードバックシフトレジスタがワード単位である場合に出力データに係数を乗じることを特徴とする請求項６に記載の認証付きストリーム暗号の復号化装置。
【請求項１１】
認証付きストリーム暗号の暗号化装置における暗号化方法であって、
初期鍵と初期ベクトルを読み込む第１のステップと、
初期化処理を実施する第２のステップと、
鍵系列生成処理を実行し、鍵系列を生成する第３のステップと、
該生成した鍵系列を２分割する第４のステップと、
該分割した一方の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第５のステップと、
メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の２つのレジスタの排他的論理和演算を行ったデータと前記分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、前記フィードバックシフトレジスタに入力する第６のステップと、
平文の入力終了後に、固定のビット列を入力して前記フィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する第７のステップと、
該メッセージ認証子と前記生成した暗号文とを結合する第８のステップと、
該結合した前記メッセージ認証子と前記生成した暗号文とを送信する第９のステップと、
を備えたことを特徴とする暗号化方法。
【請求項１２】
認証付きストリーム暗号の復号化装置における復号化方法であって、
前記認証付きストリーム暗号を受信する第１のステップと、
前記受信した認証付きストリーム暗号から、暗号文を分離する第２のステップと、
初期鍵と初期ベクトルを読み込む第３のステップと、
初期化処理を実施する第４のステップと、
鍵系列生成処理を実行し、鍵系列を生成する第５のステップと、
該生成した鍵系列を２分割する第６のステップと、
該分割した一方の鍵系列と暗号文との排他的論理和演算を行い、平文を出力する第７のステップと、
メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の２つのレジスタの排他的論理和演算を行ったデータと前記分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、前記フィードバックシフトレジスタに入力する第８のステップと、
平文の入力終了後に、固定のビット列を入力して前記フィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する第９のステップと、
該出力したメッセージ認証子と前記分離したメッセージ認証子が一致するか否かを検証する第１０のステップと、
を備えたことを特徴とする復号化方法。
【請求項１３】
認証付きストリーム暗号の暗号化装置における暗号化方法を実行するためのプログラムであって、
初期鍵と初期ベクトルを読み込む第１のステップと、
初期化処理を実施する第２のステップと、
鍵系列生成処理を実行し、鍵系列を生成する第３のステップと、
該生成した鍵系列を２分割する第４のステップと、
該分割した一方の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第５のステップと、
メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の２つのレジスタの排他的論理和演算を行ったデータと前記分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、前記フィードバックシフトレジスタに入力する第６のステップと、
平文の入力終了後に、固定のビット列を入力して前記フィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する第７のステップと、
該メッセージ認証子と前記生成した暗号文とを結合する第８のステップと、
該結合した前記メッセージ認証子と前記生成した暗号文とを送信する第９のステップと、
を実行するためのプログラム。
【請求項１４】
認証付きストリーム暗号の復号化装置における復号化方法を実行するためのプログラムであって、
前記認証付きストリーム暗号を受信する第１のステップと、
前記受信した認証付きストリーム暗号から、暗号文を分離する第２のステップと、
初期鍵と初期ベクトルを読み込む第３のステップと、
初期化処理を実施する第４のステップと、
鍵系列生成処理を実行し、鍵系列を生成する第５のステップと、
該生成した鍵系列を２分割する第６のステップと、
該分割した一方の鍵系列と暗号文との排他的論理和演算を行い、平文を出力する第７のステップと、
メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の２つのレジスタの排他的論理和演算を行ったデータと前記分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、前記フィードバックシフトレジスタに入力する第８のステップと、
平文の入力終了後に、固定のビット列を入力して前記フィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する第９のステップと、
該出力したメッセージ認証子と前記分離したメッセージ認証子が一致するか否かを検証する第１０のステップと、
を実行するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号へと拡張する認証付きストリーム暗号の暗号化装置、認証付きストリーム暗号の復号化装置、暗号化方法、復号化方法およびプログラムに関する。
【背景技術】
【０００２】
近年、コンピュータを利用した様々なサービスが提供されている。多くのサービスに置いては、通信の秘匿を実現するため、暗号が利用される。暗号方式として最も一般的なものは、１つの鍵で暗号化・復号化を行う共通鍵暗号方式であるが、共通鍵暗号方式は、大きくブロック暗号方式とストリーム暗号方式の２つに分けられる。
【０００３】
前者は、最も一般的に用いられている方式であるが、後者の方が処理速度に優れるため、近年注目を集めつつある。一方、認証付き暗号という方式がある。これは、１つのアルゴリズムでメッセージ認証と暗号化を同時に実現しようとするアルゴリズムである（例えば、非特許文献１参照。）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｐｈｉｌｉｐ  Ｈａｗｋｅｓ、Ｃａｍｅｒｏｎ  ＭｃＤｏｎａｌｄ、Ｍｉｃｈａｅｌ  Ｐａｄｄｏｎ、Ｇｒｅｇｏｒｙ  Ｇ．  Ｒｏｓｅ  ａｎｄ  Ｍｉｒｉａｍ  Ｗｉｇｇｅｒｓ  ｄｅ  Ｖｒｉｅｓ， “Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｆｏｒ  ＮＬＳｖ２  、”  Ｎｅｗ  Ｓｔｒｅａｍ  Ｃｉｐｈｅｒ  Ｄｅｓｉｇｎｓ、ＬＮＣＳ、Ｖｏｌ．４９８６、２００８．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来は、ストリーム暗号を認証付き暗号にするためには、アルゴリズムの再設計が必要であったり、または、設計の段階から認証機能の組み込みを考慮する必要があった。さらには、認証付きストリーム暗号のほとんどすべてが攻撃により破られているという事実もあり、安全な認証付きストリーム暗号はほとんど無いという状況である。
【０００６】
そこで、本発明は、上述の課題に鑑みてなされたものであり、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号へと拡張する認証付きストリーム暗号の暗号化装置、認証付きストリーム暗号の復号化装置、暗号化方法、復号化方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
【０００８】
（１）本発明は、認証付きストリーム暗号の暗号化装置であって、鍵系列を生成する鍵系列生成手段（例えば、図１の鍵系列生成部２０に相当）と、該生成した鍵系列を２つに分割する分割手段（例えば、図１の鍵系列分割部３０に相当）と、該分割した一方の鍵系列と平文との排他的論理和演算を行って暗号文を生成する第１のＸＯＲ演算器（例えば、図１の第１のＸＯＲ演算器４０に相当）と、メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタ（例えば、図１のフィードバックシフトレジスタ５０に相当）と、該フィードバックシフトレジスタのうち、任意の２つのレジスタの排他的論理和演算を行う第２のＸＯＲ演算器（例えば、図１の第２のＸＯＲ演算器６０に相当）と、該第２のＸＯＲ演算器の出力データと平文と他方の鍵系列との排他的論理和演算を行い出力データを前記フィードバックシフトレジスタに出力する第３のＸＯＲ演算器と（例えば、図１の第３のＸＯＲ演算器７０に相当）、前記フィードバックシフトレジスタから出力されるメッセージ認証子と前記生成した暗号文とを結合させる結合手段（例えば、図１の結合部８０に相当）と、該結合された認証付きストリーム暗号を送信する送信手段（例えば、図１の送信部９０に相当）と、を備えたことを特徴とする認証付きストリーム暗号の暗号化装置を提案している。
【０００９】
この発明によれば、鍵系列生成手段は、鍵系列を生成する。分割手段は、生成した鍵系列を２つに分割する。第１のＸＯＲ演算器は、分割した一方の鍵系列と平文との排他的論理和演算を行って暗号文を生成する。フィードバックシフトレジスタは、メッセージ認証子を作成するためのメモリである。第２のＸＯＲ演算器は、フィードバックシフトレジスタのうち、任意の２つのレジスタの排他的論理和演算を行う。第３のＸＯＲ演算器は、第２のＸＯＲ演算器の出力データと平文と他方の鍵系列との排他的論理和演算を行い出力データをフィードバックシフトレジスタに出力する。結合手段は、フィードバックシフトレジスタから出力されるメッセージ認証子と生成した暗号文とを結合させる。送信手段は、結合された認証付きストリーム暗号を送信する。したがって、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号を生成することができる。
【００１０】
（２）本発明は、（１）の認証付きストリーム暗号の暗号化装置について、前記平文の入力が終了した後に、固定のビット列を入力して、前記フィードバックシフトレジスタを空回しすることを特徴とする認証付きストリーム暗号の暗号化装置を提案している。
【００１１】
この発明によれば、平文の入力が終了した後に、固定のビット列を入力して、フィードバックシフトレジスタを空回しする。これにより、安全性を高めることができる。
【００１２】
（３）本発明は、（１）の認証付きストリーム暗号の暗号化装置について、前記フィードバックシフトレジスタが線形フィードバックシフトレジスタであることを特徴とする認証付きストリーム暗号の暗号化装置を提案している。
【００１３】
この発明によれば、フィードバックシフトレジスタが線形フィードバックシフトレジスタである。したがって、簡易な構成と演算でメッセージ認証子を生成することができる。
【００１４】
（４）本発明は、（１）の認証付きストリーム暗号の暗号化装置について、非線形関数を備え、前記フィードバックシフトレジスタが非線形フィードバックシフトレジスタであることを特徴とする認証付きストリーム暗号の暗号化装置を提案している。
【００１５】
この発明によれば、非線形関数を備え、フィードバックシフトレジスタが非線形フィードバックシフトレジスタである。つまり、線形フィードバックシフトレジスタの場合よりも構成等が複雑になるが、非線形フィードバックシフトレジスタを用いてもメッセージ認証子を生成することができる。
【００１６】
（５）本発明は、（１）の認証付きストリーム暗号の暗号化装置について、前記フィードバックシフトレジスタがワード単位である場合に出力データに係数を乗じることを特徴とする認証付きストリーム暗号の暗号化装置を提案している。
【００１７】
この発明によれば、フィードバックシフトレジスタがワード単位である場合に出力データに係数を乗じる。これにより、ビット単位の処理を行うことができる。
【００１８】
（６）本発明は、認証付きストリーム暗号を復号する認証付きストリーム暗号の復号化装置であって、前記認証付きストリーム暗号を受信する受信手段（例えば、図３の受信部１１０に相当）と、前記受信した認証付きストリーム暗号から、暗号文を分離する分離手段（例えば、図３の分離部１２０に相当）と、鍵系列を生成する鍵系列生成手段（例えば、図３の鍵系列生成部２０に相当）と、該生成した鍵系列を２つに分割する分割手段（例えば、図３の鍵系列分割部３０に相当）と、該分割した一方の鍵系列と暗号文との排他的論理和演算を行って平文を生成する第１のＸＯＲ演算器（例えば、図３の第１のＸＯＲ演算器４０に相当）と、メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタ（例えば、図３のフィードバックシフトレジスタ５０に相当）と、該フィードバックシフトレジスタのうち、任意の２つのレジスタの排他的論理和演算を行う第２のＸＯＲ演算器（例えば、図３の第２のＸＯＲ演算器６０に相当）と、該第２のＸＯＲ演算器の出力データと平文と他方の鍵系列との排他的論理和演算を行い出力データを前記フィードバックシフトレジスタに出力する第３のＸＯＲ演算器（例えば、図３の第３のＸＯＲ演算器１００に相当）と、を備えたことを特徴とする認証付きストリーム暗号の復号化装置を提案している。
【００１９】
この発明によれば、受信手段は、認証付きストリーム暗号を受信する。分離手段は、受信した認証付きストリーム暗号から、暗号文を分離する。鍵系列生成手段は、鍵系列を生成する。分割手段は、生成した鍵系列を２つに分割する。第１のＸＯＲ演算器は、分割した一方の鍵系列と暗号文との排他的論理和演算を行って平文を生成する。フィードバックシフトレジスタは、メッセージ認証子を作成するためのメモリである。第２のＸＯＲ演算器は、フィードバックシフトレジスタのうち、任意の２つのレジスタの排他的論理和演算を行う。第３のＸＯＲ演算器は、第２のＸＯＲ演算器の出力データと平文と他方の鍵系列との排他的論理和演算を行い出力データをフィードバックシフトレジスタに出力する。したがって、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号を復号することができる。
【００２０】
（７）本発明は、（６）の認証付きストリーム暗号の復号化装置について、前記平文の入力が終了した後に、固定のビット列を入力して、前記フィードバックシフトレジスタを空回しすることを特徴とする認証付きストリーム暗号の復号化装置を提案している。
【００２１】
この発明によれば、平文の入力が終了した後に、固定のビット列を入力して、フィードバックシフトレジスタを空回しする。これにより、安全性を高めることができる。
【００２２】
（８）本発明は、（６）の認証付きストリーム暗号の復号化装置について、前記フィードバックシフトレジスタが線形フィードバックシフトレジスタであることを特徴とする認証付きストリーム暗号の復号化装置を提案している。
【００２３】
この発明によれば、フィードバックシフトレジスタが線形フィードバックシフトレジスタである。したがって、簡易な構成と演算でメッセージ認証子を生成することができる。
【００２４】
（９）本発明は、（６）の認証付きストリーム暗号の復号化装置について、非線形関数を備え、前記フィードバックシフトレジスタが非線形フィードバックシフトレジスタであることを特徴とする認証付きストリーム暗号の復号化装置を提案している。
【００２５】
この発明によれば、非線形関数を備え、フィードバックシフトレジスタが非線形フィードバックシフトレジスタである。つまり、線形フィードバックシフトレジスタの場合よりも構成等が複雑になるが、非線形フィードバックシフトレジスタを用いてもメッセージ認証子を生成することができる。
【００２６】
（１０）本発明は、（６）の認証付きストリーム暗号の復号化装置について、前記フィードバックシフトレジスタがワード単位である場合に出力データに係数を乗じることを特徴とする認証付きストリーム暗号の復号化装置を提案している。
【００２７】
この発明によれば、フィードバックシフトレジスタがワード単位である場合に出力データに係数を乗じる。これにより、ビット単位の処理を行うことができる。
【００２８】
（１１）本発明は、認証付きストリーム暗号の暗号化装置における暗号化方法であって、初期鍵と初期ベクトルを読み込む第１のステップ（例えば、図２のステップＳ１０１に相当）と、初期化処理を実施する第２のステップ（例えば、図２のステップＳ１０２に相当）と、鍵系列生成処理を実行し、鍵系列を生成する第３のステップ（例えば、図２のステップＳ１０３に相当）と、該生成した鍵系列を２分割する第４のステップ（例えば、図２のステップＳ１０４に相当）と、該分割した一方の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第５のステップ（例えば、図２のステップＳ１０５に相当）と、メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の２つのレジスタの排他的論理和演算を行ったデータと前記分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、前記フィードバックシフトレジスタに入力する第６のステップ（例えば、図２のステップＳ１０６に相当）と、平文の入力終了後に、固定のビット列を入力して前記フィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する第７のステップ（例えば、図２のステップＳ１０７に相当）と、該メッセージ認証子と前記生成した暗号文とを結合する第８のステップ（例えば、図２のステップＳ１０８に相当）と、該結合した前記メッセージ認証子と前記生成した暗号文とを送信する第９のステップ（例えば、図２のステップＳ１０９に相当）と、を備えたことを特徴とする暗号化方法を提案している。
【００２９】
この発明によれば、初期鍵と初期ベクトルを読み込み、初期化処理を実施する。次に、鍵系列生成処理を実行し、鍵系列を生成する。生成した鍵系列を２分割し、分割した一方の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する。メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の２つのレジスタの排他的論理和演算を行ったデータと分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、フィードバックシフトレジスタに入力する。平文の入力終了後に、固定のビット列を入力してフィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する。そして、メッセージ認証子と生成した暗号文とを結合し、結合したメッセージ認証子と生成した暗号文とを送信する。したがって、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号を生成することができる。
【００３０】
（１２）本発明は、認証付きストリーム暗号の復号化装置における復号化方法であって、前記認証付きストリーム暗号を受信する第１のステップ（例えば、図４のステップＳ２０１に相当）と、前記受信した認証付きストリーム暗号から、暗号文を分離する第２のステップ（例えば、図４のステップＳ２０２に相当）と、初期鍵と初期ベクトルを読み込む第３のステップ（例えば、図４のステップＳ２０３に相当）と、初期化処理を実施する第４のステップ（例えば、図４のステップＳ２０４に相当）と、鍵系列生成処理を実行し、鍵系列を生成する第５のステップ（例えば、図４のステップＳ２０５に相当）と、該生成した鍵系列を２分割する第６のステップ（例えば、図４のステップＳ２０６に相当）と、該分割した一方の鍵系列と暗号文との排他的論理和演算を行い、平文を出力する第７のステップ（例えば、図４のステップＳ２０７に相当）と、メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の２つのレジスタの排他的論理和演算を行ったデータと前記分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、前記フィードバックシフトレジスタに入力する第８のステップ（例えば、図４のステップＳ２０８に相当）と、平文の入力終了後に、固定のビット列を入力して前記フィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する第９のステップ（例えば、図４のステップＳ２０９に相当）と、該出力したメッセージ認証子と前記分離したメッセージ認証子が一致するか否かを検証する第１０のステップ（例えば、図４のステップＳ２１０に相当）と、を備えたことを特徴とする復号化方法を提案している。
【００３１】
この発明によれば、認証付きストリーム暗号を受信し、受信した認証付きストリーム暗号から、暗号文を分離する。次に、初期鍵と初期ベクトルを読み込み、初期化処理を実施する。さらに、鍵系列生成処理を実行し、鍵系列を生成する。生成した鍵系列を２分割し、分割した一方の鍵系列と暗号文との排他的論理和演算を行い、平文を出力する。メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の２つのレジスタの排他的論理和演算を行ったデータと分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、フィードバックシフトレジスタに入力する。平文の入力終了後に、固定のビット列を入力してフィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する。そして、出力したメッセージ認証子と分離したメッセージ認証子が一致するか否かを検証する。したがって、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号を復号することができ、メッセージ認証子を確認することにより認証も行うことができる。
【００３２】
（１３）本発明は、認証付きストリーム暗号の暗号化装置における暗号化方法を実行するためのプログラムであって、初期鍵と初期ベクトルを読み込む第１のステップ（例えば、図２のステップＳ１０１に相当）と、初期化処理を実施する第２のステップ（例えば、図２のステップＳ１０２に相当）と、鍵系列生成処理を実行し、鍵系列を生成する第３のステップ（例えば、図２のステップＳ１０３に相当）と、該生成した鍵系列を２分割する第４のステップ（例えば、図２のステップＳ１０４に相当）と、該分割した一方の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第５のステップ（例えば、図２のステップＳ１０５に相当）と、メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の２つのレジスタの排他的論理和演算を行ったデータと前記分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、前記フィードバックシフトレジスタに入力する第６のステップ（例えば、図２のステップＳ１０６に相当）と、平文の入力終了後に、固定のビット列を入力して前記フィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する第７のステップ（例えば、図２のステップＳ１０７に相当）と、該メッセージ認証子と前記生成した暗号文とを結合する第８のステップ（例えば、図２のステップＳ１０８に相当）と、該結合した前記メッセージ認証子と前記生成した暗号文とを送信する第９のステップ（例えば、図２のステップＳ１０９に相当）と、を実行するためのプログラムを提案している。
【００３３】
この発明によれば、初期鍵と初期ベクトルを読み込み、初期化処理を実施する。次に、鍵系列生成処理を実行し、鍵系列を生成する。生成した鍵系列を２分割し、分割した一方の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する。メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の２つのレジスタの排他的論理和演算を行ったデータと分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、フィードバックシフトレジスタに入力する。平文の入力終了後に、固定のビット列を入力してフィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する。そして、メッセージ認証子と生成した暗号文とを結合し、結合したメッセージ認証子と生成した暗号文とを送信する。したがって、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号を生成することができる。
【００３４】
（１４）本発明は、認証付きストリーム暗号の復号化装置における復号化方法を実行するためのプログラムであって、前記認証付きストリーム暗号を受信する第１のステップ（例えば、図４のステップＳ２０１に相当）と、前記受信した認証付きストリーム暗号から、暗号文を分離する第２のステップ（例えば、図４のステップＳ２０２に相当）と、初期鍵と初期ベクトルを読み込む第３のステップ（例えば、図４のステップＳ２０３に相当）と、初期化処理を実施する第４のステップ（例えば、図４のステップＳ２０４に相当）と、鍵系列生成処理を実行し、鍵系列を生成する第５のステップ（例えば、図４のステップＳ２０５に相当）と、該生成した鍵系列を２分割する第６のステップ（例えば、図４のステップＳ２０６に相当）と、該分割した一方の鍵系列と暗号文との排他的論理和演算を行い、平文を出力する第７のステップ（例えば、図４のステップＳ１０７に相当）と、メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の２つのレジスタの排他的論理和演算を行ったデータと前記分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、前記フィードバックシフトレジスタに入力する第８のステップ（例えば、図４のステップＳ２０８に相当）と、平文の入力終了後に、固定のビット列を入力して前記フィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する第９のステップ（例えば、図４のステップＳ２０９に相当）と、該出力したメッセージ認証子と前記分離したメッセージ認証子が一致するか否かを検証する第１０のステップ（例えば、図４のステップＳ２１０に相当）と、を実行するためのプログラムを提案している。
【００３５】
この発明によれば、認証付きストリーム暗号を受信し、受信した認証付きストリーム暗号から、暗号文を分離する。次に、初期鍵と初期ベクトルを読み込み、初期化処理を実施する。さらに、鍵系列生成処理を実行し、鍵系列を生成する。生成した鍵系列を２分割し、分割した一方の鍵系列と暗号文との排他的論理和演算を行い、平文を出力する。メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の２つのレジスタの排他的論理和演算を行ったデータと分割した他方の鍵系列と暗号文との排他的論理和演算を行い、順次、フィードバックシフトレジスタに入力する。暗号文の入力終了後に、固定のビット列を入力してフィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する。そして、出力したメッセージ認証子と分離したメッセージ認証子が一致するか否かを検証する。したがって、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号を復号することができ、メッセージ認証子を確認することにより認証も行うことができる。
【発明の効果】
【００３６】
本発明によれば、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号を生成することができるという効果がある。また、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号を復号することができ、メッセージ認証子を確認することにより認証も行うことができるという効果がある。
【図面の簡単な説明】
【００３７】
【図１】本実施形態に係る認証付きストリーム暗号の暗号化装置の構成を示す図である。
【図２】本実施形態に係る認証付きストリーム暗号の暗号化装置の処理を示す図である。
【図３】本実施形態に係る認証付きストリーム暗号の復号化装置の構成を示す図である。
【図４】本実施形態に係る認証付きストリーム暗号の復号化装置の処理を示す図である。
【発明を実施するための形態】
【００３８】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【００３９】
＜認証付きストリーム暗号の暗号化装置の構成＞
本実施形態に係る認証付きストリーム暗号の暗号化装置は、図１に示すように、初期化処理部１０と、鍵系列生成部２０と、鍵系列分割部３０と、第１のＸＯＲ演算器４０と、フィードバックシフトレジスタ５０と、第２のＸＯＲ演算器６０と、第３のＸＯＲ演算器７０と、結合部８０と、送信部９０とから構成されている。
【００４０】
初期化処理部１０は、初期鍵と初期ベクトルを読み込んで初期化処理を行う。鍵系列生成部２０は、鍵系列生成処理を実行して鍵系列を生成する。鍵系列分割部３０は、生成した鍵系列を２つに分割する。ここで、一方は、暗号化用に、もう一方は、メッセージ認証子作成用に用いられる。
【００４１】
第１のＸＯＲ演算器４０は、分割した一方の鍵系列と平文との排他的論理和演算を行って暗号文を生成する。フィードバックシフトレジスタ５０は、メッセージ認証子を作成するためのメモリであり、線形フィードバックシフトレジスタであっても、非線形フィードバックシフトレジスタであってもよい。また、フィードバックシフトレジスタ５０は、メッセージ認証子と同じ長さを持ち、フィードバックシフトレジスタ５０がワード単位となる場合は、係数αを乗じることで、ビット単位のフィードバックシフトレジスタを構成することができる。
【００４２】
第２のＸＯＲ演算器６０は、フィードバックシフトレジスタ５０のうち、任意の２つのレジスタの排他的論理和演算を行う。第３のＸＯＲ演算器７０は、第２のＸＯＲ演算器６０の出力データと平文と他方の鍵系列との排他的論理和演算を行い、出力データをフィードバックシフトレジスタ５０に出力する。
【００４３】
結合部８０は、フィードバックシフトレジスタ５０から出力されるメッセージ認証子と生成した暗号文とを結合させる。送信部９０は、結合された認証付きストリーム暗号を復号化装置に送信する。
【００４４】
＜認証付きストリーム暗号の暗号化装置の処理＞
図２を用いて、本実施形態に係る認証付きストリーム暗号の暗号化装置の処理について説明する。
【００４５】
まず、初期化処理部１０は、初期鍵と初期ベクトルを読み込み（ステップＳ１０１）、初期化処理を実施する（ステップＳ１０２）。鍵系列生成部２０は、鍵系列生成処理を実行し、鍵系列を生成する（ステップＳ１０３）。そして、鍵系列分割部３０は、生成した鍵系列を２分割する（ステップＳ１０４）。
【００４６】
第１のＸＯＲ演算器４０は、分割した一方の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する（ステップＳ１０５）。また、第３のＸＯＲ演算器７０は、メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタ５０のうち、任意の２つのレジスタの排他的論理和演算を行ったデータと分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、フィードバックシフトレジスタ５０に入力する（ステップＳ１０６）。
【００４７】
平文の入力終了後に、固定のビット列を入力してフィードバックシフトレジスタ５０の空回しを行ってメッセージ認証子を出力する（ステップＳ１０７）。そして、結合部８０がメッセージ認証子と生成した暗号文とを結合し（ステップＳ１０８）、送信部９０が結合したメッセージ認証子と生成した暗号文とを送信する（ステップＳ１０９）。
【００４８】
したがって、以上より、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号を生成することができる。
【００４９】
＜認証付きストリーム暗号の復号化装置の構成＞
本実施形態に係る認証付きストリーム暗号の復号化装置は、図３に示すように、初期化処理部１０と、鍵系列生成部２０と、鍵系列分割部３０と、第１のＸＯＲ演算器４０と、フィードバックシフトレジスタ５０と、第２のＸＯＲ演算器６０と、第３のＸＯＲ演算器１００と、受信部１１０と、分離部１２０と、検証部１３０とから構成されている。なお、上記の認証付きストリーム暗号の暗号化装置と同一の符号を付す構成要素については、同一の機能を有するため、その詳細な説明は、省略する。
【００５０】
第３のＸＯＲ演算器１００は、第２のＸＯＲ演算器６０の出力データと平文と他方の鍵系列との排他的論理和演算を行い、出力データをフィードバックシフトレジスタ５０に出力する。受信部１１０は、認証付きストリーム暗号の暗号化装置から認証付きストリーム暗号を受信する。
【００５１】
分離部１２０は、受信した認証付きストリーム暗号を暗号文とメッセージ認証子に分離する。検証部１３０は、フィードバックシフトレジスタ５０から出力されるメッセージ認証子と、分離して得られたメッセージ認証子とを比較して、一致するか否かを検証する。
【００５２】
＜認証付きストリーム暗号の復号化装置の処理＞
図４を用いて、本実施形態に係る認証付きストリーム暗号の復号化装置の処理について説明する。
【００５３】
まず、受信部１１０は、認証付きストリーム暗号を受信し（ステップＳ２０１）、分離部１２０が受信した認証付きストリーム暗号から、暗号文を分離する（ステップＳ２０２）。次に、初期化処理部１０は、初期鍵と初期ベクトルを読み込み（ステップＳ２０３）、初期化処理を実施する（ステップＳ２０４）。鍵系列生成部２０は、鍵系列生成処理を実行し、鍵系列を生成する（ステップＳ２０５）。そして、鍵系列分割部３０は、生成した鍵系列を２分割する（ステップＳ２０６）。
【００５４】
第１のＸＯＲ演算器４０は、分割した一方の鍵系列と暗号文との排他的論理和演算を行い、平文を出力する（ステップＳ２０７）。また、第３のＸＯＲ演算器１００は、メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタ５０のうち、任意の２つのレジスタの排他的論理和演算を行ったデータと分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、フィードバックシフトレジスタ５０に入力する（ステップＳ２０８）。
【００５５】
平文の入力終了後に、固定のビット列を入力してフィードバックシフトレジスタ５０の空回しを行ってメッセージ認証子を出力する（ステップＳ２０９）。そして、出力したメッセージ認証子と分離したメッセージ認証子とが一致するか否かを検証部１３０が検証する（ステップＳ２１０）。
【００５６】
したがって、以上より、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号を復号することができ、メッセージ認証子を確認することにより認証も行うことができる。
【００５７】
なお、認証付きストリーム暗号の暗号化装置および認証付きストリーム暗号の復号化装置の処理をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを認証付きストリーム暗号の暗号化装置および認証付きストリーム暗号の復号化装置に読み込ませ、実行することによって本発明の認証付きストリーム暗号の暗号化装置および認証付きストリーム暗号の復号化装置を実現することができる。ここでいうコンピュータシステムとは、ＯＳや周辺装置等のハードウェアを含む。
【００５８】
また、「コンピュータシステム」は、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されても良い。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００５９】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００６０】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００６１】
１０；初期化処理部
２０；鍵系列生成部
３０；鍵系列分割部
４０；第１のＸＯＲ演算器
５０；フィードバックシフトレジスタ
６０；第２のＸＯＲ演算器
７０；第３のＸＯＲ演算器
８０；結合部
９０；送信部
１００；第３のＸＯＲ演算器
１１０；受信部
１２０；分離部
１３０；検証部
【図１】
0005431190.tif 000002
【図２】
0005431190.tif 000003
【図３】
0005431190.tif 000004
【図４】
0005431190.tif 000005