(EN) An encoder encrypts a message by generating a nonce, using a first encryption key to encode the nonce, splitting the message into a first part and a second part, using the first encryption key and the encoded nonce to encrypt the first part of the message into a first ciphered part, using a second encryption key, the encoded nonce and the first ciphered part to generate an initialization vector, using the first encryption key and the initialization vector to encrypt the second part of the message into a second ciphered part, and generating a ciphertext comprising the first ciphered part, the second ciphered part, the initialization vector and the nonce. A decoder uses a reverse process to decrypt the message. The decryption comprises generating a copy of the initialization vector, which is compared to the initialization vector in order to verify that the message is properly decrypted.
(FR) Codeur chiffrant un message par génération d'un mot aléatoire, par utilisation d'une première clé de chiffrement pour coder le mot aléatoire, par division du message en une première partie et une seconde partie, par utilisation de la première clé de chiffrement et du mot aléatoire codé pour chiffrer la première partie du message afin d'obtenir une première partie chiffrée, par utilisation d'une seconde clé de chiffrement, du mot aléatoire codé et de la première partie chiffrée pour générer un vecteur d'initialisation, par utilisation de la première clé de chiffrement et du vecteur d'initialisation pour chiffrer la seconde partie du message afin d'obtenir une seconde partie chiffrée, et par génération d'un texte chiffré comprenant la première partie chiffrée, la seconde partie chiffrée, le vecteur d'initialisation et le mot aléatoire. Un décodeur utilise un processus inverse pour déchiffrer le message. Le déchiffrement consiste à générer une copie du vecteur d'initialisation, laquelle est comparée au vecteur d'initialisation afin de vérifier que le message est correctement déchiffré.