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
790
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
270
Current State of Key Management
mut3438
1
290
ゼロ知識証明とブロックチェーン
mut3438
1
810
Other Decks in Technology
See All in Technology
今話題のAI「Jev」って何? 宇宙最速で学ぶ会
minorun365
PRO
30
17k
JSONataとAWS Step Functionsで目指すRuntimelessな世界
mu7889yoon
0
320
AIエージェントの自己改善をどう設計するか / How to Design Self-Improvement for AI Agents
22mi
25
16k
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
5
650
Claude Codeを「使うほど育つ」AI秘書にするノウハウ
minorun365
PRO
32
29k
AIに任せた品質は、誰が見立てるのか - AI時代のテストマネジメント
nakanao
3
2.5k
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
5
25k
AIによるクリエイティブ生成を行う上での試行錯誤
plaidtech
PRO
0
160
C#コードの結合を可視化する Roslyn解析による設計改善と リファクタリング判断
dora56
0
230
`t*(42&t>>10)`だけで音楽が鳴る、Swiftで実装するBytebeat / iOSDC Japan 2026
yutailang0119
0
120
現場で役立つ技術負債の効果的な返済方法
masuda220
PRO
9
4.7k
技術的負債から考える、AI時代のエンジニアリング投資 — ビズリーチの技術的負債と向き合った経験から、変更し続けられるソフトウェアを考える/ technical-debt-con2026
visional_engineering_and_design
4
3.3k
Featured
See All Featured
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.1k
The Limits of Empathy - UXLibs8
cassininazir
1
680
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
470
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Side Projects
sachag
456
43k
Designing Powerful Visuals for Engaging Learning
tmiket
1
570
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
390
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
700
4 Signs Your Business is Dying
shpigford
187
23k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
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