cipher = AES.new(key, AES.MODE_EAX) ciphertext, tag = cipher.encrypt_and_digest(data)
return cipher.nonce + tag + ciphertext
na vez hemos creado la función para encriptar necesitamos
comprender cada parámetro, variables y demás dato que nos sea de utilidad. Lo primero que hay que saber, es que key es la clave, contraseña, etc, con la que queramos cifrar los datos, mientras que data son los datos a cifrar. Cada uno de ellos debe ser de tipo bytes, aunque ya lo veremos detenidamente en una breves instantes. La variable ciphertext es la que hace referencia al resultado de los datos cifrados; tag es el código de autenticación de mensajes (MAC) calculado durante el cifrado. Y por último pero no menos importante el nonce (number occuring once [número que ocurre una vez, en español]), también conocido como el vector de inicialización, el cual es un número aleatorio que se utiliza para mejorar la aleatorización.
Lo primero que hay que saber, es que necesitamos calcular todo lo que el destinatario nos ha enviado. En el caso del nonce ímplicitamente estamos colocando un índice del 0-16 (la constante block_size del módulo AES vale 16), es recomendable usar la constante explícitamente en vez del número que conozcamos. Ya partiendo con el siguiente dato deseado, el tag, que ahora debe comenzar con un índice de 16-32 y por último, ciphertext con un índice de 32-[Hasta el último dato].