<?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: Cryptol Language for Cryptography</title>
	<atom:link href="http://emergentchaos.com/archives/2009/01/cryptol-language-for-cryptography.html/feed" rel="self" type="application/rss+xml" />
	<link>http://emergentchaos.com/archives/2009/01/cryptol-language-for-cryptography.html</link>
	<description>The Emergent Chaos Jazz Combo</description>
	<lastBuildDate>Fri, 12 Mar 2010 02:36:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Iang</title>
		<link>http://emergentchaos.com/archives/2009/01/cryptol-language-for-cryptography.html/comment-page-1#comment-5381</link>
		<dc:creator>Iang</dc:creator>
		<pubDate>Thu, 08 Jan 2009 19:04:20 +0000</pubDate>
		<guid isPermaLink="false">http://emergentchaos.com/?p=3000#comment-5381</guid>
		<description>I worry about things like this.  What is the point in proving the mathematics and protocol to the Nth degree of purity and essence, when the requirements are wrong?
</description>
		<content:encoded><![CDATA[<p>I worry about things like this.  What is the point in proving the mathematics and protocol to the Nth degree of purity and essence, when the requirements are wrong?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://emergentchaos.com/archives/2009/01/cryptol-language-for-cryptography.html/comment-page-1#comment-5380</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Mon, 05 Jan 2009 14:41:44 +0000</pubDate>
		<guid isPermaLink="false">http://emergentchaos.com/?p=3000#comment-5380</guid>
		<description>Frankly, Tokeneer seemed slightly overhyped to me.  I read through the docs back when they were released, and I seem to recall something like the following:
In the big glossy print, they claimed the code had been formally verified; later, in the fine print, they revealed that their verification had gaps.  For instance, they told their theorem prover to assume that integers couldn&#039;t overflow, but they didn&#039;t verify this assumption.  Many years after they originally delivered the software (I think it may have been when they were preparing the code for release?) they discovered a security bug that arose due to integer overflow.
That&#039;s my memory.  I might be misremembering or misquoting.
</description>
		<content:encoded><![CDATA[<p>Frankly, Tokeneer seemed slightly overhyped to me.  I read through the docs back when they were released, and I seem to recall something like the following:<br />
In the big glossy print, they claimed the code had been formally verified; later, in the fine print, they revealed that their verification had gaps.  For instance, they told their theorem prover to assume that integers couldn&#8217;t overflow, but they didn&#8217;t verify this assumption.  Many years after they originally delivered the software (I think it may have been when they were preparing the code for release?) they discovered a security bug that arose due to integer overflow.<br />
That&#8217;s my memory.  I might be misremembering or misquoting.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joe Hendrix</title>
		<link>http://emergentchaos.com/archives/2009/01/cryptol-language-for-cryptography.html/comment-page-1#comment-5379</link>
		<dc:creator>Joe Hendrix</dc:creator>
		<pubDate>Mon, 05 Jan 2009 13:16:56 +0000</pubDate>
		<guid isPermaLink="false">http://emergentchaos.com/?p=3000#comment-5379</guid>
		<description>I met with several people from Galois last summer.  If I recall correctly, they have one can define data sizes parametrically in the code, but the actual implementation is compiled to fix-sized buffers.  They are mainly targeting Cryptol to compile to Verilog or VHDL for running on FPGAs.
For verification, they make two implementations: a high-level inefficient implementation that should be close to the theoretical encryption algorithm, and a low-level pipelined algorithm that may be very complicated.  These two implementations are checked for equivalence using a custom combination of SMT solvers and inductive theorem proving techniques.  They could also do more convential techniques like fuzz testing as well.
By having two implementation and doing equivalence testing, I think they should have a good chance of catching all the implementation correctness bugs.  Their approach won&#039;t catch bugs in the high-level implementation or in the underlying algorithm.  I also suspect they could miss information leakage due to timing attacks, but they may have a solution to that.
In any case, this approach of a domain specific language and static verification has been successful in other areas, and seems like a good approach here.
</description>
		<content:encoded><![CDATA[<p>I met with several people from Galois last summer.  If I recall correctly, they have one can define data sizes parametrically in the code, but the actual implementation is compiled to fix-sized buffers.  They are mainly targeting Cryptol to compile to Verilog or VHDL for running on FPGAs.<br />
For verification, they make two implementations: a high-level inefficient implementation that should be close to the theoretical encryption algorithm, and a low-level pipelined algorithm that may be very complicated.  These two implementations are checked for equivalence using a custom combination of SMT solvers and inductive theorem proving techniques.  They could also do more convential techniques like fuzz testing as well.<br />
By having two implementation and doing equivalence testing, I think they should have a good chance of catching all the implementation correctness bugs.  Their approach won&#8217;t catch bugs in the high-level implementation or in the underlying algorithm.  I also suspect they could miss information leakage due to timing attacks, but they may have a solution to that.<br />
In any case, this approach of a domain specific language and static verification has been successful in other areas, and seems like a good approach here.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
