Skip to main content

Split secrets into T pieces. The secret can be recovered by recombining any D pieces.

Overview (wikipedia)

This module implements:

Splitting is done by:

  1. Apply a random mask to the secret
  2. For each block of the mask, generate a polynomial of degree D-1
  3. A piece consists of the masked secret and one point of each polynomial

Recovering is done by:

  1. Collect D pieces: D polynomials for each block of the mask
  2. Interpolate the points to retrieve the blocks of the mask
  3. Recover the secret by re-applying the mask to the masked version

A puzzle piece is a yaml serialisation of the following mapping:

# string, tells if the secret encoded is a string encoded as UTF-8 ("utf-8") or a raw stream of bytes ("none")
encoding: utf-8

# one  puzzle piece, exact format depending on the implementation
# this implementation stores a sequence of [point, value] items, one per block of the secret
# Flow-sequence format preferred to keep it on one line
puzzle piece: [[1,258],[1,3]]

# base64 representation of the result of the mask XOR the byte representation of the secret
encoded secret: YXo=

# name of the algorithm used for splitting
algorithm: block-wise SSS

# different algorithms might add additional information required for recovering the secret.

Working on blocks makes the algorithm linear in the number of bytes of the secret rather than exponential.

Metadata

Release files for secret-splitter 1.0.0

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

Source distribution (sdist)

Source distribution for secret-splitter 1.0.0
File Size Uploaded
secret_splitter-1.0.0.tar.gz 18.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for secret-splitter 1.0.0
File Interpreter ABI Platform
secret_splitter-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 30.0 kB

Release files / secret_splitter-1.0.0.tar.gz

Download URL secret_splitter-1.0.0.tar.gz
Size 18.8 kB
Tags Source
SHA-256 checksum
How to use checksums
3c92dfbcfe5b63d8bc6d964ea19609e643c5c2220ac8de0e91537441e557a854
BLAKE2b-256 checksum
How to use checksums
1f66906633f49834479a587acf590b26ab1254712278eafa0834b66d5cf286a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.10

Release files / secret_splitter-1.0.0-py3-none-any.whl

Download URL secret_splitter-1.0.0-py3-none-any.whl
Size 11.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3cca26067e831cc52fbd3a3e185d1705a762b906dab62f0df65e7a9e1837122a
BLAKE2b-256 checksum
How to use checksums
81fb0baca3a0209770ec6deb6043427b82cb2a80eac0bdbe76b84565ee1da6c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.10

Release history Release notifications | RSS feed

1.8.0

2 release files

1.6.0

2 release files

This release

1.0.0 This release

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