シュノア署名
Schnorr署名 1989年
https://bips.xyz/340 BIP: 340 Schnorr Signatures for secp256k1
https://tex2e.github.io/rfc-translater/html/rfc8235.html
https://tex2e.github.io/rfc-translater/html/rfc9591.html
DSAの元になった感じのもの?
楕円曲線暗号で使えるらしい
EdDSAの署名の元でだいたい同じ形
ECDSAの標準の署名ではない版
ECDSAと比べると(楕円の外で)逆数の計算がない、署名を重ねることができる(いろいろあり)
シュノア証明からいろいろするとシュノア署名に
秘密鍵 x
公開鍵 p q g y
複数の署名を合わせるんだか何だかができる
証明者が秘密鍵$ sを知っていることの証明
$ \mathbb{Z}_q 有限体
$ g generator 生成源
s 秘密鍵
h 公開鍵 $ g^s
証明者:$ \mathbb{Z}_qから$ r をランダムに選択、$ x = g^rを計算して検証者に送る
検証者: $ cを$ \mathbb{Z}_qから選択して証明者に送る
証明者: $ y =r + sc \bmod qを計算、検証者に送る
検証者: $ g^y = xh^cが成り立つか調べる
非対話化
証明者:$ \mathbb{Z}_qから$ r をランダムに選択、$ x = g^rを計算して検証者に送る
証明者: $ c = H(x)を計算して検証者に送る
証明者: $ y =r + sc \bmod qを計算、検証者に送る
検証者: $ g^y = xh^cが成り立つか調べる
$ g^y = g^rg^{sc}
xをx||m にしてメッセージを含める
https://qiita.com/exfinen/items/1de14492de47d17aef89
EdDSAでは
x が prefix (暗号鍵ハッシュの後半)
s = 暗号鍵ハッシュの前半, 公開鍵がA = [s]Bの座標変換したもの
c は双方で計算できる H(x) は H(prefix || M)
y = r + sc mod q は S = r + sk, k = H(R||A||M), R = [c]B, Bはgのようなもの
ElGamal署名 (DSA)
/nostr/シュノア署名
モジュロ演算 (合同式?)
https://reposit.sun.ac.jp/dspace/bitstream/10561/1985/1/R4シ_fukumitsu.pdf