Secret splitting is simple and provably secure, but it also has some
limitations. If any one party loses his portion, or becomes
unwilling or unable to share it, no sharer can get at the secret
message. The secret splitting protocol also puts total power in the
hands of the person who originally generates the split secret (but
then, M belonged to that person as well). Furthermore, there are a
number of ways in which a malicious party, who either genuinely knows
a secret share or pretends to, can find another person's portion
without revealing her own portion and/or the message. All of these
limitations can be avoided in other (more complex) protocols. The
"Resources" section can lead tutorial users to many of these
specifics; here we will only discuss (m,n)-threshold schemes.
Before we do, though, it is worth making
a general observation. The secret shared in secret sharing schemes
need not be the ultimate interesting content. In practical terms,
the size of calculations and distributed portions can be limited by
letting C = E{K}(M)
for a strong symmetric-key
algorithm. C can be revealed to everyone (even those not involved
in the secret sharing), while K rather than M becomes the secret to
use in a sharing scheme. Good encryption algorithms use keys of
less than 256 bits, while messages themselves might well be multiple
megabytes in size. The math in most protocols is computationally
intractable for the numbers represented by huge files, but
reasonable-sized keys can act as effective proxies for the actual secret
message.