A cryptosystem is (formally) a 5-tuple {P, C, K, E, D} such that:
  1. P is the finite set of all possible plaintexts x.
  2. C is the finite set of all possible ciphertexts y.
  3. K is the keyspace (the finite set of all possible keys) k.
  4. E and D are the finite sets of encryption and decryption functions, respectively:
    For each key k in K, there exists an encryption rule ek : P --> C and a decryption rule dk : C --> P such that, for any plaintext x in P, dk(ek(x)) = x.

(Part of the Everything2 Crypto Project)