Reconsider hash_to_F
choices in ciphersuite
#194
Labels
cryptography
An issue involving cryptography/a cryptographic library
improvement
This could be better
Ciphersuite defines five
hash_to_F
functions.The issue is the latter two, being insecure due to transcript malleability between the DST and msg.
The aforementioned draft does define Ed25519/Ed448 schemes, yet not a Ristretto scheme. We'd have to define a Ristretto scheme inspired by... Then the issue is the focus of these
hash_to_F
functions are to be useful, where usefulness is defined by 'canonicity'.Given Ed25519's frequent habit of naive wide reduction, and its usage in the (presumably upcoming) FROST IETF draft, it's hard to argue it isn't the implicit standard. While the hash to curve draft arguably provides more of a standard, it's not actually intended for scalar fields.
Ed448 does have a DST defined in its EdDSA spec, which could be moved into Ciphersuite. Given how little used Ed448 is, I don't believe we'll find a widely used option anyways. Accordingly, EdDSA's may be optimal
Ideally, we don't offer any naive functions, and can create such a bound in the documentation, preventing the current footgun hash_to_F is (with a typed, distinctly separated dst tag which loses distinction) from being. While FROST does require such naivety, its own hash_to_F function is already defined and can be further written to cover its specifities.
The text was updated successfully, but these errors were encountered: