<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in files.adiantum</title>
    <link>http://nxr.netbsd.org/rss/src/sys/crypto/adiantum/files.adiantum</link>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2005</copyright>
    <generator>Java</generator>
    
<item>
    <title>Convert crypto/adiantum to use new ChaCha API.</title>
    <description>/src/sys/crypto/adiantum/files.adiantum - 1.3</description>
    <pubDate>Sat Jul 25 22:47:16 UTC 2020</pubDate>
    <dc:creator>riastradh</dc:creator>
</item>

<item>
    <title>Note dependency of adiantum on aes.<br/><br/>Forgot this a while back.</title>
    <description>/src/sys/crypto/adiantum/files.adiantum - 1.2</description>
    <pubDate>Sat Jul 25 22:41:31 UTC 2020</pubDate>
    <dc:creator>riastradh</dc:creator>
</item>

<item>
    <title>New cgd cipher adiantum.<br/><br/>Adiantum is a wide-block cipher, built out of AES, XChaCha12,<br/>Poly1305, and NH, defined in<br/><br/>   Paul Crowley and Eric Biggers, `Adiantum: length-preserving<br/>   encryption for entry-level processors', IACR Transactions on<br/>   Symmetric Cryptology 2018(4), pp. 39--61.<br/><br/>Adiantum provides better security than a narrow-block cipher with CBC<br/>or XTS, because every bit of each sector affects every other bit,<br/>whereas with CBC each block of plaintext only affects the following<br/>blocks of ciphertext in the disk sector, and with XTS each block of<br/>plaintext only affects its own block of ciphertext and nothing else.<br/><br/>Adiantum generally provides much better performance than<br/>constant-time AES-CBC or AES-XTS software do without hardware<br/>support, and performance comparable to or better than the<br/>variable-time (i.e., leaky) AES-CBC and AES-XTS software we had<br/>before.  (Note: Adiantum also uses AES as a subroutine, but only once<br/>per disk sector.  It takes only a small fraction of the time spent by<br/>Adiantum, so there's relatively little performance impact to using<br/>constant-time AES software over using variable-time AES software for<br/>it.)<br/><br/>Adiantum naturally scales to essentially arbitrary disk sector sizes;<br/>sizes &gt;=1024-bytes take the most advantage of Adiantum's design for<br/>performance, so 4096-byte sectors would be a natural choice if we<br/>taught cgd to change the disk sector size.  (However, it's a<br/>different cipher for each disk sector size, so it _must_ be a cgd<br/>parameter.)<br/><br/>The paper presents a similar construction HPolyC.  The salient<br/>difference is that HPolyC uses Poly1305 directly, whereas Adiantum<br/>uses Poly1395(NH(...)).  NH is annoying because it requires a<br/>1072-byte key, which means the test vectors are ginormous, and<br/>changing keys is costly; HPolyC avoids these shortcomings by using<br/>Poly1305 directly, but HPolyC is measurably slower, costing about<br/>1.5x what Adiantum costs on 4096-byte sectors.<br/><br/>For the purposes of cgd, we will reuse each key for many messages,<br/>and there will be very few keys in total (one per cgd volume) so --<br/>except for the annoying verbosity of test vectors -- the tradeoff<br/>weighs in the favour of Adiantum, especially if we teach cgd to do<br/>&gt;&gt;512-byte sectors.<br/><br/>For now, everything that Adiantum needs beyond what's already in the<br/>kernel is gathered into a single file, including NH, Poly1305, and<br/>XChaCha12.  We can split those out -- and reuse them, and provide MD<br/>tuned implementations, and so on -- as needed; this is just a first<br/>pass to get Adiantum implemented for experimentation.</title>
    <description>/src/sys/crypto/adiantum/files.adiantum - 1.1</description>
    <pubDate>Mon Jun 29 23:44:01 UTC 2020</pubDate>
    <dc:creator>riastradh</dc:creator>
</item>
</channel></rss>

