ICE is an example of a class of ciphers called private-key block ciphers. Other ciphers of this type include DES, IDEA, LOKI, and FEAL. The private-key part means that its security relies on the key being kept secret, as opposed to public-key ciphers such as RSA, where the security relies on certain mathematical properties of the key.
The block cipher part means that ICE encrypts data in blocks (with a block size of 64 bits). In other words, given a 64-bit plaintext and a key, the ICE algorithm will produce a 64-bit ciphertext. And given the same key, ICE can convert the ciphertext back to its original plaintext. This is different from stream ciphers, which produce a stream of bits which are exclusive-ORed with a plaintext to produce the ciphertext.
ICE has multiple variants with different levels of security. At levels 0 and 1, the key size is 64 bits. This means that an exhaustive key search would require an average of 2^63 (approx 10^19) encryptions. Level 2 uses a 128-bit key, level 3 a 192-bit key, and so on. The level of security against exhaustive key searches is limited only by speed requirements (which scale roughly with key size), and the ability of the user to generate and remember long passwords.
Variant | Key | Plaintext | Ciphertext |
---|---|---|---|
ICE | deadbeef01234567 | fedcba9876543210 | 7d6ef1ef30d47a96 |
Thin-ICE | deadbeef01234567 | fedcba9876543210 | de240d83a00a9cc0 |
ICE-2 | 00112233445566778899aabbccddeeff | fedcba9876543210 | f94840d86972f21c |