Ir al contenido principal

Entradas

Mostrando entradas de junio, 2023

Criptografía (CCLXV): Cifrado de Polibio en Excel

Ya puse una  entrada  con un script en python para cifrar y descifrar utilizando el cifrado de Polibio . Y ahora,  en este post incluyo el cifrado y descifrado utilizando este mismo   criptosistema   en Excel .  Antes de poner  el correspondiente   código Visual Basic para aplicaciones (VBA), recordar que este  cifrado se basa en una tabla de 5 filas y 5 columnas cuyas celdas se completan con las letras del alfabeto (la "I" y la "J" comparten celda, y "Ñ" excluida). Para cifrar se sustituía cada carácter del texto en claro por el dígito de la fila y el dígito de la columna en cuya intersección se encontraba éste. E l código es el siguiente : ' CIFRADO DE POLIBIO: ' ' Cifra y descifra textos en claro y criptogramas, respectivamente, ' utilizando el cifrado de Polibio. ' ' http://mikelgarcialarragan.blogspot.com/ Option Explicit Public TEXTO_CLARO As Range Public CRIPTOGRAMA As Range Public Sub Cifrar() Dim Caracter As Integer

Criptografía (CCLXIV): La escítala espartana en Excel

Ya puse una  entrada  con un script en python para cifrar y descifrar utilizando la escítala espartana . Y ahora, en este post incluyo el cifrado y descifrado utilizando este mismo   criptosistema   en Excel .  Antes de poner  el correspondiente   código Visual Basic para aplicaciones (VBA), recordar que este  cifrado se basa en sendas varas de grosor igual o similar que debían estar en posesión del emisor y del receptor del mensaje secreto, que se escribía en una cinta de cuero enrollada en una de las varas, y después se enviaba la cinta al receptor del mensaje. E l código es el siguiente : ' LA ESCÍTALA ESPARTANA: ' ' Cifra y descifra textos en claro y criptogramas, respectivamente, ' utilizando la escítala espartana. ' ' http://mikelgarcialarragan.blogspot.com/ Option Explicit Public TEXTO_CLARO As Range Public GROSOR As Range Public CRIPTOGRAMA As Range Public Sub Cifrar() Dim Longitud As Integer Dim i As Integer Dim j As Integer Range(&quo

Criptografía (CCLXIII): Ataque mediante análisis de frecuencias al cifrado afín en python

Ya puse una  entrada  con un script en python para cifrar y descifrar textos en claro y criptogramas, respectivamente, utilizando el  cifrado afín , y  otra  con un script en python para atacar criptogramas cifrados con este  criptosistema   sin saber   ni la constante de decimación ni la de desplazamiento empleadas en el cifrado . El script que puse en el segundo de los citados posts utilizaba un tipo de ataque denominado  ataque de fuerza bruta , que consiste en probar todas las posibles claves (en este caso, desplazamientos) hasta encontrar aquella que se utilizó en el cifrado, es decir, aquella cuya aplicación en el descifrado del criptograma produzca un texto en claro inteligible; lo que en el caso de este criptosistema,  recorrer el espacio de claves hasta encontrar la clave correcta, es perfectamente posible realizar  porque, aunque el espacio de claves es muy superior al del  cifrado César , es una tarea que queda al alcance de cualquier ordenador en un tiempo muy pequeño. Pues

Criptografía (CCLXII): Ataque mediante análisis de frecuencias al cifrado César en python

Ya puse una  entrada  con un script en python para cifrar y descifrar textos en claro y criptogramas, respectivamente, utilizando el  cifrado César , y otra  con un script en python para atacar criptogramas cifrados con este  criptosistema   sin saber el desplazamiento empleado en el cifrado. El script que puse en el segundo de los citados posts utilizaba un tipo de ataque denominado ataque de fuerza bruta , que consiste en probar todas las posibles claves (en este caso, desplazamientos) hasta encontrar aquella que se utilizó en el cifrado, es decir, aquella cuya aplicación en el descifrado del criptograma produzca un texto en claro inteligible; lo que en el caso de este criptosistema,  recorrer el espacio de claves hasta encontrar la clave correcta, es perfectamente posible realizar con el mínimo esfuerzo, incluso con lápiz y papel, porque el espacio de claves es minúsculo. Pues bien, en este post pongo un script en python para atacar criptogramas cifrados mediante el   cifrado César

Criptografía (CCLXI): Generación de un número primo aleatorio en python

Muy recientemente he puesto una entrada sobre un algoritmo probabilista para conocer, con un elevado nivel de confianza, si un número dado es primo o compuesto. En concreto, el script en python que puse en dicho post implementa el Test de primalidad de Miller-Rabin , que suele utilizarse para generar números primos aleatorios muy grandes. En este post pongo un script en python para la generación de un número primo aleatorio muy grande (tamaño igual o mayor que 1.024 bits).  A efectos prácticos, se suele utilizar un algoritmo como el siguiente : Al ejecutar el script se pedirá que se seleccione un tamaño mínimo de 1.024 bits para el número impar 'p' a partir del cual se generará el número primo aleatorio , ya que éste suele ser actualmente el tamaño de los dos números primos ( 'p' y 'q' ) con cuyo producto se calcula el módulo ( 'n' ), del orden de 2.048 bits, en el criptosistema RSA de cifrado asimétrico , y, por tanto, que sirven como base para ge