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
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
14
Hyper Tree
azuchi
0
18
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
55
Fiat-Shamir変換と注意点
azuchi
0
260
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
69
Other Decks in Technology
See All in Technology
Von-Neumann Machines, Dreams & The Futures of IT
ufried
0
130
メルカリにおけるAI時代の高速プロトタイピング基盤「Arca」
ryotarai
12
9.3k
おい、エージェントを使って終わらせろ
nwiizo
3
940
C#コードの結合を可視化する Roslyn解析による設計改善と リファクタリング判断
dora56
0
700
JSONataとAWS Step Functionsで目指すRuntimelessな世界
mu7889yoon
1
500
Harness Engineering on Rails
joelq
0
510
GoのInterface内部構造から学ぶ!最高パフォーマンスを出すコード設計
yappli_developers
1
290
【ゲームメーカーズスクランブル2026】『Shadowverse: Worlds Beyond』UIとアニメーションで実現する最高のユーザー体験を叶えるプロトタイピング
cygames
PRO
1
460
セルフサービスのオブザーバビリティ基盤をOpenTelemetryで作る / Building a Self-Service Observability Platform with OpenTelemetry
ymotongpoo
2
180
HolmesGPTで始めるSREエージェント入門!プラットフォームの障害調査はAIにお任せ 〜
sanghyuk
0
120
ボードゲームの遊び相手をFoundation Modelsで作る / iOSDC Japan 2026
genda
0
180
AIエージェントの一手は 誰も見ていない - Falco拡張OSS「Prempti」とeBPFで サーバーレス実行基盤を二層防御する
keitah
1
570
Featured
See All Featured
Believing is Seeing
oripsolob
1
220
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Designing for Performance
lara
611
70k
The Invisible Side of Design
smashingmag
301
52k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Producing Creativity
orderedlist
PRO
348
41k
Optimising Largest Contentful Paint
csswizardry
37
4k
Prompt Engineering for Job Search
mfonobong
0
460
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
560
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
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