<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comments on: My encryption code is now live on GitHub	</title>
	<atom:link href="https://learncgames.com/my-encryption-code-is-now-live-on-github/feed/" rel="self" type="application/rss+xml" />
	<link>https://learncgames.com/my-encryption-code-is-now-live-on-github/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=my-encryption-code-is-now-live-on-github</link>
	<description>A blog about C, programming games and my ebook(s).</description>
	<lastBuildDate>Tue, 09 Jun 2020 19:48:06 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>
		By: Christopher McLaughlin		</title>
		<link>https://learncgames.com/my-encryption-code-is-now-live-on-github/#comment-104</link>

		<dc:creator><![CDATA[Christopher McLaughlin]]></dc:creator>
		<pubDate>Tue, 09 Jun 2020 19:48:06 +0000</pubDate>
		<guid isPermaLink="false">https://learncgames.com/?p=675#comment-104</guid>

					<description><![CDATA[This is an interesting algorithm but definitely not secure (but still interesting!). I&#039;m only an amateur myself but there are probably many ways that one could approach cracking this without brute force. An attacker would only need to guess at likely plaintext (whether it&#039;s actual text or even binary data) contained in the streams. You would rearrange the bits to form the hypothesized plaintext and then use that permutation on the other streams encrypted with the same key to see if additional plaintext patterns emerge. Cracking the key actually becomes exponentially easier as you make progress because you can infer further plaintext from what&#039;s already been revealed, almost like solving a jigsaw puzzle that doesn&#039;t have a reference picture. 

Guessing at initial plaintext might be difficult for a novice but an accomplished cryptographer will have an entire corpus of patterns for various file formats to test, not unlike a definition database used by antivirus software. Also, it wasn&#039;t entirely clear how you were handling the padding at the end but if it&#039;s just a string of 0&#039;s, that&#039;s going to be an attack surface which drastically reduces the key space.

Feel free to send me an email if you ever want to chat about cryptography!]]></description>
			<content:encoded><![CDATA[<p>This is an interesting algorithm but definitely not secure (but still interesting!). I&#8217;m only an amateur myself but there are probably many ways that one could approach cracking this without brute force. An attacker would only need to guess at likely plaintext (whether it&#8217;s actual text or even binary data) contained in the streams. You would rearrange the bits to form the hypothesized plaintext and then use that permutation on the other streams encrypted with the same key to see if additional plaintext patterns emerge. Cracking the key actually becomes exponentially easier as you make progress because you can infer further plaintext from what&#8217;s already been revealed, almost like solving a jigsaw puzzle that doesn&#8217;t have a reference picture. </p>
<p>Guessing at initial plaintext might be difficult for a novice but an accomplished cryptographer will have an entire corpus of patterns for various file formats to test, not unlike a definition database used by antivirus software. Also, it wasn&#8217;t entirely clear how you were handling the padding at the end but if it&#8217;s just a string of 0&#8217;s, that&#8217;s going to be an attack surface which drastically reduces the key space.</p>
<p>Feel free to send me an email if you ever want to chat about cryptography!</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
