Store your secrets securely.
Storing sensitive data can be problematic. If it gets accidentally lost or destroyed, you lose your data. If stolen, your data is compromised. You can make multiple copies and store them in isolation, but this increases the risk of being stolen or misplaced. You can encrypt them, but then you face the same problem storing the encryption key.
Secret Coin uses Shamir's Secret Sharing algorithm to divide your secret into multiple (N) shares, and then you can restore the secret using a specified number of the shares (M of N). None of the shares contain identifiable information about the secret. If any share, or up to (M-1) shares are compromised, the secret is still completely unknown.
This type of security model is critical for data such as Bitcoin mnemonic phrases, private keys, or anything giving one "keys to the kingdom."
You will need to access the tool via an HTTP URL on a browser, and not direct file:// access. Example: http://localhost:8000. Detailed instructions follow.
You will need:
- The .zip archive of this repository (get from GitHub Download button)
- python scripting language. This comes with OSX. PC users may need to install python, or use another web server implementation, out of scope for these docs.
- HTML5 compatible browser such as Google Chrome
These commands are ran from the terminal.
unzip the archive
unzip secretcoin-master.zip
change to directory
cd secretcoin-master
start Simple HTTP Server
python -m SimpleHTTPServer 8000
Visit the website in your browser
http://localhost:8000
There is a text area for this.
For example, you might want to split your secret into three separate shares, and require any two of three shares to restore the secret.
This will generate the shares.
This will create individual files, one for each share.
It is absolutely crucial that you test the restore. Choose the required number of shares and be sure the secret is regenerated correctly.
You may choose to place the shares on separate USB thumb drives, then store these drives in three separate, safe locations. You could also print the shares and store the paper copies.
- Samir's Secret Sharing - The algorithm
- secret.js - Javascript implementation of SSS
- Vue.js - Javascript tool
- JQuery - Javascript tool
- Skeleton - CSS/Javascript tool
- FileSaver - CSS/Javascript tool
Use the GitHub repository to create a pull request.
- Monte Ohrt - Initial work - mohrt
This project is licensed under the MIT License - see the LICENSE.md file for details.