Pseudorandom error-correcting code
A Pseudorandom Error-correcting Code (PRC) is a type of SKE that requires ciphertext decoding to be robust to some modifications, introduced by CG24. There is additionally a zero-bit PRC which does not allow for a message. Both variations are useful for constructing cryptographic watermarking of generative AI.
Syntax
An -bit PRC is a tuple of efficient algorithms , with respect to key space , message space , and ciphertext space such that
- , is a randomized algorithm that takes a security parameter, and outputs a key ,
- , is a randomized algorithm that takes a key and message , and outputs a ciphertext ,
- , is a deterministic algorithm that takes a key and candidate ciphertext , and outputs either a message or
A zero-bit PRC has the same requirements as an -bit PRC, except that the message space is just the singleton set , which means that takes no input and just outputs codewords. Then, simply detects whether or not the candidate ciphertext is close to a codeword.
Properties
Pseudorandomness
We define the advantage of a distinguisher as where and is a random response oracle, which on each query gives a uniformly random -bit string (even on the same input, unlike a random oracle).
A PRC is pseudorandom if for all efficient , there exists a negligible function , such that: .
Completeness/Robustness
A PRC is -robust if there is a negligible function , such that for every message , where and is any -bounded channel. Meaning that is a length preserving function with the property that for every -bit string , and have Hamming distance at most .
Soundness
A PRC is sound if there is a negligible function , such that for all , — CG24.
Variations
Adaptive robustness
A PRC with adaptive robustness strengthens the robustness property to allow the channel to be chosen after seeing the codeword , rather than being fixed in advance. Formally, the adversarial channel may depend on (but not on or directly). This models a stronger adversary who can tailor the corruption pattern to the specific codeword.
Ideal PRC
An ideal PRC is one for which, with , oracle access to is computationally indistinguishable from oracle access to an ideal functionality. Its encoder returns a fresh uniformly random -bit string on every query. Its decoder returns on any string within Hamming distance of a string the encoder returned on input , and on every other string. The adversary never receives . Ideal security implies pseudorandomness, soundness and adaptive robustness against efficient channels — AACDG25.
Zero-bit PRC
A zero-bit PRC has a singleton message space : the encoder takes no message input and simply outputs a codeword, while the decoder detects whether a candidate string is close to a codeword. Zero-bit PRCs are useful for watermarking generative AI outputs: embed a pseudorandom codeword into generated text/images such that possession of the secret key allows detection, while outputs look uniformly random to anyone without the key — CG24.
Other results
- PRCs were introduced in CG24 motivated by undetectable watermarking of AI-generated content
- Zero-bit PRC ⇒ Watermarking
- Subexponential LPN ⇒ PRC, including zero-bit PRCs — CG24
Participates in
Builds on Pseudorandom error-correcting code
- Adaptive robustness ⇒ PRC (via Adaptive robustness)
- PRC ⇒ SKE
- Zero-bit PRC ⇒ Trapdoor pseudorandom generators (via Zero-bit PRC)
- Zero-bit PRC ⇒ Watermarking (via Zero-bit PRC)
Produces Pseudorandom error-correcting code