PRNG Article
PRNG Article
PRNG Article
Cryptography
Boulahiat Bouchra, Omary Fouzia
Abstract:
This paper presents a new approach of random number generator based on multi-objective
evolutionary computation. Random number generators are very useful in different area such
as computer simulations and cryptography. Evolutionary algorithms resolve a lot of
optimization problems.
Our goal is to show that our generator can generate sequences of random numbers, while also
respecting the characteristics of a generator as the period, independence and uniform
distribution of binary sequences.
Experiences+ NIST tests : (Statistical tests are applied to the keystream in compliance with the National
Institute of Standards and Technology (NIST) and Diehard test suites in order to ensure the quality of bitstream
produced by the generator.à modifier , Further validation of the TRBG stochastic properties is provided via the
Diehard test suite. The binary sequence obtained from this structure passed the FIPS set of tests,)
Dans son sens le plus général, l’aléa est le caractère de tout ce qui ne peut pas être
prédit. Cette notion d’aléa est difficile à définir et il est plus facile de dégager des loi
qui permettent de dire si un générateur est mauvais que d’énoncer des lois définissant
un bon générateur.
En effet, la production d’un événement vraiment aléatoire est insoluble par les
ordinateurs qui ne répondent en principe qu’à des procédures et lois déterministes.
Mais on peut tout de même obtenir des valeurs qui sont le fruit du vrai hasard en
faisant appel à des phénomènes physiques réputés imprévisible (exemple : variation de
la température ambiante ;…..). Cela dit, ces techniques sont généralement coûteuses
en termes de temps et de moyens.
2. RELATED WORK
-
3. EVOLUTIONARY ALGORITHMS
3.1 Definition
Evolutionary Algorithm (EAs) are inspired by biological processes of evolution, and they
form a family of metaheuristics which consist to evolve a set of solutions (populations) to
solve an optimization problem, generally a combinatorial optimization one, by using
stochastic processes.
Evolutionary algorithms constitute an original approach: their goal is not to find an exact
solution, or a good numerical approximation, but to find solutions satisfying different criteria.
It can be seen that the solutions provided are generally better than those obtained by classical
methods for the same computation time.
The three most popular types of evolutionary algorithms have been developed almost
simultaneously by different scientists: Evolutionary Programming (L. Fogel 1966),
Evolutionary Strategies ( J. Rechenberg 1973 ) and the Genetic algorithms (J. Holland 1975).
So each type has numerous variants due to different parameter settings and implementations.
3.2 Algorithm
The basic structure of any evolutionary method is represented in “Fig.1”:
Reproduction Selection
Create new individuals from Select the fittest individuals for
mating pool by crossover and reproduction
mutation
Evolutionary Algorithm:
INPUTS: certain parameter µ, λ, ….., fitness function f: Ω
PARAMETERS: population size µ, number of offspring λ, genotype G, decoding
function
g
t 0
P(t) create a population of size µ
Evaluate individuals in P(t) using g and f
While termination criteria not fulfilled do
E select parents for offspring from P(t)
P’ create offspring by recombination of individuals in E
P’’ mutate individuals in P’
evaluate individuals in P’’ using g and f
t t+1
P(t) select µ individuals from P’’ ( and P(t-1))
end while
OUTPUTS: best individuals in P(t)
4. MULTIOBJECTIVE OPTIMIZATION
4.1 Definition
Optimization is a procedure of finding and comparing possible solutions, which
are termed good or bad in terms of a determined objective. The majority of
research and application in optimization field considers a single objective, while
the most real-world optimization problems (including) are depending of different
constraints and shall satisfying several objectives.
On the other hand, evolutionary algorithms (EAs) are ideal candidates for solving
multi-objective optimization problems, since they can find multiple solutions as a
result to their population scheme.
Two major problems must be considered when an evolutionary algorithm is applied to
multi-objective optimization problem:
1. How to accomplish fitness assignment and selection, respectively, in order
to guide the search towards the optimal solutions set.
2. How to maintain a diverse population in order to prevent premature
convergence
Aggregating functions may be linear (as the previous example) or nonlinear. Aggregating
functions have been largely underestimated by MOEA researchers mainly because of the
well-known limitation of linear aggregating functions (i.e., they cannot generate non-convex
portions of the Pareto front regardless of the weight combination used). Note however that
nonlinear aggregating functions do not necessarily present such limitation, and they have been
quite successful in multi-objective combinatorial optimization [6].
Basically, there are two ways to assess the performance of MOEAs: i) theoretically
by analysis or ii) empirically by simulation. In the following, we will present
some recent results with respect to both approaches. On the one hand, we will
discuss the limit behavior of MOEAs and provide a run-time analysis of two simple
MOEAs. On the other hand, we will address the question of how to assess
the quality of the outcome of a MOEA from a theoretical perspective.
5. RANDOM GENERATORS
The random data is produced by a random bit generator, which is a device whose
output is a bit sequence which must be independent and uniformly distributed.
A random bit generator is composed of two parts:
1. A non-deterministic noise source from physical phenomena whose behavior is
at least partially random
2. A deterministic part that takes as input the outgoing bit stream from the noise
source and returns a totally unpredictable binary sequence.
Random numbers make significant use in various application areas such as computer
simulation, statistical sampling, cryptography, and other areas where producing an
unpredictable result is desirable.
For example in cryptography, they can be used in the generation of secret keys, and
therefore, they can constitute a real flaw in the system according to the quality of the
generated random bit sequences. Currently, techniques for generating random numbers
become complex because the current cryptography demand truly random bit
sequences and cannot always be satisfied with pseudo random bit sequences for its
operation. The relevant question is: how to get a truly random bit sequences?
And we can distinguish two types of random generators:
- True random number generator (TRNG)
- Pseudo random number generator (PRNG)
5.1 Pseudo Random Number Generator (PRNG)
5.1.1 Definition
Pseudo Random Generator is a deterministic algorithm used to generate numbers
that must appear random.
It takes as input a random seed of n bits, and returns a sequence of N bits as output
( with N>>n) which look at a random bits sequence. This sequence is called
Pseudo Random Sequence.
The pseudo random generators are used in the stream cipher, the generated
sequence is xored with the plaintext to obtain the ciphertext.
Many constructions from cryptographically secure pseudo-random generators are
proposed like Micali and blum or blum blum shub. However, these generators are
very slow and are used in practice only when the evidence from output sequence
security is explicitly requested.
F