(57)【要約】      （修正有）【課題】コンピュータが実行するファイルの誤り訂正符号化及び暗号化方法を提供する。【解決手段】方法は、ファイルを２つ以上のブロックＣ１、Ｃ２に分割する。第１のブロックＣ１は所定の暗号化キーＫを使用して暗号化する。第１の暗号化ブロックＣ１*は、第１のブロックの第１及び第２前方誤り訂正符号ＦＥＣ１１、ＦＥＣ１２を使用して２回符号化する。後続ブロックＣｉはそれぞれ、代数演算を実行して暗号化する。暗号化ブロックＣｉ*は、このブロックの第１及び第２前方誤り訂正符号を使用して２回符号化する。このときに暗号インデクシング関数が、第２前方誤り訂正符号により使用されたインデックスのセットを提供して第２符号化チャンクＣｉ２’を生成する。各暗号化ブロックＣ１*、Ｃｉ*の第１符号化チャンクＣ１１’、Ｃｉ１’を出力する。【選択図】図２
2020109938.tif 000002
【特許請求の範囲】
【請求項１】
ファイルを誤り訂正符号化し暗号化するコンピュータ実行方法であって、
ａ）ファイルを少なくとも２つのブロック（Ｃ１，・・・，Ｃｎ）に分割し（Ｓ１）、
ｂ）そのブロックの第１のブロック（Ｃ１）は、所定の暗号化キー（Ｋ）を用いて暗号化する（Ｓ２）ことで第１の暗号化ブロック（Ｃ１＊）とし、該第１の暗号化ブロック（Ｃ１＊）を、前記第１のブロックの第１前方誤り訂正符号（ＦＥＣ１１）及び第２前方誤り訂正符号（ＦＥＣ１２）を用いて２回符号化する（Ｓ３）ことで前記第１の暗号化ブロック（Ｃ１＊）の第１符号化チャンク（Ｃ１１’）及び第２符号化チャンク（Ｃ１２’）とし、
ｃ）後続の前記ブロック（Ｃｉ）は、そのブロック（Ｃ２，・・・，Ｃｎ）ごとに、それぞれの前に処理された暗号化ブロックの第２符号化チャンクを用いて代数演算を実行することにより暗号化する（Ｓ４）ことで暗号化ブロック（Ｃｉ＊）とし、該後続の暗号化ブロック（Ｃｉ＊）のそれぞれを、当該ブロックの第１前方誤り訂正符号（ＦＥＣｉ１）及び第２前方誤り訂正符号（ＦＥＣｉ２）を用いて２回符号化する（Ｓ５）ことで該暗号化ブロック（Ｃｉ＊）の第１符号化チャンク（Ｃｉ１’）及び第２符号化チャンク（Ｃｉ２’）とし、このときに、前記暗号化キー（Ｋ）によりパラメータ化される暗号インデクシング関数（Ｆｉｉ）が、当該ブロックの前記第２前方誤り訂正符号（ＦＥＣｉ２）により使用されるインデックスのセットを提供して当該ブロックの前記第２符号化チャンク（Ｃｉ２’）を生成し、
ｄ）前記各暗号化ブロック（Ｃ１＊，・・・，Ｃｎ＊）の第１符号化チャンク（Ｃ１１’，・・・，Ｃｎ１’）を出力する（Ｓ６）、ことを含むコンピュータ実行方法。
【請求項２】
前記暗号インデクシング関数（Ｆｉｉ）は、これを使用する前記ブロックの数によってパラメータ化する、請求項１に記載のコンピュータ実行方法。
【請求項３】
前記第１のブロック及び後続の前記ブロックのいずれか１つ以上の前記第１及び第２前方誤り訂正符号が同一か又は異なる、請求項１に記載のコンピュータ実行方法。
【請求項４】
別々の前記暗号インデクシング関数を前記ブロックごとの前記前方誤り訂正符号で使用する、請求項１〜３のいずれか１項に記載のコンピュータ実行方法。
【請求項５】
前記第１の暗号化チャンク（Ｃ１＊）のシンボルは、前記第１の暗号化チャンク（Ｃ１＊）を符号化する前にシャッフルする、請求項１〜４のいずれか１項に記載のコンピュータ実行方法。
【請求項６】
前記シンボルのシャッフリングは、前記暗号化キー（Ｋ）によってパラメータ化する、請求項５に記載のコンピュータ実行方法。
【請求項７】
前記暗号インデクシング関数（Ｆｉ２）は、前記インデックスのセットをランダムな順序で提供するように構成する、請求項１〜６のいずれか１項に記載のコンピュータ実行方法。
【請求項８】
前記ファイルのブロックが均等か又は不均等のサイズである、請求項１〜７のいずれか１項に記載のコンピュータ実行方法。
【請求項９】
復号モジュールが前記各暗号化ブロックの第１符号化チャンク（Ｃ１１’，Ｃ２１’）を受信し、
ａ）該第１符号化チャンク（Ｃ１１’，Ｃ２１’）の第１の第１符号化チャンク（Ｃ１１’）は、前方誤り訂正復号器を使用して復号した後に所定の解読キー（Ｋ’）を用いて解読し（Ｓ８）、
ｂ）後続の前記第１符号化チャンク（Ｃｉ１’）はそれぞれ、
前方誤り訂正復号器を使用して復号し（Ｓ９）、
そして、それぞれの前に処理された前記ブロックの第２符号化チャンクを用いて代数演算を実行することによって解読し（Ｓ１０）、これらは前方誤り訂正符号を用いて符号化されたものであって、このとき、前記解読キー（Ｋ’）によってパラメータ化される暗号インデクシング関数が、前記前方誤り訂正符号によって使用されたインデックスのセットを提供して、前に処理された前記チャンクから前記第２符号化チャンクを生成し、
ｃ）解読済み符号化チャンクを出力する（Ｓ１１）、コンピュータ実行方法。
【請求項１０】
ファイルを誤り訂正符号化し暗号化する符号化モジュールであって、
ａ）ファイルを少なくとも２つのブロック（Ｃ１，・・・，Ｃｎ）に分割し、
ｂ）所定の暗号化キー（Ｋ）を用いて前記ブロックの第１のブロック（Ｃ１）を暗号化することで第１の暗号化ブロック（Ｃ１＊）とし、当該第１のブロックの第１前方誤り訂正符号及び第２前方誤り訂正符号を用いて前記第１の暗号化ブロック（Ｃ１＊）を２回符号化することで該第１の暗号化ブロック（Ｃ１＊）の第１符号化チャンク（Ｃ１１’）及び第２符号化チャンク（Ｃ１２’）を提供し、
ｃ）後続の前記ブロック（Ｃ２，・・・，Ｃｎ）をそれぞれの前に処理された暗号化ブロックの第２符号化チャンクを用いて代数演算を実行することにより暗号化することで暗号化ブロック（Ｃｉ＊）とし、当該暗号化ブロック（Ｃｉ＊）のそれぞれを該暗号化ブロックの第１前方誤り訂正符号（ＦＥＣｉ１）及び第２前方誤り訂正符号（ＦＥＣｉ２）を用いて２回符号化することで当該暗号化ブロック（Ｃｉ＊）の第１符号化チャンク（Ｃｉ１’）及び第２符号化チャンク（Ｃｉ２’）とし、このときに、前記暗号化キー（Ｋ）によってパラメータ化される暗号インデクシング関数（Ｆｉｉ）が、当該ブロックの前記第２前方誤り訂正符号（ＦＥＣｉ２）によって使用されるインデックスのセットを提供して当該ブロックの前記第２符号化チャンク（Ｃｉ２’）を生成し、
ｄ）各前記暗号化ブロックの第１符号化チャンク（Ｃ１１’，・・・，Ｃｎ１’）を出力する、ように構成された符号化モジュール。
【請求項１１】
ａ）ファイルを入力するように構成された入力モジュール（１０１）と、
ｂ）前記ファイルを少なくとも２つのブロックに分割するように構成された分割モジュール（１０２）と、
ｃ）請求項１０に記載の符号化モジュール（１０３）と、
ｄ）第１符号化チャンク（Ｃ１１’，Ｃ２１’）を出力するように構成された出力モジュール（１０４）とを備えた送信器。
【請求項１２】
請求項１１に記載の符号化モジュールから受信されるファイルを誤り訂正復号し解読する復号モジュールであって、
前方誤り訂正復号器を使用して第１符号化チャンク（Ｃ１１’，Ｃ２１’）の第１の第１符号化チャンク（Ｃ１１’）を復号した後に所定の解読キー（Ｋ’）を用いて解読し、
後続の前記第１符号化チャンク（Ｃｉ１’）はそれぞれ、復号した後にそれぞれの前に処理されたブロックの第２符号化チャンクを用いて代数演算を実行することによって解読し、これらは前方誤り訂正符号を用いて符号化されたものであって、このとき、前記解読キー（Ｋ’）によってパラメータ化される暗号インデクシング関数が、前記前方誤り訂正符号によって使用されたインデックスのセットを提供して、前に処理された前記チャンクから前記第２符号化チャンクを生成し、
解読済み符号化チャンク（Ｃ１１，・・・，Ｃｎ２）を出力する、ように構成された復号モジュール。
【請求項１３】
ａ）請求項１１に記載の送信器から第１符号化チャンクを受信するように構成された受信モジュール（２０１）と、
ｂ）請求項１２に記載の復号モジュール（２０２）と、
ｃ）解読済み符号化ブロックを出力するように構成された出力モジュール（２０３）とを備えた受信器。
【請求項１４】
デジタルコンピュータの内部メモリに直接ロード可能なコンピュータプログラムであって、該プログラムがコンピュータで実行されると請求項１〜９のいずれか１項に記載のステップを実行させるソフトウェアコード部分を含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータが実行するファイルの前方誤り訂正符号化及び暗号化方法、符号化モジュール、送信器、復号モジュール、受信器、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
相互接続された装置がデータを交信し、通信ネットワークを介して相互に通信する場合、データ伝送はセキュアで信頼性があるものでなければならない。一般に、２つの方法論がデータ伝送のために使用可能である。ＴＣＰ（Transmission Control Protocol）によるなどのフィードバックを伴うものか、又はフィードバックを伴わないものである。フィードバックが提供される場合、送信データは順番に到着することが保証され、欠落した又は誤りのある受信データブロックが繰り返されることによって送信エラーを防ぐことができる。ただし、フィードバックを使用すると、一般的に転送速度は遅くなる。フィードバックのない場合、例えばデータダイオードによる送信の場合など、送信情報が順番通りであることは保証されず、部分的に失われる可能性がある。伝送エラーからデータを保護するために、前方誤り訂正符号を適用することができる。さらに機密性を保証するために、対称又は非対称暗号化アルゴリズムを使用してデータを暗号化することができる。暗号化と前方誤り訂正の組み合わせは、一般に計算集約的で複雑なデータファイル全体に対して実行されるのが通例である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
小電力で計算能力が低くそしてメモリ容量の少ないデバイス、例えばモノのインターネット（ＩｏＴ）デバイス等の場合には、伝送及び暗号化スキームが効率的で効果的であることが要求される。
本発明の目的は、特にメモリ容量が少ないか計算能力の低い又はその両方であるデバイス間の伝送に関し、暗号保護したセキュアなファイルの伝送を可能にすることにある。
【課題を解決するための手段】
【０００４】
上記目的は、独立形式請求項の特徴によって解決される。引用形式の請求項は、本発明の発展態様を含む。
【０００５】
本発明の第１の態様は、コンピュータが実行するファイルの誤り訂正符号化及び暗号化方法を対象とする。このコンピュータ実行方法は、
ａ）ファイルを少なくとも２つのブロックに分割し、
ｂ）そのブロックの第１のブロックは、所定の暗号化キーを用いて暗号化することで第１の暗号化ブロックとし、該第１の暗号化ブロックを、この第１のブロックの第１前方誤り訂正符号及び第２前方誤り訂正符号を用いて２回符号化することで該第１の暗号化ブロックの第１符号化チャンク及び第２符号化チャンクとし、
ｃ）後続のブロックは、そのブロックごとに、それぞれの前に処理された暗号化ブロックの第２符号化チャンクを用いて代数演算を実行することにより暗号化することで暗号化ブロックとし、該後続の暗号化ブロックのそれぞれを、当該ブロックの第１前方誤り訂正符号及び第２前方誤り訂正符号を用いて２回符号化することで該暗号化ブロックの第１符号化チャンク及び第２符号化チャンクとし、このときに、前記暗号化キーによりパラメータ化される暗号インデクシング関数が、当該ブロックの第２前方誤り訂正符号により使用されたインデックスのセットを提供して当該ブロックの第２符号化チャンクを生成し、
ｄ）前記各暗号化ブロックの第１符号化チャンクを出力する、ことを含む。
【０００６】
本発明によれば、暗号法の暗号化と前方誤り訂正符号化とを同時に実行でき、符号化器側と復号器側のメモリ消費を軽減できる利点がある。機密情報を、伝送エラーに対して保護し且つ機密性のために保護することができる。ファイル、すなわちデータファイル又は情報は、少なくとも２つのブロックに分割され、各ブロックは別々に処理することができる。２番目以降の後続する各ブロックは、同じ方法ステップを適用して暗号化され且つ前方誤り訂正符号化される。この方法では高度な暗号化／解読関数の集中的な使用を避けることができるので、同時の暗号化及び符号化は、計算時間かメモリあるいはその両方を節約し得る。通信の秘密を維持する一方、ファイルの第１の（最初の）ブロックのみ高度な暗号化を使用して暗号化する。この方法は、一般に電力と複雑性のどちらか又は両方の制約を受けるデバイスである送信器や受信器としてのモノのインターネットデバイスに有用である。本方法のメモリ消費は、ファイルそのものに前方誤り訂正と暗号化を実行する場合に比べて低いので好ましい。
【０００７】
以下の説明において、別の意味の指定をしていなければ、「暗号化」は暗号法の暗号化アルゴリズムに関連し、「符号化」は前方誤り訂正アルゴリズムに関連する。
【０００８】
本方法ステップの出力は、原ファイルの各ブロックそれぞれの第１符号化チャンクを含む。第１符号化チャンクには、暗号化及び符号化した、原ファイルの情報のビットが含まれる。第１符号化チャンクを、例えば受信器に送信する。このコンピュータ実行方法は、具体的には少なくともプロセッサで実行される。
【０００９】
別の意味を指定しなければ、「計算」、「実行」、「コンピュータが実行」、「演算」、「決定（判定）」、「生成」、「構成」、「再構成」などの用語は、具体的には物理的データとして提示されるデータを変更するか生成する、あるいは変更して生成する、コンピュータ又はプロセッサによって実行されるアクション、プロセス、ステップのいずれか１つ以上に好ましくは関連している。「コンピュータ」は、広く解釈すべきで、パーソナルコンピュータ、サーバ、ポケットＰＣデバイス、モバイルコンピューティングデバイス、データ処理を行える通信デバイス、又はＣＰＵやマイクロプロセッサなどのプロセッサであり得る。
【００１０】
本コンピュータ実行方法で使用される各ブロック用の第１及び第２前方誤り訂正符号のいずれか又は両方は、好ましくは、噴水符号（fountain codes）又はレートレス消失訂正符号である。
【００１１】
代数演算は、各暗号化ブロックを出力する排他的論理和関数（ＸＯＲ関数）であることが好ましい。
【００１２】
第１のブロックの暗号化は、所定の暗号化キーを使用して実行される。対称又は非対称暗号化アルゴリズムを適用できる。
【００１３】
インデックス生成関数と呼ぶことができる暗号インデクシング関数は、暗号化キーによってパラメータ化され、２番目以降のブロックの符号化チャンクのインデックスシンボルにインデックスのセットを提供する。暗号インデクシング関数によって提供されるインデックスの順番は、好ましくは暗号化されるので、容易には解読できない。
【００１４】
本コンピュータ実行方法の好ましい態様によれば、暗号インデクシング関数は、これを使用するブロックの数によってパラメータ化可能である。
【００１５】
暗号インデクシング関数がブロックごとに違えば、より強力な符号化が提供される。暗号インデクシング関数は、受信側で、受信した符号化チャンクを復号するために知られているべきである。
【００１６】
本コンピュータ実行方法の好ましい態様によれば、第１のブロック及び後続のブロックのいずれか１つ以上の第１及び第２前方誤り訂正符号は、同様のものであるか又は異なる。
【００１７】
ブロックごとの第１及び第２前方誤り訂正符号は、同一の又は異なる符号かアルゴリズムに基づく。適用された前方誤り訂正符号は、復号のために受信側で知られているべきである。
【００１８】
本コンピュータ実行方法の好ましい態様によれば、別々の暗号インデクシング関数がブロックごとの前方誤り訂正符号によって使用される。
【００１９】
暗号インデクシング関数がブロックごとに違うことで、より強力な符号化が提供される。
【００２０】
コンピュータが実行する本方法の好ましい態様によれば、第１暗号化チャンクのシンボルは、第１暗号化チャンクを符号化する前にシャッフルすることができる。
【００２１】
より強力な暗号化を提供するために、原ファイルの第１のブロックのシンボルは、シャッフリングアルゴリズム（スキーム）を使用してシャッフルすることができる。そのシャッフリングスキームは、受信側で知られているべきである。これらの特性をもつ既製のシャッフリングアルゴリズムを使用できる。
【００２２】
本コンピュータ実行方法の好ましい態様によれば、シンボルのシャッフリングは、暗号化キーによってパラメータ化することができる。
【００２３】
シャッフリングスキームは、暗号化キーによって保護することもできる。
【００２４】
本コンピュータ実行方法の好ましい態様によれば、暗号インデクシング関数は、ランダムな順序のインデックスのセットを提供するように構成することができる。
【００２５】
本コンピュータ実行方法の好ましい態様によれば、ファイルのブロックは均等なサイズとするか又は不均等のサイズとすることができる。
【００２６】
ブロックのサイズは、望むセキュリティレベルに基づいて決定すべきである。
【００２７】
本コンピュータ実行方法の好ましい態様によれば、復号モジュールが各暗号化ブロックの第１符号化チャンクを受信し、
ａ）そのうちの第１の第１符号化チャンクは、前方誤り訂正復号器を使用して復号した後に所定の解読キーを使用して解読し、
ｂ）後続の第１符号化チャンクはそれぞれ、
前方誤り訂正復号器を用いて復号し、
そして、それぞれの前に処理されたブロックの第２符号化チャンクを用いて代数演算を実行することによって解読し、これらは前方誤り訂正符号を用いて符号化されたものであって、このとき、前記解読キーによってパラメータ化される暗号インデクシング関数が、前方誤り訂正符号によって使用されたインデックスのセットを提供して、前に処理されたチャンクから第２符号化チャンクを生成し、
ｃ）解読済み符号化チャンクを出力する。
【００２８】
各ブロックの第１符号化チャンクは、例えば低電力デバイスに送られる。受信側で第１符号化チャンクを復号する。したがって、符号化器と復号器は関連しているのが好ましい。第１のブロックの第１符号化チャンクの解読は、暗号化方式に応じた適切な解読キーを使用して解読する。解読と復号のためにそれぞれ使用される代数演算と前方誤り訂正復号器のいずれか又は両方は、暗号化と符号化のためにそれぞれ使用される演算と符号に関連していることが好ましい。例えば、使用された演算及び符号に関する必要な情報が受信器に送信され、受信器側で適切に記憶することなどができる。
【００２９】
本発明の別の態様は、ファイルを誤り訂正符号化し暗号化する符号化モジュールを対象とする。この符号化モジュールは、
ａ）ファイルを少なくとも２つのブロックに分割し、
ｂ）所定の暗号化キーを使用して第１のブロックを暗号化することで第１の暗号化ブロックとし、当該第１のブロックの第１前方誤り訂正符号及び第２前方誤り訂正符号を使用して第１の暗号化ブロックを２回符号化することで第１の暗号化ブロックの第１符号化チャンク及び第２符号化チャンクを提供し、
ｃ）後続の各ブロックをそれぞれの前に処理された暗号化ブロックの第２符号化チャンクを用いて代数演算を行うことによって暗号化することで暗号化ブロックとし、これら暗号化ブロックを該暗号化ブロックの第１前方誤り訂正符号及び第２前方誤り訂正符号を使用して２回符号化することで当該暗号化ブロックの第１符号化チャンク及び第２符号化チャンクとし、このときに、前記暗号化キーによってパラメータ化される暗号インデクシング関数が、当該ブロックの第２前方誤り訂正符号によって使用されたインデックスのセットを提供して当該ブロックの第２符号化チャンクを生成し、
ｄ）各暗号化ブロックの第１符号化チャンクを出力する、ように構成される。
【００３０】
この符号化モジュールは、例えば、送信器の一部であってもよいし、通信リンクを介して受信デバイスへファイル又はデータを送るように構成された伝送／送信デバイスに接続されたものでもよい。
【００３１】
本発明の別の態様は送信器を対象とし、該送信器は、
ａ）ファイルを入力するように構成された入力モジュールと、
ｂ）そのファイルを少なくとも２つのブロックに分割するように構成された分割モジュールと、
ｃ）本発明に係る符号化モジュールと、
ｄ）第１符号化チャンクを出力するように構成された出力モジュールとを備える。
【００３２】
本発明の別の態様は、本発明に係る符号化モジュールから受信されるファイルを誤り訂正復号し解読する復号モジュールを対象とする。この復号モジュールは、
前方誤り訂正復号器を使用して第１の第１符号化チャンクを復号した後に所定の解読キーを使用して解読し、
後続の第１符号化チャンクはそれぞれ、復号した後にそれぞれの前に処理されたブロックの第２符号化チャンクを用いて代数演算を実行することによって解読し、これらは前方誤り訂正符号を用いて符号化されたものであって、このとき、前記解読キーによってパラメータ化される暗号インデクシング関数が、前方誤り訂正符号によって使用されたインデックスのセットを提供して、前に処理されたチャンクから第２符号化チャンクを生成し、
解読済み符号化チャンクを出力する、ように構成される。
【００３３】
本発明の別の態様は受信器を対象とし、該受信器は、
ａ）本発明に係る送信器から第１符号化チャンクを受信するように構成された受信モジュールと、
ｂ）本発明に係る復号モジュールと、
ｃ）解読済み符号化ブロックを出力するように構成された出力モジュールとを備える。
【００３４】
上記送信器及び受信器は、例えば、当該受信器及び送信器が好ましくは無線又は有線の通信リンクやネットワークを介して接続されるシステムを形成する。該システム、送信器、受信器のいずれか１つ以上の少なくとも一部は、ソフトウェアかハードウェア、又はこれらを組み合わせて実施することができる。
【００３５】
さらに、本発明は、デジタルコンピュータの内部メモリに直接ロード可能なコンピュータプログラムに関する。このコンピュータプログラムは、当該プログラムを実行したコンピュータに本発明に係る上記方法のいずれかの各ステップを実行させるソフトウェアコード部分を含む。コンピュータプログラムは、例えば、ＵＳＢスティックなどの記憶媒体か、ダウンロード可能なデータファイルであり得る。
【図面の簡単な説明】
【００３６】
次の図面を参照して本発明をより詳細に説明する。
【図１】本発明に係るコンピュータ実行方法のフローチャート。
【図２】本発明に係るコンピュータ実行方法の概略説明図。
【図３】本発明に係るコンピュータ実行方法の別の概略説明図。
【図４】本発明に係る送信器の概略図。
【図５】本発明に係る受信器の概略図。
【図６】本発明に係る送信器及び受信器を含むシステムの概略図。
【発明を実施するための形態】
【００３７】
各図面において、同等の部分には同じ参照符号が付されている。
【００３８】
図１は、本発明に係る、コンピュータが実行する方法のフローチャートを示す。この方法は、例えば、その方法ステップの少なくとも一部を実行するための少なくとも１つのプロセッサを備えた送信器により実行され、この送信器は、その方法ステップの少なくとも一部を実行するための少なくとも１つのプロセッサを備えた受信器と接続される。
【００３９】
当該セットアップは、セキュアでエラーのない方法でファイルＦを送信することを目的とする。好ましくは送信（発信）側が本発明に係る符号化モジュールを含む。最初のステップＳ１において、データファイル又はデータパッケージである所定のファイルＦが読み込まれ、多数のシンボルからなる少なくとも２つのブロックに分割される。ブロックのサイズは同じでも違っていてもかまわない。ブロックの数は、ファイルサイズ、ブロック長、伝送エラーや改ざんに対する保護のレベルのいずれか１つ以上に依存する。
【００４０】
ブロック数が多いほど、よりセキュアな伝送を実現できる。ファイルのブロックは、通常、伝送損失又はエラーのために受信側で失われる可能性があるシンボルを含む。したがって、前方誤り訂正符号、好ましくは噴水符号（fountain code）が、伝送損失又はエラーからコンテンツを保護するために、以降において使用される。
【００４１】
本例のコンピュータ実行方法の次のステップＳ２において、第１の（最初の）ブロックを、対称又は非対称暗号化アルゴリズムを用いた所定の暗号化キーにより暗号化することで、第１の暗号化ブロックとする。
【００４２】
必要に応じて、第１の暗号化ブロックのシンボルを符号化前にシャッフルすることで、より強力な保護を提供できる。シャッフリングスキームは、暗号化キーによってパラメータ化することができる。
【００４３】
次のステップＳ３において、第１の暗号化ブロックは、第１のブロックの第１前方誤り訂正符号及び第２前方誤り訂正符号を使用して２回、前方誤り訂正符号化する。第１のブロックの第１前方誤り訂正符号及び第２前方誤り訂正符号は、同一か又は異なる符号に基づく。言い換えると、前方誤り訂正は、第１の暗号化ブロックに対して２回実行される。
【００４４】
このステップにより、第１の暗号化ブロックの第１符号化チャンクと第２符号化チャンクとが生成される。第１及び第２符号化チャンクは、受信側で第１のブロックの再構成を可能にするために、使用した前方誤り訂正符号に従う第１のブロックのエキストラシンボルを含む。第１の暗号化ブロックの第１符号化チャンクを出力する一方、第１の暗号化ブロックの第２符号化チャンクはさらに処理する。第１の暗号化ブロックの第１及び第２符号化チャンクは、受信側で第１のブロックの情報コンテンツを復元できるようにするための情報を含む。
【００４５】
次のステップＳ４において、後続のブロックをそれぞれ暗号化し、後続の暗号化ブロックを生成する。この暗号化は、代数演算、好ましくは排他的論理和演算を、後続の各ブロックと、その前に処理したブロックの第２符号化チャンクに対して実行することに基づいている。第２の（２番目の）ブロックの場合、第１のブロックの第２符号化チャンクを使用して暗号化が実行されることで、第２の暗号化ブロックになる。
【００４６】
次のステップＳ５において、処理した各後続ブロックの暗号化ブロックを、それぞれのブロックの第１及び第２前方誤り訂正符号を使用して、２回符号化する。第２前方誤り訂正符号は、所定の暗号インデクシング関数によって提供されるインデックスのセットに基づいて実行される。暗号インデクシング関数がインデックスを生成し、各ブロック数によってパラメータ化することもできる。さらに、ブロックサイズが異なる場合には、インデクシング関数をブロックサイズに適応させることができる。別々の暗号インデクシング関数を、異なるブロックの対応する前方誤り訂正符号で使用することができる。暗号インデクシング関数は、好ましくは、ランダムな順序でインデックスのセットを提供する。
【００４７】
このステップＳ５の出力は、各暗号化ブロックの第１及び第２符号化チャンクである。第１符号化チャンクを出力する一方、原ファイルＦの未処理のブロックが残っていれば第２符号化チャンクを処理する。このステップと前のステップは、ファイルの第１の（最初の）ブロックを除くすべてのブロックに対して実行される。
【００４８】
ステップＳ６において、各暗号化ブロックの第１符号化チャンクを出力し、受信器へ送信する。この伝送は、例えば、データダイオードを介して、又はＩｏＴデバイスなどの低電力低メモリ容量デバイスの間で、あるいはその両方で、行われる。
【００４９】
受信器は、本発明に係る復号モジュールを含むべきである。第１符号化チャンクが受信器で受信され、ファイルＦの原ソース情報を復元するために、ステップＳ７で復号モジュールの入力として提供される。
【００５０】
次のステップＳ８において、第１の（最初の）第１符号化チャンクを前方誤り訂正復号器により復号し、その後、所定の解読キーを使用して解読する。第１の第１符号化チャンクは、原ファイルの第１のブロックに関連する。復号にあたり、第１のブロックに使用された第１前方誤り訂正符号に対応している前方誤り訂正復号器を使用する。解読キーは、暗号化方法に従って暗号化キーに結びつけられるべきである。前方誤り訂正符号及びその復号器に関する情報と暗号化方法に関する情報のどちらか又は両方が、受信側において少なくとも、提供されるか、構成されるか、又は知らされているべきである。
【００５１】
次のステップＳ９において、後続のブロックそれぞれの第１符号化チャンクをそれぞれ、符号化に使用した第１前方誤り訂正符号に対応する前方誤り訂正復号器を使用して復号する。
【００５２】
その後、次のステップＳ１０において、復号チャンクを、好ましくは暗号化に使用したものと同じ代数演算を使用して、解読する。この代数演算は、各復号チャンクと、その前に処理したブロックの第２符号化チャンクとに対して実行する。したがって、前に処理したブロックの解読済み復号チャンクが、前方誤り訂正符号を使用してもう一度符号化される。このときに、解読キーによってパラメータ化される暗号インデクシング関数が、前方誤り訂正符号によって使用されたインデックスのセットを提供して、前に処理されたチャンクから第２符号化チャンクを生成する。前方誤り訂正符号及び暗号インデクシング関数は、好ましくはそれぞれの符号化スキームに対応する。前に処理されたブロックから生成されるこの第２符号化チャンクが、復号チャンクの解読に使用される。
【００５３】
ステップＳ１１において、すべての第１符号化チャンクの復号及び解読の出力が解読済み符号化チャンクであり、これらが結合されて、原ファイルＦの送信バージョンが再現される。好ましくは、例えば処理したチャンクの追加の誤り訂正シンボルによって、ファイルＦが損失なしで再構成される。
【００５４】
送信器と受信器の両方で、それぞれ、高度な暗号化関数と復号関数に対する呼び出しが１回だけ実行される。さらに、このスキームは、固定又は可変ブロックサイズのいずれかで情報をストリーミングするために容易に使用することができ、このときの受信側は、ストリームを復号することができるように、最初から送信を受信する必要がある。その代わりに、説明したスキームは、それ自体がブロックのセットに適用されることで、１つのブロックのセットから新しいブロックのセットへ移るときに受信器が受信に加わることができる。
【００５５】
図２は、コンピュータが実行する本発明に係る方法の概略図を示す。ファイルＦは数個のブロックＣ１，Ｃ２，・・・，Ｃｉ，・・・，Ｃｎに分割する。第１のブロックＣ１は、暗号化方法Ｅと所定の暗号化キーＫを使用して暗号化することで、第１の暗号化ブロックＣ１＊とする。その後、第１の暗号化ブロックＣ１＊は、第１前方誤り訂正符号ＦＥＣ１１及び第２前方誤り訂正符号ＦＥＣ１２を使用して２回、符号化し、第１の暗号化ブロックＣ１＊の第１符号化チャンクＣ１１’及び第２符号化チャンクＣ１２’とする。第１符号化チャンクＣ１１’は、第１前方誤り訂正符号ＦＥＣ１と、好ましくは既知のインデックスのセットとを使用して計算する。第２符号化チャンクＣ１２’は、第２前方誤り訂正符号ＦＥＣ１２と、暗号化キーＫによってパラメータ化されるそれぞれのインデクシング関数Ｆｉ１とを使用して計算する。第１の暗号化ブロックＣ１＊の第１符号化チャンクＣ１１’を出力する。第１の暗号化ブロックＣ１＊の第２符号化チャンクＣ１２’は、さらに処理に付す。
【００５６】
この例では、ブロックごとの第１前方誤り訂正符号ＦＥＣ１１，ＦＥＣ２１，ＦＥＣｉ１は、所定の又は既知のインデックスを使用する。あるいは（示していないが）、第１前方誤り訂正符号は、インデックス生成関数によって提供されるインデックスを使用することもできる。例えば、各ブロックの第１及び第２前方誤り訂正符号に転送することができるインデックスのリストを生成するインデックス生成関数を提供することができる。この場合、インデックスのリストのインデックスの第１のセットを第１前方誤り訂正符号で、インデックスの次のセットを次の符号で、というように使うことができる。
【００５７】
原ファイルＦの第２のブロックＣ２は、第１の暗号化ブロックＣ１＊の第２符号化チャンクＣ１２’と排他的論理和演算ＸＯＲを実行することによって暗号化し、第２の暗号化ブロックＣ２＊とする。第２の暗号化ブロックＣ２＊は、第２のブロックＣ２の第１誤り訂正符号ＦＥＣ１２及び第２誤り訂正符号ＦＥＣ２２を用いて２回、符号化することで、第１符号化チャンクＣ２１’及び第２符号化チャンクＣ２２’とする。第２前方誤り訂正符号は、具体的には暗号インデクシング関数Ｆｉ２によって提供されるインデックスのセットを使用する。第２の暗号化ブロックＣ２＊の第１符号化チャンクＣ２１’を出力する。第２の暗号化ブロックＣ２＊の第２符号化チャンクＣ２２’は、さらに処理に付す。
【００５８】
後続のブロック、すなわち、第３〜第ｎのブロックＣｉ，・・・，Ｃｎのそれぞれについて、これらのブロックＣｉ，・・・，Ｃｎの暗号化及び符号化は、第２のブロックＣ２の暗号化及び符号化と同様である。したがって、原ファイルＦのすべてのブロックを処理するまで、後続のすべてのブロックの暗号化と符号化を繰り返し実行する。
【００５９】
最終的に、各ブロックＣ１，Ｃ２，・・・，Ｃｉ，・・・，Ｃｎそれぞれの第１符号化チャンクＣ１１’，Ｃ２１’，・・・，Ｃｉ１’，・・・，Ｃｎ１’を出力する。
【００６０】
図３は、受信側における復号と解読を示している。第１符号化チャンクＣ１１’，Ｃ２１’，・・・，Ｃｉ１’，・・・，Ｃｎ１’が、復号モジュールを含む受信器に送信される。
【００６１】
第１の（最初の）第１チャンクＣ１１’は、原ファイルＦの第１のブロックＣ１に該当する。第１の第１チャンクＣ１１’は、第１のブロックＣ１の符号化に使用された第１前方誤り訂正符号に対応する前方誤り訂正復号器ＤＥＣ１を使用して復号する。復号の結果、復号済みではあるが未だ暗号法で暗号化されている第１チャンクＣ１１＊が生成される。この第１暗号化チャンクＣ１１＊は、適切な解読アルゴリズムＤＥ及び解読キーＫ’を使用して解読することで、解読及び復号済みの第１チャンクＣ１１となり、これは第１のブロックＣ１と同等の情報を含んでいるはずであり、つまり、第１のブロックＣ１のすべてのシンボルが回復される。
【００６２】
後続の第１符号化チャンクＣ２１’，・・・，Ｃｉ２’，・・・，Ｃｎ２’の復号と解読は、次のように実行する。各符号化チャンクＣ２１＊，・・・，Ｃｉ２’，・・・，Ｃｎ２’は、それぞれ、適切な前方誤り訂正復号器ＤＥＣ２，・・・，ＤＥＣｉ，・・・，ＤＥＣｎを使用して復号する。これら前方誤り訂正復号器は、ブロックそれぞれの符号化に使用されたブロックごとの第１前方誤り訂正符号に対応する。この結果、復号済み第１チャンクＣ２１＊，・・・，Ｃｉ１＊，・・・，・・・，Ｃｎ１＊が得られるが、これらは未だ暗号法で暗号化されている。その解読は、暗号化に使用されたものに対応する代数演算に基づいて実行し、前方誤り訂正符号ＦＥＣ２，ＦＥＣ２２，・・・を用いて符号化してあるそれぞれの前に処理されたブロックの第２符号化チャンクを使用して実行する。各前方誤り訂正符号ＦＥＣ２，ＦＥＣ２２，・・・は、解読キーＫ’によってパラメータ化された暗号インデクシング関数によって提供されるインデックスのセットを使用する。好ましくは、使用する前方誤り訂正符号ＦＥＣ２，ＦＥＣ２２，・・・は、送信側において暗号化に使用した各符号に対応する。
【００６３】
出力される復号及び解読済み第１チャンクＣ１２，Ｃ１ｉ、・・・は、原ファイルＦの後続ブロックＣ２，Ｃｉ，・・・に相当する情報を含んでいるはずである。
【００６４】
図４は、本発明に係る送信器１００の概略的なブロック図を示す。送信器１００は、例えば、通信リンクＣを介して受信器に、暗号化した前方誤り訂正符号化データを送るように構成された低電力デバイスである。送信器１００は、入力モジュール１０１、分割モジュール１０２、符号化モジュール１０３、及び出力モジュール１０４を含む。送信器１００は、少なくとも１つのプロセッサとメモリ（図示せず）のいずれか又は両方をさらに含むことができる。送信器１００は、コンピュータが実行する本発明に係る方法のステップを実行するように構成されている。
【００６５】
図５は、本発明に係る受信器２００の概略的なブロック図を示す。受信器２００は、受信モジュール２０１、復号モジュール２０２、及び出力モジュール２０３を含む。受信器２００は、少なくとも１つのプロセッサとメモリのいずれか又は両方をさらに含むことができる。受信器２００は、通信リンクＣを介して、前方誤り訂正符号化及び暗号化されたデータを受信する低電力デバイスである。
【００６６】
図６は、本発明に係る送信器１００及び受信器２００からなるシステム３００を示す。送信器１００と受信器２００は、通信ネットワークＮＷを介してデータを交信するべく接続される。送信器１００と受信器２００のいずれか又は両方がＩｏＴデバイスであり得る。図４に示すようなモジュールを含む送信器１００は、ファイルのブロックごとに第１符号化チャンクを提供するように構成される。第１符号化チャンクを暗号化し、前方誤り訂正符号化することで、ファイルコンテンツのセキュアな伝送を可能にする。図５に示すようなモジュールを含む受信器２００は、受信した第１符号化チャンクを解読し復号するように構成されている。解読及び復号の後、好ましくは原ファイルのコンテンツが解読済み復号チャンクから再構築される。
【００６７】
上述の方法及び方法ステップのすべては、各方法ステップを実行するべく構成した対応する手段によって実行され得る。具体的手段によって提供される機能のすべてが上記方法の方法ステップであり得る。
【００６８】
本発明の保護範囲は特許請求の範囲によって与えられるべきであり、説明した特徴及び図示による説明によって制限されない。本発明は、説明した例に限定されるものではない。また、本発明は、説明し図示した特徴のいずれの組み合をもすべて含む。
【図１】
2020109938.tif 000003
【図２】
2020109938.tif 000004
【図３】
2020109938.tif 000005
【図４】
2020109938.tif 000006
【図５】
2020109938.tif 000007
【図６】
2020109938.tif 000008
【外国語明細書】
2020109938000001.pdf