8

One-Time Padding is (theoretically) perfect encryption algorithm. Let's assume that these problems are solved:

  • Fast generation of independent and identically distributed random variables
  • Perfect key distribution system
  • Key only used once.
  • Key destroyed after use, without side channels that would allow any non-trusted third party to attain any key bits.

However, for modern information exchange, it is not sufficient to encrypt information (this is against Eve). In addition to encryption, it is necessary to also protect

  • integrity (this is against broken phone or cable) and
  • message authenticity (this is against Mallory).

Some recommendations in cryptography recommend to use security level similar for encryption keys and message authenticity keys (i.e. use 128-bit encryption key and 128-bit MAC key). For MAC tag, it is common convention for HMAC or to use at most half of the MAC key length as the output length. Some other algorithms use full block length of the function.

For information theoretic authentication tag security, I would expect that in order to transfer message with length $N$ bits, I would need at least another $N$ bits to transfer "authentication tag" matching with the message.

Choices for Integrity or Authentication

Here are some of example schemes:

  1. Double the bits. I.e. when instead of 0110, process plaintext 00111100 with OTP. This'll eat twice as much key material than OTP, but will protect against any single bit errors, and many of other errors, because it is easy to check at the recipient. (If only worrying about integrity.)
  2. Process concatenation of $P$ (plaintext) and $T$ (mac tag) via OTP. There is problem how to calculate $T$. My first idea would be to use some operation on binary Galois Fields $GF(2^n)$, such as multiplication $C * C$ and use OTP to send that "checksum". (Only for integrity, but detects integrity problems with larger probability than option 1.)

Any suggestions how to efficiently calculate $T$? Are there any schemes which would provide usual security without key length $K=2N$? Are some of preconditions incorrect?

For authenticity it would appear that these are valid options:

3. encrypt-then-mac with an information-theoretically secure mac.

4. mac-then-encrypt with an information-theoretically secure mac.

What would be suitable information-theoretically secure mac for implementing alternative 3? Alternative 4 uses more key material than alternative 3. Are there any situations where alternative 4 would be profitable over alternative 3?

Previous Questions About The Field

You could think of this question as sort of add-on question to:
"Having 4096 bit keys and short (< 256 byte) messages, can I simply use the key as OTP?"

user4982
  • 5,319
  • 20
  • 32
  • Article on Information-Theoretic Cryptography contains few suggestions for solving this problem and also hints towards same conclusion: half of the key material for encryption and another half of key for coefficients of polynomial over GF(2^k). – user4982 Oct 23 '13 at 18:43
  • 1
    "another half of key for coefficients of polynomial over GF(2^k)" would be a huge waste, $\hspace{.91 in}$ since it would use up way too much key material. $;$ –  Oct 23 '13 at 19:25
  • 1
    @user4982 "Current recommendations in cryptography often recommend to use security level similar for encryption and message authenticity (i.e. use 128-bit encryption and 128-bit MAC)." I don't know where you've heard that, but I don't know anyone that uses a 256-bit MAC to go with their 256-bit encryption. – orlp Oct 23 '13 at 19:45
  • @nightcracker How about combination 256-bit AES + HMAC-SHA-256 with 256-bit key? This would be using the same security level for keys. I've put it it wrong, I meant equivalent security for keys, not necessarily for tag. I'll fix the question. – user4982 Oct 23 '13 at 20:06
  • @user4982 the proposed alternative 2 for authentication is only usable against transmission errors, it does not work against adversaries. The alternative 3 suggested by Ricky Demer is fairly good, but what would be efficient algorithm meeting these goals? – user4982 Oct 24 '13 at 11:03
  • On 1: You're basically proposing a (2,1) channel coding scheme. This is public knowledge so defeating it is easy (instead of flipping 1 bits, you flip 2). – rath Oct 24 '13 at 23:06
  • Use a MAC then encrypt the MAC with part of the one-time pad. – NDF1 Oct 25 '13 at 06:44
  • @NDF1 : $:$ mac-then-encrypt would just waste key material, as compared to encrypt-then-mac. $\hspace{.6 in}$ –  Oct 25 '13 at 10:21
  • 1
    @RickyDemer Your suggestion '3. encrypt-then-mac with an information-theoretically secure mac.' is pretty much was I intended to ask in the first place. I've now clarified the question for this part. I have some concern over practical aspects (like performance). OTP is just XOR but mathematics on $GF(p)$ or $GF(2n)$ are more work to compute. BTW, would you want to write an answer. This far your comments make up for one very fine answer. – user4982 Oct 25 '13 at 12:17
  • @Ricky, wouldn't you just assign part of the key for encrypting the message and part of it for encrypting the MAC tag? It's not wasteful. Why not UMAC? "UMAC, is a type of message authentication code calculated choosing a hash function from a class of hash functions according to some secret (random) process and applying it to the message. The resulting digest or fingerprint is then encrypted to hide the identity of the hash function used." If you're encrypting the MAC tag with part of the one-time pad then it too will be information-theoretically secure. – NDF1 Nov 22 '13 at 08:45
  • 1
    It is wasteful because it uses part of the key for encrypting the MAC tag. $:$ Using UMAC for this would require either an unconditionally secure stateless encryption algorithm (which, as far as I know, would need a lot more key material) or would require that the verifier know the message number even if the MAC was just used for authentication of non-encrypted messages. $;;;$ –  Nov 22 '13 at 09:34