es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo descifrar archivos con nonce aleatorio.

Estoy cifrando varios archivos usando chacha-poly1305 y utilizando KDF para la contraseña. Puedo cifrar archivos, pero ¿cómo los descifro con un nonce aleatorio? La función dice NEVER REUSE NONCE, pero entonces, ¿cómo descifro usando nonces aleatorios?

Si reutilizo el nonce para el cifrado de archivos, ¿qué tan seguro es?

Se ha hecho una pregunta similar en Stack Overflow, pero la solución no fue buena.

Código de ejemplo:

from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
from cryptography.hazmat.primitives.ciphers.aead import ChaCha20Poly1305

kdfpass = PBKDF2HMAC(
    algorithm=hashes.SHA256(),
    length=32,
    salt=salt,
    iterations=5
)

password = kdfpass.derive(b'Password@123')
salt = b'123456789520'
original = b'Hellow123'

chacha = ChaCha20Poly1305(password)

encrypted = chacha.encrypt(os.urandom(12), original, salt)
print(encrypted)

decrypted = chacha.decrypt(os.urandom(12), encrypted, salt)
print(decrypted)

¿Hay alguna manera de guardar el nonce y recuperarlo para descifrar?

También me gustaría saber si chacha-poly1305 es suficientemente seguro como cifrado.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como indica claramente la función, el nonce nunca debe reutilizarse en el cifrado o descifrado, ya que compromete la seguridad del cifrado. Por lo tanto, no se recomienda descifrar utilizando un nonce aleatorio. En su lugar, el nonce utilizado durante el cifrado debe guardarse junto con el archivo cifrado y utilizarse durante el descifrado para mantener la seguridad del cifrado.

    Existen diferentes formas de guardar el nonce, como guardarlo en los metadatos del archivo cifrado o en un archivo separado junto con el archivo cifrado. Asegúrese de proteger el nonce guardado contra accesos no autorizados para mantener la seguridad del cifrado.

    En cuanto a la seguridad de reutilizar el nonce, no es seguro ya que debilita la seguridad del cifrado. El nonce se utiliza para garantizar la singularidad en cada operación de cifrado, y reutilizarlo rompe esta singularidad, lo que facilita a los atacantes romper el cifrado.

    En cuanto al cifrado Chacha20Poly1305, es un algoritmo de cifrado seguro y ampliamente utilizado. Sin embargo, la seguridad del cifrado también depende de la implementación y el uso. Por lo tanto, es importante seguir las mejores prácticas y pautas al utilizarlo para asegurar su seguridad.

Comments are closed.