<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>cryptopals, branch HEAD</title>
<subtitle>Cryptopals Challenges
</subtitle>
<entry>
<id>6f6e9b9d3b4bfee48d3874df10d7cc854d05bfc5</id>
<published>2025-10-28T15:23:35Z</published>
<updated>2025-10-28T15:23:35Z</updated>
<title>challenge 27: recover the key from cbc with iv=key</title>
<link rel="alternate" type="text/html" href="commit/6f6e9b9d3b4bfee48d3874df10d7cc854d05bfc5.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit 6f6e9b9d3b4bfee48d3874df10d7cc854d05bfc5
parent 5ba2137db9ed643b499a3ce25b56ca55398a1467
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Tue, 28 Oct 2025 09:23:35 -0600

challenge 27: recover the key from cbc with iv=key

</content>
</entry>
<entry>
<id>5ba2137db9ed643b499a3ce25b56ca55398a1467</id>
<published>2025-10-27T15:57:55Z</published>
<updated>2025-10-27T15:57:55Z</updated>
<title>challenge 26: ctr bitflipping</title>
<link rel="alternate" type="text/html" href="commit/5ba2137db9ed643b499a3ce25b56ca55398a1467.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit 5ba2137db9ed643b499a3ce25b56ca55398a1467
parent 3601db73f0e355cb6e74720aadeedbd19d1acfee
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Mon, 27 Oct 2025 09:57:55 -0600

challenge 26: ctr bitflipping

</content>
</entry>
<entry>
<id>3601db73f0e355cb6e74720aadeedbd19d1acfee</id>
<published>2025-10-26T03:42:23Z</published>
<updated>2025-10-26T03:42:23Z</updated>
<title>challenge 25: break random access read/write aes ctr</title>
<link rel="alternate" type="text/html" href="commit/3601db73f0e355cb6e74720aadeedbd19d1acfee.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit 3601db73f0e355cb6e74720aadeedbd19d1acfee
parent b7c3a969c06037f3f56be3ff125723e89d8a5ece
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Sat, 25 Oct 2025 21:42:23 -0600

challenge 25: break random access read/write aes ctr

</content>
</entry>
<entry>
<id>b7c3a969c06037f3f56be3ff125723e89d8a5ece</id>
<published>2025-10-26T03:08:56Z</published>
<updated>2025-10-26T03:08:56Z</updated>
<title>challenge 24: create the mt19937 stream cipher and break it</title>
<link rel="alternate" type="text/html" href="commit/b7c3a969c06037f3f56be3ff125723e89d8a5ece.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit b7c3a969c06037f3f56be3ff125723e89d8a5ece
parent 6faa2cffc1514f62f81440c66fe177b47304e17e
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Sat, 25 Oct 2025 21:08:56 -0600

challenge 24: create the mt19937 stream cipher and break it

</content>
</entry>
<entry>
<id>6faa2cffc1514f62f81440c66fe177b47304e17e</id>
<published>2025-10-26T03:07:55Z</published>
<updated>2025-10-26T03:07:55Z</updated>
<title>challenge 23: clone an mt19937 rng from its output</title>
<link rel="alternate" type="text/html" href="commit/6faa2cffc1514f62f81440c66fe177b47304e17e.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit 6faa2cffc1514f62f81440c66fe177b47304e17e
parent d51c2413fea0bc38bcf09fef04101aa58a2b6d7a
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Sat, 25 Oct 2025 21:07:55 -0600

challenge 23: clone an mt19937 rng from its output

</content>
</entry>
<entry>
<id>d51c2413fea0bc38bcf09fef04101aa58a2b6d7a</id>
<published>2025-10-24T04:39:05Z</published>
<updated>2025-10-24T04:39:05Z</updated>
<title>challenge 22: crack an mt19937 seed</title>
<link rel="alternate" type="text/html" href="commit/d51c2413fea0bc38bcf09fef04101aa58a2b6d7a.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit d51c2413fea0bc38bcf09fef04101aa58a2b6d7a
parent 245c17d8ba7951a8feab3a43604a39169d2e1a69
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Thu, 23 Oct 2025 22:39:05 -0600

challenge 22: crack an mt19937 seed

</content>
</entry>
<entry>
<id>245c17d8ba7951a8feab3a43604a39169d2e1a69</id>
<published>2025-10-24T02:49:21Z</published>
<updated>2025-10-24T02:49:21Z</updated>
<title>chore: Add symlink for challenge 19 -&gt; 20</title>
<link rel="alternate" type="text/html" href="commit/245c17d8ba7951a8feab3a43604a39169d2e1a69.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit 245c17d8ba7951a8feab3a43604a39169d2e1a69
parent 4dda41b3c51551872d4c650f6fcf55859c1abe9c
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Thu, 23 Oct 2025 20:49:21 -0600

chore: Add symlink for challenge 19 -&gt; 20

</content>
</entry>
<entry>
<id>4dda41b3c51551872d4c650f6fcf55859c1abe9c</id>
<published>2025-10-23T17:04:38Z</published>
<updated>2025-10-23T17:04:38Z</updated>
<title>challenge 21: implement the mt19937 mersenne twister rng</title>
<link rel="alternate" type="text/html" href="commit/4dda41b3c51551872d4c650f6fcf55859c1abe9c.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit 4dda41b3c51551872d4c650f6fcf55859c1abe9c
parent bf02706fd5fb6adea3f1c66d7fc798888d9d8cbb
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Thu, 23 Oct 2025 11:04:38 -0600

challenge 21: implement the mt19937 mersenne twister rng

</content>
</entry>
<entry>
<id>bf02706fd5fb6adea3f1c66d7fc798888d9d8cbb</id>
<published>2025-10-23T15:07:50Z</published>
<updated>2025-10-23T15:07:50Z</updated>
<title>challenge 20: break fixed-nonce ctr statistically</title>
<link rel="alternate" type="text/html" href="commit/bf02706fd5fb6adea3f1c66d7fc798888d9d8cbb.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit bf02706fd5fb6adea3f1c66d7fc798888d9d8cbb
parent 93665072a4f6f4fd829920648080236e124e4328
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Thu, 23 Oct 2025 09:07:50 -0600

challenge 20: break fixed-nonce ctr statistically

</content>
</entry>
<entry>
<id>93665072a4f6f4fd829920648080236e124e4328</id>
<published>2025-10-19T13:55:52Z</published>
<updated>2025-10-19T13:55:52Z</updated>
<title>chore: Adding missing header on Linux systems</title>
<link rel="alternate" type="text/html" href="commit/93665072a4f6f4fd829920648080236e124e4328.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit 93665072a4f6f4fd829920648080236e124e4328
parent ca427481a713d09da50b0b69df82bd927031c6ed
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Sun, 19 Oct 2025 07:55:52 -0600

chore: Adding missing header on Linux systems

</content>
</entry>
<entry>
<id>ca427481a713d09da50b0b69df82bd927031c6ed</id>
<published>2025-10-19T03:13:24Z</published>
<updated>2025-10-19T03:13:24Z</updated>
<title>challenge 18: implement ctr, the stream cipher mode</title>
<link rel="alternate" type="text/html" href="commit/ca427481a713d09da50b0b69df82bd927031c6ed.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit ca427481a713d09da50b0b69df82bd927031c6ed
parent eace2b19a5f0ef8349783ae9a40aaa05c0638674
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Sat, 18 Oct 2025 21:13:24 -0600

challenge 18: implement ctr, the stream cipher mode

</content>
</entry>
<entry>
<id>eace2b19a5f0ef8349783ae9a40aaa05c0638674</id>
<published>2025-10-17T14:45:13Z</published>
<updated>2025-10-17T14:45:13Z</updated>
<title>challenge 17: the cbc padding oracle</title>
<link rel="alternate" type="text/html" href="commit/eace2b19a5f0ef8349783ae9a40aaa05c0638674.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit eace2b19a5f0ef8349783ae9a40aaa05c0638674
parent bc70e11286a48ba9efbf259c1a00ad98c076412e
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Fri, 17 Oct 2025 08:45:13 -0600

challenge 17: the cbc padding oracle

</content>
</entry>
<entry>
<id>bc70e11286a48ba9efbf259c1a00ad98c076412e</id>
<published>2025-10-15T15:00:43Z</published>
<updated>2025-10-15T15:00:43Z</updated>
<title>challenge 16: cbc bitflipping attacks</title>
<link rel="alternate" type="text/html" href="commit/bc70e11286a48ba9efbf259c1a00ad98c076412e.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit bc70e11286a48ba9efbf259c1a00ad98c076412e
parent 1b2b4397beceb8fab31dcaaae7f5340d77e95034
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Wed, 15 Oct 2025 09:00:43 -0600

challenge 16: cbc bitflipping attacks

</content>
</entry>
<entry>
<id>1b2b4397beceb8fab31dcaaae7f5340d77e95034</id>
<published>2025-10-14T15:24:55Z</published>
<updated>2025-10-14T15:24:55Z</updated>
<title>challenge 15: pkcs#7 padding validation</title>
<link rel="alternate" type="text/html" href="commit/1b2b4397beceb8fab31dcaaae7f5340d77e95034.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit 1b2b4397beceb8fab31dcaaae7f5340d77e95034
parent 2bc60b7d2f6c303799d76aedb948bb547f491c3e
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Tue, 14 Oct 2025 09:24:55 -0600

challenge 15: pkcs#7 padding validation

</content>
</entry>
<entry>
<id>2bc60b7d2f6c303799d76aedb948bb547f491c3e</id>
<published>2025-10-14T15:12:38Z</published>
<updated>2025-10-14T15:12:38Z</updated>
<title>challenge 14: byte-at-a-time ecb decryption (hard)</title>
<link rel="alternate" type="text/html" href="commit/2bc60b7d2f6c303799d76aedb948bb547f491c3e.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit 2bc60b7d2f6c303799d76aedb948bb547f491c3e
parent 58d7943c0d6b6b425b0c1bc2b5f3a4d81087dbf8
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Tue, 14 Oct 2025 09:12:38 -0600

challenge 14: byte-at-a-time ecb decryption (hard)

</content>
</entry>
<entry>
<id>58d7943c0d6b6b425b0c1bc2b5f3a4d81087dbf8</id>
<published>2025-10-14T03:52:01Z</published>
<updated>2025-10-14T03:52:01Z</updated>
<title>challenge 13: ecb cut-and-paste</title>
<link rel="alternate" type="text/html" href="commit/58d7943c0d6b6b425b0c1bc2b5f3a4d81087dbf8.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit 58d7943c0d6b6b425b0c1bc2b5f3a4d81087dbf8
parent 4c3995a8afb34136ab3e1bc02647f3d8e3824638
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Mon, 13 Oct 2025 21:52:01 -0600

challenge 13: ecb cut-and-paste

</content>
</entry>
<entry>
<id>4c3995a8afb34136ab3e1bc02647f3d8e3824638</id>
<published>2025-10-13T18:36:38Z</published>
<updated>2025-10-13T18:36:38Z</updated>
<title>challenge 12: byte-at-a-time ecb decryption (simple)</title>
<link rel="alternate" type="text/html" href="commit/4c3995a8afb34136ab3e1bc02647f3d8e3824638.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit 4c3995a8afb34136ab3e1bc02647f3d8e3824638
parent 452884f6a66f51ad48d04b8c7a2e94a57643651b
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Mon, 13 Oct 2025 12:36:38 -0600

challenge 12: byte-at-a-time ecb decryption (simple)

</content>
</entry>
<entry>
<id>452884f6a66f51ad48d04b8c7a2e94a57643651b</id>
<published>2025-10-08T16:48:59Z</published>
<updated>2025-10-08T16:48:59Z</updated>
<title>challenge 11: an ecb/cbc detection oracle</title>
<link rel="alternate" type="text/html" href="commit/452884f6a66f51ad48d04b8c7a2e94a57643651b.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit 452884f6a66f51ad48d04b8c7a2e94a57643651b
parent 419e41293a37b19d53da3dd4fd7a37bdce5566cb
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Wed,  8 Oct 2025 10:48:59 -0600

challenge 11: an ecb/cbc detection oracle

</content>
</entry>
<entry>
<id>419e41293a37b19d53da3dd4fd7a37bdce5566cb</id>
<published>2025-10-08T15:08:51Z</published>
<updated>2025-10-08T15:08:51Z</updated>
<title>challenge 10: implement cbc mode</title>
<link rel="alternate" type="text/html" href="commit/419e41293a37b19d53da3dd4fd7a37bdce5566cb.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit 419e41293a37b19d53da3dd4fd7a37bdce5566cb
parent 8bdc32650426b580fc9972834fa2e3dd067fbe1e
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Wed,  8 Oct 2025 09:08:51 -0600

challenge 10: implement cbc mode

</content>
</entry>
<entry>
<id>8bdc32650426b580fc9972834fa2e3dd067fbe1e</id>
<published>2025-10-08T04:13:38Z</published>
<updated>2025-10-08T04:13:38Z</updated>
<title>challenge 9: implement pkcs#7 padding</title>
<link rel="alternate" type="text/html" href="commit/8bdc32650426b580fc9972834fa2e3dd067fbe1e.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit 8bdc32650426b580fc9972834fa2e3dd067fbe1e
parent 16c34670eeb091fb40430b3a87b4a0c0b1ffdb99
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Tue,  7 Oct 2025 22:13:38 -0600

challenge 9: implement pkcs#7 padding

</content>
</entry>
<entry>
<id>16c34670eeb091fb40430b3a87b4a0c0b1ffdb99</id>
<published>2025-10-07T04:26:38Z</published>
<updated>2025-10-07T04:26:38Z</updated>
<title>challenge 8: detect aes in ecb mode</title>
<link rel="alternate" type="text/html" href="commit/16c34670eeb091fb40430b3a87b4a0c0b1ffdb99.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit 16c34670eeb091fb40430b3a87b4a0c0b1ffdb99
parent d92949e14513c6bca0364492540bc9e22ba186da
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Mon,  6 Oct 2025 22:26:38 -0600

challenge 8: detect aes in ecb mode

</content>
</entry>
<entry>
<id>d92949e14513c6bca0364492540bc9e22ba186da</id>
<published>2025-10-07T04:13:28Z</published>
<updated>2025-10-07T04:13:28Z</updated>
<title>chore: Migrate ECB encryption to openssl 3.0 API</title>
<link rel="alternate" type="text/html" href="commit/d92949e14513c6bca0364492540bc9e22ba186da.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit d92949e14513c6bca0364492540bc9e22ba186da
parent c41dcb673c914e2d755cf53624926a9093477feb
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Mon,  6 Oct 2025 22:13:28 -0600

chore: Migrate ECB encryption to openssl 3.0 API

</content>
</entry>
<entry>
<id>c41dcb673c914e2d755cf53624926a9093477feb</id>
<published>2025-10-06T20:03:02Z</published>
<updated>2025-10-06T20:03:02Z</updated>
<title>challenge 7: aes in ecb mode</title>
<link rel="alternate" type="text/html" href="commit/c41dcb673c914e2d755cf53624926a9093477feb.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit c41dcb673c914e2d755cf53624926a9093477feb
parent 406aa4552a412082f67d3eb20a165c31fa4474d5
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Mon,  6 Oct 2025 14:03:02 -0600

challenge 7: aes in ecb mode

</content>
</entry>
<entry>
<id>406aa4552a412082f67d3eb20a165c31fa4474d5</id>
<published>2025-10-05T02:54:49Z</published>
<updated>2025-10-05T02:54:49Z</updated>
<title>challenge 6: break repeating key xor</title>
<link rel="alternate" type="text/html" href="commit/406aa4552a412082f67d3eb20a165c31fa4474d5.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit 406aa4552a412082f67d3eb20a165c31fa4474d5
parent 3912bee57a60f9c2cea400325f5e129dae621fab
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Sat,  4 Oct 2025 20:54:49 -0600

challenge 6: break repeating key xor

</content>
</entry>
<entry>
<id>3912bee57a60f9c2cea400325f5e129dae621fab</id>
<published>2025-10-05T02:03:33Z</published>
<updated>2025-10-05T02:03:33Z</updated>
<title>challenge 5: implement repeating key xor</title>
<link rel="alternate" type="text/html" href="commit/3912bee57a60f9c2cea400325f5e129dae621fab.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit 3912bee57a60f9c2cea400325f5e129dae621fab
parent bdd46ff96d02167e197596336bf8c7b061f4458e
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Sat,  4 Oct 2025 20:03:33 -0600

challenge 5: implement repeating key xor

</content>
</entry>
<entry>
<id>bdd46ff96d02167e197596336bf8c7b061f4458e</id>
<published>2025-10-05T01:47:36Z</published>
<updated>2025-10-05T01:47:36Z</updated>
<title>challenge 4: detect single-character xor</title>
<link rel="alternate" type="text/html" href="commit/bdd46ff96d02167e197596336bf8c7b061f4458e.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit bdd46ff96d02167e197596336bf8c7b061f4458e
parent 30d2d1e5ed349664692276dcc538d85d35e30817
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Sat,  4 Oct 2025 19:47:36 -0600

challenge 4: detect single-character xor

</content>
</entry>
<entry>
<id>30d2d1e5ed349664692276dcc538d85d35e30817</id>
<published>2025-09-29T16:19:01Z</published>
<updated>2025-09-29T16:19:01Z</updated>
<title>challenge 3: single-byte xor cipher</title>
<link rel="alternate" type="text/html" href="commit/30d2d1e5ed349664692276dcc538d85d35e30817.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit 30d2d1e5ed349664692276dcc538d85d35e30817
parent 03dd3fff2cc0dc99e3e1483b0da90134fe91d391
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Mon, 29 Sep 2025 10:19:01 -0600

challenge 3: single-byte xor cipher

</content>
</entry>
<entry>
<id>03dd3fff2cc0dc99e3e1483b0da90134fe91d391</id>
<published>2025-09-29T15:53:01Z</published>
<updated>2025-09-29T15:53:01Z</updated>
<title>challenge 2: fixed xor</title>
<link rel="alternate" type="text/html" href="commit/03dd3fff2cc0dc99e3e1483b0da90134fe91d391.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit 03dd3fff2cc0dc99e3e1483b0da90134fe91d391
parent 40037995c712bf6989e25d68354f45bf22d1173d
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Mon, 29 Sep 2025 09:53:01 -0600

challenge 2: fixed xor

</content>
</entry>
<entry>
<id>40037995c712bf6989e25d68354f45bf22d1173d</id>
<published>2025-09-29T15:24:52Z</published>
<updated>2025-09-29T15:24:52Z</updated>
<title>challenge 1: convert hex to base64</title>
<link rel="alternate" type="text/html" href="commit/40037995c712bf6989e25d68354f45bf22d1173d.html" />
<author>
<name>Jack Sangdahl</name>
<email>jack@pngu.org</email>
</author>
<content>commit 40037995c712bf6989e25d68354f45bf22d1173d
Author: Jack Sangdahl &lt;jack@pngu.org&gt;
Date:   Mon, 29 Sep 2025 09:24:52 -0600

challenge 1: convert hex to base64

</content>
</entry>
</feed>
