Cryptographic Hashing
Cryptographic hashing은 임의 크기의 입력 데이터로부터 고정 길이의 digest를 생성하며, determinism, non-invertibility, collision resistance 속성을 통해 데이터 무결성 및 인증을 가능하게 합니다.
Cryptographic [[hash function](/ko/terms/hash-function)](/ko/terms/cryptographic-hash-function)은 임의 길이의 입력을 받아 고정 길이의 digest를 반환합니다. determinism, fixed output size, one-wayness로 특징지어집니다. deterministic하고 fixed length인 것 외에도, cryptographic hash function은 preimage resistance (digest가 주어졌을 때 preimage를 찾는 것이 불가능함), second-preimage resistance (동일한 digest를 갖는 다른 입력을 찾는 것이 불가능함), collision resistance (두 개의 입력이 충돌하는 것을 찾기 어려움)를 제공하는 것을 목표로 합니다. 계산이 효율적이도록 설계되었으며, 출력 digest는 avalanche effect를 보여야 합니다: 입력의 작은 변화가 상당히 다른 digest를 생성합니다. 데이터 무결성 검사, digital signatures, 그리고 적절한 경우 password hashing에 사용됩니다. 참고: nonce는 hash function 자체의 속성이 아닙니다. 프로토콜에서 salting하거나 hashing context를 변경하는 데 사용될 수 있지만, 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](/ko/terms/bit) of a file changes, the [hash](/ko/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.