署名検証
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/05/13 09:27 UTC 版)
「ボネ・リン・シャチャム署名」の記事における「署名検証」の解説
メッセージが m {\displaystyle m} 、署名が σ {\displaystyle \sigma } 、署名者の公開鍵が g x {\displaystyle g^{x}} であるとき、式 e ( σ , g ) = e ( H ( m ) , g x ) {\displaystyle e(\sigma ,g)=e(H(m),g^{x})} が成り立てば、署名は正しい署名であると検証される。
※この「署名検証」の解説は、「ボネ・リン・シャチャム署名」の解説の一部です。
「署名検証」を含む「ボネ・リン・シャチャム署名」の記事については、「ボネ・リン・シャチャム署名」の概要を参照ください。
署名検証
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/06/19 03:03 UTC 版)
ボブがアリスの署名を検証するためには、アリスの公開鍵 Q A {\displaystyle Q_{A}} が必要である。公開鍵 Q A {\displaystyle Q_{A}} が正当なものであるかの検証は以下のとおりである。 Q A {\displaystyle Q_{A}} が O {\displaystyle O} でないことを確認する。 Q A {\displaystyle Q_{A}} が曲線上にあることを確認する。 n ∗ Q A = O {\displaystyle n*Q_{A}=O} であることを確認する。 メッセージ m {\displaystyle m} と署名 ( r , s ) {\displaystyle (r,s)} の検証は以下のように行われる。 r {\displaystyle r} および s {\displaystyle s} がいずれも [ 1 , n − 1 ] {\displaystyle [1,n-1]} の範囲にある整数であることを確認する。これを満たさない場合には署名は不正なものである。 e = HASH ( m ) {\displaystyle e={\textrm {HASH}}(m)} を計算する。ここで HASH は署名生成に用いられたハッシュ関数と同一のものである。 z {\displaystyle z} を、 e {\displaystyle e} の最上位側の L n {\displaystyle L_{n}} ビットとする。 w = s − 1 mod n {\displaystyle w=s^{-1}\,{\bmod {\,}}n} を計算する。 u 1 = z w mod n {\displaystyle u_{1}=zw\,{\bmod {\,}}n} および u 2 = r w mod n {\displaystyle u_{2}=rw\,{\bmod {\,}}n} を計算する。 曲線上の点 ( x 1 , y 1 ) = u 1 ∗ G + u 2 ∗ Q A {\displaystyle (x_{1},y_{1})=u_{1}*G+u_{2}*Q_{A}} を計算する。 r ≡ x 1 ( mod n ) {\displaystyle r\equiv x_{1}{\pmod {n}}} であれば署名は正当なものである。 Straus's algorithm(Shamir's trickとも)を用いることで、2つの楕円曲線上での掛け算の和 u 1 ∗ G + u 2 ∗ Q A {\displaystyle u_{1}*G+u_{2}*Q_{A}} を、2つの楕円曲線上での掛け算よりも速く計算することができる。
※この「署名検証」の解説は、「楕円曲線DSA」の解説の一部です。
「署名検証」を含む「楕円曲線DSA」の記事については、「楕円曲線DSA」の概要を参照ください。
- 署名検証のページへのリンク