(57)【要約】【課題】  データストリームを暗号化した暗号化ストリームを送信側装置から受信側装置へ通信する暗号化データ通信システムで、擬似コードの誤検出による影響を抑制する。【解決手段】  送信側装置１では、データの後に判定用マーカと同期マーカと位置識別コードの並びを有するデータストリームを生成し、データと判定用マーカの並びを暗号化し、暗号化ストリームを送信する。受信側装置２では、暗号化ストリームを受信し、同期マーカと位置識別コードの並びを検出し、暗号化ストリームを復号し、データと判定用マーカの並びが復号されている場合には正しい並びが検出されたと判定する一方、他の場合には擬似的な並びが検出されたと判定する。【選択図】  図１
2006279665.tif 000002
【特許請求の範囲】
【請求項１】
データストリームを暗号化した暗号化ストリームを送信側装置から受信側装置へ通信する暗号化データ通信システムにおいて、
前記送信側装置は、前記暗号化ストリームに含まれる位置識別コードの前又は後に所定の同期マーカを挿入する挿入手段と、
前記同期マーカが挿入された暗号化ストリームを送信する送信手段と、を備え、
前記受信側装置は、前記暗号化ストリームを受信する受信手段と、
前記受信された暗号化ストリームに含まれる前記同期マーカと前記位置識別コードの並び又は前記位置識別コードと前記同期マーカの並びを検出する検出手段と、
前記検出の結果に基づいて前記受信された暗号化ストリームを復号する復号手段と、を備えた、
ことを特徴とする暗号化データ通信システム。
【請求項２】
請求項１に記載の暗号化データ通信システムにおいて、
前記データストリームは、圧縮手段により圧縮されたものであり、
前記復号により得られるデータストリームは、伸長手段により伸長され、
前記同期マーカとして、スタッフィングコードを用いた、
ことを特徴とする暗号化データ通信システム。
【請求項３】
データストリームを暗号化した暗号化ストリームを送信側装置から受信側装置へ通信する暗号化データ通信システムにおいて、
前記送信側装置は、前記データストリームに含まれるデータと所定の判定用マーカの並びを暗号化する暗号化手段と、
前記暗号化により得られた暗号化ストリームを送信する送信手段と、を備え、
前記受信側装置は、前記暗号化ストリームを受信する受信手段と、
前記受信された暗号化ストリームに含まれる位置識別コードを検出する検出手段と、
前記検出の結果に基づいて前記暗号化ストリームを復号する復号手段と、
前記復号の結果に基づいて、前記データと前記判定用マーカの並びが復号されている場合には正しい位置識別コードが検出されたと判定する一方、他の場合には擬似コードが検出されたと判定する判定手段と、を備えた、
ことを特徴とする暗号化データ通信システム。
【請求項４】
請求項３に記載の暗号化データ通信システムにおいて、
前記データストリームは、圧縮手段により圧縮されたものであり、
前記復号により得られるデータストリームは、伸長手段により伸長され、
前記受信側装置は、前記復号された判定用マーカをスタッフィングコードへ変換する変換手段を備えた、
ことを特徴とする暗号化データ通信システム。
【請求項５】
請求項３に記載の暗号化データ通信システムにおいて、
前記送信側装置は、前記データストリームにもともと含まれる位置識別コードと同一の位置識別マーカを挿入する挿入手段を備え、
前記所定の判定用マーカとして、前記データストリームにもともと含まれる前記位置識別コード、或いは、前記データストリームに挿入された前記位置識別マーカが用いられ、
前記受信側装置は、前記復号の結果から前記データストリームにもともと含まれる前記位置識別コード或いは前記データストリームに挿入された前記位置識別マーカの一方を削除する削除手段を備えた、
ことを特徴とする暗号化データ通信システム。
【請求項６】
データストリームを暗号化した暗号化ストリームを送信側装置から受信側装置へ通信する暗号化データ通信システムにおいて、
前記送信側装置は、データの後に所定の判定用マーカと所定の同期マーカと位置識別コードの並び或いは所定の判定用マーカと位置識別コードと所定の同期マーカの並びを有するデータストリームを生成する生成手段と、
前記生成されたデータストリームに含まれる前記データと前記判定用マーカの並びを暗号化する暗号化手段と、
前記暗号化により得られた暗号化ストリームを送信する送信手段と、を備え、
前記受信側装置は、前記暗号化ストリームを受信する受信手段と、
前記受信された暗号化ストリームに含まれる前記同期マーカと前記位置識別コードの並び或いは前記位置識別コードと前記同期マーカの並びを検出する検出手段と、
前記検出の結果に基づいて前記暗号化ストリームを復号する復号手段と、
前記復号の結果に基づいて、前記データと前記判定用マーカの並びが復号されている場合には正しい前記同期マーカと前記位置識別コードの並び或いは前記位置識別コードと前記同期マーカの並びが検出されたと判定する一方、他の場合には擬似的な並びが検出されたと判定する判定手段と、を備えた、
ことを特徴とする暗号化データ通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化データを通信する暗号化データ通信システムに関し、特に、暗号化データに含まれる擬似コードを本来の位置識別コード（例えば、スタートコードなど）であると誤検出することによる影響を抑制する技術に関する。
【背景技術】
【０００２】
例えば、近年、映像をデジタル的に符号化（圧縮）して映像ストリームを生成し、これをサーバ装置から端末装置へ配信することが盛んに行われている。
また、映像ストリームを配信する際に、限られた端末装置にのみ限定的に映像を配信する方法として、映像ストリームの非ヘッダ部分を暗号化する方法が考えられる。この方法では、暗号鍵を有する端末装置では正しい映像の再生が可能であるが、暗号鍵を有さない端末装置では画質の劣化した映像しか得られない。
【０００３】
なお、上記従来技術は、発明者が既に知られていることと認識して記述したものであるが、適切な文献が見出せなかったので、従来技術文献情報の記載をしていない。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記のような技術においては、送信側で非ヘッダ部分を暗号化した映像ストリーム（以下、暗号化ストリームとも言う）を、受信側のパーソナルコンピュータで再生するためには、暗号化ストリームの中からスタートコードを検出して、非ヘッダ部分を復号することが必要である。
しかしながら、スタートコードは、映像ストリームにおいてはユニークな値であるが、暗号化ストリームにおいてはユニークな値であるとは限らないため、暗号化ストリームからスタートコードを検出する時に、暗号化ストリームに含まれるスタートコードと同じ値のデータ（以下、擬似コードとも言う）を、本来のスタートコードであると誤検出する場合があった。この場合、送信側の乱数列と受信側の乱数列との同期が外れるため、受信側では、暗号化された非ヘッダ部分を正しく復号することができず、再生画像が正しく表示等されないといった問題があった。
【０００５】
ここで、ＭＰＥＧ−４のストリームの一例を示す。
このストリームは、［ｖｉｄｅｏ＿ｏｂｊｅｃｔ＿ｓｔａｒｔ＿ｃｏｄｅ］・・・［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］［数バイトのヘッダ］［ＶＯＰデータ（Ｍａｃｒｏｂｌｏｃｋ）］［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］［数バイトのヘッダ］［ＶＯＰデータ（Ｍａｃｒｏｂｌｏｃｋ）］・・・［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］［数バイトのヘッダ］［ＶＯＰデータ（Ｍａｃｒｏｂｌｏｃｋ）］［ｖｉｄｅｏ＿ｏｂｊｅｃｔ＿ｓｔａｒｔ＿ｃｏｄｅ］・・・といった構成を有する。
［ｖｉｄｅｏ＿ｏｂｊｅｃｔ＿ｓｔａｒｔ＿ｃｏｄｅ］や［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］はスタートコードである。
【０００６】
［ｖｉｄｅｏ＿ｏｂｊｅｃｔ＿ｓｔａｒｔ＿ｃｏｄｅ］は、ＶＯ（Ｖｉｓｕａｌ  Ｏｂｊｅｃｔ）Ｈｅａｄｅｒの構成要素であり、（００  ００  ０１  ０１）ｈから成る４バイトのユニークコードである。ＶＯＨの構成要素は［ｖｉｄｅｏ＿ｏｂｊｅｃｔ＿ｓｔａｒｔ＿ｃｏｄｅ］のみであり、以下では、説明の便宜上から、［ｖｉｄｅｏ＿ｏｂｊｅｃｔ＿ｓｔａｒｔ＿ｃｏｄｅ］のことをＶＯＨとも言う。
一般に、ＶＯＰ（Ｖｉｄｅｏ  Ｏｂｊｅｃｔ  Ｐｌａｎｅ）ヘッダは、［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］と［数バイトのヘッダ］から構成される。［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］は、ＶＯＰヘッダの先頭に位置する。
［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］は、（００  ００  ０１  Ｂ６）ｈから成る４バイトのユニークコードであり、以下では、説明の便宜上から、［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］のことをＶＯＰとも言う。
暗号化に際しては、［ＶＯＰデータ（Ｍａｃｒｏｂｌｏｃｋ）］が暗号化される。
また、暗号化に際しては、［数バイトのヘッダ］については、暗号化されてもよく、或いは、暗号化されなくてもよく、或いは、その一部のみが暗号化されてもよい。
【０００７】
例えば、ＭＰＥＧ−４の場合、スタートコードは４バイトであり、暗号化ストリーム中の擬似コードを誤検出する確率は、例えば符号化レートが２Ｍｂｐｓである時、約５時間に１回である。具体的には、符号化レートが２Ｍｂｐｓである時、２４×８（ｂｉｔ）／｛２Ｍ（ｂｉｔ／ｓｅｃ）／８｝＝（２３２／２５００００）（ｓｅｃ）≒１７１８０（ｓｅｃ）≒２８６（ｍｉｎ）≒４．８（ｈ）となり、４バイトの擬似コードが、約５時間に１回、暗号化ストリーム中に出現する。
【０００８】
ここで、図１８（ａ）〜（ｅ）及び図１９（ａ）〜（ｃ）を参照して、具体的に説明する。
図１８（ａ）〜（ｅ）には、映像ストリームの暗号化及び復号の態様例を示してある。
図１８（ａ）には、送信側における暗号化前の映像ストリームの一例を示してある。この映像ストリームは、ＶＯＨ（本例において、ｖｉｄｅｏ＿ｏｂｊｅｃｔ＿ｓｔａｒｔ＿ｃｏｄｅを示す）に続いて、ＶＯＰ（本例において、ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅを示す）とデータの組が１組以上並んで構成されている。
図１８（ｂ）には、送信側において非ヘッダ部分を暗号化して生成される暗号化ストリームの一例を示してある。この暗号化ストリームでは、ヘッダではないデータの部分が暗号化されて暗号化データとなっている。また、本例では、ＶＯＰに続く［数バイトのヘッダ］も暗号化されている。
図１８（ｃ）には、受信側において暗号化ストリーム中からＶＯＰを検出する様子の一例を示してある。
図１８（ｄ）には、受信側において暗号化ストリーム中から前記ＶＯＰに対して次の（隣りの）ＶＯＰを検出する様子の一例を示してある。
図１８（ｅ）には、受信側において検出した隣りの２個のＶＯＰの間にある暗号化データを復号した様子の一例を示してある。
【０００９】
図１９（ａ）〜（ｃ）には、受信側において擬似コードを誤検出した場合の様子の一例を示してある。
図１９（ａ）には、受信側において暗号化ストリーム中から擬似コードを誤検出する様子の一例を示してある。本例では、暗号化データの中にＶＯＰと同一の値を有するビット列が含まれており、これがスタートコードであると誤って判定して検出している。
図１９（ｂ）には、受信側において暗号化ストリーム中から前記擬似コードに対して次の（隣りの）ＶＯＰを検出する様子の一例を示してある。
図１９（ｃ）には、受信側において検出した隣りの２個のＶＯＰ（本例では、１個は擬似コード）の間にある暗号化データを復号した様子の一例を示してある。
このように、受信側で擬似コードを誤検出してしまうと、暗号化データを正常に復号することができなくなってしまい、精度のよい画像を再生することができなくなってしまう。
【００１０】
本発明は、このような従来の事情に鑑み為されたもので、暗号化データを通信するに際して、暗号化データに含まれる擬似コードを本来の位置識別コード（例えば、スタートコードなど）であると誤検出することによる影響を抑制することができる暗号化データ通信システムを提供することを目的とする。
なお、誤検出することによる影響を抑制する態様としては、例えば、誤検出する確率を低下させる態様や、誤検出したままとすることを防いで無くす態様がある。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明に係る暗号化データ通信システムでは、データストリームを暗号化した暗号化ストリームを送信側装置から受信側装置へ通信するに際して、次のような処理を行う。
すなわち、前記送信側装置では、挿入手段が前記暗号化ストリームに含まれる位置識別コードの前又は後に所定の同期マーカを挿入し、送信手段が前記同期マーカが挿入された暗号化ストリームを送信する。
前記受信側装置では、受信手段が前記暗号化ストリームを受信し、検出手段が前記受信された暗号化ストリームに含まれる前記同期マーカと前記位置識別コードの並び又は前記位置識別コードと前記同期マーカの並びを検出し、復号手段が前記検出の結果に基づいて前記受信された暗号化ストリームを復号する。
【００１２】
従って、暗号化ストリームを復号するに際して、同期マーカと位置識別コードの並び又は位置識別コードと同期マーカの並びを検出して同期が取られるため、例えば位置識別コードのみを検出して同期が取られる場合と比べて、検出対象の量（例えば、ビット数）を多くすることができ、これにより、暗号化データを通信するに際して、暗号化データに含まれる擬似コード（本例では、前記の並びと擬似的に同一なもの）を本来の位置識別コード（本例では、前記の並び）であると誤検出することによる影響を抑制することができる。具体的には、誤検出する確率を低下させることができる。
【００１３】
ここで、送信側装置や受信側装置としては、それぞれ、例えば、送信機能と受信機能の両方を有する送受信装置（通信装置）が用いられてもよい。
また、データストリームとしては、種々なものが用いられてもよく、例えば、ＭＰＥＧ−４方式により圧縮された映像（画像）のデータストリームなどが用いられる。
また、データストリームには、例えば、位置識別コードやデータが含まれる。なお、位置識別コードがデータストリームに追加的に挿入されるような態様が用いられてもよい。
また、暗号化の方式としては、種々なものが用いられてもよい。
また、位置識別コードとしては、種々なものが用いられてもよく、例えば、ｖｉｄｅｏ＿ｏｂｊｅｃｔ＿ｓｔａｒｔ＿ｃｏｄｅやｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅのようなスタートコードや、他のコードを用いることができる。
また、位置識別コードの前に同期マーカが挿入される場合には同期マーカと位置識別コードの並びを検出することとなり、位置識別コードの後に同期マーカが挿入される場合には位置識別コードと同期マーカの並びを検出することとなる。
また、同期マーカとしては、種々なものが用いられてもよい。復号後に同期マーカを削除することが必要な場合には、受信側装置には、復号された同期マーカを削除する削除手段が備えられる。
【００１４】
本発明に係る暗号化データ通信システムでは、一構成例として、次のような構成とした。
すなわち、前記データストリームは、圧縮手段により圧縮されたものであり、また、前記復号により得られるデータストリームは、伸長手段により伸長される。そして、前記同期マーカとして、スタッフィングコードを用いた。
従って、同期マーカとしてスタッフィングコードが用いられ、伸長に際してはスタッフィングコードは無視されるため、復号の結果から同期マーカ（本例では、スタッフィングコード）を削除せずに残しておくことができ、復号処理を高速化することができる。
【００１５】
ここで、圧縮手段や伸長手段としては、種々なものが用いられてもよく、例えば、ＭＰＥＧ−４方式に対応したものなどが用いられる。
また、圧縮手段は、例えば、送信側装置、或いは他の装置に備えられる。
また、伸長手段は、例えば、受信側装置、或いは他の装置に備えられる。
また、スタッフィングコードとしては、例えば、ＭＰＥＧ−４方式におけるスタッフィングビットや、ＭＰＥＧ−２方式におけるスタッフィングバイトや、Ｈ．２６４方式におけるゼロバイト等を用いることができる。
【００１６】
本発明に係る暗号化データ通信システムでは、データストリームを暗号化した暗号化ストリームを送信側装置から受信側装置へ通信するに際して、次のような処理を行う。
すなわち、前記送信側装置では、暗号化手段が前記データストリームに含まれるデータと所定の判定用マーカの並びを暗号化し、送信手段が前記暗号化により得られた暗号化ストリームを送信する。
前記受信側装置では、受信手段が前記暗号化ストリームを受信し、検出手段が前記受信された暗号化ストリームに含まれる位置識別コードを検出し、復号手段が前記検出の結果に基づいて前記暗号化ストリームを復号し、そして、判定手段が、前記復号の結果に基づいて、前記データと前記判定用マーカの並びが復号されている場合には正しい位置識別コードが検出されたと判定する一方、他の場合には擬似コードが検出されたと判定する。
【００１７】
従って、暗号化ストリームの復号結果において、データと判定用マーカの並びが復号された場合つまりデータの後に判定用マーカが現れた場合には、正しい位置識別コードが検出されて復号されたことを把握することができる一方、データと判定用マーカの並びが復号されなかった場合つまりデータの後に判定用マーカが現れなかった場合には、擬似コードが誤って検出されて復号されたことを把握することができる。これにより、暗号化データを通信するに際して、暗号化データに含まれる擬似コードを本来の位置識別コードであると誤検出することによる影響を抑制することができる。具体的には、例えば、誤検出した場合には再び暗号化データへ戻して位置識別コードの検索を行うことにより、誤検出したままとすることを防いで無くすことができる。
【００１８】
ここで、所定の判定用マーカとしては、種々なものが用いられてもよく、例えば、データストリームにもともと含まれている位置識別コードなどが用いられてもよく、或いは、データストリームに判定用マーカが挿入されて用いられてもよい。また、所定の判定用マーカとしては、例えば、ストリームに対してユニークなものが用いられる。復号後に判定用マーカを削除することが必要な場合には、受信側装置には、復号された判定用マーカを削除する削除手段が備えられる。
また、データストリームには、例えば、スタートコードなどの位置識別コードや、データが含まれる。なお、スタートコードや同期マーカなどの位置識別コードが、データストリームに追加的に挿入されるような態様が用いられてもよい。
また、復号のために検出される位置識別コードとしては、例えば、データストリームにもともと含まれるものが用いられてもよく、或いは、データストリームに追加的に挿入されたものが用いられてもよい。
また、復号のために検出される位置識別コードとしては、例えば、スタートコードなどと同期マーカとの組み合わせが用いられてもよい。
【００１９】
本発明に係る暗号化データ通信システムでは、一構成例として、次のような構成とした。
すなわち、前記データストリームは、圧縮手段により圧縮されたものであり、また、前記復号により得られるデータストリームは、伸長手段により伸長される。そして、前記受信側装置では、変換手段が前記復号された判定用マーカをスタッフィングコードへ変換する。
従って、復号後に判定用マーカがスタッフィングコードへ置き換えられ、伸長に際してはスタッフィングコードは無視されるため、復号の結果から判定用マーカ（本例では、スタッフィングコード）を削除せずに残しておくことができ、復号処理を高速化することができる。
【００２０】
本発明に係る暗号化データ通信システムでは、一構成例として、次のような構成とした。
すなわち、前記送信側装置では、挿入手段が前記データストリームにもともと含まれる位置識別コードと同一の位置識別マーカを挿入する。そして、前記所定の判定用マーカとして、前記データストリームにもともと含まれる前記位置識別コード、或いは、前記データストリームに挿入された前記位置識別マーカが用いられる。
前記受信側装置では、削除手段が、前記復号の結果から、前記データストリームにもともと含まれる前記位置識別コード或いは前記データストリームに挿入された前記位置識別マーカの一方を削除する。
【００２１】
従って、送信側装置では、データストリームにもともと含まれる位置識別コードに対して前方或いは後方に位置識別マーカを挿入して、データと判定用マーカ（位置識別コード或いは位置識別マーカの一方で、前方（データ側）にあるもの）を暗号化し、受信側装置では、前記位置識別コード或いは前記位置識別マーカの他方（後方にあるもの）を検出して復号を行い、データと判定用マーカが復号されるか否かに基づいて、正しく復号されたか否かを判定することができる。これにより、擬似コードの誤検出を放置することを防止することができる。
また、受信側装置では、復号後に二重になる位置識別コード（ここでは、位置識別コードと位置識別マーカ）の一方を削除して、１つの位置識別コード（ここでは、位置識別コード或いは位置識別マーカ）を残すようにする。
【００２２】
なお、本例では、位置識別コードと同一の位置識別マーカを挿入して位置識別コード或いは位置識別マーカを判定用マーカとして用いる構成を示したが、例えば、挿入したマーカを復号後に削除するような場合や、挿入したマーカを復号後にスタッフィングコードへ変換するような場合で、挿入したマーカが位置識別コードと同一でなくともよい場合には、位置識別コードとは異なるマーカを挿入する構成を用いることも可能である。
【００２３】
本発明に係る暗号化データ通信システムでは、データストリームを暗号化した暗号化ストリームを送信側装置から受信側装置へ通信するに際して、次のような処理を行う。
すなわち、前記送信側装置では、生成手段がデータの後に所定の判定用マーカと所定の同期マーカと位置識別コードの並び或いは所定の判定用マーカと位置識別コードと所定の同期マーカの並びを有するデータストリームを生成し、暗号化手段が前記生成されたデータストリームに含まれる前記データと前記判定用マーカの並びを暗号化し、送信手段が前記暗号化により得られた暗号化ストリームを送信する。
前記受信側装置では、受信手段が前記暗号化ストリームを受信し、検出手段が前記受信された暗号化ストリームに含まれる前記同期マーカと前記位置識別コードの並び或いは前記位置識別コードと前記同期マーカの並びを検出し、復号手段が前記検出の結果に基づいて前記暗号化ストリームを復号し、そして、判定手段が、前記復号の結果に基づいて、前記データと前記判定用マーカの並びが復号されている場合には正しい前記同期マーカと前記位置識別コードの並び或いは前記位置識別コードと前記同期マーカの並びが検出されたと判定する一方、他の場合には擬似的な並びが検出されたと判定する。
【００２４】
従って、暗号化ストリームを復号するに際して、同期マーカと位置識別コードの並び又は位置識別コードと同期マーカの並びを検出して同期が取られるため、例えば位置識別コードのみを検出して同期が取られる場合と比べて、検出対象の量（例えば、ビット数）を多くすることができ、これにより、暗号化データを通信するに際して、暗号化データに含まれる擬似コード（本例では、前記の並びと擬似的に同一なもの）を本来の位置識別コード（本例では、前記の並び）であると誤検出することによる影響を抑制することができる。具体的には、誤検出する確率を低下させることができる。
これとともに、暗号化ストリームの復号結果において、データと判定用マーカの並びが復号された場合つまりデータの後に判定用マーカが現れた場合には、正しい位置識別コードが検出されて復号されたことを把握することができる一方、データと判定用マーカの並びが復号されなかった場合つまりデータの後に判定用マーカが現れなかった場合には、擬似コードが誤って検出されて復号されたことを把握することができる。これにより、暗号化データを通信するに際して、暗号化データに含まれる擬似コードを本来の位置識別コードであると誤検出することによる影響を抑制することができる。具体的には、例えば、誤検出した場合には再び暗号化データへ戻して位置識別コードの検索を行うことにより、誤検出したままとすることを防いで無くすことができる。
【００２５】
ここで、データストリームには、例えば、位置識別コードやデータが含まれる。なお、位置識別コードがデータストリームに追加的に挿入されるような態様が用いられてもよい。
また、データと判定用マーカと同期マーカと位置識別コードの並びが用いられる場合には、データと判定用マーカの並びが暗号化され、同期マーカと位置識別コードの並びが復号に際して検出される。また、データと判定用マーカと位置識別コードと同期マーカの並びが用いられる場合には、データと判定用マーカの並びが暗号化され、位置識別コードと同期マーカの並びが復号に際して検出される。
また、他の構成例として、データの後に判定用マーカと位置識別コードの並びを有するデータストリームを生成し、当該データと当該判定用マーカの並びを暗号化して暗号化ストリームを生成し、当該暗号化ストリームに含まれる前記位置識別コードの前又は後に同期マーカを挿入することにより、データと判定用マーカと同期マーカと位置識別コードの並び或いはデータと判定用マーカと位置識別コードと同期マーカの並びを生成することも可能である。
【００２６】
なお、本発明は、方法や、プログラムや、記録媒体などとして提供することも可能である。
本発明に係る方法では、システムや装置において各手段が各種の処理を実行する。
本発明に係るプログラムでは、システムや装置を構成するコンピュータに実行させるものであって、各種の機能を当該コンピュータにより実現する。
本発明に係る記録媒体では、システムや装置を構成するコンピュータに実行させるプログラムを当該コンピュータの入力手段により読み取り可能に記録したものであって、当該プログラムは各種の処理を当該コンピュータに実行させる。
【発明の効果】
【００２７】
以上説明したように、本発明に係る暗号化データ通信システムによると、暗号化ストリームの復号に際して同期マーカと位置識別コードとの組み合わせを検出するようにしたため、例えば位置識別コードのみを検出するような場合と比べて、擬似コードを誤検出してしまう確率を小さくすることができる。
また、本発明に係る暗号化データ通信システムによると、データと判定用マーカの並びを暗号化して、この並びが正しく復号されたか否かを判定するようにしたため、例えば、復号に際して擬似コードを誤検出してしまっても、それを把握して、訂正することが可能である。
また、本発明に係る暗号化データ通信システムによると、同期マーカと判定用マーカの両方を用いることにより、擬似コードの誤検出による影響を抑制することができ、これにより、復号の精度やデータ再生の精度などを向上させることができる。
また、本発明に係る暗号化データ通信システムによると、スタッフィングコードを用いることにより、復号処理の高速化などを図ることができる。
【発明を実施するための最良の形態】
【００２８】
本発明に係る実施例を図面を参照して説明する。
図１には、本実施例に係る暗号化データ通信システムの一例を示してある。
本例の暗号化データ通信システムは、ネットワークカメラ１と、ネットワーク２と、端末装置３を有している。そして、ネットワークカメラ１からネットワーク２を介して端末装置３へ暗号化ストリームを配信する。
ネットワークカメラ１は、映像ストリームの非ヘッダ部分を暗号鍵で暗号化して、これをネットワーク２へ出力する。
端末装置３は、例えばクライアントとして機能するパーソナルコンピュータであり、ネットワークカメラ１で使用される暗号鍵に対応した鍵を記憶しており、この鍵を使用してネットワークカメラ１から受信した暗号化ストリームを復号することで、映像を視聴することができる。
【００２９】
図２には、暗号化データ通信システムの具体的な構成例を示してある。
本例の暗号化データ通信システムは、エンコーダ１１及び暗号化部１２を有する送信側の装置（送信側装置）と、ネットワーク１３と、復号部１４及びデコーダ１５を有する受信側の装置（受信側装置）から構成されている。
暗号化部１２は、初期ベクトル部２１と、鍵部２２と、乱数発生器２３と、演算器２４を備えている。
復号部１４は、初期ベクトル部３１と、鍵部３２と、乱数発生器３３と、演算器３４を備えている。
また、送信側装置や、受信側装置は、それぞれ、各種のデータ処理や制御を行う制御部（図示せず）を備えている。
【００３０】
送信側装置の動作例を示す。
エンコーダ１１は、送信対象となる映像ストリームをエンコード（本例では、ＭＰＥＧ−４方式による圧縮）して暗号化部１２へ出力する。
暗号化部１２では、初期ベクトル部２１が初期ベクトルを出力し、鍵部２２が鍵を出力し、乱数発生器２３が初期ベクトル及び鍵を用いて乱数を発生させて出力し、演算器２４がエンコーダ１１から入力される映像ストリームと乱数発生器２３から入力される乱数との排他的論理和を取ることで、暗号化ストリームを得る。そして、この暗号化ストリームをネットワーク１３を介して受信側へ送る。
また、送信側装置では、制御部により、映像ストリームや暗号化ストリームに対して各種の加工処理を行うことができる。
【００３１】
受信側装置の動作例を示す。
復号部１４では、初期ベクトル部３１が初期ベクトルを出力し、鍵部３２が鍵を出力し、乱数発生器３３が初期ベクトル及び鍵を用いて乱数を発生させて出力し、演算器３４がネットワーク１３を介して入力される暗号化ストリームと乱数発生器３３から入力される乱数との排他的論理和を取ることで、送信側から受信した暗号化ストリームを復号する。そして、これにより得られた元の映像ストリームをデコーダ１５へ出力する。
デコーダ１５は、復号部１４から入力される映像ストリームをデコード（本例では、ＭＰＥＧ−４方式による圧縮に対する伸張）する。
なお、送信側の暗号化部１２と受信側の復号部１４とでは、例えば、初期ベクトルや鍵として互いに対応するものが用いられ、また、乱数のタイミングの同期が取られる。
また、受信側装置では、制御部により、暗号化ストリームや復号後の映像ストリームに対して各種の加工処理を行うことができる。
【００３２】
なお、本実施例に係る送信側装置は、例えば、映像を圧縮符号化する圧縮手段や、圧縮された映像ストリーム（データストリーム）を暗号化する暗号化手段や、データストリームや暗号化ストリームに対して同期マーカや判定用マーカ（本実施例では、例えば、スタートコード）などを挿入する挿入手段や、暗号化ストリームを送信する送信手段や、所定のデータストリームを生成する生成手段などの機能を有している。
また、本実施例に係る受信側装置では、暗号化ストリームを受信する受信手段や、スタートコードや同期マーカを検出する検出手段や、暗号化ストリームを復号する復号手段や、同期マーカや判定用マーカなどを削除する削除手段や、擬似コードの誤検出の有無を判定する判定手段や、判定用マーカをスタッフィングコード（本例では、スタッフィングビット）へ変換する変換手段や、データストリームを伸長する伸長手段などの機能を有する。
【００３３】
また、以下の実施例では、ＶＯＰヘッダに含まれる［数バイトのヘッダ］についても暗号化する場合を示すが、この［数バイトのヘッダ］については暗号化しない態様が用いられてもよく、或いは、この［数バイトのヘッダ］の一部のみを暗号化するような態様が用いられてもよい。
【実施例１】
【００３４】
本発明の第１実施例を説明する。
（第１−１の例）
図３（ａ）〜（ｅ）には、暗号化した非ヘッダ部分の後ろに同期マーカを付加する方式で、ＶＯＰ単位で暗号化を行う態様例を示してある。本例では、同期マーカは、４バイトから成る。
なお、本例では、暗号化や復号に際してＶＯＰ（本例において、ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅを示す）を位置識別のためのコードとして使用する。
図３（ａ）には、送信側における暗号化前の映像ストリームの一例を示してある。この映像ストリームは、ＶＯＨ（本例において、ｖｉｄｅｏ＿ｏｂｊｅｃｔ＿ｓｔａｒｔ＿ｃｏｄｅを示す）に続いて、ＶＯＰとデータの組が１組以上（本例では、３組）並んで構成されている。本例では、ＶＯＨは４バイトから成り、ＶＯＰは４バイトから成る。
図３（ｂ）には、送信側において非ヘッダ部分を暗号化して生成される暗号化ストリームの一例を示してある。この暗号化ストリームでは、ヘッダではないデータの部分（非ヘッダ部分）が暗号化されて暗号化データとなっている。また、本例では、ＶＯＰに続く［数バイトのヘッダ］も暗号化されている。
図３（ｃ）には、送信側において暗号化データの後ろに４バイトの同期マーカ（図では、“０ｘＸＸ  ＸＸ  ＸＸ  ＸＸ”と示したもの）を挿入した暗号化ストリームの一例を示してある。
図３（ｄ）には、受信側において暗号化ストリーム中から同期マーカとＶＯＰから成る８バイトを検出して、その前にある暗号化データを復号して元のストリーム中へ挿入したものの一例を示してある。
図３（ｅ）には、受信側において暗号化ストリーム中から前記同期マーカを削除して、その後ろを前に詰めたものの一例を示してある。
【００３５】
送信側の動作例を示す。
送信側では、図３（ａ）に示される映像ストリームの中から、４バイトのＶＯＨを検出し、次いで、４バイトのＶＯＰを検出する。そして、次の４バイトのＶＯＰを検出すると、図３（ｂ）に示されるように、検出した隣りの２個のＶＯＰの間のデータ（すなわち、ＶＯＰデータ及びＶＯＰに続く［数バイトのヘッダ］）を暗号鍵で暗号化する。次に、図３（ｃ）に示されるように、暗号化した非ヘッダ部分（本例では、暗号化したＶＯＰデータ）の後ろに同期マーカを付加して、ネットワーク２、１３へ出力する。なお、ＶＯＰデータは、ＶＯＰヘッダ（ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ及び［数バイトのヘッダ］）に続いて配置されるデータのことを示す。
受信側の動作例を示す。
受信側では、暗号化ストリームの中から４バイトのＶＯＨを検出し、次いで、４バイトのＶＯＰを検出する。そして、次に計８バイトの（同期マーカ＋ＶＯＰ）を検出すると、図３（ｄ）に示されるように、検出したＶＯＰと隣りの（同期マーカ＋ＶＯＰ）との間のデータを暗号鍵で復号する。そして、図３（ｅ）に示されるように、前記した４バイトの同期マーカを削除して、その後ろのストリームを前に詰める。以後、全ての暗号化データについて、同様な動作を繰り返して行う。
【００３６】
本例のように、受信側で（同期マーカ＋ＶＯＰ）の計８バイトを検出する構成では、例えば符号化レートが２Ｍｂｐｓである時には、暗号化ストリーム中の擬似コードを誤検出する確率は約２３０万年に１回程度と低くなる。具体的には、符号化レートが２Ｍｂｐｓである時、２８×８（ｂｉｔ）／｛２Ｍ（ｂｉｔ／ｓｅｃ）／８｝＝（２６４／２５００００）（ｓｅｃ）≒２３３９７６９（年）≒２３０万年となり、８バイトの擬似コードは、約２３０万年に１回、暗号化ストリーム中に出現する。
【００３７】
このように、映像ストリームの非ヘッダ部分を暗号化する際に、暗号化した非ヘッダ部分の後ろに同期マーカを付加することで、暗号化ストリーム中に含まれる擬似コードを本来のスタートコードであると誤検出する確率を下げることができる。
なお、本例では、暗号化した非ヘッダ部分の後ろ（ＶＯＰの前）に同期マーカを挿入する構成を示したが、同期マーカを挿入する位置としてはこれに限られず、例えば、ＶＯＰの後ろに同期マーカを挿入する構成を用いて、本例と同様な効果を得ることもできる。ＶＯＰの後ろに同期マーカを挿入すると、例えば、［暗号化されたＶＯＰデータ］［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］［同期マーカ］［数バイトのヘッダ］［暗号化されたＶＯＰデータ］といった並びが生成される。
【００３８】
（第１−２の例）
図４（ａ）〜（ｅ）には、暗号化した非ヘッダ部分（本例では、［数バイトのヘッダ］やＶＯＰヘッダも含む）の後ろに同期マーカを付加する方式で、ＶＯＨ単位で暗号化を行う態様例を示してある。本例では、同期マーカは、４バイトから成る。
なお、本例では、暗号化や復号に際してＶＯＨ（本例において、ｖｉｄｅｏ＿ｏｂｊｅｃｔ＿ｓｔａｒｔ＿ｃｏｄｅを示す）を位置識別のためのコードとして使用し、暗号化や復号に際してはＶＯＰヘッダは非ヘッダ部分であるとみなす。
図４（ａ）には、送信側における暗号化前の映像ストリームの一例を示してある。
図４（ｂ）には、送信側において非ヘッダ部分（本例では、［数バイトのヘッダ］やＶＯＰヘッダも含む）を暗号化して生成される暗号化ストリームの一例を示してある。
図４（ｃ）には、送信側において暗号化データの後ろに４バイトの同期マーカ（図では、“０ｘＸＸ  ＸＸ  ＸＸ  ＸＸ”と示したもの）を挿入した暗号化ストリームの一例を示してある。
図４（ｄ）には、受信側において暗号化ストリーム中から同期マーカとＶＯＨから成る８バイトを検出して、その前にある暗号化データを復号して元のストリーム中へ挿入したものの一例を示してある。
図４（ｅ）には、受信側において暗号化ストリーム中から前記同期マーカを削除して、その後ろを前に詰めたものの一例を示してある。
【００３９】
送信側の動作例を示す。
送信側では、図４（ａ）に示される映像ストリームの中から、４バイトのＶＯＨを検出し、次いで、４バイトのＶＯＰ（本例において、ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅを示す）を検出する。そして、次の４バイトのＶＯＨを検出すると、図４（ｂ）に示されるように、この間のデータすなわち最初のＶＯＰデータから最後のＶＯＰデータまでを暗号鍵で暗号化する。なお、本例では、最初のＶＯＰに続く［数バイトのヘッダ］も暗号化されている。次に、図４（ｃ）に示されるように、暗号化した非ヘッダ部分（本例では、最初のＶＯＰデータから最後のＶＯＰデータまでの部分で、最初のＶＯＰに続く［数バイトのヘッダ］や他のＶＯＰヘッダも含む）の後ろに同期マーカを付加して、ネットワーク２、１３へ出力する。
受信側の動作例を示す。
受信側では、暗号化ストリームの中から４バイトのＶＯＨを検出し、次いで、４バイトのＶＯＰを検出する。そして、次に計８バイトの（同期マーカ＋ＶＯＨ）を検出すると、図４（ｄ）に示されるように、検出したＶＯＰと隣りの（同期マーカ＋ＶＯＨ）との間のデータを暗号鍵で復号する。そして、図４（ｅ）に示されるように、前記した４バイトの同期マーカを削除して、その後ろのストリームを前に詰める。以後、全ての暗号化データについて、同様な動作を繰り返して行う。
【００４０】
このように、映像ストリームの非ヘッダ部分（本例では、［数バイトのヘッダ］やＶＯＰヘッダも含む）を暗号化する際に、暗号化した非ヘッダ部分（本例では、［数バイトのヘッダ］やＶＯＰヘッダも含む）の後ろに同期マーカを付加することで、暗号化ストリーム中に含まれる擬似コードを本来のスタートコードであると誤検出する確率を下げることができる。
なお、本例では、暗号化した非ヘッダ部分（本例では、［数バイトのヘッダ］やＶＯＰヘッダも含む）の後ろ（ＶＯＨの前）に同期マーカを挿入する構成を示したが、同期マーカを挿入する位置としてはこれに限られず、例えば、暗号化した非ヘッダ部分（本例では、［数バイトのヘッダ］やＶＯＰヘッダも含む）の前方（例えば、ＶＯＨの後ろ）に同期マーカを挿入する構成を用いて、本例と同様な効果を得ることもできる。
【００４１】
（第１−３の例）
図５（ａ）〜（ｅ）には、暗号化した非ヘッダ部分の後ろに同期マーカとしてスタッフィングビット（ｓｔｕｆｆｉｎｇ  ｂｉｔ）を付加する方式で、ＶＯＰ単位で暗号化を行う態様例を示してある。本例では、スタッフィングビットは、４バイトから成る。
なお、本例では、暗号化や復号に際してＶＯＰ（本例において、ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅを示す）を位置識別のためのコードとして使用する。
ここで、スタッフィングビットは、「詰めもの」を表し、ＭＰＥＧ−４において、バイト・アライメント（データの始めをバイト（＝８ｂｉｔ）の始めに合わせること）を行うために、映像ストリーム中に挿入される。つまり、映像ストリームの長さがバイト単位にならなかった時に、スタッフィングビットという「詰めもの」を映像ストリームの後ろに付加する。
このようなスタッフィングビットはその長さがわかるようにパターンが規定されており、デコーダ１５で映像ストリームを伸長する際にはこのスタッフィングビットは無視される。具体的には、スタッフィングビットは、０、０１、０１１、０１１１、・・・、０１１１１１１１、・・・というパターンであり、逆方向から復号した時に、“０”を見つけることで区切りを検出することができるため、スタッフィングビットが付加された映像ストリームを伸長する場合にはスタッフィングビットを無視することが行われる。
このような特徴を有するスタッフィングビットを同期マーカとして用いると、受信側では同期マーカを削除してその後ろを前に詰める処理が不要となるため、高速な復号処理が可能となる。
【００４２】
図５（ａ）には、送信側における暗号化前の映像ストリームの一例を示してある。
図５（ｂ）には、送信側において非ヘッダ部分を暗号化して生成される暗号化ストリームの一例を示してある。また、本例では、ＶＯＰに続く［数バイトのヘッダ］も暗号化されている。
図５（ｃ）には、送信側において暗号化データの後ろに同期マーカとして４バイトのスタッフィングビット（図では、“０ｘ７Ｆ  ＦＦ  ＦＦ  ＦＦ”と示したもの）を挿入した暗号化ストリームの一例を示してある。
図５（ｄ）には、受信側において暗号化ストリーム中から同期マーカとＶＯＰから成る８バイトを検出して、その前にある暗号化データを復号して元のストリーム中へ挿入したものの一例を示してある。
図５（ｅ）には、受信側において、同様にして、暗号化ストリーム中の暗号化データを順々に復号していく様子の一例を示してある。
【００４３】
送信側の動作例を示す。
送信側では、図５（ａ）に示される映像ストリームの中から、４バイトのＶＯＨ（本例において、ｖｉｄｅｏ＿ｏｂｊｅｃｔ＿ｓｔａｒｔ＿ｃｏｄｅを示す）を検出し、次いで、４バイトのＶＯＰを検出する。そして、次の４バイトのＶＯＰを検出すると、図５（ｂ）に示されるように、検出した隣りの２個のＶＯＰの間のデータ（すなわち、ＶＯＰに続く［数バイトのヘッダ］及びＶＯＰデータ）を暗号鍵で暗号化する。次に、図５（ｃ）に示されるように、暗号化した非ヘッダ部分（本例では、暗号化した［数バイトのヘッダ］及びＶＯＰデータ）の後ろに同期マーカ（本例では、スタッフィングビット）を付加して、ネットワーク２、１３へ出力する。
受信側の動作例を示す。
受信側では、暗号化ストリームの中から４バイトのＶＯＨを検出し、次いで、４バイトのＶＯＰを検出する。そして、次に計８バイトの（同期マーカ＋ＶＯＰ）を検出すると、図５（ｄ）に示されるように、検出したＶＯＰと隣りの（同期マーカ＋ＶＯＰ）との間のデータを暗号鍵で復号する。そして、図５（ｅ）に示されるように、以後、全ての暗号化データについて、同様な動作を繰り返して行う。
【００４４】
このように、映像ストリームの非ヘッダ部分を暗号化する際に、暗号化した非ヘッダ部分の後ろに同期マーカとしてスタッフィングビットを付加することで、暗号化ストリーム中に含まれる擬似コードを本来のスタートコードであると誤検出する確率を下げることができ、且つ、高速な復号処理を実現することができる。
なお、本例では、例えばもともと送信側や受信側に備えられているスタッフィングビットの機能を利用するため、同期マーカとしてスタッフィングビットを挿入する位置としては、暗号化した非ヘッダ部分の後ろ（ＶＯＰの前）が用いられる。
【００４５】
（第１−４の例）
図６（ａ）〜（ｅ）には、暗号化した非ヘッダ部分（本例では、［数バイトのヘッダ］やＶＯＰヘッダも含む）の後ろに同期マーカとしてスタッフィングビット（ｓｔｕｆｆｉｎｇ  ｂｉｔ）を付加する方式で、ＶＯＨ単位で暗号化を行う態様例を示してある。本例では、スタッフィングビットは、４バイトから成る。
なお、本例では、暗号化や復号に際してＶＯＨ（本例において、ｖｉｄｅｏ＿ｏｂｊｅｃｔ＿ｓｔａｒｔ＿ｃｏｄｅを示す）を位置識別のためのコードとして使用し、暗号化や復号に際してはＶＯＰヘッダは非ヘッダ部分であるとみなす。
図６（ａ）には、送信側における暗号化前の映像ストリームの一例を示してある。
図６（ｂ）には、送信側において非ヘッダ部分（本例では、［数バイトのヘッダ］やＶＯＰヘッダも含む）を暗号化して生成される暗号化ストリームの一例を示してある。
図６（ｃ）には、送信側において暗号化データの後ろに同期マーカとして４バイトのスタッフィングビット（図では、“０ｘ７Ｆ  ＦＦ  ＦＦ  ＦＦ”と示したもの）を挿入した暗号化ストリームの一例を示してある。
図６（ｄ）には、受信側において暗号化ストリーム中から同期マーカとＶＯＨから成る８バイトを検出して、その前にある暗号化データを復号して元のストリーム中へ挿入したものの一例を示してある。
図６（ｅ）には、受信側において、同様にして、暗号化ストリーム中の暗号化データを順々に復号していく様子の一例を示してある。
【００４６】
送信側の動作例を示す。
送信側では、図６（ａ）に示される映像ストリームの中から、４バイトのＶＯＨを検出し、次いで、４バイトのＶＯＰ（本例において、ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅを示す）を検出する。そして、次の４バイトのＶＯＨを検出すると、図６（ｂ）に示されるように、この間のデータすなわち最初のＶＯＰデータから最後のＶＯＰデータまでを暗号鍵で暗号化する。なお、本例では、最初のＶＯＰに続く［数バイトのヘッダ］も暗号化されている。次に、図６（ｃ）に示されるように、暗号化した非ヘッダ部分（本例では、最初のＶＯＰデータから最後のＶＯＰデータまでの部分で、最初のＶＯＰに続く［数バイトのヘッダ］や他のＶＯＰヘッダも含む）の後ろに同期マーカとしてスタッフィングビットを付加して、ネットワーク２、１３へ出力する。
受信側の動作例を示す。
受信側では、暗号化ストリームの中から４バイトのＶＯＨを検出し、次いで、４バイトのＶＯＰを検出する。そして、次に計８バイトの（同期マーカ＋ＶＯＨ）を検出すると、図６（ｄ）に示されるように、検出したＶＯＰと隣りの（同期マーカ＋ＶＯＨ）との間のデータを暗号鍵で復号する。そして、図６（ｅ）に示されるように、以後、全ての暗号化データについて、同様な動作を繰り返して行う。
【００４７】
このように、映像ストリームの非ヘッダ部分（本例では、［数バイトのヘッダ］やＶＯＰヘッダも含む）を暗号化する際に、暗号化した非ヘッダ部分（本例では、［数バイトのヘッダ］やＶＯＰヘッダも含む）の後ろに同期マーカとしてスタッフィングビットを付加することで、暗号化ストリーム中に含まれる擬似コードを本来のスタートコードであると誤検出する確率を下げることができ、且つ、高速な復号処理を実現することができる。
なお、本例では、例えばもともと送信側や受信側に備えられているスタッフィングビットの機能を利用するため、同期マーカとしてスタッフィングビットを挿入する位置としては、暗号化した非ヘッダ部分（本例では、［数バイトのヘッダ］やＶＯＰヘッダも含む）の後ろ（ＶＯＨの前）が用いられる。
【００４８】
以上の各例に示されるように、本例の暗号化データ通信システムでは、送信側において、映像ストリームの非ヘッダ部分（本例では、［数バイトのヘッダ］を含み、ＶＯＰヘッダを含む場合もある）を暗号化する際に、暗号化した非ヘッダ部分（本例では、［数バイトのヘッダ］を含み、ＶＯＰヘッダを含む場合もある）の後ろ或いは前などに同期マーカを付加する。これにより、例えば、ヘッダ長を４バイトから実質的に８バイトへ拡張して、非ヘッダ部分（本例では、［数バイトのヘッダ］を含み、ＶＯＰヘッダを含む場合もある）における擬似コードの検出の確率を低下させる。なお、非ヘッダ部分のデータとしては、例えば、可変長である映像の符号化データなどが用いられる。
【００４９】
また、本例の暗号化データ通信システムでは、受信側において、上記のようにして暗号化された映像ストリーム（暗号化ストリーム）の中から、同期マーカとスタートコードとの組み合わせの部分を検出して、暗号化された非ヘッダ部分（本例では、［数バイトのヘッダ］を含み、ＶＯＰヘッダを含む場合もある）を復号する。
また、本例の暗号化データ通信システムでは、受信側において、暗号化された映像ストリーム（暗号化ストリーム）の中から、同期マーカとスタートコードとの組み合わせの部分を検出して、暗号化された非ヘッダ部分（本例では、［数バイトのヘッダ］を含み、ＶＯＰヘッダを含む場合もある）を復号した後に、同期マーカを取り除いて、その後ろのデータを前に詰める。或いは、本例の暗号化データ通信システムでは、受信側において、同期マーカを削除しなくてもよいような場合には、上記のようにして暗号化された非ヘッダ部分（本例では、［数バイトのヘッダ］を含み、ＶＯＰヘッダを含む場合もある）を復号した時に、同期マーカを映像ストリームに残したままとする。
【００５０】
例えば、本例の暗号化データ通信システムでは、送信側において、暗号化した非ヘッダ部分（本例では、［数バイトのヘッダ］を含み、ＶＯＰヘッダを含む場合もある）の後ろに付加する同期マーカとしてスタッフィングビットを用いる。つまり、スタッフィングビット領域にデータを挿入することで、同期マーカとして活用する。また、このようにスタッフィングビットを用いる場合に、受信側において、暗号化された非ヘッダ部分（本例では、［数バイトのヘッダ］を含み、ＶＯＰヘッダを含む場合もある）を復号した時に、同期マーカであるスタッフィングビットを映像ストリームに残したままとする。
【００５１】
従って、本例の暗号化データ通信システムでは、上記のような同期マーカを設けてヘッダ長を実質的に長くすることにより、暗号化ストリーム中の非ヘッダ部分（本例では、［数バイトのヘッダ］を含み、ＶＯＰヘッダを含む場合もある）にそのときに使用するスタートコード部分（本例では、同期マーカとＶＯＰ又はＶＯＨとの組み合わせ）と同一の値（擬似コード）が現れる確率を小さくすることができる。これにより、例えば、暗号化ストリームを受信側のパーソナルコンピュータで復号する際に、暗号化ストリーム中に含まれる擬似コードを本来のスタートコードであると誤検出する確率を小さくすることができ、画像の再生等の精度を向上させることができる。
【実施例２】
【００５２】
本発明の第２実施例を説明する。
（第２−１の例）
図７（ａ）〜（ｇ）及び図８（ａ）〜（ｅ）には、非ヘッダ部分の後ろに（スタートコード＋同期マーカ）を付加して、（非ヘッダ部分＋スタートコード）を暗号化する方式で、ＶＯＰ単位で暗号化を行う態様例を示してある。なお、同期マーカは、例えば、４バイトから成る。
ここで、本例では、非ヘッダ部分の後に付加する（スタートコード＋同期マーカ）のスタートコードとして、ＶＯＰ（本例において、ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅを示す）を一例として用いるが、他のパターンが用いられてもよい。他の例としては、ＭＰＥＧ−４の場合、ＶＯＨ（本例において、ｖｉｄｅｏ＿ｏｂｊｅｃｔ＿ｓｔａｒｔ＿ｃｏｄｅを示す）や、ＶＯＬ（Ｖｉｄｅｏ  Ｏｂｊｅｃｔ  Ｌａｙｅｒ）ヘッダのスタートコード（“００  ００  ０１  ０２ｈ”）や、Ｕｓｅｒ  ｄａｔａ  ｓｔａｒｔ  ｃｏｄｅ（“００  ００  ０１  Ｂ２ｈ”）や、ＧＯＶ（Ｇｒｏｕｐ  Ｏｆ  Ｖｉｄｅｏ）ヘッダのスタートコード（“００  ００  ０１  Ｂ３ｈ”）などのように、非ヘッダ部分の中に出現することが禁止されたビットパターンで構成されたユニークコードを用いることができる。
【００５３】
まず、図７（ａ）〜（ｇ）を参照して、受信側が暗号化ストリーム中から（同期マーカ＋ＶＯＰ）を正しく検出する場合について説明する。
図７（ａ）には、送信側における暗号化前の映像ストリームの一例を示してある。
図７（ｂ）には、送信側においてＶＯＰデータの後ろにＶＯＰ及び同期マーカ（ＳＹＮＣ）を挿入した映像ストリームの一例を示してある。
図７（ｃ）には、送信側においてデータ（非暗号化データ）及びＶＯＰを暗号化したものの一例を示してある。この暗号化ストリームでは、データとそれに続くＶＯＰの部分が暗号化されて、暗号化データとなっている。なお、本例では、左側に位置するＶＯＰに続く［数バイトのヘッダ］も暗号化されている。
図７（ｄ）には、受信側において暗号化ストリーム中からＶＯＰを検出する様子の一例を示してある。
図７（ｅ）には、受信側において同期マーカ及びＶＯＰの組を検出する様子の一例を示してある。
図７（ｆ）には、受信側においてＶＯＰと同期マーカ及びＶＯＰの組との間のデータを復号化したものの一例を示してある。
図７（ｇ）には、受信側においてＶＯＰデータの後にあるＶＯＰ及び同期マーカを削除したものの一例を示してある。
【００５４】
送信側の動作例を示す。
送信側では、図７（ａ）に示される映像ストリームの中から、４バイトのＶＯＨを検出し、次いで、４バイトのＶＯＰを検出する。そして、次の４バイトのＶＯＰを検出すると、図７（ｂ）に示されるように、この間のデータすなわちＶＯＰデータの後に（ＶＯＰ＋同期マーカ）を挿入し、図７（ｃ）に示されるように、（ＶＯＰデータ＋ＶＯＰ）の部分を暗号鍵で暗号化する。これにより得られた暗号化ストリームをネットワーク２、１３へ出力する。
受信側の動作例を示す。
受信側では、暗号化ストリームの中から４バイトのＶＯＨを検出し、次いで、図７（ｄ）に示されるように、４バイトのＶＯＰを検出する。そして、図７（ｅ）に示されるように、次に計８バイトの（同期マーカ＋ＶＯＰ）を検出すると、図７（ｆ）に示されるように、検出したＶＯＰと隣りの（同期マーカ＋ＶＯＰ）との間のデータを暗号鍵で復号する。
【００５５】
ここで、復号されたデータの最後にスタートコード（本例では、ＶＯＰ）が出現するか否かを調べる。非ヘッダ部分（本例では、［数バイトのヘッダ］やＶＯＰデータ）の中にはスタートコード（本例では、ＶＯＰ）と一致するビット列は出現しないため、復号されたデータの最後にスタートコードが出現すれば、このスタートコードは、送信側において非ヘッダ部分の後ろに挿入された前記（スタートコード＋同期マーカ）のスタートコードであることが把握される。つまり、先に検出した（同期マーカ＋スタートコード）は、暗号化データ中の擬似コードではなく、正しい（同期マーカ＋スタートコード）であることを確認することができる。
そして、受信側では、図７（ｇ）に示されるように、ＶＯＰデータの後にある（ＶＯＰ＋同期マーカ）を削除して、その後ろのストリームを前に詰める。以後、同様な動作を繰り返して行う。
【００５６】
このように、非ヘッダ部分の後ろに（スタートコード＋同期マーカ）を付加して（非ヘッダ部分＋スタートコード）を暗号化することで、暗号化ストリーム中に含まれる擬似コードを本来のスタートコードであると誤検出することを防ぐことができる。
なお、本例のように、受信側で（同期マーカ＋ＶＯＰ）の計８バイトを検出する構成では、例えば符号化レートが２Ｍｂｐｓである時には、暗号化ストリーム中の擬似コードを誤検出する確率は約２３０万年に１回程度と低くなる。具体的には、符号化レートが２Ｍｂｐｓである時、２８×８（ｂｉｔ）／｛２Ｍ（ｂｉｔ／ｓｅｃ）／８｝＝（２６４／２５００００）（ｓｅｃ）≒２３３９７６９（年）≒２３０万年となり、８バイトの擬似コードは、約２３０万年に１回、暗号化ストリーム中に出現する。
【００５７】
次に、図８（ａ）〜（ｅ）を参照して、受信側が暗号化データ中から誤って擬似コードを検出した場合について説明する。
図８（ａ）には、受信側において暗号化データ中の擬似コードを検出する様子の一例を示してある。
図８（ｂ）には、受信側においてＶＯＰと擬似コードとの間のデータを復号したために、誤って復号されたデータが生成される様子の一例を示してある。本例では、暗号化データの一部のみが誤って復号されている。
図８（ｃ）には、受信側において擬似コードが出現したことを検出する様子の一例を示してある。具体的には、非ヘッダ部分の中にはスタートコード（本例では、ＶＯＰ）が存在しないことから、誤って復号されたデータの最後にはスタートコード（本例では、ＶＯＰ）は出現しないため、暗号化データ中の擬似コードを誤って検出したことが判定される。
図８（ｄ）には、受信側において誤って復号したデータを元の暗号化データへ戻す様子の一例を示してある。
図８（ｅ）には、受信側において、再び、暗号化データの中から同期マーカ及びＶＯＰの組を探す様子の一例を示してある。
【００５８】
受信側の動作例を示す。
受信側では、上記と同様にして暗号化ストリームの中から（同期マーカ＋ＶＯＰ）を検索するが、図８（ａ）に示されるように、これと同じ値である擬似コードを検出する。この場合、図８（ｂ）に示されるように、ＶＯＰと擬似コードとの間のデータを暗号鍵で復号する。
ここで、復号されたデータの最後にＶＯＰが出現するか否かを調べる。非ヘッダ部分（本例では、［数バイトのヘッダ］やＶＯＰデータ）の中にはＶＯＰと一致するビット列は出現しないため、もしも復号されたデータの最後にＶＯＰが出現すれば、先に検出した（同期マーカ＋ＶＯＰ）は、暗号化データ中の擬似コードではなく、正しい（同期マーカ＋ＶＯＰ）であることが把握される。しかしながら、本例の場合には、図８（ｃ）に示されるように、復号されたデータの最後にはＶＯＰは出現しない。このため、暗号化データ中の擬似コードを誤って検出したことが判定される。
本例のように、誤って擬似コードを検出した場合には、受信側では、例えば、メモリに一時的に格納しておいた復号前の暗号化データを元の位置に挿入するなどの処理を行うことで、図８（ｄ）に示されるように、誤って復号したデータを元の暗号化データへ戻す。そして、図８（ｅ）に示されるように、誤って検出した擬似コード以降のデータの中から、再び、（同期マーカ＋ＶＯＰ）の計８バイトを探す処理を行う。
【００５９】
このように、本例では、送信側でＶＯＰデータの後に（ＶＯＰ＋同期マーカ）を挿入して（ＶＯＰデータ＋ＶＯＰ）の暗号化を行い、受信側で、暗号化データの復号を行い、復号を行ったデータの最後にＶＯＰが出現するか否かを確認することで、例え、擬似コードが出現したとしても、暗号化データを正しく復号することができないという事態を回避することができる。
【００６０】
（第２−２の例）
図９（ａ）〜（ｇ）には、非ヘッダ部分の後ろに（スタートコード＋同期マーカ）を付加して、（非ヘッダ部分＋スタートコード）を暗号化する方式で、ＶＯＰ単位で暗号化を行う態様例を示してある。なお、同期マーカは、例えば、４バイトから成る。
本例では、受信側において、受信ストリーム中のＶＯＰ（本例において、ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅを示す）の後にある（同期マーカ＋ＶＯＰ）を削除するため、送信側では、送信ストリーム中の非ヘッダ部分の後に付加する（スタートコード＋同期マーカ）のスタートコードとしてＶＯＰを用いる。
【００６１】
受信側が暗号化ストリーム中から（同期マーカ＋ＶＯＰ）を正しく検出する場合について説明する。
図９（ａ）には、送信側における暗号化前の映像ストリームの一例を示してある。
図９（ｂ）には、送信側においてＶＯＰデータの後ろにＶＯＰ及び同期マーカ（ＳＹＮＣ）を挿入した映像ストリームの一例を示してある。
図９（ｃ）には、送信側においてデータ（非暗号化データ）及びＶＯＰを暗号化したものの一例を示してある。この暗号化ストリームでは、データとそれに続くＶＯＰの部分が暗号化されて、暗号化データとなっている。なお、本例では、左側に位置するＶＯＰに続く［数バイトのヘッダ］も暗号化されている。
図９（ｄ）には、受信側において暗号化ストリーム中からＶＯＰを検出する様子の一例を示してある。
図９（ｅ）には、受信側において同期マーカ及びＶＯＰの組を検出する様子の一例を示してある。
図９（ｆ）には、受信側においてＶＯＰと同期マーカ及びＶＯＰの組との間のデータを復号化したものの一例を示してある。
図９（ｇ）には、受信側においてＶＯＰの後にある同期マーカ及びＶＯＰを削除したものの一例を示してある。
【００６２】
送信側の動作例を示す。
送信側では、図９（ａ）に示される映像ストリームの中から、４バイトのＶＯＨ（本例において、ｖｉｄｅｏ＿ｏｂｊｅｃｔ＿ｓｔａｒｔ＿ｃｏｄｅを示す）を検出し、次いで、４バイトのＶＯＰを検出する。そして、次の４バイトのＶＯＰを検出すると、図９（ｂ）に示されるように、この間のデータすなわちＶＯＰデータの後に（ＶＯＰ＋同期マーカ）を挿入し、図９（ｃ）に示されるように、（ＶＯＰデータ＋ＶＯＰ）の部分を暗号鍵で暗号化する。これにより得られた暗号化ストリームをネットワーク２、１３へ出力する。
受信側の動作例を示す。
受信側では、暗号化ストリームの中から４バイトのＶＯＨを検出し、次いで、図９（ｄ）に示されるように、４バイトのＶＯＰを検出する。そして、図９（ｅ）に示されるように、次に計８バイトの（同期マーカ＋ＶＯＰ）を検出すると、図９（ｆ）に示されるように、検出したＶＯＰと隣りの（同期マーカ＋ＶＯＰ）との間のデータを暗号鍵で復号する。
【００６３】
ここで、復号されたデータの最後にスタートコード（本例では、ＶＯＰ）が出現するか否かを調べる。非ヘッダ部分（本例では、［数バイトのヘッダ］やＶＯＰデータ）の中にはスタートコード（本例では、ＶＯＰ）と一致するビット列は出現しないため、復号されたデータの最後にスタートコードが出現すれば、このスタートコードは、送信側において非ヘッダ部分の後ろに挿入された前記（スタートコード＋同期マーカ）のスタートコードであることが把握される。つまり、先に検出した（同期マーカ＋スタートコード）は、暗号化データ中の擬似コードではなく、正しい（同期マーカ＋スタートコード）であることを確認することができる。
そして、受信側では、図９（ｇ）に示されるように、ＶＯＰの後にある（同期マーカ＋ＶＯＰ）を削除して、その後ろのストリームを前に詰める。以後、同様な動作を繰り返して行う。
【００６４】
なお、受信側が暗号化データ中から誤って擬似コードを検出した場合については、例えば、図８（ａ）〜（ｅ）を参照して説明されるのと同様である。
また、ＶＯＨが２回目以降に出現するところでは、上記とは異なる処理が行われ、具体的には、例えば、図９（ｂ）においてＶＯＨの前に（ＶＯＰ＋同期マーカ）を挿入し、図９（ｅ）において（同期マーカ＋ＶＯＨ）を検出し、図９（ｇ）においてＶＯＰデータの後にある（ＶＯＰ＋同期マーカ）を削除する。
このように、非ヘッダ部分の後ろに（スタートコード＋同期マーカ）を付加して（非ヘッダ部分＋スタートコード）を暗号化することで、暗号化ストリーム中に含まれる擬似コードを本来のスタートコードであると誤検出することを防ぐことができる。
【００６５】
（第２−３の例）
図１０（ａ）〜（ｇ）には、スタートコード部分の後ろに（同期マーカ＋スタートコード）を付加して、（非ヘッダ部分＋スタートコード）を暗号化する方式で、ＶＯＰ単位で暗号化を行う態様例を示してある。なお、同期マーカは、例えば、４バイトから成る。また、本例では、スタートコードとしてＶＯＰ（本例において、ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅを示す）が用いられるが、他の例として、ＶＯＨ（本例において、ｖｉｄｅｏ＿ｏｂｊｅｃｔ＿ｓｔａｒｔ＿ｃｏｄｅを示す）や、ＶＯＬヘッダのスタートコードや、Ｕｓｅｒ  ｄａｔａ  ｓｔａｒｔ  ｃｏｄｅや、ＧＯＶヘッダのスタートコードなど、他のヘッダのスタートコードなどが用いられてもよい。
【００６６】
なお、本例では、［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］［数バイトのヘッダ］［ＶＯＰデータ］の並びに［同期マーカ］［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］を挿入して、［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］［同期マーカ］［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］［数バイトのヘッダ］［ＶＯＰデータ］という並びを生成するが、他の例として、［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］［数バイトのヘッダ］［同期マーカ］［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］［ＶＯＰデータ］という並びを生成することも可能である。
【００６７】
受信側が暗号化ストリーム中から（同期マーカ＋ＶＯＰ）を正しく検出する場合について説明する。
図１０（ａ）には、送信側における暗号化前の映像ストリームの一例を示してある。
図１０（ｂ）には、送信側においてＶＯＰの後ろに同期マーカ（ＳＹＮＣ）及びＶＯＰを挿入した映像ストリームの一例を示してある。
図１０（ｃ）には、送信側においてデータ（非暗号化データ）及びＶＯＰを暗号化したものの一例を示してある。この暗号化ストリームでは、データとそれに続くＶＯＰの部分が暗号化されて、暗号化データとなっている。なお、本例では、左側に位置するＶＯＰに続く［数バイトのヘッダ］も暗号化されている。
図１０（ｄ）には、受信側において暗号化ストリーム中からＶＯＰを検出する様子の一例を示してある。
図１０（ｅ）には、受信側において同期マーカ及びＶＯＰの組を検出する様子の一例を示してある。
図１０（ｆ）には、受信側においてＶＯＰと同期マーカ及びＶＯＰの組との間のデータを復号化したものの一例を示してある。
図１０（ｇ）には、受信側においてＶＯＰの後にある同期マーカ及びＶＯＰを削除したものの一例を示してある。
【００６８】
送信側の動作例を示す。
送信側では、図１０（ａ）に示される映像ストリームの中から、４バイトのＶＯＨを検出し、次いで、４バイトのＶＯＰを検出する。そして、次の４バイトのＶＯＰを検出すると、図１０（ｂ）に示されるように、このＶＯＰの後に（同期マーカ＋ＶＯＰ）を挿入し、図１０（ｃ）に示されるように、（ＶＯＰデータ＋ＶＯＰ）の部分を暗号鍵で暗号化する。これにより得られた暗号化ストリームをネットワーク２、１３へ出力する。
受信側の動作例を示す。
受信側では、暗号化ストリームの中から４バイトのＶＯＨを検出し、次いで、図１０（ｄ）に示されるように、４バイトのＶＯＰを検出する。そして、図１０（ｅ）に示されるように、次に計８バイトの（同期マーカ＋ＶＯＰ）を検出すると、図１０（ｆ）に示されるように、検出したＶＯＰと隣りの（同期マーカ＋ＶＯＰ）との間のデータを暗号鍵で復号する。
【００６９】
ここで、復号されたデータの最後にスタートコード（本例では、ＶＯＰ）が出現するか否かを調べる。非ヘッダ部分（本例では、［数バイトのヘッダ］やＶＯＰデータ）の中にはスタートコード（本例では、ＶＯＰ）と一致するビット列は出現しないため、復号されたデータの最後にスタートコードが出現すれば、このスタートコードは、送信側において非ヘッダ部分の後ろに存在していたスタートコードであることが把握される。つまり、先に検出した（同期マーカ＋スタートコード）は、暗号化データ中の擬似コードではなく、正しい（同期マーカ＋スタートコード）であることを確認することができる。
そして、受信側では、図１０（ｇ）に示されるように、ＶＯＰの後にある（同期マーカ＋ＶＯＰ）を削除して、その後ろのストリームを前に詰める。以後、同様な動作を繰り返して行う。
【００７０】
なお、受信側が暗号化データ中から誤って擬似コードを検出した場合については、例えば、図８（ａ）〜（ｅ）を参照して説明されるのと同様である。
また、ＶＯＨが２回目以降に出現するところでは、上記とは異なる処理が行われ、具体的には、例えば、図１０（ｂ）においてＶＯＨの後に（同期マーカ＋ＶＯＰ）を挿入し、図１０（ｃ）において（非暗号化データ＋ＶＯＨ）を暗号化し、図１０（ｇ）においてＶＯＨの後にある（同期マーカ＋ＶＯＰ）を削除する。また、受信側では、暗号化データを復号した際に、復号されたデータの最後にＶＯＨが出現するか否かを調べることとなる。
このように、スタートコードの後ろに（同期マーカ＋スタートコード）を付加して（非ヘッダ部分＋スタートコード）を暗号化することで、暗号化ストリーム中に含まれる擬似コードを本来のスタートコードであると誤検出することを防ぐことができる。
なお、本例では、８バイトの（同期マーカ＋スタートコード）を付加する場合を示したが、例えば、この代わりに、８バイトの同期マーカを付加するような処理としても、正常な動作を行うことが可能である。
【００７１】
（第２−４の例）
図１１（ａ）〜（ｇ）には、スタートコード部分の後ろに（同期マーカ＋スタートコード）を付加して、（非ヘッダ部分＋スタートコード）を暗号化する方式で、ＶＯＰ単位で暗号化を行う態様例を示してある。なお、同期マーカは、例えば、４バイトから成る。
本例では、受信側において、受信ストリーム中のＶＯＰデータの後にある（ＶＯＰ＋同期マーカ）を削除するため、送信側では、送信ストリーム中のスタートコード部分の後に付加する（同期マーカ＋スタートコード）のスタートコードとしてＶＯＰ（本例において、ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅを示す）を用いる。
なお、本例では、［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］［数バイトのヘッダ］［ＶＯＰデータ］の並びに［同期マーカ］［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］を挿入して、［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］［同期マーカ］［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］［数バイトのヘッダ］［ＶＯＰデータ］という並びを生成する。
【００７２】
受信側が暗号化ストリーム中から（同期マーカ＋ＶＯＰ）を正しく検出する場合について説明する。
図１１（ａ）には、送信側における暗号化前の映像ストリームの一例を示してある。
図１１（ｂ）には、送信側においてＶＯＰの後ろに同期マーカ（ＳＹＮＣ）及びＶＯＰを挿入した映像ストリームの一例を示してある。
図１１（ｃ）には、送信側においてデータ（非暗号化データ）及びＶＯＰを暗号化したものの一例を示してある。この暗号化ストリームでは、データとそれに続くＶＯＰの部分が暗号化されて、暗号化データとなっている。なお、本例では、左側に位置するＶＯＰに続く［数バイトのヘッダ］も暗号化されている。
図１１（ｄ）には、受信側において暗号化ストリーム中からＶＯＰを検出する様子の一例を示してある。
図１１（ｅ）には、受信側において同期マーカ及びＶＯＰの組を検出する様子の一例を示してある。
図１１（ｆ）には、受信側においてＶＯＰと同期マーカ及びＶＯＰの組との間のデータを復号化したものの一例を示してある。
図１１（ｇ）には、受信側においてＶＯＰデータの後にあるＶＯＰ及び同期マーカを削除したものの一例を示してある。
【００７３】
送信側の動作例を示す。
送信側では、図１１（ａ）に示される映像ストリームの中から、４バイトのＶＯＨ（本例において、ｖｉｄｅｏ＿ｏｂｊｅｃｔ＿ｓｔａｒｔ＿ｃｏｄｅを示す）を検出し、次いで、４バイトのＶＯＰを検出する。そして、次の４バイトのＶＯＰを検出すると、図１１（ｂ）に示されるように、このＶＯＰの後に（同期マーカ＋ＶＯＰ）を挿入し、図１１（ｃ）に示されるように、（ＶＯＰデータ＋ＶＯＰ）の部分を暗号鍵で暗号化する。これにより得られた暗号化ストリームをネットワーク２、１３へ出力する。
受信側の動作例を示す。
受信側では、暗号化ストリームの中から４バイトのＶＯＨを検出し、次いで、図１１（ｄ）に示されるように、４バイトのＶＯＰを検出する。そして、図１１（ｅ）に示されるように、次に計８バイトの（同期マーカ＋ＶＯＰ）を検出すると、図１１（ｆ）に示されるように、検出したＶＯＰと隣りの（同期マーカ＋ＶＯＰ）との間のデータを暗号鍵で復号する。
【００７４】
ここで、復号されたデータの最後にスタートコード（本例では、ＶＯＰ）が出現するか否かを調べる。非ヘッダ部分（本例では、［数バイトのヘッダ］やＶＯＰデータ）の中にはスタートコード（本例では、ＶＯＰ）と一致するビット列は出現しないため、復号されたデータの最後にスタートコードが出現すれば、このスタートコードは、送信側において非ヘッダ部分の後ろに存在していたスタートコードであることが把握される。つまり、先に検出した（同期マーカ＋スタートコード）は、暗号化データ中の擬似コードではなく、正しい（同期マーカ＋スタートコード）であることを確認することができる。
そして、受信側では、図１１（ｇ）に示されるように、ＶＯＰデータの後にある（ＶＯＰ＋同期マーカ）を削除して、その後ろのストリームを前に詰める。以後、同様な動作を繰り返して行う。
【００７５】
なお、受信側が暗号化データ中から誤って擬似コードを検出した場合については、例えば、図８（ａ）〜（ｅ）を参照して説明されるのと同様である。
また、ＶＯＨが２回目以降に出現するところでは、上記とは異なる処理が行われ、具体的には、例えば、図１１（ｂ）においてＶＯＨの後に（同期マーカ＋ＶＯＨ）を挿入し、図１１（ｃ）において（非暗号化データ＋ＶＯＨ）を暗号化し、図１１（ｅ）において（同期マーカ＋ＶＯＨ）を検出し、図１１（ｇ）においてＶＯＰデータの後にある（ＶＯＨ＋同期マーカ）を削除する。また、受信側では、暗号化データを復号した際に、復号されたデータの最後にＶＯＨが出現するか否かを調べることとなる。
このように、スタートコードの後ろに（同期マーカ＋スタートコード）を付加して（非ヘッダ部分＋スタートコード）を暗号化することで、暗号化ストリーム中に含まれる擬似コードを本来のスタートコードであると誤検出することを防ぐことができる。
【００７６】
（第２−５の例）
図１２（ａ）〜（ｇ）には、非ヘッダ部分の後ろに（スタートコード＋同期マーカ）を付加して、（非ヘッダ部分＋スタートコード）を暗号化する方式で、ＶＯＰ単位で暗号化を行う態様例を示してある。なお、同期マーカは、例えば、４バイトから成る。また、本例では、スタートコードとしてＶＯＰ（本例において、ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅを示す）が用いられるが、他の例として、ＶＯＨ（本例において、ｖｉｄｅｏ＿ｏｂｊｅｃｔ＿ｓｔａｒｔ＿ｃｏｄｅを示す）や、ＶＯＬヘッダのスタートコードや、Ｕｓｅｒ  ｄａｔａ  ｓｔａｒｔ  ｃｏｄｅや、ＧＯＶヘッダのスタートコードなど、他のヘッダのスタートコードなどが用いられてもよい。
【００７７】
受信側が暗号化ストリーム中から（同期マーカ＋ＶＯＰ）を正しく検出する場合について説明する。
図１２（ａ）には、送信側における暗号化前の映像ストリームの一例を示してある。
図１２（ｂ）には、送信側においてＶＯＰデータの後ろにＶＯＰ及び同期マーカ（ＳＹＮＣ）を挿入した映像ストリームの一例を示してある。
図１２（ｃ）には、送信側においてデータ（非暗号化データ）及びＶＯＰを暗号化したものの一例を示してある。この暗号化ストリームでは、データとそれに続くＶＯＰの部分が暗号化されて、暗号化データとなっている。なお、本例では、左側に位置するＶＯＰに続く［数バイトのヘッダ］も暗号化されている。
図１２（ｄ）には、受信側において暗号化ストリーム中からＶＯＰを検出する様子の一例を示してある。
図１２（ｅ）には、受信側において同期マーカ及びＶＯＰの組を検出する様子の一例を示してある。
図１２（ｆ）には、受信側においてＶＯＰと同期マーカ及びＶＯＰの組との間のデータを復号化したものの一例を示してある。
図１２（ｇ）には、受信側においてＶＯＰデータに続くＶＯＰをスタッフィングビット（ｓｔｕｆｆｉｇ  ｂｉｔ）へ変換したものの一例を示してある。
【００７８】
送信側の動作例を示す。
送信側では、図１２（ａ）に示される映像ストリームの中から、４バイトのＶＯＨを検出し、次いで、４バイトのＶＯＰを検出する。そして、次の４バイトのＶＯＰを検出すると、図１２（ｂ）に示されるように、この間のデータすなわちＶＯＰデータの後に（ＶＯＰ＋同期マーカ）を挿入し、図１２（ｃ）に示されるように、（ＶＯＰデータ＋ＶＯＰ）の部分を暗号鍵で暗号化する。これにより得られた暗号化ストリームをネットワーク２、１３へ出力する。
受信側の動作例を示す。
受信側では、暗号化ストリームの中から４バイトのＶＯＨを検出し、次いで、図１２（ｄ）に示されるように、４バイトのＶＯＰを検出する。そして、図１２（ｅ）に示されるように、次に計８バイトの（同期マーカ＋ＶＯＰ）を検出すると、図１２（ｆ）に示されるように、検出したＶＯＰと隣りの（同期マーカ＋ＶＯＰ）との間のデータを暗号鍵で復号する。
【００７９】
ここで、復号されたデータの最後にスタートコード（本例では、ＶＯＰ）が出現するか否かを調べる。非ヘッダ部分（本例では、［数バイトのヘッダ］やＶＯＰデータ）の中にはスタートコード（本例では、ＶＯＰ）と一致するビット列は出現しないため、復号されたデータの最後にスタートコードが出現すれば、このスタートコードは、送信側において非ヘッダ部分の後ろに挿入された前記（スタートコード＋同期マーカ）のスタートコードであることが把握される。つまり、先に検出した（同期マーカ＋スタートコード）は、暗号化データ中の擬似コードではなく、正しい（同期マーカ＋スタートコード）であることを確認することができる。
そして、受信側では、図１２（ｇ）に示されるように、ＶＯＰデータの後にあるＶＯＰをスタッフィングビットへ変換する。このようにスタッフィングビットへの変換を行うと、受信側では、付加したスタートコード（つまり、ここでは、スタッフィングビット）を削除してその後ろを前に詰める必要を無くすことが可能である。受信側では、以後、同様な動作を繰り返して行う。
【００８０】
ここで、スタッフィングビットは、０、０１、０１１、０１１１、・・・、０１１１１１１１、・・・というパターンであり、逆方向から復号した時に、“０”を見つけることで区切りを検出することができるため、スタッフィングビットが付加された映像ストリームを伸長する場合にはスタッフィングビットが無視される。
そこで、本例では、例えば、スタッフィングビットの値を０ｘ７ＦＦＦＦＦＦＦ（４バイト）とし、同期マーカの値を０ｘＦＦＦＦＦＦＦＦ（４バイト）とすることで、（スタッフィングビット＋同期マーカ）の値を０ｘ７ＦＦＦＦＦＦＦ  ＦＦＦＦＦＦＦＦ（８バイト）とする。この場合、この（スタッフィングビット＋同期マーカ）もスタッフィングビットとなり、その削除を不要とすることができる。
【００８１】
なお、受信側が暗号化データ中から誤って擬似コードを検出した場合については、例えば、図８（ａ）〜（ｅ）を参照して説明されるのと同様である。
このように、非ヘッダ部分の後ろに（スタートコード＋同期マーカ）を付加して（非ヘッダ部分＋スタートコード）を暗号化することで、暗号化ストリーム中に含まれる擬似コードを本来のスタートコードであると誤検出することを防ぐことができる。
【００８２】
（第２−６の例）
図１３（ａ）〜（ｇ）には、スタートコード部分の後ろに（同期マーカ＋スタートコード）を付加して、（非ヘッダ部分＋スタートコード）を暗号化する方式で、ＶＯＰ単位で暗号化を行う態様例を示してある。なお、同期マーカは、例えば、４バイトから成る。
本例では、受信側において、受信ストリーム中のＶＯＰデータの後にあるＶＯＰ（本例において、ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅを示す）をスタッフィングビットへ変換するため、送信側では、送信ストリーム中のスタートコード部分の後に付加する（同期マーカ＋スタートコード）のスタートコードとしてＶＯＰを用いる。
なお、本例では、［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］［数バイトのヘッダ］［ＶＯＰデータ］の並びに［同期マーカ］［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］を挿入して、［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］［同期マーカ］［ｖｏｐ＿ｓｔａｒｔ＿ｃｏｄｅ］［数バイトのヘッダ］［ＶＯＰデータ］という並びを生成する。
【００８３】
受信側が暗号化ストリーム中から（同期マーカ＋ＶＯＰ）を正しく検出する場合について説明する。
図１３（ａ）には、送信側における暗号化前の映像ストリームの一例を示してある。
図１３（ｂ）には、送信側においてＶＯＰの後ろに同期マーカ（ＳＹＮＣ）及びＶＯＰを挿入した映像ストリームの一例を示してある。
図１３（ｃ）には、送信側においてデータ（非暗号化データ）及びＶＯＰを暗号化したものの一例を示してある。この暗号化ストリームでは、データとそれに続くＶＯＰの部分が暗号化されて、暗号化データとなっている。なお、本例では、左側に位置するＶＯＰに続く［数バイトのヘッダ］も暗号化されている。
図１３（ｄ）には、受信側において暗号化ストリーム中からＶＯＰを検出する様子の一例を示してある。
図１３（ｅ）には、受信側において同期マーカ及びＶＯＰの組を検出する様子の一例を示してある。
図１３（ｆ）には、受信側においてＶＯＰと同期マーカ及びＶＯＰの組との間のデータを復号化したものの一例を示してある。
図１３（ｇ）には、受信側においてＶＯＰデータに続くＶＯＰをスタッフィングビット（ｓｔｕｆｆｉｇ  ｂｉｔ）へ変換したものの一例を示してある。
【００８４】
送信側の動作例を示す。
送信側では、図１３（ａ）に示される映像ストリームの中から、４バイトのＶＯＨ（本例において、ｖｉｄｅｏ＿ｏｂｊｅｃｔ＿ｓｔａｒｔ＿ｃｏｄｅを示す）を検出し、次いで、４バイトのＶＯＰを検出する。そして、次の４バイトのＶＯＰを検出すると、図１３（ｂ）に示されるように、このＶＯＰの後に（同期マーカ＋ＶＯＰ）を挿入し、図１３（ｃ）に示されるように、（ＶＯＰデータ＋ＶＯＰ）の部分を暗号鍵で暗号化する。これにより得られた暗号化ストリームをネットワーク２、１３へ出力する。
受信側の動作例を示す。
受信側では、暗号化ストリームの中から４バイトのＶＯＨを検出し、次いで、図１３（ｄ）に示されるように、４バイトのＶＯＰを検出する。そして、図１３（ｅ）に示されるように、次に計８バイトの（同期マーカ＋ＶＯＰ）を検出すると、図１３（ｆ）に示されるように、検出したＶＯＰと隣りの（同期マーカ＋ＶＯＰ）との間のデータを暗号鍵で復号する。
【００８５】
ここで、復号されたデータの最後にスタートコード（本例では、ＶＯＰ）が出現するか否かを調べる。非ヘッダ部分（本例では、［数バイトのヘッダ］やＶＯＰデータ）の中にはスタートコード（本例では、ＶＯＰ）と一致するビット列は出現しないため、復号されたデータの最後にスタートコードが出現すれば、このスタートコードは、送信側において非ヘッダ部分の後ろに存在していたスタートコードであることが把握される。つまり、先に検出した（同期マーカ＋スタートコード）は、暗号化データ中の擬似コードではなく、正しい（同期マーカ＋スタートコード）であることを確認することができる。
そして、受信側では、図１３（ｇ）に示されるように、ＶＯＰデータの後にあるＶＯＰをスタッフィングビットへ変換する。このようにスタッフィングビットへの変換を行うと、受信側では、スタートコード（つまり、ここでは、スタッフィングビット）を削除してその後ろを前に詰める必要を無くすことが可能である。受信側では、以後、同様な動作を繰り返して行う。
【００８６】
なお、受信側が暗号化データ中から誤って擬似コードを検出した場合については、例えば、図８（ａ）〜（ｅ）を参照して説明されるのと同様である。
また、ＶＯＨが２回目以降に出現するところでは、上記とは異なる処理が行われ、具体的には、例えば、図１３（ｂ）においてＶＯＨの後に（同期マーカ＋ＶＯＨ）を挿入し、図１３（ｃ）において（非暗号化データ＋ＶＯＨ）を暗号化し、図１３（ｅ）において（同期マーカ＋ＶＯＨ）を検出し、図１３（ｇ）においてＶＯＰデータの後にあるＶＯＨをスタッフィングビットへ変更する。また、受信側では、暗号化データを復号した際に、復号されたデータの最後にＶＯＨが出現するか否かを調べることとなる。
このように、スタートコードの後ろに（同期マーカ＋スタートコード）を付加して（非ヘッダ部分＋スタートコード）を暗号化することで、暗号化ストリーム中に含まれる擬似コードを本来のスタートコードであると誤検出することを防ぐことができる。
【００８７】
（第２−７の例）
例えば、上記した（第２−１の例）や（第２−２の例）や（第２−５の例）では、送信側において、ＶＯＰデータの後ろにＶＯＰを挿入し、当該ＶＯＰデータ及び当該ＶＯＰを暗号化している。
本例では、このような処理を（例えば同期マーカとは無関係に）独立して行う構成とする。また、受信側において、このように挿入されたＶＯＰをスタッフィングビットへ変換する構成とすることもできる。
本例のような構成においても、復号したデータの最後にＶＯＰが現れるか否かを判定することにより、復号時に検出されたスタートコード部分が正しいものであるか或いは擬似コードであるかを判定することができる。
【００８８】
（第２−８の例）
例えば、上記した（第２−１の例）や（第２−５の例）や（第２−７の例）では、送信側において映像ストリームに挿入する同期マーカ及びスタートコード（或いは、（第２−７の例）では、挿入するスタートコード）の当該スタートコードとしてＶＯＰを用いたが、このスタートコードとしては、その代わりに、他のユニークコードなどを用いることも可能である。
本例では、このスタートコードの代わりとして、ＶＯＰ以外のデータを用いた構成とする。
本例のような構成においても、例えば、予め送信側と受信側にこのコードとして同一のコード（同一のデータ）が設定されることにより、このコードを使用して処理を行うことができる。
【００８９】
（動作処理の例）
図１４を参照して、本例の暗号化データ通信システムにおいて行われる動作処理の一例を示す。
送信側の動作処理例を示す。
送信側では、エンコーダ処理Ｔ１により圧縮して出力される映像ストリームを、スタートコードと同期マーカの挿入処理Ｔ２へ送る。スタートコードと同期マーカの挿入処理Ｔ２においては、上記の各例に示されるように、映像ストリームの所定の位置にスタートコードや同期マーカを付加する。このようにしてスタートコードや同期マーカが付加された映像ストリームを、暗号処理Ｔ３へ送る。暗号処理Ｔ３においては、この映像ストリームに対して暗号化を行う。暗号化された映像ストリーム（暗号化ストリーム）は、ネットワーク処理Ｔ１１を介して受信側へ送られる。
【００９０】
受信側の動作処理例を示す。
受信側では、受信した暗号化された映像ストリーム（暗号化ストリーム）を、スタートコード検出処理Ｔ２１へ送る。スタートコード検出処理Ｔ２１においては、暗号化ストリームの中から、ＶＯＨやＶＯＰや（同期マーカ＋ＶＯＰ）を検出する。復号処理Ｔ２２においては、暗号化ストリームに対して、ＶＯＰと（同期マーカ＋ＶＯＰ）との間のデータを復号する。判定処理Ｔ２３においては、復号された映像ストリームにおいて、復号したデータの最後にＶＯＰが出現するか否かを判定し、ＶＯＰが出現したことを判定した場合には、スタートコード検出処理Ｔ２１において正しく（同期マーカ＋ＶＯＰ）を検出したと判断する。この場合、判定処理Ｔ２３においては、復号された映像ストリームを、スタートコードと同期マーカの削除・置き換え処理Ｔ２４へ送る。
【００９１】
一方、判定処理Ｔ２３により、復号された映像ストリームにおいて、復号したデータの最後にＶＯＰが出現しないことを判定した場合には、スタートコード検出処理Ｔ２１において誤って擬似コードを検出したと判断し、スタートコード検出処理Ｔ２１に対して、誤って復号したデータを元の暗号化データへ戻すように命令を送る。この場合、スタートコード検出処理Ｔ２１においては、この命令を受信したことに応じて、例えばメモリ（図示せず）に格納しておいた復号前の暗号化データを元の位置に挿入し、誤って検出した擬似コード以降の映像ストリームの中から、ＶＯＨやＶＯＰや（同期マーカ＋ＶＯＰ）を検出することを行う。
スタートコードと同期マーカの削除・置き換え処理Ｔ２４においては、上記の各例に示されるように、復号された映像ストリームに対して、スタートコードと同期マーカの削除を行い、或いは、スタートコードをスタッフィングビットへ置き換えて、デコーダ処理Ｔ２５へ送る。デコーダ処理Ｔ２５においては、復号された映像ストリームを伸長する。
【００９２】
図１５を参照して、送信側において行われる動作処理の手順の一例を示す。
本例では、図７（ａ）〜（ｇ）及び図８（ａ）〜（ｅ）に示される場合を例として示す。
なお、本例において、変数ａは状態変数であり、この値に応じて動作が切り替わる。
まず、動作処理が開始（スタート）すると、状態変数ａを０に初期化する（ステップＳ１）。次いで、映像ストリームに対するスタートコード検出処理を行う（ステップＳ２）。
図７（ａ）に示されるような映像ストリームの中からＶＯＨを検出すると（ステップＳ３）、状態変数ａの値を検査（チェック）する（ステップＳ４）。ここでは、ａ＝０であるため、この値ａを１にした後に（ステップＳ５）、再び映像ストリームに対するスタートコード検出処理を行う（ステップＳ２）。
【００９３】
次に、映像ストリームの中からＶＯＰを検出（１回目のＶＯＰを検出）すると（ステップＳ９）、状態変数ａの値をチェックする（ステップＳ１０）。ここでは、ａ＝１であるため、この値ａを２にした後に（ステップＳ１４）、再び映像ストリームに対するスタートコード検出処理を行う（ステップＳ２）。
次に、映像ストリームの中からＶＯＰを検出（２回目以降のＶＯＰの検出）すると（ステップＳ９）、状態変数ａの値をチェックする（ステップＳ１０）。ここでは、ａ＝２であるため、図７（ｂ）に示されるように、映像ストリームにＶＯＰと同期マーカを挿入する（ステップＳ１１）。次に、図７（ｃ）に示されるように、（ＶＯＰデータ＋挿入したＶＯＰ）を暗号化する（ステップＳ１２）。次に、この暗号化データを含む（ＶＯＨから同期マーカまでの映像ストリーム）をネットワークへ出力して（ステップＳ１３）、再び映像ストリームに対するスタートコード検出処理を行う（ステップＳ２）。
【００９４】
これ以降、映像ストリームの中からＶＯＰを検出すると（ステップＳ９）、状態変数ａの値をチェックし（ステップＳ１０）、ここではａ＝２であるため、映像ストリームにＶＯＰと同期マーカを挿入して（ステップＳ１１）、（ＶＯＰデータ＋挿入したＶＯＰ）を暗号化して（ステップＳ１２）、この暗号化データを含む（ＶＯＰから同期マーカまでの映像ストリーム）をネットワークへ出力して（ステップＳ１３）、再び映像ストリームに対するスタートコード検出処理を行う（ステップＳ２）、ことを繰り返して実行する。
【００９５】
そして、映像ストリームの中からＶＯＨを検出すると（ステップＳ３）、状態変数ａの値をチェックする（ステップＳ４）。ここでは、ａ＝２であるため、映像ストリームにＶＯＰと同期マーカを挿入し（ステップＳ６）、（ＶＯＰデータ＋挿入したＶＯＰ）を暗号化し（ステップＳ７）、この暗号化データを含む（ＶＯＰから同期マーカまでの映像ストリーム）をネットワークへ出力する（ステップＳ８）。その後、状態変数ａを１にして（ステップＳ５）、再び映像ストリームに対するスタートコード検出処理を行う（ステップＳ２）。
以後、以上と同様な動作処理を繰り返して行う。
【００９６】
図１６及び図１７を参照して、受信側において行われる動作処理の手順の一例を示す。
本例では、図７（ａ）〜（ｇ）及び図８（ａ）〜（ｅ）に示される場合を例として示す。
なお、本例において、変数ａは状態変数であり、この値に応じて動作が切り替わる。
受信側では、動作処理が開始（スタート）すると、状態変数ａを０に初期化する（ステップＳ２１）。次いで、暗号化された映像ストリーム（暗号化ストリーム）に対するスタートコード検出処理を行う（ステップＳ２２）。図７（ｄ）に示されるような暗号化ストリームの中からＶＯＨを検出すると（ステップＳ２３）、状態変数ａの値をチェックする（ステップＳ２４）。ここでは、ａ＝０であるため、この値ａを１にした後に（ステップＳ２５）、再び暗号化ストリームに対するスタートコード検出処理を行う（ステップＳ２２）。
【００９７】
次に、状態変数ａの値が１である時に（ステップＳ２７）、暗号化ストリームの中からＶＯＰを検出（１回目のＶＯＰを検出）すると（ステップＳ２８）、状態変数ａの値を２にした後に（ステップＳ２９）、再び暗号化ストリームに対するスタートコード検出処理を行う（ステップＳ２２）。
次に、状態変数ａの値が２である時に（ステップＳ２７）、図７（ｅ）に示されるように、暗号化ストリームの中から（同期マーカ＋ＶＯＰ）を検出（２回目以降のＶＯＰを検出）すると（ステップＳ３０）、所定の処理Ａを行う（ステップＳ３１）。
【００９８】
処理Ａにおいては、図７（ｆ）に示されるように、ＶＯＰと（同期マーカ＋ＶＯＰ）との間のデータを復号し（ステップＳ４１）、復号されたデータの最後がスタートコード（本例では、ＶＯＰ）であれば（ステップＳ４２）、正しく（同期マーカ＋ＶＯＰ）を検出したため、図７（ｇ）に示されるように、映像ストリームから復号されたデータの最後にあるＶＯＰと同期マーカを削除した後に（ステップＳ４４）、（ＶＯＨからＶＯＰデータまでの映像ストリーム）をデコーダ１５へ送る（ステップＳ４５）。なお、図１２（ａ）〜（ｇ）や図１３（ａ）〜（ｇ）に示される例では、復号されたデータの最後にあるＶＯＰをスタッフィングビットへ置き換えることを行い（ステップＳ４４）、（ＶＯＨから同期マーカまでの映像ストリーム）をデコーダ１５へ送る（ステップＳ４５）。一方、復号されたデータの最後がスタートコード（本例では、ＶＯＰ）でなければ（ステップＳ４２）、誤って擬似コードを検出したため、復号したデータを元の暗号化データへ戻す（ステップＳ４３）
このような処理Ａを行った後に、再び暗号化ストリームに対するスタートコード検出処理を行う（ステップＳ２２）。
【００９９】
これ以降、暗号化ストリームの中から（同期マーカ＋ＶＯＰ）を検出すると（ステップＳ３０）、処理Ａを行う（ステップＳ３１）。処理Ａにおいては、上記と同様に、ＶＯＰと（同期マーカ＋ＶＯＰ）との間のデータを復号し（ステップＳ４１）、復号されたデータの最後がスタートコード（本例では、ＶＯＰ）であれば（ステップＳ４２）、正しく（同期マーカ＋ＶＯＰ）を検出したため、映像ストリームから復号されたデータの最後にあるＶＯＰと同期マーカを削除した後に（ステップＳ４４）、（ＶＯＰからＶＯＰデータまでの映像ストリーム）をデコーダ１５へ送る（ステップＳ４５）。なお、図１２（ａ）〜（ｇ）や図１３（ａ）〜（ｇ）に示される例では、復号されたデータの最後にあるＶＯＰをスタッフィングビットへ置き換えることを行い（ステップＳ４４）、（ＶＯＰから同期マーカまでの映像ストリーム）をデコーダ１５へ送る（ステップＳ４５）。
この後、再び暗号化ストリームに対するスタートコード検出処理を行う（ステップＳ２２）。
【０１００】
次に、暗号化ストリームの中からＶＯＨを検出すると（ステップＳ２３）、状態変数ａの値をチェックする（ステップＳ２４）。ここでは、ａ＝２であるため、上記と同様な処理Ａ’を行う（ステップＳ２６）。
処理Ａ’においては、上記と同様に、ＶＯＰと（同期マーカ＋ＶＯＨ）との間のデータを復号し、復号されたデータの最後がスタートコード（本例では、ＶＯＰ）であれば、正しく（同期マーカ＋ＶＯＨ）を検出したため、映像ストリームから復号されたデータの最後にあるＶＯＰと同期マーカを削除した後に、（ＶＯＰからＶＯＰデータまでの映像ストリーム）をデコーダ１５へ送る。なお、図１２（ａ）〜（ｇ）や図１３（ａ）〜（ｇ）に示される例では、復号されたデータの最後にあるＶＯＰをスタッフィングビットへ置き換えることを行い、（ＶＯＰから同期マーカまでの映像ストリーム）をデコーダ１５へ送る。
この後、状態変数ａを１にし（ステップＳ２５）、再び暗号化ストリームに対するスタートコード検出処理を行う（ステップＳ２２）。
以後、以上と同様な動作処理を繰り返して行う。
【０１０１】
以上の各例に示されるように、本例の暗号化データ通信システムでは、送信側において、映像ストリームの非ヘッダ部分の後にスタートコード及び同期マーカ（或いは、スタートコードのみ）を挿入し、当該非ヘッダ部分及び当該スタートコードを暗号化する。或いは、本例の暗号化データ通信システムでは、送信側において、映像ストリームのスタートコード部分（ここで、スタートコード部分Ｐと言う）の後に同期マーカ及びスタートコードを挿入し、当該非ヘッダ部分及び当該スタートコード部分（スタートコード部分Ｐ）を暗号化する。なお、同期マーカとしては、例えば、４バイトのデータ（０ｘＸＸ  ＸＸ  ＸＸ  ＸＸ）が用いられ、一例として、スタッフィングビットを用いることも可能である。
【０１０２】
また、本例の暗号化データ通信システムでは、受信側において、暗号化データを復号した時に、非ヘッダ部分の後にあるスタートコード及び同期マーカ（或いは、スタートコードのみ）を削除する。或いは、本例の暗号化データ通信システムでは、受信側において、暗号化データを復号した時に、スタートコードの後にある同期マーカ及びスタートコード（或いは、スタートコードのみ）を削除する。或いは、本例の暗号化データ通信システムでは、受信側において、暗号化データを復号した時に、非ヘッダ部分の後にあるスタートコードをスタッフィングビットへ置き換える。
また、本例の暗号化データ通信システムでは、受信側において、暗号化データを復号した時に、復号したデータの最後にスタートコードが現れた場合には、正しい同期マーカ及びスタートコードの組を検出して復号したと判定する一方、復号したデータの最後にスタートコードが現れない場合には、擬似コードを検出して復号したと判定して、当該復号したデータを元の暗号化データへ戻して、再び同期マーカ及びスタートコードの組を検索する。
【０１０３】
従って、本例の暗号化データ通信システムでは、例えば、上記のような同期マーカを設けてスタートコード長を実質的に長くすることにより、暗号化ストリーム中の非ヘッダ部分（本例では、［数バイトのヘッダ］を含み、ＶＯＰヘッダを含む場合がある）にそのときに使用するスタートコード部分（本例では、同期マーカとＶＯＰとの組み合わせ）と同一の値（擬似コード）が現れる確率を小さくすることができる。また、本例の暗号化データ通信システムでは、例えば、復号時に、正しい同期マーカ及びスタートコード（或いは、スタートコードのみ）を検出したか否かを判定することにより、擬似コードを誤検出したまま放置することを防ぐことができる。これにより、例えば、暗号化ストリームを受信側のパーソナルコンピュータで復号する際に、暗号化ストリーム中に含まれる擬似コードを本来のスタートコードであると誤検出することを防ぐことができ、画像の再生等の精度を向上させることができる。
【０１０４】
なお、第２実施例では、主としてＶＯＰ単位で暗号化を行う場合を示したが、例えば、上記した第１実施例の場合と同様に、ＶＯＨ単位で暗号化を行う態様に適用して実施することもできる。
また、第２実施例では、「判定用マーカ（本例では、スタートコード）と同期マーカとスタートコードの並び」を使用する場合を示したが、例えば、「判定用マーカ（例えば、スタートコード）とスタートコードと同期マーカの並び」を使用することもでき、つまり、同期マーカの挿入位置としては、スタートコードの前ばかりではなく、スタートコードの後ろでもよい。但し、図１２や図１３に示されるようにスタッフィングビットへの変換が行われる場合には、「判定用マーカ（本例では、スタートコードであり、スタッフィングビットへ変換される）と同期マーカとスタートコードの並び」を使用する。
【０１０５】
ここで、本発明に係る暗号化データ通信システムや送信側装置や受信側装置などの構成としては、必ずしも以上に示したものに限られず、種々な構成が用いられてもよい。また、本発明は、例えば、本発明に係る処理を実行する方法或いは方式や、このような方法や方式を実現するためのプログラムや当該プログラムを記録する記録媒体などとして提供することも可能であり、また、種々な装置やシステムとして提供することも可能である。
また、本発明の適用分野としては、必ずしも以上に示したものに限られず、本発明は、種々な分野に適用することが可能なものである。例えば、本発明を映像の監視システムなどに適用することもできる。
【０１０６】
また、以上では、ＭＰＥＧ−４の符号化方式に本発明を適用した場合を示したが、例えば、ＭＰＥＧ−２やＨ．２６４などの他の符号化方式に本発明を適用することも可能である。なお、ＭＰＥＧ−４におけるスタッフィングビットは、ＭＰＥＧ−２においてはスタッフィングバイトに相当し、Ｈ．２６４においては同様な機能としてゼロバイト等を用いることができる。
【０１０７】
また、本発明に係る暗号化データ通信システムや送信側装置や受信側装置などにおいて行われる各種の処理としては、例えばプロセッサやメモリ等を備えたハードウエア資源においてプロセッサがＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に格納された制御プログラムを実行することにより制御される構成が用いられてもよく、また、例えば当該処理を実行するための各機能手段が独立したハードウエア回路として構成されてもよい。
また、本発明は上記の制御プログラムを格納したフロッピー（登録商標）ディスクやＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ等のコンピュータにより読み取り可能な記録媒体や当該プログラム（自体）として把握することもでき、当該制御プログラムを当該記録媒体からコンピュータに入力してプロセッサに実行させることにより、本発明に係る処理を遂行させることができる。
【図面の簡単な説明】
【０１０８】
【図１】本発明の実施例に係る暗号化データ通信システムの一例を示す図である。
【図２】暗号化データ通信システムの構成例を示す図である。
【図３】ＶＯＰ単位の暗号化において暗号化した非ヘッダ部分の後ろに同期マーカを付加する態様の一例を示す図である。
【図４】ＶＯＨ単位の暗号化において暗号化した非ヘッダ部分の後ろに同期マーカを付加する態様の一例を示す図である。
【図５】ＶＯＰ単位の暗号化において暗号化した非ヘッダ部分の後ろに同期マーカとしてスタッフィングビットを付加する態様の一例を示す図である。
【図６】ＶＯＨ単位の暗号化において暗号化した非ヘッダ部分の後ろに同期マーカとしてスタッフィングビットを付加する態様の一例を示す図である。
【図７】ＶＯＰ単位の暗号化において非ヘッダ部分の後ろにスタートコード及び同期マーカを付加して非ヘッダ部分及びスタートコードを暗号化する態様の一例を示す図である。
【図８】ＶＯＰ単位の暗号化において非ヘッダ部分の後ろにスタートコード及び同期マーカを付加して非ヘッダ部分及びスタートコードを暗号化する態様の一例を示す図である。
【図９】ＶＯＰ単位の暗号化において非ヘッダ部分の後ろにスタートコード及び同期マーカを付加して非ヘッダ部分及びスタートコードを暗号化する態様の他の一例を示す図である。
【図１０】ＶＯＰ単位の暗号化においてスタートコードの後ろに同期マーカ及びスタートコードを付加して非ヘッダ部分及びスタートコードを暗号化する態様の一例を示す図である。
【図１１】ＶＯＰ単位の暗号化においてスタートコードの後ろに同期マーカ及びスタートコードを付加して非ヘッダ部分及びスタートコードを暗号化する態様の他の一例を示す図である。
【図１２】ＶＯＰ単位の暗号化において非ヘッダ部分の後ろにスタートコード及び同期マーカを付加して非ヘッダ部分及びスタートコードを暗号化する態様の他の一例を示す図である。
【図１３】ＶＯＰ単位の暗号化においてスタートコードの後ろに同期マーカ及びスタートコードを付加して非ヘッダ部分及びスタートコードを暗号化する態様の他の一例を示す図である。
【図１４】暗号化データ通信システムにより行われる動作処理の一例を示す図である。
【図１５】送信側により行われる動作処理の手順の一例を示す図である。
【図１６】受信側により行われる動作処理の手順の一例を示す図である。
【図１７】受信側により行われる動作処理の手順の一例を示す図である。
【図１８】映像ストリームの暗号化及び復号の態様例を示す図である。
【図１９】暗号化ストリーム中の擬似コードの誤検出の態様例を示す図である。
【符号の説明】
【０１０９】
１・・ネットワークカメラ、  ２、１３・・ネットワーク、  ３・・端末装置、  １１・・エンコーダ、  １２・・暗号化部、  １４・・復号部、  １５・・デコーダ、  ２１、３１・・初期ベクトル部、  ２２、３２・・鍵部、  ２３、３３・・乱数発生器、  ２４、３４・・演算器、
【図１】
2006279665.tif 000003
【図２】
2006279665.tif 000004
【図３】
2006279665.tif 000005
【図４】
2006279665.tif 000006
【図５】
2006279665.tif 000007
【図６】
2006279665.tif 000008
【図７】
2006279665.tif 000009
【図８】
2006279665.tif 000010
【図９】
2006279665.tif 000011
【図１０】
2006279665.tif 000012
【図１１】
2006279665.tif 000013
【図１２】
2006279665.tif 000014
【図１３】
2006279665.tif 000015
【図１４】
2006279665.tif 000016
【図１５】
2006279665.tif 000017
【図１６】
2006279665.tif 000018
【図１７】
2006279665.tif 000019
【図１８】
2006279665.tif 000020
【図１９】
2006279665.tif 000021