Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Threshold encryption - group 5 #3246

Closed
qstokkink opened this issue Nov 21, 2017 · 11 comments
Closed

Threshold encryption - group 5 #3246

qstokkink opened this issue Nov 21, 2017 · 11 comments

Comments

@qstokkink
Copy link
Contributor

qstokkink commented Nov 21, 2017

@gouri7
@b-czaszynski
@doriandekoning
@Threore
@TBruyn

You will create your own blockchain, almost from scratch. Your blockchain will be special! Your blockchain will be both fully permissionless, require no miners, provide transparency, and yet still offers solid privacy. All information on your blockchain will be encrypted. It will operate on smartphones exclusively. Together with friends your encrypted blockchain essentially becomes your personal data server; problem such as reliability, backup, and theft-locking become tractable.
Two students have created a starting point for you to get going, see project A for details and links on Android Trustchain. You will add the ability to spread information among trusted friends in order to protect it from fraud, theft and abuse. By using threshold encryption you need multiple phones to cooperate to decipher information. From Wikipedia: The message is encrypted using a public key and the corresponding private key is shared among the participating parties. Let {\displaystyle n} n be the number of parties. Such a system is called (t,n)-threshold, if at least t of these parties can efficiently decrypt the ciphertext, while less than t have no useful information.
Mature libraries are available to get you started quickly. This project gives you a lot of freedom, you can focus on the encryption part or offer a compelling service. It's up to you.

This ticket will contain information for group 5 of the CS4160 threshold encryption project.
Feel free to post your important updates and questions in this issue.

Reading material:
https://scholar.google.nl/scholar?hl=en&as_sdt=0%2C5&q=key+escrow&btnG=

Search terms:

  • Sovrin
  • uPort

You can also check out issue 3013 in this repository.

Meeting schedule: Tuesdays weekly 11:30

@qstokkink qstokkink added this to the Backlog milestone Nov 21, 2017
@qstokkink qstokkink self-assigned this Nov 21, 2017
@qstokkink
Copy link
Contributor Author

qstokkink commented Nov 21, 2017

Heads up:
Your first meeting is 21st November 2017, 11:30

Planned for next meeting:

  • Project planning
  • List of features in your proof of concept

@mengs7
Copy link

mengs7 commented Nov 23, 2017

Hey, I'm not able to add the others to this ticket, would you be able to do it? Doriandekoning, Threore, Tbruyn

Thanks!

@qstokkink
Copy link
Contributor Author

@gouri7 Sure thing: I have sent out the team invites, once they are accepted I can assign you to the issue.

@qstokkink
Copy link
Contributor Author

For next meeting 5th December 2017:

  • Have a functioning threshold encryption implementation.

@qstokkink
Copy link
Contributor Author

By all means, please post a status update here for everyone to see the cool stuff you made.
Also, please send me an invite to your repository (if you want to keep it private) or share the link to your code.

@doriandekoning
Copy link

This is our repository: https://github.com/b-czaszynski/thresholdBC

@doriandekoning
Copy link

A quick status update, currently we have a working (k,n) threshold encryption key recovery app using Shamir's secret sharing.
In our app you can enter a secret (this can be anything, a private key for example) as well as the parameters for the threshold encryption, the total amount of shares and the amount of shares needed to recover your secret. Once you press the button the shares are generated and you can pass them to your friends using NFC by tapping your phone against theirs, one share is automatically kept on your phone. If you want to recover your secret you ask k-1 of your friends to press the "send back share" button and tap their phone against yours. If you've received enough shares the secret will be recovered and shown on the screen.
image

image

@synctext
Copy link
Member

Please do a pull request to the main app before the end of this class.
https://github.com/Tribler/tribler/issues/3105

@qstokkink
Copy link
Contributor Author

First and foremost: best wishes for 2018!
Your meeting tomorrow will be in this building:
https://www.google.nl/maps/dir//51.9990903,4.3785233/@51.999109,4.3785435,18.08z/data=!4m2!4m1!3e2?hl=en
In room 3.420 (third floor).

@doriandekoning
Copy link

Before wrapping up the project another quick update. (@qstokkink )
One of the problems of blockchain technology is private keys getting lost, the application we developed aims to solve that problem. Our application uses Shamir's secret sharing to divide a private key (or any secret) in k shares. Shares can be easily distributed among friends using NFC, more trustworthy friends can get multiple secrets.
A lost private key can be recovered by bringing friends together with at least n shares and combining their shares to recover the secret. This application functions independently from any particular blockchain, it can be used to make secure secret recovery possible for any kind of secret. However, as an example we integrated it into the trustchain mobile application.
beb9ded1-0179-4d84-aad1-d08486075c63

mainpage

Creating shares for a secret

createsecret2

After creating a secret the shares can be distributed among friends using NFC.

Shares received from friends

friendsharelist
All the shares you have received from a friend can be seen in this list.

Returning shares

returnsecret
Returning a share to a friend can again be done using NFC

Secret recovery

ownsharelist

recoveredsecret
If enough shares are received from friends the secret can be recovered.

@ARBaart
Copy link

ARBaart commented Feb 2, 2018

Here is our report:

report.pdf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

7 participants