Skip to main content

SLIP-PLATE - Shamir DEK Plates

SLIP-PLATE is a Python tool designed to split Data Encryption Keys (DEKs) (128/192/256-bit) using Shamir's Secret Sharing and render them as OneKey-style physical plates with built-in checksums.

This project does not implement a wallet and does not interact with blockchains directly.

Installation

You can now install SLIP-PLATE directly from PyPI:

pip install slip-plate

This will automatically install the necessary dependencies (cryptography and pyshamir) and register the slip-plate command in your terminal.

Usage

After installation, you can run the tool from anywhere using the slip-plate command:

slip-plate --dek-size 256 --parts 3 --threshold 2

Arguments

  • --dek-size: Size of the DEK in bits (128, 192, or 256). Default: 256.
  • --parts: Total number of Shamir shares to create. Default: 3.
  • --threshold: Minimum number of shares required to reconstruct the key. Default: 2.

Example Output

The tool generates ANSI-rendered plates for your terminal:

=== 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 | ○ ○ ● ○ │ ○ ○ ○ ○ │ ○ ○ ● ○ │
 . | . . . . | . . . . | . . . . |
 . | . . . . | . . . . | . . . . |
 . | . . . . | . . . . | . . . . |
11 | ○ ○ ○ ● │ ● ● ● ○ │ ○ ○ ● ○ │
12 | ● ● ○ ○ │ ● ● ○ ● │ ● ○ ○ ○ │
    ─────────────────────────────

Dots (…) represent truncated rows for brevity.

Security Model

  • Offline Storage: Plates are intended to be generated once and stored physically (e.g., punched into metal).
  • Ephemeral Memory: DEKs are reconstructed from a quorum of shares only during active operations and are not persisted digitally.
  • Unique Nonces: Encryption uses unique nonces per session, embedded in the ciphertext.
  • Minimal Footprint: Designed to ensure no DEK is stored on disk in an unencrypted state.

Development & Testing

If you want to contribute or run tests from the source code:

  1. Clone the repository:
    git clone https://github.com/avra911/slip-plate.git
    cd slip-plate
    
  2. Install in editable mode:
    pip install -e .
    
  3. Run tests:
    pip install pytest
    pytest -q
    

Notes and Caveats

  • Research Tool: This is a demo/research tool. Review the code and cryptographic implementations before use in production environments.
  • Physical Security: Treat printed/punched plates as high-security assets.
  • Checksums: The built-in checksum helps detect transcription errors but does not replace proper key management procedures.

Disclaimer

This software is provided as-is, without warranty of any kind.

It is intended for educational and experimental purposes. No formal security audit has been performed.

Do not use this software to secure funds or data that you cannot afford to lose.

The authors take no responsibility for loss of funds, data corruption, or other damages resulting from the use or misuse of this software.


Contributions are welcome! Feel free to open a PR or an issue on GitHub.

Metadata

Release files for slip-plate 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for slip-plate 0.1.3
File Size Uploaded
slip_plate-0.1.3.tar.gz 9.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for slip-plate 0.1.3
File Interpreter ABI Platform
slip_plate-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 17.3 kB

Release files / slip_plate-0.1.3.tar.gz

Download URL slip_plate-0.1.3.tar.gz
Size 9.0 kB
Tags Source
SHA-256 checksum
How to use checksums
76dd66be9baf364395022e6c3a1bf159b8a92cf6b0ae14364acce25fba0fdabc
BLAKE2b-256 checksum
How to use checksums
5cbdaed4f601af82d8a30dbba59ec67efdc73857f9affe28513fca8899fd2bf2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / slip_plate-0.1.3-py3-none-any.whl

Download URL slip_plate-0.1.3-py3-none-any.whl
Size 8.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7c6ebeb6e5bff5009ee3e5ba5a2edbd378565c45f8225d16729a2d72d21b77a5
BLAKE2b-256 checksum
How to use checksums
88489b8b4dccba3e587df7d31dfa03ed48f98cecfba62b5a00f7f71020afd7af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page