<div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Apr 25, 2012 at 7:17 PM, Zooko Wilcox-O'Hearn <span dir="ltr"><<a href="mailto:zooko@zooko.com" target="_blank">zooko@zooko.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Ben! Glad to have you posting to this list.<br>
<br>
I believe you're the architect of one of those libraries I mentioned<br>
-- Keyczar, which doesn't offer an unauthenticated encryption feature<br>
at all in its API. (As well as, of course, the author of several other<br>
good technical ideas and tools that I like.)<br>
<div class="im"><br>
On Wed, Apr 25, 2012 at 6:50 AM, Ben Laurie <<a href="mailto:ben@links.org">ben@links.org</a>> wrote:<br>
><br>
> For case 1, presumably authenticated encryption can (and probably is) be used as part of the protocols, so I don't get it.<br>
<br>
</div>I think I see the misunderstanding. By "authenticated encryption", I<br>
didn't mean any system that guarantees both integrity and<br>
confidentiality. I meant a specific abstraction, in which a single<br>
algorithm, or a single layer of the system, provides confidentiality<br>
and integrity, predicated upon knowledge of a single key which is<br>
known to both endpoints. It is this abstraction that is formalized by<br>
papers like Bellare-2000-“Authenticated Encryption: Relations among<br>
notions and analysis of the generic composition paradigm” ¹, and which<br>
is provided by modes like OCB mode, ciphers like Phelix, and libraries<br>
like Keyczar. (See, for example, Wikipedia's definition of<br>
"Authenticated Encryption" ².)<br></blockquote><div><br></div><div>This is exactly what I thought you meant.</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
The thing that I find interesting is that this abstraction is of no<br>
use in building the Tahoe-LAFS access control semantics. That is: we<br>
started with the notions of symmetric encryption (AES in CTR mode),<br>
public key digital signatures, and secure hashes (collision-resistant,<br>
pre-image resistant, second-pre-image resistant, and pseudorandom),<br>
and built the Tahoe-LAFS semantics out of those three things. The<br>
addition of authenticated encryption (in this sense) to that toolkit<br>
would not have helped. In fact, we were aware of authenticated<br>
encryption at the time and chose not to use it.<br>
<br>
As another perspective, if someone were to write something<br>
Tahoe-LAFS-like semantics using Keyczar, that person wouldn't benefit<br>
from the automatic MAC-checking feature built into the Keyczar API.<br>
They would still need to develop some of their own protocol, using<br>
some algorithms that are not provided by the Keyczar API, such as<br>
secure hashing.<br>
<br>
I think I'll update my Google+ post to clarify that when I write<br>
"authenticated encryption" in that post, I mean this particular<br>
abstraction.<br></blockquote><div><br></div><div>OK, but that is not the confusing part of the post. The confusing part is where you say "this is no use for Tahoe" but then don't go on to say why! I'd really like to see some flesh on the claim...</div>
<div><br></div><div>Alternatively, its not confusing at all, and what you're saying is that authenticated encryption does not directly provide a way to, for example, "<span style>authorize you to check the integrity of a file (ciphertext) without authorizing you to read it". OK, but so what? That's not a property of authenticated encryption, as formally defined. If you want some other system, then you ... want some other system. This just seems like an uninteresting truth to me.</span></div>
<div><span style><br></span></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Regards,<br>
<br>
Zooko<br>
<br>
¹ Bellare-2000-“Authenticated Encryption: Relations among notions and<br>
analysis of the generic composition paradigm”:<br>
<a href="http://cseweb.ucsd.edu/~mihir/papers/oem.html" target="_blank">http://cseweb.ucsd.edu/~mihir/papers/oem.html</a><br>
² <a href="https://en.wikipedia.org/wiki/Authenticated_encryption" target="_blank">https://en.wikipedia.org/wiki/Authenticated_encryption</a> says<br>
"Authenticated Encryption (AE) is a block cipher mode of operation<br>
which simultaneously provides confidentiality, integrity and<br>
authenticity assurances on the data."<br>
<br>
I hate to cite Wikipedia as an authority (note that the definition is<br>
too narrow and excludes Phelix, and what's the meaning of listing<br>
"integrity" and "authenticity" separately?), but for better or worse a<br>
lot of people follow it and I don't know of a better authority to use<br>
for this purpose.<br>
_______________________________________________<br>
tahoe-dev mailing list<br>
<a href="mailto:tahoe-dev@tahoe-lafs.org">tahoe-dev@tahoe-lafs.org</a><br>
<a href="https://tahoe-lafs.org/cgi-bin/mailman/listinfo/tahoe-dev" target="_blank">https://tahoe-lafs.org/cgi-bin/mailman/listinfo/tahoe-dev</a><br>
</blockquote></div><br></div>