説明

量子暗号化のシステムおよび方法

量子暗号化が、量子力学の原理を利用して、通信するエンティティの間で安全な通信を提供する。従来の暗号化方法は、計算が複雑な数学的技術を使用して、情報を暗号化し、盗聴の可能性から守る。従来の暗号化方法とは異なり、量子暗号化は、ハイゼンベルクの不確定性原理に依拠して、盗聴の可能性から保護する。ハイゼンベルクの不確定性原理は、正準共役特性のペアが、同時には正確に測定され得ないことを述べる。実際、1つの特性の測定が、共役特性の測定をランダム化する。量子暗号化において、量子波束(例えば、光子)が、直交偏光基底を使用して偏光情報を測定しようと試みることが元の偏光情報を壊すことになる或る特定の偏光基底を使用して、偏光されることが可能である。このため、単純な観察者(すなわち、盗聴者)は、観察者が測定しようと試みる量子波束を意図せずに壊す可能性がある。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号システムに関する。
【背景技術】
【0002】
量子暗号化は、量子力学の原理を利用して、通信するエンティティの間で安全な通信を提供する。従来の暗号化方法は、計算が複雑な数学的技術を使用して、情報を暗号化し、盗聴の可能性から守る。従来の暗号化方法とは異なり、量子暗号化は、ハイゼンベルクの不確定性原理に依拠して、盗聴の可能性から保護する。
【0003】
ハイゼンベルクの不確定性原理は、正準共役特性のペアが、同時には正確に測定され得ないことを述べている。実際、1つの特性の測定が、共役特性の測定をランダム化する。量子暗号化において、量子波束(例えば、光子)は、直交偏光基底を使用して偏光情報を測定しようと試みることが元の偏光情報を壊すことになる或る特定の偏光基底を使用して、偏光されることが可能である。このため、単純な観察者(すなわち、盗聴者)は、観察者が測定しようと試みる量子波束を意図せずに壊す可能性がある。
【発明の概要】
【課題を解決するための手段】
【0004】
本発明は、暗号システムに関する。一実施形態によれば、この暗号システムは、キーシンクロナイザおよび/または暗号化回路を含む。キーシンクロナイザは、偏光された光子を使用して、暗号化キーストリームを別の通信エンティティと同期させるように構成される。暗号化回路は、この同期されたキーストリームに基づいて、平文から暗号文を生成するように、さらに/または暗号文から平文を生成するように構成される。
【0005】
また、本発明は、ランダムビットキーストリームジェネレータにも関する。一実施形態によれば、ランダムビットキーストリームジェネレータは、暗号化キーグリッド、キーグリッドムーバ、および/またはキーストリームリーダを形成する複数の循環重連結リストを含む。キーグリッドムーバは、この複数の循環重連結リストを並べ換えるように構成される。キーストリームリーダは、暗号化キーグリッドからキーストリームを抽出するように構成される。
【0006】
また、本発明は、暗号化データ転送の方法にも関する。一実施形態によれば、この方法は、偏光された光子を交換することによって、生成された暗号化キーストリームシードを別の通信エンティティと同期させて、同期された暗号化キーストリームシードを生成することを含む。また、この方法は、同期された暗号化キーストリームシードを使用して、同期された暗号化キーストリームを生成することも含む。また、この方法は、この同期された暗号化キーストリームを使用して、情報を暗号化すること、および/または情報を復号することも含む。
【0007】
また、本発明は、ランダムビットキーストリームを生成する方法にも関する。一実施形態によれば、この方法は、シードを使用して暗号化キーグリッドを形成する複数の循環重連結リストを初期設定すること、この暗号化キーグリッドを並べ換えること、および/またはこの暗号化キーグリッドから暗号化キーストリームを抽出することを含む。
【0008】
本発明は、以下に与えられる詳細な説明、ならびに同様の要素が同様の符号によって表され、単に例として与えられ、したがって、本発明を限定するものではない添付の図面から、より完全に理解されることになる。
【図面の簡単な説明】
【0009】
【図1】本発明の例示的な実施形態による暗号システムを示すブロック図である。
【図2】図1のシードジェネレータをより詳細に示す図である。
【図3】図1のエクスチェンジャの動作を示すクライアント/サーバ流れ図である。
【図4】シンクロナイザから同期された暗号化キーストリームシードを受け取り、同期された暗号化キーストリームを暗号化/復号ユニットに出力する図1のキーストリームジェネレータをより詳細に示す図である。
【図5】図4の暗号化キーグリッドの例示的なレイアウトを示す図である。
【図6】図4のキーグリッドムーバの例示的な構成要素を示す図である。
【図7】図4のキーストリームリーダの動作を示す3Dブロック抽象化を示す図である。
【図8A】図1のサーバおよびクライアントによるデータの例示的な暗号化を示す図である。
【図8B】図1のサーバおよびクライアントによるデータの例示的な復号を示す図である。
【図9】本発明の例示的な実施形態によるサーバとクライアントの間の暗号化データ転送の方法を示すクライアント/サーバ流れ図である。
【発明を実施するための形態】
【0010】
詳細な、例示的な実施形態が、本明細書で開示される。しかし、本明細書で開示される特定の構造上および機能上の詳細は、例示的な実施形態を説明することを目的とする単に代表的なものである。しかし、例示的な実施形態は、多くの代替の形態で実施されることが可能であり、さらに本明細書で示される実施形態だけに限定されるものと解釈されてはならない。
【0011】
したがって、例示的な実施形態は、様々な変形形態および代替形態が可能であるが、本発明の実施形態が、例として図面に示され、本明細書で詳細に説明される。しかし、例示的な実施形態を開示される特定の形態に限定する意図は全くなく、それどころか、例示的な実施形態は、例示的な実施形態の範囲内に含まれるすべての変形形態、均等形態、および代替形態に及ぶものとされることを理解されたい。同様の符号が、図の説明の全体にわたって同様の要素を指す。
【0012】
「第1の」、「第2の」などの用語が、本明細書で様々な要素を説明するのに使用される可能性があるものの、これらの要素は、これらの用語によって限定されるべきではないことを理解されたい。これらの用語は、単に、或る要素を別の要素から区別するために使用される。例えば、例示的な実施形態の範囲を逸脱することなく、第1の要素が、第2の要素と呼ばれることも可能であり、同様に第2の要素が、第1の要素と呼ばれることも可能である。本明細書で使用される「および/または」という用語には、列挙される関連する項目の1つまたは複数の項目のあらゆる組み合わせが含まれる。
【0013】
或る要素が、別の要素に「接続」または「結合」されていると述べられる場合、その要素は、他方の要素に直接に接続または結合されていても、介在する要素が、存在していてもよいものと理解される。これとは対照的に、或る要素が、別の要素に「直接に接続」または「直接に結合」されていると述べられる場合、介在する要素は、全く存在しない。要素間の関係を説明するのに使用される他の語も、同様に解釈されるべきである(例えば、「の間に」対「直に間に」、「隣接して」対「直に隣接して」など)。
【0014】
本明細書で使用される専門用語は、特定の実施形態を説明するためのみのものであり、例示的実施形態を限定することを意図されていない。本明細書で使用される、単数形、「或る(a,an)」および「その(the)」には、文脈がそうでないことを特に明示しない限り、複数形も含まれることが意図される。用語、「含む」、「含んでいる」、「含まれる」、および/または「含まれている」は、本明細書で使用される場合、述べられる特徴、整数、ステップ、動作、要素、および/または構成要素の存在を明示するが、他の1つまたは複数の特徴、整数、ステップ、動作、要素、構成要素、および/または以上の組み合わせの存在または追加を除外しないものとさらに理解される。
【0015】
また、一部の代替の実施形態において、記される機能/動作は、図に記される順序を外れて行われてもよいことに留意されたい。例えば、関与する機能/動作に依存して、連続して示される2つの図が、実際は、実質的に同時に実行されてもよく、あるいは、ときとして、逆の順序で実行されてもよい。
【0016】
本明細書で使用される「クライアント」および「サーバ」という用語は、所与の時点で、概して、情報を要求するエンティティ(「クライアント」)と、概して、情報を供給するエンティティ(「サーバ」)とを区別することを意図している。しかし、これらのエンティティそのものは、所与の期間にわたって「クライアント」と「サーバ」の両方の役割をすることが可能であり、このため、異なる時点で、「クライアント」として説明される本明細書におけるエンティティは、実際は、「サーバ」に帰される動作を実行することが可能であり、「サーバ」として説明される本明細書におけるエンティティは、「クライアント」に帰される動作を実行することが可能であることが、当業者によって認識されよう。したがって、「クライアント」および「サーバ」という用語は、本明細書で説明されるエンティティに必要以上の限定を与えるものと解釈されてはならない。
【0017】
図1は、本発明の例示的な実施形態による暗号システムのブロック図を示す。暗号システム100は、クライアント110とサーバ150の間で、情報の安全な転送を提供する。クライアント110は、クライアント暗号化キーストリームジェネレータ117に接続されたクライアントキーシンクロナイザ111を含み、ジェネレータ117も、クライアント復号ユニット119に接続される。クライアントキーシンクロナイザ111は、クライアントエクスチェンジャ115に接続されたクライアントシードジェネレータ113を含む。
【0018】
同様に、サーバ150は、サーバ暗号化キーストリームジェネレータ157に接続されたサーバキーシンクロナイザ151を含み、ジェネレータ157も、サーバ暗号化ユニット159に接続される。サーバキーシンクロナイザ151は、サーバエクスチェンジャ155に接続されたサーバシードジェネレータ153を含む。図示されるとおり、サーバキーシンクロナイザ151は、クライアントキーシンクロナイザ111と情報を交換するように構成され、さらにサーバ暗号化ユニット159は、情報を暗号ストリームの形態で、クライアント復号ユニット119と交換するように構成される。
【0019】
クライアント110とサーバ150の間の、暗号化されたデータの安全な転送は、クライアント110とサーバ150の間で同期された共有される秘密に基づく。キーシンクロナイザ111/151が、シードジェネレータ113/153およびエクスチェンジャ115/155を使用して、暗号化キーストリームジェネレータ117/157を同期された状態(共有される秘密)に初期設定し、次に、この状態が、一連の同時に行われる動作を介して伝播させられる。
【0020】
図2は、本発明の例示的な実施形態による、図1のシードジェネレータ113/153をより詳細に示す概略図である。図示されるとおり、シードジェネレータ113/153は、対応するクロッキングモジュール211−215に接続された第1の線形フィードバックシフトレジスタ(LFSR)201、第2のLFSR203、および第3のLFSR205と、各LFSR201−205に接続されたレジスタコントローラ250と、出力モジュール220とを含む。出力モジュール220は、LFSR201−205および/またはクロッキングモジュール211−215の出力を使用して、暗号化キーストリームシードを生成する。LFSRは、入力ビットが、シフトレジスタの前の状態の線形関数であるシフトレジスタである。
【0021】
図2を参照すると、LFSR201の1つまたは複数のビットが、クロッキングモジュール211に送り込まれ、クロッキングモジュール211の出力は、LFSR203に接続される。同様に、LFSR203の1つまたは複数のビットが、クロッキングモジュール213に送り込まれ、クロッキングモジュール213の出力は、LFSR205に接続される。LFSR205の1つまたは複数のビットが、クロッキングモジュール215に送り込まれる。クロッキングモジュール215の出力、LFSR201の出力、およびLFSR203の出力は、出力モジュール220に送り込まれる。出力モジュール220の出力は、暗号化キーストリームシードであり、このシードは、LFSR201に接続されることも可能である。
【0022】
3つのLFSR201−205、および対応するクロッキングモジュール211−215が、図2に示されるものの、レジスタおよびクロッキングモジュールの総数は、本発明の意図される範囲を逸脱することなく、任意の数に拡大縮小されることが可能である。
【0023】
各LFSR201−205の長さは、所望されるキー長に応じて、レジスタコントローラ250によって動的に設定される。3つのLFSR201−205のそれぞれは、これらのレジスタにおけるビットの総数が、所望される長さを有する暗号化キーストリームのビットの総数と等しいように、プリミティブ長(すなわち、素数)に設定されることが、所望される長さによって、これらのレジスタの1つまたは複数が、次に大きい素数に設定されることが必要とされない限り、行われる。例えば、図2を参照すると、所望される暗号化キーストリームシード長が、128ビットである場合、レジスタコントローラ250は、LFSR201を43ビットに設定し、LFSR203を43ビットに設定し、さらにLFSR205を、残りの42ビットより大きい、次に大きい素数長(すなわち、43ビット)に設定する。
【0024】
LFSR201−205は、レジスタコントローラ250によって、クライアント110とサーバ150の両方にアプリオリに知られている所与の素数(一次キー)を使用して初期設定され、このため、各LFSR201−205は、基本的にランダムな値を含む。前述の例に続いて、各LFSR201−205の長さが設定されると、レジスタコントローラ250は、一次キーの最初の43ビットをLFSR201に入れ、次の43ビットをLFSR203に入れ、さらに残りのビットをLFSR205に入れる。LFSR201−205を初期設定するのに追加のビットが必要とされる場合、レジスタコントローラ250は、定数値(すなわち、「1」または「0」)を使用することができる。一次キーは、クライアント110とサーバ150によってアプリオリに合意された任意の許容可能な値であることが可能である。
【0025】
図2に示されるとおり、各LFSR201−205のいくつかのビット(タップ)が、対応するクロッキングモジュール211−215に送り込まれる。これらのタップは、(後段で説明される)レジスタコントローラ250によって生成された所与の原始多項式に従って算出される。各原始多項式は、所与の変数の異なる正の累乗に対応する0でない1つまたは複数の項を含み、これらの0でない項の累乗は、レジスタのいずれのビットがタップに対応するかを決定する。所与の原始多項式によって決定された、これらのタップの位置は、タップ系列と呼ばれる。
【0026】
例えば、図2を参照して、レジスタコントローラ250が、LFSR201を11ビットに設定し、一次キーを使用して、それらの11ビットを「01001101001」に初期設定するものと想定する。例示的な原始多項式x10+x+1を考えると、レジスタコントローラ250は、LFSR201の第10番、第3番、および第0番のビットをタップとして設定する。このため、LFRS201の第10番、第3番、および第0番のビットの値(この例では、それぞれ、「1」、「0」、および「0」)が、クロッキングモジュール211に送り込まれる。
【0027】
レジスタコントローラ250は、当技術分野でよく知られている標準のアルゴリズムを使用して、または異なる度数/次数の原始多項式のルックアップ表を参照することによって、原始多項式を生成することができる。各レジスタに関して使用される原始多項式は、対応するレジスタの長さ未満の度数であることが可能であるが、このことにより、生成された暗号化キーストリームシードの周期が低減され、したがって、ロバスト性が低減される可能性がある。
【0028】
各レジスタは、異なる原始多項式(およびタップ系列)を使用することが可能であるが、複数のレジスタによって使用されるべき所与の原始多項式に関して、例えば、要求される計算の数を減らすことが望ましい可能性がある。さらに、シードジェネレータ113/153の各回の呼び出し時に、新たな原始多項式が、使用されることが可能である。新たな原始多項式の使用は、異なる所望されるキー長に関して使用されるレジスタに対処するだけでなく、生成される各キーのランダム化を高める。しかし、クライアント110とサーバ150の間の同期を保つのに、クライアントシードジェネレータ113およびサーバシードジェネレータ153は、同一の原始多項式(および同一のタップ系列)を使用する。一次キーの場合と同様に、これらの原始多項式は、クライアント110とサーバ150によってアプリオリに合意される。
【0029】
本発明の例示的な実施形態によれば、キージェネレータレジスタは、他のキージェネレータレジスタの状態に基づいて、クロッキングされる。図2を参照すると、LFSR203は、出力がLFSR201の状態に依存するクロッキングモジュール211に従ってクロッキングされる。同様に、LFSR205は、出力がLFSR203の状態に依存するクロッキングモジュール213に従ってクロッキングされる。例えば、クロッキングモジュール211の出力が、「1」である場合、LFSR203は、クロッキングし、クロッキングモジュール211の出力が、「0」である場合、LFSR203は、クロッキングしない。LFSR201は、図2に示されるとおり、内部フィードバッククロックに従って、または所望される場合、外部クロックに従ってクロッキングされることが可能である。
【0030】
クロッキングモジュール211−215は、例えば、XORゲートとして実施されることが可能であるが、本発明の意図される範囲を逸脱することなく、他の論理機能が実施されてもよい。例えば、クロッキングモジュール213が、XORゲートとして実施され、LFSR203のタップ系列に対応するビットが、所与の状態において奇数の「1」を有する場合、クロッキングモジュール213は、「1」を出力し、LFSR205は、クロッキングする。
【0031】
前述の例に続いて、LFSR201が、11ビットに設定され、さらに「01001101001」に初期設定され、さらに例示的な原始多項式x10+x+1を使用して、タップが算出されるものと想定されたい。したがって、「1」(第10番のビット)、「0」(第3番のビット)、および「0」(第0番のビット)に対応するビットが、クロッキングモジュール211に送り込まれる。クロッキングモジュール211が、XORゲートとして実施される場合、XOR演算は、「1」結果(奇数の「1」)をもたらし、クロッキングモジュール211は、クロッキングするようにLFSR203にシグナリングする「1」値を出力する。
【0032】
このため、共有される一時キーに基づくレジスタの擬似ランダム初期状態が、シードとして使用されて、他の擬似ランダム状態が生成される。これらの擬似ランダム状態の並べ換えを使用して、繰り返しの大きい確率なしに、ランダムビットの暗号化キーストリームシードがもたらされる。図2を参照すると、出力モジュール220が、LFSR201、LFSR203、およびクロッキングモジュール215の出力を使用して、暗号化キーストリームシードをもたらす。
【0033】
クロッキングモジュール211−215と同様に、出力モジュール220は、XORゲートとして実施されることが可能であるが、本発明の範囲を逸脱することなく、他の論理機能が実施されることも可能である。図2に示されるとおり、暗号化キーストリームシードは、第1のLFSR201に関する内部フィードバッククロックとして使用されることも可能である。
【0034】
これらのレジスタは、レジスタコントローラ250によって、一次キーからの基本的にランダムな情報を使用して初期設定され、原始多項式によって定義されたタップ系列に従って、基本的にランダムな仕方で並べ換えられるため、生成された暗号化キーストリームシードは、ほぼ無限の周期を有する基本的にランダムなビットを含む。さらに、新たに生成された原始多項式、および対応するタップ系列は、同一の初期状態からさえ、異なる暗号化キーストリームシードをもたらす。したがって、本発明の例示的な実施形態に従ってシードジェネレータ113/153によって生成される暗号化キーストリームシードのランダム化は、相当な長さ、および/または繰り返される初期状態という状況においてさえ、ロバストである。
【0035】
光子などの一連の偏光された量子波束を交換するのにエクスチェンジャ115/155を使用する、各シードジェネレータ113/153によって出力される暗号化キーストリームシードの、クライアント110とサーバ150の間の同期が、以下に説明される。
【0036】
図3は、図1のエクスチェンジャ115/155の動作を示すクライアント/サーバ流れ図である。サーバエクスチェンジャ155は、LED(発光ダイオード)またはレーザなどの光源を使用して、光の短いパルスを生成する。これらの光パルスが濾波されて、サーバキーシンクロナイザ155に従って決定された所望される偏光および強度が実現され、光子などの一連の偏光された量子波束としてクライアント110に送信される(S310)。サーバキーシンクロナイザ155は、交換より前にクライアント110とサーバ150の両方に知られている所与の暗号化方法を使用してシードジェネレータ153によって生成された暗号化キーストリームシードに従って、適切な基底を含め、各量子波束の基準偏光を決定する。
【0037】
例えば、各量子波束の偏光は、以下に示される表1における方法に従って決定されることが可能である。
【表1】

【0038】
表1の方法によれば、サーバシードジェネレータ153が、「011...」という例示的なビットパターンを有する暗号化キーストリームシードを生成する場合、量子波束は、以下のとおり、偏光される。すなわち、水平偏光、垂直偏光、右円偏光などである。
【0039】
クライアントキーシンクロナイザ111は、サーバキーシンクロナイザ151と同一の方法に従ってクライアントシードジェネレータ113によって生成された暗号化キーストリームシードを使用して、各量子波束の偏光を測定する(S320)。クライアントシードジェネレータ113は、理想的には、サーバシードジェネレータ153と同一の暗号化キーストリームシードを生成し、さらに量子交換方法は、クライアント110とサーバ150の両方にアプリオリに知られているため、クライアントキーエクスチェンジャ155は、キー交換中に受信される各量子波束に関して、いずれの偏光基底が測定されるべきかを予期する。このため、誤った偏光基底に対して行われた測定によるキー交換情報の意図しない破壊が、低減される、または最小限に抑えられる。
【0040】
しかし、いくつかの量子波束は、それでも、クライアントエクスチェンジャ115によって予期される測定をもたらすことに失敗する可能性がある。これらの失敗した測定は、いくつかの悪意のある原因、および悪意のない原因からもたらされる可能性がある。クライアントエクスチェンジャ115は、失敗した測定のシーケンス番号をサーバエクスチェンジャ155に送信して、いずれの量子波束が正しく受信されなかったかを示す(S330)。失敗した量子波束に対応する暗号化キーストリームシードビットは、クライアント110とサーバ150の両方によって破棄される(S340/S350)。また、パリティ検査が、さらなる安全対策として実行されることも可能である。
【0041】
このため、共有される秘密は、クライアント110とサーバ150の間で同期される。
【0042】
図4は、本発明の例示的な実施形態による暗号化キーストリームジェネレータ117/157を示す。暗号化キーストリームジェネレータ117/157は、暗号化キーグリッド420、キーグリッドムーバ420、および/またはキーストリームリーダ430を含む。キーグリッドムーバ420およびキーストリームリーダ430はそれぞれ、暗号化キーグリッド410に接続される。図示されるとおり、キーストリームリーダ430は、キーシンクロナイザ111/151から、同期された暗号化キーストリームシードを受け取り、同期された暗号化キーストリームを暗号化/復号ユニット154/114に出力する。暗号化キーストリームジェネレータ117/157の各構成要素の動作は、さらなる図を参照して、以下により詳細に説明される。
【0043】
図5は、本発明の例示的な実施形態による暗号化キーグリッド410の例示的なレイアウトを示す。暗号化キーグリッド410は、一連の循環重連結リストを含み、各リストの各要素は、隣接する2つの水平隣接要素、および隣接する2つの垂直隣接要素に接続されている。これらのリストは、これらのリストの終端が互いに接続されているという意味で循環型であり、さらに要素の間で双方向の連絡が存在するという意味で重連結型である。各リストの各要素は、2進値を保持する。
【0044】
図示されるとおり、図5は、ヘッド要素515を有する例示的な垂直循環重連結リスト510、およびヘッド要素525を有する例示的な水平循環重連結リスト520を示す。各ヘッド要素515/525の機能は、後段で説明される。クライアント110とサーバ150の間で同期された暗号化キーストリームシードを使用して、各暗号化キーストリームジェネレータ117/157の暗号化キーグリッド410がポピュレートされる(つまり、初期設定される)。
【0045】
図6は、本発明の例示的な実施形態による、図5の循環重連結リスト510/520を並べ換えるためのキーグリッドムーバ420の例示的な構成要素を示す。キーグリッドムーバ420は、クロッキングモジュール610/620を含む。図示されるとおり、垂直循環重連結リスト510が、いくつかのタップビットによって、対応するクロッキングモジュール610に接続され、水平循環重連結リスト520が、いくつかのタップビットによって、対応するクロッキングモジュール620に接続される。クロッキングモジュール610の出力は、水平循環重連結リスト520のヘッド要素525に送り込まれ、クロッキングモジュール620の出力は、垂直循環重連結リスト510のヘッド要素515に送り込まれる。
【0046】
次に、キーグリッド並べ換えが、図6を参照して説明される。図6に示されるキーグリッドムーバ420の動作は、図2に示されるシードジェネレータ113/153の動作と同様である。キーグリッドムーバ420は、LFSR201−205の並べ換えと同様に、循環重連結リスト510/520を並べ換える。例えば、各循環重連結リスト510/520のいくつかの要素が、原始多項式によって定義された対応するタップ系列に従って、対応するクロッキングモジュール610/620に接続される。原始多項式およびタップ系列については、シードジェネレータ113/153および図2に関連して前段で説明したので、より詳細な説明は、省略する。
【0047】
各水平循環重連結リストは、キーグリッドムーバの対応するクロッキングモジュールを介して、或る特定の垂直循環重連結リストのクロッキングを決定し、各垂直循環重連結リストは、キーグリッドムーバの対応するクロッキングモジュールを介して、或る特定の水平循環重連結リストのクロッキングを決定する。図6に示されるとおり、水平循環重連結リスト520は、対応するクロッキングモジュール620を介して、キーグリッドムーバ420によって垂直循環重連結リスト510のクロッキングを決定し、垂直循環重連結リスト510は、対応するクロッキングモジュール610を介して、キーグリッドムーバ420によって水平循環重連結リスト510のクロッキングを決定する。
【0048】
キーグリッドムーバ410のクロッキングモジュール610/620は、ヘッド要素525/515にそれぞれ、クロッキング信号を送る(図2のクロッキングモジュール211−215と同一の仕方で)。ヘッド要素515/525は、クロッキングする(すなわち、リストにおける隣接する要素にビット値をシフトする)よう、それぞれの要素515/525の循環重連結リストにシグナリングする。このため、キーグリッドムーバ420のクロッキングモジュール610/620は、タップ系列によって定義される要素のビットの値に基づいて、各循環リストを並べ換えるように構成される。
【0049】
キーグリッドの並べ換えは、計算リソースを多く使用する可能性があるため、これらの並べ換えにおいて使用される原始多項式の数は、制限される可能性がある。例えば、4つの原始多項式のセットが、水平循環重連結リストに役立つことが可能であり、4つの原始多項式の別のセットが、垂直循環重連結リストに役立つことが可能である。使用される原始多項式の適切な数は、システムの利用可能な計算能力に依存する。クロッキングモジュール610/620は、例えば、XORゲートによって実施されることが可能であるが、他の論理演算、または演算の組み合わせが使用されてもよい。
【0050】
図7は、本発明の例示的な実施形態による、暗号化キーグリッド410から、繰り返しの相当に低い確率を有する暗号化キーストリームを抽出するためのキーストリームリーダ430の動作を示す3Dブロック抽出である。暗号化キーグリッド410は、例示の目的で、面ごとに9つの要素が3行、3列に配置されている6面立方体として、図7に示される。
【0051】
図示されるとおり、キーストリームリーダ430が、暗号化キーグリッド410の指定された開始位置710でキーストリームビットを抽出することを始め、リーダ430が、暗号化キーグリッド410の縁端に到達するまで、対応する水平行リストに沿って順次にビットを読み取ることを続ける。キーストリームリーダ430は、リーダ430が、指定された開始位置710に戻るまで、隣接する面730などの対応する行に沿って読み取り動作を続ける。キーストリームリーダ430は、次の水平行720にジャンプし、前述したとおり、暗号化キーグリッド410の周囲で継続する。すべての水平行リストが読み取られると、キーストリームリーダ430は、上面740および下面750に対応する暗号化キーグリッド410の要素に対する読み取り動作を、時計方向に続ける。
【0052】
図7に関連して説明される要素の特定の読み取り順序は、例示として与えられ、本発明の範囲を限定することは意図していない。キーグリッドの要素の特定の読み取り順序は、同期を保つためにクライアントとサーバの両方に読み取り順序が知られている限り、大きく変更されてもよいことが当業者には認識されよう。
【0053】
暗号化キーグリッド410の各要素が、キーストリームリーダ430によって読み取られると、循環重連結リストは、暗号化キーグリッド410の新たな状態に擬似ランダムな仕方でビットを再構成するように、キーグリッドムーバ420によって並べ換えられる。
【0054】
図1を参照すると、クライアント暗号化キーストリームジェネレータ117とサーバ暗号化キーストリームジェネレータ157が、図1の暗号システム100の暗号化/復号ユニット119/159によって使用されるように、同期された暗号化キーストリームを生成する。図8Aおよび図8Bは、サーバ暗号化キーストリームジェネレータ157およびクライアント暗号化キーストリームジェネレータ117の同期された暗号化キーストリームを使用する、データの暗号化および復号を、それぞれ示す。
【0055】
図8Aに示されるサーバ暗号化ユニット159は、サーバ暗号化キーストリームジェネレータ157の同期された暗号化キーストリーム851を使用して、平文853から暗号文855を生成する。暗号文853は、暗号ストリームとしてクライアント110に送信される。図8Bに示されるクライアント復号ユニット119は、クライアント暗号化キーストリームジェネレータ117の同期された暗号化キーストリーム811を使用して、受信された暗号文815から再構築された平文813を生成する。暗号化/復号ユニット119/159は、例えば、XORゲートとして実施されることが可能であるが、本発明の意図される範囲を逸脱することなく、他の論理機能、またはよく知られた暗号化/復号アルゴリズムが、実施されてもよい。
【0056】
暗号ストリームの送信および受信は、様々な方法によって達せられることが可能である。例えば、暗号ストリームは、光ファイバチャネルを介して量子波束の中で送信されることが可能である。暗号ストリームを使用して各バイナリビットを送受信するための基礎は、伝送の特定の実施態様に依存し、すべてのそのような実施態様が、本発明の範囲内に含まれることが意図される。
【0057】
図9は、本発明の例示的な実施形態によるクライアントとサーバの間の暗号化データ転送の方法を示すクライアント/サーバ流れ図である。クライアント110は、サーバ150に対してクライアント110自らを認証し、データの転送を求める(S900)。サーバ150は、クライアント110が認証されたかどうかを判定する(S950)。認証が、サーバ150によって確認されると、クライアント110とサーバ150は、対応するキーシンクロナイザ111/151を起動する(S905/S955)。任意のよく知られた認証スキームが、使用されることが可能である。
【0058】
サーバ150は、光子などの一連の偏光された量子波束をクライアント110に送信し、それぞれの偏光された量子波束の偏光値および基底は、クライアント110とサーバ150によって共有される暗号化方法に従ってサーバシードジェネレータ153の出力によって決定される(S960)。クライアント110は、この一連の偏光された量子波束を受信し、クライアントシードジェネレータ111の出力、および共有される暗号化方法によって決定される偏光基底に従って、各パケットの偏光を測定する(S910)。クライアント110は、いずれのビットが適切に測定され、いずれのビットが適切に測定されないかを特定する。クライアント110によって適切に測定されることに失敗したビットは、サーバ150に報告され(S915)、同期された暗号化キーストリームシードから破棄される(S965)。
【0059】
同期された暗号化キーストリームシードを使用して、暗号化キーストリームジェネレータ117/157が初期設定される(S920/S970)。暗号化キーストリームジェネレータ117/157は、同期された暗号化キーストリームを生成するのに使用され(S925/S975)、さらに定期的に並べ換えられて、繰り返しの確率が比較的低くなるように相当に長い周期を有する同期された暗号化キーストリームをもたらす。この並べ換えは、各暗号化キーストリームジェネレータ117/157の部分を擬似ランダムにシフトするように原始多項式のタップ系列に従って選択されたビットを使用することによって、実行されることが可能である。このことは、クライアント暗号化キーストリームジェネレータ117とサーバ暗号化キーストリームジェネレータ157の同期を保ちながら、異なるランダムビット系列を生成するのに使用されることが可能な各暗号化キーストリームジェネレータ117/157の別の基本的にランダムな状態を生じさせる。
【0060】
サーバ150が、サーバ暗号化キーストリームジェネレータ157によって生成された、同期された暗号化キーストリームを使用してデータを暗号化し、暗号化されたデータをクライアントに送信する(S980)。暗号化されたデータは、クライアントによって受信され、クライアント暗号化キーストリームジェネレータ117によって生成された、同期された暗号化キーストリームを使用して復号される(S930)。データ転送の間中、クライアント110およびサーバ150は、情報が適切に送信され、受信されているかどうかを絶えず監視する(S985/935)。クライアントがクラッシュしていると判定された場合(S940/S990)、そのビットカウントが、クライアント110とサーバ150の両方によって記録され(S945/S995)、データ転送プロセスが、適切なポイントで再開される(S925/S975)。クライアントがクラッシュしていると判定されない場合、データ転送は、完了に進む(S930)。
【0061】
このように例示的な実施形態が説明されて、これらの実施形態が、様々な仕方で変更され得ることが明白となろう。例えば、例示的な実施形態による方法は、ハードウェアおよび/またはソフトウェアとして実装されることが可能である。ハードウェア/ソフトウェア実装形態には、プロセッサと製造品の組み合わせが含まれることが可能である。製造品には、記憶媒体と実行可能なコンピュータプログラム、例えば、コンピュータ可読媒体上に格納されたコンピュータプログラム製品がさらに含まれることが可能である。
【0062】
この実行可能なコンピュータプログラムは、説明される動作または機能を実行する命令を含むことが可能である。また、このコンピュータ実行可能プログラムは、外部から供給される伝搬信号の一部として提供されることも可能である。そのような変種は、例示的な実施形態の意図される趣旨および範囲からの逸脱と見なされるべきではなく、当業者には明白な、すべてのそのような変形形態が、添付の特許請求の範囲の範囲内に含まれることが意図される。

【特許請求の範囲】
【請求項1】
偏光された光子を使用して暗号化キーストリーム(811/851)を別の通信エンティティと同期させるように構成されたキーシンクロナイザ(111/151)と、
同期されたキーストリームに基づいて、i)平文(813/853)から暗号文(815/855)、およびii)暗号文から平文の少なくともいずれかを生成するように構成された暗号化回路(119/159)とを含む、暗号システム(110/150)。
【請求項2】
キーシンクロナイザが、
暗号化キーストリームシードを生成するように構成されたシードジェネレータ(113/153)と、
偏光された光子を交換することによって、暗号化キーストリームシードを、その別の通信エンティティと同期させるように構成されたエクスチェンジャ(115/155)とを含み、暗号化キーストリームが、同期された暗号化キーストリームシードから導き出される、請求項1に記載の暗号システム。
【請求項3】
シードジェネレータが、
クロッキング信号を出力するように構成された複数のクロッキングモジュール(211−215)と、
クロッキング信号に基づいて並び換わるように構成された複数の線形フィードバックシフトレジスタ(201−205)と、
クロッキング信号と、複数の線形フィードバックシフトレジスタの少なくとも1つからの出力の少なくともいずれかから、暗号化キーストリームシードを生成するように構成された出力モジュール(220)とを含み、複数のクロッキングモジュールが、原始多項式から導き出されたタップ系列に従って複数の線形フィードバックシフトレジスタからタップされたビットを受け取る、請求項2に記載の暗号システム。
【請求項4】
エクスチェンジャが、暗号化キーストリームシードに基づいて、それぞれの偏光された光子の偏光値および基底を決定し、さらにその別の通信エンティティとの同期に失敗する暗号化キーストリームシードの部分を破棄するようにさらに構成される、請求項2に記載の暗号システム。
【請求項5】
暗号化キーグリッド(410)を形成する複数の循環重連結リスト(510/520)と、
複数の循環重連結リストを並べ換えるように構成されたキーグリッドムーバ(420)と、
暗号化キーグリッドからキーストリームを抽出するように構成されたキーストリームリーダ(430)とを含む、ランダムビットキーストリームジェネレータ(117/157)。
【請求項6】
キーグリッドムーバが、原始多項式から導き出されたタップ系列に従って複数の循環重連結リストからタップされたビットを受け取り、複数の循環重連結リストの1つを並べ換えるようにクロッキング信号を出力するようにそれぞれが構成された複数のクロッキングモジュール(515/525)を含む、請求項5に記載のランダムビットキーストリームジェネレータ。
【請求項7】
偏光された光子を交換することによって、生成された暗号化キーストリームシードを別の通信エンティティと同期させて、同期された暗号化キーストリームシードをもたらすこと、
同期された暗号化キーストリームシードを使用して、同期された暗号化キーストリームを生成すること(S925)、および
同期された暗号化キーストリームを使用して、i)情報を暗号化すること(S980)と、ii)情報を復号すること(S930)の少なくともいずれかを含む、暗号化データ転送の方法。
【請求項8】
同期させるステップが、
受信された暗号化キーストリームシードの部分を示す偏光された光子の少なくとも1つを、その別の通信エンティティから受信すること、
生成された暗号化キーストリームシードに基づいて、それぞれの受信された、偏光された光子の偏光を測定すること(S910)、
受信された暗号化キーストリームシードの受信された部分を、生成された暗号化キーストリームシードの対応する部分と比較すること、
不一致の暗号化キーストリームシード部分を同期していない暗号化キーストリームシード部分として、その別の通信エンティティに報告すること、および
同期していない暗号化キーストリームシード部分を破棄することによって、同期された暗号化キーストリームシードを生成することを含む、請求項7に記載の方法。
【請求項9】
同期させるステップが、
生成された暗号化キーストリームシードに基づいて、それぞれの偏光された光子の偏光を変調すること、
生成された暗号化キーストリームシードの部分を示す偏光された光子を、その別の通信エンティティに送信すること(S960)、
同期していない暗号化キーストリームシード部分を報告する情報を受信すること、および
生成された暗号化キーストリームシードから同期していない暗号化キーストリームシード部分を破棄することによって、同期された暗号化キーストリームシードを生成することを含む、請求項7に記載の方法。
【請求項10】
所与の素数に基づいて、複数の線形フィードバックシフトレジスタを初期設定すること、
原始多項式から導き出されたタップ系列に従って複数の線形フィードバックシフトレジスタからタップされたビットに基づいて、クロッキング信号を生成すること、
クロッキング信号に基づいて、複数の線形フィードバックシフトレジスタの少なくとも1つを並べ換えること、および
少なくとも1つのクロッキング信号、および複数の線形フィードバックシフトレジスタの少なくとも1つからの出力から、生成された暗号化キーストリームシードを生成することをさらに含む、請求項7に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8A】
image rotate

【図8B】
image rotate

【図9】
image rotate


【公表番号】特表2010−528563(P2010−528563A)
【公表日】平成22年8月19日(2010.8.19)
【国際特許分類】
【出願番号】特願2010−510305(P2010−510305)
【出願日】平成20年5月23日(2008.5.23)
【国際出願番号】PCT/US2008/006658
【国際公開番号】WO2008/153774
【国際公開日】平成20年12月18日(2008.12.18)
【出願人】(596092698)アルカテル−ルーセント ユーエスエー インコーポレーテッド (965)
【Fターム(参考)】