JP6397966B2 - 文字列プロセッサ - Google Patents

文字列プロセッサ Download PDF

Info

Publication number
JP6397966B2
JP6397966B2 JP2017122343A JP2017122343A JP6397966B2 JP 6397966 B2 JP6397966 B2 JP 6397966B2 JP 2017122343 A JP2017122343 A JP 2017122343A JP 2017122343 A JP2017122343 A JP 2017122343A JP 6397966 B2 JP6397966 B2 JP 6397966B2
Authority
JP
Japan
Prior art keywords
string
input
output
output value
comparison
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017122343A
Other languages
English (en)
Other versions
JP2017215974A (ja
Inventor
マルコ ルカマリーニ
マルコ ルカマリーニ
アラン プルーズ
アラン プルーズ
ジリアン ユアン
ジリアン ユアン
アンドリュー ジェームス シールズ
アンドリュー ジェームス シールズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Publication of JP2017215974A publication Critical patent/JP2017215974A/ja
Application granted granted Critical
Publication of JP6397966B2 publication Critical patent/JP6397966B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0852Quantum cryptography
    • H04L9/0858Details about key distillation or coding, e.g. reconciliation, error correction, privacy amplification, polarisation coding or phase coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Description

本実施形態は、文字列プロセッサおよび変数の文字列を処理する方法に関する。
本出願は、その内容全体が参照により本明細書に明確に組み込まれる、2014年9月22日に出願された英国特許出願番号1416735.7号に基づいて優先権の利益を主張する。
モデル化、シミュレーションおよび暗号作成ツールは、ランダム値またはビットの文字列をたびたび要求する。例えば、ランダムビットの文字列は、データ暗号化キーを生成すること、ランダムプロセスをシミュレートすること、複雑な自然現象をモデル化することのために、たびたび要求される。これらのランダムビットの文字列は、全ての出力値は同じ発生の機会を得ている(「1」または「0」である各出力ビットの等しい機会が存在する)という意味で、バイアスがない(無作為である)必要があるかもしれないし、出力値が同じ発生の機会を得ていない(例えば、平均で「0」の2倍の「1」が存在する)という意味で、バイアスがある(作為である)ことが必要であるかもしれない。そのため、実施形態の実装の1つの特定例は、値のランダム文字列の処理であってもよい。
決定論的なシステムであるコンピュータは、ランダムな値またはビットの文字列を生成するために本質的に適さない。そうすることへの2つの主なアプローチがある。擬似乱数発生器(PRNG)および真の乱数発生器(TRNG)である。
TRNGは、物理的な現象からそれらの「不確定性」を引き出す。一般に、TRNGは、測定値に由来したランダムな値またはビットの文字列を生産するためにランダムな自然発生からの測定を用いることにより、これをおこなう。測定される現象の代表例は、大気雑音、放射性崩壊および半透鏡を通過した光子の伝送を含む。出力が本質的にランダムである自然過程によって決定されるので、出力は真にランダムである。
PRNGは、ある程度までランダムに見えるであろう値またはビットの文字列を作成するアルゴリズム、数式または他の方法が実装されたコンピュータである。値のランダムな文字列を出力するように思えるPRNGアルゴリズムの例は、線形合同法(linear
congruential generators)、ラグ付きフィボナッチ法(lagged Fibonacci generators)、線形帰還シフトレジスタおよび計算難度推定(computational hardness assumptions)に基づくアルゴリズムを含む。
(たいていコンピュータ実装されるアルゴリズムである)PRNGは、一般により効率的で、TRNGより高いビットレートを持つことができる。したがって、値またはビットの大きな文字列が要求される多くのアプリケーションによく用いられる。
しかし、そのようなPRNGはランダムに見える出力を生産するかもしれないが、全てのPRNGは、まさにそれらの定義によって、真にランダムではない。
ランダムなビットのバイアスがある文字列は、いくつかの暗号手法技術、例えば量子鍵配送(QKD)において用いられる。QKDは、量子ビットまたはキュービットを用いて安全なやり方で、2つのパーティがランダムな秘密鍵または暗号を作成し共有することを可能にする。QKDは、理論上、盗聴者(よく「イブ」と呼ばれる)が鍵のセキュリティを危険にさらし、通信を傍受した場合、鍵の送信者(よく「アリス」と呼ばれる)および受信者(よく「ボブ」と呼ばれる)に伝えることを可能にする。これは、キュービットが測定されると必ず、測定されたプロパティに影響するという事実に依存する。そのため、イブの干渉による受信キュービットのどんな変更も、アリスおよびボブによって検出されうる。
QKD技術を実装する1つの方法は、BB84プロトコルである。(特にデコイ状態プロトコルを用いる)BB84プロトコルのいくつかの実装を効果的に用いるため、ランダムビットまたは変数のバイアスがある文字列が、ある強度のパルスの頻度を選択するために要求される。ランダム変数のバイアスがある文字列に関してさらに可能性があるアプリケーションは、まれな出来事をモデリングすること、例えば、砂漠での雨、コンピュータ上のカードゲームをシミュレーションすること、およびランダムウォーク型の問題(例えば量子散乱)をモデル化することを含む。これらの例は、暗号学、天気予報、ゲーミングおよび研究の分野における他の用途によって、以下のプロパティを備えた値またはビットの文字列を要求する。(a)ビットの文字列は、ランダム性のある種の評価可能な品質に一致しなければならない。 (b)ビットの文字列は、TRNGによって生成されるビットまたは値の比較可能な(例えば同じ値/ビットレートおよびバイアス)文字列と統計的に判別不能でなければならない。 (c)出力におけるビットの発生頻度(つまり、バイアス)は、ユーザによって選択されたものに近づかなければならない。
付加的な効率最適化要求も考慮に入れることができ、それは、 (d)出力文字列における各ビットの生成は、平均で、出力文字列のエントロピーに近い入力文字列からのビット数を用いなければならない。
ここに記述される実施形態は、最適化要求(d)と同様に、必要条件(a)から(c)を満たすことができる。
図1は、入力および出力文字列を備えるプロセッサとして実施形態を概略的に図示する。 図2は、ランダム性の同一の評価可能な品質を特徴とするバイアスがある出力文字列及び高品質な無バイアスがある入力文字列を備えるプロセッサとして実施形態を概略的に図示する。 図3は、RNG及び品質評価の例と共に、高品質のRNGを概略的に図示する。 図4aは複数の文字列生成器を概略的に図示し、図4bは複数の高品質のRNGを概略的に図示する。 図5は、実施形態の動作を概略的に図示する。 図6は、2つの値(s,s)のバイアスがない入力文字列から3つの値(s’、s’、s’)のバイアスがある出力文字列を作成するための、実施形態の符号木を概略的に図示する。 図7は、実施形態に係る符号木に関する枝木構造を図示する。図8は、バイアス2:1での2進のバイアスがある出力文字列を作成するための実施形態に係る符号木に関する枝木構造を図示する。 図9は、バイアス5:3:1:1での4つのシンボルでバイアスがある出力文字列を作成するための実施形態に係る符号木に関する枝木構造を図示する。 図10は、実施形態に係る内蔵型フィールドプログラマブルゲートアレイ(FPGA)を概略的に図示する。 図11は、概略的にQKDシステムで実装される実施形態に係るFPGAを図示する。 図12は、ここに記述される実施形態およびバイアスがある真RNGを概略的に図示する。 図13aは、実施形態に係る符号木に関する枝木構造を図示する。 図13bは、図13aに係る実施形態に関する理想的な分布と比較される達成された発生頻度のプロットを図示する。 図14は、実施形態に係る文字列プロセッサを概略的に図示する。
実施形態によれば、少なくとも2つの入力値のバイアスがない入力文字列を与えられる第1出力値および第2出力値を含むバイアスがある出力文字列を出力する文字列プロセッサであって、前記文字列プロセッサは、処理部とメモリデバイスとを含み、前記メモリデバイスは、符号語集合を格納し、前記符号語集合は、複数の符号語を含み、各符号語は、少なくとも1つの入力値を含み、各出力値は、少なくとも1つの対応する符号語を有し、前記処理部は、比較文字列と前記符号語とを比較し、前記比較文字列は、前記入力文字列からの入力を含み、前記比較文字列が符号語と一致する場合、出力値を前記出力文字列に割り当て、前記割り当てられた出力値は、前記一致した符号語に対応し、出力値の出力確率は、前記出力値に対応する前記符号語の長さおよび数によって定義され、前記第1出力値の出力確率は、前記第2出力値の出力確率よりも大きい。
本開示では、用語「入力」および「出力」は、文字列プロセッサ、RNGおよび他のデバイスからの出力またはこれらへの入力である、特定のシンボルまたはシンボルの文字列、たいてい(しかし常にではない)ビットまたはビットの文字列を表現するために用いられる。用語「値」は、ここに用いられるように、異なるビット、ビットの文字列、シンボルまたはシンボルの文字列を表現する。例えば、ここに記述される実施形態は、素でない量(non-primed quqntities)で示される2つの可能な入力値SおよびS、素である量(primed quqntities)で示されるS’、S’、S’を有してもよい。一旦これらの値のうちの1つが選択されれば、特定の入力または出力となり、それゆえ、例えば、iおよびo…のように示される入力または出力文字列をそれぞれ構成する。入力文字列中の各シンボルiは、入力値sのうちの1つを割り当てられる。同様に、出力文字列中の各シンボルoは、出力値s’のうちの1つを割り当てられる。
文字列プロセッサ、特にRNGの1つの特性は、バイアスである。出力文字列のバイアスは、別のものと比較される、1つの値の発生の平均数の比率である。例えば、文字列プロセッサが15個のs’ごとに平均1個のs’を出力する場合、s’:s’のバイアスは1:15である。s’の発生確率または発生頻度(2つの用語は、ここで大体は可換である)は、1/16であり、s’の発生確率または発生頻度は、15/16である。各値の発生確率が等しい場合(すなわち、次の入力または出力となるような値がすべて等しい場合)、システムは、例えば、公平なコインを弾くことのように、バイアスがないといわれている。
いくつかの実施形態によれば、入力値のバイアスがない文字列を与えられる値のバイアスがある文字列を出力する文字列プロセッサであって、前記文字列プロセッサは、前記入力文字列の一部と符号語集合とを比較し、比較した前記入力文字列の一部が前記符号語集合の中の符号語と一致する場合、出力値を出力する。
実施形態に係る文字列プロセッサは、乱数プロセッサでもよい。
実施形態に係る文字列プロセッサは、処理ボックスでもよい。
実施形態は、バイアスがある出力値の文字列を提供してもよく、出力の数および各出力の前記発生確率は、ユーザによって決定されうる。出力値および各出力値の発生確率は、入力値および/または入力発生確率と異なってもよい。入力値は2進値でもよい。入力値/入力文字列は、バイアスがなくともよい。入力値/入力文字列はランダムであってもよいし、あるいは、入力値/文字列はランダムでなくてもよい。
実施形態は処理部とメモリデバイスとを含んでもよい。処理部は、比較、割り当ておよび出力機能を行ってもよい。メモリデバイスは、符号語集合を格納してもよい。
出力の数および各出力の発生確率は、符号語集合の利用を通じて決定されてもよい。出力文字列は、出力値の任意の数を含んでもよい。実施形態は少なくとも2つの出力値を含む。値の文字列と符号語集合とを比較することは、値の文字列と符号語のそれぞれとを比較することを含んでもよい。符号語の数は、入力文字列、所望の出力確率および計算複雑度に依存してもよい。
各符号語は、単一の入力値、または入力値の組合せでもよい。符号語は、入力値の考慮される文字列ごとに一致した時、出力文字列に関連する出力値が割り当てられてもよい入力値の特定シーケンスであってもよい。各符号語は、各出力値が対応する符号語を有するものとして、出力値に関連付けられてもよい。符号語集合における符号語と比較される入力文字列の一部は、比較文字列であってもよい。比較文字列は、入力文字列からの入力を含んでもよい。比較文字列は、入力文字列からの少なくとも1つの入力を含んでもよい。比較文字列は、入力文字列の部分集合または一部でもよい。比較文字列は、それらのどれも同じであるか確かめるために、符号語集合に包含される符号語と比較されてもよい。
処理部はさらに、前記比較文字列が符号語と一致しない場合、前記入力文字列における次に利用可能な入力を読み込み、前記次に利用可能な入力を前記比較文字列に追加し、利用可能な入力は、前記比較文字列の一部ではない入力である。
比較文字列は、比較ストリングが符号語と比較され一致しないときはいつでも、1の超過入力(次に利用可能な入力)を組み入れてもよい。比較される比較文字列が符号語と一致しない場合、処理部は、入力文字列における次に利用可能な入力を読み込み、比較文字列に次に利用可能な入力を追加し、新しい比較文字列と符号語集合における符号語とを比較してもよい。(ここで追加入力を含む)比較ストリングは、符号語と比較されてもよい。比較文字列が符号語と一致しない場合、次に利用可能な入力が比較文字列に加えられてもよい。比較文字列が符号語と一致するまで、これは無制限に続いてもよい。
したがって、比較文字列は、最初の1+n個の利用可能な入力を含んでもよい。ここで、利用可能な入力は、以前に比較文字列の一部でなく、nは、符号語と一致せずに符号語集合と比較された回数である。比較文字列の一部であった、または一部である入力は、利用可能な入力でなくともよい。そのため、比較文字列は、比較文字列が符号語集合と比較されかつ一致しないごとに増加するxを備える第1x入力を含んでもよい。比較文字列が符号語と一致する場合、一致した符号語が関連する出力値は、出力文字列または出力に割り当てられてもよい。
文字列プロセッサの初期化に際して、次に利用可能な入力iは、入力文字列における最初の入力であり、そのため比較文字列に読み込まれ追加されてもよい。比較文字列iが符号語集合と比較され、符号語と一致しない場合、(ここで次に利用可能な入力である)入力文字列における第2入力ix+1が、比較文字列に追加されてもよい。比較文字列は、ここでix+1である。
処理部はさらに、比較文字列が符号語集合における符号語と一致する場合、比較文字列を破棄してもよい。
符号語と一致している比較文字列は、出力が割り当てられる出力値が破棄され、無視され、初期化されてもよい結果となる。一旦比較文字列が符号語と一致したならば、その比較文字列における入力はもはや比較文字列の一部ではない。比較文字列が破棄されまたは初期化された場合、比較文字列は入力を含まない。入力文字列における次に利用可能な入力はその後、比較文字列における最初の入力である、比較文字列に読み込まれてもよい。
符号語は接頭コード(prefix code)でもよく、符号語は別のものの前置ではない。
出力されるまたは出力に割り当てられることになっている関連した出力と、符号語とが一致しなければならないので、一般的に、符号語が長いほど、符号語が比較文字列と一致する可能性が低く、さらにこの符号語は、関連した出力に出力される可能性が低くなる。
より少数の値を含む符号語は、一般に、より多くの値を含む符号語よりも高い発生頻度を有してもよい。バイアスがない2進の入力文字列で、出力値がそれに関連する単一の符号語のみに有することができる、最も高い発生確率は、0.5である。それゆえ、出力に関する発生確率が0.5を超えるものである場合、1以上の符号語はそれに関連付けられなければならない。これは、2進の入力文字列と同様に、2進でない入力文字列に適用してもよい。これはさらに、バイアスがある入力文字列に関して適用してもよい。
1以上の符号語は、単一の出力値に関連付けられてもよい。このように、各出力値の特定の発生確率は、関連する符号語の注意深い選択によって調整されうる。異なる出力値に対応する符号語の異なる長さおよび数を選択によって、それぞれの出力の確率は異なっているとして特定されうる。それゆえ、バイアスがある出力文字列はバイアスがない入力文字列から得られうる。実施形態では、出力文字列は2つの出力値を含む。出力値の出力確率は、その出力値に対応する符号語の数および長さによって定義され、第1出力値の出力確率は、第2出力値の出力確率よりも大きくてもよい。
特定の出力値に関連する符号語の数の制限はなくてもよい。そのため、実質的に、どんな所望の出力確率または十分に近似した推定は、特定の出力値に関して実現されうる。単一の出力値に関連する1以上の符号語を有することは、ユーザに文字列プロセッサのバイアスを正確に定義させてもよい。具体的に、発生頻度が特定されうる精度を増加させる。
処理部はユーザに符号語集合を定義させてもよい。 ユーザは符号語を設定し、ある出力に、ある符号語を割り当ててもよい。ユーザは符号語集合を定義することができてもよい。ユーザは符号語を定義することができてもよい。ユーザは、符号語の数、長さおよび構成を修正することにより、符号語集合を変更することができてもよい。あるいは、符号語は、文字列プロセッサのアプリケーションに依存して、ある出力に自動的に設定され割り当てられてもよい。
符号木構造は、比較文字列と符号語集合とを比較するために用いられてもよい。処理部は、符号木構造を用いて、比較操作を実行するように構成されてもよい。符号木構造は、ハフマン符号木構造でもよい。
実施形態は、符号木構造を用いて実装されてもよい。符号木構造は、メモリデバイス上に格納され、処理部によって実装されてもよい。符号木構造は、読み込み、書き込み、比較および割り当て機能を実装してもよい。
符号木構造は、符号語の集合と入力文字列の少なくとも一部とを読み込みて比較する効率的な方法として用いられてもよく、比較文字列が符号語と一致する場合、出力文字列に出力値を出力してもよい。符号木構造は一連の読み込みおよび比較操作を含んでもよく、決定木構造は、比較文字列が符号語と一致するまで、比較文字列に追加されたもっとも最近の入力の値を繰り返し決定し、比較文字列と集合とを比較する。
符号木は、コンピュータプログラムによって実装されてもよい。符号木構造は、NANDゲートの大きな集合上で実行されてもよい。符号木構造は、FPGAまたはASIC上で実行されてもよい。
次に利用可能な入力は、比較文字列が符号語と一致しないときの1つまたは各々の決定の後に、比較文字列に追加されてもよい。あるいは、比較文字列が符号語集合の中の符号語と一致するかどうかを決定する1以上の決定ステップを行ってもよい。次に利用可能な入力は、(符号木の特定の実装と同様に、要求される決定は入力文字列における値の数および符号語の数に依存してもよい)2、3または3以上の決定の後に、比較文字列に追加されてもよい。
ハフマン型符号木構造は、本開示に係る実施形態を実装するための効率的な方法を提供してもよい。伝統的に、ハフマン符号木はメッセージを符号化する効率的な方法を導き出すために用いられる。しかし、下記に述べられるように、同じアプローチは本開示のいくつかの実施形態に従って異なるタスクに用いられてもよい。他の実装がさらに適用可能であってもよい。
ハフマン符号木が情報を圧縮し復元するために用いられるとき、符号化されたメッセージのシーケンス順は、符号化と復号化との間で維持される。符号化されるビット順に適用されるどんな崩壊(disruption)または入れ替えも、復号中の誤りをもたらす。そのため、ここに開示されるような実施形態を実装するための(ハフマン符号木のような)符号木を用いて、シーケンス順が重要ではなく、それゆえ悪影響がないさらなる出力文字列で統合されうるあるバイアスがある出力確率を備える出力文字列を提供することは、出力文字列順序付けが崩壊されないまたは入れ替えられないべきである圧縮に関する値の文字列を符号化するための符号木を用いて区別されうる。
実施形態では、入力文字列のシーケンス順は、比較文字列が符号語集合と比較される前に、再配置されまたは崩壊してもよい。出力文字列の順序付けは、文字列プロセッサから出力される前に、再配置されまたは崩壊してもよい。出力文字列における出力値は、それらが出力文字列に割り当てられたものと同じ順序で出力されなくてもよい。入力または出力値の再配置は、そのような再配置が入力または出力文字列におけるシンボルの値に依存しない限り、ここに記述される実施形態の効率に影響しない。
入力文字列は、2進の入力文字列であってもよい。実施形態に係る入力文字列はバイアスがない2進の文字列であるが、他の実施形態では、入力文字列はバイアスがかけられてもよい。入力は、バイアスがある2進の入力文字列、または、2進の入力文字列よりもより値を含む、バイアスがないまたはバイアスがある文字列であってもよい。入力文字列は、バイアスがあるまたはバイアスがない10進または16進の入力文字列でもよい。
入力文字列は、品質評価された2進の入力文字列であってもよい。入力文字列は、品質評価されたランダムな2進の入力文字列であってもよい。いくつかの実施形態では、入力文字列はランダムでなくてもよい。
処理部は、品質評価された2進の入力文字列を受信してもよい。入力文字列は、生成され、操作され、テストされ、または評価されていてもよい。入力文字列は、独立統計的検定またはスイートによって評価されていてもよい。入力文字列は、ランダム値列ではなくむしろ非ランダム値列を含んでもよい。入力文字列は、乱数発生器または文字列生成器の任意の種類によって生成されてもよい。
ここに記述されるいくつかの実施形態は、品質評価された2進の入力文字列を用いてもよい。品質評価された入力文字列は、品質評価入力文字列と呼ばれてもよく、または高品質RNGに由来してもよい。用語「高品質RNG」は、ある種の品質評価の対象である乱数発生器を参照してもよい。適切な品質評価の例は、理想的記述、科学的議論および統計的検定を含んでもよい。入力文字列は、ともに統合される2以上の分離した入力文字列を含んでもよい。入力文字列は、2以上の、結合した文字列からなってもよい。入力文字列は、結合した、乱数発生器および/または品質乱数発生器から2以上の出力からなってもよい。
等しく、本開示に係る複数の文字列プロセッサは、それらの出力(およびそれゆえ出力文字列)が単一の出力文字列を形成するために結合されるように、配置されてもよい。そのような配置は、ある値出力(またはビット)レートが達成されることを保証するように要求されてもよい。
実施形態によれば、乱数発生器は、文字列生成器および文字列プロセッサを含んでもよい。文字列プロセッサは実施形態に従ってもよい。乱数発生器は、バイアスがある出力文字列を出力してもよい。乱数発生器は、ランダムで、バイアスがある出力文字列を出力してもよい。乱数発生器の出力文字列は、文字列プロセッサの出力文字列であってもよい。
文字列生成器の出力文字列は、文字列プロセッサの入力文字列でもよいし、中間文字列と呼ばれてもよい。中間文字列は、バイアスがなくてもよい。中間文字列は、ランダムでもよい。用語「中間文字列」は、明瞭さを保証するために用いられる。文字列生成器の出力文字列は、文字列プロセッサの入力文字列でもよいし、明瞭さのために中間文字列と呼ばれてもよい。中間文字列は中間値を含んでもよい。そのため、中間値は、文字列生成器の出力値および/または文字列プロセッサの入力値を指してもよい。文字列プロセッサの出力文字列は、バイアスがあってもよい。
本実施形態に係る乱数発生器は、少なくとも2つの中間値を含むバイアスがない中間文字列を出力する文字列生成器、および少なくとも2つの値のバイアスがない入力文字列を与えられる第1出力値および第2出力値を含むバイアスがある出力文字列を出力する文字列プロセッサを含んでもよく、前記文字列プロセッサの入力文字列は中間文字列であり、前記文字列プロセッサは、処理部とメモリデバイスとを含み、前記メモリデバイスは、符号語集合を格納し、前記符号語集合は、複数の符号語を含み、各符号語は、少なくとも1つの入力値を含み、各出力値は、少なくとも1つの対応する符号語を有し、前記処理部は、比較文字列と前記符号語とを比較し、前記比較文字列は、前記入力文字列からの入力を含み、前記比較文字列が符号語と一致する場合、出力値を前記出力文字列に割り当て、前記割り当てられた出力値は、前記一致した符号語に対応し、出力値の出力確率は、前記出力値に対応する前記符号語の長さおよび数によって定義され、前記第1出力値の出力確率は、前記第2出力値の出力確率よりも大きい。文字列プロセッサ出力文字列は、乱数発生器出力文字列でもよい。
文字列生成器は、擬似乱数発生器または真の乱数発生器を含んでもよい。文字列生成器は、品質評価された、または品質の、乱数発生器を含んでもよい。文字列生成器は、物理的な現象の測定に由来するランダムな値またはビットの文字列を生産してもよい。測定値は、出力の値を決定するために、1つの閾値または一連の閾値と比較されてもよい。読み込みの文字列は、出力文字列を提供してもよい。
物理的な現象は本質的に、ランダムな原子または素粒子の物理的現象であってもよい。そのような現象の例は、大気雑音、放射性崩壊、熱雑音、ショット雑音、クロックドリフト、電波雑音および/または半透鏡を通過した光子の伝送を含む。
文字列生成器からの出力文字列は、バイアスがない文字列であってもよい。文字列生成器の出力文字列はランダムであってもよい。文字列生成器の出力文字列は2進であってもよい。文字列生成器からの出力文字列は、ともに統合される、多くの文字列を含んでもよい。そのため、中間文字列は、ともに統合される、多くの文字列を含んでもよい。文字列プロセッサの入力文字列は、ともに統合される、多くの文字列を含んでもよい。文字列プロセッサ適用に関してどこでも議論される特徴は、上述されるような乱数発生器の文字列プロセッサに、準用して当てはまる。
実施形態では、メモリデバイスを備えるプロセッサ上で実行される場合、前記プロセッサおよび前記メモリデバイスに文字列プロセッサとして動作させるコンピュータ実行可能な指示を伝達するコンピュータ読み取り可能なキャリア媒体が提供される。
ここに記述されるような文字列プロセッサは、量子鍵配送(QKD)システムで用いるのに適していてもよい。
QKDシステムは光を用いてもよい。ここに開示される実施形態は、光強度値を制御してもよい。ここに開示される実施形態は、QKDプロトコルによって規定される基底の符号化および/または復号化を制御してもよい。特定例は、デコイ状態を備えるBB84プロトコルでもよく、本開示に係る実施形態は、「信号」、「デコイ」および「真空」状態にそれぞれ対応する3つの値u、vおよびwを出力してもよい。これらの出力値のそれぞれに関して、異なる出力頻度で生じることが望ましいかもしれない。そのため、ここに記述されるような文字列プロセッサは、そのようなQKDシステムに用いられてもよい。別の例は、いわゆる「効率的BB84プロトコル」であり、実施形態では、2つの基底、ZおよびX、が用いられてもよい。これらの基底は、異なる発生確率で選択されうる。そのため、ここに記述されるようなRNGが用いられてもよい。さらに、デコイ状態を備える効率的BB84プロトコルを、共同で有することが可能である。この場合、複数の出力シンボル(Zu、Zv、Zw、Xu、Xv、Xw)が、異なる確率で選択されなければならず、ここに記述されるRNGが用いられてもよい。
ここに記述されるような文字列プロセッサは、ランダムイベントをモデル化する際の利用に適しているだろう。例えば、ここに記述されるような文字列プロセッサは、例えば量子散乱をモデル化するといった、ランダムウォーク型の問題をモデル化しまたはシミュレートするために用いられてもよい。ここに記述されるような実施形態は、ユーザに、出力値の数および各値の出力確率のようなあるパラメータを設定し、その後その品質評価されおよび/または品質保証されたランダム入力に基づく振る舞いをモデル化することを可能にしてもよい。これは、現在の技術でのそのようなモデルの信頼性および関連を大幅に増加させるだろう。
ここに記述されるような文字列プロセッサは、運だめしゲームをシミュレートする際の利用に適しているだろう。例えば、ここに記述されるような文字列プロセッサは、カードゲームまたはルーレットをシミュレートするまたはモデル化するために用いられてもよい。
同様に、ここに記述されるような実施形態は、ユーザに、出力値の数および各値の出力確率のようなあるパラメータを設定し、その後その品質評価されおよび/または品質保証されたランダム入力に基づく振る舞いの結果をシミュレートすることを可能にしてもよい。これは、現在の技術でのそのようなシミュレーションの信頼性および関連を大幅に増加させるだろう。
実施形態によれば、少なくとも2つの入力値のバイアスがない入力文字列を与えられる第1出力値および第2出力値を含むバイアスがある出力文字列を出力するための方法であり、前記方法は、比較文字列と前記符号語とを比較し、前記比較文字列は、前記入力文字列からの入力を含み、前記符号語集合は、複数の符号語を含み、各符号語は、少なくとも1つの入力値を含む。各出力値は、少なくとも1つの対応する符号語を有してもよい。比較文字列が符号語と一致する場合、方法は出力値を出力文字列に割り当ててもよく、前記割り当てられた出力値は、前記一致した符号語に対応し、出力値の出力確率は、前記出力値に対応する前記符号語の長さおよび数によって定義され、前記第1出力値の出力確率は、前記第2出力値の出力確率よりも大きい。実施形態に係る文字列プロセッサは、実施形態に係る方法を実装してもよい。そのため、文字列プロセッサが構成されてもよいステップに関する議論は、実施形態に係る方法に準用して適用する。
実施形態に係る方法は、実施形態に係る文字列プロセッサが着手するように構成されてもよいステップのいずれかを含んでもよい。フィールドプログラマブルゲートアレイ(FPGA)は、ここに記述されるような文字列プロセッサとして動作するように構成されてもよい。実施形態によれば、FPGAは、ここに示されるような文字列プロセッサとして動作するように構成されるモジュールを含んでもよい。モジュールは、前記比較文字列における入力の数をモニタする減算カウンタと、前記比較文字列の前記入力の数によって前記入力文字列をシフトするシフトレジスタと、符号木決定構造とを含んでもよく、前記シフトレジスタおよび減算カウンタは、前記符号木決定構造に操作可能に接続される。
モジュールは、前記符号木構造から一致した符号語に関連する前記出力値を、前記モジュールからの出力に割り当てて格納するファーストインファーストアウトメモリ部をさらに含んでもよい。フィールドプログラマブルゲートアレイ(FPGA)またはそのモジュールは、少なくとも1つのシフトレジスタを含んでもよい。シフトレジスタまたは複数のシフトレジスタは、入力文字列を符号木に効率的に入れるために用いられてもよい。フィールドプログラマブルゲートアレイまたはそのモジュールは、減算カウンタを含んでもよい。減算カウンタは、符号木または符号木決定構造、およびシフトレジスタに接続されてもよく、いくつの値が比較文字列にあるかを設定またはモニタしてもよい。減算カウンタは、これらの入力が再利用されないことを保証するために、FPGAが何回待機すべきかを設定してもよい。
FPGAまたはそのモジュールは、ファーストインファーストアウト(FIFO)メモリ部を含んでもよい。FIFOメモリ部は、FPGAから出力される前に、出力データを格納してもよい。ある出力値レートに適合するために、FPGAの入力クロックレートは、出力クロックレートより速い速度、例えば、出力レートが入力レートの半分より大きい場合、出力クロックレートの2倍に設定されてもよい。FPGAは、ここに記述されるような少なくとも2つの文字列プロセッサを含む、または含むように構成されてもよく、少なくとも2つの文字列プロセッサの出力は、単一の文字列に統合されてもよい。
実施形態によれば、FPGAは、第1モジュールおよび第2モジュールを具備してもよく、前記第1モジュールおよび第2モジュールはそれぞれ、ここに開示されるような文字列プロセッサとして動作し、前記第1モジュールおよび第2モジュールの前記出力は、単一の出力文字列に結合される。前記第1モジュールおよび第2モジュールの前記出力は、フィールドプログラマブルゲートアレイ出力レートと入力レートとを一致させるために結合されてもよい。
実施形態によれば、FPGAは、第1モジュールおよび第2モジュールを具備し、前記第1モジュールおよび第2モジュールは、ここに記述されるような第1文字列プロセッサおよび第2文字列プロセッサとして動作し、前記第1モジュールは、前記第1文字列プロセッサの前記比較文字列における入力の数をモニタする第1減算カウンタと、前記第1文字列プロセッサの前記比較文字列における前記入力の数によって前記第1文字列プロセッサの前記入力文字列をシフトする第1シフトレジスタと、第1符号木決定構造と、前記第1符号木決定構造から一致した符号語に関連する前記出力値を前記第1モジュールからの出力に割り当てて格納する第1ファーストインファーストアウトメモリ部と、を具備し、前記第1シフトレジスタおよび前記第1減算カウンタは、前記第1符号木決定構造に操作可能に接続され、前記第2モジュールは、前記第2文字列プロセッサの前記比較文字列における入力の数をモニタする第2減算カウンタと、前記第2文字列プロセッサの前記比較文字列における前記入力の数によって前記第2文字列プロセッサの前記入力文字列をシフトする第2シフトレジスタと、第2符号木決定構造と、前記第2符号木決定構造から一致した符号語に関連する前記出力値を前記第2モジュールからの出力に割り当てて格納する第2ファーストインファーストアウトメモリ部と、を具備し、前記第2シフトレジスタおよび前記第2減算カウンタは、前記第2符号木決定構造に操作可能に接続され、前記第1モジュールおよび第2モジュールの前記出力は、単一の出力文字列に結合される。
前記第1モジュールおよび前記第2モジュールの前記出力は、フィールドプログラマブルゲートアレイ出力レートと入力レートとを一致させるために結合されてもよい。各文字列プロセッサは、処理ブロックまたはモジュールにおいて実装されてもよい。各モジュールは、任意のFIFOメモリ部に加えて、処理部およびメモリデバイスを含んでもよい。各モジュールは、FPGAに関して上述される特徴を含んでもよい。各モジュールは、異なるバイアスがない入力文字列を与えられてもよい。各モジュールは、それ自身のバイアスがない入力文字列を与えられてもよい。各モジュールは、同じバイアスがない入力文字列を与えられてもよい。各モジュールは、少なくとも1つのシフトレジスタを含んでもよい。1つのシフトレジスタまたは複数のシフトレジスタは、符号木に入力文字列を入力するために用いられてもよい。各モジュールは、減算カウンタを含んでもよい。減算カウンタは符号木およびシフトレジスタに接続されてもよく、いくつの値が比較文字列にあるかを設定またはモニタしてもよい。減算カウンタは、これらの入力が再利用されないことを保証するために、各モジュールが何回待機すべきかを設定してもよい。
各モジュールは、ファーストインファーストアウト(FIFO)メモリ部を含んでもよい。FIFOメモリ部は、FPGAから出力される前に、それぞれのモジュールの文字列プロセッサの出力データを格納してもよい。FPGAは、前記第1ファーストインファーストアウトメモリ部および第2ファーストインファーストアウトメモリ部のどちらから前記単一の出力文字列の出力を読み込むかを決定する出力制御部と、前記第1ファーストインファーストアウトメモリ部および第2ファーストインファーストアウトメモリ部からの前記出力を読み込み、前記単一の出力文字列を出力する選択部とをさらに含んでもよい。
FIFOメモリ部は、選択部において他のモジュールまたは複数の他のモジュールからのデータでマージされる前に、各モジュールに出力データを格納するために用いられてもよい。選択部は、FPGAから最終の出力文字列を出力してもよい。選択部は、単一のFPGA出力文字列にモジュールからの2つの出力文字列を統合してもよい。
出力制御部は、「almost empty」信号を含み、用い、作成し、読み込みまたは送ってもよい。「almost empty」の信号または機能は、各モジュールと共に用いられてもよい。almost emptyは、FIFOおよび選択部を接続してもよい。almost emptyは、出力FIFOに格納されたN個のシンボル未満であることを示す。Nは、0(ゼロ)より大きい小さな値であってもよい。
出力制御部は、どちら側を読み込むかを決定するために2つのモジュールからalmost emptyを用いてもよい。一旦、どちら側を読み込むかを決定するために出力制御部がAlmost Emptyを用いた場合、「読み込み(read)」機能は、関連するFIFOメモリの関連する出力値を選択部にいれる。almost emptyは、FIFOに関して空の読み込み(アンダーフロー)を回避するために要求されてもよい。FIFOの条件フラグを更新するために、読み込み動作から有限時間(つまりクロックサイクルの数)かかる。Nは、almost empty更新への読み込みのラウンドトリップのレイテンシによって決定されてもよい。
しかし、FIFOの深さは、十分なデータを予防的に読み込むことによって、アンダーフローを回避するのにかなり十分に選択される。Almost Emptyの利用は、本実施形態において用いられる符号木のどのような利用が、以前の利用から異なるかを示す。Almost Emptyおよび選択部の利用は、単一の出力文字列を提供するためにともに組み込まれる2つ以上のモジュールからの出力文字列をもたらす。これは、必然的に崩壊または個々の文字列の初期シーケンス順の入れ替えまたは崩壊をもたらすだろう。
符号木に基づく圧縮/復元方法の文字列の順序付けの入れ替えまたは崩壊は、誤りをもたらすである一方、ここに示されるような符号木に基づく実施形態で用いられる文字列の順序付けの入れ替えまたは崩壊は、行わない。実施形態では、選択機能、出力の順序付け、または出力文字列によって接続される2つのまたはより多くの並列機能モジュールのおかげで、各機能モジュールに含まれる符号木構造からの出力の順序付けと同じではなくてもよい。
結果として、FPGAからの出力文字列または出力の順序付けは、符号木構造またはモジュールからの出力の順序付けと同じでなくともよい。これは、選択機能によって操作される再配置が文字列中のシンボルの値と独立しているので、ここに記述された実施形態の効能に影響しないだろう。これに反して、符号木に基づく圧縮/復元方法のどんな実装も防ぐだろう。文字列プロセッサのそれぞれは、その自身の入力文字列を受信してまたは含んでもよい。モジュールのそれぞれは、その自身の入力文字列を含んでまたは受信してもよい。1つの、またはそれぞれの入力文字列は、バイアスがあっても、バイアスがなくても、2進または非2進であってもよい。各入力文字列は、バイアスがなく、2進の、高品質RNGであってもよい。
ここに記述されるような文字列プロセッサを含む量子通信システムは、本開示に従う。ここに記述されるようなFPGAを含む量子通信システムは、本開示に従う。
本実施形態によれば、量子通信システムのための送信部であって、前記送信部は、受信部に送信するための複数の量子ビットを生成する量子ビット源と、前記量子ビットの一部の強度を変調する強度変調器と、前記量子ビットの一部の位相を変調する位相変調器と、を含み、前記強度変調器および前記位相変調器は、ここに記述されるような文字列プロセッサからバイアスがある出力文字列を受信する。
実施形態によれば、量子通信システムに関する送信部であって、前記送信部は、受信部に送信するための複数の量子ビットを生成する量子ビット源と、前記量子ビットの一部の強度を変調する強度変調器と、前記量子ビットの一部の位相を変調する位相変調器と、ここに記述されるような少なくとも1つのFPGAと、を含み、前記強度変調器および前記位相変調器は、前記FPGAからバイアスがある出力文字列を受信する。
実施形態によれば、量子通信システムのための受信部であって、前記受信部は、受信した量子ビットを検出する少なくとも1つの検出器と、測定のために前記受信した量子ビットの一部の位相を変調する位相変調器と、を含み、前記位相変調器は、ここに記述されるような文字列プロセッサからバイアスがある出力文字列を受信する。
実施形態によれば、量子通信システムための受信部であって、前記受信部は、受信した量子ビットを検出する少なくとも1つの検出器と、測定のために前記受信した量子ビットの一部の位相を変調する位相変調器と、ここに記述されるようなFPGAと、を含み、前記位相変調器は、前記FPGAからバイアスがある出力文字列を受信する。
実施形態によれば、受信部に送信するための複数の量子ビットを生成する量子ビット源、前記量子ビットの一部の強度を変調する強度変調器、および、前記量子ビットの一部の位相を変調する位相変調器を含む送信部と、受信した量子ビットを検出する少なくとも1つの検出器、および、測定のために前記受信した量子ビットの一部の位相を変調する位相変調器を含む受信部と、を含む量子通信システムであり、前記受信部における前記位相変調器、前記送信部における前記強度変調器および前記位相変調器の少なくとも1つは、ここに記述されるような文字列プロセッサからバイアスがある出力文字列を受信する。あるいは、送信部における強度変調器および位相変調器、および、受信器における位相変調器は、ここに記述されるような文字列プロセッサからバイアスがある出力文字列を受信してもよい。
実施形態では、受信部に送信するための複数の量子ビットを生成する量子ビット源、前記量子ビットの一部の強度を変調する強度変調器、および前記量子ビットの一部の位相を変調する位相変調器を含む送信部を含む量子通信システムであって、前記量子通信システムは、受信した量子ビットを検出する少なくとも1つの検出器、および測定のために前記受信した量子ビットの一部の位相を変調する位相変調器を含む受信部をさらに具備し、前記量子通信システムは、ここに記述されるような少なくとも1つのFPGAをさらに具備し、前記受信部における前記位相変調器、前記送信部における前記強度変調器および前記位相変調器の少なくとも1つは、FPGAからバイアスがある出力文字列を受信する。あるいは、送信部における強度変調器および位相変調器、および、受信器における位相変調器は、FPGAからバイアスがある出力文字列を受信してもよい。
量子通信システムは、ここに記述されるような送信器および受信器を含んでもよい。量子ビットは、光パルスまたは単一光子パルスに符号化されてもよい。量子ビット源は、光パルスまたは単一光子の光源であってもよい。上記強度変調器または位相変調器のうちのどれでも、ここに記述されるようなFPGAまたは文字列プロセッサの出力によって制御されてもよい。例えば、バイアスがある出力値のそれぞれは、ある強度に対応する。そのため、量子ビットは、特定の出力値の出力頻度および確率によって決定される異なる出現頻度を有する各強度で、多くの異なる強度のうちの1つに変調されてもよい(多くの異なる強度は、多くの異なる出力値によって決定される)。
同じことは、位相変調器に準用して適用できる。量子通信システムまたはそれについての送信器または受信器は、強度変調器を含んでもよい。強度変調器は、デコイ状態プロトコルを実装するために用いられてもよい。強度変調器は、量子ビットの一部の強度を変調するために配置されてもよい。強度変調器は、量子ビットの全てを変調してもよい。強度変調器は、多くの異なる要因または量によって、量子ビットを変調してもよい。強度変調器は、どの量子ビットを変調するかをランダムに選択してもよい。ランダム選択は、バイアスがあってもよい。
各量子ビットは、多くの予め定義された強度、「信号」、「おとり」および「真空」状態にそれぞれ対応する3つの強度値{u、v、w}の1つにランダムに変調されてもよい。強度値は、ユーザ{f、f、f}によって決定される発生頻度で生じてもよい。文字列プロセッサまたはFPGAは、ユーザによって決定された発生頻度に従い、強度値のランダム選択を制御または実装してもよい。
量子通信システムまたはそれについての送信器または受信器は、位相変調器を含んでもよい。位相変調器は、量子ビットの一部の位相を変調するために配置されてもよい。位相変調器は、量子ビットの全ての位相を変調するために配置されてもよい。各量子ビットは、位相変調器によって多くの予め定義された位相のうちの1つにランダムに変調されてもよい。各量子ビットは、位相変調器によって2つの位相のうちの1つにランダムに変調されてもよい。各位相変調の発生頻度は、バイアスがあってもよい。発生頻度は、ユーザによって決定されてもよい。送信器および受信器は、位相変調器を有してもよい。
ここに記述されるような同じ文字列プロセッサまたはFPGAは、強度および位相変調の両方を制御してもよい。あるいは、異なる文字列プロセッサまたはFPGAは、各変調器をコントロールしてもよい。量子通信システムは、光の伝達を用いてもよく、文字列プロセッサは、量子通信プロトコルによって規定された基底を符号化しおよび復号化することまたは、光強度値の少なくとも1つ制御してもよい。
量子通信システムは本開示に係る2つの文字列プロセッサまたはFPGAを含んでもよい。あるいは、本開示に係る1つ、3つまたは3つ以上の文字列プロセッサまたはFPGAが、量子通信システムで実装されてもよい。量子通信システムは、受信器に暗号化されたキーを送る送信器を含んでもよい。量子通信システムは、光源または光子源を含んでもよい。量子通信システムは、またはそれについての送信器または受信器は、入力ビームスプリッタを含んでもよい。強度変調パルスは、入力ビームスプリッタによって分割されてもよい。量子通信システムは2つ以上のパスを含んでもよい。1つのパス(「第1パス」)は、位相変調を通過してもよい。位相変調器は、ビームスプリッタの後であってもよい。位相変調器は、特定の位相によって光子をランダムに変調し、それにより、2つの基底{Z、X}のうちの1つを備える光子を出力してもよい。2つの基底間の発生比率は、バイアスがかけられてもよいし、ユーザによって予め決定されてもよい。
本開示に係る文字列プロセッサ、または実施形態に係るFPGAは、基底選択のための位相変調器を制御するために用いられてもよい。位相変調器における基底選択を制御するFPGAまたは文字列プロセッサは、強度変調器を制御する同じFPGAまたは文字列プロセッサであってもよい。あるいは、付加的な文字列プロセッサまたはFPGAは、位相変調器を制御するために用いられてもよい。入力ビームスプリッタからの別のパスは、光学的遅延を通して送られてもよい。量子通信システム、またはそれについての送信器または受信器は、光伝送路および2つの偏光ビームスプリッタを含んでもよい。第1および第2パスからの光パルスまたは光子は、光伝送路および2つの偏光ビームスプリッタを経由して受信器に送られてもよい。送信器の偏光ビームスプリッタは、2つの異なるパスからのパルスまたは光子を偏向し、光伝送路を通過してそれらを送ってもよい。
パルスまたは光子が偏光されるとともに、受信器の偏光ビームスプリッタは、パルスまたは光子の2つのパスを、再び2つのパスに分割し、今回送るパルスまたは光子は、受信器における光学的遅延を介して送信器の位相変調を介して送り、パルスおよび光子は、受信器における位相変調器を介して送信器の位相変調器を介して送られない。受信器の位相変調器は、送信器におけるものと同じ種類であってもよい。受信器の位相変調器は、位相変調を選択することにより、受信パルスまたは光子を測定する2つの基底のうちの1つをランダムに選択してもよい。
送信器の位相変調器と同様に、受信器の位相変調器は、特定の位相で光子をランダムに変調し、それにより、2つの基底{Z、X}のうちの1つで光子を効率的に測定する。2つの基底間の発生比率は、バイアスがあってもよく、送信器の位相変調器での発生比率と等しくなるように、ユーザによって予め決定されてもよい。実施形態に係るさらに(または同じ)文字列プロセッサ配置またはFPGAは、基底選択に関するこの第2位相変調器を制御するために用いられてもよい。受信器における2つのパスは、出力ビームスプリッタで組み合わせられてもよい。量子通信システムは、可変遅延線路を含んでもよい。2つの光学的遅延が適切に結合し、両方の全体経路が同じ遅延を経験することを保証するために、可変遅延線路が受信器における遅延を微調整するために用いられてもよい。量子通信システム、またはそれについての送信器または受信器は、1つ、または1つ以上の光子検出器を含んでもよい。光子検出器は、2つの経路間の干渉を調査してもよく、これらの結果から、キーが抽出されてもよい。
図1は、ここに記述されるいくつかの実施形態の一般的なスキームを概略的に図示する。
値またはシンボルの文字列は、文字列生成器11によって生成される。値またはシンボルの文字列(入力文字列12)は、
で発生する値またはシンボル{s1,,s}を含む。ここで、mは整数であり、
は、入力シンボルsの発生頻度、または確率である。
例えば、
が0.25である場合、平均では、入力文字列中の入力の4分の1はsである。入力文字列12は、いくつかの実施形態において中間文字列と呼ばれてもよい。入力文字列12は、実施形態に係る文字列プロセッサ10に供給される。文字列プロセッサ10は、値またはシンボルのさらなる文字列(出力文字列13)を出力する。
図1の出力文字列13は、
での値またはシンボル{s’1,s’,s’}を含む。ここで、nは整数であり、
は、出力シンボルsの発生頻度または確率である。
例えば、
が0.125である場合、平均で出力文字列中の出力の8分の1はs’である。文字列プロセッサは、
での値またはシンボルの文字列{s,s,...,s}を受信し、この文字列を処理し、
での値またはシンボルの出力文字列を出力する。
ここで、nはmと等しい必要はなく、
は、
と等しい必要はない。
あるいは、nはmと等しくてもよいし、
および/または、
と等しくてもよい。
図2に概略的に図示されるように、文字列生成器11は、高品質RNG14であってもよい。高品質RNGはその後、入力文字列12を生成してもよい。図1に関して記述されるように、図2の文字列プロセッサ10が動作する。
図3は高品質RNG14を概略的に図示する。用語「高品質RNG」14は、ある種類の品質評価18の主題であるRNG16を指す。RNG14の例は、PRNG、物理的RNG、量子的RNGおよびTRNGとして図3に挙げられる。適切な品質評価の例も図3に提供され、理想的な記述、科学的議論および統計的検定を含んでもよい。
様々な統計的解析ツールおよびスイートは、値のバイアスがある文字列での利用のため、一般的に互換性がないか不適当であるけれども、乱数発生器の品質を評価するために存在する。全米標準技術研究所(NIST)によって生産された統計的解析スート、例えば、800−22統計的検定スイートは、「p値」に帰着する15個のテストを含む。各検定に関するp値は、「the probability a perfect RNG would have produced a sequence less random than the sequence that was tested, given the kind of non-randomness assessed by the test" ‘ A. Rukhin, J. Soto, J. Nechvatal, M. Smid, E. Barker, S. Leigh, M. Levenson, M. Vangel, D. Banks, A. Heckert, et al., A statistical test suite for random and pseudorandom number generators for cryptographic applications (2001)」として定義される。
これらのスイートは、バイアスがある文字列で用いられることは想定されない。NISTスイートにおけるバイアスがある文字列を入力することは、失敗結果を出力する。値の文字列のランダム性を評価する方法のさらなる例は、理想的記述および科学的議論方法を含む。また、これらは、バイアスがある文字列での利用によく適していない。「ランダム性抽出器」および「universal-2 functions」のようなツールに基づく科学的議論は、バイアスが大きいほど、推定のために必要なサンプルが多くなるように、バイアスがある文字列での利用がより著しく困難になる。これは、たいていこれらの方法をバイアスがある文字列での利用に適さなくする。そのため、値またはビットのバイアスがある文字列に、品質の統計的に証明されたレベルを提供することは難しい。
科学的議論における例および議論については、「D. Frauchiger, R. Renner, and M. Troyer, (2013), quant-ph/1311.4547v1; and Y. Z. Law, J.-D. Bancal, and V. Scarani, (2014), quant-ph/1401.4243v1」を参照する。
図4aは、文字列生成器11が実際には複数の文字列生成器を含んでも良いことを協調する。例えば、図1の文字列生成器11は、2、3、4または4以上の個別の文字列生成器を含む。
図4bは、図2および図3の高品質RNG14が複数のQ−RNGを含むことができることを協調する。例えば、図2および図3のQ−RNG14は、2、3、4または4以上の個別のQ−RNGを含む。図3のQ−RNG14において、各RNG16は、複数のRNG(例えば1、2、3、4または4以上)を含んでもよく、それぞれは品質評価18を受けてもよく、それゆえ、複数のQ−RNGに帰着する。
図5は、図6の符号木を利用する実施形態に係る文字列プロセッサ17を示す。文字列プロセッサ17は、この場合、2つの値、sとsとを含む値のバイアスがない文字列20を受信する。文字列プロセッサ17はその後、ユーザによって定義される符号語集合24と入力文字列20とを比較するために、図6の符号木を用いた一連のビット単位の読み込み/比較/書き込み動作を始める。一連の読み込み/比較/書き込み動作は、実用目的に用いられる。他の実施形態では、読み込み/比較/書込み動作は、連続していなくてもよい。符号語集合24は、メモリデバイスに格納される。文字列プロセッサは、値と符号語集合24とを比較し、かつ出力文字列に出力値を割り当てる処理部を含む。
入力文字列は、2よりも大きい値を含んでもよい。入力文字列は、3、4または4よりも大きい値を含んでもよい。
図5の文字列プロセッサ17は、値の出力文字列22を出力する。図5の実施形態では、出力文字列22は、3つの値、s’、s’およびs’を含む。しかし出力文字列は、代わりに、2、4または4以上の出力値を含んでもよい。出力文字列は、バイアスがあり、バイアスは、符号語集合24の選択を介して、ユーザによって定義される。本実施形態によれば、符号語集合は、一つの入力または入力の文字列が出力に割り当てられるために用いられる符号語のグループである。これは、図6を参照してさらに説明される。
図6は、読み込み/比較/書き込み操作を行う実施形態の実装を図示する。図6の符号木構造はハフマン符号木に基づく。しかし、ハフマン符号木は、適切な符号木構造の単に一例である。他の符号木実装も適用可能である。
図6の図示される実施形態では、2進法の入力文字列{i6...}はシステムに入力する。図5でのように、入力は値sまたはsを取る。値s’、s’およびs’を含む出力文字列{o...}は、出力として好ましい。図6の符号木構造の利用は、ユーザが特定の出力バイアスを選ぶことを可能にする。これは特定の符号語集合24の選択を介して実現される。
符号語集合24は、出力文字列22に書かれるべき、ある出力値のトリガとなる入力値の(1つ以上の)シーケンス(比較文字列と呼ばれてもよい)を決定する。図6の実施形態では、比較された1つの入力または複数の入力(比較文字列)がsまたはsのどちらかである場合、s’の出力は、出力文字列22に書き込まれる。比較文字列がsである場合、s’の出力は、出力文字列22に書き込まれる。比較文字列がsの場合、s’の出力は、出力文字列22に書き込まれる。この符号語集合は、s’:s’:s’の出力バイアスが6:1:1であることを保証する。したがって、s’、s’およびs’の発生確率は、それぞれ0.75、0.125および0.125である。これは、より詳細に以下に説明する。
図6の符号木は、任意の適切に構成されたコントローラによって実行されてもよい、繰り返しプロシージャを概略的に図示する。本開示の方法を実装するために用いられる特定のハードウェアは、変わってもよい。例えば、図6の符号木の方法は、1組のNANDゲートを含む集積回路によって実装されてもよい。FPGAおよびASICチップは、そのような方法の実装に適するコンポーネントの特定例である。
図6の処理木の完全な繰り返しごとに、出力文字列22に書き込まれることなっている選択された値で終了する。各繰り返しは、出力文字列22に書き込まれる値で終了する。選択された符号語に依存して、各繰り返しは、1つ、または1つ以上の入力を読み込む。本実施形態では、1つ、2つまたは3つの入力は、各繰り返しにおいて読み込まれる。
図6および本実施形態に関して、処理は、処理開始26において、k=1で開始する。各連続した繰り返し、kは、対応する出力28、oを決定する。それゆえ、第1の繰り返しは、第1出力oを決定することになる。処理ステップは、読み込みi(30)、入力文字列20の中の第1入力を読み込むことに着手する。この入力は、まだされていない、またはまだ完了していない比較文字列の一部なので、利用可能な入力である。この入力、次に利用可能な入力は、比較文字列に追加される。一旦iが読み込まれると、決定ステップ32は、i=sであるかどうかを決定する。この決定ステップ32の答えがYesである場合、その後、i=sとなる(34)。この結果と符号語集合24とを比較することは、読み込み入力として対応する符号語を提供する。図6の実施形態の組(セット)は、sの入力がs’の出力に対応することを提供する。その場合には、oはs’にセットされるべきである(36)。値s’はその後、第1出力oとして出力文字列22に書き込まれる。
本実施形態の第1決定ステップ32の答えがNo、i≠sである場合、i=s(38)となる。符号語集合24は、sの符号語を含まず、したがって、次の入力iが読み込まれる。入力iは、ここで次に利用可能な入力であり、したがって、比較文字列に加えられることになる。そのため、入力文字列20における最初の2つの入力は、ここで比較文字列であり、符号語集合24と比較される。次の入力iがsと等しいかどうかのさらなる決定40がなされる。i=s(42)の場合、符号語集合24と比較される入力は、ここでsである。入力文字列sがs’の出力に対応することが、この実施形態の集合24に定義される。そのため、oはs’に設定される(44)。値s’はその後、第1出力oとして出力文字列22に書き込まれる。
本実施形態の第2の決定ステップ40への答えがNo、i≠sの場合、その後、i=sとなる(46)。本実施形態の集合24は、sの符号語を含まず、したがって、次に利用可能な入力iは、比較文字列に読み込まれ追加される必要がある。そのため、入力文字列20の中の最初の3つの入力は、ここで比較文字列であり、集合24と比較される。次の入力iがsと等しいかどうかについてのさらなる決定48がなされる。i=sの場合(50)、集合24と比較される入力は、ここでsである。sの入力文字列がs’の出力に対応することが、この実施形態の集合24に定義される。そのため、oはs’に設定される(52)。値s’はその後、第1出力oとして出力文字列22に書き込まれうる。
本実施形態の3番目の決定ステップ48の答えがNo、i≠sである場合、i=sとなる(54)。比較される入力文字列はここでsであり、符号語集合は、sの入力文字列がs’の出力値にマップすることを定義する。そのため、oはs’に設定されてもよい(56)。値s’はその後、第1出力oとして出力文字列22に書きまれる。
一旦出力oが出力値を割り当てられたならば、比較文字列は廃棄されるか、消去されるか、空にされ、繰り返しループ58は、1ずつkの値を増加させ、再び処理を開始する。同じステップはその後、oに関する値を決定するために行われる。符号語集合24と既に比較されており、出力を決定するために用いられる入力は無視されるべきである。次の入力(つまり、まだ比較されていない第1入力(例えばi))は、次の繰り返し中に読み込まれる。そのため、入力文字列20は出力文字列22を生産するためにビット単位で、読み込まれ比較される。
ここに記述される実施形態に係る方法のようなアルゴリズムの効率は、非常に重要である。効率Eは、出力文字列を生成するために用いられる初期ビットの期待数Cの逆数として定義される。時々、Cを初期ビットの「消費」と呼ぶ。効率Eが高いほど、Cが小さくなる、すなわち、各出力に必要な入力がより少なくなる。符号木の使用、ハフマン木がそのような例の1つであり、高効率Eおよび初期ビットの低い消費Cをもたらす。
ここで開示されるような符号木の効率Eは、式
を用いて計算されうる。
ここで、pは、初期文字列からのnビットが用いられる確率である。
図6の実施形態に関し、3つの出力s’、s’およびs’の消費Cは、以下のようになる。
同じ例に関するエントロピーは、出力シンボルp(s’)=3/4,p(s’)=p(s’)=1/8の確率から計算されうる。
そのため、消費CがエントロピーHに近づくことが、上述した最適化要求(d)によって理解できる。CとHとの間の近似の定量的記述として、それらが2ビット未満で異なる場合、それらが近いと考慮されてもよい。
上で述べたように、本実施形態において、出力バイアスおよび個々の出力発生確率は、ユーザによって設定されてもよい。これは、符号語集合の選択を介して達成される。
入力文字列20がバイアスがない2進の入力であると仮定すると、ある出力に達するために要求されるすべての決定は、特定の入力文字列発生に関する確率を半分にする。さらに、0.5以上の発生確率を設定するために、多重符号語が、単一の出力値に割り当てられてもよい。そのため、バイアスがない2進法の入力文字列および2つのバイアスがない出力値を備えたシステムについては、1つの決定だけが要求され、それゆえ、出力として選択されている各出力値の発生確率は、0.5である。しかし、例えば、2つの出力値、XおよびYが要求される場合、それぞれ0.75および0.25の発生確率で、2つの決定が要求され、符号語は例えば以下のように当てられてもよい。X=1と01、Y=00。
この方法を用いて、出力発生確率の広い範囲が、効率的に得られうる。上に述べたように、図6の符号語集合は、s’:s’:s’の出力バイアスが6:1:1であり、s’、s’およびs’の発生確率が、それぞれ0.75、0.125および0.125であることを保証する。しかし、発生頻度は、本開示に係る実施形態において実質的に任意の目標値に設定されうる。
図7から図9は、バイアスがないバイアス入力文字列で、符号語集合が、任意の所望のバイアスを表すためにどのように選択されうるかを図示する。図7から図9は、決定木構造を概略的に示す。図7から図9の構造における各結合は、図6のように、”i=S?”かもしれない決定を表す。出力値が表現される各線の終端は、その特定値にそれぞれの出力を設定するステップを表す。
図8は、任意のバイアスがない2進入力文字列(図9および図10に関しても維持される推定)、および単一の決定(すなわち、1つの入力の識別)は、2つの可能な出力値s’およびs’のうちの1つとして設定される出力をもたらし、これらの値のそれぞれは、p=2−1の発生確率を有する。これは、関連の入力において零または1を有することの確率、すなわちバイアスがなく、かつ2進文字列が0.5となるからである。
このように、分離を考慮するとき、入力文字列における全ての入力位置で1または0のどちらかが存在する確率は、2−1または0.5である。そのため、次のレベルに移るための決定パスまたは決定のいずれかの次に続く確率は、2−1または0.5である。2回の決定の後に、特定の入力組合せに達する確率は2−2であり、n回の決定の後に、特定の入力組合せに達する確率は2−nである。図7から図9の横線は、それぞれのレベルでの符号木上のある点(例えば、出力値に関する符号語に一致する入力文字列)に達するための確率を表す。
これは、バイアスがないバイナリ入力が用いられる実施形態において、2−nの出力確率およびその倍数が正確に達成されうるを意味する。2−nの倍数以外の出力確率が要求される実施形態に関して、近似が要求される。それに応じて、3つの値のバイアスがない入力文字列が用いられる場合、3−nの出力確率およびその倍数が正確に達成されうる。4つの値のバイアスがない入力文字列であれば、4−nの出力確率およびその倍数が正確に達成されうる。このルールは、可能な入力値の任意の数に適用される。
上述されるように、所望の出力確率が正確に表わされることができないとき、代わりに近似が用いられうる。図8および図9は、そのような近似の例を図示する。
2つの可能な出力値s’およびs’で、それぞれ約2/3および1/3の発生確率が要求されるとき、図8は可能な符号木枝構造を概略的に図示する。破線は、所望の出力確率を正確に達成するようにバイアスを設定するため、決定および枝の無限数が要求されることを図示する。しかし、実用的であるために、その終端でs’を備える破線によって図8に図示されるように、実際の枝構造は、切り詰められうる。決定が実行されるほど、近似がより正確になるが、実際符号木は、計算効率の理由からあるレベルで通常切り詰められる。
図8の切り詰められた枝構造に関する実際の出力確率p(s’)およびp(s’)は、2−1+2−3+2−5+2−6=0.671875および2−2+2−4+2−6=0.328125である。6つの決定または「レベル」だけが用いられるという事実にもかかわらず、これは非常に正確な近似であるとみなせる。
図8の枝構造に関する消費Cは、出力s’およびs’が単一のシンボル出力であると仮定すると、以下の通りである。
初期文字列から2ビット未満が、所望の出力分布を達成するために必要であることを意味する。
これらの値は、目標値に非常に近い。最も低い枝(破線)は左を開放するように、これらの値は1まで追加されない。この枝は、出力確率の精度をさらに向上させるためにさらに決定レベルが続いてもよい。
図9の実装は、10個の入れ子である「IF」条件を用いてもよい。これは、ハードウェア実装におけるメモリの深さにだいたい対応する。
図10は、実施形態にかかるフィールドプログラマブルゲートアレイ(FPGA)60の概略である。図10の実施形態のアーキテクチャは、上述した2つの文字列発生器または2つのQ−RNGによって運ばれる、R0 62およびR1 64と呼ばれる、2つの入力文字列を利用する。これらの2つの入力文字列は、2つの同様のモジュール66および68へ入力される。機能モジュール66および68のそれぞれは、入力文字列62および64のどちらが符号木74に入力されるかの手段として、標準シフトレジスタ70および72を含む。符号木74は、図6の実施形態において図示されるようなハフマン符号木、または代替的な実施形態の符号木に基づいてもよい。減算カウンタ75は、符号木74とシフトレジスタ70および72とに操作可能に接続される。
減算カウンタ75は、電流出力または出力値を決定するために、どれだけの入力または入力変数が、それぞれの入力文字列から用いられたかを設定する。システムはその後、シフトすべき新しいシンボルのその数を待機する。これは、減算カウンタ75とシフトレジスタ70および72とによって実装される。これは、0までカウントダウンすること、または他のいくつかの予め設定された値により実装されうる。これは、出力または出力値を決定するために用いられる入力または入力値が、第2の出力または出力値を決定するために用いられないことを保証する。
FIFOメモリ部は、選択部78において同様の第2モジュール68からのデータでマージされる前に、第1モジュール66に出力データを格納するために、図10の実施形態において用いられる。選択部78はその後最終の出力文字列80を出力する。それは、R0 62およびR1 64の出力の組合せである。
「Almost Empty」は、出力FIFOに格納されたN個のシンボル未満であることを示す。Nは、通常0より大きい小さな値になる。出力制御は、どちら側を読み込むかを決定するために2つのモジュールからAlmost Emptyを用いる。一旦、出力制御がどちら側を読み込むかを決定するためにAlmost Emptyを用いた場合、Read0/Read1は、関連するFIFOメモリの関連する出力値を引き出す。
Almost Emptyは、FIFOに関して空の読み込み(アンダーフロー)を回避するために要求される。FIFOの条件フラグを更新するために、読み込み動作から有限時間(つまりクロックサイクルの数)かかる。Nは、almost empty更新への読み込みのラウンドトリップのレイテンシによって決定されうる(大部分のFPGA/ASICについてNは4未満であり、FPGA/ASICの組み合わせ速度が速く、クロックが遅い場合、それは0でありえる)。しかし、FIFOの深さは、十分なデータを予防的に読み込むことによって、アンダーフローを回避するのにかなり十分に選択されうる。
代替となる実施形態は、単一のモジュールにおいて上記のものを実装してもよい。そのような実施形態は、出力シンボルレートが入力レートの値の半分より大きいと仮定して、出力クロックレートの2倍で入力クロックを設定してもよい。このように、入力および出力スループットは一致するだろう。
図11は、QKDシステムで実装される実施形態に係る2つのFPGA文字列プロセッサ82および84を示す。ここに記述される実施形態に係る2つのFPGAは、図11におけるQKDシステムで実装される。あるいは、実施形態に係る1つ、3つまたは3つ以上のFPGAは、図11のそのようなQKDシステムにおいて実装されてもよい。
図11では、デコイ状態BB84プロトコルの標準的または効率的なバージョンを実装するためのQKDセットアップが描かれる。図11の実施形態は、受信器(ボブ)へ暗号化されたキーを送る、送信器(アリス)が図示される。光源86、または光子源は、その後、強度変調器88を介して渡される光パルスを生成する。強度変調器88は、デコイ状態方法を実装し、光パルスまたは光子はそれぞれ、「信号」、「おとり」または「真空」にそれぞれ対応する、多くの所定の強度{u,v,w}の1つにランダムに変調され、また、これらの所定の強度は、ユーザによって決定された発生頻度{fu,fv,fw}で生じる。文字列プロセッサ、または実施形態に係るFPGA文字列プロセッサ82は、ランダム性の品質保証されたレベルでかつ所定のバイアスで(ある強度にそれぞれ一致する)3つの出力を提供する、強度変調器88を制御するために用いられる。
強度変調されたパルスはその後、入力ビームスプリッタ90によって分割される。1つのパス(「第1パス」)ビームスプリッタ90の後に位相変調器92を通過する。位相変調器92は、特定の位相で光子をランダムに変調し、その後、(この実施形態における)2つ基底{Z,X}の1つで光子を出力する。2つの基底間の発生比率は、バイアスがあるまたはバイアスがなくてもよいし、ユーザによって予め決定されてもよい。前の場合では、BB84プロトコルの効率的なバージョンが実現され、後の場合では、BB84プロトコルの標準バージョンが実現される。ここに開示される発明は、バイアスがない場合を些細な特別の場合として、両方の場合をカバーすることができる。文字列プロセッサ、または実施形態に係るFPGA文字列プロセッサ82は、基底選択に関して位相変調器92を制御するために用いられる。図11の位相変調器92における基底選択をコントロールするFPGA82は、強度変調器88を制御するFPGA82と等価である。あるいは、異なる文字列プロセッサまたは実施形態に係るFPGAは、位相変調器92を制御するために用いられてもよい。
入力ビームスプリッタ90からの第2パスは、光学的遅延93を介して送信される。第1および第2パスからの光パルスまたは光子はその後、光伝送路94およびビームスプリッタ96および98を介して、受信器、ボブへ送信される。アリスの偏光ビームスプリッタ96は2つの異なるパスからの光子または偏光パルスを回転させて結合し、光伝送路94を通ってそれらを送信する。パルスまたは光子が偏光されるとともに、ボブの偏光ビームスプリッタ98はそれらを分離し、彼の干渉計の2つのパスにそれらを向ける。今回、光学的遅延100を介してアリスの位相変調器92を介して送信された光子およびパルス、および、位相変調器102を介してアリスの位相変調器92を介して送信されない光子およびパルスが送られる。このようにして、パルスまたは光子は最終のビームスプリッタ104に同時に到達でき、干渉しうる。
ボブの位相変調器102は、位相変調値を選択することにより、受信パルスまたは光子を測定する2つの基底のうちの1つをランダムに選択する。アリスの位相変調器92と同様に、ボブの位相変調器102は、特定の位相で光子をランダムに変調し、それゆえ、(この実施形態における)2つの基底{Z、X}のうちの1つで、検出器108および110を介して効率的に測定する。2つの基底間の発生比率は、バイアスがかかり、アリスの位相変調器92での発生比率と等しくなるようにユーザによってあらかじめ決定される。実施形態に係るさらなるプロセッサまたはFPGA文字列プロセッサ84は、基底選択に関する第2変調器102を制御するために用いられてもよい。
受信機における2つのパスはその後、出力ビームスプリッタ104で再び組み合わせられる。2つの光学的遅延93および100が適切に結合し、両方の全体経路が同じ遅延を経験することを保証するために、可変遅延線路が受信器における遅延を微調整するために用いられてもよい。
光子検出器108および110はその後、2つの経路上のパルスまたは光子の間の干渉の結果を測定するために用いられ、これらの結果から、キーが抽出されてもよい。例えば、検出器110がクリックする場合、キービット値1が割り当てられうる一方、検出器108がクリックする場合、キービット値0が割り当てられうる。
図12は、品質が証明されるバイアスがない値の入力文字列が与えられる、ここに記述される実施形態に係る文字列プロセッサ10が、
での異なるバイアスがある値{s’1,s’,s’}の文字列13をどのように出力できるか、および、そのような文字列プロセッサ10と、
での値の出力文字列{s’1,s’,s’}を出力するバイアスがある真RNG15とがどのように比較されうるかの概略図である。
図13aは、出力s’およびs’が出力確率p(s’)=15/16およびp(s’)=1/16を有する決定木構造を図示する。上に説明されるように、図13aに図示されるように、これらの確率は、バイナリ入力に関してここに示されるような符号木フォーマットで正確に表わされうる。バイアスがないランダムバイナリ入力に関しては、出力値s’およびs’は、符号語集合s’=0、10、110および1110があり、s’=1111を有することができる。
図13bは、コンピュータプログラムによって得られる予測された数学的分散を表す理想分散と比較される、符号木を用いて達成された図13aに係る実施形態の発生頻度のプロットを示す。確率は、2つの「まれな(rare)」ビット間の間隔に対してプロットされ、システムのバイアスは、1/16である。それに見られるように、2つのデータセット間に非常によい一致がある。
図14は実施形態に係る文字列プロセッサ10を示す。文字列プロセッサ10は、処理部120およびメモリデバイス122を含む。この文書の冒頭で概説されるように、バイアスがない文字列、さまざまなアプリケーションに用いられるのに適すべきランダムビット、文字列は、以下の特性が要求される。
(a)ビットの文字列は、ランダム性の品質の、ある評価可能なレベルに一致しなければならない。
(b)ビットの文字列は、TRNGによって生成されたビットまたは値の比較可能な文字列(例えば、同じ値/ビットレートおよびバイアス)から統計的に判別不能でなければならない。
(c)出力でのビットの発生頻度(すなわち、バイアス)は、ユーザによって選択されたものに近似しなければならない。
更に、付加的な効率最適化要求も考慮されうる。
(d)出力文字列中の各ビットの生成は、平均で出力文字列のエントロピーに近い入力文字列からの多くのビットを用いなければならない。
実施形態に係る値またはビットの文字列に関する3つの必要条件および最適化要求を再検討すると、以下の観測が得られうる。
(a)実施形態に係る文字列プロセッサは、バイアスがないランダム変数の入力文字列に基づく。上に議論されるように、この入力文字列は、品質評価の対象とされうる。実施形態の続く方法は、入力文字列のランダム性に影響せず、そういうものとして、バイアスがある、ランダム変数の出力文字列は、入力文字列のそれと等しい品質を有する。
(b)実施形態の出力の統計的分布は、数学的な理想に近似する。例は、図13bに図示される。2つの分布間の近さは、変動距離(variational distance)または他の標準的統計距離を用いて正確に定量化されうる。
(c)図6から図9に関して上述されるように、発生確率は、ある程度の正確さ内で任意の所望の確率に設定されうる。
(d)符号木フォーマットを用いることにより達成される実施形態の効率は最適である。具体的には、効率は、出力文字列のエントロピーの常に2ビット以内である。
特定の実施形態は、概略的に示される。多くの方法で各実施形態の詳細な実装が達成されてもよいことを認識するだろう。例えば、専用ハードウェア実装が設計され構築されてもよい。一方、プロセッサは、実施形態に関係する上述の文字列プロセッサを実装するために、記憶媒体(例えば磁気、光学、固体物理メモリに基づくデバイス)、または、コンピュータ受信可能な信号(例えば、完全なプログラムのダウンロードまたは既存のプログラムへの「パッチ」更新)のいずれかを手段として伝達されるような、コンピュータプログラムで構成されてもよい。これらの2つの立場に加えて、DSP、FPGAなどのような、多機能ハードウェアデバイスは、コンフィグレーション命令によって構成されうる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行なうことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。

Claims (6)

  1. 量子通信システムに関する送信部であって、前記送信部は、
    受信部に送信するための複数の量子ビットを生成する量子ビット源と、
    前記量子ビットの一部の強度を変調する強度変調器と、
    前記量子ビットの一部の位相を変調する位相変調器と、
    少なくとも2つの入力値のバイアスがない入力文字列を与えられる第1出力値および第2出力値を具備するバイアスがある出力文字列を出力する文字列プロセッサと、を具備し、
    前記文字列プロセッサは、処理部とメモリデバイスとを具備し、
    前記メモリデバイスは、符号語集合を格納し、
    前記符号語集合は、複数の符号語を具備し、各符号語は、少なくとも1つの入力値を具備し、各出力値は、少なくとも1つの対応する符号語を有し、
    前記処理部は、比較文字列と前記符号語とを比較し、前記比較文字列は、前記入力文字列からの入力を具備し、
    前記比較文字列が符号語と一致する場合、出力値を前記出力文字列に割り当て、前記割り当てられた出力値は、前記一致した符号語に対応し、
    出力値の出力確率は、前記出力値に対応する前記符号語の長さおよび数によって定義され、前記第1出力値の出力確率は、前記第2出力値の出力確率よりも大きく、
    前記処理部はさらに、前記比較文字列が符号語と一致しない場合、前記入力文字列における次に利用可能な入力を読み込み、前記次に利用可能な入力を前記比較文字列に追加し、利用可能な入力は、前記比較文字列の一部ではない入力であり、
    前記強度変調器および前記位相変調器の少なくとも1つは、前記文字列プロセッサからバイアスがある出力文字列を受信する送信部。
  2. 量子通信システムのための送信部であって、前記送信部は、
    受信部に送信するための複数の量子ビットを生成する量子ビット源と、
    前記量子ビットの一部の強度を変調する強度変調器と、
    前記量子ビットの一部の位相を変調する位相変調器と、
    少なくとも2つの入力値のバイアスがない入力文字列を与えられる第1出力値および第2出力値を具備するバイアスがある出力文字列を出力するモジュールを具備する少なくとも1つのフィールドプログラマブルゲートアレイと、を具備し、
    前記フィールドプログラマブルゲートアレイは、
    符号語集合を格納し、
    前記符号語集合は、複数の符号語を具備し、各符号語は、少なくとも1つの入力値を具備し、各出力値は、少なくとも1つの対応する符号語を有し、
    比較文字列と前記符号語とを比較し、前記比較文字列は、前記入力文字列からの入力を具備し、
    前記比較文字列が符号語と一致する場合、出力値を前記出力文字列に割り当て、前記割り当てられた出力値は、前記一致した符号語に対応し、
    出力値の出力確率は、前記出力値に対応する前記符号語の長さおよび数によって定義され、前記第1出力値の出力確率は、前記第2出力値の出力確率よりも大きく、
    前記モジュールはさらに、前記比較文字列が符号語と一致しない場合、前記入力文字列における次に利用可能な入力を読み込み、前記次に利用可能な入力を前記比較文字列に追加し、利用可能な入力は、前記比較文字列の一部ではない入力であり、
    前記強度変調器および前記位相変調器の少なくとも1つは、前記フィールドプログラマブルゲートアレイからバイアスがある出力文字列を受信する送信部。
  3. 量子通信システムのための受信部であって、前記受信部は、
    受信した量子ビットを検出する少なくとも1つの検出器と、
    測定のために前記受信した量子ビットの一部の位相を変調する位相変調器と、
    少なくとも2つの入力値のバイアスがない入力文字列を与えられる第1出力値および第2出力値を具備するバイアスがある出力文字列を出力する文字列プロセッサを具備し、
    前記文字列プロセッサは、処理部とメモリデバイスとを具備し、
    前記メモリデバイスは、符号語集合を格納し、
    前記符号語集合は、複数の符号語を具備し、各符号語は、少なくとも1つの入力値を具備し、各出力値は、少なくとも1つの対応する符号語を有し、
    前記処理部は、比較文字列と前記符号語とを比較し、前記比較文字列は、前記入力文字列からの入力を具備し、
    前記比較文字列が符号語と一致する場合、出力値を前記出力文字列に割り当て、前記割り当てられた出力値は、前記一致した符号語に対応し、
    出力値の出力確率は、前記出力値に対応する前記符号語の長さおよび数によって定義され、前記第1出力値の出力確率は、前記第2出力値の出力確率よりも大きく、
    前記処理部はさらに、前記比較文字列が符号語と一致しない場合、前記入力文字列における次に利用可能な入力を読み込み、前記次に利用可能な入力を前記比較文字列に追加し、利用可能な入力は、前記比較文字列の一部ではない入力であり、
    前記位相変調器は、前記文字列プロセッサからバイアスがある出力文字列を受信する受信部。
  4. 量子通信システムための受信部であって、前記受信部は、
    受信した量子ビットを検出する少なくとも1つの検出器と、
    測定のために前記受信した量子ビットの一部の位相を変調する位相変調器と、
    少なくとも2つの入力値のバイアスがない入力文字列を与えられる第1出力値および第2出力値を具備するバイアスがある出力文字列を出力するモジュールを具備するフィールドプログラマブルゲートアレイと、を具備し、
    前記フィールドプログラマブルゲートアレイは、
    符号語集合を格納し、
    前記符号語集合は、複数の符号語を具備し、各符号語は、少なくとも1つの入力値を具備し、各出力値は、少なくとも1つの対応する符号語を有し、
    比較文字列と前記符号語とを比較し、前記比較文字列は、前記入力文字列からの入力を具備し、
    前記比較文字列が符号語と一致する場合、出力値を前記出力文字列に割り当て、前記割り当てられた出力値は、前記一致した符号語に対応し、
    出力値の出力確率は、前記出力値に対応する前記符号語の長さおよび数によって定義され、前記第1出力値の出力確率は、前記第2出力値の出力確率よりも大きく、
    前記モジュールはさらに、前記比較文字列が符号語と一致しない場合、前記入力文字列における次に利用可能な入力を読み込み、前記次に利用可能な入力を前記比較文字列に追加し、利用可能な入力は、前記比較文字列の一部ではない入力であり、
    前記位相変調器は、前記フィールドプログラマブルゲートアレイからバイアスがある出力文字列を受信する受信部。
  5. 受信部に送信するための複数の量子ビットを生成する量子ビット源、
    前記量子ビットの一部の強度を変調する強度変調器、および
    前記量子ビットの一部の位相を変調する位相変調器
    を具備する送信部と、
    受信した量子ビットを検出する少なくとも1つの検出器、および
    測定のために前記受信した量子ビットの一部の位相を変調する位相変調器を具備する受信部と、を具備し、
    前記量子通信システムは、少なくとも2つの入力値のバイアスがない入力文字列を与えられる第1出力値および第2出力値を具備するバイアスがある出力文字列を出力する文字列プロセッサを具備し、
    前記文字列プロセッサは、処理部とメモリデバイスとを具備し、
    前記メモリデバイスは、符号語集合を格納し、
    前記符号語集合は、複数の符号語を具備し、各符号語は、少なくとも1つの入力値を具備し、各出力値は、少なくとも1つの対応する符号語を有し、
    前記処理部は、比較文字列と前記符号語とを比較し、前記比較文字列は、前記入力文字列からの入力を具備し、
    前記比較文字列が符号語と一致する場合、出力値を前記出力文字列に割り当て、前記割り当てられた出力値は、前記一致した符号語に対応し、
    出力値の出力確率は、前記出力値に対応する前記符号語の長さおよび数によって定義され、前記第1出力値の出力確率は、前記第2出力値の出力確率よりも大きく、
    前記処理部はさらに、前記比較文字列が符号語と一致しない場合、前記入力文字列における次に利用可能な入力を読み込み、前記次に利用可能な入力を前記比較文字列に追加し、利用可能な入力は、前記比較文字列の一部ではない入力であり、
    前記受信部における前記位相変調器、前記送信部における前記強度変調器および前記位相変調器の少なくとも1つは、前記文字列プロセッサからバイアスがある出力文字列を受信する量子通信システム。
  6. 受信部に送信するための複数の量子ビットを生成する量子ビット源、
    前記量子ビットの一部の強度を変調する強度変調器、および
    前記量子ビットの一部の位相を変調する位相変調器を具備する送信部を具備する量子通信システムであって、
    前記量子通信システムは、
    受信した量子ビットを検出する少なくとも1つの検出器、および
    測定のために前記受信した量子ビットの一部の位相を変調する位相変調器を具備する受信部をさらに具備し、
    前記量子通信システムは、
    少なくとも2つの入力値のバイアスがない入力文字列を与えられる第1出力値および第2出力値を具備するバイアスがある出力文字列を出力するモジュールを具備する、少なくとも1つのフィールドプログラマブルゲートアレイをさらに具備し、
    前記フィールドプログラマブルゲートアレイは、
    符号語集合を格納し、
    前記符号語集合は、複数の符号語を具備し、各符号語は、少なくとも1つの入力値を具備し、各出力値は、少なくとも1つの対応する符号語を有し、
    比較文字列と前記符号語とを比較し、前記比較文字列は、前記入力文字列からの入力を具備し、
    前記比較文字列が符号語と一致する場合、出力値を前記出力文字列に割り当て、前記割り当てられた出力値は、前記一致した符号語に対応し、
    出力値の出力確率は、前記出力値に対応する前記符号語の長さおよび数によって定義され、前記第1出力値の出力確率は、前記第2出力値の出力確率よりも大きく、
    前記モジュールはさらに、前記比較文字列が符号語と一致しない場合、前記入力文字列における次に利用可能な入力を読み込み、前記次に利用可能な入力を前記比較文字列に追加し、利用可能な入力は、前記比較文字列の一部ではない入力であり、
    前記受信部における前記位相変調器、前記送信部における前記強度変調器および前記位相変調器の少なくとも1つは、前記フィールドプログラマブルゲートアレイからバイアスがある出力文字列を受信する量子通信システム。
JP2017122343A 2014-09-22 2017-06-22 文字列プロセッサ Active JP6397966B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1416735.7 2014-09-22
GB1416735.7A GB2530346B (en) 2014-09-22 2014-09-22 A sending unit, receiving unit and a quantum communications system using a biased string of variables produced using a code-word set

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015161934A Division JP2016071862A (ja) 2014-09-22 2015-08-19 文字列プロセッサ

Publications (2)

Publication Number Publication Date
JP2017215974A JP2017215974A (ja) 2017-12-07
JP6397966B2 true JP6397966B2 (ja) 2018-09-26

Family

ID=51869306

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2015161934A Pending JP2016071862A (ja) 2014-09-22 2015-08-19 文字列プロセッサ
JP2017122343A Active JP6397966B2 (ja) 2014-09-22 2017-06-22 文字列プロセッサ

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2015161934A Pending JP2016071862A (ja) 2014-09-22 2015-08-19 文字列プロセッサ

Country Status (3)

Country Link
US (1) US10095661B2 (ja)
JP (2) JP2016071862A (ja)
GB (1) GB2530346B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10516631B2 (en) * 2016-11-30 2019-12-24 Sap Se Secure messaging between computing components
EP3373507A1 (en) * 2017-03-06 2018-09-12 Kabushiki Kaisha Toshiba Key sharing device, key sharing system, key sharing method and computer-readable medium
EP3399670B1 (en) * 2017-05-03 2021-09-29 Université de Genève Apparatus and method for decoy-state three-state quantum key distribution
CN110995362B (zh) * 2019-12-06 2021-06-08 西安电子科技大学 使用软核处理器的mdi-qkd的编码系统及方法
NL2026302B1 (en) * 2020-08-20 2022-04-14 Hendro Yuniko Setiowaty Johannes String handler and method for handling strings useable for games
GB2601171B (en) * 2020-11-20 2023-05-24 Toshiba Kk System and method to generate biased random bit streams and quantum communication system and method

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3961169A (en) * 1975-03-25 1976-06-01 The United States Of America As Represented By The Secretary Of The Navy Biased-bit generator
JP2770743B2 (ja) * 1994-07-15 1998-07-02 日本電気株式会社 ウエイト制御方式
JPH08305551A (ja) 1995-04-27 1996-11-22 Victor Co Of Japan Ltd 乱数発生装置
US6430586B1 (en) * 1999-06-08 2002-08-06 International Business Machines Corporation Controllable bit stream generator
JP2003131566A (ja) 2001-10-23 2003-05-09 Victor Co Of Japan Ltd ランダム関数演算方法及び演算装置
DE10154532C2 (de) * 2001-11-07 2003-10-23 Advanced Micro Devices Inc Digitalschaltkreis, WLAN-Emulationstestgerät, Digitaldatenerzeugungsvorrichtung und Verfahren zum Erzeugen und Ausgeben von Digitaldaten mit beliebiger Wahrscheinlichkeitsverteilung
GB0603523D0 (en) * 2006-02-22 2006-04-05 Qinetiq Ltd Apparatus and method for generating random numbers
JP5338665B2 (ja) * 2007-07-13 2013-11-13 日本電気株式会社 量子暗号鍵配付システム
GB2476818B (en) * 2010-01-08 2012-04-25 Toshiba Res Europ Ltd Quantum communication system and method

Also Published As

Publication number Publication date
US10095661B2 (en) 2018-10-09
GB2530346B (en) 2017-07-26
GB2530346A (en) 2016-03-23
GB201416735D0 (en) 2014-11-05
JP2017215974A (ja) 2017-12-07
JP2016071862A (ja) 2016-05-09
US20160087796A1 (en) 2016-03-24

Similar Documents

Publication Publication Date Title
JP6397966B2 (ja) 文字列プロセッサ
US11256477B2 (en) Amplifying, generating, or certifying randomness
Frauchiger et al. True randomness from realistic quantum devices
US10007488B2 (en) Secured pseudo-random number generator
Pironio et al. Focus on device independent quantum information
Mannalatha et al. A comprehensive review of quantum random number generators: Concepts, classification and the origin of randomness
Stipcevic Quantum random number generators and their applications in cryptography
Pivoluska et al. Device independent random number generation
Mohammad et al. Statistical analysis for random bits generation on quantum key distribution
Gaglio et al. A TRNG exploiting multi-source physical data
Iavich et al. Hybrid quantum random number generator for cryptographic algorithms
Mogos Quantum random number generator vs. random number generator
JP7214772B2 (ja) バイアスされたランダムビットストリームを生成するためのシステム及び方法並びに量子通信システム及び方法
Bae et al. Semi-source independent quantum walk random number generation
Hughes et al. Strengthening the security foundation of cryptography with Whitewood’s quantum-powered entropy engine
Li Application of the flag-state squashing model to numerical quantum key distribution security analysis
CN115885251A (zh) 随机数量子生成方法,特别是彩票、游戏及用于量子生成随机数的设备
Kaas-Mason et al. Comparison of Pseudo, Chaotic and Quantum Random Number Generators and their use in Cyber Security
Fiorentino et al. Quantum information primitives using linear optics
Chen Quantum randomness certified by different quantum phenomena
Verma et al. Quantum key distribution
Catak et al. 5G-SRNG: 5G Spectrogram-based Random Number Generation for Devices with Low Entropy Sources
Zaveri et al. Chaos Theory and Systems in Cloud Content Security
Singh et al. A random key generation scheme using primitive polynomials over GF (2)
Hina et al. Chaotic pseudorandom sequences and the security of cryptosystems

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180821

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180903

R150 Certificate of patent or registration of utility model

Ref document number: 6397966

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150