(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-08
(45)【発行日】2022-12-16
(54)【発明の名称】秘密値の共有に達すること
(51)【国際特許分類】
H04L 9/08 20060101AFI20221209BHJP
【FI】
H04L9/08 C
H04L9/08 E
(21)【出願番号】P 2019522443
(86)(22)【出願日】2017-10-31
(86)【国際出願番号】 EP2017077843
(87)【国際公開番号】W WO2018083075
(87)【国際公開日】2018-05-11
【審査請求日】2020-10-30
(32)【優先日】2016-11-04
(33)【優先権主張国・地域又は機関】EP
【前置審査】
(73)【特許権者】
【識別番号】590000248
【氏名又は名称】コーニンクレッカ フィリップス エヌ ヴェ
【氏名又は名称原語表記】Koninklijke Philips N.V.
【住所又は居所原語表記】High Tech Campus 52, 5656 AG Eindhoven,Netherlands
(74)【代理人】
【識別番号】110001690
【氏名又は名称】弁理士法人M&Sパートナーズ
(72)【発明者】
【氏名】トルヒュイゼン ルドヴィクス マリヌス ジェラルドゥス マリア
(72)【発明者】
【氏名】リートマン ロナルド
(72)【発明者】
【氏名】ガルシア モーション オスカー
【審査官】金沢 史明
(56)【参考文献】
【文献】特表2006-504362(JP,A)
【文献】国際公開第2015/197368(WO,A1)
【文献】中国特許出願公開第105580309(CN,A)
【文献】米国特許第08549299(US,B2)
【文献】BOS, Joppe et al.,Frodo: Take off the ring! Practical, Quantum-Secure Key Exchange from LWE,Cryptology ePrint Archive,International Association for Cryptologic Research,2016年09月,Report 2016/659, Version 20160910:010217,pp. 1-26,[2021年11月18日検索],インターネット,<URL: https://eprint.iacr.org/2016/659/20160910:010217>
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
(57)【特許請求の範囲】
【請求項1】
第1のデバイスと秘密値の共有に達するための第2のデバイスであって、
前記第1のデバイスは、
整数値の数字a及び
【数74】
の式に基づいて共通の秘密sを決定することであって、
ここで、aは0≦a<qを満たし、Bは正の整数であり、qは2
B+δ+1
の整数倍であり、δは1より大きな整数であり、q、B、δ、及びcはシステムパラメータである、
共通の秘密sを決定することと、
【数75】
の式に基づいて調整データhを決定することと、
を行うプロセッサと、
前記第2のデバイスに前記調整データhを表す情報を送信する送信器であって、
ここで、前記数字aはa≡b+e(mod q)という意味で、前記数字bと近似的共有状態にあり、eは前記数字aと前記数字bとの間の差を表し、
【数76】
である、送信器と、を備え、
前記第2のデバイスは、
前記第1のデバイスから
前記調整データhを表す情報を受信する受信器であって、ここで、0≦h<2
δであって、δは1より大きな整数である、受信器と、
整数値の数字b及び
【数77】
の式に基づいて共通の秘密sを演算するプロセッサであって、ここで、bは0≦b<qを満たし、Bは正の整数であり、qは2
B+δ+1の整数倍であり、q、B、δ、及びcはシステムパラメータである、プロセッサと、を備え、
前記第1のデバイスが、a≡b+e(mod q)という意味で、前記数字bと近似的共有状態にある数字aをもち、ここで、eは前記数字aと前記数字bとの間の差を表し、
【数78】
である、第2のデバイス。
【請求項2】
前記プロセッサが、鍵交換プロトコルに基づいてbを演算する、
請求項1に記載の第2のデバイス。
【請求項3】
q=2
m、及びδ=m-B-1であり、ここで、mは正の整数である、
請求項1に記載の第2のデバイス。
【請求項4】
前記プロセッサが、値β及びb≡wβ(mod q)の式に基づいて前記整数値bを演算し、ここで、wN≡1(mod q)であり、Nは1より大きな整数であってqと互いに素である、
請求項1に記載の第2のデバイス。
【請求項5】
請求項1に記載の第2のデバイスと第1のデバイスとを備えるシステムであって、
前記第1のデバイスは、
整数値の数字a及び
【数79】
の式に基づいて共通の秘密sを決定することであって、
ここで、aは0≦a<qを満たし、Bは正の整数であり、qは2
B+δ+1の整数倍であり、δは1より大きな整数であり、q、B、δ、及びcはシステムパラメータである、
共通の秘密sを決定することと、
【数80】
の式に基づいて調整データhを決定することと、
を行うプロセッサと、
前記第2のデバイスに前記調整データhを表す情報を送信する送信器であって、
ここで、前記数字aはa≡b+e(mod q)という意味で、前記数字bと近似的共有状態にあり、eは前記数字aと前記数字bとの間の差を表し、
【数81】
である、送信器と、
を備える、システム。
【請求項6】
請求項1に記載の第2のデバイスと秘密値の共有に達するための第1のデバイスであって、前記第1のデバイスは、
整数値の数字a及び
【数82】
の式に基づいて共通の秘密sを決定することであって、ここで、aは0≦a<qを満たし、Bは正の整数であり、qは2
B+δ+1の整数倍であり、δは1より大きな整数であり、q、B、δ、及びcはシステムパラメータである、共通の秘密sを決定することと、
【数83】
の式に基づいて調整データhを決定することと、
を行うプロセッサと、
前記第2のデバイスに前記調整データhを表す情報を送信する送信器と、を備え、
前記第2のデバイスが、a≡b+e(mod q)という意味で、前記数字aと近似的共有状態にある数字bを有し、ここで、eは前記数字aと前記数字bとの間の差を表し、
【数84】
である、第1のデバイス。
【請求項7】
前記プロセッサが、鍵交換プロトコルに基づいてaを演算する、
請求項6に記載の第1のデバイス。
【請求項8】
q=2
mであり、mは正の整数であり、前記共通の秘密sは(a+c)mod 2
mの二進展開のB個の最上位ビットに対応し、前記調整データhは前記二進展開の次のδビットに対応する、
請求項6に記載の第1のデバイス。
【請求項9】
δ=m-B-1である、
請求項8に記載の第1のデバイス。
【請求項10】
前記共通の秘密sが、aと、
【数85】
との、最も近い整数に切り下げられた商に等しくなるようにc=0であることと、
前記共通の秘密sが、aと、
【数86】
との、最も近い整数に丸められた商に等しくなるように
【数87】
であることであって、当該丸めが中央の場合には切り上げるように実施されることと、
前記共通の秘密sが、aと、
【数88】
との、最も近い整数に丸められた商に等しくなるように
【数89】
であることであって、当該丸めが中央の場合には切り下げるように実施されることと、
のうちの少なくとも1つが満たされる、
請求項6に記載の第1のデバイス。
【請求項11】
前記プロセッサが、値α及びa≡wα(mod q)の式に基づいて値aを演算し、ここで、wN≡1(mod q)であり、Nは1より大きな整数であり、Nはqと互いに素である、
請求項6に記載の第1のデバイス。
【請求項12】
請求項6に記載の第1のデバイスと秘密値の共有に達するための第2のデバイスにより実施される方法であって、前記方法は、
前記第1のデバイスから
前記調整データhを表す情報を受信するステップであって、ここで、0≦h<2
δであり、δは1より大きな整数である、受信するステップと、
整数値b及び
【数90】
の式に基づいて共通の秘密sを演算するステップであって、
ここで、bは0≦b<qを満たし、Bは正の整数であり、qは2
B+δ+1の整数倍であり、q、B、δ、及びcはシステムパラメータである、
演算するステップと、を有し、
前記第1のデバイスが、a≡b+e(mod q)という意味で、前記数字bと近似的共有状態にある数字aをもち、ここで、eは前記数字aと前記数字bとの間の差を表し、
【数91】
である、方法。
【請求項13】
請求項1に記載の第2のデバイスと秘密値の共有に達するための第1のデバイスにより実施される方法であって、前記方法は、
整数値a及び、
【数92】
の式に基づいて共通の秘密sを決定するステップであって、
ここで、aは0≦a<qを満たし、Bは正の整数であり、qは2
B+δ+1の整数倍であり、δは1より大きな整数であり、q、B、δ、及びcはシステムパラメータである、
共通の秘密sを決定するステップと、
【数93】
の式に基づいて調整データhを決定するステップと、
前記第2のデバイスに前記調整データhを表す情報を送信するステップと、を有し、
前記第2のデバイスが、a≡b+e(mod q)という意味で、前記数字aと近似的共有状態にある数字bを有し、ここで、eは前記数字aと前記数字bとの間の差を表し、
【数94】
である、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、秘密値の共有に達することに関する。本発明は、特に、秘密値の完全な共有に達するために、既に秘密値の近似的共有状態にある2つのデバイスに関する。
【背景技術】
【0002】
現在のアプリケーションの多くは、2つのパーティーAとパーティーBとがシェアされる値を生成することを望む鍵交換プロトコルを使用する。このようなプロトコルは、よく知られたディフィー・ヘルマン鍵交換プロトコルに関係する。暗号解析に耐えるために、パーティーは、プロトコルにおける演算にいくつかの小さなエラーを導入する。その結果、パーティーAとパーティーBとは、例えば、ほぼ共有するが必ずしも完全に共有するとは限らないvA、vBといった値を取得し得る。完全な共有に到達するために、パーティーのうちの一方、例えばAが、演算された秘密値vAを表すビット値例えばhを、他方のパーティーBに送信する。パーティーAは、更に、値vAから値sAを演算する。次に、パーティーBは、hとパーティーB自体の値vBとから値sBを演算する。システムの設計は、値vAと値vBとが互いに十分に近い場合に、秘密値sAと秘密値sBとが等しくなるようにされる。このようなシステムの一例が、J.Ding、X.Xie、及びX.Lin、「A simple provably secure key exchange scheme based on the learning with errors problem」、Cryptology ePrint Archive、Report 2012/688、2012、http://eprint.iacr.org/2012/688.pdf(以下「Ding」と表記される)に開示されている。
【0003】
C. Peikert、「Lattice Cryptography for the Internet」、Proceedings of the 6th Workshop on Post-Quantum Cryptography、PQ Crypto 2014、Springer LNCS、Vol.8772、2014、197~219頁(以下「Peikert」と表記される)は、生成された秘密のシェアされる値saと値sbとが統計的にバイアスされていない、すなわち一様に分散される方法を開示する。Peikertの構成では、2つのパーティーにより取得される秘密値は、1つの単一ビットである。
【0004】
Joppe Bos、Craig Costello、Leo Ducas、Ilya Mironov、Michael Naehrig、Valeria Nikolaenko、Ananth Raghunathan、及びDouglas Stebila、「Frodo:Take off the ring!Practical,Quantum-Secure Key Exchange from LWE」、IACR Cryptology ePrint Archive、Report 2016/659、https://eprint.iacr.org/2016/659(以下「Bos」又は「Frodo」と表記される)は、パーティーが整数の集合にわたって一様に分散された秘密値を共有するように、Peikertの方法の拡張形態を開示する。引用された従来の方法では、1つの単一の調整ビットが送信される。Peikertの方法とBosの方法との両方において、パーティーが多くのビットを共有する必要がある場合、この方法は、共有に達するための複数のインスタンスに並行して適用される。上述の参照例のすべてにおいて、完全な鍵共有は、2つのパーティーにより演算された最初に取得された値vA、値vBが過度に異なってはいない場合に達成され得る。
【発明の概要】
【発明が解決しようとする課題】
【0005】
2つのデバイス間において秘密値の共有に達する改善された手法を提供することが有益である。
【課題を解決するための手段】
【0006】
この課題をより適切に解決するために、本発明の第1の態様は、
第1のデバイスから調整データhを表す情報を受信するように構成された受信器であって、0≦h<2
δであって、δは1より大きな整数である、受信器と、
整数値の数字b及び
【数1】
の式に基づいて共通の秘密sを演算するように構成されたプロセッサであって、ここで、bは0≦b<qを満たし、Bは正の整数であり、qは2
B+δ+1の整数倍であり、q、B、δ、及びcはシステムパラメータである、プロセッサと、
を備える、第1のデバイスと秘密値の共有に達するための第2のデバイスを提供する。
【0007】
ヘルパーデータは0≦h<2δの範囲内であって、δは1より大きな整数であるので、第1のデバイスが第2のデバイスに送信するヘルパーデータhは、複数のビットからなる。このシステムでは、値aと値bとの間における近似的共有により緩い条件を課している間であっても、完全な鍵共有が達成され得る。記載されるデバイスは、第2のデバイスが第1のデバイスから受信するヘルパーデータhを使用して共通の秘密sを特定することを可能にするので、完全な共有が達成される。
【0008】
特に、a≡b+e(mod q)という意味で、第1のデバイスが、数字bの近似的共有に数字aを使用するときであって、ここで、eは数字aと数字bとの間の差を表し、
【数2】
という制約がaとbとの間の比較的大きな差を可能にするとき、完全な共有が達成される。この特徴は、より安全な鍵交換アルゴリズムの使用を可能にする。
【0009】
代替的に、所与の近似的共有条件に対して、本システムは、例えばPeikert又はBosに開示される従来技術の場合より、少なくとももう1つのビットを含む秘密値sの完全な共有に達するために使用され得る。
【0010】
特定の例において、プロセッサは、鍵交換プロトコルに基づいてbを演算するように構成されている。この鍵交換プロトコルは、鍵の近似的共有につながる、例えばDing、Peikert、及びBosにおいて開示される鍵交換プロトコルのうちの1つ、又はその変形例である。記載されるデバイスは、続いて、上で概説したように、効果的な手法で完全な共有に達することを可能にする。
【0011】
特定の例において、q=2m、及びδ=m-B-1であり、ここで、mは正の整数である。この構成は、比較的少ない調整ビットを使用しながら、複数のビットの共有に到達することを可能にする。
【0012】
特定の例において、プロセッサは、値β及びb≡wβ(mod q)の式に基づいて値bを演算するように構成されており、ここで、wN≡1(mod q)であり、Nは1より大きな整数であって、qと互いに素である。これは、α≡β+Ne(mod q)の条件に従って、第1のデバイスの値αと第2のデバイスの値βとの間に近似的共有状態が存在する状況をサポートすることを可能にし、ここで、
【数3】
である。
【0013】
本発明の他の態様によると、第2のデバイスと秘密値の共有に達するための第1のデバイスが開示され、第1のデバイスは、
整数値の数字a及び
【数4】
の式に基づいて共通の秘密sを決定することであって、ここで、aは0≦a<qを満たし、Bは正の整数であり、qは2
B+δ+1の整数倍であり、δは1より大きな整数であり、q、B、δ、及びcはシステムパラメータである、共通の秘密sを決定することと、
【数5】
の式に基づいて、調整データhを決定することと、
を行うように構成されたプロセッサと、
第2のデバイスに調整データhを表す情報を送信するように構成された送信器と、
を備える。
【0014】
ヘルパーデータhは0≦h<2δの範囲内であり、ここで、δは1より大きな整数であるので、第1のデバイスが第2のデバイスに送信するヘルパーデータhは、複数のビットからなる。このシステムにおいて、第1のデバイスと第2のデバイスとの値aと値bとの間の近似的共有により緩い条件を課している間であっても、完全な鍵共有が達成され得る。記載されるデバイスは、第2のデバイスが共通の秘密sを特定するために必要とするヘルパーデータhを生成及び送信することを可能にするので、完全な共有が達成される。
【0015】
特に、a≡b+e(mod q)という意味で、第1のデバイスが数字bの近似的共有に数字aを使用するときであって、ここで、eは数字aと数字bとの間の差を表し、
【数6】
という制約が、aとbとの間の比較的大きな差を可能にするとき、完全な共有が達成される。この特徴は、より安全な鍵交換アルゴリズムの使用を可能にする。
【0016】
代替的に、所与の近似的共有条件に対して、本システムは、例えばPeikert又はBosに開示される従来技術の場合より、少なくとももう1つのビットを含む秘密値sの完全な共有に達するために使用され得る。
【0017】
特定の例において、プロセッサは、鍵交換プロトコルに基づいてaを演算するように構成されている。この鍵交換プロトコルは、鍵の近似的共有につながる、例えば、Ding、Peikert、及びBosにおいて開示される鍵交換プロトコルのうちの1つ、又はその変形例である。
【0018】
特定の例において、q=2mであり、ここで、mは正の整数であり、共通の秘密sは(a+c)mod 2mの二進展開のB個の最上位ビットに対応し、調整データhが二進展開の次のδビットに対応する。これは、一緒にaを形成するデータ成分の特に魅力的な表現である。更に異なったより具体的な例では、δ=m-B-1である。この値は、ヘルパーデータhのために比較的少ないビットを使用しながら、一度に複数のビットを調整することを可能にする、例えば、この値のδは、同じ近似的共有条件のもとで、Bosに開示される方法を使用する場合に比べて、もう1つのビットを調整することを可能にする。
【0019】
特定の例において、c=0である。この場合、共通の秘密sは、aと
【数7】
との、最も近い整数に切り下げられた商に等しい。
【0020】
特定の例において、
【数8】
である。この場合、共通の秘密sは、aと
【数9】
との、最も近い整数に丸められた商に等しく、丸めは、中央の場合には切り上げるように実施される。
【0021】
特定の例において、
【数10】
である。この場合、共通の秘密sは、aと
【数11】
との、最も近い整数に丸められた商に等しく、丸めは、中央の場合には切り下げるように実施される。
【0022】
特定の例において、プロセッサは、値αと式a≡wα(mod q)とに基づいて値aを演算するように構成されており、ここで、wN≡1(mod q)であり、Nは1より大きな整数であって、Nはqと互いに素である。これは、条件α≡β+Ne(mod q)に従った、第1のデバイスの値αと第2のデバイスの値βとの間における近似的共有状態が存在する状況をサポートことを可能にし、ここで、
【数12】
である。
【0023】
本発明の別の一態様によると、上述の第1のデバイスと第2のデバイスとを備えるシステムが提示され、a≡b+e(mod q)という意味で、数字aが数字bとの近似的共有状態にあり、ここで、eは数字aと数字bとの間の差を表し、
【数13】
である。これは、値aと値bとに関して近似的共有状態にある2つのデバイスが、第1のデバイスから第2のデバイスに調整データhを送信することにより、共通の秘密sに対して完全な共有に達することを可能にする。
【0024】
本発明の別の一態様によると、第1のデバイスと秘密値の共有に達する方法が、第2のデバイスにより実施され、本方法は、
第1のデバイスから調整データhを表す情報を受信することであって、ここで、0≦h<2
δであり、δは1より大きな整数である、受信することと、
整数値の数字b及び
【数14】
の式に基づいて共通の秘密sを演算することであって、ここで、bは0≦b<qを満たし、Bは正の整数であり、qは2
B+δ+1の整数倍であり、q、B、δ、及びcはシステムパラメータである、演算することと、
を有する。
【0025】
本発明の別の一態様によると、第2のデバイスと秘密値の共有に達する方法が、第1のデバイスにより実施され、本方法は、
整数値の数字a及び
【数15】
の式に基づいて共通の秘密sを決定することであって、ここで、aは0≦a<qを満たし、Bは正の整数であり、qは2
B+δ+1の整数倍であり、δは1より大きな整数であり、q、B、δ、及びcはシステムパラメータである、決定することと、
【数16】
の式に基づいて調整データhを決定することと、
第2のデバイスに調整データhを表す情報を送信することと、
を有する。
【0026】
本発明の上述の実施形態、実施態様、及び/又は態様のうちの2つ以上が、有用と考えられる任意の手法により組み合わされることが当業者により理解される。デバイスの説明される変更及び変形に対応した本方法の変更及び変形が本説明に基づいて当業者により実行され得る。
【0027】
本発明のこれらの態様及び他の態様が、添付図面を参照しながら以下で更に詳細に説明される。
【図面の簡単な説明】
【0028】
【
図1】第1のデバイスと秘密値の共有に達するための第2のデバイスのブロック図である。
【
図2】第2のデバイスと秘密値の共有に達するための第1のデバイスのブロック図である。
【
図3】第1のデバイスと秘密値の共有に達するための第2のデバイスにより実施される方法のフロー図である。
【
図4】第2のデバイスと秘密値の共有に達するための第1のデバイスにより実施される方法のフロー図である。
【
図5】秘密値の共有に達するための第1のデバイスと第2のデバイスとを備えるシステムのタイミング図である。
【
図6】システムにおいて使用される識別子のビット長の説明を示す図である。
【発明を実施するための形態】
【0029】
請求項により規定される本発明の例示的な実施形態及びそれらの実施形態の均等物の包括的な理解を助けるために、添付図面を参照しながら以下の説明が提供される。以下の説明は、その理解を助ける様々な特定の詳細事項を含むが、これらの詳細事項は例示にすぎないとみなされる。従って、当業者は、本明細書において説明される実施形態の様々な変形及び変更が、本発明の範囲から逸脱することなくなされ得ることを認識する。加えて、よく知られた機能及び構築物の説明が、明確且つ簡潔となるように省略される。
【0030】
本開示において次の表記が使用される。すなわち、ν≧2である任意の2つの整数xと整数νとに対して、〈x〉
νは、
0≦〈x〉
ν≦ν-1 及び 〈x〉
ν≡x mod ν
を満たす整数を表す。更に、任意の実数yに対して、
【数17】
という表記は、yを最も近い整数に切り下げた結果を表し、
【数18】
という表記は、yを最も近い整数に切り上げた結果を表す。例えば、
【数19】
【数20】
及び
【数21】
である。
【0031】
特定の実施形態において、2つのパーティーAとパーティーBとが、パーティーAが数字aを演算し、パーティーBが数字bを演算する特定のプロトコルを使用する。プロトコルは、aとbとが演算された手法を理由として、それらが近似的共有するようにされなければならない。この近似的共有は、AとBとに知られたシステム定数q、B、及びδの観点から表され、ここで、q、δ、及びBは正の整数であり、qは次のように、2
B+δ+1の整数倍である。すなわち、aとbとの両方が区間[0,q)内の整数であり、
a≡b+e(mod q) (式1)
を満たし、ここで、
【数22】
である。本開示を使用することで、2つのパーティーは、一方のパーティー、例えばパーティーAがパーティーBにδビットの調整データを送信したことにより、共通のBビットの秘密Sに到達し得る。もう1つの整数システムパラメータc及びその関連性は、以下で開示される。整数hと整数vとは、次式の
【数23】
により規定され、ここで、
【数24】
及び
【数25】
である。
【0032】
特に、
【数26】
である。q=2
mである特別な場合には、秘密値sは、
【数27】
の二進展開のB個の最上位ビットに対応し、hは、
【数28】
の二進展開の次の上位δビットに対応し、νは、
【数29】
のm-B-δ個の最下位ビットに対応する。
【数30】
を法として式(1)を検討することにより、次式が得られる。
【数31】
【数32】
であり、式(2)が満たされるので、次式が得られる。
【数33】
式(5)と式(6)とを組み合わせることにより、次式が得られる。
【数34】
式(1)と式(3)とを組み合わせることとにより、次式が得られ、
【数35】
更に、式(8)から、次式が得られる。
【数36】
式(9)と式(7)とを組み合わせること、及び、性質S∈[0,2
B)を使用することにより、パーティーBが、
【数37】
の式を使用してSを演算し得ることになる。式(10)を簡略化することにより、パーティーBが、代替的に、
【数38】
の式を使用してSを演算し得ることになる。式(10)及び式(11)は、b、hとシステムパラメータq、B、及びδとからSが演算され得ることを示す。従って、パーティーAがパーティーBにhを表す情報を送信した場合、パーティーBは、パーティーAとパーティーBとの間における共通の秘密として使用され得るSを入手し得る。式(3)は、
【数39】
を意味するので、0≦h<2
δとなり、従って、hはδビットで表され得る。
【0033】
c=0の場合、aと(q/2
B)との、最も近い整数に切り下げられた商に秘密Sが等しいことを、式(4)が表すことが確認される。c=q/2
B+1を選択した場合、秘密Sは、aとq/2
Bとの、(2
Bを法として)最も近い整数に丸められた(中央の場合、すなわち、ある整数kに対してaが
【数40】
に等しい場合には、切り上げられた)商に等しい。c=q/(2
B+1)-1を選択した場合、秘密Sは、aとq/2
Bとの、2
Bを法として最も近い整数に丸められ、中央の場合に切り下げられた商に等しい。所望により、cの他の値が、別の結果を取得するために使用される。cに対するこれらの特別な選択に対して、パーティーBによるSの演算は簡略化され得る。実際、パーティーBは、
【数41】
の式を使用して、及び、
【数42】
として、Sを取得し得る。
【0034】
q=2mの場合、共通の秘密Sは、aのB個の最上位ビットから構成されており、ヘルパーデータhは、aの後続のδビットからなる。更に、aが一様に分散されている場合、ヘルパーデータhを与えられた共通の秘密Sも同様に、一様に分散される。すなわち、敵対者は、ヘルパーデータhの観察から、共通の秘密Sに関する情報を取得することができない。
【0035】
「近似的共有」条件は一般化され得ることに留意されたい。例えば、qと互いに素である、すなわち、Nとqとの最大公約数が1となるある整数Nに対して、
a≡b+Ne(mod q) (式14)
という条件により式(1)を置換することが可能である。式(2)に記述されるeの絶対値に対する条件は、同じままに維持される。すなわち、
【数43】
となる。例えば、ある整数mに対してq=2
mである場合、Nは、任意の奇数であり得る。このような場合において、秘密及びヘルパーデータの演算は、次の導関数を使用して実施され得る。wN≡1(mod q)となるように、wが整数であると仮定する。qとNとが互いに素であるので、このような整数が存在する。α:=〈wa〉
q及びβ:=〈wb〉
qと仮定する。従って、α≡β+e(mod q)となる。従って、両パーティーは、a及びbの代わりに、それぞれα及びβを使用して、前述のように、
【数44】
という秘密を共有し得る。
【0036】
δ=1及びq=2mの場合であって、aと2m-Bとの商に最も近い整数として秘密Sを取得する場合、1つの調整ビットhが送信され、両パーティーは、例えば、|e|≦2m-B-2であるときに常に、Bビットの秘密sを共有し得る。q=2m且つδ=m-B-1である場合、両パーティーは、|e|≦2m-B-1-1であるときに常に、Bビットの秘密sを共有し得る。従って、調整ビットの数を増やすことにより、両パーティーは、1ビット分長い秘密値を共有し得る。
【0037】
本明細書において説明される技術を使用すると、aのm-B-δ≧1個の最下位ビットに関する情報の交換をせずに、秘密に関して共有に達することが可能である。δを変化させることにより、調整データを送信することに関する帯域幅要求と、完全な共有の成功に関する近似要求との間のトレードオフを達成することが可能である。
【0038】
図1は、第1のデバイス250と秘密値の共有に達するための第2のデバイス150の一例のブロック図を示す。第2のデバイス150は、アンテナ100と受信器101とプロセッサ102とメモリ105とを備える。アンテナ100は、信号を受信するための受信器101に接続されている。動作時、メモリ105は、データブロック103と演算ブロック104とを含む。アンテナ100は、適切な通信規格を使用して、無線で信号を送信及び/又は受信するために使用される。代替的な実施態様において、アンテナ100は、有線(ネットワーク)接続により置換される。本開示では受信器102のみが必要とされるが、実用的な実施態様は、例えばアンテナ100を使用して信号を送信するための送信器を更に備える。プロセッサ102は、受信器101とメモリとを含むデバイスの動作を制御する。メモリ105のデータブロック103は、システムパラメータ(例えばq、B、δ、及びc)、秘密s、受信された調整データh、値b、及び暗号化される又は暗号解読される内容等の他のデータが挙げられるがこれらに限定されない様々なデータを記憶するために使用される。δ演算ブロック104は、別のデバイス(例えば第1のデバイス250)との秘密値の共有に達するための少なくとも1つの方法を実施する実行可能コンピュータコードを含む。
【0039】
受信器101は、第1のデバイスから調整データhを表す情報を受信するように構成されており、ここで、0≦h<2
δであり、δは1より大きな整数である。プロセッサ102は、整数値の数字b及び
【数45】
の式に基づいて、共通の秘密sを演算するように構成されている。
【0040】
例えば、sは、上述の式が維持される値となるように選択され得、ここで、0≦s<2Bである。
【0041】
値bは0≦b<qを満たし、システムパラメータBは正の整数であり、システムパラメータqは2B+δ+1の整数倍である。これらのシステムパラメータは、例えば、デバイスに予めプログラムされるか、又は、信頼性のあるパーティーから受信される、これらのシステムパラメータは必ずしも秘密に保たれるとは限らない。
【0042】
プロセッサ102は、共通の秘密sを演算する前に、bを演算するように構成されている。このような演算は、鍵交換プロトコルに基づく。そのために、第2のデバイス150は、鍵交換プロトコルに従って、第2のデバイス150の受信器102又は任意選択的な送信器を介して第1のデバイス250又は、(図示されない)第三者である中間体等の別のデバイスと更なる情報を交換する。この鍵交換プロトコルの詳細は本開示の範囲外である。第1のデバイス250が、a≡b+e(mod q)という意味で、数字bの近似的共有に数字aを使用する限り、第1のデバイス250が、
図2を参照して以下で開示されるように調整データhを演算した場合、第2のデバイスが調整データhを使用して共通の秘密sを特定し得ることが、第2のデバイスの性質であり、ここで、eは数字aと数字bとの間の差を表し、ここで、
【数46】
である。
【0043】
特定の値のcに対して、共通の秘密sの演算は、簡略化され得る(式12及び式13を更に参照されたい)。第2のデバイスのプロセッサ102は、
【数47】
の式を評価することによりsを演算するように構成され得る。更に、第2のデバイスのプロセッサ102は、
【数48】
の式を評価することによりsを演算するように構成され得、この式は代替的に、
【数49】
のように実施され得る。
【0044】
特定の例において、q=2m及びδ=m-B-1であり、ここで、mは正の整数であり、>B+3である。
【0045】
別の一例において、プロセッサ102は、値βと式b≡wβ(mod q)とに基づいて値bを演算するように構成されており、ここで、wN≡1(mod q)であり、ここで、Nは1より大きな整数であって、qと互いに素である。これは、例えば、式14に関係してここまでに説明される、aとbとの間のより大きな差をサポートすることを可能にする。
【0046】
図2は、第2のデバイス150と秘密値の共有に達するための第1のデバイス250の一例を描いたブロック図を示す。第1のデバイス250は、アンテナ200と送信器201とプロセッサ202とメモリ205とを備える。アンテナ200は、信号を受信するための送信器201に接続されている。動作時、メモリ205は、データブロック203と演算ブロック204とを含む。アンテナ200は、適切な通信規格を使用して、無線で信号を送信及び/又は受信するために使用される。代替的な実施態様において、アンテナ200は、有線(ネットワーク)接続により置換される。本開示の説明では、送信器202のみが必要とされるが、実用的な実施態様は、例えばアンテナ200を使用して信号を受信するための受信器を更に備える。プロセッサ202は、送信器201とメモリ205とを含むデバイスの動作を制御する。メモリ205のデータブロック203は、システムパラメータ(例えばq、B、δ、及びc)、秘密s、調整データh、値b、及び暗号化される又は暗号解読される内容等の他のデータが挙げられるがこれらに限定されない様々なデータを記憶するために使用される。演算ブロック204は、別のデバイス(例えば第2のデバイス150)との秘密値の共有に達するための少なくとも1つの方法を実施する実行可能コンピュータコードを含む。
【0047】
実用的な実施態様において、プロセッサ202は、整数値a及び
【数50】
の式に基づいて共通の秘密sを決定するように構成される。これは、代替的に
【数51】
と表記され、ここで、値aは0≦a<qを満たし、システムパラメータBは正の整数であり、システムパラメータqは2
B+δ+1の整数倍であり、システムパラメータδは1より大きな整数である。
【0048】
共通の秘密sを特定する前又は特定した後(又は同時に)、プロセッサ202は、
【数52】
の式に基づいて調整データhを特定する。
【0049】
【0050】
送信器201は、プロセッサ202の制御下で、第2のデバイスに、調整データhを表す情報を送信するように構成される。例えば、調整データhを表す情報は、調整データhの二進表現、又は調整データhの符号化された表現であり得る。
【0051】
特定の例において、プロセッサ202は、鍵交換プロトコルに基づいてaを演算するように構成されている。そのために、第1のデバイス250は送信器201又は任意選択的な受信器を使用して、鍵交換プロトコルに従って、第2のデバイス150、又は(図示されない)第三者である中間体等の別のデバイスと更なる情報を交換する。この鍵交換プロトコルの詳細は、本開示の範囲外である。第1のデバイス250が、第2のデバイス150に追加的な調整データhを提供し得ることが、第1のデバイス250の性質である。第1のデバイス250がa≡b+e(mod q)という意味で、第2のデバイス150により使用される数字bの近似的共有に数字aを使用する限り、第2のデバイス150は、
図1を参照して本明細書において説明される手法で調整データhに数字bを組み合わせることにより、調整データhを使用して共通の秘密sを特定し得、ここで、eが数字aと数字bとの間の差を表し、ここで、
【数54】
である。
【0052】
特定の一実施態様例において、q=2mであり、ここで、mは正の整数であり、共通の秘密sは(a+c)mod 2mの二進展開のB個の最上位ビットに対応し、調整データhは(a+c)mod 2mの二進展開の次の上位δビットに対応する。例えば、δ=m-B-1は、aとbとの間の共有にどの程度近似的でなければならないかに関係した比較的緩い制約を可能にするとともに、比較的少ないビットの調整データδを送信しながら、調整され得る比較的大きなビット数を提供する。しかし、この値は、単に一例として提示される。
【0053】
秘密sは、いくつかの異なる手法により値aから導出され得る。例えば、システムパラメータcを変化させることにより、異なる挙動が実現され得る。最適な性能を得るために、第1のデバイスと第2のデバイスとの両方において(cを含む)同じ値のシステムパラメータが使用されなければならない。例えば、共通の秘密sが、aと
【数55】
との、最も近い整数に切り下げられた商に等しくなるようにc=0が選択され得る。代替的に、
【数56】
は、共通の秘密sがaと
【数57】
との、最も近い整数に丸められた商に等しくなるように選択され、丸めは、中央の場合には切り上げるように実施される。更に、代替的に、
【数58】
は、共通の秘密sがaと
【数59】
との、最も近い整数に丸められた商に等しくなるように選択され、丸めは、中央の場合には切り下げるように実施される。
【0054】
特定の一実施態様例において、プロセッサは、値αと式a≡wα(mod q)とに基づいて値aを演算するように構成されており、ここで、wN≡1(mod q)であり、Nは1より大きな整数であって、Nはqと互いに素である。これは、例えば式14に関係してここまでに説明されるaとbとの間のより大きな差をサポートすることを可能にする。
【0055】
プロセッサ102及び202は、メモリに記憶されたプログラムを実行すること、及び例えば送信器、受信器、メモリ等の周辺機器を制御することが可能な任意の種類のコンピュータプロセッサであり得る。例えば、プロセッサ102又は202は、マイクロ制御装置又はマイクロプロセッサであり得る。このようなプロセッサは、当技術分野においてよく知られている電子デバイスである。更に、プロセッサ102、202は、複数のサブプロセッサを備え、並行して特定のタスクを実施するように連携し得る。メモリ105又は205は、揮発性又は不揮発性の手法によりデジタルデータを記憶することが可能な任意の種類のメモリであり得る。メモリ105又は205は、コンピュータ可読であり、データを入手及び/又は記憶するために、それぞれのプロセッサ102、202により使用され得る。このようなメモリ105、205は、電子デバイスである。よく知られた例として、フラッシュメモリ、ランダムアクセス(RAM)メモリ、読み出し専用メモリ(ROM)、及び磁気又は光学ドライブが挙げられる。これらの種類のメモリの組み合わせが各デバイスに使用される。
【0056】
特定の例において、1つのデバイスが、第1のデバイスと第2のデバイスとの両方のすべてのコンポーネント及び機能を備える。例えば、デバイスは、第1のデバイス及び第2のデバイスの役割間において役割を切り替え得る。
【0057】
第1のデバイスから第2のデバイスへのデータ送信は直接的な通信によるものである。代替的に、送信は、ネットワークを介して実施され、調整データは、第2のデバイスに達する前に、ネットワークにおけるいくつかのノードを通る。例えば、データ送信は、Wi-Fi(登録商標)、Bluetooth(登録商標)、3G、4G、LTEデータネットワーク技術を使用し得る。
【0058】
図3は、第1のデバイスと秘密値の共有に達するための第2のデバイスにより実施される方法を示す。
図4は、第2のデバイスと秘密値の共有に達するための第1のデバイスにより実施される方法を示す。
図5は、第1のデバイス501と第2のデバイス502とが共有に達するためにどのように連携し得るかを示す。
図3及び
図4に示されるステップに対応した
図5に示されるステップは、同じ参照符号を使用して示される。
【0059】
図3及び
図5を参照すると、第2のデバイスは、ステップ301から本方法を開始する。開始は、適切な内部又は外部信号、又は、例えばユーザーにより提供された入力により引き起こされる。例えば、第1のデバイスが第2のデバイスとの通信を構成しようと試みるときに本方法が開始される。ステップ302において、システムパラメータq、B、δ、及びcが決定される。例えば、これらのシステムパラメータは、メモリ103から入手される。任意選択的に、矢印503により示されるように、このステップは、使用されるシステムパラメータに関して第1デバイスと第2のデバイスとの間でネゴシエーションすることを伴い得、例えば、両方のデバイスによりサポートされたパラメータの集合に関してメッセージが交換され得る。Bは正の整数であり、δが1より大きな整数であり、qは2
B+δ+1の整数倍である。ステップ303において、数字bが決定される。例えば、この数字は、第2のデバイスに利用可能なデータから演算される。代替的に、数字bは、外部供給源、例えば信頼性のあるパーティーから、好ましくは暗号化された形態で受信される。数字bは、格子ベース鍵交換プロトコルの一部として取得され得る。矢印504により示されるように、値bは、第1のデバイス501の対応する値aと近似的共有状態にある。ステップ304において、第2のデバイスは、矢印505により示されるように調整データhを表す情報を受信する。情報は、暗号化された形態で第2のデバイスに送信され、例えば第2のデバイスにより暗号解読される。調整データは、0≦h<2
δの範囲内である。ステップ305において、第2のデバイスは、
【数60】
の式に基づいてsを演算する。例えば
【数61】
である。sの他の表現も可能である。
【0060】
ステップ306において、任意選択的に、共通の秘密sに基づいて鍵が特定される、次に、本方法は、ステップ307において終了とされる。任意選択的に、第2のデバイスは、この時点から、共通の秘密s及び/又は共通の秘密sに基づく鍵を使用することを開始し得る。可能な用途は、例えば暗号化、暗号解読、デジタル署名生成及び検証といった、データ、例えば内容の暗号処理が挙げられる多くの用途のうちの任意の1つ又は複数によるものであり得る。例えば、共通の秘密sは、矢印506により示されるように、第1のデバイスと第2のデバイスとの間におけるメッセージの安全な交換のために使用され得る。更に、共通の秘密s及び/又は共通の秘密sから導出された鍵は、後の使用のために、第2のデバイスのメモリに記憶され得る。
【0061】
図4及び
図5を参照すると、第1のデバイスは、ステップ401から本方法を開始する。開始は、適切な内部又は外部信号、又は、例えばユーザーにより提供された入力により始動される。例えば、本方法は、第2のデバイスが第1のデバイスとの通信を構成しようと試みるときに開始される。ステップ402において、システムパラメータq、B、δ、及びcが決定される。例えば、これらのシステムパラメータがメモリから入手される。任意選択的に、矢印503により示されるように、このステップは、使用されるシステムパラメータに関して第1デバイスと第2のデバイスとの間においてネゴシエーションすることを伴い得、例えば、両方のデバイスによりサポートされたパラメータの集合を特定するために、メッセージが交換され得る。Bは正の整数であり、δは1より大きな整数であり、qは2
B+δ+1の整数倍である。ステップ403において、第1のデバイスが、数字aを決定する。この決定は、例えば鍵交換プロトコルに基づく。例えば、この数字aは、第1のデバイスに利用可能にするデータから演算される。代替的に、数字aは、外部供給源、例えば信頼性のあるパーティーから、好ましくは暗号化された形態で受信される。数字aは、格子ベース鍵交換プロトコルの一部として取得され得る。矢印504により示されるように、値aは、第2のデバイス502の対応する値bと近似的共有状態にある。ステップ404において、第1のデバイスが調整データhを決定する。この調整データは、
【数62】
の式に基づく。
【0062】
調整データは、0≦h<2
δの範囲内であり得る。ステップ405において、第1のデバイスが、第2のデバイスに、矢印505により示されるように調整データhを表す情報を送信する。情報は、例えば、暗号化された形態で第2のデバイスに情報を送信するために、第1のデバイスにより暗号化される。ステップ406において、第1のデバイスが、共通の秘密sを決定する。このステップは、他のステップの前に実施される。代替的な実施態様において、数aを決定する前に共通の秘密sが決定され、第1のデバイスは、共通の秘密sから数字aを導出する。共通の秘密sは、
【数63】
の式に基づいて演算される。他の表記では、
【数64】
となる。sの他の表現も可能である。ステップ407において、任意選択的に共通の秘密sに基づいて鍵が決定される。代替的に、共通の秘密sは、予め決定された鍵に基づく。次に、本方法は、ステップ408において終了とされる。任意選択的に、第1のデバイスは、共通の秘密s及び/又は鍵を使用し得る。可能な用途は、例えば、暗号化、暗号解読、デジタル署名生成及び検証といった、内容等のデータの暗号処理が挙げられる多くのもののうちの任意の1つ又は複数によるものであり得る。例えば、共通の秘密s又は鍵は、矢印506により示されるように、第1のデバイスと第2のデバイスとの間におけるメッセージの安全な交換のために使用され得る。更に、共通の秘密s及び/又は鍵は、後の使用のために第2のデバイスのメモリに記憶され得る。
【0063】
図6は、q=2
m且つc=0の特定の場合に対して、a、s、h、m、B、及びqの間において可能な関係を概念的に描いた一例を示す。この図では、aの二進表現が(左側の)最上位ビットから(右側の)最上位ビットまで示される。数字601において、共通の秘密sがaのB個の最上位ビットにより表されることが示される。数字602において、調整データhがaの(B+1)番目から(B+δ)番目までの最上位ビットにより表されることが示される。数字603において、残りの(B+δ+1)番目からq番目のビット、すなわちaのm-B-δ個の最下位ビットは、共通の秘密sと調整データhとのいずれによっても表されないことが示される。この特徴は、調整データhのビット数に関係したデータの削減、及び/又は、aとbとの間の近似的共有に関係した許容範囲の増加を可能にする。
【0064】
本開示において、1つを上回る調整ビットを送信し得る調整方法が提示される。本明細書において開示される技術は、例えば、近似的共有が「どの程度近似的で」なければならないかに関してより厳密さの低い条件を課しながら、パーティーが特定の数のビットを共有することをもたらすために使用される。近似的共有に対する、より厳密さの低い条件を可能にすることは、システムのセキュリティーを改善し得る。代替的に、ほぼ同じ近似条件を使用して(すなわち、同様のセキュリティー保証を使用することで)、本方法の例は、2つのパーティーが1ビット分長い秘密値を共有することを可能にする。以下、本方法の利点のうちのいくつか、及び、その影響が数値例により開示される。
【0065】
Bosは、量子安全鍵交換方法を開示する。一方のパーティーが、別のパーティーに小さなシードと、Z
qからの要素を含む
【数65】
の行列とを送信する。それに対応して、
【数66】
の行列と、調整ビットを含む二進値の
【数67】
の行列とが送信される。両方のパーティーが、
【数68】
の行列を構築し、その行列の各エントリーから、B個の共通ビットが抽出される。(下記の表において「長さ」というラベルの付いた)抽出されたビットの総数は、従って、
【数69】
に等しく、送信されたビットの総数は、
【数70】
に等しい。表1は、Bosの表2において提案される例の圧縮されたバージョンである。
【0066】
【0067】
Bosによると、1つの調整ビットが送信される場合、それらの数字に2
m-B-2未満の違いがある場合(ここで、mはq=2
mとなるものである)、パーティーが共通のBビットの秘密を共有することが保証される。本明細書において開示される技術を使用した結果は、同じ条件下で、δ=m-B-2個の調整ビットが送信される場合、2つのパーティーがB+1ビットの秘密を共有し得ることを示す。調整データの量は、従って、行列エントリー当たりlog
2(q)-B-2ビットに等しく、使用される帯域幅の合計は、
【数71】
に等しい。本明細書において開示される技術において見られるように、共有されるビット数は、Bosの開示におけるビット数より大きく、
【数72】
及び/又は、
【数73】
を減らすこと、つまりは、全体的な帯域幅の使用を減らすことができる。本明細書において開示される技術を使用して、表2に示す結果が得られた。(「割合」というラベルの付いた)最も右の列は、提案される調整スキームの使用される帯域幅とBosに開示されるシステムの使用される帯域幅との割合を示す。
【0068】
【0069】
本発明が、本発明を実施するように適応されたコンピュータプログラム、特に担体内の、又は担体上のコンピュータプログラムにも適用されることが理解される。プログラムは、例えば部分的にコンパイルされた形態の、又は、本発明に従った方法の実施態様における使用に適した任意の他の形態の、ソースコード、オブジェクトコード、ソースコードとオブジェクトコードとの中間のコードの形態であってよい。このようなプログラムが、多くの異なるアーキテクチャ設計を採用してよいことが更に理解される。例えば、本発明に従った方法又はシステムの機能を実施するプログラムコードは、1つ又は複数のサブルーチンに再分割されてよい。これらのサブルーチン間で機能を分散する多くの異なる手法が、当業者に明らかとなる。サブルーチンは、1つの実行可能ファイルに一緒に記憶されて内蔵プログラムを形成してよい。このような実行可能ファイルは、コンピュータにより実行可能な命令、例えば、プロセッサ命令及び/又はインタープリター命令(例えばJava(登録商標)インタープリター命令)を含んでよい。代替的に、サブルーチンのうちの1つ又は複数又はすべてが、少なくとも1つの外部ライブラリファイルに記憶されてよく、静的に、又は動的に、例えば実行時に主プログラムにリンクされてよい。主プログラムは、サブルーチンのうちの少なくとも1つに対する少なくとも1つのコールを含む。サブルーチンは、互いに対するコールを更に含んでよい。コンピュータプログラムに関する一実施形態は、本明細書に記載される方法のうちの少なくとも1つの各処理ステップに対応したコンピュータにより実行可能な命令を備える。これらの命令は、サブルーチンに再分割されてよく、及び/又は、静的に、又は動的にリンクされてよい1つ又は複数のファイルに記憶されてよい。コンピュータプログラムに関する別の一実施形態は、本明細書に記載されるシステム及び/又は製品のうちの少なくとも1つの各手段に対応した、コンピュータにより実行可能な命令を備える。これらの命令は、サブルーチンに再分割されてよく、及び/又は、静的に、又は動的にリンクされてよい1つ又は複数のファイルに記憶されてよい。
【0070】
コンピュータプログラムの担体は、プログラムを収容することが可能な任意の実体又はデバイスであってよい。例えば、担体は、ROM、例えば、CD ROM又は半導体ROM、又は、磁気記憶媒体、例えば、フラッシュドライブ又はハードディスク等の記憶媒体を含んでよい。更に、担体は、電気又は光学ケーブルを介して、又は、無線又は他の手段により搬送されてよい電気又は光信号等の伝送可能担体であってよい。プログラムがこのような信号において具現化される場合、担体は、このようなケーブル、又は、他のデバイス又は手段により構成されてよい。代替的に、担体は、プログラムが中に組み込まれた集積回路であってよく、この集積回路は、関連する方法を実施するように適応されているか、又は、関連する方法の実施に使用される。
【0071】
上述の実施形態は本発明を限定するのではなく例示すること、及び、当業者が添付の請求項の範囲から逸脱することなく、多くの代替的な実施形態を設計することが可能であることが留意されなければならない。特許請求の範囲において括弧間に位置するいずれの参照符号も、請求項を限定すると解釈されてはならない。「備える」という動詞及びその活用形の使用は、請求項に記載された要素又はステップ以外の要素又はステップの存在を排除しない。要素に先行する「a」又は「an」という冠詞は、複数のこのような要素の存在を排除しない。本発明は、いくつかの区別される要素を備えるハードウェアにより、及び適切にプログラムされたコンピュータにより実施されてよい。いくつかの手段を列挙したデバイスの請求項において、これらの手段のうちのいくつかは、同じ1つの部材のハードウェアにより具現化されてよい。単に特定の手段が相互に異なる従属請求項に記載されているということが、利点を得るためにこれらの手段の組み合わせが使用不可能なことを示すわけではない。