Assuming you know the checksum of a seed. How much does the brute-force difficulty decrease? By 27^3, or more?
1 Answer
The checksum of an IOTA address or seed is formed by hashing that value and then using 9 trytes (or 3 in the case of the wallet seed) of the hashed value. Meanwhile, generating an address from a seed requires several hundreds of hashes.
Insofar as you are trying to discover a particular seed via brute force, knowing the checksum will allow you to discard candidate seeds more quickly because you won't need to generate addresses from them if the checksum doesn't match. In general, this will indeed occur 27^3 or about 20,000 times for each valid checksum. Taking a single hashing as an elemental operation, the computational speedup from this will be approximately the number of hashes required to generate an address divided by the number of hashes required to generate a checksum.
However, in practice, so long as preimage resistance of the hash function holds, knowing a checksum will not really help you at all. There are still 27^81/27^3 = 27^78 seeds with the same checksum as yours.
-
1Validating whether a seed matches a certain address requires to do a few hundred hashes (due to Winternitz scheme). Validating whether a seed matches a checksum requires to do a single hash. Therefore, if you know the checksum, the number of hashes decreases somewhat, but slightly less than the three trytes that are hashed. Unless I am misunderstanding his question too. :D– mihi ♦Dec 4, 2017 at 23:10
-
@mihi Thanks, that helped me understand the question a bit better, I have edited my answer accordingly.– LaurenceDec 5, 2017 at 0:33
-