I am building an implementation of the [Merkle-Hellman Knapsack Cryptosystem] for my study.(https://en.wikipedia.org/wiki/Merkle%E2%80%93Hellman_knapsack_cryptosystem)
One of the things I would like to do, is to create a new private key. A private key in the Knapsack Cryptosystem consists mostly* of a so-called superincreasing knapsack. This is a sequence of numbers K where
K[n] > (K + K + ... + K[n-1].
I am wondering if there are smart methods to construct a new sequence for which this holds true. It is easy to create a superincreasing knapsack (such as
1, 2, 4, 8, 16, ...), but I've found it relatively hard until now to do this properly for a sequence that is not predictable.
Are there any algorithms (that probably incorporate a value from a random number generator in there) that can do this?
*there are also two more numbers to compute for the private key, but that is outside of the scope of this question.