Exercises: Pseudo-Random Generator

Write a code to generate 30 pseudo-random integers in the range [1...10], starting from certain entropy, taken as input, using HMAC key derivation.

From the entropy generate a seed (256-bit binary sequence) using SHA-256:

seed = SHA256(entropy)

Generate the n-th random number by the formula:

1 + HMAC-SHA256(n, seed) % 10

Print the numbers at the output, separated by space.

Sample input and corresponding output:

Input

Output

hello

8 4 10 5 5 3 5 7 10 6 4 9 2 3 2 8 3 3 10 6 8 10 9 10 1 3 6 4 4 10

random text

10 5 5 9 7 4 2 9 2 1 10 4 8 9 8 1 8 6 5 7 5 4 3 4 6 6 9 8 1 1

fun

6 5 9 2 2 5 1 6 10 10 10 1 8 10 6 9 2 1 5 10 1 4 8 5 6 3 8 4 2 1