Bitcoin Forum

Economy => Service Announcements => Topic started by: amper5and on February 11, 2013, 12:23:14 AM



Title: [ANN] PassGuardian.com - Client-side threshold secret sharing
Post by: amper5and on February 11, 2013, 12:23:14 AM
Hello folks,

I am pleased to announce http://passguardian.com (http://passguardian.com). This is a a client-side (browser) implementation of Shamir's threshold secret sharing scheme. In a nutshell, this helps safeguard your secrets by breaking them into cryptographically-secure "shares". A user-defined threshold number of shares are required to reconstruct the original secret. The secret cannot be derived from individual shares.

It is currently hosted on GitHub (https://github.com/amper5and/secrets.js/tree/gh-pages). PassGuardian.com uses the open-source secrets.js (https://github.com/amper5and/secrets.js (https://github.com/amper5and/secrets.js)) implementation of Shamir's sharing scheme. The finite field used in the online version is 8 bits, allowing up to 255 shares.

All computations are performed client-side, in your browser, without transmission of any secrets or shares to the server. Stand-alone and mobile versions are being considered if there is interest.

Currently you can share text and hexadecimal strings. Support for files (drag-and-drop) and QR codes is in development.

For example, to split your private key, paste the hexadecimal version into the input box, select "hexadecimal", select the number of shares and the threshold, then click "split."

This is a work-in-progress, and hopefully I will be able to expand it and add more Bitcoin-specific features over the next couple of weeks.

Feedback, bug reports, suggestions, and criticisms are all very welcome.

Regards,
amper5and


Title: Re: [ANN] PassGuardian.com - Client-side threshold private key sharing
Post by: Mike Hearn on February 11, 2013, 05:41:06 PM
Congrats, this is very cool. I tried it and indeed, no network traffic is sent. It'd be good to have this as a downloadable app though (you could just bundle it up into a single HTML file).

This isn't quite a replacement for CHECKMULTISIG, because that lets you avoid any one party ever having the ability to spend the guarded output, whereas with secret sharing once the threshold is reached each participant (that has access to the shares) has full authority. However, the ability to split arbitrary secrets including text is interesting and may well open up many other applications. At least I'm glad to see someone exploring this.

The next step IMHO is to implement threshold RSA signatures. This is useful because common code signing schemes as used on Android, Windows and MacOS require a standard signature, but we would like to be able to use reproducible builds and threshold signatures to ensure only builds agreed on by a quorum are signed. The current defacto status is that only one person can sign builds. For the Android app, if Andreas "goes away" or gets corrupted, the whole scheme tumbles down. If the signing key were split such that packages were signed with threshold signatures then we could solve this problem.

There is a discussion of threshold RSA here (https://docs.google.com/viewer?a=v&q=cache:RODE3mBIr40J:www.cs.washington.edu/education/courses/csep590/06wi/finalprojects/anson.doc+&hl=en&gl=us&pid=bl&srcid=ADGEEShiWWUANqzV9loAMH5F-KRlL9ZQs4-3eacyGMF1yM1KeBiVq2KygAMCTVcw7ZZHomn2AcuxZM-So3JR9gnRXK88KF4m4bUW1aKqGLoW0vyGUU1SYLvlxbvqMlvZxoBqQ5ZNNUlF&sig=AHIEtbRTIqDB--hrtc22zXSUTTnIeZAfvA).


Title: Re: [ANN] PassGuardian.com - Client-side threshold private key sharing
Post by: alphaguru on February 12, 2013, 11:02:54 AM
i like this, i was using PGP before but this seems to be alot easier to use for quick encrypting and decryption


Title: Re: [ANN] PassGuardian.com - Client-side threshold private key sharing
Post by: amper5and on February 15, 2013, 11:49:11 PM
Congrats, this is very cool. I tried it and indeed, no network traffic is sent. It'd be good to have this as a downloadable app though (you could just bundle it up into a single HTML file).
Thanks for the feedback. I also want to make a standalone app. Currently in development. Before I release that, this can be optimized so much with Web Workers. The beauty of Shamir's scheme is that it is highly "parallelizable". Using webworkers, share generation can be sped up and allow for efficient file sharing in the browser as well. This will be the focus of the next major tweaks to PassGuardian.

Quote
This isn't quite a replacement for CHECKMULTISIG, because that lets you avoid any one party ever having the ability to spend the guarded output, whereas with secret sharing once the threshold is reached each participant (that has access to the shares) has full authority.
Def not a replacement for multisig. This addresses a different problem.

Quote
The next step IMHO is to implement threshold RSA signatures...
Thank you for the link. Very interesting. I hope to tackle that and secure multi-party computation at some point, but it will be a while before I do that.


Title: Re: [ANN] PassGuardian.com - Client-side threshold private key sharing
Post by: amper5and on February 15, 2013, 11:53:34 PM
i like this, i was using PGP before but this seems to be alot easier to use for quick encrypting and decryption

I'm glad you find it useful, but please do not use it as a replacement for PGP. They solve two different problems.


Title: Re: [ANN] PassGuardian.com - Client-side threshold secret sharing
Post by: Scrat Acorns on February 16, 2013, 12:13:37 AM
"ssss" on the browser. Very cool!

You should package it in a single .html file and list the hash/pubkey on github (just like bitaddress is doing) to make verification possible.


Title: Re: [ANN] PassGuardian.com - Client-side threshold secret sharing
Post by: Financisto on December 01, 2013, 12:44:50 AM
Very well done app! Congratulations.

I liked it so much. Specially the offline version available at: https://github.com/amper5and/secrets.js/tree/gh-pages (https://github.com/amper5and/secrets.js/tree/gh-pages)

Gonna add this to my "crypto-stuff" collection.

Hope to see further development on this...

Keep up the good work!

Thanks!