- Cifrar con
Solitario - Descifrar con
Solitario - Generar las letras de la secuencia
de clave - Introducir una clave en la
baraja - Seguridad real, no seguridad por
medio de oscuridad - Notas operativas
- Análisis de
seguridad - Para saber más
Bruce Schneier
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
En la novela ,
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.
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":
DONOT USEPC
- 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:KDWUP ONOWT
- Usa Solitario para generar una ristra de letras (los
detalles se dan más tarde). Supongamos que son:4 15 14 15 20 21 19 5 16 3
- Convertimos el mensaje original de letras a
números, A=1, B=2, etc:11 4 23 21 16 15 14 15 23 20
- Convertimos la ristra de Solitario de forma
similar:15 19 11 10 10 10 7 20 13 23
- 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. - 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.
La idea básica consiste en generar la misma
ristra, y restarla del texto cifrado.
OSKJJ JGTMW
- Toma el mensaje cifrado y divídelo en grupos de
cinco letras (ya debería estar en ese formato).KDWUP ONOWT
- Usa Solitario para generar la ristra. Si el receptor
usa la misma clave que el transmisor, la ristra será
la misma.15 19 11 10 10 10 7 20 13 23
- Convierte el mensaje cifrado a números:
11 4 23 21 16 15 14 15 23 20
- Convierte la ristra de forma similar:
4 15 14 15 20 21 19 5 16 3
- 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. - 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.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. - 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?.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. - 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: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 ú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: - 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.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 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. - 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.
- 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.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. - Sé cuidadoso con las notas que tomas, si
tienes que escribir algo. Contienen información sensible. - 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.
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
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 .
Es un campo divertido; buena suerte.
La implementación
en perl de "Solitario" (la única testeada
por Counterpane)
Bruce Schneier
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:
(la página oficial de la traducción
castellana es: http://www.argo.es/~jcea/artic/solitaire.htm)