Cryptography Reference
In-Depth Information
CHAPTER 19
Approaches for
Further Extensions
A LTHOUGH WE NOW HAVE AT our disposal a software package with a well-founded
and well-rounded suite of functions, we confront now the question of in what
directions our work might be continued. There are possibilities for work in the
areas of functionality and performance.
With regard to functionality, one can imagine the application of the basic
functions in FLINT/C to areas that have been only touched upon or not even
mentioned at all, such as factorization or elliptic curves, which have properties
that have led to increasing interest in them for application to cryptography. The
interested reader can find detailed explications in [Bres], [Kobl], and [Mene],
but also in the standard works [Cohe], [Schn], and [MOV], which we have cited
frequently and which contain many references to the literature.
A second area for development is that of measures for improving throughput,
first and foremost the increase in digit length from 16 to 32 bits ( B =2 32 ), as well
as through the use of assembler functions and, for platforms that support it, the
C/C++ implementation.
The work in development and testing for this last approach could be carried
out independent of platform, such as with the help of the GNU compiler gcc ,
using the gcc type unsigned long long : The type CLINT would be defined by
typedef ULONG CLINT[CLINTMAXLONG]; . Furthermore, certain constants would
have to be adjusted that relate to the base of the internal representation of
integers.
In the functions of the FLINT/C package all explicit casts and other references
to USHORT must be replaced by ULONG and those to ULONG by unsigned long long (or
after a suitable typedef by, say, ULLONG . A few functions that make assumptions
about the length of a digit in the data type used must be ported. After an extensive
test and debugging phase including static syntax checking (cf. Chapter 13) the
FLINT/C package would then be ready for CPUs with 64-bit word length.
The inclusion of assembler functions also makes it possible to operate with
digits of 32 bits and results of 64 bits, and to do so on processors that themselves
have only a 32-bit word length but that nonetheless support a 64-bit result of an
arithmetic operation.
 
Search WWH ::




Custom Search