Are there...

David Wagner daw at
Thu Nov 13 22:00:27 EST 2003

Enzo Michelangeli wrote:
> encryption algorithms guaranteed to be injective (i.e.,
>deterministically collision-free)?

Every encryption algorithm is injective, otherwise decryption
would be ambiguous.  In other words, if x and x' are two different
plaintexts, then E_k(x) != E_k(x').

>I'm looking for algorithms where every piece of code and data is public,
>thus excluding conventional enciphering with a secret key.

Ok, in that case, use a public-key encryption algorithm.  Same deal.

And, if you want to ensure that E_k(x) != E_k'(x') whenever
(k,x) != (k',x'), define E_k(x) = (k, EE_k(x)) where EE is some
public-key encryption algorithm; EE_k(x) denotes the result of encrypting
plaintext x under public key k.  It can't hurt security to include the
public key in the ciphertext.

The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo at

More information about the cryptography mailing list