The last two days weren't fun. I spend all of my commute time listening to audio books, and the book I've been listening to in the last two days was Digital Fortress, by Dan Brown. Disturbing book, that one is. I've read all of Brown's other books. Da Vinci Code, The Lost Symbol, and Angels & Demons I loved. Deception Point was fine, though its many scientific inaccuracies somehow marred the experience. Digital Fortress, Brown's debut novel, was completely another matter. Inaccuracies are so wild it causes physical pain to those who understand the subject matter, namely computers and cryptography. Here's a list of only some of the problems and inaccuracies of the novel:
- When reading The Da Vinci Code, I got the impression that Dan Brown doesn't know what public-key encryption is. The name was used merely in passing however, and I thought that maybe it was only a mistake.
Oh, I was so wrong. Here, Dan Brown actually "explains" (or rather fails to explain) public-key encryption. What he describes is just plain old symmetric encryption. The brilliance of public-key encryption is using two keys each of which can decrypt what is encrypted by the other one. One of the keys is (widely) distributed and is called, wait for it, the public key! The other is not distributed at all. If I want to send someone a secret message, I simply encrypt it with their public key, knowing that it can only be decrypted by the intended party. This way, there is no need for communicating a "pass-key" at all.
- "Simple syntactical errors--such as a programmer mistakenly inserting a comma instead of a period--could bring entire systems to their knees."
Plain wrong. Programs with syntactical errors don't compile and run at all.
- "Numataka could embed the algorithm in tamper-proof, spray-sealed VSLI chips..."
Come on! At least get the name right. It's VLSI (Very Large Scale Integration). Is it so hard?
- '"When the denominator's zero," Midge explained, "the quotient goes to infinity. Computers hate infinity, so they type all nines."'
Not so. Dividing by zero usually causes an error, and even in systems in which infinity is represented by the maximum integer, you get all ones (in binary) not all nines.
Also, computers don't type, people do.
- Firewalls are not like brick walls. Breaking a firewall, means to find a weak point in it and use it to open a way in or out. The final chapters of the book in which the firewalls of the NSA are gradually breaking down are simply ridiculous.
- The novel is mainly built around the idea of an unbreakable code. Unbreakable codes do exist, though they are rarely used in practice, but unlike the novel says, an unbreakable code is a code which absolutely cannot be broken unless you have the key. You can use brute-force even with unbreakable codes.
- As far as I know, the Nagasaki bomb was a Plutonium bomb. The book claims this is a widely accepted misconception. I looked up different sources and they all corroborate the fact that the Nagasaki bomb was indeed a Plutonium bomb.
Apart from inaccuracies, there are other things I didn't like about the book.
- Misrepresenting the EFF. Disgusting.
- Characters with an IQ of 170 who, when the cheesy story-line demands, can show the IQ of the average chicken. Or killers who always get their target but fail to do so, repeatedly, by making rookie mistakes when it comes to killing a protagonist.
- There are real-world stories about NSA putting back doors in encryption mechanisms (especially in Windows encryption code). No matter these are true or false I was horrified to see that Brown (well, his protagonists) actually defend the idea.
Both the lists can go on and on. Maybe the reason I enjoyed Da Vinci Code, The Lost Symbol and Angels & Demons was, after all, the fact that I know very little about symbology and art history. Maybe there are art historians who tremble when reading those novels.The moral of the story: If you are not William Gibson, you cannot write wildly inaccurate novels and expect people to like them!