Bob Jenkins' Web Site

Jean-Philippe Aumasson placed Distingishing attacks on ISAAC on the IACR's ePrint archive. Yeay, someone's cryptoanalyzing ISAAC! Aw, he got it wrong.

Consider the 254/65536 of all cases where r[0]=m[0]+m[j] and r[1]=m[1]+m[j]. For the 2-32 of those cases where m[0]==m[1], r[0]==r[1]. That's about 2-40 of all cases. If the remaining (1-2-40) of the cases had the normal 2-32 chance of having r[0]==r[1], that would give about 2-32 + 2-40 total chance of r[0]==r[1].

Unfortunately for his arguments, if you go back to those 254/65536 cases we originally looked at, if m[0]!=m[1] then r[0]!=r[1]. That's about 2-8 of all cases. Combining these two, r[0]==r[1] with probability about 2-32(1 - 2-8) + 2-40 = 2-32, which is what a uniform distribution says it ought to be. Or, perhaps simpler, r[0]==r[1] with probability 2-32 overall in those 254/65536 cases we singled out. It happens that in those cases that whenever r[0]==r[1] we can conclude m[0]==m[1].

The other distinguishers he gave were also flawed, in the same way. This is all verifiable with IBAA scaled down to 8 terms with 6 bits each (making the fractions 2-6 and 2-3 instead of 2-32 and 2-8, and allowing you to check for the claimed bias after 212 results rather than 248). I'll post an official rebuttal on IACR as soon as I manage to set up all the tools needed to generate a LaTeX document.

perpetual motion

Table of Contents (internal links):

Here's a hash table, code for perfect hashing, a good hash function for hash table lookup, a FAQ, some theory, and code to search for new hash functions. I tried designing block ciphers and finding characteristics. I had an article published in Dr. Dobb's in September 1997.
Have the cryptographic pseudorandom number generator ISAAC, a prize for breaking ISAAC, and ISAAC's background and theory. Also take some tests for randomness, and a table of orders of magnitude. Here are also some protocols and a unit vector generator.
See some skits from Boy Scouts, SQL tricks from Oracle, near-future speculations, some recipies, and some cartoons that I wrote in college.
Look into pentagonal tiles, formulae for n-body orbit simulations, code for the HOMFLY knot polynomial, voting methods, choosing random passwords, jenny for pairwise testing, some error correction codes, a distributed HTML index, and a web page for choosing colors.
Consider perpetual motion machines, a dirigiped design, a scale model of the solar system, a page on exploring orbits with Java, Klemperer Rosettes, a simulation of Cruithne (a near-earth object), of figure-eight orbits, of binary star planetary orbits, a set of noncolliding orbits, some Dyson Swarms (pretty pictures!), some methods for the n-body problem, a description of the orbit applet used, and a tentative itzu world.
Home projects
See my half bath, a house design that will never be built, a dollhouse that did get built, some genealogical notes, and a roof rack for Justine's car.
Here is my autobiography, a resume, a cong from the British Museum, a comparison of JPEG and JPEG 2000, a bit on software patents, my mom's art, and some early Bob photos. My wife Justine has a website too. Here are people I've encountered more than once.

Here are some other sites:

Send mail to Bob at