SLIP-PLATE - Shamir DEK Visualization on Plates (OneKey/TinySeed Style)
SLIP-PLATE is an open-source security tool that allows you to split a Data Encryption Key (DEK) using Shamir’s Secret Sharing and render the resulting shares as human-friendly, physical plates (OneKey/TinySeed style).
With the recent transition to a PyPI package, the tool is now easier than ever to deploy and use for secure offline key management.
Why this is useful
- Redundancy: Split a master key into multiple physical plates (e.g., metal or paper) where only a specific threshold (e.g., 2-of-3) is needed to recover the secret.
- Physical Optimization: The output is specifically formatted for manual transcription or punching into offline media.
- Error Detection: Includes a short, visual checksum to verify that shares are copied correctly.
Quick Start
You no longer need to clone the repository to get started. Simply install it via pip:
pip install slip-plate
Usage
Once installed, you can generate and visualize shares directly from your terminal using the global slip-plate command:
# Generate a 256-bit DEK, split it into 3 shares, requires 2 for recovery
slip-plate --dek-size 256 --parts 3 --threshold 2
What you’ll see
The tool will perform an end-to-end demo:
- Generate a random DEK.
- Encrypt a sample message.
- Split the DEK into Shamir shares.
- Render the shares as visual plates with ANSI-enhanced terminal output.
Example Plate Output
Below is a look at how a KEK share plate is rendered (128-bit DEK, 2-of-3 Shamir):
=== KEK Share 1 ===
2 1 │ │
0 0 5 2 │ 1 │
4 2 1 5 │ 2 6 3 1 │
8 4 2 6 │ 8 4 2 6 │ 8 4 2 1
─────────────────────────────
1 | ○ ● ● ● │ ● ○ ○ ● │ ● ● ○ ○ │
2 | ○ ○ ● ○ │ ○ ○ ○ ○ │ ○ ○ ● ○ │
. | . . . . | . . . . | . . . . |
12 | ● ● ○ ○ │ ● ● ○ ● │ ● ○ ○ ○ │
─────────────────────────────
Dots (…) represent truncated rows for brevity.
Security Model
- Offline First: Designed for keys that live on physical plates, not in cloud storage.
- Threshold Security: An attacker needs multiple plates to compromise the key.
- Nonces & AES-GCM: Uses industry-standard cryptography for the encryption demo.
Development & Contributions
The project is modular and easy to extend. If you want to dive into the code:
- Repository: github.com/avra911/slip-plate
- Tests: Run
pytestto verify the Shamir implementation and plate rendering logic.
git clone https://github.com/avra911/slip-plate.git
cd slip-plate
pip install -e .
pytest -q
Notes and Caveats
- Research Tool: This is a demo/research tool. Review the cryptographic choices before using it in production.
- Physical Security: A digital tool can only do so much; the physical security of your plates is your responsibility.
Contributions are welcome! Open a PR or an issue on GitHub if you have ideas for new plate formats or security improvements.