  Cryptographic algorithms and protocols often need unique random numbers as
parameters (e.g. nonces). Failure to satisfy this requirement lead to
vulnerable implementation and can result in security breach. We show how linear
types and static type checking can be used to enforce the correct generation of
a new unique random number for each function invocation.
