(57)【要約】平文の入力を受け付ける平文入力部と、過去に生成した値とは異なる新たな固定長値を生成する固定長値生成部と、平文に基づく調整値を用いて、固定長値を暗号化してマスク値を生成するマスク値生成部と、マスク値生成部が生成したマスク値を用いて、平文を暗号化して暗号文を生成する平文暗号化部と、マスク値生成部が生成したマスク値を暗号化してタグを生成するタグ生成部と、を備え、平文暗号化部が暗号化した暗号文と、タグ生成部が生成したタグと、を出力する。
2016067524.tif 000002
【特許請求の範囲】
【請求項１】
平文の入力を受け付ける平文入力部と、
過去に生成した値とは異なる新たな固定長値を生成する固定長値生成部と、
前記平文に基づく調整値を用いて、前記固定長値を暗号化してマスク値を生成するマスク値生成部と、
前記マスク値生成部が生成したマスク値を用いて、前記平文を暗号化して暗号文を生成する平文暗号化部と、
前記マスク値生成部が生成したマスク値を暗号化してタグを生成するタグ生成部と、を備え、
前記平文暗号化部が暗号化した暗号文と、前記タグ生成部が生成したタグと、を出力するよう構成された
認証付暗号化装置。
【請求項２】
請求項１に記載の認証付暗号化装置であって、
前記平文入力部に入力された平文から固定長の前記調整値を算出する調整値算出部を備え、
前記マスク値生成部は、前記調整値算出部が算出する調整値を用いて、前記固定長値を暗号化して前記マスク値を生成するよう構成された
認証付暗号化装置。
【請求項３】
請求項２に記載の認証付暗号化装置であって、
前記調整値算出部は、前記平文入力部に入力された平文を所定長のブロックに分割した際の各ブロックの排他的論理和を算出することで前記調整値を算出するよう構成された
認証付暗号化装置。
【請求項４】
請求項１乃至３のいずれかに記載の認証付暗号化装置であって、
前記平文暗号化部は、前記平文を所定長のブロックに分割した際のブロックの一つである平文ブロックの値と、前記平文中における前記平文ブロックの順番に応じた有限体の定数と前記マスク値とを乗算した値である乗算値と、の排他的論理和を算出した後、所定のブロック暗号により暗号化を行い、当該暗号化の結果と前記乗算値との排他的論理和を算出することで、前記平文を暗号化して前記暗号文を生成するよう構成された
認証付暗号化装置。
【請求項５】
請求項４に記載の認証付暗号化装置であって、
前記平文暗号化部は、前記平文を所定長のブロックに分割した際の最後のブロックである最終ブロックを、当該最終ブロックに応じた有限体の定数を暗号化した結果に基づいて算出される値と当該平文の最終ブロックの値との排他的論理和を算出することで暗号化するよう構成された
認証付暗号化装置。
【請求項６】
復号の対象となる暗号文とタグとの入力を受け付ける暗号文入力部と、
前記暗号文入力部に入力されたタグを復号してマスク値を生成するマスク値復号部と、
前記マスク値復号部が生成したマスク値を用いて、前記暗号文を復号して平文を生成する平文復号部と、
前記平文に基づく調整値を用いて、前記マスク値を復号して固定長値を生成する固定長値復号部と、
前記固定長値と予め記憶された期待値とを比較することで改ざんの有無を検査する改ざん検査部と、を備え、
前記改ざん検査部が検査した改ざんの有無と、前記平文復号部が生成した平文と、を出力するよう構成された
認証付復号装置。
【請求項７】
請求項６に記載の認証付復号装置であって、
前記平文復号部が復号した平文から固定長の前記調整値を算出する調整値算出部を備え、
前記固定長復号部は、前記調整値算出部が算出する前記調整値を用いて、前記マスク値を復号して前記固定長値を生成するよう構成された
認証付復号装置。
【請求項８】
平文の入力を受け付ける平文入力部と、
過去に生成した値とは異なる新たな固定長値を生成する固定長値生成部と、
前記平文に基づく調整値を用いて、前記固定長値を暗号化してマスク値を生成するマスク値生成部と、
前記マスク値生成部が生成したマスク値を用いて、前記平文を暗号化して暗号文を生成する平文暗号化部と、
前記マスク値生成部が生成したマスク値を暗号化してタグを生成するタグ生成部と、を備え、
前記平文暗号化部が暗号化した暗号文と、前記タグ生成部が生成したタグと、を出力する認証付暗号化装置と、
暗号文とタグとの入力を受け付ける暗号文入力部と、
前記暗号文入力部に入力されたタグを復号してマスク値を生成するマスク値復号部と、
前記マスク値復号部が生成したマスク値を用いて、前記暗号文入力部が入力を受け付けた暗号文を復号して平文を生成する平文復号部と、
前記平文復号部が生成した平文に基づく調整値を用いて、前記マスク値復号部が生成したマスク値を復号して固定長値を生成する固定長値復号部と、
前記固定長値復号部が生成した固定長値と予め記憶された期待値とを比較することで改ざんの有無を検査する改ざん検査部と、を備え、
前記改ざん検査部が検査した改ざんの有無と、前記平文復号部が生成した平文と、を出力する認証付復号装置と、を備える
認証付暗号システム。
【請求項９】
平文の入力を受け付け、
過去に生成した値とは異なる新たな固定長値を生成し、
前記平文に基づく調整値を用いて、前記固定長値を暗号化してマスク値を生成し、
前記生成したマスク値を用いて、前記平文を暗号化して暗号文を生成し、
前記生成したマスク値を暗号化してタグを生成し、
前記暗号文と、前記タグと、を出力する
認証付暗号化方法。
【請求項１０】
情報処理装置に、
平文の入力を受け付ける平文入力部と、
過去に生成した値とは異なる新たな固定長値を生成する固定長値生成部と、
前記平文に基づく調整値を用いて、前記固定長値を暗号化してマスク値を生成するマスク値生成部と、
前記マスク値生成部が生成したマスク値を用いて、前記平文を暗号化して暗号文を生成する平文暗号化部と、
前記マスク値生成部が生成したマスク値を暗号化してタグを生成するタグ生成部と、を実現させ、
前記平文暗号化部が暗号化した暗号文と、前記タグ生成部が生成したタグと、を出力する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内容の秘匿と、不正な改ざんに対する検知と、を共に可能とする認証付暗号化装置、認証付復号装置、認証付暗号システム、認証付暗号化方法、プログラム、に関する。
【背景技術】
【０００２】
通信におけるセキュリティ確保などを目的として、平文を暗号化する暗号化技術が用いられることが知られている。【０００３】
暗号化技術としては、例えば、特許文献１が知られている。特許文献１に記載されている技術では、共有秘密鍵としての暗号鍵と初期ベクトルとに基づいて共有鍵ブロック暗号適用鍵を生成し、共有鍵ブロック暗号適用鍵に基づいて平文を暗号化する。その後、生成した暗号文と初期ベクトルとを連結したデータを送信することになる。特許文献１によると、このような方法を用いることで、電力差分解析などによる暗号解析を防ぎつつ平文を暗号化することが可能となる。【０００４】
また、暗号化技術の他の一例として、例えば、特許文献２が知られている。特許文献２には、誤り訂正符号を用いて平文を符号化するステップと、符号化した平文と秘密鍵とランダムベクトルとに基づいて符号化した符号語を暗号化するステップと、暗号化された符号語にノイズベクトルを付加するステップと、を有する確率的対称暗号化方法が記載されている。特許文献２によると、このような方法により、低コストで安全な暗号化を実現することが出来る。【０００５】
また、事前に共有された秘密鍵を用いて平文メッセージに対する暗号化と改ざん検知用の認証タグ計算とを同時に適用する、いわゆる認証付き暗号（Ａｕｔｈｅｎｔｉｃａｔｅｄ  Ｅｎｃｒｙｐｔｉｏｎ，ＡＥ）技術としては、例えば、非特許文献１や非特許文献２のような技術が知られている。非特許文献１、２によると、秘密鍵をパラメータとする暗号化関数を用いて、初期ベクトルと平文から、暗号文と固定長の改ざん検出用の変数であるタグとを生成する。つまり、非特許文献１、２によると、例えば、秘密鍵をＫ、平文をＭ、初期ベクトルをＮとし、鍵Ｋをパラメータとした暗号化関数をＡＥｎｃ＿Ｋ、暗号分をＣ、タグをＴとした場合に、下記のような処理を行うことになる。
（Ｃ，Ｔ）＝ＡＥｎＣ＿Ｋ（Ｎ，Ｍ）【０００６】
非特許文献１、２では、上記処理の後、生成された暗号文ＣとタグＴと、初期ベクトルＮとを相手側（復号装置）へと送信する。その後、送信結果を受信した復号装置では、受信した結果と復号関数ＡＤｅｃ＿Ｋとを用いて、改ざんの有無の検出と、平文Ｍの復号と、が行われることになる。なお、初期ベクトルＮは偶然一致することがないように生成されるものとする。【０００７】
また、ＡＥの他の技術の一つとして、例えば、非特許文献３が知られている。非特許文献３では、Ｋを鍵とした可変長入出力の擬似ランダム置換（Ｗｉｄｅ  Ｐｓｅｕｄｏ  Ｒａｎｄｏｍ  Ｐｅｒｍｕｔａｔｉｏｎ，ＷＰＲＰ）Ｐ＿Ｋを用いて、初期ベクトルＮと平文Ｍとを連結して得られた入力（Ｎ，Ｍ）に対し、暗号文Ｃ＝Ｐ＿Ｋ（Ｎ，Ｍ）を全体の出力とする。この場合、暗号文Ｃの長さは、初期ベクトルＮと平文Ｍの長さの和となることになる。【０００８】
また、上記の場合、復号側では、共有する鍵Ｋを用いて、暗号文ＣへＰ＿Ｋの逆置換を適用して（Ｎ，Ｍ）を得たのち、Ｎが期待する値であるか否かを確認することで、認証チェックを行うことになる。なお、非特許文献３の技術では、復号側が、暗号化側が用いるべき初期ベクトルＮを予め分かっていることが必要となる。これは、初期ベクトルＮの更新に関して暗号化側と復号側とで同期がとれていれば実現可能である。典型的には、復号側が直前に送られた正規の暗号分の初期ベクトルを記憶していることで達成される。この条件は、復号側でリプレイアタック（反射攻撃、Ｒｅｐｌａｙ  Ａｔｔａｃｋ）を検知して排除することが求められているケースでは自然な条件となる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００５−１３４４７８号公報
【特許文献２】特表２０１１−５０９４３３号公報
【非特許文献】
【００１０】
【非特許文献１】NIST Special Publication 800-38C Recommendation for Block Cipher Modes of Operation: The CCM Mode for Authentication and Confidentiality http://csrc.nist.gov/publications/nistpubs/800-38C/SP800-38C_updated-July20_2007.pdf
【非特許文献２】NIST Special Publication 800-38D Recommendation for Block Cipher Modes of Operation:  Galois/Counter Mode (GCM) and GMAC http://csrc.nist.gov/publications/nistpubs/800-38D/SP-800-38D.pdf
【非特許文献３】D. McGrew. Authenticated Encryption with Replay prOtection (AERO) https://tools.ietf.org/html/draft-mcgrew-aero-00
【発明の概要】
【発明が解決しようとする課題】
【００１１】
特許文献１、２のような技術では、メッセージ認証機能を新たに追加したい場合、例えば、メッセージ認証符号（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ，ＭＡＣ）を新たに付加することになる。その結果、送信する情報量が増え、通信帯域が増加するという問題があった。また、このように新たにメッセージ認証機能を追加し、全体として認証暗号の機能を達成しようとする場合には、メッセージの長さに関わらずプロトコルの変更が求められる場合があり、実用上の困難を生じることがあった。【００１２】
また、非特許文献１、２に記載されている技術では、平文Ｍの暗号化により、平文Ｍと同じ長さの暗号文Ｃに初期ベクトルＮとタグＴとを連結して送信する必要がある。通常の処理では、初期ベクトルＮもタグＴも４バイトから３２バイト程度の短い値であるが、平文Ｍも同様に短い場合などでは、初期ベクトルＮとタグＴの追加による通信帯域増加は無視できない。このようなケースは、例えば、無線センサーネットワークのデバイスなどで頻繁に見受けられるが、このようなネットワークでは、通信帯域が消費電力を左右する重要な要素の一つとなる。そのため、帯域削減は重要な課題となっていた。【００１３】
また、非特許文献３に記載されている技術では、送信する情報は暗号文Ｃのみとなり、その長さは、上述したように、初期ベクトルＮと平文Ｍの長さの和となる。そのため、非特許文献１、２と比べて通信帯域の増加を抑えることが可能となっている。一方で、非特許文献３の技術では、入力長１ブロックにつき、ブロック暗号１回有限体ＧＦ（２ｎ）乗算（ただしｎはブロックサイズ）を２回必要とする。そのため、一般的な暗号化と比べてその負荷は非常に大きくなり、暗号化の効率が悪いという問題が生じていた。【００１４】
このように、認証付き暗号化方式を用いる際には、通信帯域が増加してしまうか、通信帯域の増加を抑えるためには、処理が複雑になるという問題があった。つまり、認証付き暗号化方式を用いる際には、効率的に帯域増加を防止することが難しい、という課題が生じていた。【００１５】
そこで、本発明の目的は、認証付き暗号化方式を用いる際に、効率的に帯域増加を防止することが難しい、という課題を解決する認証付暗号化装置を提供することにある。
【課題を解決するための手段】
【００１６】
かかる目的を達成するため本発明の一形態である認証付暗号化装置は、
平文の入力を受け付ける平文入力部と、
過去に生成した値とは異なる新たな固定長値を生成する固定長値生成部と、
前記平文に基づく調整値を用いて、前記固定長値を暗号化してマスク値を生成するマスク値生成部と、
前記マスク値生成部が生成したマスク値を用いて、前記平文を暗号化して暗号文を生成する平文暗号化部と、
前記マスク値生成部が生成したマスク値を暗号化してタグを生成するタグ生成部と、を備え、
前記平文暗号化部が暗号化した暗号文と、前記タグ生成部が生成したタグと、を出力するよう構成された、
という構成を採る。【００１７】
また、本発明のほかの形態である認証付復号装置は、
復号の対象となる暗号文とタグとの入力を受け付ける暗号文入力部と、
前記暗号文入力部に入力されたタグを復号してマスク値を生成するマスク値復号部と、
前記マスク値復号部が生成したマスク値を用いて、前記暗号文を復号して平文を生成する平文復号部と、
前記平文に基づく調整値を用いて、前記マスク値を復号して固定長値を生成する固定長値復号部と、
前記固定長値と予め記憶された期待値とを比較することで改ざんの有無を検査する改ざん検査部と、を備え、
前記改ざん検査部が検査した改ざんの有無と、前記平文復号部が生成した平文と、を出力するよう構成された、
という構成を採る。【００１８】
また、本発明のほかの形態である認証付暗号システムは、
平文の入力を受け付ける平文入力部と、
過去に生成した値とは異なる新たな固定長値を生成する固定長値生成部と、
前記平文に基づく調整値を用いて、前記固定長値を暗号化してマスク値を生成するマスク値生成部と、
前記マスク値生成部が生成したマスク値を用いて、前記平文を暗号化して暗号文を生成する平文暗号化部と、
前記マスク値生成部が生成したマスク値を暗号化してタグを生成するタグ生成部と、を備え、
前記平文暗号化部が暗号化した暗号文と、前記タグ生成部が生成したタグと、を出力する認証付暗号化装置と、
暗号文とタグとの入力を受け付ける暗号文入力部と、
前記暗号文入力部に入力されたタグを復号してマスク値を生成するマスク値復号部と、
前記マスク値復号部が生成したマスク値を用いて、前記暗号文入力部が入力を受け付けた暗号文を復号して平文を生成する平文復号部と、
前記平文復号部が生成した平文に基づく調整値を用いて、前記マスク値復号部が生成したマスク値を復号して固定長値を生成する固定長値復号部と、
前記固定長値復号部が生成した固定長値と予め記憶された期待値とを比較することで改ざんの有無を検査する改ざん検査部と、を備え、
前記改ざん検査部が検査した改ざんの有無と、前記平文復号部が生成した平文と、を出力する認証付復号装置と、を備える
という構成を採る。【００１９】
また、本発明のほかの形態である認証付暗号化方法は、
平文の入力を受け付け、
過去に生成した値とは異なる新たな固定長値を生成し、
前記平文に基づく調整値を用いて、前記固定長値を暗号化してマスク値を生成し、
前記生成したマスク値を用いて、前記平文を暗号化して暗号文を生成し、
前記生成したマスク値を暗号化してタグを生成し、
前記暗号文と、前記タグと、を出力する、
という構成を採る。【００２０】
また、本発明のほかの形態であるプログラムは、
情報処理装置に、
平文の入力を受け付ける平文入力部と、
過去に生成した値とは異なる新たな固定長値を生成する固定長値生成部と、
前記平文に基づく調整値を用いて、前記固定長値を暗号化してマスク値を生成するマスク値生成部と、
前記マスク値生成部が生成したマスク値を用いて、前記平文を暗号化して暗号文を生成する平文暗号化部と、
前記マスク値生成部が生成したマスク値を暗号化してタグを生成するタグ生成部と、を実現させ、
前記平文暗号化部が暗号化した暗号文と、前記タグ生成部が生成したタグと、を出力する
プログラムである。
【発明の効果】
【００２１】
本発明は、以上のように構成されることにより、認証付き暗号化方式を用いる際に、効率的に帯域増加を防止することが難しい、という課題を解決する認証付暗号化装置を提供することが可能となる。
【図面の簡単な説明】
【００２２】
【図１】本発明の第１の実施形態に係る認証付暗号化装置の構成の一例を示すブロック図である。
【図２】本発明の第１の実施形態に係る認証付き暗号化装置のチェックサム計算手段によるチェックサムの算出方法の一例を説明するための図である。
【図３】本発明の第１の実施形態に係る認証付暗号化装置の調整値付きブロック暗号化手段による暗号化の一例を説明するための図である。
【図４】本発明の第１の実施形態に係る認証付暗号化装置の調整値付きブロック暗号化手段による暗号化の他の一例を説明するための図である。
【図５】本発明の第１の実施形態に係る認証付暗号化装置のマスク付き暗号化手段による暗号化の一例を説明するための図である。
【図６】本発明の第１の実施形態に係る認証付暗号化装置のマスク付き暗号化手段による暗号化の一例を説明するための図である。
【図７】本発明の第１の実施形態に係る認証付暗号化装置の動作の一例を示すフローチャートである。
【図８】本発明の第２の実施形態に係る認証付復号装置の構成の一例を示すブロック図である。
【図９】本発明の第２の実施形態に係る認証付復号装置の動作の一例を示すフローチャートである。
【図１０】認証付暗号化装置と認証付復号装置とにより構成される認証付暗号システムの構成の一例を示す図である。
【図１１】本発明の第３の実施形態に係る認証付暗号化装置の構成の概略を示す概略ブロック図である。
【図１２】本発明の第４の実施形態に係る認証付復号装置の構成の概略を示す概略ブロック図である。
【図１３】本発明の第４の実施形態に係る認証付暗号システムの構成の概略を示す概略ブロック図である。
【発明を実施するための形態】
【００２３】
［第１の実施形態］
本発明の第１の実施形態について、図１乃至図７を参照して説明する。図１は、本発明の第１の実施形態に係る認証付暗号化装置１の構成の一例を示すブロック図である。図２は、認証付暗号化装置１のチェックサム計算手段１２が行うチェックサムの算出方法の一例を示す図である。図３は、認証付暗号化装置１の調整値付きブロック暗号化手段１３が行う暗号化処理の一例を示す図である。図４は、認証付暗号化装置１の調整値付きブロック暗号化手段１３が行う暗号化処理の他の一例を示す図である。図５は、認証付暗号化装置１のマスク付き暗号化手段１４が行う暗号化処理の一例を示す図である。図６は、認証付暗号化装置１のマスク付き暗号化手段１４が行う暗号化処理の一例を示す図である。図７は、認証付暗号化装置１の動作の一例を示すフローチャートである。
【００２４】
本発明の第１の実施形態では、入力された平文を暗号化して出力する、共通鍵暗号方式を用いた認証付暗号化装置１について説明する。本実施形態における認証付暗号化装置１は、認証付き暗号化処理を行うよう構成されている。後述するように、認証付暗号化装置１は、入力された平文を所定の処理により暗号化した後、平文を暗号化した暗号文と後述するタグとを出力する。
【００２５】
本実施形態における認証付暗号化装置１は、演算装置と記憶装置とを有する情報処理装置である。記憶装置にはプログラムが記憶されており、記憶装置に記憶されたプログラムを演算装置が読み込んで実行することにより、後述する各手段を実現する。
【００２６】
図１を参照すると、本実施形態における認証付暗号化装置１は、平文入力手段１０（平文入力部）と、初期ベクトル生成手段１１（固定長値生成部）と、チェックサム計算手段１２（調整値算出部）と、調整値付きブロック暗号化手段１３（マスク値生成部）と、マスク付き暗号化手段１４（平文暗号化部）と、タグ生成手段１５（タグ生成部）と、暗号文出力手段１６と、を有している。
【００２７】
平文入力手段１０（平文入力部）は、暗号化の対象となる平文Ｍを入力する手段である。平文入力手段１０は、例えば、キーボードなどの文字入力装置により構成されている。なお、平文入力手段１０は、例えば、ネットワークなどを介して接続された外部の装置から平文Ｍを入力可能なよう構成しても構わない。
【００２８】
上記のように、平文入力手段１０を介して、平文Ｍが入力される。そして、平文Ｍを入力された平文入力手段１０は、当該入力された平文Ｍを、チェックサム計算手段１２とマスク付き暗号化手段１４へと出力する。
【００２９】
初期ベクトル生成手段１１（固定長値生成部）は、過去に生成した値とは異なるｎビットの初期ベクトルＮ（固定長値、ｎｏｎｃｅ）を生成する。初期ベクトル生成手段１１は、例えば、最初は任意の固定値を生成する。また、初期ベクトル生成手段１１は、図示しない記憶部に前回生成した初期ベクトルを記憶しておき、新たに初期ベクトルを生成する際には、記憶された初期ベクトルに１を加えることで、過去に生成した値とは異なる新たな初期ベクトルを生成する。例えば、初期ベクトル生成手段１１は、最後に生成した初期ベクトルがＮのときに、新たな初期ベクトルＮ’として、Ｎ＋１を生成する。この場合には、初期ベクトル生成手段１１により行われる更新処理は、初期ベクトル更新関数ｆ（Ｎ）＝Ｎ＋１を用いて表現できることになる。
【００３０】
このように、初期ベクトル生成手段１１は、過去に生成した値と重複しないように初期ベクトルＮを生成する。その後、初期ベクトル生成手段１１は、生成した初期ベクトルＮを調整値付きブロック暗号化手段１３に対して出力する。
【００３１】
なお、初期ベクトル生成手段１１が用いる初期ベクトル更新関数は、上記例示した場合に限定されない。初期ベクトル生成手段１１は、過去に生成した値とは異なる初期ベクトルＮを生成する様々な関数を用いるよう構成することが出来る。また、初期ベクトル生成手段１１は、時間情報などのその他の補助情報を組み合わせて、初期ベクトルＮを生成するように構成しても構わない。この場合には、初期ベクトルＮを生成する際に用いる補助情報は、暗号化側と復号側で同期がとれているものとする。
【００３２】
また、上述したように、本実施形態における初期ベクトル生成手段１１は、ｎビットの初期ベクトルを生成する。仮に、初期ベクトル生成手段１１が生成する初期ベクトルに相当する値がｎビットよりも短い場合には、初期ベクトル生成手段１１は、適当なパディングを行った上で、ｎビットの初期ベクトルを生成することになる。
【００３３】
チェックサム計算手段１２（調整値算出部）は、平文入力手段１０から取得した平文Ｍから、簡易な計算によりｎビットのチェックサムＳＵＭ（調整値）を算出する。
【００３４】
図２は、チェックサム計算手段１２がチェックサムＳＵＭを算出する際の処理の一例を示している。図２を参照すると、チェックサム計算手段１２は、例えば、平文入力手段１０から取得した平文Ｍをｎビットごとのブロック（Ｍ［１］、…、Ｍ［ｍ］）に分割した際の、各平文ブロックの排他的論理和（Ｅｘｃｌｕｓｉｖｅ  ｏｒ，ＸＯＲ）を算出する。例えば、その算出結果が、ｎビットのチェックサムＳＵＭ（調整値）になる。なお、このように平文Ｍをｎビットごとのブロックに分割すると、最終ブロックＭ［ｍ］がｎビットに満たない場合がある。この場合には、チェックサム計算手段１２は、適当なパディングを最終ブロックに適用した上で排他的論理和を算出することになる（図２参照）。
【００３５】
チェックサム計算手段１２は、例えば、このような処理によりチェックサムＳＵＭを算出する。その後、チェックサム計算手段１２は、算出したチェックサムＳＵＭを調整値付きブロック暗号化手段１３へと出力する。
【００３６】
なお、チェックサム計算手段１２は、上記処理以外の処理によりチェックサムＳＵＭを算出するように構成しても構わない。チェックサム計算手段１２は、例えば、排他的論理和の代わりに、算術加算、あるいは、巡回冗長検査（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ，ＣＲＣ）などを使用するように構成することが出来る。
【００３７】
調整値付きブロック暗号化手段１３（マスク値生成部、Ｔｗｅａｋａｂｌｅブロック暗号化手段）は、チェックサム計算手段１２から取得したチェックサムＳＵＭを調整値（Ｔｗｅａｋ、ツィーク）として、初期ベクトル生成手段１１が生成した初期ベクトルＮを暗号化する。調整値付きブロック暗号化手段１３は、通常のｎビットブロック暗号を用いて実現することが可能である。
【００３８】
図３は、調整値付きブロック暗号化手段１３が行う暗号化処理の一例を示している。図３を参照すると、調整値付きブロック暗号化手段１３は、例えば、鍵Ｋ１とブロック暗号Ｅを用いて暗号化を行う暗号化部１３１と、鍵Ｋ１とは異なる鍵Ｋ２を持つｎビット入出力の鍵付き関数Ｈを用いて所定の計算処理を行う計算部１３２と、を有している。なお、ブロック暗号Ｅは、例えば、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）等、一般的なブロック暗号方式を採用することが出来る。また、この処理は、M. Liskov, R. L. Rivest, D. Wagner: Tweakable Block Ciphers. 
Advances in Cryptology - CRYPTO 2002, 22nd Annual International Cryptology Conference, Santa Barbara, California, USA, August 18-22, 2002, Proceedings. Lecture Notes in Computer Science 2442 Springer 2002, pp. 31-46.
に記載のＬＲＷの方式を用いている。
【００３９】
計算部１３２で用いられる関数Ｈは、チェックサムＳＵＭと鍵Ｋ２とを引数としている。そのため、計算部１３２は、チェックサム計算手段１２から取得したチェックサムＳＵＭと予め記憶している鍵Ｋ２とを用いて計算処理を行うことになる。図３を参照すると、調整値付きブロック暗号化手段１３では、上記処理の後、計算部１３２による計算結果であるＨ（ＳＵＭ）と初期ベクトルＮとの排他的論理和を算出して、その結果に基づいて、暗号化部１３１により暗号化を行う。そして、調整値付きブロック暗号化手段１３は、暗号化部１３１による暗号化の結果と計算部１３２による計算結果との排他的論理を算出した後、その算出結果をマスクＬ（マスク値）として出力する。つまり、調整値付きブロック暗号化手段１３は、例えば、以下のような処理を実行してマスクＬを算出するように構成されている。
Ｌ＝Ｅ（Ｈ（ＳＵＭ）＋Ｎ）＋Ｈ（ＳＵＭ）
なお、ＬはマスクＬを表し、ＳＵＭはチェックサムＳＵＭを表し、Ｎは初期ベクトルＮを表すものとする。また、＋は、ビット毎の排他的論理和を表している（以下、同様とする）。
【００４０】
例えば、このような処理により、調整値付きブロック暗号化手段１３は、初期ベクトルＮの暗号化を行ってマスクＬを生成する。その後、調整値付きブロック暗号化手段１３は、暗号化した結果であるｎビットのマスクＬを、マスク付き暗号化手段１４とタグ生成手段１５へと出力する。
【００４１】
なお、関数Ｈは、セキュリティーパラメータをｅ（ｅは０以上１以下）としたとき、任意の異なる２つの入力ｘとｘ’について、Ｐｒ［Ｈ（Ｘ）＋Ｈ（Ｘ’）＝ｃ］の式で表される確率がｅよりも小さくなる必要がある。このような場合、つまり、関数ＨがＡＸＵユニバーサルハッシュ関数である場合、上記の構成は安全な調整値付きブロック暗号を実現することになる。
【００４２】
また、上記では、調整値付きブロック暗号化手段１３の処理の一例について説明したが、調整値付きブロック暗号化手段１３は、上記以外の処理により初期ベクトルＮを暗号化するように構成しても構わない。例えば、上記では、鍵Ｋ１と鍵Ｋ２とを用いる場合について説明したが、全体の鍵をブロック暗号の鍵１つとすることも可能である。このような場合の一例について、例えば、図４を用いて説明する。なお、図４では、
Phillip Rogaway: Efficient Instantiations of Tweakable Blockciphers and Refinements to Modes OCB and PMAC. Advances in Cryptology - ASIACRYPT 2004, 10th International Conference on the Theory and Application of Cryptology and Information Security, Jeju Island, Korea, December 5-9, 2004, Proceedings. Lecture Notes in Computer Science 3329 Springer 2004, pp. 16-31
に記載のＸＥＸモードを用いている。
【００４３】
図４を参照すると、調整値付きブロック暗号化手段１３は、例えば、鍵Ｋ１とブロック暗号Ｅを用いて暗号化を行う暗号化部１３３と、ガロア体ＧＦ（２ｎ）上の元２と後述する暗号化部１３５による暗号化の結果とを乗算する計算部１３４と、鍵Ｋ１とブロック暗号Ｅを用いてチェックサムＳＵＭを暗号化する暗号化部１３５と、を有している。
【００４４】
上記構成によると、チェックサム計算手段１２から取得したチェックサムＳＵＭを、暗号化部１３５により暗号化した後、その暗号化結果であるＥ（ＳＵＭ）とガロア体ＧＦ（２ｎ）上の元２との乗算を計算部１３４により行う。その後、調整値付きブロック暗号化手段１３では、計算部１３４による計算結果であるｍｕｌ（２，Ｅ（ＳＵＭ））と、初期ベクトルＮとの排他的論理和を算出して、その結果に基づいて、暗号化部１３３により暗号化を行う。そして、調整値付きブロック暗号化手段１３は、暗号化部１３３による暗号化の結果と計算部１３４による計算結果との排他的論理和を算出した後、その算出結果をマスクＬとして出力する。つまり、調整値付きブロック暗号化手段１３は、例えば、以下のような処理を実行してマスクＬを算出するように構成することも出来る。
Ｌ＝Ｅ（ｍｕｌ（２，Ｅ（ＳＵＭ））＋Ｎ）＋ｍｕｌ（２，Ｅ（ＳＵＭ））
なお、ｍｕｌ（２，Ｅ（ＳＵＭ））は、ガロア体ＧＦ（２ｎ）上の元２とＥ（ＳＵＭ）との乗算を表している。
【００４５】
マスク付き暗号化手段１４（平文暗号化部）は、調整値付き暗号化手段１３から取得したマスクＬを用いて、平文入力手段１０から取得した平文Ｍを暗号化して暗号文Ｃを生成する。マスク付き暗号化手段１４は、例えば、平文Ｍをｎビットごとに分割した各ブロック（Ｍ［１］〜Ｍ［ｍ］）を暗号化する。安全性の観点から、マスク付き暗号化手段１４は、同じマスクＬで暗号文Ｃと、異なる暗号文Ｃ’と、を復号した場合に、鍵を知らないものにとって、高い確率で復号結果の少なくとも１ブロックが予測不可能な乱数となるように暗号化を行うものとする。
【００４６】
図５は、平文Ｍがｎビットブロックの系列（Ｍ［１］、…、Ｍ［ｍ］）である場合の、平文Ｍ［ｉ］（ｉは、１からｍ−１の間の何れかの値）をマスク付き暗号化手段１４が暗号化する際の処理の一例を示している。図５を参照すると、マスク付き暗号化手段１４は、例えば、マスクＬとガロア体上の定数２のｉ乗（平文［ｉ］の場合。ｉは、平文のブロックの順番に応じた値になる）を乗算する計算部１４１と、鍵Ｋ１とブロック暗号Ｅを用いて暗号化を行う暗号化部１４２と、を有している。
【００４７】
上記構成によると、マスクＬとガロア体上の２のｉ乗（ｉは平文のブロックの順番を示す値と対応する）との乗算を計算部１４１により行う。その後、マスク付き暗号化手段１４では、計算部１４１による計算結果であるｍｕｌ（２ｉ，Ｌ）と平文Ｍ［ｉ］との排他的論理和を算出して、その結果に基づいて、暗号化部１４２により暗号化を行う。そして、マスク付き暗号化手段１４は、暗号化部１４２による暗号化の結果と計算部１４１による計算結果との排他的論理和を算出した後、その算出結果を出力する。つまり、マスク付き暗号化手段１４は、例えば、以下のような処理を実行して、平文Ｍ［ｉ］を暗号化して暗号文Ｃ［ｉ］を出力するように構成されている。
Ｃ［ｉ］＝Ｅ（ｍｕｌ（２ｉ，Ｌ）＋Ｍ［ｉ］）＋ｍｕｌ（２ｉ，Ｌ）
ただし、Ｃ［ｉ］は暗号文Ｃ［ｉ］を表し、Ｍ［ｉ］は、平文Ｍ［ｉ］を表している。
【００４８】
マスク付き暗号化手段１４は、上記暗号化処理を、平文Ｍ［１］から平文Ｍ［ｍ−１］まで行うことになる（図６参照）。また、平文Ｍをｎビットのブロックに分割した際の最終ブロックＭ［ｍ］はｎビットに満たない場合がある。そのため、マスク付き暗号化手段１４は、例えば、下記のように、定数を暗号化した結果と平文Ｍ［ｍ］との排他的論理和を、暗号文Ｃ［ｍ］として出力する（図６参照）。
Ｃ［ｍ］＝ｍｓｂ＿｜Ｍ［ｍ］｜（Ｅ（ｍｕｌ（２ｍ，Ｌ）））＋Ｍ［ｍ］
ここで、ｍｓｂ＿ａ（Ｘ）は、Ｘの前方ａビットを取り出す関数である。また、｜Ｘ｜はＸのビット長を表す関数である。つまり、ｍｓｂ＿｜Ｍ［ｍ］｜（Ｅ（ｍｕｌ（２ｍ，Ｌ）））は、Ｅ（ｍｕｌ（２ｍ，Ｌ））の前方Ｍ［ｍ］ビットを取り出すことを示している。暗号文Ｃ［ｍ］は、上記処理により取り出された値と、Ｍ［ｍ］との排他的論理和を算出することで、生成されることになる。
【００４９】
例えば、このような処理により、マスク付き暗号化手段１４は、平文入力手段１０に入力された平文Ｍを暗号化して暗号文Ｃを生成する。その後、マスク付き暗号化手段１４は、生成した暗号文Ｃを暗号文出力手段１６へと出力する。
【００５０】
なお、調整値付きブロック暗号化手段１３が、上述した、
Ｌ＝Ｅ（ｍｕｌ（２，Ｅ（ＳＵＭ））＋Ｎ）＋ｍｕｌ（２，Ｅ（ＳＵＭ））
の処理を実行するように構成されている場合、マスク付き暗号化手段１４は、調整値付きブロック暗号化手段１３とは異なる定数を用いる必要がある。これは、例えば、ｍｕｌ（２ｉ，Ｌ）の代わりにｍｕｌ（２ｉ＋１，Ｌ）を用いることで実現可能である。つまり、上記のような場合には、例えば、計算部１４１が、マスクＬと２ｉ＋１とを乗算するように構成されることになる。
【００５１】
タグ生成手段１５（タグ生成部）は、調整値付きブロック暗号化手段１３から取得したマスクＬを用いて、タグＴを生成する。タグＴは、復号装置にてマスクＬに復号され、メッセージ認証や暗号文Ｃの復号に用いられることになる。例えば、タグ生成手段１５は、ＡＥＳなどのブロック暗号を用いてマスクＬを暗号化することで、タグＴを生成する。その後、タグ生成手段１５は、生成したタグＴを暗号文出力手段１６へと出力する。
【００５２】
暗号文出力手段１６は、マスク付き暗号化手段１４が出力する暗号文Ｃと、タグ生成手段１５が出力するタグＴと、を連結して、外部の装置へと出力する。暗号文出力手段１６は、例えば、ディスプレイ装置やプリンタ装置などと接続されており、当該ディスプレイ装置やプリンタ装置などに、暗号文ＣとタグＴとを出力することになる。なお、暗号文出力手段１６は、例えば、ネットワークを介して接続された外部の装置へと暗号文ＣとタグＴとを出力するように構成しても構わない。
【００５３】
以上が、認証付暗号化装置１の構成の一例である。次に、認証付暗号化装置１の動作の一例について、図７を用いて説明する。
【００５４】
図７を参照すると、まず、平文入力手段１０に平文Ｍが入力される（ステップＳ１０１）。すると、平文入力手段１０は、入力された平文Ｍを、チェックサム計算手段１２とマスク付き暗号化手段１４へと出力する。
【００５５】
続いて、チェックサム計算手段１２が、平文ＭからチェックサムＳＵＭを計算する（ステップＳ１０２）。具体的には、例えば、チェックサム計算手段１２は、平文入力手段１０から取得した平文Ｍをｎビットごとのブロックに分割した際の、各平文ブロックの排他的論理和を算出することで、チェックサムＳＵＭを算出する。その後、チェックサム計算手段１２は、計算したチェックサムＳＵＭを調整値付きブロック暗号化手段１３へと出力する。
【００５６】
また、初期ベクトル生成手段１１は、当該初期ベクトル生成手段１１が過去に生成した値と重複がないように、初期ベクトルを生成する。そして、初期ベクトル生成手段１１は、生成した初期ベクトルを調整値付きブロック暗号化手段１３へと出力する。
【００５７】
続いて、調整値付きブロック暗号化手段１３は、チェックサム計算手段１２から受信したチェックサムＳＵＭを調整値として、初期ベクトル生成手段１１が生成した初期ベクトルＮを暗号化する。具体的には、例えば、調整値付きブロック暗号化手段１３は、下記式で表される処理を行うことで初期ベクトルＮを暗号化する。
Ｌ＝Ｅ（ｍｕｌ（２，Ｅ（ＳＵＭ））＋Ｎ）＋ｍｕｌ（２，Ｅ（ＳＵＭ））
この処理により、調整値付きブロック暗号化手段１３は、マスクＬを生成することになる（ステップＳ１０３）。その後、調整値付きブロック暗号化手段１３は、生成したマスクＬを、マスク付き暗号化手段１４とタグ生成手段１５へと出力する。
【００５８】
平文入力手段１０から平文Ｍを取得して、また、調整値付きブロック暗号化手段１３からマスクＬを取得したマスク付き暗号化手段１４は、マスクＬを用いて平文Ｍを暗号化して暗号文Ｃを生成する（ステップＳ１０４）。具体的には、マスク付き暗号化手段１４は、例えば、下記式で表される処理を行うことで、平文Ｍを暗号文Ｃへと暗号化する。
Ｃ［ｉ］＝Ｅ（ｍｕｌ（２ｉ，Ｌ）＋Ｍ［ｉ］）＋ｍｕｌ（２ｉ，Ｌ）
但し、ｉ＝１〜ｍ−１
Ｃ［ｍ］＝ｍｓｂ＿｜Ｍ［ｍ］｜（Ｅ（ｍｕｌ（２ｍ，Ｌ）））＋Ｍ［ｍ］
その後、マスク付き暗号化手段１４は、生成した暗号文Ｃを暗号文出力手段１６へと出力する。
【００５９】
また、調整値付きブロック暗号化手段１３からマスクＬを取得したタグ生成手段１５は、マスクＬを暗号化することでタグＴを生成する（ステップＳ１０５）。タグ生成手段１５は、例えば、ＡＥＳなどのブロック暗号を用いてマスクＬを暗号化することで、タグＴを生成することになる。その後、タグ生成手段１５は、生成したタグＴを暗号文出力手段１６へと出力する。
【００６０】
その後、暗号文出力手段１６は、マスク付き暗号化手段１４から暗号文Ｃを取得する。また、暗号文出力手段１６は、タグ生成手段１５からタグＴを取得する。すると、暗号文出力手段１６は、取得した暗号文ＣとタグＴとを連結する。そして、暗号文出力手段１６は、暗号文ＣとタグＴとをディスプレイ装置などの外部の装置へと出力する（ステップＳ１０６）。
【００６１】
以上が、認証付暗号化装置１の動作の一例である。
【００６２】
このように、本実施形態における認証付暗号化装置１は、平文入力手段１０と、初期ベクトル生成手段１１と、チェックサム計算手段１２と、調整値付きブロック暗号化手段１３と、マスク付き暗号化手段１４と、タグ生成手段１５と、を有している。このような構成により、チェックサム計算手段１２は、平文入力手段１０を介して入力された平文Ｍに基づいて、チェックサムＳＵＭを計算することが出来る。また、調整値付きブロック暗号化手段１３は、チェックサムＳＵＭを調整値として、初期ベクトル生成手段１１により生成された初期ベクトルを暗号化することにより、マスクＬを生成することが出来る。さらに、マスク付き暗号化手段１４は、マスクＬを用いて平文Ｍを暗号化して暗号文Ｃを生成することが出来る。そして、タグ生成手段１５は、マスクＬを暗号化することでタグＴを生成することが出来る。その結果、暗号文出力手段１６は、生成した暗号文ＣとタグＴとを出力することが出来る。
【００６３】
ここで、暗号文ＣとタグＴとを受信した復号装置は、タグＴを復号することでマスクＬを生成することが出来る。また、復号装置は、生成したマスクＬを用いて暗号文Ｃを平文Ｍに復号することが出来る。さらに、復号装置は、復号した平文Ｍに基づいてチェックサムＳＵＭを算出することが出来る。そして、復号装置は、マスクＬとチェックサムＳＵＭとを用いることで、マスクＬを復号して初期ベクトルＮを生成することが出来る。その結果、復号装置は、生成された初期ベクトルＮと初期ベクトル期待値とを比較することで、改ざんの有無を検知することが出来る。
【００６４】
このように、上記認証付暗号化装置１の各構成により生成される暗号文ＣとタグＴとを出力することで、復号側は、暗号文Ｃを復号して平文Ｍを生成するとともに、メッセージ認証を行うことが出来るようになる。つまり、上記構成により、タグＴと初期ベクトルＮとを組み合わせた処理が可能となり、容易な計算処理により生成される暗号文ＣとタグＴとのみを送信する認証付き暗号を実現することが可能となる。その結果、認証付き暗号化方式を用いる際に、効率的に帯域増加を防止することが可能となる。
【００６５】
なお、本実施形態においては、認証付暗号化装置１がＥＣＢ（Ｅｌｅｃｔｒｏｎｉｃ  ＣｏｄｅＢｏｏｋ）モードを利用する場合について説明した。しかしながら、認証付暗号化装置１は、例えば、ＣＢＣ（Ｃｉｐｈｅｒ  Ｂｌｏｃｋ  Ｃｈａｉｎｉｎｇ）モードなどを利用するように構成しても構わない。
【００６６】
［第２の実施形態］
次に、本発明の第２の実施形態について、図８、図９を参照して説明する。図８は、本発明の第２の実施形態に係る認証付復号装置２の構成の一例を示すブロック図である。図９は、認証付復号装置２の動作の一例を示すフローチャートである。
【００６７】
本発明の第２の実施形態では、第１の実施形態で説明した認証付暗号化装置１が出力した暗号文ＣとタグＴとを復号して、平文Ｍを生成するとともに改ざんの有無を検出する認証付復号装置２について説明する。
【００６８】
本実施形態における認証付復号装置２は、演算装置と記憶装置とを有する情報処理装置である。記憶装置にはプログラムが記憶されており、記憶装置に記憶されたプログラムを演算装置が読み込んで実行することにより、後述する各手段を実現する。
【００６９】
図８を参照すると、認証付復号装置２は、暗号文入力手段２０（暗号文入力部）と、マスク生成手段２１（マスク値算出部）と、マスク付き復号手段２２（平文復号部）と、チェックサム計算手段２３（調整値算出部）と、調整値付きブロック復号手段２４（初期ベクトル生成部）と、初期ベクトル検査手段２５（初期ベクトル検査部）と、平文出力手段２６と、を有している。
【００７０】
暗号文入力手段２０（暗号文入力部）は、復号の対象となる暗号文ＣとタグＴとを入力する手段である。暗号文入力手段２０は、例えば、キーボードなどの文字入力装置により構成されている。なお、暗号文入力手段２０は、例えば、ネットワークなどを介して接続された外部の装置から暗号文ＣとタグＴとを入力可能なよう構成しても構わない。
【００７１】
上記のように、暗号文入力手段２０を介して、暗号文ＣとタグＴとが入力される。そして、暗号文ＣとタグＴとを入力された暗号文入力手段２０は、入力されたタグＴをマスク生成手段２１へと出力するとともに、暗号文Ｃをマスク付き復号手段２２へと出力する。
【００７２】
マスク生成手段２１（マスク値算出部）は、暗号文入力手段２０から取得したタグＴを用いて、マスクＬを生成する。例えば、マスク生成手段２１は、第１の実施形態で説明したタグ生成手段１５で用いられるブロック暗号の復号関数を用いてタグＴを復号することで、マスクＬを生成する。その後、マスク生成手段２１は、生成したマスクＬをマスク付き復号手段２２と調整値付きブロック復号手段２４へと出力する。
【００７３】
マスク付き復号手段２２（平文復号部）は、マスク生成手段２１から取得したマスクＬを用いて、暗号文入力手段２０から取得した暗号文Ｃを復号して平文Ｍを生成する。例えば、マスク付き復号手段２２は、第１の実施形態で説明したマスク付き暗号化手段１４の逆関数Ｄを行うことで、暗号文Ｃを復号して平文Ｍを生成する。
【００７４】
例えば、暗号文Ｃがｍ個のｎビットブロック（Ｃ［１］、…、Ｃ［ｍ］）からなり、第１の実施形態で説明した
Ｃ［ｉ］＝Ｅ（ｍｕｌ（２ｉ，Ｌ）＋Ｍ［ｉ］）＋ｍｕｌ（２ｉ，Ｌ）
但し、ｉ＝１〜ｍ−１
を用いて暗号化が行われている場合を想定する。この場合、マスク付き復号手段２２は、暗号文の各ブロックＣ［ｉ］（ｉ＝１、…、ｍ−１）に対して、例えば以下で示すような処理を実行して、暗号文Ｃ（最終ブロックを除く）を復号する。
Ｍ［ｉ］＝Ｄ（ｍｕｌ（２ｉ，Ｌ）＋Ｃ［ｉ］）＋ｍｕｌ（２ｉ，Ｌ）
また、マスク付き復号手段２２は、例えば、以下で示すような処理を実行して、暗号文Ｃの最終ブロックＣ［ｍ］を復号する。
Ｍ［ｍ］＝ｍｓｂ＿｜Ｃ［ｍ］｜（Ｅ（ｍｕｌ（２ｍ，Ｌ）））＋Ｃ［ｍ］
【００７５】
例えば、このような処理により、マスク付き復号手段２２は、暗号文入力手段２０に入力された暗号文Ｃを復号して平文Ｍを生成する。その後、マスク付き復号手段２２は、生成した平文Ｍをチェックサム計算手段２３と平文出力手段２６へと出力する。
【００７６】
チェックサム計算手段２３（調整値算出部）は、マスク付き復号手段２２から取得した平文Ｍから、簡易な計算によりｎビットのチェックサムＳＵＭを算出する。その後、チェックサム計算手段２３は、算出したチェックサムＳＵＭを調整値付きブロック復号手段２４へと出力する。
【００７７】
チェックサム計算手段２３は、第１の実施形態で説明したチェックサム計算手段１２と同様の処理によりチェックサムＳＵＭを算出する。チェックサム計算手段２３により行われるチェックサムＳＵＭの算出処理の詳細な説明については、第１の実施形態で既に行ったものと同様なため省略する。
【００７８】
調整値付きブロック復号手段２４（初期ベクトル生成部）は、チェックサム計算手段２３から取得したチェックサムＳＵＭを調整値（Ｔｗｅａｋ、ツィーク）として、マスクＬを復号処理して初期ベクトルＮを生成する。具体的には、調整値付きブロック復号手段２４は、第１の実施形態で説明した調整値付きブロック暗号化手段１３の逆関数を行うことで、マスクＬを復号して初期ベクトルＮを生成する。その後、調整値付きブロック復号手段２４は、生成した初期ベクトルＮを初期ベクトル検査手段２５へと出力する。
【００７９】
なお、調整値付きブロック復号手段２４は、調整値付きブロック暗号化手段１３と同様に、通常のｎビットブロック暗号を用いて実現することが出来る。
【００８０】
初期ベクトル検査手段２５（初期ベクトル検査部）は、調整値付きブロック復号手段２４から取得した初期ベクトルＮと、暗号文ＣタグＴのペアに対して復号側が期待する初期ベクトル値である初期ベクトル期待値Ｎ＊と、を比較して、改ざんの有無を検出する。初期ベクトル検査手段２５は、初期ベクトルＮと初期ベクトル期待値Ｎ＊との比較の後、検証結果を２値表現した検証結果Ｂ（検査合格ならＡＣＫ、検査失敗ならＮＣＫ）を出力するとともに、必要に応じて次回の検査で用いる初期ベクトル期待値Ｎ＊＿ｎｅｗを生成することになる。
【００８１】
例えば、初期ベクトル検査手段２５は、図示しない記憶部に初期ベクトル期待値Ｎ＊を予め記憶しておき、調整値付きブロック復号手段２４から取得した初期ベクトルＮと、予め記憶した初期ベクトル期待値Ｎ＊と、を比較する。そして、初期ベクトル検査手段２５は、初期ベクトルＮと初期ベクトル期待値Ｎ＊とが一致した場合に、改ざんは無いと判断してＢ＝ＡＣＫを出力する（検査合格）。また、この場合、初期ベクトル検査手段２５は、暗号側が用いる初期ベクトルＮの更新関数がｆであるとすると、新たな初期ベクトル期待値Ｎ＊＿ｎｅｗ＝ｆ（Ｎ）を生成し、上記図示しない記憶部に記憶する。つまり、初期ベクトル検査手段２５は、検査合格の場合、例えば、初期ベクトルをＮからＮ＋１に更新する（初期ベクトル更新関数ｆ（Ｎ）＝Ｎ＋１の場合）。一方、初期ベクトル検査手段２５は、初期ベクトルＮと初期ベクトル期待値Ｎ＊とが一致しない場合に、改ざんがあったと判断してＢ＝ＮＣＫを出力する（検査失敗）。この場合には、初期ベクトル検査手段２５は、初期ベクトル期待値Ｎ＊を更新しない。つまり、新たな初期ベクトル期待値Ｎ＊＿ｎｅｗ＝Ｎ＊となる。
【００８２】
初期ベクトル検査手段２５は、例えば、上記処理により初期ベクトルＮと初期ベクトル期待値Ｎ＊とを比較して、その比較結果である検証結果Ｂを平文出力手段２６に出力する。また、初期ベクトル検査手段２５は、検査合格の場合に、初期ベクトル期待値Ｎ＊を更新する。
【００８３】
なお、初期ベクトル検査手段２５が行う比較検証の方法は、上記説明した場合に限られない。初期ベクトル検査手段２５は、例えば、閾値ｔを図示しない記憶部に予め記憶しておき、初期ベクトルＮと初期ベクトル期待値Ｎ＊との絶対値差が閾値ｔ以内である場合に検査合格と判断するように構成しても構わない。このように構成することで、初期ベクトル検査手段２５は、通信路上のパケットロスなどの情報消失に対応することが出来るようになる。なお、上記のような構成の場合、改ざんを行う攻撃者の成功確率、すなわち不正な暗号文を復号した時の初期ベクトルＮの値が偶然初期ベクトル期待値Ｎ＊と近い値になる確率は、およそｔ／（２ｎ）となる。そのため、ｔを十分小さくすることで、情報消失に対応しつつ、改ざんを高い確率で検知することが可能となる。
【００８４】
平文出力手段２６は、マスク付き復号手段２２から取得した平文Ｍと、初期ベクトル検査手段２５から取得した検証結果Ｂとを、外部の装置へと出力する。平文出力手段２６は、例えば、ディスプレイ装置やプリンタ装置などと接続されており、当該ディスプレイ装置やプリンタ装置などに、平文Ｍと検証結果Ｂとを出力する。
【００８５】
具体的には、例えば、平文出力手段２６は、検証結果Ｂ＝ＡＣＫ（検査合格）であった場合に、検証結果Ｂと平文Ｍを出力する。一方、平文出力手段２６は、検証結果Ｂ＝ＮＣＫ（検査失敗）であった場合に、検証結果Ｂを出力する一方で平文Ｍを空列として出力する。例えばこのように、平文出力手段２６は、検証結果Ｂと平文Ｍとを外部の装置に出力する。なお、平文出力手段２６は、検証結果Ｂに関わらず検証結果Ｂと平文Ｍとを出力するように構成しても構わない。
【００８６】
以上が、認証付復号装置２の構成の一例である。次に、認証付復号装置２の動作の一例について、図９を用いて説明する。
【００８７】
図９を参照すると、まず、暗号文入力手段２０に暗号部ＣとタグＴとが入力される（ステップＳ２０１）。すると、暗号文入力手段２０は、入力されたタグＴをマスク生成手段２１に送信するとともに、暗号文Ｃをマスク付き復号手段２２に送信する。
【００８８】
続いて、マスク生成手段２１が、タグＴを復号してマスクＬを生成する（ステップＳ２０２）。具体的には、例えば、マスク生成手段２１は、第１の実施形態で説明したタグ生成手段１５で用いられるブロック暗号の復号関数を用いてタグＴを復号することで、マスクＬを生成する。そして、マスク生成手段２１は、生成したマスクＬをマスク付き復号手段２２と調整値付きブロック復号手段２４へと出力する。
【００８９】
マスク付き復号手段２２は、マスク生成手段２１からマスクＬを取得すると、暗号文入力手段２０から取得した暗号文Ｃを、マスクＬを用いて復号して平文Ｍを生成する（ステップＳ２０３）。具体的には、例えば、マスク付き暗復号手段２２は、下記式で表される処理を行うことで、暗号文Ｃを平文Ｍへと復号する。
Ｍ［ｉ］＝Ｄ（ｍｕｌ（２ｉ，Ｌ）＋Ｃ［ｉ］）＋ｍｕｌ（２ｉ，Ｌ）
但し、ｉ＝１〜ｍ−１
Ｍ［ｍ］＝ｍｓｂ＿｜Ｃ［ｍ］｜（Ｅ（ｍｕｌ（２ｍ，Ｌ）））＋Ｃ［ｍ］
その後、マスク付き復号手段２２は、生成した平文Ｍをチェックサム計算手段２３と平文出力手段２６へと出力する。
【００９０】
続いてチェックサム計算手段２３は、取得した平文ＭからチェックサムＳＵＭを計算する（ステップＳ２０４）。具体的には、例えば、チェックサム計算手段２３は、平文Ｍをｎビットごとのブロックに分割した際の、各平文ブロックの排他的論理和を算出することで、チェックサムＳＵＭを算出する。そして、チェックサム計算手段２３は、計算したチェックサムＳＵＭを調整値付きブロック復号手段２４へと出力する。
【００９１】
その後、調整値付きブロック復号手段２４が、チェックサム計算手段２３が計算したチェックサムＳＵＭを取得する。すると、調整値付きブロック復号手段２４は、チェックサム計算手段２３が算出したチェックサムＳＵＭを調整値としてマスクＬを復号して、初期ベクトルＮを生成する（ステップＳ２０５）。例えば、この処理は、調整値付きブロック暗号化手段１３の逆関数を行うことで、実行されることになる。その後、調整値付きブロック復号手段２４は、生成した初期ベクトルＮを初期ベクトル検査手段２５へと出力する。
【００９２】
そして、初期ベクトル検査手段２５は、調整値付きブロック復号手段２４から初期ベクトルＮを取得すると、当該初期ベクトルＮと予め記憶している初期ベクトル期待値Ｎ＊とが一致しているか否かを判断する（ステップＳ２０６）。
【００９３】
初期ベクトルＮと初期ベクトル期待値Ｎ＊とが一致している場合（ステップＳ２０６、Ｙｅｓ）、初期ベクトル検査手段２５は、検証結果Ｂ＝ＡＣＫ（検査合格）とするとともに、新たな初期ベクトル期待値Ｎ＊＿ｎｅｗ＝ｆ（Ｎ）に初期ベクトル期待値Ｎ＊を更新する（ステップＳ２０７）。そして、初期ベクトル検査手段２５は、検証結果Ｂ＝ＡＣＫを平文出力手段２６へと出力する。その後、平文出力手段２６は、平文Ｍと検証結果Ｂとを出力する（ステップＳ２０８）。
【００９４】
一方、初期ベクトルＮと初期ベクトル期待値Ｎ＊とが一致していない場合（ステップＳ２０６、Ｎｏ）、初期ベクトル検査手段２５は、検証結果Ｂ＝ＮＣＫ（検査失敗）とするとともに、初期ベクトル期待値Ｎ＊を更新しない（ステップＳ２０９）。そして、初期ベクトル検査手段２５は、検証結果Ｂ＝ＮＣＫを平文出力手段２６へと出力する。その後、平文出力手段２６は、検証結果Ｂを出力する一方で、平文Ｍを空列で出力する（ステップＳ２１０）。
【００９５】
以上が、認証付復号装置２の動作の一例である。例えばこのような動作により、認証付復号装置２は、暗号文Ｃを平文Ｍに復号するとともに、改ざんの有無を検出する。
【００９６】
このように、本実施形態における認証付復号装置２は、暗号文入力手段２０と、マスク生成手段２１と、マスク付き復号手段２２と、チェックサム計算手段２３と、調整値付きブロック復号手段２４と、初期ベクトル検査手段２５と、平文出力手段２６と、を有している。このような構成により、マスク生成手段２１は、暗号文入力手段２０を介して入力されたタグＴを復号して、マスクＬを生成することが出来る。また、マスク付き復号手段２２は、暗号文入力手段２０を介して入力された暗号文Ｃを、マスクＬを用いて復号することで平文Ｍを生成することが出来る。さらに、チェックサム計算手段２３は、平文Ｍに基づいてチェックサムＳＵＭを算出することができ、調整値付きブロック復号手段２４は、チェックサムＳＵＭを調整値として、マスクＬを初期ベクトルＮに復号することが出来る。そして、初期ベクトル検査手段２５は、初期ベクトルＮと初期ベクトル期待値Ｎ＊とを比較することで改ざんの有無を検出することが出来る。
【００９７】
以上より、上記構成によると、暗号文ＣとタグＴとを受け取るだけで、暗号文Ｃを平文Ｍに復号するとともに、改ざんの有無を検出することが可能となる。その結果、認証付き暗号化方式を用いる際に、効率的に帯域増加を防止することが可能となる。
【００９８】
なお、本実施形態においては、認証付復号装置２について説明した。しかしながら、例えば図１０で示すように、第１の実施形態で説明した認証付暗号化装置１と認証付復号装置２とを同時に用いる認証付暗号システムにより、本発明を実現しても構わない。認証付暗号化装置１と認証付復号装置２との構成は、既に説明したものと同様のため、省略する。
【００９９】
次に本発明の第３の実施形態について図１１を参照して説明する。
[第３の実施形態]
第３の実施形態では、入力された平文を暗号化して出力する、認証付暗号化装置３について説明する。本実施形態における認証付暗号化装置３は、平文を暗号化した暗号文とタグとを出力するよう構成されている。なお、本実施形態では、認証付暗号化装置３の構成の概略について説明する。
【０１００】
図１１を参照すると、本実施形態における認証付暗号化装置３は、平文入力部３１と、固定長値生成部３２と、マスク値生成部３３と、平文暗号化部３４と、タグ生成部３５と、を有している。
【０１０１】
平文入力部３１は、平文の入力を受け付ける。また、固定長値生成部３２は、当該固定長値生成部３２が過去に生成した値とは異なる新たな固定長値を生成する。
【０１０２】
マスク値生成部３３は、平文入力部３１が受け付けた平文に基づく調整値を用いて、固定長値生成部３２が生成した固定長値を暗号化してマスク値を生成する。つまり、マスク値生成部３３は、平文入力部３１から平文を取得する。また、マスク値生成部３３は、固定長値生成部３２から固定長値を取得する。そして、マスク値生成部３３は、平文に基づく調整値を用いて、上記固定長値を暗号化してマスク値を生成する。
【０１０３】
平文暗号化部３４は、マスク値生成部３３が生成したマスク値を用いて、平文を暗号化して暗号文を生成する。つまり、平文暗号化部３４は、マスク値生成部３３からマスク値を取得する。また、平文暗号化部３４は、平文入力部３１から平文を取得する。そして、平文暗号化部３４は、マスク値を用いて平文を暗号化して暗号文を生成する。
【０１０４】
タグ生成部３５は、マスク値生成部３３が生成したマスク値を暗号化してタグを生成する。つまり、タグ生成部３５は、マスク値生成部３３からマスク値を取得すると、当該取得したマスク値を暗号化してタグを生成する。
【０１０５】
その後、認証付暗号化装置３は、平文暗号化部３４が暗号化した暗号文とタグ生成部３５が生成したタグとを出力する。
【０１０６】
このように、本実施形態における認証付暗号化装置３は、平文入力部３１と、固定長値生成部３２と、マスク値生成部３３と、平文暗号化部３４と、タグ生成部３５とを有している。このような構成により、マスク値生成部３３は、平文入力部３１に入力された平文に基づく調整値を用いて、固定長値生成部３２が生成した固定長値を暗号化することにより、マスク値を生成することが出来る。また、平文暗号化部３４は、マスク値を用いて、平文を暗号化して暗号文を生成することが出来る。そして、タグ生成部３５は、マスク値を暗号化してタグを生成することが出来る。その結果、認証付暗号化装置３は、暗号文とタグとを出力することが出来る。
【０１０７】
ここで、上記暗号文とタグとを受信した復号側では、タグを復号してマスク値を生成することが出来る。また、マスク値を用いて暗号文を復号して平文を生成することが出来る。そして、平文に基づく調整値を用いて、マスク値を復号して固定長値を生成することが出来る。その結果、復号側では、生成した固定長値と期待する固定長値である期待値とを比較することで、改ざんの有無を検出することが出来る。
【０１０８】
このように、上記認証付暗号化装置３の各構成により生成される暗号文とタグとを出力することで、復号側は、暗号文を復号して平文を生成するとともに、メッセージ認証を行うことが出来るようになる。つまり、上記構成により、タグと固定長値を組み合わせた処理が可能となり、容易な計算処理により生成される暗号文とタグとのみを送信する認証付き暗号を実現することが可能となる。その結果、認証付き暗号化方式を用いる際に、効率的に帯域増加を防止することが可能となる。
【０１０９】
なお、上述した認証付暗号化装置３は、情報処置装置に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、情報処理装置に、平文の入力を受け付ける平文入力部３１と、過去に生成した値とは異なる新たな固定長値を生成する固定長値生成部３２と、平文に基づく調整値を用いて、固定長値を暗号化してマスク値を生成するマスク値生成部３３と、マスク値生成部３３が生成したマスク値を用いて、平文を暗号化して暗号文を生成する平文暗号化部３４と、マスク値生成部３３が生成したマスク値を暗号化してタグを生成するタグ生成部３５と、を実現させ、平文暗号化部３４が暗号化した暗号文と、タグ生成部３５が生成したタグと、を出力するプログラムである。
【０１１０】
また、上述した認証付暗号化装置３が作動することにより実行される認証付暗号化方法は、平文の入力を受け付け、過去に生成した値とは異なる新たな固定長値を生成し、平文に基づく調整値を用いて、固定長値を暗号化してマスク値を生成し、生成したマスク値を用いて、平文を暗号化して暗号文を生成し、生成したマスク値を暗号化してタグを生成し、暗号文と、前記タグと、を出力する、という方法である。
【０１１１】
上述した構成を有する、プログラム、又は、認証付暗号化方法、の発明であっても、上記認証付暗号化装置３と同様の作用を有するために、上述した本発明の目的を達成することが出来る。
【０１１２】
次に本発明の第４の実施形態について図１２を参照して説明する。
[第４の実施形態]
第４の実施形態では、暗号文とタグとを取得して、暗号文を復号して平文を生成するとともに、改ざんの有無を検出する認証付復号装置４について説明する。なお、本実施形態では、認証付復号装置４の構成の概略について説明する。
【０１１３】
図１２を参照すると、本実施形態における認証付復号装置４は、暗号文入力部４１と、マスク値復号部４２と、平文復号部４３と、固定長値復号部４４と、改ざん検査部４５と、を有している。
【０１１４】
暗号文入力部４１は、復号の対象となる暗号文とタグとの入力を受け付ける。
【０１１５】
マスク値復号部４２は、暗号文入力部４１に入力されたタグを復号してマスク値を生成する。つまり、マスク値復号部４２は、暗号文入力部４１からタグを取得する。そして、マスク値復号部４２は、タグを復号してマスク値を生成する。
【０１１６】
平文復号部４３は、マスク値復号部４２が生成したマスク値を用いて、暗号文を復号して平文を生成する。つまり、平文復号部４３は、マスク値復号部４２からマスク値を取得する。また、平文復号部４３は、暗号文入力部４１から暗号文を取得する。そして、平文復号部４３は、マスク値を用いて暗号文を復号して平文を生成する。
【０１１７】
固定長値復号部４４は、平文に基づく調整値を用いて、前記マスク値を復号して固定長値を生成する。つまり、固定長値復号部４４は、平文復号部４３が生成した平文に基づく調整値を用いて、マスク値復号部４２が生成したマスク値を復号して固定長値を生成する。
【０１１８】
改ざん検査部４５は、固定長値と予め記憶された期待値とを比較することで改ざんの有無を検査する。つまり、改ざん検査部４５は、固定長値復号部４４が生成した固定長値と予め記憶した期待値とを比較する。これにより、改ざん検査部４５は、改ざんの有無を検査する。
【０１１９】
このように、認証付復号装置４は、暗号文入力部４１と、マスク値復号部４２と、平文復号部４３と、固定長値復号部４４と、改ざん検査部４５と、を有している。このような構成により、マスク値復号部４２は、暗号文入力部４１を介して入力されたタグを復号して、マスク値を生成することが出来る。また、平文復号部４３は、暗号文入力部４１を介して入力された暗号文を、マスク値を用いて復号して平文を生成することが出来る。さらに、固定長値復号部４４は、平文に基づく調整値を用いて、マスク値を復号して固定長値を生成することが出来る。そして、改ざん検査部４５は、固定長値と期待値とを比較することで改ざんの有無を検出することが出来る。
【０１２０】
以上より、上記構成によると、暗号文とタグとを受け取るだけで、暗号文を平文に復号するとともに、改ざんの有無を検出することが可能となる。その結果、認証付き暗号化方式を用いる際に、効率的に帯域増加を防止することが可能となる。
【０１２１】
なお、上述した認証付復号装置４は、情報処置装置に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、情報処理装置に、復号の対象となる暗号文とタグとの入力を受け付ける暗号文入力部４１と、暗号文入力部４１に入力されたタグを復号してマスク値を生成するマスク値復号部４２と、マスク値復号部４２が生成したマスク値を用いて、暗号文を復号して平文を生成する平文復号部４３と、平文に基づく調整値を用いて、マスク値を復号して固定長値を生成する固定長値復号部４４と、固定長値と予め記憶された期待値とを比較することで改ざんの有無を検査する改ざん検査部４５と、を実現させ、改ざん検査部４５が検査した改ざんの有無と、平文復号部４３が生成した平文と、を出力するプログラムである。
【０１２２】
また、上述した認証付復号装置４が作動することにより実行される認証付復号方法は、復号の対象となる暗号文とタグとの入力を受け付け、タグを復号してマスク値を生成し、マスク値を用いて、暗号文を復号して平文を生成し、平文に基づく調整値を用いて、マスク値を復号して固定長値を生成し、固定長値と予め記憶された期待値とを比較することで改ざんの有無を検査し、改ざんの有無と、平文と、を出力する、という方法である。
【０１２３】
上述した構成を有する、プログラム、又は、認証付復号方法、の発明であっても、上記認証付復号装置４と同様の作用を有するために、上述した本発明の目的を達成することが出来る。
【０１２４】
また、図１３で示すような認証付暗号化装置３と認証付復号装置４とを備える認証付暗号システムであっても、本発明の目的を達成することが出来る。認証付暗号システムは、例えば、平文の入力を受け付ける平文入力部３１と、過去に生成した値とは異なる新たな固定長値を生成する固定長値生成部３２と、平文に基づく調整値を用いて、固定長値を暗号化してマスク値を生成するマスク値生成部３３と、マスク値生成部３３が生成したマスク値を用いて、平文を暗号化して暗号文を生成する平文暗号化部３４と、マスク値生成部３３が生成したマスク値を暗号化してタグを生成するタグ生成部３５と、を備え、平文暗号化部３４が暗号化した暗号文と、タグ生成部３３が生成したタグと、を出力する認証付暗号化装置３と、認証付暗号化装置３が出力した暗号文とタグとの入力を受け付ける暗号文入力部４１と、暗号文入力部４１に入力されたタグを復号してマスク値を算出するマスク値復号部４２と、マスク値復号部４２が算出したマスク値を用いて、暗号文を復号して平文を生成する平文復号部４３と、平文に基づく調整値を用いて、マスク値を復号して固定長値を生成する固定長値復号部４４と、固定長値と予め記憶された期待値とを比較することで改ざんの有無を検査する改ざん検査部４５と、を備え、改ざん検査部４５が検査した改ざんの有無と、平文復号部４３が生成した平文と、を出力する認証付復号装置４と、を備えている。
【０１２５】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における認証付暗号化装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
【０１２６】
（付記１）
平文の入力を受け付ける平文入力部と、
過去に生成した値とは異なる新たな固定長値を生成する固定長値生成部と、
前記平文に基づく調整値を用いて、前記固定長値を暗号化してマスク値を生成するマスク値生成部と、
前記マスク値生成部が生成したマスク値を用いて、前記平文を暗号化して暗号文を生成する平文暗号化部と、
前記マスク値生成部が生成したマスク値を暗号化してタグを生成するタグ生成部と、を備え、
前記平文暗号化部が暗号化した暗号文と、前記タグ生成部が生成したタグと、を出力するよう構成された
認証付暗号化装置。
【０１２７】
（付記２）
付記１に記載の認証付暗号化装置であって、
前記平文入力部に入力された平文から固定長の前記調整値を算出する調整値算出部を備え、
前記マスク値生成部は、前記調整値算出部が算出する調整値を用いて、前記固定長値を暗号化して前記マスク値を生成するよう構成された
認証付暗号化装置。
【０１２８】
（付記３）
付記２に記載の認証付暗号化装置であって、
前記調整値算出部は、前記平文入力部に入力された平文を所定長のブロックに分割した際の各ブロックの排他的論理和を算出することで前記調整値を算出するよう構成された
認証付暗号化装置。
【０１２９】
（付記４）
付記１乃至３のいずれかに記載の認証付暗号化装置であって、
前記平文暗号化部は、前記平文を所定長のブロックに分割した際のブロックの一つである平文ブロックの値と、前記平文中における前記平文ブロックの順番に応じた有限体の定数と前記マスク値とを乗算した値である乗算値と、の排他的論理和を算出した後、所定のブロック暗号により暗号化を行い、当該暗号化の結果と前記乗算値との排他的論理和を算出することで、前記平文を暗号化して前記暗号文を生成するよう構成された
認証付暗号化装置。
【０１３０】
（付記５）
付記４に記載の認証付暗号化装置であって、
前記平文暗号化部は、前記平文を所定長のブロックに分割した際の最後のブロックである最終ブロックを、当該最終ブロックに応じた有限体の定数を暗号化した結果に基づいて算出される値と当該平文の最終ブロックの値との排他的論理和を算出することで暗号化するよう構成された
認証付暗号化装置。
【０１３１】
（付記６）
復号の対象となる暗号文とタグとの入力を受け付ける暗号文入力部と、
前記暗号文入力部に入力されたタグを復号してマスク値を生成するマスク値復号部と、
前記マスク値復号部が生成したマスク値を用いて、前記暗号文を復号して平文を生成する平文復号部と、
前記平文に基づく調整値を用いて、前記マスク値を復号して固定長値を生成する固定長値復号部と、
前記固定長値と予め記憶された期待値とを比較することで改ざんの有無を検査する改ざん検査部と、を備え、
前記改ざん検査部が検査した改ざんの有無と、前記平文復号部が生成した平文と、を出力するよう構成された
認証付復号装置。
【０１３２】
（付記７）
付記６に記載の認証付復号装置であって、
前記平文復号部が復号した平文から固定長の前記調整値を算出する調整値算出部を備え、
前記固定長復号部は、前記調整値算出部が算出する前記調整値を用いて、前記マスク値を復号して前記固定長値を生成するよう構成された
認証付復号装置。
【０１３３】
（付記７−１）
付記７に記載の認証付復号装置であって、
前記改ざん検査部は、前記固定長値と予め記憶された期待値との差の絶対値と、予め記憶した閾値と、に基づいて、改ざんの有無を検査する
認証付復号装置。
【０１３４】
（付記８）
平文の入力を受け付ける平文入力部と、
過去に生成した値とは異なる新たな固定長値を生成する固定長値生成部と、
前記平文に基づく調整値を用いて、前記固定長値を暗号化してマスク値を生成するマスク値生成部と、
前記マスク値生成部が生成したマスク値を用いて、前記平文を暗号化して暗号文を生成する平文暗号化部と、
前記マスク値生成部が生成したマスク値を暗号化してタグを生成するタグ生成部と、を備え、
前記平文暗号化部が暗号化した暗号文と、前記タグ生成部が生成したタグと、を出力する認証付暗号化装置と、
暗号文とタグとの入力を受け付ける暗号文入力部と、
前記暗号文入力部に入力されたタグを復号してマスク値を生成するマスク値復号部と、
前記マスク値復号部が生成したマスク値を用いて、前記暗号文入力部が入力を受け付けた暗号文を復号して平文を生成する平文復号部と、
前記平文復号部が生成した平文に基づく調整値を用いて、前記マスク値復号部が生成したマスク値を復号して固定長値を生成する固定長値復号部と、
前記固定長値復号部が生成した固定長値と予め記憶された期待値とを比較することで改ざんの有無を検査する改ざん検査部と、を備え、
前記改ざん検査部が検査した改ざんの有無と、前記平文復号部が生成した平文と、を出力する認証付復号装置と、を備える
認証付暗号システム。
【０１３５】
（付記９）
平文の入力を受け付け、
過去に生成した値とは異なる新たな固定長値を生成し、
前記平文に基づく調整値を用いて、前記固定長値を暗号化してマスク値を生成し、
前記生成したマスク値を用いて、前記平文を暗号化して暗号文を生成し、
前記生成したマスク値を暗号化してタグを生成し、
前記暗号文と、前記タグと、を出力する
認証付暗号化方法。
【０１３６】
（付記９−１）
復号の対象となる暗号文とタグとの入力を受け付け、
前記タグを復号してマスク値を生成し、
前記マスク値を用いて、前記暗号文を復号して平文を生成し、
前記平文に基づく調整値を用いて、前記マスク値を復号して固定長値を生成し、
前記固定長値と予め記憶された期待値とを比較することで改ざんの有無を検査し、
前記改ざんの有無と、前記平文と、を出力する
認証付復号方法。
【０１３７】
（付記９−２）
平文の入力を受け付け、
過去に生成した値とは異なる新たな固定長値を生成し、
前記平文に基づく調整値を用いて、前記固定長値を暗号化してマスク値を生成し、
前記生成したマスク値を用いて、前記平文を暗号化して暗号文を生成し、
前記生成したマスク値を暗号化してタグを生成し、
前記暗号文と、前記タグと、を出力し、
前記暗号文と、前記タグと、の入力を受け付け、
前記タグを復号して前記マスク値を生成し、
前記マスク値を用いて、前記暗号文を復号して前記平文を生成し、
前記平文に基づく前記調整値を用いて、前記マスク値を復号して前記固定長値を生成し、
前記固定長値と予め記憶された期待値とを比較することで改ざんの有無を検査し、
前記改ざんの有無と、前記平文と、を出力する
認証付暗号処理方法。
【０１３８】
（付記１０）
情報処理装置に、
平文の入力を受け付ける平文入力部と、
過去に生成した値とは異なる新たな固定長値を生成する固定長値生成部と、
前記平文に基づく調整値を用いて、前記固定長値を暗号化してマスク値を生成するマスク値生成部と、
前記マスク値生成部が生成したマスク値を用いて、前記平文を暗号化して暗号文を生成する平文暗号化部と、
前記マスク値生成部が生成したマスク値を暗号化してタグを生成するタグ生成部と、を実現させ、
前記平文暗号化部が暗号化した暗号文と、前記タグ生成部が生成したタグと、を出力する
プログラム。
【０１３９】
（付記１０−１）
情報処理装置に、
復号の対象となる暗号文とタグとの入力を受け付ける暗号文入力部と、
前記暗号文入力部に入力されたタグを復号してマスク値を生成するマスク値復号部と、
前記マスク値復号部が生成したマスク値を用いて、前記暗号文を復号して平文を生成する平文復号部と、
前記平文に基づく調整値を用いて、前記マスク値を復号して固定長値を生成する固定長値復号部と、
前記固定長値と予め記憶された期待値とを比較することで改ざんの有無を検査する改ざん検査部と、を実現させ、
前記改ざん検査部が検査した改ざんの有無と、前記平文復号部が生成した平文と、を出力する
プログラム。
【０１４０】
なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【０１４１】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
【０１４２】
なお、本発明は、日本国にて２０１４年１０月３０日に特許出願された特願２０１４−２２１７５４の特許出願に基づく優先権主張の利益を享受するものであり、当該特許出願に記載された内容は、全て本明細書に含まれるものとする。
【符号の説明】
【０１４３】
１、３  認証付暗号化装置
１０  平文入力手段
１１  初期ベクトル生成手段
１２  チェックサム計算手段
１３  調整値付きブロック暗号化手段
１３１、１３３、１３５  暗号化部
１３２、１３４  計算部
１４  マスク付き暗号化手段
１４１  計算部
１４２  暗号化部
１５  タグ生成手段
１６  暗号文出力手段
２、４  認証付復号装置
２１  マスク生成手段
２２  マスク付き復号手段
２３  チェックサム計算手段
２４  調整値付きブロック復号手段
２５  初期ベクトル検査手段
２６  平文出力手段
３１  平文入力部
３２  固定長値生成部
３３  マスク値生成部
３４  平文暗号化部
３５  タグ生成部
４１  暗号文入力部
４２  マスク値復号部
４３  平文復号部
４４  固定長値復号部
４５  改ざん検査部
【図１】
2016067524.tif 000003
【図２】
2016067524.tif 000004
【図３】
2016067524.tif 000005
【図４】
2016067524.tif 000006
【図５】
2016067524.tif 000007
【図６】
2016067524.tif 000008
【図７】
2016067524.tif 000009
【図８】
2016067524.tif 000010
【図９】
2016067524.tif 000011
【図１０】
2016067524.tif 000012
【図１１】
2016067524.tif 000013
【図１２】
2016067524.tif 000014
【図１３】
2016067524.tif 000015
【国際調査報告】
2016067524.tif 000016
2016067524.tif 000017
2016067524.tif 000018
2016067524.tif 000019
2016067524.tif 000020
2016067524.tif 000021