<div dir="ltr"><div>Thank you very much for this explanation. <br><br></div><div>-AC<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 14, 2016 at 4:43 PM, Samuel Neves <span dir="ltr"><<a href="mailto:samuel.c.p.neves@gmail.com" target="_blank">samuel.c.p.neves@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 14/07/2016 21:18, Adam Crain wrote:<br>
> Following up on this thread, and not being a cryptographer, what's the<br>
> reason for including len(ad) in the HMAC calculation? Is there some sort of<br>
> attack possible if encrypt was redefined in terms of HMAC as:<br>
><br>
> ENCRYPT(k, n, ad, plaintext):<br>
>   plaintext || HMAC(k, n || ad || plaintext)<br>
><br>
> instead of:<br>
><br>
> ENCRYPT(k, n, ad, plaintext):<br>
>   plaintext || HMAC(k, n || len(ad) || ad || plaintext)<br>
><br>
> What does appending len(ad) accomplish?<br>
<br>
</span>Domain separation. Otherwise, you get the same tag for ad = "hello", plaintext = "world" or ad = "", plaintext = "helloworld".<br>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><pre style="white-space:pre-wrap">J Adam Crain - Partner</pre><pre style="white-space:pre-wrap"><a href="http://www.automatak.com" style="font-family:arial,sans-serif;font-size:12.666666984558105px" target="_blank"><img src="http://www.automatak.com/images/automatak_letter_logo.png" width="96" height="14"></a><br></pre><pre style="white-space:pre-wrap">PGP 4096R/<a href="https://www.automatak.com/keys/jadamcrain.asc" style="color:rgb(17,85,204)" target="_blank">E2984A0C</a> 2013-05-03</pre></div></div></div></div></div></div>
</div>