(57)【特許請求の範囲】
【請求項１】
ストリーム・ヘッダと一連のデータ・パケットとから成るストリーム化メディアを送信者暗号化システムと受信者局との間で安全に送信する方法であって、
上記送信者暗号化システムは、ランダム・ベース・キーを生成し、開放キーを生成すべく該ベース・キーを暗号化し、上記データ・パケットよりも早期に該開放キーを上記受信者局に送信し；
上記ストリームにおけるデータの各パケットは、該送信者暗号化システムが、
(a)もしタグ値が既に存在しているのでなければ、各パケットにタグ値を割当て、
(b)上記ベース・キーと、上記パケットの上記タグ値もしくは上記割当てられたタグ値と、の安全用ハッシュを計算することによりパケット・キーを生成し、
(c)上記パケット・キーを使用して上記パケット内の上記データを暗号化し、且つ、
(d)上記タグ値を対応する暗号化済パケット・データに付加すると共に、その様に処理されたパケットを、上記受信者局に送信されるパケット・ストリームに挿入する、
ことにより暗号化され；且つ、
上記受信者局において、受信された上記開放キーは上記ベース・キーを導出すべく復号化されると共に、上記ストリーム内で受信された各暗号化済パケットは、
(a)各パケットから上記タグ値を抽出し、
(b)上記ベース・キーと上記パケットのタグ値との安全用ハッシュを計算することにより上記パケット・キーを再作成し、
(c)上記パケット・キーを使用して上記パケット・データを復号化することにより、上記ストリーム化メディアを再生するに適切な形態で復号化済パケット・データを生成する、
ことにより復号化される；
ことを特徴とする方法。
【請求項２】
前記開放キーは、該開放キーを前記ストリーム・ヘッダに付加することにより上記受信者局へと送信され、その後に復号化のために前記受信者局にて上記ストリーム・ヘッダから抽出される、請求項１に記載の方法。
【請求項３】
前記ベース・キーは、前記受信者の公開キーと組合された公開キー暗号化アルゴリズムを使用して暗号化され、且つ、前記開放キーは、上記受信者の個人キーと組合された上記公開キー暗号化アルゴリズムを使用して復号化される、請求項１又は請求項２に記載の方法。
【請求項４】
前記パケット・データは、前記パケット・キーと組合された対称的暗号化アルゴリズムを使用して暗号化され、且つ、前記暗号化済データは、前記受信者局にて前記再作成されたパケット・キーと組合された上記対称的暗号化アルゴリズムを使用して復号化される、請求項１から請求項３までのいずれか一項に記載の方法。
【請求項５】
前記パケット・キーを生成かつ再作成すべく使用されるハッシュ機能は SHA-1 もしくは MD5 である、請求項１から請求項４までのいずれか一項に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ストリーミング・メディア(streaming media)の暗号化技術に関する。
【０００２】
【従来の技術】
ビデオ、オーディオ及びマルチメディア・デジタル・ファイルなどのデジタル・コンテンツは非常に大容量なのが常であり、特に伝送チャネル中の一定の箇所における帯域幅が制限され得るというインターネットを介して斯かるファイルの内容を受信者に送信する場合、受信者がファイルの内容を見聞きするまでには相当の伝送遅延が生じ得る。ストリーミング・メディアの技術はこの問題に対処すると共に、メディア・ファイルが受信者により完全に受信されるよりも相当以前に受信者がビデオの視認もしくはオーディオの傾聴を開始するのを可能とする。受信者局のバッファに十分なデータが届き次第、ビデオは表示され且つオーディオは再生(play)され得る。
【０００３】
他のデジタル・ファイルと同様に、ストリーミング・メディアの暗号化が強く望まれるという多くの用途が在る。通常、コンテンツは著作権の対象であり、法的保護を補うためには暗号化が望ましい。ストリーミング・メディアを暗号化する上では、受信者による使用の前にファイル全体が暗号化され、送信されかつ復号化される場合の更なる問題が生ずる。実際問題として、所定距離に亙るデジタル・データ送信の殆どは、パケット技術を使用する。故に、ストリーミング・メディアを暗号化する上でストリーミングの利点が保持されるべきであれば、パケット毎の暗号化および復号化が必要となる。
【０００４】
【発明が解決しようとする課題】
本発明の目的は、ストリーミング・メディアに対する高速で安全な暗号化方法を提供するに在る。
【０００５】
【課題を解決するための手段】
故に本発明は、ストリーム・ヘッダと一連のデータ・パケットとから成るストリーム化メディアを送信者と受信者との間で安全に送信する方法であって、
ランダム・ベース・キーを生成する段階と；
上記ベース・キーを暗号化して開放キー(open key)を生成する段階と；
上記開放キーを上記受信者へと送信する段階と；
上記データの各パケットを、
(a)もしタグ値が既に存在しているのでなければ、各パケットにタグ値を割当て、
(b)上記ベース・キーと、上記パケットの上記タグ値もしくは上記割当てられたタグ値と、の安全用ハッシュを計算することによりパケット・キーを生成し、
(c)上記パケット・キーを使用して上記パケット内の上記データを暗号化し、且つ、
(d)上記タグ値を対応する暗号化済パケット・データに付加すると共に、その様に処理されたパケットを、上記受信者に送信されるパケット・ストリームに挿入する、
ことにより暗号化する段階と；
上記暗号化パケット・ストリームを上記受信者に送信する段階と；
上記受信者の局において、上記開放キーおよび上記暗号化パケット・ストリームを受信する段階と；
上記開放キーを復号化して上記ベース・キーを導出する段階と；
上記ストリーム内で受信された各暗号化済パケットを、
(a)各パケットから上記タグ値を抽出し、
(b)上記ベース・キーと上記パケットのタグ値との安全用ハッシュを計算することにより上記パケット・キーを再作成し、
(c)上記パケット・キーを使用して上記パケット・データを復号化し、
(d)且つ、上記ストリーム化メディアを再生するに適切な形態で復号化済パケット・データを記憶もしくは出力する、
ことにより復号化する段階と；
を備えた方法から成る。
【０００６】
本発明は上記方法から成ると共に、以下の実施の形態の構成も企図する。
【０００７】
【発明の実施の形態】
本特許明細書においては、
(1)“ストリーム(stream)”とは、当該ストリーム自体に関する情報を含むストリーム・ヘッダと、該ヘッダに続く一連のパケットとから成るものと仮定され、
(2)各“パケット(packet)”とは、パケット・ヘッダと、該パケットの実際のデータ・ペイロードとから成ると仮定され、
(3)パケット・キー(packet key)を生成および分解すべく使用されたランダム・キー(random key)は“ベース・キー(base key)”と称されるが、“セッション・キー(session key)”、“ベース・ストリーム・キー(base stream key)”もしくは“非公開キー(closed key)”とも称され得るものであり、
(4)パケット・ヘッダおよびデータ・ペイロードは両者ともに、パケット毎に変化し得る所定個数の完全バイト(8ビット・バイト)から成ると仮定され、且つ、
(5)各パケット・ヘッダは、そのパケットを一意的に特定する、“タグ(tag)”と称される少なくとも一個の情報を含むと仮定される。その例としては、ストリームの開始に対する当該パケットの相対時間オフセットを示す時間位置値、または、通し番号、または、パケット・データの企図宛先もしくは場所に関する(x,y)座標が挙げられる。タグ情報はパケット・ヘッダの残部とともに、“平文”の、すなわち暗号化されていないパケットを伴わねばならない。
【０００８】
図１は、ストリーミング・メディアの送信者により適用された本発明の暗号化システムの各段階と、ストリーミング・メディアの受信者により適用された復号化の各段階とを概略的に示している。これは、以下に記述される如く種々の好適様式で実施され得る。
【０００９】
上記暗号化プロセスは本質的に、ベース・キー22によりパケット・タグ値の安全用ハッシュ(secure hash)の計算(5)により生成されたパケット・キー21により各ストリーミング・メディア・パケット内のデータを暗号化(6)する段階を含む。暗号化されたパケット・データを復号化するために、受信者はパケット・キー21を生成し得る必要があり、これを行うために受信者はベース・キー22を保有せねばならない。送信者によりランダムに生成(1)されたベース・キー22は、受信者の公開キー2により非対称的に暗号化(3)された後に受信者へと受け渡される。暗号化された上記ベース・キー(開放キー23)は受信者へと送信される。必要ではないが、図１において点線により表される如く開放キー23をストリーム・ヘッダ内で受信者へと受け渡せば好都合である。
【００１０】
上記パケット暗号化プロセスは、到来するストリーミング・メディア・パケットからタグ・データ24を抽出(4)する(または各パケットがタグ・データを含まなければ斯かるタグを生成する)と共に、ベース・キー22とタグ・データ24との安全用ハッシュを計算(5)してパケット・キー21を生成する段階で開始する。ストリーミングされたメディアの送信もしくはセッションの各々に対し、ベース・キーもしくはセッション・キー22はランダムに生成(1)されると共に各ストリーミング・メディア・パケットとのタグ値によりハッシュ(5)されて、対応パケット内で搬送されるデータ25を(好適には対称的に)暗号化(6)すべく使用されるパケット・キー21を生成する。ハッシュ計算5に対しては、SHA-1もしくはMD5などのハッシュ機能が適切である。好適実施例においては対称的アルゴリズム6を使用してパケット・データが暗号化されるが、必要最小限の計算時間を超えない限りにおいて他のタイプの暗号化アルゴリズムが使用され得る。暗号化されたパケット・データもしくは暗号文は次に、そのパケットに対する未暗号化のもしくは開放されたタグ値24と組合される(7)。記述されたプロセスはストリーム内の各データ・パケットに適用され、受信者に送信される暗号化パケット・ストリーム29を生成する。
【００１１】
受信者局にては先ずストリーム・ヘッダが受信され、且つ、他の手段により開放キー23が未だ受信されていなければ、ストリーム・ヘッダから該開放キーが抽出28される。開放キー23は次に、受信者の個人キー(private key)11を用いて非対称的に復号化(12)される。復号化された開放キーは、すなわちベース・キー22は、次にハッシュ・アルゴリズム14により利用され、パケット・キー21の導出を許容する。
【００１２】
各ストリーム・データ・パケットのタグ値24は抽出(13)されてからベース・キー22によりハッシュ(14)され、各パケットに対するパケット・キー21を生成する。タグ値が除去されたストリーム・パケット(ストリーム・データ25)は次に、対応するパケット・キー21を使用して対称的に復号化(15)される。使用される送信プロトコルに依存してタグ値を有する／有さない平文ストリーム・パケット26は次に、ストリーミング・メディア・プレーヤにより使用されるに適した形態で記憶もしくは出力される。
【００１３】
本発明の暗号化処理は、ストリーム・ヘッダ内の単一(または複数)の指定フィールドへと特定情報を挿入し得ると共に、暗号化されたデータにより各パケットのデータ・ペイロードを置き換える。ストリーム内の全てのパケットが暗号化されるが、データ・ペイロードのみが暗号化されるのであり、パケット・ヘッダ情報は暗号化されない。これは、暗号化処理によっても変わらない。パケットにおいて暗号化されたデータのバイト・サイズは、元の(未暗号化の)データ・ペイロードのサイズより大きくなるとは限らない。
【００１４】
送信者から受信者への転送の前にベース・キーを保護すべく使用された上記暗号化アルゴリズムは好適には、受信者の公開キーが送信者によりパケット・キーを暗号化すべく使用され且つそれを復号化すべく受信者により対応個人キーが使用される、という公開キー(非対称)アルゴリズムである。公開キー・アルゴリズムにより使用される個人キーは、キー・データ・ビットに加えてプロトコルもしくはフォーマット情報を含み得る。キー・データ・ビットの個数(キー・サイズ)は、機密保護要件に基づき種々の用途に対して設定可能であるが、少なくとも607ビットのキーでなければ容認できない。特定のアプリケーションは、単一のキー・サイズを許容することもあり、または、複数のキー・サイズを取り扱い得る。
【００１５】
有効な個人キーは好適には任意の特定の(任意の、またはアプリケーションにより定義された、または、ランダムに生成された)パターンのキー・データ・ビットから成り得るが、(例えば全てがゼロ、または、全てが１の)限定された個数のデータ・パターンは除外され得る。公開キーは個人キーと同一のキー・データ・ビット数を有さねばならず且つ任意の有効な個人キーから公開キーを迅速に生成すべく高速非対称アルゴリズムが使用されると同時に、特定の公開キーを生成した個人キーを計算により確定することは実現不可能である。
【００１６】
特定の公開キーを使用してストリームを暗号化する場合、図１において点線で示された如く暗号化アルゴリズム(3)はストリーム・ヘッダ内の適切な指定位置に開放キーから成るデータを挿入し得るか、または代替的に、暗号化段階3および復号化段階12の間において実線により示された如く早期において受信者へと送信され得る。上記開放キーを受信すると同時に、正しい個人キーを保有する受信者は上記復号化アルゴリズムを用いて上記開放キーを使用し、上記送信者および受信者のみが知り得る情報(“非公開キー”)を確立もしくは計算し得る。
【００１７】
各パケットのデータを暗号化するプロセスは、非公開キーおよびパケットのタグ情報に依存する(すなわち、本質的にこられを利用する)。その個人キーを知らなければ、公開キー、開放キー、暗号化されたストリーム・データ、パケット・タグなどの公開的にアクセス可能な情報の認識に基づいては、上記非公開キーを計算もしくは決定することは計算的に実現不可能である。
【００１８】
上記暗号化プロセスは、同一のストリームが複数の機会に亙り暗号化されたとしても、任意のストリームを暗号化すべく生成される非公開キーがランダムに変化するのを確実にすべく、真にランダムなデータを使用せねばならない。上記暗号化アルゴリズムによれば、元のストリームにおける２個のデータ・パケットが同一のデータ・ビットを含んだとしても、各パケットに対する暗号化済データは異なるのを確実にする。上記暗号化プロセスはまた、ひとつのストリームが複数の機会に亙り暗号化されたとしても、暗号化済パケット・データおよび開放キーは夫々の機会にて異なるのを確実にする。
【００１９】
上記復号化プロセスは、幾つかのパケットが受信されなくても、または、幾つかもしくは全てのパケットが送信された順序とは異なる順序で受信されたとしても、受信された完全パケットの各々が正しく復号化され得る如きものである。
【００２０】
使用に際し、ストリーム化されたオーディオ・ビジュアル著作物のコンテンツ所有者に対しては、コンテンツが配信されるときに上記暗号化プロセスを実施するソフトウェアが提供される。そのソフトウェアの入力は、パケット化されて圧縮されたコード化ファイルの形態を取る。例えばストリーミングがReal playerを使用して受信者により再生されるべきであれば、ファイルはRealコード化(Real coding)を使用する。MPEG2もしくはMPEG4などの標準的な圧縮アルゴリズムが使用される。Realコード化ファイルの場合、本発明の暗号化システムの本質的な部分であるタグ値はRealスケジュール値(Real timeline value)である。これは、ストリームが開始した時点からの測定値である。
【００２１】
ユーザは、コンテンツ・プロバイダから予め直接的に、または、ウェブサイトからダウンロードすることにより、または、ストリーミング・プレーヤ・ソフトウェアとバンドルされた、復号化用ソフトウェアを受領する。本発明の暗号化ソフトウェアを展開する典型的なビジネス・モデルは、無料で上記復号化用ソフトウェア・コンポーネントを提供されたユーザから対価を受けることを許可されたコンテンツ・プロバイダであろう。ユーザはコンテンツ・プロバイダに対し、コンテンツ自体に対してのみ支払いを行う。コンテンツに対する支払い(もしくは同等行為)が行われると、ユーザは要求したコンテンツに対応する開放キーの提供を受ける。
【００２２】
本発明の暗号化システムに関する用途に適したメディア・キーの管理および配信を行うシステムは、ニュージーランド特許出願第509037号に開示されている。
【図面の簡単な説明】
【図１】図１は、本発明の本質的な暗号化および復号化の処理ステップを示すブロック図である。
【符号の説明】
１１…個人キー
２１…パケット・キー
２２…ベース・キー
２３…開放キー
２４…タグ・データ
２５…ストリーム・データ
２９…暗号化パケット・ストリーム
【図１】
0004951729.tif 000002