Cryptographic Hashing
Cryptographic hashingは、任意のサイズの入力データから、決定論、非可逆性、衝突耐性プロパティを持つ固定長のダイジェストを生成し、データの整合性と認証を可能にします。
Cryptographic [[hash function](/ja/terms/hash-function)](/ja/terms/cryptographic-hash-function)は、任意の長さの入力を受け取り、固定長のダイジェストを返します。決定論、固定出力サイズ、one-waynessによって特徴付けられます。決定論的で固定長であることに加えて、Cryptographic hash functionは、preimage resistance(ダイジェストが与えられた場合、preimageを見つけることは不可能)、second-preimage resistance(同じダイジェストを持つ異なる入力を見つけることは不可能)、およびcollision resistance(衝突する2つの入力を発見することは困難)を提供することを目指しています。これらは計算効率が高く設計されており、出力ダイジェストはavalanche effectを示すべきです。入力のわずかな変更は、大幅に異なるダイジェストをもたらします。これらは、データの整合性チェック、digital signatures、および適切な場合のpassword hashingに使用されます。注:nonceは、hash function自体のプロパティではありません。プロトコルでsaltingまたはhashingコンテキストを変更するために使用される場合がありますが、hash functionのコアプロパティの一部ではありません。
graph LR
Center["Cryptographic Hashing"]:::main
Pre_cryptography["cryptography"]:::pre --> Center
click Pre_cryptography "/terms/cryptography"
Center --> Child_merkle_tree["merkle-tree"]:::child
click Child_merkle_tree "/terms/merkle-tree"
Rel_digital_signatures["digital-signatures"]:::related -.-> Center
click Rel_digital_signatures "/terms/digital-signatures"
Rel_proof_of_work["proof-of-work"]:::related -.-> Center
click Rel_proof_of_work "/terms/proof-of-work"
Rel_cryptographic_primitives["cryptographic-primitives"]:::related -.-> Center
click Rel_cryptographic_primitives "/terms/cryptographic-primitives"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 5歳でもわかるように説明
🧼 A digital fingerprint for your data. If even one tiny [bit](/ja/terms/bit) of a file changes, the [hash](/ja/terms/hash) changes completely, showing you it was touched.
🤓 Expert Deep Dive
## The Significance of SHA-256
SHA-256 is the beating heart of the Bitcoin network. It is used to create the linked 'chain' by including the previous block's hash in the current block, and it powers the Proof-of-Work mining system where miners compete to find a specific hash. Its 256-bit output provides 128-bit 'collision security,' which remains strong even against the most advanced classical computers.