Low complexity encryption method for the encoded contents by rateless

申请号 JP2010501002 申请日 2008-03-27 公开(公告)号 JP2010524014A 公开(公告)日 2010-07-15
申请人 株式会社エヌ・ティ・ティ・ドコモ; 发明人 ショーン, エー. ラムプラシャド,;
摘要 レートレス符号によってコード化された内容を保護する低複雑性方法に関して、方法及び装置が本明細書で開示され、ここで、レートレスコード化パケットのサブセットのみを暗号化すれば十分であることに留意されたい。 一実施形態では、この方法は、データブロックの第1のセットに対してレートレスコード化を行って、レートレス符号化データブロックを生成するステップと、レートレス符号化データブロックそれぞれに関する次数値に基づいて、レートレス符号化データブロックのサブセットに対して暗号化を行うステップとを含む。
【選択図】図1
权利要求
  • データブロックの第1のセットに対してレートレスコード化を行って、レートレス符号化データブロックを生成するステップと、
    前記レートレス符号化データブロックそれぞれに関する次数値に基づいて、前記レートレス符号化データブロックのサブセットに対して暗号化を行うステップと を含む方法。
  • データブロックの第1のセットに対してレートレスコード化を行って、レートレス符号化データブロックを生成するレートレスコーダと、
    前記レートレス符号化データブロックそれぞれに関する次数値に基づいて、前記レートレス符号化データブロックのサブセットに対して暗号化を行うための暗号化モジュールと を備える装置。
  • システムによって実行されるときに、
    データブロックの第1のセットに対してレートレスコード化を行って、レートレス符号化データブロックを生成するステップと、
    前記レートレス符号化データブロックそれぞれに関する次数値に基づいて、前記レートレス符号化データブロックのサブセットに対して暗号化を行うステップと を含む方法をシステムに行わせる命令を記憶する1つ又は複数のコンピュータ可読記憶媒体を有する製造物品。
  • コード化ブロックそれぞれに関する次数値に基づいて、複数のコード化ブロックのサブセットを解読するための解読モジュールと、
    前記解読モジュールによって解読を行われたコード化ブロックの前記サブセットと、前記解読モジュールによって解読を行われなかった前記複数のコード化ブロックの他のコード化ブロックとに対してレートレス復号化を行うためのデコーダと を備える装置。
  • 说明书全文

    優先権

    [0001]本特許出願は、2007年3月30日出願の「A Low Complexity Encryption Method For Content That Is Coded By A Rateless Code」という名称の対応する米国特許仮出願第60/909225号明細書に対する優先権を主張するものであり、その仮出願を参照として組み込む。

    [0002]本発明は、暗号化の分野に関し、より詳細には、本発明は、レートレスコーダによってコード化された内容に対して暗号化を行うことに関する。

    [0003]レートレス符号は、伝送中の損失に対して情報をよりロバストにするために、又は様々な伝送シナリオに合うように情報を修正可能にするために、伝送前に情報をコード化することができる手段を提供し、それにより、内容は、非同期で、及び/又は伝送損失統計の事前の知識なしで、複数のユーザによって受信される。 具体的には、レートレス符号は、従来のブロック畳み込み符号など「固定レート符号」と同様に、情報の「コード化」シンボルを生成する。 本明細書において、シンボルは、ビット、バイト、パケットなどであってよい。 コード化は、コード化シンボルの適切なサブセットのみを使用して受信者が元の内容の或る有限量又はすべてを再構成することができるように行われ、即ち、「コード化」シンボルが伝送中に損失されうるが、それでも元の内容に関する情報は保存される。 レートレス符号は、シンボルのどの適切な1つ又は複数のサブセットが受信されうるか、及び/又はどれが損失されうるかを事前に知らずに、オンデマンドで、コード化シンボルの構成を可能にする。

    [0004]例えば、「K」バイトの或る元の内容に関して、固定レート符号によって、「N」コード化バイト(ここで、N>K)のセットを生成することができる。 そのようなコード化バイトは冗長を含み、それによりユーザは、Kコード化バイトの任意のサブセットを使用して、(最大距離分離符号と呼ばれる最も良く機能する符号に関して)元の内容を再構成することができる。 これは、Nコード化バイトすべてがユーザに伝送され、「M」コード化バイト(ここで、M≦(N−K))が伝送中に失われる場合に、ユーザが依然として元の内容を回復することができることを意味する。 そのような用途では、レートレス符号及び固定レート符号は、損失が生じた際に情報を保護することができる能を前提として、広範な種類のいわゆる誤り/消失訂正符号を形成する。

    [0005]固定レート符号は、所与の符号に関して、既知の値の比「K/N」を生成するように設計される。 この比は、固定レート符号の「レート」である。 理想/最良設定では、これは、N個のシンボルからなるコード化された内容において、割合(N−K)/Nのシンボル損失を訂正できるようにする。 また、誤り検出と誤り訂正とが、そのような符号によって提供される連合機能であることもある。 また、符号は、誤り/消失訂正能力がより低いこともあり、即ち、割合「F」≦(N−K)/Kの誤りしか確実に訂正することができないこともある。

    [0006]レートレス符号は、システムが、有限量「K」の元の内容を得て、実質的に無限数の「コード化」ブロックを生成して、1人又は複数のユーザに伝送することができる手段を提供する。 この場合、コード化ブロックの「レート」又は固定数「N」の概念が存在しない。 この手法は、1人又は複数のユーザへのコード化シンボルの伝送が調整されない、例えば、送信が1つ又は複数の送信機からのものであり、及び/又は複数の受信機が同じ内容を異なる期間にわたって受信するシナリオで、固定レート符号に勝る基本的な一組の利点を有することができる。 また、この符号は、固定レート符号に比べて、符号化及び復号化の複雑性を低くすることができる。

    [0007]しかし、コード化された内容における損失の所与の既知数、又はコード化された内容における損失の数の限界に関して、固定レート符号は、平均すると、元の情報の所与の量を回復するためにより少数のコード化ブロックを受信すればよい。 即ち、固定レート符号は、レートレス符号よりもオーバーヘッドが低く、したがってより効率が良い。 しかし、「K」が無限に近づくにつれて、レートレス符号が固定レート符号の性能に漸近的に近づくことがある。

    [0008]レートレス符号の働き レートレス符号は、メッセージブロックとも呼ばれるいくつかの「元の」ブロック「A(1)、...、A(K)」を得て、コード化ブロックのストリーム、即ち 「C(1)、C(2)、...、C(N)、C(N+1)、...」
    を生成する。

    これを行うために、そのようなコード化ブロックを生成するための基本的な「レートレス操作」が根底にある。 これは、Raptor符号と同様に、固定レート符号を使用するプリコード化段階によって強化されることがある。

    [0009]基本的なレートレス操作を以下に説明し、図1に例示する。
    1. コード化ブロック「C(k)」を生成するために、整数値d (ここで、1≦d ≦K)を選択する。
    a. 本明細書において、d は、「次数」値と呼ばれ、「次数分布」に従ってランダムに選択される。
    b. この次数分布「p」は、そのような次数値の確率を規定する。 即ちp(n)=「d =n」となる確率である。
    c. 独立同一分布で、次数値が選択される。
    d. 分布「p(n)」の設計は、この方式の根底にある重要な設計パラメータである。 使用できるいくつかの例が存在する。
    2. 「K」個の取り得るブロックから、d 個の別個の元のブロック、即ち A(b(1,k))、A(b(2,k))、. . . 、A(b(d ,k))
    をランダムに選択する。 ここで、指標値はb(j,k)であり、すべてのj=1、. . . 、d に関して1≦b(j,k)≦Kであり、インデックス値は一意であり、即ちすべての1≦j<i≦d に関してb(j,k)≠b(i,k)である。
    3. 選択されたブロックをXOR演算する。 即ち、
    C(k)=A(b(1,k))+A(b(2,k))+. . . +A(b(d ,k))
    である(以下、本明細書において、「+」は、排他的OR(XOR)関数を表す)。

    [0010]上述したように、レートレスシステムは、プリコーダとして固定レート符号を使用して強化することもできる。 図2は、レートK/Nの固定レート符号を使用するレートレスシステムを示す。 そのようなシステムでは、「プリコード化」ステップは、初めに元のブロック「A(1)、...、A(K)」を得て、固定レート符号を使用してそれらをプリコード化し、したがって、プリコード化ブロック P(1)、. . . 、P(N)
    を生成する。

    [0011]また、Ulas C. Konzat and Sean A. Ramprashad;「Unequal Error Protection Rateless Codes for Scalable Information Delivery in Mobile Networks」Proceedings of IEEE Infocom−2007(minisymposium paper)、Anchorage、Alaska、2007に記載されているように、この操作の不均一誤り保護バージョンを使用することもできる。

    [0012]次いで、これらのプリコード化ブロックが、上述のレートレスコード化操作への入力として使用され、(元のブロックではなく)プリコード化ブロックがXOR演算されて、レートレス符号化ブロックを生成する。 即ち、
    C(k)=P(b(1,k))+P(b(2,k))+. . . +P(b(d ,k))
    であり、ここで1≦d ≦Nである。

    [0013]いくつかの設計では、プリコード化に使用される固定レート符号が系統的であることがある。 即ち、N個のブロックP(1)、. . . 、P(N)のうちのK個のサブセットが元のメッセージブロックを表現し、残りの(N−K)個のブロックは、「パリティ」ブロックと呼ばれ、これは、元のメッセージブロックの2つ以上の数学的な組合せによって生成される。 そのような構成が図3に示され、(一般性を損なわずに)、例としてj=1、. . . 、Kに関してP(j)=A(j)である。

    [0014]すべての場合に、各レートレスコード化ブロックが識別子を必要とし、その識別子を使用して、どの元の(又はプリコード化)ブロックがコード化ブロックにXOR演算されているかを受信者に知らせることができる。 この情報は、レートレス符号の復号化の際にコード化ブロックを使用する方法を受信者が知るのに必要とされる。

    [0015]そのような情報を提供する1つの手法は、受信機が、次数値「d 」及びブロック選択b(j,k)を選択する同じランダムプロセス(又は単にプロセス)を有するものである。 そのような場合に十分なブロック識別子は、単純に値「k」であり、これは、図4におけるように、(低いオーバーヘッドで)コード化ブロックに付加することができる。

    [0016]図4を参照すると、コード化ブロックc(1)、. . . 、c(k)はすべて、ブロック識別子を有し、c(j)に関する識別子は、情報のブロックの既知の領域に単純に付加された整数「j」である。 例えば、整数ブロック識別子「k」が、コード化ブロックc(k)の情報に付加され、ブロック識別子2が、コード化ブロックc(2)の情報に付加され、ブロック識別子1が、コード化ブロックc(1)の情報に付加される。 そのような情報は、標準的なヘッダの一部であってよく、これは、情報のブロックに追加され、一般には小さな又はごくわずかなオーバーヘッドである。 これらの識別子は、非調整で又は大きな損失でユーザが伝送を容易に受信できるようにし、それでも、ブロック識別子により、どのレートレスコード化ブロックが受信されているかを識別することができる。 どのブロックであるか知ることによって、ユーザは、ブロック選択及び次数選択アルゴリズムを有する場合には、パケットを生成するためにどのプリコーダ及び/又は元のブロックがXOR演算されたかの識別を生成することができる。

    [0017]別の手法は、単にブロック選択値b(i,j)を表すヘッダを有するものである。 これは、当然、より多くのオーバーヘッドを必要とすることになる。

    [0018]レートレス符号の復号化 プリコード化段階を仮定した復号化操作が図5に示される。 図5を参照すると、ユーザは、「G」個のコード化ブロック、即ち「C(a )、...、C(a )」のサブセットを有し、各ブロックが受信及び識別される。 ここで、ユーザは、受信されたコード化ブロックから、すべて(又はいくつか)の元のブロック「{A(1)、...、A(K)}」を回復することを望む。

    [0019]受信されたコード化ブロックはそれぞれ、ブロック識別子を含む。 例えば、コード化ブロックc(a )は、a のブロック識別子を有する。 コード化ブロックc(a )は、a のブロック識別子を有する。 これは、a のブロック識別子を有する最後に受信されたコード化ブロックc(a )を含めたすべてのコード化ブロックに関して行われる。

    [0020]コード化ブロックは、レートレス復号化段階501による復号化操作に通されて、符号化中に行われたレートレスコード化プロシージャを復号化する。 例えば、低複雑性の「確率伝播」プロシージャ又は最尤復号法を使用することができる。 ガロア域2での線形システム(すべての線形係数が「0」又は「1」である)の逆としてこの復号化操作を見ることができ(加法は、XORによって定義され、0+0=0、1+1=0、1+0=1、0+1=1である)、それにより、受信されるパケットは、元の(又はプリコード化)パケットの線形結合である。 この復号化操作は、P(f )、P(f )、. . . 、P(f )と呼ばれる「N」個のプリコード化ブロックのサブセットのみ(又は、プリコード化が使用されなかった場合には、A(1)、A(2)、...、A(k)と呼ばれる「K」個の元のブロックのサブセットのみ)を生成することがある。 この操作が、すべてのブロックを回復することができることもある。 これは、どのレートレスコード化ブロックが受信されたか、及び/又は復号化操作に依存する。 また、復号化操作は、新たなブロックが受信されるときに増分的に行うこともできる。

    [0021]プリコード化ステップが使用された場合、プリコーダとして使用される固定レート符号の追加の復号化操作が必要とされることがある。 レートレス復号化プロセスの終了時に、又は増分的にレートレス復号化プロシージャと共に、又はレートレス復号化プロシージャを反復して、必要に応じて復号化が行われる。 したがって、プリコード化ブロックは、プリコード化復号化ブロック502など、固定レート符号に適したデコーダに通される。 この場合、損失したブロックが固定レート符号によって修復され、元の内容の一部又は全体が受信されることがある。 非常に多くのプリコード化ブロックが失われている場合、元の内容のサブセットのみが受信されることもある。 元のブロックのすべて又はサブセットが、A(1)、A(2)、. . . 、A(k)と表される。

    [0022]暗号化との基本的な関連 誤り訂正符号と暗号作成法との関係は前述した。 暗号システムは、レートレス及び固定レート符号などの符号の誤り/消失訂正を行うのと同様に、情報の「コード化」も行う。 実際、いくつかの暗号システムは、特に、生来的に復号化するのが難しい誤り訂正符号の使用、又はそのタイプに基づく。 そのような誤り訂正符号設計がそれ自体、攻撃者に知られていない(固定レート符号及び/又は符号ファミリからの符号選択の設計が、送信側と指定受信者と間での共有秘密である)場合、システムを破壊するには、多数の「復号化するのが難しい」可能性を試験する必要がある。 これは、適切な設計であれば、システム自体を壊れにくいものにする。

    [0023]いくつかの暗号システムは、ストリーム暗号で使用されるように、単純な「XOR」演算に基づく。 基本的に、いくつかの情報シンボル「A(1)、A(2)、...」を有する場合、暗号文「Ω」(それ自体、シンボルである)を使用し、コード化シンボルのシーケンス「C(1)、C(2)、...」を生成することができ、ここで、C(k)=A(k)+Ωである。 本明細書において、「+」は、GF(2)(GF=ガロア域)でのビット「XOR」演算であってよい。 暗号文Ωは、送信側と指定受信者との間の共有秘密である。 暗号文及び/又はXOR演算は、多くの方式において適合させることができ、例えば、情報シンボルのシーケンスに再帰的に適用することができる。

    [0024]これらの暗号システムは、複雑性を低くしやすいが、C(k)を多く観察することによって攻撃者が暗号文Ωを確率的に推論することができることがあるので、壊れやすくもなる。 レートレス符号も、そのようなXOR演算操作に基づくが、そのような演算は、暗号文によってではなく、元の内容の異なるサブセット間で行われる。 レートレス符号は、低複雑性の復号化方法を有し、これは、誤り/消失訂正に関しては利点であるが、暗号化に関しては欠点である。 しかしまた、レートレス符号は、固定暗号を使用しない。 2つ以上の元のメッセージシンボル間でXOR演算するので、即ち上述したようにコード化シンボルが形式「A(k )+A(k )+...+A(k )」(ここで、「d」は、演算の「次数」として知られる数)であるので、暗号文を推論することは、レートレス符号での弱点の1つではない。 しかし、他の弱点が存在する。

    [0025]本明細書では、レートレス符号によってコード化された内容を保護する低複雑性方法に関して、方法及び装置が開示され、ここで、レートレスコード化パケットのサブセットのみを暗号化すれば十分であることに留意されたい。 一実施形態では、この方法は、データブロックの第1のセットに対してレートレスコード化を行って、レートレス符号化データブロックを生成するステップと、レートレス符号化データブロックそれぞれに関する次数値に基づいて、レートレス符号化データブロックのサブセットに対して暗号化を行うステップとを含む。

    [0026]本発明は、以下に与えられる詳細な説明、並びに本発明及び従来技術の様々な実施形態の添付図面からより十分に理解されよう。 しかしそれらは、特定の実施形態に本発明を限定するために挙げられたものではなく、単に説明及び理解のためのものである。

    基本的なレートレスコード化操作を示す図である。

    プリコード化段階を伴うレートレス符号を示す図である。

    系統的なプリコード化段階を伴うレートレス符号を示す図である。

    コード化ブロックが識別子を有するレートレス符号を示す図である。

    レートレス符号に関する復号化プロセスを示す図である。

    レートレスコード化前の元のブロックの暗号化を示す図である。

    レートレスコード化段階後のコード化ブロックの暗号化を示す図である。

    レートレスコード化段階後にコード化ブロックを暗号化するプロセスの一実施形態の流れ図である。

    ブロック識別子のみに暗号化を適用する手法を示す図である。

    プリコーダを含むレートレスコード化操作後に奇数次数値の暗号化を行うプロセスの一実施形態の流れ図である。

    図10の暗号化/符号化に対応する解読/復号化を行うプロセスの一実施形態の流れ図である。

    レートレスコード化操作及び識別子暗号化の後に、奇数次数値の暗号化を行うプロセスの一実施形態の流れ図である。

    次数値及びブロック選択を生成するために使用される乱数値発生器又は方法の知識を秘匿することを加えた、図12のプロセスの一実施形態の流れ図である。

    暗号化するか否かに関するより一般的な決定を含むように修正された図13のプロセスの一実施形態の流れ図である。

    コンピュータシステムの一実施形態のブロック図である。

    [0027]本明細書では、レートレス符号によって符号化された内容に対する暗号化を提供することができる低複雑性方法のための技法が提供される。 一実施形態では、技法は、レートレス符号の性質のいくつかを暗号化が利用できるようにする連合レートレスコード化及び暗号化方式を含む。 レートレス符号は、生来的に、復号化が簡単なように設計される。 また、レートレス符号は、しばしば、実際には元の内容のサブセットのコピーである(任意の復号化操作を必要としないことさえある)「コード化」ブロックを生成する。 したがって、レートレス符号は、単独では、非指定受信者からすべての元の内容を秘匿するのに強力な暗号化機能又は良好な手段を提供しない。

    [0028]レートレス符号を使用せずに暗号化を提供することができる一方法は、レートレス符号の適用前に、元の内容を暗号化することによるもの、又はレートレス符号の適用後に、レートレス符号化された内容を暗号化することによるものである。 これらは、以下で論じる。 どちらの場合にも、独立した暗号化/解読操作が、システムでの符号化/復号化ステップで適用される。 そのような実施形態では、既知の従来の暗号化技法が、暗号化操作のために使用される。 しかし、そのような独立方法は、良好な(即ち強力な)暗号化のために、過剰に多くの操作を必要とすることがある。 また、必要以上に高い計算複雑性を有するシステムをもたらすこともある。 具体的には、説明したこれらの暗号化技法は、レートレスコード化ステップの根底にある何らかの性質及び操作を利用せず、即ち、レートレスコード化ステップは、暗号のような操作を有する。 本明細書で説明する本発明の実施形態は、このレートレスコード化操作を利用する。

    [0029]また、ブロック識別子のみを暗号化することもできる。 次の節で説明するように、これは、複雑性がより低くなることがあるが、安全ではない。

    [0030]本発明の一実施形態では、暗号化ステップとレートレス符号ステップとの独立した適用を考慮するシステムよりも複雑でない連合暗号化/レートレスコード化方法が使用される。 あまり複雑でなくなることで、レートレス符号を使用するときに内容を安全に伝送するのに必要とされる暗号化/解読操作の数が減少される。 そのような低複雑性方法は、モバイル用途で特に魅力的であり、より低い複雑性によって、計算がより少なくなり、したがって電池寿命の延長などの性質が得られる。

    [0031]以下の説明では、本発明のより完全な説明を提供するために、いくつかの詳細を述べる。 しかし、これらの特定の詳細を用いずに本発明を実施することもできることが当業者には明らかであろう。 他の例では、本発明を曖昧にすることを回避するために、よく知られている構造及びデバイスは、詳細にではなくブロック図の形式で示される。

    [0032]以下に続く詳細な説明のいくつかの部分は、コンピュータメモリ内部のデータビットに対する操作のアルゴリズム及びシンボル表現で提示される。 これらのアルゴリズムによる説明及び表現は、データ処理分野の当業者が、作業の本質を当業者に最も効果的に伝えるために使用する手段である。 アルゴリズムは、本明細書では、且つ一般には、所望の結果を導くステップの自己矛盾のないシーケンスであると考えられる。 ステップは、物理量の物理的な操作を必要とするものである。 これらの量は、必ずしもそうではないが通常は、記憶、転送、結合、比較、及びその他の操作を行うことができる電気又は磁気信号の形態を取る。 時として、主に一般的な用法であるので、ビット、値、要素、シンボル、文字、術語、数などとしてこれらの信号を表すことが簡便であることが分かっている。

    [0033]しかし、これら及び同様の術語すべてが、適当な物理量に関連付けられ、これらの量に与えられる簡便な標示にすぎないことを念頭に置くべきである。 以下の論述から明らかである別段の定めが特にない限り、本説明を通じて、「処理」又は「計算」又は「演算」又は「決定」又は「表示」などの用語を利用する論述は、コンピュータシステムのレジスタ及びメモリ内部で物理(電子)量として表されるデータを、コンピュータシステムメモリ又はレジスタ又は他のそのような情報記憶、伝送、若しくは表示デバイス内部で同様に物理量として表される他のデータに操作して変換するコンピュータシステム又は同様の電子計算デバイスの作用及びプロセスを表すことを理解されたい。

    [0034]また、本発明は、本明細書における操作を行うための装置に関する。 この装置は、所要の目的のために特別に構成されることがあり、或いは、コンピュータに記憶されたコンピュータプログラムによって選択的に作動又は再構成される汎用コンピュータを備えることがある。 そのようなコンピュータプログラムは、フロッピーディスク、光ディスク、CD−ROM、及び光磁気ディスクを含めた任意のタイプのディスク、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気若しくは光カード、又は電子命令を記憶するのに適した任意のタイプの媒体など、しかしそれらに限定されない、それぞれコンピュータシステムバスに結合されるコンピュータ可読記憶媒体に記憶されることがある。

    [0035]本明細書で提示されるアルゴリズム及びディスプレイは、任意の特定のコンピュータ又は他の装置に本来的には関係付けられない。 本明細書での教示によるプログラムと共に様々な汎用のシステムが使用されることがあり、又は、所要の方法ステップを行うために、より特化された装置を構成することが好都合と分かっていることがある。 様々なこれらのシステムに関する所要の構造は、以下の説明から明らかになろう。 さらに、本発明は、任意の特定のプログラミング言語に関連しては説明されない。 本明細書で述べる本発明の教示を実装するために様々なプログラミング言語が使用されることがあることを理解されたい。

    [0036]機械可読媒体は、機械(例えば、コンピュータ)によって読むことができる形式で情報を記憶又は伝送するための任意の機構を含む。 例えば、機械可読媒体は、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、電気、光、音、又は他の形態の伝搬信号(例えば、搬送波、赤外信号、デジタル信号など)などを含む。

    [0037] 基本手法
    レートレスコード化を用いるシステムに暗号化を追加するための2つの基本的な手法は、符号化の際に、「プリコード化+レートレス」ステップの前又は後に暗号化を単純に適用することである。 これら2つの「独立暗号化」手法は、それぞれ図6及び図7に示されている。 当然、復号化プロシージャが続く。 2つの手法のうち、前に暗号化を行うことは、元のメッセージブロックの数がコード化ブロックの数よりも少ないので、(復号化と符号化との両方に関して)複雑性がより低くなることがある。 しかし、大きな内容サイズ、即ち大きな「K」に関しては、レートレス符号は、漸近的に効率が良くなり、手法間の複雑性の差が小さくなることがある。 両方の手法が、レートレスコード化と暗号化との凡庸な独立適用を表す。

    [0038]別の手法は、プリコード化段階中又は段階内に暗号化を適用することであり、即ち、プリコーダとして(秘密)固定レート符号を使用する。 これは、図6及び図7における手法と同様に、すべてのプリコード化ブロックに暗号化が適用されるので、複雑であることがある。 また、定義により、システムが安全である場合、使用される固定レート符号は、或る最小複雑性を有するはずである。 例えば、少なくとも非系統的符号であるはずであり、また、おそらくは非線形符号でもあるはずである。 また、システムに追加の人工損失を意図的に加えることもでき、例えば、情報の識別をさらに秘匿するためにコード化ブロック「P(k)」のいくつかを消失又は破損し、情報を回復するために固定レート符号の誤り訂正能力に依拠することもできる。 これは、例えば、(N−K)個以下の誤りと共に追加の「誤り」が加えられるMcElieceシステムで使用される。 しかし、これは、レートレスコード化パケットのサブセットからの元の内容の回復を補助するためにプリコーダを使用できなくする。 不均一誤り保護方式で広まっているこの手法にかかわる別の弱点は、プリコード化が、元のメッセージブロック全部には適用されないことがあり、それによりいくつかのブロックを非保護のままにすることである。 当然、いくつかの方式では、優先順位の高い情報のみを暗号化することが、優先順位の低い情報の識別を保護するのに十分であり、しかしこれは常にそうであるわけではない。

    [0039]元のプリコーダに加えて、「安全な」固定レート符号をすべてのパケットに対して用いる第2のプリコーダを適用することが、最後のレートレス段階の前に暗号化を適用するのと本質的に同様になる別の手法である。 この第2のプリコーダは、元のプリコーダの前又は後に適用することができる。

    [0040]別の手法は、図9に示されるように、ブロック識別子にのみ暗号化を適用することである。 これは、次数値「d 」及びブロック選択b(j,k)を生成するために使用される乱数発生器又は方法又はプロセスの知識を暗号化することによって、さらに強化することができる。 このようにすると、攻撃者は、「k」を得ている場合でさえ、それを値「d 」及びブロック選択b(j,k)に合致させることができないことがある。 したがって、各受信されたブロックでのコード化された内容の識別が秘匿にされたままである。

    [0041]ブロック識別子自体は少数のビットを表すので、この手法は、上述した元の情報、プリコード化情報、又はレートレスコード化情報を暗号化するよりも複雑でない。

    [0042]しかし、この手法は、本来的な弱点を有する。 第1に、レートレス符号では、有意な数のコード化ブロックに関してd =1を有することが珍しくなく、d =1は即ち、XOR演算操作が使用されず、レートレスコード化ブロックが、実際には根底にある元の情報と等しくなりうる場合である。 例えば、Raptor符号で使用される次数分布は、以下のようなものとなる。
    Raptor符号に関する次数分布例
    p(1)=0.007969
    p(2)=0.493570
    p(3)=0.166220
    p(4)=0.072646
    p(5)=0.082558
    p(8)=0.056058
    p(9)=0.037229
    p(19)=0.055590
    p(64)=0.024023
    p(66)=0.003135
    上述していない他の値のnに関するp(n)=0
    この場合、有意な確率「p(1)」が存在し、この場合、コード化ブロックが、元のメッセージブロックからの、XOR演算されていない元の情報を含む。 伝送される情報が文、例えば電子メールである場合、これは、識別子が暗号化されたか否かにかかわらず、非指定受信者が元の情報のサブセットを簡単に得る(読む)ことができることを意味する。

    [0043]受信された「コード化」ブロックの中にこのように元の情報が存在することにより、識別を知らなくても、即ち「k」、次数値「d 」、及び/又はブロック選択b(j,k)を知らなくても容易に識別することができることがある。 例えば、文の場合、攻撃者は、受信されたブロック内の語又は語句を探索するために、単に自動プロセスを使用することができる。 これは、場合によってはXOR演算されていない情報を有するパケットを攻撃者に知らせるための簡単な方法となる。

    [0044]ソースコード化メディアストリーム(例えば、オーディオ、音声、画像、又はビデオのストリーム)の場合、攻撃者は、パケット内部に含まれるストリームの構文が正しいことをメディアデコーダが示すまで、パケット(コード化ブロック)内の情報に様々なメディアデコーダを単純に適用することができる。 次いで、攻撃者は、さらに、そのようなデコーダの復号化出力を精査することができる。 したがって、これらの「次数−1」コード化ブロックは問題である。

    [0045]そのような「次数−1」ブロックだけが問題の原因というわけではない。 別の問題は、攻撃者が、ランダムに、d >1でコード化されていることがある情報をそれ相応の労力で得ることができることである。 これは、次数「n」コード化パケットを用いた次数「n−1」コード化パケットのXOR演算が、それ相応の公算で元の情報を生成することができるという性質によるものである。 例えば、n=3の場合を考えると、
    C(k)=A(b(1,k))+A(b(2,k))
    C(z)=A(b(1,z))+A(b(2,z))+A(b(3,z))
    =A(b(1,k))+A(b(2,k))+A(b(3,z))
    と仮定すれば、即ち、
    b(1,z)=b(1,k)、b(2,z)=b(2,k)
    である(パケットのうち2つが、両方のレートレスコード化パケットに共通である)。

    [0046]その結果、「k」、「z」、「d 」、「d 」、「b(i,k)」、及び/又は「b(i,z)」を知らなくても、攻撃者は、単にパケットをXOR演算することを試みて、
    C(z)+C(k)=A(b(3,z))
    を得ることができる。

    [0047]上述した「次数−1」コード化パケットの場合と同様に、元のメッセージブロックの取得の成功を検出することができる。

    [0048]したがって、攻撃者又は非指定受信者は、「W」個のコード化パケットを受信した際、単純にW×W個のXOR演算組合せをすべて試して、すべてをチェックして、場合によっては元のブロックの漏洩を得られることがある。 さらに、次いで、すべてのそのような回復されたブロックを「W」個のコード化パケットとXOR演算することを試みて、場合によってはより多くの元のブロックを検索することができる。

    [0049]いくつかのパケットのみが回復され、そのようなパケットの並べ替えが可能でないことがありえるが、即ち、「A(b(i,j))」が回復された場合に、依然として「b(i,j)」を識別するのが困難であることがありえるが、システムは、最も強い意味では安全でない(例えば、攻撃者が情報を使用して、内容、即ちビデオ又はオーディオ内容の妥当なストリームの形成若しくは「継ぎ合わせ」、再生、及び/又は著作権侵害を行うことができるという観点からは、依然として安全でありうることに留意されたい)。

    [0050] 選択された次数の暗号化の概要
    本明細書で説明する技法は、安全であり、また上で提示した例よりも低複雑性の暗号化方式を生み出す。 これらの技法は、上記の手法の問題を回避する。 即ち、
    1. レートレスコード化の前又は後にすべての内容を暗号化する手法よりも複雑でない。
    2. プリコーダの働きを損なうことを回避する。
    3. 識別子を暗号化するだけの低複雑性方法とは異なり、安全である。
    a. 背景の項で説明した手法と同様に、コード化された内容が十分に暗号化されない場合、次数1の情報が、システムをあまり安全でなくす弱点となる。
    b. 背景の項で説明した手法と同様に、コード化された内容が十分に暗号化されない場合、次数「n」情報と次数「n−1」情報との存在が、システムをあまり安全でなくす弱点となる。

    [0051]これらの弱点を回避するために、非常に安全なシステムに関し、本発明の実施形態は、奇数次数値でXOR演算されたすべての情報、即ち何らかの正の整数y又はy=0に関してd =2y+1であるコード化パケットA(k)が安全に暗号化されれば、強い暗号に十分であるという原理を使用する。 したがって、偶数次数に関するレートレス符号の既存のXOR演算が暗号化の目的で使用され、必要とされるのは、奇数次数の追加の暗号化だけである。 このために、背景の項での任意の技法を使用することができる。 このようにして、レートレスコード化ブロックに関する次数値に基づいて容易に暗号化することができる。

    [0052]ここでも、プリコード化段階を伴って、又は伴わずにこれを行うことができる。 プリコード化段階は、例示としてのみ含まれ、A(k)がここでレートレス符号化後の暗号化プロセスでのP(k)の代わりとなる場合には、除去することができる。 図8は、レートレスコード化段階後のコード化ブロックの暗号化を例示するデータフロー図である。 この場合、プリコード化段階が存在しないが、含めることもできる。 ユニット又はモジュールはそれぞれ、ハードウェア(回路、専用論理など)、ソフトウェア(汎用コンピュータシステム又は専用機械で実行されるものなど)、又は両方の組合せを備えることがある。

    [0053]図8を参照すると、元のブロック801が、A(1)、A(2)、. . . 、A(K)を備え、レートレスコーダ802に入力される。 レートレスコーダ802は、上述したレートレスコード化を行ってコード化ブロック803を生成し、コード化ブロック803は、コード化ブロックC(1)、C(2)、. . . 、C(k)を備える。 コード化ブロック803はそれぞれ、ブロック識別子を含む。 例えば、ブロックC(k)は、ブロック識別子kを含み、コード化ブロックC(2)は、ブロック識別子2を含み、コード化ブロックC(1)は、ブロック識別子1を含む。 コード化ブロック803は、暗号化モジュール804に入力される。 暗号化モジュール804は、レートレスコード化ブロックに関する次数値に基づいてコード化ブロック803を暗号化して、伝送されるコード化ブロック、場合によっては暗号化ブロック805を生成する。 ブロック識別子は、この例では暗号化されず、単にXOR演算された内容であることに留意されたい。 一実施形態では、暗号化モジュール804は、各レートレスコード化ブロックに関して関連付けられる次数が奇数であるかどうか試験する。 レートレスコード化ブロックに関する次数値が奇数である場合、レートレスコード化ブロックが暗号化される。 レートレスコード化ブロックに関する次数値が奇数でない場合、レートレスコード化ブロックは暗号化を行われない。 したがって、暗号モジュール804の出力は、コード化ブロック、場合によっては暗号化ブロック805を備える。

    [0054]すべての可能な組合せを試験したとしても攻撃者が任意の元のブロックを得ることができないので、奇数次数パケットを暗号化すれば十分である。 背景の項で挙げた次数n−1と次数nとの組合せの場合、ブロックの少なくとも1つが暗号化され、これは、XORプロシージャが任意の「次数−1」の結果を漏洩しないことを意味する。 さらに、次数2n及び2jコード化パケットの任意のXOR組合せ(偶数パケットの組合せ)、又は次数2n+1及び2j+1(奇数)コード化パケットのXOR組合せは、せいぜい次数「d>1」の別のパケットしか生み出さない。 受信されたパケットと共に任意のそのようなパケットを帰納引数によって適用することは、任意の「次数−1」の(元の)パケットを生成しない。 簡単に言うと、次数2、3、4、及び5のいくつかの例を使用して、以下のことが当てはまる。
    1. 暗号化(A+B+C)+暗号化(A+B+C+D+E)=ランダムビット(使用されないビット)
    2. (A+B)+(A+B+C+D)=C+D
    3. 暗号化(A+B+C)+(A+B+C+D)=ランダムビット ここで、「暗号化(X)」は、「X」を暗号化するプロセス/機能を表し、「+」は、前に定義したシンボルのビットXORである。

    [0055]本発明で説明する暗号化技法は、さらに、プリコード化に使用される符号の知識を秘匿することによって、及び/又は次数値「d 」及びブロック選択b(j,k)を生成するために使用される乱数発生器又は方法の知識を秘匿/暗号化することによって強化することができる。 発生器の識別及び/又は発生器の状態を秘匿することによって、攻撃者は、乱数発生器の動作を再生成することを妨げられることがある。 そのような秘匿は、既知の公開鍵共有法を使用して、及び/又はコード化データが送信されるチャネルとは異なる側波帯チャネルを使用することによって、送信機と指定受信者との間で安全に交換される次数値d 及びブロック選択を生成するために使用される暗号化デバイス又は方法を有することによって行われることがある。 この知識の秘匿は、上述し、且つ以下でも説明するレートレスコード化データの根底にある暗号化に関連付けてのみ有用であることに留意されたい。

    [0056]また、次数数値に基づいて暗号化する他の方法を考慮することもできる。 例えば、d =1及びd =偶数値を有するすべてのレートレスコード化ブロックを暗号化することができ、即ち、1よりも大きい奇数次数値を有するパケット以外のすべてのパケットを暗号化することができる。 また、次数分布の詳細に基づいて、さらなる次数値を暗号化するか否かを決定することができる。 例えば、上で示したRaptor符号に関する「次数分布例」で、d =19を使用するブロックを暗号化しないように選択することができる。 これは、値d =18又はd =20が存在せず、(2つ以上の他の次数値の組合せを使用する)「次数−1」の生成が、「W×W」個の組合せを単にチェックするよりも若干難しいからである。

    [0057]この手法にはいくつかの利点がある。 1つの利点は、背景の項で挙げた他の方法に比べて、受信機での解読操作の複雑性が大幅に減少することである。 また、背景の項で挙げた他の方法に比べて、送信機での暗号化操作の複雑性の大幅な減少も見られる。

    [0058]要約すると、ここで説明した技法は、安全なストリームを生成し、すべてのレートレスコード化パケットが暗号化されているわけではなく、これに関し、安全なストリームを有するためにすべてのパケットを暗号化する必要はない。 実際、上述した次数分布例と、奇数次数パケットのみが暗号化されるシナリオとを考慮する場合、暗号化の確率は、
    p(1)+p(3)+p(5)+p(9)+p(19)=0.349566
    となり、即ち、コード化パケットの約35%のみが暗号化される。

    [0059]受信されるパケットの数が「N」又は「K」に近づく場合、これは、図6及び7に関連して上述した方法に比べて、解読の計算が35%程にまで削減される。 解読は、計算面で複雑なプロセスでありえるので、ここで説明した技法は、モバイル(電池式)受信機を有する用途によく適している。 受信されるパケットの数が「2N」程度まで増えるときでさえ、ここで説明した技法は、依然として利点を有する。 そのような場合、レートレス符号は、実際には、いずれにせよ効率的には適用されない。

    [0060]伝送されるパケットの数が「N」又は「K」に近づく場合、図6及び7に関連して上述した方法に比べて、暗号化の計算も35%程にまで削減される。 そのような場合としては、レートレス符号が漸近的に効率良くなり、送信数がシナリオによって制限される場合(近同期で1つ又は複数の受信機にサービスする、或いは複数のユーザが高い確率で同じレートレスパケットを使用することができる場合など)が挙げられる。

    [0061]例えば、レートレス符号化ストリームが異なる期間にわたって多くのユーザにサービスする場合、及び/又は多くのパケットが伝送中に失われる場合、送信機が「N」個よりもかなり多くのコード化パケットを生成するシナリオがありえる。 しかし、そのような場合でさえ、生成されたパケットの数が約3N未満であると、送信機は依然として計算を節約する。 いずれにせよ、この場合、受信機は、前のパラグラフで述べたように計算を節約する。

    [0062]一実施形態では、エンコーダで、システムは、単に次数値が奇数であるか否かに基づいて暗号化する。 図10は、プリコード化段階後のレートレスコード化段階後のコード化ブロックの暗号化を例示するデータフロー図である。 ユニット又はモジュールはそれぞれ、ハードウェア(回路、専用論理など)、ソフトウェア(汎用コンピュータシステム又は専用機械で実行されるものなど)、又は両方の組合せを備えることがある。

    [0063]図10を参照すると、元のブロック1001が、A(1)、A(2)、. . . 、A(K)を備え、プリコード化モジュール1002に入力される。 プリコード化モジュール1002は、固定レート符号を使用してプリコード化ブロック1003を生成し、プリコード化ブロック1003は、P(1)、P(2)、. . . 、P(K)、P(K+1)、. . . 、P(N)を備える。 レートレスコーダ1004が、プリコード化ブロック1003を受信し、上述したようにレートレスコード化を行ってコード化ブロック1005を生成し、コード化ブロック1005は、コード化ブロックC(k)、. . . 、C(2)、及びC(1)を備える。 コード化ブロック1005はそれぞれ、ブロック識別子を含む。 例えば、ブロックC(k)は、ブロック識別子kを含み、コード化ブロックC(2)は、ブロック識別子2を含み、コード化ブロックC(1)は、ブロック識別子1を含む。 コード化ブロック1005は、暗号化モジュール1006に入力される。 図10に示されるように、一実施形態では、ブロック識別子は暗号化されないことに留意されたい。

    [0064]暗号化モジュール1006は、レートレスコード化ブロックに関する次数値に基づいてコード化ブロック1005を暗号化して、伝送されるコード化ブロック、場合によっては暗号化ブロック1007を生成する。 一実施形態では、暗号化モジュール1006は、試験モジュール1021を含み、各レートレスコード化ブロックに関して関連付けられる次数が奇数であるかどうか試験する。 試験モジュール1021が、レートレスコード化ブロックに関する次数値が奇数であると判定した場合、ブロック暗号化モジュール1022は、レートレスコード化ブロックを暗号化する。 試験モジュール1021が、レートレスコード化ブロックに関する次数値が奇数でないと判定した場合、そのレートレスコード化ブロックは暗号化を行われない。 したがって、暗号化モジュールの出力1007は、コード化ブロック、場合によっては暗号化ブロック1007を備える。 レートレスコード化ブロックに関するブロック識別子は、コード化ブロックが暗号化されるか否かにかかわらず暗号化されないことに留意されたい。

    [0065]一実施形態では、これらの暗号化操作は、内容を送信することを司る送信機で、又は送信機に関連付けて行われる。 一実施形態では、送信機は、有線インターネット上でのサーバ又はコンテンツサーバの一部であってよい。 別の実施形態では、送信機は、有線コンピュータの一部であってよい。 他の実施形態では、送信機は、基地局(即ち、無線構成要素)又は移動電話又は他のモバイルデバイスの一部であってよい。

    [0066]図11は、レートレス復号化段階前のコード化ブロックの解読を例示するデータフロー図である。 プリコード化が例示されるが、プリコード化に関する復号化操作を無視すると、基本フローはやはり図8に対応する。 本質的には、図11は、図10に例示されるコード化操作を逆にした復号化操作を例示する。 ユニット又はモジュールはそれぞれ、ハードウェア(回路、専用論理など)、ソフトウェア(汎用コンピュータシステム又は専用機械上で実行されるものなど)、又は両方の組合せを備えることがある。

    [0067]図11を参照すると、受信されたコード化ブロック1101は、解読モジュール1102に入力され、? (a )、? (a )、. . . 、? (a )を備え、ここで「?」は、コード化パケットを表し、このコード化パケットは、暗号化されていることも暗号化されていないこともある。 コード化ブロック1101はそれぞれ、ブロック識別子を含む。 例えば、コード化ブロック? (a )は、ブロック識別子a を含み、コード化ブロック? (a )は、ブロック識別子a を含み、コード化ブロック? (a )は、ブロック識別子a を含む。 解読モジュールは、一度に1ブロックずつ各コード化ブロック1101を処理し、図10で説明したのと同様に、次数値に基づいて解読を行う。 解読モジュール1102は、次数値a を使用して、次数値d 、並びにb(i,j)値を回復する。 一実施形態では、これは、この情報を「k」で暗黙的に有する、又は識別子中の追加の情報によって有するブロック識別子を使用して行われる。 回復された次数値を使用して、解読モジュール1102での試験モジュール1121は、次数値が奇数であるかどうか判定する。 奇数である場合、解読モジュール1102は、受信されたコード化ブロックに対して解読を行う。 そうでない場合、解読モジュール1102は、コード化ブロックに対する解読操作を行わずに、コード化ブロックを通過させる。 したがって、解読モジュール1102は、コード化ブロック、及び解読されたブロック、並びにb(i,j)値を出力する。

    [0068]解読モジュール1102から出力されたコード化ブロック、及び解読されたブロック、並びにb(i,j)値は、レートレス復号化段階1103に入力され、この段階1103は、解読モジュール1102から受信されたコード化ブロック及び解読されたブロックに対してレートレス復号化を行う。 レートレス復号化段階1102は、確率伝播、最尤復号法、又は別のよく知られているレートレス復号化技法を使用することがある。 復号化操作の結果は、P(f )、P(f )、. . . 、P(f )として示されるプリコード化ブロックのサブセット1104を備える。

    [0069]プリコード化復号化段階1105が、プリコード化ブロック1104を受信し、プリコード化ブロックを復号化する。 一実施形態では、プリコード化復号化段階1105は、復号化を行うために復号化固定レート符号を使用する。 復号化の結果は、プリコード化復号化段階1105から、A(1)、A(2)、. . . 、A(K)として示される元のブロックのすべて又はサブセット1106として出力される。

    [0070]一実施形態では、これらの解読及び復号化操作は、内容を受信する受信機によって、又は受信機に関連付けて行われる。

    [0071]別の実施形態では、コード化ブロックを暗号化することに加えて、ブロック識別子の符号化も行う。 この「識別子暗号化」は、「ブロック暗号化」の前又は後に行うことができる。 この場合、ペイロードの暗号化と識別子の暗号化とが別個であることが重要である。 そうすることによって、ペイロードを解読するのとは別個に識別子を得ることができる。 図12に、一般性を損なわずに、「ブロック暗号化」後に行われる「識別子暗号化」の符号化プロシージャが示される。 図12におけるユニット又はモジュールはそれぞれ、ハードウェア(回路、専用論理など)、ソフトウェア(汎用コンピュータシステム又は専用機械上で実行されるものなど)、又は両方の組合せを備えることがある。

    [0072]図12を参照すると、元のブロック1201が、A(1)、A(2)、. . . 、A(K)を備え、プリコード化モジュール1202に入力される。 プリコード化モジュール1202は、固定レート符号を使用してプリコード化ブロック1203を生成し、プリコード化ブロック1203は、P(1)、P(2)、. . . 、P(K)、P(K+1)、. . . 、P(N)を備える。 レートレスコーダ1204が、プリコード化ブロック1203を受信し、上述したようにレートレスコード化を行ってコード化ブロック1205を生成し、コード化ブロック1205は、コード化ブロックC(K)、. . . 、C(2)、及びC(1)を備える。 コード化ブロック1205はそれぞれ、ブロック識別子を含む。 例えば、ブロックC(k)は、ブロック識別子Kを含み、コード化ブロックC(2)は、ブロック識別子2を含み、コード化ブロックC(1)は、ブロック識別子1を含む。 コード化ブロック1205は、暗号化モジュール1206に入力される。

    [0073]暗号化モジュール1206は、レートレスコード化ブロックに関する次数値に基づいてコード化ブロック1205を暗号化して、伝送されるコード化ブロック、場合によっては暗号化ブロック1207を生成する。 一実施形態では、暗号化モジュール1206は、試験モジュール1221を含み、各レートレスコード化ブロックに関して関連付けられる次数が奇数であるかどうか試験する。 試験モジュール1221が、レートレスコード化ブロックに関する次数値が奇数であると判定した場合、ブロック暗号化モジュール1222は、そのレートレスコード化ブロックを暗号化する。 試験モジュール1221が、レートレスコード化ブロックに関する次数値が奇数でないと判定した場合、そのレートレスコード化ブロックは暗号化を行われない。 次数値にかかわらず、暗号化モジュール1206が、識別子暗号化モジュール1223及び1224を使用して、レートレスコード化ブロックに関するブロック識別子を暗号化する。 したがって、暗号化モジュールの出力1207は、コード化ブロック、場合によっては暗号化ブロック1007を備え、すべてのブロックが、暗号化されたブロック識別子を有する。

    [0074]ここでも、プリコード化段階を伴って、又は伴わずにこれを行うことができる。 プリコード化段階は、例示としてのみ含まれ、A(K)が上述した暗号化プロセスでのP(k)の代わりとなる場合には、除去することができる。

    [0075]別の実施形態では、符号化プロセスは、次数値「d 」及びブロック選択b(j,k)を生成するために使用される乱数発生器又は方法の知識をさらに秘匿することによって強化するものである。 この強化は、図10、11、及び12におけるものなど、上述した任意の実施形態に追加されることがある。 図13は、次数値「d 」及びブロック選択b(j,k)を生成するために使用される乱数発生器又は方法の知識を秘匿することを加えた、図12の符号化プロセスの一実施形態の流れ図である。 図13におけるユニット又はモジュールはそれぞれ、ハードウェア(回路、専用論理など)、ソフトウェア(汎用コンピュータシステム又は専用機械上で実行されるものなど)、又は両方の組合せを備えることがある。

    [0076]図13を参照すると、元のブロック1301が、A(1)、A(2)、. . . 、A(K)を備え、プリコード化モジュール1302に入力される。 プリコード化モジュール1302は、固定レート符号を使用してプリコード化ブロック1303を生成し、プリコード化ブロック1303は、P(1)、P(2)、. . . 、P(K)、P(K+1)、. . . 、P(N)を備える。 レートレスコーダ1304が、プリコード化モジュール1302からプリコード化ブロック1303を受信し、次数及び選択ブロック生成器1310から次数値及び選択を受信して、上述したようにレートレスコード化を行ってコード化ブロック1305を生成し、コード化ブロック1305は、コード化ブロックC(k)、. . . 、C(2)、及びC(1)を備える。 次数及び選択ブロック生成器1310は、k及び秘密Sを受信し、これらの値を使用して、d 及びb(i,j)を生成するためのプロセスを行う。 次数及び選択ブロック生成器1310は、送信機と受信機との両方に共通であり、例えば、(1つ又は複数の)同じ状態を有する(1つ又は複数の)同じ乱数発生器が使用される。 「k」及び共有秘密「S」に基づいて、このモジュールは、次数値及びパケット選択を生成する。 したがって、k番目のパケットを識別するためには、秘密「S」が送信機と指定受信機との間で共有されるという前提で、入力パケットの復号化を取り扱うのに必要なのは、ブロック識別子「k」を識別することだけである。 このとき、受信機での乱数発生器が送信機でのものと同じ乱数シーケンスを発生するので、k番目のパケットに関する同じ数値選択(次数値、パケット選択)を得るにはこれで十分である。 そのような状態を定義する共有秘密Sは、様々な既存の公開共有鍵又は他の基本暗号化方法を使用して、送信側と(1つ又は複数の)受信機との間で交換することができる。 より長い識別子は(パケットkに関して)最大でd 個の数値からなるので、これは、より長い識別子に役立つが、当然、パケットのブロック識別子は常に、単に、レートレスコード化パケットを形成する生のパケットの選択であってもよい。

    [0077]コード化ブロック1305はそれぞれ、ブロック識別子を含む。 例えば、ブロックC(k)は、ブロック識別子Kを含み、コード化ブロックC(2)は、ブロック識別子2を含み、コード化ブロックC(1)は、ブロック識別子1を含む。 コード化ブロック1305は、暗号化モジュール1306に入力される。

    [0078]暗号化モジュール1306は、レートレスコード化ブロックに関する次数値に基づいてコード化ブロック1305を暗号化して、伝送されるコード化ブロック、場合によっては暗号化ブロック1307を生成する。 一実施形態では、暗号化モジュール1306は、試験モジュール1321を含み、各レートレスコード化ブロックに関して関連付けられた次数が奇数であるかどうか試験する。 試験モジュール1321が、レートレスコード化ブロックに関する次数値が奇数であると判定した場合、ブロック暗号化モジュール1322は、そのレートレスコード化ブロックを暗号化する。 試験モジュール1321が、レートレスコード化ブロックに関する次数値が奇数でないと判定した場合、そのレートレスコード化ブロックは暗号化を行われない。 次数値にかかわらず、暗号化モジュール1306が、識別子暗号化モジュール1323及び1324を使用して、レートレスコード化ブロックに関するブロック識別子を暗号化する。 したがって、暗号化モジュールの出力1307は、コード化ブロック、場合によっては暗号化ブロック1307を備え、すべてのブロックが、暗号化されたブロック識別子を有する。

    [0079]ここでも、上述のプロセスは、プリコード化段階を伴って、又は伴わずに行うことができる。 プリコード化段階は、例示としてのみ含まれ、A(k)がここで暗号化プロセスでのP(k)の代わりとなる場合には、除去することができる。

    [0080]上述した実施形態は、「次数−1」コード化ブロックのみが暗号化されるように修正されることがある。 これは、上で概説した弱点を有するが、即ち、暗号化されていない次数n−1及びnブロックが、徹底的な探索によって元のブロックを依然として漏洩する可能性があるが、この修正は、一時的な非指定受信者から情報を秘匿する「弱い暗号化」方法となりうる。

    [0081]上述した実施形態は、非指定受信者からプリコード化段階の知識を秘匿するように修正されることがある。 これは、基本暗号化技法を使用して行うことができる。 一実施形態では、例えば、符号ファミリから1つの符号をランダムに選択することによってこれが達成される。

    [0082]上述した実施形態は、次数数値に基づいて暗号化を行うか否かを決定する他の方法を使用することがある。 例えば、一実施形態では、システムは、d =1及びd =偶数値を有するすべてのレートレスコード化ブロックを暗号化し、即ち奇数値>1以外のすべてを暗号化する。 別の実施形態では、さらなる次数値を暗号化するか否かについて、暗号化するかどうかの決定が次数分布の詳細に基づく。 例えば、一実施形態では、上で示したRaptor符号に関する「次数分布例」で、システムは、d =19を使用するブロックを暗号化しないことを選択する。 これは、値d =18又はd =20が存在せず、(2つ以上の他の次数値の組合せを使用する)「次数−1」の生成が、「W×W」個の組合せを単にチェックするよりも若干難しいからである。 別の実施形態では、パケットを暗号化するか否かについて確率的な決定が行われ、ここで、確率は次数値に依存する。

    [0083]さらに別の実施形態では、どのような場合に暗号化するかを決定するためのプロセスに、現行のブロック選択及び次数値、さらにまた先行のブロック選択及び次数値がかかわる方法が修正される。 例えば、コード化パケットC(k)=a+b+cであり、C(j)、j<kに関して、パケットがa+b、a+c、又はa+c、又はa+b+c+x(ここで、「x」は、何らかの他のブロック)を有さないことが分かっている場合、C(k)を暗号化しなくても安全であるという決定がなされることがある。

    [0084]同様に、それ自体は元の内容パケットと等しくないプリコード化パケットを、任意の先行のレートレスコード化パケットをXOR演算することによっては回復することができないと判定することができる場合、暗号化しないという決定を下すことができる。 即ち、先行して伝送されたパケットをランダムに組み合わせることからは、プリコード化された内容からのパリティブロックのみが回復されることがあると判定された場合、暗号化しなくても、依然として、元の(コード化されていない)内容の識別を秘匿するのに十分であることがある。

    [0085]ここでも、これらの実施形態は、プリコード化段階を含む又は含まないことがある。 プリコード化段階は、例示としてのみ含まれ、A(k)がここで暗号化プロセスにおいてP(k)の代わりとなる場合には、除去することができる。

    [0086]図14は、上述した強化を含むように図13が修正された1つの場合の一例を示す。 図13におけるユニット又はモジュールはそれぞれ、ハードウェア(回路、専用論理など)、ソフトウェア(汎用コンピュータシステム又は専用機械上で実行されるものなど)、又は両方の組合せを備えることがある。

    [0087]図14を参照すると、元のブロック1301が、A(1)、A(2)、. . . 、A(K)を備え、プリコード化モジュール1402に入力される。 プリコード化モジュール1402は、固定レート符号を使用してプリコード化ブロック1403を生成し、プリコード化ブロック1403は、P(1)、P(2)、. . . 、P(K)、P(K+1)、. . . 、P(N)を備える。 レートレスコーダ1404は、プリコード化モジュール1402からプリコード化ブロック1403を受信し、次数及び選択ブロック生成器1410から次数値及び選択を受信し、上述したレートレスコード化を行ってコード化ブロック1405を生成し、コード化ブロック1405は、コード化ブロックC(k)、. . . 、C(2)、及びC(1)を備える。 次数及び選択ブロック生成器1410は、k及び共有秘密Sを受信し、これらの値を使用して、d 及びb(i,j)を生成するためのプロセスを行う。 上述したように、共有秘密Sは、様々な基本暗号化方法を使用して送信側と(1つ又は複数の)受信機との間で交換することができる。 秘密Sは、処理ブロック1411で過去の(回復された)d 及びb(i,j)選択と共に記憶され、パケットの番号「k」などパケットの一意の識別子が検索されるときに、パケットに関する任意のd 及びb(i,j)を生成できるようにする。

    [0088]コード化ブロック1405はそれぞれ、ブロック識別子を含む。 例えば、ブロックC(k)は、ブロック識別子Kを含み、コード化ブロックC(2)は、ブロック識別子2を含み、コード化ブロックC(1)は、ブロック識別子1を含む。 コード化ブロック1405は、暗号化モジュール1406に入力される。

    [0089]暗号化モジュール1406は、レートレスコード化ブロックに関する次数値に基づいてコード化ブロック1405を暗号化し、伝送されるコード化ブロック、場合によっては暗号化ブロック1407を生成する。 一実施形態では、暗号化モジュール1406は、試験モジュール1421を含み、現行の次数値(例えば、レートレスコード化ブロックがコード化される次数値)及び過去の次数値を試験して、暗号化するかどうか判定する。 試験モジュール1421が、コード化ブロックを暗号化すると決定した場合、ブロック暗号化モジュール1422は、そのレートレスコード化ブロックを暗号化する。 試験モジュール1421が、過去及び現行の次数値に基づいて暗号化を行うべきでないと決定した場合、そのレートレスコード化ブロックは暗号化を行われない。 次数値にかかわらず、暗号化モジュール1406が、識別子暗号化モジュール1423及び1424を使用して、レートレスコード化ブロックに関するブロック識別子を暗号化する。 したがって、暗号化モジュールの出力1407は、コード化ブロック、場合によっては暗号化ブロック1407を備え、すべてのブロックが、暗号化されたブロック識別子を有する。

    [0090]説明した技法によって使用されることがあるいくつかの目標シナリオが存在する。 これらは、保守する必要がある機密媒体/データを伝送するためにレートレス符号が使用される任意のシナリオを含む。 これらは、通常は、複数のユーザが同じ内容を受信することを望むが、ユーザが、非常に異なるチャネル状態(パケットの損失)である場合、及び/又は内容又はパケットを同時にダウンロードしない場合、及び/又はユーザが、互いに素な時間間隔で内容をダウンロードすることがある場合である。 例えば、シナリオは、ユーザが時間と共に増分的に更新を行う又は異なる時間に更新を行うソフトウェア更新、異なる「ピア」間の接続が非常に多様でありうるピアツーピア「P2P」シナリオ、多くのサーバ間に分散された内容の送信、ユーザが非同期で接続するが全員が高速再生時間を得ることができるストリーミングアプリケーションをサポートする周期的放送アーキテクチャ(例えば「スカイスクレーパー」システム)を含むことがある。

    [0091] コンピュータシステムの一例
    図15は、ここで説明する操作の1つ又は複数を行うことがあるコンピュータシステムの一例のブロック図である。 図15を参照すると、コンピュータシステム1500は、例示のクライアント又はサーバコンピュータシステムを備えることがある。 コンピュータシステム1500は、情報を通信するための通信機構又はバス1511と、バス1511と結合された、情報を処理するための処理装置1512とを備える。 処理装置1512は、例えばペンティアム(Pentium)(登録商標)、PowerPC(登録商標)、アルファ(Alpha)(登録商標)などのマイクロプロセッサを含み、しかしマイクロプロセッサに限定されない。

    [0092]システム1500は、さらに、バス1511に結合された、処理装置1512によって実行すべき情報及び命令を記憶するためのランダムアクセスメモリ(RAM)、又は他の動的記憶デバイス1504(主記憶装置と呼ばれる)を備える。 また、主記憶装置1504は、処理装置1512による命令の実行中に一時変数又は他の中間情報を記憶するために使用されることもある。

    [0093]また、コンピュータシステム1500は、バス1511に結合された、処理装置1512のための静的情報及び命令を記憶するための読み出し専用メモリ(ROM)及び/又は他の静的記憶デバイス1506と、磁気ディスク又は光ディスクなどのデータ記憶デバイス1507及びその対応するディスクドライブとを備える。 データ記憶デバイス1507は、情報及び命令を記憶するためにバス1511に結合される。

    [0094]さらに、コンピュータシステム1500は、バス1511に結合された、コンピュータユーザに情報を表示するための陰極線管(CRT)又は液晶ディスプレイ(LCD)などのディスプレイデバイス1521に結合されることがある。 また、英数字及び他のキーを含む英数字入力デバイス1522が、情報及びコマンド選択を処理装置1512に通信するためにバス1511に結合されることもある。 追加のユーザ入力デバイスは、バス1511に結合された、方向情報及びコマンド選択を処理装置1512に通信するため、及びディスプレイ1521上でのカーソルの動きを制御するためのマウス、トラックボール、トラックパッド、スタイラス、又はカーソル方向キーなどのカーソル制御機構1523である。

    [0095]バス1511に結合されることがある別のデバイスは、ハードコピーデバイス1524であり、これは、紙、フィルム、又は同様のタイプの媒体などの媒体に情報を印刷するために使用されることがある。 バス1511に結合されることがある別のデバイスは、電話又はハンドヘルドパームデバイスへの通信のための有線/無線通信機能1525である。

    [0096]システム1500及び関連ハードウェアの構成要素の任意のもの又はすべてが本発明で使用されることがあることに留意されたい。 しかし、コンピュータシステムの他の構成は、いくつか又はすべてのデバイスを含むことがあることを理解することができる。

    [0097]前述の説明を読めば、本発明の多くの変更形態及び変形形態が当業者に間違いなく明らかになるであろうが、例として示されて説明された任意の特定の実施形態が、限定とみなされるようには無論意図されていないことを理解すべきである。 したがって、様々な実施形態を詳細に言及することは、本発明にとって本質とみなされる特徴のみをそれ自体に挙げる特許請求の範囲を限定するものではない。

    QQ群二维码
    意见反馈