暗号プロトコル
投票の検証可能性を支える暗号プリミティブをまとめる部です。
公開データに対する投票の秘匿性(hiding)と束縛性(binding)を支えるコミットメントスキームから、RFC 6962 に基づく CT スタイルの Merkle ツリー、zkVM 入力の正準エンコーディングまで、検証可能性の基盤となる暗号構成要素を網羅します。
本書で「コミットメント」は 投票コミットメント(個々の投票の束縛)と 入力コミットメント(zkVM 公開入力全体の束縛)の 2 種を指します。両者は対象とドメイン分離タグが異なるため、それぞれ独立した章を設けています。
この部に含まれる章
- コミットメントスキーム — 投票コミットメントの構成と安全性
- CT Merkle ツリー — CT スタイルの追記専用掲示板
- 入力コミットメント — zkVM 公開入力に対するコミットメントの正準エンコーディング
- STH ダイジェスト — 分割ビュー緩和のためのツリーヘッドダイジェスト
- ビットマップ Merkle — 投票カウント証明のためのビットマップツリー
想定読者と前提
- 想定読者: 暗号プリミティブの仕様を実装・監査する技術者
- 前提: SHA-256 ハッシュ計算と Merkle ツリーの基本概念を把握していること
本章で扱わないもの
- SHA-256 や Pedersen コミットメントなど暗号プリミティブの数学的安全性証明
- RFC 6962 / CT エコシステムの運用詳細(証明書ログ、Monitor 役割など)
- 暗号ライブラリ実装の詳細(定数時間実装、サイドチャネル対策)