Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
FORS
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
shigeyuki azuchi
June 24, 2026
Technology
18
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
FORS
GBECの解説動画の資料です。
https://goblockchain.network/2026/06/fors/
shigeyuki azuchi
June 24, 2026
More Decks by shigeyuki azuchi
See All by shigeyuki azuchi
Hyper Tree
azuchi
0
4
クラスターmempool
azuchi
0
37
W-OTS+
azuchi
0
42
Shorのアルゴリズム
azuchi
0
64
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
49
Fiat-Shamir変換と注意点
azuchi
0
240
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
61
BIP-374 離散対数の等価性証明
azuchi
0
81
BIP-353 DNS Payment Instructions
azuchi
0
97
Other Decks in Technology
See All in Technology
SO-101×VLAによる3色キューブのピック&プレース
abeja
0
220
AIのためのEthernet技術動向 (SerDes)
markunet
1
210
JavaScript 研修 (2026)
recruitengineers
PRO
2
620
その“隠したつもり”が命取り ── 自前と平文をやめて「正解」に委ねる
kuroneko13
0
130
FPGAが実現する遠方宇宙の高空間分解能天体撮影 -大型地上望遠鏡の視力を補正する「補償光学」とは?-
komei_mt
0
390
Bits AI を制するものは Datadog を制す / The player that controls Bits AI, controls Datadog
kaminashi
0
130
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
ラジオの科学
frievea
0
340
まちスペース®とデジタルツインと「まちづくり」
hiro_ogi
0
130
Sets in Go
ramalho
1
1k
カートの信頼性を担保するWireMockを使ったe2eテスト
ykagano
0
400
Genie Codeハンズオン基礎編
taka_aki
1
130
Featured
See All Featured
Color Theory Basics | Prateek | Gurzu
gurzu
0
420
Navigating Weather and Climate Data
rabernat
0
480
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
66
57k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
430
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
700
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
800
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
470
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Transcript
FORS(Forest Of Random Subsets)
1 FORS FORS(Forest Of Random Subsets)は、1つの公開鍵/秘密鍵を用いて 数回(Few-Time)の署名が可能なデジタル署名スキーム SPHINCS+(SLH-DSA)の構成要素の1つで実際のメッセージに署名する 【パラメーター】 •
k:ツリーの個数 • t:各ツリーの高さ
2 鍵生成 1. マスターシードをランダムに選択 2. シードから擬似ランダム関数PRF(seed, i, j) を使ってk×2t個の秘密鍵を生成 iはツリーのインデックス、jはツリー内のリーフのインデックス
3. 各秘密鍵のハッシュ値をリーフとしてk個のツリーを構築 4. k個のツリーのルートr i を計算 5. k個のルートを連結して ハッシュした値が公開鍵 ※ シードだけあればすべて導出可能
3 署名 メッセージmに対して署名者は、以下の手順で署名を生成する 1. メッセージダイジェストH(m)を計算し 2. 1の結果をtビットずつk個のチャンクに分割する 各ツリーiにtビットのidx[i]が割り当てられる 3. k個の各ツリーに対して以下をピックアップしたのが署名
a. idx[i]に該当するリーフの秘密鍵 b. idx[i] のリーフからルートr i までの 経路で必要な兄弟ノード (マークルパス)
4 署名の検証 メッセージmと署名(k個の秘密鍵とそのマークルパス)を受け取った検証者は、 1. メッセージダイジェストH(m)を計算し 2. 1の結果をtビットずつk個のチャンクに分割する 各ツリーiにtビットのidx[i]が割り当てられる 3. k個の秘密鍵のハッシュ値を計算し、
4. 各ハッシュ値を各ツリーの idx[i]に割り当て、 5. マークルパスを使ってツリーのルートを計算し、 6. 全ルートのハッシュ値を計算し、 公開鍵と一致するか検証する
5 なぜFew-Timeなのか? Few-Time:何度かなら同じ鍵で署名しても安全だが、ある回数を超えると偽造可能性が無視できなくなる メッセージm、m’について同じFORS鍵で署名した場合 • ツリーiのidx[i] == idx’[i]の場合、新しく漏れる情報はなし • ツリーiのidx[i]
!= idx’[i]の場合、新しくidx’[i]の秘密鍵が漏れる ※ 同じ秘密鍵の漏洩には問題がない q回署名すると、各ツリーiで開示されたインデックスの集合S i ⊆{0,...2t-1}ができる(|S i | ≦ q) 多数のメッセージm*に対してハッシュを計算し、そのidxがすべて開示済みの集合内にあれば署名の偽造が成功する 計算困難なハッシュの計算量となるようqを設定する必要があり、 • 計算量は約(2t/q)k • 求める安全性をλビットとするとk⋅(t−log 2 q) ≥ λを満たすqを選択すること (128ビットだとパラメーターセットによってq=4〜7くらい)