<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Aug 30, 2016 at 2:23 AM, Rhys Weatherley <span dir="ltr"><<a href="mailto:rhys.weatherley@gmail.com" target="_blank">rhys.weatherley@gmail.com</a>></span> wrote:<br><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_extra"><div class="gmail_quote"><span class="gmail-"><div><br></div></span><div>Here's a quick pass:<br><br><a href="https://github.com/rweather/noise_spec/blob/forward_secrecy/extensions/ext_hybrid_forward_secrecy.md" target="_blank">https://github.com/rweather/<wbr>noise_spec/blob/forward_<wbr>secrecy/extensions/ext_hybrid_<wbr>forward_secrecy.md</a></div></div></div></div></blockquote><div><br></div><div>I like it.  I think this approach is better than [1].</div><div><br></div><div>What about simplifying the transformation to just:</div><div> - "e" -> "e, f"</div><div> - "dhee" -> "dhee, dhff"</div><div><br></div><div>You're making it more complicated by moving the dhee before the f so that f gets encrypted:</div><div> - "e, dhee" -> "e, dhee, f, dhff"</div><div> - "e" -> "e, f"</div><div><br></div><div>That works on all current patterns but isn't guaranteed to work.  For example it would fail on:</div><div> -> e</div><div> <- e</div><div> -> dhee [...]</div><div><br></div><div>Encrypting the second "f" isn't particularly important.  Using patterns allows us to do it, but I'm not sure it needs to be the default.</div><div><br></div><div>Other comments, mostly editorial:</div><div><br></div><div><div> * extra -> hybrid in a few places</div><div> * forward secrecy key -> forward secrecy public key</div><div> * Sets **f** = GENERATE_KEYPAIR_F()</div><div> * I would move the rationale about encrypting "f" tokens to an end rationale section, mimicking the spec, and mention indistinguishability and protection from tampering.</div><div> * 4.4 similarly seems more like rationale, and perhaps unnecessary.</div><div> * Maybe spell out the pre-message options:</div><div> ""</div><div> "e"</div><div> "f"</div><div> "e, f"</div><div> "e, f, s"</div><div>(unless we wanted to be stricter about "e" and f" coupled together?</div><div><br></div><div> * Second pattern validity bullet appears redundant</div><div> * Final recommendations seems unnecessary.  It's not actually all that important to protect the "f" with encryption.</div><div> * 5.3 seems like it's going to need more thought.</div></div><div><br></div><div>Trevor</div><div><br></div><div>[1] <a href="https://github.com/rweather/noise_spec/blob/forward_secrecy/extensions/ext_forward_secrecy.md">https://github.com/rweather/noise_spec/blob/forward_secrecy/extensions/ext_forward_secrecy.md</a></div><div><br></div></div></div></div>