(57)【要約】【課題】データを暗号化するための方法を提供すること。【解決手段】方法は、位取り記数法で表現されたデータをデータブロック内にフォーマットするステップを含む。方法は、データブロックを剰余数系表現に変換するステップも含む。方法はさらに、第１の誤り生成系列を生成するステップと、データブロックを剰余数系表現に変換した後、データブロックで誤りを引き起こすステップとを含む。誤りは、第１の誤り生成系列を使用することによって、データブロックで引き起こされることを理解されたい。データブロックで誤りを引き起こした後、データブロックのデータは、保存または転送のための形式にフォーマットされる。方法は、第１の誤り生成系列と同期させられた、第１の誤り生成系列と同一の第２の誤り生成系列を生成するステップと、誤りを引き起こす際に使用されたプロセスの逆算術である演算を使用して、データブロック内の誤りを訂正するステップも含む。【選択図】図２Ａ
2008293018.tif 000002
【特許請求の範囲】
【請求項１】
データを暗号化するための方法であって、
位取り記数法で表現されたデータを長さがＮビットの複数のデータブロック内にフォーマットするステップと、
前記複数のデータブロック内の前記データを剰余数系表現に変換するステップと、
第１の誤り生成系列を生成するステップと、
前記変換ステップの後、前記第１の誤り生成系列を使用して少なくとも１つの剰余にガロア演算を使用する算術演算を施すことによって、前記データブロックで誤りを引き起こすステップと、を含む方法。
【請求項２】
誤りを引き起こす前記ステップが、前記剰余数系で生成された複数の剰余値の少なくとも１つに既知の誤りを導入するステップを含む、請求項１に記載の方法。
【請求項３】
誤りを引き起こす前記ステップが、前記第１の誤り生成系列に基づいて、前記剰余数系において生成された前記剰余値に対して算術演算を実行するステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記誤りを引き起こした後、前記データブロックを位取り記数法に変形するステップをさらに含む、請求項１に記載の方法。
【請求項５】
位取り記数法で前記第１の誤り生成系列を生成するステップをさらに含む、請求項１に記載の方法。
【請求項６】
前記剰余数系で前記第１の誤り生成系列を生成するステップをさらに含む、請求項１に記載の方法。
【請求項７】
前記引き起こすステップが、選択された剰余だけで誤りを引き起こすステップをさらに含む、請求項１に記載の方法。
【請求項８】
前記選択された剰余が、時間につれて別のものに変更される、請求項７に記載の方法。
【請求項９】
前記引き起こすステップの後、前記データを保存または転送のための位取り形式にフォーマットするステップをさらに含む、請求項１に記載の方法。
【請求項１０】
前記誤りを引き起こした後の前記データブロックを受け取るステップと、
前記第１の誤り生成系列と同期させられた、前記第１の誤り生成系列と同一の第２の誤り生成系列を生成するステップと、
前記誤りを引き起こすステップで使用されたプロセスの逆算術である演算を使用して、前記データブロック内の前記誤りを訂正するステップと、をさらに含む、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号法に関する。より詳細には、本発明は、剰余数系表現における入力信号を誤り生成系列と組み合わせることによってデータを符号化する暗号システムに関する。
【背景技術】
【０００２】
通信ネットワークを介したデータの転送に先立ってデータを暗号化するための、当技術分野で知られた多くの方法が存在する。１つのそのような方法は、暗号化装置において入力信号を受け取ることを含む。入力信号は、２進法表現で表現され、すなわち、英語の文字は、ビットの系列によって表現される。系列の各ビットは、０（ゼロ）または１の値を有する。この方法は、暗号化系列を生成することも含む。暗号化系列は、きわめて非線形な方法を使用して生成された疑似乱数列とすることができる。この方法はさらに、暗号化系列を使用して入力信号で変更を引き起こすことを含む。そのような変更は、入力データをマスクし、算術演算を実行することによって入力信号内に導入される。これらの算術演算は一般に、ガロア体における算術演算である。例えば、２進暗号化系列が、ガロア体ＧＦ［２］演算を使用して、ビット毎に入力信号に加算され、または入力信号から減算される。代替として、２進暗号化系列が、ガロア体ＧＦ［２］演算を使用して、入力信号と乗算される。この点について、上で挙げられた算術演算の各々は、入力信号の各ビットを変更する結果をもたらすことを理解されたい。実質的に、入力信号に含まれるデータが暗号化される。
【０００３】
当業者であれば理解されるように、そのような暗号化方法の利点は、それが高度なセキュリティを提供することである。この方法は、そのような利点にも関わらず、いくつかの難点に悩まされる。例えば、暗号化系列を生成するために一般に利用されるアルゴリズムは、計算集約的である。そのため、これらのアルゴリズムを実施するソフトウェアプログラムは、データ処理に時間がかかる。
【０００４】
別のそのような方法は、暗号化装置において２進法表現で表現された入力信号を受け取ることを含む。この方法は、暗号化系列を生成することも含む。この方法さらには、Ｎビットブロックの暗号化系列を使用して、Ｎビットブロックの入力信号にガロア体演算の算術演算を施すことを含む。加算、減算、または乗算などの算術演算を実行することによって、暗号化が入力信号で引き起こされる。算術演算を実行した結果、ブロック全体が変更される。例えば、英語の各文字は、８ビット列によって表現される。８文字からなるブロックは、６４ビットブロックを形成する。６４ビットブロックの各ビットは、０または１の値を有する。そのため、各入力ブロック系列の６４個のビットは、ガロア体演算を使用して、入力信号を暗号化系列のブロックと組み合わせることによって変更される。その結果、入力信号に含まれるデータが暗号化される。
【０００５】
当業者であれば理解されるように、計算量は、暗号化系列生成方法の複雑度を低減することによって低減されることができる。これは、アルゴリズムの周期性を低減することによって、またはアルゴリズムにおける非線形性の量を低減することによって、実行されることができる。当業者であれば理解されるように、この暗号化方法の利点は、それが先に説明された方法ほどには計算集約的でないことである。この方法は、そのような利点にも関わらず、いくつかの難点に悩まされる。例えば、この方法は、より低い程度のセキュリティしか提供しない。
【非特許文献１】Ｆ．ＰｏｕｒｂｉｇｈａｒａｚおよびＨ．Ｍ．Ｙａｓｓｉｎｅ、Ｍｏｄｕｌｏ−Ｆｒｅｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｂｉｎａｒｙ  ｔｏ  Ｒｅｓｉｄｕｅ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎ  ｗｉｔｈ  ｒｅｓｐｅｃｔ  ｔｏ  ｛２ｍ−１，２ｍ，２ｍ＋１｝  Ｍｏｄｕｌｉ  Ｓｅｔ、ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｃｉｒｃｕｉｔｓ  ａｎｄ  Ｓｙｓｔｅｍｓ、１９９４年５月３０日〜６月２日、３１７〜３２０頁、Ｖｏｌｕｍｅ  ２、Ｌｏｎｄｏｎ、Ｅｎｇｌａｎｄ、ＵＫ
【発明の開示】
【発明が解決しようとする課題】
【０００６】
いくつかの暗号化応用例では、セキュリティの程度と暗号化アルゴリズムの計算量との間のトレードオフは容認されない。そのような応用例は、医療記録の暗号化およびクレジットカード記録の暗号化を含むが、それらに限定されない。そのため、従来の高セキュリティ暗号化方法のものよりもかなり低い実装複雑度（implementation complexity）で中程度のセキュリティを提供する暗号化方法の必要性が存在する。
【課題を解決するための手段】
【０００７】
データを暗号化するための方法が提供される。前記方法は、剰余で引き起こされる誤りと剰余数系が位取り記数法に写像された場合に生じる対応する誤りとの間で誤り統計を写像することの難しさに基づいている。この難しい誤り写像が、誤りを引き起こすのに使用された方法の特性をマスクし、その結果、入力データを暗号化する。暗号化情報を暗号解除するために、逆演算が実行される。誤り引き起こし系列または暗号化系列のマスキングは、許容可能なレベルのセキュリティをもたらしながらも、あまり複雑でなく、したがってあまり計算集約的ではない系列生成の使用を可能にする。
【０００８】
前記方法は、位取り記数法で表現されたデータを長さがＮビットの２つ以上のデータブロック内にフォーマットするステップを含む。前記方法は、データブロック内のデータを剰余数系表現に変換するステップも含む。前記方法はさらに、単純な線形系列、疑似乱数列、無秩序系列、または複雑な非線形系列などの第１の誤り生成系列を生成するステップを含む。その後、前記方法は、誤り生成系列を使用して１つまたは複数の剰余にガロア演算を使用する算術演算を施すことによって、データブロックで誤りを引き起こすステップを含む。この点について、誤りは、データを剰余数系表現に変換した後、データブロックで引き起こされることを理解されたい。
【０００９】
本発明の一態様によれば、前記方法は、剰余数系で生成された１つまたは複数の剰余値に既知の誤りを導入するステップを含む。前記方法は、第１の誤り生成系列に基づいて、剰余値に対して算術演算を実行するステップも含む。前記方法はさらに、データブロックを位取り記数法に変形するステップを含む。この点について、この変形は、誤りがデータブロックで引き起こされた後、実行されることを理解されたい。
【００１０】
本発明の別の態様によれば、前記方法は、位取り記数法または剰余数系で第１の誤り生成系列を生成するステップを含む。前記方法は、選択された剰余だけで誤りを引き起こすステップも含む。その剰余は時間につれて別のものに変更され得ることを理解されたい。前記方法はさらに、誤りをデータブロックで引き起こすステップの後、データを保存または転送のための位取り形式にフォーマットするステップを含む。
【００１１】
本発明のまた別の態様によれば、前記方法は、誤りをデータブロックで引き起こすステップの後のデータブロックを受け取るステップを含む。前記方法は、第１の誤り生成系列と同期させられた、第１の誤り生成系列と同一の第２の誤り生成系列を生成するステップも含む。前記方法はさらに、誤りをデータブロックで引き起こす際に使用されたプロセスの逆算術である演算を使用して、データブロック内の誤りを訂正するステップを含む。前記方法は、データブロック内の誤りを訂正した後、データブロックを剰余数系から位取り記数法に変換するステップを含む。位取り記数法は、１０進法、２進法、８進法、および１６進法からなる群から選択される。
【００１２】
実施形態は、図面を参照しながら説明され、図面全体において、同様の数字は、同様の対象を表す。
【発明を実施するための最良の形態】
【００１３】
ここで図１を参照すると、本発明を理解するのに役立つ、暗号システム１００のブロック図が提供されている。システム１００は、暗号化エンジン１５０と、暗号解除エンジン１６０とから成る。図１に示されるように、暗号化エンジン１５０は、データブロックフォーマッタ１０２と、剰余数系（ＲＮＳ：ｒｅｓｉｄｕｅ  ｎｕｍｂｅｒ  ｓｙｓｔｅｍ）エンコーダ１０４と、閉リング算術演算器１０６と、データフォーマッタ１０８とから成る。暗号化エンジン１５０は、数列生成器１１０と、状態シンクロナイザ１１２とからも成る。
【００１４】
データブロックフォーマッタ１０２は、位取り記数法表現で表現された情報のビットを含む入力信号を受け取るように構成されたハードウェアおよびソフトウェアから成る。本明細書で使用される「位取り記数法」という語句は、剰余数系以外の記数法を指す。そのような記数法は、１０進法、２進法、８進法、および１６進法を含むが、それらに限定されない。データブロックフォーマッタ１０２は、情報のビットを複数のデータブロックに配置するように構成されたハードウェアおよびソフトウェアからも成る。
【００１５】
本発明の一態様によれば、各データブロックは、英語の１つまたは複数の文字を表す。本発明の別の態様によれば、データブロックは、特定のシステム１００の用途に従って定義された多くのビットを含む。この点について、各データブロックが一定数のビットを含み得ることを理解されたい。代替として、各データブロックは、最小サイズから最大サイズにわたる可変数のビットを含むこともできる。この点について、各データブロックに含まれるビットの数は、暗号解除エンジン１６０によって知られているが、ランダムまたは疑似ランダムな特性を有する決定論的方式で、変更され得ることを理解されたい。
【００１６】
再び図１を参照すると、データブロックフォーマッタ１０２はさらに、データブロックをＲＮＳエンコーダ１０４に伝達するように構成されたハードウェアおよびソフトウェアから成る。ＲＮＳエンコーダ１０４は、データブロックをデータブロックフォーマッタ１０２から受け取るように構成されたハードウェアおよびソフトウェアから成る。ＲＮＳエンコーダ１０４は、モジュロ演算（modulo operations）によってデータブロック内のデータを剰余数系（ＲＮＳ）表現に変換するように構成されたハードウェアおよびソフトウェアから成る。この点について、ＲＮＳ表現へのデータの変換は、文字単位に、すなわちデータブロック単位の方式で実行され得ることを理解されたい。モジュロ演算は、ＲＮＳエンコーダ１０４の処理時間を短縮するために並列に実行され得ることも理解されたい。モジュロ演算は、当業者にはよく知られている。したがって、そのような演算は、本明細書ではあまり詳細には説明されない。しかし、利用される剰余数系が、互いに素の数（prime numbers）として選択された法（moduli）ｍ０、ｍ１、．．．、ｍＮ−１を有する限り、当技術分野で知られた任意のモジュロ演算が、制限なく使用され得ることを理解されたい。本明細書で使用される「互いに素の数」という語句は、最大公約数が１である数を指す。
【００１７】
本発明の一実施形態によれば、２進−剰余変換演算が計算される。そのようなシナリオでは、２の累乗に等しいまたは近い法を実施するのが好ましい。例えば、ＲＮＳエンコーダ１０４は、相対的に簡単な２進−ＲＮＳ変換方法を利用するよう求められ、その場合、ＲＮＳエンコーダ１０４によって使用される法は、有利には２Ｎ、２Ｎ−１、および２Ｎ＋１として選択されることができる。理解されるべきこととして、そのような法は、互いに素であることが保証され、可能な限り最低の実施複雑度を有するために好ましい。しかしながら、本発明は、この点について限定されない。
【００１８】
法２Ｎ、２Ｎ−１、および２Ｎ＋１のための２進−剰余回路の例が、Ｆ．Ｐｏｕｒｂｉｇｈａｒａｚ、Ｈ．Ｍ．Ｙａｓｓｉｎｅ、「Ｍｏｄｕｌｏ−Ｆｒｅｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｂｉｎａｒｙ  ｔｏ  Ｒｅｓｉｄｕｅ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎ  ｗｉｔｈ  ｒｅｓｐｅｃｔ  ｔｏ  ｛２ｍ−１，２ｍ，２ｍ＋１｝  Ｍｏｄｕｌｉ  Ｓｅｔ，１９９４」に開示されている。同文献の開示全体が、参照により本明細書に組み込まれる。
【００１９】
以下の実施例（１）は、２進データをＲＮＳ表現に変換するために計算されるモジュロ演算について読者が理解するのを助けるために提供される。しかし、本発明の範囲は、それによって多少なりとも限定されない。
【実施例１】
【００２０】
第１のデータブロックは、ＡＳＣＩＩ文字セットの第１０の文字である水平タブを表す２進ビット列００００１００１から成る。当業者であれば理解されるように、２進ビット列００００１００１は、１０進数値の９を有する。拡張ＡＳＣＩＩ文字セットは、１０進数値で０から２５５まで、対応する２進数値で００００００００から１１１１１１１１までの２５６個の可能な値を有するので、法集合は、動的な範囲Ｍ＝ｍ０、ｍ１、．．．、ｍＰ−１を供給しなければならない。Ｐは、少なくとも２５５である法の数である。３つの法ｍ０、ｍ１、ｍ２が、７、８、および９の値を有するように選択される。これは、５０４の動的な範囲を与える。したがって、第１のデータブロック内のデータのＲＮＳ表現は、式（１）を使用して計算されることができる。
Ｒ＝｛Ｖｂｂｓ  ｍｏｄｕｌｏ  ｍ０，Ｖｂｂｓ  ｍｏｄｕｌｏ  ｍ１，Ｖｂｂｓ  ｍｏｄｕｌｏ  ｍ２｝    （１）
ここで、Ｒは、データブロック内のデータに対する剰余値の３つ組である。Ｖｂｂｓは、英語の文字を表す２進ビット列の値である。ｍ０、ｍ１、ｍ２は、法である。Ｖｂｂｓおよびｍ０、ｍ１、ｍ２に関して上で挙げられた値を式（１）に代入することによって、第１のデータブロック内のデータに対する剰余値は、Ｒ＝｛９  ｍｏｄｕｌｏ  ７＝２，９  ｍｏｄｕｌｏ  ８＝１，９  ｍｏｄｕｌｏ  ９＝０｝のように計算されることができ、２進ビット列の｛０１０  ００１  ０００｝を有する。
【００２１】
本発明の別の態様によれば、２進−剰余変換演算は、有利には検索表操作（look-up table operations）で実施される。この実施形態は、管理可能な検索表アドレス空間のため、特に１０ビット以下のブロックサイズ用である。そのようなシナリオでは、ＲＮＳエンコーダ１０４は、計算による２進−ＲＮＳ変換アルゴリズムを利用するＲＮＳエンコーダの処理時間と比べて、相対的に高速な処理時間を有する。しかしながら、本発明は、この点について限定されない。当技術分野で知られたその他の任意の２進−剰余変換技法が、制限なく使用されることができる。
【００２２】
再び図１を参照すると、ＲＮＳエンコーダ１０４は、２進法表現で表現された剰余値を閉リング算術演算器１０６に伝達するように構成されたハードウェアおよびソフトウェアからも成る。閉リング算術演算器１０６は、剰余値をＲＮＳエンコーダ１０４から受け取るように構成されたハードウェアおよびソフトウェアから成る。図１に示されるように、閉リング算術演算器１０６は、数列生成器１１０に結合される。数列生成器１１０は、誤り生成系列を生成するように構成されたハードウェアおよびソフトウェアから成る。本明細書で使用される「誤り生成系列」という語句は、２進数表現で表現された直列結合された数の系列、すなわち値０または値１のｎ個のビットを有する直列結合されたビットセグメントの系列を指す。この点について、数列生成器１１０が、状態シンクロナイザ１１２に結合されることを理解されたい。状態シンクロナイザは、当業者にはよく知られている。したがって、状態シンクロナイザ１１２は、本明細書ではあまり詳細には説明されない。しかし、状態シンクロナイザ１１２が、「鍵」を受け入れるように構成されたハードウェアおよびソフトウェアから成ることを理解されたい。理解されるべきこととして、鍵は、メッセージを暗号解除するために同一の誤り生成系列を受信機において生成することを可能にするために提供される。「鍵」は、選択された剰余で誤りを引き起こすことを可能にするためにも提供される。
【００２３】
再び図１を参照すると、状態シンクロナイザ１１２は、「鍵」を数列生成器１１０に伝達するように構成される。数列生成器は、当業者にはよく知られている。したがって、数列生成器１１０は、本明細書ではあまり詳細には説明されない。しかし、数列生成器１１０が、受け取られた「鍵」で定義される初期状態を用いて誤り生成系列を生成するアクションを実行することを理解されたい。そのような誤り生成系列のタイプは、位取り記数法表現での数列または剰余数系表現での数列を含むが、それらに限定されない。当業者であれば理解されるように、誤り生成系列のタイプは、システム１００の複雑度（complexity）および堅牢度（robustness）によって定められることができる。この点について、誤り生成系列は、単純な疑似乱数列、無秩序系列、または複雑な非線形系列として選択され得ることを理解されたい。
【００２４】
再び図１を参照すると、数列生成器１１０は、誤り生成系列を閉リング算術演算器１０６に伝達するように構成されたハードウェアおよびソフトウェアからも成る。ＲＮＳエンコーダ１０４から１つまたは複数の剰余値を、数列生成器１１０から誤り生成系列を受け取ると、閉リング算術演算器１０６は、誤り生成系列を使用して剰余値の少なくとも１つで誤りを引き起こすアクションを実行する。この点について、閉リング算術演算器１０６は、ガロア体加算、ガロア体減算、ガロア体乗算、ガロア拡大体乗算、またはガロア部分体の部分集合上での関連演算などの算術演算を実行することによって、剰余値で誤りを引き起こすことを理解されたい。例えば、閉リング算術演算器１０６は、ガロア体ＧＦ［ｍＬ］において誤り生成系列の全部または一部を剰余値に加算し、それによって剰余値で誤りを引き起こすアクションを実行する。
【００２５】
本発明の一態様によれば、各剰余値は、２進法表現で表現される。具体的には、各剰余は、ビットの系列として表現される数である。系列の各ビットは、値０または値１を有する。この点について、閉リング算術演算器１０６によって実行される算術演算が、各剰余値または選択剰余値の１つまたは複数のビットをガロア体ＧＦ［ｍＬ］において変更することを理解されたい。誤りが引き起こされる選択剰余値は、時間につれて別のものに変更され得ることも理解されたい。
【００２６】
１つまたは複数の剰余値で誤りを引き起こした後、閉リング算術演算器１０６は、誤りが引き起こされていない剰余値（ＮＥＩＲＶ：ｎｏｎ−ｅｒｒｏｒ  ｉｎｄｕｃｅｄ  ｒｅｓｉｄｕｅ  ｖａｌｕｅ）および／または誤りが引き起こされた剰余値（ＥＩＲＶ：ｅｒｒｏｒ  ｉｎｄｕｃｅｄ  ｒｅｓｉｄｕｅ  ｖａｌｕｅ）をデータフォーマッタ１０８に伝達する。本明細書で使用される「誤りが引き起こされていない剰余値」という語句は、引き起こされた誤りが不在の剰余値を指し、すなわち、剰余値ビットのいずれもが、閉リング算術演算器１０６によって実行された算術演算によって変更されなかったことを指す。この点について、閉リング算術演算器１０６によって実行される算術演算は、選択剰余値の１つまたは複数のビットを変更し得ることを理解されたい。したがって、閉リング算術演算器１０６は、引き起こされた誤りを有する選択剰余値（すなわちＥＩＲＶ）以外の剰余値（すなわちＮＥＩＲＶ）をデータフォーマッタ１０８に伝達することができる。本明細書で使用される「誤りが引き起こされた剰余値」という語句は、剰余値と誤り生成系列の全部もしくは一部との和、剰余値から誤り生成系列の全部もしくは一部を減算した結果、または剰余値と誤り生成系列の全部もしくは一部との積を表す数値を指し、すなわち、剰余値の１つまたは複数のビットが、閉リング算術演算器１０６によって実行された算術演算によって変更されたことを指す。
【００２７】
データフォーマッタ１０８は、ＮＥＩＲＶおよびＥＩＲＶをデータストア１１４および／または暗号解除エンジン１６０への転送に適した形式に変換するように構成されたハードウェアおよびソフトウェアから成る。例えば、データフォーマッタ１０８は、ＮＥＩＲＶおよびＥＩＲＶをインタリーブするアクションを実行することができる。フォーマッティングステップの後、ＮＥＩＲＶおよびＥＩＲＶは、保存され、または何らかの遠隔ロケーションに転送される。例えば、ＮＥＩＲＶおよびＥＩＲＶは、データストア１１４および／または暗号解除エンジン１６０に転送されることができる。データフォーマッタ１０８は、ＮＥＩＲＶおよびＥＩＲＶをデータストア１１４および／または暗号解除エンジン１６０への転送のためにフォーマットするのに先立ち、ＮＥＩＲＶおよびＥＩＲＶを位取り記数法表現に変換するアクションも実行することができる。この点について、データフォーマッタ１０８は、フォーマッティングとデータストア１１４および／または暗号解除エンジン１６０への転送とに先立ち、中国の剰余定理（ＣＲＴ：Ｃｈｉｎｅｓｅ  Ｒｅｍａｉｎｄｅｒ  Ｔｈｅｏｒｅｍ）アルゴリズム、修正ＣＲＴアルゴリズム、混合基数変換（ＭＲＣ：ｍｉｘｅｄ−ｒａｄｉｘ  ｃｏｎｖｅｒｓｉｏｎ）アルゴリズム、または修正ＭＲＣアルゴリズムを利用して、ＮＥＩＲＶおよびＥＩＲＶを位取り記数法表現に変換し得ることを理解されたい。
【００２８】
図１に示されるように、暗号解除エンジン１６０は、逆データフォーマッタ１１６と、閉リング算術演算器１１８と、ＣＲＴプロセッサ１２４とから成る。暗号解除エンジン１６０は、数列生成器１２０と、状態シンクロナイザ１２２とからも成る。逆データフォーマッタ１１６は、インタリーブデータ（interleaved data:すなわちＮＥＩＲＶおよびＥＩＲＶ）を含む受け取られた信号を閉リング算術演算器１１８に伝達するのに適した形式に変換するように構成されたハードウェアおよびソフトウェアから成る。逆データフォーマッタ１１６は、インタリーブされたデータを抽出することができ、データフォーマッタ１０８から伝達されたフォーマットデータからＮＥＩＲＶおよびＥＩＲＶを抽出するのに必要なその他の任意のアクションを実行することができる。ＮＥＩＲＶおよびＥＩＲＶが、データフォーマッタ１０８によって転送に先立って位取り記数法に変換される場合、逆データフォーマッタ１１６も、ＮＥＩＲＶおよびＥＩＲＶを非位取り記数法表現に変換するアクションを実行することができる。本明細書で使用される「非位取り記数法」という語句は、剰余数系を指す。
【００２９】
再び図１を参照すると、状態シンクロナイザ１２２は、数列生成器１２０の少なくとも１つの状態を数列生成器１１０の少なくとも１つの状態と同期させるアクションを実行する。この点について、状態シンクロナイザ１２２は、「鍵」を生成し、その鍵を数列生成器１２０に伝達することを理解されたい。「鍵」は、暗号化エンジン１５０によって利用されるのと同じ誤り生成系列を生成することを可能にするために提供される。「鍵」を受け取ると、数列生成器１２０は、暗号化エンジン１５０の数列生成器１１０によって生成されたのと同じ誤り生成系列を生成するアクションを実行する。その後、数列生成器１２０は、誤り生成系列を閉リング算術演算器１１８に伝達するアクションを実行する。
【００３０】
逆データフォーマッタ１１６からＮＥＩＲＶおよびＥＩＲＶを、数列生成器１２０から誤り生成系列を受け取ると、閉リング算術演算器１１８は、閉リング算術演算器１０６によってＥＩＲＶで先に引き起こされた誤りを取り除くアクションを実行する。この点について、閉リング算術演算器１１８は、暗号化エンジン１５０の閉リング算術演算器１０６によって実行された算術演算を逆転する。誤りがＥＩＲＶから取り除かれると、（任意のＮＥＩＲＶを含む）誤りのない剰余値は、閉リング算術演算器１１８からＣＲＴプロセッサ１２４に伝達される。ＣＲＴプロセッサ１２４は、誤りのない剰余値から出力データを獲得するために、算術演算および／または検索表操作を実行する。この点について、ＣＲＴプロセッサ１２４は、中国の剰余定理（ＣＲＴ）アルゴリズムを利用することによって、英語の文字を表す２進ビットの系列を誤りのない剰余値から回復するように構成されたハードウェアおよびソフトウェアから成ることを理解されたい。ＣＲＴアルゴリズムは、当業者にはよく知られている。したがって、ＣＲＴアルゴリズムは、本明細書ではあまり詳細には説明されない。しかし、任意のＣＲＴアルゴリズムが、制限なく使用され得ることを理解されたい。出力データが、暗号化エンジン１５０で受け取られた入力信号に含まれるのと実質的に同じ２進ビットの系列から成ることも理解されたい。
【００３１】
ここで図２を参照すると、本発明を理解するのに役立つ、データを暗号化および暗号解除するための方法２００のフロー図が示されている。図２に示されるように、方法２００は、ステップ２０２で開始し、ステップ２０４に進む。ステップ２０４において、位取り記数法表現で表現された入力データが、暗号化エンジン１５０で受け取られる。ステップ２０４の後、ステップ２０６が実行され、２つ以上のデータブロックを形成するために入力データが処理される。この点について、データブロックが、固定数のビットまたは最小サイズから最大サイズにわたる可変数のビットを含み得ることを理解されたい。その後、方法２００は、ステップ２０８に進む。ステップ２０８において、データブロック内のデータが、モジュロ演算によって剰余数系表現に変換される。モジュロ演算は、当業者にはよく知られている。したがって、モジュロ演算は、本明細書ではあまり詳細には説明されない。しかし、モジュロ演算が、特定の方法２００の用途に従って選択されることを理解されたい。
【００３２】
再び図２を参照すると、方法２００は、ステップ２１０に進む。ステップ２１０において、特定のタイプの誤り生成系列の生成を可能にするための「鍵」が生成される。ステップ２１２において、「鍵」が数列生成器１１０に伝達される。「鍵」を受け取ると、数列生成器１１０は、「鍵」で定義され、「鍵」によって同期させられたタイプの誤り生成系列を生成する。そのようなタイプの誤り生成系列は、位取り記数法表現で表現された数列または剰余数系表現で表現された数列を含むが、それらに限定されない。ステップ２１６において、誤り生成系列を使用して剰余数系で生成された剰余値に対して、閉リング算術演算が実行される。閉リング算術演算は、ガロア体加算、ガロア体減算、またはガロア体乗算とすることができる。例えば、誤り生成系列の全部または一部が剰余値に加算され、それによって剰余値で誤りを引き起こす。その後、ステップ２１８において、誤りが引き起こされた剰余値（ＥＩＲＶ）を保存または転送用にフォーマットするために、ＥＩＲＶが処理される。そのようなフォーマッティングは、ＥＩＲＶおよびＮＥＩＲＶを位取り記数法に変換することを含むことができる。そのようなフォーマッティングは、ＥＩＲＶおよびＮＥＩＲＶをインタリーブすることも含むことができる。そのようなフォーマッティングはさらに、ＥＩＲＶおよびＮＥＩＲＶを保存または転送用に準備するためのその他の任意のフォーマッティングステップを含むことができる。ステップ２２０において、フォーマットされた暗号化データが、位取り記数法表現に変換されてまたは変換されずに、データストア１１４および／または暗号解除エンジン１６０に伝達される。その後、方法２００は、図２Ｂのステップ２２２に進む。
【００３３】
ステップ２２２において、暗号解除エンジン１６０は、フォーマットされた暗号化データを受け取る。フォーマットされた暗号化データを受け取ると、暗号解除エンジン１６０は、それに対して処理を実行する。この処理は、ＥＩＲＶおよびＮＥＩＲＶが閉リング算術演算器１１８への伝達にとって適切な形式になるように、フォーマットされた暗号化データをフォーマット解除することを含むことができる。このステップは、インタリーブ系列からＥＩＲＶおよびＮＥＩＲＶをデインタリーブすることを含むことができる。このステップは、ＥＩＲＶおよびＮＥＩＲＶを非位取り記数法に変換することも含むことができる。ステップ２２４の後、ステップ２２６が実行され、暗号解除エンジン１６０に含まれる数列生成器１２０の少なくとも１つの状態と暗号化エンジン１５０に含まれる数列生成器１１０の少なくとも１つの状態とが同期させられる。ステップ２２８において、誤り生成系列が、数列生成器１２０によって生成される。この点について、その誤り生成系列は、暗号化エンジン１５０によって生成された誤り生成系列と同じであることを理解されたい。誤り生成系列は、位取り記数法または剰余数系で生成されることも理解されたい。その後、ＥＩＲＶで引き起こされた誤りを取り除いて誤りのない剰余値を獲得するために、閉リング演算が実行される。ステップ２３２において、誤りのない剰余値から出力データを獲得するために、中国の剰余定理（ＣＲＴ）演算および／またはＣＲＴ検索表操作が実行される。この点について、出力データは、入力データに含まれるのと同じまたは実質的に同じ２進ビット列から成ることを理解されたい。ステップ２３２の後、ステップ２３４が実行され、方法２００は終了する。
【００３４】
本発明の原理を説明するために、以下の実施例（２）が提供される。本発明の原理を説明するために、ＭＡＴＬＡＢ（登録商標）ソフトウェアが使用される。しかし、本発明の範囲は、それによって多少なりとも限定されると考えられるべきではない。
【実施例２】
【００３５】
簡単な例として、入力データ「the quick brown fox」が生成され、モジュロ演算を使用して剰余数系表現に変換される。利用される剰余数系は、法３、５、および１９を有するように選択される。その後、剰余空間における操作が、法を３とするｍｏｄ関数値の最低位ビット（ＬＳＢ）の単純な反転によって実行され、この操作は、剰余空間におけるＬＳＢの非常に予測可能な操作が文字の位取り記数法表現においては統計的に複雑な挙動として現れるという原理を示す。単一の剰余におけるＬＳＢの単純な切り替えは、それによって以下の出力文字を生成する。
【数１】
2008293018.tif 000003
その後、文字が剰余数系表現に変換され戻す。剰余空間における操作が、法を３とするｍｏｄ関数値のＬＳＢを反転することによって実行され、それによって出力データ「the quick brown fox」を生成する。図５Ａ〜図５Ｃは、ソフトウェア例を示している。
【００３６】
本発明の数学的態様をさらに説明するために、以下の実施例（３）が提供される。しかし、本発明の範囲は、それによって多少なりとも限定されると考えられるべきではない。
【実施例３】
【００３７】
簡単な例として、入力データが生成され、モジュロ演算を使用して剰余数系表現に変換される。入力データは、図６Ａおよび図６Ｂに示されるデータを含む。
【００３８】
利用される剰余数系は、法２、７、および１７を有するように選択される。その後、法を２とするｍｏｄ関数値の最低位ビット（ＬＳＢ）の単純な反転によって、剰余空間における操作が実行される。
【００３９】
説明を単純にするため、単純な正規分布ランダム変数が、入力データを表す８ビットブロックの数に等しいサンプルの数を有するように生成される。その他の実施形態では、誤り系列を生成するより複雑な方法が使用される。各ランダム変数の最初の３つの部分ビットは、０から６までの値に制限され、ガロア体ＧＦ［７］において、法を７とするｍｏｄ関数値に加算される。ランダムサンプル内の次の５つの部分ビットは、０から１６までの値に制限され、ガロア体ＧＦ［１７］において、法を１７とするｍｏｄ関数値に加算される。その結果は、中国の剰余定理（ＣＲＴ）によって、位取り８ビット文字表現に再フォーマットされる。
【００４０】
剰余空間における単純な演算が、図７Ａから図７Ｃに示される文字を生成および出力する。
【００４１】
暗号解除エンジンにおいて、文字は剰余数系表現に変換され戻す。法を２とするｍｏｄ関数値のＬＳＢの反転によって、剰余空間における操作が実行される。暗号化において乱数列を生成するために使用されたシードが、暗号解除エンジンにおける乱数生成器用の鍵およびシードとして使用される。各ランダム変数の最初の３つの部分ビットは、０から６までの値に制限され、ガロア体ＧＦ［７］において、法を７とするｍｏｄ関数値から減算される。ランダムサンプルの中の次の５つの部分ビットは、０から１６までの値に制限され、ガロア体ＧＦ［１７］において、法を１７とするｍｏｄ関数値から減算される。その結果は、中国の剰余定理（ＣＲＴ）によって、文字フォーマットに変換され戻す。結果として、元の入力データに対応する出力データが生成される。
【００４２】
本発明を理解する目的で、剰余暗号化および暗号解除についてのＭＡＴＬＡＢ（登録商標）ソフトウェアルーチンである図８Ａから図８Ｇの例が提供される。当業者であれば、本発明が提供されたルーチンに限定されないことを理解されよう。
【００４３】
図３は、入力系列の自己相関を示すグラフである。図４は、暗号化系列の自己相関を示すグラフである。相互相関は、２つの独立な一様分布ランダム系列のものと類似しており、したがって、２つの統計の独立性を示している。
【図面の簡単な説明】
【００４４】
【図１】本発明を理解するのに役立つ、暗号化エンジンおよび暗号解除エンジンを有する暗号システムのブロック図である。
【図２Ａ】本発明を理解するのに役立つ、データを暗号化および暗号解除するための方法のフロー図である。
【図２Ｂ】本発明を理解するのに役立つ、データを暗号化および暗号解除するための方法のフロー図である。
【図３】本発明を理解するのに役立つ、入力系列の自己相関を示すグラフである。
【図４】本発明を理解するのに役立つ、暗号化系列の自己相関を示すグラフである。
【図５Ａ】実施例２に関するソフトウェアを示す図である。
【図５Ｂ】実施例２に関するソフトウェアを示す図である。
【図５Ｃ】実施例２に関するソフトウェアを示す図である。
【図６Ａ】実施例３の入力データを示す図である。
【図６Ｂ】実施例３の入力データを示す図である。
【図７Ａ】実施例３の出力文字を示す図である。
【図７Ｂ】実施例３の出力文字を示す図である。
【図７Ｃ】実施例３の出力文字を示す図である。
【図８Ａ】実施例３に関するソフトウェアを示す図である。
【図８Ｂ】実施例３に関するソフトウェアを示す図である。
【図８Ｃ】実施例３に関するソフトウェアを示す図である。
【図８Ｄ】実施例３に関するソフトウェアを示す図である。
【図８Ｅ】実施例３に関するソフトウェアを示す図である。
【図８Ｆ】実施例３に関するソフトウェアを示す図である。
【図８Ｇ】実施例３に関するソフトウェアを示す図である。
【符号の説明】
【００４５】
１００  暗号システム
１０２  データブロックフォーマッタ
１０４  剰余数系（ＲＮＳ）エンコーダ
１０６  閉リング算術演算器
１０８  データフォーマッタ
１１０  数列生成器
１１２  状態シンクロナイザ
１１６  逆データフォーマッタ
１１８  閉リング算術演算器
１２０  数列生成器
１２２  状態シンクロナイザ
１２４  中国の剰余定理（ＣＲＴ）プロセッサ
１５０  暗号化エンジン
１６０  暗号解除エンジン
【図１】
2008293018.tif 000004
【図２Ａ】
2008293018.tif 000005
【図２Ｂ】
2008293018.tif 000006
【図３】
2008293018.tif 000007
【図４】
2008293018.tif 000008
【図５Ａ】
2008293018.tif 000009
【図５Ｂ】
2008293018.tif 000010
【図５Ｃ】
2008293018.tif 000011
【図６Ａ】
2008293018.tif 000012
【図６Ｂ】
2008293018.tif 000013
【図７Ａ】
2008293018.tif 000014
【図７Ｂ】
2008293018.tif 000015
【図７Ｃ】
2008293018.tif 000016
【図８Ａ】
2008293018.tif 000017
【図８Ｂ】
2008293018.tif 000018
【図８Ｃ】
2008293018.tif 000019
【図８Ｄ】
2008293018.tif 000020
【図８Ｅ】
2008293018.tif 000021
【図８Ｆ】
2008293018.tif 000022
【図８Ｇ】
2008293018.tif 000023
【外国語明細書】
2008293018000001.pdf