(57)【要約】【課題】ブロック暗号における認証暗号化装置を提供する。【解決手段】認証暗号化装置２００は、データをブロックデータに分割するブロック分割手段２０２と、ナンスからブロックナンスを生成するブロックナンス生成手段２０３と、ブロックナンスを暗号化しブロックデータとＸＯＲをとり暗号データを生成する暗号データ生成手段２０４と、全ブロックデータのＸＯＲをとり暗号化しデータ用認証タグを生成するデータ用認証タグ生成手段２０５と、認証情報を暗号化して認証情報用認証タグを生成する認証情報用認証タグ生成手段２０６と、データ用認証タグと認証情報用認証タグとから認証タグを生成する認証タグ生成手段２０７と、ナンス、認証情報、暗号データおよび認証タグを関連付けて認証暗号データを生成する認証暗号データ生成手段２０８と、を備える。【選択図】図３
2016075765.tif 000002
【特許請求の範囲】
【請求項１】
データのブロック暗号による暗号化と当該データを認証するための情報の生成とを行う認証暗号化装置であって、
前記データを、ブロック暗号の単位であるブロックサイズに分割してブロックデータを生成するブロック分割手段と、
ランダム値であるナンスから、前記ブロックデータごとに異なる値となるブロックナンスを生成するブロックナンス生成手段と、
前記ブロックデータに対応するブロックナンスを共通鍵暗号の暗号鍵で暗号化し、当該ブロックデータと排他的論理和をとることで、前記ブロックデータごとに暗号化した暗号ブロックデータからなる暗号データを生成する暗号データ生成手段と、
前記ブロック分割手段で分割されたブロックデータの排他的論理和を演算し、前記暗号鍵で暗号化することで、データ用認証タグを生成するデータ用認証タグ生成手段と、
前記データを識別する認証情報を前記暗号鍵で暗号化することで、認証情報用認証タグを生成する認証情報用認証タグ生成手段と、
前記データ用認証タグと前記認証情報用認証タグとの排他的論理和を演算し、認証タグを生成する認証タグ生成手段と、
前記ナンスと、前記認証情報と、前記暗号データと、前記認証タグとを関連付けた認証暗号データを生成する認証暗号データ生成手段と、
を備えることを特徴とする認証暗号化装置。
【請求項２】
コンピュータを、請求項１に記載の認証暗号化装置として機能させるための認証暗号化プログラム。
【請求項３】
請求項１に記載の認証暗号化装置で生成された認証暗号データを復号する認証復号装置であって、
前記認証暗号データに含まれる暗号データを、前記認証暗号化装置と同じブロック暗号の単位であるブロックサイズに分割して暗号ブロックデータを生成する暗号ブロック分割手段と、
前記認証暗号データに含まれるナンスから、前記暗号ブロックデータごとに異なる値となるブロックナンスを前記認証暗号化装置と同じ手法で生成するブロックナンス生成手段と、
前記暗号ブロックデータに対応するブロックナンスを前記認証暗号化装置と同じ暗号鍵で暗号化し、当該暗号ブロックデータと排他的論理和をとることで、前記暗号ブロックデータごとに復号したブロックデータからなるデータを生成する復号データ生成手段と、
この復号データ生成手段で生成されたブロックデータの排他的論理和を演算し、前記暗号鍵で暗号化することで、データ用認証タグを生成するデータ用認証タグ生成手段と、
前記認証暗号データに含まれる認証情報を前記暗号鍵で暗号化することで、認証情報用認証タグを生成する認証情報用認証タグ生成手段と、
前記データ用認証タグと前記認証情報用認証タグとの排他的論理和を演算し、復元認証タグを生成する認証タグ生成手段と、
この認証タグ生成手段で生成された復元認証タグと、前記認証暗号データに含まれる認証タグとが一致するか否かを検証する検証手段と、
を備えることを特徴とする認証復号装置。
【請求項４】
コンピュータを、請求項３に記載の認証復号装置として機能させるための認証復号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの暗号化と認証とを行う認証暗号化装置および認証復号装置、ならびに、それらのプログラムに関する。
【背景技術】
【０００２】
近年、放送または通信によって、種々雑多なデータが配信され、データの売買を行うサービスが盛んになってきている。このようなデータの売買においては、データを非購買者に対して秘匿する必要があり、さらには、データの送り主が正しい送り主であるか否かの認証を行う必要がある。
これらを効率よく行う手法として、暗号化と認証を同時に行う認証暗号技術が知られている。例えば、既存の共通鍵暗号（ＡＥＳ〔Advanced Encryption Standard〕、Ｃａｍｅｌｌｉａ等）と、共通鍵暗号の利用モードの１つであるＯＣＢ（Offset Code Book）方式とを組み合わせて利用したＯＴＲ（Offset Two-Round）方式が知られている。
【０００３】
ここで、図１２，図１３を参照して、簡単にＯＴＲ方式について説明する。図１２は、データを暗号化する側の暗号データを生成する処理と、認証用のデータ（認証タグ）を生成する処理を示している。また、図１３は、データを復号する側の暗号データの復号処理と、検証に使用する認証用のデータ（認証タグ）を生成する処理を示している。
【０００４】
図１２（ａ）に示すように、ＯＴＲ方式は、平文のデータをｎビットごとに分割し、ブロックデータＭ１，Ｍ２，…，Ｍｍ−１，Ｍｍ（ｍは分割数）を生成する。そして、ＯＴＲ方式は、分割した２個（２ｎビット）のブロックデータ（Ｍ２ｋ−１，Ｍ２ｋ）ごとに、２ラウンドのフェイステル（Feistel）置換を行うことで、暗号データＣ１，Ｃ２，…，Ｃｍ−１，Ｃｍを生成する。
【０００５】
また、図１２（ｂ）に示すように、ＯＴＲ方式は、認証情報（データの送り主の識別子等）を、ｎビットごとに分割し、ブロック認証情報Ａ１，Ａ２，…，Ａａ−１，Ａａ（ａは分割数）を生成する。そして、ＯＴＲ方式は、ブロック認証情報Ａ１，Ａ２，…，Ａａ−１を暗号化したデータと、Ａａをランダムな値と排他的論理和の演算をして得られるデータと、ブロックデータから生成されるチェックサムΣとから、認証タグＴを生成する。
このように、ＯＴＲ方式は、データをブロック暗号するとともに、当該データに対応した、認証用のデータである認証タグＴを生成する。
【０００６】
また、図１３（ａ）に示すように、ＯＴＲ方式は、図１２（ａ）で生成された暗号データＣ１，Ｃ２，…，Ｃｍ−１，Ｃｍに対して、２ｎビット、２ラウンドのフェイステル（Feistel）置換を行うことで、元のデータを構成するブロックデータＭ１，Ｍ２，…，Ｍｍ−１，Ｍｍを復号する。
【０００７】
また、図１３（ｂ）に示すように、ＯＴＲ方式は、図１２（ｂ）と同様の手法によって、認証タグＴ′を生成し、図１２（ｂ）で生成された認証タグＴと一致するか否かにより、データの送り主が正しい送り主か否かの検証を行う。
この図１２，図１３中、Ｎは、暗号化の際に使用するナンス（ｎｏｎｃｅ：number used once）Ｌ０，Ｌ１，…を生成するための初期値である。また、同図中、「Ｐａｄ」は、ｎビットに満たないデータへのパディング処理、「Ｅｎｃ」は、暗号化処理、「ｍｓｂ」は、最上位ビットから所定ビット数のデータ抽出処理を意味している。また、同図中、丸付きプラス記号は、排他的論理和（ｘｏｒ：exclusive or）を示す。
なお、図１２，図１３は、ＯＴＲ方式の処理の一部を抜粋して図示したもので、ブロックデータＭ１，Ｍ２，…，Ｍｍ−１，Ｍｍの個数が偶数であって、ＭｍやＡａがｎビットに満たない場合の処理を示している。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】Kazuhiko Minematsu,“Parallelizable Rate-1 Authenticated Encryption from Pseudorandom Functions”, Proceedings of EUROCRYPT 2014, pp.275-292, 2014.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
前記したＯＴＲ方式は、図１２（ａ），図１３（ａ）で示したように、データを分割した２つブロックデータＭ２ｋ−１，Ｍ２ｋに対して、異なるタイミングで２回の暗号化が必要となっていた。すなわち、ＯＴＲ方式は、１つのブロックデータのみでは、当該ブロックデータの暗号化処理（復号処理）を完了できず、２つのブロックデータが揃った段階で、それぞれのブロックデータの暗号化（復号）を完了することができる。
このように、ＯＴＲ方式は、それぞれのブロックデータを完全に独立して処理することができないという問題があった。この問題は、データを暗号化（復号）する際の処理時間にも影響することとなり、完全に並列処理可能な手法が望まれていた。
【００１０】
さらに、ＯＴＲ方式は、２つブロックデータＭ２ｋ−１，Ｍ２ｋを基本単位として暗号化処理（復号処理）を行うため、分割数が奇数の場合、最終ブロックデータの暗号化処理（復号処理）が、偶数の場合と異なることになる。
このように、ＯＴＲ方式は、ブロックデータの数によって、異なる処理を行わなければならず、処理が複雑になるという問題があった。
【００１１】
本発明は、このような問題に鑑みてなされたものであり、ブロック暗号を行う際に、ブロックに分割したデータを、分割数に依存せずに独立して暗号化し、認証を行うことが可能な認証暗号化装置および認証復号装置、ならびに、それらのプログラムを提供することを課題とする。
【課題を解決するための手段】
【００１２】
前記課題を解決するため、本発明に係る認証暗号化装置は、データのブロック暗号による暗号化と当該データを認証するための情報の生成とを行う認証暗号化装置であって、ブロック分割手段と、ブロックナンス生成手段と、暗号データ生成手段と、データ用認証タグ生成手段と、認証情報用認証タグ生成手段と、認証タグ生成手段と、認証暗号データ生成手段と、を備える。
【００１３】
かかる構成において、認証暗号化装置は、ブロック分割手段によって、データを、当該認証暗号化装置で使用するブロック暗号の単位であるブロックサイズに分割して、ブロックデータを生成する。このブロックデータがブロック暗号における暗号化の単位となる。
また、認証暗号化装置は、ブロックナンス生成手段によって、ナンスから、ブロックデータごとに異なる値となるブロックナンスを生成する。このナンスは、データを暗号化する際に使用する使い捨てのランダム値である。
【００１４】
そして、認証暗号化装置は、暗号データ生成手段によって、ブロックデータに対応するブロックナンスを共通鍵暗号の暗号鍵で暗号化し、当該ブロックデータと排他的論理和をとることで、ブロックデータごとに暗号化した暗号ブロックデータからなる暗号データを生成する。このように、暗号データ生成手段は、ブロックデータごとに独立して暗号化することができる。
【００１５】
そして、認証暗号化装置は、データ用認証タグ生成手段によって、ブロック分割手段で分割されたブロックデータの排他的論理和を演算し、暗号鍵で暗号化することで、データ用認証タグを生成する。これによって、ブロックデータのチェックサムが計算され、復号側でデータのチェックサムによる認証が可能になる。
また、認証暗号化装置は、認証情報用認証タグ生成手段によって、データを識別する認証情報を暗号鍵で暗号化することで、認証情報用認証タグを生成する。これによって、復号側で、データの送り主の認証が可能になる。
【００１６】
そして、認証暗号化装置は、認証タグ生成手段によって、データ用認証タグと認証情報用認証タグとの排他的論理和を演算し、認証タグを生成する。これによって、データ用認証タグと認証情報用認証タグとを１つのタグとして扱うことができる。
そして、認証暗号化装置は、認証暗号データ生成手段によって、ナンスと、認証情報と、暗号データと、認証タグとを関連付けた認証暗号データを生成する。これによって、復号側で、暗号データを復号するとともに、認証タグによる検証が可能になる。
【００１７】
また、前記課題を解決するため、本発明に係る認証復号装置は、認証暗号化装置で生成された認証暗号データを復号する認証復号装置であって、暗号ブロック分割手段と、ブロックナンス生成手段と、復号データ生成手段と、データ用認証タグ生成手段と、認証情報用認証タグ生成手段と、認証タグ生成手段と、検証手段と、を備える。
【００１８】
かかる構成において、認証復号装置は、暗号ブロック分割手段によって、認証暗号データに含まれる暗号データを、認証暗号化装置と同じブロック暗号の単位であるブロックサイズに分割して暗号ブロックデータを生成する。
また、認証復号装置は、ブロックナンス生成手段によって、認証暗号データに含まれるナンスから、暗号ブロックデータごとに異なる値となるブロックナンスを認証暗号化装置と同じ手法で生成する。これによって、ブロックナンス生成手段は、認証暗号化装置と同じブロックナンスを生成することができる。
【００１９】
そして、認証復号装置は、復号データ生成手段によって、暗号ブロックデータに対応するブロックナンスを認証暗号化装置と同じ暗号鍵で暗号化し、当該暗号ブロックデータと排他的論理和をとることで、暗号ブロックデータごとに復号したブロックデータからなるデータを生成する。これによって、復号データ生成手段は、暗号鍵による復号の演算を行わずに、認証暗号化装置と同じ暗号化の演算によって、暗号ブロックデータを復号することができる。
【００２０】
また、認証復号装置は、データ用認証タグ生成手段によって、復号データ生成手段で生成されたブロックデータの排他的論理和を演算し、暗号鍵で暗号化することで、データ用認証タグを生成する。また、認証復号装置は、認証情報用認証タグ生成手段によって、認証暗号データに含まれる認証情報を暗号鍵で暗号化することで、認証情報用認証タグを生成する。さらに、認証復号装置は、認証タグ生成手段によって、データ用認証タグと認証情報用認証タグとの排他的論理和を演算し、復元認証タグを生成する。
このように、データ用認証タグおよび認証情報用認証タグの生成手法は、認証暗号化装置と同じであるため、正規のデータであれば、これらから生成される復元認証タグは、認証暗号データに含まれる認証タグと一致することになる。
そして、認証復号装置は、検証手段によって、認証タグ生成手段で生成された復元認証タグと、認証暗号データに含まれる認証タグとが一致するか否かを検証する。これによって、認証復号装置は、データの認証を行うことができる。
【発明の効果】
【００２１】
本発明は、以下に示す優れた効果を奏するものである。
本発明による認証暗号化装置によれば、ブロック暗号により、データを分割して暗号化する際に、分割されたデータブロックごとに独立して暗号化することができるため、従来の手法に比べて、高速に暗号データを生成することができる。
また、本発明による認証復号装置によれば、暗号データを分割して復号する際に、分割されたデータブロックごとに独立して復号することができるため、従来の手法に比べて、高速に暗号データを復号することができる。
さらに、本発明によれば、データブロックごとに独立して暗号化（復号）することができるため、従来の手法のように、データブロックの数が偶数であるか奇数であるかによって処理を分ける必要がなく、処理負荷を軽減させることができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態に係るデータ配信システムの構成を示すシステム構成図である。
【図２】図１のデータサーバの構成を示すブロック構成図である。
【図３】図１の認証暗号化装置を含む暗号化サーバの構成を示すブロック構成図である。
【図４】図１の送信装置の構成を示すブロック構成図である。
【図５】図１の認証復号装置を含む受信装置の構成を示すブロック構成図である。
【図６】図２のデータサーバの動作を示すフローチャートである。
【図７】図３の認証暗号化装置を含む暗号化サーバの動作を示すフローチャートである。
【図８】図４の送信装置の動作を示すフローチャートである。
【図９】図５の認証復号装置を含む受信装置の動作を示すフローチャートである。
【図１０】図３の認証暗号化装置の処理内容を模式的に示す図であって、（ａ）は暗号データの生成処理、（ｂ）は認証タグの生成処理を示す図である。
【図１１】図５の認証復号装置の処理内容を模式的に示す図であって、（ａ）は復号データの生成処理、（ｂ）は認証タグの生成処理を示す図である。
【図１２】従来の認証暗号化装置の処理内容を模式的に示す図であって、（ａ）は暗号データの生成処理、（ｂ）は認証タグの生成処理を示す図である。
【図１３】従来の認証復号装置の処理内容を模式的に示す図であって、（ａ）は復号データの生成処理、（ｂ）は認証タグの生成処理を示す図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施形態について図面を参照して説明する。
≪データ配信システムの構成≫
最初に、図１を参照して、本発明の実施形態に係る認証暗号化装置および認証復号装置を適用したデータ配信システムの構成例について説明する。
【００２４】
データ配信システムＳは、サービス事業者から、サービス利用者の受信装置４に対してデータを配信するものである。このデータ配信システムＳは、データを配信するサービス事業者が有するデータサーバ１、暗号化サーバ２および送信装置３と、サービス利用者が有する受信装置４（４１，４２，４３，４４，…）とを備える。
【００２５】
ここでは、サービス事業者の装置であるデータサーバ１、暗号化サーバ２および送信装置３は、ネットワークＮ１を介して接続されている。また、サービス事業者の送信装置３と、サービス利用者の受信装置４とは、ネットワークＮ２を介して接続されている。このネットワークＮ１，Ｎ２は、例えば、インターネットプロトコル（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ：ＩＰ）等の通信プロトコルを適用して通信可能なコンピュータネットワークである。なお、ネットワークＮ１は、サービス事業者が接続可能な装置を制限したイントラネットとして構築されている。
【００２６】
データサーバ１は、図示を省略したデータ供給装置からデータを取得し、そのデータを記憶、供給するものである。このデータサーバ１は、記憶しているデータを暗号化サーバ２に供給する。なお、データは、サービス事業者が提供可能なデータであればよく、例えば、映像データ、音楽データ、ゲームソフト等、その種類を問わない。
【００２７】
暗号化サーバ２は、データサーバ１からデータを取得し、暗号化するものである。この暗号化サーバ２には、認証暗号化装置２００が備えられ、データの暗号化と、当該データに対する認証用のデータ（認証タグ）を生成する。この暗号化サーバ２で生成された暗号データ、認証タグ等の認証暗号データは、送信装置３を介して、受信装置４に送信される。
【００２８】
送信装置３は、受信装置４にデータを送信するものである。この送信装置３は、暗号化サーバ２から、データを暗号化した認証暗号データを取得し、配信信号に変換して、ネットワークＮ２を介して、受信装置４に送信する。
【００２９】
受信装置４は、送信装置３から、ネットワークＮ２を介して、配信信号（認証暗号データ）を受信し、復号するものである。この受信装置４には、認証復号装置４００が備えられ、データの復号と、当該データに付されている認証タグによる認証とを行う。
以下、データ配信システムＳを構成するデータサーバ１、暗号化サーバ２、送信装置３および受信装置４の構成について順次説明する。
【００３０】
＜データサーバの構成＞
最初に、図２を参照（適宜図１参照）して、データサーバ１の構成について説明する。
図２に示すように、データサーバ１は、データ取得手段１０と、データ記憶手段１１と、データ供給手段１２と、を備える。
【００３１】
データ取得手段１０は、データ配信用のデータを外部から取得するものである。このデータ取得手段１０は、図示を省略したデータ供給装置から、データを取得し、データ記憶手段１１に記憶する。なお、データ供給装置は、例えば、磁気ハードディスク装置、半導体ディスク装置等の記憶装置、ネットワークを介して接続されるデータ編集装置等である。
【００３２】
データ記憶手段１１は、データ取得手段１０で取得されたデータを記憶するもので、ハードディスク装置等の一般的な記憶装置である。例えば、データ記憶手段１１は、データを、ファイルデータとして記憶する。
【００３３】
データ供給手段１２は、暗号化サーバ２から要求されたデータを、データ記憶手段１１から読み出して、暗号化サーバ２に供給（送信）するものである。なお、データ供給手段１２は、要求のあったタイミングでデータを供給することとしてもよいし、予め定めた送出時刻等が決められた送出タイミングでデータを供給することとしてもよい。
このようにデータサーバ１を構成することで、データサーバ１は、任意、あるいは、所定時刻のタイミングで、記憶しているデータを供給することができる。
【００３４】
＜暗号化サーバ（認証暗号化装置）の構成＞
次に、図３を参照（適宜図１参照）して、暗号化サーバ２の構成について説明する。
図３に示すように、暗号化サーバ２は、ナンス取得手段２０と、データ取得手段２１と、認証情報取得手段２２と、認証暗号データ記憶手段２３と、認証暗号データ供給手段２４と、認証暗号化装置（認証暗号化手段）２００と、を備える。
【００３５】
ナンス取得手段２０は、外部からナンス（ｎｏｎｃｅ）Ｎを取得するものである。ここで、ナンスとは、データを暗号化する際に使用する使い捨てのランダム値である。ここでは、ナンス取得手段２０は、図示を省略した乱数発生装置等からナンスＮを入力し、認証暗号化装置２００（ブロックナンス生成手段２０３、認証暗号データ生成手段２０８）に出力する。
【００３６】
データ取得手段２１は、データサーバ１から、データＭを取得するものである。このデータ取得手段２１は、取得したデータＭを認証暗号化装置２００（ブロック分割手段２０２）に出力する。なお、データ取得手段２１は、受信装置４から要求のあったデータＭを、データサーバ１に要求し、当該データＭを取得することとしてもよいし、データサーバ１から、順次送出されるデータＭを入力することとしてもよい。
【００３７】
認証情報取得手段２２は、データＭを認証するための情報（認証情報ＡＤ）を外部から取得するものである。この認証情報ＡＤは、データを認証するための情報であれば特に限定するものではないが、例えば、データの送り主（サービス事業者）の識別子であってもよいし、個々のデータの識別子であってもよい。
この認証情報取得手段２２は、取得した認証情報を、認証暗号化装置２００（認証暗号データ生成手段２０８）に出力する。
【００３８】
認証暗号データ記憶手段２３は、認証暗号化装置２００で生成された認証暗号データを記憶するもので、半導体記憶装置等の一般的な記憶装置である。
この認証暗号データ記憶手段２３に記憶される認証暗号データは、ナンス取得手段２０で取得されたＮと、認証情報取得手段２２で取得された認証情報ＡＤと、後記する認証暗号化装置２００で生成される暗号データＣおよび認証タグＴとが関連付けられたデータ（Ｎ，ＡＤ，Ｃ，Ｔ）である。
【００３９】
認証暗号データ供給手段２４は、認証暗号データ記憶手段２３に記憶されている認証暗号データ（Ｎ，ＡＤ，Ｃ，Ｔ）を、送信装置３に出力するものである。
【００４０】
認証暗号化装置（認証暗号化手段）２００は、入力されたデータを暗号化するとともに、当該データを認証するための情報を生成するものである。ここでは、認証暗号化装置２００は、暗号鍵記憶手段２０１と、ブロック分割手段２０２と、ブロックナンス生成手段２０３と、暗号データ生成手段２０４と、データ用認証タグ生成手段２０５と、認証情報用認証タグ生成手段２０６と、認証タグ生成手段２０７と、認証暗号データ生成手段２０８と、を備える。
【００４１】
暗号鍵記憶手段２０１は、受信装置４の認証復号装置４００と共通の暗号鍵ｋを記憶するものであって、半導体メモリ等の一般的な記憶装置である。この暗号鍵記憶手段２０１には、図示を省略した暗号鍵供給装置から、予め認証復号装置４００と共通の暗号鍵ｋが入力されて記憶される。この暗号鍵記憶手段２０１に記憶される暗号鍵ｋは、暗号データ生成手段２０４、データ用認証タグ生成手段２０５および認証情報用認証タグ生成手段２０６によって読み出される。
【００４２】
ブロック分割手段２０２は、データ取得手段２１から入力されるデータＭを、認証暗号化装置２００内（具体的には、暗号データ生成手段２０４、データ用認証タグ生成手段２０５および認証情報用認証タグ生成手段２０６）で使用する共通鍵暗号アルゴリズムのブロック暗号の単位であるブロックサイズｎごとに分割するものである。
例えば、ブロック分割手段２０２は、共通暗号化アルゴリズムとしてＡＥＳを使用する場合、ブロックサイズｎを１２８ビット（ｎ＝１２８）として、データＭを分割する。ここでは、データＭが、ｍ個のブロックデータＭｉ（ｉは１≦ｉ≦ｍの整数）に分割されるものとする。
この分割されたブロックデータＭｉは、暗号データ生成手段２０４およびデータ用認証タグ生成手段２０５に出力される。
【００４３】
ブロックナンス生成手段２０３は、ブロック分割手段２０２で分割されたブロックデータごとに異なる値となるナンス（ブロックナンス）を生成するものである。ここでは、ブロックナンス生成手段２０３は、ナンス取得手段２０で取得したナンスＮを初期値として、ブロックデータごとに異なるブロックナンスＬｉ（ｉは１≦ｉ≦ｍの整数、ｍはブロックデータの個数）を生成する。
このブロックナンス生成手段２０３は、ブロック分割手段２０２で分割されるブロックデータが同じデータであっても異なる暗号データとなるように、異なるブロックナンスが生成されれば、その手法は問わない。
例えば、ブロックナンス生成手段２０３は、以下の式（１）、式（２）の演算により、ブロックナンスＬｉ（ｉは１≦ｉ≦ｍの整数）を順次生成する。
【００４４】
【数１】
2016075765.tif 000003
【００４５】
ここで、「Ｅｎｃ」は、予め定めた共通鍵暗号アルゴリズム（ＡＥＳ等）の演算を示す（以下、本明細書中同じ）。すなわち、Ｅｎｃ（ｋ，Ｎ′）は、ナンスＮ′を暗号鍵ｋで暗号化する演算を示す。なお、ｋは暗号鍵記憶手段２０１に記憶されている暗号鍵である。また、ナンスＮ′は、以下の式（３）に示すように、ナンスＮをｎビットにパディングしたデータである。
【００４６】
【数２】
2016075765.tif 000004
【００４７】
ここで、「||」はビットの連結を示す。また、「０Ｘ」は値“０”のビットをＸ個連結した値を示す。また、｜Ｎ｜はナンスＮのビット長を示す。
また、前記式（２）の演算は、ナンスの長さ（ナンスのブロックサイズ）をｎビットにしたときのガロア体ＧＦ（２ｎ）上の計算となる。ここで、“２”はガロア体の生成元である。すなわち、前記式（２）において、２Ｌｉ−１は生成元とＬｉ−１との乗算値を示し、４δは２（２δ）の演算であって、生成元とδとの乗算値に、さらに生成元を乗算した値となる。これによって、Ｌｉは、ガロア体ＧＦ（２ｎ）上で異なる値をとることができる。
また、例えば、ブロックナンス生成手段２０３は、前記式（２）の代わりに、以下の式（４）に示すように、いわゆるカウンタによって異なるブロックナンスＬｉ（ｉは１≦ｉ≦ｍの整数）を順次生成することとしてもよい。
【００４８】
【数３】
2016075765.tif 000005
【００４９】
このブロックナンス生成手段２０３は、生成したブロックナンスＬｉ（１≦ｉ≦ｍ）を暗号データ生成手段２０４に出力するとともに、生成したブロックナンスの１つ（ここでは、最後に生成したブロックナンスＬｍとする）をデータ用認証タグ生成手段２０５に出力する。
なお、ブロックナンス生成手段２０３は、ブロック分割手段２０２から、分割数ｍを取得して、当該分割数ｍ分のブロックナンスを生成することとしてもよいし、ブロック分割手段２０２が１つずつブロックデータを分割するタイミングに同期して、順次、ブロックナンスを１つずつ生成することとしてもよい。
【００５０】
暗号データ生成手段２０４は、ブロックデータに対応するブロックナンスを共通鍵暗号の暗号鍵で暗号化し、当該ブロックデータと排他的論理和をとることで、ブロックデータごとに暗号化した暗号ブロックデータを生成するものである。
ここでは、暗号データ生成手段２０４は、ブロック分割手段２０２で分割されたブロックデータＭｉ（１≦ｉ≦ｍ）を、ブロックナンス生成手段２０３で生成されたブロックナンスＬｉ（１≦ｉ≦ｍ）と、暗号鍵記憶手段２０１に記憶されている暗号鍵ｋとを用いて暗号化する。
具体的には、暗号データ生成手段２０４は、以下の式（５）の演算により、暗号ブロックデータＣｉ（１≦ｉ≦ｍ−１）を生成する。
【００５１】
【数４】
2016075765.tif 000006
【００５２】
ここで、「丸付きプラス記号」は、排他的論理和を示す（以下、本明細書中同じ）。
また、暗号データ生成手段２０４は、ブロックデータＭｍについては、以下の式（６）の演算により、暗号ブロックデータＣｍを生成する。
【００５３】
【数５】
2016075765.tif 000007
【００５４】
ここで、「ｍｓｂ」は、最上位ビットから所定ビット数（Ｍｍのビット長）のデータ抽出処理を意味している。すなわち、データの最終ブロックであるブロックデータが、ｎビットに満たない場合、ブロックデータＭｍのビット数分だけ、Ｅｎｃ（ｋ，Ｌｍ）の上位ビットを抽出し、ブロックデータＭｍと排他的論理和をとることとする。
【００５５】
この暗号データ生成手段２０４は、暗号ブロックデータＣｉ（１≦ｉ≦ｍ）からなる暗号データＣを、認証暗号データ生成手段２０８に出力する。
なお、暗号データ生成手段２０４は、複数備えることが好ましい。複数の暗号データ生成手段２０４を備えることで、前記式（１）の暗号化処理を、複数のブロックデータＭｉごとに並列に処理することができる。
【００５６】
データ用認証タグ生成手段２０５は、ブロック分割手段２０２で分割されたブロックデータの排他的論理和を演算し、暗号鍵で暗号化することで、認証タグを生成するためのデータ用認証タグを生成するものである。
このデータ用認証タグ生成手段２０５は、ブロック分割手段２０２で分割されたすべてのブロックデータＭｉ（１≦ｉ≦ｍ）の排他的論理和を求めることでチェックサムを計算し、そのチェックサムを暗号化することで、データ用認証タグＴＥを生成する。
具体的には、データ用認証タグ生成手段２０５は、以下の式（７）に示すように、ブロックデータＭｉ（１≦ｉ≦ｍ）の排他的論理和を求め、チェックサムＣＳとする。
【００５７】
【数６】
2016075765.tif 000008
【００５８】
なお、ブロックデータＭｍ′は、以下の式（８）に示すように、データの最終ブロックであるブロックデータＭｍをｎビットにパディングしたデータである。
【００５９】
【数７】
2016075765.tif 000009
【００６０】
ここで、「||」はビットの連結を示し、「０Ｘ」は値“０”のビットをＸ個連結することを示す（以下、本明細書中同じ）。また、｜Ｍｍ｜はブロックデータＭｍのビット長を示す。
そして、データ用認証タグ生成手段２０５は、以下の式（９）に示すように、式（７）で求めたチェックサムＣＳを暗号化することで、データ用認証タグＴＥを生成する。
【００６１】
【数８】
2016075765.tif 000010
【００６２】
ここで、Ｌｍはブロックナンス生成手段２０３で生成されたブロックナンスであり、δはブロックナンス生成手段２０３で前記式（１）において求められた数値である。
また、式（９）中、３Ｌｍは、ガロア体ＧＦ（２ｎ）上の計算となる（ｎはナンスＮのブロックサイズ）。すなわち、３Ｌｍは、以下の式（１０）に示すように、生成元“２”とＬｍとの乗算値と、Ｌｍとを排他的論理和演算したものである。
【００６３】
【数９】
2016075765.tif 000011
【００６４】
なお、ブロックナンス生成手段２０３において、前記式（４）に示すように、カウンタによってブロックナンスを生成した場合、データ用認証タグ生成手段２０５は、前記式（９）において、チェックサムＣＳと排他的論理和をとる値として、例えば単純に“Ｌｍ＋１”を用いればよい。
このデータ用認証タグ生成手段２０５は、生成したデータ用認証タグＴＥを認証タグ生成手段２０７に出力する。
【００６５】
認証情報用認証タグ生成手段２０６は、データを識別する認証情報を暗号鍵で暗号化することで、認証タグを生成するための認証情報用認証タグを生成するものである。
この認証情報用認証タグ生成手段２０６は、認証情報取得手段２２で取得された認証情報ＡＤを、使用する共通鍵暗号アルゴリズムのブロックサイズｎごとに暗号化し、排他的論理和演算を行うことで、認証情報用認証タグＴＡを生成する。
【００６６】
具体的には、認証情報用認証タグ生成手段２０６は、認証情報ＡＤを、ｎビットごとに分割して、ブロック認証情報Ａｊ（ｊは１≦ｊ≦ａの整数、ａはブロック認証情報の個数）を生成する。
そして、認証情報用認証タグ生成手段２０６は、以下の式（１１），式（１２）の演算により、認証情報のブロックごとに異なる値であるブロック値Ｑｊ（ｊは１≦ｊ≦ａの整数）を生成する。
【００６７】
【数１０】
2016075765.tif 000012
【００６８】
この式（１２）の演算は、ブロックサイズをｎビットにしたときのガロア体ＧＦ（２ｎ）上の計算となる。ここで、“２”はガロア体の生成元である。すなわち、前記式（１２）において、２Ｑｊ−１は生成元とＱｊ−１との乗算値を示し、４γは２（２γ）の演算であって、生成元とγとの乗算値に、さらに生成元を乗算した値となる。
また、このブロック値Ｑｊは、前記式（１２）の代わりに、以下の式（１３）に示すように、いわゆるカウンタによって異なるブロック値Ｑｊ（ｊは１≦ｊ≦ａの整数）を順次生成することとしてもよい。なお、Ｑ０は、入力された任意のカウンタの初期値である。
【００６９】
【数１１】
2016075765.tif 000013
【００７０】
そして、認証情報用認証タグ生成手段２０６は、以下の式（１４）の演算により、ブロック認証情報Ａｊ（１≦ｊ≦ａ−１）を、生成したブロック値Ｑｊ（１≦ｊ≦ａ−１）と、暗号鍵記憶手段２０１に記憶されている暗号鍵ｋとを用いて、予め定めた共通鍵暗号アルゴリズムにより暗号化し、暗号化ブロック認証情報Ｄｊ（１≦ｊ≦ａ−１）を生成する。
【００７１】
【数１２】
2016075765.tif 000014
【００７２】
また、認証情報用認証タグ生成手段２０６は、分割した最後のブロック認証情報Ａａについては、以下の式（１５）の演算により、「０ｎ」の暗号値γ（前記式（１１）参照）と、ブロック値Ｑａとから、暗号化ブロック認証情報Ｄｊ（ｊ＝ａ）を生成する。
【００７３】
【数１３】
2016075765.tif 000015
【００７４】
この式（１５）中、２γは、ガロア体ＧＦ（２ｎ）上の演算であって、生成元“２”とγとの乗算値である。また、式（１５）中、Ａａ′は、以下の式（１６）に示すように、ブロック認証情報Ａａをｎビットにパディングしたデータである。
【００７５】
【数１４】
2016075765.tif 000016
【００７６】
なお、認証情報用認証タグ生成手段２０６は、前記式（１２）の代わりに、前記式（１３）により、ブロック値Ｑｊ（１≦ｊ≦ａ）を生成した場合、前記式（１５）の代わりに、以下の式（１７）に示すように、暗号化ブロック認証情報Ｄｊ（ｊ＝ａ）を生成すればよい。
【００７７】
【数１５】
2016075765.tif 000017
【００７８】
そして、認証情報用認証タグ生成手段２０６は、以下の式（１８）に示すように、暗号化ブロック認証情報Ｄｊ（１≦ｊ≦ａ）の排他的論理和を求め、暗号鍵ｋを用いて、予め定めた共通鍵暗号アルゴリズムにより暗号化を行うことで、認証情報用認証タグＴＡを生成する。
【００７９】
【数１６】
2016075765.tif 000018
【００８０】
この認証情報用認証タグ生成手段２０６は、生成した認証情報用認証タグＴＡを、認証タグ生成手段２０７に出力する。
【００８１】
認証タグ生成手段２０７は、データ用認証タグ生成手段２０５で生成されたデータ用認証タグＴＥと、認証情報用認証タグ生成手段２０６で生成された認証情報用認証タグＴＡとの排他的論理和を演算し、データＭと認証情報ＡＤとに対応する認証タグＴを生成するものである。
具体的には、認証タグ生成手段２０７は、以下の式（１９）に示すように、データ用認証タグＴＥと認証情報用認証タグＴＡとの排他的論理和をとり、予め定めた上位τビットを抽出することで、認証タグＴを生成する。
【００８２】
【数１７】
2016075765.tif 000019
【００８３】
ここで、「ｍｓｂ」は、最上位ビットから所定ビット数（τビット）のデータ抽出処理を意味している。
このτビットは、認証復号装置４００と共通の情報である。なお、τビットを抽出する位置は、必ずしも上位ビットである必要はなく、受信装置４（認証復号装置４００）と共通であれば、下位ビットを抽出することとしてもよい。もちろん、必ずしも部分的にビット抽出を行う必要はなく、データ用認証タグＴＥと認証情報用認証タグＴＡとの排他的論理和の値をそのまま認証タグＴとして用いてもよい。
これによって、認証タグ生成手段２０７は、データＭと認証情報ＡＤとに対応する認証タグＴを生成することができる。
この認証タグ生成手段２０７は、生成した認証タグＴを、認証暗号データ生成手段２０８に出力する。
【００８４】
認証暗号データ生成手段２０８は、ナンス取得手段２０で取得したナンスＮと、認証情報取得手段２２で取得した認証情報ＡＤと、暗号データ生成手段２０４で生成された暗号データＣと、認証タグ生成手段２０７で生成された認証タグＴとを関連付けた認証暗号データ（Ｎ，ＡＤ，Ｃ，Ｔ）を生成するものである。
例えば、認証暗号データ生成手段２０８は、暗号データＣに、ナンスＮと認証情報ＡＤと認証タグＴとを含んだヘッダを付加することで、関連付けを行う。
もちろん、ヘッダを付加して１つのデータとして関連付ける以外にも、暗号データＣ固有の情報、例えば、データＭの名称等の識別子、認証暗号データの生成時刻等、任意の情報と対応付けて、個別のデータを関連付けることとしてもよい。
この認証暗号データ生成手段２０８は、生成した認証暗号データ（Ｎ，ＡＤ，Ｃ，Ｔ）を、認証暗号データ記憶手段２３に書き込み記憶する。
【００８５】
以上説明した認証暗号化装置２００の処理内容を図１０に模式的に示す。図１２で説明した従来の処理内容とは、（ａ）暗号データ生成の処理が異なっている。図１０（ａ）に示すように、認証暗号化装置２００は、図１２（ａ）の処理とは異なり、データＭを分割したブロックデータＭｉ（１≦ｉ≦ｍ）ごとに、個別に暗号化することができる。
このように、認証暗号化装置２００は、暗号データ生成手段２０４においてブロックデータを並列して暗号化処理することができ、高速に認証暗号データを生成することができる。
【００８６】
なお、認証暗号化装置２００は、コンピュータを前記した各手段として機能させる認証暗号化プログラムにより動作させることができる。このように、認証暗号化プログラムにより動作させる場合、暗号データ生成手段２０４を１つのタスクとし、そのタスクを複数並列動作させればよい。この認証暗号化プログラムは、コンピュータで読み取り可能な記録媒体に記録し、配布することも可能である。
【００８７】
以上、認証暗号化装置２００を備えた暗号化サーバ２は、データをブロック暗号化し、当該データに対応した認証タグと関連付けた認証暗号データを提供することができる。これによって、当該認証暗号データを取得した受信装置４（認証復号装置４００）において、データの復号および認証を行うことが可能になる。
【００８８】
＜送信装置の構成＞
次に、図４を参照（適宜図１参照）して、送信装置３の構成について説明する。
図４に示すように、送信装置３は、認証暗号データ取得手段３０と、配信データ生成手段３１と、配信データ送信手段３２と、を備える。
【００８９】
認証暗号データ取得手段３０は、暗号化サーバ２で生成された認証暗号データを取得するものである。この認証暗号データ取得手段３０は、取得した認証暗号データを配信データ生成手段３１に出力する。
ここでは、認証暗号データ取得手段３０は、順次、暗号化サーバ２から出力される認証暗号データを取得する。なお、認証暗号データ取得手段３０は、図示を省略した配信データ要求取得手段を備え、配信データ要求取得手段が受信装置４からデータの要求を取得したタイミングで、暗号化サーバ２から、当該データに対応する認証暗号データを取得することとしてもよい。
【００９０】
配信データ生成手段３１は、認証暗号データ取得手段３０で取得された認証暗号データを、特定のデータ形式の配信データに変換するものである。
この配信データ生成手段３１は、例えば、認証暗号データをＩＰパケットのフォーマットのデータに変換し、ネットワークＮ２上を伝送可能な配信データを生成する。
この配信データ生成手段３１は、生成した配信データを、配信データ送信手段３２に出力する。
【００９１】
配信データ送信手段３２は、配信データ生成手段３１で生成された配信データを、ネットワークＮ２を介して送信するものである。
なお、配信データ送信手段３２は、外部から設定された宛先の受信装置４に対して配信データを送信することとしてもよいし、データを要求した受信装置４に対して配信データを送信することとしてもよい。
このように送信装置３を構成することで、送信装置３は、ネットワークＮ２に接続された受信装置４に対して、ネットワークＮ２のプロトコルで、認証暗号データを送信することができる。
【００９２】
＜受信装置の構成＞
次に、図５を参照（適宜図１参照）して、受信装置４の構成について説明する。
図５に示すように、受信装置４は、配信データ受信手段４０と、データ分離手段４１と、復号データ出力手段４２と、認証復号装置（認証復号手段）４００と、を備える。
【００９３】
配信データ受信手段４０は、送信装置３から、ネットワークＮ２を介して、配信データを受信するものである。この配信データ受信手段４０は、受信した配信データから、認証暗号データを取得し、データ分離手段４１に出力する。
例えば、配信データ受信手段４０は、ＩＰパケットで配信される配信データのデータ部を抽出することで、認証暗号データを取得する。
【００９４】
データ分離手段４１は、配信データ受信手段４０で取得された認証暗号データを、ナンスＮと、認証情報ＡＤと、暗号データＣと、認証タグＴとに分離するものである。
このデータ分離手段４１は、分離したナンスＮと、認証情報ＡＤと、暗号データＣと、認証タグＴとを、認証復号装置４００に出力する。ここでは、ナンスＮは、認証復号装置４００のブロックナンス生成手段４０３に供給されて処理される。また、認証情報ＡＤは、認証復号装置４００の認証情報用認証タグ生成手段４０６に供給されて処理される。また、暗号データＣは、認証復号装置４００の暗号ブロック分割手段４０２に供給されて処理される。また、認証タグＴは、認証復号装置４００の検証手段４０８に供給されて処理される。
【００９５】
復号データ出力手段４２は、認証復号装置４００（復号データ生成手段４０４）で復号されたデータを外部に出力するものである。なお、復号データ出力手段４２は、認証復号装置４００（検証手段４０８）において、受信したデータが、サービス事業者から送信された正規のデータであることが検証された場合だけ、復号データを外部に出力することとする。
【００９６】
認証復号装置（認証復号手段）４００は、入力された暗号データＣを復号するとともに、当該データが正規のデータであるか否かを認証するものである。ここでは、認証復号装置４００は、暗号鍵記憶手段４０１と、暗号ブロック分割手段４０２と、ブロックナンス生成手段４０３と、復号データ生成手段４０４と、データ用認証タグ生成手段４０５と、認証情報用認証タグ生成手段４０６と、認証タグ生成手段４０７と、検証手段４０８と、を備える。
【００９７】
暗号鍵記憶手段４０１は、暗号化サーバ２の認証暗号化装置２００と共通の暗号鍵ｋを記憶するものであって、半導体メモリ等の一般的な記憶装置である。この暗号鍵記憶手段４０１には、予め認証暗号化装置２００と共通の暗号鍵ｋが記憶されている。この暗号鍵記憶手段４０１に記憶されている暗号鍵ｋは、復号データ生成手段４０４、データ用認証タグ生成手段４０５および認証情報用認証タグ生成手段４０６によって読み出される。
【００９８】
暗号ブロック分割手段４０２は、データ分離手段４１で分離された暗号データＣを、認証復号装置４００内（具体的には、復号データ生成手段４０４、データ用認証タグ生成手段４０５および認証情報用認証タグ生成手段４０６）で使用する共通鍵暗号アルゴリズムのブロックサイズｎごとに分割するものである。なお、このブロックサイズｎは、認証暗号化装置２００（図３参照）のブロック分割手段２０２で使用するサイズと同じである。
すなわち、暗号ブロック分割手段４０２は、暗号データＣを先頭からｎビットごとに区切って抽出することで、ｍ個の暗号ブロックデータＣｉ（ｉは１≦ｉ≦ｍの整数）に分割する。
この暗号ブロック分割手段４０２は、分割した暗号ブロックデータＣｉを、復号データ生成手段４０４に出力する。
【００９９】
ブロックナンス生成手段４０３は、データ分離手段４１で分離されたナンスＮから、暗号ブロック分割手段４０２で分割された暗号ブロックデータごとのナンス（ブロックナンス）を生成するものである。このブロックナンス生成手段４０３におけるブロックナンスの生成手法は、図３で説明したブロックナンス生成手段２０３の生成手法と同じである。
すなわち、ブロックナンス生成手段４０３は、前記式（１）〜式（３）によって、ナンスＮからブロックナンスＬｉ（１≦ｉ≦ｍ）を順次生成する。
【０１００】
なお、図３で説明したブロックナンス生成手段２０３が、前記式（４）によってブロックナンスＬｉ（１≦ｉ≦ｍ）を生成することとした場合、ブロックナンス生成手段４０３も、同様に、前記式（４）によってブロックナンスＬｉ（１≦ｉ≦ｍ）を生成する。
これによって、ブロックナンス生成手段２０３とブロックナンス生成手段４０３とにおいて、同一のブロックナンスＬｉ（１≦ｉ≦ｍ）が生成されることになる。
このブロックナンス生成手段４０３は、生成したブロックナンスＬｉ（１≦ｉ≦ｍ）を復号データ生成手段４０４に出力するとともに、生成したブロックナンスの１つ（ここでは、最後に生成したブロックナンスＬｍとする）をデータ用認証タグ生成手段４０５に出力する。
【０１０１】
復号データ生成手段４０４は、暗号ブロックデータに対応するブロックナンスを認証暗号化装置２００（図３参照）と同じ暗号鍵で暗号化し、当該暗号ブロックデータと排他的論理和をとることで、暗号ブロックデータごとに復号したブロックデータからなるデータ（復号データ）を生成するものである。
【０１０２】
ここでは、復号データ生成手段４０４は、暗号ブロック分割手段４０２で分割された暗号ブロックデータＣｉ（１≦ｉ≦ｍ）を、ブロックナンス生成手段４０３で生成されたブロックナンスＬｉ（１≦ｉ≦ｍ）と、暗号鍵記憶手段４０１に記憶されている暗号鍵ｋとを用いて復号する。
具体的には、復号データ生成手段４０４は、以下の式（２０）の演算により、暗号ブロックデータＣｉ（１≦ｉ≦ｍ−１）をブロックデータＭｉ（１≦ｉ≦ｍ−１）に復号する。
【０１０３】
【数１８】
2016075765.tif 000020
【０１０４】
また、復号データ生成手段４０４は、暗号ブロックデータＣｍについては、以下の式（２１）の演算により、ブロックデータＭｍに復号する。
【０１０５】
【数１９】
2016075765.tif 000021
【０１０６】
ここで、「ｍｓｂ」は、最上位ビットから所定ビット数（Ｃｍのビット長）のデータ抽出処理を意味している。すなわち、データの最終ブロックである暗号ブロックデータが、ｎビットに満たない場合、暗号ブロックデータＣｍのビット数分だけ、Ｅｎｃ（ｋ，Ｌｍ）の上位ビットを抽出し、暗号ブロックデータＣｍと排他的論理和をとることとする。
【０１０７】
なお、ここでは、復号データ生成手段４０４は、暗号データ生成手段２０４（図３参照）と同じ共通鍵暗号アルゴリズム（ＡＥＳ等）の演算（Ｅｎｃ）を行い、Ｅｎｃに対応する復号演算を行っていない。
前記式（５）で説明したように、暗号データ生成手段２０４では、ブロックナンスＬｉを暗号アルゴリズム（Ｅｎｃ）で暗号化した後、ブロックデータＭｉと排他的論理和を演算することで、暗号化された暗号ブロックデータＣｉを生成している。そのため、復号データ生成手段４０４では、式（２０）に示すように、暗号データ生成手段２０４と同様、ブロックナンスＬｉを暗号化アルゴリズム（Ｅｎｃ）で暗号化した後、暗号ブロックデータＣｉと排他的論理和を演算すれば、元のブロックデータＭｉに復号することができる。
【０１０８】
この復号データ生成手段４０４は、認証復号装置４００の性能、例えば、ＣＰＵ性能等に応じて、前記式（２０）の復号処理を、複数の暗号ブロックデータＣｉごとに並列に処理することが好ましい。
この復号データ生成手段４０４は、生成したブロックデータＭｉ（１≦ｉ≦ｍ）を、データ用認証タグ生成手段４０５に出力するとともに、復号されたデータＭとして、復号データ出力手段４２に出力する。
【０１０９】
データ用認証タグ生成手段４０５は、復号データ生成手段４０４で生成されたブロックデータの排他的論理和を演算し、暗号鍵で暗号化することで、認証タグを生成するためのデータ用認証タグを生成するものである。
このデータ用認証タグ生成手段４０５は、復号データ生成手段４０４で復号されたすべてのブロックデータＭｉ（１≦ｉ≦ｍ）の排他的論理和を求めることでチェックサムを計算し、そのチェックサムを暗号化することで、データ用認証タグＴＥを生成する。
【０１１０】
このデータ用認証タグ生成手段４０５におけるデータ用認証タグＴＥの生成手法は、図３で説明したデータ用認証タグ生成手段２０５の生成手法と同じである。
すなわち、データ用認証タグ生成手段４０５は、前記式（７）〜式（９）によって、データ用認証タグＴＥを生成する。
このデータ用認証タグ生成手段４０５は、生成したデータ用認証タグＴＥを認証タグ生成手段４０７に出力する。
【０１１１】
認証情報用認証タグ生成手段４０６は、認証情報を暗号鍵で暗号化することで、認証タグを生成するための認証情報用認証タグを生成するものである。
この認証情報用認証タグ生成手段４０６は、データ分離手段４１で分離された認証情報ＡＤを、使用する共通鍵暗号アルゴリズムのブロックサイズｎごとに暗号化し、排他的論理和演算を行うことで、認証情報用認証タグＴＡを生成する。
【０１１２】
この認証情報用認証タグ生成手段４０６における認証情報用認証タグＴＡの生成手法は、図３で説明した認証情報用認証タグ生成手段２０６の生成手法と同じである。
すなわち、認証情報用認証タグ生成手段４０６は、認証情報ＡＤを、ｎビットごとに分割したブロック認証情報Ａｊ（１≦ｊ≦ａ）と、ブロック認証情報Ａｊごとに異なる値であるブロック値Ｑｊ（１≦ｊ≦ａ）と、暗号鍵記憶手段４０１に記憶されている暗号鍵ｋとを用いて、前記式（１４）〜式（１８）によって、認証情報用認証タグＴＡを生成する。
この認証情報用認証タグ生成手段４０６は、生成した認証情報用認証タグＴＡを、認証タグ生成手段４０７に出力する。
【０１１３】
認証タグ生成手段４０７は、データ用認証タグ生成手段４０５で生成されたデータ用認証タグＴＥと、認証情報用認証タグ生成手段４０６で生成された認証情報用認証タグＴＡとから、データＭと認証情報ＡＤとに対応する認証タグ（復元認証タグ）Ｔ′を生成するものである。
具体的には、認証タグ生成手段４０７は、以下の式（２２）に示すように、データ用認証タグＴＥと認証情報用認証タグＴＡとの排他的論理和をとり、予め定めた上位τビットを抽出することで、認証タグＴ′を生成する。
【０１１４】
【数２０】
2016075765.tif 000022
【０１１５】
ここで、「ｍｓｂ」は、最上位ビットから所定ビット数（τビット）のデータ抽出処理を意味している。
このτビットは、認証暗号化装置２００と共通の情報である。なお、τビットを抽出する位置や長さは、図３で説明した認証タグ生成手段２０７と同じものである。
この認証タグ生成手段４０７は、生成した認証タグＴ′を、検証手段４０８に出力する。
【０１１６】
検証手段４０８は、データ分離手段４１で分離された認証タグＴと、認証タグ生成手段４０７で生成された認証タグ（復元認証タグ）Ｔ′とが一致するかを検証するものである。
この検証手段４０８は、認証タグＴと認証タグ（復元認証タグ）Ｔ′とが一致する場合（Ｔ＝Ｔ′）、受信した認証暗号データが、正規のデータであることを示す検証結果を復号データ出力手段４２に出力する。また、検証手段４０８は、認証タグＴと認証タグ（復元認証タグ）Ｔ′とが一致しない場合（Ｔ≠Ｔ′）、受信した認証暗号データが、正規のデータではないことを示す検証結果を復号データ出力手段４２に出力する。
これによって、検証手段４０８は、取得した認証暗号データが正規のデータであるか否かを検証することができる。
【０１１７】
以上説明した認証復号装置４００の処理内容を図１１に模式的に示す。図１３で説明した従来の処理内容とは、（ａ）復号データ生成の処理が異なっている。図１１（ａ）に示すように、認証復号装置４００は、図１３（ａ）の処理とは異なり、暗号ブロックデータＣｉ（１≦ｉ≦ｍ）ごとに、個別に復号することができる。
このように、認証復号装置４００は、復号データ生成手段４０４において暗号ブロックデータを並列して復号処理することができ、高速に認証暗号データの復号を行うことができる。
【０１１８】
なお、認証復号装置４００は、コンピュータを前記した各手段として機能させる認証復号プログラムにより動作させることができる。このように、認証復号プログラムにより動作させる場合、復号データ生成手段４０４を１つのタスクとし、そのタスクを複数並列動作させればよい。この認証復号プログラムは、コンピュータで読み取り可能な記録媒体に記録し、配布することも可能である。
以上、認証復号装置４００を備えた受信装置４は、ブロック暗号化された認証暗号データを復号するとともに、当該データの認証を行うことができる。
【０１１９】
≪データ配信システムの動作≫
次に、図６〜図９を参照して、データ配信システムＳの動作について説明する。
以下、データ配信システムＳを構成するデータサーバ１、暗号化サーバ２（認証暗号化装置２００）、送信装置３、受信装置４（認証復号装置４００）の順に動作を説明する。
【０１２０】
＜データサーバの動作＞
最初に、図６を参照（構成については適宜図１，図２参照）して、データサーバ１の動作について説明する。
まず、データサーバ１は、データ取得手段１０によって、データ配信用のデータを外部のデータ供給装置（不図示）から取得する（ステップＳ１０）。
そして、データサーバ１は、データ取得手段１０によって、ステップＳ１０で取得したデータを、データ記憶手段１１に記憶する（ステップＳ１１）。
そして、データサーバ１は、データ供給手段１２によって、データ記憶手段１１に記憶されているデータを読み出し、暗号化サーバ２に送信する（ステップＳ１２）。なお、このステップＳ１２の動作は、暗号化サーバ２からデータを要求されたタイミングで行ってもよいし、予め定めた送出時刻等の送出タイミングで行ってもよい。
以上の動作によって、データサーバ１は、暗号化サーバ２にデータを供給することができる。
【０１２１】
＜暗号化サーバ（認証暗号化装置）の動作＞
次に、図７を参照（構成については適宜図１，図３参照）して、暗号化サーバ２の動作について説明する。
まず、暗号化サーバ２は、ナンス取得手段２０によって、データを暗号化する際の初期値のデータとなるナンスＮを、外部の乱数発生装置（不図示）から取得する（ステップＳ２０）。また、暗号化サーバ２は、データ取得手段２１によって、データサーバ１から、暗号化の対象となるデータＭを取得する（ステップＳ２１）。なお、ステップＳ２０，Ｓ２１の動作順序は問わず、並列に動作してもよい。
【０１２２】
そして、暗号化サーバ２は、認証暗号化装置２００によって、データＭを暗号化するとともに、当該データＭを認証するためのデータ用認証タグＴＥを生成する。
すなわち、認証暗号化装置２００は、まず、ブロック分割手段２０２によって、ステップＳ２１で取得したデータＭを、使用する共通鍵暗号アルゴリズムのブロックサイズ（ｎビット）ごとに分割する（ステップＳ２２）。ここでは、データＭが、ｍ個のブロックデータＭｉ（１≦ｉ≦ｍ）に分割されるものとする。
【０１２３】
そして、認証暗号化装置２００は、ブロックナンス生成手段２０３によって、ステップＳ２０で取得したナンスＮを初期値として、ステップＳ２２で分割されるブロックデータの個数分（ｍ個）のナンスであるブロックナンスＬｉ（１≦ｉ≦ｍ）を生成する（ステップＳ２３）。
【０１２４】
そして、認証暗号化装置２００は、暗号データ生成手段２０４によって、前記式（５）に示すように、ステップＳ２３で生成されたブロックナンスＬｉ（１≦ｉ≦ｍ）と、予め暗号鍵記憶手段２０１に記憶されている暗号鍵ｋとにより、ステップＳ２２で分割されたブロックデータＭｉ（１≦ｉ≦ｍ）を暗号化して、暗号ブロックデータＣｉ（１≦ｉ≦ｍ）からなる暗号データＣを生成する（ステップＳ２４）。なお、このステップＳ２４の動作は、複数のブロックデータを並列に暗号化することとする。
【０１２５】
そして、認証暗号化装置２００は、データ用認証タグ生成手段２０５によって、前記式（７）に示すように、ステップＳ２２で分割されたブロックデータＭｉ（１≦ｉ≦ｍ）に対して、排他的論理和をとることで、チェックサムＣＳを生成する（ステップＳ２５）。
さらに、認証暗号化装置２００は、データ用認証タグ生成手段２０５によって、前記式（９）に示すように、ステップＳ２５で生成されたチェックサムＣＳを、暗号鍵ｋで暗号化することで、データ用認証タグＴＥを生成する（ステップＳ２６）。
【０１２６】
また、暗号化サーバ２は、認証情報取得手段２２によって、データの送り主（サービス事業者）の識別子等のデータの認証情報ＡＤを外部から取得する（ステップＳ２７）。
そして、暗号化サーバ２は、認証暗号化装置２００によって、認証情報ＡＤを認証するための認証情報用認証タグＴＡを生成する。
すなわち、認証暗号化装置２００は、認証情報用認証タグ生成手段２０６によって、ステップＳ２７で取得した認証情報ＡＤを、使用する共通鍵暗号アルゴリズムのブロックサイズ（ｎビット）ごとに分割する（ステップＳ２８）。ここでは、認証情報ＡＤが、ａ個のブロック認証情報Ａｊ（１≦ｊ≦ａ）に分割されるものとする。
【０１２７】
そして、認証暗号化装置２００は、認証情報用認証タグ生成手段２０６によって、前記式（１４），式（１５）により、ステップＳ２８で分割されたブロック認証情報Ａｊ（１≦ｊ≦ａ）を暗号化して、暗号化ブロック認証情報Ｄｊ（１≦ｊ≦ａ）を生成する（ステップＳ２９）。
さらに、認証暗号化装置２００は、認証情報用認証タグ生成手段２０６によって、前記式（１８）に示すように、ステップＳ２９で生成された暗号化ブロック認証情報Ｄｊ（１≦ｊ≦ａ）に対して排他的論理和をとり（ステップＳ３０）、さらに、暗号鍵ｋで暗号化することで、認証情報用認証タグＴＡを生成する（ステップＳ３１）。
なお、ステップＳ２０〜Ｓ２６までの動作と、ステップＳ２７〜Ｓ３１までの動作は、独立しているため、図７に示すように、並列して動作させることができる。もちろん、いずれか一方を先に動作させることとしても構わない。
【０１２８】
このように、ステップＳ２６でデータ用認証タグＴＥが生成され、ステップＳ３１で認証情報用認証タグＴＡが生成された後、認証暗号化装置２００は、認証タグ生成手段２０７によって、データ用認証タグＴＥと認証情報用認証タグＴＡとの排他的論理和をとることで、認証タグＴを生成する（ステップＳ３２）。
【０１２９】
そして、認証暗号化装置２００は、認証暗号データ生成手段２０８によって、ステップＳ２０で取得したナンスＮと、ステップＳ２７で取得した認証情報ＡＤと、ステップＳ２４で生成された暗号データＣと、ステップＳ３２で生成された認証タグＴとを関連付けて認証暗号データを生成し、認証暗号データ記憶手段２３に記憶する（ステップＳ３３）。
【０１３０】
その後、暗号化サーバ２は、認証暗号データ供給手段２４によって、認証暗号データ記憶手段２３に記憶されている認証暗号データ（Ｎ，ＡＤ，Ｃ，Ｔ）を、送信装置３に送信する（ステップＳ３４）。
このように、暗号化サーバ２（認証暗号化装置２００）は、ステップＳ２２で分割した１つのブロックデータに対して、ステップＳ２４において１回の暗号化を行っている。すなわち、暗号化サーバ２（認証暗号化装置２００）は、ブロックデータを別々に暗号化することができ、個々のブロックデータを並列処理することが可能になる。そのため、暗号化サーバ２（認証暗号化装置２００）は、従来のＯＴＲ方式のように、２つのブロックデータが揃った段階で、暗号化を２回行う処理よりも、高速にデータの暗号化を行うことができる。
【０１３１】
＜送信装置の動作＞
次に、図８を参照（構成については適宜図１，図４参照）して、送信装置３の動作について説明する。
まず、送信装置３は、認証暗号データ取得手段３０によって、暗号化サーバ２から、暗号化サーバ２で生成された認証暗号データを取得する（ステップＳ４０）。
そして、送信装置３は、配信データ生成手段３１によって、ステップＳ４０で取得した認証暗号データを、特定のデータ形式（例えば、ＩＰパケットのフォーマット）の配信データに変換することで、配信データを生成する（ステップＳ４１）。
そして、送信装置３は、配信データ送信手段３２によって、ステップＳ４１で生成された配信データを、受信装置４に送信する（ステップＳ４２）。なお、送信装置３は、受信装置４からデータの要求を取得したタイミングで、当該データに対応する認証暗号データを取得して、受信装置４に送信することとしてもよいし、順次、暗号化サーバ２から出力される認証暗号データを予め指定された受信装置４に送信することとしてもよい。
以上の動作によって、送信装置３は、受信装置４に認証暗号データを供給することができる。
【０１３２】
＜受信装置（認証復号装置）の動作＞
次に、図９を参照（構成については適宜図１，図５参照）して、受信装置４の動作について説明する。
まず、受信装置４は、配信データ受信手段４０によって、送信装置３から、配信データを受信する（ステップＳ５０）。このとき、配信データ受信手段４０は、特定のデータ形式で配信された配信データから、認証暗号データを取得する。
そして、受信装置４は、データ分離手段４１によって、ステップＳ５０で取得した認証暗号データを、ナンスＮと、認証情報ＡＤと、暗号データＣと、認証タグＴとに分離する（ステップＳ５１）。
【０１３３】
そして、受信装置４は、認証復号装置４００によって、暗号データＣを復号するとともに、当該暗号データＣを認証するためのデータ用認証タグを生成する。
すなわち、認証復号装置４００は、まず、暗号ブロック分割手段４０２によって、ステップＳ５１で分離された暗号データＣを、使用する共通鍵暗号アルゴリズムのブロックサイズ（ｎビット）ごとに分割する（ステップＳ５２）。ここでは、暗号データＣが、ｍ個の暗号ブロックデータＣｉ（１≦ｉ≦ｍ）に分割されるものとする。
【０１３４】
そして、認証復号装置４００は、ブロックナンス生成手段４０３によって、ステップＳ５１で分離されたナンスＮを初期値として、ステップＳ５２で分割される暗号ブロックデータの個数分（ｍ個）のナンスであるブロックナンスＬｉ（１≦ｉ≦ｍ）を生成する（ステップＳ５３）。
【０１３５】
そして、認証復号装置４００は、復号データ生成手段４０４によって、前記式（２０），式（２１）に示すように、ステップＳ５３で生成されたブロックナンスＬｉ（１≦ｉ≦ｍ）と、予め暗号鍵記憶手段４０１に記憶されている暗号鍵ｋとにより、ステップＳ５２で分割された暗号ブロックデータＣｉ（１≦ｉ≦ｍ）を復号して、ブロックデータＭｉ（１≦ｉ≦ｍ）からなるデータＭを生成する（ステップＳ５４）。なお、このステップＳ５４の動作は、複数の暗号ブロックデータを並列に復号することとする。
【０１３６】
そして、認証復号装置４００は、データ用認証タグ生成手段４０５によって、前記式（７）に示すように、ステップＳ５４で復号されたブロックデータＭｉ（１≦ｉ≦ｍ）に対して、排他的論理和をとることで、チェックサムＣＳを生成する（ステップＳ５５）。
さらに、認証復号装置４００は、データ用認証タグ生成手段４０５によって、前記式（９）に示すように、ステップＳ５５で生成されたチェックサムＣＳを、暗号鍵ｋで暗号化することで、データ用認証タグＴＥを生成する（ステップＳ５６）。
【０１３７】
また、認証復号装置４００は、認証情報用認証タグ生成手段４０６によって、ステップＳ５１で分離された認証情報ＡＤを、使用する共通鍵暗号アルゴリズムのブロックサイズ（ｎビット）ごとに分割する（ステップＳ５７）。ここでは、認証情報ＡＤが、ａ個のブロック認証情報Ａｊ（１≦ｊ≦ａ）に分割されるものとする。
そして、認証復号装置４００は、認証情報用認証タグ生成手段４０６によって、前記式（１４），式（１５）により、ステップＳ５７で分割されたブロック認証情報Ａｊ（１≦ｊ≦ａ）を暗号化して、暗号化ブロック認証情報Ｄｊ（１≦ｊ≦ａ）を生成する（ステップＳ５８）。
【０１３８】
さらに、認証復号装置４００は、認証情報用認証タグ生成手段４０６によって、前記式（１８）に示すように、ステップＳ５８で生成された暗号化ブロック認証情報Ｄｊ（１≦ｊ≦ａ）に対して排他的論理和をとり（ステップＳ５９）、さらに、暗号鍵ｋで暗号化することで、認証情報用認証タグＴＡを生成する（ステップＳ６０）。
なお、ステップＳ５２〜Ｓ５６までの動作と、ステップＳ５７〜Ｓ６０までの動作は、独立しているため、図９に示すように、並列して動作させることができる。もちろん、いずれか一方を先に動作させることとしても構わない。
【０１３９】
このように、ステップＳ５６でデータ用認証タグＴＥが生成され、ステップＳ６０で認証情報用認証タグＴＡが生成された後、認証復号装置４００は、認証タグ生成手段４０７によって、データ用認証タグＴＥと認証情報用認証タグＴＡとの排他的論理和をとることで、認証タグ（復元認証タグ）Ｔ′を生成する（ステップＳ６１）。
そして、認証復号装置４００は、ステップＳ５１で分離された認証タグＴと、ステップＳ６１で生成された認証タグＴ′とが一致するかを検証する（ステップＳ６２）。
その後、受信装置４は、復号データ出力手段４２によって、ステップＳ６２における検証結果で、受信したデータが、サービス事業者から送信された正規のデータであることが検証された場合だけ、ステップＳ５４で復号された復号データを外部に出力する（ステップＳ６３）。
【０１４０】
このように、受信装置４（認証復号装置４００）は、ステップＳ５２で分割した１つの暗号ブロックデータに対して、ステップＳ５４において１回の復号を行っている。すなわち、受信装置４（認証復号装置４００）は、暗号ブロックデータを別々に復号することができ、個々の暗号ブロックデータを並列処理することが可能になる。そのため、受信装置４（認証復号装置４００）は、従来のＯＴＲ方式のように、２つの暗号ブロックデータが揃った段階で、復号を２回行う処理よりも、高速に復号を行うことができる。
【０１４１】
≪他の実施形態≫
以上、本発明の実施形態として、サービス事業者によって実施されるデータ配信システムＳのシステム例について説明した。しかし、本発明は、この実施形態に限定されるものではない。
例えば、本発明は、放送局によって実施される放送波を用いた一斉配信による放送サービスにも適用することができる。この場合、放送局の送信装置３は、複数の受信装置４に対して、放送波を介して、認証暗号データを一斉配信すればよい。このように、一斉配信しても、暗号化サーバ２（認証暗号化装置２００）が用いた暗号鍵ｋと同一の暗号鍵を有する受信装置４でしかデータを復号することはできない。なお、受信装置４（認証復号装置４００）が記憶する暗号鍵ｋは、必ずしも受信装置個別の鍵である必要はなく、例えば、メーカごと、モデル（型）ごとに、同じ鍵を用いても構わない。
【０１４２】
また、認証暗号化装置２００、認証復号装置４００として機能させる認証暗号化プログラム、認証復号プログラムは、パーソナルコンピュータ等の一般的なコンピュータシステムにおいて実行させることとしてもよい。
また、認証暗号化装置２００は、図３で説明した暗号化サーバ２の他の構成を含んで構成してもよい。また、認証復号装置４００は、図５で説明した受信装置４の他の構成を含んで構成してもよい。
【符号の説明】
【０１４３】
Ｓ      データ配信システム
１      データサーバ
１０    データ取得手段
１１    データ記憶手段
１２    データ供給手段
２      暗号化サーバ
２０    ナンス取得手段
２１    データ取得手段
２２    認証情報取得手段
２３    認証暗号データ記憶手段
２４    認証暗号データ供給手段
２００  認証暗号化装置
２０１  暗号鍵記憶手段
２０２  ブロック分割手段
２０３  ブロックナンス生成手段
２０４  暗号データ生成手段
２０５  データ用認証タグ生成手段
２０６  認証情報用認証タグ生成手段
２０７  認証タグ生成手段
２０８  認証暗号データ生成手段
３      送信装置
３０    認証暗号データ取得手段
３１    配信データ生成手段
３２    配信データ送信手段
４      受信装置
４０    配信データ受信手段
４１    データ分離手段
４２    復号データ出力手段
４００  認証復号装置
４０１  暗号鍵記憶手段
４０２  暗号ブロック分割手段
４０３  ブロックナンス生成手段
４０４  復号データ生成手段
４０５  データ用認証タグ生成手段
４０６  認証情報用認証タグ生成手段
４０７  認証タグ生成手段
４０８  検証手段
【図１】
2016075765.tif 000023
【図２】
2016075765.tif 000024
【図３】
2016075765.tif 000025
【図４】
2016075765.tif 000026
【図５】
2016075765.tif 000027
【図６】
2016075765.tif 000028
【図７】
2016075765.tif 000029
【図８】
2016075765.tif 000030
【図９】
2016075765.tif 000031
【図１０】
2016075765.tif 000032
【図１１】
2016075765.tif 000033
【図１２】
2016075765.tif 000034
【図１３】
2016075765.tif 000035