Deniable encryption
In cryptography, deniable encryption allows an encrypted message to be decrypted to different sensible plaintexts, depending on the key used, or otherwise makes it impossible to prove the existence of the real message without the proper encryption key. This allows the sender to have plausible deniability if compelled to give up his or her encryption key. The notion of "deniable encryption" was introduced by Julian Assange & Ralf Wiennmann in the Rubberhose filesystem[1] and explored in detail in a paper by Ran Canetti, Cynthia Dwork, Moni Naor, and Rafail Ostrovsky[2] in 1996.
Scenario
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:
- Alice sends a pre-chosen key to Bob and a different pre-chosen key to Trent, the trusted third party. The keys are constructed for the purposes of deniable encryption.
- Alice constructs a ciphertext (intended to be decrypted by a one-time pad), such that Bob's key will decrypt a harmful message (e.g. instructions on how and when to rob a bank, while Alice tells the bank that someone will try to rob them) and such that Trent's key will decrypt it to a harmless message.
- Alice sends the ciphertext to Bob, who tries to rob the bank and gets arrested.
- Bob claims that Alice told him to rob the bank, but Alice denies this. To prove her innocence, she can send Trent the same ciphertext (Bob can verify that it is the same ciphertext Alice sent him) and Trent will decrypt it to the harmless message. Trent, being a disinterested third party, is above suspicion, so an adjudicator will believe him over Bob.
Another possible scenario involves Alice sending the same ciphertext to Bob and Carol, to whom she has sent different keys. Bob's key could decrypt the ciphertext to a claim that Carol has maligned Bob, and Carol's key could decrypt the ciphertext to a claim that Bob has maligned Carol. Under the assumption that neither Bob nor Carol can find out each other's keys, Alice's ruse would never be discovered. The same is true of the bank-robbing scenario, except that Bob would understand that Alice had tricked him somehow, but no one would believe him over Trent.
Modern forms of deniable encryption
Other than one-time pads, there are currently no known cryptographic techniques that allow feasible construction of a ciphertext that results in two distinct, but predictable plaintexts depending on the key used. However, modern deniable encryption techniques exploit the pseudorandom permutation properties of existing block ciphers, making it cryptographically infeasible to prove that the ciphertext is not in fact random padding data generated by a cryptographically secure pseudorandom number generator. This is used in combination with some decoy data that the user would plausibly want to keep confidential that will be revealed to the attacker, claiming that this is all there is. This form of deniable encryption is sometimes referred to as "steganographic encryption".
A prototypical example of deniable encryption is a cryptographic filesystem that employs a concept of abstract "layers", where each layer would 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 will 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. Examples of this approach include Rubberhose filesystem and PhoneBookFS.
Another approach utilized by some conventional disk encryption software suites is creating a second encrypted volume within a container volume. The container volume is first formatted by filling it with random data, and then initializing a filesystem on it. The user then fills some of the filesystem with legitimate, but plausible-looking decoy files that the user would seem to have an incentive to hide. Next, a new encrypted volume (the hidden volume) is allocated within the free space of the container filesystem which will be used for data the user actually wants to hide. Since an adversary cannot differentiate between encrypted data and the random data used to initialize the outer volume, this inner volume is now undetectable. Concerns have however been raised for the level of plausible deniability in hiding information this way – the contents of the "outer" container filesystem (in particular the access or modification timestamps on the data stored) could raise suspicions as a result of being frozen in its initial state to prevent the user from corrupting the hidden volume. This problem can be countered by instructing the system not to protect the hidden volume, although this could result in lost data. Examples of this approach include FreeOTFE, TrueCrypt and BestCrypt.
Needless to say, insecure block ciphers or pseudorandom number generators can make it possible to compromise the deniability of such filesystems. To escape the assumption that the used pseudorandom number generation is cryptographically secure, it has been advised to instead fill the encrypted space with pseudorandom data, thus being protected by the encryption key.[3] In addition to that, the flawed use of block cipher modes of operation can also compromise the cipher algorithm due to watermarking attacks.[4]
Malleable encryption
Some in-transit encrypted messaging suites, such as Off-the-Record Messaging, offer malleable encryption which gives the participants plausible deniability of their conversations. While malleable encryption is not technically "deniable encryption" in that its ciphertexts do not decrypt into multiple plaintexts, its deniability refers to the inability of an adversary to prove that the participants had a conversation or said anything in particular.
This is achieved by the fact that all information necessary to forge messages is appended to the encrypted messages – if an adversary is able to create digitally authentic messages in a conversation (see HMAC), he is also able to forge messages in the conversation. This is used in conjunction with perfect forward secrecy to assure that the compromise of encryption keys of individual messages does not compromise additional conversations or messages.
Software
- BestCrypt, commercial on-the-fly disk encryption for MS Windows.
- FreeOTFE, opensource on-the-fly disk encryption for MS Windows and PocketPC PDAs that provides both deniable encryption and plausible deniability [5]. Offers an extensive range of encryption options, and doesn't need to be installed before use.
- Off-the-Record Messaging, a cryptographic technique providing true deniability for instant messaging.
- PhoneBookFS, another cryptographic filesystem for Linux, providing plausible deniability through chaff and layers. A FUSE implementation. No longer maintained.
- rubberhose. Last version (alpha) released in 2000. Never released a Beta version. Opensource, but not maintained. For the Linux 2.2 kernel which is also no longer supported by Linus Torvalds.
- StegFS, the current successor to the ideas embodied by the rubberhose and PhoneBookFS filesystems
- TrueCrypt, which is free opensource on-the-fly disk encryption software for Windows, Mac and Linux that provides deniable encryption[6] and plausible deniability, and doesn't need to be installed before use.
See also
Notes and references
- ^ See http://iq.org/~proff/rubberhose.org/. Retrieved on 2007-07-08.
- ^ Ran Canetti, Cynthia Dwork, Moni Naor, Rafail Ostrovsky (1996-05-10). "Deniable Encryption" (PostScript). Lecture Notes in Computer Science. volume 1294: pages 90–104.
{{cite journal}}
:|pages=
has extra text (help);|volume=
has extra text (help); Text "accessdate-2007-01-05" ignored (help)CS1 maint: multiple names: authors list (link) - ^ "FreeOTFE documentation on Plausible Deniability". Retrieved 2006-08-23.
- ^
Adal Chiriliuc (2003-10-23). "BestCrypt IV generation flaw". Retrieved 2006-08-23.
{{cite journal}}
: Cite journal requires|journal=
(help) - ^ See its documentation section on "Plausible Deniability")
- ^ TrueCrypt - Free Open-Source On-The-Fly Disk Encryption Software for Windows Vista/XP, Mac OS X, and Linux - Hidden Volume