Energy-Efficient Hash Chain Traversal
A hash chain 'H for a one-way hash function h(.) is a sequence of hash values  , where v(n) is a secret value, v(i) is generated by v(i) = h(v(i+1)) for i = n - 1, ... n - 2, ... , 0 and v(0) is a public value. A hash chain traversal algorithm T computes and outputs the hash chain 74, returning v(i) in time period (called round) i for 1 <= i <= n. At the outset. T stores carefully chosen kappa hash values (including v) of 'H in kappa memory storages (called pebbles). In round i, T performs two kinds of computations; online computation to output v(i) with hash values stored in pebbles and then preparatory computation to rearrange pebbles for future rounds. Usually, the online computation consists of either one or zero hash function evaluation, while the preparatory computation occupies most of the computational cost. The design goal of previous hash chain traversal algorithms was to minimize the worst case computational cost per round with minimal pebbles. On the contrary, we study a different optimization problem of minimizing the average case computational cost. Our proposed traversal algorithm reduces the average case computational cost by 20-30% and the online computational cost by 23-33% for parameters of practical interest. For example, if the proposed algorithm is implemented on battery-powered devices, the battery lifetime can be increased by 20-30%.
hash chain cryptography efficient traversal