Abstract
A hash chain H for a one-way hash function h(·) is a sequence of hash values < v0, v1, . . . , vn >, where v0 is a public value, vn a secret value, and vi =h(vi+1). A hash chain traversal algorithm T computes and outputs the hash chain H, returning vi in time period (called round) i for 1 ≤ i ≤ n. While previous hash chain traversal algorithms were designed to output all hash values vi (1 ≤ i ≤ n) in order, there are applications where every m-th hash value (i.e., vm, v2m, v3m, . . .) is required to be output. We introduce a hash chain traversal algorithm that selectively outputs every m-th hash value efficiently. The main technique is a transformation from a hash chain traversal algorithm outputting every hash value into that outputting every m-th hash value. Compared with the direct use of previous hash chain traversal algorithms, our proposed method requires less memory storages and computational costs.