<?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: Avalanche functions</title>
	<atom:link href="http://www.snell-pym.org.uk/archives/2005/07/04/avalanche-functions/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.snell-pym.org.uk/archives/2005/07/04/avalanche-functions/</link>
	<description>Sarah and Alaric Snell-Pym living in interesting times</description>
	<pubDate>Tue, 06 Jan 2009 06:17:18 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: alaric</title>
		<link>http://www.snell-pym.org.uk/archives/2005/07/04/avalanche-functions/comment-page-1/#comment-36452</link>
		<dc:creator>alaric</dc:creator>
		<pubDate>Thu, 10 May 2007 16:30:23 +0000</pubDate>
		<guid isPermaLink="false">http://snell-pym.org.uk/archives/2005/07/04/avalanche-functions/#comment-36452</guid>
		<description>&lt;p&gt;Yep - it's not a cryptosystem in itself (there's no key, for a start!). It's just a way of diffusing changes. There's certainly no advantage in multiple repetitions since it's self inverting...&lt;/p&gt;

&lt;p&gt;However, if you have a small fixed-block-size cipher with decent properties (eg, AES) and want to apply it to an arbitrarily sized block, you can apply it to each subblock in parallel, then diffuse dependencies by using the XOR avalanche function, then apply AES to each subblock once more, diffuse again, AES again. Three rounds of AES is certainly the minimum required for security, maybe more.&lt;/p&gt;

&lt;p&gt;Think of it as a mode rather than as a cipher ;-)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Yep - it's not a cryptosystem in itself (there's no key, for a start!). It's just a way of diffusing changes. There's certainly no advantage in multiple repetitions since it's self inverting...</p>

<p>However, if you have a small fixed-block-size cipher with decent properties (eg, AES) and want to apply it to an arbitrarily sized block, you can apply it to each subblock in parallel, then diffuse dependencies by using the XOR avalanche function, then apply AES to each subblock once more, diffuse again, AES again. Three rounds of AES is certainly the minimum required for security, maybe more.</p>

<p>Think of it as a mode rather than as a cipher <img src='http://www.snell-pym.org.uk/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>]]></content:encoded>
	</item>
	<item>
		<title>By: Ketos</title>
		<link>http://www.snell-pym.org.uk/archives/2005/07/04/avalanche-functions/comment-page-1/#comment-36142</link>
		<dc:creator>Ketos</dc:creator>
		<pubDate>Tue, 08 May 2007 21:56:13 +0000</pubDate>
		<guid isPermaLink="false">http://snell-pym.org.uk/archives/2005/07/04/avalanche-functions/#comment-36142</guid>
		<description>&lt;p&gt;This function really doesn't work very well. What has happened is that each output subblock is the input subblock XORed with the sum of all of the input subblocks. Hence you retain pattern:
(I_i is the ith input block. O_i is the ith output block)
O_i = I_1 + ... + I_i-1 + I_i+1 +... + I_n =
    = I_1 + ... + I_i-1 + I_i+1 +... + I_n + I_i + I_i because XORing twice makes no difference
    = Sum + I_i&lt;/p&gt;

&lt;p&gt;Hence O_i + O_j = Sum + I_i + Sum + I_j
                = I_i + I_j
This property will be retained through multiple repetitions.
For lots of data (esp. text or other structured stuff) these XOR differences let you reproduce the plaintext.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>This function really doesn't work very well. What has happened is that each output subblock is the input subblock XORed with the sum of all of the input subblocks. Hence you retain pattern:
(I_i is the ith input block. O_i is the ith output block)
O_i = I_1 + ... + I_i-1 + I_i+1 +... + I_n =
    = I_1 + ... + I_i-1 + I_i+1 +... + I_n + I_i + I_i because XORing twice makes no difference
    = Sum + I_i</p>

<p>Hence O_i + O_j = Sum + I_i + Sum + I_j
                = I_i + I_j
This property will be retained through multiple repetitions.
For lots of data (esp. text or other structured stuff) these XOR differences let you reproduce the plaintext.</p>]]></content:encoded>
	</item>
</channel>
</rss>
