Context
Following up on Issue #1 and your detailed replies, Julian — thank you for engaging substantively. You raised important points about I(M;A)=0 and plausible deniability that prompted me to go deeper.
Rather than continuing the debate informally, I ran a formal cryptanalysis using two independent SMT (Satisfiability Modulo Theories) solvers: Z3 (Microsoft Research) and CVC5 (Stanford/Iowa). These are mathematical proof engines — they don't have opinions. When they return UNSAT, the result is a machine-verified mathematical proof that the negation is impossible.
17 proofs. Two independent solvers. 34/34 agreement.
The analysis covers the entire protocol family: ZOSCII, UNSIGNAL, and BRAINLESS.
What You Got Right
I want to lead with this because it matters.
Proof 1: Deniability — CONFIRMED ✓ (SAT)
Your I(M;A)=0 claim, in the deniability sense, is formally verified:
For any address sequence A and any target message M, there exists a ROM R such that R[A[i]] = M[i].
The same address sequence [100, 200, 300, 400, 500] can decode to "HELLO" with one ROM and "WORLD" with a different ROM. Both solvers confirm this. This is a genuine and valuable property. Most encryption schemes do not offer this — you can't typically produce a second AES key that decrypts the same ciphertext to a different meaningful plaintext.
The "weaponised ambiguity" is real.
Where the Claim Exceeds What the Math Supports
The gap is between deniability (which ZOSCII has) and information-theoretic security (which ZOSCII does not have). These are different properties with different definitions.
Proof 2: Information Leakage via Address Collision — PROVEN (UNSAT)
This is the central finding:
from z3 import *
ROM = Array('ROM', BitVecSort(16), BitVecSort(8))
A1, A2 = BitVecs('A1 A2', 16)
M1, M2 = BitVecs('M1 M2', 8)
s = Solver()
s.add(Select(ROM, A1) == M1) # ZOSCII encoding
s.add(Select(ROM, A2) == M2) # ZOSCII encoding
s.add(A1 == A2) # addresses collide
s.add(M1 != M2) # can plaintext bytes differ?
s.check() # → UNSAT: IMPOSSIBLE
If two messages are encoded with the same ROM and any address appears in both encodings, the corresponding plaintext bytes are forced to be equal. This is information leakage — observing the encoded output reveals which plaintext positions share the same byte value.
In a system with true information-theoretic security (e.g., one-time pad), no amount of ciphertext observation constrains the plaintext. ZOSCII fails this requirement.
Proof 3: Known-Plaintext ROM Recovery — PROVEN (SAT)
If an attacker knows some plaintext bytes and their corresponding addresses (e.g., a known file header), they learn ROM[address] = known_byte for each pair. These recovered ROM bytes can then decode other messages using the same ROM.
Proof 4: Cumulative Multi-Message Leakage — PROVEN (UNSAT)
Each message encoded with the same ROM constrains the set of possible ROMs. Shared addresses between messages fix ROM byte values. With enough messages, the ROM approaches unique determination.
Proof 5: Homophonic Substitution Cipher Equivalence — PROVEN (UNSAT)
ZOSCII is structurally equivalent to a homophonic substitution cipher:
- Each plaintext byte has a fixed set of possible encodings (the ROM addresses containing that byte value)
- Encoding randomly selects from that set
- The ROM is the substitution table (the key)
Homophonic substitution is a well-studied cipher class, known to be breakable since the 1800s. This classification is not a judgment — it's a structural observation.
Proof 6: OTP-Equivalence Disproven — PROVEN (UNSAT/SAT)
Direct comparison with a one-time pad:
| Property |
OTP |
ZOSCII |
| Same ciphertext/address, different plaintexts possible? |
YES (SAT) |
NO (UNSAT) |
With an OTP using fresh keys, the same ciphertext byte can correspond to different plaintexts. With ZOSCII reusing a ROM, the same address always maps to the same plaintext byte. These are fundamentally different security properties.
UNSIGNAL Protocol Analysis (5 Proofs)
UNSIGNAL adds a sliding window offset, random padding, and header indirection. All parameters are ROM-derived.
| Proof |
Finding |
Result |
| U1 |
Same ROM + same header addresses → identical window offset |
UNSAT ✓ |
| U2 |
Address collision within the window still forces plaintext equality |
UNSAT ✓ |
| U3 |
Cross-message header collision reveals shared window parameters |
UNSAT ✓ |
| U4 |
Padding lengths are ROM-determined, not random |
UNSAT ✓ |
| U5 |
With known header parameters, UNSIGNAL reduces to base ZOSCII |
UNSAT ✓ |
Key insight: The sliding window changes which addresses are available, not the structure of the encoding. The header addresses are in cleartext (first 8 bytes of every .sig file), and all parameters are ROM lookups. UNSIGNAL's security is circular — it depends on keeping ROM values secret, but the ROM is the thing being attacked.
BRAINLESS Protocol Analysis (4 Proofs)
BRAINLESS adds an Ouroboros XOR chain on top of the encoded output.
| Proof |
Finding |
Result |
| B1 |
XOR chain is a bijection — invertible with unique inverse |
SAT + UNSAT ✓ |
| B2 |
Public inverse always recovers the original (no key needed) |
UNSAT ✓ |
| B3 |
After public inversion, all ZOSCII leakage applies |
UNSAT ✓ |
| B4 |
BRAINLESS is injective — preserves all distinguishable patterns |
UNSAT ✓ |
Key insight: BRAINLESS uses no key material. The inverse is 4 lines of code:
b[n-1] = c[n-1] XOR c[0]
for i = n-2 down to 0:
b[i] = c[i] XOR b[i+1]
Any attacker who knows the algorithm (which is published) can undo BRAINLESS in O(n) time with zero secret information. It adds exactly zero bits of security.
Combined Stack Analysis (2 Proofs)
| Proof |
Finding |
Result |
| C1 |
Full BRAINLESS + UNSIGNAL + ZOSCII stack leaks through address collision |
UNSAT ✓ |
| C2 |
Adding BRAINLESS preserves I(M;A) — mutual information unchanged |
UNSAT ✓ |
The fundamental issue: Security comes from key material, not layers. Each layer must introduce independent secret information to add security. BRAINLESS uses no key. UNSIGNAL derives all parameters from the same ROM. Stacking layers without adding keys does not compound security.
Reproducibility
All proofs are reproducible. Install Z3 (pip install z3-solver) and run:
from z3 import *
ROM = Array('ROM', BitVecSort(16), BitVecSort(8))
A1, A2 = BitVecs('A1 A2', 16)
M1, M2 = BitVecs('M1 M2', 8)
s = Solver()
s.add(Select(ROM, A1) == M1)
s.add(Select(ROM, A2) == M2)
s.add(A1 == A2)
s.add(M1 != M2)
print(s.check()) # unsat
If this prints unsat, the information leakage is confirmed on your machine. The full 17-proof toolkit is available on request.
Constructive Recommendation
ZOSCII has a genuine property — plausible deniability — that is valuable and underappreciated. If the project reframed from "100% secure forever / information-theoretic security" to "deniable encoding with plausible ambiguity," the cryptography community would engage with it seriously. The I(M;A)=0 proof is sound for what it actually proves. The issue is only with what it's claimed to prove.
The deniability property could have real applications in censorship-resistance contexts. That's worth developing. The "information-theoretic security" claim, however, is formally disproven by 17 machine-verified proofs across two independent solvers.
Analysis by Ray Iskander — Verdict Security
Machine-verified by Z3 4.15.4 (Microsoft Research) and CVC5 1.3.3 (Stanford/Iowa)
Context
Following up on Issue #1 and your detailed replies, Julian — thank you for engaging substantively. You raised important points about I(M;A)=0 and plausible deniability that prompted me to go deeper.
Rather than continuing the debate informally, I ran a formal cryptanalysis using two independent SMT (Satisfiability Modulo Theories) solvers: Z3 (Microsoft Research) and CVC5 (Stanford/Iowa). These are mathematical proof engines — they don't have opinions. When they return UNSAT, the result is a machine-verified mathematical proof that the negation is impossible.
17 proofs. Two independent solvers. 34/34 agreement.
The analysis covers the entire protocol family: ZOSCII, UNSIGNAL, and BRAINLESS.
What You Got Right
I want to lead with this because it matters.
Proof 1: Deniability — CONFIRMED ✓ (SAT)
Your I(M;A)=0 claim, in the deniability sense, is formally verified:
The same address sequence
[100, 200, 300, 400, 500]can decode to "HELLO" with one ROM and "WORLD" with a different ROM. Both solvers confirm this. This is a genuine and valuable property. Most encryption schemes do not offer this — you can't typically produce a second AES key that decrypts the same ciphertext to a different meaningful plaintext.The "weaponised ambiguity" is real.
Where the Claim Exceeds What the Math Supports
The gap is between deniability (which ZOSCII has) and information-theoretic security (which ZOSCII does not have). These are different properties with different definitions.
Proof 2: Information Leakage via Address Collision — PROVEN (UNSAT)
This is the central finding:
If two messages are encoded with the same ROM and any address appears in both encodings, the corresponding plaintext bytes are forced to be equal. This is information leakage — observing the encoded output reveals which plaintext positions share the same byte value.
In a system with true information-theoretic security (e.g., one-time pad), no amount of ciphertext observation constrains the plaintext. ZOSCII fails this requirement.
Proof 3: Known-Plaintext ROM Recovery — PROVEN (SAT)
If an attacker knows some plaintext bytes and their corresponding addresses (e.g., a known file header), they learn ROM[address] = known_byte for each pair. These recovered ROM bytes can then decode other messages using the same ROM.
Proof 4: Cumulative Multi-Message Leakage — PROVEN (UNSAT)
Each message encoded with the same ROM constrains the set of possible ROMs. Shared addresses between messages fix ROM byte values. With enough messages, the ROM approaches unique determination.
Proof 5: Homophonic Substitution Cipher Equivalence — PROVEN (UNSAT)
ZOSCII is structurally equivalent to a homophonic substitution cipher:
Homophonic substitution is a well-studied cipher class, known to be breakable since the 1800s. This classification is not a judgment — it's a structural observation.
Proof 6: OTP-Equivalence Disproven — PROVEN (UNSAT/SAT)
Direct comparison with a one-time pad:
With an OTP using fresh keys, the same ciphertext byte can correspond to different plaintexts. With ZOSCII reusing a ROM, the same address always maps to the same plaintext byte. These are fundamentally different security properties.
UNSIGNAL Protocol Analysis (5 Proofs)
UNSIGNAL adds a sliding window offset, random padding, and header indirection. All parameters are ROM-derived.
Key insight: The sliding window changes which addresses are available, not the structure of the encoding. The header addresses are in cleartext (first 8 bytes of every .sig file), and all parameters are ROM lookups. UNSIGNAL's security is circular — it depends on keeping ROM values secret, but the ROM is the thing being attacked.
BRAINLESS Protocol Analysis (4 Proofs)
BRAINLESS adds an Ouroboros XOR chain on top of the encoded output.
Key insight: BRAINLESS uses no key material. The inverse is 4 lines of code:
Any attacker who knows the algorithm (which is published) can undo BRAINLESS in O(n) time with zero secret information. It adds exactly zero bits of security.
Combined Stack Analysis (2 Proofs)
The fundamental issue: Security comes from key material, not layers. Each layer must introduce independent secret information to add security. BRAINLESS uses no key. UNSIGNAL derives all parameters from the same ROM. Stacking layers without adding keys does not compound security.
Reproducibility
All proofs are reproducible. Install Z3 (
pip install z3-solver) and run:If this prints
unsat, the information leakage is confirmed on your machine. The full 17-proof toolkit is available on request.Constructive Recommendation
ZOSCII has a genuine property — plausible deniability — that is valuable and underappreciated. If the project reframed from "100% secure forever / information-theoretic security" to "deniable encoding with plausible ambiguity," the cryptography community would engage with it seriously. The I(M;A)=0 proof is sound for what it actually proves. The issue is only with what it's claimed to prove.
The deniability property could have real applications in censorship-resistance contexts. That's worth developing. The "information-theoretic security" claim, however, is formally disproven by 17 machine-verified proofs across two independent solvers.
Analysis by Ray Iskander — Verdict Security
Machine-verified by Z3 4.15.4 (Microsoft Research) and CVC5 1.3.3 (Stanford/Iowa)