Please enable JavaScript.
Coggle requires JavaScript to display documents.
Hashing (Hash Pointer (Merkle tree (Binary tree with hash pointers, verify…
Hashing
-
Security properties
Collision-free
if x != y, Nobody can find (too hard to find) hash(x) == hash(y)
Hiding
cannot get msg from hash(key, msg)
-
puzzle-friendly
for every possible output y, if key is chose from high min-entropy distribution,
cannot find x such that hash(key, x) == y
Binding
cannot find msg1 != msg2 such that hash(key, msg1) == hash(key, msg2)
-
Digital Signature
-
public key
-
-
public key == identity
verify(pk, msg, sig) == true equals pk says "[msg]"
to speak for pk, you have to know matching secret key
sign a hash pointer protects everything, BTC use ECDSA
-
Hash function
-
-
SHA-256
-
fold on these blocks like msg_blocks.foldLeft(iv)(acc, blk => c(acc, blk))
use a 256 bits IV string with a mesage block to compute a new 256 bits block, function c
if c is collision-free, then SHA-256 is collision-free