Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

A friend just showed me how to combine padlocks to achieve a lock that opens when k out of n people turn their keys.

I was wondering if there was something similar for encryption; using n or fewer public keys encrypt a piece of data so it can only be unlocked if at least k out of n specific private keys are applied.

I've tried ideas of stacking normal public key encryptions, but without luck. I'm sure somebody must have done research on the topic, but I have no idea what such a thing is called. Maybe it's even widely accessible through standard encryption libraries?

share|improve this question

migrated from Jun 4 '12 at 1:16

This question came from our site for professional and enthusiast programmers.

belongs on imo – Woot4Moo Jun 1 '12 at 19:39
crypto.SE is a better fit, but please don't cross-post. I hope it gets migrated. – CodesInChaos Jun 1 '12 at 19:44
Do you mean and Or stack exchange sites? I don't think this question has the level to be anything but hobbyist. That's what the encryption tag is for, right? – Thomas Ahle Jun 1 '12 at 21:40
@ThomasAhle no, crypto is not for hobbyist questions (at least, not just for hobbyist questions), but it should be something that has to with programming in general (use of libraries/runtimes, encodings etc.), incorrect code or possibly (class level) design...this question does not contain any programming specific stuff – Maarten Bodewes Jun 1 '12 at 22:47
Out of curiosity, can you describe or link to the padlock trick you reference? (referring to physical padlocks, right?) – Don Faulkner Jun 5 '12 at 18:44
up vote 8 down vote accepted

Yes, it's called secret sharing.

share|improve this answer

I don't know of anything that does that.

I guess you could use a data scheme with high redundancy and reconstruction attributes, like a CRC type algorithmn, with properties where if you have like 2/3rd of the bytes, it can reconstruct the entire input. Encode the 1st, 4th, 7th byte, etc, with one key, the 2nd, 5th, etc with the second, and 3rd, 6th, etc with the third.

Overall though, I don't think computer encryption really works like that - it's fundamentally different from a padlock, which is an access control scheme, not data hiding.

share|improve this answer
The redundancy approach is actually exactly what is used by the suggested approaches.They avoid revealing any actual bytes, but if the message has entropy H in an K/N scheme, each person does get HK/N bits. – Thomas Ahle Sep 3 '14 at 9:47

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.