| @@ -1,3 +1,28 @@ | |||||
| March 1, 2015: | |||||
| While by no means complete or stable, I've done most of the ground | |||||
| work to implement the "Decaf" point encoding. This point encoding | |||||
| essentially divides the cofactor by 4, turning Goldilocks (or | |||||
| Ridinghood or E-521) into a prime-order group. Furthermore, like | |||||
| the Goldilocks encoding, this encoding avoids incompleteness in | |||||
| the twisted Edwards formulas with a=-1 by sticking to the order-2q | |||||
| subgroup. | |||||
| Because the group is prime order, and because the "isogeny strategy" | |||||
| is not needed, the decaf API can be very simple. I'm still working | |||||
| on exactly what it should be though. The goal is to have a single- | |||||
| file (or a few files) for a "ref" version, which is designed for | |||||
| auditability. The ref version won't be quite so simple as TweetNaCl, | |||||
| but nearly so simple and much better commented. Then there can also | |||||
| be an optimized version, perhaps per-platform, which is as fast as | |||||
| the original Goldilocks code but hopefully still simpler. | |||||
| I'm experimenting with SHAKE as the hash function here. Possibly I | |||||
| will also add Keyak as an encryption primitive, so that everything | |||||
| can be based on Keccak-f, but I'm open to suggestions. For example, | |||||
| if there's a way to make BLAKE2 as simple and useful as SHAKE | |||||
| (including in oversized curves like E-521), then the extra speed | |||||
| would certainly be welcome. | |||||
| October 27, 2014: | October 27, 2014: | ||||
| Added more support for >512-bit primes. Changed shared secret | Added more support for >512-bit primes. Changed shared secret | ||||
| to not overflow the buffer in this case. Changed hashing to | to not overflow the buffer in this case. Changed hashing to | ||||