説明

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

【課題】ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号へと拡張する。
【解決手段】初期化処理を実施する。次に、鍵系列を生成する。生成した鍵系列を2分割し、分割した一方の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する。フィードバックシフトレジスタのうち、任意の2つのレジスタの排他的論理和演算を行ったデータと分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、フィードバックシフトレジスタに入力する。平文の入力終了後に、固定のビット列を入力してフィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する。そして、メッセージ認証子と生成した暗号文とを結合し、結合したメッセージ認証子と生成した暗号文とを送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号へと拡張する認証付きストリーム暗号の暗号化装置、認証付きストリーム暗号の復号化装置、暗号化方法、復号化方法およびプログラムに関する。
【背景技術】
【0002】
近年、コンピュータを利用した様々なサービスが提供されている。多くのサービスに置いては、通信の秘匿を実現するため、暗号が利用される。暗号方式として最も一般的なものは、1つの鍵で暗号化・復号化を行う共通鍵暗号方式であるが、共通鍵暗号方式は、大きくブロック暗号方式とストリーム暗号方式の2つに分けられる。
【0003】
前者は、最も一般的に用いられている方式であるが、後者の方が処理速度に優れるため、近年注目を集めつつある。一方、認証付き暗号という方式がある。これは、1つのアルゴリズムでメッセージ認証と暗号化を同時に実現しようとするアルゴリズムである(例えば、非特許文献1参照。)。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Philip Hawkes、Cameron McDonald、Michael Paddon、Gregory G. Rose and Miriam Wiggers de Vries, “Specification for NLSv2 、” New Stream Cipher Designs、LNCS、Vol.4986、2008.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来は、ストリーム暗号を認証付き暗号にするためには、アルゴリズムの再設計が必要であったり、または、設計の段階から認証機能の組み込みを考慮する必要があった。さらには、認証付きストリーム暗号のほとんどすべてが攻撃により破られているという事実もあり、安全な認証付きストリーム暗号はほとんど無いという状況である。
【0006】
そこで、本発明は、上述の課題に鑑みてなされたものであり、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号へと拡張する認証付きストリーム暗号の暗号化装置、認証付きストリーム暗号の復号化装置、暗号化方法、復号化方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
【0008】
(1)本発明は、認証付きストリーム暗号の暗号化装置であって、鍵系列を生成する鍵系列生成手段(例えば、図1の鍵系列生成部20に相当)と、該生成した鍵系列を2つに分割する分割手段(例えば、図1の鍵系列分割部30に相当)と、該分割した一方の鍵系列と平文との排他的論理和演算を行って暗号文を生成する第1のXOR演算器(例えば、図1の第1のXOR演算器40に相当)と、メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタ(例えば、図1のフィードバックシフトレジスタ50に相当)と、該フィードバックシフトレジスタのうち、任意の2つのレジスタの排他的論理和演算を行う第2のXOR演算器(例えば、図1の第2のXOR演算器60に相当)と、該第2のXOR演算器の出力データと平文と他方の鍵系列との排他的論理和演算を行い出力データを前記フィードバックシフトレジスタに出力する第3のXOR演算器と(例えば、図1の第3のXOR演算器70に相当)、前記フィードバックシフトレジスタから出力されるメッセージ認証子と前記生成した暗号文とを結合させる結合手段(例えば、図1の結合部80に相当)と、該結合された認証付きストリーム暗号を送信する送信手段(例えば、図1の送信部90に相当)と、を備えたことを特徴とする認証付きストリーム暗号の暗号化装置を提案している。
【0009】
この発明によれば、鍵系列生成手段は、鍵系列を生成する。分割手段は、生成した鍵系列を2つに分割する。第1のXOR演算器は、分割した一方の鍵系列と平文との排他的論理和演算を行って暗号文を生成する。フィードバックシフトレジスタは、メッセージ認証子を作成するためのメモリである。第2のXOR演算器は、フィードバックシフトレジスタのうち、任意の2つのレジスタの排他的論理和演算を行う。第3のXOR演算器は、第2のXOR演算器の出力データと平文と他方の鍵系列との排他的論理和演算を行い出力データをフィードバックシフトレジスタに出力する。結合手段は、フィードバックシフトレジスタから出力されるメッセージ認証子と生成した暗号文とを結合させる。送信手段は、結合された認証付きストリーム暗号を送信する。したがって、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号を生成することができる。
【0010】
(2)本発明は、(1)の認証付きストリーム暗号の暗号化装置について、前記平文の入力が終了した後に、固定のビット列を入力して、前記フィードバックシフトレジスタを空回しすることを特徴とする認証付きストリーム暗号の暗号化装置を提案している。
【0011】
この発明によれば、平文の入力が終了した後に、固定のビット列を入力して、フィードバックシフトレジスタを空回しする。これにより、安全性を高めることができる。
【0012】
(3)本発明は、(1)の認証付きストリーム暗号の暗号化装置について、前記フィードバックシフトレジスタが線形フィードバックシフトレジスタであることを特徴とする認証付きストリーム暗号の暗号化装置を提案している。
【0013】
この発明によれば、フィードバックシフトレジスタが線形フィードバックシフトレジスタである。したがって、簡易な構成と演算でメッセージ認証子を生成することができる。
【0014】
(4)本発明は、(1)の認証付きストリーム暗号の暗号化装置について、非線形関数を備え、前記フィードバックシフトレジスタが非線形フィードバックシフトレジスタであることを特徴とする認証付きストリーム暗号の暗号化装置を提案している。
【0015】
この発明によれば、非線形関数を備え、フィードバックシフトレジスタが非線形フィードバックシフトレジスタである。つまり、線形フィードバックシフトレジスタの場合よりも構成等が複雑になるが、非線形フィードバックシフトレジスタを用いてもメッセージ認証子を生成することができる。
【0016】
(5)本発明は、(1)の認証付きストリーム暗号の暗号化装置について、前記フィードバックシフトレジスタがワード単位である場合に出力データに係数を乗じることを特徴とする認証付きストリーム暗号の暗号化装置を提案している。
【0017】
この発明によれば、フィードバックシフトレジスタがワード単位である場合に出力データに係数を乗じる。これにより、ビット単位の処理を行うことができる。
【0018】
(6)本発明は、認証付きストリーム暗号を復号する認証付きストリーム暗号の復号化装置であって、前記認証付きストリーム暗号を受信する受信手段(例えば、図3の受信部110に相当)と、前記受信した認証付きストリーム暗号から、暗号文を分離する分離手段(例えば、図3の分離部120に相当)と、鍵系列を生成する鍵系列生成手段(例えば、図3の鍵系列生成部20に相当)と、該生成した鍵系列を2つに分割する分割手段(例えば、図3の鍵系列分割部30に相当)と、該分割した一方の鍵系列と暗号文との排他的論理和演算を行って平文を生成する第1のXOR演算器(例えば、図3の第1のXOR演算器40に相当)と、メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタ(例えば、図3のフィードバックシフトレジスタ50に相当)と、該フィードバックシフトレジスタのうち、任意の2つのレジスタの排他的論理和演算を行う第2のXOR演算器(例えば、図3の第2のXOR演算器60に相当)と、該第2のXOR演算器の出力データと平文と他方の鍵系列との排他的論理和演算を行い出力データを前記フィードバックシフトレジスタに出力する第3のXOR演算器(例えば、図3の第3のXOR演算器100に相当)と、を備えたことを特徴とする認証付きストリーム暗号の復号化装置を提案している。
【0019】
この発明によれば、受信手段は、認証付きストリーム暗号を受信する。分離手段は、受信した認証付きストリーム暗号から、暗号文を分離する。鍵系列生成手段は、鍵系列を生成する。分割手段は、生成した鍵系列を2つに分割する。第1のXOR演算器は、分割した一方の鍵系列と暗号文との排他的論理和演算を行って平文を生成する。フィードバックシフトレジスタは、メッセージ認証子を作成するためのメモリである。第2のXOR演算器は、フィードバックシフトレジスタのうち、任意の2つのレジスタの排他的論理和演算を行う。第3のXOR演算器は、第2のXOR演算器の出力データと平文と他方の鍵系列との排他的論理和演算を行い出力データをフィードバックシフトレジスタに出力する。したがって、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号を復号することができる。
【0020】
(7)本発明は、(6)の認証付きストリーム暗号の復号化装置について、前記平文の入力が終了した後に、固定のビット列を入力して、前記フィードバックシフトレジスタを空回しすることを特徴とする認証付きストリーム暗号の復号化装置を提案している。
【0021】
この発明によれば、平文の入力が終了した後に、固定のビット列を入力して、フィードバックシフトレジスタを空回しする。これにより、安全性を高めることができる。
【0022】
(8)本発明は、(6)の認証付きストリーム暗号の復号化装置について、前記フィードバックシフトレジスタが線形フィードバックシフトレジスタであることを特徴とする認証付きストリーム暗号の復号化装置を提案している。
【0023】
この発明によれば、フィードバックシフトレジスタが線形フィードバックシフトレジスタである。したがって、簡易な構成と演算でメッセージ認証子を生成することができる。
【0024】
(9)本発明は、(6)の認証付きストリーム暗号の復号化装置について、非線形関数を備え、前記フィードバックシフトレジスタが非線形フィードバックシフトレジスタであることを特徴とする認証付きストリーム暗号の復号化装置を提案している。
【0025】
この発明によれば、非線形関数を備え、フィードバックシフトレジスタが非線形フィードバックシフトレジスタである。つまり、線形フィードバックシフトレジスタの場合よりも構成等が複雑になるが、非線形フィードバックシフトレジスタを用いてもメッセージ認証子を生成することができる。
【0026】
(10)本発明は、(6)の認証付きストリーム暗号の復号化装置について、前記フィードバックシフトレジスタがワード単位である場合に出力データに係数を乗じることを特徴とする認証付きストリーム暗号の復号化装置を提案している。
【0027】
この発明によれば、フィードバックシフトレジスタがワード単位である場合に出力データに係数を乗じる。これにより、ビット単位の処理を行うことができる。
【0028】
(11)本発明は、認証付きストリーム暗号の暗号化装置における暗号化方法であって、初期鍵と初期ベクトルを読み込む第1のステップ(例えば、図2のステップS101に相当)と、初期化処理を実施する第2のステップ(例えば、図2のステップS102に相当)と、鍵系列生成処理を実行し、鍵系列を生成する第3のステップ(例えば、図2のステップS103に相当)と、該生成した鍵系列を2分割する第4のステップ(例えば、図2のステップS104に相当)と、該分割した一方の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第5のステップ(例えば、図2のステップS105に相当)と、メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の2つのレジスタの排他的論理和演算を行ったデータと前記分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、前記フィードバックシフトレジスタに入力する第6のステップ(例えば、図2のステップS106に相当)と、平文の入力終了後に、固定のビット列を入力して前記フィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する第7のステップ(例えば、図2のステップS107に相当)と、該メッセージ認証子と前記生成した暗号文とを結合する第8のステップ(例えば、図2のステップS108に相当)と、該結合した前記メッセージ認証子と前記生成した暗号文とを送信する第9のステップ(例えば、図2のステップS109に相当)と、を備えたことを特徴とする暗号化方法を提案している。
【0029】
この発明によれば、初期鍵と初期ベクトルを読み込み、初期化処理を実施する。次に、鍵系列生成処理を実行し、鍵系列を生成する。生成した鍵系列を2分割し、分割した一方の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する。メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の2つのレジスタの排他的論理和演算を行ったデータと分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、フィードバックシフトレジスタに入力する。平文の入力終了後に、固定のビット列を入力してフィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する。そして、メッセージ認証子と生成した暗号文とを結合し、結合したメッセージ認証子と生成した暗号文とを送信する。したがって、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号を生成することができる。
【0030】
(12)本発明は、認証付きストリーム暗号の復号化装置における復号化方法であって、前記認証付きストリーム暗号を受信する第1のステップ(例えば、図4のステップS201に相当)と、前記受信した認証付きストリーム暗号から、暗号文を分離する第2のステップ(例えば、図4のステップS202に相当)と、初期鍵と初期ベクトルを読み込む第3のステップ(例えば、図4のステップS203に相当)と、初期化処理を実施する第4のステップ(例えば、図4のステップS204に相当)と、鍵系列生成処理を実行し、鍵系列を生成する第5のステップ(例えば、図4のステップS205に相当)と、該生成した鍵系列を2分割する第6のステップ(例えば、図4のステップS206に相当)と、該分割した一方の鍵系列と暗号文との排他的論理和演算を行い、平文を出力する第7のステップ(例えば、図4のステップS207に相当)と、メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の2つのレジスタの排他的論理和演算を行ったデータと前記分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、前記フィードバックシフトレジスタに入力する第8のステップ(例えば、図4のステップS208に相当)と、平文の入力終了後に、固定のビット列を入力して前記フィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する第9のステップ(例えば、図4のステップS209に相当)と、該出力したメッセージ認証子と前記分離したメッセージ認証子が一致するか否かを検証する第10のステップ(例えば、図4のステップS210に相当)と、を備えたことを特徴とする復号化方法を提案している。
【0031】
この発明によれば、認証付きストリーム暗号を受信し、受信した認証付きストリーム暗号から、暗号文を分離する。次に、初期鍵と初期ベクトルを読み込み、初期化処理を実施する。さらに、鍵系列生成処理を実行し、鍵系列を生成する。生成した鍵系列を2分割し、分割した一方の鍵系列と暗号文との排他的論理和演算を行い、平文を出力する。メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の2つのレジスタの排他的論理和演算を行ったデータと分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、フィードバックシフトレジスタに入力する。平文の入力終了後に、固定のビット列を入力してフィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する。そして、出力したメッセージ認証子と分離したメッセージ認証子が一致するか否かを検証する。したがって、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号を復号することができ、メッセージ認証子を確認することにより認証も行うことができる。
【0032】
(13)本発明は、認証付きストリーム暗号の暗号化装置における暗号化方法を実行するためのプログラムであって、初期鍵と初期ベクトルを読み込む第1のステップ(例えば、図2のステップS101に相当)と、初期化処理を実施する第2のステップ(例えば、図2のステップS102に相当)と、鍵系列生成処理を実行し、鍵系列を生成する第3のステップ(例えば、図2のステップS103に相当)と、該生成した鍵系列を2分割する第4のステップ(例えば、図2のステップS104に相当)と、該分割した一方の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第5のステップ(例えば、図2のステップS105に相当)と、メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の2つのレジスタの排他的論理和演算を行ったデータと前記分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、前記フィードバックシフトレジスタに入力する第6のステップ(例えば、図2のステップS106に相当)と、平文の入力終了後に、固定のビット列を入力して前記フィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する第7のステップ(例えば、図2のステップS107に相当)と、該メッセージ認証子と前記生成した暗号文とを結合する第8のステップ(例えば、図2のステップS108に相当)と、該結合した前記メッセージ認証子と前記生成した暗号文とを送信する第9のステップ(例えば、図2のステップS109に相当)と、を実行するためのプログラムを提案している。
【0033】
この発明によれば、初期鍵と初期ベクトルを読み込み、初期化処理を実施する。次に、鍵系列生成処理を実行し、鍵系列を生成する。生成した鍵系列を2分割し、分割した一方の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する。メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の2つのレジスタの排他的論理和演算を行ったデータと分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、フィードバックシフトレジスタに入力する。平文の入力終了後に、固定のビット列を入力してフィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する。そして、メッセージ認証子と生成した暗号文とを結合し、結合したメッセージ認証子と生成した暗号文とを送信する。したがって、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号を生成することができる。
【0034】
(14)本発明は、認証付きストリーム暗号の復号化装置における復号化方法を実行するためのプログラムであって、前記認証付きストリーム暗号を受信する第1のステップ(例えば、図4のステップS201に相当)と、前記受信した認証付きストリーム暗号から、暗号文を分離する第2のステップ(例えば、図4のステップS202に相当)と、初期鍵と初期ベクトルを読み込む第3のステップ(例えば、図4のステップS203に相当)と、初期化処理を実施する第4のステップ(例えば、図4のステップS204に相当)と、鍵系列生成処理を実行し、鍵系列を生成する第5のステップ(例えば、図4のステップS205に相当)と、該生成した鍵系列を2分割する第6のステップ(例えば、図4のステップS206に相当)と、該分割した一方の鍵系列と暗号文との排他的論理和演算を行い、平文を出力する第7のステップ(例えば、図4のステップS107に相当)と、メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の2つのレジスタの排他的論理和演算を行ったデータと前記分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、前記フィードバックシフトレジスタに入力する第8のステップ(例えば、図4のステップS208に相当)と、平文の入力終了後に、固定のビット列を入力して前記フィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する第9のステップ(例えば、図4のステップS209に相当)と、該出力したメッセージ認証子と前記分離したメッセージ認証子が一致するか否かを検証する第10のステップ(例えば、図4のステップS210に相当)と、を実行するためのプログラムを提案している。
【0035】
この発明によれば、認証付きストリーム暗号を受信し、受信した認証付きストリーム暗号から、暗号文を分離する。次に、初期鍵と初期ベクトルを読み込み、初期化処理を実施する。さらに、鍵系列生成処理を実行し、鍵系列を生成する。生成した鍵系列を2分割し、分割した一方の鍵系列と暗号文との排他的論理和演算を行い、平文を出力する。メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の2つのレジスタの排他的論理和演算を行ったデータと分割した他方の鍵系列と暗号文との排他的論理和演算を行い、順次、フィードバックシフトレジスタに入力する。暗号文の入力終了後に、固定のビット列を入力してフィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する。そして、出力したメッセージ認証子と分離したメッセージ認証子が一致するか否かを検証する。したがって、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号を復号することができ、メッセージ認証子を確認することにより認証も行うことができる。
【発明の効果】
【0036】
本発明によれば、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号を生成することができるという効果がある。また、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号を復号することができ、メッセージ認証子を確認することにより認証も行うことができるという効果がある。
【図面の簡単な説明】
【0037】
【図1】本実施形態に係る認証付きストリーム暗号の暗号化装置の構成を示す図である。
【図2】本実施形態に係る認証付きストリーム暗号の暗号化装置の処理を示す図である。
【図3】本実施形態に係る認証付きストリーム暗号の復号化装置の構成を示す図である。
【図4】本実施形態に係る認証付きストリーム暗号の復号化装置の処理を示す図である。
【発明を実施するための形態】
【0038】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【0039】
<認証付きストリーム暗号の暗号化装置の構成>
本実施形態に係る認証付きストリーム暗号の暗号化装置は、図1に示すように、初期化処理部10と、鍵系列生成部20と、鍵系列分割部30と、第1のXOR演算器40と、フィードバックシフトレジスタ50と、第2のXOR演算器60と、第3のXOR演算器70と、結合部80と、送信部90とから構成されている。
【0040】
初期化処理部10は、初期鍵と初期ベクトルを読み込んで初期化処理を行う。鍵系列生成部20は、鍵系列生成処理を実行して鍵系列を生成する。鍵系列分割部30は、生成した鍵系列を2つに分割する。ここで、一方は、暗号化用に、もう一方は、メッセージ認証子作成用に用いられる。
【0041】
第1のXOR演算器40は、分割した一方の鍵系列と平文との排他的論理和演算を行って暗号文を生成する。フィードバックシフトレジスタ50は、メッセージ認証子を作成するためのメモリであり、線形フィードバックシフトレジスタであっても、非線形フィードバックシフトレジスタであってもよい。また、フィードバックシフトレジスタ50は、メッセージ認証子と同じ長さを持ち、フィードバックシフトレジスタ50がワード単位となる場合は、係数αを乗じることで、ビット単位のフィードバックシフトレジスタを構成することができる。
【0042】
第2のXOR演算器60は、フィードバックシフトレジスタ50のうち、任意の2つのレジスタの排他的論理和演算を行う。第3のXOR演算器70は、第2のXOR演算器60の出力データと平文と他方の鍵系列との排他的論理和演算を行い、出力データをフィードバックシフトレジスタ50に出力する。
【0043】
結合部80は、フィードバックシフトレジスタ50から出力されるメッセージ認証子と生成した暗号文とを結合させる。送信部90は、結合された認証付きストリーム暗号を復号化装置に送信する。
【0044】
<認証付きストリーム暗号の暗号化装置の処理>
図2を用いて、本実施形態に係る認証付きストリーム暗号の暗号化装置の処理について説明する。
【0045】
まず、初期化処理部10は、初期鍵と初期ベクトルを読み込み(ステップS101)、初期化処理を実施する(ステップS102)。鍵系列生成部20は、鍵系列生成処理を実行し、鍵系列を生成する(ステップS103)。そして、鍵系列分割部30は、生成した鍵系列を2分割する(ステップS104)。
【0046】
第1のXOR演算器40は、分割した一方の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する(ステップS105)。また、第3のXOR演算器70は、メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタ50のうち、任意の2つのレジスタの排他的論理和演算を行ったデータと分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、フィードバックシフトレジスタ50に入力する(ステップS106)。
【0047】
平文の入力終了後に、固定のビット列を入力してフィードバックシフトレジスタ50の空回しを行ってメッセージ認証子を出力する(ステップS107)。そして、結合部80がメッセージ認証子と生成した暗号文とを結合し(ステップS108)、送信部90が結合したメッセージ認証子と生成した暗号文とを送信する(ステップS109)。
【0048】
したがって、以上より、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号を生成することができる。
【0049】
<認証付きストリーム暗号の復号化装置の構成>
本実施形態に係る認証付きストリーム暗号の復号化装置は、図3に示すように、初期化処理部10と、鍵系列生成部20と、鍵系列分割部30と、第1のXOR演算器40と、フィードバックシフトレジスタ50と、第2のXOR演算器60と、第3のXOR演算器100と、受信部110と、分離部120と、検証部130とから構成されている。なお、上記の認証付きストリーム暗号の暗号化装置と同一の符号を付す構成要素については、同一の機能を有するため、その詳細な説明は、省略する。
【0050】
第3のXOR演算器100は、第2のXOR演算器60の出力データと平文と他方の鍵系列との排他的論理和演算を行い、出力データをフィードバックシフトレジスタ50に出力する。受信部110は、認証付きストリーム暗号の暗号化装置から認証付きストリーム暗号を受信する。
【0051】
分離部120は、受信した認証付きストリーム暗号を暗号文とメッセージ認証子に分離する。検証部130は、フィードバックシフトレジスタ50から出力されるメッセージ認証子と、分離して得られたメッセージ認証子とを比較して、一致するか否かを検証する。
【0052】
<認証付きストリーム暗号の復号化装置の処理>
図4を用いて、本実施形態に係る認証付きストリーム暗号の復号化装置の処理について説明する。
【0053】
まず、受信部110は、認証付きストリーム暗号を受信し(ステップS201)、分離部120が受信した認証付きストリーム暗号から、暗号文を分離する(ステップS202)。次に、初期化処理部10は、初期鍵と初期ベクトルを読み込み(ステップS203)、初期化処理を実施する(ステップS204)。鍵系列生成部20は、鍵系列生成処理を実行し、鍵系列を生成する(ステップS205)。そして、鍵系列分割部30は、生成した鍵系列を2分割する(ステップS206)。
【0054】
第1のXOR演算器40は、分割した一方の鍵系列と暗号文との排他的論理和演算を行い、平文を出力する(ステップS207)。また、第3のXOR演算器100は、メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタ50のうち、任意の2つのレジスタの排他的論理和演算を行ったデータと分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、フィードバックシフトレジスタ50に入力する(ステップS208)。
【0055】
平文の入力終了後に、固定のビット列を入力してフィードバックシフトレジスタ50の空回しを行ってメッセージ認証子を出力する(ステップS209)。そして、出力したメッセージ認証子と分離したメッセージ認証子とが一致するか否かを検証部130が検証する(ステップS210)。
【0056】
したがって、以上より、ストリーム暗号アルゴリズム本体の変更を行わずに、認証付きストリーム暗号を復号することができ、メッセージ認証子を確認することにより認証も行うことができる。
【0057】
なお、認証付きストリーム暗号の暗号化装置および認証付きストリーム暗号の復号化装置の処理をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを認証付きストリーム暗号の暗号化装置および認証付きストリーム暗号の復号化装置に読み込ませ、実行することによって本発明の認証付きストリーム暗号の暗号化装置および認証付きストリーム暗号の復号化装置を実現することができる。ここでいうコンピュータシステムとは、OSや周辺装置等のハードウェアを含む。
【0058】
また、「コンピュータシステム」は、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されても良い。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
【0059】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0060】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0061】
10;初期化処理部
20;鍵系列生成部
30;鍵系列分割部
40;第1のXOR演算器
50;フィードバックシフトレジスタ
60;第2のXOR演算器
70;第3のXOR演算器
80;結合部
90;送信部
100;第3のXOR演算器
110;受信部
120;分離部
130;検証部


【特許請求の範囲】
【請求項1】
認証付きストリーム暗号の暗号化装置であって、
鍵系列を生成する鍵系列生成手段と、
該生成した鍵系列を2つに分割する分割手段と、
該分割した一方の鍵系列と平文との排他的論理和演算を行って暗号文を生成する第1のXOR演算器と、
メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタと、
該フィードバックシフトレジスタのうち、任意の2つのレジスタの排他的論理和演算を行う第2のXOR演算器と、
該第2のXOR演算器の出力データと平文と他方の鍵系列との排他的論理和演算を行い出力データを前記フィードバックシフトレジスタに出力する第3のXOR演算器と、
前記フィードバックシフトレジスタから出力されるメッセージ認証子と前記生成した暗号文とを結合させる結合手段と、
該結合された認証付きストリーム暗号を送信する送信手段と、
を備えたことを特徴とする認証付きストリーム暗号の暗号化装置。
【請求項2】
前記平文の入力が終了した後に、固定のビット列を入力して、前記フィードバックシフトレジスタを空回しすることを特徴とする請求項1に記載の認証付きストリーム暗号の暗号化装置。
【請求項3】
前記フィードバックシフトレジスタが線形フィードバックシフトレジスタであることを特徴とする請求項1に記載の認証付きストリーム暗号の暗号化装置。
【請求項4】
非線形関数を備え、前記フィードバックシフトレジスタが非線形フィードバックシフトレジスタであることを特徴とする請求項1に記載の認証付きストリーム暗号の暗号化装置。
【請求項5】
前記フィードバックシフトレジスタがワード単位である場合に出力データに係数を乗じることを特徴とする請求項1に記載の認証付きストリーム暗号の暗号化装置。
【請求項6】
認証付きストリーム暗号を復号する認証付きストリーム暗号の復号化装置であって、
前記認証付きストリーム暗号を受信する受信手段と、
前記受信した認証付きストリーム暗号から、暗号文を分離する分離手段と、
鍵系列を生成する鍵系列生成手段と、
該生成した鍵系列を2つに分割する分割手段と、
該分割した一方の鍵系列と暗号文との排他的論理和演算を行って平文を生成する第1のXOR演算器と、
メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタと、
該フィードバックシフトレジスタのうち、任意の2つのレジスタの排他的論理和演算を行う第2のXOR演算器と、
該第2のXOR演算器の出力データと平文と他方の鍵系列との排他的論理和演算を行い出力データを前記フィードバックシフトレジスタに出力する第3のXOR演算器と、
を備えたことを特徴とする認証付きストリーム暗号の復号化装置。
【請求項7】
前記暗号文の入力が終了した後に、固定のビット列を入力して、前記フィードバックシフトレジスタを空回しすることを特徴とする請求項6に記載の認証付きストリーム暗号の復号化装置。
【請求項8】
前記フィードバックシフトレジスタが線形フィードバックシフトレジスタであることを特徴とする請求項6に記載の認証付きストリーム暗号の復号化装置。
【請求項9】
非線形関数を備え、前記フィードバックシフトレジスタが非線形フィードバックシフトレジスタであることを特徴とする請求項6に記載の認証付きストリーム暗号の復号化装置。
【請求項10】
前記フィードバックシフトレジスタがワード単位である場合に出力データに係数を乗じることを特徴とする請求項6に記載の認証付きストリーム暗号の復号化装置。
【請求項11】
認証付きストリーム暗号の暗号化装置における暗号化方法であって、
初期鍵と初期ベクトルを読み込む第1のステップと、
初期化処理を実施する第2のステップと、
鍵系列生成処理を実行し、鍵系列を生成する第3のステップと、
該生成した鍵系列を2分割する第4のステップと、
該分割した一方の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第5のステップと、
メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の2つのレジスタの排他的論理和演算を行ったデータと前記分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、前記フィードバックシフトレジスタに入力する第6のステップと、
平文の入力終了後に、固定のビット列を入力して前記フィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する第7のステップと、
該メッセージ認証子と前記生成した暗号文とを結合する第8のステップと、
該結合した前記メッセージ認証子と前記生成した暗号文とを送信する第9のステップと、
を備えたことを特徴とする暗号化方法。
【請求項12】
認証付きストリーム暗号の復号化装置における復号化方法であって、
前記認証付きストリーム暗号を受信する第1のステップと、
前記受信した認証付きストリーム暗号から、暗号文を分離する第2のステップと、
初期鍵と初期ベクトルを読み込む第3のステップと、
初期化処理を実施する第4のステップと、
鍵系列生成処理を実行し、鍵系列を生成する第5のステップと、
該生成した鍵系列を2分割する第6のステップと、
該分割した一方の鍵系列と暗号文との排他的論理和演算を行い、平文を出力する第7のステップと、
メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の2つのレジスタの排他的論理和演算を行ったデータと前記分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、前記フィードバックシフトレジスタに入力する第8のステップと、
平文の入力終了後に、固定のビット列を入力して前記フィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する第9のステップと、
該出力したメッセージ認証子と前記分離したメッセージ認証子が一致するか否かを検証する第10のステップと、
を備えたことを特徴とする復号化方法。
【請求項13】
認証付きストリーム暗号の暗号化装置における暗号化方法を実行するためのプログラムであって、
初期鍵と初期ベクトルを読み込む第1のステップと、
初期化処理を実施する第2のステップと、
鍵系列生成処理を実行し、鍵系列を生成する第3のステップと、
該生成した鍵系列を2分割する第4のステップと、
該分割した一方の鍵系列と平文との排他的論理和演算を行い、暗号文を出力する第5のステップと、
メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の2つのレジスタの排他的論理和演算を行ったデータと前記分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、前記フィードバックシフトレジスタに入力する第6のステップと、
平文の入力終了後に、固定のビット列を入力して前記フィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する第7のステップと、
該メッセージ認証子と前記生成した暗号文とを結合する第8のステップと、
該結合した前記メッセージ認証子と前記生成した暗号文とを送信する第9のステップと、
を実行するためのプログラム。
【請求項14】
認証付きストリーム暗号の復号化装置における復号化方法を実行するためのプログラムであって、
前記認証付きストリーム暗号を受信する第1のステップと、
前記受信した認証付きストリーム暗号から、暗号文を分離する第2のステップと、
初期鍵と初期ベクトルを読み込む第3のステップと、
初期化処理を実施する第4のステップと、
鍵系列生成処理を実行し、鍵系列を生成する第5のステップと、
該生成した鍵系列を2分割する第6のステップと、
該分割した一方の鍵系列と暗号文との排他的論理和演算を行い、平文を出力する第7のステップと、
メッセージ認証子を作成するためのメモリであるフィードバックシフトレジスタのうち、任意の2つのレジスタの排他的論理和演算を行ったデータと前記分割した他方の鍵系列と平文との排他的論理和演算を行い、順次、前記フィードバックシフトレジスタに入力する第8のステップと、
平文の入力終了後に、固定のビット列を入力して前記フィードバックシフトレジスタの空回しを行ってメッセージ認証子を出力する第9のステップと、
該出力したメッセージ認証子と前記分離したメッセージ認証子が一致するか否かを検証する第10のステップと、
を実行するためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2011−160228(P2011−160228A)
【公開日】平成23年8月18日(2011.8.18)
【国際特許分類】
【出願番号】特願2010−20674(P2010−20674)
【出願日】平成22年2月1日(2010.2.1)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】