SlideShare a Scribd company logo
1 of 19
Download to read offline
暗認本読書会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

More Related Content

What's hot

暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がり暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がりMITSUNARI Shigeo
 
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)MITSUNARI Shigeo
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろHiroshi Yamashita
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みMasahiro Sakai
 
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解くshindannin
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装MITSUNARI Shigeo
 
『データ解析におけるプライバシー保護』勉強会 秘密計算
『データ解析におけるプライバシー保護』勉強会 秘密計算『データ解析におけるプライバシー保護』勉強会 秘密計算
『データ解析におけるプライバシー保護』勉強会 秘密計算MITSUNARI Shigeo
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学MITSUNARI Shigeo
 
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化MITSUNARI Shigeo
 
楕円曲線入門 トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門 トーラスと楕円曲線のつながりMITSUNARI Shigeo
 
直前合宿 講義スライド
直前合宿 講義スライド直前合宿 講義スライド
直前合宿 講義スライドtozan gezan
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門Norishige Fukushima
 
様々な全域木問題
様々な全域木問題様々な全域木問題
様々な全域木問題tmaehara
 
[DL輪読会]SOM-VAE: Interpretable Discrete Representation Learning on Time Series
[DL輪読会]SOM-VAE: Interpretable Discrete Representation Learning on Time Series[DL輪読会]SOM-VAE: Interpretable Discrete Representation Learning on Time Series
[DL輪読会]SOM-VAE: Interpretable Discrete Representation Learning on Time SeriesDeep Learning JP
 
ブロックチェーン系プロジェクトで着目される暗号技術
ブロックチェーン系プロジェクトで着目される暗号技術ブロックチェーン系プロジェクトで着目される暗号技術
ブロックチェーン系プロジェクトで着目される暗号技術MITSUNARI Shigeo
 
Word2vecの並列実行時の学習速度の改善
Word2vecの並列実行時の学習速度の改善Word2vecの並列実行時の学習速度の改善
Word2vecの並列実行時の学習速度の改善Naoaki Okazaki
 

What's hot (20)

暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がり暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がり
 
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろ
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
 
双対性
双対性双対性
双対性
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
 
『データ解析におけるプライバシー保護』勉強会 秘密計算
『データ解析におけるプライバシー保護』勉強会 秘密計算『データ解析におけるプライバシー保護』勉強会 秘密計算
『データ解析におけるプライバシー保護』勉強会 秘密計算
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
 
楕円曲線入門 トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門 トーラスと楕円曲線のつながり
 
直前合宿 講義スライド
直前合宿 講義スライド直前合宿 講義スライド
直前合宿 講義スライド
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
 
様々な全域木問題
様々な全域木問題様々な全域木問題
様々な全域木問題
 
[DL輪読会]SOM-VAE: Interpretable Discrete Representation Learning on Time Series
[DL輪読会]SOM-VAE: Interpretable Discrete Representation Learning on Time Series[DL輪読会]SOM-VAE: Interpretable Discrete Representation Learning on Time Series
[DL輪読会]SOM-VAE: Interpretable Discrete Representation Learning on Time Series
 
ブロックチェーン系プロジェクトで着目される暗号技術
ブロックチェーン系プロジェクトで着目される暗号技術ブロックチェーン系プロジェクトで着目される暗号技術
ブロックチェーン系プロジェクトで着目される暗号技術
 
暗認本読書会10
暗認本読書会10暗認本読書会10
暗認本読書会10
 
lsh
lshlsh
lsh
 
Word2vecの並列実行時の学習速度の改善
Word2vecの並列実行時の学習速度の改善Word2vecの並列実行時の学習速度の改善
Word2vecの並列実行時の学習速度の改善
 

Similar to 暗認本読書会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
 
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明MITSUNARI Shigeo
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム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
 

Similar to 暗認本読書会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)
 
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
 
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 解説
 
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門
 

More from 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
 
BLS署名の実装とその応用
BLS署名の実装とその応用BLS署名の実装とその応用
BLS署名の実装とその応用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
 
自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介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
 

More from MITSUNARI Shigeo (20)

暗認本読書会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
 
暗認本読書会7
暗認本読書会7暗認本読書会7
暗認本読書会7
 
暗認本読書会6
暗認本読書会6暗認本読書会6
暗認本読書会6
 
暗認本読書会5
暗認本読書会5暗認本読書会5
暗認本読書会5
 
暗認本読書会4
暗認本読書会4暗認本読書会4
暗認本読書会4
 
深層学習フレームワークにおける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
 
BLS署名の実装とその応用
BLS署名の実装とその応用BLS署名の実装とその応用
BLS署名の実装とその応用
 
LazyFP vulnerabilityの紹介
LazyFP vulnerabilityの紹介LazyFP vulnerabilityの紹介
LazyFP vulnerabilityの紹介
 
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみたIntro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみた
 
ゆるバグ
ゆるバグゆるバグ
ゆるバグ
 
集約署名
集約署名集約署名
集約署名
 
自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介
 
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
 

Recently uploaded

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Recently uploaded (9)

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

暗認本読書会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