Bachelor's Thesis

Hardware implementation of a stream cipher out of the ChaCha family

Final Thesis 2.07 MB Appendix 1.96 MB

Author of thesis: Matyáš Peštál

Acad. year: 2025/2026

Supervisor: Ing. Filip Wagner

Reviewer: Ing. Patrik Dobiáš

Abstract:

This bachelor thesis focuses on the design and hardware implementation of the ChaCha stream cipher on an FPGA platform using VHDL. The introductory section analyzes the theoretical foundations of the ChaCha algorithm, its security parameters, and a comparison with other modern stream ciphers. The core of the work consists of the actual implementation of a keystream generation component, which utilizes an iterative architecture with a single Quarter-round transformation unit to achieve efficient logic resource utilization. The designed hardware was synthesized on an Artix-7 chip, and its functionality was verified against reference vectors from the RFC 8439 standard.

Keywords:

ChaCha; stream cipher; ARX; FPGA; VHDL; cryptography; Hardware implementation; keystream; Artix-7; RFC 8439

Date of defence

16.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaCznamka

Grading

C

Process of defence

Student prezentoval výsledky své práce a komise byla seznámena s posudky. Student obhájil bakalářskou práci s výhradami a odpověděl na otázky členů komise a oponenta.

Language of thesis

Czech

Faculty

Department

Study programme

Information Security (BPC-IBE)

Composition of Committee

doc. Ing. Karel Burda, CSc. (předseda)
JUDr. Ing. František Kasl, Ph.D. (místopředseda)
RNDr. Ing. Pavel Šeda, Ph.D. (člen)
Ing. Ľuboš Nagy, Ph.D. (člen)
Ing. Vlastimil Člupek, Ph.D. (člen)
Ing. Jan Pospíšil, Ph.D. (člen)
Ing. Martin Plšek, Ph.D. (člen)

Supervisor’s report
Ing. Filip Wagner

Bakalářská práce popisuje proudovou šifru ChaCha, prostředí FPGA a jazyk VHDL s jehož pomocí je v daném prostředí navržena komponenta pro generování keystreamu zmíněné šifry. Řešení je testováno zkušebními parametry z RFC 8439. Student práci průběžně konzultoval a reagoval na podněty vedoucího.

Po formální stránce v práci chybí seznam zkratek, ale jinak obsahuje příslušné náležitosti. Z hlediska sazby se jeví práce čistá a lze jí jen vytknout zřetězení nadpisů 6 a 6.1 a 7 a 7.1 bez vnořeného textu. Nadpisy typu „Původ a vývoj..“, či „Vlastnosti a výhódy..“ nepůsobí odborně. V rámci struktury práce je matoucí dvojité popisování jazyka VHDL v kapitolách „3.2 Popisný jazyk VHDL“ a „6.1 Jazyk VHDL“. Dle obsahu ovšem spíše 6.1 by neměla být samostatnou kapitolou.

Práce se správně uvedenými odkazy na odborné zdroje popisuje algoritmus ChaCha a představuje i jeho různé implementace pro porovnání. Zvláštností textu jsou sekce „Shrnutí“ na konci některých kapitol. Celkem je užito pouze 23 zdrojů, ale jedná se často o obsáhlé technické dokumentace. Technická zpráva systematicky popisuje jednotlivé části implementovaného řešení. Výsledek je v rámci simulace verifikován a analyzován z hlediska výkonu, využití zdrojů (LUT a FF) a spotřeby energie.

Celkově práce splnila své cíle, přičemž porovnání konečných výsledků s jinými implementacemi, které bylo dodatečným cílem, je zde jen ve velmi omezené míře. Řešení dosáhlo v praxi konkurenčně schopných výsledků. Práci navrhuji k obhajobě s doporučeným hodnocením B (80 bodů). Points proposed by supervisor: 80

Grade proposed by supervisor: B

Reviewer’s report
Ing. Patrik Dobiáš

Cílem práce byla hardwarová implementace generování keystreamu pro šifry typu CHACHA. Celkově je práce poměrně krátká a dosahuje pouze minimálního doporučeného rozsahu, přičemž některé části působí jako výplň. Několik sekcí se obsahově opakuje: například odstavce v sekci 8.4 zmiňují totéž dvakrát, popis jazyka VHDL je uveden jak v sekci 3.2, tak v sekci 6.1, a sekce 6.2 věnovaná vzdálenému připojení k vývojovému prostředí s tématem práce nijak nesouvisí. Kapitolu 6 bych proto doporučil zcela vypustit. Co se týče vlastní implementace, je velice jednoduchá a nijak se nesnaží o využití paralelizace v rámci hardwaru, což je v práci zmiňováno jako hlavní výhoda těchto implementací. Také se nijak nepokouší adresovat kritické cesty v rámci "quarter-round" funkce, kterou celou implementoval pomocí kombinační logiky, což má za následek nízkou pracovní frekvenci. Výsledná propustnost je tak spíše srovnatelná se softwarovými implementacemi než s hardwarovými. Ověření správné funkčnosti pro jeden příklad také nepovažuji za dostatečné. Nakonec nijak neporovnává dosažené výsledky s existujícími implementacemi, což by bylo velice vhodné a bylo to uvedeno jako dodatečný cíl. Po formální stránce je práce na průměrné úrovni. Obsahuje minimální množství překlepů, nicméně nepoužívá nezalomitelné mezery, takže předložky zůstávají na konci řádků. Pro pseudokódy v sekcích 2.3 a 5.5 by bylo vhodné použít formátované výpisy a zkratky jsou definovány v poznámkách pod čarou namísto v samostatném seznamu zkratek. Práce s literaturou je na dobré úrovni. I přes zmíněné nedostatky jsou cíle práce splněny a proto navrhuji práci k obhajobě s hodnocením C (71 bodů). Topics for thesis defence:
  1. Na jaký největší problém jste při vývoji narazil?
  2. Co vše by bylo potřeba doimplementovat pro použití autentizovaného šifrování ChaCha20-Poly1305, které v práci zmiňujete?
Points proposed by reviewer: 71

Grade proposed by reviewer: C

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