<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On 17 April 2015 at 11:54, Michael Rogers <span dir="ltr"><<a href="mailto:michael@briarproject.org" target="_blank">michael@briarproject.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
I have a crypto problem that you might find interesting. The setting is<br>
a private group discussion. The membership of the group is fixed and<br>
known to all members. Each member knows a long-term public signature key<br>
for each other member. These public signature keys may also be known to<br>
people outside the group.<br>
<br>
Members should be able to send messages to the group, such that any<br>
member of the group can verify that a message was written by the owner<br>
of a particular signature key, but can't prove it to anyone outside the<br>
group.<br>
<br>
Now, as far as I understand (which isn't far), there are various<br>
deniable group key agreement protocols that achieve the above, but they<br>
all require some more or less exotic crypto. On the other hand there's a<br>
simple combination of signatures and Diffie-Hellman (or ECDH if you<br>
prefer) that seems to achieve the above - but presumably if it did so,<br>
the exotic schemes wouldn't be necessary. So can you explain what's<br>
wrong with it?<br>
<br>
The simple solution looks like this: each member of the group generates<br>
a long-term DH key pair and signs their long-term public DH key with<br>
their long-term signature key. The public DH keys may be known outside<br>
the group, just like the public signature keys.<br>
<br>
Each member of the group can derive a shared secret from their own<br>
private DH key and another member's public DH key, and be sure that the<br>
owner of the signature key that signed the public DH key is the only<br>
other party that knows the secret.</blockquote><div><br></div><div>BTW, this is surely the flaw if you believe in the fantasy requirement: the private DH key can be shared, and thus the derived key.</div><div><br></div></div></div></div>