cr.yp.to update

[email protected] 30 May 2005 06:09:28 -0000
Newsgroups gmane.comp.djb.announce
Message-ID <[email protected]>
diff -ru .old-crypto/qmail/guarantee.html cr.yp.to/qmail/guarantee.html
--- .old-crypto/qmail/guarantee.html	2001-02-02 13:57:23.000000000 -0500
+++ cr.yp.to/qmail/guarantee.html	2005-05-29 05:11:27.000000000 -0400
@@ -33,6 +33,15 @@
 A group of qmail users offered a $1000 prize for one year under similar rules.
 The prize was not claimed;
 the money was donated to the Free Software Foundation.
+<p>
+In May 2005,
+Georgi Guninski
+claimed that some potential 64-bit portability problems
+allowed a ``remote exploit in qmail-smtpd.''
+This claim is denied.
+Nobody gives gigabytes of memory to each qmail-smtpd process,
+so there is no problem with qmail's assumption
+that allocated array lengths fit comfortably into 32 bits.
 <h2>Why is qmail secure?</h2>
 The reason I started the qmail project was that
 I was sick of the security holes in sendmail and other MTAs.
diff -ru .old-crypto/streamciphers.html cr.yp.to/streamciphers.html
--- .old-crypto/streamciphers.html	2005-05-28 06:11:23.000000000 -0400
+++ cr.yp.to/streamciphers.html	2005-05-28 12:23:37.000000000 -0400
@@ -97,6 +97,13 @@
 and some other byte shuffling as part of key setup.
 <p>
 Each 16-byte output block involves 8 squarings and various other operations.
+<p>
+Initial impressions:
+From a timing-attack perspective,
+I'm concerned about Rabbit's use of integer squaring on,
+e.g., the Motorola PowerPC 7450 (G4e),
+which takes a cycle less if the input is between -131072 and 131071.
+How much speed does Rabbit lose if this timing leak is eliminated?
 <h2>Notes on Phelix</h2>
 Authors report,
 for a Pentium M,
@@ -120,10 +127,20 @@
 Each Phelix block feeds the input through
 13 adds, 11 xors, and 20 rotations
 to produce a 4-byte block of output.
-Overall 11 operations per byte.
+Overall 11 operations per byte
+(3.25 adds, 2.75 xors, 5 rotations).
 Key expansion takes a few additional operations per block.
-For comparison, Salsa20 performs 15 operations per byte,
+For comparison, Salsa20 performs 15 operations per byte
+(5 adds, 5 xors, 5 rotations),
 plus final xoring, plus the cost of authentication.
+<p>
+Initial impressions:
+Phelix, like Salsa20, follows TEA in using a long chain of simple operations.
+It's fine from a timing-attack perspective.
+Phelix is less conservative than Salsa20 but is usually faster.
+Exceptions:
+Salsa20 is faster than Phelix when the hardware offers more parallelism,
+and (in conjunction with Poly1305) is faster at rejecting forged packets.
 <h2>Notes on SOSEMANUK</h2>
 Key length between 16 bytes and 32 bytes.
 Nonce length: 16 bytes.
@@ -158,7 +175,12 @@
 11149 cycles to load a key;
 693 cycles to load a nonce;
 314 cycles per block (39.25 cycles/byte, I believe) to encrypt a big block.
-I think that the same function could be computed at considerably higher speed.
+<p>
+Initial impressions:
+This function sounds awfully slow,
+so it won't attract much interest.
+On the other hand,
+I think it could be computed at considerably higher speed.
 <h2>Notes on Py</h2>
 Authors report, for a Pentium III,
 2727 cycles to load a key;
@@ -173,8 +195,8 @@
 5003 cycles to load a nonce;
 4.1 cycles/byte to encrypt a big block.
 <p>
-The secret indices bother me:
-surely Py is vulnerable to timing attacks.
+Initial impression:
+Py looks like a disaster from a timing-attack perspective.
 The large message-setup time also bothers me:
 low-overhead ciphers such as Salsa20
 will already have finished encrypting an average-size Internet packet
@@ -187,10 +209,13 @@
 <p>
 The paper's speed results are about 58 cycles per byte
 on a 1400MHz Pentium 4, plus about 800 cycles for setup.
-In what fantasy world is this even remotely comparable to RC4 speed?
 <p>
-Low-level operations: kitchen sink.
-Many opportunities for timing attacks.
+Initial impression:
+The cycles-per-byte count isn't even on the same scale as RC4;
+the authors are wildly misrepresenting RC4 speed.
+Furthermore,
+Polar Bear is a kitchen sink,
+with all sorts of opportunities for timing attacks.
 <h2>Notes on YAMB</h2>
 Key as large as 32 bytes.
 Nonce as large as 16 bytes.
@@ -201,7 +226,8 @@
 Specifically, extracts 320 bits from each AES encryption;
 about 2.5 times faster than AES.
 <p>
-Will be vulnerable to timing attacks for the same reason that AES is.
+Initial impression:
+Will be a disaster from a timing-attack perspective, just like AES.
 <h2>Notes on Fubuki</h2>
 Authors report, for a Pentium M,
 489662 cycles for setup,
@@ -221,8 +247,10 @@
 Every 4 bytes of output have one dot product and several other operations.
 <p>
 The reported speed of ABC relies on computing the dot product
-by secret-index table lookups,
-exposing ABC to timing attacks.
+by secret-index table lookups.
+<p>
+Initial impression:
+Timing attacks will be a big problem here.
 <h2>Notes on DICING</h2>
 Author reports, for an 1800MHz Athlon XP,
 918 cycles to load a 16-byte key;