「DSA(Digital Signature Algorithm)」とは、DLP(Discrete Logarithm Problem:離散対数問題)の困難性をベースとしたElGamal方式を改良して、署名の長さを160bit×2に短縮し、秘密鍵の生成などを特定の方法で運用するデジタル署名アルゴリズムである。
「DSA(Digital Signature Algorithm)」とは、DLP(Discrete Logarithm Problem:離散対数問題)の困難性をベースとしたElGamal方式を改良して、署名の長さを160bit×2に短縮し、秘密鍵の生成などを特定の方法で運用するデジタル署名アルゴリズムである。
以下、DSAにおけるパラメーター生成、鍵生成、署名、検証について順番に説明する。
最初にパラメーターの生成を行う。ここで重要となるのは、選択する「暗号学的ハッシュ関数」と、鍵長の長さである。
暗号学的ハッシュ関数とは、情報セキュリティ(暗号)用途において良い性質を持ったハッシュ関数のことをいう。そのような関数として、以前のDSAではSHA-1が選択されていたが、現在ではSHA-2も選択可能となっている(FIPS 186-4およびFIPS 180-4を参照)。
鍵長は暗号の強度に影響を与えるパラメーターである。
パラメーター生成の後、鍵ペア、つまり公開鍵と秘密鍵を生成する。
署名は、署名したいメッセージと、先に選択したハッシュ関数、生成した鍵ペア(公開鍵、秘密鍵)を基に行う。2つの値の組みが署名値となり、メッセージに付帯される。
署名の検証はメッセージと署名と公開鍵を基に行う。
【2004/1/1】初版公開。
【2019/3/25】最新情報に合わせて内容を書き直しました(セキュリティ・キャンプ実施協議会 著)。
Copyright © ITmedia, Inc. All Rights Reserved.