How it works
A screen, a camera, and two signatures.
Kionel moves a file between two devices that share no network. The sending device shows it as a stream of codes; the receiving device reads them with its camera. Both sides then sign what happened.
Handshake
The receiver shows one code; the sender reads it and replies with another. From those two codes both sides derive the same session key — X25519 key agreement, HKDF, AES-256-GCM. Nothing travels over a network.
Compare
Each device shows the same six digits and five drawn symbols. The operator checks that the screens agree. This is what stops a screen or camera placed in the middle; skip it and that protection is gone.
Transfer
The file is encrypted, split into blocks and displayed as rapidly changing codes. A fountain code means a missed frame is not a failed transfer: the receiver keeps reading until it has enough blocks, and a long transfer can be paused and resumed.
Sign
The sender signs a dispatch record — content hash, work order, classification, target system. The receiver verifies the content against that hash, then signs a delivery record. Ed25519 over a fixed byte layout.
Verify
An offline verifier checks both signatures and the hash. It is Apache-2.0 licensed and needs no account, no network and no permission from us.
When the PC has no camera
The handshake above needs a camera on both sides. Most instrument PCs have none, so there is a one-way mode. The receiving phone shows a one-time 12-character code (60 bits of randomness); the operator types it on the PC. The PC derives the encryption key from it (PBKDF2, 600,000 rounds) and plays the file on screen; only the phone that showed the code can open it. A camera filming the monitor records ciphertext. The dispatch and delivery records are the same as in the two-way mode.
For a fixed pair of devices, a signed receiver card installed once on the PC replaces the code. The trade-off is written down: the card's key is long-lived, so it does not have the forward secrecy of the two-way mode.
See it in motion
The same steps as above, animated. Pick the one that matches your devices.
Sender without a camera, receiver reads live
- Receiver: show a code
- Sender: type it, press Send
- Sender: shows the file as codes
- Receiver: reads them live
- Receiver: file and signed receipt
Larger files: the receiver films the screen
- Receiver: show a code
- Sender: type it, choose Fast
- Sender: counts down while sending
- Receiver: film until “Enough”
- Receiver: Kionel reads the video
- Receiver: file and signed receipt
Film now, read later
- Receiver: show a code once
- Sender: type it and send
- Receiver: film with the camera app
- Later: any device
- Open the video, type the code
- File and signed receipt
Proof without the file
- Sender: choose file and work order
- Sender: seal — the file stays
- Sender: one small code
- Receiver: scan it
- Signed proof, no data
Evidence without the optical channel
The receipts do not depend on how the file travelled. If your file goes by approved USB, a data diode or a courier, the same command-line tool signs the dispatch and the delivery. A dispatch record is a few hundred bytes — small enough for one printed or displayed code — so the content can take one route and the evidence another.
The approval chain
A receipt says "this went from A to B". A laboratory usually needs a different sentence: "X produced this result, Y reviewed it, Z released it". Kionel can attach those approvals to the file itself, each link signed over the previous one, so the order is provable and removing a link breaks the chain.
What it runs on
A browser on each side, or a single-file command-line tool for the evidence-only workflow. No agent on the instrument PC, no driver, no network change. Keys stay in the browser's non-exportable key store.