各W-OTS+公開鍵でマークルツリーを構成しルートハッシュが公開鍵 ※ルートの計算には2h’個すべてのW-OTS+鍵ペアが必要 署名生成 a. 未使用のリーフのインデックス(idx)を選択し b. idxのW-OTS+秘密鍵でメッセージダイジェストに署名 c. 署名は(idx、W-OTS+署名、ツリーのルートまでのマークルパス) 署名検証 a. W-OTS+署名からW-OTS+公開鍵を復元し、ハッシュしてリーフ値を計算 b. マークルパスとidxを使ってルートを再計算し、XMSSの公開鍵と一致するか検証 ※ 同じidxを2回使うとW-OTS+のワンタイム性が破れるため、使用済みidxの管理が必須 2
署名し、マークルパスを添付 c. • HT署名 = d個の(W-OTS+署名 + マークルパス)を連結したもの 署名検証 a. 最下層から順に、W-OTS+署名から公開鍵を復元してリーフ値を計算し、 マークルパスでそのツリーのルートを算出 b. 算出したルートが上位層のW-OTS+署名の署名対象として 同じ計算を最上位層まで繰り返す c. 最終的に得られた最上位層のルートがHyper Treeの公開鍵と一致するか検証 5