SlideShare a Scribd company logo
1 of 22
Download to read offline
秘密計算
佐久間淳『データ解析におけるプライバシー保護』
2017/3/10, 4/21, 5/26
光成滋生
• 『データ解析におけるプライバシー保護』
• 10章以降 ; 以降PPinDAと略
• 複数人(パーティ)が互いに自分の情報を隠したまま
複数入力のある関数の値を計算すること
• 2-partyの例)𝑓(𝑥, 𝑦) ; ある関数 Aが𝑥, Bが𝑦を持っている
A, Bが互いに𝑥, 𝑦を見せずに𝑓(𝑥, 𝑦)を求める
• 注意
• A, Bそれぞれが異なる関数の値
𝑓𝐴 𝑥, 𝑦 , 𝑓𝐵(𝑥, 𝑦)を得るタイプもある
• たとえばAとっての𝑓(𝑥, 𝑦)から𝑦の
推測可能性は気にしない(詳細は後述)
• 例えば𝑓 𝑥, 𝑦 = 𝑥 + 𝑦ならばれてしまう
マルチパーティ秘密計算(MPC)
秘密の計算
A
𝑥
B
𝑦
𝑓(𝑥, 𝑦)
2/ 22
• オンライン広告の事例
• A : メールアドレスごとのweb閲覧履歴を持つ会社
• B : メールアドレスごとの購買履歴を持つ会社
• 目的
• Aには購買履歴は教えない
• Bには閲覧履歴を教えない
• Bはどのページを見た人が何を購入したかの傾向を知りたい
• 注意
• ある商品を購入した人が一人ならBはその人の閲覧履歴が分か
ってしまう
• MPCの範疇外 ; これは差分プライバシーで守る範囲
• 日本の個人情報保護法は「匿名加工情報を個人が特定できる
別の情報に結びつけることを禁止」PPinDA p.155
具体例
3/ 22
• semi-honest model
• パーティのそれぞれは定められたプロトコルにきちんと従う
• 自分が取得した情報から最大限、他人の情報を取ろうとする
• malicious model
• なんでもあり
• プロトコルの途中で嘘をついたり途中で止めたりする
• semi-honestをmalicious対応させる一般的な手法がある
• 結託
• 3人以上のMPCでは複数人が互いの情報を共有し、残りの人の
情報を得ようとすることもある
MPCの攻撃者のモデル
4/ 22
• 正当性
• 正しく𝑓を計算すること
• 秘匿性
• 𝑓以外の情報が漏れないこと
• 情報が漏れていないとは
• Aが𝑓(𝑥, 𝑦)を得るときにBとやりとりしたとき
• Bの値𝑦を知らないシミュレータとAがやりとりしたとき
• この二つをAが区別できないとき情報が漏れていないという
• 区別できない
• 情報理論的識別不可能性
• 計算量的識別不可能性
正当性と秘匿性
5/ 22
• 差分プライバシー
• 背景知識と取得した結果から秘密の情報を推測させない
• 攻撃者が不正なことをすることは仮定しない
• 秘密計算
• 結果以外の情報を与えない
• 攻撃者が不正なことをすると仮定する(こともある)
差分プライバシーと秘密計算
6/ 22
• 公開鍵暗号の定式化
• セキュリティパラメータ𝑘 : 平文の空間が2 𝑘
• 鍵生成アルゴリズム
• 𝐺𝑒𝑛 1 𝑘 → 𝑝𝑘, 𝑠𝑘
• 𝑘を決めると公開鍵𝑝𝑘と秘密鍵𝑠𝑘のペアを生成する
• 暗号化アルゴリズム
• 𝐸𝑛𝑐 𝑥, 𝑝𝑘 → 𝑐
• 平文𝑥と公開鍵𝑝𝑘により暗号文𝑐を生成する
• 復号アルゴリズム
• 𝐷𝑒𝑐 𝑐, 𝑠𝑘 → 𝑥
• 暗号文𝑐と秘密鍵𝑠𝑘から平文𝑥を生成する
• 正当性
• 𝐷𝑒𝑐 𝐸𝑛𝑐 𝑥, 𝑝𝑘 , 𝑠𝑘 = 𝑥
11章秘密鍵暗号と公開鍵暗号
7/ 22
• 二つの平文𝑥1, 𝑥2に対してその暗号文𝐸𝑛𝑐(𝑥𝑖)を見ても
どちらがどちらか分からない
• より正確な定式化
• セキュリティパラメータ𝑘に対して任意の確率的多項式時間ア
ルゴリズム𝒜: 0,1 𝑙 𝑘 → {0,1}, 𝑥1, 𝑥2 ∈ 0,1 𝑘に対して
Pr 𝒜1 𝐸𝑛𝑐 𝑥1 = 1 − Pr 𝒜2 𝐸𝑛𝑐 𝑥2 = 1 < negl(𝑘)
• 𝒜𝑖は𝐸𝑛𝑐(𝑥𝑖)が与えられたときに平文が𝑥𝑖と判定したら1を返
すアルゴリズム
• DL ; find 𝑎 if 𝑃, 𝑎𝑃 of elliptic curve are given
• (C)DH ; find 𝑎𝑏𝑃 if 𝑃, 𝑎𝑃, 𝑏𝑃 are given
• DDH ; detect whether 𝑎𝑏𝑃 = 𝑐𝑃 or not if 𝑃, 𝑎𝑃, 𝑏𝑃, 𝑐𝑃
暗号文の計算量的識別不可能性(IND)
8/ 22
• 選択平文攻撃(CPA : Chosen Plaintext Attack)
• 攻撃者が暗号文を受けとる前後に、攻撃者が任意に選んだ平
文に対する暗号文を取得可能な状態を想定
• 選択暗号文攻撃(CCA : Chosen Ciphertext Attack)
• 攻撃者が暗号文𝑐を受け取る前に、攻撃者が任意に選んだ𝑐以
外の暗号文に対する平文を取得可能な状態を想定
• 適応的選択暗号文攻撃(CCA2)
• CCAと「暗号文𝑐を受け取る前後に」が違う
攻撃者のモデル
9/ 22
• IND-CPA
• CPAに対してINDである(区別できない)
• 公開鍵暗号はだれでも任意の平文の暗号文を作れるのでこれ
は必須
• (注意)教科書的RSAはIND-CPAではない
• IND-CCAならIND-CPAがいえる
• IND-CCA, IND-CCA2
• IND-CCA2が理想
• IND-CCA2なら暗号文の改竄ができないことが知られている
• 𝐸𝑛𝑐(1万円)を𝐸𝑛𝑐(10万円)に変えられない(頑強性)
• 詳細は『クラウドを支えるこれからの暗号技術』参照
公開鍵暗号の安全性
10/ 22
• 加法準同型暗号
• 𝐷𝑒𝑐 𝐸𝑛𝑐 𝑥1 ⊕ 𝐸𝑛𝑐 𝑥2 = 𝑥1 + 𝑥2
• 乗法準同型暗号
• 𝐷𝑒𝑐 𝐸𝑛𝑐 𝑥1 ⊗ 𝐸𝑛𝑐 𝑥2 = 𝑥1 𝑥2
• 完全準同型暗号
• 加法+乗法
• 安全性
• 𝐸𝑛𝑐(𝑥)から𝐸𝑛𝑐(2𝑥)または𝐸𝑛𝑐(𝑥2
)を作れる
• 頑強性を持たない
12章 準同型暗号による秘密計算
11/ 22
• 𝑛人の𝑖番目の人の心筋梗塞𝑥𝑖と喫煙習慣𝑦𝑖の情報
• 医療保険会社A : 𝑥𝑖 ∈ 0,1 (𝑖 = 1, … , 𝑛)
• 物販会社B : {𝑦𝑖 ∈ 0,1 }
• 互いに𝑥𝑖, 𝑦𝑖を送らずに分割表を作りたい
• A ; 𝑛1, 𝑛2を自分で計算可能
• B ; 𝑛 𝐴, 𝑛 𝑎を自分で計算可能
• これらの情報を互いに送信
• 𝑛1𝐴 = ∑𝑥𝑖 𝑦𝑖を計算できれば分割表を求められる
分割表計算の2-party秘密計算
喫煙習慣あり 喫煙習慣なし 合計
心筋梗塞あり 𝑛1𝐴 𝑛1𝑎 𝑛1
心筋梗塞なし 𝑛2𝐴 𝑛2𝑎 𝑛2
𝑛 𝐴 𝑛 𝑎 𝑛
12/ 22
• Aが{𝑥𝑖},Bが{𝑦𝑖}を保持するとき秘密計算プロトコルを
してAは𝑛1𝐴 = ∑𝑥𝑖 𝑦𝑖を得るがBは何も得られない
• 𝐸𝑛𝑐 ∑𝑥𝑖 𝑦𝑖 = ∑𝐸𝑛𝑐 𝑥𝑖 𝑦𝑖 = ∑𝑦𝑖 𝐸𝑛𝑐(𝑥𝑖)
• この計算をBが行う
• 2-partyプロトコル
• AはBに公開鍵𝑝𝑘を送信
• Aは𝑐𝑖 = 𝐸𝑛𝑐(𝑥𝑖)をBに送信
• Bは𝑐 = ∑𝑦𝑖 𝑐𝑖 ⊕ 𝐸𝑛𝑐(0)をAに送信
• Aは𝐷𝑒𝑐 𝑐 = ∑𝑥𝑖 𝑦𝑖を取得
• 注意
• 𝐸𝑛𝑐(0)を足すのはランダム化のため
• Aが𝑥 = (0, … , 1, … 0) ; 𝑖番目のみ1を送ると𝑦𝑖が分かってしまう
分割表の秘密計算
13/ 22
• A, Bが第三者Cに計算してもらう場合
• 𝐸𝑛𝑐 𝑛1𝐴 = 𝐸𝑛𝑐 ∑𝑥𝑖 𝑦𝑖 = ∑𝐸𝑛𝑐(𝑥𝑖) ⊗ 𝐸𝑛𝑐(𝑦𝑖)
• Aが𝐸𝑛𝑐(𝑥𝑖)を, Bが𝐸𝑛𝑐(𝑦𝑖)をCに送信して和を計算してもらい
Aに戻してもらう
• Aは復号して𝑛1𝐴を得る
• 注意
• Aは𝐸𝑛𝑐(𝑦𝑖)を復号できるのでBがCに送るときはAに見えない
ようにしないといけない
依頼計算型の分割表計算
14/ 22
• 事前条件
• Aliceは𝑥1, … , 𝑥 𝑛を持っている
• Bobは𝑖 = 1, … , 𝑛のどれか𝑖0を選ぶ
• OTの後
• AliceはBobが選んだ数字は分からない
• Bobは𝑥𝑖0
を得るがそれ以外の𝑥𝑖(𝑖 ≠ 𝑖0)の情報は得られない
紛失通信OT(Oblivious Transfer)
Alice
𝑥1, … , 𝑥 𝑛
Bob
𝑥𝑖0
𝑖0を選択
15/ 22
• 1-out-of 2 OT
• Aliceは𝑥0と𝑥1を持っている
• Bobは𝑏 ∈ {0,1}を選ぶ
楕円曲線で1-out-of 2 OT
Alice 𝑥0, 𝑥1 Bob
𝑏 ∈ {0,1}を選ぶ
𝐶:楕円曲線の点
𝐶
𝑘 : 乱数
𝑄 = ቊ
𝑘𝑃, 𝑏 = 0
𝐶 − 𝑘𝑃, 𝑏 = 1
𝑄𝑟 : 乱数
𝑍0 = 𝐻 𝑟𝑄, 0 ⊕ 𝑥0
𝑍1 = 𝐻 𝑟(𝐶 − 𝑄), 1 ⊕ 𝑥1 𝑍0, 𝑍1, 𝑟𝑃
𝑏 = 0 → 𝐻 𝑘𝑟𝑃, 0 ⊕ 𝑍0 = 𝑥0
𝑏 = 1 → 𝐻 𝑘𝑟𝑃, 1 ⊕ 𝑍1 = 𝑥1
16/ 22
• Bobは公開鍵暗号をセットアップ
• 正しさ
• 𝑏 = 0 → 𝑑0 = 𝑟0 𝐸𝑛𝑐 0 + 𝐸𝑛𝑐 𝑥0 = 𝐸𝑛𝑐(𝑥0)
• 𝑏 = 1 → 𝑑1 = 𝑟1 𝐸𝑛𝑐 1 − 𝐸𝑛𝑐 1 + 𝐸𝑛𝑐 𝑥1 = 𝐸𝑛𝑐(𝑥1)
加法準同型暗号で1-out-of-2 OT
𝑏 ∈ {0,1}を選び
𝑐 = 𝐸𝑛𝑐(𝑏)を送る
𝑐
Alice 𝑥0, 𝑥1
乱数𝑟0, 𝑟1を選ぶ
𝑑1 = 𝑟1 𝑐 − 𝐸𝑛𝑐 1 + 𝐸𝑛𝑐(𝑥1)
𝑑0 = 𝑟0 𝑐 + 𝐸𝑛𝑐 𝑥0
𝑑0, 𝑑1
𝑚 𝑏 ≔ 𝐷𝑒𝑐(𝑑 𝑏)
Bob
17/ 22
• 1-out-of-2 OTを使う
• Aliceは𝑋 = (𝑥𝑖𝑗), 𝑖, 𝑗 = 1,2の4個の情報を持つ
• 𝑌 = (𝑦𝑖𝑗)をランダムに選び𝑍 = 𝑋 ⊕ 𝑌とする
•
𝑥00 𝑥01
𝑥10 𝑥11
=
𝑦00 𝑦01
𝑦10 𝑦11
⊕
𝑧00 𝑧01
𝑧10 𝑧11
• Bobは0~4を2ビット(𝑏1 𝑏0)で表して選ぶ
1. { 𝑦00, 𝑦01 , 𝑦10, 𝑦11 }に対して𝑏0で1-out-of-2 OTを使う
2. { 𝑧00, 𝑧10 , 𝑧01, 𝑧11 }に対して𝑏1で1-out-of-2 OTを使う
3. Bobは𝑥 𝑏1 𝑏0
を復元する
1-out-of-22
OTの構成
18/ 22
• boolean回路の秘密計算を行う
• AliceとBobが秘密の入力を持つ
• 互いに共有せずに論理回路Cの評価結果を得る
• ANDの例
• Alice, Bobの入力が𝑥 𝐴, 𝑥 𝐵 ∈ {0,1}
• Aliceが秘匿回路を作成
• Bobが計算をして𝑦 = 𝑥 𝐴&𝑥 𝐵を得る
• 𝑥 𝐵 = 1なら𝑥 𝐴が分かるがそれは秘匿計算の範囲外
秘匿回路
19/ 22
• 秘密鍵暗号と1-out-of-2 OTを使う
• 入力𝑤 𝐴, 𝑤 𝐵,出力𝑤 𝐶,𝑏 ∈ {0,1}に対する乱数𝑘 𝑏
𝑤
を選ぶ
• 𝑐00 = 𝐸𝑛𝑐(𝑘0
𝑤 𝐴)
(𝐸𝑛𝑐(𝑘0
𝑤 𝐵)
(𝑘0
𝑤 𝐶
0 𝑘
), 0 𝑘
は0が𝑘ビット並んだもの
• 𝑐01 = 𝐸𝑛𝑐(𝑘0
𝑤 𝐴)
(𝐸𝑛𝑐(𝑘1
𝑤 𝐵)
(𝑘0
𝑤 𝐶
0 𝑘 )
• 𝑐10 = 𝐸𝑛𝑐(𝑘1
𝑤 𝐴)
(𝐸𝑛𝑐(𝑘0
𝑤 𝐵)
(𝑘0
𝑤 𝐶
0 𝑘
)
• 𝑐11 = 𝐸𝑛𝑐(𝑘1
𝑤 𝐴)
(𝐸𝑛𝑐(𝑘1
𝑤 𝐵)
(𝑘1
𝑤 𝐶
0 𝑘 )
• {𝑐00, 𝑐01, 𝑐10, 𝑐11}をシャッフルしたものが秘匿回路
• Aliceは𝑘 𝑥 𝐴
𝑤 𝐴
をBobに送る
• Bobは𝑥 𝐵に対して{𝑘0
𝑤 𝐵
, 𝑘1
𝑤 𝐵
}からOTで𝑘 𝑥 𝐵
𝑤 𝐵
を得る
• 𝑐𝑖𝑗をこれらで復号し下位が0 𝑘なものの𝑘 𝑥 𝐶
𝑤 𝐶
が求めるもの
回路の構成方法
20/ 22
• 素因数分解の困難性ベースの加法準同型暗号
• 鍵生成
• 𝑝, 𝑞 : 同じビットサイズのランダムな素数
• 𝑛 = 𝑝𝑞, 𝜆 = (𝑝 − 1)(𝑞 − 1), 𝑔 = 1 + 𝑛
• 秘密鍵は𝜆, 公開鍵は𝑛と𝑔
• 暗号化
• 𝐸𝑛𝑐 𝑚 = 𝑔 𝑚 𝑟 𝑛 mod 𝑛2
• 𝑟は𝑝でも𝑞でも割れない乱数
• 復号
• 𝐷𝑒𝑐 𝑐 = 𝐿(𝑐 𝜆 mod 𝑛2)/𝜆 mod 𝑛
• 𝐿 𝑥 = (𝑥 − 1)/𝑛 mod 𝑛
Pailler暗号
21/ 22
• 1 + 𝑛 𝑥 = 1 + 𝑥𝑛 +
𝑥 𝑥−1
2
𝑛2 + ⋯
• よって 1 + 𝑛 𝑥 = 1 + 𝑛𝑥 mod 𝑛2
• 𝑐 ≔ 𝐸𝑛𝑐 𝑚 = 𝑔 𝑚 𝑟 𝑛なので𝑐 𝜆 = 𝑔 𝑚𝜆 𝑟 𝑛𝜆
• 𝑎 𝑝−1
≡ 1 mod 𝑝より∃𝑠, 𝑡 𝑟 𝑝−1 𝑞−1
= 1 + 𝑝𝑠 = 1 + 𝑞𝑡
• 𝑝 ≠ 𝑞なので𝑠は𝑡で割れて𝑟 𝜆 = 𝑟 𝑝−1 𝑞−1 = 1 + 𝑝𝑞𝑠′ = 1 + 𝑛𝑠′
• よって𝑟 𝑛𝜆 = 1 mod 𝑛2
• 𝑐 𝜆
= 𝑔 𝑚𝜆
= 1 + 𝑛 𝑚𝜆
= 1 + 𝑛𝑚𝜆 mod 𝑛2
• 𝐿 𝑐 𝜆 =
1+𝑛𝑚𝜆−1
𝑛
= 𝑚𝜆より𝐷𝑒𝑐 𝑐 =
𝐿 𝑐 𝜆
𝜆
= 𝑚
• 加法性
• 𝐸𝑛𝑐 𝑚1 + 𝐸𝑛𝑐 𝑚2 ∶= 𝑐1 𝑐2 = 𝑔 𝑚1+𝑚2 𝑟1 𝑟2
𝑛 = 𝐸𝑛𝑐(𝑚1 + 𝑚2)
𝐷𝑒𝑐 𝐸𝑛𝑐 𝑚 = 𝑚の確認
22/ 22

More Related Content

What's hot

Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
MITSUNARI Shigeo
 

What's hot (20)

暗認本読書会13 advanced
暗認本読書会13 advanced暗認本読書会13 advanced
暗認本読書会13 advanced
 
変分ベイズ法の説明
変分ベイズ法の説明変分ベイズ法の説明
変分ベイズ法の説明
 
証明プログラミング超入門
証明プログラミング超入門証明プログラミング超入門
証明プログラミング超入門
 
【暗号通貨輪読会#14】confidential transaction
【暗号通貨輪読会#14】confidential transaction【暗号通貨輪読会#14】confidential transaction
【暗号通貨輪読会#14】confidential transaction
 
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
 
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?
 
ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
変数同士の関連_MIC
変数同士の関連_MIC変数同士の関連_MIC
変数同士の関連_MIC
 
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
 
暗認本読書会6
暗認本読書会6暗認本読書会6
暗認本読書会6
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 
zk-SNARKsの仕組みについて
zk-SNARKsの仕組みについてzk-SNARKsの仕組みについて
zk-SNARKsの仕組みについて
 
3次元の凸包を求める
3次元の凸包を求める3次元の凸包を求める
3次元の凸包を求める
 
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
 
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpRSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
指数時間アルゴリズム入門
指数時間アルゴリズム入門指数時間アルゴリズム入門
指数時間アルゴリズム入門
 
範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコル範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコル
 

Similar to 『データ解析におけるプライバシー保護』勉強会 秘密計算

ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
MITSUNARI Shigeo
 
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
MITSUNARI Shigeo
 
ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話
Preferred Networks
 

Similar to 『データ解析におけるプライバシー保護』勉強会 秘密計算 (20)

ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
 
楕円曲線入門 トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門 トーラスと楕円曲線のつながり
 
3DESの件 〜俺、112bitになります〜
3DESの件 〜俺、112bitになります〜3DESの件 〜俺、112bitになります〜
3DESの件 〜俺、112bitになります〜
 
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
 
Misosou=Justice of Punctual+mazekoze+umatobi
Misosou=Justice of Punctual+mazekoze+umatobiMisosou=Justice of Punctual+mazekoze+umatobi
Misosou=Justice of Punctual+mazekoze+umatobi
 
楕円曲線と暗号
楕円曲線と暗号楕円曲線と暗号
楕円曲線と暗号
 
集約署名
集約署名集約署名
集約署名
 
ビットコインで使われている暗号の基礎を学ぶ
ビットコインで使われている暗号の基礎を学ぶビットコインで使われている暗号の基礎を学ぶ
ビットコインで使われている暗号の基礎を学ぶ
 
ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話
 
Introduction to programming
Introduction to programmingIntroduction to programming
Introduction to programming
 
[DL輪読会]GQNと関連研究,世界モデルとの関係について
[DL輪読会]GQNと関連研究,世界モデルとの関係について[DL輪読会]GQNと関連研究,世界モデルとの関係について
[DL輪読会]GQNと関連研究,世界モデルとの関係について
 
6 Info Theory
6 Info Theory6 Info Theory
6 Info Theory
 
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
 
暗認本読書会12
暗認本読書会12暗認本読書会12
暗認本読書会12
 
バックドア耐性のあるパスワード暗号化の提案
バックドア耐性のあるパスワード暗号化の提案バックドア耐性のあるパスワード暗号化の提案
バックドア耐性のあるパスワード暗号化の提案
 
実用Brainf*ckプログラミング
実用Brainf*ckプログラミング実用Brainf*ckプログラミング
実用Brainf*ckプログラミング
 
Deep Learning 勉強会 (Chapter 7-12)
Deep Learning 勉強会 (Chapter 7-12)Deep Learning 勉強会 (Chapter 7-12)
Deep Learning 勉強会 (Chapter 7-12)
 
DynamoDB MyNA・JPUG合同DB勉強会 in 東京
DynamoDB   MyNA・JPUG合同DB勉強会 in 東京DynamoDB   MyNA・JPUG合同DB勉強会 in 東京
DynamoDB MyNA・JPUG合同DB勉強会 in 東京
 
AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説
 
動的計画法の並列化
動的計画法の並列化動的計画法の並列化
動的計画法の並列化
 

More from MITSUNARI Shigeo

More from MITSUNARI Shigeo (19)

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

Recently uploaded (12)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

『データ解析におけるプライバシー保護』勉強会 秘密計算

  • 2. • 『データ解析におけるプライバシー保護』 • 10章以降 ; 以降PPinDAと略 • 複数人(パーティ)が互いに自分の情報を隠したまま 複数入力のある関数の値を計算すること • 2-partyの例)𝑓(𝑥, 𝑦) ; ある関数 Aが𝑥, Bが𝑦を持っている A, Bが互いに𝑥, 𝑦を見せずに𝑓(𝑥, 𝑦)を求める • 注意 • A, Bそれぞれが異なる関数の値 𝑓𝐴 𝑥, 𝑦 , 𝑓𝐵(𝑥, 𝑦)を得るタイプもある • たとえばAとっての𝑓(𝑥, 𝑦)から𝑦の 推測可能性は気にしない(詳細は後述) • 例えば𝑓 𝑥, 𝑦 = 𝑥 + 𝑦ならばれてしまう マルチパーティ秘密計算(MPC) 秘密の計算 A 𝑥 B 𝑦 𝑓(𝑥, 𝑦) 2/ 22
  • 3. • オンライン広告の事例 • A : メールアドレスごとのweb閲覧履歴を持つ会社 • B : メールアドレスごとの購買履歴を持つ会社 • 目的 • Aには購買履歴は教えない • Bには閲覧履歴を教えない • Bはどのページを見た人が何を購入したかの傾向を知りたい • 注意 • ある商品を購入した人が一人ならBはその人の閲覧履歴が分か ってしまう • MPCの範疇外 ; これは差分プライバシーで守る範囲 • 日本の個人情報保護法は「匿名加工情報を個人が特定できる 別の情報に結びつけることを禁止」PPinDA p.155 具体例 3/ 22
  • 4. • semi-honest model • パーティのそれぞれは定められたプロトコルにきちんと従う • 自分が取得した情報から最大限、他人の情報を取ろうとする • malicious model • なんでもあり • プロトコルの途中で嘘をついたり途中で止めたりする • semi-honestをmalicious対応させる一般的な手法がある • 結託 • 3人以上のMPCでは複数人が互いの情報を共有し、残りの人の 情報を得ようとすることもある MPCの攻撃者のモデル 4/ 22
  • 5. • 正当性 • 正しく𝑓を計算すること • 秘匿性 • 𝑓以外の情報が漏れないこと • 情報が漏れていないとは • Aが𝑓(𝑥, 𝑦)を得るときにBとやりとりしたとき • Bの値𝑦を知らないシミュレータとAがやりとりしたとき • この二つをAが区別できないとき情報が漏れていないという • 区別できない • 情報理論的識別不可能性 • 計算量的識別不可能性 正当性と秘匿性 5/ 22
  • 6. • 差分プライバシー • 背景知識と取得した結果から秘密の情報を推測させない • 攻撃者が不正なことをすることは仮定しない • 秘密計算 • 結果以外の情報を与えない • 攻撃者が不正なことをすると仮定する(こともある) 差分プライバシーと秘密計算 6/ 22
  • 7. • 公開鍵暗号の定式化 • セキュリティパラメータ𝑘 : 平文の空間が2 𝑘 • 鍵生成アルゴリズム • 𝐺𝑒𝑛 1 𝑘 → 𝑝𝑘, 𝑠𝑘 • 𝑘を決めると公開鍵𝑝𝑘と秘密鍵𝑠𝑘のペアを生成する • 暗号化アルゴリズム • 𝐸𝑛𝑐 𝑥, 𝑝𝑘 → 𝑐 • 平文𝑥と公開鍵𝑝𝑘により暗号文𝑐を生成する • 復号アルゴリズム • 𝐷𝑒𝑐 𝑐, 𝑠𝑘 → 𝑥 • 暗号文𝑐と秘密鍵𝑠𝑘から平文𝑥を生成する • 正当性 • 𝐷𝑒𝑐 𝐸𝑛𝑐 𝑥, 𝑝𝑘 , 𝑠𝑘 = 𝑥 11章秘密鍵暗号と公開鍵暗号 7/ 22
  • 8. • 二つの平文𝑥1, 𝑥2に対してその暗号文𝐸𝑛𝑐(𝑥𝑖)を見ても どちらがどちらか分からない • より正確な定式化 • セキュリティパラメータ𝑘に対して任意の確率的多項式時間ア ルゴリズム𝒜: 0,1 𝑙 𝑘 → {0,1}, 𝑥1, 𝑥2 ∈ 0,1 𝑘に対して Pr 𝒜1 𝐸𝑛𝑐 𝑥1 = 1 − Pr 𝒜2 𝐸𝑛𝑐 𝑥2 = 1 < negl(𝑘) • 𝒜𝑖は𝐸𝑛𝑐(𝑥𝑖)が与えられたときに平文が𝑥𝑖と判定したら1を返 すアルゴリズム • DL ; find 𝑎 if 𝑃, 𝑎𝑃 of elliptic curve are given • (C)DH ; find 𝑎𝑏𝑃 if 𝑃, 𝑎𝑃, 𝑏𝑃 are given • DDH ; detect whether 𝑎𝑏𝑃 = 𝑐𝑃 or not if 𝑃, 𝑎𝑃, 𝑏𝑃, 𝑐𝑃 暗号文の計算量的識別不可能性(IND) 8/ 22
  • 9. • 選択平文攻撃(CPA : Chosen Plaintext Attack) • 攻撃者が暗号文を受けとる前後に、攻撃者が任意に選んだ平 文に対する暗号文を取得可能な状態を想定 • 選択暗号文攻撃(CCA : Chosen Ciphertext Attack) • 攻撃者が暗号文𝑐を受け取る前に、攻撃者が任意に選んだ𝑐以 外の暗号文に対する平文を取得可能な状態を想定 • 適応的選択暗号文攻撃(CCA2) • CCAと「暗号文𝑐を受け取る前後に」が違う 攻撃者のモデル 9/ 22
  • 10. • IND-CPA • CPAに対してINDである(区別できない) • 公開鍵暗号はだれでも任意の平文の暗号文を作れるのでこれ は必須 • (注意)教科書的RSAはIND-CPAではない • IND-CCAならIND-CPAがいえる • IND-CCA, IND-CCA2 • IND-CCA2が理想 • IND-CCA2なら暗号文の改竄ができないことが知られている • 𝐸𝑛𝑐(1万円)を𝐸𝑛𝑐(10万円)に変えられない(頑強性) • 詳細は『クラウドを支えるこれからの暗号技術』参照 公開鍵暗号の安全性 10/ 22
  • 11. • 加法準同型暗号 • 𝐷𝑒𝑐 𝐸𝑛𝑐 𝑥1 ⊕ 𝐸𝑛𝑐 𝑥2 = 𝑥1 + 𝑥2 • 乗法準同型暗号 • 𝐷𝑒𝑐 𝐸𝑛𝑐 𝑥1 ⊗ 𝐸𝑛𝑐 𝑥2 = 𝑥1 𝑥2 • 完全準同型暗号 • 加法+乗法 • 安全性 • 𝐸𝑛𝑐(𝑥)から𝐸𝑛𝑐(2𝑥)または𝐸𝑛𝑐(𝑥2 )を作れる • 頑強性を持たない 12章 準同型暗号による秘密計算 11/ 22
  • 12. • 𝑛人の𝑖番目の人の心筋梗塞𝑥𝑖と喫煙習慣𝑦𝑖の情報 • 医療保険会社A : 𝑥𝑖 ∈ 0,1 (𝑖 = 1, … , 𝑛) • 物販会社B : {𝑦𝑖 ∈ 0,1 } • 互いに𝑥𝑖, 𝑦𝑖を送らずに分割表を作りたい • A ; 𝑛1, 𝑛2を自分で計算可能 • B ; 𝑛 𝐴, 𝑛 𝑎を自分で計算可能 • これらの情報を互いに送信 • 𝑛1𝐴 = ∑𝑥𝑖 𝑦𝑖を計算できれば分割表を求められる 分割表計算の2-party秘密計算 喫煙習慣あり 喫煙習慣なし 合計 心筋梗塞あり 𝑛1𝐴 𝑛1𝑎 𝑛1 心筋梗塞なし 𝑛2𝐴 𝑛2𝑎 𝑛2 𝑛 𝐴 𝑛 𝑎 𝑛 12/ 22
  • 13. • Aが{𝑥𝑖},Bが{𝑦𝑖}を保持するとき秘密計算プロトコルを してAは𝑛1𝐴 = ∑𝑥𝑖 𝑦𝑖を得るがBは何も得られない • 𝐸𝑛𝑐 ∑𝑥𝑖 𝑦𝑖 = ∑𝐸𝑛𝑐 𝑥𝑖 𝑦𝑖 = ∑𝑦𝑖 𝐸𝑛𝑐(𝑥𝑖) • この計算をBが行う • 2-partyプロトコル • AはBに公開鍵𝑝𝑘を送信 • Aは𝑐𝑖 = 𝐸𝑛𝑐(𝑥𝑖)をBに送信 • Bは𝑐 = ∑𝑦𝑖 𝑐𝑖 ⊕ 𝐸𝑛𝑐(0)をAに送信 • Aは𝐷𝑒𝑐 𝑐 = ∑𝑥𝑖 𝑦𝑖を取得 • 注意 • 𝐸𝑛𝑐(0)を足すのはランダム化のため • Aが𝑥 = (0, … , 1, … 0) ; 𝑖番目のみ1を送ると𝑦𝑖が分かってしまう 分割表の秘密計算 13/ 22
  • 14. • A, Bが第三者Cに計算してもらう場合 • 𝐸𝑛𝑐 𝑛1𝐴 = 𝐸𝑛𝑐 ∑𝑥𝑖 𝑦𝑖 = ∑𝐸𝑛𝑐(𝑥𝑖) ⊗ 𝐸𝑛𝑐(𝑦𝑖) • Aが𝐸𝑛𝑐(𝑥𝑖)を, Bが𝐸𝑛𝑐(𝑦𝑖)をCに送信して和を計算してもらい Aに戻してもらう • Aは復号して𝑛1𝐴を得る • 注意 • Aは𝐸𝑛𝑐(𝑦𝑖)を復号できるのでBがCに送るときはAに見えない ようにしないといけない 依頼計算型の分割表計算 14/ 22
  • 15. • 事前条件 • Aliceは𝑥1, … , 𝑥 𝑛を持っている • Bobは𝑖 = 1, … , 𝑛のどれか𝑖0を選ぶ • OTの後 • AliceはBobが選んだ数字は分からない • Bobは𝑥𝑖0 を得るがそれ以外の𝑥𝑖(𝑖 ≠ 𝑖0)の情報は得られない 紛失通信OT(Oblivious Transfer) Alice 𝑥1, … , 𝑥 𝑛 Bob 𝑥𝑖0 𝑖0を選択 15/ 22
  • 16. • 1-out-of 2 OT • Aliceは𝑥0と𝑥1を持っている • Bobは𝑏 ∈ {0,1}を選ぶ 楕円曲線で1-out-of 2 OT Alice 𝑥0, 𝑥1 Bob 𝑏 ∈ {0,1}を選ぶ 𝐶:楕円曲線の点 𝐶 𝑘 : 乱数 𝑄 = ቊ 𝑘𝑃, 𝑏 = 0 𝐶 − 𝑘𝑃, 𝑏 = 1 𝑄𝑟 : 乱数 𝑍0 = 𝐻 𝑟𝑄, 0 ⊕ 𝑥0 𝑍1 = 𝐻 𝑟(𝐶 − 𝑄), 1 ⊕ 𝑥1 𝑍0, 𝑍1, 𝑟𝑃 𝑏 = 0 → 𝐻 𝑘𝑟𝑃, 0 ⊕ 𝑍0 = 𝑥0 𝑏 = 1 → 𝐻 𝑘𝑟𝑃, 1 ⊕ 𝑍1 = 𝑥1 16/ 22
  • 17. • Bobは公開鍵暗号をセットアップ • 正しさ • 𝑏 = 0 → 𝑑0 = 𝑟0 𝐸𝑛𝑐 0 + 𝐸𝑛𝑐 𝑥0 = 𝐸𝑛𝑐(𝑥0) • 𝑏 = 1 → 𝑑1 = 𝑟1 𝐸𝑛𝑐 1 − 𝐸𝑛𝑐 1 + 𝐸𝑛𝑐 𝑥1 = 𝐸𝑛𝑐(𝑥1) 加法準同型暗号で1-out-of-2 OT 𝑏 ∈ {0,1}を選び 𝑐 = 𝐸𝑛𝑐(𝑏)を送る 𝑐 Alice 𝑥0, 𝑥1 乱数𝑟0, 𝑟1を選ぶ 𝑑1 = 𝑟1 𝑐 − 𝐸𝑛𝑐 1 + 𝐸𝑛𝑐(𝑥1) 𝑑0 = 𝑟0 𝑐 + 𝐸𝑛𝑐 𝑥0 𝑑0, 𝑑1 𝑚 𝑏 ≔ 𝐷𝑒𝑐(𝑑 𝑏) Bob 17/ 22
  • 18. • 1-out-of-2 OTを使う • Aliceは𝑋 = (𝑥𝑖𝑗), 𝑖, 𝑗 = 1,2の4個の情報を持つ • 𝑌 = (𝑦𝑖𝑗)をランダムに選び𝑍 = 𝑋 ⊕ 𝑌とする • 𝑥00 𝑥01 𝑥10 𝑥11 = 𝑦00 𝑦01 𝑦10 𝑦11 ⊕ 𝑧00 𝑧01 𝑧10 𝑧11 • Bobは0~4を2ビット(𝑏1 𝑏0)で表して選ぶ 1. { 𝑦00, 𝑦01 , 𝑦10, 𝑦11 }に対して𝑏0で1-out-of-2 OTを使う 2. { 𝑧00, 𝑧10 , 𝑧01, 𝑧11 }に対して𝑏1で1-out-of-2 OTを使う 3. Bobは𝑥 𝑏1 𝑏0 を復元する 1-out-of-22 OTの構成 18/ 22
  • 19. • boolean回路の秘密計算を行う • AliceとBobが秘密の入力を持つ • 互いに共有せずに論理回路Cの評価結果を得る • ANDの例 • Alice, Bobの入力が𝑥 𝐴, 𝑥 𝐵 ∈ {0,1} • Aliceが秘匿回路を作成 • Bobが計算をして𝑦 = 𝑥 𝐴&𝑥 𝐵を得る • 𝑥 𝐵 = 1なら𝑥 𝐴が分かるがそれは秘匿計算の範囲外 秘匿回路 19/ 22
  • 20. • 秘密鍵暗号と1-out-of-2 OTを使う • 入力𝑤 𝐴, 𝑤 𝐵,出力𝑤 𝐶,𝑏 ∈ {0,1}に対する乱数𝑘 𝑏 𝑤 を選ぶ • 𝑐00 = 𝐸𝑛𝑐(𝑘0 𝑤 𝐴) (𝐸𝑛𝑐(𝑘0 𝑤 𝐵) (𝑘0 𝑤 𝐶 0 𝑘 ), 0 𝑘 は0が𝑘ビット並んだもの • 𝑐01 = 𝐸𝑛𝑐(𝑘0 𝑤 𝐴) (𝐸𝑛𝑐(𝑘1 𝑤 𝐵) (𝑘0 𝑤 𝐶 0 𝑘 ) • 𝑐10 = 𝐸𝑛𝑐(𝑘1 𝑤 𝐴) (𝐸𝑛𝑐(𝑘0 𝑤 𝐵) (𝑘0 𝑤 𝐶 0 𝑘 ) • 𝑐11 = 𝐸𝑛𝑐(𝑘1 𝑤 𝐴) (𝐸𝑛𝑐(𝑘1 𝑤 𝐵) (𝑘1 𝑤 𝐶 0 𝑘 ) • {𝑐00, 𝑐01, 𝑐10, 𝑐11}をシャッフルしたものが秘匿回路 • Aliceは𝑘 𝑥 𝐴 𝑤 𝐴 をBobに送る • Bobは𝑥 𝐵に対して{𝑘0 𝑤 𝐵 , 𝑘1 𝑤 𝐵 }からOTで𝑘 𝑥 𝐵 𝑤 𝐵 を得る • 𝑐𝑖𝑗をこれらで復号し下位が0 𝑘なものの𝑘 𝑥 𝐶 𝑤 𝐶 が求めるもの 回路の構成方法 20/ 22
  • 21. • 素因数分解の困難性ベースの加法準同型暗号 • 鍵生成 • 𝑝, 𝑞 : 同じビットサイズのランダムな素数 • 𝑛 = 𝑝𝑞, 𝜆 = (𝑝 − 1)(𝑞 − 1), 𝑔 = 1 + 𝑛 • 秘密鍵は𝜆, 公開鍵は𝑛と𝑔 • 暗号化 • 𝐸𝑛𝑐 𝑚 = 𝑔 𝑚 𝑟 𝑛 mod 𝑛2 • 𝑟は𝑝でも𝑞でも割れない乱数 • 復号 • 𝐷𝑒𝑐 𝑐 = 𝐿(𝑐 𝜆 mod 𝑛2)/𝜆 mod 𝑛 • 𝐿 𝑥 = (𝑥 − 1)/𝑛 mod 𝑛 Pailler暗号 21/ 22
  • 22. • 1 + 𝑛 𝑥 = 1 + 𝑥𝑛 + 𝑥 𝑥−1 2 𝑛2 + ⋯ • よって 1 + 𝑛 𝑥 = 1 + 𝑛𝑥 mod 𝑛2 • 𝑐 ≔ 𝐸𝑛𝑐 𝑚 = 𝑔 𝑚 𝑟 𝑛なので𝑐 𝜆 = 𝑔 𝑚𝜆 𝑟 𝑛𝜆 • 𝑎 𝑝−1 ≡ 1 mod 𝑝より∃𝑠, 𝑡 𝑟 𝑝−1 𝑞−1 = 1 + 𝑝𝑠 = 1 + 𝑞𝑡 • 𝑝 ≠ 𝑞なので𝑠は𝑡で割れて𝑟 𝜆 = 𝑟 𝑝−1 𝑞−1 = 1 + 𝑝𝑞𝑠′ = 1 + 𝑛𝑠′ • よって𝑟 𝑛𝜆 = 1 mod 𝑛2 • 𝑐 𝜆 = 𝑔 𝑚𝜆 = 1 + 𝑛 𝑚𝜆 = 1 + 𝑛𝑚𝜆 mod 𝑛2 • 𝐿 𝑐 𝜆 = 1+𝑛𝑚𝜆−1 𝑛 = 𝑚𝜆より𝐷𝑒𝑐 𝑐 = 𝐿 𝑐 𝜆 𝜆 = 𝑚 • 加法性 • 𝐸𝑛𝑐 𝑚1 + 𝐸𝑛𝑐 𝑚2 ∶= 𝑐1 𝑐2 = 𝑔 𝑚1+𝑚2 𝑟1 𝑟2 𝑛 = 𝐸𝑛𝑐(𝑚1 + 𝑚2) 𝐷𝑒𝑐 𝐸𝑛𝑐 𝑚 = 𝑚の確認 22/ 22