Mike Blog on FPGARelated.com
https://www.fpgarelated.com/blogs-1/nf/Mike_.php
Mike Blog on FPGARelated.com
https://www.fpgarelated.com/blogs-1/nf/Mike_.php
https://d23s79tivgl8me.cloudfront.net/user/profilepictures/55496.jpgen-USThu, 30 Nov 2023 21:24:03 +00001701379443Elliptic Curve Cryptography - Key Exchange and Signatures
https://www.fpgarelated.com/showarticle/1595/elliptic-curve-cryptography-key-exchange-and-signatures

To recap the basic math, an elliptic curve over a finite field has points $(x, y)$ which satisfy the equation $$y^2 = x^3 + a x + b \text{ mod } q.$$When points are added to themselves multiple times we write the multiplication as $$Y = k P$$where $k$ is an integer. Since the number of points is finite, after a while we get to a value of $k = n$ such that $$\mathscr O = n P....]]>
Sat, 21 Oct 2023 15:13:21 +0000Mike Elliptic Curve Cryptography - Security Considerations
https://www.fpgarelated.com/showarticle/1591/elliptic-curve-cryptography-security-considerations

Cryptographic security has a lot of components. The simple stuff is the mathematics which is what I want to talk about. The hard stuff is preventing people from giving away things that should be secret (Loose lips sink ships still holds today!). The cryptographic security I want to talk about here comes from solving a mathematical problem to find a secret. The assumption is the...]]>
Mon, 16 Oct 2023 15:51:11 +0000Mike Elliptic Curve Cryptography - Basic Math
https://www.fpgarelated.com/showarticle/1590/elliptic-curve-cryptography-basic-math

Cryptography is the art of hiding messages, NOT writing on graves, which is a direct translation a friend of mine once asked. I should have said "that's engraving!", but I was a week late. The main engine of encrypting a message uses a single key and a fast algorithm. The NIST standard is AES which can use key sizes of 128 bits, 192 bits, or 256 bits. Each of these is considered a...]]>
Tue, 10 Oct 2023 22:52:50 +0000Mike New book on Elliptic Curve Cryptography
https://www.fpgarelated.com/showarticle/1570/new-book-on-elliptic-curve-cryptography

Last year I was asked by Manning Publications if I wanted to write another book on elliptic curve crypto. I said that as long as I can learn a lot of new math I'd love to. So I spent 6 months learning math and then another year writing. The first three chapters are now online here: http://mng.bz/D9NA

Along the way I had proposed to explain an encryption scheme described on NIST...]]>
Wed, 30 Aug 2023 15:47:59 +0000Mike Running Average
https://www.fpgarelated.com/showarticle/917.php
The running average filter is a useful way to reduce noise in a system. One project I recently worked on required a 4 times frequency output from an encoder input. The problem was the encoder is mounted to the wheel of an old truck and bearing noise was making the original algorithm generate way too many pulses. The original algorithm worked, but the noise on the input made...]]>Mon, 15 Feb 2016 16:39:20 +0000Mike Ancient History
https://www.fpgarelated.com/showarticle/907/ancient-history
The other day I was downloading an IDE for a new (to me) OS. When I went to compile some sample code, it failed. I went onto a forum, where I was told "if you read the release notes you'd know that the peripheral libraries are in a legacy download". Well damn! Looking back at my previous versions I realized I must have done that and forgotten about it. Everything...]]>Mon, 18 Jan 2016 14:15:28 +0000Mike Dealing With Fixed Point Fractions
https://www.fpgarelated.com/showarticle/904.php
Fixed point fractional representation always gives me a headache because I screw it up the first time I try to implement an algorithm. The difference between integer operations and fractional operations is in the overflow. If the representation fits in the fixed point result, you can not tell the difference between fixed point integer and fixed point fractions. When integers...]]>Tue, 05 Jan 2016 15:52:45 +0000Mike Mathematics and Cryptography
https://www.fpgarelated.com/showarticle/891.php

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...]]>
Mon, 14 Dec 2015 15:53:29 +0000Mike Elliptic Curve Digital Signatures
https://www.fpgarelated.com/showarticle/889.php
A digital signature is used to prove a message is connected to a specific sender. The sender can not deny they sent that message once signed, and no one can modify the message and maintain the signature. The message itself is not necessarily secret. Certificates of authenticity, digital cash, and software distribution use digital signatures so recipients can verify they are getting what...]]>Wed, 09 Dec 2015 13:24:00 +0000Mike Elliptic Curve Key Exchange
https://www.fpgarelated.com/showarticle/883.php
Elliptic Curve Cryptography is used to create a Public Key system that allows two people (or computers) to exchange public data so that both sides know a secret that no one else can find in a reasonable time. The simplest method uses a fixed public key for each person. Once cracked, every message ever sent with that key is open. More advanced key exchange systems have...]]>Thu, 03 Dec 2015 16:45:53 +0000Mike Polynomial Inverse
https://www.fpgarelated.com/showarticle/873.php
One of the important steps of computing point addition over elliptic curves is a division of two polynomials. When working in $GF(2^n)$ we don't have large enough powers to actually do a division, so we compute the inverse of the denominator and then multiply. This is usually done using Euclid's method, but if squaring and multiplying are fast we can take advantage of these...]]>Mon, 23 Nov 2015 16:51:06 +0000Mike One Clock Cycle Polynomial Math
https://www.fpgarelated.com/showarticle/867.php
Error correction codes and cryptographic computations are most easily performed working with $GF(2^n)$ polynomials. By using very special values of $n$ we can build circuits which multiply and square in one clock cycle on an FPGA. These circuits come about by flipping back and forth between a standard polynomial basis and a normal basis representation of elements in $GF(2^n)$....]]>Fri, 20 Nov 2015 19:56:34 +0000Mike Elliptic Curve Cryptography
https://www.fpgarelated.com/showarticle/857.php
Secure online communications require encryption. One standard is AES (Advanced Encryption Standard) from NIST. But for this to work, both sides need the same key for encryption and decryption. This is called Private Key encryption. Public Key encryption is used to create a private key between two sides that have not previously communicated. Compared to the history...]]>Mon, 16 Nov 2015 13:47:01 +0000Mike Polynomial Math
https://www.fpgarelated.com/showarticle/841.php
Elliptic Curve Cryptography is used as a public key infrastructure to secure credit cards, phones and communications links. All these devices use either FPGA's or embedded microprocessors to compute the algorithms that make the mathematics work. While the math is not hard, it can be confusing the first time you see it. This blog is an introduction to the operations of squaring and...]]>Tue, 03 Nov 2015 15:24:16 +0000Mike