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