(57)【要約】  【課題】従来技術においては、改ざん検出用のデータを付加すると、データサイズが増大するという課題を有していた。  【解決手段】改ざん検出対象のデータと秘密鍵から生成された乱数とに基づいて改ざん検出用データを暗号化するための暗号鍵を生成する。暗号文データから作成した改ざん検出用データを暗号鍵を用いて暗号化して送付する。受信側では、改ざん検出対象データと秘密鍵から生成された乱数とに基づいて暗号鍵を生成して、受信する暗号化改ざん検出用データを復号化する。これと、暗号文から計算した改ざん検出用データとを比較して、データ改ざんもしくはデータ誤りの有無を検出する。これにより、通信路上のデータ誤りのみならず、改ざん検出対象の故意のデータ改ざんも検出することが可能になる。【選択図】図３
2008278416.tif 000002
【特許請求の範囲】
【請求項１】
平文データを暗号化して暗号文データを生成するデータ暗号処理装置であって、前記平文データは、改ざん検出対象データを含み、
前記データ暗号処理装置は、
鍵データを用いて前記平文データを暗号化して暗号化データを生成するデータ暗号変換部と、
前記暗号化データに対して誤り検出用データを生成する誤り検出用データ生成部と、
前記改ざん検出対象データと前記鍵データに基づいて誤り検出用データ暗号鍵を生成する誤り検出用データ暗号鍵生成部と、
前記誤り検出用データ暗号鍵を用いて前記誤り検出用データを暗号化して暗号化誤り検出用データを生成する誤り検出用データ暗号化部と、
前記暗号化データと前記暗号化誤り検出用データを元に暗号文データを作成して出力する暗号文データ出力部と
を備えることを特徴とするデータ暗号処理装置。
【請求項２】
平文データを暗号化して暗号文データを生成するデータ暗号処理方法であって、前記平文データは、改ざん検出対象データを含み、
前記データ暗号処理方法は、
鍵データを用いて前記平文データを暗号化して暗号化データを生成するデータ暗号変換ステップと、
前記暗号化データに対して誤り検出用データを生成する誤り検出用データ生成ステップと、
前記改ざん検出対象データと前記鍵データに基づいて誤り検出用データ暗号鍵を生成する誤り検出用データ暗号鍵生成ステップと、
前記誤り検出用データ暗号鍵を用いて前記誤り検出用データを暗号化して暗号化誤り検出用データを生成する誤り検出用データ暗号化ステップと、
前記暗号化データと前記暗号化誤り検出用データを元に暗号文データを作成して出力する暗号文データ出力ステップと
を含むことを特徴とするデータ暗号処理方法。
【請求項３】
平文データを暗号化して暗号文データを生成するデータ暗号処理プログラムであって、前記平文データは、改ざん検出対象データを含み、
前記データ暗号処理プログラムは、
鍵データを用いて前記平文データを暗号化して暗号化データを生成するデータ暗号変換ステップと、
前記暗号化データに対して誤り検出用データを生成する誤り検出用データ生成ステップと、
前記改ざん検出対象データと前記鍵データに基づいて誤り検出用データ暗号鍵を生成する誤り検出用データ暗号鍵生成ステップと、
前記誤り検出用データ暗号鍵を用いて前記誤り検出用データを暗号化して暗号化誤り検出用データを生成する誤り検出用データ暗号化ステップと、
前記暗号化データと前記暗号化誤り検出用データを元に暗号文データを作成して出力する暗号文データ出力ステップと
を含むことを特徴とするデータ暗号処理プログラム。
【請求項４】
平文データを暗号化して暗号文データを生成する集積回路であって、前記平文データは、改ざん検出対象データを含み、
前記集積回路は、
鍵データを用いて前記平文データを暗号化して暗号化データを生成するデータ暗号変換部と、
前記暗号化データに対して誤り検出用データを生成する誤り検出用データ生成部と、
前記改ざん検出対象データと前記鍵データに基づいて誤り検出用データ暗号鍵を生成する誤り検出用データ暗号鍵生成部と、
前記誤り検出用データ暗号鍵を用いて前記誤り検出用データを暗号化して暗号化誤り検出用データを生成する誤り検出用データ暗号化部と、
前記暗号化データと前記暗号化誤り検出用データを元に暗号文データを作成して出力する暗号文データ出力部と
を備えることを特徴とする集積回路。
【請求項５】
暗号文データを復号化して復号文データを生成するデータ復号処理装置であって、
前記暗号文データは、暗号化誤り検出用データを含み、
前記データ復号処理装置は、
鍵データを用いて前記暗号文データを復号化して復号化データを生成し、前記復号化データは改ざん検出対象データを含むデータ復号変換部と、
前記暗号文データに対して誤り検出用データを生成する誤り検出用データ生成部と、
前記改ざん検出対象データと前記鍵データに基づいて誤り検出用データ暗号鍵を生成する誤り検出用データ暗号鍵生成部と、
前記誤り検出用データ暗号鍵を用いて前記暗号化誤り検出用データを復号化して復号化誤り検出用データを生成する改ざん検出用データ復号化部と、
前記復号化誤り検出用データと前記誤り検出用データとに基づいて、前記暗号文データにおける誤りまたは改ざんの有無を判断する誤り検出用データ確認部と、
前記復号化データを元に復号文データを作成して出力する復号文データ出力部と
を備えることを特徴とするデータ復号処理装置。
【請求項６】
暗号文データを復号化して復号文データを生成するデータ復号処理方法であって、前記暗号文データは、暗号化誤り検出用データを含み、
前記データ復号処理方法は、
鍵データを用いて前記暗号文データを復号化して復号化データを生成し、前記復号化データは改ざん検出対象データを含むデータ復号変換ステップと、
前記暗号文データに対して誤り検出用データを生成する誤り検出用データ生成ステップと、
前記改ざん検出対象データと前記鍵データに基づいて誤り検出用データ暗号鍵を生成する誤り検出用データ暗号鍵生成ステップと、
前記誤り検出用データ暗号鍵を用いて前記暗号化誤り検出用データを復号化して復号化誤り検出用データを生成する改ざん検出用データ復号化ステップと、
前記復号化誤り検出用データと前記誤り検出用データとに基づいて、前記暗号文データにおける誤りまたは改ざんの有無を判断する誤り検出用データ確認ステップと、
前記復号化データを元に復号文データを作成して出力する復号文データ出力ステップと
を含むことを特徴とするデータ復号処理方法。
【請求項７】
暗号文データを復号化して復号文データを生成するデータ復号処理プログラムであって、前記暗号文データは、暗号化誤り検出用データを含み、
前記データ復号処理プログラムは、
鍵データを用いて前記暗号文データを復号化して復号化データを生成し、前記復号化データは改ざん検出対象データを含むデータ復号変換ステップと、
前記暗号文データに対して誤り検出用データを生成する誤り検出用データ生成ステップと、
前記改ざん検出対象データと前記鍵データに基づいて誤り検出用データ暗号鍵を生成する誤り検出用データ暗号鍵生成ステップと、
前記誤り検出用データ暗号鍵を用いて前記暗号化誤り検出用データを復号化して復号化誤り検出用データを生成する改ざん検出用データ復号化ステップと、
前記復号化誤り検出用データと前記誤り検出用データとに基づいて、前記暗号文データにおける誤りまたは改ざんの有無を判断する誤り検出用データ確認ステップと、
前記復号化データを元に復号文データを作成して出力する復号文データ出力ステップと
を含むことを特徴とするデータ復号処理プログラム。
【請求項８】
暗号文データを復号化して復号文データを生成する集積回路であって、
前記暗号文データは、暗号化誤り検出用データを含み、
前記集積回路は、
鍵データを用いて前記暗号文データを復号化して復号化データを生成し、前記復号化データは改ざん検出対象データを含むデータ復号変換部と、
前記暗号文データに対して誤り検出用データを生成する誤り検出用データ生成部と、
前記改ざん検出対象データと前記鍵データに基づいて誤り検出用データ暗号鍵を生成する誤り検出用データ暗号鍵生成部と、
前記誤り検出用データ暗号鍵を用いて前記暗号化誤り検出用データを復号化して復号化誤り検出用データを生成する改ざん検出用データ復号化部と、
前記復号化誤り検出用データと前記誤り検出用データとに基づいて、前記暗号文データにおける誤りまたは改ざんの有無を判断する誤り検出用データ確認部と、
前記復号化データを元に復号文データを作成して出力する復号文データ出力部と
を備えることを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信側でデータを改ざん検出可能な形式で暗号化して受信側に送信し、受信側で復号化してデータ改ざんの有無を検知することが可能な、データ暗号処理装置に関する。
【背景技術】
【０００２】
近年、映画や音楽などのデジタルコンテンツを、ネットワークを介して配信したり、ある機器で受信あるいは蓄積しているデジタルコンテンツを、別の機器に転送して利用したりするケースが多くなってきた。このようなケースでは、配信したり転送したりするデジタルコンテンツデータの著作権を保護するために、送信側の機器あるいはサーバでコピー可能回数や利用条件などを記述したコピー制御情報を付加した上で、暗号化してネットワーク上や機器間の伝送チャネルを介して送付されるのが一般的である。送付された暗号化コンテンツデータを受信した機器は、コンテンツの復号化処理を行った上で、付加されているコピー制御情報に基づいて再生処理などのコンテンツ利用を行う。
【０００３】
また、近年、高速ネットワークの一般家庭への普及に伴い、デジタルストリームコンテンツをリアルタイムで受信、復号化、再生するようなストリーム配信サービスも普及している。他方で、コンテンツの高精細化、大容量化も進んでいるため、そのような高品質で大容量の暗号化コンテンツデータを、リアルタイムでストリーミング再生するためには、高速処理が可能な暗号方式が求められている。
【０００４】
ここで、コンテンツに付加するコピー制御情報は、コンテンツの利用条件を規定する情報であるため、何らかの暗号処理によって転送中の改ざんを阻止しなければならない。一般に、データを暗号化するだけでは、転送中のデータ改ざんを完全に阻止することはできない。例えば、データを所定のブロック単位で暗号化するブロック暗号方式では、暗号化データの一部分を改ざんしても、復号化データは、改ざんを行った部分を含む１ブロックだけが元の平文とは異なるだけに過ぎない。従って、先頭にコピー制御情報を付加したコンテンツデータの暗号化データに対してコピー制御情報部分を改ざんしても、コンテンツデータの先頭ブロックのデータが壊れるだけである。そのため、例えば、映像データの場合は、コピー制御情報は変えられてしまっているにもかかわらず、最初の数フレーム分に映像の乱れが有るだけで後は支障なく再生できてしまう恐れが有る。
【０００５】
この問題は、暗号方式としてストリーム暗号方式を用いた場合には更に顕著となる。ストリーム暗号方式では、基本的にはデータを１ビット単位で暗号化している。従って、例えば暗号化コンテンツデータの先頭の８ビットがコピー制御情報であると分かっていて、その部分の暗号化コンテンツデータに改ざん（ビット反転）を行っても、復号化データは、改ざんを行ったコピー制御情報部分だけが元の平文データと違う値となり、それ以外の部分は全くもとの平文と同じとなる。即ち、コピー制御情報は改変されたにも関わらず、コンテンツの再生は何ら支障なく行えることになり、コンテンツの著作権は損なわれてしまう。ストリーム暗号方式は、ブロック暗号方式と比べて、より高速な暗号処理が可能であるため、コンテンツのストリーム配信などでの使用に有効であるが、上記のようなデータ改ざんに対する耐性の低さが特に問題となってくる。
【０００６】
デジタルデータの改ざん防止方法としては、メッセージ改ざん検出子を用いた方式が一般的である。この方式では、送信側、受信側で予め共有された秘密データを元に、送信側で、データの改ざんを検出するためのデータ（メッセージ改ざん検出子）を作成する。そして、メッセージ改ざん検出子を伝送するデータに付加して受信側に送付する。受信側では、受信したデータから送信側と同じようにしてメッセージ改ざん検出子を作成し、伝送データに付加されていたものと一致するかどうかを確認する。一致すれば、伝送データは改ざんされていないと判断し、一致しない場合には改ざんがされていると判断する。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術においては、伝送データにメッセージ改ざん検出子を付加する必要があるため、伝送データのデータサイズが増加する、という課題を有していた。これは、ストリーム配信あるいは転送されるコンテンツデータをリアルタイムで受信、復号化、再生するような場合には特に問題となる。例えば、コンテンツデータを、パケット単位で受信する場合、各パケットにメッセージ改ざん検出子を付加すると、１パケットあたりのデータサイズが増加する。このため、単位時間あたりの通信パケット数を同じにするためには、通信帯域を増加することが必要になってしまう。さらに、受信側端末でも単位時間あたりの処理パケット数を同じにするためには、端末の処理性能を高める必要がある。以上のように、通信コスト、端末コストとも増大することになる一方、受信端末側の処理負荷が増加し、リアルタイムでコンテンツ受信、再生に対応しきれずに、音とびや映像の途切れが生じてしまう恐れも増加する。
【０００８】
本発明は、前記課題を解決するもので、高速処理が可能で、従来技術のようにデータ改ざん検出用のデータを付加することなく、転送されるデータの改ざんを阻止することが可能なデータ暗号処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
前記従来の課題を解決するために、本発明のデータ暗号処理装置は、平文データを暗号化して暗号文データを生成し、前記平文データは、改ざん検出対象データを含み、前記データ暗号処理装置は、鍵データを用いて前記平文データを暗号化して暗号化データを生成するデータ暗号変換部と、前記暗号化データに対して誤り検出用データを生成する誤り検出用データ生成部と、前記改ざん検出対象データと前記鍵データに基づいて誤り検出用データ暗号鍵を生成する誤り検出用データ暗号鍵生成部と、前記誤り検出用データ暗号鍵を用いて前記誤り検出用データを暗号化して暗号化誤り検出用データを生成する誤り検出用データ暗号化部と、前記暗号化データと前記暗号化誤り検出用データを元に暗号文データを作成して出力する暗号文データ出力部とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明のデータ暗号処理装置によれば、誤り検出用データのチェックにより、データ改ざん検出も可能とすることで、従来技術のようにデータ改ざん検出用のデータを付加することなく、転送されるデータの改ざんを阻止することが可能になるという効果がある。
また、データ改ざん検出のための処理は、コンテンツデータの暗号化、復号化処理と並列化が可能であるため、データ改ざん検出の処理を追加することによる処理時間の増加をきわめて小さくすることが可能になるという効果もある。
【００１１】
また、本発明のデータ改ざん検出方式では、データの高速暗号化・復号化が可能なストリーム暗号方式にも適用することで、ストリーム暗号方式の長所である高速暗号処理性能を損なうことなく、ストリーム暗号化方式の欠点であったデータ改ざんへの耐性の低さを補い、かつ、改ざん検出用の付加データが不要という、特に顕著な効果を奏する。
【発明を実施するための最良の形態】
【００１２】
（実施の形態）
以下、本発明の実施の形態について、図面を参照しながら説明する。
（データ送受信システムの構成）
図１は、本発明の実施の形態におけるデータ送受信システムの構成を示したブロック図である。本システムは、データ受信装置２と認証及び鍵共有を行ったうえでストリームデータを暗号化して送信するデータ送信装置１と、データ送信装置１と認証及び鍵共有を行ったうえで暗号化ストリームデータを受信、復号化して再生または蓄積するデータ受信装置２とからなる。データ送信装置１の例としては、デジタルテレビ放送やＩＰ放送などの放送波を受信してテレビで視聴可能な信号に変換するセットトップボックスや、メディアに蓄積されたコンテンツデータを読み出してデコードするＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）プレーヤー、ＤＶＤレコーダー、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｋ）プレーヤー、ＢＤレコーダなどである。データ受信装置２の例としては、変換もしくはデコードされたコンテンツデータを受信して表示もしくは蓄積する、テレビ、ＰＣモニター、ＤＶＤレコーダ、ＢＤレコーダなどである。
【００１３】
データ送信装置１は、データ暗号化処理を行うデータ暗号化部１０と、データ受信装置２と相互認証及び鍵共有を行う認証鍵共有処理部１１と、送信するデータストリームの生成を行うデータストリーム生成部１２からなる。また、データ受信装置２は、データ復号化処理を行うデータ復号化部２０と、データ送信装置１と相互認証及び鍵共有を行う認証鍵共有処理部２１と、受信して復号化したデータストリームの再生を行うデータストリーム再生部２２からなる。
【００１４】
本データ送受信システムにおいて、データ送信装置１がデータ受信装置２にストリームデータを送付するための動作は以下の通りである。
（１）相互認証及び鍵共有
データ送信装置１とデータ受信装置２の間で相互に認証を行う。データ送信装置１の認証鍵共有処理部１１とデータ受信装置２の認証鍵共有処理部２１には、それぞれ認証のための認証鍵が保管されており、認証鍵共有処理部１１と２１は、それぞれ保有している認証鍵を用いて、相互に認証しあった上で鍵共有を行う。なお、相互認証と鍵共有の方式は、公知であるためその詳細は説明しない。相互認証と鍵共有の方式としては、共通鍵暗号方式を用いた方法や、公開鍵暗号方式を用いた方法など各種あるが、互いに相手の機器の正当性が認証でき、両者の間で秘密の鍵データが共有できればどのような方式であっても良い。このようにして、認証鍵共有処理部１１と２１は、１２８ビットの秘密の鍵データＫを共有する。また、両者は、前記鍵データとは別に１２８ビットの初期ベクタＩＶを共有する。初期ベクタＩＶは、必ずしも秘密裏に共有する必要はないので、相互に認証の後、どちらかがランダムに生成して平文のまま相手に送付しても良いし、前記鍵データＫで暗号化して送付しても良い。
【００１５】
（２）ストリームデータの暗号化及び送信
データ送信装置１は、ストリームデータを生成して暗号化した上でデータ受信装置２に送信する。まず、ストリームデータ生成部１２で平文ストリームデータを生成する。平文ストリームの例としては、受信した放送波や、ＤＶＤなどのメディアから読み取った映像・音楽コンテンツデータを、受信装置側で再生可能な形式に変換したデータなどである。図２は、平文ストリームデータの構成の一例を示したものである。平文ストリームデータは、複数のパケットデータ５０、５１、・・・、５２からなり、各パケットデータ（図２ではパケットデータ５１を例にして図示している）は、ヘッダデータ５１０と、メインデータ５１１とからなる。本実施例では、各パケットのデータサイズは、２０４８バイトとし、パケットデータは、２バイトのヘッダデータと２０４６バイトのメインデータからなるものとする。また、ヘッダデータ２バイトは、コピー制御情報であるものとする。コピー制御情報は、ストリームデータを生成する際に、その元となるオリジナルのコンテンツデータに予め設定されているコピー制御規則に基づいて決定してストリームデータを構成する各パケットデータのヘッダデータ部分に設定する。次に、データ暗号化部１０は、認証鍵共有処理部１１から入力される初期ベクタＩＶと鍵Ｋとを用いて、前記の平文ストリームデータに対して暗号化処理を行い、暗号文ストリームデータを生成する。平文ストリームデータの暗号化処理の詳細については、後で説明する。そして、データ送信装置１は、暗号文ストリームデータをデータ受信装置２に送付する。なお、データ送信装置１は、全てのストリームデータの暗号化が完了してから暗号文ストリームデータをデータ受信装置２に送付しても良いし、暗号化処理を行ったストリームデータを、その都度リアルタイムでデータ受信装置２に送付しても良い。
【００１６】
（３）暗号化ストリームデータの復号化及び再生
データ受信装置２は、データ送信装置１から受信した暗号化ストリームデータを、（１）の処理で共有した鍵Ｋと初期ベクタＩＶに基づいて復号化を行って復号文ストリームデータを生成し、再生する。データ復号化部２０は、認証鍵共有処理部２１から入力される初期ベクタＩＶと鍵Ｋとを用いて、受信した暗号化ストリームデータに対して復号化処理を行い、復号文ストリームデータを生成する。暗号文ストリームデータの復号化処理の詳細については、後で説明する。前記復号化処理が正しく行われると、復号文ストリームデータは、データ送信装置１のデータストリーム生成部１２が生成した平文ストリームデータと一致する。次に、データストリーム再生部２２は、復号文ストリームのパケットデータに含まれるヘッダデータ２バイトのコピー制御情報に基づいて、復号文ストリームを再生する。なお、データ受信装置２は、暗号文ストリームデータを全て受信し終わってから復号化処理とストリームデータの再生処理を開始しても良いし、データ送信装置１から受信した暗号文ストリームデータをリアルタイムで復号化と再生の処理をしても良い。
【００１７】
次に、データ暗号化部１０の処理について説明する。
（データ暗号化部１０の処理詳細）
データ暗号化部１０は、平文ストリームデータに対して、先頭から１パケットずつ暗号化処理を行い、最終パケットの暗号処理が完了するまで暗号化処理を繰り返し行う。こうして平文ストリームデータの全パケットに対して暗号化処理を行った結果を暗号文ストリームデータとして出力する。以下では、データ暗号化部１０が、１パケットの平文パケットデータを暗号化して、１パケットの暗号化パケットデータを生成する処理について説明する。
【００１８】
図３は、データ暗号化部１０の詳細な構成の一例を示したブロック図である。データ暗号化部１０は、初期ベクタＩＶとこれまでの暗号化処理済みパケット数に基づいて変形初期ベクタを生成する初期ベクタ更新部１００と、鍵Ｋと変形初期ベクタとを用いて乱数データを生成する乱数生成部１０１と、乱数と平文パケットデータとの排他的論理和演算を行う排他的論理和部１０２と、暗号化パケットデータからデータ誤り検出用のＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）データを生成するＣＲＣ計算部１０３と、ＣＲＣデータを暗号化するためのＣＲＣ暗号鍵を生成するＣＲＣ暗号鍵生成部１０４と、ＣＲＣ暗号鍵とＣＲＣデータとの排他的論理和演算を行って暗号化ＣＲＣデータを生成する排他的論理和部１０５からなる。以下、データ暗号化部１０の処理について説明する。
【００１９】
初期ベクタ更新部１００は、平文ストリームデータの何パケットまで暗号化をしたかを示すカウンタ値を１２８ビットの数値データＮとして保持している。平文ストリームデータの暗号化処理開始時には、Ｎ＝０（１２８ビット）であり、１パケットの暗号化処理を完了するたびに、１ずつ加算される。初期ベクタ更新部１００は、上記の１２８ビットデータＮと認証鍵共有処理部１１から入力される初期ベクタＩＶとの排他的論理和演算を行い、変形初期ベクタ１２８ビットを生成する。そして、変形初期ベクタを乱数生成部１０１に入力する。Ｎは、１パケット暗号処理を行うたびに変化する値であり、初期ベクタＩＶは固定的な値であるので、変形初期ベクタは、各パケットの暗号処理ごとに必ず異なる値となる。
【００２０】
乱数生成部１０１は、鍵Ｋと変形初期ベクタを用いて乱数生成処理を行う。ここで、乱数生成処理の方式としては、株式会社日立製作所「擬似乱数生成器ＭＵＧＩ仕様書Ｖｅｒ．１．２（２００１年１２月１８日）ｈｔｔｐ：／／ｗｗｗ．ｓｄｌ．ｈｉｔａｃｈｉ．ｃｏ．ｊｐ／ｃｒｙｐｔｏ／ｍｕｇｉ／ｍｕｇｉ＿ｓｐｊ．ｐｄｆ」（右記ＵＲＬより入手可能  ｈｔｔｐ：／／ｗｗｗ．ｓｄｌ．ｈｉｔａｃｈｉ．ｃｏ．ｊｐ／ｃｒｙｐｔｏ／ｍｕｇｉ／ｍｕｇｉ＿ｓｐｊ．ｐｄｆ）の乱数生成方式を用いるものとする。この乱数生成方式では、秘密の鍵Ｋ１２８ビットと、変形初期ベクタ１２８ビットを入力として、６４ビット単位で任意の個数の乱数を生成することができる。乱数生成部１０１は、鍵Ｋと変形初期ベクタを元に、６４ビット×３４個の乱数を生成するが、１番目、２番目に生成する乱数は、それぞれ後述する乱数Ａ、Ｂとして、ＣＲＣ暗号鍵生成部１０４に入力し、３番目以降に生成する３２個の乱数は、後述する乱数Ｒ［０］、Ｒ［１］、Ｒ［２］、・・・、Ｒ［３１］として、排他的論理和部１０２に入力する。
【００２１】
ＣＲＣ暗号鍵生成部１０４は、平文パケットデータの先頭６４ビットデータＰ［０］と、乱数生成部１０１から入力された乱数Ａ、Ｂとを用いて以下の計算を行い、ＣＲＣ暗号鍵ＫＣを求める。
ＫＣ＝Ｔ‖Ｔ
Ｔ＝（Ｐ［０］（＋）Ａ）×Ｂ
ここで、α‖βは、データαとデータβを上位からα、βの順で連結したデータを示し、（＋）は、ビットごとの排他的論理和演算を表す。また、×は、既約多項式ｘ＾（６４）＋ｘ＾４＋ｘ＾３＋ｘ＋１による有限体ＧＦ（２＾６４）上の乗算を表す。α＾βは、αのβ乗を意味する。
【００２２】
排他的論理和部１０２には、平文パケットデータが先頭から６４ビット単位で、Ｐ［０］、Ｐ［１］、・・・、Ｐ［３１］としてこの順序で入力される。排他的論理和部１０２は、乱数生成部１０１から入力される乱数Ｒ［０］、Ｒ［１］、Ｒ［２］、・・・、Ｒ［３１］を用いて、上記平文パケットデータに対して、６４ビット単位で以下の排他的論理和演算を行い、Ｃ［０］、Ｃ［１］、・・・、Ｃ［３１］を算出し、これらを先頭からこの順序で連結したものを、暗号化データとする。
【００２３】
Ｃ［ｉ］＝Ｐ［ｉ］（＋）Ｒ［ｉ］    （ｉ＝０、１、・・・、３１）
ＣＲＣ計算部１０３は、排他的論理和部１０２から出力される暗号化データに対してＣＲＣデータを計算する。ＣＲＣデータの計算方法は公知であるためここでは省略する。また、本発明において、ＣＲＣデータのサイズは特に限定されないが、本実施例では、６４ビットとし、ＣＲＣ多項式は、Ｘ＾（６４）＋Ｘ＾４＋Ｘ＾３＋Ｘ＋１とする。即ち、ＣＲＣ計算部１０３は、暗号化データに対して６４ビットのＣＲＣデータＣＤを計算し、排他的論理和部１０５に入力する。
【００２４】
排他的論理和部１０５は、ＣＲＣ暗号鍵生成部１０４から入力されるＣＲＣ暗号鍵ＫＣとＣＲＣ計算部１０３から入力されるＣＲＣデータＣＤとの排他的論理和演算を行い、暗号化ＣＲＣデータＥＤ（６４ビット）を算出する。そして、ＥＤを、前記暗号化データに付加する。
上記のようにして生成される、暗号化ＣＲＣデータ付き暗号化データを、暗号化パケットデータ（２１１２ビット）としてデータ送信装置１から出力する。データ送信装置１は、上記の１パケットデータ単位の暗号化処理を、平文ストリームデータに含まれる全パケットデータに対して行って、暗号文ストリームデータを生成する。ここで、ＣＲＣデータは、伝送路上の誤りを検出するために元々パケットデータに付加されているデータであり、データの改ざんチェックを行う・行わないに関わらず付加されている。従って、本方式において、改ざん検出を行うことにより、暗号化パケットデータのデータサイズは増加しない。
【００２５】
次に、データ復号化部２０の処理について説明する。
（データ復号化部２０の処理詳細）
データ復号化部２０は、暗号文ストリームデータを、先頭から１パケットずつ復号化処理を行い、最終パケットの復号化処理が完了するまで復号化処理を繰り返し行う。以下では、データ復号化部２０が、１パケットの暗号文パケットデータを復号化して、１パケットの復号化パケットデータを生成する処理を説明する。
【００２６】
図４は、データ復号化部２０の詳細な構成の一例を示したブロック図である。データ復号化部２０は、初期ベクタＩＶとこれまでの復号化処理済みパケット数に基づいて変形初期ベクタを生成する初期ベクタ更新部２００と、鍵Ｋと変形初期ベクタとを用いて乱数データを生成する乱数生成部２０１と、乱数と暗号化パケットデータとの排他的論理和演算を行う排他的論理和部２０２と、暗号化パケットデータからデータ誤り検出用のＣＲＣデータを生成するＣＲＣ計算部２０３と、暗号化ＣＲＣデータを復号化するためのＣＲＣ暗号鍵を生成するＣＲＣ暗号鍵生成部２０４と、ＣＲＣ暗号鍵と暗号化ＣＲＣデータとの排他的論理和演算を行って復号化ＣＲＣデータを生成する排他的論理和部２０５と、暗号化パケットデータから計算したＣＲＣデータを暗号化ＣＲＣデータとＣＲＣ暗号鍵を使って算出した復号化ＣＲＣデータと比較して受信した暗号化パケットデータに改ざんあるいは誤りがあるかどうかを判断するＣＲＣチェック部２０６とからなる。以下、データ復号化部２０の処理について説明する。
【００２７】
暗号化パケットデータは、暗号化データと暗号化ＣＲＣデータとからなり、暗号化データは、排他的論理和部２０２とＣＲＣ計算部２０３に入力され、暗号化ＣＲＣデータは排他的論理和部２０５に入力される。
初期ベクタ更新部２００は、暗号文ストリームデータの何パケット分を復号化したかを１２８ビットの数値データＮとして保持している。暗号文ストリームデータの復号化処理開始時には、Ｎ＝０（１２８ビット）であり、１パケットの復号化処理を行うたびに、１ずつ加算される。初期ベクタ更新部２００は、上記のようにして保持している１２８ビットデータＮと認証鍵共有処理部２１から入力される初期ベクタＩＶとの排他的論理和演算を行い、変形初期ベクタ（１２８ビット）を生成する。そして、変形初期ベクタを乱数生成部２０１に入力する。Ｎは、１パケット復号化処理を行うたびに変化する値であり、初期ベクタＩＶは固定的な値であるので、変形初期ベクタは、各パケットの復号化処理ごとに必ず異なる値となる。
【００２８】
乱数生成部２０１は、鍵Ｋと変形初期ベクタを用いて乱数生成処理を行う。乱数生成処理は、データ暗号化部１０の乱数生成部１０１と同じ処理を用いるものとする。乱数生成部２０１は、鍵Ｋと変形初期ベクタを元に、６４ビット×３４個の乱数を生成するが、１番目、２番目に生成する乱数は、それぞれ後述する乱数Ａ、Ｂとして、ＣＲＣ暗号鍵生成部２０４に入力し、３番目以降に生成する３２個の乱数は、後述する乱数Ｒ［０］、Ｒ［１］、Ｒ［２］、・・・、Ｒ［３１］として、排他的論理和部２０２に入力する。
【００２９】
排他的論理和部２０２には、暗号化データが先頭から６４ビット単位で、Ｃ［０］、Ｃ［１］、・・・、Ｃ［３１］として順乱入力される。排他的論理和部２０２は、乱数生成部２０１から入力される乱数Ｒ［０］、Ｒ［１］、Ｒ［２］、・・・、Ｒ［３１］を用いて、上記暗号化パケットデータに対して、６４ビット単位で以下の排他的論理和演算を行い、復号化したデータＤ［０］、Ｄ［１］、・・・、Ｄ［３１］を算出し、これらを先頭からこの順序で連結したものを、復号化パケットデータ（２０４８ビット）とする。このとき、Ｄ［０］については、下記の計算により算出すると同時にＣＲＣ暗号鍵生成部２０４にも入力する。
【００３０】
Ｄ［ｉ］＝Ｃ［ｉ］（＋）Ｒ［ｉ］    （ｉ＝０、１、・・・、３１）
ＣＲＣ暗号鍵生成部２０４は、排他的論理和部２０２が、上記の処理でＣ［０］の処理が終わって、Ｄ［０］が生成され入力されると、Ｄ［０］に対して、乱数生成部１０１から入力された乱数Ａ、Ｂとを用いて以下の計算を行い、ＣＲＣ暗号鍵ＫＣを求める。
ＫＣ＝Ｔ‖Ｔ
Ｔ＝（Ｘ［０］（＋）Ａ）×Ｂ
ここで、α‖βは、データαとデータβを上位からα、βの順で連結したデータを示し、（＋）は、ビットごとの排他的論理和演算を表す。また、×は、既約多項式ｘ＾（６４）＋ｘ＾４＋ｘ＾３＋ｘ＋１による有限体ＧＦ（２＾６４）上の乗算を表す。α＾βは、αのβ乗を意味する。
【００３１】
ＣＲＣ計算部２０３は、暗号化データに対してＣＲＣデータを計算する。ＣＲＣ計算部２０３は、データ暗号化部１０のＣＲＣ計算部１０３と同じ計算方法により、暗号化データ（２０４８ビット）に対して６４ビットのＣＲＣデータＣＤを計算し、排他的論理和部２０５に入力する。
排他的論理和部２０５は、ＣＲＣ暗号鍵生成部２０４から入力されるＣＲＣ暗号鍵ＫＣと暗号化パケットデータに含まれている暗号化ＣＲＣデータＥＤとの排他的論理和演算を行い、復号化ＣＲＣデータＤＤ（６４ビット）を算出して、ＣＲＣチェック部２０６に入力する。
【００３２】
ＣＲＣチェック部２０６は、ＣＲＣ計算部２０３から入力されるＣＲＣデータと排他的論理和部２０５から入力される復号化ＣＲＣデータとの比較を行い、両者が一致するかどうかを判断する。両者が一致する場合には、受信した暗号化パケットデータには、誤りや改ざんが存在しないとして、復号化パケットデータ（２０４８ビット）をデータ復号化部２０から出力する。両者が一致しなかった場合には、受信した暗号化パケットデータに、誤りもしくは改ざんが生じているとして、復号化パケットデータを破棄する。即ち、両者が一致しなかった場合には、データ復号化部２０は、暗号化パケットデータの入力に対して、復号化パケットデータを出力しない。
【００３３】
パケットデータの先頭２バイト（ヘッダデータ）はコピー制御情報であり、本方式では、このデータの改ざんを検出することが可能である。以下、その理由について説明する。データ暗号化部１０では、先頭６４ビット（うち１６ビットがコピー制御情報）と乱数生成部１０１が生成する乱数に基づいてＣＲＣ暗号鍵を生成している。また、データ復号化部２０では、復号化パケットデータの先頭６４ビット（うち１６ビットがコピー制御情報）と乱数生成部２０１が生成する乱数に基づいてＣＲＣ暗号鍵を生成している。ここで、乱数生成部１０１と２０１は、同じ鍵と変形初期ベクタを用いて乱数生成を行っているので、ＣＲＣ暗号鍵の生成に用いる乱数は同じである。従って、復号化パケットデータの先頭６４ビットが、平文パケットデータの先頭６４ビットが同じであれば、同じＣＲＣ暗号鍵を生成することになる。従って、先頭６４ビットが改ざんされず、かつ、伝送路上で暗号化パケットデータに誤り（ビットの反転）が生じない限り、ＣＲＣチェック部２０６の判定はＯＫとなって、データ復号化部２０から復号化パケットデータが出力される。一方、伝送路上で、ヘッダ部分のコピー制御情報が改ざんされた場合には、データ暗号化時とは違うＣＲＣ暗号鍵が生成されるので、違う復号化ＣＲＣデータが計算される。従って、たとえ伝送路上で暗号化パケットデータに誤りが生じていなくても、ＣＲＣチェック部２０６の判定はＮＧとなって、データ復号化部２０から復号化パケットデータは出力されない。また、コピー制御情報の改ざんを行おうとする攻撃者は、秘密の鍵Ｋを知らないため、ＣＲＣ暗号鍵生成に用いる乱数Ａ、Ｂの値を知りえない。従って、コピー制御情報の改ざんを行ったうえで、その改ざんされた暗号化パケットに対するＣＲＣデータを計算することはできても、それに対応するＣＲＣ暗号鍵を計算することができないので、上記改ざんされた暗号化パケットデータに対する暗号化ＣＲＣデータを計算することはできない。以上のことにより、本方式では、コピー制御情報を伝送路上で改ざんされた場合には、データ復号化側でそれを検出して、復号化データを出力しないようにすることが可能である。
【００３４】
また、改ざん検出は、通信誤り検出用に元々付加されているＣＲＣデータの替わりに付加した同サイズのデータに基づいて行うため、改ざん検出用データを追加することによるデータ量の増加はない。更に、データ暗号化部１０の処理をハードウェアで実現する場合、「排他的論理和部１０２の処理を行ってＣＲＣ計算部１０３の処理を行う」部分の処理（平文パケットデータの暗号化に関わる処理）と、「ＣＲＣ暗号鍵生成部１０４の処理を行って排他的論理和演算部１０５の処理を行う」部分の処理（改ざん検出のための処理）とは、並列化することが可能であるから、改ざん検出を行うことにより、データ暗号化処理に更に時間がかかることにはならない。同様に、データ復号化部２０をハードウェアで実現する場合にも、「排他的論理和部２０２の処理」と「ＣＲＣ計算部２０３の処理」（いずれも平文パケットデータの暗号化に関わる処理）と、「ＣＲＣ暗号鍵生成部２０４の処理を行って排他的論理和演算部２０５の処理を行う」部分の処理（改ざん検出のための処理）とは、並列化することが可能であるから、改ざん検出を行うことにより、データ復号化処理に更に時間がかかることにはならない。
【００３５】
（実施の形態の変形例）
本発明の実施の形態における変形例を説明する。
図５は、本発明の実施の形態の変形例におけるデータ送受信システムの構成を示したブロック図である。構成及び、各部の役割は、図１を用いて説明したデータ送受信システムの構成と同一であるから詳細は省略する。本変形例においては、上記の実施の形態と比べてデータ暗号化部３０とデータ復号化部４０の処理だけが異なっているので、以下その相違点を中心に説明を行う。
【００３６】
（データ暗号化部３０の処理詳細）
図６は、データ暗号化部３０の構成を示すブロック図である。データ暗号化部３０が、データ暗号化部１０と異なる点は、ＣＲＣ暗号鍵生成部３０４の処理だけである。即ち、データ暗号化部１０では、ＣＲＣ暗号鍵生成部１０４は、平文パケットデータの先頭６４ビットを元にＣＲＣ暗号鍵を生成していたが、データ暗号化部３０では、ＣＲＣ暗号鍵生成部３０４は、上記データの代わりに暗号化パケットデータの先頭６４ビットを元にＣＲＣ暗号鍵を生成している。そのために、ＣＲＣ暗号鍵生成部３０４は、排他的論理和部３０２が、平文パケットデータの先頭６４ビットデータと乱数生成部３０１から入力される乱数データとの排他的論理和演算を行って、６４ビットの暗号化データを生成した後に、ＣＲＣ暗号鍵生成処理を行う必要がある。それ以外の処理詳細は、データ暗号化部１０と全く同じであるから説明は省略する。
【００３７】
（データ復号化部４０の処理詳細）
図７は、データ復号化部４０の構成を示すブロック図である。データ復号化部４０が、データ復号化部２０と異なる点は、ＣＲＣ暗号鍵生成部４０４の処理だけである。即ち、データ復号化部２０では、ＣＲＣ暗号鍵生成部２０４は、復号化パケットデータの先頭６４ビットを元にＣＲＣ暗号鍵を生成していたが、データ復号化部４０では、ＣＲＣ暗号鍵生成部４０４は、上記データの代わりに暗号化パケットデータの先頭６４ビットを元にＣＲＣ暗号鍵を生成している。データ復号化部２０の場合は、排他的論理和部２０２が、暗号化パケットデータの先頭６４ビットデータと乱数生成部２０１から入力される乱数データとの排他的論理和演算を行って６４ビットの復号化データを生成した後に、そのデータを用いてＣＲＣ暗号鍵生成処理を行う必要があった。しかし、本変形例のデータ復号化部４０では、排他的論理和部３０２の処理を待たずに、データ復号化部４０に入力された暗号化パケットデータの先頭６４ビットからＣＲＣ暗号鍵生成処理を開始できる。このように、本変形例では、ＣＲＣ暗号鍵生成処理が、より早いタイミングで開始できるため、データ復号化に関する処理と、データ改ざん検出に関する処理との並列化がより効率よく行うことができるので、暗号化パケットデータに対する復号化処理がより高速に行うことが可能となる。
【００３８】
（その他の変形例）
なお、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
（１）各データ、フィールドのデータサイズはあくまでも一例であって、他のデータサイズであってもよい。
【００３９】
（２）乱数生成部で用いる乱数生成方式は、あるソースとなるデータ（実施の形態では、鍵、変形初期ベクタに対応）を元にして乱数列が生成され、かつ、ソースとなるデータが同じであれば、常に同じ乱数系列が出力される方式であれば、何でも良い。他の乱数生成方式の例としては、ＰＡＮＡＭＡや、ハッシュ関数、ブロック暗号を用いた方式などがある。
【００４０】
（３）本実施の形態では、ＣＲＣデータを用いて誤り有無の判定を行っていたが、誤り訂正を行う、もしくは、誤り訂正と誤り検出を行うようにしてもよい。誤り訂正を行う場合には、改ざん検出対象データが改ざんされると、ＣＲＣ暗号鍵のデータは大幅に変わる（本来計算されるべきＣＲＣ暗号鍵と多数のビットが異なる）ので、復号化ＣＲＣデータは、誤り訂正能力の限界を超えたビットが変わってしまう。したがって、正しく誤り訂正がされなくなるので、パケットデータは壊れてしまい、コンテンツは正しく再生されない。そのため、改ざん検出対象データの改ざんを防止することができる。また、誤り訂正と誤り検出を行う場合には、上記と同じ理由で誤り訂正能力の限界以上の誤りが検出されたとしてパケットデータは破棄されてしまうのでコンテンツの再生は行えなくなる。したがって、改ざん検出対象データに対する改ざんを防止できる。
【００４１】
（４）本実施の形態では、改ざん検出対象であるコピー制御情報（１６ビット）を含んだ６４ビットデータからＣＲＣ暗号鍵を生成しているが、これは、コピー制御だけを取り出して、それに４８ビットの固定値を結合した６４ビットデータであっても良い。このとき、４８ビットの固定値は、なんらかの方法（たとえば、予めシステム固定値として決めておくなど）で、データ暗号化部とデータ復号化部の間で共有化しておく必要がある。このようにしておくと、ＣＲＣデータを誤り検出ではなく、誤り訂正目的で用いる場合には以下のようなメリットがある。実施の形態においては、ＣＲＣ暗号鍵の生成に用いるパケットデータの先頭６４ビットのうち、コピー制御情報（１６ビット）を除く４８ビットの１ビットにエラーが生じてビット反転されてしまった場合でも、ＣＲＣ暗号鍵が全く異なった値として計算されてしまう。したがって、その結果として復号化されるＣＲＣデータは、全く異なった値となってしまう。そのため、１ビットのエラーが生じただけあるにも関わらず、ＣＲＣの誤り訂正能力の限界を超えた誤りが生じたことと同じことになり、誤り訂正エラーとなってパケットデータは壊れてしまう。つまり、データ改ざん検出対象部分以外でビット反転が生じ、それが、ＣＲＣの誤り訂正能力の範囲内であっても、誤り訂正エラーとなる恐れがあった。しかし、この変形例では、改ざん検出を行いたいデータのみからＣＲＣ暗号鍵を生成するため、上記のように、改ざん検出対象以外の部分でビット反転が起きても、それがＣＲＣの誤り訂正能力の範囲内であれば、正しく誤り訂正することが可能となる。また上記に限らず、ＣＲＣ鍵を生成する際にパケットデータから取り出すデータは、少なくとも改ざん検出を行いたい部分が含まれていれば、どのような取り出し方をしても良い。
【００４２】
（５）ＣＲＣ暗号鍵生成部の処理は、実施の形態の方式でなくてもよい。例えば、入力乱数を鍵として入力されるパケットデータを暗号化あるいは復号化する暗号処理（例えば、ＡＥＳ暗号や、ＤＥＳ暗号など）を用いても良い。あるいは、前記データを結合したデータにハッシュ関数処理（例えば、ＳＨＡ−１、ＭＤ５、ＳＨＡ−２５６など）を行うような処理であっても良い。あるいは、データ暗号化部とデータ復号化部で秘密に共有化された秘密の変換アルゴリズムであってもよい。
【００４３】
（６）ＣＲＣ暗号鍵とＣＲＣデータとから暗号化ＣＲＣデータを計算する処理としては、排他的論理和演算以外であっても良い。例えば、ＣＲＣ暗号鍵とＣＲＣデータとの算術加算を行った結果を暗号化ＣＲＣデータとしても良い。このとき、暗号化ＣＲＣデータからＣＲＣ暗号鍵を引き算する処理によって復号化ＣＲＣデータを算出すればよい。なお、この他にもＣＲＣ暗号鍵とＣＲＣデータとから暗号化ＣＲＣデータを得る変換と、暗号化ＣＲＣデータとＣＲＣ暗号鍵から復号化ＣＲＣデータを得る変換とが逆変換の関係にある限り、どのような変換を用いてもよい。
【００４４】
また、ＣＲＣ暗号鍵を生成するために、乱数生成器の生成する乱数を用いているが、これは、データ改ざんを行う者が知りえない、もしくは、計算し得ないデータであれば何でもよい。例えば、乱数生成部に入力される鍵データであってもよい。
（７）本実施の形態では、パケットデータの暗号化・復号化処理としてストリーム暗号方式を用いているが、ブロック暗号方式を用いてもよい。この場合、図３のデータ暗号化部１０において、乱数生成部１０１と排他的論理和部１０２が、ブロック暗号化処理部に置き換わる。このとき、ブロック暗号化処理部は、例えば鍵Ｋと変形初期ベクタを用いたＡＥＳ暗号のＣＢＣ暗号化処理となる。また、ＣＲＣ暗号鍵生成部１０４は、乱数生成部１０１から入力される乱数の代わりのデータとして鍵Ｋを用いればよい。
【００４５】
（８）ＣＲＣ計算部のＣＲＣ計算方法は、本実施例の方式以外の方式を用いても良い。このとき、ＣＲＣ計算の方式によっては、ＣＲＣデータのサイズ（Ｎビット）とＣＲＣ暗号鍵のサイズ（Ｍビット）が一致しない場合も起こり得るが、ＣＲＣデータサイズの方がＣＲＣ暗号鍵のサイズよりも小さい場合（Ｎ＜Ｍ）には、ＣＲＣ暗号鍵のうちＮビットだけを使って暗号化ＣＲＣデータを計算するようにすれば良い。ＣＲＣ暗号鍵のサイズの方がＣＲＣデータサイズよりも大きい場合（Ｎ＞Ｍ）には、ＣＲＣ暗号鍵データを所定個数だけ複製したものを連結してＮビットデータとした上で、暗号化ＣＲＣデータを計算するようにすれば良い。
【００４６】
（９）本実施の形態では、ＣＲＣ暗号鍵の生成に、乱数生成部が生成する１番目、２番目の乱数データを用いているが、これは、３番目、４番目など、任意のタイミングで生成される乱数であってもよい。但し、どのタイミングで取り出した乱数を用いてＣＲＣ暗号鍵を生成するかの情報は、データ暗号化部、データ復号化部で共有化しておく必要がある。
【００４７】
（１０）上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【００４８】
（１１）上記の各装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。
【００４９】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又は全てを含むように１チップ化されてもよい。
また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【００５０】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
（１２）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。前記ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。前記ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【００５１】
（１３）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【００５２】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【００５３】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（１４）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【００５４】
本発明にかかるデータ暗号処理装置は、高速な暗号処理を実現しながら、かつ、改ざん検出用のデータを付加することなく、伝送中のコンテンツに含まれるコピー制御情報の改ざんを検出可能であるという特徴を有するので、映像・音楽コンテンツのストリーミング配信システムなどのような、高速伝送、高速処理、でかつ、データ改ざん防止の実現が求められるシステムで使用するためのデータ暗号処理装置の実現に有用である。
【図面の簡単な説明】
【００５５】
【図１】本発明の実施の形態に係るデータ送受信システムの構成を示すブロック図
【図２】本発明の実施の形態に係る平文ストリームデータの構成を示すブロック図
【図３】本発明の実施の形態に係るデータ暗号化部１０の構成を示すブロック図
【図４】本発明の実施の形態に係るデータ復号化部２０の構成を示すブロック図
【図５】本発明の実施の形態の変形例に係るデータ送受信システムの構成を示すブロック図
【図６】本発明の実施の形態の変形例に係るデータ暗号化部３０の構成を示すブロック図
【図７】本発明の実施の形態の変形例に係るデータ復号化部４０の構成を示すブロック図
【符号の説明】
【００５６】
１  データ送信装置
２  データ受信装置
１０  データ暗号化部
１１  認証鍵共有処理部
１２  ストリームデータ生成部
２０  データ復号化部
２１  認証鍵共有処理部
２２  ストリームデータ再生部
１００  初期ベクタ更新部
１０１  乱数生成部
１０２  排他的論理和部
１０３  ＣＲＣ計算部
１０４  ＣＲＣ暗号鍵生成部
１０５  排他的論理和部
２００  初期ベクタ更新部
２０１  乱数生成部
２０２  排他的論理和部
２０３  ＣＲＣ計算部
２０４  ＣＲＣ暗号鍵生成部
２０５  排他的論理和部
２０６  ＣＲＣチェック部
【図１】
2008278416.tif 000003
【図２】
2008278416.tif 000004
【図３】
2008278416.tif 000005
【図４】
2008278416.tif 000006
【図５】
2008278416.tif 000007
【図６】
2008278416.tif 000008
【図７】
2008278416.tif 000009