A fundamental assumption we make is that any data traffic on JANET cannot be made unreadable. In order to assure privacy, therefore, we must ensure that the data is unintelligible. This is the role of encryption. The encryption mechanism must be such that the intended recipient can make the data intelligible, but that it is infeasible for anyone else. PGP is easily adequate for this task, is freely and widely available and is rapidly becoming the de facto international standard.
Making data unintelligible requires an encryption algorithm and a relatively small item of data known as the encryption ``key''. The algorithm is fixed and used by both parties when exchanging information. Within PGP there are two encryption algorithms, called RSA and IDEA, used in different circumstances to be explained shortly. To restore the data to intelligibility requires the same algorithm and a decryption key. It is always assumed that the details of the algorithm are public knowledge, and that the only thing preventing bystanders from decrypting an encrypted message is that the decryption key is known only to the rightful recipient.
If the encryption and decryption keys are the same (or one is trivially derivable from the other) the method is called ``symmetrical encryption'' or ``conventional encryption''. Note that if conventional encryption is employed, both parties must keep their keys confidential. IDEA is a conventional encryption method. The encryption and decryption keys are essentially identical and each datum is 128 bits in size, meaning that there are approximately 3.4 times 10 to the power of 38
different keys available. It is completely infeasible to search this number of keys in an attempt to find the one used to protect a particular message. No-one has yet published an attack on IDEA which runs faster than exhaustive search of the key space --- though that is not a guarantee that a better method doesn't exist.
An alternative is found in ``asymmetrical encryption'', also known as ``public key encryption''. Here, the two keys are related to each other but in a non-trivial manner. It is assumed that it is extremely difficult to derive one key, given possesion of the other. RSA is an example of an asymmetrical encryption method. The non-trivial relationship between the keys in RSA is essentially that of determining the prime factors of a large integer. Anyone with prior knowledge of the primes (the creator of the keys, for instance, or an eavesdropper observing their creation) may easily generate one key from the other; anyone else must solve a computationally difficult problem. The size of the integers used in the RSA algorithm is potentially unbounded; in practice integers of 512 to 2048 bits are used. The larger the integer, the slower the algorithm runs. Current state of the art suggests that 512-bit integers are vulnerable to a rich and dedicated attacker, such as a large government security agency, but that 1024-bit keys will remain safe for a decade or two, despite plausible improvements in computer hardware and factorization algorithms.
Public key encryption has some rather useful properties. Since the
decryption key cannot practically be derived from the encryption key,
the latter may as well be public knowledge, hence the more common term:
``public key''. If this is done, then anyone can encrypt data with that
key. The corresponding decryption key is kept private, hence the term
``private key''; only the possessor(s) of that key can decrypt the
encrypted data. Thus: if each person has a public key published in a
directory, anyone may send that person a private message. No-one else,
not even the author, can decrypt that message because they do not have
and cannot derive the corresponding private key. There is no necessity
to exchange keys ahead of time as there would be if conventional
encryption were used.