Tengo diez minutos antes de irme a estudiar grafos, la idea es hacer un tema de cifras desde el principio.
Ok, básicamente la criptología es un arte que se divide en dos:
CRIPTOGRAFIA (del griego κρύπτω krypto, «oculto», y γράφω graphos, «escribir», literalmente «escritura oculta») es el arte o ciencia de cifrar y descifrar información mediante técnicas especiales y es empleada frecuentemente para permitir un intercambio de mensajes que sólo puedan ser leídos por personas a las que van dirigidos y que poseen los medios para descifrarlos. (tomado de wikipedia)
CRIPTOANÁLISIS: Si los criptógrafos crean sistemas para hacer que un mensaje no pueda ser leído, entonces los criptoanálistas son los "crackers" de las cifras. Básicamente, son quienes encuentran las debilidades en el algoritmo de cifrado y las aprovechan para descifrar la información.
.....
Muy bien, hay que decir entonces que la criptología data desde tiempos remotos, no recuerdo bien pero hay evidencias de los egipcios utilizando tecnicas de cifrado con papiros. (Si alguien me hiciera el favor de añadir algunas referencias bien antiguas de cifras... gracias) ...
Hace mucho tiempo, cuando todos los caminos conducían a Roma, el gran Çaesar utilizaba un algoritmo de cifrado conocido por su nombre.
Antes de continuar quiero hacer unas definiciones:
texto en claro: es el mensaje comprensible por todos.
texto cifrado: es el mensaje oculto, tal que sólo es entendible si se comparte una clave.
clave= un secreto que permite descifrar el texto cifrado.
algoritmo de cifrado: procedimientos para convertir el texto en claro en texto cifrado.
algoritmo de descrifrado: procedimientos para convertir el texto cifrado en texto en claro.
La cifra cesar consiste en un algoritmo de sustitución donde a cada letra del alfabeto se le asigna un número y posteriormente se sustituye por el valor de la letra + 3.
Si consideramos las letras del inglés, entonces:
A=0,B=1,C=2....Y=24,Z=25,ESPACIO=26
TEXTO EN CLARO: HOLA MUNDO
TEXTO CIFRADO: KROD PXQGR
acá hay un sitio para hacerlo on line:
Julie's Caesar Cipher
Ahora bien, si analizamos esto, en la cifra cesar la clave sería el 3 y el algoritmo de cifrado intentaba mantenerse en secreto.
Esto es diferente a las cifras de la actualidad donde lo que se espera es contar con algoritmos de cifrado que aún conociendo el algoritmo de cifrado, no pueda recuperarse el mensaje si no se posee la clave. En realidad, las especificaciones de las cifras modernas son mas altas, la idea es que aún conociendo el texto cifrado producido por una clave desconocida para un texto claro conocido y el algoritmo de cifrado, esa información no sea suficiente para recuperar un texto cifrado si no se conoce la clave.
Ok, finalmente quiero agregar... Una generalización de la cifra cesar, conocida como la cifra affine tiene la siguiente forma:
Para cada letra del mensaje en claro p, sustituir al texto cifrado C:
con C=E([a,b],p)= (ap+b) mod 26 (note que no se considera el espacio, en realidad si el espacio se considerara, sería mod 27)
La notación anterior es utilizada por muchos autores,
E(k,p) es el algoritmo de cifrado, donde k es la clave y p el texto en claro.
D(k,c) es el algoritmo de descifrado donde k es la clave y c el texto cifrado.
Muy bien, aquí les tengo el reto...
Un requerimiento básico de cualquier algoritmo de cifrado es que sea uno a uno. Esto quiere decir, que si p! = q entonces E(k,p) != E(k,q).
Si lo anterior no se cumple, descifrar los mensajes es imposible, ya que mas de un caracter del texto en plano puede producir el mismo texto cifrado.
La cifra AFFINE no es uno-a-uno para todos los valores de a, por ejemplo, para a=2 y b=3, entonces E([a,b],0)=E([a,b],13) = 3
Hay limitaciones para el valor de b?
Existe una forma general para los valores de a, es decir, cuales valores de a son permitidos?
Si este post tiene exito, les doy la respuesta en unos días.
Saludos!