<div dir="ltr"><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" class="gmail_attr">On Fri, Oct 16, 2020 at 11:21 PM Francis Pouatcha via cryptography <<a href="mailto:cryptography@metzdowd.com">cryptography@metzdowd.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"><div dir="ltr">On Thu, Oct 15, 2020 at 10:53 PM Phillip Hallam-Baker <<a href="mailto:phill@hallambaker.com" target="_blank">phill@hallambaker.com</a>> wrote:<br></div><div class="gmail_quote"><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"><div dir="ltr"><div dir="ltr"><div style="font-size:small">OK so one thing you might want to use here is Shamir Secret Sharing. I have a spec for that:</div><div style="font-size:small"><a href="https://mathmesh.com/Documents/draft-hallambaker-mesh-udf.html" target="_blank">https://mathmesh.com/Documents/draft-hallambaker-mesh-udf.html</a></div></div></div></div></blockquote><div>Excellent document. Wonder if there is any reusable implementation of UDF out there? </div></div></div></blockquote><div><br></div><div><div class="gmail_default" style="font-size:small">Thanks, the code is at:</div><br></div><div><a href="https://github.com/hallambaker/Mathematical-Mesh">https://github.com/hallambaker/Mathematical-Mesh</a><br></div><div><br></div><div> </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"><div class="gmail_quote"><div>I would start with a java library if there is no indication of any existing WIP.</div></div></div></blockquote><div><br></div><div><div class="gmail_default" style="font-size:small">The UDF implementation is just one file in the goedel.cryptography library. It is in C# but conversion to C or Java should be straightforward. That class is implemented as a static class to facilitate translation to C. Java should be even easier.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">If all you want is the Shamir/Lagrange part, its probably no more than 300 lines of code.</div></div><div><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"><div class="gmail_quote"><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"><div dir="ltr"><div dir="ltr"><div style="font-size:small">So what I would probably do is to create a Mesh account @phb-estate and make sure that is on the recipients list for any data I want my heirs to inherit. Then create a recovery key set for the secret seed for that account. The heirs can now decrypt any of the data.</div></div></div></div></blockquote><div>How does this relate to social key recovery? </div></div></div></blockquote><div><br></div><div><div class="gmail_default" style="font-size:small">The Mesh provides a data at rest encryption scheme that is designed for integration into applications like Microsoft Office. So recovery of the Mesh key gives decryption of sets of documents.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">The tool provided can also be used to create RSA and SECDH keys from a seed value using a deterministic procedure which could be used to decrypt OpenPGP or S/MIME docs if you wanted to go that way.</div><br></div><div><br></div><div><br></div><div> </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"><div class="gmail_quote"><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"><div dir="ltr"><div dir="ltr"><div style="font-size:small">The crypto is the easy part. Easy peasy. Have had that specified for over 18 months and running.</div></div></div></div></blockquote><div>Yes.  Secret sharing algorithms have been out there for a while.</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"><div dir="ltr"><div dir="ltr"><div style="font-size:small"><br></div><div style="font-size:small">The hard part is making it easy for people to use it. That is where the Mesh Groups come in. I can create a group @phb-legacies and add @phb-estate to that group. So I only need to be thinking about encrypting to one recipient. I don't need to encrypt to @phb and @phb-estate separately.</div></div></div></div></blockquote><div>The challenge is the development of a simple social key recovery app for common users. </div></div></div></blockquote><div><br></div><div class="gmail_default" style="font-size:small">That is one challenge. I am developing a platform on which such apps can be built.</div><div class="gmail_default" style="font-size:small"></div></div></div></div>