0Pricing
Cryptology Academy · レッスン

デジタル署名とは

認証と暗号化の違い、そして署名のライフサイクルを理解します。

「デジタル署名とは」はCoddyKit上の無料Cryptology Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCryptology Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cryptology Academyコースには全4レッスンが含まれています。

ようこそ

デジタル署名は、手書きの署名に相当する暗号技術です。ただし、数学的に検証でき、秘密鍵なしでは偽造できません。

署名が暗号化と異なる理由

暗号化:受信者だけが読めるようにデータを変換します。署名:データが自分から送られたものであり、改ざんされていないことを証明します。暗号化には受信者の公開鍵を使い、署名には送信者の秘密鍵を使います。

3つのセキュリティ特性

認証:署名者の身元を確認します。完全性:署名後にメッセージが改ざんされていないことを証明します。否認防止:秘密鍵が署名者だけのものであるため、署名者は署名した事実を否定できません。

署名してから暗号化する方式と暗号化してから署名する方式

一般的には、暗号化してから署名する方式のほうが安全です。暗号文に署名することで、認証対象を正確にカバーできるためです。署名してから暗号化する方式では、能動的な攻撃者にメタデータを知られる可能性があります。

ハッシュしてから署名

生のメッセージに直接署名してはいけません(RSAには大きすぎるためです)。代わりに、次のようにします。 1. H = Hash(message) 2. signature = Sign(private_key, H) ハッシュによって、どのようなメッセージも署名アルゴリズムが扱える固定長の入力に変換できます。

署名の検証

検証者が用意するもの:メッセージ、署名、署名者の公開鍵。 1. H = Hash(message) 2. H' = Verify(public_key, signature) 3. H == H'なら受け入れ、それ以外の場合は拒否します

RSA署名の例

署名: sig = hash^d mod n (秘密鍵dでべき乗演算) 検証: hash = sig^e mod n (公開鍵eでべき乗演算) 復元したハッシュと、メッセージから計算したハッシュを比較します。

署名とMACの比較

MACには共有秘密が必要であり、両者が鍵を知っていなければなりません。署名では非対称鍵を使用するため、公開鍵を持つ人なら誰でも検証できます。署名には否認防止がありますが、MACにはありません。

DSAの概要

DSA(Digital Signature Algorithm、1994年)は、離散対数問題の困難性を利用します。署名ごとにランダムなノンスkを生成します。kが再利用されたり予測可能だったりすると、秘密鍵が漏えいします。

ノンス再利用の惨事(PS3ハック)

Sony PlayStation 3は、ECDSAで一定値k=1を使用していました。ハッカーは、異なる2つの署名から署名用の秘密鍵を抽出しました。これにより、任意のファームウェアに署名できるようになり、すべてのセキュリティを回避されました。

証明書の署名

X.509証明書は、認証局(CA)の秘密鍵によるデジタル署名が付いたデータにすぎません。ブラウザーが証明書を検証するときは、信頼ストアに登録されたCAの公開鍵を使って、CAの署名を確認します。

理解度チェック

署名者が後から文書への署名を否定できないことを保証する特性は何ですか?

まとめ

デジタル署名によって、デジタル世界を信頼できるものにできます。次は、RSA、DSA、ECDSAの署名方式について詳しく学びます。

よくある質問

「デジタル署名とは」レッスンは無料ですか?

はい。「デジタル署名とは」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cryptology Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cryptology Academyコースには全4レッスンが含まれています。

「デジタル署名とは」で何を学びますか?

認証と暗号化の違い、そして署名のライフサイクルを理解します。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cryptology Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCryptology Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「デジタル署名とは」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCryptology Academyレッスンでコードを書いて実行できますか?

はい。すべてのCryptology Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. デジタル署名とは
  2. RSA署名:署名と検証
  3. DSAとECDSAの署名方式
  4. 実際に使われる署名:コード署名とメール
← Cryptology Academyに戻る