Live data from Hacker News

Shamir's Secret Sharing

en.wikipedia.org

41–48 of 48 posts

Re: Shamir's Secret Sharing

#41
post #38

Earlier quoted context omitted.

Consider you want to share the passwords to your bank accounts with your family after you die. You take a list of those passwords, and encrypt it using SSSS with 4 of 7 keys needed to decrypt. You then share these 7 keys with your 7 relatives. After your death, they get together and unlock your passwords.

Yeah, I know of plenty of use-cases for it but I have never worked on a project that required a secret sharing capability. I'm too lazy to make a product just because I want to use a cool algorithm. However, during the data retention debate in Norway I repeatedly pointed out that the only responsible way to implement the act would be to use secret sharing to ensure that a sufficient number of parties were involved wh…

Exactly. Consider the case where you require one and only one security officer that has one and only one key. In that scenario the security officer can escrow with encryption the key file using SSSS . You could then distribute the SSSS keys to various executives who could use quorum to retrieve the escrowed key.

Re: Shamir's Secret Sharing

#43
post #12

Shamir’s Secret Sharing is one of my favorite algorithm names. It sounds straight out of a D&D wizard spell list. Especially when you interpret it as ”sharing in secret” instead of ”sharing a secret”.

Thank you. Explains why I like the name so much!

Not to mention that it abbreviates to "SSS". I quickly looked up the D&D player's handbook and sure enough: Mordenkainen's Magnificent Mansion[0]

[0] http://forgottenrealms.wikia.com/wiki/Mordenkainen%27s_magni...

Re: Shamir's Secret Sharing

#44
post #23

Earlier quoted context omitted.

Just remember the caveat with the ELI5 explanation is that if I tell you the first two points on a parabola are (0,0) and (1,0) you will figure that the third point is more likely to be around (2,0) than, say, (2,2^30).

I could understand the integer arithmetic example they gave and I think you are pointing out how this is flawed security-wise (its use lies in explaining the method). This flaw is addressed by using finite field arithmetic but I did't understand that part too well.

Finite field arithmetic is basically what you would get if you were to reduce the integers to a set of finite size, but keep the arithmetic rules similar to what they were before. Using an infinite set like the integers is a bad idea because you can't have a uniform distribution over all the integers, and hence some members will be more likely than others, which leaks information. The special case of finite-field arithmetic we usually care about is GF(p), which is when the integers start at 0 and wrap around at p, where p is a prime number. We care about this because when p is prime, then we can ensure numbers are uniformly random in the range 0..p-1, which is something we need in order to guarantee information-theoretic security.

Re: Shamir's Secret Sharing

#45

Earlier quoted context omitted.

I won't follow your script, but here's a nodejs implementation of SSS https://github.com/grempe/secrets.js I've seen SSS used in Ethereum smart-contracts before. Grid+ https://blog.gridplus.io/simple-security-with-shamir-secret-... and Blockstack: https://github.com/blockstack/secret-sharing and uPort: https://github.com/uport-project/sss-wasm come to mind.

`poly_utils.py` in https://github.com/ethereum/research/tree/master/mimc_stark is a fairly simple one-file general-purpose library for arithmetic over prime fields, including multi-point evaluation and Lagrange interpolation; secret sharing and erasure coding are quite easy to implement with these primitives.

Thanks for the link, I'll have a look!

Re: Shamir's Secret Sharing

#47
post #28

Suppose I asked if there's a practical example of merkle trees in the wild. Someone answers, "of course: git." Then 7 troglodyte friends and I jump on github/gitlab/whatever (which is super easy because everyone already uses one of these user-friendly services that wrap around git) and immediately see how git helps us develop by leveraging merkle trees. We realize that the merkle trees are leveraged so that we can en…

Fill in: DNSSEC. "Paul Kane -- who lives in the Bradford-on-Avon area -- has been chosen to look after one of seven keys, which will 'restart the world wide web' in the event of a catastrophic event." https://www.schneier.com/blog/archives/2010/07/dnssec_root_k...

So in the event of a catastrophe, the key holders will restart the hierarchy by using a system no one else has seen but Bruce Schneier guesses is most likely SSS.

I was looking for an example a bit more concrete and inspectable than that.

Re: Shamir's Secret Sharing

#48
post #13

I'm not a mathematician but here is my ELI5 understanding of it based on linked wikipedia article. If you know the coordinates of any 2 points on a line you can recover the equation for that line. The same is true for 3 points on a quadratic curve and 4 points on cubic curve, etc. So if our secret is the number c we can put it in the equation for, say, a quadratic: ax^2 + bx + c = 0 We can then give any number of peo…

A good ELI5 analogy is the Pythagoras' theorem [1]. Its taught here (NL) at school at around age 12, so its not quite ELI5 but closest I can think of.

[1] https://en.wikipedia.org/wiki/Pythagorean_theorem

Post reply on HN