<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hello,</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I am a cryptography fan and a beginner in the field and I wanted to hear opinions from the Cryptography mailing list members. I have been searching about the "Secret Sharing Schemes" and came across to the Shamir's Secret Sharing Scheme. The idea/method seems
 pretty smart, and it seems like this scheme has been being widely used. However, about the security aspect of the scheme, I am a little worried. A study I read about the scheme's weakness from a paper by Tompa & Woll (<a href="http://www.cs.nccu.edu.tw/~raylin/UndergraduateCourse/ComtenporaryCryptography/Spring2009/Tompa.pdf" id="LPlnk692603">http://www.cs.nccu.edu.tw/~raylin/UndergraduateCourse/ComtenporaryCryptography/Spring2009/Tompa.pdf</a>)
 shows that it is possible to cheat in that scheme when asynchronous secret share exchange happens. The paper also suggest a better approach, but again, the paper is from 1989, and could be outdated.</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
What I actually want to ask is, what would be the best way of distributing a <b>secret
</b>to n<i> </i>amount of people and allowing<i> k </i>of them being able to read,
<i>where k=<n,</i> the secret and any collaboration of<i> k-1</i> people having little to no information about the secret? I am asking because I am not expert, I haven't worked, in the field, and maybe experienced members might have a better approach to the
 problem than Shamir's scheme.</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Also, as for the application of the scheme, I wanted to ask one more situation. Assuming we have a secret
<i>S</i> (a private key maybe?) distributed to <i>n</i> different secret share holders by using a secret sharing scheme, and we are periodically (say every month) producing data, namely
<i>D<sub>1</sub>, D<sub>2</sub>, D<sub>3</sub> ... D<sub>n</sub></i>. Our rule is, if
<i>k</i> amount of people come together, they should be able to produce a data <i>
D<sub>i</sub></i>, which would be verifiable by the public that it was generated by at least
<i>k</i> amount of share holders' collaboration. However, we do not want any share holder, or anyone from public to learn the actual secret
<i>S</i>, so that no share holder, who contributed to the data production, will not be able to produce any other data <i>D</i><sub style="font-style: italic;">i+1
</sub>in the future without other share holders' help. As far as I know, at all secret sharing schemes collaborating once is enough for share holders to learn the main secret
<i>S <span style="font-family: Calibri, Helvetica, sans-serif; font-style: normal; background-color: rgb(255, 255, 255); display: inline !important">
(in the case of the papers, it was almost an integer number). Is there a way that we could use, or maybe combine public-private viewkeys, or make the secret
</span><span style="font-family: Calibri, Helvetica, sans-serif; background-color: rgb(255, 255, 255); display: inline !important;">S</span><span style="font-family: Calibri, Helvetica, sans-serif; font-style: normal; background-color: rgb(255, 255, 255); display: inline !important">
 some encrypted data, or any other thing that would allow such real life application? </span></i></div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<i><span style="font-family: Calibri, Helvetica, sans-serif; font-style: normal; background-color: rgb(255, 255, 255); display: inline !important"><br>
</span></i></div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<i><span style="font-family: Calibri, Helvetica, sans-serif; font-style: normal; background-color: rgb(255, 255, 255); display: inline !important">What I am exactly trying to achieve could be explained like this, 10 knights, holding 10 different amulets, once
 a year they gather at a secret temple, and there are 7 holes at the entrance door of the temple, so any 7 of those knights gathering together would be enough for them to access the temple, have the annual secret meeting, and part away for meeting next year.
 However, if next year 6 of those knights who were at the last year's gathering again come to the temple, they will not be able to open the door because they are missing the 7th amulet to activate the mechanism. What I need is exactly this. I know, in that
 case the amulet is a physical matter which is not duplicable but our secret keys are data that has to be shared with a centralized application, or other share holders, digitally at least at one point, so the keys of other share holders could be stored, accessed
 later, by the malicious participant. For the sake of the analogy, assume that such key stealing, excess storing is not possible, and the users come together at a secret office underground every year, type their share on the computer one by one, and it reveals
 them a text box to enter data, and later sign the data with keys, and broadcast secret agenda to the other members of the organization, and members all around the world are able to verify it is indeed coming from the organization, and at least 7 of them were
 there at the time of the production of the data. </span></i></div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<i><span style="font-family: Calibri, Helvetica, sans-serif; font-style: normal; background-color: rgb(255, 255, 255); display: inline !important"><br>
</span></i></div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="font-style: normal; font-family: Calibri, Helvetica, sans-serif; background-color: rgb(255, 255, 255); display: inline !important;">My approach there was that our secret
</span><span style="font-family: Calibri, Helvetica, sans-serif; background-color: rgb(255, 255, 255); display: inline !important;"><i>S
</i>is actually a <i>PGP Private Key, </i>and at the moment of the generation of shares, the key master (the person who creates the keys from the secret) publishes the
<i>Public View Key of the PGP Private Key, </i>on the internet. Once minimum 7 people (out of 10) come together, they get the
<i>PGP Private Key</i>, write a message, sign the message with the key, publish it and it is verifiable easily. The problem here is, once 7 people come together, they actually see the
<i>PGP Private Key,</i> which could be used later on by any of these members to generate more messages, which I am trying to prevent.  </span></div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<i><span style="font-family: Calibri, Helvetica, sans-serif; font-style: normal; background-color: rgb(255, 255, 255); display: inline !important"><br>
</span></i></div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<i><span style="font-family: Calibri, Helvetica, sans-serif; font-style: normal; background-color: rgb(255, 255, 255); display: inline !important">As English is not my native language, I sincerely apologize for the language mistakes I have made, and ask for
 you forgiveness on the matter. Sorry for taking your time and asking, possibly very amateur, question.</span></i></div>
</body>
</html>