Master's Thesis

Random Number Generation on FPGA

Final Thesis 2.57 MB Appendix 20.19 kB

Author of thesis: Bc. Mykyta Syskov

Acad. year: 2025/2026

Supervisor: prof. Ing. Jan Hajný, Ph.D.

Reviewer: Ing. Patrik Dobiáš

Abstract:

Generating true random numbers (TRNG) is a non-trivial task, especially in the context of cryptography, where it is essential that the generated values cannot be predicted or retroactively derived by an attacker. This master’s thesis deals with the design and analysis of a true random number generator implemented on an FPGA platform. The work includes the conceptual design and implementation of several types of TRNGs in the VHDL language, as well as a subsequent analysis of the quality of the generated data. This analysis is carried out using selected statistical test suites, namely Dieharder, NIST STS, and TestU01. The results of these tests serve to assess the suitability of the proposed solution for generating randomness in cryptographic applications.

Keywords:

Dieharder, FPGA, Keccak, NDK, neoTRNG, NIST, RNG, TestU01, TRNG, VHDL.

Date of defence

09.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaAznamka

Grading

A

Process of defence

Student prezentoval výsledky své práce a komise byla seznámena s posudky. Student obhájil diplomovou práci a odpověděl na otázky členů komise a oponenta. Proč je předpokládaná propustnost při paralelizaci generátorů v sekci 3.2.2 přibližně 5x větší než u jednoduchého generátoru, když používáte 64 paralelních instancí? Podle čeho jste volil generické parametry NUM_CELLS, NUM_INV_START, NUM_RAW_BITS? Student dostatečně vysvětlil otázky.

Language of thesis

Czech

Faculty

Department

Study programme

Communications and Informatics (MPC-TIT)

Composition of Committee

Ing. Martina Radilová, Ph.D. (člen)
Ing. Pavel Hanák, Ph.D. (člen)
prof. Ing. Radek Martinek, Ph.D. (předseda)
prof. Ing. Petr Münster, Ph.D. (místopředseda)
Ing. Martin Koutný, Ph.D. (člen)
prof. Ing. Jan Nedoma, Ph.D. (člen)
Ing. Radim Dvořák (člen)
doc. Mgr. Karel Slavíček, Ph.D. (člen)

Supervisor’s report
prof. Ing. Jan Hajný, Ph.D.

Práce je zaměřena na oblast generování náhodných čísel na platformě FPGA. Cíle práce, tedy implementace a testování generátorů náhodných čísel, považuji za plně splněné. Práce je kvalitní jak po obsahové, tak formální stránce. Rozsah práce je velmi nadprůměrný.

Student DP zpracoval samostatně, pravidelně konzultoval a to jak s vedoucím, tak technickými konzultanty. Všechny technické požadavky byly splněny. Práce obsahuje drobné jazykové nedostatky, ty však nejsou kritické. Práce s literaturou je odpovídající typu dokumentu.

Výsledky práce jsou vysoce využitelné pro další výzkum a vývoj. Celkově práci hodnotím stupněm A / 95 bodů. Points proposed by supervisor: 95

Grade proposed by supervisor: A

Reviewer’s report
Ing. Patrik Dobiáš

Cílem diplomové práce byla funkční implementace generátoru náhodných čísel na FPGA. V teoretické části práce student vhodně a dostatečně popsal generátory náhodných čísel a také metody jejich testování. Tato část je nicméně téměř bez citací a také chybí analýza relevantní vědecké literatury, student vychází z praktických dostupných implementací. V rámci praktické části využil student existující implementaci TRNG, kterou úspěšně zakomponoval do frameworku NDK a ověřil na fyzických kartách v různých konfiguracích (jednoduchá, paralelní, s keccakem). Výsledky jsou prezentovány přehledně a zahrnují relevantní informace pro hardwarové implementace (využití zdrojů, propustnost) i úspěšnost jednotlivých konfigurací při  ověření pomocí standardních testovacích sad. Po formální stránce je práce na slušné úrovni, nicméně obsahuje dost chyb v textu, např. "4-6 vstupný" (strana 18), "sýrových" (strana 31) a často nedodržuje shodu přísudku s podmětem. Práce s literaturou by mohla být lepší, citovány jsou převážně standardy a repozitáře zdrojových kódů. Cíle práce považuji za splněné a proto s přihlédnutím k výše zmíněnému navrhuji práci k obhajobě s hodnocením A (93 bodů). Topics for thesis defence:
  1. Proč je předpokládaná propustnost při paralelizaci generátorů v sekci 3.2.2 přibližně 5x větší než u jednoduchého generátoru, když používáte 64 paralelních instancí?
  2. Podle čeho jste volil generické parametry NUM_CELLS, NUM_INV_START, NUM_RAW_BITS?
Points proposed by reviewer: 93

Grade proposed by reviewer: A

Responsibility: Mgr. et Mgr. Hana Odstrčilová