This book and the software is very useful for doing experiments of encrypting using elliptic curve cryptography. I’ve been reading some thread with questions on how to change curve parameters, and here’s how:
Tagged: ECC Toggle Comment Threads | Keyboard Shortcuts
- Implementation Aspects of Elliptic Curve Cryptography & An Introduction to Unified (Dual-Field) Arithmetic, Erkay Savas, Oregon State University (pdf)
- Elliptic Curve Cryptosystems on Reconfigurable Hardware, Martin Christopher Rosner, Master Thesis, Worcester Polytechnic Institute, May 2008 (pdf)
- Fast Algorithms for Elliptic Curve Cryptosystems over Binary Finite Field, [Published in K. Y. Lam and E. Okamoto, Eds., Advances in Cryptology – ASIACRYPT ’99, vol. 1716 of Lecture Notes in Computer Science, pp. 75–85, Springer-Verlag, 1999.], Yongfei Han, Peng-Chor Leong, Peng-Chong Tan, and Jiang Zhang (pdf)
- Comparison of Galois Fields Multipliers in Standard and Composite Fields Architectures, Petrus Mursanto, Proceedings of National Conference on Computer Science and Information Technology 2007, January 29-30, 2007, Faculty of Computer Science, University of Indonesia.
- A Scalable Dual-Field Elliptic Curve Cryptographic Processor, Akashi Satoh and Kohji Takano, IEEE TRANSACTIONS ON COMPUTERS, VOL. 52, NO. 4, APRIL 2003.
- Eﬃcient Methods for Composite Field Arithmetic, E. Savas and C. K. Koc, Technical Report, December 1999.
- Implementation Options for Finite Field Arithmetic for Elliptic Curve Cryptosystems, Christof Paar, 1999.
- Hardware Implementation of Eﬃcient Modiﬁed Karatsuba Multiplier Used in Elliptic Curves, Sameh M. Shohdy, Ashraf B. El-Sisi, and Nabil Ismail (Corresponding author: Sameh M. Shohdy), International Journal of Network Security, Vol.11, No.3, PP.138–145, Nov. 2010.
Now experimenting on a very small curve, taken from Guide to Elliptic Curve Cryptography #27, with reduction polynomial , (, ).
Have checked that the points on #81 are on curve.
Next to do is to perform curve operation
This curve is not a Koblitz curve. Going compare this one with Koblitz (by changing a =1 or a = 0 and b = 1). To generate points on curve look at P1363.
The level of randomness is crucial for hiding information. The higher the level of randomness, the better. The design of cryptosystem is aiming at constructing crypto codes with “perfect avalanche” and good randomness.
Using optimal normal basis (or polynomial basis) math that looks like scrambled bits over an elliptic curve produce a fundamentally nonlinear output. A single bit change in the input will cause a nonlinear and very drastic change in the output.
Well, while symmetric crypto designers are working very hard on this, elliptic curves do it automatically 😉
I’m now building some simple codes for converting plain text character to a point on an elliptic curve.
Here’s how I’m gonna do it, based on Mike Rosing’s hints:
- Take the data, and treat it as an x value
- If x value fit on the curve, then find y. Each x value has two y values associated with it.
- If x value does not fit on the curve, add extra bits to the data (but make sure not to mess with the raw data)
- Check again
- Repeat until the combination of the raw data and extra bits does fit on the curve.
To get the x value back, just mask off the extra bits to recover the raw data.
After spending hours googling and reading some pdf and presentation files, I still cannot find the correlation between the term “diffusion” with ECC.
For now I do really think that the term “diffusion” is only for symmetric-key system.
Will find out more about it later. Hmmm….