6 research outputs found
Implementation and study of a true random number generator
Securing information has been a concern throughout history. Especially
nowadays since many user applications such as smart cards
or Internet connections deal with sensible data. To protect this
information dfferent cryptography protocols are used. These are
algorithms that encapsulate the data by ciphering it. However, this
is done by programming an application to run a digital mathematical
function. This means that it is also possible to program malign
applications to decode the cipher. In order to avoid this it is necessary
to add unpredictability or randomness to the encoding process
which can be done by employing a Random Number Generator.
A RNG can be implemented in both software and hardware; however,
a truly unpredictable sequence is not achieved through a digital
process governed by mathematical formulae. This results in
most RNGs producing a form of pseudo-randomness. A True Random
Number Generator must be implemented on a technology that
allows it to harvest entropy from an unpredictable or even chaotic
physical process. This is why TRNGs are designed and implemented
for hardware. In fact, it is possible to gather entropy through integrated
circuits like ASICs or FPGAs. The objective of this project
is to design and implement a TRNG on FPGA technology because
its pre-defined logic blocks that only require a small amount of resources
make it an appealing solution.
First, an analysis of typical RNG designs is presented to understand
the between a pseudo-RNG and a TRNG. Once this is stablished,
the specific ways of designing TRNGs for integrated circuits
are delved into. Moreover, the need for evaluation of the quality of
randomness is also stated. This is ensured by a battery of tests that
study the statistical properties of the output of a RNG.
Secondly, the TRNG design proposals by B ohl on which this
project is based on are introduced and analyzed before creating the
design and implementation. Afterwards, the four experiments performed are explained. It was decided to first test the behavior of
the TRNG at different frequencies to decide which provided randomness
with the best quality. Afterwards, the TRNG was placed
in different areas of the FPGA at the optimal frequency to test the
variability of the device. A third experiment consisted of comparing
these results in more devices to further study the variability. The
final experiment consisted on forcing a reset of the circuit to ensure
that the TRNG was resilient against this type of attacks.
Last but not least, the results are summarized and several future
developments are presented. After this the legal aspects and
management of the project are explained.La protección de información ha sido una constante preocupación
a lo largo de la historia. Especialmente hoy en día debido a las
muchas aplicaciones que manejan datos confidenciales como tarjetas
inteligentes o conexiones a Internet. Para proteger esta información
diferentes protocolos criptográficos son usados. Estos son algoritmos
que cifran los datos para encapsularlos. Sin embargo, esto se hace
programando una aplicación que corre una formula matemática digital.
Esto significa que también es posible programar aplicaciones
maliciosas para decodificar el cifrado. Para poder evitar esto es
necesario añadir aleatoriedad o un elemento impredecible al proceso
de codificación. Esto puede hacerse empleando un Generador de
Números Aleatorios cuyas siglas en inglés son RNG.
Es posible implementar un RNG tanto en software como en hardware;
sin embargo, una secuencia realmente impredecible no se puede
generar a través de un proceso digital basado en la computación de
fórmulas matemáticas. Esto es lo que hace que la mayoría de RNGs
produzcan una especie de pseudo-aleatoriedad. Un Generador de
Números Realmente Aleatorios (True Random Number Generator
o TRNG) debe ser implementado en una tecnología que le permita
extraer entropía de un proceso físico impredecible o caótico. Es por
esto que los TRNG se implementan en hardware. De hecho, es posible
obtener entropía a través de circuitos integrados como ASICs
o FPGAs. El objetivo de este proyecto es diseñar e implementar
un TRNG en tecnología FPGA puesto que sus bloques lógicos prede
finidos que solo necesitan unos recursos reducidos la convierten
en una solución atractiva.
Se empieza por presentar un análisis de los diseños de RNG
típicos para comprender la diferencia entre generadores pseudo aleatorios
y TRNGs. Tras esto, se especifica la forma en la que los TRNGs
se diseñan para circuitos integrados. Además, se expone la necesidad
de evaluar la calidad de la aleatoriedad que se genera. Esta se comprueba
a través de una batería de tests que estudian las propiedades estadísticas del output del TRNG.
A continuación, las propuestas de diseño de TRNGs de Böhl en
las que este proyecto se basa son introducidas y analizadas seguidas
del diseño e implementación propios. Tras lo cual se explican los
cuatro experimentos realizados. Primero se decidió comprobar el
comportamiento del TRNG a diferentes frecuencias con el fin de determinar
a cuál de ellas se producía la aleatoriedad de mayor calidad.
Segundo, el TRNG fue posicionado en diferentes áreas de la FPGA
a la frecuencia óptima para evaluar la variabilidad de la placa. El
tercer experimento explora aún más la variabilidad al realizar el experimento
anterior en otras placas. El último experimento consistió
en forzar un reset del circuito para comprobar la resistencia TRNG
ante ataque de este tipo.
Finalmente, los resultados obtenidos se presentan resumidos junto
con varias propuestas de mejoras futuras. Tras ello se muestran los
aspectos legales del proyecto y su gestión.Ingeniería en Tecnologías de Telecomunicació
Design And Synthesis Of Clockless Pipelines Based On Self-resetting Stage Logic
For decades, digital design has been primarily dominated by clocked circuits. With larger scales of integration made possible by improved semiconductor manufacturing techniques, relying on a clock signal to orchestrate logic operations across an entire chip became increasingly difficult. Motivated by this problem, designers are currently considering circuits which can operate without a clock. However, the wide acceptance of these circuits by the digital design community requires two ingredients: (i) a unified design methodology supported by widely available CAD tools, and (ii) a granularity of design techniques suitable for synthesizing large designs. Currently, there is no unified established design methodology to support the design and verification of these circuits. Moreover, the majority of clockless design techniques is conceived at circuit level, and is subsequently so fine-grain, that their application to large designs can have unacceptable area costs. Given these considerations, this dissertation presents a new clockless technique, called self-resetting stage logic (SRSL), in which the computation of a block is reset periodically from within the block itself. SRSL is used as a building block for three coarse-grain pipelining techniques: (i) Stage-controlled self-resetting stage logic (S-SRSL) Pipelines: In these pipelines, the control of the communication between stages is performed locally between each pair of stages. This communication is performed in a uni-directional manner in order to simplify its implementation. (ii) Pipeline-controlled self-resetting stage logic (P-SRSL) Pipelines: In these pipelines, the communication between each pair of stages in the pipeline is driven by the oscillation of the last pipeline stage. Their communication scheme is identical to the one used in S-SRSL pipelines. (iii) Delay-tolerant self-resetting stage logic (D-SRSL) Pipelines: While communication in these pipelines is local in nature in a manner similar to the one used in S-SRL pipelines, this communication is nevertheless extended in both directions. The result of this bi-directional approach is an increase in the capability of the pipeline to handle stages with random delay. Based on these pipelining techniques, a new design methodology is proposed to synthesize clockless designs. The synthesis problem consists of synthesizing an SRSL pipeline from a gate netlist with a minimum area overhead given a specified data rate. A two-phase heuristic algorithm is proposed to solve this problem. The goal of the algorithm is to pipeline a given datapath by minimizing the area occupied by inter-stage latches without violating any timing constraints. Experiments with this synthesis algorithm show that while P-SRSL pipelines can reach high throughputs in shallow pipelines, D-SRSL pipelines can achieve comparable throughputs in deeper pipelines
Multi-resource approach to asynchronous SoC : design and tool support
As silicon cost reduces, the demands for higher performance and lower power consumption are ever increasing. The ability to dynamically control the number of resources employed can help balance and optimise a system in terms of its throughput, power consumption, and resilience to errors. The management of multiple resources requires building more advanced resource allocation logic than traditional 1-of-N arbiters posing the need for the efficient design flow supporting both the design and verification of such systems. Networks-on-Chip provide a good application example of distributed arbitration, in which the processor cores needing to transmit data are the clients; and the point-to-point links are the resources managed by routers. Building fast and smart arbiters can greatly benefit such systems in providing efficient and reliable communication service. In this thesis, a multi-resource arbiter was developed based on the Signal Transition Graph (STG) development flow. The arbiter distributes multiple active interchangeable resources that initiate requests when they are ready to be used. It supports concurrent resource utilization, which benefits creating asynchronous Multiple-Input-Multiple- Output (MIMO) queues. In order to deal with designs of higher complexity, an arbiter-oriented design flow is proposed. The flow is based on digital circuit components that are represented internally as STGs. This allows designing circuits without directly working with STGs but allowing their use for synthesis and formal verification. The interfaces for modelling, simulation, and visual model representation of the flow were implemented based on the existing modelling framework. As a result, the verification phase of the flow has helped to find hazards in existing Priority arbiter implementations. Finally, based on the logic-gate flow, the structure of a low-latency general purpose arbiter was developed. This design supports a wide variety of arbitration problems including the multi-resource management, which can benefit building NoCs employing complex and adaptive routing techniques.EThOS - Electronic Theses Online ServiceEPSRC grant GR/E044662/1 (STEP)GBUnited Kingdo