<div dir="ltr"><div class="gmail_extra"><div><div class="gmail_signature"><div dir="ltr"><div>I don't think this really solves any actual crypto problems. I also suspect it's pretty hard to solve any of the big problems while retaining this level of simplicity. But I'm sure you'll learn stuff along the way. More inline.</div></div></div></div>
<br><div class="gmail_quote">On Fri, Apr 17, 2015 at 12:04 PM, Ron Garret <span dir="ltr"><<a href="mailto:ron@flownet.com" target="_blank">ron@flownet.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class=""><br>
On Apr 17, 2015, at 11:26 AM, <a href="mailto:zaki@manian.org">zaki@manian.org</a> wrote:<br>
<br>
> At some level, this is in the same conceptual space as Peerio / Minilock.<br>
<br>
</span>That’s right.<br></blockquote><div><br></div><div>You should take a look at reop as well which is an even older nacl PGP clone.<br><br><a href="https://github.com/tedu/reop">https://github.com/tedu/reop</a><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<span class=""><br>
> The primary notable difference I see is you have used a binary format for keys and messages.<br>
<br>
</span>That’s not the main difference that I claim.  The message format is almost irrelevant (except insofar as SC4 messages are fairly compact and easy to parse).  The main advantage I claim for SC4 is the combination of reasonable security and low friction.<br>
<span class=""><br>
> Minilock uses a compressed curve25519 point without any metadata as public key. This is more compact than your format. It'sBase58 encoded it is tweetable which is very nice.<br>
<br>
</span>SC4 and Minilock use the same underlying crypto.  The reason SC4 keys look longer is that it gives you separate keys for signing and encryption.  But SC4 keys could be easily made tweetable if people cared about that.<br></blockquote><div><br></div><div>NACL encryption is authenticated. The shared secret is used in the MAC as well encryption steps. If all you want is an encryption app, you don't need a ed25519 signing key as well.<br><br>If you want signing as well as encryption in your set of capabilities, you could use the system for converting curve25519 keys to ed25519 keys that TextSecure uses but you need a full curve implementation rather than just the NACL apis.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<span class=""><br>
> Minilock uses JSON for the message format rather than a binary format. I also really like using a protocol buffers for message formats which is what TextSecure does.<br>
<br>
</span>These are things that only technical people tend to care about.  I’m trying to optimize for low friction to encourage non-technical people to use it.<br>
<span class=""><br></span></blockquote><div><br></div><div>This is mostly minutiae but because JSON doesn't specify ordering of fields, it's somewhat annoying to implement signed objects is JSON though there is <a href="http://jwt.io/">http://jwt.io/</a>. Protocol buffers free users from writing their own binary parsers. I think it lowers the barrier to implementation for others. </div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="">
> It looks like your key portability strategy is for users to manage their keys directly as file they provide to instances. Peerio has switched to providing users with a wordlist from which the private key can be derived through a KDF for portability.<br>
<br>
</span>My intent is to build a key server that will make the key sharing process seamless.  But I wanted to start with a completely standalone version to make sure I didn’t have any obvious problems with the crypto first.<br>
<span class=""><font color="#888888"><br>
rg<br>
<br>
</font></span></blockquote></div><br></div></div>