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:

  1. Generate a random DEK.
  2. Encrypt a sample message.
  3. Split the DEK into Shamir shares.
  4. 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:

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.