| Amongst the numerous reasons why you _don't_ want to rush into implementing new algorithms is even the _reference implementation_ (and most other early implementations) for Kyber/ML-KEM included multiple timing side channel vulnerabilities that allowed for key recovery.[1][2] djb has been consistent in view for decades that cryptography standards need to consider the foolproofness of implementation so that a minor implementation mistake specific to timing of specific instructions on specific CPU architectures, or specific compiler optimisations, etc doesn't break the implementation. See for example the many problems of NIST P-224/P-256/P-384 ECC curves which djb has been instrumental in fixing through widespread deployment of X25519.[3][4][5] [1] https://cryspen.com/post/ml-kem-implementation/ [2] https://kyberslash.cr.yp.to/faq.html / https://kyberslash.cr.yp.to/libraries.html [3] https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplic... [4] https://safecurves.cr.yp.to/ladder.html [5] https://cr.yp.to/newelliptic/nistecc-20160106.pdf |
Not a criticism, if anything it reinforces DJB's point. But it makes clear that ease of (proper) implementation also needs to cover things like proper canonicalization of relevant security variables and that supporting multiple modes of operation doesn't actually lead to different answers of security questions meant to give the same answer.