Código (criptografía)

Un código, en criptografía, consiste en sustituir unidades textuales con importancia semántica, habitualmente palabras o frases, para ocultar el mensaje. Por ejemplo, «cielo azul» podría significar «atacar al amanecer».  Cuando se usan códigos, la documentación secreta que relaciona cada código con la información que representa se recopila en un diccionario o libro de códigos.

En la actualidad no se suelen usar salvo para denominar operaciones encubiertas. Por ejemplo: Operación Tormenta del desierto para denominar a la operación de inicio del ataque a Irak en 1991.

Ejemplos 

En la Segunda Guerra Mundial se usaron códigos en idioma navajo para identificar mensajes militares. Por ejemplo «chai-da-gahy-nail-tsaidi» (literalmente "asesino de tortugas") quería decir «armas antitanque».

En el mundo del telégrafo era frecuente el uso de códigos. Por ejemplo había un código para mensajes domésticos. En este código el valor "73" significaba "Te quiero y besos". Otro de los códigos más famosos era el Acme Comodity and Phrase Code que asignaba códigos de cinco letras a 100 000 frases de uso común. Los códigos estaban definidos de tal forma que permitían cierto grado de detección y corrección de errores. Por este motivo se suele considerar a este código como el precursor de este tipo de prácticas.

En 1909, el gobierno británico publicó el denominado Código Q como un conjunto de abreviaturas a emplear entre sus barcos y sus instalaciones costeras. Esta lista de 45 mensajes tipificados fue adoptada en la Tercera Convención Internacional de Radiotelegrafía de Londres en 1912. Como curiosidad, la denominación del Código Q se debía a que todos los mensajes empezaban por la letra Q.

Podríamos considerar que traducir un documento a otro idioma es usar un código, el mensaje será comprensible sólo para los receptores que conozcan dicho código.

Otros ejemplos históricos 

Los presentes ejemplos están sacados del libro de David Kahn: The Codebreakers – The Story of Secret Writing.

 El Tableau de concordance empleado por los servicios diplomáticos franceses a primeros del . Tenía la precaución de advertir a sus usuarios que era más seguro enviar un mensaje en claro que enviarlo con codificaciones parciales.

 El Código de ruta de la Unión empleado por los ejércitos nordistas durante la Guerra de Secesión para sus comunicaciones telegráficas. Tenía una segunda fase de transposición de los términos ya codificados. Se trataba de un código que sustituía palabras o frases por otras palabras, debido a que los operadores del telégrafo cometían menos errores cuando se trataba de palabras reales que cuando eran series de dígitos o de letras sin sentido.

 El código 0075 del Ministerio de Asuntos Exteriores de la Alemania Imperial con el que se codificó el telegrama Zimmermann.

 El código de los almirantes japonés o JN-25 cuyo descifrado permitió a los altos mandos americanos plantear la batalla de Midway o la acción que culminó con la muerte del almirante Yamamoto. Durante la Segunda Guerra Mundial, los japoneses emplearon otros muchos códigos, con preferencia a las cifras.

Confusión con cifrado 
En el lenguaje cotidiano, y de forma incorrecta, es habitual el uso de la palabra cifra para incluir tanto a códigos como a procesos de cifrado. Tanto los códigos como los cifrados son métodos para alterar las representaciones de los mensajes para hacerlos ininteligibles a intrusos y así mantener la confidencialidad. Esencialmente un código es una sustitución de palabras o frases por otros. Sin embargo un cifrado consiste en una transformación carácter por carácter o bit por bit, según el caso, sin importar la estructura lingüística ni el significado del mensaje. Sin embargo, el concepto de código y sistemas de cifra se pueden aplicar de forma conjunta. Ese puede ser el origen del uso inadecuado de la palabra cifra. Por ejemplo:
 Un sistema de cifra puede ser usado para cifrar los símbolos de un código. 
 Se pueden usar códigos para algunas partes del mensaje, y el resto, para las que no existen códigos asociados, se pueden cifrar. A esta forma de operar se le llama nomenclátor (véase en Sustitución homófona).

Si llevamos las consideraciones al límite, un código puede ser considerado como un sistema de cifra con un alfabeto muy grande.

Referencias 

Criptografía
Cifrados clásicos