2021年度暗号分科会
第9回、第10回
@hakatashi
2021-08-05 / 2021-08-19
第2部 新しい暗号技術
-
2000年以降に生まれた新しい暗号技術
-
IDベース暗号
-
検索可能暗号
-
プロキシ暗号
-
放送型暗号
-
属性ベース暗号
-
関数型暗号
-
準同型暗号
-
ゼロ知識証明
-
-
今日はこれらの暗号のベースとなる
楕円曲線のペアリングについて話す
7.1 ペアリング
7.1 ペアリング
- 第5章で導入した「楕円曲線⇔トーラス上のベクトル」の
アナトミーを用いて説明する - 楕円曲線上の点\(P\)と\(Q\)に対して
それらが囲う平行四辺形の面積を\(S(P,Q)\)とする - ペアリングは有限体\(F_p\)のある元\(g\)に対して$$e(P,Q)=g^{S(P,Q)}$$で定義される
7.1 ペアリング
重要な性質
$$e(aP,bQ)=e(P,Q)^{ab}$$
$$e\left(P_{1}+P_{2},Q\right)=e\left(P_{1},Q\right)e\left(P_{2},Q\right)$$
$$e\left(P,Q_1+Q_2\right)=e\left(P,Q_1\right)e\left(P,Q_2\right)$$
$$e(Q,P)=e(P,Q)^{-1}$$
7.2 ID を使った鍵共有
ID鍵共有
- あらかじめ決められたIDを
公開鍵として利用できる鍵共有
7.2 ID を使った鍵共有
- 公開鍵生成
AとBはそれぞれ適当に楕円曲線上の点を取り、
\(P_A,P_B\)とする - 秘密鍵生成
生成局がマスター秘密鍵\(s\)を生成し、
Aに\(K_A:=sP_A\)、Bに\(K_B:=sP_B\)を配る -
鍵共有
Aは\(s_A=e(K_A,P_B)\)、Bは\(s_B=e(P_A,K_B)\)を計算する -
このとき
$$\begin{aligned}s_{A} &=e(K_{A},P_{B})=e(sP_{A},P_{B})=e(P_{A},P_{B})^s\\s_{B} &=e(P_{A},K_{B})=e(P_{A},sP_{B})=e(P_{A},P_{B})^s\end{aligned}$$より\(s_A=s_B\)
7.6 DLP とECDLP とペアリング
MOVリダクションの紹介。
MOVリダクションはECDLPをDLPに帰着させる攻撃手法。
楕円曲線の点 \(P\) と \(Q=aP\) が与えられたとき
\[f:X\mapsto e(X,bP)\in F_{p}\]
を考えると、
\[f(P)=g^b,f(Q)=g^{ab}\]
※ただし \(g:=e(P,P)\)
ECDLPがDLPに帰着されている
7.6 DLP とECDLP とペアリング
ところで、\(P,aP,bP\) が与えられたとき、
- \(e(P,P)=g\)
- \(e(P,aP)=g^a\)
- \(e(P,bP)=g^b\)
- \(e(aP,bP)=g^{ab}\)
を求めることができることがわかる。
\(g^a\)と\(g^b\)から\(g^{ab}\)を
求める問題をDH問題と呼んだ。
ペアリングを用いるとまるで
DH問題が解けたかのように
\(g^{ab}\)を求めることができる
7.7 IDベース暗号
- 好きなデータを公開鍵にできる公開鍵暗号
- 例えばメールアドレスを公開鍵にしたら
本人認証の必要がなくなる
7.7 IDベース暗号
- マスター公開鍵: \(P \in E\)
- マスター秘密鍵: \(s \in \mathbb{Z}\)
- ユーザーXの公開鍵: \(P_X \in E\)
- ユーザーXの秘密鍵: \(K_A:=sP_X\)
- 楕円曲線Eから有限体\(F_q\)へのハッシュ関数: \(h_2\)
をとる。
このとき、
$$\begin{aligned}\mathrm{Enc}\left(m\right) &:=\left(rP,m\oplus h_{2}\left(e\left(P_{A},sP\right)^{r}\right)\right)\\\mathrm{Dec}\left(U,v\right) &:=v\oplus h_{2}\left(e\left(K_{A},U\right)\right)\end{aligned}$$である。
ただし \(r\) は暗号化時に生成される乱数。
7.8 IDベース暗号と公開鍵暗号
IDベース暗号の利点とは?
- 例えばメールアドレスを公開鍵にしたら
本人認証の必要がなくなる- PKIが不要に
- だが現実に応用しようとすると課題が多い
生成局が必要
- PKIにおける認証局の代わりに
マスター生成局という強い権限を持った
アカウントが必要 - PKIの認証局は個々の通信の復号まではできないが
IDベース暗号ではマスター鍵があると
任意のユーザーの復号ができてしまう
7.8 IDベース暗号と公開鍵暗号
鍵の失効
- IDベース暗号では公開鍵が (半ば) 固定化されるため、
秘密鍵が漏洩してしまったときにどのように
鍵を失効させるかは自明ではない- 公開鍵暗号は通常セッションごとに異なる鍵を
使うのでこの点はあまり問題にならない
- 公開鍵暗号は通常セッションごとに異なる鍵を
- 鍵の有効期限などを公開鍵に含めることもできるが、
相手のIDだけで暗号文を送れるという
利点は失われてしまう
7.9 タイムリリース暗号
- 時刻センターから送られる署名付きの時報を用いて
特定の時間以降しか復号できない暗号文を生成する手法
7.9 タイムリリース暗号
- 時刻センターの公開鍵: \((P,sP)\)
- 時刻センターの秘密鍵: \(s \in \mathbb{Z}\)
- 時刻\(T\)から\(E\)へのハッシュ関数: \(H\)
をとる。
時刻センターは時刻\(T\)に\(sH(T)\)を配信する。
このとき、
秘密鍵 \(s_{T_0}=e(H(T_0),rsP)\) を用いて暗号化し、
\(rP\)を同時に公開すると、
※ \(r\) は暗号化時に生成される乱数。
時刻\(T_0\)に時刻センターから送られる\(sH(T_0)\)を用いて
\(e(sH(T_0),rP)=e(H(T_0),rP)^{rs}=s_{T_0}\)を計算できる。
7.10 ペアリングを使ったデジタル署名
- 秘密鍵: \(x,y \in \mathbb{Z}\)
- 公開鍵: \(P,Q:=xP,R:=yP\)
をとる。
$$S:=\frac{1}{x+m+yr}P$$として、\((S,r)\)を署名とする。
※ \(r\) は暗号化時に生成される乱数。
署名が正当ならば、$$e(S,Q+mP+rR)=e(P,P)$$が満たされる。
2021年度暗号分科会第9回/第10回
By Koki Takahashi
2021年度暗号分科会第9回/第10回
2021-08-05 / 2021-08-19
- 1,092