From 40c00add00c419fa7ee7525ad0aea3ab6935e81f Mon Sep 17 00:00:00 2001 From: Tom St Denis Date: Fri, 28 Feb 2003 16:06:56 +0000 Subject: [PATCH] added libtommath-0.09 --- bn.c | 104 ++++++++++++++++++++++++++++++++-- bn.h | 13 +++++ bn.pdf | Bin 152917 -> 159230 bytes bn.tex | 21 +++++-- changes.txt | 5 ++ demo.c | 1 - etc/makefile | 2 +- etc/mersenne.c | 150 +++++++++++++++++++++++++++++++++++++++++++++++++ etc/pprime.c | 4 +- makefile | 6 +- mtest/mtest.c | 4 +- 11 files changed, 289 insertions(+), 21 deletions(-) create mode 100644 etc/mersenne.c diff --git a/bn.c b/bn.c index 0debe07..33d027f 100644 --- a/bn.c +++ b/bn.c @@ -2888,11 +2888,6 @@ int mp_exptmod(mp_int *G, mp_int *X, mp_int *P, mp_int *Y) * * The M table contains powers of the input base, e.g. M[x] = G^x mod P * - * This table is not made in the straight forward manner of a for loop with only - * multiplications. Since squaring is faster than multiplication we use as many - * squarings as possible. As a result about half of the steps to make the M - * table are squarings. - * * The first half of the table is not computed though accept for M[0] and M[1] */ mp_set(&M[0], 1); @@ -2914,7 +2909,6 @@ int mp_exptmod(mp_int *G, mp_int *X, mp_int *P, mp_int *Y) } } - /* create upper table */ for (x = (1<<(winsize-1))+1; x < (1 << winsize); x++) { if ((err = mp_mul(&M[x-1], &M[1], &M[x])) != MP_OKAY) { @@ -3132,6 +3126,104 @@ __T1: mp_clear(&t1); return res; } +/* computes the jacobi c = (a | n) (or Legendre if b is prime) + * HAC pp. 73 Algorithm 2.149 + */ +int mp_jacobi(mp_int *a, mp_int *n, int *c) +{ + mp_int a1, n1, e; + int s, r, res; + mp_digit residue; + + /* step 1. if a == 0, return 0 */ + if (mp_iszero(a) == 1) { + *c = 0; + return MP_OKAY; + } + + /* step 2. if a == 1, return 1 */ + if (mp_cmp_d(a, 1) == MP_EQ) { + *c = 1; + return MP_OKAY; + } + + /* default */ + s = 0; + + /* step 3. write a = a1 * 2^e */ + if ((res = mp_init_copy(&a1, a)) != MP_OKAY) { + return res; + } + + if ((res = mp_init(&n1)) != MP_OKAY) { + goto __A1; + } + + if ((res = mp_init(&e)) != MP_OKAY) { + goto __N1; + } + + while (mp_iseven(&a1) == 1) { + if ((res = mp_add_d(&e, 1, &e)) != MP_OKAY) { + goto __E; + } + + if ((res = mp_div_2(&a1, &a1)) != MP_OKAY) { + goto __E; + } + } + + /* step 4. if e is even set s=1 */ + if (mp_iseven(&e) == 1) { + s = 1; + } else { + /* else set s=1 if n = 1/7 (mod 8) or s=-1 if n = 3/5 (mod 8) */ + if ((res = mp_mod_d(n, 8, &residue)) != MP_OKAY) { + goto __E; + } + + if (residue == 1 || residue == 7) { + s = 1; + } else if (residue == 3 || residue == 5) { + s = -1; + } + } + + /* step 5. if n == 3 (mod 4) *and* a1 == 3 (mod 4) then s = -s */ + if ((res = mp_mod_d(n, 4, &residue)) != MP_OKAY) { + goto __E; + } + if (residue == 3) { + if ((res = mp_mod_d(&a1, 4, &residue)) != MP_OKAY) { + goto __E; + } + if (residue == 3) { + s = -s; + } + } + + /* if a1 == 1 we're done */ + if (mp_cmp_d(&a1, 1) == MP_EQ) { + *c = s; + } else { + /* n1 = n mod a1 */ + if ((res = mp_mod(n, &a1, &n1)) != MP_OKAY) { + goto __E; + } + if ((res = mp_jacobi(&n1, &a1, &r)) != MP_OKAY) { + goto __E; + } + *c = s * r; + } + + /* done */ + res = MP_OKAY; +__E: mp_clear(&e); +__N1: mp_clear(&n1); +__A1: mp_clear(&a1); + return res; +} + /* --> radix conversion <-- */ /* reverse an array, used for radix code */ static void reverse(unsigned char *s, int len) diff --git a/bn.h b/bn.h index 4493c65..903e7d6 100644 --- a/bn.h +++ b/bn.h @@ -21,6 +21,11 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif + + /* some default configurations. * * A "mp_digit" must be able to hold DIGIT_BIT + 1 bits @@ -239,6 +244,9 @@ int mp_n_root(mp_int *a, mp_digit b, mp_int *c); /* shortcut for square root */ #define mp_sqrt(a, b) mp_n_root(a, 2, b) +/* computes the jacobi c = (a | n) (or Legendre if b is prime) */ +int mp_jacobi(mp_int *a, mp_int *n, int *c); + /* used to setup the Barrett reduction for a given modulus b */ int mp_reduce_setup(mp_int *a, mp_int *b); @@ -280,5 +288,10 @@ int mp_radix_size(mp_int *a, int radix); #define mp_todecimal(M, S) mp_toradix((M), (S), 10) #define mp_tohex(M, S) mp_toradix((M), (S), 16) +#ifdef __cplusplus + } +#endif + + #endif diff --git a/bn.pdf b/bn.pdf index 38011e2610262c56b051ccfb5d714a71e5174fd2..3bea8f25f98a9aa08e957db0d6533c20cd6baa99 100644 GIT binary patch delta 91689 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 z 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 diff --git a/bn.tex b/bn.tex index cdf0213..ed2a46d 100644 --- a/bn.tex +++ b/bn.tex @@ -1,7 +1,7 @@ \documentclass{article} \begin{document} -\title{LibTomMath v0.08 \\ A Free Multiple Precision Integer Library} +\title{LibTomMath v0.09 \\ A Free Multiple Precision Integer Library} \author{Tom St Denis \\ tomstdenis@iahu.ca} \maketitle \newpage @@ -23,8 +23,8 @@ LibTomMath was designed with the following goals in mind: \item Be written entirely in portable C. \end{enumerate} -All three goals have been achieved. Particularly the speed increase goal. For example, a 512-bit modular exponentiation is -four times faster\footnote{On an Athlon XP with GCC 3.2} with LibTomMath compared to MPI. +All three goals have been achieved. Particularly the speed increase goal. For example, a 512-bit modular exponentiation +is eight times faster\footnote{On an Athlon XP with GCC 3.2} with LibTomMath compared to MPI. Being compatible with MPI means that applications that already use it can be ported fairly quickly. Currently there are a few differences but there are many similarities. In fact the average MPI based application can be ported in under 15 @@ -51,9 +51,7 @@ with #include "bn.h" \end{verbatim} -Remove ``mpi.c'' from your project and replace it with ``bn.c''. Note that currently MPI has a few more functions than -LibTomMath has (e.g. no square-root code and a few others). Those are planned for future releases. In the interim work -arounds can be sought. Note that LibTomMath doesn't lack any functions required to build a cryptosystem. +Remove ``mpi.c'' from your project and replace it with ``bn.c''. \section{Programming with LibTomMath} @@ -278,6 +276,9 @@ int mp_lcm(mp_int *a, mp_int *b, mp_int *c); /* find the b'th root of a */ int mp_n_root(mp_int *a, mp_digit b, mp_int *c); +/* computes the jacobi c = (a | n) (or Legendre if b is prime) */ +int mp_jacobi(mp_int *a, mp_int *n, int *c); + /* d = a^b (mod c) */ int mp_exptmod(mp_int *a, mp_int *b, mp_int *c, mp_int *d); \end{verbatim} @@ -444,6 +445,14 @@ requires $b$ multiplications and one division for a total work of $O(6N^2 \cdot If the input $a$ is negative and $b$ is even the function returns an error. Otherwise the function will return a root that has a sign that agrees with the sign of $a$. +\subsubsection{mp\_jacobi(mp\_int *a, mp\_int *n, int *c)} +Computes $c = \left ( {a \over n} \right )$ or the Jacobi function of $(a, n)$ and stores the result in an integer addressed +by $c$. Since the result of the Jacobi function $\left ( {a \over n} \right ) \in \lbrace -1, 0, 1 \rbrace$ it seemed +natural to store the result in a simple C style \textbf{int}. If $n$ is prime then the Jacobi function produces +the same results as the Legendre function\footnote{Source: Handbook of Applied Cryptography, pp. 73}. This means if +$n$ is prime then $\left ( {a \over n} \right )$ is equal to $1$ if $a$ is a quadratic residue modulo $n$ or $-1$ if +it is not. + \subsubsection{mp\_exptmod(mp\_int *a, mp\_int *b, mp\_int *c, mp\_int *d)} Computes $d = a^b \mbox{ (mod }c\mbox{)}$ using a sliding window $k$-ary exponentiation algorithm. For an $\alpha$-bit exponent it performs $\alpha$ squarings and at most $\lfloor \alpha/k \rfloor + k$ multiplications. The value of $k$ is diff --git a/changes.txt b/changes.txt index 87773a2..2d84db9 100644 --- a/changes.txt +++ b/changes.txt @@ -1,3 +1,8 @@ +Jan 6th, 2003 +v0.09 -- Updated the manual to reflect recent changes. :-) + -- Added Jacobi function (mp_jacobi) to supplement the number theory side of the lib + -- Added a Mersenne prime finder demo in ./etc/mersenne.c + Jan 2nd, 2003 v0.08 -- Sped up the multipliers by moving the inner loop variables into a smaller scope -- Corrected a bunch of small "warnings" diff --git a/demo.c b/demo.c index 0bf5aac..f671758 100644 --- a/demo.c +++ b/demo.c @@ -94,7 +94,6 @@ int main(void) mp_init(&d); mp_init(&e); mp_init(&f); - mp_read_radix(&a, "V//////////////////////////////////////////////////////////////////////////////////////", 64); mp_reduce_setup(&b, &a); diff --git a/etc/makefile b/etc/makefile index f38ed47..ed8f915 100644 --- a/etc/makefile +++ b/etc/makefile @@ -1 +1 @@ -CFLAGS += -I../ -Wall -W -O3 -fomit-frame-pointer -funroll-loops ../bn.c \ No newline at end of file +CFLAGS += -I../ -Wall -W -Wshadow -ansi -O3 -fomit-frame-pointer -funroll-loops ../bn.c \ No newline at end of file diff --git a/etc/mersenne.c b/etc/mersenne.c new file mode 100644 index 0000000..b6bbd51 --- /dev/null +++ b/etc/mersenne.c @@ -0,0 +1,150 @@ +/* Finds Mersenne primes using the Lucas-Lehmer test + * + * Tom St Denis, tomstdenis@iahu.ca + */ +#include +#include + +int is_mersenne(long s, int *pp) +{ + mp_int n, u, mu; + int res, k; + long ss; + + *pp = 0; + + if ((res = mp_init(&n)) != MP_OKAY) { + return res; + } + + if ((res = mp_init(&u)) != MP_OKAY) { + goto __N; + } + + if ((res = mp_init(&mu)) != MP_OKAY) { + goto __U; + } + + /* n = 2^s - 1 */ + mp_set(&n, 1); + ss = s; + while (ss--) { + if ((res = mp_mul_2(&n, &n)) != MP_OKAY) { + goto __MU; + } + } + if ((res = mp_sub_d(&n, 1, &n)) != MP_OKAY) { + goto __MU; + } + + /* setup mu */ + if ((res = mp_reduce_setup(&mu, &n)) != MP_OKAY) { + goto __MU; + } + + /* set u=4 */ + mp_set(&u, 4); + + /* for k=1 to s-2 do */ + for (k = 1; k <= s - 2; k++) { + /* u = u^2 - 2 mod n */ + if ((res = mp_sqr(&u, &u)) != MP_OKAY) { + goto __MU; + } + if ((res = mp_sub_d(&u, 2, &u)) != MP_OKAY) { + goto __MU; + } + + /* make sure u is positive */ + if (u.sign == MP_NEG) { + if ((res = mp_add(&u, &n, &u)) != MP_OKAY) { + goto __MU; + } + } + + /* reduce */ + if ((res = mp_reduce(&u, &n, &mu)) != MP_OKAY) { + goto __MU; + } + } + + /* if u == 0 then its prime */ + if (mp_iszero(&u) == 1) { + *pp = 1; + } + + res = MP_OKAY; +__MU: mp_clear(&mu); +__U: mp_clear(&u); +__N: mp_clear(&n); + return res; +} + +/* square root of a long < 65536 */ +long i_sqrt(long x) +{ + long x1, x2; + + x2 = 16; + do { + x1 = x2; + x2 = x1 - ((x1 * x1) - x)/(2*x1); + } while (x1 != x2); + + if (x1*x1 > x) { + --x1; + } + + return x1; +} + +/* is the long prime by brute force */ +int isprime(long k) +{ + long y, z; + + y = i_sqrt(k); + for (z = 2; z <= y; z++) { + if ((k % z) == 0) return 0; + } + return 1; +} + + +int main(void) +{ + int pp; + long k; + clock_t tt; + + k = 3; + + for (;;) { + /* start time */ + tt = clock(); + + /* test if 2^k - 1 is prime */ + if (is_mersenne(k, &pp) != MP_OKAY) { + printf("Whoa error\n"); + return -1; + } + + if (pp == 1) { + /* count time */ + tt = clock() - tt; + + /* display if prime */ + printf("2^%-5ld - 1 is prime, test took %ld ticks\n", k, tt); + } + + /* goto next odd exponent */ + k += 2; + + /* but make sure its prime */ + while (isprime(k) == 0) { + k += 2; + } + } + return 0; +} + diff --git a/etc/pprime.c b/etc/pprime.c index 84cf79c..fb987e3 100644 --- a/etc/pprime.c +++ b/etc/pprime.c @@ -56,7 +56,7 @@ static mp_digit prime_digit() ++y; next = (y+1)*(y+1); } - + /* loop if divisible by 3,5,7,11,13,17,19,23,29 */ if ((r % 3) == 0) { x = 0; continue; } if ((r % 5) == 0) { x = 0; continue; } @@ -138,7 +138,7 @@ int pprime(int k, mp_int *p, mp_int *q) /* now loop making the single digit */ while (mp_count_bits(&a) < k) { - printf("prime is %4d bits left\r", k - mp_count_bits(&a)); fflush(stdout); + printf("prime has %4d bits left\r", k - mp_count_bits(&a)); fflush(stdout); top: mp_set(&b, prime_digit()); diff --git a/makefile b/makefile index cbb5ac7..d448933 100644 --- a/makefile +++ b/makefile @@ -1,13 +1,13 @@ CC = gcc -CFLAGS += -Wall -W -O3 -fomit-frame-pointer -funroll-loops +CFLAGS += -Wall -W -Wshadow -ansi -O3 -fomit-frame-pointer -funroll-loops -VERSION=0.08 +VERSION=0.09 default: test test: bn.o demo.o $(CC) bn.o demo.o -o demo - cd mtest ; gcc -O3 -fomit-frame-pointer -funroll-loops mtest.c -o mtest.exe -s + cd mtest ; gcc $(CFLAGS) mtest.c -o mtest.exe -s # builds the x86 demo test86: diff --git a/mtest/mtest.c b/mtest/mtest.c index de04e2b..df5422f 100644 --- a/mtest/mtest.c +++ b/mtest/mtest.c @@ -41,7 +41,7 @@ void rand_num(mp_int *a) unsigned char buf[512]; top: - size = 1 + ((fgetc(rng)*fgetc(rng)) % 32); + size = 1 + ((fgetc(rng)*fgetc(rng)) % 96); buf[0] = (fgetc(rng)&1)?1:0; fread(buf+1, 1, size, rng); for (n = 0; n < size; n++) { @@ -57,7 +57,7 @@ void rand_num2(mp_int *a) unsigned char buf[512]; top: - size = 1 + ((fgetc(rng)*fgetc(rng)) % 32); + size = 1 + ((fgetc(rng)*fgetc(rng)) % 96); buf[0] = (fgetc(rng)&1)?1:0; fread(buf+1, 1, size, rng); for (n = 0; n < size; n++) {