The construction of a regular 17 sided polygon. Gauss proved that any regular polygon, with a Fermat prime number of sides, could be drawn with compasses and straight edge alone.     Neil Hensor's Home Page

     Contact Address :- Flat 5, 7 Wootton Gardens, Bournemouth; Dorset; BH1 1PW [England]   [enquiries@kanet.co.uk]
       Mobile Phone  :-  [U.K.] 07949 - 385425   [U.K. business hours only]

My interests include aeronautics, applied mathematics and computer software.

  This web site is mainly about exploiting the Atkin Morain method to derive non isomorphic prime order elliptic curves over finite Fields.
  These elliptic curves are important for cryptography and for deterministic prime testing. To interface with the elliptic curves thus derived, I have developed a block cipher I call RijnType, which is a fast extended clone of block cipher Rijndael.

  This site also discusses a new method for finding multiplicative inverses.
A free 32-bit word-sized version can be found by following links below.
I offer, for sale, a 64-bit word-sized version and a 64-bit multi-word version to perform this function.
I believe these products to be the fastest in the world.

  The Atkin Morain method is (fairly) straightforward with 1 exception :- it needs access to lists of Hilbert Class Polynomials which are difficult to calculate. I have calculated all of these polynomials up to degree 72 (beyond this size it is easier to calculate them as and when required).
They are for sale on this site.
[Calculating these polynomials could take 2-3 man years of effort!]
[Once these polynomials have been purchased, an Atkin Morain elliptic curve derivation capability could be set up within a specialist cryptographic software company with an expenditure of perhaps 6-12 man months of effort.
Non specialist software companies, without number theory modules to hand, would need to expend several times more effort.]


  I have then applied the Atkin Morain method to derive lists of non isomorphic prime order elliptic curves over what I call FIPS type primes (see linked file in paragraph (a) below for the explanation of this term) of 256-767 bits in size. These may be the strongest non isomorphic prime order elliptic curves for cryptography offered for sale anywhere. (I can generate much stronger elliptic curves if required.)
[To obtain the very best speed performance from FIPS type primes, the arithmetic operations need to be implemented in x86 assembler. I can provide these modules.]
  The above, and other items, can be purchased by following the instructions in paragraph (c) below.

  This web site discusses the following topics :-

(a) An introduction to the Atkin Morain method and some consequences for elliptic curve cryptography.

  This discusses some of the lessons I have learnt while using the Atkin Morain method. After reading the file linked to, it will be clear that the Atkin Morain method is adaptable to solving a wide range of cryptographic security problems. My software can be adjusted to tackle most of of these problems, so do not hesitate to contact me for quotes.

(b) I have developed a block cipher I call RijnType, by extending the block cipher Rijndael (the winner of the AES competition in 2000). RijnType is a fast Rijndael clone.

  RijnType can deliver the required strength to 'balance' the elliptic curves I have for sale.
[C++ code for RijnType (RijnType.cpp and RijnType.h) in HTML format can be found by following the RijnType link.
Once downloaded, the HTML files for RijnType can be 'SAVED AS' text files to generate compiler ready files, needing only a minimum of editing.]


  With caveats, RijnType produces identical output to Rijndael, but is about 14 times faster in operation than the standard listing. Hence, it may be of interest to software teams looking for nothing more than a fast software implementation of the block cipher Rijndael.

(c) A list of items available for sale. These include lists of Hilbert class polynomials and a fast multiplicative inverse finders.

  The Hilbert class polynomials will be of interest to both software development teams and also mathematical researchers.
  Fast multiplicative inverse finding is an important task in many aspects of number theory and cryptography.

(d) A discussion of speed testing and tuning Pentium software.

  This topic is the corner stone for all high speed code writing.
[It is sometimes referred to as "software optimization".]
(e) A discussion and source code for a fast word sized multiplicative inverse finder.
  An introduction to the Euclidean algorithm is included.
  The code given within relates to a 32 bit word sized version. I have a 64 bit version available for sale.
(f) Source code and theory for a fast multi-word sized multiplicative inverse finder (for 32-bit code).
  This extends the document in (e). You will need to have read (e) before reading this one.
A 64-bit word version is available for sale.
The results of speed tests for both word and multi-word versions is given towards the bottom of the relevant documents.


I believe both the word sized module, in (e),
and the multi-word sized module, in (f),
are the world's fastest multiplicative inverse finders.
(g) A discussion of Schönhage's algorithm for polynomial GCD's.
(h) The speed performance of schoolroom and Toom Cook bignum multiplication algorithms.
  These modules are a corner stone in many cryptographic protocols. Strangely, hard data on their performance on recent processors is difficult to find.
I hope this document helps to change this.
(j) The speed performance of square root mod prime algorithms.
  This document will be of the greatest interest to teams working on the Number Field Sieve and the Quadratic Sieve.
(k) A proposal for an Internet-wide cipher.
  This document presents a method of defending against hacking, denial of service attacks, fake identities and other Internet problems, and would enforce personal responsibility to expose black propaganda.
(l) Some thoughts on Pseudo random number generators (PRNGs).
  Finite Field arithmetic in the Montgomery domain is used to obtain very high output rates.
Two of these PRNGs are combined to create a Stream cipher for item 'k'.



  Other than the items on this page, I have a large library of software modules on the subject of 'Number Theory'. Do not hesitate to contact me if you need a price quoting for some related software; I may well have it already, or if not, it may be a minor task to develop it.