<ヘッダー>
<日付/時刻>
マスタ テキストの書式設定
2 レベル
3 レベル
4 レベル
5 レベル
<フッター>
<#>
今後開発をほかへ受け継ぐ場合でも、再開発が容易
共通性が高く、今後の普及などに関して高い将来性
公開鍵暗号技術の応用の1つとして重要なディジタル署名を話したいと思います。
ボブ「おっアリスから手紙だ、なんだろう楽しみだなぁ」
ボブ「これじゃあ、どっちの手紙がアリスから来たのかわからないなぁ」
ボブ「本当にアリスからの手紙だな」
自分の署名が偽造されると大変困るわけです。
自分のクレジットカードが他人に勝手に使われると困るのと同じことなのです
相手に本当に自分であることが容易に確かめられる仕組みが求められます。
暗号通信用の鍵と署名用の鍵を同じにしてはいけないのです
署名は自分以外に付けれないものでなければなりません。そこで、署名を付けるには
自分の秘密鍵を用いるわけです。
ボブはアリスから受け取った暗号文を復号して、署名を検証します。
この文書を読むことのできる(復号できる)のは、ボブだけであり、しかも署名の検証は
アリスの公開鍵を用いるので、簡単なのです。
それは、存在的偽造と呼ばれる攻撃法から身を守るため
一方向性関数の性質を説明します
文書のハッシュ値を求めることはやさしいのですが、
ハッシュ値から文書を割り出すことは非常に困難なのです
ハッシュ関数を暗号通信を行うごとに適用するので、計算に時間がかかっていては 使い物になりません。かといって、効率的にしようと手を抜いて衝突(文書は違うけれども ハッシュ値が同じになってしまうような文書のこと)すると成りすまされてしまいます
これらのハッシュ関数はいずれも効率的なものであり、ディジタル署名ではSHA-1を用いる
ことが非常に多いのです。
どのくらい効率的かというと、1Mでおよそ4秒程度です。
文書自体を入力にするのではなく、文書のハッシュ値を入力することで署名を生成します。 ハッシュ関数の衝突が見出せない限りこの方式の安全性は高いのです(文書を入力にするよりも)。
ボブはアリスから受け取った暗号文を自分の暗号秘密鍵で復号化し、
署名付文書を得ます。この署名付文書から署名と文書の部分に分け、
まず文書からハッシュ値を計算します。このハッシュ値とアリスの署名公開鍵
を使って、署名を検証します