Weapons grade cryptography is now a simple matter using Java. What does it mean for the Web, Sun, Microsoft? O'Reilly's Web site editor Allen Noren interviewed Jonathan Knudsen, author of O'Reilly's upcoming Java Cryptography for some ideas.
Jonathan is a staff writer for O'Reilly & Associates, a job that allows him to exercise the right and left sides of his brain but little of his body. In 1977, when Jonathan was knee-high to a grasshopper, he began his computer career by progamming in BASIC on a TRS-80. In 1993 he graduated cum laude from Princeton with a degree in mechanical engineering. Jonathan is still unsure what mechanical engineers do for a living. His current interests include embedded system MIDI programming, Java Sound, and user interface design. He is coauthor of the Java Fundamental Classes Reference and writes a column for Sun Server.
There's a saying that "on the Internet, nobody knows you're a dog." One of the things that's attractive about the Internet is the anonymity it offers. But if you're trying to conduct business, it's a nightmare. Customers need to know that they're ordering goods and services from real businesses. Cryptography offers "certificates" as a solution. Certificates are sometimes called "digital IDs," because they can be used to verify the identity of someone you don't know. This process is called "authentication", where you decide whether someone is authentic or not.
Certificates can be used with another technique, "digital signatures", to ensure that nobody can impersonate you. It's very easy to forge email, but it's really hard to forge a digitally signed email message. And similarly, it's very hard for somebody else to modify a message that you have digitally signed. This is called protecting the integrity of data.
It's very easy to eavesdrop on email, or any other transaction that takes place on a computer network. How can you be sure that nobody finds out about your financial transactions, or your medical records, or your secret business deals? Again, cryptography has a solution, something called a "cipher". A cipher knows how to encrypt and decrypt data. Before you send sensitive data over a network, or store it on a disk, you can encrypt it, which turns it into an unreadable mess. When you need the data again, you use the cipher to decrypt the data. If you play your cards right, you are the only person that will be able to decrypt the data. If you're sending data to someone, you can ensure that only that person is able to decrypt the message. Ciphers provide confidentiality because they keep information secret.
US export law is only one of the factors that shapes the world of cryptographic software. One other factor has to do with patents on algorithms. As I wrote this book, a patent expired on a cipher and signature algorithm called ElGamal. One of the really exciting things for me is including a full implementation of ElGamal ciphers and signatures in this book.
Copyright © 2007 O'Reilly Media, Inc.