diff --git a/docs/cipher.md b/docs/cipher.md new file mode 100644 index 0000000..6e88358 --- /dev/null +++ b/docs/cipher.md @@ -0,0 +1,10 @@ +# Encryption + +### PLAIN +No encryption. Encodes text directly. + +### SPECK32/64 ECB +Block cipher in ECB mode. Each character is encrypted independently — identical plaintext characters produce identical ciphertext. Useful when you want varied-looking output from the same input, but **not secure under real threat models** since patterns in the plaintext leak through. + +### SPECK48/96 CTR +Stream cipher mode with a random 24-bit nonce prepended to the output. Identical plaintexts produce different ciphertexts each time. Significantly more secure than ECB. **Rotate your password after roughly every 100 encryptions** to avoid nonce reuse risk within the 24-bit space. diff --git a/docs/onscreen.png b/docs/onscreen.png new file mode 100644 index 0000000..d67de4b Binary files /dev/null and b/docs/onscreen.png differ diff --git a/docs/ui.png b/docs/ui.png new file mode 100644 index 0000000..e98fe23 Binary files /dev/null and b/docs/ui.png differ diff --git a/readme.md b/readme.md index 0f12fb5..aa9136e 100644 --- a/readme.md +++ b/readme.md @@ -8,17 +8,13 @@ --- +

+ inØsight on-screen detection +

-## Encryption - -### PLAIN -No encryption. Encodes text directly. - -### SPECK32/64 ECB -Block cipher in ECB mode. Each character is encrypted independently — identical plaintext characters produce identical ciphertext. Useful when you want varied-looking output from the same input, but **not secure under real threat models** since patterns in the plaintext leak through. - -### SPECK48/96 CTR -Stream cipher mode with a random 24-bit nonce prepended to the output. Identical plaintexts produce different ciphertexts each time. Significantly more secure than ECB. **Rotate your password after roughly every 100 encryptions** to avoid nonce reuse risk within the 24-bit space. +

+ inØsight user interface +

## How ZWUS Works @@ -29,6 +25,8 @@ Stream cipher mode with a random 24-bit nonce prepended to the output. Identical The result is a string of invisible Unicode that carries the full original text. Decoding reverses the mapping: split on the separator, look up each zero-width character to recover the digit, parse the base-N number back to a code point, and reconstruct the string. +For cipher details, see [docs/cipher.md](docs/cipher.md). + ## Use ZWUS in Your Own Projects The encoder/decoder is available as a standalone package for multiple languages: