[Libre-soc-dev] Poly1305
Luke Kenneth Casson Leighton
lkcl at lkcl.net
Thu Sep 7 17:21:22 BST 2023
https://loup-vaillant.fr/tutorials/poly1305-design
Sadoon this is a great page. Can you create a bug report, link it into the
right parent (Jacob can advise), there are *three* bug reports you can do
work under: docs algorithm tests.
Below, those "u +=..." you'll have to check, we *may* have to design a 3-in
2-out instruction that does "+" instead of "|" but is otherwise identical
to dsrd.
I did describe it on IRC, linked it to the ed25519 discussion, and yes
there is enough budget to cover doing it, that is the whole point of the
crypto primitives grant.
But we seriously need to get a move on, it is well overdue (the entire
grant that is)
L.
// carry propagation (put the result back in h) const uint64_t msb = x4 +
(x3 >> 32); uint64_t u = (msb >> 2) * 5; // lose 2 bottom bits... u += (x0
& 0xffffffff) ; h[0] = u & 0xffffffff; u >>= 32; u += (x1 & 0xffffffff) +
(x0 >> 32); h[1] = u & 0xffffffff; u >>= 32; u += (x2 & 0xffffffff) + (x1
>> 32); h[2] = u & 0xffffffff; u >>= 32; u += (x3 & 0xffffffff) + (x2 >>
32); h[3] = u & 0xffffffff; u >>= 32; u += msb & 3 /* ...recover them */ ;
h[4] = u;
--
---
crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68
More information about the Libre-soc-dev
mailing list