I am looking for resources on how to implement cryptographic algorithms. I am a cryptographic researcher, so I am not interested in reviewing the basics, and I don't need the talk about it not being a good idea to design or implement your own crypto. But I would like to know more about practical considerations of implementing crypto algorithms.

What I am interested in are specialized material such as online courses, university courses, certifications, textbooks, or recorded talks that cover some or all of the following subjects:

  • Formal/automatic bug-checking
  • Avoiding side-channel vulnerabilities (e.g. constant-time)
  • Low-level optimization techniques

Do such resources exist and where might I find them? Am I forgetting an important subject matter in the above list for crypto implementations?

In other words, what does one need to know to implement cryptographic algorithms and where does one learn those skills?

  • $\begingroup$ Hardware or software? $\endgroup$ – Paul Uszak Oct 21 '19 at 22:01
  • $\begingroup$ Software implementations. $\endgroup$ – Philippe Lamontagne Oct 21 '19 at 22:27