Ir al contenido principal

Entradas

Criptografía (CCLX): Test de primalidad de Miller-Rabin en python

Continúo poniendo scripts de programación en python para automatizar tareas que tengan relación con la  criptografía . En este post incluyo un  script en python que implementa el   Test de primalidad de Miller-Rabin , posiblemente el algoritmo probabilista   más utilizado para conocer con un alto grado de certeza si un número es primo o compuesto . La cuestión de conocer si un número dado es primo o compuesto se conoce como el problema de la primalidad. Ya expliqué en este post la importancia que tiene esta cuestión en la criptografía moderna (por ejemplo, a la hora de generar el par de claves, pública y privada, para un usuario en el criptosistema RSA de cifrado asimétrico ) y que no es un asunto trivial cuando se trata de números muy grandes , ya que no se pueden utilizar algoritmos deterministas para saber con seguridad matemática al 100% si un número dado es o no primo, por lo que se recurre a algoritmos probabilistas muy simples y eficiente ( Test de pri...

Criptografía (CCLIX): Cifrado RC4 en python

Continúo poniendo scripts de programación en python para automatizar tareas que tengan relación con la  criptografía . En esta entrada incluyo un  script en python para el cifrado y descifrado utilizando el   cifrado RC4 . Ya expliqué en este post qué es y las tres etapas en las que consiste el cifrado utilizando este criptosistema , pero antes de poner el script lo recuerdo muy brevemente. RC4 es un algoritmo de c ifrado simétrico   (se utiliza la misma clave para cifrar y para descifrar) y de flujo   (' Stream cipher' ), es decir,  opera habitualmente  byte a byte   sobre un texto en claro o mensaje a cifrar y una secuencia cifrante, pero puede operar sobre cualquier tamaño (bit a bit,...). -  Cifrar : -  Descifrar : Para descifrar  basta con realizar la operación  XOR de cada byte del criptograma con cada byte de la secuencia cifrante  para obtener el texto en claro. -  Script python del cifrado RC4 : El  sc...

Criptografía (CCLVIII): Cifrado Atbash en Excel

Ya puse una  entrada  con un script en python para cifrar y descifrar utilizando el cifrado Atbash , y en ésta pongo el  código Visual Basic para aplicaciones (VBA) para automatizar en Excel esa misma tarea . El  cifrado Atbash  es un criptosistema de sustitución simple monoalfabética de alfabeto invertido, es decir, cada carácter del texto en claro se sustituye siempre por el  mismo carácter en el texto cifrado, el situado en la misma posición que el carácter del texto en claro en el alfabeto con el orden de los caracteres invertido. E l código es el siguiente : ' CIFRADO ATBASH: ' ' Cifra y descifra textos en claro y criptogramas, respectivamente, ' utilizando el cifrado Atbash. ' ' http://mikelgarcialarragan.blogspot.com/ Option Explicit Public TEXTO_CLARO As Range Public CRIPTOGRAMA As Range Public Sub Cifrar() Dim Caracter As Integer Range("TEXTO_CLARO").Value = A_Z(UCase(Replace(Range("TEXTO_CLARO").Value, " ", ...

Criptografía (CCLVII): Cálculo de la Entropía (H) en Excel

Ya puse una  entrada  con un script en python para calcular la  Entropía  (H) de un texto, y en ésta pongo el código Visual Basic para aplicaciones (VBA) para automatizar en Excel esa misma tarea. Antes de poner el código y un ejemplo de su funcionamiento, recordar  qué es y cómo se calcula . la   Entropía   (H)  mide la incertidumbre de una fuente de información y puede ser considerada como la cantidad de información promedio que contienen los símbolos usados . Donde: H : Entropía. M : mensaje o texto. m i : carácter i-ésimo del mensaje o texto. p(m i ) : probabilidad de aparición del carácter i-ésimo en el mensaje o texto. n : número de caracteres o tamaño del mensaje o texto. E l código es el siguiente : ' ENTROPÍA (H): ' ' Cálculo de la Entropía (H) de un texto. ' ' http://mikelgarcialarragan.blogspot.com/ Option Explicit Public TEXTO As Range Public H As Range Public Sub Calcular_H() Dim Alfabeto As String Di...

Criptografía (CCLVI): Cálculo del Índice de Coincidencia (IC) en Excel

Otra entrada con la automatización, esta vez en Excel, de una tarea que tiene relación con la criptografía . Ya puse una  entrada  con un script en python para calcular el Índice de Coincidencia (IC) , y ahora le toca el turno a la programación de esto mismo con Visual Basic para Aplicaciones en Excel . Antes de poner el código y un ejemplo de su funcionamiento, recordar que en este post expliqué qué es y cómo se utiliza el IC para atacar cifrados de sustitución polialfabética con claves periódicas. El  IC  es la probabilidad de que dos letras tomadas al azar de un texto sean iguales  y, por tanto, para su cálculo utilizaremos la siguiente fórmula (número de casos favorables / número de casos posibles): Donde: f i : frecuencia o número de ocurrencias del carácter i-ésimo del alfabeto (de la "A" a la "Z") en el texto. N : número de caracteres o tamaño del texto . E l código es el siguiente : ' ÍNDICE DE COINCIDENCIA (IC): ' ' Cálculo del IC de un texto...

Criptografía (CCLV): Cifrado César en Excel

Ya puse una entrada con un script en python para cifrar y descifrar utilizando el  cifrado César . Y ahora, en este post incluyo el cifrado y descifrado utilizando este mismo criptosistema en Excel . La programación la he realizado con Visual Basic para Aplicaciones (VBA) y, como en los posteriores posts que pondré con la automatización en Ex cel de tareas que ya haya hecho en python, no he pensado en "traducir" directamente el código de un lenguaje a otro, sino que la forma de implementar un mismo asunto puede variar sustancialmente, aunque evidentemente el resultado final pretenda ser el mismo. Asimismo, en estos posts relativos a Excel no entraré en el detalle de los sistemas criptográficos y otros asuntos a implementar, ya que los he explicado profusamente en entradas anteriores, si no que me limitaré a poner el código y un ejemplo de su funcionamiento. Dicho lo anterior, en este caso el código es el siguiente : ' CIFRADO CÉSAR: ' ' Cifra y descifra textos ...

Criptografía (CCLIV): Cálculo de la Entropía (H) en python

Continúo poniendo scripts de programación en python para automatizar tareas que tengan relación con la  criptografía . En este post incluyo y comento un  script en python para el cálculo de  la Entropía  (H). De lo que nos cuenta wikipedia sobre la En tropía (H) en el ámbito de la información, entiendo que ésta mide la incertidumbre de una fuente de información y puede ser considerada  como la cantidad de información promedio que contienen los símbolos usados . Aplicando lo anterior a un mensaje sin cifrar o texto en claro y considerando los caracteres del alfabeto como los símbolos empleados, se puede decir que  la cantidad de información (I) de un carácter del alfabeto se define como : Donde: I : cantidad de información. A : carácter "A" del alfabeto. P(A) : probabilidad de aparición del carácter "A" en el mensaje sin cifrar o texto en claro. Es decir, cuanto más alta sea la probabilidad de aparición de un carácter concreto, menos cantidad de informa...