How to identify and protect the integrity of the source dataset

申请号 JP2013501220 申请日 2010-10-05 公开(公告)号 JP2013523043A 公开(公告)日 2013-06-13
申请人 エルアールディシー システムズ、エルエルシー; 发明人 ロジャース、クレオン、エル.; ローガン、グレン、ティー.;
摘要 識別署名を生成し、検出及び訂正剰余と組み合わせて、何らかの情報保証方法の既存の機能を拡張するソースデータセットの完全性を識別及び保護する方法。
权利要求
  • ソースデータセットの完全性を識別及び保護する方法であって、
    (a)ソースデータの変換済みセットを生成するために、前記ソースデータに変換を通過させるステップと、
    (b)ソースデータの中間セットを生成するために、歪み関数を用いて前記ソースデータの変換済みセットを歪ませるステップと、
    (c)剰余を生成するために、前記ソースデータの中間セットをEDACアルゴリズムに通過させ、符号化されたソースデータのセットを生成するために、前記剰余を前記ソースデータセットに付加するステップと、
    を含む方法。
  • 第2の剰余を生成するために、前記符号化されたソースデータのセットを第2のEDACアルゴリズムに通過させ、前記第2の剰余を前記符号化されたソースデータのセットに付加するステップをさらに含む、請求項1に記載の方法。
  • 前記変換が、2ビット回転を含むインタリーバを含む、請求項1に記載の方法。
  • ステップ(b)の前記歪み関数が、前記ソースデータの変換済みセットと2進パターンとの間での排他的OR演算を含む、請求項1に記載の方法。
  • 前記ソースデータセットが、組み込まれたソースデータセットである、請求項1に記載の方法。
  • 前記剰余が、前記ソースデータセットの組込みに先立って計算される、請求項5に記載の方法。
  • 前記変換が、フォーニーインタリーバを含むインタリーバを含む、請求項1に記載の方法。
  • 前記変換が、直列/並列データ変換器を含むインタリーバを含み、前記直列/並列データ変換器の出力が十字交叉配線マトリクスによってインタリーブされる、請求項1に記載の方法。
  • 前記変換が、直列/並列データ変換器を含むインタリーバを含み、前記直列/並列データ変換器の出力がN×NのFLASHメモリによってインタリーブされる、請求項1に記載の方法。
  • 前記変換が、直列/並列データ変換器を含むインタリーバを含み、前記直列/並列データ変換器の出力がN×NのRAMメモリによってインタリーブされる、請求項1に記載の方法。
  • 前記2進パターンが、N×NのRAMメモリから抽出される、請求項4に記載の方法。
  • 前記変換が、アフィン変換を含む、請求項1に記載の方法。
  • 前記変換が、非公理的変換を含む、請求項1に記載の方法。
  • 前記変換が、逆関数なし、剛体運動の保持なし、及びLangGanong変換行列の変換からなるグループから選択される、請求項1に記載の方法。
  • 前記EDACアルゴリズム及び前記第2のEDACアルゴリズムが同じである、請求項2に記載の方法。
  • 前記EDACアルゴリズム及び前記第2のEDACアルゴリズムが異なる、請求項2に記載の方法。
  • 前記第1のEDACアルゴリズムが第1の多項式を含み、前記第2のEDACアルゴリズムが前記第1の多項式とは異なる第2の多項式を含む、請求項16に記載の方法。
  • 前記EDACアルゴリズムが、CRCアルゴリズム、リードソロモン符号化、ビタビ符号化、ターボ符号化、MD5アルゴリズム、及びSHA−1ハッシュアルゴリズムからなるグループから選択される、請求項1に記載の方法。
  • ステップ(a)及び(b)がプログラム可能である、請求項5に記載の方法。
  • 前記剰余が、周期的に検証される、請求項17に記載の方法。
  • 前記剰余が非周期的に検証される、請求項17に記載の方法。
  • 前記剰余を再計算するステップと、前記剰余の再計算された値とステップ(c)で計算された前記剰余の値とを比較するステップと、前記剰余と前記剰余の再計算された値とオリジナルの剰余の値とが同じでないことを示す比較のインジケータを提供するステップとを含む、前記ソースデータの完全性を検証するステップをさらに含む、請求項1に記載の方法。
  • 前記剰余をシンクに提供するステップをさらに含む、請求項22に記載の方法。
  • 前記シンクが、表示手段、シリアルバス上への配置、パラレルバス上への配置、及び制御論理からなるグループから選択される、請求項23に記載の方法。
  • 要求に応答して前記剰余を提供するステップをさらに含む、請求項22に記載の方法。
  • 说明书全文

    本発明は、ソースデータセットの完全性を識別及び保護する方法に関し、特に、改善された識別及び保護を含めるように誤り検出及び訂正方法の機能を拡張する上記方法に関する。

    WW Petersonが、1962年のScientific Americanにおいて発言した「誤りの無い性能はあらゆる良好な通信システムの目標である」は、今もなお自明の理である。 それにもかかわらず、グローバルビジネスモデルでは、a)設計を変更し、b)ハードウェアをいじり、c)スプーフィング(spoofed)されたソフトウェアをミッションクリティカルかつセーフティクリティカルなシステム内に含めるという根本的に異なる悪意ある攻撃が出現している。 従来、典型的な誤り検出及び訂正(EDAC)技術は、これまで、特に組み込まれたシステム内のブートファームウェアを保護する場合、データ転送に関する未検出の(ランダムな)誤りしきい値の指定された確率を満たすのに概ね適していた。 しかし、現在の市場では、外部委託されたシステム開発及びデータ配信における識別、完全性、及びセキュリティの問題に対処するために、これらのアルゴリズムをさらに強化する必要がある。 サイバー攻撃によるシステム及びデータの意図的な破壊を検出、訂正、追跡、又は反撃の問題は、特に懸念される。 Petersonは「ノイズ」からの保護について語ったが、現在では、重要な環境におけるインテリジェント攻撃からの保護を含めなければならない。 物理的セキュリティの喪失を切り抜けるためには、これらの重要な環境を強化しなければならない。 様々なレベルのニーズに応えて、数多くの技術が調整されてきた。 一般に、最も重要なデータの安全性を守るためには暗号化が使用されるが、暗号化を使用しない体系的符号化を通じたデータの保護(又は改竄検出)が適所に必要である。 幾つかの二重冗長システムは、厳しいリアルタイムのスタートアップ及び応答要件を有する。 悪意ある攻撃に対処するためのEDAC処理又は追加のセキュリティアルゴリズムに対するいずれの拡張も、依然としてタイミング要件を満たしていなければならない。

    潜在的なブートファームウェアのセキュリティ侵害に応答して、幾つかのコンピューティングデバイスは、ブートファームウェアが信頼できるソースからのものであることを保証するためのセキュリティ手段を提供する。 これらのセキュリティ手段は、関連するブートファームウェアのソースを一意的に識別するデジタル署名に依拠する。 コンピューティングデバイスは、ファームウェアを識別するためにデジタル署名を復号し、署名と既知の値との比較に基づいてブートを受け入れるか又は拒否することができる。 この方法の問題点は、設計に対する悪意ある攻撃の場合、算出された値に合致するように既知の値を容易に修正できることである。 他の欠点は、コンピューティングデバイスが、インストール後1回のみ、又はブート時にのみ、ファームウェアを検証することであろう。 ブート後、ファームウェアは動的に変更されていないものと想定される。 これらの脅威は、受動的なセキュリティ手段では防げない。

    誤り制御符号化における進化により、デジタル情報の格納及び転送において、それらをユビキタスに使用できるようになった。 このデジタル情報の例には、電話、インターネット、DVD、電子商取引、ディスクドライブ、ISBN番号、UPCコード、及びRFIDタグなどが含まれる。

    従来技術では、誤り制御符号化の一部の汎用抽象化が与えられている。 従来技術の基本的な例である図1−aでは、ソースデータがEDAC符号器に入り、符号化された後、チャネルを介して伝送又は転送される。 チャネル後、データシンク端部で、符号化されたデータはEDAC復号器によって誤りをチェックされる。 1つのタイプのシステムは、誤りが検出された場合、この基本設計を使用して再試行要求に応答する。 他のタイプでは、誤りは復号器によって訂正される。 どちらのタイプのシステムも、検出可能、訂正可能、検出不能、及び訂正不能な誤りの数及びタイプに関して制限を有する。 これらのタイプのEDACシステムは、一般にサイバー攻撃から保護するようには設計されず、ランダム又はバースト誤り、又はランダム及びバースト誤りの何らかの組合せを処理するように設計される。

    従来技術の図1−bは、暗号の符号化及び復号を追加することによって、データセキュリティを追加する。 当分野で周知のように、何らかの性能及びサイズの制限は、圧縮段階を暗号化に先行させることによって改善される。 典型的には、これらのステップはEDAC段階のみよりもかなり時間のかかるものであり、関連するリスクに関する一部のリアルタイムの組込みシステムでは非実用的である。

    当分野には、上記基本例及び他の複雑な例に対する変形、又は、連結、インタリーブ、冗長性、及びフィードバックを通じた組合せを示す他の例が存在する。 これらの変形を使用すると、誤り訂正後、10 −18程度の未検出誤りの確率を誇るディスクドライブにつながる。

    幾つかの用途では、非常に小さい未検出誤りの確率が要求される。 最も重要な航空電子工学の用途の場合、未検出誤りの確率が10 −9であること、さらに単一障害点(single point of failure)がないこと、及びハードウェアシステムに対する共通原因がないこと、という要件が存在する。 同様の重要なソフトウェアシステムの場合、10 −9以外の「レベルA」と呼ばれる目的を満たし、さらに他の要件も満たすことが必要となる。

    重要な航空電子工学ソフトウェアシステムのエンドツーエンドライフサイクルにおいて、サイバー攻撃からの保護レベルにおける潜在的ギャップが存在することが指摘されている。 このギャップを保護するための解決策は、開発時にブートコードイメージ902に接続されるEDAC符号器剰余(remainder)の信頼性(dependability)である。 図7の904を参照されたい。

    様々な物理層及びデバイスに強な保護を提供することによって、データのライフサイクルに対してより高レベルでの脅威の出現からの適切なデータのエンドツーエンド保護が生じると想定される場合、追加の軽減手順が必要である。 ここでも、実際の部分的解決策は、ソース側のデータに十分な保護を追加し、データの存続期間中、これを追加したままにして、その間チェックすることである。 上述のように、保護のためにEDACのみに依存することでは、新しい脅威という点から見ると、重要なシステムにとってもはや十分ではないが、いずれの解決策も通常通り、簡単、安価、適切、及び迅速でなければならない。

    1974年1月15日出願の米国特許第3,786,439号で、McDonaldは、「誤り検出は、複数の独立した誤りコードを、異なる誤りコードに適用されるデータフィールド内の非線形変更と組み合わせて使用することによって、強化される。」という新しいアイデアを紹介した。 これは、後に「複数の独立したコード間でトラックと誤りコードの関係をスクランブルすること」によって、非線形置換を使用するものであると言われた。 非線形の定義は明示的に定義されていないが、後の説明では、周期的な置換を行わないことを意味しているようである。 これは、「...第2の非線形関連データフィールドを生成する」及び「2つのコード間に非線形差異を伴うと、2つのコードの同じ数学的サブフィールド内にある誤り条件の確率がかなり遠くなるという点で、高度な信頼性が与えられる」という文で、1つのECC−3がすべてのデータをエンドツーエンドでカバーしながら、データセットをサブセットに分割することを示している。 その後、多項式のそれぞれが1+x項を有することが示されている。 特許請求の範囲では、方法に従うことは「第1及び第2のセット内に誤りを含めないことによる第1及び第2のセットより少ない誤りの第3のセット...」を示すことになる。

    McDonaldに続き、Rhines他は、1995年2月21日出願の米国特許第5,392,299号で、3重の直交インタリーブした誤り訂正システムのアイデアを紹介した。 このシステムは、手元のチャネルに対して調整されるランダム及びバースト強化された保護のためのものである。 スクランブリングは固定され、この方法には3つの部分の直交するインタリーブが必要である。 直交の定義は、バースト誤りに対する保護を強化するための「シャッフル」である。 後に、含まれる誤りに対して追加の保護を提供するために、符号化の前又は後にインタリーブプロセスを使用することが当分野では周知であると述べている。 インタリーブは、バースト誤りに対して保護するために連続バイトが互いに分離されるプロセスであるものと定義される。

    1997年9月30日出願の米国特許第5,673,316号では、Auerbach他が、保護されるそれぞれの部分が暗号化された、情報部分の集合である暗号エンベロープの作成及び分散について説明している。

    「Factoring Large Numbers with the TWINKLE Device」の要約で、Adi Shamirは「RSA公開キー暗号システムのセキュリティは、2つの等しいサイズの素数p及びqの積である大きな数nの因数分解の困難さに依存する」と述べている。 彼はまた「大きなRSAキーの因数分解における現在の記録は465ビット数の因数分解であり...「TWINKLE」技術は、100から200ビットごとに因数分解可能な数のサイズを増やすことができ. . . 」及び「...512ビットのRSAキー(現在のインターネット上での電子商取引の95%を保護する)を非常に脆弱なものにし得る」とも述べている。

    1996年のBerrouによる論文では、「2)不均一なインタリーブ:図5に示されるような最も短い距離を与えるパターンが、分離可能なFC(有限コードワード−0からの有限距離)パターンを分離不能又は非FCに変換するために、適切な不均一なインタリーブによって「分割」できることは明白である。 」と述べている。 「不均一なインタリーブは、通常のインタリーブにあるようなデータの最大の散乱と、インタリーブされたデータシーケンスにおける最大の無秩序という2つの主な条件を満たさなければならない。後者は前者と競合し得るものであり、できる限り多様な2つの符号器による冗長性を生じさせるものである。」

    参照文献米国特許参照文献

    米国特許第3,786,439号 1974年1月15日 McDonald他

    米国特許第5,392,299号 1995年2月21日 Rhines他

    米国特許第5,446,747号 1995年8月29日 Berrou

    米国特許第5,673,316号 1997年9月30日 Auerbach他

    米国特許第4,821,268号 1989年4月11日 Berlekamp他

    米国特許第4,633,470号 1986年12月30日 Welch他

    米国特許第7,672,453号 2010年3月2日 Matolak

    その他の参照文献
    [1] Cryptography and Decoding Reed-Solomon Codes as a Hard Problem, A. Kiayias, M. Yung, IEEE, 2005, 0-7803-9491-7/05. [2] Keying Hash Functions for Message Authentication, M. Bellare, et al., Advances in Cryptography - Crypto 96 Proceedings, June 1996. [3] Near Optimum Error Correcting Coding And Decoding: Turbo-Codes, C. Berrou, IEEE, 1996, 0090-6778/96. [4] Factoring Large Numbers with the TWINKLE Device (Extended Abstract), A. Shamir, The Weizmann Institute of Science. [5] A New Program for Computing the P-Linear System Cardinality that Determines the Group of Weil Divisors of a Zariski Surface, C. Rogers, University of Kansas, 1995. [6] Scientific American, vol. 206 #2, Feb. 1962, pp. 96-108. [7] Choosing a CRC & Specifying Its Requirements for Field-Loadable Software, C. Rogers, IEEE, 2008, 978-1 -4224-2208-1/08. [8] Proposing Improvements to Avoid the CRC Compromise and the Silent Specification, C. Rogers, IEEE, 2009, 978-1-4244-4078-8/09.

    本発明は、ソースデータセットの完全性を識別及び保護する方法である。 ソースデータは、ソフトウェア又は伝送データの形態を取るものとすることができる。 ステップ(a)及び(b)がプログラム可能である。 ソースデータは、完全に又は部分的にハードウェアに組み込んでもよい。

    本発明の実施形態は、以下のステップを含むことができる。
    (a)ソースデータの変換済みセットを生成するために、ソースデータに変換を通過させるステップ (b)ソースデータの中間セットを生成するために、歪み関数を用いてソースデータの変換済みセットを歪ませるステップ (c)剰余を生成するために、ソースデータの中間セットにEDAC(誤り検出及び訂正)アルゴリズムを通過させるステップ、及びソースデータの符号化セットを生成するために、剰余をソースデータセットに付加するステップ

    代替実施形態では、上記方法は、第2の剰余を生成するために、ソースデータセットに第2のEDACアルゴリズムを通過させるステップと、第2の剰余をソースデータの符号化セットに付加するステップとを含むこともできる。

    組込みシステムの場合、ソースデータセットを組み込む前に、ビルドコンピュータなどによって、一方又は両方の剰余を算出することができる。

    EDACアルゴリズムは、通常、ソースデータを符号化し、ソースデータ内の意図的又は偶発的な変更をユーザに警告するように働く剰余を生成する。 本発明の実施に好適な、多くのEDACアルゴリズムが知られている。 EDACアルゴリズム、及び使用される場合は第2のEDACアルゴリズムは、同じか又は異なるものとすることができる。 EDACアルゴリズムは、通常、多項式除数(polynomial divisor)を使用して動作する。 EDACアルゴリズムは、異なる多項式を使用することができる。 従来技術で既知のEDACアルゴリズムの例には、CRCアルゴリズム、リードソロモン符号化、ビタビ符号化、ターボ符号化、MD5アルゴリズム、及びSHA−1ハッシュアルゴリズムなどが含まれる。

    簡単なタイプの変換の1つがインタリーバである。 当分野では多くのタイプのインタリーバが知られている。 インタリーバはソースデータの部分の相対的な位置を変更する。 米国特許第5,393,299号に示されるように、結果をオリジナルに対して垂直にするためにインタリーブを選択することができる。 さらに、インタリーバは、ビットペア2の位置をスワップする(「2ビット回転」)ように簡単なものとすることができる。 選択された多項式に応じて、2ビット回転はアフィン変換(affine transformation)とみなすことができる。 インタリーバは、より大きなデータブロックで、より複雑に動作することもできる。 従来技術のインタリーバは、いわゆるフォーニー(Forney)インタリーバである。 インタリーバは、完全に又は部分的にハードウェア内に実装することができる。 例えばインタリーバは、その出力が十字交差配線マトリクス(criss-cross wiring matrix)によってインタリーブされる直列/並列データ変換器を含むことができる。 インタリーバは、その出力がN×NのFLASHメモリ又はN×NのRAMメモリによってインタリーブされる直列/並列データ変換器として実装されることもできる。 変換は、例えばソースデータで非直交変換を実行するアフィン変換を実行することによって、ソフトウェアで実施することもできる。 他のこのような変換は、逆関数なし、剛体運動の保持なしの変換、又はLangGanong変換、又は非公理的(non-axiomatic)変換を含むことができる。

    歪み関数の1つの例には、変換済みソースデータセットと2進パターンとの間での排他的OR演算を含むことができる。 この2進パターンは、N×NのRAMメモリから抽出してもよい。
    非公理的変換の1つのタイプには、変換の一部としての歪み関数が含まれる。 一例がm要素からn要素へのマッピングであり、ここでm<n又はm>nである。 幾つかの実施形態では、この方法は、一方又は両方の剰余を再計算すること、再計算された剰余の値とオリジナルの剰余の値とを比較すること、再計算された剰余の値とオリジナルの剰余の値とを比較し、両方の剰余セット間の比較が同じでない場合、インジケータを提供することによって、ソースデータの完全性を検証するステップも含むことができる。 剰余は、周期的又は非周期的に検証してもよい。 剰余の値は、表示手段へ、シリアルバス上への配置によって、パラレルバス上への配置によって、又は制御論理へ提供してもよい。 剰余の値は、要求に応答して提供することができる。

    従来技術におけるデジタル通信システムの基本要素を示す図である。

    従来技術におけるデジタル通信システムのより包括的な要素を示す図である。

    本発明のIDAC符号器及びIDAC復号器要素の構成を示す図である。

    EDAC1符号器、EDAC2符号器、及びIDAC符号器の他の構成要素を示す図である。

    IDAC符号器の実施形態におけるEDAC符号器の「T」コピーを示す図である。

    EDAC1復号器、EDAC2復号器、及びIDAC復号器の他の構成要素を示す図である。

    チャレンジ構成要素を備えた2つのIDAC復号器の二重冗長実施形態(dual redundant embodiment)を示す図である。

    IDAC符号器又はIDAC復号器の公開又は秘密変換ブロックの内訳を示す図である。

    フォーニーインタリーバを使用したIDACの変換関数ブロックの一実施形態を示す図である。

    「ワイヤ」インタリーバ周辺で直列/並列及び並列/直列変換器を使用したIDACの変換関数ブロックの他の実施形態を示す図である。

    「ワイヤ」インタリーバを使用したIDACの変換関数ブロックのさらに他の実施形態を示す図である。

    1ビットスタックを使用したIDACの変換関数ブロックの他の実施形態を示す図である。

    N×NのFLASH又はRAMを使用したIDACの変換関数ブロックの他の実施形態を示す図である。

    LangGanong変換を使用することによる、IDACの変換関数ブロックと歪み関数ブロックとの組合せを示す図である。

    IDACの実施形態における非公理的変換を示す図である。

    N×NのFLASH又はRAMを使用したIDACの歪み関数ブロックの実施形態を示す図である。

    非可逆であり、1対1ではなく、上への(onto)ではない、L×LのFLASH又はRAMを使用したIDACの歪み関数ブロックの他の実施形態を示す図である。

    更新可能な、N×NのFLASH又はRAMを使用したIDACの変換関数ブロックと歪み関数ブロックとの組合せの実施形態を示す図である。

    更新可能な、N×NのFLASH又はRAMを使用したIDACの変換関数ブロックと歪み関数ブロックとの組合せの他の実施形態を示す図である。

    EDAC符号器及び復号器によって保護された二重冗長組込みファームウェアのエンドツーエンドライフサイクルにおける要素を示す図である。

    以下の記載及び説明で、「コードワード(codeword)」という用語は、ソースデータのオリジナルセットと、制限なしに、a)巡回冗長検査(CRC)、b)リードソロモン、c)ビタビ、d)ターボ、e)低密度パリティ検査(LDPC)、f)メッセージダイジェスト5(MD5)、及びg)セキュアハッシュアルゴリズム(SHA−1)などの当分野で周知の多くの可能な符号化のうちの1つの結果である相対的に一意なタグ(デジタル署名又はハッシュとも呼ばれる)とを含む。 ソースデータセットは、本明細書では、メッセージ、データメッセージ、又はソースデータと呼ばれる場合もある。 EDACアルゴリズムからの剰余は、本明細書では残余と呼ばれる場合もある。

    本発明は、誤り検出及び訂正コードを使用する場合、反直観的アイデアに依拠する。 このアイデアは、実際にはデータに誤りを追加するものであるため、EDACの機能を上回るほどの多くの誤りとなる。 誤りを追加することによって、変換されたデータメッセージのコピーを符号化する場合、受信側では、スプーフィング(spoofing)が判明する(又は以前は検出不能又は訂正不能であった誤りが判明する)ことになる。 この技術は、スプーフを検出する機能を向上させ、第1のEDACのみよりも改竄が困難な強化されたデジタル署名として、作成時にデータメッセージに追加することができる。 したがって、基本的なアイデアは、従来技術の場合と同じく、1つのEDACを使用することであり、次に、第1のEDACと同じ符号器(又はハードウェア又はソフトウェアの重複符号器)を使用して、第2のEDACを識別子又はデジタル署名として使用することである。 さらに、変換ステップ及び歪みステップは分離され、並行して実行されるため、プログラム可能となる。 ステップの細部は、上述のように公開又は秘密などとすることができる。 他の利点は、並列して実行されることから、スケーラブルであることである。 例えば、32ビットCRC(REM1と呼ぶ)を考えてみよう。 データメッセージに対して変換及び歪みを実行することによって、独立多項式を使用する必要なしに、第2の32ビットCRC(又はREM2)を使用することができる。 データに対して第3の変換及び歪みを実行することで、他の32ビットCRC(すなわちREM3)が得られ、これで合計96ビットとなる。 さらに小さな512バイトメッセージの場合、歪みの確率は2 4096 −1と、非常に大きな数字である。 非公理的変換、すなわち4096から8192へのマッピングを追加することによって、確率は大幅に上がる。 他にも多数の潜在的利点が存在する。 以下で、幾つかの実施形態の詳細を説明する。

    図1−cに示されるように、一実施形態では、ソースデータが識別、検出、及び訂正(IDAC)符号器100に入り、2つの別々のEDAC符号器、EDAC1符号器200及びEDAC2符号器300へとルーティングされる。 EDAC1符号器は、当分野で周知の多くの符号器のいずれかとすることができる。 データは符号化され、当分野で周知であるように、残余は再度チャネルに渡される。 EDAC2符号器は任意の符号器を含むこともできるが、この実施形態の場合、EDAC1と同じタイプの符号化を使用することになる。 ソースデータの重複コピーが符号化され、ブロック300に提示されて、残余は上述のようにチャネルに渡される。 ブロック200及び300の細部については後述する。 同様に、IDAC復号器500はEDAC1復号器600及びEDAC2復号器700を備え、これらについては後述する。

    EDAC2 300が内部のアフィン変換で構成される場合、そのEDAC機能は、独立コードを使用しないこと、及びEDAC2の変換済みデータがチャネルに伝送又は転送されるデータでないことを除き、米国特許第3,786,439号と同様である。 EDAC2は、米国特許第3,786,439号のようにバースト誤りに対してより耐性を持たせるためにデータを変換しないため、EDAC2は、オリジナルの未変更データを体系的に送信する。 EDAC2の意図は、悪意ある攻撃に対してより耐性を持たせることである。 また米国特許第3,786,439号は、歪みステップを含まない。 他にも幾つかの相違点が存在する。

    図1−dに示されるように、ソースデータは102で、IDAC符号器100の例示的実施形態に入る。 データは、制御及びタイミングブロック128によって提供される制御下で、又はその位置で、変更されずにメッセージバッファ/FIFO 104に入り、同時に又は順次、118を介して、同じく128によって対処されるEDAC2 300(EDAC2の構成要素の細部は2点鎖線でマーク付けされている)の公開又は秘密変換ブロック314によって処理される。 このブロック314は、データに対してローカルに知られた変更(又はローカルに一時的に生成されたか、又は126を介して128によって離れて受信及び提供された)を実行した後、EDAC2 300の変更済みデータを、チェック/識別子として剰余生成器2のブロック316に転送する。 以下に示されるデータ変換という題名のセクションで、より詳細に説明する。 この時点(又は順次ステップ)で、又は128によって提供される同じ位置を使用して、EDAC1 200(EDAC1の構成要素の細部は1点鎖線でマーク付けされている)の剰余生成器1のブロック212は、当分野で周知のチェックデータを累積する。 すべてのソースデータがブロック314、316、212、104によって処理された後、EDAC1 200のブロック212は、122を介してそのチェックデータをREM1ブロック206に送信し、EDAC2 300のブロック316は、124を介してそのチェックデータをREM2ブロック308に送信する。 102からの未変更メッセージソースデータは、ブロック104を通り、ソースデータの前、ソースデータの後、何らかの組合せで、又は単独で、ブロック128の制御下で110へと進む。 REM1のチェック/識別子データ及びREM2のチェック/識別子データは、110で、ブロック128の制御下でこのソースデータと統合される。 説明したばかりのプロセスは、ハードウェアのみの回路で、及び/又はハードウェアとソフトウェア(ファームウェア)の組合せで実現できる。 検証設計又は検出及びカウンタ設計に組み込まれた場合、必要であれば、チェックを無効にするための安全性又はセキュリティに関するオーバライド130がオプションで与えられる。 信頼性とセキュリティのバランスは、安全性のみ、セキュリティのみ、又は何らかの組合せとなるように、ブロック130を介して用途ごとに調整できる。

    図2に示されるように、EDAC1 200及びEDAC2 300の符号化動作は並行して実行されるため、IDACはEDAC2タイプの符号器のTコピーで構成できる。 (EDAC T400の構成要素の詳細は1点鎖線でマーク付けされている。)復号動作のTコピーも同様に可能である。

    図3に示されるように、ここでも、ソースデータは102でIDAC復号器の実施形態に入る。 この場合、ソースデータは、102でメッセージと統合されたチェックシンボルをすでに有し、結果として、ローカルに知られるか又は128を介して離れて提供される、図3の実施形態によって再計算及び検証されることになるコードワードが生じる。 1次チェックシンボルはREM1 SRCブロック522で除去され、2次チェックシンボルはREM2 SRCブロック554で除去される。 コードワードのメッセージ部分は、ブロック104を介して処理される。 図1−dと図3とのプロセスの相違は、図3では、チェックシンボルの新規セットがブロック206及び308に対して計算され、ブロック128の制御下でブロック560によって比較され、合格/不合格の指示又はREMが、558を介してブロック128に提示されることである。 ブロック128の制御及びタイミングプロセスは、訂正可能完全性誤り(correctable integrity errors)に関して、ブロック564に信号送信し、162又は反対動作を介してメッセージにフィードバックする。

    図4の実施形態は、チャレンジ構成要素が追加された、IDACの装置及び方法の2つのコピー、800−A及び800−Bを使用する図1−d及び図3に対する機能強化である。 各コピーは、二重冗長ハードウェア(dual-redundant hardware)のみの装置と方法との間の照合として、及びハードウェア/ソフトウェアの組合せとして、又は何らかの他の二重又はそれ以上の変形として実施できる。 この場合は、シングルトン(singleton)の周期的又は非周期的チャレンジが、チャレンジ期の最初に決定された、ローカルに生成された、ローカルに受信された、又はローカルに知られるか又は擬似乱数のメッセージ変更(アフィン、非公理的、又は受信済み)の形で発生する。 これらの変更は、システムの他方の側832、138(又は834、139)へと提示され、実際の2次チェックシンボルは、この期間が満了する前に、第1の側150、846、144(又は166、848、140)へと提示されなければならない。 (メッセージ変換が線形変換のみからなる場合、以前の衝突するスプーフは、実施例1で以前に示されたように、衝突のまま残り得る。)多項式再構成の問題が実行できないことにより、この期間中に悪意あるソースによってメッセージがスプーフされる可能性は低い。 期間の最短長さは著者にとって未知であるが、調査によれば、NP困難(NP完全)な計算であり得ることが示されている。 出願者はいずれの既知の解決策を知らない。 論文(2005年、Aggelos Kiayias及びMoti Yungの、「Cryptography and Decoding Reed-Solomon Codes as a Hard Problem」IEEE、0−7803−9491−7)によれば、(n (k−1))の平方根よりも大きくなるビット変更数を選択する(詳細は論文を参照のこと)と、多項式再構成の問題は、解決不可能なままである。 したがって、この値のすぐ下の値となるようにビット変更数を選択することで、悪意あるソースからのいずれの追加のビット変更も、しきい値を超えることになるため、悪意あるソースによる解決不可能(すなわちスプーフ不可能)となることを意味するように思われる。 言い換えれば、EDACアルゴリズムの訂正機能をはるかに上回っている。 他の可能性は、当分野では解決不可能として周知のワンタイムパッド(one−time pad)として、変更を供給することである。

    図5に示されるように、公開又は秘密変換ブロック314は、データが118を介して入力し、319を介して出る変換関数302と、データが319を介して入力し、115を介して出る歪み関数304という2つの構成要素を備える。

    図5−bは、当分野で周知のフォーニーインタリーバ302Bからなる変換関数302の実施形態である。

    図5−cは、第1の直列/並列変換器、それに続くワイヤインタリーバ、それに続く並列/直列変換器からなり、すべての構成要素が当分野で周知の変換関数302の実施形態302Cである。

    図5−dは、並列入力データ118、ワイヤインタリーバからなり、変換された並列データが319で出力する変換関数302の実施形態302Dである。

    図5−eは、あらゆる2ビットを回転させるための1ビットスタック302Eを備えた、変換関数302の実施形態302Eである。 直列入力データは118で入力し、306がスタックを制御する。 307は、変換後、2対1のマルチプレクサMux316からの出力319のためのデータを選択及び制御する。

    図5−fは、N×NのFLASH又はRAM318からなる変換関数302の実施形態である。 入力118から出力319への1対1のマッピングが存在する。 変換のためのFLASHエントリは事前に入力される。 FLASHは必要に応じて除去できる。 データパターンが、118で318内のエントリを検索するためのアドレスとして使用された後、そのアドレスの入力された値が319で出力される。 FLASHの事前構成済みエントリに依存して、この変換は非公理的変換の例とすることができる。 N=64Kバイトのデータメッセージの場合、FLASHは32Gバイトとなる。

    図5−gは、以前に説明したLangGanong変換302Gからなる変換関数302の実施形態である。

    図5−hは、以前に説明した非公理的変換302Hからなる変換関数302の実施形態である。

    図6−aは、N×NのFLASH又はRAM354からなる歪み関数302の実施形態352Aである。 入力118から出力319への1対1のマッピングが存在する。 歪みに関するFLASHエントリは事前に入力される。 FLASHは必要に応じて除去できる。 データパターンが、319で354内のエントリを検索するためのアドレスとして使用された後、そのアドレスの入力された値が115で出力される。 FLASHの事前構成済みエントリに依存して、この歪みは非公理的変換の例の一部とすることができる。 N=64Kバイトのデータメッセージの場合、FLASHは32Gバイトとなる。

    図6−bは、L×LのFLASH又はRAM356からなる歪み関数302の実施形態352Bである。 非公理的変換を使用する場合、入力118から出力319への1対1又は上へのマッピングは必ずしも存在しない。 歪みに関するFLASHエントリは事前に入力される。 FLASHは必要に応じて除去できる。 データパターンが、319で356内のエントリを検索するためのアドレスとして使用された後、そのアドレスの入力された値が115で出力される。 FLASHの事前構成済みエントリに依存して、この歪みは非公理的変換の例の一部とすることができる。 L=64Kバイトのデータメッセージの場合、FLASHは32Gバイトとなる。 入力ワイヤ319の幾つかはFLASHに接続されなくてもよく(NC)、幾つかの入力ワイヤは互いに短絡することもできる。 非公理的変換後に歪みを作成するために、出力ワイヤ115の幾つかは358で論理「1」に結合でき、幾つかは360で論理「0」に結合できる。

    図6−cは、N×NのFLASH又はRAM354からなる歪み関数302の実施形態352Cである。 入力118から出力319への1対1のマッピングが存在する。 歪みに関するFLASHエントリは事前に入力される。 FLASHは必要に応じて除去可能である。 データパターンが、319で354内のエントリを検索するためのアドレスとして使用された後、そのアドレスの入力された値が115で出力される。 FLASHの事前構成済みエントリに依存して、この歪みは非公理的変換の例の一部とすることができる。 N=64Kバイトのデータメッセージの場合、FLASHは32Gバイトとなる。 チャレンジのデータパターンは126を介して入力され、Mux362によって選択され、FLASH354に格納される。

    図6−dは、Nビットレジスタ366と、それに続くNビットXOR364からなる歪み関数302の実施形態352Dである。 319でのデータパターンは、NビットレジスタのコンテンツとのXORが取られる変換関数からの出力である。 Nビットレジスタは126を介して更新可能である。 このように構成された場合、データパターンチャレンジは126を介して入力される。

    図7は、組み込まれたファームウェアのライフサイクルにおけるIDAC符号器及び復号器の使用法を示す。 ビルドコンピュータ902内の実施形態は、構成管理アーカイブ918に格納される前に、符号器904のREM1及びREM2デジタル署名(識別及びEDAC)を接続するソフトウェア実装である。 インストール、検証、テスト、品質保証、リポジトリストレージ、エスクロー(escrow)ストレージ、エクスポート動作、証明、再使用、保守、開発などの様々な作業のために、データメッセージがアーカイブから取り出され、IDAC復号器906によって識別及び検証される。 二重冗長インストールの場合、2つのコピーが908を介してインストールされ、IDAC復号器/符号器912によって再度識別及び検証される。 フィールドロード可能デバイスを使用するか、又は外部ポートへの入力、又は証明又は検査動作の際に、データは914で識別及び検証される。 最終的に、宛先920にロードする前に、他のIDAC復号器/符号器916がデータを識別及び検証する。 二重冗長システム922では、第1のパス及びデバイスの重複である。

    発明の動作 デジタルデータに対する許可されていないか又は意図されていない修正は、当分野で周知のように、誤り検出及び訂正方法によって検出可能である。 本発明で具体化された新しい改良点は、従来技術の使用では以前に検出されなかった変更を検出する機能が向上したことである。 装置及び方法は、受信器及び送信器の両方に知られているか又は提供された位置でオリジナルメッセージを変更し、その後、第2のメッセージ上の2次チェックシンボルを計算することによって、この改良を達成している。 第2のメッセージは格納する必要がなく、2次チェックをコードワードの一部となるように伝送又は転送するだけでよい。

    データ変換(公開又は秘密変換)
    変換は、アフィン変換又は非公理的変換のいずれかからなる。 アフィン変換は、線形の変換(transformations)及び転換(translations)を含む。 上記で定義された非公理的変換は、1対1又は上へのいずれでもない非線形変換、及び転換を含む。 アフィン変換の一例は、置換及びオフセットであり(シフト及びXORで実施することができ、並列入力データの場合、単なるデータビットと半加算器のハードワイヤード十字交叉であるか、又は直列データの場合、スワップ(swap)されたフリップフロップ出力である)、結果はオリジナルセットのメンバである。 非公理的変換の例は、オリジナルセット以外の結果を引き出すことになる(さらに、メッセージデータビットの前、中、又は後に、ビットを挿入又は変更することによって実施できる。さらに、メッセージのうちの、何らかのビットを削除又は無視すること、又はビットをまとめて短絡すること(dot-OR)によって実施できる。)ハードウェア及び/又はソフトウェア、あるいはその両方は、性能を向上させるために並行して実施することができ、強度、硬度を増加させ、未検出の変更を減少させるために、異なる変換を用いて、複数回、反復することができる。

    方法のより弱い用途及びより強い用途の両方を例示する働きをする2つの例を示す。 第1に、デジタルデータへのスプーフィングされた変更は検出できないが、依然として明確な署名を提供する方法のより弱い使用法について概説する。

    実施例1
    説明及び計算を簡単にするために、(16ビットCRCアルゴリズムを使用した)3バイトメッセージの送信を取り上げる。 このメッセージは、以下のように、オリジナルと同じ残余を有するようにスプーフィングされる。
    タイプ メッセージ 残余(CRC)
    オリジナル 0x2A301C 0xDAC2
    スプーフィング後 0xC06454 0xDAC2(一致)
    次に、受信側の第1のビット(これは歪みステップであるが、アフィン変換なしで適用される)をトグル(toggle)する。 (数学的には、


    を意味する。 )


    オリジナル受信後 0xAA301C 0xD62E


    スプーフ受信後 0x406454 0xD62E(再度一致−スプーフは検出されず)


    トグル間の距離>16ビットとした場合はどうであろうか。 第1ビットと最終ビット(23ビット離れている)をトグルする(ここでも、歪みのみのステップに限定する)。 (数学的には、



    である。 )


    オリジナル受信後 0xAA301D 0xC7A7


    スプーフ受信後 0x406455 0xC7A7(依然として検出されず)


    次に、歪みをアフィン変換に先行させてみると、この場合、あらゆる2ビットを交換することになる。

    実施例2
    タイプ メッセージ 残余(CRC)
    オリジナル 0x2A301C 0xDAC2
    スプーフィング後 0xC06454 0xDAC2(一致)
    次に、受信側であらゆる2ビットを回転させる(アフィン変換の自明選択)。
    オリジナル受信後 0x15302C 0x2728
    スプーフ受信後 0xC098A8 0x3289(一致せず−スプーフ検出可能)
    次のケースでは、あらゆる2ビットを回転し、受信側の第1のビットをトグルする。
    オリジナル受信後 0x95302C 0x2BC4
    スプーフ受信後 0x4098A8 0x3E65(一致せず−異なる検出)
    アフィン変換の非自明選択には、確率の計算が必要な場合、既知の多項式に関する既知の関係に照らしたシステムの厳密な分析が求められる。

    では、実施例1では何が起こっているであろうか。 これは距離に関して述べることで説明できるかもしれないが、距離は、コンテキストが異なれば異なる意味を持つ。 数直線では、2つのポイント、すなわち7と4との間の距離は、単にそれらの相違の絶対値、(|7−4|=3)である。 ユークリッドの2空間では、2つのポイント、a=(x ,y )とc=(x ,y )との間の距離は、典型的には、頂点(x ,y )、(x ,y )、(x ,y )を備える三形についてピタゴラスの定理を使用して考えられる。 一般性を喪失しなければ、


    は斜辺である。 したがって、以下のようになる。



    これはノルム



    とも呼ばれる。


    距離に関する他の可能な定義は、以下の通りである。



    この定義(

    )は多少特異であり、距離は長い方の側の長さとなるように定義されることを表している。



    距離の定義(

    ** )は、平方根は考えずに、単に2つの側の合計であることを示している。



    定義(

    *** )はさらに特異であり、任意の2つの別個のポイント間の距離は、常に1である。

    有限の数のセットを使用する場合、特異性は継続する。 原始要素アルファ(α)、を用いた、α =α+1であるフィールドF 16を取り上げてみる。


    又は



    という具合である。

    α =α+1はα −α=(α+1)−α=1を示唆しているため、α とαとの間の「距離」は1である。
    又は、係数ビットを使用すると、


    となり、上記と同じである。


    同様に、α

    とα

    との間の「距離」は(α

    +1)−(α+1)=α

    +αである。


    又は、以下のビットを使用すると、



    となる(上記のように)。


    4桁の2進数に関する番号順によって上記の表を再配置すると、以下のように、順序及び距離に関する異なるコンテキストがわかる。


    さらに、他の方法で実施例1のスプーフの検出障害に注目する。 同じCRC、すなわちrを有する2つのメッセージm 及びm を有するものと想定する。 すると、
    何らかのnの場合、r =m (mod n)、及び
    =m (mod n)
    である。
    これは、以下のことを示唆する。
    =m (mod n)<=>n|(m −m ) [合同の特性、及びr =r による]
    何らかのkの場合、
    n|(m −m )<=>m =m +kn、
    <=>(m +d)=(m +d)+kn、[dは各メッセージに対して実行された変更]
    <=>n|((m +d)−(m +d))
    <=>(m +d)=(m +d)(mod n)
    したがって、剰余、すなわちr =(m +d)(mod n)は、2つのそれぞれ修正されたメッセージの場合と同じである。

    一般に、直交変換は、ユークリッド空間内の変換が共線性、距離、及び垂線を保持することを示唆する。 3空間の回転及び転換が例である。 アフィン変換は、これが共線性を保持するが、距離及び垂線は保持せず、さらに存在及び一意性を与える。 アフィン変換は、直線の順序を保持している。 シャー変換(shear transformation)とは、直交しないアフィン変換の例である。 損失がないため、順方向誤り訂正(FEC)EDACをアフィン変換と共に使用することができる。 アフィン変換(又はアフィン射)のより正式な定義は、可逆的なm×mの行列A及びベクトル


    が存在する場合、T:E

    →E

    のマッピングは、アフィン変換と呼ばれることであり、すべての



    について、



    である。

    非可逆的変換は、アフィン変換に必要な存在基準によって、アフィンとすることができないことを示唆する。 非公理的変換は、共線性、距離、又は垂線を保持しないことを示唆するものと定義し、存在又は一意性のいずれかを示唆するものではない。 非公理的変換とは、自動再送要求(ARQ)EDACと共に使用するため、強化識別署名(fortifying identification signatures)を使用するため、又は他の情報保証方法と共に使用するためのものである。 非公理的変換は、以下のマッピングSを提供する。

    LangGanong変換は、所与のザリスキ(Zariski)面上に、LangGanong定理を使用することによって作成された、P線形システムマトリクスの係数行列による乗算として定義する。 大きな種数を備えるこのような面が好ましいことが提案される。 LangGanong変換を選択する自明の例では、以下のように考えてみる。
    =xy +y (我々のザリスキ面である)
    及びf=x、すなわちp=2、
    及びg(x,y)=xy +y
    t度は4によって境界をなす。 a は、


    から、又は



    のLangGanong定理から見つけられる。


    次に、



    及び



    となる。 変換は、当分野で周知のように進行する。

    インタリーブ 距離と同様に、「インタリーブ」は、異なるコンテキストにおいて異なる意味を有する。 一部の従来技術では、インタリーブは、バースト誤りが多くみられる場合に、順次データを拡散させるために使用されるため、結果として検出不可能又は訂正不可能な誤りを発生させるバーストの尤度は低くなる。 テープドライブEDAC特許の場合、テープの縁部はより誤りの影響を受けやすかったため、縁部の物理トラック数は、他のトラックに誤りの可能性を分配するように、論理的に再配置(「インタリーブ」)された。 3重の直交特許では、バースト誤りの影響を再度減らすために、データの行及び/又は列を「インタリーブ」した。 ターボ特許では、1)非常に高い訂正機能、2)効率、3)非常に信頼性の高い復号、4)非常に高いビットレート、5)符号器及び復号器の相対的に容易な製造、6)必要なクロックが1つのみ、7)高い全体符号化効率、8)構成の復号器、9)シリコン表面上への復号方法の注入、10)多数のタイプの復号器の作成、11)高い採算性、12)簡単であること、及び13)多彩な用途と要約された幾つかの目的が示されている。 これらのターボコードは、明らかに素晴らしい。 また、インタリーブをカバーしているターボ特許では、ほとんどの実施形態での用途は、EDAC方法から予測される通りに、復号器の訂正機能を向上させるように順次データを再配置することである。

    発明者らのインタリーブの目的の1つは、符号化の結果として明確な残余が生じるように、単にデータの順序を変更することである。 非自明のサイズのデータメッセージについて、インタリーブを直交、又は線形、又は可逆的であるものと制限しないことにより、インタリーブのための方法の数が大幅に増加する。 非公理的実施形態では、これを以下のようなマッピング(射(morphism)、又は関係)の結果とすることができ、


    上式で、u>v又はu<vであり、



    及び



    の場合、行列S、W、A、及びCは可逆的ではなく、すなわち以下のように、1対1、上への(onto)ではない。



    唯一の規則は、所与の入力に対して反復可能であることであろう。

    提示された装置及び方法は、所与のEDACシステムの機能を拡張し、組み込まれたシステム上へのそれらのライフサイクル中のサイバー攻撃からの保護を向上させるものである。 装置及び方法は、他のデジタルデータのセキュアな配信にも適用される。

    一般に、本発明は、システムの開発時に簡単な拡張署名を関連付けること、システムの検証及び証明中に署名の記録及び文書化を可能にすること、並びに構成管理の記録、フィールドローディング検証、実行時検証、ランタイム健康維持システムによるチャレンジへの応答、エントリリポジトリのポートでの検証、証明機関による検証及び追跡可能性、調査員による履歴追跡、内部エスクロー記録、並びに次世代システムでの再使用などの、ライフサイクルのすべての局面においてファームウェアを監視及び検証することによって、コンピュータシステムにおけるブートファームウェアの信頼できる実行の改善を識別及び確保する。 多数の重複する明確な署名を、異なる変換又は歪みを使用することによって、入力デジタルデータに関連付けることが可能である。 ブートファームウェアを対象とする実施形態は例示のためのものであり、ブートファームウェアデジタルデータ上での使用に制限することを示唆するものではない。

    QQ群二维码
    意见反馈