署名生成とは? わかりやすく解説

署名生成

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/05/13 09:27 UTC 版)

ボネ・リン・シャチャム署名」の記事における「署名生成」の解説

署名鍵 x {\displaystyle x} と署名したメッセージ m {\displaystyle m} が与えられたとき、まず、 m {\displaystyle m} のハッシュ値 h = H ( m ) {\displaystyle h=H(m)} を計算する。そして、署名 σ = h x {\displaystyle \sigma =h^{x}} を出力する

※この「署名生成」の解説は、「ボネ・リン・シャチャム署名」の解説の一部です。
「署名生成」を含む「ボネ・リン・シャチャム署名」の記事については、「ボネ・リン・シャチャム署名」の概要を参照ください。


署名生成

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/06/19 03:03 UTC 版)

楕円曲線DSA」の記事における「署名生成」の解説

ParameterCURVE 使用する楕円曲線 G ベースポイント(位数 n の巨大素数とともに楕円曲線定義するn G位数( n ∗ G = O {\displaystyle n*G=O} を満たすアリス署名したメッセージボブに送る場合考える。最初に使用する楕円曲線パラメータ ( C U R V E , G , n ) {\displaystyle (CURVE,G,n)} を決めておく必要があるアリスは [ 1 , n − 1 ] {\displaystyle [1,n-1]} の範囲からランダムに選択され秘密鍵 d A {\displaystyle d_{A}} と、公開鍵 Q A = d A ∗ G {\displaystyle Q_{A}=d_{A}*G} から成る鍵ペア生成する。ここで ∗ {\displaystyle *} は楕円曲線上で掛け算 (scalar multiplication) を意味するアリスメッセージ m {\displaystyle m} に署名する場合、以下の計算を行う。 e = HASH ( m ) {\displaystyle e={\textrm {HASH}}(m)} を計算する。ここで HASHSHA-1のような暗号学的ハッシュ関数を指す。 z {\displaystyle z} を、 e {\displaystyle e} の最上位側の L n {\displaystyle L_{n}} ビットとする。ここで L n {\displaystyle L_{n}} は位数 n {\displaystyle n} のビット長とする。 [ 1 , n − 1 ] {\displaystyle [1,n-1]} の範囲から整数 k {\displaystyle k} を任意に選択する曲線上の点 ( x 1 , y 1 ) = k ∗ G {\displaystyle (x_{1},y_{1})=k*G} を計算するr = x 1 mod n {\displaystyle r=x_{1}\,{\bmod {\,}}n} を計算するr = 0 {\displaystyle r=0} となる場合には k {\displaystyle k} の選択に戻る。 s = k − 1 ( z + r d A ) mod n {\displaystyle s=k^{-1}(z+rd_{A})\,{\bmod {\,}}n} を計算するs = 0 {\displaystyle s=0} となる場合には k {\displaystyle k} の選択に戻る。 ( r , s ) {\displaystyle (r,s)} が m {\displaystyle m} に対す署名となる。 s {\displaystyle s} を計算する際に、 HASH ( m ) {\displaystyle {\textrm {HASH}}(m)} から得られる z {\displaystyle z} は整数変換される。 z {\displaystyle z} は n {\displaystyle n} より「大きい」ことは許されるが、「長い」ことは許されないDSA同様に署名ごとに異なる k {\displaystyle k} を選択することは極めて重要である。さもないとステップ6の式から秘密鍵 d A {\displaystyle d_{A}} を得ることが可能となってしまう。メッセージ m {\displaystyle m} および m ′ {\displaystyle m'} に対して未知だが同じ k {\displaystyle k} から得られ2つ署名 ( r , s ) {\displaystyle (r,s)} および ( r , s ′ ) {\displaystyle (r,s')} がある場合攻撃者は z {\displaystyle z} および z ′ {\displaystyle z'} を計算することが可能であり、 s − s ′ = k − 1 ( z − z ′ ) {\displaystyle s-s'=k^{-1}(z-z')} であることから、 k = z − z ′ s − s ′ {\displaystyle k={\frac {z-z'}{s-s'}}} が得られるs = k − 1 ( z + r d A ) {\displaystyle s=k^{-1}(z+rd_{A})} であるから攻撃者秘密鍵 d A = s kz r {\displaystyle d_{A}={\frac {sk-z}{r}}} を得ることができる。このように単一の k {\displaystyle k} を用いることは不適切実装であり、PlayStation 3ソフトウェア署名鍵が漏洩したのはこれが原因であった

※この「署名生成」の解説は、「楕円曲線DSA」の解説の一部です。
「署名生成」を含む「楕円曲線DSA」の記事については、「楕円曲線DSA」の概要を参照ください。

ウィキペディア小見出し辞書の「署名生成」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「署名生成」の関連用語

署名生成のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



署名生成のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのボネ・リン・シャチャム署名 (改訂履歴)、楕円曲線DSA (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS