home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / usr / share / doc / libgfshare-bin / README < prev   
Encoding:
Text File  |  2009-12-18  |  2.5 KB  |  57 lines

  1. Library for Shamir Secret Sharing in the Galois Field 2**8
  2. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  3.  
  4. This library implements what is known as Shamir Secret Sharing. This
  5. entails encoding a secret as an integer and then constructing a
  6. polynomial whose coefficients are random and calculating coordinate
  7. pairs along the resultant curve. These coordinate pairs are considered
  8. 'shares' and by controlling the order of the polynomial we can control
  9. the number of shares required to be able to recover the secret.
  10.  
  11. In this manner we can split a secret into any 'C' shares, any 'T' of
  12. which can be used to recover the secret.
  13.  
  14. This would be useful, for example, in looking after GPG secret keys
  15. used rarely, but whose security is paramount. For example a key used
  16. to sign the key which signs the Debian or Ubuntu package archives.
  17.  
  18. If you wish to know more about how the secret sharing works and why it
  19. is safe, then there exist many articles on the mathematics behind it.
  20.  
  21. This particular implementation was very heavily inspired by the work
  22. of Mark D. Wooding (mdw) in his catacomb library. Thanks go to Mark
  23. for offering to share this implementation with me.
  24.  
  25. Using the library is very easy. The tests and sample tools are very
  26. straightforward and the header file tells you what each function is
  27. used for.
  28.  
  29.  -- Daniel Silverstone. 2006-01-15
  30.  
  31. Recovering from previous versions of gfsplit producing foo.000
  32. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  33.  
  34. The quick version: if you have split a secret into shares and one
  35. of them is numbered 000, recover the secret by re-labelling it to
  36. 001 (i.e. rename the file, if you're using gfcombine).
  37.  
  38. Previous versions of libgfshare could incorrectly produce a share
  39. numbered 000, and the gfsplit utility would produce such a share
  40. sometimes (with the default settings, a 3-of-5 share, this will
  41. happen about 2% of the time). In gfsplit this produces filenames
  42. ending with ".000".
  43.  
  44. Mathematically, the "share" numbered 0 would be the secret itself,
  45. which is why it shouldn't be used. However, due to the way libgfshare
  46. implements multiplication via exp/log tables, the output will
  47. actually be a copy of the data that would appear in share number 001,
  48. so the secret is not actually leaked.
  49.  
  50. Recombining shares that include share number 000 doesn't work: it's
  51. silently ignored. If share 000 is renamed to share 001, recombination
  52. should work; the exception is if you already had a copy of share 001,
  53. in which case you can only recover the secret by having one extra share
  54. above the normal threshold.
  55.  
  56.  -- Simon McVittie. 2009-11-18
  57.