<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Oct 28, 2016 at 6:47 AM, Trevor Perrin <span dir="ltr"><<a href="mailto:trevp@trevp.net" target="_blank">trevp@trevp.net</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"><span class="gmail-">On Fri, Oct 28, 2016 at 2:40 AM, Brian Smith <<a href="mailto:brian@briansmith.org">brian@briansmith.org</a>> wrote:<br>
> On Thu, Oct 27, 2016 at 7:44 AM, Trevor Perrin <<a href="mailto:trevp@trevp.net">trevp@trevp.net</a>> wrote:<br>
>><br>
</span><span class="gmail-">>> Sure, what do you think needs to be clarified, exactly?  The math<br>
>> seems clear, I'm guessing you think "glitch" attacks need to be<br>
>> defined?<br>
><br>
><br>
> It wasn't clear to me that "glitch" referred to glitch/fault attacks.<br>
<br>
</span>I'll clarify that, you're right that "fault" is the more generic term.<br></blockquote><div><br></div><div>Simply, I was unsure whether "glitch" was being used colloquially, to indicate some unspecified problem, or whether it was referring to glitch attacks in general, or a specific type of glitch attack, or fault attacks in general, or faults in general (accidental or induced).</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">>> > Why is Z fixed at 64 bytes? That is, why is its length not a function of<br>
>> > the<br>
>> > size of the key and/or the digest function output length<br>
</span>[...]<br>
<span class="gmail-">> OK. I think one might argue that it is overkill to use a Z larger the |p|<br>
> and typically Z-like values are the same size as |p| so it would be more<br>
> consistent with existing practice and more intuitive to use a |p|-sized Z.<br>
<br>
</span>For discrete-log signatures you need to make sure the nonce is<br>
unbiased, so one technique is to reduce a value much larger than the<br>
subgroup order by the subgroup order (e.g. FIPS-186 recommends<br>
choosing a value that's 64 bits larger).<br></blockquote><div><br></div><div>The thing that is reduced mod q is the SHA-512 digest, not Z, right? I don't see how the FIPS-186-suggested technique applies.</div><div><br></div><div>In your justification for why it is fixed at 64 bits, you imply that it is kinda-sorta a function of |q|. Notice that 64 bytes = 512 bits = 448 + 64. Using the above reasoning, would a 448-bit curve be the maximum supported by this scheme? Or, for a 512-bit curve, would we require a Z that is at least 512 + 64 = 576 bits = 72 bytes?</div><div><br></div><div>To a large extent, it probably doesn't matter. But, if you have an implementation of X25519/Ed25519 for a very constrained device you might have a function for gathering exactly 32 bytes of random data to use as a key, and it seems like it would be nice to be able to reuse that exact same function for generating Z, if a Z of size |q| is sufficient for the security goals.</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> [I n]otice in the email I'm replying to now, you seem to be<br>
<span class="gmail-">> intending that the scheme should be usable even with a compromised RNG to<br>
> some extent, which makes me wonder whether a good RNG is a requirement or<br>
> just nice-to-have.<br>
<br>
</span>It's intended to be secure even with a weak RNG, but with more<br>
assumptions about the hash, and private scalar, and exotic attacks<br>
(per above) that randomization helps with.  So I'd rather not give<br>
people the idea the RNG is optional, or could be skimped on.<br></blockquote><div><br></div><div>Understood. But, the questions that entered my mind when reading the document were more along these lines:</div><div><br></div><div>1. Is using XEdDSA with a deterministic nonce equally, less, or more safe than using EdDSA (with a deterministic nonce)?</div><div><div><br></div><div>2. Ditto, for VXEdDSA.</div></div><div><br></div><div>3. Is using XEdDSA with an actively malicious (attacker-controlled) RNG equally, less, or more safe than using EdDSA (with a deterministic nonce)?</div><div><br></div><div>4. Ditto for VXEdDSA.</div><div><br></div><div>Cheers,</div><div>Brian</div></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><a href="https://briansmith.org/" target="_blank">https://briansmith.org/</a></div><div><br></div></div></div></div></div></div></div>
</div></div>