QR-secret-sharing

:lock: Create QR codes to secret-share a message. Ideal for cryptocurrency wallet recovery keys and passwords.

View the Project on GitHub skewthreads/QR-secret-sharing

alt text QR Secret Sharing License: MIT

alt text

Description

Create QR codes to secret share a message using Shamir’s secret sharing algorithm. Ideal for cryptocurrency wallet recovery keys, passwords, etc. Protect your message by sharing it to secrets. Print the created QR codes and store them separately somewhere safe.

Shares are not parts of the message. Each share does not reveal any information about the initial message itself. Restoring the initial message needs all shares combined, or a specified minimum amount (default threshold is equal to the number of shares). For more information read Shamir’s secret sharing algorithm, or similar work.

Demonstration

Sharing

python share.py

alt text

Share 1 Share 2 Share 3

Recovering

python recover.py

alt text

Installation

git clone https://github.com/skewthreads/QR-secret-sharing.git
cd QR-secret-sharing
pip install -r ./requirements.txt

Suggested Usage

Suggested usage is to create 3 or more shares of your message, print the corresponding QR codes and store them in separate physical locations. In case you need to recover your original message, scan the qr codes, and input the shares in the recovery script.

You can specify the number of shares that will be sufficient to recover the original message. This threshold must obviously be greater than 2. The most secure practice is to set that threshold equal to the number of shares. If you set it to a number less than the number of shares, then you can recover your secret using less shares. For example, you can split your message into 4 shares and set your recovering threshold to 3, you can get the original message using any 3 of the 4 shares, in case that a share gets destroyed. But beware, an adversary can recover your secret using only 3 shares as well. Use this security/usability trade-off with caution.

Credits

Caution

Always check that you can recover your message before destroying the original.

alt text An open-source project by Skew Threads