暗認本読書会11
準同型暗号, MPC, 秘密分散, DKG, ペアリング, BLS署名
2021/12/9
https://anninbon.connpass.com/
光成滋生
• 暗号文のまま復号せずに計算する暗号技術
• 暗号文同士の足し算 : 𝐸𝑛𝑐 𝑚1 + 𝐸𝑛𝑐 𝑚2 = 𝐸𝑛𝑐 𝑚1 + 𝑚2
• 暗号文同士の掛け算 : 𝐸𝑛𝑐 𝑚1 × 𝐸𝑛𝑐 𝑚2 = 𝐸𝑛𝑐(𝑚1𝑚2)
• コンピュータの計算
• ビット演算andとxor(排他的論理和)で全ての回路は作れる
• 𝔽2 = {0,1}の足し算
• 0 + 0 = 0, 0 + 1 = 1 + 0 = 1, 1 + 1 = 0 ; これはxor
• 0 × 0 = 1 × 0 = 0 × 1 = 0, 1 × 1 = 1 ; これはand
• 1bit暗号文の足し算と掛け算→任意の計算が可能
• 掛け算のみ、足し算のみは昔から知られていた
• 両方出来るものの構成が長らくの未解決問題
• 2009年Gentryが構築→完全準同型暗号の発展
準同型暗号HE(Homomorphic Encryption)
2 / 18
• 画像のエッジ検出(AHE)
• クライアントで撮った2値画像を暗号化してサーバに送信
• サーバでエッジ強調処理をしてクライアントに渡して復号
• https://github.com/herumi/ahe-demo
• クロス集計(WebAssemblyで実装)
• https://herumi.github.io/she-wasm/
デモ
3 / 18
• 紛失通信OT(Oblivious Transfer)
• https://ppdm.jp/ot/
• 円周率のN桁(1<N<100万)をNを隠して問い合わせる
• https://ppdm.jp/ot/
• クライアント𝐸𝑛𝑐(𝑚)
• サーバ𝑇𝑎𝑏𝑙𝑒 𝐸𝑛𝑐 𝑚 = 𝐸𝑛𝑐[𝑇𝑎𝑏𝑙𝑒 𝑚 ]を返す
• FHEの例(京都大学の松岡-伴野-松本さん)
• FHEを使って動作するCPUとCコンパイラ開発セット
• https://virtualsecureplatform.github.io/
L2HE, FHEを使ったデモ
4 / 18
• 平文の世界と暗号文の世界が対応
• 現在の主流は格子を基本にした格子暗号
• 格子 : ジャングルジムの高次元版
• 暗号文 = 平文の線型処理+小さいノイズ
• 復号は秘密鍵を知っていればノイズを除去できる
• 加算 : ノイズはあまり大きくならない
• 乗算 : ノイズが増える傾向→取り除く操作
完全準同型暗号FHE(Fully HE)
5 / 18
• 乗算回数の上限で分類
• 加法準同型暗号AHEで出来ること
• 𝐸𝑛𝑐 𝑥 + 𝐸𝑛𝑐 𝑥 = 𝐸𝑛𝑐 𝑥 + 𝑥 = 𝐸𝑛𝑐 2𝑥
• 𝐸𝑛𝑐 2𝑥 + 𝐸𝑛𝑐 𝑥 = 𝐸𝑛𝑐 2𝑥 + 𝑥 = 𝐸𝑛𝑐 3𝑥
• 一般に暗号文の𝑛倍𝑛𝐸𝑛𝑐 𝑥 = 𝐸𝑛𝑐(𝑛𝑥)は計算可能
• 2レベル準同型暗号2LHEで出来ること
• 2個のベクトルデータ𝑥 = (𝑥1, … , 𝑥𝑛)と𝑦 = (𝑦1, … , 𝑦𝑛)の内積
• 𝐸𝑛𝑐 𝑥1 , … , 𝐸𝑛𝑐 𝑥𝑛 ⋅ 𝐸𝑛𝑐 𝑦1 , … , 𝐸𝑛𝑐 𝑦𝑛 = 𝐸𝑛𝑐 ∑𝑥𝑖𝑦𝑖
• 平均, 標準偏差, 2個のベクトルのcos類似度など
準同型暗号のレベル
準同型暗号の種類 加算 乗算 演算コスト
加法準同型暗号 任意回 0 軽い
2レベル準同型暗号 任意回 1 まあまあ
Nレベル準同型暗号 任意回 N-1 Nが大きいほど重たい
完全準同型暗号 任意回 任意回 重たい
6 / 18
• データを秘匿化して計算する技術の総称
• 準同型暗号, 秘密分散, MPCなどを含む
• MPC(Multi-Party Computation)
• 複数人が協調して互いの秘密情報を教えることなく計算
• 例 : 𝑓 𝑥1, … , 𝑥𝑛 = max(𝑥1, … , 𝑥𝑛) ; 𝑥𝑖=各自の資産
• 一番お金持ちの資産を得る : それぞれの値は分からない
• 注意 : 𝑛 = 2のとき少ない資産の人は相手の値が分かる
秘密計算
7 / 18
• semi-honestモデル
• プロトコルの参加者はプロトコルに正しく従う
• 計算途中に取得した値から精一杯相手の情報は得ろうとする
• maliciousモデル
• プロトコルに従わない
• 自分に有利な情報を得たら途中で止める
• 一貫性の無い値を提出する
• 注意 : 一貫して嘘の値を付くのは対象外(資産の嘘の報告)
• 一般に
• semi-honestモデルの方が効率がよい
• maliciousモデルでは嘘つきが参加者のうちどれぐらいいるか
によって効率やプロトコルが変わる
• ブロックチェーンなど不特定多数の参加者
モデル
8 / 18
• 秘密情報を複数のデータに分散させて管理
• 分散されたデータを集めると元の秘密情報に戻る
• 分散されたデータから元の情報は一切得られない
• 2-of-2秘密分散
• データ𝑠を2個に分散
秘密分散
9 / 18
• 情報sをn人に分散 そのうちk個集まると復元可能
• 2017年にISO/IEC 19592-2:2017として標準化 Shamir
k-of-n秘密分散
𝑘個の点を通る𝑘 − 1次多項式は1個
10 / 18
• 秘密分散の問題点
• 秘密分散で社長がある人にだけ嘘の値を教えていたら
• その人は復元できない
• 正しい値をもらったか確認するには集まらなければならない
• VSS (Feldman)
• 検証可能な秘密分散
• 秘密鍵𝑠を𝑠1, … , 𝑠𝑛に秘密分散
• 楕円曲線の点Pを公開𝑠𝑃, 𝑠1𝑃, … , 𝑠𝑛𝑃も公開
• 各自は秘密鍵𝑠𝑖と𝑠𝑖𝑃の対応がとれていることを確認
• DLPの困難性により𝑠𝑖𝑃から𝑠𝑖は分からない
• 𝑠1𝑃, … , 𝑠𝑛𝑃から𝑠𝑃を復元 : みなが同じ値を復元できたか確認
VSS (Verifiable Secret Sharing)
11 / 18
• 秘密分散は特定の人の秘密情報𝑠を分散
• 情報を持つ人が強い
• DKG
• 権力を分散する(MPCの一種)
• それぞれがVSSを実行して自分の秘密情報を秘密分散
• 全員の秘密分散を集め, 秘密情報の和を全体の秘密情報とする
• 安全性証明をつけるためにはもう少し複雑なプロトコル
• ブロックチェーンなどの非中央集権的なネットワークで利用
DKG (Distributed Key Generation)
12 / 18
• 2個のベクトルの外積
• 𝑥 = 𝑎, 𝑏 , 𝑦 = (𝑐, 𝑑)に対して𝑥 × 𝑦 = 𝑎𝑑 − 𝑏𝑐
• 楕円曲線
• トーラス(長方形の向かい合う辺をつけたもの)
• 楕円曲線の点を2個の整数の組で表現
• 𝑃 = 𝑎𝑒1 + 𝑏𝑒2, 𝑄 = 𝑐𝑒1 + 𝑑𝑒2
• 𝑃と𝑄のペアリング𝑒(𝑃, 𝑄)
• 点𝑃と𝑄の外積に相当するもの
• 値は有限体の拡大体の元(詳細略)
• 「𝑃 × 𝑄」と書くことにする(ここだけの記法)
• 𝑛𝑃 × 𝑚𝑄 = 𝑛𝑚(𝑃 × 𝑄)
ペアリング
𝑥 = (𝑎, 𝑏)
𝑦 = (𝑐, 𝑑)
𝑎𝑑 − 𝑏𝑐
(𝑎, 𝑏)
(𝑐, 𝑑)
13 / 18
• ペアリングを使った署名
• 𝑃 : 楕円曲線の点
• 𝐻 : 楕円曲線の点へのハッシュ関数
• 鍵生成
• 𝑠 : 署名鍵(秘密鍵), 𝑄 = 𝑠𝑃 : 検証鍵(公開鍵)
• 署名
• 𝑚 : メッセージ, 𝜎 = 𝑠𝐻(𝑚)
• 検証
• 与えられた(𝑚, 𝜎)に対して「𝐻 𝑚 × 𝑄 = 𝜎 × 𝑃」なら受理
• 正しければ𝐻 𝑚 × 𝑠𝑃 = 𝑠 𝐻 𝑚 × 𝑃 = 𝜎 × 𝑃
• 特長
• ECDSAと違って乱数不要
BLS署名
14 / 18
• 秘密分散と相性がよい
• 検証鍵(公開鍵)が𝑠𝑃, 署名が𝑠𝐻(𝑚)で
どちらも「秘密鍵 x 楕円曲線の点」の形
• BLS署名を秘密分散と組み合わせると
• 秘密分散と異なり(秘密鍵は秘密のままなので)繰り返し利用可
• ブロックチェーン系プロジェクトで利用
BLS署名の特長
15 / 18
• MPCのうち3人で秘密計算するもの
3PC(Three-Party Computation)
16 / 18
• 秘密情報𝑠の2-of-3秘密分散
• 乱数𝑠1, 𝑠2を選び𝑠3 = 𝑠 − 𝑠1 − 𝑠2とする
• A, B, Cにそれぞれ 𝑠1, 𝑠2 , 𝑠2, 𝑠3 , (𝑠3, 𝑠1)を渡す
• 単独では𝑠は分からない
• 二人集まると𝑠1, 𝑠2, 𝑠3が揃うので𝑠 = 𝑠1 + 𝑠2 + 𝑠3を復元可能
• 秘密分散のまま加算
• 秘密情報𝑠, 𝑡がA, B, Cに秘密分散されている
• A : 𝑠1, 𝑠2 , 𝑡1, 𝑡2
• B : (𝑠2, 𝑠3), (𝑡2, 𝑡3)
• C : (𝑠3, 𝑠1), (𝑡3, 𝑡1)
• それぞれが分散された値のまま加算
• 𝐴 ∶ 𝑠1 + 𝑡1, 𝑠2 + 𝑡2 , 𝐵: 𝑠2 + 𝑡2, 𝑠3 + 𝑡3 , 𝐶 ∶ (𝑠3 + 𝑡3, 𝑠1 + 𝑡1)
• これらは「𝑠 + 𝑡」の秘密分散となっている
3PCの例
17 / 18
• 暗認本p.279の図
秘密分散のまま乗算
18 / 18

More Related Content

PPTX
zk-SNARKsの仕組みについて
PDF
楕円曲線と暗号
PDF
ブロックチェーン系プロジェクトで着目される暗号技術
PDF
BLS署名の実装とその応用
PDF
暗号文のままで計算しよう - 準同型暗号入門 -
PDF
暗認本読書会12
PDF
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
PDF
RSA暗号運用でやってはいけない n のこと #ssmjp
zk-SNARKsの仕組みについて
楕円曲線と暗号
ブロックチェーン系プロジェクトで着目される暗号技術
BLS署名の実装とその応用
暗号文のままで計算しよう - 準同型暗号入門 -
暗認本読書会12
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
RSA暗号運用でやってはいけない n のこと #ssmjp

What's hot (20)

PDF
指数時間アルゴリズム入門
PDF
暗認本読書会5
PPTX
katagaitai CTF勉強会 #3 crypto
PDF
暗認本読書会7
PDF
暗号技術入門 秘密の国のアリス 総集編
PDF
『データ解析におけるプライバシー保護』勉強会 秘密計算
PDF
SAT/SMTソルバの仕組み
PPTX
本当は恐ろしい分散システムの話
PDF
高速な倍精度指数関数expの実装
PDF
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
PDF
混合ガウスモデルとEMアルゴリスム
PDF
プログラミングコンテストでのデータ構造
PDF
katagaitai CTF勉強会 #5 Crypto
PDF
秘密分散法の数理
PDF
新しい暗号技術
PDF
正規表現入門 星の高さを求めて
PDF
楕円曲線入門 トーラスと楕円曲線のつながり
PDF
WebAssembly向け多倍長演算の実装
PPTX
ようやく分かった!最尤推定とベイズ推定
指数時間アルゴリズム入門
暗認本読書会5
katagaitai CTF勉強会 #3 crypto
暗認本読書会7
暗号技術入門 秘密の国のアリス 総集編
『データ解析におけるプライバシー保護』勉強会 秘密計算
SAT/SMTソルバの仕組み
本当は恐ろしい分散システムの話
高速な倍精度指数関数expの実装
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
混合ガウスモデルとEMアルゴリスム
プログラミングコンテストでのデータ構造
katagaitai CTF勉強会 #5 Crypto
秘密分散法の数理
新しい暗号技術
正規表現入門 星の高さを求めて
楕円曲線入門 トーラスと楕円曲線のつながり
WebAssembly向け多倍長演算の実装
ようやく分かった!最尤推定とベイズ推定
Ad

Similar to 暗認本読書会11 (20)

PDF
暗認本読書会6
PPTX
Asymmetric Key Signatures
PDF
A compact zero knowledge proof to restrict message space in homomorphic encry...
PPT
PDF
Counting (Using Computer)
PPT
Game playing (tic tac-toe), andor graph
PPTX
Homomorphic Encryption
PPTX
Locality sensitive hashing
PDF
Practical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
PPTX
Cs166 mynote
PDF
Beating Floating Point at its Own Game: Posit Arithmetic
PDF
Beyond Floating Point – Next Generation Computer Arithmetic
PPTX
digital signatures.pptx
PDF
Scalable real-time processing techniques
PPTX
module_14_digital_signatures (1).pptx
PPTX
digital signatures1.pptx
PDF
HiPEAC'19 Tutorial on Quantum algorithms using QX - 2019-01-23
PPTX
digital signatures10.pptx
PDF
Dynamic Programming From CS 6515(Fibonacci, LIS, LCS))
暗認本読書会6
Asymmetric Key Signatures
A compact zero knowledge proof to restrict message space in homomorphic encry...
Counting (Using Computer)
Game playing (tic tac-toe), andor graph
Homomorphic Encryption
Locality sensitive hashing
Practical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
Cs166 mynote
Beating Floating Point at its Own Game: Posit Arithmetic
Beyond Floating Point – Next Generation Computer Arithmetic
digital signatures.pptx
Scalable real-time processing techniques
module_14_digital_signatures (1).pptx
digital signatures1.pptx
HiPEAC'19 Tutorial on Quantum algorithms using QX - 2019-01-23
digital signatures10.pptx
Dynamic Programming From CS 6515(Fibonacci, LIS, LCS))
Ad

More from MITSUNARI Shigeo (19)

PDF
暗号技術の実装と数学
PDF
範囲証明つき準同型暗号とその対話的プロトコル
PDF
暗認本読書会13 advanced
PDF
暗認本読書会10
PDF
暗認本読書会9
PDF
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
PDF
暗認本読書会8
PDF
暗認本読書会4
PDF
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
PDF
私とOSSの25年
PDF
HPC Phys-20201203
PDF
LazyFP vulnerabilityの紹介
PDF
Intro to SVE 富岳のA64FXを触ってみた
PDF
ゆるバグ
PDF
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
PDF
集約署名
PDF
暗号化したまま計算できる暗号技術とOSS開発による広がり
PDF
自作ペアリング/BLS署名ライブラリの紹介
PDF
Spectre/Meltdownとその派生
暗号技術の実装と数学
範囲証明つき準同型暗号とその対話的プロトコル
暗認本読書会13 advanced
暗認本読書会10
暗認本読書会9
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
暗認本読書会8
暗認本読書会4
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
私とOSSの25年
HPC Phys-20201203
LazyFP vulnerabilityの紹介
Intro to SVE 富岳のA64FXを触ってみた
ゆるバグ
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
集約署名
暗号化したまま計算できる暗号技術とOSS開発による広がり
自作ペアリング/BLS署名ライブラリの紹介
Spectre/Meltdownとその派生

Recently uploaded (20)

PDF
sbt 2.0: go big (Scala Days 2025 edition)
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PPT
What is a Computer? Input Devices /output devices
PPTX
2018-HIPAA-Renewal-Training for executives
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PPT
Module 1.ppt Iot fundamentals and Architecture
PDF
Comparative analysis of machine learning models for fake news detection in so...
PDF
A review of recent deep learning applications in wood surface defect identifi...
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Credit Without Borders: AI and Financial Inclusion in Bangladesh
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
DOCX
search engine optimization ppt fir known well about this
PDF
Enhancing plagiarism detection using data pre-processing and machine learning...
PDF
Consumable AI The What, Why & How for Small Teams.pdf
PPTX
Benefits of Physical activity for teenagers.pptx
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
STKI Israel Market Study 2025 version august
PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
PDF
How IoT Sensor Integration in 2025 is Transforming Industries Worldwide
sbt 2.0: go big (Scala Days 2025 edition)
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
What is a Computer? Input Devices /output devices
2018-HIPAA-Renewal-Training for executives
Taming the Chaos: How to Turn Unstructured Data into Decisions
Module 1.ppt Iot fundamentals and Architecture
Comparative analysis of machine learning models for fake news detection in so...
A review of recent deep learning applications in wood surface defect identifi...
Chapter 5: Probability Theory and Statistics
Credit Without Borders: AI and Financial Inclusion in Bangladesh
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
NewMind AI Weekly Chronicles – August ’25 Week III
search engine optimization ppt fir known well about this
Enhancing plagiarism detection using data pre-processing and machine learning...
Consumable AI The What, Why & How for Small Teams.pdf
Benefits of Physical activity for teenagers.pptx
Final SEM Unit 1 for mit wpu at pune .pptx
STKI Israel Market Study 2025 version august
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
How IoT Sensor Integration in 2025 is Transforming Industries Worldwide

暗認本読書会11

  • 1. 暗認本読書会11 準同型暗号, MPC, 秘密分散, DKG, ペアリング, BLS署名 2021/12/9 https://anninbon.connpass.com/ 光成滋生
  • 2. • 暗号文のまま復号せずに計算する暗号技術 • 暗号文同士の足し算 : 𝐸𝑛𝑐 𝑚1 + 𝐸𝑛𝑐 𝑚2 = 𝐸𝑛𝑐 𝑚1 + 𝑚2 • 暗号文同士の掛け算 : 𝐸𝑛𝑐 𝑚1 × 𝐸𝑛𝑐 𝑚2 = 𝐸𝑛𝑐(𝑚1𝑚2) • コンピュータの計算 • ビット演算andとxor(排他的論理和)で全ての回路は作れる • 𝔽2 = {0,1}の足し算 • 0 + 0 = 0, 0 + 1 = 1 + 0 = 1, 1 + 1 = 0 ; これはxor • 0 × 0 = 1 × 0 = 0 × 1 = 0, 1 × 1 = 1 ; これはand • 1bit暗号文の足し算と掛け算→任意の計算が可能 • 掛け算のみ、足し算のみは昔から知られていた • 両方出来るものの構成が長らくの未解決問題 • 2009年Gentryが構築→完全準同型暗号の発展 準同型暗号HE(Homomorphic Encryption) 2 / 18
  • 3. • 画像のエッジ検出(AHE) • クライアントで撮った2値画像を暗号化してサーバに送信 • サーバでエッジ強調処理をしてクライアントに渡して復号 • https://github.com/herumi/ahe-demo • クロス集計(WebAssemblyで実装) • https://herumi.github.io/she-wasm/ デモ 3 / 18
  • 4. • 紛失通信OT(Oblivious Transfer) • https://ppdm.jp/ot/ • 円周率のN桁(1<N<100万)をNを隠して問い合わせる • https://ppdm.jp/ot/ • クライアント𝐸𝑛𝑐(𝑚) • サーバ𝑇𝑎𝑏𝑙𝑒 𝐸𝑛𝑐 𝑚 = 𝐸𝑛𝑐[𝑇𝑎𝑏𝑙𝑒 𝑚 ]を返す • FHEの例(京都大学の松岡-伴野-松本さん) • FHEを使って動作するCPUとCコンパイラ開発セット • https://virtualsecureplatform.github.io/ L2HE, FHEを使ったデモ 4 / 18
  • 5. • 平文の世界と暗号文の世界が対応 • 現在の主流は格子を基本にした格子暗号 • 格子 : ジャングルジムの高次元版 • 暗号文 = 平文の線型処理+小さいノイズ • 復号は秘密鍵を知っていればノイズを除去できる • 加算 : ノイズはあまり大きくならない • 乗算 : ノイズが増える傾向→取り除く操作 完全準同型暗号FHE(Fully HE) 5 / 18
  • 6. • 乗算回数の上限で分類 • 加法準同型暗号AHEで出来ること • 𝐸𝑛𝑐 𝑥 + 𝐸𝑛𝑐 𝑥 = 𝐸𝑛𝑐 𝑥 + 𝑥 = 𝐸𝑛𝑐 2𝑥 • 𝐸𝑛𝑐 2𝑥 + 𝐸𝑛𝑐 𝑥 = 𝐸𝑛𝑐 2𝑥 + 𝑥 = 𝐸𝑛𝑐 3𝑥 • 一般に暗号文の𝑛倍𝑛𝐸𝑛𝑐 𝑥 = 𝐸𝑛𝑐(𝑛𝑥)は計算可能 • 2レベル準同型暗号2LHEで出来ること • 2個のベクトルデータ𝑥 = (𝑥1, … , 𝑥𝑛)と𝑦 = (𝑦1, … , 𝑦𝑛)の内積 • 𝐸𝑛𝑐 𝑥1 , … , 𝐸𝑛𝑐 𝑥𝑛 ⋅ 𝐸𝑛𝑐 𝑦1 , … , 𝐸𝑛𝑐 𝑦𝑛 = 𝐸𝑛𝑐 ∑𝑥𝑖𝑦𝑖 • 平均, 標準偏差, 2個のベクトルのcos類似度など 準同型暗号のレベル 準同型暗号の種類 加算 乗算 演算コスト 加法準同型暗号 任意回 0 軽い 2レベル準同型暗号 任意回 1 まあまあ Nレベル準同型暗号 任意回 N-1 Nが大きいほど重たい 完全準同型暗号 任意回 任意回 重たい 6 / 18
  • 7. • データを秘匿化して計算する技術の総称 • 準同型暗号, 秘密分散, MPCなどを含む • MPC(Multi-Party Computation) • 複数人が協調して互いの秘密情報を教えることなく計算 • 例 : 𝑓 𝑥1, … , 𝑥𝑛 = max(𝑥1, … , 𝑥𝑛) ; 𝑥𝑖=各自の資産 • 一番お金持ちの資産を得る : それぞれの値は分からない • 注意 : 𝑛 = 2のとき少ない資産の人は相手の値が分かる 秘密計算 7 / 18
  • 8. • semi-honestモデル • プロトコルの参加者はプロトコルに正しく従う • 計算途中に取得した値から精一杯相手の情報は得ろうとする • maliciousモデル • プロトコルに従わない • 自分に有利な情報を得たら途中で止める • 一貫性の無い値を提出する • 注意 : 一貫して嘘の値を付くのは対象外(資産の嘘の報告) • 一般に • semi-honestモデルの方が効率がよい • maliciousモデルでは嘘つきが参加者のうちどれぐらいいるか によって効率やプロトコルが変わる • ブロックチェーンなど不特定多数の参加者 モデル 8 / 18
  • 9. • 秘密情報を複数のデータに分散させて管理 • 分散されたデータを集めると元の秘密情報に戻る • 分散されたデータから元の情報は一切得られない • 2-of-2秘密分散 • データ𝑠を2個に分散 秘密分散 9 / 18
  • 10. • 情報sをn人に分散 そのうちk個集まると復元可能 • 2017年にISO/IEC 19592-2:2017として標準化 Shamir k-of-n秘密分散 𝑘個の点を通る𝑘 − 1次多項式は1個 10 / 18
  • 11. • 秘密分散の問題点 • 秘密分散で社長がある人にだけ嘘の値を教えていたら • その人は復元できない • 正しい値をもらったか確認するには集まらなければならない • VSS (Feldman) • 検証可能な秘密分散 • 秘密鍵𝑠を𝑠1, … , 𝑠𝑛に秘密分散 • 楕円曲線の点Pを公開𝑠𝑃, 𝑠1𝑃, … , 𝑠𝑛𝑃も公開 • 各自は秘密鍵𝑠𝑖と𝑠𝑖𝑃の対応がとれていることを確認 • DLPの困難性により𝑠𝑖𝑃から𝑠𝑖は分からない • 𝑠1𝑃, … , 𝑠𝑛𝑃から𝑠𝑃を復元 : みなが同じ値を復元できたか確認 VSS (Verifiable Secret Sharing) 11 / 18
  • 12. • 秘密分散は特定の人の秘密情報𝑠を分散 • 情報を持つ人が強い • DKG • 権力を分散する(MPCの一種) • それぞれがVSSを実行して自分の秘密情報を秘密分散 • 全員の秘密分散を集め, 秘密情報の和を全体の秘密情報とする • 安全性証明をつけるためにはもう少し複雑なプロトコル • ブロックチェーンなどの非中央集権的なネットワークで利用 DKG (Distributed Key Generation) 12 / 18
  • 13. • 2個のベクトルの外積 • 𝑥 = 𝑎, 𝑏 , 𝑦 = (𝑐, 𝑑)に対して𝑥 × 𝑦 = 𝑎𝑑 − 𝑏𝑐 • 楕円曲線 • トーラス(長方形の向かい合う辺をつけたもの) • 楕円曲線の点を2個の整数の組で表現 • 𝑃 = 𝑎𝑒1 + 𝑏𝑒2, 𝑄 = 𝑐𝑒1 + 𝑑𝑒2 • 𝑃と𝑄のペアリング𝑒(𝑃, 𝑄) • 点𝑃と𝑄の外積に相当するもの • 値は有限体の拡大体の元(詳細略) • 「𝑃 × 𝑄」と書くことにする(ここだけの記法) • 𝑛𝑃 × 𝑚𝑄 = 𝑛𝑚(𝑃 × 𝑄) ペアリング 𝑥 = (𝑎, 𝑏) 𝑦 = (𝑐, 𝑑) 𝑎𝑑 − 𝑏𝑐 (𝑎, 𝑏) (𝑐, 𝑑) 13 / 18
  • 14. • ペアリングを使った署名 • 𝑃 : 楕円曲線の点 • 𝐻 : 楕円曲線の点へのハッシュ関数 • 鍵生成 • 𝑠 : 署名鍵(秘密鍵), 𝑄 = 𝑠𝑃 : 検証鍵(公開鍵) • 署名 • 𝑚 : メッセージ, 𝜎 = 𝑠𝐻(𝑚) • 検証 • 与えられた(𝑚, 𝜎)に対して「𝐻 𝑚 × 𝑄 = 𝜎 × 𝑃」なら受理 • 正しければ𝐻 𝑚 × 𝑠𝑃 = 𝑠 𝐻 𝑚 × 𝑃 = 𝜎 × 𝑃 • 特長 • ECDSAと違って乱数不要 BLS署名 14 / 18
  • 15. • 秘密分散と相性がよい • 検証鍵(公開鍵)が𝑠𝑃, 署名が𝑠𝐻(𝑚)で どちらも「秘密鍵 x 楕円曲線の点」の形 • BLS署名を秘密分散と組み合わせると • 秘密分散と異なり(秘密鍵は秘密のままなので)繰り返し利用可 • ブロックチェーン系プロジェクトで利用 BLS署名の特長 15 / 18
  • 17. • 秘密情報𝑠の2-of-3秘密分散 • 乱数𝑠1, 𝑠2を選び𝑠3 = 𝑠 − 𝑠1 − 𝑠2とする • A, B, Cにそれぞれ 𝑠1, 𝑠2 , 𝑠2, 𝑠3 , (𝑠3, 𝑠1)を渡す • 単独では𝑠は分からない • 二人集まると𝑠1, 𝑠2, 𝑠3が揃うので𝑠 = 𝑠1 + 𝑠2 + 𝑠3を復元可能 • 秘密分散のまま加算 • 秘密情報𝑠, 𝑡がA, B, Cに秘密分散されている • A : 𝑠1, 𝑠2 , 𝑡1, 𝑡2 • B : (𝑠2, 𝑠3), (𝑡2, 𝑡3) • C : (𝑠3, 𝑠1), (𝑡3, 𝑡1) • それぞれが分散された値のまま加算 • 𝐴 ∶ 𝑠1 + 𝑡1, 𝑠2 + 𝑡2 , 𝐵: 𝑠2 + 𝑡2, 𝑠3 + 𝑡3 , 𝐶 ∶ (𝑠3 + 𝑡3, 𝑠1 + 𝑡1) • これらは「𝑠 + 𝑡」の秘密分散となっている 3PCの例 17 / 18