(57)【特許請求の範囲】
【請求項１】
署名付きのトランスポートストリームと、該トランスポートストリームの署名を検証するための検証パケットとを受信する受信部と、
前記受信部により受信した、前記検証パケットと別の検証パケットとの間の区間のトランスポートストリームパケットから、ハッシュ値を生成する生成部と、
前記受信部により受信した、前記検証パケットと別の検証パケットとの間の区間のハッシュ値の生成に使用したトランスポートストリームパケットの数をカウントするカウンタ部と、
前記検証パケットに含まれる署名情報としてのハッシュ値と、前記生成されたハッシュ値とを照合する照合部と、
前記照合部による照合の結果、前記検証パケットに含まれる署名情報としてのハッシュ値と、前記生成されたハッシュ値とが一致しない場合、前記検証パケットと前記別の検証パケットとの間の区間において、前記カウンタ部でカウントされたパケットの数と、前記検証パケットに含まれている、前記検証パケットと前記別の検証パケットとの間の区間においてハッシュ生成に使用したパケット数とが一致しないときは、当該区間を署名検証区間から除外する処理部と、
を具えることを特徴とする受信装置。
【請求項２】
請求項１に記載の受信装置において、
前記処理部は、前記照合部による照合の結果、前記署名情報としてのハッシュ値と、前記生成されたハッシュ値とが一致しない場合、前記カウンタ部でカウントされたハッシュ値の生成に使用したパケットの数と、前記検証パケットに含まれるハッシュ生成に使用したパケット数とが一致したときは、当該区間を不正区間であると判定する、
ことを特徴とする受信装置。
【請求項３】
請求項１に記載の受信装置において、
前記署名検証区間から除外した区間のトランスポートストリームパケットを用いてコンテンツまたはサービスを出力する場合、当該除外した区間の前および／または後の区間の署名検証結果に基づいて、前記コンテンツまたはサービスの出力を制御する制御部、
をさらに具える、ことを特徴とする受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、署名検証方法、ストリーム生成方法、受信装置、およびストリーム送信装置に関し、特に、ストリーム全体を適正に認証／検証する署名検証技法に関する。
【背景技術】
【０００２】
従来、テレビやラジオなどコンテンツは、アナログ形式で放送／送信されてきた。しかしながら、最近のデジタル技術の発達に伴って、コンテンツやサービスのデータがデジタル化されるようになり、デジタルデータの形式でコンテンツやサービスが放送されるようになってきている。さらに、地上波デジタル放送が実用化され、携帯端末向けのデジタル放送であるワンセグメント放送も始まっている。
【０００３】
このようなデジタル放送では、通常の映像や音声サービス（コンテンツ）のみならず、字幕などのサービスおよびデータ放送用のデータ（コンテンツ付属情報）も放送されている。このようなコンテンツおよびコンテンツ付属情報は、パケット化され、一連のパケットとしてストリーミングで放送される。特に、地上波デジタル放送（ワンセグメント放送を含む）は、電波を用いて送信されているため、これと同じチャンネルにおいて、攻撃者が妨害電波として不正な放送波を送信した場合、一般の視聴者が使用しているデジタル放送受信端末は、正規の放送局による放送波と、攻撃者による不正な放送波とを判別することができない。図１３に、例えば、従来システムにおいて不正放送が行われた場合の状況を模式的に示す。図１３の（ａ）に示すように、攻撃者の不正な放送波の方が正規の放送波よりも強い環境下にある受信端末は、不正な放送波を正規の放送波であると見なして受信してしまう。従って、図１３の（ｂ）に示すように、視聴者は、気付かないうちに不正な放送波に基づく映像や音声を視聴してしまい、そのような映像や音声の情報を正しいものであると認識する恐れがある。また、ワンセグメント放送の場合は、地下街や屋内などの都市部における難視聴エリア向けの中継装置やギャップフィラーなどの送信装置の普及が予想される。さらには、ワンセグメント放送の場合、店舗や商業施設での狭い受信エリアを対象として独自放送を行う小型の送信装置も開発されている。このような様々なタイプの送信装置からの放送波を受信する受信装置には、受信している放送波が、正規の放送局からの放送波であるか否か、或いは、信頼し得る事業者からの放送波であるか否かを区別する機能があれば、ユーザにとって便利であるが、このような仕組みや技術は開発されていない。
【０００４】
このように、不正な放送により、正規の放送局への成りすまし、データ改竄、悪意があるサイトへの誘導（フィッシング詐欺）などが問題になる可能性がある。特に、字幕放送、データ放送などのデータは、経済活動において重要な情報（テレビ／ラジオショッピングなどが販売する商品の名称、仕様や価格、或いは、株価や経済統計などの経済指標など）が配信される。これによって視聴者と企業との間で様々な経済活動が営まれることが多く、放送波の内容の正当性や信頼性（即ち、コンテンツやコンテンツ付属情報の非改竄性）を保証することは非常に重要である。例えば、データ放送は、ＢＭＬ(Broadcast Markup Language)で放送されるため、ＢＭＬで記述されたスクリプトが、放送とは無関係なリンク先ＵＲＬへのジャンプさせる命令や、不必要なアプリケーションを起動させるる命令などの不正なコードに置き換えられる可能性がある。このような本来の動作とは異なる動作を防ぐことも非常に重要である。
【０００５】
そこで、放送波の正当性や安全性を保証するため、各パケットから認証情報を導出して、導出した各認証情報をパケット毎に付加し、受信側で、パケット単位でその内容を認証して、改竄されていないことを確かめるメッセージ認証装置が提案されている（特許文献１を参照されたい）。
【０００６】
図１４に、従来技術によってストリーム転送方式のパケットにハッシュ値を付加する技法を示す。図１４の（ａ）に示すように、転送方式のパケットは、認証するための情報が含まれておらず、その非改竄性を証明することができなかった。例えば、図１４の（ｂ）に示すように、各パケットのメッセージからハッシュ関数を用いてハッシュ値を計算し、この計算したハッシュ値を、ハッシュ計算に用いたパケットに付加する従来技術がある。
【特許文献１】特開２００１−２５１２９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述した従来技術は、個々のパケットの認証は可能であるが、パケットストリーム全体（即ち、一連のパケット）としての認証はできない。
【０００８】
さらに、ストリーム全体を認証するときに地上波デジタル放送などの無線伝送を使用する場合、電波伝播環境が悪いことが多く、そのようなときにはパケットロスなどの通信エラーが高い頻度で発生するので、このような頻発するパケットロスの影響によって認証処理ができなくなる恐れが高い。特に、ブロードキャスト／マルチキャストの無線伝送路では、パケットロスの確率が大幅に増大しているにもかかわらず、パケット再送をしないため、認証処理ができなくなってしまう。従って、無線のようなパケットロスが多い環境においてメッセージ認証を実用化するためには、パケットロスを代表とする受信エラーへの耐性を高める技法も同時に必要となる。
【０００９】
本発明の目的は、ストリーム全体を適正に認証／検証するストリーム認証／検証技法（装置、方法）を提供することである。
【課題を解決するための手段】
【００１０】
上述した諸課題を解決すべく、第１の発明による受信装置は、
署名付きのトランスポートストリームと、該トランスポートストリームの署名を検証するための検証パケット(VP: Verification Packet)とを受信する受信部と、
前記受信部により受信した、前記検証パケットと別の検証パケットとの間の区間のトランスポートストリームパケットから、ハッシュ値を生成する生成部と、
前記受信部により受信した、前記検証パケットと別の検証パケットとの間の区間のハッシュ値の生成に使用したトランスポートストリームパケットの数（カウント値ｃ）をカウントするカウンタ部と、
前記検証パケットに含まれる署名情報としてのハッシュ値と、前記生成されたハッシュ値とを照合する照合部と、
前記照合部による照合の結果、前記検証パケットに含まれる署名情報としてのハッシュ値と、前記生成されたハッシュ値とが一致しない場合、前記検証パケットと前記別の検証パケットとの間の区間において、前記カウンタ部でカウントされたパケットの数（当該区間においてハッシュ値の生成に使用したパケットの数）と、前記検証パケットに含まれている、前記検証パケットと前記別の検証パケットとの間の区間においてハッシュ生成に使用したパケット数（即ち、当該区間に存在するべきパケット数）とが一致しないときは、当該区間を署名検証区間から除外する処理部と、
を具えることを特徴とする。
【００１１】
また、第２の発明による受信装置は、
前記処理部が、前記照合部による照合の結果、前記署名情報としてのハッシュ値と、前記生成されたハッシュ値とが一致しない場合、前記カウンタ部でカウントされたハッシュ値の生成に使用したパケットの数（カウント値ｃ）と、前記検証パケットに含まれるハッシュ生成に使用したパケット数（ｎ）とが一致したときは、当該区間を不正区間であると判定する、
ことを特徴とする。
【００１２】
また、第３の発明による受信装置は、
前記署名検証区間から除外した区間のトランスポートストリームパケットを用いてコンテンツまたはサービスを出力する場合、当該除外した区間の前および／または後の区間の署名検証結果に基づいて、前記コンテンツまたはサービスの出力を制御する（例えば、停止したり、検証結果に応じた字幕を付加して出力したりする）制御部と、
をさらに具える、ことを特徴とする。
【００１３】
上述したように本発明の解決手段を装置として説明してきたが、本発明はこれらに実質的に相当する方法、プログラム、プログラムを記録した記憶媒体としても実現し得るものであり、本発明の範囲にはこれらも包含されるものと理解されたい。
【００１４】
例えば、本発明を方法として実現させた第４の発明による署名検証方法は、
署名付きのトランスポートストリームと、該トランスポートストリームの署名を検証するための検証パケットとを受信する受信ステップと、
前記受信ステップにより受信した、前記検証パケットと別の検証パケットとの間の区間のトランスポートストリームパケットから、ハッシュ値を生成するステップと、
前記受信ステップにより受信した、前記検証パケットと別の検証パケットとの間の区間のハッシュ値の生成に使用したトランスポートストリームパケットの数をカウントするステップと、
前記検証パケットに含まれる署名情報としてのハッシュ値と、前記生成されたハッシュ値とを照合する照合ステップと、
前記照合ステップによる照合の結果、前記検証パケットに含まれる署名情報としてのハッシュ値と、前記生成されたハッシュ値とが一致しない場合、前記検証パケットと前記別の検証パケットとの間の区間において、前記カウンタ部でカウントされたパケットの数と、前記検証パケットに含まれている、前記検証パケットと前記別の検証パケットとの間の区間においてハッシュ生成に使用したパケット数とが一致しないときは、当該区間を署名検証区間から除外する処理ステップと、
を有することを特徴とする。
【００１５】
本発明を受信側の受信装置および受信装置における方法として説明してきたが、本発明は、送信側の送信装置や送信装置における方法として構成させてもよい。例えば、第５の発明によるストリーム送信装置は、
署名情報としてのハッシュ値を生成する生成部と、
前記生成した署名情報としてのハッシュ値と、該ハッシュ値の生成に使用したトランスポートストリームパケットの数とを含む検証パケットを、トランスポートストリームに配置してストリームを生成するストリーム生成部と、
前記生成したストリームに含まれるパケットを順次、送信する送信部と、
を具えることを特徴とする。
【００１６】
また、第６の発明によるストリーム生成方法は、
署名情報としてのハッシュ値を生成する生成ステップと、
前記生成した署名情報としてのハッシュ値と、該ハッシュ値の生成に使用したトランスポートストリームパケットの数とを含む検証パケットを、トランスポートストリームに配置してストリームを生成するストリーム生成ステップと、
前記生成したストリームに含まれるパケットを順次、送信する送信ステップと、
を有することを特徴とする。
なお、各ステップの計算や処理には、演算手段（ＣＰＵ、ＤＳＰ、ＭＰＵなどのプロセッサ）を必要に応じて使用することができる。
【発明の効果】
【００１７】
本発明によれば、ストリーム全体を適正に認証することが可能になる。
【発明を実施するための最良の形態】
【００１８】
以降、諸図面を参照しながら、本発明の実施態様を詳細に説明する。本発明は、パケット（放送波）の伝送路が有線、無線であろうと適用することができるが、パケットロスが起こり易く、本発明のメリットを最も享受できるであろう、無線伝送路を用いるワンセグメント放送システムに適用した態様で説明する。ワンセグメント放送の受信機能を持つ受信装置の典型例は、携帯電話端末やノートパソコンなどである。
【００１９】
図１は、本発明の一実施態様による受信装置の基本的な構成を示すブロック図である。図に示すように、受信装置１００は、アンテナＡＮＴ１、受信部１１０と、ハッシュ値計算部（生成部）１２０、パケット処理部１３０、認証部１４０、制御部１５０、メモリ１６０、出力部１７０、およびデコーダ１８０を具える。アンテナＡＮＴ１は、パケットを含む放送波を受信し、受信した放送波を受信部１１０に供給する。受信部１１０は、受信した放送波から信号処理（ＯＦＤＭ復調処理など）して得たトランスポートストリーム(TS)信号（TSパケットおよび検証パケット）を、ハッシュ値計算部１２０、パケット処理部１３０、およびメモリ１６０に供給する。メモリ１６０はTSパケットを格納する。
【００２０】
また、受信部１１０は、受信したトランスポートストリームから、コンテンツを特定する情報（例えば、プログラム・アソシエーション・テーブルＰＡＴ、プログラム・マップ・テーブルＰＭＴを格納している番組特定情報ＰＳＩ）を分離して解析し、その情報に基づいて、トランスポートストリームから、映像信号、音声信号、データ信号を分離する。デコーダ１８０は、メモリ１６０に格納されている音声パケット、映像パケット、データ放送パケットなどをデコードして、出力部１７０に設けられた表示部１７２やスピーカ１７４に供給する。
【００２１】
パケット処理部１３０は、TS信号から検証パケット（VPパケット）を抽出し、当該検証パケットに含まれている、検証パケット間の区間[VP-VP]に存在する一連のTSパケットに対する署名情報としてのハッシュ値Ｈを取得し、取得したハッシュ値Ｈをメモリ１６０に格納しておく。ハッシュ値計算部１２０は、検証パケット以降の一連のTSパケットの先頭から、TSパケットを１つずつ読み出し、この１つのTSパケットと計算したハッシュ値ｈとを連鎖的に用いて、所定の関数を用いて署名情報としてのハッシュ値を生成／計算し（生成手法の詳細は後述する）、生成したハッシュ値ｈを認証部１４０に供給する。ハッシュ値計算部１２０は、新たな検証パケットを受信する毎に、同様のハッシュ値計算処理を繰り返す。
【００２２】
認証部１４０は、照合部１４２および処理部１４４を具える。照合部１４２は、次の検証パケットに含まれる署名情報としてのハッシュ値Ｈと、前記生成されたハッシュ値ｈとが一致するか否かを照合する。デコーダ１８０は、メモリ１６０に格納されている音声パケット、映像パケット、データ放送パケットなどをデコードして出力部１７０に設けられた表示部１７２やスピーカ１７４に供給する。処理部１４４は、照合部１４２による照合の結果、次の検証パケットに含まれる署名情報としてのハッシュ値Ｈと、生成されたハッシュ値ｈとが一致しない場合、当該区間を不正区間であると判定し、判定結果（照合結果）を制御部１５０に供給する。
【００２３】
制御部１５０は、出力部１７０やデコーダ１８０へのデータの供給を制御する。制御部１５０は、認証部１４０から供給された判定結果に基づき、不正区間と判定された区間のトランスポートストリームパケットを用いてコンテンツまたはサービスの出力を停止したり、不正区間である旨を示す字幕を付加して出力したり、その旨の文字をスーパーインポーズして出力したり、その旨を示す音声を出力したりするように表示部１７２やスピーカ１７４を制御する。
【００２４】
図２は、本発明の一実施態様による送信装置の基本的な構成を示すブロック図である。図に示すように、送信装置２００は、ハッシュ値計算部（生成部）２１０、ストリーム生成部２２０、送信部２３０、カウンタ部２４０、メモリ２５０、およびアンテナＡＮＴ２を具える。送信装置２００は、有線経由などで上位装置（コンテンツサーバなど）から、送信されるべきオリジナルメッセージ（元の一連のTSパケット）を受け取る。ハッシュ値計算部２１０は、例えば、第１のヌルパケットと、それの１以上後の第２のヌルパケット（即ち、２番目以降のヌルパケット）との間にある「一連のパケット」の先頭から、TSパケットを１つずつ読み出し、この１つのTSパケットと計算したハッシュ値とを連鎖的に用いて、所定のハッシュ関数を用いて署名情報としてのハッシュ値ｈを計算する。当該区間の最後のTSパケットのメッセージと前回計算したハッシュ値ｈを用いて算出したハッシュ値を署名情報としてのハッシュ値Ｈとする。カウンタ部２４０は、前述した一連のパケットの中で処理したパケットの数をカウントし、カウントした値をメモリ２５０に格納する。
【００２５】
ストリーム生成部２２０は、先行する一連のパケットの区間に対する署名情報としてのハッシュ値Ｈを含む検証パケットを生成し、前述したヌルパケットをこの検証パケットに置き換える。ヌルパケットは、タイミングをとるためにストリームにある程度定期的に挿入されるものであり、本実施態様では、このヌルパケットを検証パケットに置き換えて、署名のための情報（ハッシュ値Ｈ)を受信者に伝達する。
【００２６】
このようにして、ストリーム生成部２２０は、検証パケット間の区間のメッセージを認証する署名情報としてのハッシュ値Ｈを含む検証パケットを、一連のトランスポートストリームパケットの後に配置する。従って、ストリーム生成部２２０は、検証パケット、一連のトランスポートストリームパケット、検証パケットという順番でストリームを生成していく。生成された一連のストリームは、送信部２３０が、変調処理など必要な処理を行った後でアンテナＡＮＴ２から放送波として送出される。
【００２７】
図３は、図１の受信装置で実行される署名検証方法の一例を示すフローチャートである。まず、ハッシュ値計算部１２０は、ステップＪ１１にて検証パケットを選び出し、次に、ループ１（ステップＪ１３，Ｊ１４）を開始する。次にステップＪ１３では、TSパケットのメッセージｍ（ペイロード）と、前回のハッシュ値ｈ０（最初の実行時はヌル）とから、ステップＪ１４の終了条件を満たすまで、すなわち次の検証パケットを受信するまで、受信した全てのTSパケットから、以下の所定のハッシュ関数ｆを用いてハッシュ値ｈを生成する。
ｈ＝ｆ（ｍ，ｈ０）
【００２８】
次の検証パケットを受信してループ１を終了すると、ステップＪ１５で、パケット処理部１３０は、次の検証パケットに格納されている署名情報としてのハッシュ値Ｈを取得し、これをメモリ１６０に格納する。認証部１４０内の照合部１４２は、ステップＪ１６にて、検証パケットから取得した署名情報としてのハッシュ値Ｈと、ハッシュ値計算部１２０で生成したハッシュ値ｈとが一致するか否かを照合する。取得したハッシュ値Ｈと生成したハッシュ値ｈとが一致する場合は、署名情報を正常に認証できたものとして処理を終え、制御部１５０の制御により、当該区間のTSパケットは正常にデコーダ１８０によりデコードされ、出力部１７０により出力される。Ｈとｈとが一致しない場合は、ステップＪ１７に進み、照合部１４２は、当該区間を不正区間であると見なし、制御部１５０は、当該区間で受信したコンテンツを出力しないように、デコーダ１８０および出力部１７０を制御する。
【００２９】
図４は、図２の送信装置で実行されるストリーム生成方法の実施態様を示すフローチャートである。これは、署名検証区間内の全てのTSパケットからハッシュ値Ｈを求め、これをストリームに含ませて送信する実施態様である。図に示すように、ステップＫ１１では、送信装置２００に設けられたネットワーク部（図示しない）が上位装置（コンテンツサーバなど）から受け取った、オリジナルメッセージ（元の一連のTSパケット）から、第１のヌルパケットと、それの１以上後の第２のヌルパケット（即ち、２番目以降のヌルパケット）との区間を署名検証区間に設定する。
【００３０】
次に、ステップＫ１２にて、ハッシュ値計算部２１０が、この署名検証区間にある一連のパケット全て（但し、区間内のヌルパケットは除く。）から、所定のハッシュ関数を用いて署名情報としてのハッシュ値Ｈを計算する。ステップＫ１３にて、ストリーム生成部２２０が、求めたハッシュ値Ｈを含む検証パケットを作成する。次に、ステップＫ１４にて、ストリーム生成部２２０が、生成した検証パケットで当該区間の終点（または始点）のヌルパケットを置換することによって、当該署名検証区間内の一連のTSパケットと、検証パケットとからなる一連のストリームを生成する。最後に、ステップＫ１５にて、送信部２３０が、生成した一連のストリームに含まれるパケットを順次、送信（放送）する。なお、送信装置２００内の各ブロックにて作成、生成されたデータや情報は、必要に応じてメモリ２５０に一時的に格納され、同様に必要に応じて格納したデータや情報は読み出されるものとする。
【００３１】
図５を用いて、図２に示した送信装置２００の送信処理について説明する。図５は、送信装置２００においてヌル（ＮＵＬＬ）パケットを含むトランスポートストリーム（ＴＳ）からハッシュ値を計算する手法（送信装置側）を説明する図である。
【００３２】
図５の上段に示すように、オリジナルメッセージ（元のTSパケット）は、パケットＰ０(ヌルパケット)、Ｐ１(PID=A)、Ｐ２(PID=B)、Ｐ３(PID=C)、Ｐ４(PID=A)、Ｐ５（ヌルパケット）、Ｐ６(PID=A)の順のパケットストリームである。ここで、PID=Aは映像信号、PID=Bは音声信号、PID=Cはデータ放送信号を示すパケット識別子である。送信装置２００のハッシュ値計算部２１０は、署名検証区間[Ｐ１−Ｐ４]のTSパケットであるパケットＰ１−Ｐ４を連鎖的に用いてハッシュ値を生成する。最初に、図５の下段に示すように、パケットＰ１(PID=A)のペイロード部に格納されているメッセージ（１８４バイト）から、所定のハッシュ関数を用いて、１６バイトのハッシュ値ｈ１を生成する。次に、ハッシュ値ｈ１とパケットＰ２(PID=B)のメッセージｍ１（１８４バイト）から、ハッシュ値ｈ２を生成する。同様に、ハッシュ値ｈ２とパケットＰ３(PID=C)のメッセージｍ２（１８４バイト）から、ハッシュ値ｈ３を生成し、さらに、ハッシュ値ｈ３とパケットＰ４(PID=A)のメッセージｍ３（１８４バイト）から、ハッシュ値ｈ４を生成する。区間内の全てのパケットを処理し終えたため、最後のハッシュ値ｈ４を最終的なハッシュ値Ｈとし、このハッシュ値Ｈを含む検証パケット(VP)で、パケットＰ５（ヌルパケット）を置換する。そして、これらのパケットをストリームとして送信（放送）する。
【００３３】
図５に示したストリームの受信処理について図６を参照しながら説明する。図６は、図１の受信装置１００において、受信したトランスポートストリーム（ＴＳ）のメッセージからハッシュ値を計算し、メッセージの正当性を検証する手法（受信装置側）を説明する図である。図に示すように、受信装置１００のハッシュ値計算部２１０は、署名検証区間[Ｐ１−Ｐ４]のTSパケットであるパケットＰ１−Ｐ４を連鎖的に用いてハッシュ値を生成する。最初に、パケットＰ１(PID=A)のペイロード部に格納されているメッセージ（１８４バイト）から、所定のハッシュ関数を用いて、１６バイトのハッシュ値ｈ１を生成（計算）する。次に、ハッシュ値ｈ１とパケットＰ２(PID=B)のメッセージｍ１（１８４バイト）から、ハッシュ値ｈ２を生成（計算）する。同様に、ハッシュ値ｈ２とパケットＰ３(PID=C)のメッセージｍ２（１８４バイト）から、ハッシュ値ｈ３を生成（計算）し、さらに、ハッシュ値ｈ３とパケットＰ４(PID=A)のメッセージｍ３（１８４バイト）から、ハッシュ値ｈ４を生成（計算）する。ハッシュ値計算部１２０は、区間内の全てのパケットを処理し終えたため、最後のハッシュ値ｈ４を最終的なハッシュ値とする。照合部１４２は、署名検証区間に後続するパケットＰ５(検証パケットVP)に格納されている署名情報としてのハッシュ値Ｈをメモリ１６０から取得する。そして、照合部１４２は、計算したハッシュ値ｈ４と検証パケットＰ５のハッシュ値Ｈとを照合する。照合部１４２の照合結果に応じて、制御部１５０は、当該署名検証区間のコンテンツやサービスの出力を制御する。
【００３４】
このように、本実施態様では、区間内の全てのTSパケット（４個）をハッシュ値の生成元として使用しているため、TSパケット数と同じ数だけハッシュ計算が行われることになり、ストリーム全体としての認証処理が可能となる。しかしながら、図５の手法において、パケットロスが発生したとき不都合となるケースも起こり得るが、このようなケースを図７を参照しながら説明する。
【００３５】
図７は、図５、６に示した手法においてパケットロスに対応できないケースを説明する図である。図７の（ａ）はパケットロスが発生した場合の受信装置側の認証処理、（ｂ）はパケットが改竄された場合の受信装置側の認証処理を示す。図７の（ａ）に示すように、パケットＰ３がパケットロスとなり受信できなかった場合は、当該署名検証区間[VP-VP]にはＰ１〜Ｐ４つのパケットを連鎖的に用いて４回のハッシュ計算されるはずが、３つのパケットを用いた「３回」のハッシュ計算しか行われない。この３回のハッシュ計算により最終的にハッシュ値ｈ３が出力され、このハッシュ値ｈ３と、パケットＰ５に格納されているハッシュ値Ｈとが照合されるが、一致せず、認証失敗となる。
【００３６】
一方、図７の（ｂ）では、パケットＰ３が攻撃者によって改竄されているが、受信装置は、改竄されたパケットであっても正常に受信してしまう。従って、４つのパケットを用いて４回のハッシュ計算が行われる。そして、この「４回」のハッシュ計算により最終的にハッシュ値ｈ４が出力され、このハッシュ値ｈ４と、パケットＰ５に格納されているハッシュ値Ｈとが照合されるが、一致せず、認証失敗となる。
【００３７】
このように、図７の（ａ）のケースはパケットロスを原因とする認証失敗であり、図７の（ｂ）のケースはパケット改竄を原因とする認証失敗であるが、図５、６に示した処理では、これを区別することができず、当該区間は一律に不正区間として処理されていた。
【００３８】
図７の（ａ）のケースは、攻撃者による不正放送波が原因である恐れは低く、むしろパケットロスが要因であると考えられる。特に、パケット伝送に無線経路を用いる場合には、パケットロスは高い頻度で発生する。このようなパケットロスを攻撃者による不正放送であると一律に判定すると、ユーザに正常放送として表示できる区間が僅かなものとなってしまうという不都合が発生する。このようなパケットロスを判定してユーザビリティを向上させるための構成を図８以降に示す。
【００３９】
図８は、本発明の一実施態様によるパケットロスを判定してユーザビリティを向上させる受信装置の基本的な構成を示すブロック図である。図に示すように、受信装置１００Ａは、アンテナＡＮＴ１、受信部１１０と、ハッシュ値計算部（生成部）１２０Ａ、カウンタ部１２５、パケット処理部１３０Ａ、認証部１４０Ａ、制御部１５０Ａ、メモリ１６０、出力部１７０、およびデコーダ１８０を具える。アンテナＡＮＴ１は、パケットを含む放送波を受信し、受信した放送波を受信部１１０に供給する。受信部１１０は、受信した放送波を信号処理（ＯＦＤＭ復調処理など）して得たトランスポートストリーム(TS)信号（TSパケットおよび検証パケット）を、ハッシュ値計算部１２０Ａ、パケット処理部１３０Ａ、およびメモリ１６０に供給する。メモリ１６０はTSパケットを格納する。
【００４０】
パケット処理部１３０Ａは、TS信号から検証パケットを抽出し、さらに検証パケットに格納されている、「現在の検証パケット」と「次に受信した検証パケット」との間の区間[VP-VP]に含まれているハッシュ生成に使用したパケットの個数Ｎを取得し、取得したTSP個数Ｎ（但し、Ｎは整数）をメモリ１６０に格納しておく。
【００４１】
ハッシュ値計算部１２０Ａは、検証パケット以降の一連のTSパケットから、TSパケットを順次取得し、取得したTSパケットを連鎖的に用いてハッシュ値を生成し、生成したハッシュ値ｈを認証部１４０Ａに供給する。カウンタ部１２５は、検証パケットを受信すると、カウンタを０でクリアし、TSパケットを１つ選び出す毎に、1ずつインクリメントし、そのカウント値をメモリ１６０に格納する。また、カウンタ部１２５は、ハッシュ値の生成に使用したパケット数をカウントする。ハッシュ値計算部１２０Ａおよびカウンタ部１２５は、新たな検証パケットを受信する毎に、同様のハッシュ値計算処理およびカウント処理を繰り返す。
【００４２】
認証部１４０Ａは、照合部１４２および処理部１４４Ａを具える。照合部１４２は、ハッシュ計算を開始するトリガーとなった検証パケットの次に受信する検証パケットに含まれる署名情報としてのハッシュ値Ｈと、前記生成されたハッシュ値ｈとが一致するか否かを照合する。処理部１４４Ａは、照合部１４２による照合の結果、次の検証パケットに含まれる署名情報としてのハッシュ値Ｈと、生成されたハッシュ値ｈとが一致しない場合、検証パケットと次の検証パケットとの間の区間において、カウンタ部１３０でカウントされたパケットの数ｃ（即ち、当該区間においてハッシュ値の生成に使用したパケットの数）と、検証区間[VP-VP]間におけるハッシュ生成に使用した、検証パケットに含まれるTSP個数Ｎとが一致しないときは、パケットロスが発生したと見なし、当該区間を署名検証区間から除外する。
【００４３】
デコーダ１８０は、メモリ１６０に格納されている音声パケット、映像パケット、データ放送パケットなどをデコードして出力部１７０に設けられた表示部１７２やスピーカ１７４に供給する。処理部１４４Ａは、照合部１４２による照合の結果、署名情報としてのハッシュ値Ｈと、生成されたハッシュ値ｈとが一致しない場合、かつ、カウンタ部１２５でカウントされたパケットの数ｃと、前記TSP個数Ｎとが一致したときは、当該区間を不正区間であると判定する。制御部１５０Ａは、不正区間におけるコンテンツまたはサービスの、出力部１７０による出力を制御する。例えば、制御部１５０Ａは、デコーダ１８０における当該区間のデコードを中止するように制御する。
【００４４】
或いは、制御部１５０Ａは、署名検証区間から除外した区間のトランスポートストリームパケットを用いてコンテンツまたはサービスを出力する場合、当該除外した区間の前および／または後の区間の認証部１４０Ａによる署名検証結果に基づいて、当該コンテンツまたはサービスの出力を制御する。例えば、制御部１５０Ａは、前または後の区間の署名検証が正常であれば、除外区間では検証対象パケットのロスによりハッシュ値が一致しなかったものと見なし、除外区間のコンテンツまたはサービスを出力する。また、制御部１５０Ａは、前または後の区間の署名検証が異常（不一致）であれば、除外区間では出力を停止する。また、制御部１５０Ａは、除外区間について、出力を停止したり、パケットロスがあった旨を示す字幕を付加して出力したり、その旨の文字をスーパーインポーズして出力したり、その旨を示す音声を出力したりするように表示部１７２やスピーカ１７４を制御する。
【００４５】
図９に、本発明の一実施態様による送信装置のブロック図を示す。この送信装置２００Ａによる処理を、図１０を用いて説明する。図１０は、ハッシュ値の生成に使用するTSP個数Ｎを新たに検証パケットに含ませることによってパケットロスを検出する署名検証方法（受信装置側）を説明する図である。図１０の（ａ）に示すように、送信装置側において、検証パケット間の署名検証区間[Ｐ１−Ｐ４]の後の検証パケットであるパケットＰ５に、当該区間の全てのパケットを用いて作成したハッシュ値Ｈと、さらに、当該区間におけるハッシュ値の生成に使用したTSP個数Ｎ＝４を含ませる。
【００４６】
このようなパケットロスが判定可能になるようにストリームを生成して送信する送信装置２００Ａの処理のフローチャートを図１１に示す。図１１のストリーム生成処理に対応するために、図９の送信装置２００Ａのストリーム生成部２２０、カウント部２４０およびメモリ２５０の動作を以下のように変更する。カウント部２４０は、当該区間におけるハッシュ値の生成に使用したパケット数Ｎをカウントし、カウントされたパケット数Ｎはメモリ２５０に格納される。送信装置２００Ａのストリーム生成部２２０は、メモリ２５０に格納されている区間内でパケット生成に使用したパケット数Ｎを検証パケットにさらに含ませたストリームを生成する。
【００４７】
図１１に示すように、ステップＫ２１では、送信装置２００Ａに設けられたネットワーク部（図示しない）が上位装置（コンテンツサーバなど）から受け取った、オリジナルメッセージ（元の一連のTSパケット）のヌルパケットに基づいて署名検証区間を設定する。ステップＫ２２にて、ハッシュ値計算部２１０Ａが、この署名検証区間にあるヌルパケットを除く「一連のTSパケット」全てから、各パケットを連鎖的に用いて、所定のハッシュ関数を用いて署名情報としてのハッシュ値Ｈを計算して、ハッシュ値を生成する。このとき、カウンタ部２４０が、１つパケットを処理する毎にパケット数をカウントする。また、カウンタ部２４０は、ハッシュ値の生成に使用したパケット数をカウントする。前述したように、ヌルパケットはカウントしないものとする。
【００４８】
このようにして、署名検証区間内の全てのTSパケットから署名情報としてのハッシュ値を生成する。ステップＫ２３にて、ストリーム生成部２２０が、署名検証区間内の全てのTSパケットを処理し終えた後のカウント値ｃの値を、区間内のハッシュ値の生成に使用したTSP個数Ｎに設定し、このTSP個数Ｎと、生成したハッシュ値Ｈとを含む検証パケットを作成する。
【００４９】
次にステップＫ２４にて、ストリーム生成部２２０が、生成した検証パケットで当該区間の終点のヌルパケットを置換することによって、署名検証区間内の一連のTSパケットと、検証パケットとからなる一連のストリームを生成する。最後に、ステップＫ２５にて、送信部２３０が、生成した一連のストリームに含まれるパケットを順次、送信（放送）する。なお、送信装置２００内の各ブロックにて作成、生成されたデータや情報は、必要に応じてメモリ２５０に一時的に格納され、同様に必要に応じて格納したデータや情報は読み出されるものとする。
【００５０】
図１０の説明に戻るが、図１０の（ｂ）は、パケットロスが発生した場合の受信装置側の認証処理を示すものである。図に示すように、パケットＰ３が通信エラーによってパケットロスとなっており、３つのパケットを用いて、３回のハッシュ計算が行われる。従って、計算したハッシュ値ｈ３と、検証パケットＶＰ（パケットＰ５）に格納されているＨとを照合しても、一致しない。なお、作図の便宜上、ハッシュ関数を１つだけ図示してあるが、上述したようにハッシュ計算は、ヌルパケット以外の受信したTSパケットと同じ数だけ行われるものであることに注意されたい。カウントしたハッシュ値の生成に使用したTSP個数ｃが３個であり、検証パケット(VP)であるパケットＰ５で規定されたTSP個数Ｎ＝４であるため、これも不一致であり、パケットロスが発生していることが判明する。このようなケースでは、ハッシュ値不一致の主原因がパケットロスであると見なすことができる。
【００５１】
図１０の（ｃ）はパケットが改竄された場合の受信装置側の認証処理を示すものである。図に示すように、パケットＰ３が改竄されており、改竄されたパケットを含む４つのパケットを用いて、４回のハッシュ計算が行われる。従って、計算したハッシュ値ｈ４と、検証パケットＶＰ（パケットＰ５）に格納されているＨとを照合しても、一致しない。この場合は、カウントしたハッシュ値の生成に使用したTSP個数ｃが４個であり、パケットＰ５で規定されたTSP個数Ｎ＝４であるため、カウントしたハッシュ値の生成に使用したTSP個数ｃと、パケットで規定されたTSP個数Ｎとが一致し、パケットロスが発生していないことが判明する。このようなケースでは、ハッシュ値不一致が、完全に改竄を原因とするものであり、不正な放送波を受信してると見なすことができる。
【００５２】
即ち、本構成では、パケットロスが主原因と考えられる認証失敗と、完全に改竄が原因と考えられる認証失敗という２つのタイプの認証失敗を明確に区別することが可能となる。パケットロスを原因とする場合は、当該区間を不正とは判定せずに、単に認証区間から除外し、先行する区間や後続の区間の認証結果に基づき、出力制御することが好適である。このように制御することによって、パケットロス発生の頻度が高い無線環境において、放送されるコンテンツやサービスを実用上問題のないレベルで再生／表示することが可能となる。従って、受信装置は、「パケットロスあり、認証失敗」という事実を把握し、「認証失敗の原因はパケットロスである可能性が高い」ことを認識することができる。従って、受信装置は、認証失敗した区間であっても、当該装置のポリシーに応じて、当該区間のコンテンツ再生を継続したり、制限付き、或いは、認証結果を示す字幕／表示などを付加した状態で再生したりすることが可能となる。例えば、認証失敗した区間のコンテンツを、上述した認証失敗の原因と共に認証結果を示す字幕／表示付きで再生すれば、無線環境などにおいても実用上問題ない程度でコンテンツ再生を行うことが可能となり、ユーザビリティが格段に向上する。
【００５３】
また、図１の受信装置の構成では、署名検証区間内におけるパケットのパケットロスト（受信エラー）が原因であってもこれを認識できていなかったため、照合部においてハッシュ値が一致しない場合は、不正なストリームを受信しているものと判定せざるを得なかった。しかしながら、本実施態様では、カウント部と処理部とを設けることによって、パケットロスが発生した可能性があることを受信装置側で判定できるようにして、そのようなパケットロスが発生した区間を署名検証区間から除外できるように構成した。これによって、ハッシュ値が一致せず、署名検証区間内に存在するべきハッシュ値の生成に使用したパケット個数Ｎと、当該区間内でハッシュ値の生成に使用したパケット数（カウント値ｃ）とが一致した場合には、完全に不正なストリームであるという判定ができるようになった。
【００５４】
図１２は、図７の受信装置で実行される署名検証方法の一例を示すフローチャートである。図に示すように、ステップＳ１１では、初期値を設定する（カウント値ｃ、前回のハッシュ値ｈ０をゼロにする）。次にステップＳ１２にて、ハッシュ値計算部１２０Ａは、受信して復調されたTS信号を監視し、予め定めた固有の識別子を持つ検証パケットを選び出す。
【００５５】
次にステップＳ１３では、ハッシュ値計算部１２０Ａは、ループ２（ステップＳ１５、Ｓ１６、Ｓ１７）を開始する。ステップＳ１４では、ハッシュ値の生成に使用するために、TSパケットを取得し、パケットを１つ取得する毎にカウンタ部１２５はカウント値ｃを１ずつ増分する。次にステップＳ１５では、TSパケットのメッセージｍ（ペイロード）と、前回のハッシュ値ｈ０（最初の実行時はヌルでり、２回目以降は前回計算したハッシュ値）とから、所定のハッシュ関数ｆを用いてハッシュ値ｈを生成する。
ｈ＝ｆ（ｍ，ｈ０）
【００５６】
次にステップＳ１６にて、ループ２の終了条件を満たすまでループ２を繰り返す。終了条件は、検証パケットと次の検証パケットとの間の区間[VP-VP]において、TSパケットを全て処理することである。次にステップＳ１７にて、パケット処理部１４４Ａは、次の検証パケットに格納されている署名情報としてのハッシュ値Ｈを取得し、これをメモリ１６０に格納する。認証部１４０Ａ内の照合部１４２は、ステップＳ１８にて、検証パケットから取得した署名情報としてのハッシュ値Ｈと、ハッシュ値計算部１２０Ａで生成したハッシュ値ｈとが一致するか否かを照合する。取得したハッシュ値Ｈと、生成したハッシュ値ｈとが一致する場合は、署名情報を正常に認証できたものとして処理を終え、当該区間のTSパケットは正常にデコーダ１８０によりデコードされ出力部１７０により出力される。取得したハッシュ値Ｈと生成したハッシュ値ｈとが一致しなかった場合は、ステップＳ１９に進み、パケット処理部１４４Ａが、次の検証パケットに含まれている区間[VP-VP]間に存在するべきハッシュ値の生成に使用するパケット数Ｎを取得する。次にステップＳ２０にて、処理部１４４Ａは、ハッシュ値の生成に使用するパケットのパケットロスが発生しているか否かを確かめるために、計測したカウント値ｃと、区間内に存在するべきハッシュ値の生成に使用するパケット数Ｎとが一致するか否かを判定する。計測したカウント値ｃとハッシュ値の生成に使用するパケット数Ｎとが一致している場合は、ステップＳ２１に進み、パケットロスがないにも関わらず、ハッシュ値の照合に失敗したことになるため、当該区間を不正区間であると見なし、処理部１４４Ａは、当該区間のデコードを停止するようにデコーダ１８０を制御する。或いは、処理部１４４Ａは、デコーダ１８０ではなく、直接、出力部１７０が出力しないように制御してもよい。ステップＳ２０にて、計測したカウント値ｃとハッシュ値の生成に使用するパケット数Ｎとが一致しなかった場合は、ステップＳ２２に進み、処理部１４４Ａは、パケットロスが発生していることになるため、当該区間を署名検証区間から除外して、処理を終える。
【００５７】
最後に本発明の利点を再度述べる。本発明の実施態様によれば、ストリーム全体を認証でき、かつ、パケットロスなどの受信エラーが発生したことを検知することによって受信エラーへの耐性およびユーザビリティを向上させることができるようになる。即ち、本発明では、一連のストリームパケット全体を認証（検証）しながら、ハッシュ生成に使用するパケット数と、カウントしたハッシュ値生成に使用したパケットの数とを比較してパケットロスを検知することによって、照合結果の不一致の原因が、攻撃者による改竄であるのか、或いはパケットロスであるのかを区別することが可能となる。このように照合不一致の原因を区別することによって、従来よりもユーザビリティを向上させることができるようになる。
【００５８】
本発明を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。従って、これらの変形や修正は本発明の範囲に含まれることに留意されたい。例えば、各部、各手段、各ステップなどに含まれる機能などは論理的に矛盾しないように再配置可能であり、複数の手段やステップなどを１つに組み合わせたり、或いは分割したりすることが可能である。
【００５９】
実施態様では、検証区間の全てのTSPを用いてハッシュ値を生成する例を示したが、当該区間のパケットのうち特定のパケットを使用して、つまり、一部のパケットを使用して、ハッシュ値を生成する態様にも本発明を適用することが可能である。なお、特定のパケットを指定する方法として、パケットＩＤにより指定する方法が考えられる。これにより、ハッシュ値の計算処理負荷が軽くなり、本発明を小型の受信端末に適用可能となる。また、実施態様では、ハッシュ値の生成に使用するTSP個数Ｎは、対象とする署名検証区間よりも後の検証パケットに格納したが、検証開始の起点である検証パケットに含ませてもよい。また、実施態様では、前方から順に各メッセージおよび生成したハッシュ値を用いて連鎖的にハッシュ値を生成したが、それらは単なる例示に過ぎず、例えば、後方から順に各メッセージ連鎖的に用いてハッシュ値を生成するなど、本発明はハッシュ生成に様々な形式を使用することが可能である。
【図面の簡単な説明】
【００６０】
【図１】本発明の一実施態様による受信装置の基本的な構成を示すブロック図である。
【図２】本発明の一実施態様による送信装置の基本的な構成を示すブロック図である。
【図３】図１の受信装置で実行される署名検証方法の一例を示すフローチャートである。
【図４】図２の装置で実行されるストリーム生成方法の一例を示すフローチャートである。
【図５】送信装置２００においてヌル（ＮＵＬＬ）パケットを含むトランスポートストリーム（ＴＳ）からハッシュ値を計算する手法（送信装置側）を説明する図である。
【図６】受信したトランスポートストリーム（ＴＳ）のメッセージからハッシュ値を計算し、メッセージの正当性を検証する手法（受信装置側）を説明する図である。
【図７】図５に示した手法においてパケットロスに対応できないケースを説明する図である。
【図８】本発明の一実施態様によるパケットロスを判定してユーザビリティを向上させる受信装置の基本的な構成を示すブロック図である。
【図９】本発明の一実施態様による送信装置のブロック図である。
【図１０】ハッシュ値の生成に使用するTSP個数Ｎを新たに検証パケットに含ませることによってパケットロスを検出する署名検証方法（受信装置側）を説明する図である。
【図１１】パケットロスが判定可能になるようにストリームを生成して送信する送信装置２００Ａの処理のフローチャートであある。
【図１２】図７の受信装置で実行される署名検証方法の一例を示すフローチャートである。
【図１３】従来システムにおける不正放送受信を模式的に示す図である。
【図１４】従来技術によってトランスポートストリームパケットにハッシュ値を付加する技法を示す図である。
【符号の説明】
【００６１】
１００，１００Ａ  受信装置
１１０  受信部
１２０，１２０Ａ  ハッシュ値計算部
１２５  カウンタ部
１３０，１３０Ａ  パケット処理部
１４０，１４０Ａ  認証部
１４２  照合部
１４４，１４４Ａ  処理部
１５０，１５０Ａ  制御部
１６０  メモリ
１７０  出力部
１７２  表示部
１７４  スピーカ
１８０  デコーダ
２００．２００Ａ  送信装置
２１０，２１０Ａ  ハッシュ値計算部
２２０  ストリーム生成部
２３０  送信部
２４０  カウンタ部
２５０  メモリ
ＡＮＴ１−２  アンテナ
ｈ０−４  ハッシュ値
ｍ１−３  メッセージ
Ｐ１−Ｐ６  パケット
ＶＰ  検証パケット
【図１】
0005101964.tif 000002
【図２】
0005101964.tif 000003
【図３】
0005101964.tif 000004
【図４】
0005101964.tif 000005
【図５】
0005101964.tif 000006
【図６】
0005101964.tif 000007
【図７】
0005101964.tif 000008
【図８】
0005101964.tif 000009
【図９】
0005101964.tif 000010
【図１０】
0005101964.tif 000011
【図１１】
0005101964.tif 000012
【図１２】
0005101964.tif 000013
【図１３】
0005101964.tif 000014
【図１４】
0005101964.tif 000015