SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
秘密計算
佐久間淳『データ解析におけるプライバシー保護』
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

Contenu connexe

Tendances

zk-SNARKsの仕組みについて
zk-SNARKsの仕組みについてzk-SNARKsの仕組みについて
zk-SNARKsの仕組みについてts21
 
ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界Preferred Networks
 
Rolling Hashを殺す話
Rolling Hashを殺す話Rolling Hashを殺す話
Rolling Hashを殺す話Nagisa Eto
 
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造Takuya Akiba
 
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解MITSUNARI Shigeo
 
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~Takuya Akiba
 
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)Kensuke Otsuki
 
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜Takahiro Inoue
 
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとはTakuya Akiba
 
差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)Kentaro Minami
 
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)AtCoder Inc.
 
範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコル範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコルMITSUNARI Shigeo
 
2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方Tsuneo Yoshioka
 
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~Takuya Akiba
 
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺Xbyakの紹介とその周辺
Xbyakの紹介とその周辺MITSUNARI Shigeo
 
暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がり暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がりMITSUNARI Shigeo
 
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化MITSUNARI Shigeo
 

Tendances (20)

暗認本読書会5
暗認本読書会5暗認本読書会5
暗認本読書会5
 
zk-SNARKsの仕組みについて
zk-SNARKsの仕組みについてzk-SNARKsの仕組みについて
zk-SNARKsの仕組みについて
 
ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界
 
Rolling Hashを殺す話
Rolling Hashを殺す話Rolling Hashを殺す話
Rolling Hashを殺す話
 
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
 
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
 
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
 
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
 
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
 
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは
 
差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)
 
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)
 
範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコル範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコル
 
2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方
 
暗認本読書会4
暗認本読書会4暗認本読書会4
暗認本読書会4
 
暗認本読書会6
暗認本読書会6暗認本読書会6
暗認本読書会6
 
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
 
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
 
暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がり暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がり
 
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
 

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

ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用MITSUNARI Shigeo
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学MITSUNARI Shigeo
 
3DESの件 〜俺、112bitになります〜
3DESの件 〜俺、112bitになります〜3DESの件 〜俺、112bitになります〜
3DESの件 〜俺、112bitになります〜enigma63
 
Misosou=Justice of Punctual+mazekoze+umatobi
Misosou=Justice of Punctual+mazekoze+umatobiMisosou=Justice of Punctual+mazekoze+umatobi
Misosou=Justice of Punctual+mazekoze+umatobiume doblock
 
ビットコインで使われている暗号の基礎を学ぶ
ビットコインで使われている暗号の基礎を学ぶビットコインで使われている暗号の基礎を学ぶ
ビットコインで使われている暗号の基礎を学ぶYuto Takei
 
ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話Preferred Networks
 
[DL輪読会]GQNと関連研究,世界モデルとの関係について
[DL輪読会]GQNと関連研究,世界モデルとの関係について[DL輪読会]GQNと関連研究,世界モデルとの関係について
[DL輪読会]GQNと関連研究,世界モデルとの関係についてDeep Learning JP
 
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号Yuto Takei
 
バックドア耐性のあるパスワード暗号化の提案
バックドア耐性のあるパスワード暗号化の提案バックドア耐性のあるパスワード暗号化の提案
バックドア耐性のあるパスワード暗号化の提案MITSUNARI Shigeo
 
Deep Learning 勉強会 (Chapter 7-12)
Deep Learning 勉強会 (Chapter 7-12)Deep Learning 勉強会 (Chapter 7-12)
Deep Learning 勉強会 (Chapter 7-12)Ohsawa Goodfellow
 
DynamoDB MyNA・JPUG合同DB勉強会 in 東京
DynamoDB   MyNA・JPUG合同DB勉強会 in 東京DynamoDB   MyNA・JPUG合同DB勉強会 in 東京
DynamoDB MyNA・JPUG合同DB勉強会 in 東京Yuko Mori
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろHiroshi Yamashita
 
AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説AtCoder Inc.
 
動的計画法の並列化
動的計画法の並列化動的計画法の並列化
動的計画法の並列化Proktmr
 
Javascript で暗号化
Javascript で暗号化Javascript で暗号化
Javascript で暗号化suno88
 

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

ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
3DESの件 〜俺、112bitになります〜
3DESの件 〜俺、112bitになります〜3DESの件 〜俺、112bitになります〜
3DESの件 〜俺、112bitになります〜
 
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 解説
 
動的計画法の並列化
動的計画法の並列化動的計画法の並列化
動的計画法の並列化
 
Javascript で暗号化
Javascript で暗号化Javascript で暗号化
Javascript で暗号化
 

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
 
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
 

Plus de MITSUNARI Shigeo (18)

暗認本読書会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
 
深層学習フレームワークにおける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
 

Dernier

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 

Dernier (8)

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 

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

  • 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