This site uses cookies to deliver our services and to show you relevant ads and job listings. By using our site, you acknowledge that you have read and understand our Cookie Policy , Privacy Policy , and our Terms of Service . Your use of the Related Sites, including DSPRelated.com, FPGARelated.com, EmbeddedRelated.com and Electronics-Related.com, is subject to these policies and terms.

The mathematics of number theory and elliptic curves can take a life time to learn because they are very deep subjects. As engineers we don't have time to earn PhD's in math along with all the things we have to learn just to make communications systems work. However, a little learning can go a long way to helping make our communications systems secure - we don't need to know everything. The following articles are broken down into two realms, number theory and elliptic curves. The number theory articles cover basic polynomial math over Galois Fields which are especially suited for digital electronics. The elliptic curve articles cover the basics of how high level math can be used to create a secure key exchange between two computers on a network.

The left column covers number theory. The first article is a gentle introduction to number theory. The basics are discussed in Polynomial Math which goes into a bit of detail. A more FPGA friendly method is described in On Clock Cycle Polynomial Math. The Polynomial Inverse article describes an alternative method of computing an inverse shown in Polynomial Math which is also FPGA friendly.



The right column covers elliptic curve cryptography. The first article is a general description and covers the core mathematical operations. The second article describes more secure ways to exchange secret keys using public channels. And the last article describes digital signatures which have many uses.



When the time comes that you actually need to know any of this, you will be able to find a lot of books that cover number theory or elliptic curve mathematics. There are a few that do both, and a great one to start with is "A Course in Number Theory and Cryptography" by Neal Koblitz. You will also find a lot of articles written in IEEE journals that focus on very specific problems and their solutions.

Once you've implemented a few subroutines and gotten them to work, you will be on your way to being an expert. The most important thing is to not be afraid to start. The mathematics can seem daunting, but the reality is nothing more than AND, XOR and shift. The translation from math to code is what makes engineering fun, especially when things actually work.

