ハッシュ化とは何ですか?

ハッシュ化は、可変サイズの入力から固定サイズの出力を生成するプロセスです。これは、ハッシュ関数(として知られる数学的な公式を使用して実現されます。ハッシュアルゴリズム)として実装されています。

すべてのハッシュ関数が暗号を含むわけではありませんが、暗号学的ハッシュ関数は暗号通貨にとって中心的な役割を果たしています。これのおかげで、ブロックチェーンやその他の分散システムは、データの整合性とセキュリティの重要なレベルを達成できます。

従来のハッシュ関数と暗号ハッシュ関数の両方は決定論的です。決定論的であるとは、入力が変わらない限り、ハッシュアルゴリズムは常に同じ出力を生成することを意味します (別名ダイジェストまたはハッシュ)。

通常、暗号通貨のハッシュアルゴリズムは片道関数として設計されており、それらは膨大な時間と計算リソースなしでは簡単に逆転できません。言い換えれば、入力から出力を生成するのは非常に簡単ですが、出力から入力を単独で生成することは比較的困難です(。一般的に、入力を見つけるのが難しいほど、ハッシュアルゴリズムはより安全であると考えられています。

ハッシュ関数はどのように機能しますか?

異なるハッシュ関数は異なるサイズの出力を生成しますが、各ハッシュアルゴリズムの出力サイズは常に一定です。たとえば、SHA-256アルゴリズムは256ビットの出力しか生成できず、SHA-1は常に160ビットのダイジェストを生成します。

例を挙げると、"Gate"と"Gate"という言葉をSHA-256ハッシュアルゴリズム)に通してみましょう。これはビットコインで使用されています(。

SHA-256の

インプット

出力)256ビット(

ゲート

df5aac67efed6b70d4f56eab7d003e73a36910fd5b5eb0e493536afdebea7a42

ゲート

c19edf1e2b201d93c6ba5f2a565c22b0a3b8f5604ca4c59eecb2bc2c3c1ec247

最初の文字のケースの小さな変更)がまったく異なるハッシュ値をもたらしたことに注意してください。しかし、SHA-256を使用しているため、出力は常に256ビット(または64文字)の固定サイズになります - 入力サイズに関係なく。さらに、2つの単語をアルゴリズムに何度通しても、2つの出力は一定のままです。

一方、同じ入力をSHA-1ハッシュアルゴリズムに通すと、次の結果が得られます:

SHA-1 (英語)

インプット

出力 (160 ビット)

ゲート

b3f40a0b9ca8d0ea445fc6a9aa659879283ca5bf

ゲート

A3AC20FB7CA4D1B49CE3db98E7CBC9CCBE038BC1

特に、SHAはSecure Hash Algorithmsの略です。これは、SHA-0およびSHA-1アルゴリズムとSHA-2およびSHA-3グループを含む一連の暗号化ハッシュ関数を指します。SHA-256はSHA-2グループの一部であり、SHA-512やその他のバリアントも含まれています。現在、SHA-2およびSHA-3グループのみが安全と見なされています。

彼らはなぜ重要なのか?

従来のハッシュ関数は、データベースの検索、大規模ファイルの分析、データ管理など、さまざまな用途があります。一方、暗号学的ハッシュ関数は、メッセージ認証やフィンガープリンティングなど、情報セキュリティアプリケーションで広く使用されています。ビットコインに関して言えば、暗号学的ハッシュ関数はマイニングプロセスの重要な部分であり、新しいアドレスやキーの生成にも関与しています。

ハッシュの真の力は、膨大な情報を扱うときに現れます。例えば、大きなファイルやデータセットをハッシュ関数に通し、その出力を使用してデータの正確性と完全性を迅速に検証することができます。これは、ハッシュ関数の決定論的な性質によるもので、入力は常に単純化され、凝縮された出力(hash)を生成します。この技術により、大量のデータを保存し「記憶する」必要がなくなります。

ハッシュは、ブロックチェーン技術の文脈で特に有用です。ビットコインのブロックチェーンには、ハッシュを含むいくつかの操作があり、そのほとんどはマイニングプロセス内にあります。実際、ほぼすべての暗号通貨プロトコルは、ハッシュを利用してトランザクションのグループをブロックにリンクし凝縮し、また、各ブロック間に暗号的リンクを生成することに依存しており、効果的にブロックチェーンを作成しています。

暗号学的ハッシュ関数

再び、暗号技術を実装するハッシュ関数は暗号ハッシュ関数として定義されます。一般的に、暗号ハッシュ関数を破るには無限の総当たり試行が必要です。誰かが暗号ハッシュ関数を「逆転」させるためには、対応する出力が生成されるまで試行錯誤で入力を推測する必要があります。しかし、異なる入力が全く同じ出力を生成する可能性もあり、その場合は「衝突」が発生します。

技術的には、暗号学的ハッシュ関数は、効果的に安全であると見なされるために、3つの特性に従う必要があります。それらは、衝突耐性、前画像耐性、および第二前画像耐性として説明できます。

各プロパティについて議論する前に、その論理を3つの短い文で要約しましょう。

  • 衝突耐性: 同じハッシュを出力する2つの異なる入力を見つけることは不可能です。

  • プレイメージ抵抗: ハッシュ関数(を「逆転」することが不可能であり、与えられた出力)の入力を見つけることができません。

  • セカンドプリイメージ抵抗: 指定された入力と衝突する任意のセカンド入力を見つけることは不可能です。

( コリジョン抵抗

前述のように、衝突は異なる入力が全く同じハッシュを生成する時に発生します。したがって、ハッシュ関数は誰かが衝突を見つけるまで衝突耐性があると見なされます。任意のハッシュ関数には常に衝突が存在することに注意してください。なぜなら、可能な入力は無限であるのに対し、可能な出力は有限だからです。

言い換えれば、ハッシュ関数は衝突耐性があると言えます。その可能性が非常に低いため、何百万年もの計算を必要とします。したがって、衝突がないハッシュ関数は存在しませんが、いくつかは抵抗力があると見なされるのに十分強力です)例えば、SHA-256###。

様々なSHAアルゴリズムの中で、SHA-0およびSHA-1グループは衝突が発見されたため、もはや安全ではありません。現在、SHA-2およびSHA-3グループは衝突耐性があると考えられています。

( プリイメージ耐性

前画像抵抗性の特性は、単方向関数の概念に関連しています。ハッシュ関数は、特定の出力を生成した入力を見つける確率が非常に低い場合、前画像抵抗性があると見なされます。

このプロパティは、与えられた出力を観察することで攻撃者が入力を推測しようとするため、前のものとは異なることに注意してください。一方、コリジョンは、異なる2つの入力が同じ出力を生成することが分かったときに発生しますが、どの入力が使用されたかは問題ではありません。

プリイメージ抵抗性の特性は、情報を開示することなくメッセージの認証を証明できるため、データ保護にとって重要です。実際、多くのサービスプロバイダーやウェブアプリケーションは、プレーンテキストのパスワードの代わりに、パスワードから生成されたハッシュを保存し使用しています。

) セカンドプリイメージ耐性

簡単に言うと、セカンドプリイメージ耐性は他の2つの特性の間にあると言えます。セカンドプリイメージ攻撃は、誰かが既に知っている別の入力と同じ出力を生成する特定の入力を見つけることができる場合に発生します。

言い換えれば、セカンドプリイメージ攻撃は衝突を見つけることを含みますが、同じハッシュを生成する2つのランダムな入力を探すのではなく、別の特定の入力によって生成されたのと同じハッシュを生成する入力を探します。

したがって、衝突耐性のあるハッシュ関数は、常に衝突を意味するため、第二前画像攻撃にも耐性があります。しかし、衝突耐性のある関数に対して前画像攻撃を行うことは依然として可能であり、これは単一の出力から単一の入力を見つけることを含みます。

マイニング

ビットコインマイニングには、残高の確認、トランザクションの入力と出力のリンク、ブロック内のトランザクションのハッシュ化を行いメルクルツリーを形成するなど、ハッシュ関数を含む多くのステップがあります。しかし、ビットコインブロックチェーンが安全である主な理由の一つは、マイナーが次のブロックの有効なソリューションを見つけるために、多数のハッシュ操作を実行する必要があるという事実です。

具体的に言うと、マイナーは候補ブロックのハッシュ値を作成する際に、さまざまな異なる入力を試す必要があります。本質的には、特定の数のゼロで始まる出力ハッシュを生成した場合にのみ、自分のブロックを検証できるようになります。ゼロの数がマイニングの難易度を決定し、ネットワークに割り当てられたハッシュレートによって異なります。

この場合、ハッシュレートはビットコインマイニングに投資されているコンピューターパワーの量を表します。ネットワークのハッシュレートが増加すると、ビットコインプロトコルは自動的にマイニングの難易度を調整し、ブロックをマイニングするのに必要な平均時間が約10分に保たれるようにします。逆に、いくつかのマイナーがマイニングを停止することを決定し、ハッシュレートが大幅に低下すると、マイニングの難易度が調整され、###平均ブロック時間が10分に戻るまでマイニングが容易になります###。

マイナーは衝突を見つける必要はないことに注意してください。なぜなら、特定の数のゼロから始まる有効な出力(として生成できるいくつかのハッシュがあるからです)。したがって、特定のブロックに対して複数の解決策があり、マイナーはそのうちの1つを見つける必要があるだけです – マイニングの難易度によって決定された制限に従って。

ビットコインのマイニングは高額な作業であるため、マイナーがシステムを不正する理由はありません。なぜなら、そうすることで重大な財務的損失を被るからです。マイナーがブロックチェーンに従うほど、それは大きく、強力になります。

最後の考え

ハッシュ関数がコンピュータサイエンスにおいて不可欠なツールであることに疑いの余地はありません。特に大量のデータに関しては、暗号技術と組み合わせることで、ハッシュアルゴリズムは非常に多様な用途を持ち、さまざまな方法でセキュリティと認証を提供できます。このため、暗号学的ハッシュ関数はほぼすべての暗号通貨ネットワークにとって重要であり、ブロックチェーン技術に興味がある人にとっては、その特性や動作メカニズムを理解することが確かに役立ちます。

IN1.09%
原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • コメント
  • リポスト
  • 共有
コメント
0/400
コメントなし
  • ピン
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)