Take the 2-minute tour ×
Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography. It's 100% free, no registration required.

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 stackoverflow.com Jun 4 '12 at 1:16

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

    
belongs on security.se imo –  Woot4Moo Jun 1 '12 at 19:39
1  
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 security.se and crypto.se? 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 –  owlstead 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
show 2 more comments

2 Answers 2

up vote 8 down vote accepted

Yes, it's called secret sharing.

share|improve this answer
add comment

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
add comment

Your Answer

 
discard

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.