The method of encryption employed in TOPSECCRET is known as the Vernam
Cipher, and more specifically, a One-time Pad encryption technique. The
Vernam Cipher technique, in binary, essentially uses the XOR
(eXclusive-OR) operation on two bits (one from the data to be sent, and
one from the password data) to produce a third bit: the encrypted message,
or cipher text. For example, if the first bit of the data in the
message was a 1, and the first bit of the password data was a 1, the resultant
cipher text's first bit would be a 0, or 1 XOR 1. This is done once for
every bit in the data to be sent. In order to decrypt the cipher text's
first bit, we simply repeat the same process (a useful feature of the Vernam
Cipher is that by encrypting data with the same password twice, we return
it to its original form). Taking the last example, the cipher text's first
bit (found to be 0), when XORed with the first bit from the password (1),
results in 0 XOR 1, which is a 1, the same as the first data bit of the
original message. If we call our message data, in binary, Data Stream A,
and our password Data Stream P, and
the cipher text generated by streams A
and P Data Stream C,
the operation would result in a table such as the following, using random
digits for streams A and P:
Encryption Table
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Note that the tables for Encryption and Decryption are simply the same data, in a different order. In both tables, the first two rows of the table are XORed to produce the third row. The only difference is that in the first table, the operation is performed with the original data and the password as the "knowns", generating the cipher text, and in second table, the operation is performed using only the cipher text obtained from the first table and the password as the "knowns", generating the original data from them. Obviously, the password data must be known both during encryption and decryption. In fact, it is impossible to regenerate the original data stream from the cipher text stream through a XOR operation without using the exact same password. This is the fundamental principle on which the Vernam Cipher is based.
Commonly, the password data used in a Vernam Cipher is not as long as the message being sent, and so, the password is repeated several times, until its length is sufficient to match the transmission length. This may seem innocent enough, but in reality, it is extremely simple for a cryptologist to decrypt most messages sent using the technique, even without the password. Obviously, this is a serious problem. For more information on how it is possible to decrypt a message that has been encrypted with a repeated form of the same password, read the section titled Taking the Concepts a Step Further which describes the technique. While it is possible to "break" a Vernam Cipher that uses a repeated password, it is quite impossible to break a Vernam Cipher which never reuses the password data, without first guessing the password. However, this implies that the password data is the same length as the message being sent, and therefore (in theory) just as difficult to guess as the content of the message. Techniques which make use of this principle are called One-time Pads. In such schemes, the weakest part of the encryption is typically the source of the password data. If a cryptologist can narrow down the possible values which the password data contains, that is a large step towards decrypting the data stream. Thus it is important to have a password data stream which is generated from random data (as opposed to psuedo-random, a topic discussed in Taking the Concepts a Step Further). Computers are not currently capable of generating truly random data, so it is a good idea to use "real world" input sources to help determine the random password. It is critical that the password source not be accessible to anyone who might wish to eavesdrop on your transmissions.
TOPSECCRET will use randomly generated data from any source, in file
sizes of 256Kb (kilo-bits) for password data. The data file is stored on
two identical EPROM or EEPROM chips, and the original is then erased. The
two chips are then used by the TOPSECCRET terminals to communicate securely,
until all the password data on the chips has been used once, after which
an alarm is sounded to indicate that the chips must be refreshed with new
random data.
Return to the TOPSECCRET Homepage
or move on to Implementation.
TOPSECCRET -- It works in theory.