Shammer's Philosophy

My private adversaria

DSAとは・・・

DSAは、Digital Signature Algorithmの略。
これは、電子署名の計算に特化したアルゴリズムで、DSA単体では鍵交換や暗号化は提供できない。

基本的には以下のような流れ。

  1. 署名するデータのハッシュを計算
  2. 任意の秘密鍵を利用して、そのハッシュの電子署名を出す
  3. 上記秘密鍵と対になる公開鍵で、電子署名からハッシュを取得
  4. データそのもののハッシュと、このハッシュを比較し、同じであれば本物のデータと判断

電子署名は、データが改竄されていないことを確認するのに有効な方法。
また、秘密鍵に対応した公開鍵でなかった場合は、正しいハッシュ値を得られないため、
意図している通信相手からのデータなのかを判断することもできる。
秘密鍵を持っているのが誰かは特定、あるいは想定できているはず・・・)
しかし、DHと異なり通信の中で鍵を交換するわけではないため、その通信相手の公開鍵は
事前に何らかの方法で入手しておく必要がある。いろいろな人の鍵をごちゃごちゃに管理していると、
別の誰かの公開鍵を使って、うまくデータの検証ができない可能性がある。