Criptografía de Firma Digital

Criptografía de Firma Digital

Criptografia de la Firma Digital


La criptografía de firma digital no es más que un proceso de cifrado de los certificados digitales, utilizando varios algoritmos de cifrado como Message digest, message digest 5, Secure Hash algorithm, ElGamal encryption, etc., que cifran los certificados digitales para evitar los ataques a los certificados digitales y proporciona la seguridad.

La criptografía de una firma digital es posible con dos términos clave:

Clave Privada

Clave Pública


Clave privada: El titular de la cuenta tiene una clave que es un número hexadecimal aleatorio. La clave privada será confidencial para el titular de la cuenta en lugar de estar expuesta al mundo real.

Clave pública: Un número hexadecimal aleatorio que se comparte públicamente. Para crear una firma digital de criptografía pública, el mensaje se firmará digitalmente primero; luego, se cifra con la clave privada del remitente y con la clave pública del receptor. Para descifrar los mensajes compartidos entre el emisor y el receptor, el receptor tiene que descifrar la capa interna de la información con la clave pública del emisor y descifrar la capa externa de la información usando la clave privada que posee el receptor.
Arquitectura de Criptografía de Firma Digital

Arquitectura de Criptografía de Firma Digital

Para realizar la firma digital mediante criptografía, se debe llevar a cabo lo siguiente:

El mensaje / información debe cifrarse utilizando una función de hash con la clave privada del remitente en el extremo del remitente. La información se enviará al extremo del receptor con el modelo de firma digital intermedio. El receptor verifica la firma digital descifrando la información recibida usando la función de hash en el extremo del receptor. El descifrado se realizará extrayendo la capa interna utilizando la clave pública y la capa externa de la clave privada. Un desafío importante para compartir información de forma segura es enviar el mensaje en un formato cifrado. En criptografía, con una firma digital que tiene una clave pública compartida con el mundo externo, existe la posibilidad de que alguien falsifique el cifrado.

El cifrado de firmas digitales se puede llevar a cabo de dos formas principales:

1. Firma Digital Seguida de Cifrado


En este método, la firma del remitente es explotada por el receptor y la información se comparte con la parte externa sin cifrado. Como esta forma es menos segura, no es preferible en la industria.

2. Cifrado Seguido de Firma Digital


El enfoque más común de la industria es el cifrado, seguido de una firma digital en la que el remitente envía los datos cifrados con la firma digital. Cuando el receptor recibe el mensaje en su extremo, descifrará el mensaje compartido por el remitente utilizando la clave pública del remitente y la clave privada del receptor.

Criptografía Firma Digital con RSA


El siguiente fragmento de código explicará cómo se implementa la criptografía con firma digital en tiempo real en Python y también explicará cómo se llevan a cabo el cifrado y el descifrado con firma digital utilizando RSA. Para realizar la criptografía con una firma digital, requerimos el paquete pycrypto instalado, luego escribimos el siguiente fragmento de código.

importCrypto
fromPublicKey importRSA
fromCrypto import Random

Para realizar la criptografía con la firma digital, requerimos la inicialización de la clave privada y la clave pública. Creamos una función para generar claves RSA que tendrá una clave privada y una clave pública:

defrsa_keys():
l=1024
private_key = RSA.generate(l, Random.new().read)
public_key = private_key.publickey()
return private_key, public_key

El fragmento anterior devuelve la clave privada y la clave pública.

1. Función de Cifrado


defencrypt(public_key,text):
c_text=public_key.encrypt(text,32)[0]
val_cipher=base64.b64encode(c_text)
return val_cipher

Usamos el código anterior para cifrar el mensaje, que tomará rsa_publickey y text como parámetros de la función de cifrado. La función encrypt realizará el cifrado de clave pública y generará el cifrado; el cifrado generado se devuelve cuando se invoca la llamada a la función.
2. Función de Descifrado

defdecrypt(private_key,val_cipher):
d_cipher = base64.b64decode(val_cipher)
text = private_key.decrypt(d_cipher)
return text

Criptografía con firma digital mediante cifrado de clave pública y descifrado de texto realizado mediante la clave privada. Para comprender el significado del texto cifrado compartido como cifrado, hemos creado una función de descifrado. La función toma private_key y el cifrado generado por la función de cifrado. El uso del método de decodificación crea un cifrado descifrado y utiliza el método de descifrado; devolverá el texto descifrado.
3. Aplicación

En este ejemplo, veremos cómo se lleva a cabo el cifrado de texto y cómo se descifra de nuevo al texto original utilizando la clave privada. La función cifrar y descifrar se utilizará en el ejemplo para mostrar cómo cifrar se cifrará y descifrará.

Codificar:

importCrypto
fromPublicKey importRSA
fromCrypto import Random
importbase64
defrsa_keys():
l=1024
private_key = RSA.generate(l, Random.new().read)
public_key = private_key.publickey()
returnprivate_key, public_key
defencrypt(public_key,plain_text):
c_text=public_key.encrypt(plain_text,32)[0]
val_cipher=base64.b64encode(c_text)
returnval_cipher
defdecrypt(private_key,val_cipher):
d_cipher = base64.b64decode(val_cipher)
text = private_key.decrypt(d_cipher)
returntext
private_key,public_key=rsa_keys()
txt=b"Hello Peers!"
enc_cipher=encrypt(public_key,txt)
print('**'*10)
print("The ecncrypted text is {}".format(enc_cipher))
print('**'*10)
dec_cipher=decrypt(private_key,enc_cipher) #decryption
print("The decrypted cipher text is {}".format(dec_cipher))
print('**'*10)

Criptografía de Firma Digital


Como podemos ver, el texto de entrada " Hello Peers! la función "passed to encrypt" se cifra con la clave pública. El cifrado cifrado pasado como parámetro a la función descifrar descifra el mensaje original compartido utilizando la clave privada del receptor. Para realizar la firma digital con criptografía se requerirá el método 'firmar' y 'verificar', el signo lo realizará el remitente utilizando la clave privada, cuando la información se transfiere al receptor, la función de verificación se lleva a cabo utilizando la clave pública.


A continuación se explican los pros y contras:


Pros


Mejorar la seguridad de la transferencia de información.
Mejora el flujo de trabajo más digitalizado.
Mejor experiencia del cliente.
Mejorar la eficiencia empresarial y la validez legal.
Reduce el esfuerzo manual y ahorra tiempo.

Contras

Requiere mucho tiempo para la verificación.
No protege contra vulnerabilidades.
La infraestructura y la configuración de la criptografía no son rentables.

Conclusion


En el mundo digital moderno, el algoritmo de firma digital con criptografía juega un papel vital en la provisión de un entorno seguro y es una de las mejores herramientas para la autenticación. En el creciente mundo tecnológico, desempeñará un papel crucial en términos de seguridad contra amenazas y vulnerabilidades.


Artículos Recomendados

Esta es una guía para la Criptografía de Firma Digital. Aquí discutimos la Arquitectura de Criptografía de Firma Digital junto con la implementación del código. También puede consultar nuestros otros artículos para obtener más información –


Entradas populares

Imagen

Cifrado Asimétrico