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
shigeyuki azuchi
June 24, 2026
Technology
14
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
クラスターmempool
azuchi
0
34
W-OTS+
azuchi
0
38
Shorのアルゴリズム
azuchi
0
60
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
44
Fiat-Shamir変換と注意点
azuchi
0
230
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
57
BIP-374 離散対数の等価性証明
azuchi
0
76
BIP-353 DNS Payment Instructions
azuchi
0
93
OP_CAT and Schnorr Trick
azuchi
0
95
Other Decks in Technology
See All in Technology
NetBoxを利用した作業効率化の試み_NetDevNight4
tnoha
0
460
Webアクセシビリティ入門 2026
recruitengineers
PRO
1
130
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
53k
【CEDEC2026】『ウマ娘 プリティーダービー』 英語版のキャラクターの方言や口調をローカライズするための創造的アプローチ
cygames
PRO
1
180
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
510
組織にどうSREを根付かせるか?〜IVRyの場合〜
abnoumaru
0
320
制約理論(ToC)入門 2026版
recruitengineers
PRO
2
190
取引先から届く 「セキュリティチェックシート」の読み解き方
kamadamakoto
0
100
AIがAPIを書く時代に、私たちは何を設計すべきか
nagix
0
210
MIRU 2026 チュートリアル
keisuke198619
0
780
ブラウザ研修 2026
recruitengineers
PRO
3
230
今こそ聞きたいソフトウェア設計 ドメイン駆動設計再入門
masuda220
PRO
16
5.2k
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.9k
Site-Speed That Sticks
csswizardry
13
1.4k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
270
From π to Pie charts
rasagy
0
250
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
440
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
330
Game over? The fight for quality and originality in the time of robots
wayneb77
1
240
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
760
New Earth Scene 8
popppiees
3
2.5k
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くらい)