🧮

楕円曲線暗号の安全性 DLPとCDHとDDH

2023/07/27に公開

初めに

TLSで利用される鍵共有ECDHや、楕円曲線を使ったlifted ElGamal暗号の安全性の根拠について解説します。
離散対数問題DLPが困難であるという仮定だけでは不十分なことを理解しましょう。

ECDH鍵共有の復習

Pを楕円曲線の点、GPを生成元とする位数rの加法巡回群とします。G=\Set{0, P, 2P, \dots, (r-1)P}.
0以上r未満の整数の集合を[0, r)と書く。

アリスとボブによる鍵共有

  • アリスは乱数a ← [0, r)をとり、aPをボブに渡します。
  • ボブは乱数b ← [0, r)をとり、bPをアリスに渡します。
  • アリスはa(bP)=abPを、ボブはb(aP)=abPを計算してabPを共有します。

ECDH鍵共有
ECDH鍵共有

DLPが困難

離散対数問題DLP(discrete logarithm problem)とはaPPが与えられたときにaを求める問題でした。
アリスとボブのやりとりを盗聴している人はaPbPを入手できます。Pは公開情報なのでDLPが解けるとabが分かり、abPを計算できます。
これでは安全な通信とはいえません。そこで「DLPが困難な群Gを使う」がDH鍵共有の必要条件です。

DLP困難
DLP困難

CDH仮定

公開情報Pと盗聴者が入手したaPbPからDLPを解かなくても直接abPを計算できてしまう可能性があります。
PaPbPからabPを求める問題」をDH問題、より正確には計算DH、CDH(computational DH)問題といいます。
DH鍵共有はCDH問題が困難(CDH仮定が成り立つという)なら安全です。と言っても、これはほぼトートロジーです。

CDH仮定
CDH仮定

なんだか頼りないなと思われたかもしれません。しかし、ここ数十年、CDH仮定は破られていません。明らかにDLPを解くよりはCDH問題を解く方が易しいですが、CDH問題が真に易しいかは未解決です(CDH問題が解けるならDLPも解けるか不明)。

RSA暗号の場合は

ちなみにこれはRSA暗号も似たようなものです。よく言われる「N=pqの素因数分解が解ければRSA暗号は破れる」は真ですが、素因数分解をしなくてもRSA暗号を破る方法があるかもしれません。
RSA暗号の安全性証明で使われるRSA仮定とはRSAの基礎の記号を使うと「cが与えられたときにc=Enc(m)となるmを求めよ」という問題が困難である、という仮定です。
RSA仮定を破れば素因数分解ができるのかは不明です。そのため「素因数分解が困難ならRSA暗号は安全」とは言えず、「RSA仮定が成り立つならRSA暗号は安全」としか言えません。こちらも殆どトートロジーですね。

(lifted) ElGamal暗号の安全性

さて(lifted) ElGamal暗号(以降liftedは面倒なので省略)の安全性の根拠を考えましょう。
鍵生成のときに秘密鍵s ← [0, r)を選んで、公開鍵Q:=sPを計算します。Qからsが求まってはいけないのでもちろんDLPが困難でなければなりません。

m \in [0, r)の暗号文はc:=Enc(m;t)=(mP+tQ,tP)でした(tは乱数)。

暗号化する側の不利な状況想定し、mは0か1のどちらかであると攻撃者が分かっているとします。mが、なんらかのyes/noで答える問題の答えだと十分ありえます。
攻撃者の立場になってみましょう。攻撃者はPQcを入手しているので、そこからなんとかmの情報をゲットしたいです。

mは0か1のどちらかなので暗号文c=(S,T)Enc(0)=(tQ,tP)Enc(1)=(P+tQ,tP)のどちらかの形です。
(Q,P)は分かっているので(S,T)がそれを何倍かした(tQ,tP)だと判定できれば0の暗号文だとわかります。そのときtは分からないままでも構いません。

ベクトルのスカラー倍
ベクトルのスカラー倍

イメージとしては(Q, P)というベクトルの線上に暗号文c=(S,T)が乗っているかどうかを判定します。

DDH仮定

前節の考察をもう少し進めます。与えられたTPt倍としましょう。T=tP。ここでそのtを知らなくてもS=tQであるかどうか分かればよいことになります。
Q=sPなので、P, sP, tPSが与えられたときにS=stPか否か判定せよという問題です。s→a, t→bと置き換えると

(P, aP, bP)Sが与えられたときにS = abPか否かを判定せよ。

この問題を判定DH問題DDH(Decisional DH)といいます。CDH問題はabPを求める問題でしたが、DDH問題はそれが求まらなくても良い、ただ与えられたSに一致するかどうかだけ知りたい(=判定したい)という気持ちです。
もちろんCDH問題が解ければDDH問題は解けます。DDH問題が困難であるという仮定をDDH仮定といいます。今のところ、DDH仮定もCDH仮定と同じぐらい難しいと信じられています。

DDH仮定の元で、暗号文cが0か1のどちらかであるという情報をもらっても当てられないということが示されます。したがってElGamal暗号はそれぐらい安全であると言えます。

まとめ

DLPが困難、CDH仮定、DDH仮定という3種類の仮定を紹介しました。後者ほど仮定の条件が強く(より根拠が薄弱に)なります。
ECDH鍵共有はCDH仮定、ElGamal暗号はDDH仮定の元で安全です。

GitHubで編集を提案

Discussion