DSAとは・・・
DSAは、Digital Signature Algorithmの略。
これは、電子署名の計算に特化したアルゴリズムで、DSA単体では鍵交換や暗号化は提供できない。
基本的には以下のような流れ。
- 署名するデータのハッシュを計算
- 任意の秘密鍵を利用して、そのハッシュの電子署名を出す
- 上記秘密鍵と対になる公開鍵で、電子署名からハッシュを取得
- データそのもののハッシュと、このハッシュを比較し、同じであれば本物のデータと判断
電子署名は、データが改竄されていないことを確認するのに有効な方法。
また、秘密鍵に対応した公開鍵でなかった場合は、正しいハッシュ値を得られないため、
意図している通信相手からのデータなのかを判断することもできる。
(秘密鍵を持っているのが誰かは特定、あるいは想定できているはず・・・)
しかし、DHと異なり通信の中で鍵を交換するわけではないため、その通信相手の公開鍵は
事前に何らかの方法で入手しておく必要がある。いろいろな人の鍵をごちゃごちゃに管理していると、
別の誰かの公開鍵を使って、うまくデータの検証ができない可能性がある。