One Time Pads – Numbers or Letters?
Written by my friend Sprocket, the man behind Partisan Labs, comes a short rundown on DIANA pads and the uses of OTP encryption, made easy by the excellent OTP-1 Generator. Partisan Labs shares the same mission as I- to get as many of you up to speed as possible for an uncertain future. These forms of encryption are covered in the Advanced RTO Course; one of many courses I offer. There’s no time like the present to get training.
One Time Pads (OTP) are a cryptographic system that uses a table of random digits as a key to encrypt a plain text message. Used as intended, with truly random keys used only one time, it is an unbreakable encryption method. Encrypting and decrypting is done by using a translation table or codex against the plain text first before adding or subtracting the key digits to complete the encryption (subtraction) or decryption (addition). This codex maps letters and special characters to numeric values that will work in the above operations and serves to obfuscate text, changing the length of the message vs. the plain text.
This obfuscation of the plain text adds another step to encrypting and decrypting and presents a problem if the codex is lost or unknown. It can also propagate errors in decoding since there is not a one to one correspondence between digits in the encrypted message and the plain text.
One way to get around this is to use alpha (letter) pads and the reciprocal DIANA table. The DIANA table was used extensively with operators during the Vietnam War and consists of 126 trigraphs or 3 letter combinations.
AAZ ABY ACX ADW AEV AFU AGT AHS AIR AJQ
AKP ALO AMN BBX BCW BDV BEU BFT BGS BHR
BIQ BJP BKO BLN BMM BZZ CCV CDU CET CFS
CGR CHQ CIP CJO CKN CLM CYZ DDT DES DFR
DGQ DHP DIO DJN DKM DLL DXZ DYY EER EFQ
EGP EHO EIN EJM EKL EWZ EXY FFP FGO FHN
FIM FJL FKK FVZ FWY FXX GGN GHM GIL GJK
GUZ GVY GWX HHL HIK HJJ HTZ HUY HVX HWW
IIJ ISZ ITY IUX IVW JRZ JSY JTX JUW JVV
KQZ KRY KSX KTW KUV LPZ LQY LRX LSW LTV
LUU MOZ MPY MQX MRW MSV MTU NNZ NOY NPX
NQW NRV NSU NTT OOX OPW OQV ORU OST PPV
PQU PRT PSS QQT QRS RRR
These trigraphs were memorized and allowed the operator to encrypt and decrypt the OTP encoded message on the fly, no math required, no codex required. If you can’t memorize the trigraphs, you can generate the table by writing out the alphabet on a line and then writing it again, reversed on another line below it and shift the lower one a letter right for each letter in the alphabet, like this.
A ABCDEFGHIJKLMNOPQRSTUVWXYZ
zyxwvutsrqponmlkjihgfedcba
B ABCDEFGHIJKLMNOPQRSTUVWXYZ
yxwvutsrqponmlkjihgfedcbaz
C ABCDEFGHIJKLMNOPQRSTUVWXYZ
xwvutsrqponmlkjihgfedcbazy
D ABCDEFGHIJKLMNOPQRSTUVWXYZ
wvutsrqponmlkjihgfedcbazyx
…
Keep going until you have done the whole alphabet.
To encrypt or decrypt match up the letters from the plain text and OTP in the uppercase letters and replace with the lowercase letter, like so
Plain text: SEND AMMO
Key: ZLSW FNWA
Encrypted: IKUA UARL
Or use the trigraphs ISZ, EKL, NSU, etc…. The reciprocal in reciprocal DIANA table means that the ordering of the letters is not important. Match up 2 and the 3rd is the replacement. ISZ = SIZ = ZIS … an so on. It really make encoding and decoding much easier and less error prone, and unlike numeric OTP systems, if you make a mistake encrypting/decrypting a message, the error only affects that one letter, not the rest of the message.
Ok, so alpha OTPs and the DIANA table can be much easier to encode/decode, especially in stressful conditions. How can you create truly random letter based OTPs ? You could use a handful of 26 sided alphabet dice just like you can use 10 sided dice for numeric pads. You can buy them on ebay ( just kidding ) or you can use a device specifically designed to create OTPs, like the Partisan Labs ADL-1 (https://www.partisanlabs.com/product-page/adl-1-one-time-pad-printer). The ADL-1 does both numeric and alphabet pads, and will also print out the codex/DIANA table and instructions for use for each OTP type.
If alpha OTPs and the DIANA table are so great, why would you continue to use the numeric OTPs ? Alpha OTPs and DIANA are for English text only, you can use numeric pads to encode pretty much any information as long as you have a codex to transform the clear text into numbers. It may be easier to disguise a numeric encode message that an alpha one, for example
SN: 98452087629837479
SN: 12193985500393948
SN: 01135641148512874
is a list of serial numbers for some parts – or its a numerically encrypted OTP message disguised as a list of serial numbers.
If you are transmitting the encrypted message with a radio using CW, it is much easier to train someone to send and receive Morse numbers only, not that anybody would do that because the FCC says that’s bad.
Regardless of the OTP type you use, do use them. There is a reason the opposition does not like you using encryption – it works.
OTP resources: