PrismCipher resembles a synchronous stream cipher where the keystream depends only on the key, not the ciphertext or plaintext. However, it is designed to encrypt discrete messages, not streams or blocks. It’s also designed to withstand differential cryptanalysis. If a single digit is corrupted (via transmission or tampering), the entire message is lost and unrecoverable.
It is polyalphabetic. A rotating substitution array is applied to the plaintext to expand its dynamic range. This means the relationship between a character in the plaintext and the characters in the ciphertext is one‑to‑many.
Prior to encryption, the plaintext message is diffused, compressed and randomly padded. Internally, confusion is introduced to the ciphertext during the main encryption cycle.
PrismCipher supports very long, user-selectable keys (up to 4,000 characters in length). Encryption keys are hashed using algorithms that exhibit a very high avalanche effect.
Messages and keys support full UTF-8 encoding allowing the cryptosystem to process language scripts from Arabic to Katakana to Yi. Visible and invisible graphemes can be used.
No two ciphertexts will be identical, even if the same keys were to be used to encrypt the same plaintext at the same time on the same machine. The cryptosystem randomly adjusts each ciphertext for uniqueness.