Abstract:
Generating random numbers is an important task in cryptography as well as computer science.
Pseudo-randomness is fundamental to cryptography and it is required for achieving any
cryptographic function like encryption, authentication and identification. The quality of a pseudorandom
number generators is determined by the randomness which is generated in sequences. In
this dissertation, pseudo-random numbers have been generated using recurrent neural network.
Initially the neural networks are trained with the sequences of random numbers. These random
numbers which will be used as training set for the neural networks model has generated Advanced
Encryption Scheme (AES) using counter mode of operations. It is known that the padding vectors
which are generated in each operation is random. They are considered to be random as the same
sequence occurs after a long interval of time. The neural network which has been considered in this
study is Recurrent Neural Network due to its property that it has an internal memory that allows the
neural network to remember the historic input and helps it in making decisions by considering
current input alongside learning from previous input. The neural networks have been trained using
different loss functions. After fitting the model according to the training set, a sequence of predicted
values has been obtained from each model. The randomness of these predicted values are checked
using NIST test. Lastly, the aim is to compare and show the number of NIST tests passed by the
predicted sequences in each model.