[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Exploring (RSA (001)
On Thu, 29 Aug 1996 [email protected] wrote:
> Exploring Rivest, Shamir, Adelman algorithm, but hoping someone out there is
> interested in very large number manipulations.
>
> RSA suggests choosing two prime 100 digit numbers p and q for beginning of
> key generation.
>
> These numbers are obviously beyond the long type of a C program.
Don't just assume that the long type is too small. For most compilers
this is true, but the long data type (at least as I have seen the
definition from ANSI 1991) is twice the base word (INT) length, where the
word size is generally defined to be the size of the register length of the
CPU in question to which the compiler has been developed for. Intel blurs
this distinction by still supporting 8,16,32 and now 64 bit registers in
the same CPU, and there are various flavors of the same C compiler that
accomodate both 16 and 32 bit word sizes (read INT).
Just for the sake of arugment, an unsigned long in a 64 bit compiler
represents integers from 0 to 2^128-1. This is fairly large. However,
Fred Gruenburg (a RAND fellow) and some of his cohorts back in 1957 came
up with a method of bit ticking that allowed them to calculated
astronomically large prime numbers very quickly. It had something to do
with a known mathematical progression of primes in the set of integer
numbers as X -> 00. If I can find the information, I will post how he
did it.
One other method involves using character strings to manipulate large
numbers "long hand". This method is fairly slow compared to bit ticking,
but it works and was used in some of the old style 8 bit systems I worked
on many moons ago. You set up at least 3 long strings and use them as
registers for all mathematical operations, plus allow for an overflow flag.
This simulates some of the old style decimal machine in their operations.
>
> Other than using Mathematica or Maple, I would like to use C or perferrably
> C++.
>
> Just some basics such as multiplication, addition, subtraction, division,
> mod, etc over the Z set.
>
>
...Paul