From 3cd7000342cc027ce9ca0282c0f7b27953234305 Mon Sep 17 00:00:00 2001 From: Tom St Denis Date: Fri, 28 Feb 2003 16:05:52 +0000 Subject: [PATCH] added libtommath-0.07 --- b.bat | 2 +- bn.c | 237 ++++++++++++++++++++++++++++++++++++++------------ bn.h | 9 ++ bn.pdf | Bin 151847 -> 152877 bytes bn.tex | 107 +++++++++++++---------- changes.txt | 5 ++ demo.c | 22 +++-- makefile | 2 +- mtest/mtest.c | 4 +- 9 files changed, 277 insertions(+), 111 deletions(-) diff --git a/b.bat b/b.bat index 1d0b900..32dee86 100644 --- a/b.bat +++ b/b.bat @@ -1,3 +1,3 @@ nasm -f coff timer.asm gcc -Wall -W -O3 -fomit-frame-pointer -funroll-loops -DTIMER_X86 demo.c bn.c timer.o -o ltmdemo -gcc -I./mtest/ -DU_MPI -Wall -W -O3 -fomit-frame-pointer -funroll-loops -DTIMER_X86 demo.c mtest/mpi.c timer.o -o mpidemo +rem gcc -I./mtest/ -DU_MPI -Wall -W -O3 -fomit-frame-pointer -funroll-loops -DTIMER_X86 demo.c mtest/mpi.c timer.o -o mpidemo diff --git a/bn.c b/bn.c index cf8a391..6d258d0 100644 --- a/bn.c +++ b/bn.c @@ -849,8 +849,7 @@ static int s_mp_sub(mp_int *a, mp_int *b, mp_int *c) */ static int fast_s_mp_mul_digs(mp_int *a, mp_int *b, mp_int *c, int digs) { - mp_int t; - int res, pa, pb, ix, iy; + int olduse, res, pa, pb, ix, iy; mp_word W[512], *_W; mp_digit tmpx, *tmpy; @@ -859,11 +858,12 @@ static int fast_s_mp_mul_digs(mp_int *a, mp_int *b, mp_int *c, int digs) VERIFY(b); VERIFY(c); - if ((res = mp_init_size(&t, digs)) != MP_OKAY) { - DECFUNC(); - return res; + if (c->alloc < digs) { + if ((res = mp_grow(c, digs)) != MP_OKAY) { + DECFUNC(); + return res; + } } - t.used = digs; /* clear temp buf (the columns) */ memset(W, 0, digs*sizeof(mp_word)); @@ -893,6 +893,11 @@ static int fast_s_mp_mul_digs(mp_int *a, mp_int *b, mp_int *c, int digs) } } + /* setup dest */ + olduse = c->used; + c->used = digs; + + /* At this point W[] contains the sums of each column. To get the * correct result we must take the extra bits from each column and * carry them down @@ -904,14 +909,17 @@ static int fast_s_mp_mul_digs(mp_int *a, mp_int *b, mp_int *c, int digs) * this is slower but on most cryptographic size numbers it is faster. */ for (ix = 1; ix < digs; ix++) { - W[ix] = W[ix] + (W[ix-1] >> ((mp_word)DIGIT_BIT)); - t.dp[ix-1] = W[ix-1] & ((mp_word)MP_MASK); + W[ix] = W[ix] + (W[ix-1] >> ((mp_word)DIGIT_BIT)); + c->dp[ix-1] = W[ix-1] & ((mp_word)MP_MASK); + } + c->dp[digs-1] = W[digs-1] & ((mp_word)MP_MASK); + + /* clear unused */ + for (ix = c->used; ix < olduse; ix++) { + c->dp[ix] = 0; } - t.dp[digs-1] = W[digs-1] & ((mp_word)MP_MASK); - mp_clamp(&t); - mp_exch(&t, c); - mp_clear(&t); + mp_clamp(c); DECFUNC(); return MP_OKAY; } @@ -993,8 +1001,7 @@ static int s_mp_mul_digs(mp_int *a, mp_int *b, mp_int *c, int digs) */ static int fast_s_mp_mul_high_digs(mp_int *a, mp_int *b, mp_int *c, int digs) { - mp_int t; - int res, pa, pb, ix, iy; + int oldused, newused, res, pa, pb, ix, iy; mp_word W[512], *_W; mp_digit tmpx, *tmpy; @@ -1003,11 +1010,13 @@ static int fast_s_mp_mul_high_digs(mp_int *a, mp_int *b, mp_int *c, int digs) VERIFY(b); VERIFY(c); - if ((res = mp_init_size(&t, a->used + b->used + 1)) != MP_OKAY) { - DECFUNC(); - return res; + newused = a->used + b->used + 1; + if (c->alloc < newused) { + if ((res = mp_grow(c, newused)) != MP_OKAY) { + DECFUNC(); + return res; + } } - t.used = a->used + b->used + 1; /* like the other comba method we compute the columns first */ pa = a->used; @@ -1025,17 +1034,21 @@ static int fast_s_mp_mul_high_digs(mp_int *a, mp_int *b, mp_int *c, int digs) } } + /* setup dest */ + oldused = c->used; + c->used = newused; + /* now convert the array W downto what we need */ for (ix = digs+1; ix < (pa+pb+1); ix++) { - W[ix] = W[ix] + (W[ix-1] >> ((mp_word)DIGIT_BIT)); - t.dp[ix-1] = W[ix-1] & ((mp_word)MP_MASK); + W[ix] = W[ix] + (W[ix-1] >> ((mp_word)DIGIT_BIT)); + c->dp[ix-1] = W[ix-1] & ((mp_word)MP_MASK); } - t.dp[(pa+pb+1)-1] = W[(pa+pb+1)-1] & ((mp_word)MP_MASK); + c->dp[(pa+pb+1)-1] = W[(pa+pb+1)-1] & ((mp_word)MP_MASK); - - mp_clamp(&t); - mp_exch(&t, c); - mp_clear(&t); + for (ix = c->used; ix < oldused; ix++) { + c->dp[ix] = 0; + } + mp_clamp(c); DECFUNC(); return MP_OKAY; } @@ -1106,8 +1119,7 @@ static int s_mp_mul_high_digs(mp_int *a, mp_int *b, mp_int *c, int digs) */ static int fast_s_mp_sqr(mp_int *a, mp_int *b) { - mp_int t; - int res, ix, iy, pa; + int olduse, newused, res, ix, iy, pa; mp_word W2[512], W[512], *_W; mp_digit tmpx, *tmpy; @@ -1116,11 +1128,13 @@ static int fast_s_mp_sqr(mp_int *a, mp_int *b) VERIFY(b); pa = a->used; - if ((res = mp_init_size(&t, pa + pa + 1)) != MP_OKAY) { - DECFUNC(); - return res; - } - t.used = pa + pa + 1; + newused = pa + pa + 1; + if (b->alloc < newused) { + if ((res = mp_grow(b, newused)) != MP_OKAY) { + DECFUNC(); + return res; + } + } /* zero temp buffer (columns) */ memset(W, 0, (pa+pa+1)*sizeof(mp_word)); @@ -1144,19 +1158,29 @@ static int fast_s_mp_sqr(mp_int *a, mp_int *b) /* double first value, since the inner products are half of what they should be */ W[0] += W[0] + W2[0]; + /* setup dest */ + olduse = b->used; + b->used = newused; + /* now compute digits */ for (ix = 1; ix < (pa+pa+1); ix++) { /* double/add next digit */ - W[ix] += W[ix] + W2[ix]; - - W[ix] = W[ix] + (W[ix-1] >> ((mp_word)DIGIT_BIT)); - t.dp[ix-1] = W[ix-1] & ((mp_word)MP_MASK); + W[ix] += W[ix] + W2[ix]; + + W[ix] = W[ix] + (W[ix-1] >> ((mp_word)DIGIT_BIT)); + b->dp[ix-1] = W[ix-1] & ((mp_word)MP_MASK); } - t.dp[(pa+pa+1)-1] = W[(pa+pa+1)-1] & ((mp_word)MP_MASK); + b->dp[(pa+pa+1)-1] = W[(pa+pa+1)-1] & ((mp_word)MP_MASK); - mp_clamp(&t); - mp_exch(&t, b); - mp_clear(&t); + /* clear high */ + for (ix = b->used; ix < olduse; ix++) { + b->dp[ix] = 0; + } + + /* fix the sign (since we no longer make a fresh temp) */ + b->sign = MP_ZPOS; + + mp_clamp(b); DECFUNC(); return MP_OKAY; } @@ -1173,13 +1197,13 @@ static int s_mp_sqr(mp_int *a, mp_int *b) VERIFY(a); VERIFY(b); - /* can we use the fast multiplier? */ + /* can we use the fast multiplier? */ if (((a->used * 2 + 1) < 512) && a->used < (1<<( (CHAR_BIT*sizeof(mp_word)) - (2*DIGIT_BIT) - 1))) { res = fast_s_mp_sqr(a,b); DECFUNC(); return res; } - + pa = a->used; if ((res = mp_init_size(&t, pa + pa + 1)) != MP_OKAY) { DECFUNC(); @@ -1385,10 +1409,9 @@ static int mp_karatsuba_mul(mp_int *a, mp_int *b, mp_int *c) if (mp_lshd(&x1y1, B*2) != MP_OKAY) goto X1Y1; /* x1y1 = x1y1 << 2*B */ if (mp_add(&x0y0, &t1, &t1) != MP_OKAY) goto X1Y1; /* t1 = x0y0 + t1 */ - if (mp_add(&t1, &x1y1, &t1) != MP_OKAY) goto X1Y1; /* t1 = x0y0 + t1 + x1y1 */ + if (mp_add(&t1, &x1y1, c) != MP_OKAY) goto X1Y1; /* t1 = x0y0 + t1 + x1y1 */ err = MP_OKAY; - mp_exch(&t1, c); X1Y1: mp_clear(&x1y1); X0Y0: mp_clear(&x0y0); @@ -1426,7 +1449,7 @@ int mp_mul(mp_int *a, mp_int *b, mp_int *c) static int mp_karatsuba_sqr(mp_int *a, mp_int *b) { mp_int x0, x1, t1, t2, x0x0, x1x1; - int B, err; + int B, err, x; REGFUNC("mp_karatsuba_sqr"); VERIFY(a); @@ -1441,8 +1464,8 @@ static int mp_karatsuba_sqr(mp_int *a, mp_int *b) B = B/2; /* init copy all the temps */ - if (mp_init_copy(&x0, a) != MP_OKAY) goto ERR; - if (mp_init_copy(&x1, a) != MP_OKAY) goto X0; + if (mp_init_size(&x0, B) != MP_OKAY) goto ERR; + if (mp_init_size(&x1, a->used - B) != MP_OKAY) goto X0; /* init temps */ if (mp_init(&t1) != MP_OKAY) goto X1; @@ -1451,16 +1474,27 @@ static int mp_karatsuba_sqr(mp_int *a, mp_int *b) if (mp_init(&x1x1) != MP_OKAY) goto X0X0; /* now shift the digits */ - mp_mod_2d(&x0, B*DIGIT_BIT, &x0); - mp_rshd(&x1, B); + for (x = 0; x < B; x++) { + x0.dp[x] = a->dp[x]; + } + for (x = B; x < a->used; x++) { + x1.dp[x-B] = a->dp[x]; + } + + x0.used = B; + x1.used = a->used - B; + + mp_clamp(&x0); + mp_clamp(&x1); + /* now calc the products x0*x0 and x1*x1 */ - if (s_mp_sqr(&x0, &x0x0) != MP_OKAY) goto X1X1; /* x0x0 = x0*x0 */ - if (s_mp_sqr(&x1, &x1x1) != MP_OKAY) goto X1X1; /* x1x1 = x1*x1 */ + if (mp_sqr(&x0, &x0x0) != MP_OKAY) goto X1X1; /* x0x0 = x0*x0 */ + if (mp_sqr(&x1, &x1x1) != MP_OKAY) goto X1X1; /* x1x1 = x1*x1 */ /* now calc x1-x0 and y1-y0 */ if (mp_sub(&x1, &x0, &t1) != MP_OKAY) goto X1X1; /* t1 = x1 - x0 */ - if (s_mp_sqr(&t1, &t1) != MP_OKAY) goto X1X1; /* t1 = (x1 - x0) * (y1 - y0) */ + if (mp_sqr(&t1, &t1) != MP_OKAY) goto X1X1; /* t1 = (x1 - x0) * (y1 - y0) */ /* add x0y0 */ if (mp_add(&x0x0, &x1x1, &t2) != MP_OKAY) goto X1X1; /* t2 = x0y0 + x1y1 */ @@ -1471,10 +1505,9 @@ static int mp_karatsuba_sqr(mp_int *a, mp_int *b) if (mp_lshd(&x1x1, B*2) != MP_OKAY) goto X1X1; /* x1y1 = x1y1 << 2*B */ if (mp_add(&x0x0, &t1, &t1) != MP_OKAY) goto X1X1; /* t1 = x0y0 + t1 */ - if (mp_add(&t1, &x1x1, &t1) != MP_OKAY) goto X1X1; /* t1 = x0y0 + t1 + x1y1 */ + if (mp_add(&t1, &x1x1, b) != MP_OKAY) goto X1X1; /* t1 = x0y0 + t1 + x1y1 */ err = MP_OKAY; - mp_exch(&t1, b); X1X1: mp_clear(&x1x1); X0X0: mp_clear(&x0x0); @@ -2784,6 +2817,102 @@ __M : return err; } +/* find the n'th root of an integer + * + * Result found such that (c)^b <= a and (c+1)^b > a + */ +int mp_n_root(mp_int *a, mp_digit b, mp_int *c) +{ + mp_int t1, t2, t3; + int res, neg; + + /* input must be positive if b is even*/ + if ((b&1) == 0 && a->sign == MP_NEG) { + return MP_VAL; + } + + if ((res = mp_init(&t1)) != MP_OKAY) { + return res; + } + + if ((res = mp_init(&t2)) != MP_OKAY) { + goto __T1; + } + + if ((res = mp_init(&t3)) != MP_OKAY) { + goto __T2; + } + + /* if a is negative fudge the sign but keep track */ + neg = a->sign; + a->sign = MP_ZPOS; + + /* t2 = a */ + if ((res = mp_copy(a, &t2)) != MP_OKAY) { + goto __T3; + } + + do { + /* t1 = t2 */ + if ((res = mp_copy(&t2, &t1)) != MP_OKAY) { + goto __T3; + } + + /* t2 = t1 - ((t1^b - a) / (b * t1^(b-1))) */ + if ((res = mp_expt_d(&t1, b-1, &t3)) != MP_OKAY) { /* t3 = t1^(b-1) */ + goto __T3; + } + + /* numerator */ + if ((res = mp_mul(&t3, &t1, &t2)) != MP_OKAY) { /* t2 = t1^b */ + goto __T3; + } + + if ((res = mp_sub(&t2, a, &t2)) != MP_OKAY) { /* t2 = t1^b - a */ + goto __T3; + } + + if ((res = mp_mul_d(&t3, b, &t3)) != MP_OKAY) { /* t3 = t1^(b-1) * b */ + goto __T3; + } + + if ((res = mp_div(&t2, &t3, &t3, NULL)) != MP_OKAY) { /* t3 = (t1^b - a)/(b * t1^(b-1)) */ + goto __T3; + } + + if ((res = mp_sub(&t1, &t3, &t2)) != MP_OKAY) { + goto __T3; + } + } while (mp_cmp(&t1, &t2) != MP_EQ); + + /* result can be at most off by one so check */ + if ((res = mp_expt_d(&t1, b, &t2)) != MP_OKAY) { + goto __T3; + } + + if (mp_cmp(&t2, a) == MP_GT) { + if ((res = mp_sub_d(&t1, 1, &t1)) != MP_OKAY) { + goto __T3; + } + } + + /* reset the sign of a first */ + a->sign = neg; + + /* set the result */ + mp_exch(&t1, c); + + /* set the sign of the result */ + c->sign = neg; + + res = MP_OKAY; + +__T3: mp_clear(&t3); +__T2: mp_clear(&t2); +__T1: mp_clear(&t1); + 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 624c50d..3975727 100644 --- a/bn.h +++ b/bn.h @@ -233,6 +233,15 @@ int mp_gcd(mp_int *a, mp_int *b, mp_int *c); /* c = [a, b] or (a*b)/(a, b) */ int mp_lcm(mp_int *a, mp_int *b, mp_int *c); +/* finds one of the b'th root of a, such that |c|^b <= |a| + * + * returns error if a < 0 and b is even + */ +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) + /* used to setup the Barrett reduction for a given modulus b */ int mp_reduce_setup(mp_int *a, mp_int *b); diff --git a/bn.pdf b/bn.pdf index d517dc4ef2deb4eae9b623235583f077fc7ff0e6..54bde38aaaf8358d8baf5e463fe795a7a4866cfa 100644 GIT binary patch delta 74559 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 diff --git a/bn.tex b/bn.tex index 069f76b..7c02e2c 100644 --- a/bn.tex +++ b/bn.tex @@ -1,7 +1,7 @@ \documentclass{article} \begin{document} -\title{LibTomMath v0.06 \\ A Free Multiple Precision Integer Library} +\title{LibTomMath v0.07 \\ A Free Multiple Precision Integer Library} \author{Tom St Denis \\ tomstdenis@iahu.ca} \maketitle \newpage @@ -187,17 +187,6 @@ int mp_mul_2(mp_int *a, mp_int *b); int mp_mod_2d(mp_int *a, int b, mp_int *c); \end{verbatim} -Both the \textbf{mp\_rshd} and \textbf{mp\_lshd} functions provide shifting by whole digits. For example, -mp\_rshd($x$, $n$) is the same as $x \leftarrow \lfloor x / \beta^n \rfloor$ while mp\_lshd($x$, $n$) is equivalent -to $x \leftarrow x \cdot \beta^n$. Both functions are extremely fast as they merely copy digits within the array. - -Similarly the \textbf{mp\_div\_2d} and \textbf{mp\_mul\_2d} functions provide shifting but allow any bit count to -be specified. For example, mp\_div\_2d($x$, $n$, $y$) is the same as $y =\lfloor x / 2^n \rfloor$ while -mp\_mul\_2d($x$, $n$, $y$) is the same as $y = x \cdot 2^n$. The \textbf{mp\_div\_2} and \textbf{mp\_mul\_2} -functions are legacy functions that merely shift right or left one bit respectively. The \textbf{mp\_mod\_2d} function -reduces an integer mod a power of two. For example, mp\_mod\_2d($x$, $n$, $y$) is the same as -$y \equiv x \mbox{ (mod }2^n\mbox{)}$. - \subsection{Basic Arithmetic} Next are the class of functions which provide basic arithmetic. @@ -234,17 +223,7 @@ int mp_div(mp_int *a, mp_int *b, mp_int *c, mp_int *d); int mp_mod(mp_int *a, mp_int *b, mp_int *c); \end{verbatim} -The \textbf{mp\_cmp} will compare two integers. It will return \textbf{MP\_LT} if the first parameter is less than -the second, \textbf{MP\_GT} if it is greater or \textbf{MP\_EQ} if they are equal. These constants are the same as from -MPI. - -The \textbf{mp\_add}, \textbf{mp\_sub}, \textbf{mp\_mul}, \textbf{mp\_div}, \textbf{mp\_sqr} and \textbf{mp\_mod} are all -fairly straight forward to understand. Note that in mp\_div either $c$ (the quotient) or $d$ (the remainder) can be -passed as NULL to ignore it. For example, if you only want the quotient $z = \lfloor x/y \rfloor$ then a call such as -mp\_div(\&x, \&y, \&z, NULL) is acceptable. - -There is a related class of ``single digit'' functions that are like the above except they use a digit as the second -operand. +\subsection{Single Digit Functions} \begin{verbatim} /* compare against a single digit */ @@ -296,14 +275,13 @@ int mp_gcd(mp_int *a, mp_int *b, mp_int *c); /* c = [a, b] or (a*b)/(a, b) */ 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); + /* d = a^b (mod c) */ int mp_exptmod(mp_int *a, mp_int *b, mp_int *c, mp_int *d); \end{verbatim} -These are all fairly simple to understand. The \textbf{mp\_invmod} is a modular multiplicative inverse. That is it -stores in the third parameter an integer such that $ac \equiv 1 \mbox{ (mod }b\mbox{)}$ provided such integer exists. If -there is no such integer the function returns \textbf{MP\_VAL}. - \subsection{Radix Conversions} To read or store integers in other formats there are the following functions. @@ -432,7 +410,7 @@ when $b \le 0$, in theory the routine will still give a properly congruent answe This function requires $O(4 \cdot N)$ memory and $O(3 \cdot N^2)$ time. -\subsection{Modular Arithmetic} +\subsection{Number Theoretic Functions} \subsubsection{mp\_addmod, mp\_submod, mp\_mulmod, mp\_sqrmod} These functions take the time of their host function plus the time it takes to perform a division. For example, @@ -445,6 +423,41 @@ Also note that these functions use mp\_mod which means the result are guaranteed This function will find $c = 1/a \mbox{ (mod }b\mbox{)}$ for any value of $a$ such that $(a, b) = 1$ and $b > 0$. When $b$ is odd a ``fast'' variant is used which finds the inverse twice as fast. +\subsubsection{mp\_gcd(mp\_int *a, mp\_int *b, mp\_int *c)} +Finds the greatest common divisor of both $a$ and $b$ and places the result in $c$. Will work with either positive +or negative inputs. + +Functions requires no additional memory and approximately $O(N \cdot log(N))$ time. + +\subsubsection{mp\_lcm(mp\_int *a, mp\_int *b, mp\_int *c)} +Finds the least common multiple of both $a$ and $b$ and places the result in $c$. Will work with either positive +or negative inputs. This is calculated by dividing the product of $a$ and $b$ by the greatest common divisor of +both. + +Functions requires no additional memory and approximately $O(4 \cdot N^2)$ time. + +\subsubsection{mp\_n\_root(mp\_int *a, mp\_digit b, mp\_int c)} +Finds the $b$'th root of $a$ and stores it in $b$. The roots are found such that $\vert c \vert^b \le \vert a \vert$. +Uses the Newton approximation approach which means it converges in $O(log \beta^N)$ time to a final result. Each iteration +requires $b$ multiplications and one division for a total work of $O(6N^2 \cdot log \beta^N) = O(6N^3 \cdot log \beta)$. + +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\_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 +chosen to minimize the number of multiplications required for a given value of $\alpha$. Barrett reductions are used +to reduce the squared or multiplied temporary results modulo $c$. A Barrett reduction requires one division that is +performed only and two half multipliers of $N$ digit numbers resulting in approximation $O((N^2)/2)$ work. + +Let $\gamma = \lfloor \alpha/k \rfloor + k$ represent the total multiplications. The total work of a exponentiation is +therefore, $O(3 \cdot N^2 + (\alpha + \gamma) \cdot ((N^2)/2) + \alpha \cdot ((N^2 + N)/2) + \gamma \cdot N^2)$ which +simplies to $O(3 \cdot N^2 + \gamma N^2 + \alpha (N^2 + (N/2)))$. The bulk of the time is spent in the Barrett +reductions and the squaring algorithms. Since $\gamma < \alpha$ it makes sense to optimize first the Barrett and +squaring routines first. Significant improvements in the future will most likely stem from optimizing these instead +of optimizing the multipliers. + \section{Timing Analysis} \subsection{Observed Timings} A simple test program ``demo.c'' was developed which builds with either MPI or LibTomMath (without modification). The @@ -467,27 +480,27 @@ Inversion & 1024 & 5,237,957 & 1,054,158 \\ Inversion & 2048 & 17,871,944 & 3,459,683 \\ Inversion & 4096 & 66,610,468 & 11,834,556 \\ \hline -Multiply & 128 & 1,426 & 828 \\ -Multiply & 256 & 2,551 & 1,393 \\ -Multiply & 512 & 7,913 & 2,926 \\ -Multiply & 1024 & 28,496 & 8,620 \\ -Multiply & 2048 & 109,897 & 28,967 \\ -Multiply & 4096 & 469,970 & 105,387 \\ +Multiply & 128 & 1,426 & 451 \\ +Multiply & 256 & 2,551 & 958 \\ +Multiply & 512 & 7,913 & 2,476 \\ +Multiply & 1024 & 28,496 & 7,927 \\ +Multiply & 2048 & 109,897 & 282,24 \\ +Multiply & 4096 & 469,970 & 104,681 \\ \hline -Square & 128 & 1,319 & 869 \\ -Square & 256 & 1,776 & 1,362 \\ -Square & 512 & 5,399 & 2,571 \\ -Square & 1024 & 18,991 & 6,332 \\ -Square & 2048 & 72,126 & 18,426 \\ -Square & 4096 & 306,269 & 74,908 \\ +Square & 128 & 1,319 & 511 \\ +Square & 256 & 1,776 & 947 \\ +Square & 512 & 5,399 & 2,153 \\ +Square & 1024 & 18,991 & 5,733 \\ +Square & 2048 & 72,126 & 17,621 \\ +Square & 4096 & 306,269 & 70,168 \\ \hline -Exptmod & 512 & 32,021,586 & 5,696,459 \\ -Exptmod & 768 & 97,595,492 & 12,428,274 \\ -Exptmod & 1024 & 223,302,532 & 22,834,316 \\ -Exptmod & 2048 & 1,682,223,369 & 119,888,049 \\ -Exptmod & 2560 & 3,268,615,571 & 250,901,263 \\ -Exptmod & 3072 & 5,597,240,141 & 391,716,431 \\ -Exptmod & 4096 & 13,347,270,891 & 814,429,647 +Exptmod & 512 & 32,021,586 & 4,472,406 \\ +Exptmod & 768 & 97,595,492 & 10,427,845 \\ +Exptmod & 1024 & 223,302,532 & 20,561,722 \\ +Exptmod & 2048 & 1,682,223,369 & 113,978,803 \\ +Exptmod & 2560 & 3,268,615,571 & 236,650,133 \\ +Exptmod & 3072 & 5,597,240,141 & 373,449,291 \\ +Exptmod & 4096 & 13,347,270,891 & 787,568,457 \end{tabular} \end{center} diff --git a/changes.txt b/changes.txt index e5b6294..4737590 100644 --- a/changes.txt +++ b/changes.txt @@ -1,3 +1,8 @@ +Jan 1st, 2003 +v0.07 -- Removed alot of heap operations from core functions to speed them up + -- Added a root finding function [and mp_sqrt macro like from MPI] + -- Added more to manual + Dec 31st, 2002 v0.06 -- Sped up the s_mp_add, s_mp_sub which inturn sped up mp_invmod, mp_exptmod, etc... -- Cleaned up the header a bit more diff --git a/demo.c b/demo.c index 0a1943f..ae35964 100644 --- a/demo.c +++ b/demo.c @@ -105,10 +105,9 @@ int main(void) mp_sub_d(&a, 1, &c); mp_exptmod(&b, &c, &a, &d); mp_toradix(&d, buf, 10); - printf("b^p-1 == %s\n", buf); + printf("b^p-1 == %s\n", buf); #ifdef TIMER - mp_read_radix(&a, "340282366920938463463374607431768211455", 10); mp_read_radix(&b, "340282366920938463463574607431768211455", 10); while (a.used * DIGIT_BIT < 8192) { @@ -156,9 +155,6 @@ int main(void) printf("Multiplying %d-bit took %llu cycles\n", mp_count_bits(&a), tt / ((ulong64)100000)); mp_copy(&b, &a); } - - - { char *primes[] = { @@ -177,6 +173,7 @@ int main(void) for (rr = 0; rr < mp_count_bits(&a); rr++) { mp_mul_2d(&b, 1, &b); b.dp[0] |= lbit(); + b.used += 1; } mp_sub_d(&a, 1, &c); mp_mod(&b, &c, &b); @@ -198,7 +195,7 @@ int main(void) printf("Exponentiating %d-bit took %llu cycles\n", mp_count_bits(&a), tt / ((ulong64)35)); } } - + mp_read_radix(&a, "340282366920938463463374607431768211455", 10); mp_read_radix(&b, "234892374891378913789237289378973232333", 10); while (a.used * DIGIT_BIT < 8192) { @@ -223,6 +220,19 @@ int main(void) inv_n = expt_n = lcm_n = gcd_n = add_n = sub_n = mul_n = div_n = sqr_n = mul2d_n = div2d_n = 0; for (;;) { + + /* randomly clear and re-init one variable, this has the affect of triming the alloc space */ + switch (abs(rand()) % 7) { + case 0: mp_clear(&a); mp_init(&a); break; + case 1: mp_clear(&b); mp_init(&b); break; + case 2: mp_clear(&c); mp_init(&c); break; + case 3: mp_clear(&d); mp_init(&d); break; + case 4: mp_clear(&e); mp_init(&e); break; + case 5: mp_clear(&f); mp_init(&f); break; + case 6: break; /* don't clear any */ + } + + printf("%7lu/%7lu/%7lu/%7lu/%7lu/%7lu/%7lu/%7lu/%7lu/%7lu/%7lu/%5d\r", add_n, sub_n, mul_n, div_n, sqr_n, mul2d_n, div2d_n, gcd_n, lcm_n, expt_n, inv_n, _ifuncs); fgets(cmd, 4095, stdin); cmd[strlen(cmd)-1] = 0; diff --git a/makefile b/makefile index ec94b70..95c6465 100644 --- a/makefile +++ b/makefile @@ -1,7 +1,7 @@ CC = gcc CFLAGS += -DDEBUG -Wall -W -O3 -fomit-frame-pointer -funroll-loops -VERSION=0.06 +VERSION=0.07 default: test diff --git a/mtest/mtest.c b/mtest/mtest.c index a32e0e5..576feb2 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)) % 512); 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)) % 512); buf[0] = (fgetc(rng)&1)?1:0; fread(buf+1, 1, size, rng); for (n = 0; n < size; n++) {