Growth Capitalism
Back To Introduction

Appendix B
Perfect Encryption


James Adrian

      Indentation areas (like the one at the start of this paragraph) are links to Google. This allows you to conveniently search for any unfamiliar words or phrases by copying the text in question and clicking on an indentation.

Absolute Security

      Claude Shannon[1] proved that any encryption algorithm possessing these characteristics is absolutely secure:

      1. The encryption keys must be random numbers of uniform distribution.

      2. The keys must be shared in absolute secrecy by the sender and receiver.

      3. Any key encrypting a message must be as at least as long as that message.

      4. Any key used to encrypt a message must not be reused.

The One-Time Pad

      The most famous encryption algorithm having all of these characteristics is the One-Time Pad. By using a random key to encrypt a message (the plain text) with the XOR logical operation, the transmitted result (the cyphertext) is rendered as random as the key. The collection of secret keys shared only by the sender and the receiver is called the pad. Keys are of any length not exceeding that of the pad. Their length matches that of the messages they encrypt. They are erased immediately after their use.

      Information conveyed over the Internet is represented by numbers whose digits include only 0 and 1. Each digit is called a bit. An "E" is a string of 8 bits equal to 01000101. A memory cell containing 8 bits is called a byte. There is a unique byte code for each character that we use in our email messages.

      The purpose of encryption is to create as much uncertainty as possible as to which character was present in the message before it was encrypted. The one-time pad does this by adding (without carry) a separate and randomly chosen bit to each bit in the message. Like the regular operations of adding or subtracting, add without carry is an operation. Adding bits A and B, the following sums are created:

	A	B	Sum
	0	0	 0
	0	1	 1
	1	0	 1
	1	1	 0

      Notice that the sum of 1 and 1 in binary is 10, but the carry bit is not included in the sum by the add-without-carry operation. Only the least significant bit of the sum is used (in this case, 0).

      For a more thorough explanation see Perfect Encryption, by James Adrian.


      1. "Claude Elwood Shannon - Collected Papers" edited by N. J. A. Sloane and Aaron D. Wyner.