JP6720424B1 - 鍵共有デバイス及び方法 - Google Patents

鍵共有デバイス及び方法 Download PDF

Info

Publication number
JP6720424B1
JP6720424B1 JP2019561908A JP2019561908A JP6720424B1 JP 6720424 B1 JP6720424 B1 JP 6720424B1 JP 2019561908 A JP2019561908 A JP 2019561908A JP 2019561908 A JP2019561908 A JP 2019561908A JP 6720424 B1 JP6720424 B1 JP 6720424B1
Authority
JP
Japan
Prior art keywords
polynomial
key
network node
shared
coefficients
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
JP2019561908A
Other languages
English (en)
Other versions
JP2020522912A (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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
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 Koninklijke Philips NV filed Critical Koninklijke Philips NV
Application granted granted Critical
Publication of JP6720424B1 publication Critical patent/JP6720424B1/ja
Publication of JP2020522912A publication Critical patent/JP2020522912A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • 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/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3026Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Electromagnetism (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Abstract

第1の電子ネットワークノード110が、鍵交換KEXプロトコル用に構成されて提供され、第1の電子ネットワークノードは、第2のネットワークノードと共有される共有多項式aを得ることであって、共有多項式aの係数が第1の法qを法として選択される、ことと、秘密鍵多項式sklを生成することであって、秘密鍵多項式の係数が、界sによって絶対値が有界である、ことと、第1の法qを法として、共有多項式aと秘密鍵多項式sklとの多項式積を計算し、多項式積の係数を第2の法pにスケールダウンすることによって、公開鍵多項式pklを生成することと、を行うように構成される。

Description

本発明は、ネットワークノード、鍵共有方法、パラメータ選択デバイス、パラメータを選択する方法、及びコンピュータ可読媒体に関する。
暗号法において、鍵共有プロトコルは、それにより、まだ共通鍵を共有していない2つ以上のパーティがそのような鍵について同意することができるプロトコルである。両方のパーティは、いずれのパーティも選ばれた鍵を強要することができないように、その結果を左右することができることが好ましい。2つのパーティ間の通信すべてを盗聴するアタッカは、この鍵について何も知らないはずである。まだ、その同じ通信を見ているアタッカが何も又はほとんど知らない間に、パーティ自ら、共有鍵を引き出すことができる。
鍵共有プロトコルは、例えば通信を安全にするのに、例えばパーティ間でメッセージを暗号化する且つ/又は認証するのに有用である。
実際の鍵共有プロトコルは、Whitfield DiffieとMartin Hellmanが公開鍵暗号法の概念を紹介した1976年に導入された。彼らは、q元を含む有限体GF(q)にわたって対数を計算する見かけの難しさを利用する、2つのパーティ間の鍵共有用のシステムを提案した。このシステムを使用して、2人のユーザは、対称鍵について同意することができる。それにより、この対称鍵は、2つのパーティ間の例えば暗号化通信に使用され得る。
Diffie−Hellman鍵共有方法など、パーティがまだ共有秘密をもっていないときに適用可能である現在の鍵共有方法は、リソースヘビィな数学演算を必要とする。例えば、Diffie−Hellmanは、有限体にわたってべき乗演算を行うのに、このリソースヘビィな数学演算を必要とする。指数もフィールドサイズも大きいことがある。このことは、鍵共有プロトコルを低リソースデバイスにはあまり適さないものにする。その一方、鍵共有プロトコルは、リソース制限式デバイスには極めて有用であると考えられる。例えば、モノのインターネット、アドホック無線ネットワークなどの適用範囲では、デバイス間のリンクを保護するのに鍵共有が使用される可能性がある。別の例は、リーダと電子タグとの間、例えば、カードリーダとスマートカードとの間、又はタグリーダとタグとの間、例えば、RFIDタグ又はNFCタグとの間の通信である。これは、2つのパーティのうちの少なくとも一方、すなわち電子タグに掛かる負担を小さくする鍵共有プロトコルを有することにとって好都合であり得る。
パーティ間のセキュアな通信を容易にするために、鍵共有プロトコルは、暗号鍵交換(KEX)スキームと暗号鍵カプセル化(KEM)スキームとにさらに細分されることがある。暗号鍵カプセル化(KEM)スキームでは、非対称暗号法を使用して、それぞれのパーティ用の公に知られている(例えば、公開鍵)値と秘密裡に所有する(例えば、秘密鍵)値とを使用して、2つのパーティ間に共有鍵を確立する。
KEMスキームでは、それぞれのパーティによる公開鍵の交換を伴い、公開鍵は、次に、共通の共有秘密を計算するために、それら自身の秘密鍵と併せて、もう一方のパーティによって独立して使用される。KEXスキームのよく知られた例には、そのセキュリティが離散対数問題を解くことに基づいている上述のDiffile−Hellman鍵交換がある。いくつかのKEXスキームの興味深い特徴は、実際の最後の共有秘密が、暗号化形態であっても、パーティ間で決して交換されないが、2つのパーティによって、それぞれの末端で別々に計算されるということである。このことは、それ以降のアタッカによるパーティの長期の秘密鍵の侵害さえも、過去に交換された暗号化メッセージの秘匿性を損なわないことを確実にする前方秘匿性として知られる望ましい特徴をもたらす。
KEMスキームは、一方のパーティによる、普通はその通信の発起側による非対称暗号法の使用で、2つのエンティティ又はパーティ間に共有秘密を確立し、共有秘密を暗号化し(もう一方のパーティの公開鍵を使用して)、応答側として分かっているもう一方のパーティにその共有秘密を送信し、もう一方のパーティは、次に共有秘密を復号してから(自らの秘密鍵を使用して)、それを発起側パーティとセキュアに通信するのに使用することができる。KEMスキームは、過去のセッションでパーティの秘密鍵を侵害し、そのセッションにおいてパーティ間で交換されたメッセージをすべて記録しているアタッカであれば、その特定のセッションの際の共有鍵を回復することができることから、前方秘匿性をもたらすことはできない。
モノのインターネットにおけるセキュリティ要求の高まりにより、鍵交換スキームには、古典的能力と共に量子能力のある敵対側に対して、セキュアも維持しつつ高い効率(すなわち、最小の通信量又は帯域幅の要件)をもたらすことも求められる。
鍵共有プロトコル用に構成された電子ネットワークノードが提供される。電子ネットワークノードは、第1のネットワークノードとし、それが通信する第2のネットワークノードと区別するようにする。
これら及び他の事柄に対処する第1の電子ネットワークノードが提供される。第1の電子ネットワークノードは、例えば、鍵交換(KEM)スキーム又は鍵カプセル化(KEM)スキームであってもよい鍵共有プロトコル用に構成される。第1のネットワークノードは、
−第2のネットワークノードとのデジタル通信用に設けられた通信インターフェースと、
−プロセッサ回路が、
−共有多項式を得ることであって、共有多項式が通信インターフェースを通して第2のネットワークノードと共有され、共有多項式の係数が第1の法qを法として選択される、ことと、
−秘密鍵多項式を生成することであって、秘密鍵多項式の係数が界によって絶対値が有界である、ことと、
−公開鍵多項式を得ることであって、
−第1の法を法として、共有多項式と秘密鍵多項式との多項式積を計算して、多項式積を得ることと、
−多項式積の係数を第2の法にスケールダウンすることであって、スケールされた係数が、第2の法が掛けられ、第1の法で割られ、最も近い整数に丸められたスケールされていない係数に等しく、第2の法が、第1の法よりも小さく、界が、高々第2の法であることと、によって、公開鍵多項式を得ることと、
−第1のネットワークノードの公開鍵多項式を第2のネットワークノードに送信することと、
−第2のネットワークノードの公開鍵多項式を受信することと、
−第2の法を法として、第2のノードの受信された公開鍵と第1のネットワークノードの秘密鍵多項式との多項式積として、生鍵多項式を計算し、生鍵から共有鍵を計算することと、を行うように構成された、プロセッサ回路と、を備える。
秘密鍵多項式が有界であり、公開鍵多項式がスケールダウンされることから、鍵共有の計算及び通信オーバーヘッドが減らされる。さらに、例えば行列の代わりに多項式を使用することによって、計算及び帯域幅オーバーヘッドがさらに減らされる。多項式が、交換可能であり、プロトコルをさらに単純化するのが有利である。実施形態において、使用される多項式は、それらがn係数を有するように、n次多項式、例えば、X^n+1を法としている。通常、秘密鍵多項式は、共有多項式と同じ個数の係数(n)を有するが、これは、必須ではない。例えば、秘密鍵多項式は、共有多項式よりも低い次数又は個数の係数を有する。秘密鍵多項式は、第1のネットワークノードと第2のネットワークノードとで異なる個数の係数を有することさえあり得る。たとえ秘密鍵多項式における係数の個数が共有多項式の係数の個数に等しいとしても、それらがより疎であり得ることに留意されたい。
多項式乗法は、n減次多項式を法とする。選んだ特定の減次多項式にとって利点があり得るが、いずれの減次多項式でもうまくいくであろう。例えば、一実施形態において、減次多項式と共通の除数を何ももたないような共有多項式が選ばれる。この特徴の利点は、公開鍵多項式が、より一様に分散されることにある。減次多項式は、既約として選ばれることもあり得る。後者は、ある程度、選択した減次多項式を制限するが、その一方、共有多項式との相対素数性に対するテストが必要とされないという利点を有する。
法p及びqは、素数である必要はなく、実際には、2の累乗であるのが好ましい。さらに、pがqを割ることがより好ましい。例えば、一実施形態において、第1の法は、ビットサイズとして12以上を有し、且つ/又は、第2の法は、ビットサイズとして7以上を有する。共有多項式がそれほど頻繁に使用されなければ、セキュリティが高められる。共有多項式が公然であり得、少なくとも共有されていることから、アタッカに知られている可能性がある。アタッカは、この利点を使って、この多項式において事前計算を行う可能性がある。この攻撃手段を避けるために、共有鍵多項式の頻繁な変更が好ましい。一実施形態において、一定の回数の鍵共有後、例えば、鍵共有が行われるたびに、新しい共有鍵多項式が取り決められる。また、秘密鍵多項式は、ある頻度で取り替えられてもよい。
切り捨て演算のために、第1のノードと第2のノードとの間のやり取りを観察する攻撃は、ノードによって使用される秘密多項式を再現することができなくなる。その一方、第1のノードは、アタッカよりも情報を持っていることから、共有鍵を引き出す能力があり、第1及び第2のノードは、受信した公開鍵多項式に加えて、それら自身の秘密鍵多項式を有する。
丸めは、第1のノードにおいて計算された生鍵と第2のノードにおいて計算された生鍵との違いを引き起こすことがある。それにも関わらず、この丸めから共有鍵が計算され得る。これを達成するためのいくつかのやり方がある。
一実施形態において、第1のネットワークノードは、
−第2のネットワークノードのヘルパーデータを受信することであって、ヘルパーデータが、第1のノードにおいて引き出された生鍵と第2のノードにおいて引き出された生鍵との違いを相殺する第1のノードと第2のノードとで同じ共有鍵の引き出しを可能にする情報を含む、ことと、
−ヘルパーデータ、及び生鍵多項式の複数の係数から共有鍵を計算することと、を行うようにさらに構成される。この場合、第1のネットワークノードが、ヘルパーデータを生成することに責任を負う可能性がある。また、その反対も可能であり、第1のネットワークノードがヘルパーデータを生成し、第2のネットワークノードがそれを使用する。例えば、一実施形態において、第1のネットワークノードは、
−生鍵多項式の複数の係数から共有鍵及びヘルパーデータを得ることと、
−ヘルパーデータを第2のネットワークノードに送信することと、を行うように構成される。
このように、一実施形態において、発起するノードは、ヘルパーデータに加えて、応答側ノードから、それの公開鍵を受信する。公開鍵のみを使用して、発起するノードは応答するノードが辿り着いたのとほぼ同じ生鍵に辿り着くことができる。ただし、2つの生鍵間には違いがあり得る。
ヘルパーデータは、ネットワークノードに、ネットワークノードがヘルパーデータの送り側が辿り着いたのと同じ共有鍵に辿り着くようにネットワークノードを案内する追加の情報を提供する。ヘルパーデータは、ある種の冗長情報であり得、最終的には、共有鍵そのものでは使用されないのが好ましい。
ヘルパーデータは、秘密鍵から計算されたデータの一部、例えば、生鍵の一部であり得る。ヘルパーデータは、追加のデータ、例えばチェックサムデータ、例えば秘密データから計算されたデータに対して計算されたシンドロームであり得る。例えば、ヘルパーデータは、生鍵に関する、又は共有鍵に関する冗長情報を含む。ヘルパーデータは、1つ又は複数の符号語を加えることによって得られ得る。その代わりとして、ヘルパーデータは、例えば、生鍵に対して、又は共有鍵に対して、誤り訂正符号のいわゆるシンドロームを計算することによって得られ得る。実施形態において、2つの異なるタイプのヘルパーデータである、調停データとカプセル化鍵とが与えられ、これら2つのタイプの加工例が与えられる。
実施形態において、ヘルパーデータは、いわゆる調停データである。例えば、調停データは、生鍵に関する情報を含む。例えば、調停データは、ノードによって引き出された生鍵のビットを含む。調停データは、もう一方のノードが2つの側によって引き出された生鍵間の違いを相殺すること、また同じ共有鍵を計算することを可能にする。
調停データを使用して、第1のノードと第2のノードとにおいて計算された生鍵多項式間の違いが克服され得る。ノードのうちの一方が、調停データを計算し、もう一方がそれを使用する。調停データは、共有鍵を計算するのに使用される係数ごとにわずか1ビットとすることができる。実施形態は、もっと、例えば2ビット以上を使用する。
両方の側において計算された生鍵間の違いを克服するための別の選択肢は、鍵カプセル化を使用することである。カプセル化を通して、共有鍵が保護され、さらに、生鍵間の小さな違いが、脱カプセル化共有鍵間の小さな訂正可能な違いをもたらす。例えば、鍵をカプセル化するには、最初に追加の冗長性を加える。これは、例えば、共有鍵におけるビットを、pを法とする数に写像することによって、例えば、ビット0を0に、ビット1をp/2に写像することによって、行われる。より大規模な写像は、誤り訂正符号、例えば反復符号を使用する。誤り訂正符号の他の例には、アダマール符号、リード−ソロモン符号、BCHなどが含まれる。共有鍵を符号化し、冗長性を加えた後、生鍵は、符号化共有鍵にpを法として加えられ、カプセル化共有鍵を得る。加えることに代えて、他の組合わせ機能、例えば、pを法とする減法が使用される。
ヘルパーデータ、例えば、調停データ、誤り訂正データなどは、生鍵のすべての係数に対して生成又は使用される必要はない。生鍵の係数のすべてが、共有鍵を計算するのに使用されるのが必要であるわけではなく、実際に使用される係数のみが、ヘルパーデータに対して考慮されることが必要である。例えば、一実施形態において、共有鍵は、生鍵の一定の個数の係数及び/又は所定の係数から引き出される。次に、それらの係数に対してのみ、また生鍵多項式のすべてより少ない係数に対してのみ、調停データが得られ、送信され、受信され、且つ/又は適用される。一実施形態において、共有鍵に対して使用される係数は、変わることがある。例えば、第1及び第2のノードのうちの1つ、例えば、発起するノードが、シードをもう一方のノードに送信する。両方のノードは、シードを使用して、ヘルパーデータに対して、また共有鍵に対して、いずれの係数を考慮に入れるかを無作為に決める。
両方のタイプのヘルパーデータに対し、ネットワークノード、例えば応答側ノードは、生鍵多項式の少なくとも複数の係数から共有鍵を得、ヘルパーデータを得るように構成されることに留意されたい。調停データの場合、共有鍵及びヘルパーデータの両方が、生鍵の複数の係数から得られ得る。カプセル化の場合、ヘルパーデータが生鍵及び共有鍵の複数の係数から得られる。複数の係数は、すべて係数であり得る。
実施形態による鍵共有方法の利点は、それらの方法が、スケーリングにより、より小さな帯域幅要件になり、秘密鍵多項式内の係数における界により、計算要件が下がるという点である。例えば、一実施形態において、秘密鍵多項式の係数における絶対値の界が2であり、又は界が1であり、後者は、符号付き二進数に対応する。好ましい実施形態は、1の界を使用し、この場合、係数は、二進数(0又は1)か又は符号付き二進数(0、−1、又は1)であり、後者が最も好ましい。
興味深いことに、たとえ係数の個数そのものがかなり大きいとしても、非ゼロ係数の個数を制限することによって、オーバーヘッドがさらに減らされ得る。例えば、一実施形態において、デバイスが、所定の個数の非ゼロ係数で構成される。この個数は、様々なやり方で強要され得る。例えば、一実施形態において、秘密鍵多項式が、高々この個数の非ゼロ係数で生成される(多項式のハミング重みと呼ばれる)。これは、必須ではないが、秘密鍵多項式が、それに条件が課される前提で可能な限り無作為になる場合、有益である。例えば、所与のハミング重み、及び係数のサイズにおける界により、秘密鍵多項式が、候補秘密鍵多項式から、例えばその界を満たすすべての秘密鍵多項式から、一様に無作為に選ばれる。
ハミング重みを強要するための別のやり方は、確率分布から秘密鍵多項式を選ぶことによってである。確率分布は、秘密鍵多項式用の一定の期待個数の非ゼロ係数を有する。この場合、時には、秘密鍵多項式がわずかに高い又はわずかに低いハミング重みを有するようになることが起こり得る。例えば、一実施形態において、秘密鍵多項式の係数が非一様な確率分布から選ばれ、この場合、ゼロ係数の確率は、非ゼロ係数の確率よりも大きい。
ハミング重みの正確なサイズは、重要な意味をもつようには見えない。特に、係数の個数がより大きい生成サイズの例では、良い選択物は、5で割った係数の個数(0.2n)程度であるように見える。ただし、
Figure 0006720424
が少なくとも、例えば127、又はより好ましくは少なくとも255である条件の下、h(ハミング重み)を最小化することによって、最小のハミング重みを推定することが可能である。
本発明の態様には、良いパラメータ集合を探し出すためのデバイス及び方法が含まれる。
ネットワークノードは、電子デバイスである。例えば、ネットワークノードは、移動電話機、タブレット、又はスマートカード、コンピュータなどの移動電子デバイスである。ネットワークノードは、セットトップボックス、コンピュータ、テレビ、及び類似のものであり得る。本明細書に記載の鍵共有の方法は、様々な実際の用途に適用され得る。このような実際の用途には、インターネット(モノの)におけるセキュリティが含まれる。IKE、TLS、SSHなどのプロトコルが適用され得る。通常、提案されるスキームは、一般のインターネットユースケースでも、リソース制約の環境でも、ポスト量子のセキュアとなる。例えば、2つのノード間の守られた、例えば機密の通信が必要とされるときにはいつでも鍵共有が使用され得る。これは、また、例えば、金融取引を安全にするために、センサネットワークにあり得る。
本発明による方法は、コンピュータ実施式方法としてコンピュータにおいて、又は専用ハードウェアにおいて、又はそれら両方の組合わせにおいて実施され得る。本発明による方法用の実行可能コードは、コンピュータプログラムに格納され得る。コンピュータプログラムの例には、記憶デバイス、光記憶デバイス、集積回路、サーバ、オンラインソフトウェアなどが含まれる。コンピュータプログラム製品が、前記プログラムがコンピュータにおいて実行されるときに、本発明による方法を行うための非一時的プログラムコードを、コンピュータ可読媒体に格納して備えるのが好ましい。
好ましい実施形態において、コンピュータプログラムは、コンピュータプログラムがコンピュータにおいて実行されると、本発明による方法のステップをすべて行うように適合されたコンピュータプログラムコードを備える。コンピュータプログラムは、コンピュータ可読媒体において具現化されることが好ましい。
本発明の別の態様は、ダウンロードに使用可能なコンピュータプログラムを作る方法を提供する。コンピュータプログラムが、例えば、AppleのApp Store、GoogleのPlay Store、又はMicrosoftのWindows Storeにアップロードされるとき、またコンピュータプログラムがこのようなストアからダウンロードされるのに使用可能であるとき、この態様が使用される。
本発明のさらなる細目、態様、及び実施形態が、単に例として、以下の図面を参照して説明される。図中の要素は、単純に分かりやすくするために示され、必ずしも原寸に比例して描かれていない。図では、すでに説明された要素に対応する要素には、同じ参照番号が付いていることがある。
鍵共有ネットワークの一実施形態の一例を概略的に示す図である。 生鍵の一実施形態の一例を概略的に示す図である。 電子鍵交換方法の一実施形態の一例を概略的に示す図である。 一実施形態によるコンピュータプログラムを含む書き込み可能な部分を有するコンピュータ可読媒体を概略的に示す図である。 一実施形態によるプロセッサシステムの表現を概略的に示す図である。 鍵共有ネットワークの一実施形態の一例を概略的に示す図である。 パラメータ選択デバイスの一実施形態の一例を概略的に示す図である。 パラメータ選択方法の一実施形態の一例を概略的に示す図である。
図1、2、5、6a中の参照番号リスト
100 鍵共有ネットワーク
110 発起側型のネットワークノード
120 通信インターフェース
130 共有多項式ユニット
140 秘密鍵多項式ユニット
150 公開鍵多項式ユニット
160 共有鍵ユニット
162 生鍵
164 調停データ(h)
166 共有鍵
210 応答側型のネットワークノード
220 通信インターフェース
230 共有多項式ユニット
240 秘密鍵多項式ユニット
250 公開鍵多項式ユニット
260 共有鍵ユニット
262 生鍵
264 調停データ(h)
266 共有鍵
300 生鍵多項式の係数
301 最上位部分
302 中位部分
303 最下位部分
500 鍵共有ネットワーク
510 発起側型のネットワークノード
520 応答側型のネットワークノード
560 共有鍵ユニット
564 符号化鍵
570 共有鍵ユニット
573 生成された共有鍵
574 符号化共有鍵
576 カプセル化共有鍵
600 パラメータ選択デバイス
602 出力インターフェース
610 パラメータ集合生成装置
620 p、q選択ユニット
630 n、mオプティマイザ
640 オプティマイザ
本発明は、多くの様々な態様において実施形態を受け入れる余地があるが、本開示が、本発明の原理の好例として考えられるべきであり、本発明を図示され説明される特定の実施形態に限定することが意図されるものではないとの理解の下、1つ又は複数の特定の実施形態が図面に示され、本明細書において詳細に説明される。
以下では、より良い理解のために、運用時の実施形態の要素が説明される。しかし、それぞれの要素が、要素によって行われるとして説明される機能を行うように設けられることが理解できるであろう。
さらに、本発明は、これらの実施形態に限定されるものではなく、本発明は、本明細書に記載の又は互いに異なる従属請求項に挙げられるありとあらゆる新規の特徴又は特徴の組合わせにある。
図1は、鍵共有ネットワーク100の一実施形態の一例を概略的に示す。
図1では、システム内の2つのノード、発起側型のネットワークノード110と応答側型のネットワークノード210とが示される。鍵共有システムの実施形態では、ノードの個数が2つよりも多い、さらにもっと多い、例えば、1000ノードよりも多い、例えば10^6ノードよりも多くてもよい。
発起側型のネットワークノードと応答側型のネットワークノードとの違いは、どのように調停データを処理するかにある。発起側型のネットワークノードは、調停データを受信し、共有鍵を得るのに調停データを適用する一方、応答側型のネットワークノードは、調停データを生成し、それを発起側型のネットワークノードに送信する。応答側型のネットワークノードは、共有鍵を得るのに調停データを必要としない。通常、発起側型はまた、これが、2つのネットワークノード間で実行される丸めの回数が減るのにつれて、2つのネットワークノード間で鍵共有プロトコルを開始するようになる。ただし、それは、必須というわけではなく、鍵共有プロトコルは、応答側型のネットワークノードによっても開始され得る。
さらに、ネットワークノードの実施形態では、ネットワークノードは、発起側モードに従って、また応答側モードに従って動作するように構成される。例えば、ネットワークノードが鍵共有を開始する場合、例えば、鍵共有プロトコルの開始を信号で伝えるメッセージを別のネットワークノードに送信する場合、そのネットワークノードは、発起側モードに切り替わる。ネットワークノードが鍵共有に応答する場合、例えば、鍵共有プロトコルの開始を信号で伝えるメッセージを別のネットワークノードから受信する場合、そのネットワークノードは、応答側モードに切り替わる。これは、実際面では都合の良いことであるが、またこの選択肢は、絶対に必要というものではなく、例えば、鍵共有システムでは、発起側ノードとしてのみ構成されるモードもあれば、応答側ノードとしてのみ構成されるモードもある。このことの結果は、いくつかのノードが揃って共有鍵について同意することができないということになる。かなり多くのネットワークノード対が通信することができ、共有鍵について同意することができる限り、いくつかのネットワークでは、例えば、アドホックネットワーク、又はアドホックワイヤレスグリッドなどでは、このことは、問題とする必要はない。
発起側ノード110は、通信インターフェース120を備える。応答側ノード210は、通信インターフェース220を備える。通信インターフェースは、鍵共有システムに、もう一方のノードとのデジタル通信用に設けられ得る。システム内のすべてのノードにいつでも到達することができるが、それは必須ではない。
通信インターフェース120及び220は、デジタル通信用に設けられる。例えば、通信インターフェースは、コンピュータネットワーク上で通信するように設けられる。例えば、通信インターフェースは、無線、例えば、Wi−Fi(登録商標)、ZigBee(登録商標)など、及び/又は有線通信、例えば、イーサネット(登録商標)、USBなど用に設けられる。ノード110とノード210との通信は、無線接続と有線接続との組合わせであってもよい。例えば、ノード110及び120を含む、システム100内のノードは、システム100内でノードを一意に特定する通信識別子を含む電子記憶域を備える。例えば、通信識別子は、例えばメッセージをアドレス指定するために、ノード110とノード210との間で交換されたデジタルメッセージに含まれる。例えば、通信識別子は、IPアドレス、MACアドレスなどである。
一実施形態において、電子ネットワークノードは、鍵交換(KEX)プロトコル用に構成される。プロトコルは、通信インターフェース120及び220にわたってノード110とノード210との間でメッセージを交換すること、また例えばもう一方のノードから受信したデータに対して、計算を行うことに関わる。鍵共有プロトコルの実行は、プロセッサ回路において実施され、その例が下に示される。図1は、プロセッサ回路の機能ユニットであり得る機能ユニットを示す。例えば、図1は、プロセッサ回路の可能な機能組織の青写真として使用される。プロセッサ回路は、図1では、ユニットから分かれて示されてはいない。例えば、図1に示される機能ユニットはまた、全体として又は部分的に、ネットワークノードに格納され、ネットワークノードのマイクロプロセッサによって実行可能であるコンピュータ命令において実施される。
図1に関係した実施形態では、発起側ノード110及び応答側ノード210は、鍵交換(KEX)プロトコル用に構成される。KEXスキームは、それぞれのパーティによる、しばしば公開鍵と言われる公開データの交換に関わり、公開データは、次に、共通の共有秘密を計算するために、しばしば秘密鍵と言われるそれらの秘密データと共に、もう一方のパーティによって、他と無関係に使用される。いくつかの実施形態の興味深い特徴は、実際の最終の共有秘密が、暗号化形態であっても、パーティ間では決して交換されないが、2つのパーティによってそれぞれの末端で、他と無関係に計算されるということである。このことは、それ以降のアタッカによるパーティの長期の秘密鍵の侵害さえも、過去に交換された暗号化メッセージの秘匿性を損なわないことを確実にする、前方秘匿性として知られる望ましい特徴をもたらす。
本発明の実施形態は、機密の通信をもたらすのに、信頼されるサードパーティを当てにはしない。通信インターフェース120と220との間の通信チャネルは、必ずしもセキュアなチャネルである必要はない。アタッカは、通信チャネルを盗聴することができる可能性がある。たとえそうであっても、ノード110と210との間で同意された鍵は、セキュアであり得る。通信チャネルが改造に対して保護されている場合、そのチャネルによって提供される限りにおいて、ある程度の認証が得られる。しかし、通信インターフェース120と220との間のチャネルが改造に対して保護されていない場合、KEXスキームは、何も認証をもたらさないことになる。認証を得るために、実施形態は、例えばいずれの知られている認証機構とも、例えば認定済み公開鍵を使用し、例えば暗黙認証機構、又は、例えばデジタル署名を使用する明示的認証機構とも組み合わせられ得る。
KEKスキームのよく知られた例には、そのセキュリティが離散対数問題を解くことに基づいているDiffie−Hellman鍵交換がある。本発明において、その困難性がいわゆるLearning with Rounding(LWR)問題に基づいている鍵交換機構が規定される。LWR問題の困難性は、LWEインスタンスの個数が有界である場合のいわゆるLearning with Error(LWE)問題の困難性仮定に基づくことがある。LWE問題の平均時困難性が、量子コンピュータにとっては解くのが難しい、ある関連の格子基底問題の最悪時困難性に基づくことから、この鍵交換スキームは、ポスト量子セキュアな鍵共有プロトコルである。実施形態がLWR問題を環で使用するので、この問題をring−LWR問題とも呼ぶ。
Learning with Errors(LWE)問題は、数学的に難問題であり、量子コンピュータ、及びよく理解されたセキュリティに対してさえも、その推定される難しさのためにポスト量子暗号スキームを生じさせる。しかし、それから起こるスキームは、通常、計算複雑性に関しても、通信複雑性に関しても、動作が相当に重い。Learning with Errors(LWE)問題は、以下のように記述され得る。
n次元ベクトルs∈Z 、及び誤り分布Z上のxに対し、LWE分布
Figure 0006720424
上の
Figure 0006720424
が、
Figure 0006720424
からベクトルaを、またxから誤りeを、一様且つ無作為に選び、
Figure 0006720424
を出力することによって、得られる。
探索LWE問題は、
Figure 0006720424
からの任意の多くの独立した標本(a、b)を前提として、
Figure 0006720424
を見つけることである。LWEn、q、x(D)で表される判定LWE問題は、固定s←Dに対して、無視できない利点を有する
Figure 0006720424
上の一様な分布から分布
Figure 0006720424
を見分けることである。
LWR問題は、誤りを挿入する代わりに法「p」による丸めを使用することによって秘密情報を隠し、次に、Z(ここで、qは、元のLWE法)からZにスケールダウンすることによって確定的誤りを導入することによる、LWE問題の「脱ランダム化」バージョンである。
n次元ベクトル
Figure 0006720424
に対して、
Figure 0006720424
上のLWR分布
Figure 0006720424
が、
Figure 0006720424
から一様且つ無作為にベクトルaを選び、
Figure 0006720424
を出力することによって、得られる。
ここで、[x]は、xに最も近い整数とする。探索LWR問題は、探索LWE問題と全く同様な秘密sを見つける観点から定義される。判定LWR問題は、固定s←Dに対して、mインスタンスを有する
Figure 0006720424
上の一様な分布から分布
Figure 0006720424
を見分けることである。探索及び判定LWR問題は、少なくとも、2mBp/qが定数であるような(ここで、Bは、LWE問題における誤りにおける界である)mが有界である場合の対応するLWE問題と同じように困難である。
LWE問題に基づくポスト量子鍵交換スキームは、LWE問題のよく理解されたセキュリティにより幅広い信頼を享受する。しかし、リソース制約の環境において使用されることができる動作が軽いLWEベースの鍵交換スキームは何もない。既存のアルゴリズムには、qを法とする行列乗法、ガウス分布などの確率分布からのサンプリング、及び大きな入力による行列の計算又は送信など、限られたリソースのデバイスにおいて遅い様々な演算が含まれる。
本発明では、2つのパーティは、ほぼ等しいが完全には等しくない2つの多項式を生成する。完全な同意となるために、いくつかの調停データが送信される。そのように行うためのスキームが、出願番号16197277.3で2016年11月4日にEPOにおいて出願された「REACHING AGREEMENT ON A SECRET VALUE」の題の同じ出願者の特許出願に説明され、例えば、ページ7〜10の方法は、本発明による実施形態における調停用に使用される。この引用された特許出願の他の個所に開示された変形形態も採用され得る。
本出願では、以下の3つの関数に対して以下の表記を使用する。
1.丸め関数
Figure 0006720424
:q、b、B∈Z、b≧1、B<logq−bに対して、
Figure 0006720424
とする。すると、
Figure 0006720424
直観的に、
Figure 0006720424
は、
Figure 0006720424
のB最上位ビットを引き出し、
ここで、第2の成分は、不偏丸め誤差を確保する丸め因数である。
2.交差丸め関数
Figure 0006720424
:q、b、B∈Z、b>1、B<logq−bに対して、
Figure 0006720424
とする。すると、
Figure 0006720424
直観的に、
Figure 0006720424
は、
vの(B+b)最上位ビットのb最下位ビットを引き出す。
3.調停関数rec(w、b):
Figure 0006720424
に対して、
Figure 0006720424
ここで、vは、
Figure 0006720424
であるようなwに最も近い元である。
これら3つの関数は、多項式に係数的に適用され得る。
上記の調停関数は、本明細書では一例として使用される。上述のように、上記の出願における調停方法も使用されてもよい。図2は、丸め関数及び交差丸め関数の概略図である。一例として、図2は、生鍵多項式300の係数を示す。係数300は、最上位ビットが左、最下位ビットが右である、ビット列として示される。直観的に、係数に適用される丸め関数は、最上位部分301のBビットに対応し、交差丸め関数は、中間部分302のb次のビットに対応する。最下位logq−B−bは、捨てられてもよい。
発起側ノード110は、共有多項式ユニット130を備える。応答側ノード210は、共有多項式ユニット230を備える。共有多項式ユニット130及び230は、2つのノード間で共有される共有多項式(a)を得るように構成される。共有多項式aの係数は、第1の法qを法として選択された整数である。特に、多項式が必ずしもノード110及び210に対して秘密にされるわけではないということを考えると、ノード110とノード210との間で同じ多項式が共有されるのを確実にするための多くのやり方がある。
例えば、ノードのうちの1つ、例えば発起側110は、例えば共有多項式ユニット130において、qを法とする元を有する多項式aを、例えば無作為に選択する。次に、係数は、通信ユニットを通してもう一方のノード、例えば共有多項式ユニット230に送信される。この場合、後者の共有多項式ユニット230は、多項式を受信し、それを格納するだけとなる。多項式aは、代わって応答側ノード210によって選ばれ、発起側ノード110に送信されることもある。
2つのノードは、協力して多項式aを選ぶこともある。例えば、それぞれのノードが係数のうちのいくつかを選択し、それをもう一方のノードに送信する。例えば、発起側ノードが奇数次係数を選択し、応答側ノードが偶数次係数を選択する、などである。このやり方では、2つのノードのいずれも、最終の多項式aを制御しない。例えば、2つのノードがそれぞれ完全な多項式aを選択し、それをもう一方の側に伝える可能性がある。この後、2つの多項式がqを法として足し算され得る。多項式を送信する最後のノードを有利にさせることを避けるために、選ばれた多項式に対するコミットメントが、最初に前記最後のノードによって送信され得る。
完全な多項式aを送信することのオーバーヘッドを減らすための興味深いやり方は、ランダムシードを生成し、そのランダムシードを、通信チャネルを通してもう一方のノードに送信することである。ランダムシードを受信した後、第1及び第2のネットワークノードは、それを使用して、上記のやり方のいずれかで、多項式aを生成し得る。確定的な疑似乱数生成装置をシードし、今度は、疑似乱数生成装置の出力から多項式(a)を生成するのに同じランダムシードが使用される。上記の通り、それぞれのノードは、例えばaの異なる部分を生成するためにシードを送信することができ、又は、2つのシードが組み合わされる、例えば、足し算される、XORされる、などであってもよく、組み合わされたシードは、aを生成するのに使用され得る。
シードは、例えば、さらなる乱数生成装置、例えば真の乱数生成装置から選択される。ノードはまた、例えば製造時に、乱数リストと共に構成される。この場合、ノードは、新しい鍵共有に対して新しい多項式aが生成されるたびに、リストから次の乱数を選択する。乱数リストが、使い尽くされた場合、乱数リストは、信頼されるソースから補充され得る。
共有多項式が、それ自体が既約なものではない簡約多項式と互いに素であることが望まれる場合、シードから互いに素な共有多項式を生成してもよい。例えば、最初に、ランダム多項式がシードから生成され、次に、簡約多項式と互いに素である多項式の生成の後、ある順番で最初の多項式が選択される。代替として、生成された多項式が簡約多項式と互いに素であるかが確認される。互いに素ではない場合、簡約多項式と互いに素である切り詰め多項式が生成されるまで、新たなシードが生成される。
一実施形態において、第1のネットワークノードは、ランダムシードを生成し、そのランダムシードを、通信チャネルを通してもう一方のノードに送信することによって、共有多項式(a)を得るように設けられ、第1及び第2のネットワークノードは、ランダムシードを使用して、確定的な疑似乱数生成装置をシードし、疑似乱数生成装置の出力から多項式(a)を生成する。
発起側ノード110は、秘密鍵多項式ユニット140を備える。応答側ノード210は、秘密鍵多項式ユニット240を備える。秘密鍵多項式ユニット140は、秘密鍵多項式skを生成するように構成され、秘密鍵多項式ユニット240は、秘密鍵多項式skを生成するように構成される。秘密鍵多項式の係数は、界sによって絶対値が有界な整数である。例えば、秘密鍵多項式における係数は、−s〜sの間で選ばれる(界を含む)。
驚くことに、界を小さく選ぶことで、秘密鍵多項式の場合の多項式乗法が素早くなり、それぞれの側で計算された生鍵間の距離が縮められるという、二重の利点を有することが確認されている(以下参照)。後者は、調停データがそれほど必要とされない且つ/又はノードが異なる鍵に対して同意したことにより、プロトコルにおける失敗の可能性が小さくなるということを意味する。界sは、最大で第2の法が選ばれ、例えば、第2の法以下が選ばれる。この選択は、後で、pを法として乗法することから好都合である。秘密鍵多項式の符号付き係数が許される場合、それを第2の法の高々半分(又はそれより小さい)(p/2)に制限することができる。
界は、第2の法又は第2の法の半分よりも低くてもよく、実際には、通常、それよりも相当に小さく選ばれるようになる。一実施形態において、秘密鍵多項式(sk、sk)の係数の絶対値における界sは、2である(s=2)。すなわち、秘密鍵多項式のすべての係数は、−2、−1、0、1であるか又は2である。多項式aを秘密鍵多項式と掛け合わせるには、1ビット上の加法、減法、及びシフトのみが必要とされる。このような多項式乗法は、このように、極めて効率的に実施され得る。
実施面から、1になるように界を選ぶことによって(s=1)、最高の結果が達成される。すなわち、秘密鍵多項式の係数は、−1、0、及び1の値のみである。これを、「符号付き二進数」とも呼ぶことにする。符号付き二進数における多項式との多項式乗法は、加法及び減法のみを伴う。p又はqを法とする乗法用の乗法ユニットは何も必要とされない。界s=1は、二進数係数、例えば、0又は1のみを使用することによってさらにもっと制限され得るが、実施形態において、係数のうちの少なくともいくつかは1、−1、及び0である。
sに対して他の小さな数も可能であり、例えばs=3の場合、許される係数は、0、1、−1、2、−2、3、−3である。これらの数で掛け算をする際の乗法手順がノードに備えられ得る。例えば、+1、−1は、加算器/減算器によって処理され、−2、+2は、その後に加算器/減算器が続くシフトによって処理され、+3、−3は、シフトされた数及びシフトされていない数の両方を加法/減法することによって処理される。
一実施形態において、秘密鍵多項式は、0、2の累乗、必要に応じて2のマイナス累乗である係数のみを含むが、それは、これらの数が、掛け合わせやすいからである。
一実施形態において、秘密鍵多項式は、正の数も負の数も含む。ただし、秘密鍵多項式を非負の数にさらに制限することも可能である。例えば、秘密鍵多項式の係数が0〜sであってもよい(界を含む)。例えば、s=1を選ぶことによって、後者の場合、乗法演算及び減法演算の両方が避けられる。
最大次数係数が0である場合の複雑さを避けるために、それらの次数の代わりに多項式の係数の個数について述べることにする。共有多項式aの係数の個数をnとすることにする。通常、秘密鍵多項式及び共有多項式は、同じ個数の係数を有することになるが、これは、必須ではない。一実施形態において、秘密鍵多項式も、n個の係数を有する。すべての多項式乗法は、n次多項式を法とする。実際問題として言うと、他の多項式でもうまくと考えられるが、多項式は、x+1であり得る。多項式
Figure 0006720424
の集合が環を形成することに留意されたい。この環は、通常、体にはならず、q及びx+1の両方が合成であり得、通常そうなる。下で述べる丸め演算は、環乗算と両立しない方式で、この環をより小さな環に写像する。数学構造のこの故意の破壊は、分析を難しくし、セキュリティを高める。係数個数nは、共有鍵における十分なビット数を得るのに、また十分に高いセキュリティレベルを得るのに十分大きく選ばれる。
秘密鍵多項式の係数のサイズを制限するのに加えて、非ゼロ元の個数を制限することによって、さらなる利点が得られる。多項式のハミング重みhをその非ゼロ係数の個数とすることにする。
秘密鍵多項式のハミング重みを制限するための様々なやり方が探られてきた。
例えば、秘密鍵多項式のハミング重みに対して上界が選択される。一実施形態において、発起側の秘密鍵多項式と応答側の秘密鍵多項式とは(それぞれ、sk、sk)、同じ一定のハミング重みを有する。
秘密鍵多項式が、例えば、係数における界、及びハミング重みに応じて、候補秘密鍵多項式から、すなわち、選ばれた要件を満たす多項式から一様に無作為に選ばれるといった条件下である場合、セキュリティが高められる。例えば、ハミング重みが50であるという条件を強要することを望む場合、50のハミング重みを有する正しい個数の係数を有するすべての多項式の集合から秘密鍵多項式を選択することに対して好都合である。任意の望ましいハミング重みの一様に無作為のビット列を選択するのに有効なアルゴリズムが知られている。
秘密鍵多項式のハミング重みを制限するための違ったやり方は、確率分布から秘密鍵多項式の係数(sk、sk)を選ぶことである。例えば、秘密鍵多項式の係数(sk、sk)は、非一様確率分布から選ばれ、この場合、ゼロ係数の確率は、非ゼロ係数の確率よりも大きい。一実施形態において、確率分布は、それが所定の期待ハミング重みを与えるように選ばれる。例えば、n個の係数及び期待ハミング重みhを有する多項式を選ぶ際、それぞれの係数を確率h/nを有する非ゼロとして選択し得る。非ゼロ係数は、例えば等しい確率を有する、1又は−1として選ばれ得る。
多項式における小さすぎるハミング重みは、セキュリティに影響を与える可能性がある。例えば、符号付き二進数の場合、
Figure 0006720424
が少なくとも127、より好ましくは少なくとも255であるようなハミング重みhが選ばれる。その理由は、秘密鍵多項式をループさせることによって、総当たり攻撃を実行不可能にするからである。一実施形態において、ハミング重みhは、上記の界を満たすようにできる限り小さい。実際的な実施形態では、より大きなnに対して、係数の個数に比例してハミング重みを選択するだけでよく、例えば、h=αnが、例えばα=0.2で設定される。より一般的には、例えば、0.1<α<0.9が選び取られる。
発起側ノード110は、公開鍵多項式ユニット150を備える。応答側ノード210は、公開鍵多項式ユニット250を備える。公開鍵多項式ユニットは、多項式a及び秘密鍵多項式skから公開鍵多項式を計算する。
公開、秘密といった用語は、共有鍵が、公開情報の知識のみでは得ることができない、又はいくつかの個人情報の知識なしでは得ることができないということを伝える目的のものである。公開情報が積極的に共有されるが、その必要はない。例えば、鍵共有プロトコルが、公開鍵を盗聴者からセキュアに保つ、(推定された)セキュアなチャネル上で実行される可能性がある。この場合、鍵共有プロトコルは、チャネルのセキュリティが破られた場合に追加のセキュリティ層を提供する。
公開鍵多項式ユニットは、第1の法(q)を法として、共有多項式(a)と秘密鍵多項式(それぞれ、sk又はsk)との多項式積を計算し、多項式積を得て、簡約多項式を法として多項式を簡約化し、その結果をスケールダウンすることによって、公開鍵多項式(pk、pk、それぞれ発起側用、応答側用)を計算する。
しかし、この中間の多項式乗法は、明らかにされない。スケールダウンする前の共有多項式a及びこの多項式乗法の結果の知識は、それが、多項式aを割り切れるまで割ることによって、計算され得ることから、秘密鍵を明らかにする可能性がある。公開鍵多項式ユニットによって行われるスケーリングステップは、この選択肢を阻止する。公開鍵多項式ユニットは、多項式積の係数を第2の法pにスケールダウンする。第2の法pは、第1の法qよりも小さい。スケールされた係数は、第2の法(p)が掛けられ、第1の法(q)で割られ、一番近い整数に丸められた、スケールされていない係数に等しい。例えば、xが、多項式積におけるqを法とするスケールされていない係数である場合、スケールされた係数は、
Figure 0006720424
として選択され得、ここで、[]は、一番近い整数を表す。スケーリング演算の後、公開鍵及び多項式aから秘密鍵を計算することの可能性は率直に言えばもうない。
公開鍵多項式の係数は、区間[0、p−1]の整数として表され得る。区間
Figure 0006720424
の係数を選んで、後続の乗法のために整数の大きさを縮小することにとっては利点がある。上で指摘したように、秘密鍵多項式は、区間[−s、s]又は偶数[0、s]において選ばれた係数も有し得る。
多項式aと秘密鍵多項式sとの乗法は、第1の法qを法として行われる。このために、ネットワークノードは、qを法として縮小するためのモジュール式縮小ユニットを備え得る。秘密鍵多項式sの係数が小さい場合、例えば、1で限られる、又は絶対値が1で限られる場合、モジュール式縮小が単純化され、多項式乗法の間、係数がqよりも大きくなる、又は0よりも小さくなるたびに、その結果は、減法又は加法qによって区間0〜q−1に戻される。
発起側ノード及び応答側ノード両方は、例えば通信インターフェース120及び220を使用して、それらの公開鍵多項式をもう一方のノードに送信する。多項式積をスケールダウンすることによって見えてくる少なくとも3つの利点が確認されている。第1に、多項式積の中へのノイズの生成及び明確な付加が避けられることである。ノイズを導入することは、確率分布、例えばガウス分布の計算を必要とする。これは、比較的、計算上、強烈なものである。第2に、通信要件が減らされることである。第2の法pが第1の法qよりも小さいことから、秘密鍵多項式よりも、公開鍵多項式を表すのに必要とされるビットが少なくて済む。第3に、公開鍵多項式を伴う計算が、それがより小さな数に関わることから小さくなることである。ただ1つの方策が同時に3つの利点をもたらすことは驚きである。
第2の法pが第1の法qを割ることが強く好まれる。興味深いことに、第1の法も第2の法も素数である必要がないことが確認されている。事実、2の累乗として第2の法(p)及び/又は第1の法(q)を選ぶことによって、公開鍵と秘密鍵とが一様に分散されるという利点があることが確認されている。一実施形態において、第1の法も第2の法も2の累乗である。
一実施形態において、
Figure 0006720424
が、2の累乗である法p及びqに加えてpを割ることがさらに必要とされる。このことは、調停データに従ったとしても、一様な共有鍵をもたらす。Bは、生鍵の係数ごとに引き出された共有鍵ビット数である。実施形態によっては、生鍵の係数のすべてが使用されるわけではなく、その場合、Bは、使用される係数ごとに引き出された共有鍵ビット数である。
法の大きさは、それほど大きい必要はない。例えば、一実施形態において、第2の法は、ビットサイズとして、12以上を有し、且つ/又は第1の法は、ビットサイズとして8以上を有する。セキュリティ要件に応じて、それより大きい又は小さい大きさが可能である。一実施形態において、qは、212〜216の範囲であり、pは、2〜2の範囲である(両端を含む)。p及びqの値は、セキュリティ要求が命じるままに、より大きい又は小さなものが選ばれ得る。
発起側ノード110は、共有鍵ユニット160を備える。応答側ノード210は、共有鍵ユニット260を備える。共有鍵ユニットは、それらが調停データを生成し、送信するか又は調停データを受信し、適用するという意味において異なる。
共有鍵ユニット160も共有鍵260も、もう一方のノードの受信した公開鍵と、ネットワークノードそのものの秘密鍵多項式との第2の法(p)を法とする多項式積として、生鍵162、262を計算し、その後、簡約多項式を法とする簡約化が続くように構成される。スケーリング演算が省略された場合、両方のパーティが同一の生鍵を計算する可能性があることに留意されたい。すなわち、スケーリングなしで同一の鍵がもたらされ、すべての計算がqを法として行われている。しかし、スケーリングにより、両方の生鍵が同一である必要はない。生鍵を計算することは、pを法として行われる。ネットワークノードは、pを法とする乗法の結果を簡約化するためのモジュール式ユニットを備え得る。
応答側ノード210の共有鍵ユニット260は、生鍵262から共有鍵266及び調停データ264を得るように、また調停データ264を発起側ネットワークノード110に送信するように設けられる。調停データは、生鍵において1つ又は複数のビットの形態を取り得る。調停データとして選ばれたビットは、鍵を生成する目的では無視される。
共有鍵ユニット260は、そこから鍵を形成する生鍵の係数からいくつかのビットを選ぶ。例えば、選ばれたビットは、連結される。一実施形態において、選ばれたビットは、鍵導出関数(KDF)、例えば暗号学的ハッシュ関数に入力される。KDFの例は、例えば、CMLA Technical Specification、Version:V1.43−20131218からのCMLA_KDF、又は「DRM specification」、OMA−TS−DRM−DRM−V2_0_2−20080723−A、Open Mibile Alliance(商標)、Version2.0.2、section7.1.2において定義されたKDF関数などに示される。鍵導出関数は、例えば連結後の、例えば丸め関数によって得られた、又は、例えば、また連結後の調停関数からの出力から得られた、生鍵における鍵ビットの係数に適用され得る。
鍵ビットとして選ばれないいくつかのビットは、調停データとして選択され得る。最終的に、いくつかのビットが、完全に捨てられ得る。一実施形態において、鍵ビットは生鍵係数のMSB部分から選択され、調停データは生鍵係数の中間部分から選択され、生鍵の最下位部分が捨てられ得る。例えば、鍵ビットは、丸め関数を生鍵の係数に適用することによって得られ得、調停ビットは、交差丸め関数を生鍵の係数に適用することによって得られ得る。
共有鍵ユニット260によって生鍵から得られた鍵調停データは、発起側ノード110に送信される。
共有鍵ユニット160は、第2のネットワークノードの調停データ164(h)を受信するように、また調停関数を受信した調停データ及び生鍵多項式162に適用することによって、共有鍵を計算するように構成される。例えば、調停関数は、生鍵162及び調停データの対応する部分の係数のそれぞれに適用される。例えば、調停データ164が応答側ユニット210によって生成された生鍵の一部であった場合、発起側ノードは、ノード210によって得られた可能性があり、受信した調停データと互換性のある、例えば、受信したのと同じ中間ビットを有する、生鍵を選択する。これを行う1つのやり方は、上で定義された調停関数を使用することである。結果として、共有鍵を作り出すのにノード210が使用したのと同じビットが回復される。同じようにビットを連結することによって、又はそれらを同じKDFに入力することによって、同じ共有鍵166が得られる。一実施形態において、共有鍵は対称鍵である。
それほど調停データが必要とされず、ただ1つのビットで十分とすることができる。ただし、調停データビット数を2ビット以上に上げることは、それがプロトコルの失敗の確率を下げることから好都合である。
B及びbに対する典型的な値は、1又は2である。本明細書では、Bは、生鍵係数ごとに引き出された鍵ビット数であり、bは、生鍵係数ごとの調停ビット数である。nとBとの積が、望まれる鍵サイズ以上の大きさになるような、例えばnB≧256になるような係数の個数(n)が選ばれる。
鍵共有プロトコルの複数回の実行の際、多項式a及び秘密鍵多項式のうちの1つを再使用してもよい(その両方が同じであれば、同じ共有鍵が得られる)。このことは、特に多項式aが再使用される場合、通信オーバーヘッドを減らすことになる。しかし、これらの要素につなげられる認証が何もないことから、多項式a及び秘密鍵多項式のいずれも再使用する必要がないことが分かっている。好ましい実施形態において、新しく鍵を交換するたびに、新しい多項式a及び新しい秘密鍵が得られる。これには、アタッカが、プロトコルの複数回の実行を観察することによって、追加情報を観察するという選択肢をもたないという利点がある。さらに、前方秘匿性が高められる。
プロトコルが完了し、両方のノードが共有鍵を計算した後、ノードのうちの1つが、鍵確認メッセージをもう一方のノードに送信し、それらが同じ鍵について同意したことを証明し得る。例えば、鍵確認メッセージは、共有鍵のハッシュ、固定値の暗号化、ランダム値を伴うランダム値の暗号化である。鍵確認はまた、チャレンジレスポンスプロトコルを使用して行われ得る。鍵確認を省略することを選んでもよい。そのパーティが異なる共有鍵を得る場合、それに続いてパーティ間で行われる通信は、うまくいかないことになる。例えば、さらなる通信、例えばデジタルメッセージを暗号化する且つ/又は認証するのに共有鍵が使用される。パーティが異なる共有鍵に辿り着いた場合、暗号解読及び/又は証明がうまくいかない可能性がある。
以下にさらなる特定の有利な実施形態が説明される。本発明を表す基本的なシステムは、これ以降は発起側及び応答側とする2つのエンティティ又はパーティによって実行され得る、これ以降は鍵交換(KEX)スキームとするプロトコルであり、発起側及び応答側のみが分かる共有秘密をそれら自身間に確立するためのものである。この目的のために、発起側及び応答側は、それらがKEXスキームを実行する前に同意しなければならないいくつかの共通システムパラメータ、これ以降それらの秘密鍵とする、それらのそれぞれが所有するいくつかの個人情報、及びこれ以降それらの公開鍵とする、それらのそれぞれが所有するいくつかの公開情報、を使用する。KEXスキームのセキュリティは、そのセキュリティがLearning with Errors(LWE)問題に基づいているLearning with Rounding(LWR)問題に基づき、共有秘密の秘匿性と、発起側の秘密鍵及び応答側の秘密鍵の秘匿性を保護する。
下の例では、秘密鍵多項式は、符号付き二進数である。
KEXスキームの一実施形態は、セットアップ、鍵生成、及び鍵交換の3つの段階から成る。一実施形態において、本鍵交換スキームのこの実施形態の段階は、次の通りである。
・セットアップ:発起側と応答側が以下の正の整数について同意する。
i. q、p:p|qであるような
ii. n及びΦ(X)=X+1 すべての多項式乗法は、この簡約多項式を法とする。
iii. h<n これは、秘密鍵多項式のハミング重みである。
iv. B:最終の共有秘密又は共有鍵を作り出す間に2つのパーティの生鍵の係数ごとに引き出されたビット数
v. b:調停データを作り出す間に2つのパーティの生鍵の係数ごとに引き出されたビット数
vi. a←R:ランダム多項式、ここで、R=Z[X]/(Φ(X))は、整数qを法とする円分環の残余環である。aとΦとが、互いに素であることが好ましい。
・鍵交換:発起側及び応答側両方がそれらの秘密−公開鍵−対を以下のように生成する。
i. 秘密鍵:秘密多項式sk←HWT(h)、例えば、n係数及びハミング重みhを有するランダム多項式
ii 公開鍵:
Figure 0006720424
共通パラメータの選択は、特定のパラメータが所与の識別子に写像される場合、TLS又はIKEなどのプロトコルに一体化され得る。例えば、プロトコル識別子、例えばTLSにおける暗号スイート要素が、共通パラメータを符号化するのに使用される。公開多項式は、例えばハッシュ関数を用いることによって、シードからも導き出される。難しい解法では、発起側が、応答側に送信するいくつかのパラメータを決めることになる。
・鍵交換:この提案された鍵交換スキームである、発起側Iと応答側Rとの間の鍵交換は、三進数成分を含む、丸め及び疎の秘密多項式を使用して、IとRとの間の共有鍵Kの確立に導く。
Figure 0006720424
実施目的では、パラメータnは、都合よく2の累乗である必要があるが、このことは、設計要件ではない。
ハミング重みを選択することは、重大ではないが、S(post−quantum)及び2S(classical)のビットにおける目標とするセキュリティレベルを前提とする。それの係数を推定するための秘密鍵の徹底的な総当たり探索が、十分に高い作業負荷を有することを確実にするためには、秘密鍵ベクトル(それぞれがハミング重みhを有する)における秘密の個数が、以下を満たす必要がある。
Figure 0006720424
ここで、22Sは、Groverの量子−探索アルゴリズムの実行時間であり、2は、古典的探索アルゴリズムの実行時間である。例えば、Sは、128又は256などである。この界は、秘密鍵多項式の係数の絶対値における界が1である場合に当てはまる。より大きな界sに、同様の界が確立され得る。
秘密鍵多項式の選択は、確率的に行われ得る。確率的な秘密鍵生成は、実施を単純にする。秘密鍵に対してh非ゼロ係数を生成する代わりに、秘密鍵sk∈{0、±1}←HWT(h)、及びsk∈{0、±1}←HWT(hを作り出している間、この実施形態におけるそれぞれの第iの秘密鍵係数skは、以下のように作り出される可能性がある。
Figure 0006720424
Figure 0006720424
Figure 0006720424
代替として、この生成が確定的である場合、標準セキュアPRFを使用して以下が行われ得、n位置のベクトルにh非ゼロ元(1又は−1)がある場合、PRFの出力は、PRFが様々な場所でh非ゼロ元を選択するまで、ランダム+1又は−1値と共に、列におけるランダム位置を選択する。例えば、PRF出力は、ブロックの最初の
Figure 0006720424
ビットが非ゼロ元の位置を特定し、ブロックの最後のビットがその元が1であるか又は−1であるかを判断する、
Figure 0006720424
ビットのブロックに分割される。ベクトルは、秘密鍵多項式の係数として使用され得る。
提案された鍵交換には、いくつかの利点がある。
計算上の複雑さ:秘密鍵多項式が疎であり、係数0、1、及び−1を有することから、本スキームにおけるqを法とする計算は、短時間である。特に、多数の係数を有する多項式を伴う乗法(例えば、公開鍵及び生鍵の生成中)が、高度に最適化され得る。
通信の複雑さ:より低い法への丸めの使用により、公開鍵及び生鍵のそれぞれの係数の大きさを縮小することができ、かなり低い帯域幅要件をもたらす。以下の2つの表でこれを量で表し、表には、提案した本スキームの帯域幅要件(それぞれ、丸めを使用する場合と、丸めを使用しない場合の)を説明する。実施形態が、J.Bos、C.Costello、L.Ducas、I.Mironov、M.Naehrig、V.Nikolaenko、A.Raghunathan、D.Stebilaによる、「Frodo:Take off the ring! Practical,Quantum−Secure Key Exchange from LWE」に記載のLWEベースのプロトコルと比較される。
帯域幅は、交換された鍵交換メッセージ(すなわち、公開鍵及び調停データ)の合計サイズとして計算され、公開多項式aの交換を含まない。
上記のLearning with Rrounding(LWR)との組合わせにおける小疎秘密の使用法が、例えば、格子ベースの鍵交換の考案に対して説明される。下で、追加の実施形態を示し、どのようにパラメータが選ばれるかを説明し、いくつかの例が与えられる。整数q≧1に対して、Zを商環Z/qZとする。R=Zq[X]/(Xn+1)を、Xn+1を法とする整数多項式の環と定義する。R=Z[X]/(X+1)を使用して、それぞれの係数がqを法として縮小される、X+1を法とする整数多項式の環を表す。xがR上の確率分布である場合、
Figure 0006720424
は、確率分布xに従ったx∈Rのサンプリングを表す。書き出し
Figure 0006720424
は、多項式のすべての係数又はベクトルaがZ、DZ、qから一様且つ無作為に選ばれることを意味し、ガウスパラメータ
Figure 0006720424
によってパラメータ化され、すべての整数xに
Figure 0006720424
に比例して重みを割り当てることによって定義される、Z上の離散ガウス分布を表す。0<h<n、HWT(h)の場合の整数n、hに対して、確率分布{0、1}から又は{−1、0、1}からの正しくh非ゼロ成分を有するn成分を含む多項式又はベクトルを一様且つ無作為に標本抽出する。それぞれ、最終の共有鍵の調停データの計算と調停の計算とに使用される関数HelpRecOとRecOとは、[1]に定義されるように同じである(参照文献が下に示される)。
アリスとボブ(鍵交換の当事者)によって行われる以下のステップでは、説明上、HWT(h)は、三進数分布{−1、0、1}から標本抽出する。
比較として、NewHope[2]について述べ、way NewHopeは、それのパラメータ[2]を構成する。HewHopeは、Ring LWEに基づく鍵交換スキームである。しかし、NewHopeは、元のガウス分布によく似ている秘密及びノイズ分布を使用する。したがって、公開鍵b=as+e(mod q)が計算される際、又は鍵v’=bs’+e”(mod q)が計算される際、数論変換を使用することを提案する。そのように行う場合、
Figure 0006720424
及び
Figure 0006720424
上で、ハット記号付きの元は、NTTを適用した後のベクトルを表す。
Figure 0006720424
は、直接計算される。また実際には、アリスとボブは、
Figure 0006720424
及び
Figure 0006720424
の係数を交換する。NTTは、Number Theoretic Transform(数論変換)を表す。
NTTは、演算の実施をより短時間にさせるが、NTTはまた、いくつかの要件を提示する。
・nは2の累乗である必要がある。
・qは、q≡1(mod 2n)となるような素数である。
このことは、NewHopeに、nの比較的大きな値、すなわち1024を選ばせると同時に、qを定める。これらのパラメータに対して、NewHopeの作成者は、次に、このスキームが提示するセキュリティレベルを定める。
本発明によって取り組まれる問題は、良好な動作を確保しながら、所与のセキュリティレベルをもたらす小さな構成パラメータを選ぶことができるように、小さな秘密を使用してパラメータを選ぶことである。
NewHope[2]が構成パラメータを開示することに留意されたい。しかし、提案された選択(n=1024)が、その設定では可能であるNTTベースの実施をもたらすように、nが2の累乗である必要があることから、NewHopeの作成者によって提案されたパラメータに代わるものはない。しかし、このことは、セキュリティ理由によってというよりも、むしろNTTの使用法によって課せられる要件である。nの形態に上記の制約を課すことは、所与のセキュリティレベルも提供するために必要であるよりも大きな選択物の結果となる。
本明細書に記載の実施形態は、NTTに良好な動作を達成するよう要求しない丸めとの組合わせにおいて小さな秘密を使用する。このスキームがNTTを必要としないことから、n及びqの値は、NTTによって課せられる制約なしに選ばれ得る。
下には、次の条件を満たすパラメータ(q、p、n)を有する実施形態を開示する。
a)qは、可能な限り小さい。
b)鍵ビットは、pを定める鍵ベクトルのそれぞれの係数から計算され得る。
c)選ばれたq及び最適な個数の標本mとの組合わせにおいて、提供されたセキュリティレベルが少なくともλであることを確実にしながら、nが可能な限り小さい。
システムは、後で、小さな秘密を使用する鍵交換においてアリスとボブによって適用されるパラメータ(q、p、n)を計算する。
Ring LWEベースのKEXのセキュリティ分析は、BKZ格子簡約アルゴリズムへのアクセスを有するアタッカの成功確率を分析することと、主要な攻撃の適合化版を採用して一意SVR問題を解くこととを伴う。この攻撃は、秘密が異常に小さく、さらに、ことによると疎でもあるという事実につけ込むために、アタッカによって適合される。この適合は、アタッカが探し求める一意の最も短いベクトルにおける秘密成分とノイズ成分との食い違いを、格子簡約を使用して同一視するために、格子スケーリングを使用して行われ、[3]に詳述される手法によって引き起こされる。
この適合化主要攻撃の成功確率を分析することは、アルゴリズム内のSVP予言の1回の呼び出しを前提とし、cが、どの発見的評価がすでにあるかについての実験的定数である2cbCPUクロックサイクルの実行時間を有する、所与のブロックサイズbのBKZ格子簡約の所与のインスタンスによって攻撃され得ないnの最も小さな値を与える。
下に、所与のセキュリティレベルλをもたらすために、標本の最適な個数mに対して、鍵ベクトルの係数ごとの鍵ビットの生成を可能にする最も小さなパラメータ(q、p、n)を見つけるためのアルゴリズムを説明する。一実施形態において、このアルゴリズムは、目標のセキュリティレベルλが与えられるサーバにおいて、又はアリスにおいて、又はボブにおいて実行される。セキュリティレベルが与えられると、彼らは、後に交換され、鍵交換プロトコルにおいて使用される対応する構成パラメータを計算する。
Figure 0006720424
Figure 0006720424
Figure 0006720424
Figure 0006720424
Figure 0006720424
後者の格子アルゴリズムは、qの様々な値に対して、n及びpに適切な値を生み出す。次に、例えば、低い帯域幅要件を有するパラメータを選び取るために、qについての最適化が行われ得る。pが一番可能性のある実施では2の累乗である必要があることが好ましい。
Figure 0006720424
(可能な限り大きい)を満たす、2の累乗としてのpを選ぶことの代わりに、p値にわたってループさせることもできる。特に、pもqも2の累乗である場合である。
pが、行った調停成功条件分析が正しいように(条件の計算におけるステップのうちの1つがこの要件を必要とする)、qの因数である必要があることが好ましい。この条件は、(1)が満たされれば、自動的に満たされる。セキュリティ:比率q/pは、丸み誤差のバラツキが等価ガウス誤差のバラツキとほぼ同じであるように十分に大きい必要がある。
LWRの場合の小さな秘密に基づくKEXの利点:鍵交換における秘密鍵が小さな成分(三進数又は二進数)から成っているので、(X+1)を法とする多項式乗法は、[1]で行われるような数論変換(NTT)領域における多項式の演算を必要としなくても効果的に進められ得る。
この理由により、セキュリティ分析によって決定付けられる制限以外は、n及びqの値にそれ以上制限が課されることはない。また、LWRを使用することが実現可能である(NTTの場合は実現可能ではない)。重要な利点は、このように、帯域幅要件を減らすnのより小さな値が選ばれ得ることである。
Newhope Ring−LWEベースの鍵交換スキーム用の帯域幅は、以下のように計算される。
Figure 0006720424
sp−terRing−LWEベースの鍵交換スキーム用の帯域幅は、以下のように計算される。
Figure 0006720424
パラメータbは、調停データ多項式rの各成分の作成に向けて、ボブの生鍵多項式v’の成分ごとに引き出されたビット数に相当し、[1]により向上した調停機構に基づき、上記の鍵交換及びセキュリティレベルのすべてに対して、2として取られる。
NewHopeのパラメータと本手法を比較する際、以下の場合を考慮する。
a)nに制約がなければ、ただしNewHopeの場合と同じqに対してだが、Ring−LWRでは、疎な三進数秘密に対して動作が向上する。
表1は、BKZ−bを実行するコストが少なくとも2128であり、鍵共有失敗確率が高々2−60であるようなブロックサイズ「b」のBKZを使用する主要攻撃を受けやすいRing−LWRの最も大きな問題次元である。ノイズ多項式は、標準偏差
Figure 0006720424
の離散ガウス分布から標本抽出される。sp−terRing−LWRにおける秘密多項式のハミング重みは、0.2nである。帯域幅は、[1]に基づき計算された調停データを含んで計算される。
Figure 0006720424
しかし、qのこの値に対して、[1]の場合と同じ鍵調停を行うことは実現不可能である。
b)NewHopeにおいて使用される(n、q)に制約を課さなければ、Ring−LWRでは、疎な三進数秘密に対して動作が向上する。
表2は、BKZ−bを実行するコストが少なくとも2128であり、鍵共有失敗確率が高々2−60であるようなブロックサイズ「b」のBKZを使用する主要攻撃を受けやすいRing−LWRの最も大きな問題次元である。sp−terRING−LWRにおける秘密多項式のハミング重みは、0.2nである。帯域幅は、[1]に基づき計算された調停データを含んで計算される。
Figure 0006720424
[1]における鍵調停方法を適用できるように、2の累乗に等しいqの値を使用することに留意されたい。動作を向上させるために、他に2の累乗に等しいpの値を使用することに留意されたい。
Newhope Ring−LWRベースの鍵交換スキーム用の帯域幅は、以下のように計算される。
BandwidthNewhope=(2・1024・[log12289])+(256・8)
terRING−LWRベースの鍵交換スキーム用の帯域幅は、以下のように計算される。
BandwidthterRING−LWR=(2・n・[logp])+(keylength・b
sp−terRING−LWRベースの鍵交換スキーム用の帯域幅は、以下のように計算される。
Bandwidthsp−terRING−LWR=(2・n・[logp])+(keylength・b
パラメータbは、調停データ多項式rの各成分の作成に向けて、ボブの生鍵多項式v’の成分ごとに引き出されたビット数に相当する。
NTTによってパラメータに対する制限を取り除くことにより、セキュリティ及び演算上の正確さの分析を最適化することに柔軟性を与えることができる。計算されたパラメータの場合、ポスト量子セキュリティレベルに対し、丸めを使用するときのNewhope鍵交換スキームに比べ0.41倍の帯域幅しか必要としない。さらに、NTTをやめることは、疎な小さな秘密を巧みに利用するように最適化された実施態様を前提とすれば、動作における目立った落ち込みを何ら引き起こさない。
1. 2016年11月4日、出願番号16197277.3で欧州特許庁に出願された、L.Tolhuzen、O.Garcia Morchon、R.Rietmanによる「Reaching agreement on a secret value」、Fist filing、Phillips参照番号2016P01227EP
2. E.Alkim、L.Ducas、T.Poeppelmann、P.Schwabe、「Post−quantum key−exchange−a new hope」、Cryptology ePrint Archive、Report2015/1092、https://eprint.jacr.org/2015/1092.pdf.
3. S.Bai、S.D.Galbraith、「Lattice Decoding Attacks on Binary LWE」、Cryptology ePrint Archive、Report2013/839、https://eprint.jacr.org/2013/839.pdf.
図6aは、パラメータ選択デバイス600の一実施形態の一例を示す。デバイス110、210、510、520のように、デバイス600も、プロセッサ回路及び電子メモリを備えることができ、前記電子メモリは、プロセッサ回路により実行可能なコンピュータコードを格納する。前記コンピュータコードは、デバイスを構成し、例えば、対応する方法を実施する。代替の実施形態が、ハードウェアにおいて、又はハードウェアとソフトウェアとの混成物において、その機能性のすべて又は一部を具体化してもよい。以下、デバイス600のユニットが定義され、ユニットは、ソフトウェア/ハードウェアなどにおいて具体化され得るユニットと見なされ得る。デバイス600は、ネットワークノードにおける使用向けに、パラメータを選択するように構成される。具体的には、パラメータp、q、及びnだけではなく、他のパラメータ、例えばh又はBなども最適化され得る。デバイス600は、暗号プロトコルの考案者によって使用され得るが、デバイス600は、本明細書に記載のような1つ又は複数の鍵共有プロトコルを実行する前に、ハンドシェイクの一部としても使用され得る。
デバイス600は、2つのステップにおいて最適化を行う。最初に、複数のパラメータ集合が生成される。次に、例えば、望ましい特性、例えば低帯域幅、低コンピュータ計算要件などを有するものを選択することによって、見つけられたパラメータ集合にわたって最適化が行われる。
デバイス600は、パラメータ集合生成装置610を備える。パラメータ集合生成装置610は、複数の可能なパラメータ集合を生成するように構成される。例えば、パラメータ集合には、共有多項式(a)の少なくとも第1の法(q)、第2の法(p)、及び係数の個数(n)が含まれる。パラメータ集合生成装置610は、第1の法(q)と第2の法(p)との複数の対を生成するように構成されたp、q選択ユニット620を備える。例えば、p、q選択ユニット620は、qの複数の可能な値にわたって働き、例えば上で定義されたような固定界に従って、qを選択する。後者の場合、分かっているノイズ量がスケーリング演算に導入される。しかし、このことは必須ではない。pもqも互いに無関係に変えられる可能性がある。そこで、選んだもののセキュリティについての確認により、pとqとの悪い組合わせをフィルタ処理で取り除く可能性がある。p及びq用の値は、実際的であるもの、例えば、2の累乗で、理に適った界内、例えば、7〜16ビット、などのものが選ばれる。
例えば、一実施形態において、qは、2〜216(両端を含む)で変えられ、pは、qとは無関係に変えられ、例えば、pは、2〜212(両端を含む)で変えられる。pはまた、界
Figure 0006720424
に従って可能な限り大きな値が選ばれてもよい。このことは、σで示されるようなノイズが導入されることを確実にすることになる。例えば、σは、
Figure 0006720424
又は
Figure 0006720424
として、又はそれら間で選ばれる。ノード間で交換されたデータから引き出され得る情報が少ないほど、セキュリティにとっては、ノイズレベルが高くなるのがよい。その一方で、ノイズレベルが上がるほど、失敗確率が上がる。
デバイス600は、n、mオプティマイザ630をさらに備える。n、m−オプティマイザ630は、所与の法対に対して安全な個数の係数(n)を探し出すように構成される。安全なnを選択することは、それが、アタッカが注意を向けることになるメッセージ個数mに左右されることから容易なことではない。アタッカが、例えば、共有多項式や公開鍵などの交換された情報など、ほんのわずかのメッセージにしか注意を向けない場合、nの値が低くなっても十分である。mが上がるにつれて、n用の一番小さな安全な値が上がることになる。しかし、ある時点で、もっと多くのメッセージに注意を向けるようになると、追加のメッセージから引き出すことができた追加の情報が作業負荷上昇に値しないといったアタッカに起因するもっと多くの労力を強いられるようになる。言い換えれば、いずれの所与のn、p、及びqに対しても、アタッカが注意を向けることに対する最適なメッセージ個数がある。
この相互作用は、安全なnを選択することを難しくする。特に、nが小さいことが求められる場合にそうである。mをある大きな最大値に正確に設定するために安全なnを探し出すときには、それは、魅力的に見えるかもしれない。詰まるところ、たとえアタッカが大量の通信を分析するとしても、安全であることが望まれる。しかし、このことは、nの非現実的な、非セキュアな値につながる可能性がある。大量のメッセージに注意を向けることは、相当に骨が折れ、それを実行不可能にするには、比較的小さなnだけで十分である。分析対象のメッセージの個数を少なくするアタッカの場合、必要とされるnは、上がる可能性がある。このことは、簡単に設定m=mmaxがうまくいかなくなる理由である。
n、m−オプティマイザ630は、以下のようにこの問題に取り組む。n、m−オプティマイザ630は、最初に、アタッカ(m)により使用される、係数の個数(n)及び標本の個数(m)を初期化するように構成される。例えば、nは、nminに、例えば100に、mは、mminに、例えば0又は1に設定される。
設定が与えられると、n、m−オプティマイザ630は、その設定がセキュアであるか否かを判断する。設定がセキュアでなければ、n、m−オプティマイザ630は、nを上げ、設定がセキュアであれば、n、m−オプティマイザ630は、mを上げる。このプロセスは、mがある最大値mmaxに達したときに終わる。この時点で、すべての理に適ったメッセージ個数mに対してセキュアであるnを見つけている。nが十分に大きい限り、最終的に、システムは、セキュアになる。アルゴリズムの長すぎる実行を避けるために、nの最大値には、例えば1000ビットなどが強要されてもよい。
この時点で、三つ組n、p、qがセキュアであることが確認される。しかし、この集合が、成功した共有鍵に達することの低すぎる確率を有するということが起こり得る。次に、デバイス600、例えばパラメータ集合生成装置610は、パラメータ集合の演算上の正確さを証明する。演算上の正確さが証明されない場合(例えば、低すぎる成功確率)、パラメータ集合が捨てられ、演算上の正確さが証明された場合、パラメータ集合がリストに加えられる。この調査は、次に、新しい法対で継続され得る。
最後に、複数のセキュアなパラメータ集合が見つけられると、見つけられた集合にわたって最適化が行われ得る。例えば、より低い帯域幅要件を有するパラメータ集合が選択される。例えば、最低の帯域幅要件が選ばれる。又は、閾値よりも低いものが選ばれる。後者の場合、他の因数も、例えば計算効率も考慮に入れられ得る。例えば、法が、自然なコンピュータ単語境界の真上に来るのではなく、それに又はその真下に、例えば8、16、ビットにある場合、それは好ましい。
デバイス600は、選択されたパラメータ集合を出力するように設けられた出力インターフェースを備える。例えば、出力インターフェースは、ディスプレイ、例えばモニタである。出力インターフェースは、デジタルメッセージ、例えば電子メール、デジタルレポートなどを送信するように構成され得る。出力インターフェース120は、コンピュータポートを備え得る。
図6bは、パラメータ選択方法650の一実施形態の一例を概略的に示す。例えば、方法650は、コンピュータ上、デバイス600などのデバイス上、などで実行される。
方法650は、複数の可能なパラメータ集合を生成すること660を有し、パラメータ集合は、少なくとも、共有多項式aの第1の法q、第2の法p、及び係数の個数nを含む。例えば、パラメータ集合を生成することは、図6bの右側のフローチャートに従って行われる。
生成すること660は、第1の法qと第2の法pとの複数の対を生成することを有し得る。次に、法対は、その対用の安全な係数個数nを探し出すことによって、セキュリティについて分析される。この分析は、
−アタッカmによって使用される係数の個数n及び標本の個数mを初期化すること662を有し得る。
次に、判定ボックス664において、所与の対、係数の個数n、及び標本の個数mを有するパラメータ集合に対する攻撃が起こり得るかどうかが判断される。
攻撃が可能である場合、アルゴリズムは、666において、係数個数nを増やし、使用される標本個数mをリセットすることに進む。
攻撃が可能ではない場合、アルゴリズムは、668において、標本個数mを増やすことに進む。
両方の場合で、アルゴリズムは、抑止ボックス664に戻る。
標本個数mが、例えば、668においても判断され得るような最大標本個数を超えた場合、アルゴリズムは、パラメータ集合の演算上の正確さを証明すること(669)に進む。
最後に、複数のパラメータ集合が見つけられると、670において、アルゴリズムは、複数のパラメータ集合から、より低い帯域幅要件を有するパラメータ集合を選択する。
演算上の正確さ、攻撃能力、及び帯域幅要件を判断することは、これらの変数を推定する専用の機能又は手順を使用して行われ得る。例えば、どれくらいうまくパラメータ集合が攻撃されるかは、分かっている界を外挿することによって推定される。
図5は、鍵共有ネットワーク500の一実施形態の一例を概略的に示す。鍵共有ネットワーク500は、発起側ノード510及び応答側ノード520を備える。鍵共有ネットワーク500、発起側ノード510、及び応答側ノード520は、鍵共有ネットワーク100、発起側ノード110、及び応答側ノード120に基づいている。ネットワーク500と100とは、同じ又は同様の基礎環、パラメータなどを使用することができる。ネットワーク500とネットワーク100との重要な違いは、後者では、共有鍵がそれぞれのパーティが生成した生鍵に基づくが、ネットワーク500では、共有鍵がそれとは無関係であるという点である。下の実施形態では、共有鍵が、応答側ノード520によって生成されることを前提とするが、これは、限定的ではない。実際には、いずれの鍵もこの機構を使用して共有され得る。例えば、共有鍵は、さらなるソースから、例えば、ある他のプロトコルから、又は記憶域から、などと得られる。例えば、鍵は、共同で生成されることなどがあり得る。
ネットワーク100において見られるように、ノードは、共有多項式(a)を得、秘密鍵多項式を生成し、公開鍵多項式を生成する。後者は、第1の法qを法として、共有多項式(a)と秘密鍵多項式との多項式積を計算して、多項式積を得ることと、簡約多項式を法として多項式積を簡約化することと、係数を法qにスケールダウンさせることとを有する。公開鍵が交換され、生鍵がそれぞれの側で、例えば、pを法として、受信された公開鍵とノード自身の秘密鍵多項式との多項式積として計算され、次に簡約多項式を法とする簡約化が続く。しかし、ネットワーク100とは異なり、この共有は、生鍵から直接には引き出されず、むしろ生成された共有鍵をカプセル化するのに生鍵が使用される。
応答側ノード520は、共有する対象の鍵を得るように、また共有鍵を生鍵でカプセル化するように構成された鍵共有ユニット570を備える。カプセル化共有鍵は、発起側ノードに送信される。発起側ノード510も、カプセル化共有鍵を受信するように、またその生鍵でカプセル化された共有鍵を脱カプセル化するように構成された共有鍵ユニット560を備える。このようにして、ノード510は、同様に共有鍵を得る。
生鍵による共有鍵の鍵カプセル化は、生鍵における小さな違いが、脱カプセル化共有鍵における小さな誤りをもたらし、同時に、カプセル化共有鍵がこのような小さな誤りを訂正するのに十分な冗長性を備えるように、選ばれる。
例えば、共有鍵をカプセル化するための1つのやり方は、以下の通りである。最初に、共有鍵ユニット570が共有鍵573を生成する(さもなければ、共有されるようになる鍵を得る)。共有鍵573が符号化される。共有鍵を符号化するための第1のやり方は、それに第2の法の2分の1p/2を掛けることである。第2のやり方は、誤り訂正符号を使用することである。
結果として生じた符号化共有鍵が生鍵262に加えられる。例えば、共有鍵262を、pを法とする係数を有する多項式と見なす。この場合、誤り訂正符号をZにわたる反復符号として選択し得る。もう一方の側では、ノード510は、受信されたカプセル化鍵576から生鍵162を引いて、符号化鍵564を回復するように構成された鍵共有ユニット560を備える。後者は、生鍵162と262との違いから符号化鍵574とは異なってくる。結果として生じた符号化鍵が十分な情報を含んでいるので、元の符号化共有鍵がしばしば再構成され得る。ノード520が共有鍵を掛け算した例を考えてみる。そこでは、ノード510は、元の符号化共有鍵がゼロを有する場合はゼロに近い値を、また元の符号化共有鍵がp/2を有する場合はp/2に近い値を見つけるようになる。ノード510にある硬判定復号装置は、この減法を最も近い値に写像することができる。
誤り訂正符号を使用することによって、同じ共有鍵を得ることの確実さを獲得することができる。例えば、共有鍵573は、ビット単位で誤り訂正符号に符号化される。一度に共有鍵573の大きい方のブロックを変換してもよい。例えば、共有鍵573におけるゼロビットを(0、0、0)に、1ビットを(p/2、p/2、p/2)に写像する。この場合、共有鍵573は、生鍵262の長さの約1/3である。長さにおけるわずかな違いは、パディングを用いて解消され得る、この反復符号は、多数決復号を用いて復号され得る。共有鍵における同じビットに対応する3つの値を加えることによって、より良い結果が得られる。誤り無しであれば、後者は、0又は3p/2になるはずであり、最も近い値に写像することによって、より良い復号が得られる。訂正された符号化共有鍵は、共有鍵に写像され得る。
それは、長すぎる共有鍵573を選択し、後でそれを、例えばKDFを使用して、望ましい鍵長に落としてハッシュ化することには好都合である。例えば、nが1024である場合、共有鍵573のビット長を341と見て、後でそれから128ビット鍵を得てもよい。別の手法は、生鍵262を最初に二進数列に写像することである。例えば、それぞれの係数からBビットを引き出し、その結果を連結する。これには、もっと小さなコードが使用され得るという利点がある。
以下に、考えられる実施形態が示される。
Figure 0006720424
様々な実施形態において、様々な代替形態から通信インターフェースが選択され得る。例えば、通信インターフェースは、ローカル又は広域ネットワークへのネットワークインターフェース、例えばインターネット、内部又は外部のデータ記憶域へのストレージインターフェース、キーボードなどである。
ネットワークノードは、例えば、多項式a、公開鍵多項式、秘密鍵多項式、及び共有鍵などの中間データを格納するための電子記憶域を備え得る。電子記憶域は、電子メモリ、例えば、フラッシュメモリ、又は磁気メモリ、例えばハードディスクなどとして実施され得る。電子記憶域は、共に記憶域を作り上げる複数の離散メモリを備え得る。電子記憶域は、一時メモリ、例えばRAMでもあり得る。一時記憶域の場合、この記憶域は、ある手段を使用して、例えば、オプションのネットワーク接続(別個に図示せず)上で共通パラメータを得ることによって、使用する前に共通パラメータを得ることができる。
通常、デバイス110、210、510、520、600はそれぞれ、デバイス110、210、510、520、600に格納された該当するソフトウェアを実行するマイクロプロセッサ(図1には別個に示されない)を備え、例えば、そのソフトウェアは、ダウンロードされ且つ/又は対応するメモリ、例えば、RAMなどの揮発性メモリ、又はFlashなどの不揮発性メモリ(別個には図示せず)に格納されたものであり得る。代替として、デバイス110、210、510、520、600が、例えばフィールドプログラマブルゲートアレイ(FPGA)として、プログラマブル論理回路にその全部又は一部が具体化され得る。デバイス110、210、510、520、600が、いわゆる特定用途向け集積回路(ASIC)として、すなわち、その特定の使用にカスタマイズされた集積回路(IC)として、その全部又は一部が具体化され得る。例えば、回路は、例えば、Verilog、VHDLなどのハードウェア記述言語を使用して、CMOSにおいて具体化される。
一実施形態において、ネットワークノードは、通信インターフェース回路、共有多項式回路、秘密鍵多項式回路、公開鍵多項式回路、及び共有鍵回路を備える。これらの回路は、本明細書に記載の対応するユニットを具体化する。これらの回路は、プロセッサ回路及び記憶回路であり得、プロセッサ回路は、記憶回路において電子的に表される命令を実行する。
プロセッサ回路は、例えば、複数のサブプロセッサ回路として、分散様式で具体化され得る。記憶域は、複数の分散型サブ記憶域にわたって分散され得る。メモリの一部又は全体は、電子メモリ、磁気メモリなどであり得る。例えば、記憶域は、揮発性部分及び不揮発性部分を有する。記憶域の一部は、読み取り専用であり得る。これらの回路は、FPGA、ASICなどであってもよい。
図3は、電子鍵交換方法の一実施形態の一例を概略的に示す。電子鍵交換方法は、発起側ノード110又は応答側ノード210などの第1の電子ネットワークノードによって実行され得る。
方法400は、
−第1の電子ネットワークノードと第2のネットワークノードとの間にデジタル通信を設けること(410)と、
−共有多項式(a)を得ること(420)であって、共有多項式がデジタル通信を通して第2のネットワークノードと共有され、共有多項式aの係数が第1の法qを法として選択される、こと(420)と、
−秘密鍵多項式(sk)を生成すること(430)であって、秘密鍵多項式の係数が、界(s)によって絶対値が有界である、こと(430)と、
−公開鍵多項式(pk)を生成すること(440)であって、
−第1の法(q)を法として、共有多項式(a)と秘密鍵多項式(sk)との多項式積を計算して、多項式積を得て、その後、簡約多項式を法とする簡約化が続くこと(442)、及び
−多項式積の係数を第2の法(p)にスケールダウンすること(444)であって、スケールされた係数が、第2の法(p)が掛けられ、第1の法(q)で割られ、一番近い整数に丸められたスケールされていない係数に等しく、第2の法(p)が第1の法(q)よりも小さく、界(s)が高々第2の法(p)である、こと(444)、によって、公開鍵多項式(pk)を生成すること(440)と、
−第2のネットワークノードに第1の電子ネットワークノードの公開鍵多項式を送信すること(452)と、
−第2のネットワークノードの公開鍵多項式(pk)を受信すること(454)と、
−第2の法(p)を法として、第2のネットワークノードの受信された公開鍵と第1の電子ネットワークノードの秘密鍵多項式との多項式積として、生鍵を計算し、その後に簡約多項式を法とする簡約化が続くこと(460)と、を有する。
第1の電子ネットワークノードが発起側モードに従って動作している場合、第1の電子ネットワークノードは、一実施形態に従って、
−第2のネットワークノードの調停データ(h)を受信すること(472)と、
−調停関数(rec)を受信された調停データ及び生鍵に適用することによって、共有鍵を計算すること(482)と、のさらなる要素を行い得る。
第1の電子ネットワークノードが応答側モードに従って動作している場合、第1の電子ネットワークノードは、一実施形態に従って、
−生鍵から共有鍵及び調停データを得ること(474)と、
−調停データを第1の電子ネットワークノードに送信すること(484)と、のさらなる要素を行い得る。
本明細書で指摘したように、方法400において、他のタイプのヘルパーデータも採用され得る。
当業者であれば見えてくるような、方法を実行する多くの様々なやり方が考えられ得る。例えば、ステップの順番を変えることができ、又はいくつかのステップが並行して実行されてもよい。また、ステップ間に、他の方法のステップが挿入されてもよい。挿入されたステップは、本明細書に記載のような、方法の手の込んだ個所に相当し得るか、又は方法には無関係なものであり得る。例えば、所与のステップが、次のステップが開始される前に完全には終わってはいない。
本発明による方法は、プロセッサシステムに方法400又は650を行わせるための命令を含むソフトウェアを使用して実行され得る。ソフトウェアは、そのシステムの特定のサブエンティティによって取られるステップのみを有し得る。ソフトウェアは、ハードディスク、フロッピィ、メモリ、光ディスクなど、適切な記憶媒体に格納される。ソフトウェアは、有線に沿って、又は無線で、又はデータネットワーク、例えばインターネットを使用して、信号として送信される。ソフトウェアは、ダウンロードに且つ/又はサーバにおける遠隔使用に使用できるようにされ得る。本発明による方法は、プログラマブル論理回路、例えばフィールドプログラマブルゲートアレイ(FPGA)を、方法を行うように構成するために設けられたビットストリームを使用して、実行され得る。
本発明が、コンピュータプログラム、特に、本発明を実行に移すように適合された、担体上又は担体内のコンピュータプログラムにも及ぶことが分かってくるであろう。コンピュータプログラムは、ソースコード、オブジェクトコード、コード中間ソース、及び部分的にコンパイルされた形態などのオブジェクトコードの形態、或いは本発明による方法の実施における使用に適したいずれか他の形態であり得る。コンピュータプログラム製品に関係する実施形態は、明示された方法のうちの少なくとも1つの処理ステップのそれぞれに対応するコンピュータ実行可能命令を備える。これらの命令は、サブルーチンに細分され、且つ/又は静的に若しくは動的にリンクされ得る1つ又は複数のファイルに格納され得る。コンピュータプログラムに関係する別の実施形態は、明示されたシステム及び/又は製品のうちの少なくとも1つの手段のそれぞれに対応するコンピュータ実行可能命令を備える。
図4aは、コンピュータプログラム1020を含む書き込み可能部分1010を有するコンピュータ可読媒体1000を示し、コンピュータプログラム1020は、一実施形態による、プロセッサシステムに鍵共有方法を行わせるための命令を備える。コンピュータプログラム1020は、コンピュータ可読媒体1000において、物理マークとして、又はコンピュータ可読媒体1000の磁化を用いて、具現化され得る。しかし、他にも適切な実施形態が考えられる。さらに、コンピュータ媒体1000がここでは、光ディスクとして示されるが、コンピュータ可読媒体1000が、ハードディスク、ソリッドステートメモリ、フラッシュメモリなどのいずれの適切なコンピュータ可読媒体でもよく、また記録可能でも記録不可でもよいことが分かってくるであろう。コンピュータプログラム1020は、プロセッサシステムに前記鍵共有方法400を行わせるための命令を含む。
図4bは、例えば、第1又は第2のネットワークノードとして、一実施形態によるプロセッサシステム1140の概略的表現を示す。プロセッサシステムは、1つ又は複数の集積回路1110を備える。1つ又は複数の集積回路1110のアーキテクチャが図4bに概略的に示される。回路1110は、一実施形態による方法を実行するようにコンピュータプログラム構成要素を作動させる且つ/又はそれのモジュール若しくはユニットを具体化するための処理ユニット1120、例えばCPUを備える。回路1110は、プログラミングコード、データなどを格納するためのメモリ1122を備える。メモリ1122の一部は、読み取り専用であり得る。回路1110は、通信素子1126、例えば、アンテナ、コネクタ、又はその両方などを備え得る。回路1110は、方法において定義される処理の一部又はすべてを行うための専用集積回路1124を備え得る。プロセッサ1120、メモリ1122、専用IC1124、及び通信素子1126は、相互接続1130、例えばバスを介して互いに接続され得る。処理システム1110は、それぞれ、アンテナ及び/又はコネクタを使用して、接触及び/又は非接触通信用に設けられ得る。
コンピュータ可読媒体1000又はプロセッサシステム1140は、パラメータを選択する方法用にも構成され得る。
例えば、一実施形態において、ネットワークノードは、プロセッサ回路及びメモリ回路を備え、プロセッサは、メモリ回路に格納されたソフトウェアを実行するように設けられる。例えば、プロセッサ回路は、Intel Core i7プロセッサ、ARM Cortex−R8などである。一実施形態において、プロセッサ回路は、ARM Cortex M0であり得る。メモリ回路は、ROM回路、又は不揮発性メモリ、例えばフラッシュメモリであり得る。メモリ回路は、揮発性メモリ、例えばSRAMメモリであり得る。後者の場合、証明デバイスが、ソフトウェアを提供するのに設けられた、不揮発性ソフトウェアインターフェース、例えば、ハードドライブ、ネットワークインターフェースなどを備え得る。
上に述べた実施形態が、本発明を限定するものではなく、当業者であれば、多くの代替の実施形を考案することができることに留意されたい。
以下の条項は、請求項ではないが、可能な実施形態を有する。これにより、本出願の実行中、又はそれから引き出されたさらなる出願の実行中に、新しい請求項が、このような条項、このような条項の組合わせ、及び/又は、上記説明若しくは請求項から取られた特徴にまとめられ得ることを示す。
条項1. 鍵共有プロトコル用に構成された第1の電子ネットワークノード(110)であって、
−第2のネットワークノードとのデジタル通信用に設けられた通信インターフェース(120)と、
−プロセッサ回路であって、
−共有多項式(a)を得ることであって、共有多項式が通信インターフェースを通して第2のネットワークノードと共有され、共有多項式(a)の係数が第1の法qを法として選択される、ことと、
−秘密鍵多項式(sk、sk)を生成することであって、秘密鍵多項式の係数が界(s)によって絶対値が有界である、ことと、
−公開鍵多項式(pk、pk)を生成することであって、
−第1の法(q)を法として、共有多項式(a)と秘密鍵多項式(sk)との多項式積を計算して、多項式積を得ることと、
−多項式積の係数を第2の法(p)にスケールダウンすることであって、スケールされた係数が、第2の法(p)が掛けられ、第1の法(q)で割られ、最も近い整数に丸められたスケールされていない係数に等しく、第2の法(p)が第1の法(q)よりも小さく、界(s)が、高々第2の法(p)である、ことと、によって、公開鍵多項式(pk、pk)を生成することと、
−第1の電子ネットワークノードの公開鍵多項式を第2のネットワークノードに送信することと、
−第2のネットワークノードの公開鍵多項式(pk、pk)を受信することと、
−第2の法(p)を法として、第2のネットワークノードの受信された公開鍵と第1の電子ネットワークノードの秘密鍵多項式との多項式積として、生鍵多項式を計算し、生鍵から共有鍵を計算することと、を行うように構成された、プロセッサ回路と、を備える、第1の電子ネットワークノード(110)。
条項2. 第1の電子ネットワークノード(110)用の電子鍵共有方法(400)であって、
−第1の電子ネットワークノードと第2のネットワークノードとの間にデジタル通信を設けること(410)と、
−共有多項式(a)を得ること(420)であって、共有多項式がデジタル通信を通して第2のネットワークノードと共有され、共有多項式aの係数が第1の法qを法として選択される、こと(420)と、
−秘密鍵多項式(sk)を生成すること(430)であって、秘密鍵多項式の係数が界(s)によって絶対値が有界である、こと(430)と、
−公開鍵多項式(pk)を生成すること(440)であって、
−第1の法(q)を法として、共有多項式(a)と秘密鍵多項式(sk)との多項式積を計算して、多項式積を得ること(442)と、
−多項式積の係数を第2の法(p)にスケールダウンすること(444)であって、スケールされた係数が、第2の法(p)が掛けられ、第1の法(q)で割られ、最も近い整数に丸められたスケールされていない係数に等しく、第2の法(p)が第1の法(q)よりも小さく、界(s)が、高々第2の法(p)である、こと(444)と、によって、公開鍵多項式(pk)を生成すること(440)と、
−第1の電子ネットワークノードの公開鍵多項式を第2のネットワークノードに送信すること(452)と、
−第2のネットワークノードの公開鍵多項式(pk)を受信すること(454)と、
−第2の法(p)を法として、第2のネットワークノードの受信された公開鍵と第1の電子ネットワークノードの秘密鍵多項式との多項式積として、生鍵多項式を計算し、生鍵から共有鍵を計算すること(460)と、を有する、電子鍵共有方法(400)。
請求項では、括弧内に置かれたいずれの参照符号も、請求項を限定するとして解釈されないものとする。動詞「備える」及びその活用形の使用は、請求項に述べられるもの以外の要素又はステップの存在を排除するものではない。単数形は、このような要素の複数の存在を排除するものではない。本発明は、いくつかの別個の要素を備えるハードウェアを用いて、また適切にプログラムされたコンピュータを用いて、実施され得る。いくつかの手段を列挙するデバイス請求項では、これらの手段のうちのいくつが、全く同じハードウェア製品によって具現化され得る。いくつかの手段が互いに異なる従属請求項に挙げられているからといって、それが、これらの手段の組合わせを、利益をもたらすように使用することができないことを意味していることにはならない。
請求項では、括弧内の参照番号は、実施形態の良い例となる図面の参照符号、又は実施形態の式を指し、それにより、請求項の明瞭さを高める。これらの参照番号は、請求項を限定するとして解釈されるものではない。

Claims (13)

  1. 鍵共有プロトコル用の第1の電子ネットワークノードであって、前記第1の電子ネットワークノードが、
    第2のネットワークノードとのデジタル通信用の通信インターフェースと、
    プロセッサ回路とを備え、
    前記プロセッサ回路が、
    共有多項式を得ることであって、前記共有多項式が前記通信インターフェースを通して前記第2のネットワークノードと共有され、前記共有多項式の係数が第1の法を法として選択される、ことと、
    秘密鍵多項式を生成することであって、前記秘密鍵多項式の係数が界によって絶対値が有界であり、前記界が、前記第1の法より小さい第2の法より小さい、ことと、
    公開鍵多項式を生成することであって、
    前記第1の法を法として、前記共有多項式と前記秘密鍵多項式との多項式積を計算して、多項式積を得ることと、
    前記多項式積の係数を前記第2の法にスケールダウンすることであって、スケールされた係数が、前記第2の法が掛けられ、前記第1の法で割られ、最も近い整数に丸められたスケールされていない係数に等しい、ことと、によって、公開鍵多項式を生成することと、
    前記第1の電子ネットワークノードの前記公開鍵多項式を前記第2のネットワークノードに送信することと、
    前記第2のネットワークノードの前記公開鍵多項式を受信することと、
    前記第2の法を法として、前記第2のネットワークノードの受信された前記公開鍵と前記第1の電子ネットワークノードの前記秘密鍵多項式との多項式積として、生鍵多項式を計算し、生鍵から共有鍵を計算することと、を行い、
    前記第1の電子ネットワークノードが、
    前記第2のネットワークノードの調停データを受信することと、
    受信された前記調停データ、及び前記生鍵多項式の複数の係数に調停関数を適用することによって、共有鍵を計算することと、を行うか、又は、
    前記第1の電子ネットワークノードが、
    前記生鍵多項式の複数の係数から調停データ及び前記共有鍵を得ることと、
    前記調停データを前記第2のネットワークノードに送信することと、を行う、
    第1の電子ネットワークノード。
  2. 前記第1の電子ネットワークノードが、
    前記第2のネットワークノードのヘルパーデータを受信することであって、前記ヘルパーデータが、前記第1の電子ネットワークノードにおいて引き出された前記生鍵と前記第2のネットワークノードにおいて引き出された前記生鍵との違いを相殺する、前記第1の電子ネットワークノードと前記第2のネットワークノードとで同じ共有鍵の引き出しを可能にする情報を含む、ことと、
    前記ヘルパーデータ、及び前記生鍵多項式の複数の係数から共有鍵を計算することと、を行うか、又は、
    前記第1の電子ネットワークノードが
    前記共有鍵を得て、前記生鍵多項式の少なくとも複数の係数から前記ヘルパーデータを得ることと、
    前記ヘルパーデータを前記第2のネットワークノードに送信することと、を行う、
    請求項1に記載の第1の電子ネットワークノード。
  3. 前記秘密鍵多項式の係数における絶対値の前記界が2であり、又は、前記界が1であり、後者は符号付き二進数に対応する、
    請求項1又は2に記載の第1の電子ネットワークノード。
  4. 前記第1の電子ネットワークノードが所定の個数の非ゼロ係数で構成され、
    前記秘密鍵多項式が、高々前記所定の個数の前記非ゼロ係数で生成されるか、又は、
    前記秘密鍵多項式が、確率分布から選ばれ、前記確率分布が、前記秘密鍵多項式用の一定の期待個数の非ゼロ係数を有する、
    請求項1乃至のいずれか一項に記載の第1の電子ネットワークノード。
  5. 前記第2の法が前記第1の法を割る、
    請求項1乃至のいずれか一項に記載の第1の電子ネットワークノード。
  6. 前記第2の法及び/又は前記第1の法が2の累乗である、
    請求項1乃至のいずれか一項に記載の第1の電子ネットワークノード。
  7. 新しい鍵交換のたびに、新しい共有多項式及び/又は新しい秘密鍵を得る、
    請求項1乃至のいずれか一項に記載の第1の電子ネットワークノード。
  8. 前記生鍵多項式のすべての係数より少ない係数に対して、調停データが得られ、送信され、受信され、且つ/又は適用される、
    請求項1乃至のいずれか一項に記載の第1の電子ネットワークノード。
  9. 前記調停データのサイズが、前記生鍵多項式の対応する係数ごとに2ビット以上である、
    請求項1乃至のいずれか一項に記載の第1の電子ネットワークノード。
  10. 前記第1の法が、ビットサイズとして12以上を有し、且つ/又は
    前記第2の法が、ビットサイズとして7以上を有する、
    請求項1乃至のいずれか一項に記載の第1の電子ネットワークノード。
  11. 前記共有多項式と前記秘密鍵多項式との前記多項式積、及び前記第2のネットワークノードの受信された前記公開鍵と前記第1の電子ネットワークノードの前記秘密鍵多項式との前記多項式積が、両方とも簡約多項式を法とする、
    請求項1乃至10のいずれか一項に記載の第1の電子ネットワークノード。
  12. 第1の電子ネットワークノード用の電子鍵共有方法であって、前記電子鍵共有方法が、
    第1の電子ネットワークノードと第2のネットワークノードとの間にデジタル通信を設けるステップと、
    共有多項式を得るステップであって、前記共有多項式が前記デジタル通信を通して前記第2のネットワークノードと共有され、前記共有多項式の係数が第1の法を法として選択される、ステップと、
    秘密鍵多項式を生成するステップであって、前記秘密鍵多項式の係数が、界によって絶対値が有界であり、前記界が前記第1の法より小さい第2の法より小さい、ステップと、
    公開鍵多項式を生成するステップであって、
    前記第1の法を法として、前記共有多項式と前記秘密鍵多項式との多項式積を計算して、多項式積を得るステップと、
    前記多項式積の前記係数を前記第2の法にスケールダウンするステップであって、スケールされた係数が、前記第2の法が掛けられ、前記第1の法で割られ、最も近い整数に丸められたスケールされていない前記係数に等しい、ステップと、によって、公開鍵多項式を生成するステップと、
    前記第1の電子ネットワークノードの前記公開鍵多項式を前記第2のネットワークノードに送信するステップと、
    前記第2のネットワークノードの公開鍵多項式を受信するステップと、
    前記第2の法を法として、前記第2のネットワークノードの受信された前記公開鍵と前記第1の電子ネットワークノードの前記秘密鍵多項式との多項式積として、生鍵多項式を計算し、前記生鍵から前記共有鍵を計算するステップと、を有し、前記電子鍵共有方法が、
    前記第2のネットワークノードのヘルパーデータを受信するステップであって、前記ヘルパーデータが、前記第1の電子ネットワークノードにおいて引き出された前記生鍵と前記第2のネットワークノードにおいて引き出された前記生鍵との違いを相殺する、前記第1の電子ネットワークノードと前記第2のネットワークノードとで同じ共有鍵の引き出しを可能にする情報を含む、ステップと、
    前記ヘルパーデータ、及び前記生鍵多項式の複数の係数から共有鍵を計算するステップと、をさらに有するか、又は、
    前記電子共有方法が、
    前記生鍵多項式の複数の係数から前記ヘルパーデータ及び前記共有鍵を得るステップと、
    前記ヘルパーデータを前記第2のネットワークノードに送信するステップと、をさらに有する、
    電子鍵共有方法。
  13. プロセッサシステムに、請求項12に記載の方法を行わせるための命令に相当する一時的又は非一時的データを含む、コンピュータ可読媒体。
JP2019561908A 2017-05-10 2018-05-02 鍵共有デバイス及び方法 Active JP6720424B1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP17170508.0A EP3402118A1 (en) 2017-05-10 2017-05-10 Key agreement devices and method
EP17170508.0 2017-05-10
PCT/EP2018/061089 WO2018206344A1 (en) 2017-05-10 2018-05-02 Key agreement devices and method

Publications (2)

Publication Number Publication Date
JP6720424B1 true JP6720424B1 (ja) 2020-07-08
JP2020522912A JP2020522912A (ja) 2020-07-30

Family

ID=58701497

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019561908A Active JP6720424B1 (ja) 2017-05-10 2018-05-02 鍵共有デバイス及び方法

Country Status (9)

Country Link
US (1) US11050557B2 (ja)
EP (2) EP3402118A1 (ja)
JP (1) JP6720424B1 (ja)
CN (1) CN110870250B (ja)
BR (1) BR112019023412A2 (ja)
ES (1) ES2842954T3 (ja)
PL (1) PL3622663T3 (ja)
RU (1) RU2736109C1 (ja)
WO (1) WO2018206344A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018108313A1 (de) * 2018-04-09 2019-10-10 Infineon Technologies Ag Verfahren und Verarbeitungsvorrichtung zum Ausführen einer kryptografischen Operation auf Gitterbasis
JP6975361B2 (ja) * 2018-07-17 2021-12-01 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 鍵カプセル化プロトコル
DE102018122278A1 (de) * 2018-09-12 2020-03-12 Infineon Technologies Ag Ausführen einer kryptographischen Operation
CN109861821B (zh) * 2019-02-26 2020-10-30 清华大学 一种用于lwe公钥密码的错误协调方法
DE102019108095A1 (de) * 2019-03-28 2020-10-01 Infineon Technologies Ag Ausführen einer kryptografischen Operation
CN114521319B (zh) * 2019-09-26 2023-12-05 维萨国际服务协会 具有均匀秘密的基于格的签名
EP3843320A1 (en) * 2019-12-24 2021-06-30 Koninklijke Philips N.V. Public/private key system with increased security
CN111464289B (zh) * 2020-01-13 2021-07-27 华中科技大学 一种后量子密钥交换协议的实现方法、设备及系统
CN114981859A (zh) * 2020-01-20 2022-08-30 日本电信电话株式会社 秘密计算装置、秘密计算方法、以及程序
US11374740B2 (en) * 2020-03-13 2022-06-28 Infineon Technologies Ag Controller area network key exchange
JP7460515B2 (ja) 2020-03-13 2024-04-02 Kddi株式会社 電子署名生成装置、電子署名生成方法及び電子署名生成プログラム
CN111885058B (zh) * 2020-07-23 2022-05-13 伊拉克巴士拉大学 物联网云中端到端智能设备通信的轻量级消息传递方法
CN114124368B (zh) * 2020-08-31 2023-04-14 Oppo广东移动通信有限公司 一种数据传输方法、客户端、服务端及存储介质
CN112738038B (zh) * 2020-12-17 2024-05-28 北京握奇智能科技有限公司 一种基于非对称口令认证的密钥协商的方法和装置
CN112713992B (zh) * 2020-12-22 2022-07-01 湖北工业大学 一种基于无证书的抗泄露认证与密钥协商方法及系统
CN113242122B (zh) * 2021-04-15 2022-11-25 哈尔滨工业大学 一种基于dh和rsa加密算法的加密方法
CN113473460B (zh) * 2021-06-07 2022-07-01 西安电子科技大学 基于纠错码判决的无线物理层密钥协商方法
US11569994B2 (en) * 2021-06-24 2023-01-31 Intel Corporation Accelerating multiple post-quantum cryptograhy key encapsulation mechanisms
US11792004B2 (en) * 2021-09-17 2023-10-17 Intel Corporation Polynomial multiplication for side-channel protection in cryptography
CN114095423B (zh) * 2021-10-11 2023-04-14 北京东方京海电子科技有限公司 基于mpls的电力通信骨干网数据安全防护方法及系统
CN113965325B (zh) * 2021-10-20 2023-07-25 成都卫士通信息产业股份有限公司 数据传输认证方法、装置、电子设备及计算机存储介质
CN115361682B (zh) * 2022-08-10 2024-05-07 东莞理工学院 一种水下无线传感器网络密钥预分配方法
CN115348017B (zh) * 2022-10-18 2023-02-07 阿里巴巴(中国)有限公司 密文处理方法以及装置
CN115361096B (zh) * 2022-10-19 2022-12-20 无锡沐创集成电路设计有限公司 一种rfid标签电路及基于rfid标签电路的数据传输方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2277633C (en) * 1999-07-19 2009-10-20 Certicom Corp. Split-key key-agreement protocol
US7181014B1 (en) * 1999-09-10 2007-02-20 Cisco Technology, Inc. Processing method for key exchange among broadcast or multicast groups that provides a more efficient substitute for Diffie-Hellman key exchange
CN101023622B (zh) * 2004-04-02 2010-12-08 捷讯研究有限公司 配置和供应无线手持设备
CN101374043B (zh) * 2007-08-24 2010-09-22 管海明 密钥协商的方法、加/解密的方法及签名/验证的方法
US8422681B2 (en) * 2008-03-06 2013-04-16 International Business Machines Corporation Non-interactive hierarchical identity-based key-agreement
RU2452111C1 (ru) * 2010-11-17 2012-05-27 ЗАО Институт инфокоммуникационных технологий Способ пороговой генерации ключей для системы защиты информации на основе идентификационных данных
EP2493112B1 (en) * 2011-02-28 2018-02-28 Certicom Corp. Accelerated key agreement with assisted computations
ITGE20110091A1 (it) * 2011-08-10 2013-02-11 Carlo Pes Metodo di cifratura e decifratura
WO2014096420A1 (en) * 2012-12-21 2014-06-26 Koninklijke Philips N.V. Key sharing network device and configuration thereof
WO2017025597A1 (en) * 2015-08-11 2017-02-16 Koninklijke Philips N.V. Key sharing device and method
US9673977B1 (en) * 2016-09-15 2017-06-06 ISARA Corporation Refreshing public parameters in lattice-based cryptographic protocols
US9942039B1 (en) * 2016-09-16 2018-04-10 ISARA Corporation Applying modular reductions in cryptographic protocols
US9698986B1 (en) * 2016-09-23 2017-07-04 ISARA Corporation Generating shared secrets for lattice-based cryptographic protocols
WO2018083075A1 (en) 2016-11-04 2018-05-11 Koninklijke Philips N.V. Reaching agreement on a secret value
EP3364596A1 (en) * 2017-02-15 2018-08-22 Koninklijke Philips N.V. Key exchange devices and method
US10742413B2 (en) * 2017-04-25 2020-08-11 International Business Machines Corporation Flexible verifiable encryption from lattices

Also Published As

Publication number Publication date
PL3622663T3 (pl) 2021-10-25
EP3622663B1 (en) 2020-11-25
EP3402118A1 (en) 2018-11-14
ES2842954T3 (es) 2021-07-15
EP3622663A1 (en) 2020-03-18
WO2018206344A1 (en) 2018-11-15
CN110870250A (zh) 2020-03-06
US11050557B2 (en) 2021-06-29
CN110870250B (zh) 2022-12-13
RU2736109C1 (ru) 2020-11-11
US20200153618A1 (en) 2020-05-14
JP2020522912A (ja) 2020-07-30
BR112019023412A2 (pt) 2020-06-16

Similar Documents

Publication Publication Date Title
JP6720424B1 (ja) 鍵共有デバイス及び方法
JP7019730B2 (ja) キー交換デバイス及び方法
TWI672932B (zh) 基於質數陣列的後量子非對稱密鑰產生方法及系統、加密方法、解密方法及加密通訊系統
RU2752697C1 (ru) Криптографическое устройство с изменяемой конфигурацией
JP7208987B2 (ja) 更新可能な共有マトリクスを備える暗号装置
US9608812B2 (en) Common secret key generation device, encryption device, decryption device, common secret key generation method, encryption method, decryption method, and program
JP6067932B2 (ja) 鍵共有デバイス及び方法
US10374797B2 (en) Public-key encryption system
NL2013944B1 (en) Public-key encryption system.
Niederhagen et al. Practical post-quantum cryptography
JP7023584B2 (ja) 公開鍵暗号システム、公開鍵暗号方法、公開鍵暗号プログラム
CN106059770B (zh) 用于模幂运算的高效平稳编码
WO2018011825A1 (en) Encryption and decryption of messages
CN106059769B (zh) 一种用于执行使用查找表的模幂运算的装置及其方法
Gallego Estévez Quantum and post-quantum key combination in a financial environment

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191108

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191108

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20191108

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200401

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: 20200522

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200617

R150 Certificate of patent or registration of utility model

Ref document number: 6720424

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250