Introducción a la criptografía de firma digital

La firma digital es una técnica matemática criptográfica para validar la integridad y la seguridad de los datos. La firma digital con criptografía es para resolver el problema del mundo real de la suplantación y la manipulación digital. En palabras reales para compartir información confidencial y asegurar el origen de la evidencia, el estado del documento electrónico. La firma digital de criptografía utiliza un sistema de clave pública / privada. Las claves se representaron en un número hexadecimal aleatorio. Para crear una firma digital criptográfica, hash unidireccional de datos para firmar. Con la clave privada se realizará el cifrado de hash.

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

  1. Llave privada
  2. Llave 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 exponerse 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, primero se firmará digitalmente el mensaje, luego se cifrará con la clave privada del remitente y con la clave pública del receptor. Para descifrar los mensajes compartidos entre el remitente y el receptor, el receptor tiene que descifrar la capa interna de la información con la clave pública del remitente y descifrar la capa externa de la información utilizando la clave privada que posee el receptor.

Arquitectura de criptografía de firma digital

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

Al final del remitente, el mensaje / información debe cifrarse mediante una función de hash con la clave privada del remitente. La información se enviará al receptor con el modelo intermedio de firma digital. En el extremo del receptor, el receptor verifica la firma digital descifrando la información recibida utilizando la función hash. El descifrado se realizará mediante la extracción de la capa interna utilizando la clave pública y la capa externa extraída mediante 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 firma digital con clave pública compartida con el mundo externo, existe la posibilidad de que alguien pueda falsificar el cifrado.

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

1. Firma digital seguida de cifrado

En este método, el receptor explota la firma del remitente y la información se comparte con la parte externa sin cifrado. Como este formulario está menos seguro, esto no es preferible en la industria.

2. Cifrado seguido de firma digital

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

Firma digital de criptografía 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 realiza el cifrado y descifrado con firma digital utilizando RSA. Para realizar una criptografía con firma digital, necesitamos el paquete pycrypto instalado, luego escriba el fragmento a continuación.

importCrypto
fromPublicKey importRSA
fromCrypto import Random

Para realizar 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án 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
The above snippet returns the private key and public key.

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

Para cifrar el mensaje, utilizamos el código anterior que tomará rsa_publickey y el texto como parámetros para la función de cifrado. La función de cifrado 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 usando encriptación de clave pública y desencriptación de texto realizada con 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. Usando el método de decodificación crea un cifrado descifrado y utilizando el método de descifrado devolverá el texto descifrado.

3. Implementación

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

Código:

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)

Salida:

Como podemos ver, el texto de entrada "Hello Peers!" Pasado a la función de cifrado se cifra utilizando la clave pública. El cifrado cifrado pasado como parámetro a la función de descifrado 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 remitente realizará la señal 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.

Méritos de la firma digital de criptografía

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

Deméritos de la firma digital de criptografía

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

Conclusión

En el mundo digital moderno, el algoritmo de firma digital con criptografía juega un papel vital en proporcionar un entorno seguro y protegido 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ículo recomendado

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 sugeridos para obtener más información:

  1. Software de firma digital con trabajo
  2. Criptografía vs Cifrado | Comparación de los 6 principales
  3. ¿Qué es el cifrado asimétrico?
  4. Introducción a los tipos de firma digital