Monografias.com > Matemáticas
Descargar Imprimir Comentar Ver trabajos relacionados

El algoritmo de cifrado "Solitario"




Enviado por Bruce Schneier



     

     

    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.

     

    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":

    1. DONOT USEPC

    2. 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

    3. 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

    4. Convertimos el mensaje original de letras a
      números, A=1, B=2, etc:

      11 4 23 21 16 15 14 15 23 20

    5. Convertimos la ristra de Solitario de forma
      similar:

      15 19 11 10 10 10 7 20 13 23

    6. 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.
    7. 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.

    1. OSKJJ JGTMW

    2. Toma el mensaje cifrado y divídelo en grupos de
      cinco letras (ya debería estar en ese formato).

      KDWUP ONOWT

    3. 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

    4. Convierte el mensaje cifrado a números:

      11 4 23 21 16 15 14 15 23 20

    5. Convierte la ristra de forma similar:

      4 15 14 15 20 21 19 5 16 3

    6. 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.
    7. 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:

    1. 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.

    2. 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.

    3. 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.

    4. 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:
    5. 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.
    6. 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:

    1. 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.

    2. 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.
    3. 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

    1. 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
      .
    2. 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.
    3. 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.
    4. 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.
    5. 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.

    6. Sé cuidadoso con las notas que tomas, si
      tienes que escribir algo. Contienen información sensible.
    7. 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.
    8. 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.
    9. 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 .
    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)

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter