Using bigraphs or trigraphs can offer a high level of privacy. Use bigraphs for brevity. Trigraphs are usually used when your code table is long, but this is not always the case.
Sending code messages like this can be done via Vernam Cipher (one time pad). See the STASI “TAPIR” with its indicator for sending code (“84”). In this example we will send a trigraph message encrypted with a one time pad (OTP) for optimal privacy.
Your message: protest meeting success, being watched at this location, do not contact
Or: XBC XIO GGG EEE QQQ
Header + Your message: YKX XBC XIO GGG EEE QQQ
Encoded with the STASI (Ministerium für Staatssicherheit) code table “TAPIR”
YKX XBC XIO GGG EEE QQQ =
___plain text ____________78617 78377 50528 37726 48357 57578 31118 36868 6883
key 13698 93797 05536 49550 66877 17941 11148 70355 75933 94896
____cipher text___________81205 61064 55054 76276 04124 64419 42256 06113 3376
Notice the Modulo 10 system of addition (one adds without carrying over)
You and your corespondent both have the one time pad key, and you both have the same code table (TAPIR in this case) and the Trigraph table. In this message we did not indicate that it would be code. But one could do that easily by inserting “84” after the header (prior to encryption). In this case both corespondents already knew that the trigraph code table would be used. The benefit of this system is that the message is not going to be broken by computational attack, and that the string of numbers in the ciphertext (in the message one will send) can be hidden. The header (YKX) indicates which key to use, and successive headers should not be sequential.