たくさんの本を読むには、かなりの時間がかかります。私見、より速い方法は、ウィキペディアを閲覧して、次の内容を読むことです。
ハッシュ アルゴリズム (要するに、長いテキスト/データを固定サイズの値、ハッシュに変換します。これは (ほぼ) 一意で、この長いテキストを表します。そして、はい、それは一方向です。
署名アルゴリズム - 「署名」と呼ばれるハッシュ値から何かを計算します。主なアイデアは、秘密鍵を持っている場合にのみ正しい署名を計算できるということです。そして、この署名は公開鍵で検証できます。公開鍵は人々の間で共有されるため、彼らはあなたの署名を検証できます。
したがって、有効な署名は、テキスト/データが他の誰かによって変更されていないことを証明します。
証明書: これは、ユーザーの公開鍵をこの鍵に関する情報 (所有者の名前、電子メール、住所など) にバインドするデータのブロックです。通常、機関によって署名された証明書 (ルート証明書) - したがって、機関を信頼する場合、この証明書が個人を正しく表していると信じる必要があります。
タイムスタンプ: これは、人々が信頼する機関によって作成された署名であり、タイム マークを署名に結び付け、他のドキュメントの上に作成されます。したがって、これにより、この署名 (およびこのドキュメント) がその時点で正しかったことが証明されます。証明書が失効したり古くなったりする場合があるため、これが必要です。タイムスタンプがないと、いつ作成されたかわからないため、これが正しい署名かどうかわかりません。
ASN.1 - 抽象構文記法。一部のデータ構造の形式を記述するテキスト ルールを定義します。ほとんどの暗号化標準で使用されています。
- DER encoding (Distinguished Encoding Rules): ASN.1 オブジェクト/レコードをバイナリ データにエンコードする一連のルール。ほぼ同じことを行う BER (Basic Encoding Rules) もありますが、同じ値に対して異なるエンコードを許可します (BOOL をゼロ以外の値でエンコードできるように)。さまざまな方法でエンコードでき、さまざまなハッシュを生成できます。
- X.509 : 公開鍵証明書のフォーマット (ASN.1) に関する規格。
これが何が起こっているのかを理解するのに少し役立つことを願っています:)
実際、タイムスタンプ/x.509/署名/検証などをすべて実装した暗号化ライブラリが多数市場に出回っています。