Re: Joint encryption?
>The case where N = 1 is simple authentication; the case where N = M is
>an easily solvable problem in the scope I'm looking at. I'm interested
>in the case where N > M and the data is encrypted.
>
> - Key is fragmented
> - Fragments are indpendently encrypted
> - Each user who can authenticate can decrypt PART of the key, but not
>all of it
> - M of the N users are needed to decrypt enough of the key to access
>the key in total
When you fragment the key as you propose, there's a danger of making
the remaining fragment bruteforcable by "M-1" users as they're
left to guess only 1/Mth of the key.
I'd argue the best way is to give each of the M users a bit
vector the length of the key and XOR the M vectors to get
the key vector. This way, the security of the key is as strong
whether you have 1 , 2 .. upto M-1 fragments. (Of course,
you should also require each of the users to decrypt their
key vectors)
Effectively, none of the users know any key bits by themselves.
>The problem is that I need a guaranteed way to create data for any valid
>N and M where N >= 3 > M >= 2 in which access to M fragments of the key
>(each fragment is encrypted) can be used to gain access to the rest of
>the fragments, which in turn allows any selection of M users to
>authenticate and gain physical access to the key.
Exponentional might not be bad if you know that the numbers
will be small; in O(N^M) space a solution is trivial.
Casper