Pebble Coding

ソフトウェアエンジニアによるIT技術、数学の備忘録

ECDSA署名とECSchnorr署名の概略メモ

ECDSA署名とECSchnorr署名の概略メモです。
群や体の演算など、些細な部分は省略し、核となるロジックだけを記載しています。
楕円曲線上の点は大文字、スカラー値は小文字で表現します。
点Aのx,y座標は (A_x, A_y)と表現します。

ECDSA署名

<共有情報>
G:ベースポイント, h(): ハッシュ関数

<秘匿化する情報>
x: 秘密値
k: ナンス

<公開する情報>
A = xG: 公開点
R = kG: ナンス公開点
m: 署名対象のメッセージ
 s = (h(m) + xR_x) {k}^{-1}
 (R_x, s)を署名とする。

<検証>
 {s}^{-1} h(m)G + R_x {s}^{-1} Aを計算し、R_x に一致することを確認する。

ECSchnorr署名

<共有情報>
G: ベースポイント, h(): ハッシュ関数

<秘匿化する情報>
x: 秘密値
k: ナンス

<公開する情報>
A = xG: 公開点
R = kG: ナンス公開点
m: 署名対象のメッセージ
 s = k + x h(m||A_x)
 (R_x, s)を署名とする。

<検証>
 h(m||(sG_x - h(m||R_x)A_x))
 h(m||A_x)に一致することを確認する。

暗号技術入門 第3版

暗号技術入門 第3版