Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como Cifrado RSA

Criptografía (CCLXXIX): Descifrado RSA y verificación firma digital en python

En el post anterior puse un script  en python para  implementar la firma digital y el cifrado con el algoritmo   RSA , y en éste  incluyo otro  script en python para  implementar el descifrado con el mismo algoritmo y la verificación de la firma digital , e s decir, para las operaciones  que se realizan en la comunicación en el lado del receptor. Como se ve en la figura anterior, la clave de sesión (la clave con la que se ha cifrado el texto en claro), se descifra utilizando la clave privada del receptor  ( criptografía asimétrica ) , que es el único que la posee y, por tanto, el único que puede descifrarla, y  posteriormente se descifra el criptograma o texto en claro cifrado mediante la clave de sesión ( criptografía simétrica ). Tal y como indique en el citado post , este esquema de cifrado, además de para mantener el secreto de la comunicación ( confidencialidad ), sirve  para garantizar al receptor que el emisor  es realmente ...

Criptografía (CCLXXVIII): Firma digital y cifrado RSA 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 para  implementar la firma digital y el cifrado con el algoritmo   RSA . Antes de poner el script, recordar que en  este post  decía que el algoritmo   RSA   s irve tanto para cifrar y descifrar (confidencialidad) como para firmar digitalmente un texto en claro (autenticidad e integridad) , y que en la práctica se usa en el cifrado híbrido para cifrar una clave de sesión (un número) que, a su vez, se utiliza como clave para cifrar el mensaje o archivo completo mediante un algoritmo de cifrado simétrico .  Esto es debido a que  RSA  ( criptografía asimétrica ) es menos eficiente,  es decir, es más lento y consume más recursos,  que un  algoritmo de los usados en criptografía simétrica . Para hacer ambas cosas más eficientes, l os esquemas modernos de cifrado ut...

Criptografía (CCLXXVII): Generación de claves RSA 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 para la generación del par de claves de un usuario, pública y privada, en RSA . Antes de poner el script, recordar que en  este post  expliqué cómo se generaban ambas claves en este  criptosistema , posiblemente  el  algoritmo de cifrado asimétrico más utilizado actualmente y que debe su nombre a las iniciales de los apellidos de sus tres inventores: Ronald Rivest , Adi Shamir y Leonard Adleman , que lo desarrollaron en 1977. Conforme a lo que indiqué en el citado post, l a generación del par de claves para un usuario consiste en : 1.-Se eligen aleatoriamente dos numero primos grandes ( p  y  q ), actualmente de un tamaño mínimo de 1.024 bits cada uno de ellos, y se calcula el producto ( n ) de ambos. Es decir,  n = pq . 2.- Se calcula la  función de Euler del módulo...

Criptografía (LIII): ataque a RSA mediante factorización (IV)

En esta ocasión me referiré al método de factorización de Dixon , un algoritmo de propósito general. Recordar que, tal y como comenté en un  post anterior , mientras que en los algoritmos de propósito específico ( Fermat , rho Pollard , p -1 Pollard ,...) el tiempo de ejecución depende de las características propias de los dos factores primos ( p y q ) del módulo ( n ) a factorizar, en los de propósito general éste sólo depende del tamaño del módulo. Antes que nada explico lo que he entendido sobre este método (espero no equivocarme mucho)  y pongo un ejemplo  con el número que vengo utilizando como módulo en los ejemplos de cifrado RSA . Si no lo he entendido mal, la idea básica de este método es, dado un número n a factorizar, encontrar dos números x e y tales que  x 2 º y 2 mod n , con lo que ( x - y ) ( x + y ) es un múltiplo de n , y, por consiguiente, tanto el mcd( x - y , n ) como el mcd( x + y , n ) nos entregarán un factor no trivial ...

Criptografía (LII): ataque de intermediario a RSA

En anteriores posts de este blog he tratado sobre diferentes ataques teóricamente posibles al cifrado RSA , pero que tal y como decía, al menos actualmente, son ineficientes con la potencia de cálculo de los ordenadores actuales. Sin embargo hay otros ataques posibles y que pueden tener más probabilidades de éxito. Tal y como también he dicho en anteriores posts de esta serie sobre criptografía: "El eslabón más débil de la cadena de seguridad (y la criptografía no es una excepción) lo constituimos las personas". Es decir, podemos tener un criptosistema muy robusto (muy seguro conceptualmente), como es el caso de RSA , pero si las personas que lo administramos y/o utilizamos  no hacemos un uso adecuado del mismo éste podría ser "roto" con relativa facilidad . En este post , como ejemplo de ésto, me voy a referir al   ataque de intermediario (MitM, por las siglas en inglés de: "Man-in-the-Middle" ), que, aunque en el título de este post lo he ...