Bruce Schneier diseñó un algoritmo de cifrado seguro que
emplea únicamente una baraja de póker de 54 cartas. Se trata de un
algoritmo de cifrado en ristra o flujo ("stream", en inglés), y ha sido
diseñado para que sea sencillo y fácil de realizar a mano, sin apoyo
informático. El algoritmo se llama "Solitario" y fue creado para la
novela Cryptonomicon (2000), de Neal Stephenson (publicada en
castellano en tres volúmenes por Ediciones B a lo largo del año 2002 con
el título Criptonomicón).
El algoritmo se basa en mover las cartas del mazo siguiendo una serie de
pasos, y combinar sus resultados con el documento a cifrar. La clave
está constituida por la disposición inicial de las 54 cartas de la
baraja de póker, por lo que su fortaleza aparente es de 54! (54
factorial), aproximadamente 236 bits.
Se da la curiosa circunstancia de que este algoritmo parece lo bastante
seguro como para que sea considerado como tecnología militar de doble
uso (como las minas o las balas de ametralladora) por parte del gobierno
estadounidense. Este hecho podría suponer la ilegalidad de exportar el
conocimiento de dicho algoritmo a países extranjeros.
Sin embargo la legislación de EE.UU. protege la libertad de expresión
escrita, por lo que se permitiría la exportación sin problemas si el
algoritmo se describiese en un libro editado de forma legal, con ISBN,
etc. Y eso es precisamente lo que se hace en la novela de Neal
Stephenson, en la que "solitaire" aparece como un apéndice.
Parece increíble que un algoritmo criptográfico tan sencillo, que puede
memorizarse y utilizarse de forma manual, pueda estar sujeto a
legislación militar. Pero la legislación norteamericana es así. En
cualquier caso Bruce Schneier ha tomado la iniciativa y ha decidido
publicar una página web en la que describe con todo detalle el
algoritmo, proporciona ejemplos, consejos de uso, código fuente para los
que deseen utilizarlo con un ordenador y vectores de prueba para
comprobar que las implementaciones son correctas.
El documento original está escrito en inglés, pero Jesús Cea Avión se ha
encargado de traducirlo al castellano y hablar con Bruce Schenier para
que añada enlaces a la traducción. En este momento, además de la versión
en inglés y la versión en castellano recientemente traducida, existen
también traducciones oficiales al francés y al alemán.
Nota publicado en el boletín "Una-Al-Día", de Hispasec, el 28-9-1999
El algoritmo de cifrado "Solitario"
Bruce Schneier
En la novela Criptonomicón,
de Neal
Stephenson, el personaje Enoch Root describe un criptosistema
llamado "Pontifex" a otro personaje llamado Randy Waterhouse, y más
tarde le revela que los pasos del algoritmo están pensados para
desarrollarse usando una baraja de cartas. Estos dos personajes
intercambian varios mensajes cifrados utilizando este sistema. El
sistema se llama "Solitario" (en la novela, "Pontifex" es un nombre
clave que pretende disimular el hecho de que se emplee una baraja) y lo
diseñé para permitir a un agente el comunicarse de forma segura sin
tener que depender de la electrónica o de tener que llevar herramientas
incriminadoras. Un agente podría encontrarse en una situación en la que
simplemente no tiene acceso a un ordenador, o puede ser perseguido si
posee herramientas para comunicaciones secretas. Pero una baraja...
¿Qué hay de malo en ello?
Solitario obtiene su seguridad de la aleatoriedad inherente a las cartas
bien barajadas. Manipulando la baraja, un comunicante puede crear una
cadena de letras "aleatorias" que luego combina con su mensaje. Por
supuesto Solitario puede ser simulado con un ordenador, pero está
diseñado para ser utilizado a mano. Solitario
puede parecer "low-tech", pero se pretende que su seguridad sea
"high-tech". Diseñé Solitario para que fuera seguro incluso contra
adversarios militares bien financiados, con los ordenadores más potentes
y los criptoanalistas más inteligentes. Por supuesto, no existe ninguna
garantía de que alguien encuentre un ataque contra Solitario
(permanezcan atentos a esta página para futuras actualizaciones), pero
el algoritmo es ciertamente mejor que cualquier otro cifrado de lápiz y
papel que haya visto nunca. No es rápido, no
obstante. El cifrar o descifrar un mensaje razonablemente largo puede
llevar una tarde. En el libro de David Kahn, "Kahn on Codes", se
describe un cifrado de lápiz y papel real, utilizado por un espía
soviético. Tanto el algoritmo soviético como Solitario consumen
aproximadamente el mismo tiempo para cifrar un mensaje: la mayor parte
de una tarde.
Cifrar con Solitario
Solitario es un cifrado "stream", en modo "output-feedback" (salida-
retroalimentación). Algunas veces se les llama generadores de claves
("Key-Generator", KG en la jerga militar de EE.UU.). La idea básica es
que Solitario genera una ristra de números, llamada "keystream" (ristra
o secuencia de clave), entre 1 y 26. Para cifrar, se genera una ristra
de longitud igual al texto original. Seguidamente se suman, módulo 26,
letra a letra al texto original, para crear el texto cifrado. Para
descifrar, se genera la misma ristra y se resta, módulo 26, del texto
cifrado. No te preocupes, explicaré qué es "módulo" en un minuto.
Por ejemplo, para cifrar el primer mensaje mencionado en la
novela de Stephenson, "DO NOT USE PC":
Divide el mensaje original en grupos de cinco letras (No hay nada
mágico respecto a los grupos de cinco letras, es sólo tradición). Usa "X"
para completar el último grupo. Así, si el mensaje es "DO NOT USE PC", el
texto se transformará en: DONOT USEPC
Usa Solitario para generar una ristra de letras (los detalles se dan más tarde). Supongamos que son:
KDWUP ONOWT
Convertimos el mensaje original de letras a números, A=1, B=2, etc:
4 15 14 15 20 21 19 5 16 3
Convertimos la ristra de Solitario de forma similar:
11 4 23 21 16 15 14 15 23 20
Sumamos los números de mensaje original con los correspondientes
de la ristra Solitario, módulo 26. Es decir, si suman más de 26, restamos
26 de resultado. Por ejemplo, 1+1=2, 26+1=27, y 27-26=1, así que 26+1=1.
15 19 11 10 10 10 7 20 13 23
Convertimos los números de nuevo a letras:
OSKJJ JGTMW
Si eres realmente bueno, puedes aprender a sumar
letras en tu cabeza, y simplemente sumar las letras del paso (1) y (2).
Sólo hace falta un poco de práctica. Es fácil recordar que A+A=B;
recordar que T+Q=K es más difícil.
Descifrar con Solitario
La idea básica consiste en generar la misma ristra, y
restarla del texto cifrado.
Toma el mensaje cifrado y divídelo en grupos de cinco letras (ya debería estar en ese formato).
OSKJJ JGTMW
Usa Solitario para generar la ristra. Si el receptor usa la misma clave que el transmisor, la ristra será la misma.
KDWUP ONOWT
Convierte el mensaje cifrado a números:
15 19 11 10 10 10 7 20 13 23
Convierte la ristra de forma similar:
11 4 23 21 16 15 14 15 23 20
Resta a cada número del texto cifrado el número correspondiente
de la ristra, módulo 26: for ejempo, 22-1=21, 1-22=5. Es fácil. Si el primer
número es menor o igual que el segundo, sumamos 26 al primer número antes
de restar. Así, 1-22 se convierte en 27-22=5. 4 15 14 15 20 21 19 5 16 3
Convierte los números a letras:
DONOT USEPC
Como puedes ver, descifrar es igual que cifrar, salvo que al mensaje
cifrado se le resta la ristra obtenida con Solitario.
Generar las letras de la secuencia de clave
Esto es el corazón de Solitario. Las descripciones del cifrado y descifrado
dadas más arriba funcionan para cualquier cifrado tipo "ristra"
(stream) en modo
"output-feedback". Es la manera en que funciona RC4. También es la manera
en que funciona DES en modo OFB. Esta sección es específica a Solitario,
y explica cómo Solitario genera la ristra. Solitario genera la ristra utilizando una baraja de cartas. Puedes
pensar en una baraja de 54 cartas (no olvides los dos comodines) como una
permutación de 54 elementos [El texto original en inglés se refiere,
evidentemente, a una baraja de póker. N. del T.].
Hay 54!, sobre 2.31*10^71 posibles ordenamientos de la baraja. Mejor aún,
hay 52 cartas en una baraja (sin los comodines), y 26 letras en el alfabeto.
Este tipo de coincidencia es demasiado buena para dejarla pasar. Para utilizar Solitario, se necesita una baraja con las 52 cartas
y los dos comodines. Los comodines deben ser diferentes. (Esto es habitual.
La baraja que estoy usando mientras escribo tiene estrellas en sus comodines:
uno tiene una estrella pequeña, y el otro tiene una estrella grande). Llámalo
a uno comodín A y al otro comodín B. Generalmente hay algún elemento gráfico
en los comodines que es igual, pero de diferente tamaño. Llama "B" al comodín
que lo tiene más "grande". Es más fácil si puedes escribir una gran "A" y
una gran "B" en los comodines, pero recuerda que tendrás que explicárselo
a la policía secreta si alguna vez te cogen. Para inicializar la baraja, cógela con la mano, cara arriba. Luego
ponlas en su configuración inicial, que será su clave (hablaré de la clave
más tarde, porque es un tema diferente a generar la ristra en sí). Ahora
estás preparado para producir una ristra. He aquí cómo generar un carácter. Esto es Solitario:
Encuentra el comodín A. Intercámbialo con la carta que tiene debajo.
Si el comodín está al final de la baraja, ponlo debajo de la primera carta.
Encuentra el comodín B. Muévelo bajo la carta que está debajo
de la que tiene debajo. Si el comodín está al final de la baraja, muévelo
debajo de la segunda carta. Si el comodín es la penúltima carta, muévelo
debajo de la primera carta. Básicamente asume que la baraja es un bucle,
¿te haces la idea?.
Es importante realizar los dos pasos anteriores en orden. Es tentador
volverse perezoso y simplemente mover los dos comodines cuando los encuentras.
Eso también funciona, a menos que estén muy cerca el uno del otro. Así que si la baraja está en esta situación antes del paso 1:
A 7 2 B 9 4 1
al final del paso 2 debería ser
7 A 2 9 4 B 1
Y si la bajara fuese:
3 A B 8 9 6
Al final del paso 2 debería ser:
A 3 8 9 B 6
Si tienes alguna duda, recuerda mover el comodín A antes que el B. Y ten
cuidado cuando los comodines se encuentren al final de la baraja. Si un comodín
es la última carta, imagínatela como si fuera la primera carta, antes de
empezar a contar.
- Corta la baraja en tres, intercambiando las cartas antes
del primer comodín con las cartas que están detrás del segundo comodín. Si
la baraja fuera:
2 4 6 B 5 8 7 1 A 3 9
entonces tras el corte la baraja sería:
3 9 B 5 8 7 1 A 2 4 6
"Primer" y "segundo" comodín se refiere al comodín que está más arriba
o más abajo respecto al extremo de la baraja. Ignora el hecho de que un comodín
es "A" y otro es "B", en este paso.
Recuerda que los comodines y las cartas entre ellos no se mueven.
Esto es fácil de hacer con las manos. Si no hay cartas en una de las secciones
(porque los comodines están juntos, o porque uno está arriba y otro debajo
de la baraja), simplemente considera esa sección como vacía y muévela de
todos modos. Si la baraja es: B 5 8 7 1 A 3 9
Tras el corte el intercambio, será:
3 9 B 5 8 7 1 A
Una baraja
B 5 8 7 1 A
no sufrirá ningún cambio tras este paso.
Mira la última carta. Conviértela a un número de 1 a
53 (usa el orden normal: tréboles, diamantes, corazones y picas. Si la carta
es un trébol, toma su número tal cual. Si es de diamantes, suma 13 a su valor.
Si es de corazones, súmale 26. Si es de picas, súmale 39. Ambos comodines
suman 53). Cuenta el valor valor obtenido empezando en la carta superior
(normamente yo cuento de 1 a 13 una y otra vez, si es preciso; es más fácil
que contar hasta un número alto de forma secuencial). Corta tras esa carta,
dejando la última carta de la baraja a final. Si la baraja es: 7 ... cartas ... 4 5 ... cartas ... 8 9
y la novena carta es el 4, el corte sería:
5 ... cartas ... 8 7 ... cartas ... 4 9
La razón de dejar la última carta en su lugar es para hacer el último
paso reversible. Esto es importante a la hora de analizar su seguridad de
forma matemática. Una baraja con un comodín como última carta queda igual tras este paso. No hay cambios.
Asegúrate de no invertir el orden cuando cuentes las cartas. La forma
correcta de contar es pasar las cartas de una mano a la otra. No hagas montones
sobre la mesa. Mira la primera carta. Conviértela en un número de 1
a 53, de la misma manera que en el paso 4. Cuenta esas cartas (la primera
carta es la uno). Escribe la carta tras la que hayas terminado en un papel;
no la quites de la baraja. Si la carta es un comodín, no la apuntes, y vuelve
al paso 1. Este paso no modifica el estado de la baraja.
Convierte la carta del paso anterior en un número. Del As
de tréboles al Rey de tréboles se cuentan del 1 a 13. Del As de diamantes
al Rey de diamantes se cuentan como 14-26. Del As de corazones al Rey de
corazones se cuentan como 1 a 13. Por último, del As de picas al Rey de picas
se cuentan como 14 a 26. Necesitamos ir de 1 a 26, no de 1 a 52, para poder
convertir a letras.
Así es como Solitario cifra un carácter. Se usan estos pasos para generar
una ristra tan larga como sea necesario; simplemente se repiten los pasos
tantas veces como sea preciso, sin barajar el mazo. Y, recuerda, necesitarás
una ristra tan larga como el mensaje original. Sé que cada país tiene barajas diferentes. En general, no importa
cómo se ordenen las cartas o cómo se conviertan las cartas a números. Lo
que importa es que el remitente y el receptor se pongan de acuerdo en las
reglas. Si no eres consistente, no te podrás comunicar.
Introducir una clave en la baraja
Antes de empezar a generar la ristra, es necesario
"introducir" una clave en la baraja. Ésta es, probablemente, la parte
más importante de toda la operación, y en la que se basa toda la
seguridad del sistema. Solitario es sólo tan seguro como lo sea su
clave. Es decir, la forma más fácil de romper Solitario es imaginarse
qué clave se está utilizando. Si no tienes una buena clave, el resto no
importa. He aquí algunas sugerencias para realizar el intercambio de
claves:
Utiliza dos mazos barajados de la misma manera. Las claves aleatorias
son las mejores. Uno de los comunicantes puede barajar un mazo de forma aleatoria,
y luego copiar la distribución de las cartas en el otro mazo (para así obtener
dos mazos iguales). Uno de los mazos es empleado por el emisor, y el otro
por el receptor. La mayoría de la gente no son buenos barajando, así que
baraja el mazo al menos seis veces. Ambas partes deben tener otra baraja
adicional ordenada de la misma forma, porque si se comete algún error nunca
se podrá descifrar el mensaje. Recuerda también que la clave corre peligro
mientras exista; la policía secreta podría encontrar la baraja y simplemente
copiar su orden.
Usa un orden de Bridge. La descripción de una mano de bridge
en un periódico o en un libro de bridge constituye una clave de aproximadamente
95 bits. Ponte de acuerdo con el otro comunicante en la forma de convertir
el diagrama en un orden concreto para tu baraja. Luego ponte de acuerdo sobre
la forma de meter los dos comodines en el mazo. Una posibilidad obvia es
poner el comodín A tras la primera carta que se mencione en el texto, y el
comodín B tras la segunda carta mencionada en el texto. Sé prevenido, no obstante; la policía secreta puede encontrar tu columna
de bridge y copiarla. Puedes intentar acordar alguna convención sobre qué
columna de bridge utilizar; por ejemplo "usar la columna en el periódico
local de tu ciudad natal correspondiente al día que se cifre el mensaje",
o algo por el estilo. O una una lista de palabras clave en el web del New York Times,
y usar la columna de bridge del día del artículo que aparezca cuando buscas
esas palabras clave. Si se encuentran las palabras clave, o son interceptadas,
parecerán una "frase de paso". Y elige tus propias convenciones a la hora
de convertir las columnas de bridge en un ordenamiento para la baraja. Recuerda
que la policía secreta también lee los libros de Neal Stephenson.
Usa una "frase de paso" para ordenar la baraja.
Este método utiliza el algoritmo Solitario para crear un ordenamiento
inicial del mazo. Ambos, el emisor y el receptor, comparten una frase de
paso (por ejemplo, "CLAVE SECRETA"). Empezar con el mazo en un orden
fijo; de la carta más baja a la más alta, con los palos en el orden
visto previamente, y con los dos comodines al final, primero el A y
luego el B. Ahora utilizamos Solitario, tal cual, pero al llegar al paso
5 contamos según el número que corresponda a la primera letra de la
frase de paso. En otras palabras, volvemos a realizar el paso 4, pero
usando el número que corresponda a la primera letra de la palabra de
paso, en vez de usar el número correspondiente a la última carta de la
baraja. Recuerda poner las cartas de arriba justo debajo de la última
carta de la baraja, como antes.
Repetimos los cinco pasos de Solitario tantas veces
como letras tenga la palabra de paso. Es decir, la segunda vez
utilizaremos la segunda letra, la tercera vez la tercera letra, etc.
Paso opcional (no utilizado con los ejemplos que
siguen): Usa los dos últimos caracteres para situar los comodines. Si la
penúltima letra es una G (es decir, 7), ponemos el comodín A tras la
séptima carta. Si la última letra es una T (es decir, 20), ponemos el
comodín B tras la carta número 20.
Recuerda, no obstante, que sólo hay unos 1.4 bits de
aleatoriedad por cada letra, en el inglés estándar [el castellano es
similar. N. del T.]. Necesitarás frase de paso de al menos 64
caracteres para hacerlo seguro. Yo recomendaría emplear al menos 80
letras, sólo por si las moscas. Lo siento; no puedes tener buena
seguridad con claves más cortas.
Ejemplos
He aquí algunos ejemplos para practicar tus
habilidades con Solitario:
- Ejemplo 1: Empieza con un mazo ordenado: de As de tréboles a Rey
de tréboles, y luego diamantes, corazones y picas. Finalmente el comodín
A y luego el comodín B. Puedes ver esta baraja como 1 .. 52, A, B.
Veamos cómo generamos una ristra de dos caracteres. La baraja inicial es:
1 2 3 4 ... 52 A B
Tras el primer paso (mover el comodín A):
1 2 3 4 ... 52 B A
Tras el segundo paso (mover el comodín B):
1 B 2 3 4 ... 52 A
Tras el tercer paso:
B 2 3 4 ... 52 A 1
Tras el cuarto paso:
2 3 4 ... 52 A B 1
La última carta es un uno, lo que significa mover una carta. Recuerda que el 1 debe quedarse donde está, al final de la baraja.
El quinto paso no cambia el mazo, sino que produce el primer carácter
de la ristra. La primera carta es un 2, así que contamos 2 cartas, hasta
el 4. El primer número de la ristra será el "4". No modifiques la baraja;
simplemente copia ese valor en alguna parte. Para obtener el segundo número, procedemos a repetir los cinco pasos:
Paso 1:
2 3 4 ... 49 50 51 52 B A 1
Paso 2:
2 3 4 ... 49 50 51 52 A 1 B
Paso 3:
A 1 B 2 3 4 ... 49 50 51 52
Paso 4:
51 A 1 B 2 3 4 ... 49 50 52
La última carta es 52, así que cuenta 52 cartas, hasta la 51. Mueve esa
carta, la 51, al principio del mazo. Recuerda que la última carta, la 52,
no debe moverse. El paso 5 genera el número que estamos buscando. La primera carta
es un 51, así que contamos 51 cartas, hasta llegar a la 49, que es el valor
que estamos buscando. Como antes, no quites esa carta del mazo. Los primero diez números así obtenidos son:
4 49 10 (53) 24 28 51 44 6 4 33
El 53 nos lo saltamos, por supuesto. Sólo lo ponemos como demostración.
Si el texto a cifrar es
AAAAA AAAAA
el texto cifrado será
EXKYI ZSGEH
Ejemplo 2: Usando el sistema de fijado de clave número 3,
y la clave "FOO" (recuerda que el paso opcional no se emplea en estos ejemplos),
los primeros 15 valores obtenidos serían: 8 19 7 25 20 (53) 9 8 22 32 43 5 26 17 (53) 38 48
Si el texto original fuera todo A's, el texto cifrado sería
ITHZU JIWGR FARMW
Ejemplo 3: Usando el sistema de fijado de clave número 3, y la clave "CRYPTONOMICON", el mensaje "SOLITAIRE", cifrado, sería:
KIRAK SFJAN
Recuerda que se emplean X's para completar el último grupo de 5 letras.
Por supuesto, tú deberías utilizar claves más largas.
Estos ejemplos son únicamente una demostración. Hay más ejemplos en el
web, y puedes usar un script en perl para generar los tuyos propios
[Bruce se refiere al web original. El enlace al mismo se
encuentra al final de este documento. N. del T.].
Seguridad real, no seguridad por medio de oscuridad
Solitario está diseñado para ser seguro incluso si el
enemigo sabe cómo funciona el algoritmo. He supuesto que "Criptonomicón"
será un best-seller, y que habrá copias del libro en todas partes. He
supuesto también que la NSA y el resto del mundo estudiarán el
algoritmo. Asumo que el único secreto es la clave.
Por eso mantener la clave en secreto es tan
importante. Si tienes un mazo de cartas en lugar seguro, deberías
asumir, al menos, que el enemigo sabe que estás usando Solitario. Si
tienes una columna de bidge en tu caja fuerte, deberías esperar que se
alzasen algunas cejas. Si se sabe que algún grupo está empleando el
algoritmo, cuenta con que la policía secreta mantenga una base de datos
de columnas de bridge para ser utilizadas como ataque. Solitario es
seguro aunque tu enemigo sepa que lo estás utilizando, y un simple mazo
de cartas es mucho menos incriminatorio que un programa de cifrado en tu
portátil.
Notas operativas
La primera regla de cualquier sistema de cifrado
en modo "output-feedback" es que NUNCA debes emplear la misma clave para
cifrar dos mensajes diferentes. Repite: NUNCA UTILICES LA MISMA
CLAVE PARA CIFRAR DOS MENSAJES DIFERENTES. El hacerlo rompe
irremediablemente la seguridad del sistema. La razón es simple: Si
tienes dos textos cifrados, Ak y B+k, y estas uno del otro, obtienes
(A+K)-(B+K)=A-B. Es decir, la resta de dos textos sin cifrar, sin
ninguna clave, y eso es muy fácil de romper. Confía en mí en ese
aspecto: tú puedes no saber recuperar los mensajes A y B a partir de
A-B, pero un criptoanalista profesional sí puede. Esto tiene una
importancia vital: nunca utilices la misma clave para cifrar dos
mensajes diferentes.
Usa mensajes cortos. Este algoritmo está diseñado
para ser empleado con mensajes muy cortos: un par de miles de caracteres
como mucho. Usa abreviaturas, jerga, etc. Si tienes que cifrar una
novela de 100.000 palabras, utiliza un ordenador.
Como todos los cifrados "output-feedback", este sistema
tiene la desagradable característica de que nunca se recupera de un error.
Si estás cifrando un mensaje y cometes un error en una de las operaciones,
todas las letras siguientes serán también erróneas. No podrás descifrar el
mensaje, aunque tengas la clave correcta. Y nunca lo sabrás. Así que si estás
cifrando un mensaje, revisa todos los pasos del cifrado dos veces para estar
seguro de que no cometes un error. Si estás descifrando un mensaje, asegúrate
de que éste tiene sentido a medida que lo vas abriendo. Si estás empleado
como clave una baraja ordenada de forma aleatoria, haz una copia de ella,
por la misma razón.
Solitario es reversible. Es decir, que si dejas el mazo
por ahí cuando has cifrado un mensaje, la policía secreta puede encontrarlo
y rehacer el algoritmo hacia atrás, usando la baraja. Este proceso puede
recuperar toda la ristra y descifrar un mensaje. Es importante que barajes
el mazo completamente, seis veces, cuando termines de cifrar un mensaje.
Para mayor seguridad, intenta hacer todos los pasos a mano
y dentro de tu cabeza. Si la policía secreta irrumpe en tu habitación, simplemente
baraja el mazo. No lo tires al aire; te sorprendería saber hasta qué punto
las cartas mantienen su orden. Recuerda barajar la copia del mazo, si tienes
una.
Sé cuidadoso con las notas que tomas, si tienes que escribir algo. Contienen información sensible.
Quemar las notas es, probablemente, la forma más segura de deshacerse
de ellas. Pero piensa en el tipo de papel. El papel sin cola, el papel de
arroz utilizado en los cigarrillos, parece ideal. Un colega hizo algunas
pruebas con papel "Club Cabaret Width", y ardían completamente. No es tan difícil escribir sobre papel de fumar como podría pensarse.
Usar un lápiz del número 2 con una punta fina pero roma funciona bien. El
lápiz número 3 es aún mejor, pero es algo un poco raro para llevarlo por
ahí. Los bolígrafos tienen varios problemas. Su punta dura puede dejar marcas
en la superficie bajo el papel. Además, la tinta puede filtrarse y manchar
la superficie inferior. El papel de fumar está fabricado para quemarse completamente de forma
limpia. El papel "Club" arde mejor cuando se quema al aire libre. Es decir,
se enciende y se deja caer desde la altura del pecho. Este tipo de papel
tiene la ventaja adicional de que ocupan muy poco volumen y se puede comer
fácilmente si es preciso. También son
extremadamente finos. Esos papeles, cuadrados de unas tres pulgadas
[7,5 cm - N. del T.],
pueden doblarse seis veces en un cuadrado de un centímetro de lado y de un
milímetro de grosor. Una de esas hojas acomoda fácilmente 80 caracteres en
8 filas de bloques de 5 letras cada uno. Para alguien cuidadoso parece bastante
factible el escribir hasta 120 caracteres.
Solitario puede implementarse en un ordenador. A menudo
sólo uno de los extremos de la comunicación emplea una baraja; el otro extremo
es lo bastante seguro como para emplear un ordenador. Usa el ordenador cuando
puedas: es más rápido, y un ordenador no comete errores. - La mayoría de los juegos de cartas no incluyen comodines,
así que llevar encima una baraja con comodines puede resultar sospechoso.
Prepárate alguna historia.
La seguridad de Solitario no depende del secretismo alrededor
del algoritmo. Asumo que la policía secreta sabe que lo estás empleando.
Análisis de seguridad
Hay mucho, pero es demasiado complejo para reproducirlo aquí.
Ve a http://counterpane.com o
escribe a Counterpane Systems, 1711 North Ave #16, Oak Park, IL 60302
Para saber más
Recomiendo mi propio libro, Applied Cryptography (John Wiley
& Sons, 1996), como un buen lugar para empezar. Luego lea The
Codebreakers, por David Kahn (Scribner, 1996). A continuación, hay varios
libros sobre criptografía informática y varios sobre criptografía
manual. Puedes suscribirte a mi boletín de correo
electrónico gratuito en
http://www.counterpane.com/crypto-gram.html o enviando un mensaje de
correo en blanco a crypto-gram-subscribe@chaparraltree.com.
Es un campo divertido; buena suerte.
La implementación en perl de "Solitario" (la única
testeada por Counterpane)
Esta página es una traducción de la original en inglés de Bruce Schneier. En la original se pueden encontrar enlaces a código fuente, vectores de prueba y traducciones a diferentes idiomas.
Copyright Counterpane Internet Security, Inc., 2002
Traducción castellana: jcea@argo.es (la página oficial de la
traducción castellana es:
http://www.argo.es/~jcea/artic/solitaire.htm)
volver al índice de la Biblioweb
|