Wednesday, April 26, 2006

Ignorance in Action

Some time ago, a little less than a year, I came across "The Da Vinci Code" (the book.) It made a bold statement in the preface that all the details about places, people, rituals, etc. have been thoroughly researched and their descriptions are exactly correct. It seemed to me that Dan Brown must have been an idiot to assert such a thing with such a boldness if he had not in fact done so. Anyways, I read the book and I liked it. The plot was good and the story engaging (although cliche-ridden) and the details were indeed abundant and informative. Then, I read "Angels and Demons". Again the assertions were there, and again the book featured interesting attention to details, fascinating people and places, and a lot of historical claims that were supposed to be facts (maybe they were.) But this time around, one of the characters were supposedly one of the Hashshashin (followers of Hassan Sabbah.) This time it seemed that the authors research had given him wrong data. It seemed that I knew more about them than Dan Brown. But I didn't think much of it. After all, I'm no historian, or even a history enthusiast. I let it pass. A few weeks ago, I came across audio book of "Digital Fortress", again by Dan Brown. This novel was about cryptography. This time, what he said about it was pure nonsense. I mean, it was obvious that he had read some articles about the subject, maybe even talked to some people who knew some people whose neighbors were cryptographers, but he himself does not understand the first thing not only about cryptography, also theory of informatics and computers in general. I'm not talking about advanced stuff here. What he does not understand starts from the meaning of bits and bytes and spans through meaning of powers and numbers. For example, at one point, the main characters are looking for a 64-bit key to a specific cipher, that someone has supposedly written down somewhere. During their search, it becomes apparent that the author thinks a 64-bit key is composed of 64 characters! And he doesn't mean 64 characters of '0' or '1'; No. He writes about how the string would be composed of English letters, digits and other characters! Even a 64-bit hex string would be only 16 characters long. As another example, he talks about a code-breaking machine that has 3 million processors and can brute-force a 64-bit key space in a matter of minutes (less than 15 minutes.) Even though these numbers mean that each processor must be able to cipher at least 3.4 billion blocks per second (note that I'm not talking about 3.4 giga CPU cycles, not even cipher cycles, but full cipher - key setup, everything) for the sake of argument we consider this machine practical. Now, as the story progresses, we see that the NSA (owner of this machine) is not at all worried that they'll see a code that this machine cannot break by brute force! I think Dan Brown didn't even bother to discuss this matter with a Computer Science sophomore, or a talented highschool student for that matter. Because anyone of those would have told him that just increasing the length of the key to 80 bits would make this machine take close to 2 years to decode even a single ciphertext. I don't even want to estimate what a 128-bit key would do to his super computer! Even more ridiculous (albeit less obvious) than that, is the fact that his machine does not seem to care about the algorithm! One of the cryptographers in the book thinks to herself that the algorithm did not matter to TRANSLTR (the said machine) since it searched the whole keyspace! I mean, seriously, how stupidly ridiculous is that? Now after all that, I must say that the book is a good thriller, with all the turns and twists of one and a bit more, but the details? I myslef would never take anything in his books for granted again!

No comments: