From 2559bf4bf7ccd2af0646c7cfdc1475cd5985f6e40eb014c487a23e2f188a0a3a Mon Sep 17 00:00:00 2001 From: Nadim Kobeissi Date: Fri, 27 Jun 2025 14:02:40 +0200 Subject: [PATCH] Minor fixes --- slides/1-7.tex | 6 +++--- slides/2-2.tex | 2 +- website/index.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/slides/1-7.tex b/slides/1-7.tex index e99b00b..93ae08e 100644 --- a/slides/1-7.tex +++ b/slides/1-7.tex @@ -559,7 +559,7 @@ \end{column} \begin{column}{0.33\textwidth} \textbf{Sudoku Puzzles}\\ - \small Can you fill this 9×9 grid following the rules? + \small Can you fill this 9 \times 9 grid following the rules? \end{column} \end{columns} \vspace{0.5cm} @@ -629,8 +629,8 @@ \begin{itemize}[<+->] \item \textbf{Games proven NP-hard\footnote{\url{https://appliedcryptography.page/papers/\#nintendo-hard}}}: \begin{itemize} - \item Super Mario Bros. 1–3, The Lost Levels, Super Mario World - \item Donkey Kong Country 1–3 + \item Super Mario Bros. 1-3, The Lost Levels, Super Mario World + \item Donkey Kong Country 1-3 \item All classic Legend of Zelda games \item All classic Metroid games \item All classic Pokémon role-playing games diff --git a/slides/2-2.tex b/slides/2-2.tex index 0756b82..c31aebb 100644 --- a/slides/2-2.tex +++ b/slides/2-2.tex @@ -787,7 +787,7 @@ \draw[red, ultra thick] (2*1.2-0.1,1.9) rectangle (3*1.2+1.1,3.1); \node[red, below] at (5,1.75) {Repeated ``ll'' pattern}; \draw[->, thick, blue] (2.5,1) -- (2.5,1.8); - \node[blue, below] at (2.5,1) {ABSAB: $(l,l,*,l,l)$ occurs 1024× more!}; + \node[blue, below] at (2.5,1) {ABSAB: $(l,l,*,l,l)$ occurs 1024\times more!}; \end{tikzpicture} \end{center} \item \textbf{Step 3:} After $2^{26}$ samples, frequency analysis reveals: diff --git a/website/index.html b/website/index.html index 20bc606..ed3e973 100755 --- a/website/index.html +++ b/website/index.html @@ -380,7 +380,7 @@ Slides Topic 1.6

Collision-Resistant Hash Functions

-

This topic explores collision-resistant hash functions, cryptographic primitives that convert arbitrary-length inputs to fixed-length outputs while making it computationally infeasible to find colliding inputs. We'll examine three essential properties—collision resistance, preimage resistance, and second preimage resistance—while exploring practical applications in password storage, data integrity verification, and proof-of-work systems. The topic introduces the counterintuitive birthday paradox, demonstrating why collisions can be found after approximately square-root-many attempts rather than brute force. We'll survey hash function evolution from broken algorithms like MD5 and SHA-1 to modern standards like SHA-2, SHA-3, and BLAKE3, while analyzing vulnerabilities including precomputation attacks using rainbow tables and length extension weaknesses in Merkle–Damgård constructions. The topic covers critical defensive techniques including properly salting hashes and implementing specialized password hashing algorithms like PBKDF2 and memory-hard functions such as Scrypt, which resist hardware acceleration attacks by requiring significant memory resources, providing comprehensive guidance for secure hash function implementation in real-world systems.

+

This topic explores collision-resistant hash functions, cryptographic primitives that convert arbitrary-length inputs to fixed-length outputs while making it computationally infeasible to find colliding inputs. We'll examine three essential properties—collision resistance, preimage resistance, and second preimage resistance—while exploring practical applications in password storage, data integrity verification, and proof-of-work systems. The topic introduces the counterintuitive birthday paradox, demonstrating why collisions can be found after approximately square-root-many attempts rather than brute force. We'll survey hash function evolution from broken algorithms like MD5 and SHA-1 to modern standards like SHA-2, SHA-3, and BLAKE3, while analyzing vulnerabilities including precomputation attacks using rainbow tables and length extension weaknesses in Merkle-Damgård constructions. The topic covers critical defensive techniques including properly salting hashes and implementing specialized password hashing algorithms like PBKDF2 and memory-hard functions such as Scrypt, which resist hardware acceleration attacks by requiring significant memory resources, providing comprehensive guidance for secure hash function implementation in real-world systems.

Required Readings