bakalářská práce

Hardwarová implementace proudové šifry z rodiny ChaCha

Text práce 2.07 MB Příloha 1.96 MB

Autor práce: Matyáš Peštál

Ak. rok: 2025/2026

Vedoucí: Ing. Filip Wagner

Oponent: Ing. Patrik Dobiáš

Abstrakt:

Tato bakalářská práce se věnuje návrhu a hardwarové implementaci proudové šifry ChaCha na platformě FPGA s využitím jazyka VHDL. V úvodní části je rozebrán teoretický základ algoritmu ChaCha, jeho bezpečnostní parametry a srovnání s moderními proudovými šiframi. Jádrem práce je vlastní realizace komponenty pro generování keystreamu, která využívá iterativní architekturu s jednou transformační jednotkou Quarter-round pro efektivní využití logických zdrojů. Navržený hardware byl syntetizován na čipu Artix-7 a jeho funkčnost byla verifikována proti referenčním vektorům standardu RFC 8439.

Klíčová slova:

ChaCha; proudová šifra; ARX; FPGA; VHDL; kryptografie; hardwarová implementace; keystream; Artix-7; RFC 8439

Termín obhajoby

16.06.2026

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znamkaCznamka

Klasifikace

C

Průběh obhajoby

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.

Jazyk práce

čeština

Fakulta

Ústav

Studijní program

Informační bezpečnost (BPC-IBE)

Složení komise

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)

Posudek vedoucího
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ů). Výsledný počet bodů navržený vedoucím: 80

Známka navržená vedoucím: B

Posudek oponenta
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ů). Otázky k obhajobě:
  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?
Výsledný počet bodů navržený oponentem: 71

Známka navržená oponentem: C

Odpovědnost: Mgr. et Mgr. Hana Odstrčilová