Bonjour,

J'aimerais un peu d'aide pour comprendre après avoir fait un tour sur cette page : http://en.wikipedia.org/wiki/Deniable_encryption

Deniable encryption allows the sender of an encrypted message to deny sending that message. This requires a trusted third party. A possible scenario works like this:

Bob suspects his wife Alice is engaged in adultery. That being the case, Alice wants to communicate with her secret lover Carl. She creates two keys, one intended to be kept secret, the other intended to be sacrificed. She passes the secret key (or both) to Carl.
Alice constructs an innocuous message M1 for Carl (intended to be revealed to Bob in case of discovery) and an incriminating love letter M2 to Carl. She constructs a cipher-text C out of both messages M1, M2 and emails it to Carl.
Carl uses his key to decrypt M2 (and possibly M1, in order to read the fake message, too).
Bob finds out about the email to Carl, becomes suspicious and forces Alice to decrypt the message.
Alice uses the sacrificial key and reveals the innocuous message M1 to Bob. Since Bob does not know about the other key, he has to assume that there is no other message M2.
Donc d'après ce que j'ai compris le message comprendrais les deux messages chiffrés concaténé et Bob n'aurait qu'une des deux clé qui déchiffrerais un message non suspect ? Et il devrait croire que le reste sont seulement des données aléatoire ... ? Mais comment Carl saurait de où a où il doit décrypter son message ?

One example of deniable encryption is a cryptographic filesystem that employs a concept of abstract "layers", where each layer can be decrypted with a different encryption key. Additionally, special "chaff layers" are filled with random data in order to have plausible deniability of the existence of real layers and their encryption keys. The user can store decoy files on one or more layers while denying the existence of others, claiming that the rest of space is taken up by chaff layers. Physically, these types of filesystems are typically stored in a single directory consisting of equal-length files with filenames that are either randomized (in case they belong to chaff layers), or cryptographic hashes of strings identifying the blocks. The timestamps of these files are always randomized.
Donc ici on aurait par exemple un dossier avec plein de fichier avec des données aléatoire, noms aléatoires,timestamps aléatoire, de même taille mais où se situerais les données que l'on souhaite cacher ? j'imagine que l'on pourrait couper nos données chiffré sur la fin du fichier 3 par exemple et le début du fichier 4 ? mais si par exemple un gouvernement très répressif obtiens l'algorithme en question qui effectue toutes ces opérations a quoi sert tout ceci ?

Building deniable code
Algorithm
Given plain texts p1 and p2
if len(p1) != len(p2), use padding
Generate a random key k1
Compute cipher text c = p1 + k1
Compute k2 = c + p2
k2 = c + p2
k2 + p2 = c + p2 + p2
k2 + p2 = c
k2 + p2 = p1 + k1
Et la je comprend rien du tout ... si quelqu'un pourrait m'expliquer

Enfin je pense que j'ai un problème de compréhension, j'aimerais juste pouvoir utiliser cette technique dans un simple programme pour denier l'évidence d'un fichier x si une mauvaise clé est rentré et afficher un fichier innocent y , merci pour votre aide.