超特異同種写像ディフィー・ヘルマン

From Wikipedia, the free encyclopedia

超特異同種写像ディフィー・ヘルマン鍵共有 (ちょうとくいどうしゅしゃぞうディフィー・ヘルマンかぎきょうゆう、英語: Supersingular isogeny Diffie–Hellman key exchange、略称: SIDH)は、耐量子英語: post-quantum cryptography暗号アルゴリズムであり、安全でない通信路を用いて二者間で共通鍵を共有するために用いられるプロトコルである。ディフィー・ヘルマン鍵共有のアナロジーであるが、超特異同種写像グラフ英語版に基づいており、量子コンピュータを利用した攻撃に対して耐性があるように設計されている。SIDHは、耐量子鍵交換方式の中では最も短い公開鍵長を誇っており、鍵圧縮テクニックを用いると、128ビット量子安全を達成する公開鍵は2688ビットとなる[1]。 また、NTRURing-LWE英語版などの他の耐量子鍵交換方式と異なる点として、フォアワードセキュリティという性質を持つこともあげられる。この性質は、長期間使用される秘密鍵がある時点で漏洩してしまったとしても、それ以前のセッションの機密性が脅かされることがない、という性質である。 これらの性質により、現在インターネット通信において広く用いられているディフィー・ヘルマン鍵共有(DHE)や楕円曲線ディフィー・ヘルマン鍵共有(ECDHE)を置き換える耐量子プロトコルの候補である。

ある種の問題に対しては、量子コンピュータ上で動くアルゴリズムは、従来の古典コンピュータ上のアルゴリズムに比べて低い計算の複雑さを達成しうる。つまり、最も効率の良い古典アルゴリズムよりも早く問題を解くことができる場合がある。例えば、素因数分解問題を解く最も良い古典アルゴリズムである一般数体ふるい法準指数時間であるのに対して、量子コンピュータ上で動作するショアのアルゴリズムは素因数分解を多項式時間で実行できる。これは、公開鍵暗号においては重要なことである。代表的な公開鍵暗号であるRSA暗号の安全性は素因数分解の困難性に依存している。また、ショアのアルゴリズムは、ディフィー・ヘルマン鍵交換楕円曲線ディフィー・ヘルマン鍵交換楕円曲線DSAエルガマル暗号などの多くの暗号システムの安全性が依拠する離散対数問題も効率的に解くことができる。 2020年現在の量子コンピュータはまだ小規模であるが、現在進められている開発が進み大規模な量子コンピューターが実現されれば、TLS / SSLなどで利用されている現代の暗号プロトコルは破られてしまうため、量子コンピュータに対しても耐性のある暗号(耐量子暗号)の開発が促進されている[2]

SIDHは2011にDe Feo, Jao, Plutの三者によって開発された[3]。 従来の楕円曲線暗号の演算を使っており、特許は申請されていない。SIDHはフォアワードセキュリティを持ち、長期間保存される秘密鍵の安全性に依存しない。フォアワードセキュリティは、暗号通信の長期間の安全性を向上させ、集団監視攻撃英語版から通信を守り, ハートブリード攻撃のような脆弱性による影響を減少させる[4][5]

背景

ヴァイエルシュトラス方程式で表現される楕円曲線のj-不変量(j-invaliant) は、次式で与えられる。

.

同型(isomorphic)の曲線は同じj-不変量を持つ。代数的に閉じている体においては、同じj-不変量を持つ二つの楕円曲線は同型である。

超特異同種ディフィー・ヘルマンプロトコル(SIDH)では、超特異楕円曲線(の同型類)と曲線間の同種写像を用いる。 2つの楕円曲線 の間の同種写像 は、群準同型性を持つ有理写像英語版のことを言う。 曲線 の任意の巡回部分群 に対して、カーネルとして持つ同種写像 と写像先の曲線 は、(同型である曲線を同一とみなせば)一意に定まる。 とその巡回部分群から、 かつ であるような を求める方法は、Véluによって与えらえている。 [6]

SIDHのセットアップでは、 の形をした素数 と、体 の上で定義される超特異楕円曲線 を用意する。 ただし、 は異なる(小さな)素数であり、指数 は大きな自然数であり、 は小さな係数である。このような曲線 は、二つの大きな捩れ部分群(torsion subgroups) を持つ。これらの部分群はそれぞれアリスとボブに割り当てられる。(添え字 A がアリスを表し、Bはボブを表す。) 鍵共有プロトコルを実行するとき、まずアリスは自分の捩れ部分群 の(秘密の)巡回部分群をランダムに選び、対応する(秘密の)同種写像とターゲット楕円曲線を計算する。そして、ターゲット楕円曲線と、同種写像によるボブの捩れ部分群 の像(image)に関する情報をボブに送る。ボブも同様に、 の部分群を選んで同種写像とターゲット楕円曲線と、自分の同種写像によるアリスの捩れ部分群 の像に関する情報をアリスに送る。 これによってアリスとボブは、 二人の秘密の巡回部分群によって決まるカーネルを持つような新しい( の)同種写像をそれぞれ計算できるようになる。二人が計算して得る同種写像のカーネルは一致するため、その新しい楕円曲線は同型であり、共通のj-不変量を持つので、その j-不変量を共通鍵とすればよい。

この方式の安全性は、小さい方の捩れ部分群に依存しているため、 であるように選ぶ必要がある。 詳細については、De Feoによる文献に示されている。[7]


安全性

SIDHの安全性は、点の数が等しい二つの超特異楕円曲線の間の同種写像を見つける問題と密接に関係してる。 考案者である De Feo、Jao、Plut の3人は、SIDHへの最良の攻撃はrelated claw finding problem英語版を解くことであり、従って古典計算機での計算複雑さは O(p1/4)、量子計算機では O(p1/6) であるとしている。これは、768ビットの素数 p を用いるSIDHが 128ビット安全性を持つことを意味する[3]。 2014年の Delfs and Galbraith による研究により、古典計算機での同種写像問題の計算量は O(p1/4) であることが確認されている[8]。 SIDHの安全性については、Biasse, Jao and Sankarによる研究や Galbraith, Petit, Shani and Ti による研究によって O(p1/4) であることが確認されている(古典計算機の場合)[9] [10]

超特異同種写像ディフィー・ヘルマン方式

SIDHのいくつかのステップは複雑な同種写像の計算を含んではいるが、プロトコルの全体の流れは自体は、ディフィー・ヘルマン鍵共有方式やその楕円曲線版を知っている人にとっては分かりやすい。

セットアップ

公開パラメータは以下を含む。 (ネットワーク上の誰でもが使えるようにしても良いし、鍵交換に先立ちアリスとボブの間で同意してもよい。)

  1. の形をした素数
  2. 上の超特異楕円曲線
  3. 楕円曲線 の上にある4つの点
  4. の位数 の位数

鍵交換プロトコル

アリスとボブが鍵交換をするとき、共通の楕円曲線 E からの同種写像をそれぞれが作る。そのために、同種写像の核空間(kernel)を定義するランダムな点( または )を生成する。 は二点 のランダムな線形結合であり、 のランダムな線形結合である。異なる点のペアを使うことで、二人が選ぶ同種写像は必ず異なり、非可換である。

(あるいは )から、アリス(あるいはボブ)はVeluの公式Velu's formulasを用いて同種写像 (あるいは )を計算する。 さらに、ボブは二つの点 を、アリスは を得る。 二人は、計算した二つの点を通信路を介して交換する。

次に、アリスとボブは、それぞれ受け取った二点から新たな同種写像を生成する。そのため、受け取った二点を上で用いたのと同じ係数を使って線形結合して、点 を得る。ここでまた Veluの公式を使って に対応する同種写像および新しい楕円曲線を計算する。

鍵交換を完了するには、アリスとボブはそれぞれ得られた楕円曲線の係数から j-不変量を計算する。通信路上でエラーが起こらない限り、二人が計算した j-不変量は等しくなる。

具体的には、プロトコルは以下のように動作する:(以下ではアリスはA、ボブはBと表記する)

1A. Aは二つのランダム整数 を選ぶ。

2A. Aは を計算する。

3A. Aは を用いて同種写像 と、 と同種な楕円曲線 を生成する。

4A. Aは を点 に適用して、 上の二点 を計算する。

5A. AはBに を送る。

1B - 4B: Bは、1A~4Aを、添え字AとBとを入れ替えて実行する。

5B. BはAに を送る。

6A. Aは から 上の点 を計算する。

7A. Aは を用いて と同種な楕円曲線 を生成する。

8A. Aは曲線 の j-不変量 を計算する。

6B - 8B: Bは、6A~8Aを、添え字AとBを入れ替えて実行し、 を得る。

二つの曲線 は同型であり、したがって必ず同じ j-不変量を持つため、 が成り立つ。 を何らかの関数で変換したものを共有鍵として使用する。[3]

サンプルパラメータ

以下に示すパラメータは、De Feoらによって例として与えられている:[3]

 : とする。したがって,

最初の楕円曲線


効率

類似した方式、署名への拡張

出典

Related Articles

Wikiwand AI