-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Increase radix^minlen lower bound of FF1 to account for new distinguisher #32
Comments
Using Used directly as the lower bound, we get Given that a partial digit isn't useful, we may as well round the lower bound up to |
Another possible consideration is to raise the floor for encryption, but not decryption (allowing decryption of previously-encrypted values). Given that NIST have not yet released a revised standard, this seems like the most compatible approach. |
Regarding the minlen bound, in readme it saids that it implement FF1 specified in NIST Special Publication 800-38G, but the |
https://eprint.iacr.org/2020/1311 published a distinguisher for FF1 against binary numeral strings, that has a data complexity of$2^{2n((r-1)-\frac{1}{2}) - n}$ and a time complexity of $2^{2n((r-1)-\frac{1}{2})}$ . FF1 has 10 rounds, corresponding to $r = 5$ , and its minimum binary string length corresponds to $n = 10$ ; this gives a data complexity of $2^{60}$ and time complexity of $2^{70}$ .
While this is clearly not secure for such short inputs, it does not invalidate FF1 as a whole. For example, on the 88-bit inputs used for Zcash diversifiers ($n = 44$ ), we get a data complexity of $2^{264}$ and time complexity of $2^{308}$ , which remains sufficient.
The best fix for this is to raise the$\mathsf{radix}^\mathsf{minlen}$ requirement (once we implement #31) to be greater than what NIST SP 800-38G Rev. 1 requires. For instance, 42-bit binary strings ( $n = 21$ ) are the longest that have a data and time complexity for this distinguisher smaller than $2^{128}$ .
The text was updated successfully, but these errors were encountered: