Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
集約署名
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
YH
September 20, 2019
Technology
800
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
集約署名
Road to Devcon 4.0
YH
September 20, 2019
More Decks by YH
See All by YH
Context of Enigma
mut3438
1
320
スマートコントラクト・セキュリティ最新事情
mut3438
1
280
Current State of Key Management
mut3438
1
290
ゼロ知識証明とブロックチェーン
mut3438
1
820
Other Decks in Technology
See All in Technology
触りたくないデータに、どう触るか AI時代のRBACアクセスガバナンス
ivry_presentationmaterials
0
260
AI × アーキテクト 第1・2章|生成AIの課題とアーキテクトの素養
daidaidai
0
170
AI コーディングと人間の認知スループット / CTO Night & Day 2026 Morning Session / AI Coding and Human Cognitive Throughput
prog893
4
1k
Rustuna: Rustによる高速なOptuna実装
pfn
PRO
0
190
AI駆動開発の時代になったのでトヨタ生産方式から見直す
terurou
7
6k
Local CI × GitHub Actions
gogutan
2
190
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
920
Code for Security プロジェクト紹介 2026年10月
yu23ki14
0
110
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
3
1.1k
AIにシークレットを見せない、WSL2で安全な開発環境
yazm
0
300
Getting Started with Google Antigravity
glaforge
0
300
Kiro Crewをはじめよう
kizawa2020
1
160
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
KATA
mclloyd
PRO
35
16k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Being A Developer After 40
akosma
92
590k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Transcript
集約署名 光成滋生 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 / 12
• あるメッセージに対して自分しか知らない秘密鍵で署名を作る • だれもが知ってる公開鍵を使って(, )が改竄されていないことを検証できる • 秘密鍵を知らない人は検証をパスする偽の署名(′, ′)を偽造できない • はの暗号文ではない(通常は定数サイズ,
は任意のサイズ) • 署名アルゴリズム • 鍵生成 • 安全性レベルを示すセキュリティパラメータを元に(, )を生成 • 署名 • メッセージとから署名を作成 • = , • 検証 • メッセージと署名とを元にtrue/falseを返す • , , = true/false 電子署名 3 / 12
• 一つのメッセージに対して複数人がそれぞれ署名する • 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 / 12
• : 「足し算」ができる個の点からなる集合 • とりあえず中身はブラックボックスでよい • 0 ; 足し算におけるゼロを表す値(点) •
; 0以外の特定の点(固定しておく) • = 0, , 2, 3, … , − 1 • = 0 ; 倍したら0に戻る • 一方向性 • の整数倍を計算するのは容易 : , ↦ • とを知っていてもを求めるのは困難:(, ) ↦ • 楕円離散対数問題(ECDLP)の困難性 • が秘密鍵でが公開鍵のパターンが多い • secp256k1という曲線がよく使われる 楕円曲線 5 / 12
• 楕円曲線を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)は別物なので注意 ペアリング 6 / 12
• 集約のナイーブなアイデア • 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攻撃 7 / 12
• 楕円曲線ベース • Schnorr署名の派生バージョン • BCJ, MWLD, CoSi, MuSig1(MPSW18a),,... •
ペアリングベース • BLS署名の派生バージョン いろいろな方式 8 / 12
• 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 9 / 12
• 前述の論文Table 1 • -out-of- multisig wallets • tx=1500, inp=3,
n=3 • 今回はMSPを紹介 • 注 : ペアリングの計算は重たい(BLS12-381で0.75msec@core i7-8700) • スカラー倍算の20倍弱 サイズ比較 10 / 12
• 1 = ⟨⟩, 2 = ⟨⟩, : 1 ×
2 → • 1 : → 1 • 鍵生成 • ; 秘密鍵, = ; 公開鍵 • 署名 • ; メッセージ, = Sign , ≔ 1 () • 検証 • Verify , , = true if , == (1 , ) BLS署名 11 / 12
• 鍵生成 • ; の秘密鍵, ; の公開鍵 • 集約 •
≔ , 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) 12 / 12