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
BLS署名
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
shigeyuki azuchi
September 08, 2022
Technology
320
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
BLS署名
GBECの解説動画の資料です。
https://goblockchain.network/2022/09/bls/
shigeyuki azuchi
September 08, 2022
More Decks by shigeyuki azuchi
See All by shigeyuki azuchi
SLH-DSA (SPHINCS+)
azuchi
0
18
Hyper Tree
azuchi
0
19
FORS
azuchi
0
31
クラスターmempool
azuchi
0
43
W-OTS+
azuchi
0
50
Shorのアルゴリズム
azuchi
0
71
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
58
Fiat-Shamir変換と注意点
azuchi
0
260
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
70
Other Decks in Technology
See All in Technology
【データ横丁主催】AI Agentがコンテキストを使って仕事をした後、何が残るのか― 組織の経験を次の判断に引き継ぐ「Agent Memory」
shisyu_gaku
2
330
Meet AgentCore Identity Consent Portal
hironobuiga
3
190
IoTデバイスを繋げるプロトコルMatterをAndroidで使用する方法
harutiro
0
120
組み立てて楽しむ AWS Blocks 入門
kmiya84377
0
220
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
1
710
Kernel testing frameworks
ennael
PRO
0
110
生成AIを使って「人が」考える技術 ― AI時代の人機共想と実践ノウハウ|UNITT AC2026
ishiirikie
0
560
不可逆な意思決定を避けながら10億超の顧客データを AI Ready にするデータ基盤設計
baseballyama
1
130
Snapshot Testing in Practice: Predictable and Reliable SwiftUI Views
fespinoza
0
140
React Nativeでの OTA Updateって、 どう説明する?
ichiki1023
0
150
SREでアラート疲れを 解決しよう!
kairim0
1
210
メルペイ 会計システム概要と歴史
mewuto
0
190
Featured
See All Featured
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.2k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
260
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
590
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
260
Documentation Writing (for coders)
carmenintech
77
5.6k
Deep Space Network (abreviated)
tonyrice
0
360
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
690
The World Runs on Bad Software
bkeepers
PRO
72
12k
Mind Mapping
helmedeiros
1
390
Transcript
BLS署名
1 BLS署名 BLS(Boneh–Lynn–Shacham)署名は、署名検証にペアリングを利用した署名方式 • ペアリングとは? 同じ素数qを位数とした2つの加法巡回群G 1 ,
G 2 と乗法巡回群 G T について、 e: G 1 ✕G 2 → G T という関係が成立する一方向写像。 つまり、G 1 , G 2 の2つの群要素を入力としてG T の群要素を出力することができる。 • 対称ペアリング(G 1 = G 2 、Weilペアリングなど) • 非対称ペアリング(G 1 ≠ G 2、 BLS12-381など) 加法巡回群:全ての元が生成元の整数倍で表される。 乗法巡回群:全ての元が生成元の冪乗で表される。
2 ペアリングの双線形性と非退化性 G 1 とG 2 の生成元をそれぞれPとQとした場合、 • 双線形性
任意の整数 a, b が与えられた場合に以下の関係が成立する。 e(aP, bQ) = e(P, Q)ab • 非退化性 e(P, Q) ≠ 1で、これがG T の生成元 g = e(P, Q)
3 BLS署名 BLS署名はペアリングの双線形性を利用した署名方式 • 鍵生成 ランダムな値sを選択し、これを秘密鍵とする。対応する公開鍵は、 Y = sQ
∈ G 2 • 署名の作成 メッセージmに対する署名は、 σ = sH 1 (m) ∈ G 1 ※H 1 はG 1 の要素を出力するハッシュ関数 • 署名の検証 メッセージm、σ、公開鍵Yが与えれれた場合に、以下が成立すれば有効な署名 e(σ, Q) = e(H 1 (m), Y) ← 各写像の結果がG T の同じ要素であることを検証 双線形性e(aP, bQ) = e(P, Q)abから、 e(σ, Q) = e(sH 1 (m), Q) = e(H 1 (m), Q)s = e(H 1 (m), sQ)、つまりe(H 1 (m), Y)になる。 ※ BLS署名はペアリングの双線形性を利用して秘密鍵による計算の検証を行える
4 BLSのメリット/デメリット • ECDSAやSchnorr署名と違って、署名の生成に乱数を必要としない 公開鍵P = xG、メッセージmに対してSchnorr署名であれば、 ◦ nonce
k をランダムに選択 ◦ Public nonce R = kG ◦ s = k + H(m)x ← 秘密鍵が分からないよう必ず乱数を必要とする ◦ (R.x, s) • 乱数が不要なので、公開鍵とメッセージに対して決定論的に署名値が決まる (ECDSAやSchnorr署名では別途RFC6979のような仕様との組み合わせが必要) • 集約署名や閾値署名が実装しやすい • ペアリング関数の計算コストが高め • 公開鍵や署名のサイズは secp256k1より少し大きい ◦ secp256k1:公開鍵=33 byte、Schnorr署名= 64 byte ◦ BLS12-381:公開鍵=48 byte、BLS署名=96 byte