[Imported from Trac: page TaggedHash, version 1]
parent
65ca876245
commit
e1a1e5b8ac
8
TaggedHash.md
Normal file
8
TaggedHash.md
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
Each place a hash function is used within Tahoe, the data to be hashed is first prepended with a distinct "tag", one per purpose.
|
||||||
|
|
||||||
|
These tags are encoded as a [NetString](NetString), to insure that they cannot be confused with the data being hashed. For example, the [VerifierId](VerifierId) is computed as the SHA-256 hash of the following string:
|
||||||
|
```
|
||||||
|
"23:allmydata_verifierid_v1," + DATA
|
||||||
|
```
|
||||||
|
|
||||||
|
This technique is especially important to distinguish the leaf nodes from the internal nodes in a [MerkleHashTree](MerkleHashTree), because otherwise an attacker can trivially construct leaf data that results in the same root hash as a previously constructed tree.
|
Loading…
Reference in a new issue