<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Sun, Jan 6, 2019 at 12:23 AM Joshua Marpet <<a href="mailto:Joshua.Marpet@guardedrisk.com">Joshua.Marpet@guardedrisk.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">My mom passed in 2013. I had a nice day, where my wife, daughter, and myself, went to an interesting and fun wedding today. I had a random thought, that I would have loved to talk to my mom, and tell her about it.<div><br></div><div>Obviously, not possible, short of a OUIJA board. :)  So I thought about writing a letter. So where do I post it?</div><div><br></div><div>So I thought of a website, where you can send letters to people, a la Postsecret. But it's harder to anonymize electronic  messages. </div><div><br></div><div>Soooo, how about a system that automatically encrypts incoming emails? And then, some time later, it decrypts, long after anyone who wrote those letters is alive? Say 100 years. I'd write a letter to my mom which would be auto-decrypted 100 years later and given to the public. A la Post secret, and historical interest.</div><div><br></div><div>Any systems out there which will auto-decrypt, not based on a clock (which can be spoofed), but instead based on an event, a piece of information, a trusted info source? Something like the Long Now foundation's clock?</div><div><br></div><div>Weird use case, I apologize. Just a thought<span class="gmail_default" style="font-size:small">.</span></div></div></blockquote><div><br></div><div class="gmail_default" style="font-size:small">It is actually an example of a very common requirement for timed release of information or release on specific criteria.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">This is in part what the blockchain's smart contracts are a nod towards. Use cases include:</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">* Release of a person's will on their death</div><div class="gmail_default" style="font-size:small">* Release of a person's bank accounts etc.</div><div class="gmail_default" style="font-size:small">* Release of family secrets, national security, etc.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">I have a lot of information I would like to keep secret from my family until after my death and some stuff longer than that. I want them to know where I buried Aunt Agatha's jewelry but not where I buried Aunt Agatha.<br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">The timed version is going to require some form of notary. But it is easy enough to provide a robust disclosure protocol and I have anticipated this requirement in the Mesh tools which allows use of Shamir secret sharing to provide additional robustness.<br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">[I have not yet implemented this particular service but I might well do so earlier than I planned as it gives me a podcast.]</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">So let us imagine that disclosure authority (DA) creates a sequence of keypairs that are dated as follows:</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Hourly - for the next 240 hours.</div><div class="gmail_default" style="font-size:small">Daily - for the next 365 days.</div><div class="gmail_default" style="font-size:small">Monthly - for the next 120 months.</div><div class="gmail_default" style="font-size:small">Annually - for the next 100 years.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">The DA releases the corresponding private key at the specified time. So for the simplest escrow protocol, we simply encrypt under the corresponding public key.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">This is not very robust though and especially so if we want to achieve long escrow times. For this we need to provide for separation of duties and use multiple DAs with a quorum.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">So let us say we want to escrow the data for ten years. Three DAs and a quorum of Two should be sufficient. We encrypt the data under a master key, split the master with Shamir Secret Sharing and encrypt each share under our selected DAs. </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">If we want to keep the data for twenty, thirty or more years, we would need to have more shares.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">This protocol is not perfect, it is still possible for a coercion attack to work. So if I was going to escrow really important information I would want there to be additional controls provided through use of verifiable ceremony. But as soon as you go to ceremony you are limited to quarterly operations.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">We can also make use of threshold crypto at the DA level. So the DA might actually have three hosts that each disclose a share.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">The most useful form of DA would be one that will disclose information UNLESS the party takes some action. So the data is disclosed unless I say it should be kept private. But that is really difficult to achieve robustly. The nearest I have is that the DA reads a list of signed notices saying 'don't release X' and only decrypts the escrowed data that isn't on the list.</div></div></div>