<?xml version="1.0"?>
<rss version="2.0">
   <channel>
      <title>Formal verification of software at Galois by Felix</title>
      <link>https://padlet.com/felixbauckholt/cs1ef1qxaj0k</link>
      <description></description>
      <language>en-us</language>
      <pubDate>2017-04-03 01:37:52 UTC</pubDate>
      <lastBuildDate>2023-05-27 18:33:06 UTC</lastBuildDate>
      <webMaster>hello@padlet.com</webMaster>
      <image>
         <url></url>
      </image>
      <item>
         <title>Cryptol</title>
         <author>felixbauckholt</author>
         <link>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164441096</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padletuploads.blob.core.windows.net/prod/188808117/891dec566d37132e630c2b30655cadea/image.png" />
         <pubDate>2017-04-03 18:30:40 UTC</pubDate>
         <guid>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164441096</guid>
      </item>
      <item>
         <title>1. Showing equivalence of programs</title>
         <author>felixbauckholt</author>
         <link>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164441120</link>
         <description><![CDATA[<div>Are the following functions equivalent?<br><br></div><div><strong>SAW</strong> proves this <em>without help from humans</em>.<br><sub>Source: </sub><a href="http://saw.galois.com/tutorial.html"><sub>http://saw.galois.com/tutorial.html</sub></a></div>]]></description>
         <enclosure url="" />
         <pubDate>2017-04-03 18:30:45 UTC</pubDate>
         <guid>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164441120</guid>
      </item>
      <item>
         <title>2. Reasoning about functions</title>
         <author>felixbauckholt</author>
         <link>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164442348</link>
         <description><![CDATA[<div><strong>Cryptol</strong> is a language to express properties of programs in a very mathematical way.<br><br>This allows people to translate a cryptographic paper into a reference implementation. Then they can write their own implementation, and then use SAW to verify they're equivalent <strong>automatically</strong>.<br><sub>More info: </sub><a href="http://cryptol.net/"><sub>http://cryptol.net/</sub></a></div>]]></description>
         <enclosure url="" />
         <pubDate>2017-04-03 18:34:06 UTC</pubDate>
         <guid>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164442348</guid>
      </item>
      <item>
         <title></title>
         <author>felixbauckholt</author>
         <link>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164445954</link>
         <description><![CDATA[<div>Galois does <strong>Research and Development</strong> for the US Government</div>]]></description>
         <enclosure url="https://padletuploads.blob.core.windows.net/prod/188808117/3f1ea02d62c2505d21b89a4db9acee0b/image.png" />
         <pubDate>2017-04-03 18:43:52 UTC</pubDate>
         <guid>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164445954</guid>
      </item>
      <item>
         <title></title>
         <author>felixbauckholt</author>
         <link>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164446755</link>
         <description><![CDATA[<pre>uint32_t ffs_ref(uint32_t word) {
    int i = 0;
    if(!word) return 0;
    for(int cnt = 0; cnt &lt; 32; cnt++)
        if(((1 &lt;&lt; i++) &amp; word) != 0)
            return i;
    return 0; // notreached
}</pre>]]></description>
         <enclosure url="" />
         <pubDate>2017-04-03 18:46:14 UTC</pubDate>
         <guid>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164446755</guid>
      </item>
      <item>
         <title></title>
         <author>felixbauckholt</author>
         <link>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164447012</link>
         <description><![CDATA[<pre>uint32_t ffs_musl (uint32_t x) {
  static const char debruijn32[32] = {
    0, 1, 23, 2, 29, 24, 19, 3, 30, 27, 25, 11, 20, 8, 4, 13, 31, 22, 28, 18, 26, 10, 7, 12, 21, 17, 9, 6, 16, 5, 15, 14
  };
  return x ? debruijn32[(x&amp;-x)*0x076be629 &gt;&gt; 27]+1 : 0;
}</pre>]]></description>
         <enclosure url="" />
         <pubDate>2017-04-03 18:46:53 UTC</pubDate>
         <guid>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164447012</guid>
      </item>
      <item>
         <title>How does that work?</title>
         <author></author>
         <link>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164488453</link>
         <description><![CDATA[<div><strong>SAW</strong> takes compiled C or Java code and translates it into a <strong>circuit representation</strong>.<br>Then it can use state-of-the-art <strong>SAT or SMT solvers</strong> (developed by others) to prove correctness.<br><sub>Source: </sub><a href="http://saw.galois.com/index.html"><sub>http://saw.galois.com/index.html</sub></a></div>]]></description>
         <enclosure url="" />
         <pubDate>2017-04-03 22:11:09 UTC</pubDate>
         <guid>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164488453</guid>
      </item>
      <item>
         <title>Example code: SHA1 definition</title>
         <author>felixbauckholt</author>
         <link>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164742586</link>
         <description><![CDATA[<pre>f : ([8], [32], [32], [32]) -&gt; [32]
f (t, x, y, z) =
  if (0 &lt;= t)  &amp;&amp; (t &lt;= 19) then (x &amp;&amp; y) ^ (~x &amp;&amp; z)
   | (20 &lt;= t) &amp;&amp; (t &lt;= 39) then x ^ y ^ z
   | (40 &lt;= t) &amp;&amp; (t &lt;= 59) then (x &amp;&amp; y) ^ (x &amp;&amp; z) ^ (y &amp;&amp; z)
   | (60 &lt;= t) &amp;&amp; (t &lt;= 79) then x ^ y ^ z
   else error "f: t out of range"</pre><div><sub>Source: </sub><a href="http://www.cryptol.net/index.html"><sub>http://www.cryptol.net/index.html</sub></a></div>]]></description>
         <enclosure url="" />
         <pubDate>2017-04-04 21:12:19 UTC</pubDate>
         <guid>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164742586</guid>
      </item>
      <item>
         <title></title>
         <author>felixbauckholt</author>
         <link>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164742777</link>
         <description><![CDATA[<div>This corresponds directly to the SHA1 specification document!</div>]]></description>
         <enclosure url="http://www.cryptol.net/images/SHA1.png" />
         <pubDate>2017-04-04 21:13:54 UTC</pubDate>
         <guid>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164742777</guid>
      </item>
      <item>
         <title>0. What do they do? Why?</title>
         <author>felixbauckholt</author>
         <link>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164744025</link>
         <description><![CDATA[<div>Galois develops tools for developing software that needs to as work intended, <em>and only as</em> intended, in a diverse set of areas such as <strong>cryptography</strong>, <strong>avionics</strong>, <strong>computer security</strong>, and <strong>human-computer interfaces</strong>.<br><sub>Source: </sub><a href="http://galois.com/about/"><sub>http://galois.com/about/</sub></a></div>]]></description>
         <enclosure url="" />
         <pubDate>2017-04-04 21:22:43 UTC</pubDate>
         <guid>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164744025</guid>
      </item>
      <item>
         <title>3. Other amazing things</title>
         <author>felixbauckholt</author>
         <link>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164745849</link>
         <description><![CDATA[<div><strong>Copilot</strong> is a stream-based language for building <strong>real-time systems</strong> such as monitoring software for planes.<br><strong>Real-time</strong> means that at all times, the system can <strong>react</strong> to some event <strong>in some fixed time</strong>.<br><br><strong>Prattle</strong> is a tool to generate meaningless traffic in a network. This can cause a <strong>cyberattacker</strong> to make mistakes that make them <strong>easier to detect</strong>.</div>]]></description>
         <enclosure url="" />
         <pubDate>2017-04-04 21:38:24 UTC</pubDate>
         <guid>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164745849</guid>
      </item>
      <item>
         <title></title>
         <author>felixbauckholt</author>
         <link>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164746166</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://leepike.github.io/Copilot/figs/install.JPG" />
         <pubDate>2017-04-04 21:41:40 UTC</pubDate>
         <guid>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164746166</guid>
      </item>
      <item>
         <title>Why is this super important?</title>
         <author>felixbauckholt</author>
         <link>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164746871</link>
         <description><![CDATA[<div>25% of algorithms submitted for FIPS validation had <strong>security flaws</strong>.</div><div><sub>Source:</sub><sup> </sup><a href="http://csrc.nist.gov/groups/STM/cmvp/documents/CMVP2002/proceed/CMVP2603.pdf"><sup>http://csrc.nist.gov/groups/STM/cmvp/documents/CMVP2002/proceed/CMVP2603.pdf</sup></a><sub><br></sub>This is partially because the mathematics in cryptographic papers necessarily looks very different from a highly optimized C program, so it's <strong>hard to notice discrepancies</strong>.</div>]]></description>
         <enclosure url="" />
         <pubDate>2017-04-04 21:48:41 UTC</pubDate>
         <guid>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164746871</guid>
      </item>
      <item>
         <title></title>
         <author>felixbauckholt</author>
         <link>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164748125</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padletuploads.blob.core.windows.net/prod/188808117/c430fc7a0b745f20fc7dfcbab6197ff3/file.png" />
         <pubDate>2017-04-04 22:01:12 UTC</pubDate>
         <guid>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164748125</guid>
      </item>
      <item>
         <title></title>
         <author>felixbauckholt</author>
         <link>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164749408</link>
         <description><![CDATA[]]></description>
         <enclosure url="http://ichef.bbci.co.uk/wwfeatures/wm/live/1280_640/images/live/p0/1l/fs/p01lfsgb.jpg" />
         <pubDate>2017-04-04 22:14:11 UTC</pubDate>
         <guid>https://padlet.com/felixbauckholt/cs1ef1qxaj0k/wish/164749408</guid>
      </item>
   </channel>
</rss>
