(57)【要約】【課題】   安全で且つ効率的なストリーム暗号（Stream Cipher）を用いて並列演算が可能なメッセージ認証コード（ＭＡＣ；Message Authentication Code）を生成する方法と、メッセージ認証コードをストリーム暗号の初期値（ＩＶ；initialization vector）として使用するストリーム暗号を利用した認証暗号化方法及びストリーム暗号を利用した認証復号化方法を提供する。【解決手段】  本発明は、ストリーム暗号を用いて生成したメッセージ認証コードをストリーム暗号の暗号初期値とする認証暗号化を行うことによって、暗号初期値生成のために別途の乱数発生アルゴリズムを使用する必要がないので、具現のための効率を高めることができる。  また、メッセージ認証コードの生成時、複数のキー数列生成部が複数のメッセージブロックに対して各々演算することによって、複数のメッセージブロックが一回に並列演算されるので、その演算の効率性に優れている。【選択図】  図１
2008122967.tif 000002
【特許請求の範囲】
【請求項１】
メッセージ認証コードを生成する方法であって、
（ａ）入力メッセージＭをｋ個のｎビットメッセージブロックで分ける段階と、
（ｂ）メッセージ認証コード生成用秘密キーＫＭＡＣと、前記段階（ａ）で分けられた前記メッセージブロックの個数ｋに対応する数字の排他的論理和された結果をキーとして前記分けられた各々の入力メッセージを暗号化し、各々の中間計算値を計算する段階と、
（ｃ）前記段階（ｂ）の結果値として算出された各々の中間計算値を排他的論理和する排他的論理和計算段階と、
（ｄ）前記段階（ｃ）の排他的論理和した結果値を前記メッセージ認証コードキー、ＫＭＡＣを用いて前記キー数列生成部で暗号化し、メッセージ認証コードを生成する段階と
を備えてなることを特徴とするストリーム暗号を利用したメッセージ認証コード生成方法。
【請求項２】
前記段階（ｂ）の各々の中間計算値ｈｉは、次の数学式で計算され、
【数１】
2008122967.tif 000009
ここで、入力メッセージを分けたｋ個のｎビットメッセージブロックは、各々ｍ１、ｍ２、…、ｍｋで表示し、これらのうちいずれか１つのメッセージブロックをｍｉで表示し、Ｅｎ（Ｋ、ｍｉ）は、Ｋをキーとし、 各々ｍ１、ｍ２、…、ｍｋ のメッセージを前記キー数列生成部で行う暗号化アルゴリズムを示すことを特徴とする請求項１に記載のストリーム暗号を利用したメッセージ認証コード生成方法。
【請求項３】
前記段階（ｃ）の各々の中間計算値を排他的論理和する排他的論理和計算は、次の数学式で計算され、
【数２】
2008122967.tif 000010
前記ｈは、中間計算値の排他的論理和を示すことを特徴とする請求項２に記載のストリーム暗号を利用したメッセージ認証コード生成方法。
【請求項４】
前記段階（ｄ）のメッセージ認証コードは、次の数学式で表し、
ＭＡＣ（ＫＭＡＣ、Ｍ）＝Ｅｎ（ＫＭＡＣ、ｈ）
ＭＡＣ（ＫＭＡＣ、Ｍ）は、メッセージ認証コードを示すことを特徴とする請求項３に記載のストリーム暗号を利用したメッセージ認証コード生成方法。
【請求項５】
前記段階（ａ）で前記各々のメッセージブロックｍ１、…、ｍｋのブロックの長さがｎの倍数でない場合、前記各々のメッセージブロック ｍ１、…、ｍｋのブロックの長さがｎの倍数になるようにすることを特徴とする請求項１乃至４のいずれかに記載のストリーム暗号を利用したメッセージ認証コード生成方法。
【請求項６】
前記各々のメッセージブロックｍ１、…、ｍｋに１００…０を追加して各々の前記メッセージブロックｍ１、…、ｍｋの長さがｎの倍数になるようにすることを特徴とする請求項５に記載のストリーム暗号を利用したメッセージ認証コード生成方法。
【請求項７】
前記段階（ｂ）の各々の中間計算値を計算する段階は、並列で計算することを特徴とする請求項１乃至４のいずれかに記載のストリーム暗号を利用したメッセージ認証コード生成方法。
【請求項８】
ストリーム暗号を利用した認証暗号化方法であって、
（ａ）平文Ｍとメッセージ認証コード生成用秘密キーＫＭＡＣを入力し、前記平文Ｍに対するメッセージ認証コードＭＡＣ（ＫＭＡＣ、Ｍ）を生成するメッセージ認証コード生成段階と、
（ｂ）前記段階（ａ）で計算されたＭＡＣ（ＫＭＡＣ、Ｍ）をストリーム暗号初期値ＩＶに設定する設定段階と、
（ｃ）前記ストリーム暗号初期値ＩＶである前記メッセージ認証コードＭＡＣ（ＫＭＡＣ、Ｍ）とメッセージ暗号化用秘密キーＫＥＮＣを用いてｎビットのキー数列を生成するキー数列生成段階と、
（ｄ）前記生成されたキー数列と前記平文Ｍを排他的論理和し、暗号文Ｃを生成する暗号文Ｃ生成段階と、
（ｅ）前記暗号文Ｃを出力する出力段階と
を備えてなることを特徴とするストリーム暗号を利用したメッセージ認証コード生成方法。
【請求項９】
認証暗号化されたメッセージ認証コードが付加された認証暗号文を認証復号化する方法であって、
（ａ）ストリーム暗号初期値ＩＶとメッセージ暗号化用秘密キーＫＥＮＣを用いてキー数列を生成する段階と、
（ｂ）前記キー数列を暗号文Ｃと排他的論理和し、平文Ｍを生成する段階と
を備えてなることを特徴とするストリーム暗号を利用した認証復号化方法。
【請求項１０】
（ｃ）前記平文Ｍに対するメッセージ認証コードＭＡＣ（ＫＭＡＣ、Ｍ）を生成する段階と、
（ｄ）前記ＩＶと前記ＭＡＣ（ＫＭＡＣ、Ｍ）が一致すれば、有効な暗号文Ｃとして判定し、前記有効な暗号文Ｃに対する平文Ｍを出力する段階と
をさらに備えてなることを特徴とする請求項９に記載のストリーム暗号を利用した認証復号化方法。
【請求項１１】
前記段階（ｄ）で前記ＩＶと前記ＭＡＣ（ＫＭＡＣ、Ｍ）が一致しないと、エラーメッセージを出力することを特徴とする請求項１０に記載のストリーム暗号を利用した認証復号化方法。
【請求項１２】
前記段階（ｃ）は、前記平文Ｍとメッセージ認証コード生成用秘密キーから前記平文Ｍに対する前記メッセージ認証コードＭＡＣ（ＫＭＡＣ、Ｍ）を生成することを特徴とする請求項１０又は１１に記載のストリーム暗号を利用した認証復号化方法。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリーム暗号（Stream Cipher）を利用したメッセージ認証コード（ＭＡＣ；Message Authentication Code）生成方法、ストリーム暗号を利用した認証暗号化方法、及びストリーム暗号を利用した認証復号化方法に関し、より詳細には、安全で且つ効率的なストリーム暗号を用いて並列演算が可能なメッセージ認証コードを生成する方法、メッセージ認証コードをストリーム暗号の初期値（ＩＶ；initialization vector）として使用するストリーム暗号を利用した認証暗号化方法、及びストリーム暗号を利用した認証復号化方法に関する。
【背景技術】
【０００２】
メッセージ認証コードは、データの無欠性（integrity）を提供するために使われる。データ無欠性とは、データを転送または格納する時、受信されたデータまたは格納されたデータが原本データと同一であるか否かを確認することができる機能をいう。メッセージ認証コードを生成する代表的な方法としては、ハッシュ関数（keyed hash function）を利用したＨＭＡＣとＣＭＡＣなどブロック暗号を利用したメッセージ認証コード生成技法がある。
【０００３】
ストリーム暗号は、ブロック暗号と共に機密性を提供するために多く使われる暗号プリミティブであって、一般的にブロック暗号に比べて軽量ハードウェアの具現が可能であり、ソフトウェアから高速で動作する長所を有している。ストリーム暗号は、暗号化過程では、秘密キーを用いて生成したキー数列とメッセージの排他的論理和（ＸＯＲ；exclusive ＯＲ）で暗号文を生成するので、キー数列を知らないユーザが所望の位置のメッセージを容易に変えることができる。このような特性により、ストリーム暗号は、メッセージ認証コード機能を提供することが難しいものとして見なされてきた。
【０００４】
メッセージ認証コードは、データを入力値として計算される値であって、２つのユーザ間にデータ転送がなされる場合、送信者は、メッセージ認証コードをデータの後部に付加して転送し、受信者は、データからメッセージ認証コードを生成し、転送された値との一致可否を確認するようになる。暗号学的安全性が要求されない分野では、データ無欠性を提供するためにパリティビットやＣＲＣなどのチェックサムとハッシュ値を利用した方式が多く使われる。このような方式は、転送エラーのような単純エラーを確認することができるのに対し、悪意的なユーザによる偽造や変造を防止することができないという短所を有する。この問題を暗号学的に解決するために、事前に共有された秘密キーを有するユーザのみが有効なメッセージ認証コードを生成することができるようにする方式が使われている。
【０００５】
秘密キーを使用する代表的な方式として、キーを使用するハッシュ関数方式と、ブロック暗号を利用する方式を挙げることができる。Ｂｅｌｌａｒｅなどは、１９９６年キーを使用するハッシュ関数方式メッセージ認証コードＨＭＡＣを紹介した（M. Bellare, R. 0 Canetti, H. Krawczyk, Keying hash functions for message authentication, Advances in Cryptology-CRYPTO’96, LNCS 1109, pp. 1-15, Springer-Verlag, 1996.）。ＨＭＡＣでは、メッセージＭが与えられた時、ハッシュ関数Ｈと秘密キーＫを用いてメッセージ認証コードを
【０００６】
【数１】
2008122967.tif 000003
【０００７】
として生成する。ここで、ｏｐａｄとｉｐａｄは、事前に約束された定数を意味する。
【０００８】
ブロック暗号を利用した方式としては、ＣＢＣ運用モードを利用したＣＢＣ−ＭＡＣとＣＭＡＣなどを挙げることができる。ＣＢＣ−ＭＡＣは、以前ブロック暗号文と次のブロック平文を連鎖し、次のブロック暗号文を生成する方式であって、データを暗号化するために多く使われるブロック暗号運用モード方式である。ＣＢＣ−ＭＡＣは、偽造攻撃に対して安全でないことが知られており、これを補完するためにブロック暗号を利用した様々なメッセージ認証コード生成技法が提案された。２００３年ＩｗａｔａとＫｕｒｏｓａｗａは、ＣＢＣ−ＭＡＣの変形であるＯＭＡＣを提案した（T. Iwata, K. Kurosawa, OMAC: one-key CBC-MAC, Advances in Cryptology-FSE 2003, LNCS 2887, pp. 129-153, Springer-Verlag, 2003）。以後ＯＭＡＣは、ＣＭＡＣの名称で米国ＮＩＳＴのブロック暗号運用モード勧告案に含まれた。
【０００９】
ブロック暗号とハッシュ関数に比べてストリーム暗号を利用したメッセージ認証コード生成技法は、多く研究されなかった。ストリーム暗号を利用した技法と関連して、韓国では、Jae-Woo HAN, Dong-Hoon LEEにより初めて提案され、韓国特許（登録番号：０５７８５５０、ストリーム暗号を利用したメッセージ認証コード構成方法）で登録された方法がある。この方式は、ブロック暗号のＣＢＣ−ＭＡＣをストリーム暗号に応用し、ＣＢＣ−ＭＡＣの短所を補完するために２つのキーを使用している。一方、Ｆｅｒｇｕｓｏｎなどは、認証機能を提供するストリーム暗号Ｈｅｌｉｘを提案した（N. Ferguson et al, Helix: fast encryption and authentication in a single cryptographic primitive, Advances in Cryptology-FSE 2003, LNCS 2887, pp. 330-346, Springer-Verlag, 2003）。その後、Ｗｈｉｔｉｎｇなどは、Ｈｅｌｉｘを改善してヨーロッパのストリーム暗号公募事業であるｅＳＴＲＥＡＭにストリーム暗号Ｐｈｅｌｉｘを提案した。
【００１０】
最近、ストリーム暗号の設計動向をｅＳＴＲＥＡＭを通じて考察すれば、全てのストリーム暗号で暗号初期値を使用しており、時間−メモリトレードオフ（ＴＭＴＯ；time-memory trade off）攻撃を考慮して暗号初期値の長さを秘密キー長さ以上にしている。例えば、１２８ビット秘密キーを使用する場合、１２８ビット以上の暗号初期値を使用するように設計している。
【００１１】
前述したJae-Woo HANなどが提案したストリーム暗号を利用したメッセージ認証コード構成方法は、ＣＢＣ−ＭＡＣと同様の安全性欠陥を有しており、連鎖方式でデータを処理するので、並列演算が不可能である。
【００１２】
認証と暗号化を同時に提供する技法を認証暗号化技法と呼び、認証暗号化技法は、ブロック暗号理論分野において主に研究されている。広く知られたブロック暗号の認証暗号化技法としては、Ｒｏｇａｗａｙなどが提案したＯＣＢ運用モードを挙げることができる（P. Rogaway, M. Bellare, J. Black. OCB:A block cipher mode of operation for efficient authenticated encryption, ACM TISSEC 6(3), pp. 365-403, 2003. ）。先に紹介したＰｈｅｌｉｘなど認証機能を提供するストリーム暗号については、研究がなされているが、ブロック暗号の運用モードに該当する研究がストリーム暗号分野では、ほとんどなされていない。
今まで提案された大部分のメッセージ認証コード生成技法は、ハッシュ関数とブロック暗号に基盤している。ブロック暗号は、機密性以外に擬似乱数発生、メッセージ認証など様々な機能を提供するために多く使われていて、ストリーム暗号の立地が以前に比べて低減したと言える。一般的に、ストリーム暗号は、ブロック暗号に比べて低電力、軽量ハードウェア環境と超高速ソフトウェア環境で長所を有するものと知られている。特に、センサネットワーク、ＲＦＩＤなど低電力、軽量環境で暗号機能の要求が増大するにしたがって、ストリーム暗号の役目が大きくなっている。
【００１３】
【特許文献１】韓国特許登録第0578550号明細書
【非特許文献１】FSE 2003, LNCS2887, pp.330-346, 2003
【非特許文献２】ACM TISSEC, 6/3, pp.365-403, 2003
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明は、前述した課題を解決するためになされたもので、その目的は、安全で且つ効率的なストリーム暗号を用いて並列演算が可能なメッセージ認証コードを生成する方法と、メッセージ認証コードをストリーム暗号の初期値として使用するストリーム暗号を利用した認証暗号化方法及びストリーム暗号を利用した認証復号化方法を提供することにある。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、本発明の一態様によれば、メッセージ認証コードが付加されたメッセージ認証コードを生成する方法であって、（ａ）入力メッセージＭをｋ個のｎビットメッセージブロックで分ける段階と、（ｂ）メッセージ認証コード生成用秘密キーＫＭＡＣと、前記段階（ａ）で分けられた前記メッセージのブロックの個数ｋに対応する数字の排他的論理和された結果をキーとして前記分けられた各々の入力メッセージを暗号化し、各々の中間計算値を計算する段階と、（ｃ）前記段階（ｂ）の結果値として算出された各々の中間計算値を排他的論理和する排他的論理和計算段階と、（ｄ）前記段階（ｃ）の排他的論理和した結果値を前記メッセージ認証コードキー、ＫＭＡＣを用いて前記キー数列生成部で暗号化し、メッセージ認証コードを生成する段階とを備えてなることを特徴とするストリーム暗号を利用したメッセージ認証コード生成方法が提供される。
【００１６】
好ましくは、前記段階（ｂ）の各々の中間計算値ｈｉは、メッセージ認証コード生成用秘密キーである時、各々のメッセージブロック ｍ１、…、ｍｋに対して次の数学式
【００１７】
【数２】
2008122967.tif 000004
【００１８】
で計算されることが好ましい。前記段階（ｃ）の各々の中間計算値を加算した中間計算値ｈは、次の数学式
【００１９】
【数３】
2008122967.tif 000005
【００２０】
で計算されることが好ましい。前記段階（ｄ）のメッセージ認証コードは、次の数学式ＭＡＣ（ＫＭＡＣ、Ｍ）＝Ｅｎ（ＫＭＡＣ、ｈ）で表すことが好ましい。
【００２１】
前記メッセージブロックｍ１、…、ｍｋのうち各々のメッセージの長さがｎの倍数でない場合、前記最終メッセージブロックｍ１、…、ｍｋの長さがｎの倍数になるようにすることが好ましい。前記各々のメッセージブロックｍ１、…、ｍｋに１００…０を追加して前記各々のメッセージブロックｍ１、…、ｍｋの長さがｎの倍数になるようにすることができる。
【００２２】
前記段階（ｂ）の計算は、並列的に行われることが好ましい。
【００２３】
また、本発明の他の態様によれば、認証暗号文を認証復号化する方法であって、    （ａ）ストリーム暗号初期値ＩＶとメッセージ暗号化用秘密キーＫＥＮＣを用いてキー数列を生成する段階と、（ｂ）前記キー数列を前記暗号文Ｃと排他的論理和し、前記平文Ｍを生成する平文Ｍを生成する段階と、（ｃ）前記平文Ｍに対するメッセージ認証コードＭＡＣ（ＫＭＡＣ、Ｍ）を生成する段階と、（ｄ）前記ＩＶと前記ＭＡＣ（ＫＭＡＣ、Ｍ）が一致すれば、有効な暗号文Ｃとして判定し、前記有効な暗号文Ｃに対する平文Ｍを出力する段階とをさらに備えてなることを特徴とするストリーム暗号を利用した認証復号化方法が提供される。
【００２４】
好ましくは、前記段階（ｄ）でストリーム暗号初期値ＩＶとメッセージ認証コードＭＡＣ（ＫＭＡＣ、Ｍ）が一致しなければ、エラーメッセージを出力することが好ましい。
【００２５】
前記段階（ｃ）は、前記平文Ｍとメッセージ認証コード生成用秘密キーから前記平文Ｍに対する前記メッセージ認証コードＭＡＣ（ＫＭＡＣ、Ｍ）を生成することが好ましい。
【発明の効果】
【００２６】
以上説明したように、本発明は、安全で且つ効率的なストリーム暗号を用いて並列演算可能なメッセージ認証コードを生成し、その生成されたメッセージ認証コードをストリーム暗号の暗号初期値とする認証暗号化を行う。
【００２７】
このようにストリーム暗号を用いて生成したメッセージ認証コードをストリーム暗号の暗号初期値とする認証暗号化を行うことによって、暗号初期値生成のために別途の乱数発生アルゴリズムを使用する必要がないので、具現効率性を高めることができる。
【００２８】
また、メッセージ認証コード生成時、複数のキー数列生成部１００が複数のメッセージブロックに対して各々演算することによって、複数のメッセージブロックが一回に並列演算されるので、その演算の効率性に優れている。
【発明を実施するための最良の形態】
【００２９】
以下、添付の図面を参照して本発明による実施例を詳細に説明する。
【００３０】
図１は、本発明の好ましい実施例に係るストリーム暗号を利用した並列演算可能なメッセージ認証コードを生成するメッセージ認証コード生成部の構成を示すブロック図であり、メッセージ認証コード生成部３００でそのメッセージ認証コードを生成する過程を段階別に記述すれば、次の通りである。
１．入力メッセージＭをｎビットメッセージブロックで分ける。メッセージブロックは、ｍ１、…、ｍｋ  ２１、…、２３で表示する。前記メッセージブロックｍ１、…、ｍｋ  ２１、…、２３各々の長さがｎの倍数でない場合、各々のメッセージブロックに１００…０を追加して各々のメッセージブロックの長さがｎの倍数になるようにする。
２．各ｉ＝１、…、ｋに対して中間計算値 
【００３１】
【数４】
2008122967.tif 000006
を計算する。メッセージ認証コードを生成するために所要される大部分の時間は、段階２のために必要であり、段階２の計算は、並列的に行われることができる。すなわち、ｋ個のキー数列生成部１００は、各々のメッセージブロックｍ１、…、ｍｋ  ２１、…、２３の計算に使われる秘密キー２４、…、２６を受けて中間計算値 
【００３２】
【数５】
2008122967.tif 000007
【００３３】
を計算する。この時、ＫＭＡＣは、メッセージ認証コード生成用秘密キーであり、Ｅｎ（Ｋ、ｍｉ）は、ｍ１、ｍ２、…、ｍ３のメッセージをＫをキーにして前記キー数列生成部１００で行う暗号化アルゴリズムである。
【００３４】
３．ｋ個の各々のキー数列生成部１００から得た各々の中間計算値を合せた中間計算値ｈを排他的論理和２７を用いて
【００３５】
【数６】
2008122967.tif 000008
【００３６】
を計算する。
【００３７】
４．最終結果値として、メッセージ認証コード生成用秘密キーがＫＭＡＣであり、メッセージがＭである時のメッセージ認証コードとしてＭＡＣ（ＫＭＡＣ、Ｍ）＝Ｅｎ（ＫＭＡＣ、ｈ）を生成する。
【００３８】
図２は、本発明の好ましい実施例に係るストリーム暗号を利用した認証暗号化方法を例示するブロック図であり、その認証暗号化過程を段階別に記述すれば、次の通りである。
【００３９】
１．図２の方式を用いて、メッセージ認証コード生成部３００は、平文Ｍ３１とメッセージ認証コード生成用秘密キーＫＭＡＣ３２を入力し、平文Ｍ３１に対するメッセージ認証コードＭＡＣ（ＫＭＡＣ、Ｍ）２８を生成する。
【００４０】
２．ストリーム暗号初期値ＩＶをＭＡＣ（ＫＭＡＣ、Ｍ）２８に設定する。
【００４１】
３．キー数列生成部１００は、ストリーム暗号初期値ＩＶとして設定されたメッセージ認証コードであるＭＡＣ（ＫＭＡＣ、Ｍ）２８とメッセージ暗号化用秘密キーＫＥＮＣ３３を用いてｎビットのキー数列１３を生成する。以後生成されたキー数列１３と平文Ｍを排他的論理和し、暗号文Ｃ３４を生成する。
【００４２】
４．メッセージ認証コード生成用秘密キーがＫＭＡＣであり、メッセージ暗号化用秘密キーがＫＥＮＣである時の平文Ｍに対する暗号文Ｃ３４を出力する。
【００４３】
図３は、本発明の好ましい実施例に係るストリーム暗号を利用した認証復号化方法を例示するブロック図であり、その認証復号化過程を段階別に記述すれば、次の通りである。
【００４４】
１．まず、キー数列生成部１００が暗号文Ｃからストリーム暗号初期値ＩＶとメッセージ暗号化用秘密キーＫＥＮＣ３３を用いてキー数列１３を生成する。以後生成されたキー数列１３を暗号文Ｃ３４と排他的論理和し、平文Ｍ３１を生成する。
【００４５】
２．図１の方式を用いて、メッセージ認証コード生成部３００は、平文Ｍ３１とメッセージ認証コード生成用秘密キー３２から平文Ｍ３１に対するメッセージ認証コードＭＡＣ（ＫＭＡＣ、Ｍ）を生成する。
【００４６】
３．ストリーム暗号初期値ＩＶとメッセージ認証コードであるＭＡＣ（ＫＭＡＣ、Ｍ）が一致すれば、有効な暗号文Ｃ３４として判定し、その有効な暗号文Ｃ３４に対する平文Ｍを出力する。反面、ストリーム暗号初期値ＩＶとメッセージ認証コードＭＡＣ（ＫＭＡＣ、Ｍ）が一致しなければ、エラーメッセージ「暗号文が有効でない」を出力し、終了する。
【００４７】
前記図１乃至図３で同じ名称に同じ指示符号を使用したが、図１乃至図３は、各々異なる実施例を示す。
【００４８】
このような本発明のメッセージ認証コード生成方法は、メッセージを送信するデータ送信システムでメッセージ認証コードを生成する時、メッセージ認証コードが付加されたデータを受信するデータ受信システムで受信されたメッセージ認証コードと比較するための対象メッセージ認証コードを生成する時に各々適用することができる。
【００４９】
また、本発明の認証暗号化方法は、認証暗号化されたメッセージ認証コードが付加されたデータを送信するデータ送信システムでデータを認証暗号化する時に適用することができ、認証復号化方法は、認証暗号化されたメッセージ認証コードが付加されたデータを受信するデータ受信システムで受信された認証暗号文を認証復号化する時に適用することができる。
【００５０】
ストリーム暗号では、同じ暗号初期値を反復して使用すれば、暗号文から平文に関する情報を得ることができるので、同じ暗号初期値を反復して使用してはならない。暗号初期値を生成するために使用する方法としては、乱数発生アルゴリズムを使用してランダムな暗号初期値を生成して使用する方法と、カウンタなどの反復しない情報を使用する方法がある。乱数発生アルゴリズムは、充分のエントロピーを得るために初期シードを安全に生成しなければならないし、暗号アルゴリズムと別途にアルゴリズムを具現しなければならない。カウンタを利用する場合、カウンタ情報を安全に格納、更新しなければならないので、難しさが伴う。メッセージ認証コードは、メッセージを代表する値として見なされることができるので、メッセージ認証コードを暗号初期値として使用すれば、異なるメッセージ毎に異なる暗号初期値を使用する効果を得ることができる。
【００５１】
本発明での適用対象は、特定のストリーム暗号に限定されず、暗号初期値を使用する大部分のストリーム暗号に適用可能である。
【００５２】
本発明は、ブロック暗号の認証暗号化運用モードに該当するストリームモードの運用方式であって、ＲＦＩＤ、センサネットワークなど軽量、低電力環境で暗号機能を提供する時に活用することができる。
【００５３】
前述したように、本発明の方法は、プログラムで具現されてコンピュータで読み取り可能な形態で記録媒体（ＣＤ−ＲＯＭ、ＲＡＭ、ＲＯＭ、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスクなど）に格納されることができる。
【００５４】
以上において説明した本発明は、本発明が属する技術の分野における通常の知識を有する者であれば、本発明の技術的思想を逸脱しない範囲内で、様々な置換、変形、及び変更が可能であるので、上述した実施例及び添付された図面に限定されるものではない。
【図面の簡単な説明】
【００５５】
【図１】本発明の好ましい実施例に係るストリーム暗号を利用したメッセージ認証コードを生成するメッセージ認証コード生成部の構成を示すブロック図である。
【図２】本発明の好ましい実施例に係るストリーム暗号を利用した認証暗号化方法を示すブロック図である。
【図３】本発明の好ましい実施例に係るストリーム暗号を利用した認証復号化方法を示すブロック図である。
【符号の説明】
【００５６】
１３  キー数列
２１  １番目ｎビットメッセージブロック
２２  ２度目ｎビットメッセージブロック
２３  ｋ番目ｎビットメッセージブロック
２４  １番目ブロック計算に使われる秘密キー
２５  ２度目ブロック計算に使われる秘密キー
２６  ｋ番目ブロック計算に使われる秘密キー
２７  ｋ個の計算結果の排他的論理和
２８  メッセージ認証コード、ストリーム暗号の初期値
３１  平文
３２  メッセージ認証コード生成用秘密キー
３３  暗号化用秘密キー
３４  暗号文
１００  キー数列生成部
３００  メッセージ認証コード生成部
【図１】
2008122967.tif 000011
【図２】
2008122967.tif 000012
【図３】
2008122967.tif 000013