By V · Published 23 October 2026 · Experimental project notes
By V · 23 October 2026. V Cipher 0.1.9 research is a separate experimental workflow from the ordinary VVault passphrase tool. Physical two-phone camera operation and independent review remain incomplete.
Separate identity operations from transfer
The Vault role holds identity keys and creates or opens messages. The Relay role moves public contact cards and encrypted bundles. The software asks for offline setup and isolation confirmation before Vault operations, but those are usability gates: they cannot prove an air gap or a trustworthy device.
Two encryption layers and a signature
The documented design wraps a fresh AES-256-GCM key using RSA-OAEP-3072 with SHA-256. ECDSA P-256 with SHA-256 signs the canonical VCMESSAGE2 envelope, including the sender, recipient and random message ID. Outer authenticated data binds the header. An inner passphrase-encrypted message additionally requires the conversation secret.
Identity fingerprints still need comparison through a trusted separate channel. A valid signature ties a message to the key being checked; it does not establish that an unverified contact card belongs to the intended person.
QR checksums are not signatures
The VCQR1 framing format includes a whole-transfer SHA-256 checksum, frame count, frame index and chunks of up to 360 base64 characters. Transfers are bounded to 96 frames and 24 KiB; messages are limited to 2,048 UTF-8 bytes. Frame collection expires after five minutes, with ordinary session locking clearing it sooner.
The checksum detects corruption or mixed frames. Anyone who can construct a transfer can compute a checksum, so it cannot authenticate a sender. The recipient Vault must still validate the encrypted message and signature after reassembly.
Replay detection has a lifetime
The replay tracker remembers at most 1,024 successful opens in one unlocked session. It resets on lock or reload. This catches repeated opens within that session; it is not durable replay prevention across sessions or devices. Random message IDs alone do not provide persistent replay history.
No forward secrecy claim
The design has no key ratchet. Long-term key compromise and captured historical bundles need to be considered alongside the independent conversation-secret layer. Multiple layers do not justify describing the system as impregnable.
What the tests can establish
Tests exercise envelope authentication, tampering, key/backup consistency, bounded QR reassembly and synthetic encoder/decoder interoperability. They cannot establish real-phone camera compatibility, OS-level isolation or the absence of cryptographic design flaws. Test only fictional messages and report security findings privately.
← All guides · Share test feedback ↗
Keep exploring
- Inside VVault: passphrase encryption and strict envelope parsing
- Offline integrity: verifying bytes is only half the response
- Development log 01: key handling and offline integrity
- Development log 02: making release evidence easier to check
- Development log 03: the validation work still ahead
- How to test local message encryption with VVault
- How to transfer ciphertext without sharing the passphrase
- An Android app-firewall test checklist for VGuard
- How to read security claims before testing a privacy app