SlideShare uma empresa Scribd logo
1 de 13
Baixar para ler offline
集約署名
光成滋生
2019/9/20
Road to Devcon 4.0 〜 Security & Privacy
• ペアリングの応用と実装研究
• https://github.com/herumi/bls ; BLS署名
• https://github.com/herumi/mcl ; ペアリング
• Linux/Windows/Mac/Android/iPhone/WebAssembly対応
• used by DFINITY, libsnark, Harmony.one, 0CHAIN, ChainSafe, spacemesh,
Prysmatic Labs Ethereum 2.0, AZTEC protocol, .etc.
• https://github.com/herumi/xbyak ; JITアセンブラ
• used by Intel MKL-DNN, etc.
• 『クラウドを支えるこれからの暗号技術』
@herumi
2 / 13
• あるメッセージ𝑚に対して自分しか知らない秘密鍵𝑠𝑘で署名𝜎を作る
• だれもが知ってる公開鍵𝑝𝑘を使って(𝑚, 𝜎)が改竄されていないことを検証できる
• 秘密鍵𝑠𝑘を知らない人は検証をパスする偽の署名(𝑚′
, 𝜎′
)を偽造できない
• 𝜎は𝑚の暗号文ではない(通常𝜎は定数サイズ, 𝑚は任意のサイズ)
• 署名アルゴリズム
• 鍵生成
• 安全性レベルを示すセキュリティパラメータを元に(𝑠𝑘, 𝑝𝑘)を生成
• 署名
• メッセージ𝑚と𝑠𝑘から署名𝜎を作成
• 𝜎 = 𝑆𝑖𝑔𝑛 𝑠𝑘, 𝑚
• 検証
• メッセージ𝑚と署名𝜎と𝑝𝑘を元にtrue/falseを返す
• 𝑉𝑒𝑟𝑖𝑓𝑦 𝑝𝑘, 𝑚, 𝜎 = true/false
電子署名
3 / 13
• 一つのメッセージ𝑚に対して複数人がそれぞれ署名する
• 𝜎1 = 𝑆𝑖𝑔𝑛 𝑠𝑘1, 𝑚 , 𝜎2 = 𝑆𝑖𝑔𝑛 𝑠𝑘2, 𝑚 , 𝜎3 = 𝑆𝑖𝑔𝑛 𝑠𝑘3, 𝑚
• それぞれの署名を一つずつ検証するのではなくまとめて検証したい
• Pragmatic signature aggregation with BLS
• https://ethresear.ch/t/pragmatic-signature-aggregation-with-bls/2105
• aggregate 𝜎1, 𝜎2, 𝜎3 → 𝜎?
• 署名サイズの削減(数千個)
• 検証時間の削減
• お父さん𝜎1、お母さん𝜎2、子ども𝜎3に対してどれか2個の署名があれば有効としたい
• 𝜎1, 𝜎3 → 𝜎?, 𝜎2, 𝜎3 → 𝜎?
• 𝑘-of-𝑛 ; 𝑛人のうち𝑘人が署名すれば全体として有効
マルチシグ(multi-signature)・集約可能署名
4 / 13
• 閾値署名
• 𝑛人による署名のうち𝑘個集めると
• (誰も知らないマスター秘密鍵に対する)署名を復元できる
• その署名は(誰もが知ってる)マスター公開鍵で検証できる
• 集約署名
• 𝑛個の署名を一つ一つ検証するのは手間と署名のスペースが必要
• それらをまとめて(できるだけ)小さい署名を作る
• それを(できるだけ効率よく)検証するだけで全部の署名を検証したのと同じ
閾値署名と集約署名
5 / 13
• 𝐺 : 「足し算」ができる𝑝個の点からなる集合
• とりあえず中身はブラックボックスでよい
• 0 ; 足し算におけるゼロを表す値(点)
• 𝑃 ; 0以外の特定の点(固定しておく)
• 𝐺 = 0, 𝑃, 2𝑃, 3𝑃, … , 𝑝 − 1 𝑃
• 𝑝𝑃 = 0 ; 𝑝倍したら0に戻る
• 一方向性
• 𝑃の整数𝑎倍を計算するのは容易 : 𝑃, 𝑎 ↦ 𝑎𝑃
• 𝑎𝑃と𝑃を知っていても𝑎を求めるのは困難:(𝑃, 𝑎𝑃) ↦ 𝑎
• 楕円離散対数問題(ECDLP)の困難性
• 𝑎が秘密鍵で𝑎𝑃が公開鍵のパターンが多い
• secp256k1という曲線がよく使われる
楕円曲線
6 / 13
• 楕円曲線を2個使う
• 𝐺1 = {0, 𝑃, 2𝑃, … , 𝑝 − 1 𝑃}, 𝐺2 = {0, 𝑄, 2𝑄, … , 𝑝 − 1 𝑄}
• 楕円曲線の2個の点からある集合𝐺 𝑇 = {𝑔, 𝑔2
, 𝑔3
, … , 𝑔 𝑝−1
}への写像で
𝑒 𝑎𝑃, 𝑏𝑄 = 𝑔 𝑎𝑏 for 𝑎, 𝑏 ∈ ℤ where 𝑔 = 𝑒 𝑃, 𝑄 を満たすもの
• BN254, BLS12-381という曲線がよく使われる
• BN254は100~110ビット安全性
• 従来128ビット安全と思われていたが攻撃改良により安全性が低下
• BLS12-381は128ビット安全なものとして設計される
• BLS12-381のBLS(Barreto-Lynn-Scott)と
BLS署名のBLS(Boneh–Lynn–Shacham)は別物なので注意
• 補足
• 𝐺1 = 𝐺2のペアリング(対称ペアリング)というのもあるがあまり速くない
ペアリング
7 / 13
• 集約のナイーブなアイデア
• 𝑠1, 𝑠2, … , 𝑠 𝑛 ; 各メンバー𝐴𝑖の秘密鍵
• 𝑠1 𝑃, 𝑠2 𝑃, … , 𝑠 𝑛 𝑃 ; 𝐴𝑖の公開鍵𝑝𝑘𝑖
• 公開鍵を足す
• 𝑝𝑘 ≔ 𝑝𝑘1 + 𝑝𝑘2 + ⋯ + 𝑝𝑘 𝑛 = 𝑠1 + ⋯ + 𝑠 𝑛 𝑃
• これに対応する秘密鍵𝑠 ≔ 𝑠1 + ⋯ + 𝑠 𝑛はお互い誰も知らない
• Rogue-key攻撃(𝐴 𝑛が攻撃者とする)
• 乱数𝑟を使って自分の公開鍵を𝑝𝑘 𝑛 ≔ 𝑟𝑃 − (𝑝𝑘1 + ⋯ + 𝑝𝑘 𝑛−1)とする
• 公開鍵を足すと𝑝𝑘 = 𝑝𝑘1 + ⋯ + 𝑝𝑘 𝑛 = 𝑟𝑃 ; 𝐴 𝑛は𝑟を知っている
• 対策例 : PoP/KoSK(Proof of possesion/Knowledge of secret key)
• 各𝑝𝑘𝑖を各自の𝑠𝑖で署名させる
• 𝐴 𝑛は𝑝𝑘 𝑛に対応する秘密鍵(𝑟 − 𝑠1 − 𝑠2 − ⋯ − 𝑠 𝑛−1)は知らないので署名できない
Rogue-key攻撃
8 / 13
• 楕円曲線ベース
• Schnorr署名の派生バージョン
• BCJ, MWLD, CoSi, MuSig1(MPSW18a),,...
• ペアリングベース
• BLS署名の派生バージョン
いろいろな方式
9 / 13
• https://eprint.iacr.org/2018/417
• 既存の楕円曲線ベースの方式に安全性の問題ありと指摘
• ペアリングベースで安全なものを提案
• Compact Multi-Signatures for Smaller Blockchains
• https://eprint.iacr.org/2018/483.pdf
On the Security of Two-Round Multi-Signatures
10 / 13
• 前述の論文Table 1
• 𝑛-out-of-𝑛 multisig wallets
• tx=1500, inp=3, n=3
• 今回はMSPを紹介
• 注 : ペアリングの計算は重たい(BLS12-381で0.75msec@core i7-8700)
• スカラー倍算の20倍弱
サイズ比較
11 / 13
• 𝐺1 = ⟨𝑃⟩, 𝐺2 = ⟨𝑄⟩, 𝑒: 𝐺1 × 𝐺2 → 𝐺 𝑇
• 𝐻1: 𝑠𝑡𝑟𝑖𝑛𝑔 → 𝐺1
• 鍵生成
• 𝑠 ; 秘密鍵, 𝑝𝑘 = 𝑠𝑄 ; 公開鍵
• 署名
• 𝑚 ; メッセージ, 𝜎 = Sign 𝑠, 𝑚 ≔ 𝑠𝐻1(𝑚)
• 検証
• Verify 𝑝𝑘, 𝑚, 𝜎 = true if 𝑒 𝜎, 𝑄 == 𝑒(𝐻1 𝑚 , 𝑝𝑘)
• ECDSA, Schnorr署名との違い
• 乱数がない決定的アルゴリズム
• 公開鍵と署名がどちらも「秘密鍵 x 楕円曲線の公開点」の形をしている
• Shamirの秘密分散を適用できる
BLS署名
12 / 13
• 鍵生成
• 𝑠𝑖 ; 𝐴𝑖の秘密鍵, 𝑠𝑖 𝑄 ; 𝐴𝑖の公開鍵
• 集約
• 𝑎𝑖 ≔ 𝐻 𝑠𝑖 𝑄, 𝑠1 𝑄, … , 𝑠 𝑛 𝑄 where 𝐻: 𝑠𝑡𝑟𝑖𝑛𝑔 → ℤ
• 𝑎𝑝𝑘 ≔ 𝑎1 𝑠1 𝑄 + ⋯ + 𝑎 𝑛 𝑠 𝑛 𝑄
• input : { 𝑠𝑖 𝑄, 𝜎𝑖 } ; メッセージ𝑚に対する𝐴𝑖の署名, 𝜎𝑖 ≔ 𝑠𝑖 𝐻1(𝑚)
• verify each (𝑠𝑖 𝑄, 𝜎𝑖)
• 𝜎 ≔ 𝑎1 𝜎1 + ⋯ + 𝑎 𝑛 𝜎 𝑛
• 検証
• Verify 𝑎𝑝𝑘, 𝑚, 𝜎 = true if 𝑒 𝜎, 𝑄 == 𝑒(𝐻1 𝑚 , 𝑎𝑝𝑘) ; original BLS署名の検証と同じ
• 𝜎 = σ𝑖 𝑎𝑖 𝑠𝑖 𝐻1(𝑚) = σ𝑖 𝑎𝑖 𝑠𝑖 𝐻1 𝑚
• LHS=𝑒 σ𝑖 𝑎𝑖 𝑠𝑖 𝐻1 𝑚 , 𝑄 = 𝑒 𝐻1 𝑚 , σ𝑖 𝑎𝑖 𝑠𝑖 𝑄 =RHS
Multi-Signatures from pairings (MSP)
13 / 13

Mais conteúdo relacionado

Mais procurados

zk-SNARKsの仕組みについて
zk-SNARKsの仕組みについてzk-SNARKsの仕組みについて
zk-SNARKsの仕組みについてts21
 
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化MITSUNARI Shigeo
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学MITSUNARI Shigeo
 
暗認本読書会13 advanced
暗認本読書会13 advanced暗認本読書会13 advanced
暗認本読書会13 advancedMITSUNARI Shigeo
 
自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介MITSUNARI Shigeo
 
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)MITSUNARI Shigeo
 
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃trmr
 
RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介MITSUNARI Shigeo
 
暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がり暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がりMITSUNARI Shigeo
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みMasahiro Sakai
 
技術勉強会(楕円曲線暗号)資料
技術勉強会(楕円曲線暗号)資料技術勉強会(楕円曲線暗号)資料
技術勉強会(楕円曲線暗号)資料Tetsuyuki Oishi
 
『データ解析におけるプライバシー保護』勉強会 秘密計算
『データ解析におけるプライバシー保護』勉強会 秘密計算『データ解析におけるプライバシー保護』勉強会 秘密計算
『データ解析におけるプライバシー保護』勉強会 秘密計算MITSUNARI Shigeo
 
クラウドを支えるこれからの暗号技術
クラウドを支えるこれからの暗号技術クラウドを支えるこれからの暗号技術
クラウドを支えるこれからの暗号技術MITSUNARI Shigeo
 
Optimistic Rollupとは何か
Optimistic Rollupとは何かOptimistic Rollupとは何か
Optimistic Rollupとは何かSyuhei Hiya
 
C++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングC++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングKohsuke Yuasa
 

Mais procurados (20)

暗認本読書会7
暗認本読書会7暗認本読書会7
暗認本読書会7
 
zk-SNARKsの仕組みについて
zk-SNARKsの仕組みについてzk-SNARKsの仕組みについて
zk-SNARKsの仕組みについて
 
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
 
暗認本読書会6
暗認本読書会6暗認本読書会6
暗認本読書会6
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
新しい暗号技術
新しい暗号技術新しい暗号技術
新しい暗号技術
 
暗認本読書会13 advanced
暗認本読書会13 advanced暗認本読書会13 advanced
暗認本読書会13 advanced
 
自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介
 
暗認本読書会11
暗認本読書会11暗認本読書会11
暗認本読書会11
 
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
 
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
 
RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介
 
暗号技術入門
暗号技術入門暗号技術入門
暗号技術入門
 
暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がり暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がり
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
 
技術勉強会(楕円曲線暗号)資料
技術勉強会(楕円曲線暗号)資料技術勉強会(楕円曲線暗号)資料
技術勉強会(楕円曲線暗号)資料
 
『データ解析におけるプライバシー保護』勉強会 秘密計算
『データ解析におけるプライバシー保護』勉強会 秘密計算『データ解析におけるプライバシー保護』勉強会 秘密計算
『データ解析におけるプライバシー保護』勉強会 秘密計算
 
クラウドを支えるこれからの暗号技術
クラウドを支えるこれからの暗号技術クラウドを支えるこれからの暗号技術
クラウドを支えるこれからの暗号技術
 
Optimistic Rollupとは何か
Optimistic Rollupとは何かOptimistic Rollupとは何か
Optimistic Rollupとは何か
 
C++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングC++ マルチスレッドプログラミング
C++ マルチスレッドプログラミング
 

Mais 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
 
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用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
 
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明MITSUNARI Shigeo
 

Mais de MITSUNARI Shigeo (18)

暗認本読書会12
暗認本読書会12暗認本読書会12
暗認本読書会12
 
暗認本読書会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
 
暗認本読書会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を触ってみた
 
ゆるバグ
ゆるバグゆるバグ
ゆるバグ
 
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
 
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
 
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
 

Último

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
論文紹介: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...Toru Tamaki
 
論文紹介: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 UnderstandingToru Tamaki
 
論文紹介: 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 Gamesatsushi061452
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Último (10)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: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...
 
論文紹介: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
 
論文紹介: 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
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

集約署名

  • 2. • ペアリングの応用と実装研究 • https://github.com/herumi/bls ; BLS署名 • https://github.com/herumi/mcl ; ペアリング • Linux/Windows/Mac/Android/iPhone/WebAssembly対応 • used by DFINITY, libsnark, Harmony.one, 0CHAIN, ChainSafe, spacemesh, Prysmatic Labs Ethereum 2.0, AZTEC protocol, .etc. • https://github.com/herumi/xbyak ; JITアセンブラ • used by Intel MKL-DNN, etc. • 『クラウドを支えるこれからの暗号技術』 @herumi 2 / 13
  • 3. • あるメッセージ𝑚に対して自分しか知らない秘密鍵𝑠𝑘で署名𝜎を作る • だれもが知ってる公開鍵𝑝𝑘を使って(𝑚, 𝜎)が改竄されていないことを検証できる • 秘密鍵𝑠𝑘を知らない人は検証をパスする偽の署名(𝑚′ , 𝜎′ )を偽造できない • 𝜎は𝑚の暗号文ではない(通常𝜎は定数サイズ, 𝑚は任意のサイズ) • 署名アルゴリズム • 鍵生成 • 安全性レベルを示すセキュリティパラメータを元に(𝑠𝑘, 𝑝𝑘)を生成 • 署名 • メッセージ𝑚と𝑠𝑘から署名𝜎を作成 • 𝜎 = 𝑆𝑖𝑔𝑛 𝑠𝑘, 𝑚 • 検証 • メッセージ𝑚と署名𝜎と𝑝𝑘を元にtrue/falseを返す • 𝑉𝑒𝑟𝑖𝑓𝑦 𝑝𝑘, 𝑚, 𝜎 = true/false 電子署名 3 / 13
  • 4. • 一つのメッセージ𝑚に対して複数人がそれぞれ署名する • 𝜎1 = 𝑆𝑖𝑔𝑛 𝑠𝑘1, 𝑚 , 𝜎2 = 𝑆𝑖𝑔𝑛 𝑠𝑘2, 𝑚 , 𝜎3 = 𝑆𝑖𝑔𝑛 𝑠𝑘3, 𝑚 • それぞれの署名を一つずつ検証するのではなくまとめて検証したい • Pragmatic signature aggregation with BLS • https://ethresear.ch/t/pragmatic-signature-aggregation-with-bls/2105 • aggregate 𝜎1, 𝜎2, 𝜎3 → 𝜎? • 署名サイズの削減(数千個) • 検証時間の削減 • お父さん𝜎1、お母さん𝜎2、子ども𝜎3に対してどれか2個の署名があれば有効としたい • 𝜎1, 𝜎3 → 𝜎?, 𝜎2, 𝜎3 → 𝜎? • 𝑘-of-𝑛 ; 𝑛人のうち𝑘人が署名すれば全体として有効 マルチシグ(multi-signature)・集約可能署名 4 / 13
  • 5. • 閾値署名 • 𝑛人による署名のうち𝑘個集めると • (誰も知らないマスター秘密鍵に対する)署名を復元できる • その署名は(誰もが知ってる)マスター公開鍵で検証できる • 集約署名 • 𝑛個の署名を一つ一つ検証するのは手間と署名のスペースが必要 • それらをまとめて(できるだけ)小さい署名を作る • それを(できるだけ効率よく)検証するだけで全部の署名を検証したのと同じ 閾値署名と集約署名 5 / 13
  • 6. • 𝐺 : 「足し算」ができる𝑝個の点からなる集合 • とりあえず中身はブラックボックスでよい • 0 ; 足し算におけるゼロを表す値(点) • 𝑃 ; 0以外の特定の点(固定しておく) • 𝐺 = 0, 𝑃, 2𝑃, 3𝑃, … , 𝑝 − 1 𝑃 • 𝑝𝑃 = 0 ; 𝑝倍したら0に戻る • 一方向性 • 𝑃の整数𝑎倍を計算するのは容易 : 𝑃, 𝑎 ↦ 𝑎𝑃 • 𝑎𝑃と𝑃を知っていても𝑎を求めるのは困難:(𝑃, 𝑎𝑃) ↦ 𝑎 • 楕円離散対数問題(ECDLP)の困難性 • 𝑎が秘密鍵で𝑎𝑃が公開鍵のパターンが多い • secp256k1という曲線がよく使われる 楕円曲線 6 / 13
  • 7. • 楕円曲線を2個使う • 𝐺1 = {0, 𝑃, 2𝑃, … , 𝑝 − 1 𝑃}, 𝐺2 = {0, 𝑄, 2𝑄, … , 𝑝 − 1 𝑄} • 楕円曲線の2個の点からある集合𝐺 𝑇 = {𝑔, 𝑔2 , 𝑔3 , … , 𝑔 𝑝−1 }への写像で 𝑒 𝑎𝑃, 𝑏𝑄 = 𝑔 𝑎𝑏 for 𝑎, 𝑏 ∈ ℤ where 𝑔 = 𝑒 𝑃, 𝑄 を満たすもの • BN254, BLS12-381という曲線がよく使われる • BN254は100~110ビット安全性 • 従来128ビット安全と思われていたが攻撃改良により安全性が低下 • BLS12-381は128ビット安全なものとして設計される • BLS12-381のBLS(Barreto-Lynn-Scott)と BLS署名のBLS(Boneh–Lynn–Shacham)は別物なので注意 • 補足 • 𝐺1 = 𝐺2のペアリング(対称ペアリング)というのもあるがあまり速くない ペアリング 7 / 13
  • 8. • 集約のナイーブなアイデア • 𝑠1, 𝑠2, … , 𝑠 𝑛 ; 各メンバー𝐴𝑖の秘密鍵 • 𝑠1 𝑃, 𝑠2 𝑃, … , 𝑠 𝑛 𝑃 ; 𝐴𝑖の公開鍵𝑝𝑘𝑖 • 公開鍵を足す • 𝑝𝑘 ≔ 𝑝𝑘1 + 𝑝𝑘2 + ⋯ + 𝑝𝑘 𝑛 = 𝑠1 + ⋯ + 𝑠 𝑛 𝑃 • これに対応する秘密鍵𝑠 ≔ 𝑠1 + ⋯ + 𝑠 𝑛はお互い誰も知らない • Rogue-key攻撃(𝐴 𝑛が攻撃者とする) • 乱数𝑟を使って自分の公開鍵を𝑝𝑘 𝑛 ≔ 𝑟𝑃 − (𝑝𝑘1 + ⋯ + 𝑝𝑘 𝑛−1)とする • 公開鍵を足すと𝑝𝑘 = 𝑝𝑘1 + ⋯ + 𝑝𝑘 𝑛 = 𝑟𝑃 ; 𝐴 𝑛は𝑟を知っている • 対策例 : PoP/KoSK(Proof of possesion/Knowledge of secret key) • 各𝑝𝑘𝑖を各自の𝑠𝑖で署名させる • 𝐴 𝑛は𝑝𝑘 𝑛に対応する秘密鍵(𝑟 − 𝑠1 − 𝑠2 − ⋯ − 𝑠 𝑛−1)は知らないので署名できない Rogue-key攻撃 8 / 13
  • 9. • 楕円曲線ベース • Schnorr署名の派生バージョン • BCJ, MWLD, CoSi, MuSig1(MPSW18a),,... • ペアリングベース • BLS署名の派生バージョン いろいろな方式 9 / 13
  • 10. • https://eprint.iacr.org/2018/417 • 既存の楕円曲線ベースの方式に安全性の問題ありと指摘 • ペアリングベースで安全なものを提案 • Compact Multi-Signatures for Smaller Blockchains • https://eprint.iacr.org/2018/483.pdf On the Security of Two-Round Multi-Signatures 10 / 13
  • 11. • 前述の論文Table 1 • 𝑛-out-of-𝑛 multisig wallets • tx=1500, inp=3, n=3 • 今回はMSPを紹介 • 注 : ペアリングの計算は重たい(BLS12-381で0.75msec@core i7-8700) • スカラー倍算の20倍弱 サイズ比較 11 / 13
  • 12. • 𝐺1 = ⟨𝑃⟩, 𝐺2 = ⟨𝑄⟩, 𝑒: 𝐺1 × 𝐺2 → 𝐺 𝑇 • 𝐻1: 𝑠𝑡𝑟𝑖𝑛𝑔 → 𝐺1 • 鍵生成 • 𝑠 ; 秘密鍵, 𝑝𝑘 = 𝑠𝑄 ; 公開鍵 • 署名 • 𝑚 ; メッセージ, 𝜎 = Sign 𝑠, 𝑚 ≔ 𝑠𝐻1(𝑚) • 検証 • Verify 𝑝𝑘, 𝑚, 𝜎 = true if 𝑒 𝜎, 𝑄 == 𝑒(𝐻1 𝑚 , 𝑝𝑘) • ECDSA, Schnorr署名との違い • 乱数がない決定的アルゴリズム • 公開鍵と署名がどちらも「秘密鍵 x 楕円曲線の公開点」の形をしている • Shamirの秘密分散を適用できる BLS署名 12 / 13
  • 13. • 鍵生成 • 𝑠𝑖 ; 𝐴𝑖の秘密鍵, 𝑠𝑖 𝑄 ; 𝐴𝑖の公開鍵 • 集約 • 𝑎𝑖 ≔ 𝐻 𝑠𝑖 𝑄, 𝑠1 𝑄, … , 𝑠 𝑛 𝑄 where 𝐻: 𝑠𝑡𝑟𝑖𝑛𝑔 → ℤ • 𝑎𝑝𝑘 ≔ 𝑎1 𝑠1 𝑄 + ⋯ + 𝑎 𝑛 𝑠 𝑛 𝑄 • input : { 𝑠𝑖 𝑄, 𝜎𝑖 } ; メッセージ𝑚に対する𝐴𝑖の署名, 𝜎𝑖 ≔ 𝑠𝑖 𝐻1(𝑚) • verify each (𝑠𝑖 𝑄, 𝜎𝑖) • 𝜎 ≔ 𝑎1 𝜎1 + ⋯ + 𝑎 𝑛 𝜎 𝑛 • 検証 • Verify 𝑎𝑝𝑘, 𝑚, 𝜎 = true if 𝑒 𝜎, 𝑄 == 𝑒(𝐻1 𝑚 , 𝑎𝑝𝑘) ; original BLS署名の検証と同じ • 𝜎 = σ𝑖 𝑎𝑖 𝑠𝑖 𝐻1(𝑚) = σ𝑖 𝑎𝑖 𝑠𝑖 𝐻1 𝑚 • LHS=𝑒 σ𝑖 𝑎𝑖 𝑠𝑖 𝐻1 𝑚 , 𝑄 = 𝑒 𝐻1 𝑚 , σ𝑖 𝑎𝑖 𝑠𝑖 𝑄 =RHS Multi-Signatures from pairings (MSP) 13 / 13