(57)【要約】  量子暗号化が、量子力学の原理を利用して、通信するエンティティの間で安全な通信を提供する。従来の暗号化方法は、計算が複雑な数学的技術を使用して、情報を暗号化し、盗聴の可能性から守る。従来の暗号化方法とは異なり、量子暗号化は、ハイゼンベルクの不確定性原理に依拠して、盗聴の可能性から保護する。ハイゼンベルクの不確定性原理は、正準共役特性のペアが、同時には正確に測定され得ないことを述べる。実際、１つの特性の測定が、共役特性の測定をランダム化する。量子暗号化において、量子波束（例えば、光子）が、直交偏光基底を使用して偏光情報を測定しようと試みることが元の偏光情報を壊すことになる或る特定の偏光基底を使用して、偏光されることが可能である。このため、単純な観察者（すなわち、盗聴者）は、観察者が測定しようと試みる量子波束を意図せずに壊す可能性がある。
2010528563.tif 000002
【特許請求の範囲】
【請求項１】
偏光された光子を使用して暗号化キーストリーム（８１１／８５１）を別の通信エンティティと同期させるように構成されたキーシンクロナイザ（１１１／１５１）と、
同期されたキーストリームに基づいて、ｉ）平文（８１３／８５３）から暗号文（８１５／８５５）、およびｉｉ）暗号文から平文の少なくともいずれかを生成するように構成された暗号化回路（１１９／１５９）とを含む、暗号システム（１１０／１５０）。
【請求項２】
キーシンクロナイザが、
暗号化キーストリームシードを生成するように構成されたシードジェネレータ（１１３／１５３）と、
偏光された光子を交換することによって、暗号化キーストリームシードを、その別の通信エンティティと同期させるように構成されたエクスチェンジャ（１１５／１５５）とを含み、暗号化キーストリームが、同期された暗号化キーストリームシードから導き出される、請求項１に記載の暗号システム。
【請求項３】
シードジェネレータが、
クロッキング信号を出力するように構成された複数のクロッキングモジュール（２１１−２１５）と、
クロッキング信号に基づいて並び換わるように構成された複数の線形フィードバックシフトレジスタ（２０１−２０５）と、
クロッキング信号と、複数の線形フィードバックシフトレジスタの少なくとも１つからの出力の少なくともいずれかから、暗号化キーストリームシードを生成するように構成された出力モジュール（２２０）とを含み、複数のクロッキングモジュールが、原始多項式から導き出されたタップ系列に従って複数の線形フィードバックシフトレジスタからタップされたビットを受け取る、請求項２に記載の暗号システム。
【請求項４】
エクスチェンジャが、暗号化キーストリームシードに基づいて、それぞれの偏光された光子の偏光値および基底を決定し、さらにその別の通信エンティティとの同期に失敗する暗号化キーストリームシードの部分を破棄するようにさらに構成される、請求項２に記載の暗号システム。
【請求項５】
暗号化キーグリッド（４１０）を形成する複数の循環重連結リスト（５１０／５２０）と、
複数の循環重連結リストを並べ換えるように構成されたキーグリッドムーバ（４２０）と、
暗号化キーグリッドからキーストリームを抽出するように構成されたキーストリームリーダ（４３０）とを含む、ランダムビットキーストリームジェネレータ（１１７／１５７）。
【請求項６】
キーグリッドムーバが、原始多項式から導き出されたタップ系列に従って複数の循環重連結リストからタップされたビットを受け取り、複数の循環重連結リストの１つを並べ換えるようにクロッキング信号を出力するようにそれぞれが構成された複数のクロッキングモジュール（５１５／５２５）を含む、請求項５に記載のランダムビットキーストリームジェネレータ。
【請求項７】
偏光された光子を交換することによって、生成された暗号化キーストリームシードを別の通信エンティティと同期させて、同期された暗号化キーストリームシードをもたらすこと、
同期された暗号化キーストリームシードを使用して、同期された暗号化キーストリームを生成すること（Ｓ９２５）、および
同期された暗号化キーストリームを使用して、ｉ）情報を暗号化すること（Ｓ９８０）と、ｉｉ）情報を復号すること（Ｓ９３０）の少なくともいずれかを含む、暗号化データ転送の方法。
【請求項８】
同期させるステップが、
受信された暗号化キーストリームシードの部分を示す偏光された光子の少なくとも１つを、その別の通信エンティティから受信すること、
生成された暗号化キーストリームシードに基づいて、それぞれの受信された、偏光された光子の偏光を測定すること（Ｓ９１０）、
受信された暗号化キーストリームシードの受信された部分を、生成された暗号化キーストリームシードの対応する部分と比較すること、
不一致の暗号化キーストリームシード部分を同期していない暗号化キーストリームシード部分として、その別の通信エンティティに報告すること、および
同期していない暗号化キーストリームシード部分を破棄することによって、同期された暗号化キーストリームシードを生成することを含む、請求項７に記載の方法。
【請求項９】
同期させるステップが、
生成された暗号化キーストリームシードに基づいて、それぞれの偏光された光子の偏光を変調すること、
生成された暗号化キーストリームシードの部分を示す偏光された光子を、その別の通信エンティティに送信すること（Ｓ９６０）、
同期していない暗号化キーストリームシード部分を報告する情報を受信すること、および
生成された暗号化キーストリームシードから同期していない暗号化キーストリームシード部分を破棄することによって、同期された暗号化キーストリームシードを生成することを含む、請求項７に記載の方法。
【請求項１０】
所与の素数に基づいて、複数の線形フィードバックシフトレジスタを初期設定すること、
原始多項式から導き出されたタップ系列に従って複数の線形フィードバックシフトレジスタからタップされたビットに基づいて、クロッキング信号を生成すること、
クロッキング信号に基づいて、複数の線形フィードバックシフトレジスタの少なくとも１つを並べ換えること、および
少なくとも１つのクロッキング信号、および複数の線形フィードバックシフトレジスタの少なくとも１つからの出力から、生成された暗号化キーストリームシードを生成することをさらに含む、請求項７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号システムに関する。
【背景技術】
【０００２】
量子暗号化は、量子力学の原理を利用して、通信するエンティティの間で安全な通信を提供する。従来の暗号化方法は、計算が複雑な数学的技術を使用して、情報を暗号化し、盗聴の可能性から守る。従来の暗号化方法とは異なり、量子暗号化は、ハイゼンベルクの不確定性原理に依拠して、盗聴の可能性から保護する。
【０００３】
ハイゼンベルクの不確定性原理は、正準共役特性のペアが、同時には正確に測定され得ないことを述べている。実際、１つの特性の測定が、共役特性の測定をランダム化する。量子暗号化において、量子波束（例えば、光子）は、直交偏光基底を使用して偏光情報を測定しようと試みることが元の偏光情報を壊すことになる或る特定の偏光基底を使用して、偏光されることが可能である。このため、単純な観察者（すなわち、盗聴者）は、観察者が測定しようと試みる量子波束を意図せずに壊す可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００４】
本発明は、暗号システムに関する。一実施形態によれば、この暗号システムは、キーシンクロナイザおよび／または暗号化回路を含む。キーシンクロナイザは、偏光された光子を使用して、暗号化キーストリームを別の通信エンティティと同期させるように構成される。暗号化回路は、この同期されたキーストリームに基づいて、平文から暗号文を生成するように、さらに／または暗号文から平文を生成するように構成される。
【０００５】
また、本発明は、ランダムビットキーストリームジェネレータにも関する。一実施形態によれば、ランダムビットキーストリームジェネレータは、暗号化キーグリッド、キーグリッドムーバ、および／またはキーストリームリーダを形成する複数の循環重連結リストを含む。キーグリッドムーバは、この複数の循環重連結リストを並べ換えるように構成される。キーストリームリーダは、暗号化キーグリッドからキーストリームを抽出するように構成される。
【０００６】
また、本発明は、暗号化データ転送の方法にも関する。一実施形態によれば、この方法は、偏光された光子を交換することによって、生成された暗号化キーストリームシードを別の通信エンティティと同期させて、同期された暗号化キーストリームシードを生成することを含む。また、この方法は、同期された暗号化キーストリームシードを使用して、同期された暗号化キーストリームを生成することも含む。また、この方法は、この同期された暗号化キーストリームを使用して、情報を暗号化すること、および／または情報を復号することも含む。
【０００７】
また、本発明は、ランダムビットキーストリームを生成する方法にも関する。一実施形態によれば、この方法は、シードを使用して暗号化キーグリッドを形成する複数の循環重連結リストを初期設定すること、この暗号化キーグリッドを並べ換えること、および／またはこの暗号化キーグリッドから暗号化キーストリームを抽出することを含む。
【０００８】
本発明は、以下に与えられる詳細な説明、ならびに同様の要素が同様の符号によって表され、単に例として与えられ、したがって、本発明を限定するものではない添付の図面から、より完全に理解されることになる。
【図面の簡単な説明】
【０００９】
【図１】本発明の例示的な実施形態による暗号システムを示すブロック図である。
【図２】図１のシードジェネレータをより詳細に示す図である。
【図３】図１のエクスチェンジャの動作を示すクライアント／サーバ流れ図である。
【図４】シンクロナイザから同期された暗号化キーストリームシードを受け取り、同期された暗号化キーストリームを暗号化／復号ユニットに出力する図１のキーストリームジェネレータをより詳細に示す図である。
【図５】図４の暗号化キーグリッドの例示的なレイアウトを示す図である。
【図６】図４のキーグリッドムーバの例示的な構成要素を示す図である。
【図７】図４のキーストリームリーダの動作を示す３Ｄブロック抽象化を示す図である。
【図８Ａ】図１のサーバおよびクライアントによるデータの例示的な暗号化を示す図である。
【図８Ｂ】図１のサーバおよびクライアントによるデータの例示的な復号を示す図である。
【図９】本発明の例示的な実施形態によるサーバとクライアントの間の暗号化データ転送の方法を示すクライアント／サーバ流れ図である。
【発明を実施するための形態】
【００１０】
詳細な、例示的な実施形態が、本明細書で開示される。しかし、本明細書で開示される特定の構造上および機能上の詳細は、例示的な実施形態を説明することを目的とする単に代表的なものである。しかし、例示的な実施形態は、多くの代替の形態で実施されることが可能であり、さらに本明細書で示される実施形態だけに限定されるものと解釈されてはならない。
【００１１】
したがって、例示的な実施形態は、様々な変形形態および代替形態が可能であるが、本発明の実施形態が、例として図面に示され、本明細書で詳細に説明される。しかし、例示的な実施形態を開示される特定の形態に限定する意図は全くなく、それどころか、例示的な実施形態は、例示的な実施形態の範囲内に含まれるすべての変形形態、均等形態、および代替形態に及ぶものとされることを理解されたい。同様の符号が、図の説明の全体にわたって同様の要素を指す。
【００１２】
「第１の」、「第２の」などの用語が、本明細書で様々な要素を説明するのに使用される可能性があるものの、これらの要素は、これらの用語によって限定されるべきではないことを理解されたい。これらの用語は、単に、或る要素を別の要素から区別するために使用される。例えば、例示的な実施形態の範囲を逸脱することなく、第１の要素が、第２の要素と呼ばれることも可能であり、同様に第２の要素が、第１の要素と呼ばれることも可能である。本明細書で使用される「および／または」という用語には、列挙される関連する項目の１つまたは複数の項目のあらゆる組み合わせが含まれる。
【００１３】
或る要素が、別の要素に「接続」または「結合」されていると述べられる場合、その要素は、他方の要素に直接に接続または結合されていても、介在する要素が、存在していてもよいものと理解される。これとは対照的に、或る要素が、別の要素に「直接に接続」または「直接に結合」されていると述べられる場合、介在する要素は、全く存在しない。要素間の関係を説明するのに使用される他の語も、同様に解釈されるべきである（例えば、「の間に」対「直に間に」、「隣接して」対「直に隣接して」など）。
【００１４】
本明細書で使用される専門用語は、特定の実施形態を説明するためのみのものであり、例示的実施形態を限定することを意図されていない。本明細書で使用される、単数形、「或る（ａ，ａｎ）」および「その（ｔｈｅ）」には、文脈がそうでないことを特に明示しない限り、複数形も含まれることが意図される。用語、「含む」、「含んでいる」、「含まれる」、および／または「含まれている」は、本明細書で使用される場合、述べられる特徴、整数、ステップ、動作、要素、および／または構成要素の存在を明示するが、他の１つまたは複数の特徴、整数、ステップ、動作、要素、構成要素、および／または以上の組み合わせの存在または追加を除外しないものとさらに理解される。
【００１５】
また、一部の代替の実施形態において、記される機能／動作は、図に記される順序を外れて行われてもよいことに留意されたい。例えば、関与する機能／動作に依存して、連続して示される２つの図が、実際は、実質的に同時に実行されてもよく、あるいは、ときとして、逆の順序で実行されてもよい。
【００１６】
本明細書で使用される「クライアント」および「サーバ」という用語は、所与の時点で、概して、情報を要求するエンティティ（「クライアント」）と、概して、情報を供給するエンティティ（「サーバ」）とを区別することを意図している。しかし、これらのエンティティそのものは、所与の期間にわたって「クライアント」と「サーバ」の両方の役割をすることが可能であり、このため、異なる時点で、「クライアント」として説明される本明細書におけるエンティティは、実際は、「サーバ」に帰される動作を実行することが可能であり、「サーバ」として説明される本明細書におけるエンティティは、「クライアント」に帰される動作を実行することが可能であることが、当業者によって認識されよう。したがって、「クライアント」および「サーバ」という用語は、本明細書で説明されるエンティティに必要以上の限定を与えるものと解釈されてはならない。
【００１７】
図１は、本発明の例示的な実施形態による暗号システムのブロック図を示す。暗号システム１００は、クライアント１１０とサーバ１５０の間で、情報の安全な転送を提供する。クライアント１１０は、クライアント暗号化キーストリームジェネレータ１１７に接続されたクライアントキーシンクロナイザ１１１を含み、ジェネレータ１１７も、クライアント復号ユニット１１９に接続される。クライアントキーシンクロナイザ１１１は、クライアントエクスチェンジャ１１５に接続されたクライアントシードジェネレータ１１３を含む。
【００１８】
同様に、サーバ１５０は、サーバ暗号化キーストリームジェネレータ１５７に接続されたサーバキーシンクロナイザ１５１を含み、ジェネレータ１５７も、サーバ暗号化ユニット１５９に接続される。サーバキーシンクロナイザ１５１は、サーバエクスチェンジャ１５５に接続されたサーバシードジェネレータ１５３を含む。図示されるとおり、サーバキーシンクロナイザ１５１は、クライアントキーシンクロナイザ１１１と情報を交換するように構成され、さらにサーバ暗号化ユニット１５９は、情報を暗号ストリームの形態で、クライアント復号ユニット１１９と交換するように構成される。
【００１９】
クライアント１１０とサーバ１５０の間の、暗号化されたデータの安全な転送は、クライアント１１０とサーバ１５０の間で同期された共有される秘密に基づく。キーシンクロナイザ１１１／１５１が、シードジェネレータ１１３／１５３およびエクスチェンジャ１１５／１５５を使用して、暗号化キーストリームジェネレータ１１７／１５７を同期された状態（共有される秘密）に初期設定し、次に、この状態が、一連の同時に行われる動作を介して伝播させられる。
【００２０】
図２は、本発明の例示的な実施形態による、図１のシードジェネレータ１１３／１５３をより詳細に示す概略図である。図示されるとおり、シードジェネレータ１１３／１５３は、対応するクロッキングモジュール２１１−２１５に接続された第１の線形フィードバックシフトレジスタ（ＬＦＳＲ）２０１、第２のＬＦＳＲ２０３、および第３のＬＦＳＲ２０５と、各ＬＦＳＲ２０１−２０５に接続されたレジスタコントローラ２５０と、出力モジュール２２０とを含む。出力モジュール２２０は、ＬＦＳＲ２０１−２０５および／またはクロッキングモジュール２１１−２１５の出力を使用して、暗号化キーストリームシードを生成する。ＬＦＳＲは、入力ビットが、シフトレジスタの前の状態の線形関数であるシフトレジスタである。
【００２１】
図２を参照すると、ＬＦＳＲ２０１の１つまたは複数のビットが、クロッキングモジュール２１１に送り込まれ、クロッキングモジュール２１１の出力は、ＬＦＳＲ２０３に接続される。同様に、ＬＦＳＲ２０３の１つまたは複数のビットが、クロッキングモジュール２１３に送り込まれ、クロッキングモジュール２１３の出力は、ＬＦＳＲ２０５に接続される。ＬＦＳＲ２０５の１つまたは複数のビットが、クロッキングモジュール２１５に送り込まれる。クロッキングモジュール２１５の出力、ＬＦＳＲ２０１の出力、およびＬＦＳＲ２０３の出力は、出力モジュール２２０に送り込まれる。出力モジュール２２０の出力は、暗号化キーストリームシードであり、このシードは、ＬＦＳＲ２０１に接続されることも可能である。
【００２２】
３つのＬＦＳＲ２０１−２０５、および対応するクロッキングモジュール２１１−２１５が、図２に示されるものの、レジスタおよびクロッキングモジュールの総数は、本発明の意図される範囲を逸脱することなく、任意の数に拡大縮小されることが可能である。
【００２３】
各ＬＦＳＲ２０１−２０５の長さは、所望されるキー長に応じて、レジスタコントローラ２５０によって動的に設定される。３つのＬＦＳＲ２０１−２０５のそれぞれは、これらのレジスタにおけるビットの総数が、所望される長さを有する暗号化キーストリームのビットの総数と等しいように、プリミティブ長（すなわち、素数）に設定されることが、所望される長さによって、これらのレジスタの１つまたは複数が、次に大きい素数に設定されることが必要とされない限り、行われる。例えば、図２を参照すると、所望される暗号化キーストリームシード長が、１２８ビットである場合、レジスタコントローラ２５０は、ＬＦＳＲ２０１を４３ビットに設定し、ＬＦＳＲ２０３を４３ビットに設定し、さらにＬＦＳＲ２０５を、残りの４２ビットより大きい、次に大きい素数長（すなわち、４３ビット）に設定する。
【００２４】
ＬＦＳＲ２０１−２０５は、レジスタコントローラ２５０によって、クライアント１１０とサーバ１５０の両方にアプリオリに知られている所与の素数（一次キー）を使用して初期設定され、このため、各ＬＦＳＲ２０１−２０５は、基本的にランダムな値を含む。前述の例に続いて、各ＬＦＳＲ２０１−２０５の長さが設定されると、レジスタコントローラ２５０は、一次キーの最初の４３ビットをＬＦＳＲ２０１に入れ、次の４３ビットをＬＦＳＲ２０３に入れ、さらに残りのビットをＬＦＳＲ２０５に入れる。ＬＦＳＲ２０１−２０５を初期設定するのに追加のビットが必要とされる場合、レジスタコントローラ２５０は、定数値（すなわち、「１」または「０」）を使用することができる。一次キーは、クライアント１１０とサーバ１５０によってアプリオリに合意された任意の許容可能な値であることが可能である。
【００２５】
図２に示されるとおり、各ＬＦＳＲ２０１−２０５のいくつかのビット（タップ）が、対応するクロッキングモジュール２１１−２１５に送り込まれる。これらのタップは、（後段で説明される）レジスタコントローラ２５０によって生成された所与の原始多項式に従って算出される。各原始多項式は、所与の変数の異なる正の累乗に対応する０でない１つまたは複数の項を含み、これらの０でない項の累乗は、レジスタのいずれのビットがタップに対応するかを決定する。所与の原始多項式によって決定された、これらのタップの位置は、タップ系列と呼ばれる。
【００２６】
例えば、図２を参照して、レジスタコントローラ２５０が、ＬＦＳＲ２０１を１１ビットに設定し、一次キーを使用して、それらの１１ビットを「０１００１１０１００１」に初期設定するものと想定する。例示的な原始多項式ｘ１０＋ｘ３＋１を考えると、レジスタコントローラ２５０は、ＬＦＳＲ２０１の第１０番、第３番、および第０番のビットをタップとして設定する。このため、ＬＦＲＳ２０１の第１０番、第３番、および第０番のビットの値（この例では、それぞれ、「１」、「０」、および「０」）が、クロッキングモジュール２１１に送り込まれる。
【００２７】
レジスタコントローラ２５０は、当技術分野でよく知られている標準のアルゴリズムを使用して、または異なる度数／次数の原始多項式のルックアップ表を参照することによって、原始多項式を生成することができる。各レジスタに関して使用される原始多項式は、対応するレジスタの長さ未満の度数であることが可能であるが、このことにより、生成された暗号化キーストリームシードの周期が低減され、したがって、ロバスト性が低減される可能性がある。
【００２８】
各レジスタは、異なる原始多項式（およびタップ系列）を使用することが可能であるが、複数のレジスタによって使用されるべき所与の原始多項式に関して、例えば、要求される計算の数を減らすことが望ましい可能性がある。さらに、シードジェネレータ１１３／１５３の各回の呼び出し時に、新たな原始多項式が、使用されることが可能である。新たな原始多項式の使用は、異なる所望されるキー長に関して使用されるレジスタに対処するだけでなく、生成される各キーのランダム化を高める。しかし、クライアント１１０とサーバ１５０の間の同期を保つのに、クライアントシードジェネレータ１１３およびサーバシードジェネレータ１５３は、同一の原始多項式（および同一のタップ系列）を使用する。一次キーの場合と同様に、これらの原始多項式は、クライアント１１０とサーバ１５０によってアプリオリに合意される。
【００２９】
本発明の例示的な実施形態によれば、キージェネレータレジスタは、他のキージェネレータレジスタの状態に基づいて、クロッキングされる。図２を参照すると、ＬＦＳＲ２０３は、出力がＬＦＳＲ２０１の状態に依存するクロッキングモジュール２１１に従ってクロッキングされる。同様に、ＬＦＳＲ２０５は、出力がＬＦＳＲ２０３の状態に依存するクロッキングモジュール２１３に従ってクロッキングされる。例えば、クロッキングモジュール２１１の出力が、「１」である場合、ＬＦＳＲ２０３は、クロッキングし、クロッキングモジュール２１１の出力が、「０」である場合、ＬＦＳＲ２０３は、クロッキングしない。ＬＦＳＲ２０１は、図２に示されるとおり、内部フィードバッククロックに従って、または所望される場合、外部クロックに従ってクロッキングされることが可能である。
【００３０】
クロッキングモジュール２１１−２１５は、例えば、ＸＯＲゲートとして実施されることが可能であるが、本発明の意図される範囲を逸脱することなく、他の論理機能が実施されてもよい。例えば、クロッキングモジュール２１３が、ＸＯＲゲートとして実施され、ＬＦＳＲ２０３のタップ系列に対応するビットが、所与の状態において奇数の「１」を有する場合、クロッキングモジュール２１３は、「１」を出力し、ＬＦＳＲ２０５は、クロッキングする。
【００３１】
前述の例に続いて、ＬＦＳＲ２０１が、１１ビットに設定され、さらに「０１００１１０１００１」に初期設定され、さらに例示的な原始多項式ｘ１０＋ｘ３＋１を使用して、タップが算出されるものと想定されたい。したがって、「１」（第１０番のビット）、「０」（第３番のビット）、および「０」（第０番のビット）に対応するビットが、クロッキングモジュール２１１に送り込まれる。クロッキングモジュール２１１が、ＸＯＲゲートとして実施される場合、ＸＯＲ演算は、「１」結果（奇数の「１」）をもたらし、クロッキングモジュール２１１は、クロッキングするようにＬＦＳＲ２０３にシグナリングする「１」値を出力する。
【００３２】
このため、共有される一時キーに基づくレジスタの擬似ランダム初期状態が、シードとして使用されて、他の擬似ランダム状態が生成される。これらの擬似ランダム状態の並べ換えを使用して、繰り返しの大きい確率なしに、ランダムビットの暗号化キーストリームシードがもたらされる。図２を参照すると、出力モジュール２２０が、ＬＦＳＲ２０１、ＬＦＳＲ２０３、およびクロッキングモジュール２１５の出力を使用して、暗号化キーストリームシードをもたらす。
【００３３】
クロッキングモジュール２１１−２１５と同様に、出力モジュール２２０は、ＸＯＲゲートとして実施されることが可能であるが、本発明の範囲を逸脱することなく、他の論理機能が実施されることも可能である。図２に示されるとおり、暗号化キーストリームシードは、第１のＬＦＳＲ２０１に関する内部フィードバッククロックとして使用されることも可能である。
【００３４】
これらのレジスタは、レジスタコントローラ２５０によって、一次キーからの基本的にランダムな情報を使用して初期設定され、原始多項式によって定義されたタップ系列に従って、基本的にランダムな仕方で並べ換えられるため、生成された暗号化キーストリームシードは、ほぼ無限の周期を有する基本的にランダムなビットを含む。さらに、新たに生成された原始多項式、および対応するタップ系列は、同一の初期状態からさえ、異なる暗号化キーストリームシードをもたらす。したがって、本発明の例示的な実施形態に従ってシードジェネレータ１１３／１５３によって生成される暗号化キーストリームシードのランダム化は、相当な長さ、および／または繰り返される初期状態という状況においてさえ、ロバストである。
【００３５】
光子などの一連の偏光された量子波束を交換するのにエクスチェンジャ１１５／１５５を使用する、各シードジェネレータ１１３／１５３によって出力される暗号化キーストリームシードの、クライアント１１０とサーバ１５０の間の同期が、以下に説明される。
【００３６】
図３は、図１のエクスチェンジャ１１５／１５５の動作を示すクライアント／サーバ流れ図である。サーバエクスチェンジャ１５５は、ＬＥＤ（発光ダイオード）またはレーザなどの光源を使用して、光の短いパルスを生成する。これらの光パルスが濾波されて、サーバキーシンクロナイザ１５５に従って決定された所望される偏光および強度が実現され、光子などの一連の偏光された量子波束としてクライアント１１０に送信される（Ｓ３１０）。サーバキーシンクロナイザ１５５は、交換より前にクライアント１１０とサーバ１５０の両方に知られている所与の暗号化方法を使用してシードジェネレータ１５３によって生成された暗号化キーストリームシードに従って、適切な基底を含め、各量子波束の基準偏光を決定する。
【００３７】
例えば、各量子波束の偏光は、以下に示される表１における方法に従って決定されることが可能である。
【表１】
2010528563.tif 000003
【００３８】
表１の方法によれば、サーバシードジェネレータ１５３が、「０１１．．．」という例示的なビットパターンを有する暗号化キーストリームシードを生成する場合、量子波束は、以下のとおり、偏光される。すなわち、水平偏光、垂直偏光、右円偏光などである。
【００３９】
クライアントキーシンクロナイザ１１１は、サーバキーシンクロナイザ１５１と同一の方法に従ってクライアントシードジェネレータ１１３によって生成された暗号化キーストリームシードを使用して、各量子波束の偏光を測定する（Ｓ３２０）。クライアントシードジェネレータ１１３は、理想的には、サーバシードジェネレータ１５３と同一の暗号化キーストリームシードを生成し、さらに量子交換方法は、クライアント１１０とサーバ１５０の両方にアプリオリに知られているため、クライアントキーエクスチェンジャ１５５は、キー交換中に受信される各量子波束に関して、いずれの偏光基底が測定されるべきかを予期する。このため、誤った偏光基底に対して行われた測定によるキー交換情報の意図しない破壊が、低減される、または最小限に抑えられる。
【００４０】
しかし、いくつかの量子波束は、それでも、クライアントエクスチェンジャ１１５によって予期される測定をもたらすことに失敗する可能性がある。これらの失敗した測定は、いくつかの悪意のある原因、および悪意のない原因からもたらされる可能性がある。クライアントエクスチェンジャ１１５は、失敗した測定のシーケンス番号をサーバエクスチェンジャ１５５に送信して、いずれの量子波束が正しく受信されなかったかを示す（Ｓ３３０）。失敗した量子波束に対応する暗号化キーストリームシードビットは、クライアント１１０とサーバ１５０の両方によって破棄される（Ｓ３４０／Ｓ３５０）。また、パリティ検査が、さらなる安全対策として実行されることも可能である。
【００４１】
このため、共有される秘密は、クライアント１１０とサーバ１５０の間で同期される。
【００４２】
図４は、本発明の例示的な実施形態による暗号化キーストリームジェネレータ１１７／１５７を示す。暗号化キーストリームジェネレータ１１７／１５７は、暗号化キーグリッド４２０、キーグリッドムーバ４２０、および／またはキーストリームリーダ４３０を含む。キーグリッドムーバ４２０およびキーストリームリーダ４３０はそれぞれ、暗号化キーグリッド４１０に接続される。図示されるとおり、キーストリームリーダ４３０は、キーシンクロナイザ１１１／１５１から、同期された暗号化キーストリームシードを受け取り、同期された暗号化キーストリームを暗号化／復号ユニット１５４／１１４に出力する。暗号化キーストリームジェネレータ１１７／１５７の各構成要素の動作は、さらなる図を参照して、以下により詳細に説明される。
【００４３】
図５は、本発明の例示的な実施形態による暗号化キーグリッド４１０の例示的なレイアウトを示す。暗号化キーグリッド４１０は、一連の循環重連結リストを含み、各リストの各要素は、隣接する２つの水平隣接要素、および隣接する２つの垂直隣接要素に接続されている。これらのリストは、これらのリストの終端が互いに接続されているという意味で循環型であり、さらに要素の間で双方向の連絡が存在するという意味で重連結型である。各リストの各要素は、２進値を保持する。
【００４４】
図示されるとおり、図５は、ヘッド要素５１５を有する例示的な垂直循環重連結リスト５１０、およびヘッド要素５２５を有する例示的な水平循環重連結リスト５２０を示す。各ヘッド要素５１５／５２５の機能は、後段で説明される。クライアント１１０とサーバ１５０の間で同期された暗号化キーストリームシードを使用して、各暗号化キーストリームジェネレータ１１７／１５７の暗号化キーグリッド４１０がポピュレートされる（つまり、初期設定される）。
【００４５】
図６は、本発明の例示的な実施形態による、図５の循環重連結リスト５１０／５２０を並べ換えるためのキーグリッドムーバ４２０の例示的な構成要素を示す。キーグリッドムーバ４２０は、クロッキングモジュール６１０／６２０を含む。図示されるとおり、垂直循環重連結リスト５１０が、いくつかのタップビットによって、対応するクロッキングモジュール６１０に接続され、水平循環重連結リスト５２０が、いくつかのタップビットによって、対応するクロッキングモジュール６２０に接続される。クロッキングモジュール６１０の出力は、水平循環重連結リスト５２０のヘッド要素５２５に送り込まれ、クロッキングモジュール６２０の出力は、垂直循環重連結リスト５１０のヘッド要素５１５に送り込まれる。
【００４６】
次に、キーグリッド並べ換えが、図６を参照して説明される。図６に示されるキーグリッドムーバ４２０の動作は、図２に示されるシードジェネレータ１１３／１５３の動作と同様である。キーグリッドムーバ４２０は、ＬＦＳＲ２０１−２０５の並べ換えと同様に、循環重連結リスト５１０／５２０を並べ換える。例えば、各循環重連結リスト５１０／５２０のいくつかの要素が、原始多項式によって定義された対応するタップ系列に従って、対応するクロッキングモジュール６１０／６２０に接続される。原始多項式およびタップ系列については、シードジェネレータ１１３／１５３および図２に関連して前段で説明したので、より詳細な説明は、省略する。
【００４７】
各水平循環重連結リストは、キーグリッドムーバの対応するクロッキングモジュールを介して、或る特定の垂直循環重連結リストのクロッキングを決定し、各垂直循環重連結リストは、キーグリッドムーバの対応するクロッキングモジュールを介して、或る特定の水平循環重連結リストのクロッキングを決定する。図６に示されるとおり、水平循環重連結リスト５２０は、対応するクロッキングモジュール６２０を介して、キーグリッドムーバ４２０によって垂直循環重連結リスト５１０のクロッキングを決定し、垂直循環重連結リスト５１０は、対応するクロッキングモジュール６１０を介して、キーグリッドムーバ４２０によって水平循環重連結リスト５１０のクロッキングを決定する。
【００４８】
キーグリッドムーバ４１０のクロッキングモジュール６１０／６２０は、ヘッド要素５２５／５１５にそれぞれ、クロッキング信号を送る（図２のクロッキングモジュール２１１−２１５と同一の仕方で）。ヘッド要素５１５／５２５は、クロッキングする（すなわち、リストにおける隣接する要素にビット値をシフトする）よう、それぞれの要素５１５／５２５の循環重連結リストにシグナリングする。このため、キーグリッドムーバ４２０のクロッキングモジュール６１０／６２０は、タップ系列によって定義される要素のビットの値に基づいて、各循環リストを並べ換えるように構成される。
【００４９】
キーグリッドの並べ換えは、計算リソースを多く使用する可能性があるため、これらの並べ換えにおいて使用される原始多項式の数は、制限される可能性がある。例えば、４つの原始多項式のセットが、水平循環重連結リストに役立つことが可能であり、４つの原始多項式の別のセットが、垂直循環重連結リストに役立つことが可能である。使用される原始多項式の適切な数は、システムの利用可能な計算能力に依存する。クロッキングモジュール６１０／６２０は、例えば、ＸＯＲゲートによって実施されることが可能であるが、他の論理演算、または演算の組み合わせが使用されてもよい。
【００５０】
図７は、本発明の例示的な実施形態による、暗号化キーグリッド４１０から、繰り返しの相当に低い確率を有する暗号化キーストリームを抽出するためのキーストリームリーダ４３０の動作を示す３Ｄブロック抽出である。暗号化キーグリッド４１０は、例示の目的で、面ごとに９つの要素が３行、３列に配置されている６面立方体として、図７に示される。
【００５１】
図示されるとおり、キーストリームリーダ４３０が、暗号化キーグリッド４１０の指定された開始位置７１０でキーストリームビットを抽出することを始め、リーダ４３０が、暗号化キーグリッド４１０の縁端に到達するまで、対応する水平行リストに沿って順次にビットを読み取ることを続ける。キーストリームリーダ４３０は、リーダ４３０が、指定された開始位置７１０に戻るまで、隣接する面７３０などの対応する行に沿って読み取り動作を続ける。キーストリームリーダ４３０は、次の水平行７２０にジャンプし、前述したとおり、暗号化キーグリッド４１０の周囲で継続する。すべての水平行リストが読み取られると、キーストリームリーダ４３０は、上面７４０および下面７５０に対応する暗号化キーグリッド４１０の要素に対する読み取り動作を、時計方向に続ける。
【００５２】
図７に関連して説明される要素の特定の読み取り順序は、例示として与えられ、本発明の範囲を限定することは意図していない。キーグリッドの要素の特定の読み取り順序は、同期を保つためにクライアントとサーバの両方に読み取り順序が知られている限り、大きく変更されてもよいことが当業者には認識されよう。
【００５３】
暗号化キーグリッド４１０の各要素が、キーストリームリーダ４３０によって読み取られると、循環重連結リストは、暗号化キーグリッド４１０の新たな状態に擬似ランダムな仕方でビットを再構成するように、キーグリッドムーバ４２０によって並べ換えられる。
【００５４】
図１を参照すると、クライアント暗号化キーストリームジェネレータ１１７とサーバ暗号化キーストリームジェネレータ１５７が、図１の暗号システム１００の暗号化／復号ユニット１１９／１５９によって使用されるように、同期された暗号化キーストリームを生成する。図８Ａおよび図８Ｂは、サーバ暗号化キーストリームジェネレータ１５７およびクライアント暗号化キーストリームジェネレータ１１７の同期された暗号化キーストリームを使用する、データの暗号化および復号を、それぞれ示す。
【００５５】
図８Ａに示されるサーバ暗号化ユニット１５９は、サーバ暗号化キーストリームジェネレータ１５７の同期された暗号化キーストリーム８５１を使用して、平文８５３から暗号文８５５を生成する。暗号文８５３は、暗号ストリームとしてクライアント１１０に送信される。図８Ｂに示されるクライアント復号ユニット１１９は、クライアント暗号化キーストリームジェネレータ１１７の同期された暗号化キーストリーム８１１を使用して、受信された暗号文８１５から再構築された平文８１３を生成する。暗号化／復号ユニット１１９／１５９は、例えば、ＸＯＲゲートとして実施されることが可能であるが、本発明の意図される範囲を逸脱することなく、他の論理機能、またはよく知られた暗号化／復号アルゴリズムが、実施されてもよい。
【００５６】
暗号ストリームの送信および受信は、様々な方法によって達せられることが可能である。例えば、暗号ストリームは、光ファイバチャネルを介して量子波束の中で送信されることが可能である。暗号ストリームを使用して各バイナリビットを送受信するための基礎は、伝送の特定の実施態様に依存し、すべてのそのような実施態様が、本発明の範囲内に含まれることが意図される。
【００５７】
図９は、本発明の例示的な実施形態によるクライアントとサーバの間の暗号化データ転送の方法を示すクライアント／サーバ流れ図である。クライアント１１０は、サーバ１５０に対してクライアント１１０自らを認証し、データの転送を求める（Ｓ９００）。サーバ１５０は、クライアント１１０が認証されたかどうかを判定する（Ｓ９５０）。認証が、サーバ１５０によって確認されると、クライアント１１０とサーバ１５０は、対応するキーシンクロナイザ１１１／１５１を起動する（Ｓ９０５／Ｓ９５５）。任意のよく知られた認証スキームが、使用されることが可能である。
【００５８】
サーバ１５０は、光子などの一連の偏光された量子波束をクライアント１１０に送信し、それぞれの偏光された量子波束の偏光値および基底は、クライアント１１０とサーバ１５０によって共有される暗号化方法に従ってサーバシードジェネレータ１５３の出力によって決定される（Ｓ９６０）。クライアント１１０は、この一連の偏光された量子波束を受信し、クライアントシードジェネレータ１１１の出力、および共有される暗号化方法によって決定される偏光基底に従って、各パケットの偏光を測定する（Ｓ９１０）。クライアント１１０は、いずれのビットが適切に測定され、いずれのビットが適切に測定されないかを特定する。クライアント１１０によって適切に測定されることに失敗したビットは、サーバ１５０に報告され（Ｓ９１５）、同期された暗号化キーストリームシードから破棄される（Ｓ９６５）。
【００５９】
同期された暗号化キーストリームシードを使用して、暗号化キーストリームジェネレータ１１７／１５７が初期設定される（Ｓ９２０／Ｓ９７０）。暗号化キーストリームジェネレータ１１７／１５７は、同期された暗号化キーストリームを生成するのに使用され（Ｓ９２５／Ｓ９７５）、さらに定期的に並べ換えられて、繰り返しの確率が比較的低くなるように相当に長い周期を有する同期された暗号化キーストリームをもたらす。この並べ換えは、各暗号化キーストリームジェネレータ１１７／１５７の部分を擬似ランダムにシフトするように原始多項式のタップ系列に従って選択されたビットを使用することによって、実行されることが可能である。このことは、クライアント暗号化キーストリームジェネレータ１１７とサーバ暗号化キーストリームジェネレータ１５７の同期を保ちながら、異なるランダムビット系列を生成するのに使用されることが可能な各暗号化キーストリームジェネレータ１１７／１５７の別の基本的にランダムな状態を生じさせる。
【００６０】
サーバ１５０が、サーバ暗号化キーストリームジェネレータ１５７によって生成された、同期された暗号化キーストリームを使用してデータを暗号化し、暗号化されたデータをクライアントに送信する（Ｓ９８０）。暗号化されたデータは、クライアントによって受信され、クライアント暗号化キーストリームジェネレータ１１７によって生成された、同期された暗号化キーストリームを使用して復号される（Ｓ９３０）。データ転送の間中、クライアント１１０およびサーバ１５０は、情報が適切に送信され、受信されているかどうかを絶えず監視する（Ｓ９８５／９３５）。クライアントがクラッシュしていると判定された場合（Ｓ９４０／Ｓ９９０）、そのビットカウントが、クライアント１１０とサーバ１５０の両方によって記録され（Ｓ９４５／Ｓ９９５）、データ転送プロセスが、適切なポイントで再開される（Ｓ９２５／Ｓ９７５）。クライアントがクラッシュしていると判定されない場合、データ転送は、完了に進む（Ｓ９３０）。
【００６１】
このように例示的な実施形態が説明されて、これらの実施形態が、様々な仕方で変更され得ることが明白となろう。例えば、例示的な実施形態による方法は、ハードウェアおよび／またはソフトウェアとして実装されることが可能である。ハードウェア／ソフトウェア実装形態には、プロセッサと製造品の組み合わせが含まれることが可能である。製造品には、記憶媒体と実行可能なコンピュータプログラム、例えば、コンピュータ可読媒体上に格納されたコンピュータプログラム製品がさらに含まれることが可能である。
【００６２】
この実行可能なコンピュータプログラムは、説明される動作または機能を実行する命令を含むことが可能である。また、このコンピュータ実行可能プログラムは、外部から供給される伝搬信号の一部として提供されることも可能である。そのような変種は、例示的な実施形態の意図される趣旨および範囲からの逸脱と見なされるべきではなく、当業者には明白な、すべてのそのような変形形態が、添付の特許請求の範囲の範囲内に含まれることが意図される。
【図１】
2010528563.tif 000004
【図２】
2010528563.tif 000005
【図３】
2010528563.tif 000006
【図４】
2010528563.tif 000007
【図５】
2010528563.tif 000008
【図６】
2010528563.tif 000009
【図７】
2010528563.tif 000010
【図８Ａ】
2010528563.tif 000011
【図８Ｂ】
2010528563.tif 000012
【図９】
2010528563.tif 000013
【国際調査報告】
2010528563.tif 000014
2010528563.tif 000015
2010528563.tif 000016
2010528563.tif 000017
2010528563.tif 000018