SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
暗認本読書会13 advanced
準同型暗号, DDH, ZKPおかわり
2021/12/23
https://anninbon.connpass.com/
光成滋生
• 楕円曲線
• 演算
• ECDLPとECDH
• 楕円ElGamal暗号
• 楕円Lifted-ElGamal暗号
• 準同型暗号
• 安全性とDDH
• ZKP
• Σプロトコル
• 𝐷𝑒𝑐 𝑐 = 0の場合
• Fiat-Shamir heuristic
目次
• このスライドで使う共通の記号
• 𝐸 : 楕円曲線, 𝑃 : 𝐸上の点
• 𝐺 = {0, 𝑃, 2𝑃, … , 𝑝 − 1 𝑃}とする(𝑝𝑃 = 0)
• トーラス上を巻きつきながら進み𝑝倍すると𝑂に戻る
• 計算が容易なもの
楕円曲線の性質の復習
スカラー倍
𝑎
𝑃
𝑎𝑃 加算
𝑎𝑃
𝑏𝑃
𝑎 + 𝑏 𝑃
• 楕円離散対数問題ECDLP(Discrete Logarithm Problem)
• 与えられた𝑃, 𝑄 ∈ 𝐺に対して𝑄 = 𝑎𝑃となる𝑎を求める
• 𝑎 = log𝑃 𝑄と表す
• ECDHP(Diffie Hellman Problem)
• 与えられた𝑃, 𝑎𝑃, 𝑏𝑃に対して𝑎𝑏𝑃を求める
• 楕円曲線暗号はECDLPやECDHPが困難なことを仮定
楕円曲線暗号で使う計算困難な問題
DLP
𝑃
𝑎𝑃
𝑎
× DHP
𝑎𝑃
𝑏𝑃
𝑎𝑏𝑃
×
• 鍵生成
• 𝑠 : 秘密鍵, 𝑄 = 𝑠𝑃 : 公開鍵
• 暗号化
• 平文は楕円曲線の点𝑀 ∈ 𝐺
乱数𝑟をとり𝐸𝑛𝑐 𝑀 = (𝑀 + 𝑟𝑄, 𝑟𝑃) とする
• 復号
• 暗号文𝐶 = (𝐴, 𝐵)に対して𝐷𝑒𝑐 𝐶 = 𝐴 − 𝑠𝐵とする
• 正当性
• 暗号化して復号したら元に戻ること
• 𝐷𝑒𝑐 𝐸𝑛𝑐 𝑀 = 𝐷𝑒𝑐 𝑀 + 𝑟𝑄, 𝑟𝑃 = (𝑀 + 𝑟𝑄) − 𝑠 𝑟𝑃 = 𝑀
• 注意
• 暗号文が整数でなく楕円曲線の点なのに注意(使いづらい)
楕円ElGamal暗号
• 攻撃者は公開鍵と暗号文を知っている
• 𝑃, 𝑄 = 𝑠𝑃, 𝐸𝑛𝑐 𝑀 = (𝑀 + 𝑟𝑄, 𝑟𝑃)
• 𝑃と𝑄 = 𝑠𝑃と𝑟𝑃から𝑟𝑄 = 𝑟𝑠𝑃を求められると𝑀が分かる
• 「𝑃, 𝑠𝑃, 𝑟𝑃から𝑟𝑠𝑃」これはECDHP
楕円ElGamal暗号の安全性
• 平文を楕円曲線ではなく整数𝑚とする
𝑀の代わりに𝑚𝑃を使う
• 鍵生成(前ページと同じ)
• 𝑠 : 秘密鍵, 𝑄 = 𝑠𝑃 : 公開鍵
• 暗号化
• 平文𝑚に対し, 乱数𝑟をとって𝐸𝑛𝑐 𝑚; 𝑟 = (𝑚𝑃 + 𝑟𝑄, 𝑟𝑃)とする
• 𝑟を省略して𝐸𝑛𝑐(𝑚)とも書く
• 復号
• 暗号文𝐶 = (𝐴, 𝐵)に対して𝑑𝑒𝑐 𝐶 = 𝐴 − 𝑠𝐵とする
• 𝑑𝑒𝑐 𝐸𝑛𝑐 𝑚 = 𝑚𝑃 + 𝑟𝑄 − 𝑠 𝑟𝑃 = 𝑚𝑃なので復号ではない
𝐷𝑒𝑐 𝐶 = log𝑃 𝑑𝑒𝑐 𝐶 とすると
• 𝐷𝑒𝑐 𝐸𝑛𝑐 𝑚 = log𝑝 𝑚𝑃 = 𝑚となり戻る
楕円Lifted-ElGamal暗号
• 𝐷𝑒𝑐 𝐶 = log𝑃(𝑑𝑒𝑐 𝐶 )っておかしくね?
• 𝑚𝑃から𝑚を求めるのにDLPを使ってる
• DLPが難しいんじゃなかったのか
• 答え
• Yes.
• だから楕円Lifted ElGamal暗号は
「𝑚が大きくない」範囲しか使えない
• 𝑚 ≤ 232程度なら実用的に使える程度に求められる
• 数十MBのテーブルを使うが
• その代わりに面白い性質が成り立つ
疑問
• 再掲載
• 鍵生成 𝑠 : 秘密鍵, 𝑄 = 𝑠𝑃 : 公開鍵
• 暗号化 𝐸𝑛𝑐 𝑚; 𝑟 = (𝑚𝑃 + 𝑟𝑄, 𝑟𝑃) ; 𝑟は乱数
• 復号𝐷𝑒𝑐( 𝐴, 𝐵 = log𝑝 𝐴 − 𝑠𝐵
• 2個の暗号文𝐸𝑛𝑐 𝑚1; 𝑟1 , 𝐸𝑛𝑐(𝑚2; 𝑟2)を考える
• それらの要素ごとの足し算をやってみる
• 𝐸𝑛𝑐 𝑚1; 𝑟1 + 𝐸𝑛𝑐 𝑚2; 𝑟2
= 𝑚1𝑃 + 𝑟1𝑄, 𝑟1𝑃 + 𝑚2𝑃 + 𝑟2𝑄, 𝑟2𝑃
= 𝑚1𝑃 + 𝑚2𝑃 + 𝑟1𝑄 + 𝑟2𝑄, 𝑟1𝑃 + 𝑟2𝑃
= 𝑚1 + 𝑚2 𝑃 + 𝑟1 + 𝑟2 𝑄, 𝑟1 + 𝑟2 𝑃
= 𝐸𝑛𝑐(𝑚1 + 𝑚2; 𝑟1 + 𝑟2)
• 暗号文同士を足したら平文同士を足した結果の暗号文!
• 加法準同型暗号
Lifted ElGamal暗号は加法準同型暗号
• 攻撃者と挑戦者アリスのゲームIND(istinguishability)
• 攻撃者が2個の平文𝑚1, 𝑚2を選びアリスに渡す
• アリスはどちらかの平文を選び、その暗号文𝑐を攻撃者に渡す
• 攻撃者は暗号文𝑐がどちらの平文を暗号化したものか当てる
• 当てたら攻撃者の勝ち(攻撃成功)
• 攻撃者に非常に有利なゲーム
• 攻撃の種類
• 選択平文攻撃CPA
• 自分が選んだ平文の暗号文を取得できる(PKEはいつでも可能)
• 選択暗号文攻撃CCA(Chosen Ciphertext Attack)
• 自分が選んだ暗号文(≠ターゲット暗号文)の平文を取得できる
公開鍵暗号PKEに求められる安全性要件
• CCA1 ; ゲーム開始前に情報収集可
• CCA2 ; ゲーム開始後に情報収集可(適応的CCA)
• CCA1/2に対してアリスが勝つならIND-CCA1/2安全
• 準同型暗号はIND-CCA2安全にはなり得ない
• 攻撃者は𝑐に対して𝑐′ = 𝑐 + 𝐸𝑛𝑐(0)の答えを教えてもらえる
• 準同型演算するために「評価鍵」が必要なHEもある
IND-CCA1とIND-CCA2
• Lifted ElGamal暗号
• 𝑑𝑒𝑐 𝑐 = 0か否か当てられてはいけない(IND-CPA)
• 𝐸𝑛𝑐 0; 𝑟 = 𝑟𝑄, 𝑟𝑃
• 𝐸𝑛𝑐 𝑚; 𝑟 = (𝑚𝑃 + 𝑟𝑄, 𝑟𝑃)
• 暗号文の一つ目の成分を𝑇 = 𝑚𝑃 + 𝑟𝑄とすると
• 「𝑃, 𝑠𝑃, 𝑟𝑃, 𝑇」givenで𝑇 = 𝑟𝑠𝑃か否か判れば
𝑑𝑒𝑐 𝑐 = 0か≠ 0か判別できる→安全でない
• DDH(Decisional DH)
• 「𝑃, 𝑎𝑃, 𝑏𝑃, 𝑇」givenのとき「𝑇 = 𝑎𝑏𝑃か否か」を判定せよ
• 従来のDHはCDH(Computational DH)という
• DDHが困難ならLifted ElGamal暗号はIND-CPA安全
Lifted ElGamal暗号で考えてみると
• 準同型暗号で投票しよう
• 賛成(1)か反対(0)の暗号文を集計サーバに送る
• 集計してから復号
• 攻撃者が𝐸𝑛𝑐(10)を
送ったら?
• 要件
• 暗号文𝑐が𝐷𝑒𝑐 𝑐 ∈ {0,1}であることは知りたい
• でも、どちらかは知りたくない/知られないようにしたい
• 「確認する人Cに暗号文𝑐を渡して正しく復号していること」
𝐷𝑒𝑐 𝑐 = 𝑚を確認したい
• 𝐷𝑒𝑐 𝑐 − 𝐸𝑛𝑐 𝑚 = 0だから𝐷𝑒𝑐 𝑐 = 0だけ分かれば十分
ゼロ知識証明ZKP
• 公開情報𝑋に対応する秘密の知識𝑊であることを
𝑋, 𝑊 ∈ 𝑅と表す(Rはrelation)
• 例 : 𝑄 = 𝑥𝑃のとき𝑋 = (𝑃, 𝑄), 𝑊 = 𝑥, Rは𝐷𝐿𝑃𝑃
Σプロトコル
judge
𝐴
証明者P : 𝑊を知っている
検証者V
乱数ℎ
𝐵
受理 or 拒絶
𝑋の共有
• 完全性
• 証明者Pが 𝑋, 𝑊 ∈ 𝑅となる𝑊を知っていたら検証者Vは受理
• 健全性
• 𝐴, ℎ, 𝐵 , (𝐴, ℎ′, 𝐵′) (ℎ ≠ ℎ′)が受理されれば 𝑋, 𝑊 ∈ 𝑅となる𝑊
を計算できる
• (special honest-verifier) ゼロ知識性
• 𝑊を知らずに𝑋に対して受理する(𝐴, ℎ, 𝐵)を本物そっくりにシ
ミュレートする𝑀がある
• (𝐴, ℎ, 𝐵)の情報は𝑊が無くても得られるものと同じと考える
Σプロトコルの要件
• 公開鍵𝑋 = (𝑄, 𝑃), 𝑄 = 𝑠𝑃, 暗号文𝐶 = 𝑆, 𝑇 = (𝑟𝑄, 𝑟′𝑃)
• 𝐷𝑒𝑐 𝐶 = 0であるためには𝑟𝑄 − 𝑠𝑟′
𝑃 = 0つまり𝑟 = 𝑟′
• (秘密鍵𝑠を持つ)証明者P : 𝑟は未知だが𝑟 = 𝑟′は分かる
• P→V : 乱数𝑡をとり𝐴 = (𝑡𝑇, 𝑡𝑃)を送る
• V→P : 乱数ℎを送る
• P→V : 𝑏 = 𝑡 − ℎ𝑠を送りVはℎ(𝑆, 𝑄) + 𝑏(𝑇, 𝑃) = 𝐴なら受理
• 完全性
• 正しければ𝑙ℎ𝑠 = ℎ𝑟𝑠𝑃, ℎ𝑠𝑃 + (𝑏𝑟𝑃, 𝑏𝑃) = (𝑡𝑟𝑃, 𝑡𝑃)
• 健全性
• 𝐴, ℎ, 𝑏 , (𝐴, ℎ′, 𝑏′)を受理(ℎ ≠ ℎ′)すれば𝐶 = (𝑟𝑠′𝑃, 𝑟𝑃)に対して
ℎ 𝑟𝑠′𝑃, 𝑠𝑃 + 𝑏 𝑟𝑃, 𝑃 = 𝐴 = ℎ′ 𝑟𝑠′𝑃, 𝑠𝑃 + 𝑏′(𝑟𝑃, 𝑃)より
ℎ𝑟𝑠′ + 𝑏𝑟 = ℎ′𝑟𝑠′ + 𝑏′𝑟, ℎ𝑠 + 𝑏 = ℎ′𝑠 + 𝑏′より𝑠 = 𝑠′
𝐷𝑒𝑐 𝐶 = 0のΣプロトコル
• 乱数ℎ, 𝑏をとり𝑡 = 𝑏 + ℎ𝑠, 𝐴 = (𝑡𝑟𝑃, 𝑡𝑃)とすると
(𝐴, ℎ, 𝑏)は受理される
• ℎ 𝑟𝑄, 𝑄 + 𝑏 𝑟𝑃, 𝑃 = ℎ𝑟𝑠 + 𝑏𝑟 𝑃, ℎ𝑠 + 𝑏 𝑃 = (𝑡𝑟𝑃, 𝑡𝑃)
シミュレータ
• Σプロトコルで検証者が乱数ℎを送る代わりに
パラメータのハッシュ値を利用する
• 証明者がℎを制御できないなら検証者が乱数を送らなくてもよ
いのではという理屈
• ハッシュ関数が理想形であるランダムオラクルモデルを仮定
• 証明者Pが証明𝜋を送るだけでよくなる
• 対話証明の非対話化
Fiat-Shamir heuristic
• 再掲 : 公開情報𝑋 = (𝑄, 𝑃), 𝑄 = 𝑠𝑃, 暗号文𝐶 = (𝑆, 𝑇)
• P→V : 乱数𝑡をとり𝐴 = (𝑡𝑇, 𝑡𝑃)を送る
• V→P : 乱数ℎを送る
• P→V : 𝑏 = 𝑡 − ℎ𝑠を送りVはℎ(𝑆, 𝑄) + 𝑏(𝑇, 𝑃) = 𝐴なら受理
• FS変換
• 証明者 : 乱数𝑡を𝐴 = (𝑡𝑇, 𝑡𝑃), ℎ = 𝐻(𝑋, 𝐶, 𝐴)とする
𝑏 = 𝑡 − ℎ𝑠として𝜋 = (ℎ, 𝑏)を検証者に送る
• 検証者 : 𝐴′ = ℎ(𝑆, 𝑄) + 𝑏(𝑇, 𝑃), 𝐻 𝑋, 𝐶, 𝐴′ = ℎなら受理
• 𝐶 = (𝑟𝑠′
𝑃, 𝑟𝑃)に対して𝜋 = (ℎ, 𝑏)を受理したら
𝐴′ = (ℎ𝑟𝑠′𝑃 + 𝑏𝑟𝑃, ℎ𝑠𝑃 + 𝑏𝑃). 𝑡 = 𝑏 + ℎ𝑠とすると
ℎ𝑟𝑠′ + 𝑏𝑟 = 𝑡 + ℎ 𝑠′ − 𝑠 𝑟なので
𝐻 𝑋, 𝐶, 𝑡 + ℎ 𝑠′ − 𝑠 𝑇, 𝑡𝑃 = ℎ → 𝑠′ = 𝑠
𝐷𝑒𝑐 𝑐 = 0のZKP
19 / 19

Contenu connexe

Tendances

BLS署名の実装とその応用
BLS署名の実装とその応用BLS署名の実装とその応用
BLS署名の実装とその応用MITSUNARI Shigeo
 
範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコル範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコルMITSUNARI Shigeo
 
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化MITSUNARI Shigeo
 
楕円曲線入門 トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門 トーラスと楕円曲線のつながりMITSUNARI Shigeo
 
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明MITSUNARI Shigeo
 
zk-SNARKsの仕組みについて
zk-SNARKsの仕組みについてzk-SNARKsの仕組みについて
zk-SNARKsの仕組みについてts21
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学MITSUNARI Shigeo
 
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpRSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpsonickun
 
暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -MITSUNARI Shigeo
 
C++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングC++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングKohsuke Yuasa
 
RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介MITSUNARI Shigeo
 
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用MITSUNARI Shigeo
 
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexprGenya Murakami
 
ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界Preferred Networks
 
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-Takuya Akiba
 
WASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみたWASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみたMITSUNARI Shigeo
 

Tendances (20)

暗認本読書会6
暗認本読書会6暗認本読書会6
暗認本読書会6
 
BLS署名の実装とその応用
BLS署名の実装とその応用BLS署名の実装とその応用
BLS署名の実装とその応用
 
範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコル範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコル
 
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
 
楕円曲線入門 トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門 トーラスと楕円曲線のつながり
 
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
 
暗認本読書会5
暗認本読書会5暗認本読書会5
暗認本読書会5
 
zk-SNARKsの仕組みについて
zk-SNARKsの仕組みについてzk-SNARKsの仕組みについて
zk-SNARKsの仕組みについて
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpRSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
 
暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -
 
暗認本読書会7
暗認本読書会7暗認本読書会7
暗認本読書会7
 
C++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングC++ マルチスレッドプログラミング
C++ マルチスレッドプログラミング
 
RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介
 
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
 
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
 
ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界
 
暗認本読書会4
暗認本読書会4暗認本読書会4
暗認本読書会4
 
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
 
WASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみたWASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみた
 

Similaire à 暗認本読書会13 advanced

Introduction to Locally Testable Codes and Related Topics (in Japanese)
Introduction to Locally Testable Codes and Related Topics (in Japanese)Introduction to Locally Testable Codes and Related Topics (in Japanese)
Introduction to Locally Testable Codes and Related Topics (in Japanese)Nobutaka Shimizu
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムTakuya Akiba
 
University CodeSprint 4 - Magic value
University CodeSprint 4 - Magic valueUniversity CodeSprint 4 - Magic value
University CodeSprint 4 - Magic valuesatanic
 
Computing for Isogeny Kernel Problem by Groebner Basis
Computing for Isogeny Kernel Problem by Groebner BasisComputing for Isogeny Kernel Problem by Groebner Basis
Computing for Isogeny Kernel Problem by Groebner BasisYasu Math
 
第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)RCCSRENKEI
 
PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5sleepy_yoshi
 
パターン認識と機械学習 13章 系列データ
パターン認識と機械学習 13章 系列データパターン認識と機械学習 13章 系列データ
パターン認識と機械学習 13章 系列データemonosuke
 
情報オリンピック夏合宿発表
情報オリンピック夏合宿発表情報オリンピック夏合宿発表
情報オリンピック夏合宿発表Kazuma Mikami
 
AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説AtCoder Inc.
 
ニューラル論文を読む前に
ニューラル論文を読む前にニューラル論文を読む前に
ニューラル論文を読む前にHayahide Yamagishi
 
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech SynthesisDeep Learning JP
 
Sized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアルSized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアルAkinori Abe
 
自然言語処理のための機械学習入門1章
自然言語処理のための機械学習入門1章自然言語処理のための機械学習入門1章
自然言語処理のための機械学習入門1章Hiroki Mizukami
 
Global optimality in neural network training
Global optimality in neural network trainingGlobal optimality in neural network training
Global optimality in neural network trainingFujimoto Keisuke
 
CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説AtCoder Inc.
 
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門Kimikazu Kato
 
AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説AtCoder Inc.
 

Similaire à 暗認本読書会13 advanced (20)

Introduction to Locally Testable Codes and Related Topics (in Japanese)
Introduction to Locally Testable Codes and Related Topics (in Japanese)Introduction to Locally Testable Codes and Related Topics (in Japanese)
Introduction to Locally Testable Codes and Related Topics (in Japanese)
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
 
University CodeSprint 4 - Magic value
University CodeSprint 4 - Magic valueUniversity CodeSprint 4 - Magic value
University CodeSprint 4 - Magic value
 
Computing for Isogeny Kernel Problem by Groebner Basis
Computing for Isogeny Kernel Problem by Groebner BasisComputing for Isogeny Kernel Problem by Groebner Basis
Computing for Isogeny Kernel Problem by Groebner Basis
 
第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)
 
Seccamp2020L1
Seccamp2020L1Seccamp2020L1
Seccamp2020L1
 
PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5
 
パターン認識と機械学習 13章 系列データ
パターン認識と機械学習 13章 系列データパターン認識と機械学習 13章 系列データ
パターン認識と機械学習 13章 系列データ
 
超複素数
超複素数超複素数
超複素数
 
情報オリンピック夏合宿発表
情報オリンピック夏合宿発表情報オリンピック夏合宿発表
情報オリンピック夏合宿発表
 
AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説
 
ニューラル論文を読む前に
ニューラル論文を読む前にニューラル論文を読む前に
ニューラル論文を読む前に
 
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
 
6 Info Theory
6 Info Theory6 Info Theory
6 Info Theory
 
Sized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアルSized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアル
 
自然言語処理のための機械学習入門1章
自然言語処理のための機械学習入門1章自然言語処理のための機械学習入門1章
自然言語処理のための機械学習入門1章
 
Global optimality in neural network training
Global optimality in neural network trainingGlobal optimality in neural network training
Global optimality in neural network training
 
CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説
 
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門
 
AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説
 

Plus de MITSUNARI Shigeo

Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenIntel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenMITSUNARI Shigeo
 
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法MITSUNARI Shigeo
 
WebAssembly向け多倍長演算の実装
WebAssembly向け多倍長演算の実装WebAssembly向け多倍長演算の実装
WebAssembly向け多倍長演算の実装MITSUNARI Shigeo
 
LazyFP vulnerabilityの紹介
LazyFP vulnerabilityの紹介LazyFP vulnerabilityの紹介
LazyFP vulnerabilityの紹介MITSUNARI Shigeo
 
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみたIntro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみたMITSUNARI Shigeo
 
A compact zero knowledge proof to restrict message space in homomorphic encry...
A compact zero knowledge proof to restrict message space in homomorphic encry...A compact zero knowledge proof to restrict message space in homomorphic encry...
A compact zero knowledge proof to restrict message space in homomorphic encry...MITSUNARI Shigeo
 
Spectre/Meltdownとその派生
Spectre/Meltdownとその派生Spectre/Meltdownとその派生
Spectre/Meltdownとその派生MITSUNARI Shigeo
 
Practical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
Practical Two-level Homomorphic Encryption in Prime-order Bilinear GroupsPractical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
Practical Two-level Homomorphic Encryption in Prime-order Bilinear GroupsMITSUNARI Shigeo
 

Plus de MITSUNARI Shigeo (16)

暗認本読書会11
暗認本読書会11暗認本読書会11
暗認本読書会11
 
暗認本読書会10
暗認本読書会10暗認本読書会10
暗認本読書会10
 
暗認本読書会9
暗認本読書会9暗認本読書会9
暗認本読書会9
 
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenIntel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
 
暗認本読書会8
暗認本読書会8暗認本読書会8
暗認本読書会8
 
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
WebAssembly向け多倍長演算の実装
WebAssembly向け多倍長演算の実装WebAssembly向け多倍長演算の実装
WebAssembly向け多倍長演算の実装
 
HPC Phys-20201203
HPC Phys-20201203HPC Phys-20201203
HPC Phys-20201203
 
LazyFP vulnerabilityの紹介
LazyFP vulnerabilityの紹介LazyFP vulnerabilityの紹介
LazyFP vulnerabilityの紹介
 
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみたIntro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみた
 
ゆるバグ
ゆるバグゆるバグ
ゆるバグ
 
集約署名
集約署名集約署名
集約署名
 
A compact zero knowledge proof to restrict message space in homomorphic encry...
A compact zero knowledge proof to restrict message space in homomorphic encry...A compact zero knowledge proof to restrict message space in homomorphic encry...
A compact zero knowledge proof to restrict message space in homomorphic encry...
 
Spectre/Meltdownとその派生
Spectre/Meltdownとその派生Spectre/Meltdownとその派生
Spectre/Meltdownとその派生
 
Practical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
Practical Two-level Homomorphic Encryption in Prime-order Bilinear GroupsPractical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
Practical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
 

Dernier

LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルCRI Japan, Inc.
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一瑛一 西口
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルCRI Japan, Inc.
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521Satoshi Makita
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計atsushi061452
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑Akihiro Kadohata
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用KLab Inc. / Tech
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperleger Tokyo Meetup
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdkokinagano2
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員Sadaomi Nishi
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfTakayuki Nakayama
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )iwashiira2ctf
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。iPride Co., Ltd.
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイントonozaty
 

Dernier (14)

LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイント
 

暗認本読書会13 advanced

  • 1. 暗認本読書会13 advanced 準同型暗号, DDH, ZKPおかわり 2021/12/23 https://anninbon.connpass.com/ 光成滋生
  • 2. • 楕円曲線 • 演算 • ECDLPとECDH • 楕円ElGamal暗号 • 楕円Lifted-ElGamal暗号 • 準同型暗号 • 安全性とDDH • ZKP • Σプロトコル • 𝐷𝑒𝑐 𝑐 = 0の場合 • Fiat-Shamir heuristic 目次
  • 3. • このスライドで使う共通の記号 • 𝐸 : 楕円曲線, 𝑃 : 𝐸上の点 • 𝐺 = {0, 𝑃, 2𝑃, … , 𝑝 − 1 𝑃}とする(𝑝𝑃 = 0) • トーラス上を巻きつきながら進み𝑝倍すると𝑂に戻る • 計算が容易なもの 楕円曲線の性質の復習 スカラー倍 𝑎 𝑃 𝑎𝑃 加算 𝑎𝑃 𝑏𝑃 𝑎 + 𝑏 𝑃
  • 4. • 楕円離散対数問題ECDLP(Discrete Logarithm Problem) • 与えられた𝑃, 𝑄 ∈ 𝐺に対して𝑄 = 𝑎𝑃となる𝑎を求める • 𝑎 = log𝑃 𝑄と表す • ECDHP(Diffie Hellman Problem) • 与えられた𝑃, 𝑎𝑃, 𝑏𝑃に対して𝑎𝑏𝑃を求める • 楕円曲線暗号はECDLPやECDHPが困難なことを仮定 楕円曲線暗号で使う計算困難な問題 DLP 𝑃 𝑎𝑃 𝑎 × DHP 𝑎𝑃 𝑏𝑃 𝑎𝑏𝑃 ×
  • 5. • 鍵生成 • 𝑠 : 秘密鍵, 𝑄 = 𝑠𝑃 : 公開鍵 • 暗号化 • 平文は楕円曲線の点𝑀 ∈ 𝐺 乱数𝑟をとり𝐸𝑛𝑐 𝑀 = (𝑀 + 𝑟𝑄, 𝑟𝑃) とする • 復号 • 暗号文𝐶 = (𝐴, 𝐵)に対して𝐷𝑒𝑐 𝐶 = 𝐴 − 𝑠𝐵とする • 正当性 • 暗号化して復号したら元に戻ること • 𝐷𝑒𝑐 𝐸𝑛𝑐 𝑀 = 𝐷𝑒𝑐 𝑀 + 𝑟𝑄, 𝑟𝑃 = (𝑀 + 𝑟𝑄) − 𝑠 𝑟𝑃 = 𝑀 • 注意 • 暗号文が整数でなく楕円曲線の点なのに注意(使いづらい) 楕円ElGamal暗号
  • 6. • 攻撃者は公開鍵と暗号文を知っている • 𝑃, 𝑄 = 𝑠𝑃, 𝐸𝑛𝑐 𝑀 = (𝑀 + 𝑟𝑄, 𝑟𝑃) • 𝑃と𝑄 = 𝑠𝑃と𝑟𝑃から𝑟𝑄 = 𝑟𝑠𝑃を求められると𝑀が分かる • 「𝑃, 𝑠𝑃, 𝑟𝑃から𝑟𝑠𝑃」これはECDHP 楕円ElGamal暗号の安全性
  • 7. • 平文を楕円曲線ではなく整数𝑚とする 𝑀の代わりに𝑚𝑃を使う • 鍵生成(前ページと同じ) • 𝑠 : 秘密鍵, 𝑄 = 𝑠𝑃 : 公開鍵 • 暗号化 • 平文𝑚に対し, 乱数𝑟をとって𝐸𝑛𝑐 𝑚; 𝑟 = (𝑚𝑃 + 𝑟𝑄, 𝑟𝑃)とする • 𝑟を省略して𝐸𝑛𝑐(𝑚)とも書く • 復号 • 暗号文𝐶 = (𝐴, 𝐵)に対して𝑑𝑒𝑐 𝐶 = 𝐴 − 𝑠𝐵とする • 𝑑𝑒𝑐 𝐸𝑛𝑐 𝑚 = 𝑚𝑃 + 𝑟𝑄 − 𝑠 𝑟𝑃 = 𝑚𝑃なので復号ではない 𝐷𝑒𝑐 𝐶 = log𝑃 𝑑𝑒𝑐 𝐶 とすると • 𝐷𝑒𝑐 𝐸𝑛𝑐 𝑚 = log𝑝 𝑚𝑃 = 𝑚となり戻る 楕円Lifted-ElGamal暗号
  • 8. • 𝐷𝑒𝑐 𝐶 = log𝑃(𝑑𝑒𝑐 𝐶 )っておかしくね? • 𝑚𝑃から𝑚を求めるのにDLPを使ってる • DLPが難しいんじゃなかったのか • 答え • Yes. • だから楕円Lifted ElGamal暗号は 「𝑚が大きくない」範囲しか使えない • 𝑚 ≤ 232程度なら実用的に使える程度に求められる • 数十MBのテーブルを使うが • その代わりに面白い性質が成り立つ 疑問
  • 9. • 再掲載 • 鍵生成 𝑠 : 秘密鍵, 𝑄 = 𝑠𝑃 : 公開鍵 • 暗号化 𝐸𝑛𝑐 𝑚; 𝑟 = (𝑚𝑃 + 𝑟𝑄, 𝑟𝑃) ; 𝑟は乱数 • 復号𝐷𝑒𝑐( 𝐴, 𝐵 = log𝑝 𝐴 − 𝑠𝐵 • 2個の暗号文𝐸𝑛𝑐 𝑚1; 𝑟1 , 𝐸𝑛𝑐(𝑚2; 𝑟2)を考える • それらの要素ごとの足し算をやってみる • 𝐸𝑛𝑐 𝑚1; 𝑟1 + 𝐸𝑛𝑐 𝑚2; 𝑟2 = 𝑚1𝑃 + 𝑟1𝑄, 𝑟1𝑃 + 𝑚2𝑃 + 𝑟2𝑄, 𝑟2𝑃 = 𝑚1𝑃 + 𝑚2𝑃 + 𝑟1𝑄 + 𝑟2𝑄, 𝑟1𝑃 + 𝑟2𝑃 = 𝑚1 + 𝑚2 𝑃 + 𝑟1 + 𝑟2 𝑄, 𝑟1 + 𝑟2 𝑃 = 𝐸𝑛𝑐(𝑚1 + 𝑚2; 𝑟1 + 𝑟2) • 暗号文同士を足したら平文同士を足した結果の暗号文! • 加法準同型暗号 Lifted ElGamal暗号は加法準同型暗号
  • 10. • 攻撃者と挑戦者アリスのゲームIND(istinguishability) • 攻撃者が2個の平文𝑚1, 𝑚2を選びアリスに渡す • アリスはどちらかの平文を選び、その暗号文𝑐を攻撃者に渡す • 攻撃者は暗号文𝑐がどちらの平文を暗号化したものか当てる • 当てたら攻撃者の勝ち(攻撃成功) • 攻撃者に非常に有利なゲーム • 攻撃の種類 • 選択平文攻撃CPA • 自分が選んだ平文の暗号文を取得できる(PKEはいつでも可能) • 選択暗号文攻撃CCA(Chosen Ciphertext Attack) • 自分が選んだ暗号文(≠ターゲット暗号文)の平文を取得できる 公開鍵暗号PKEに求められる安全性要件
  • 11. • CCA1 ; ゲーム開始前に情報収集可 • CCA2 ; ゲーム開始後に情報収集可(適応的CCA) • CCA1/2に対してアリスが勝つならIND-CCA1/2安全 • 準同型暗号はIND-CCA2安全にはなり得ない • 攻撃者は𝑐に対して𝑐′ = 𝑐 + 𝐸𝑛𝑐(0)の答えを教えてもらえる • 準同型演算するために「評価鍵」が必要なHEもある IND-CCA1とIND-CCA2
  • 12. • Lifted ElGamal暗号 • 𝑑𝑒𝑐 𝑐 = 0か否か当てられてはいけない(IND-CPA) • 𝐸𝑛𝑐 0; 𝑟 = 𝑟𝑄, 𝑟𝑃 • 𝐸𝑛𝑐 𝑚; 𝑟 = (𝑚𝑃 + 𝑟𝑄, 𝑟𝑃) • 暗号文の一つ目の成分を𝑇 = 𝑚𝑃 + 𝑟𝑄とすると • 「𝑃, 𝑠𝑃, 𝑟𝑃, 𝑇」givenで𝑇 = 𝑟𝑠𝑃か否か判れば 𝑑𝑒𝑐 𝑐 = 0か≠ 0か判別できる→安全でない • DDH(Decisional DH) • 「𝑃, 𝑎𝑃, 𝑏𝑃, 𝑇」givenのとき「𝑇 = 𝑎𝑏𝑃か否か」を判定せよ • 従来のDHはCDH(Computational DH)という • DDHが困難ならLifted ElGamal暗号はIND-CPA安全 Lifted ElGamal暗号で考えてみると
  • 13. • 準同型暗号で投票しよう • 賛成(1)か反対(0)の暗号文を集計サーバに送る • 集計してから復号 • 攻撃者が𝐸𝑛𝑐(10)を 送ったら? • 要件 • 暗号文𝑐が𝐷𝑒𝑐 𝑐 ∈ {0,1}であることは知りたい • でも、どちらかは知りたくない/知られないようにしたい • 「確認する人Cに暗号文𝑐を渡して正しく復号していること」 𝐷𝑒𝑐 𝑐 = 𝑚を確認したい • 𝐷𝑒𝑐 𝑐 − 𝐸𝑛𝑐 𝑚 = 0だから𝐷𝑒𝑐 𝑐 = 0だけ分かれば十分 ゼロ知識証明ZKP
  • 14. • 公開情報𝑋に対応する秘密の知識𝑊であることを 𝑋, 𝑊 ∈ 𝑅と表す(Rはrelation) • 例 : 𝑄 = 𝑥𝑃のとき𝑋 = (𝑃, 𝑄), 𝑊 = 𝑥, Rは𝐷𝐿𝑃𝑃 Σプロトコル judge 𝐴 証明者P : 𝑊を知っている 検証者V 乱数ℎ 𝐵 受理 or 拒絶 𝑋の共有
  • 15. • 完全性 • 証明者Pが 𝑋, 𝑊 ∈ 𝑅となる𝑊を知っていたら検証者Vは受理 • 健全性 • 𝐴, ℎ, 𝐵 , (𝐴, ℎ′, 𝐵′) (ℎ ≠ ℎ′)が受理されれば 𝑋, 𝑊 ∈ 𝑅となる𝑊 を計算できる • (special honest-verifier) ゼロ知識性 • 𝑊を知らずに𝑋に対して受理する(𝐴, ℎ, 𝐵)を本物そっくりにシ ミュレートする𝑀がある • (𝐴, ℎ, 𝐵)の情報は𝑊が無くても得られるものと同じと考える Σプロトコルの要件
  • 16. • 公開鍵𝑋 = (𝑄, 𝑃), 𝑄 = 𝑠𝑃, 暗号文𝐶 = 𝑆, 𝑇 = (𝑟𝑄, 𝑟′𝑃) • 𝐷𝑒𝑐 𝐶 = 0であるためには𝑟𝑄 − 𝑠𝑟′ 𝑃 = 0つまり𝑟 = 𝑟′ • (秘密鍵𝑠を持つ)証明者P : 𝑟は未知だが𝑟 = 𝑟′は分かる • P→V : 乱数𝑡をとり𝐴 = (𝑡𝑇, 𝑡𝑃)を送る • V→P : 乱数ℎを送る • P→V : 𝑏 = 𝑡 − ℎ𝑠を送りVはℎ(𝑆, 𝑄) + 𝑏(𝑇, 𝑃) = 𝐴なら受理 • 完全性 • 正しければ𝑙ℎ𝑠 = ℎ𝑟𝑠𝑃, ℎ𝑠𝑃 + (𝑏𝑟𝑃, 𝑏𝑃) = (𝑡𝑟𝑃, 𝑡𝑃) • 健全性 • 𝐴, ℎ, 𝑏 , (𝐴, ℎ′, 𝑏′)を受理(ℎ ≠ ℎ′)すれば𝐶 = (𝑟𝑠′𝑃, 𝑟𝑃)に対して ℎ 𝑟𝑠′𝑃, 𝑠𝑃 + 𝑏 𝑟𝑃, 𝑃 = 𝐴 = ℎ′ 𝑟𝑠′𝑃, 𝑠𝑃 + 𝑏′(𝑟𝑃, 𝑃)より ℎ𝑟𝑠′ + 𝑏𝑟 = ℎ′𝑟𝑠′ + 𝑏′𝑟, ℎ𝑠 + 𝑏 = ℎ′𝑠 + 𝑏′より𝑠 = 𝑠′ 𝐷𝑒𝑐 𝐶 = 0のΣプロトコル
  • 17. • 乱数ℎ, 𝑏をとり𝑡 = 𝑏 + ℎ𝑠, 𝐴 = (𝑡𝑟𝑃, 𝑡𝑃)とすると (𝐴, ℎ, 𝑏)は受理される • ℎ 𝑟𝑄, 𝑄 + 𝑏 𝑟𝑃, 𝑃 = ℎ𝑟𝑠 + 𝑏𝑟 𝑃, ℎ𝑠 + 𝑏 𝑃 = (𝑡𝑟𝑃, 𝑡𝑃) シミュレータ
  • 18. • Σプロトコルで検証者が乱数ℎを送る代わりに パラメータのハッシュ値を利用する • 証明者がℎを制御できないなら検証者が乱数を送らなくてもよ いのではという理屈 • ハッシュ関数が理想形であるランダムオラクルモデルを仮定 • 証明者Pが証明𝜋を送るだけでよくなる • 対話証明の非対話化 Fiat-Shamir heuristic
  • 19. • 再掲 : 公開情報𝑋 = (𝑄, 𝑃), 𝑄 = 𝑠𝑃, 暗号文𝐶 = (𝑆, 𝑇) • P→V : 乱数𝑡をとり𝐴 = (𝑡𝑇, 𝑡𝑃)を送る • V→P : 乱数ℎを送る • P→V : 𝑏 = 𝑡 − ℎ𝑠を送りVはℎ(𝑆, 𝑄) + 𝑏(𝑇, 𝑃) = 𝐴なら受理 • FS変換 • 証明者 : 乱数𝑡を𝐴 = (𝑡𝑇, 𝑡𝑃), ℎ = 𝐻(𝑋, 𝐶, 𝐴)とする 𝑏 = 𝑡 − ℎ𝑠として𝜋 = (ℎ, 𝑏)を検証者に送る • 検証者 : 𝐴′ = ℎ(𝑆, 𝑄) + 𝑏(𝑇, 𝑃), 𝐻 𝑋, 𝐶, 𝐴′ = ℎなら受理 • 𝐶 = (𝑟𝑠′ 𝑃, 𝑟𝑃)に対して𝜋 = (ℎ, 𝑏)を受理したら 𝐴′ = (ℎ𝑟𝑠′𝑃 + 𝑏𝑟𝑃, ℎ𝑠𝑃 + 𝑏𝑃). 𝑡 = 𝑏 + ℎ𝑠とすると ℎ𝑟𝑠′ + 𝑏𝑟 = 𝑡 + ℎ 𝑠′ − 𝑠 𝑟なので 𝐻 𝑋, 𝐶, 𝑡 + ℎ 𝑠′ − 𝑠 𝑇, 𝑡𝑃 = ℎ → 𝑠′ = 𝑠 𝐷𝑒𝑐 𝑐 = 0のZKP 19 / 19