From c343371bb26a2b64875a4844c43568ddb59273fe Mon Sep 17 00:00:00 2001 From: Tom St Denis Date: Fri, 19 Sep 2003 22:43:07 +0000 Subject: [PATCH] added libtommath-0.27 --- bn.pdf | Bin 233596 -> 233706 bytes bn.tex | 2 +- bn_mp_add_d.c | 6 +- bn_mp_dr_reduce.c | 16 +-- bn_mp_exptmod_fast.c | 10 +- bn_mp_grow.c | 18 +++- bn_mp_mod_2d.c | 2 +- bn_mp_mul_d.c | 64 ++++++------ bn_mp_sub_d.c | 3 +- bn_mp_toom_sqr.c | 46 ++++---- changes.txt | 9 ++ changes.txt~ | 244 ------------------------------------------- demo/demo.c | 37 +++---- etc/2kprime.1 | 2 - etc/2kprime.c | 160 ++++++++++++++-------------- etc/drprime.c | 3 +- etc/drprimes.txt | 18 +--- makefile | 4 +- poster.pdf | Bin 40820 -> 40821 bytes pre_gen/mpi.c | 165 +++++++++++++++-------------- 20 files changed, 294 insertions(+), 515 deletions(-) delete mode 100644 changes.txt~ diff --git a/bn.pdf b/bn.pdf index dbaaf90e208cf3f7f711d2f45a3b71e913ef891f..0fe6beb2b77fc8a7a413978006fc66c7bb622bcb 100644 GIT binary patch delta 96801 zcmV)tK$pM#pbqMx4v-!JIg>CiDUnDGf7EL}nh#EZU=oN)Nb7Cl&~0I>v~^XNA?@E| zCve~rzc}`Le$G=nn=fR;qyvSa{bEXc2wpO48&F=ccDLs5{iYQz@UxKoBr3_59ins) zm97>4uJHoOiO=?pRn9^{rb^X2tO9Q}BV<@sZZM7`}Ve?938 zCHp!EWqFGGIF$s>GLiap%X+4P+S-3|huo3I`#F})PhC0yf@6=zCXqz8u_ZL!MjC=3 z)tsk2k>W-ylStU)jaUuJN>*tD-h?dC3NQb*p_SvSMA7o+IP{mY2Z@6@g;7H=Ww4Yx zE~J(a?XuqiQJ-@UggTtw@hfb*JWNxAQV!i|Fs8{Qt2m~3qN0tc@XUKbX&LScQ1l(O zE=D{H5UeH}#zEupV@!>yUmudHW-smR2WQrOfP;(yw~PS+(FT+88YzG6QfpWfR~i

dE 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 delta 96486 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 M{gtaWvyX*;}l9r~+E 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 == MP_ZPOS) { - /* setup size */ - c->used = a->used + 1; - /* add digit, after this we're propagating * the carry. */ @@ -75,6 +72,9 @@ mp_add_d (mp_int * a, mp_digit b, mp_int * c) /* set final carry */ ix++; *tmpc++ = mu; + + /* setup size */ + c->used = a->used + 1; } else { /* a was negative and |a| < b */ c->used = 1; diff --git a/bn_mp_dr_reduce.c b/bn_mp_dr_reduce.c index 2fe9dbe..bad240a 100644 --- a/bn_mp_dr_reduce.c +++ b/bn_mp_dr_reduce.c @@ -26,7 +26,7 @@ * * Has been modified to use algorithm 7.10 from the LTM book instead * - * Input x must be in the range 0 <= x <= (n-1)^2 + * Input x must be in the range 0 <= x <= (n-1)**2 */ int mp_dr_reduce (mp_int * x, mp_int * n, mp_digit k) @@ -34,10 +34,10 @@ mp_dr_reduce (mp_int * x, mp_int * n, mp_digit k) int err, i, m; mp_word r; mp_digit mu, *tmpx1, *tmpx2; - + /* m = digits in modulus */ m = n->used; - + /* ensure that "x" has at least 2m digits */ if (x->alloc < m + m) { if ((err = mp_grow (x, m + m)) != MP_OKAY) { @@ -45,20 +45,20 @@ mp_dr_reduce (mp_int * x, mp_int * n, mp_digit k) } } -/* top of loop, this is where the code resumes if +/* top of loop, this is where the code resumes if * another reduction pass is required. */ top: /* aliases for digits */ /* alias for lower half of x */ tmpx1 = x->dp; - + /* alias for upper half of x, or x/B**m */ tmpx2 = x->dp + m; - + /* set carry to zero */ mu = 0; - + /* compute (x mod B**m) + k * [x/B**m] inline and inplace */ for (i = 0; i < m; i++) { r = ((mp_word)*tmpx2++) * ((mp_word)k) + *tmpx1 + mu; @@ -77,7 +77,7 @@ top: /* clamp, sub and return */ mp_clamp (x); - /* if x >= n then subtract and reduce again + /* if x >= n then subtract and reduce again * Each successive "recursion" makes the input smaller and smaller. */ if (mp_cmp_mag (x, n) != MP_LT) { diff --git a/bn_mp_exptmod_fast.c b/bn_mp_exptmod_fast.c index 1fe9df6..c281733 100644 --- a/bn_mp_exptmod_fast.c +++ b/bn_mp_exptmod_fast.c @@ -14,7 +14,7 @@ */ #include -/* computes Y == G^X mod P, HAC pp.616, Algorithm 14.85 +/* computes Y == G**X mod P, HAC pp.616, Algorithm 14.85 * * Uses a left-to-right k-ary sliding window to compute the modular exponentiation. * The value of k changes based on the size of the exponent. @@ -34,10 +34,10 @@ mp_exptmod_fast (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) mp_int M[TAB_SIZE], res; mp_digit buf, mp; int err, bitbuf, bitcpy, bitcnt, mode, digidx, x, y, winsize; - + /* use a pointer to the reduction algorithm. This allows us to use * one of many reduction algorithms without modding the guts of - * the code with if statements everywhere. + * the code with if statements everywhere. */ int (*redux)(mp_int*,mp_int*,mp_digit); @@ -68,7 +68,7 @@ mp_exptmod_fast (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) /* init M array */ /* init first cell */ if ((err = mp_init(&M[1])) != MP_OKAY) { - return err; + return err; } /* now init the second half of the array */ @@ -88,7 +88,7 @@ mp_exptmod_fast (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) if ((err = mp_montgomery_setup (P, &mp)) != MP_OKAY) { goto __M; } - + /* automatically pick the comba one if available (saves quite a few calls/ifs) */ if (((P->used * 2 + 1) < MP_WARRAY) && P->used < (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { diff --git a/bn_mp_grow.c b/bn_mp_grow.c index e6ae02f..c2c47a5 100644 --- a/bn_mp_grow.c +++ b/bn_mp_grow.c @@ -19,17 +19,29 @@ int mp_grow (mp_int * a, int size) { int i; + mp_digit *tmp; + /* if the alloc size is smaller alloc more ram */ if (a->alloc < size) { /* ensure there are always at least MP_PREC digits extra on top */ - size += (MP_PREC * 2) - (size % MP_PREC); + size += (MP_PREC * 2) - (size % MP_PREC); - a->dp = OPT_CAST realloc (a->dp, sizeof (mp_digit) * size); - if (a->dp == NULL) { + /* reallocate the array a->dp + * + * We store the return in a temporary variable + * in case the operation failed we don't want + * to overwrite the dp member of a. + */ + tmp = OPT_CAST realloc (a->dp, sizeof (mp_digit) * size); + if (tmp == NULL) { + /* reallocation failed but "a" is still valid [can be freed] */ return MP_MEM; } + /* reallocation succeeded so set a->dp */ + a->dp = tmp; + /* zero excess digits */ i = a->alloc; a->alloc = size; diff --git a/bn_mp_mod_2d.c b/bn_mp_mod_2d.c index c25212d..89e9081 100644 --- a/bn_mp_mod_2d.c +++ b/bn_mp_mod_2d.c @@ -14,7 +14,7 @@ */ #include -/* calc a value mod 2^b */ +/* calc a value mod 2**b */ int mp_mod_2d (mp_int * a, int b, mp_int * c) { diff --git a/bn_mp_mul_d.c b/bn_mp_mul_d.c index ae665bc..658fe01 100644 --- a/bn_mp_mul_d.c +++ b/bn_mp_mul_d.c @@ -18,12 +18,13 @@ int mp_mul_d (mp_int * a, mp_digit b, mp_int * c) { - int res, pa, olduse; + mp_digit u, *tmpa, *tmpc; + mp_word r; + int ix, res, olduse; /* make sure c is big enough to hold a*b */ - pa = a->used; - if (c->alloc < pa + 1) { - if ((res = mp_grow (c, pa + 1)) != MP_OKAY) { + if (c->alloc < a->used + 1) { + if ((res = mp_grow (c, a->used + 1)) != MP_OKAY) { return res; } } @@ -31,42 +32,41 @@ mp_mul_d (mp_int * a, mp_digit b, mp_int * c) /* get the original destinations used count */ olduse = c->used; - /* set the new temporary used count */ - c->used = pa + 1; + /* set the sign */ c->sign = a->sign; - { - register mp_digit u, *tmpa, *tmpc; - register mp_word r; - register int ix; + /* alias for a->dp [source] */ + tmpa = a->dp; - /* alias for a->dp [source] */ - tmpa = a->dp; + /* alias for c->dp [dest] */ + tmpc = c->dp; - /* alias for c->dp [dest] */ - tmpc = c->dp; + /* zero carry */ + u = 0; - /* zero carry */ - u = 0; - for (ix = 0; ix < pa; ix++) { - /* compute product and carry sum for this term */ - r = ((mp_word) u) + ((mp_word)*tmpa++) * ((mp_word)b); + /* compute columns */ + for (ix = 0; ix < a->used; ix++) { + /* compute product and carry sum for this term */ + r = ((mp_word) u) + ((mp_word)*tmpa++) * ((mp_word)b); - /* mask off higher bits to get a single digit */ - *tmpc++ = (mp_digit) (r & ((mp_word) MP_MASK)); + /* mask off higher bits to get a single digit */ + *tmpc++ = (mp_digit) (r & ((mp_word) MP_MASK)); - /* send carry into next iteration */ - u = (mp_digit) (r >> ((mp_word) DIGIT_BIT)); - } - /* store final carry [if any] */ - *tmpc++ = u; - - /* now zero digits above the top */ - for (; pa < olduse; pa++) { - *tmpc++ = 0; - } + /* send carry into next iteration */ + u = (mp_digit) (r >> ((mp_word) DIGIT_BIT)); } - mp_clamp (c); + /* store final carry [if any] */ + *tmpc++ = u; + + /* now zero digits above the top */ + while (ix++ < olduse) { + *tmpc++ = 0; + } + + /* set used count */ + c->used = a->used + 1; + mp_clamp(c); + return MP_OKAY; } diff --git a/bn_mp_sub_d.c b/bn_mp_sub_d.c index d9938f4..6368970 100644 --- a/bn_mp_sub_d.c +++ b/bn_mp_sub_d.c @@ -73,7 +73,8 @@ mp_sub_d (mp_int * a, mp_digit b, mp_int * c) } } - for (; ix < oldused; ix++) { + /* zero excess digits */ + while (ix++ < oldused) { *tmpc++ = 0; } mp_clamp(c); diff --git a/bn_mp_toom_sqr.c b/bn_mp_toom_sqr.c index 7db1592..de3094a 100644 --- a/bn_mp_toom_sqr.c +++ b/bn_mp_toom_sqr.c @@ -15,12 +15,12 @@ #include /* squaring using Toom-Cook 3-way algorithm */ -int +int mp_toom_sqr(mp_int *a, mp_int *b) { mp_int w0, w1, w2, w3, w4, tmp1, a0, a1, a2; int res, B; - + /* init temps */ if ((res = mp_init_multi(&w0, &w1, &w2, &w3, &w4, &a0, &a1, &a2, &tmp1, NULL)) != MP_OKAY) { return res; @@ -28,8 +28,8 @@ mp_toom_sqr(mp_int *a, mp_int *b) /* B */ B = a->used / 3; - - /* a = a2 * B^2 + a1 * B + a0 */ + + /* a = a2 * B**2 + a1 * B + a0 */ if ((res = mp_mod_2d(a, DIGIT_BIT * B, &a0)) != MP_OKAY) { goto ERR; } @@ -44,17 +44,17 @@ mp_toom_sqr(mp_int *a, mp_int *b) goto ERR; } mp_rshd(&a2, B*2); - + /* w0 = a0*a0 */ if ((res = mp_sqr(&a0, &w0)) != MP_OKAY) { goto ERR; } - + /* w4 = a2 * a2 */ if ((res = mp_sqr(&a2, &w4)) != MP_OKAY) { goto ERR; } - + /* w1 = (a2 + 2(a1 + 2a0))**2 */ if ((res = mp_mul_2(&a0, &tmp1)) != MP_OKAY) { goto ERR; @@ -68,11 +68,11 @@ mp_toom_sqr(mp_int *a, mp_int *b) if ((res = mp_add(&tmp1, &a2, &tmp1)) != MP_OKAY) { goto ERR; } - + if ((res = mp_sqr(&tmp1, &w1)) != MP_OKAY) { goto ERR; } - + /* w3 = (a0 + 2(a1 + 2a2))**2 */ if ((res = mp_mul_2(&a2, &tmp1)) != MP_OKAY) { goto ERR; @@ -86,11 +86,11 @@ mp_toom_sqr(mp_int *a, mp_int *b) if ((res = mp_add(&tmp1, &a0, &tmp1)) != MP_OKAY) { goto ERR; } - + if ((res = mp_sqr(&tmp1, &w3)) != MP_OKAY) { goto ERR; } - + /* w2 = (a2 + a1 + a0)**2 */ if ((res = mp_add(&a2, &a1, &tmp1)) != MP_OKAY) { @@ -102,18 +102,18 @@ mp_toom_sqr(mp_int *a, mp_int *b) if ((res = mp_sqr(&tmp1, &w2)) != MP_OKAY) { goto ERR; } - - /* now solve the matrix - + + /* now solve the matrix + 0 0 0 0 1 1 2 4 8 16 1 1 1 1 1 16 8 4 2 1 1 0 0 0 0 - + using 12 subtractions, 4 shifts, 2 small divisions and 1 small multiplication. */ - + /* r1 - r4 */ if ((res = mp_sub(&w1, &w4, &w1)) != MP_OKAY) { goto ERR; @@ -185,7 +185,7 @@ mp_toom_sqr(mp_int *a, mp_int *b) if ((res = mp_div_3(&w3, &w3, NULL)) != MP_OKAY) { goto ERR; } - + /* at this point shift W[n] by B*n */ if ((res = mp_lshd(&w1, 1*B)) != MP_OKAY) { goto ERR; @@ -198,8 +198,8 @@ mp_toom_sqr(mp_int *a, mp_int *b) } if ((res = mp_lshd(&w4, 4*B)) != MP_OKAY) { goto ERR; - } - + } + if ((res = mp_add(&w0, &w1, b)) != MP_OKAY) { goto ERR; } @@ -211,10 +211,10 @@ mp_toom_sqr(mp_int *a, mp_int *b) } if ((res = mp_add(&tmp1, b, b)) != MP_OKAY) { goto ERR; - } - + } + ERR: mp_clear_multi(&w0, &w1, &w2, &w3, &w4, &a0, &a1, &a2, &tmp1, NULL); return res; -} - +} + diff --git a/changes.txt b/changes.txt index 0772f45..b6c6fad 100644 --- a/changes.txt +++ b/changes.txt @@ -1,3 +1,12 @@ +Sept 19th, 2003 +v0.27 -- Removed changes.txt~ which was made by accident since "kate" decided it was + a good time to re-enable backups... [kde is fun!] + -- In mp_grow() "a->dp" is not overwritten by realloc call [re: memory leak] + Now if mp_grow() fails the mp_int is still valid and can be cleared via + mp_clear() to reclaim the memory. + -- Henrik Goldman found a buffer overflow bug in mp_add_d(). Fixed. + -- Cleaned up mp_mul_d() to be much easier to read and follow. + Aug 29th, 2003 v0.26 -- Fixed typo that caused warning with GCC 3.2 -- Martin Marcel noticed a bug in mp_neg() that allowed negative zeroes. diff --git a/changes.txt~ b/changes.txt~ deleted file mode 100644 index 2ccb559..0000000 --- a/changes.txt~ +++ /dev/null @@ -1,244 +0,0 @@ -Aug 11th, 2003 -v0.26 -- Fixed typo that caused warning with GCC 3.2 - -- Martin Marcel noticed a bug in mp_neg() that allowed negative zeroes. - Also, Martin is the fellow who noted the bugs in mp_gcd() of 0.24/0.25. - -- Martin Marcel noticed an optimization [and slight bug] in mp_lcm(). - -- Added fix to mp_read_unsigned_bin to prevent a buffer overflow. - -- Beefed up the comments in the baseline multipliers [and montgomery] - -- Added "mont" demo to the makefile.msvc in etc/ - -- Optimized sign compares in mp_cmp from 4 to 2 cases. - -Aug 4th, 2003 -v0.25 -- Fix to mp_gcd again... oops (0,-a) == (-a, 0) == a - -- Fix to mp_clear which didn't reset the sign [Greg Rose] - -- Added mp_error_to_string() to convert return codes to strings. [Greg Rose] - -- Optimized fast_mp_invmod() to do the test for invalid inputs [both even] - first so temps don't have to be initialized if it's going to fail. - -- Optimized mp_gcd() by removing mp_div_2d calls for when one of the inputs - is odd. - -- Tons of new comments, some indentation fixups, etc. - -- mp_jacobi() returns MP_VAL if the modulus is less than or equal to zero. - -- fixed two typos in the header of each file :-) - -- LibTomMath is officially Public Domain [see LICENSE] - -July 15th, 2003 -v0.24 -- Optimized mp_add_d and mp_sub_d to not allocate temporary variables - -- Fixed mp_gcd() so the gcd of 0,0 is 0. Allows the gcd operation to be chained - e.g. (0,0,a) == a [instead of 1] - -- Should be one of the last release for a while. Working on LibTomMath book now. - -- optimized the pprime demo [/etc/pprime.c] to first make a huge table of single - digit primes then it reads them randomly instead of randomly choosing/testing single - digit primes. - -July 12th, 2003 -v0.23 -- Optimized mp_prime_next_prime() to not use mp_mod [via is_divisible()] in each - iteration. Instead now a smaller table is kept of the residues which can be updated - without division. - -- Fixed a bug in next_prime() where an input of zero would be treated as odd and - have two added to it [to move to the next odd]. - -- fixed a bug in prime_fermat() and prime_miller_rabin() which allowed the base - to be negative, zero or one. Normally the test is only valid if the base is - greater than one. - -- changed the next_prime() prototype to accept a new parameter "bbs_style" which - will find the next prime congruent to 3 mod 4. The default [bbs_style==0] will - make primes which are either congruent to 1 or 3 mod 4. - -- fixed mp_read_unsigned_bin() so that it doesn't include both code for - the case DIGIT_BIT < 8 and >= 8 - -- optimized div_d() to easy out on division by 1 [or if a == 0] and use - logical shifts if the divisor is a power of two. - -- the default DIGIT_BIT type was not int for non-default builds. Fixed. - -July 2nd, 2003 -v0.22 -- Fixed up mp_invmod so the result is properly in range now [was always congruent to the inverse...] - -- Fixed up s_mp_exptmod and mp_exptmod_fast so the lower half of the pre-computed table isn't allocated - which makes the algorithm use half as much ram. - -- Fixed the install script not to make the book :-) [which isn't included anyways] - -- added mp_cnt_lsb() which counts how many of the lsbs are zero - -- optimized mp_gcd() to use the new mp_cnt_lsb() to replace multiple divisions by two by a single division. - -- applied similar optimization to mp_prime_miller_rabin(). - -- Fixed a bug in both mp_invmod() and fast_mp_invmod() which tested for odd - via "mp_iseven() == 0" which is not valid [since zero is not even either]. - -June 19th, 2003 -v0.21 -- Fixed bug in mp_mul_d which would not handle sign correctly [would not always forward it] - -- Removed the #line lines from gen.pl [was in violation of ISO C] - -June 8th, 2003 -v0.20 -- Removed the book from the package. Added the TDCAL license document. - -- This release is officially pure-bred TDCAL again [last officially TDCAL based release was v0.16] - -June 6th, 2003 -v0.19 -- Fixed a bug in mp_montgomery_reduce() which was introduced when I tweaked mp_rshd() in the previous release. - Essentially the digits were not trimmed before the compare which cause a subtraction to occur all the time. - -- Fixed up etc/tune.c a bit to stop testing new cutoffs after 16 failures [to find more optimal points]. - Brute force ho! - - -May 29th, 2003 -v0.18 -- Fixed a bug in s_mp_sqr which would handle carries properly just not very elegantly. - (e.g. correct result, just bad looking code) - -- Fixed bug in mp_sqr which still had a 512 constant instead of MP_WARRAY - -- Added Toom-Cook multipliers [needs tuning!] - -- Added efficient divide by 3 algorithm mp_div_3 - -- Re-wrote mp_div_d to be faster than calling mp_div - -- Added in a donated BCC makefile and a single page LTM poster (ahalhabsi@sbcglobal.net) - -- Added mp_reduce_2k which reduces an input modulo n = 2**p - k for any single digit k - -- Made the exptmod system be aware of the 2k reduction algorithms. - -- Rewrote mp_dr_reduce to be smaller, simpler and easier to understand. - -May 17th, 2003 -v0.17 -- Benjamin Goldberg submitted optimized mp_add and mp_sub routines. A new gen.pl as well - as several smaller suggestions. Thanks! - -- removed call to mp_cmp in inner loop of mp_div and put mp_cmp_mag in its place :-) - -- Fixed bug in mp_exptmod that would cause it to fail for odd moduli when DIGIT_BIT != 28 - -- mp_exptmod now also returns errors if the modulus is negative and will handle negative exponents - -- mp_prime_is_prime will now return true if the input is one of the primes in the prime table - -- Damian M Gryski (dgryski@uwaterloo.ca) found a index out of bounds error in the - mp_fast_s_mp_mul_high_digs function which didn't come up before. (fixed) - -- Refactored the DR reduction code so there is only one function per file. - -- Fixed bug in the mp_mul() which would erroneously avoid the faster multiplier [comba] when it was - allowed. The bug would not cause the incorrect value to be produced just less efficient (fixed) - -- Fixed similar bug in the Montgomery reduction code. - -- Added tons of (mp_digit) casts so the 7/15/28/31 bit digit code will work flawlessly out of the box. - Also added limited support for 64-bit machines with a 60-bit digit. Both thanks to Tom Wu (tom@arcot.com) - -- Added new comments here and there, cleaned up some code [style stuff] - -- Fixed a lingering typo in mp_exptmod* that would set bitcnt to zero then one. Very silly stuff :-) - -- Fixed up mp_exptmod_fast so it would set "redux" to the comba Montgomery reduction if allowed. This - saves quite a few calls and if statements. - -- Added etc/mont.c a test of the Montgomery reduction [assuming all else works :-| ] - -- Fixed up etc/tune.c to use a wider test range [more appropriate] also added a x86 based addition which - uses RDTSC for high precision timing. - -- Updated demo/demo.c to remove MPI stuff [won't work anyways], made the tests run for 2 seconds each so its - not so insanely slow. Also made the output space delimited [and fixed up various errors] - -- Added logs directory, logs/graph.dem which will use gnuplot to make a series of PNG files - that go with the pre-made index.html. You have to build [via make timing] and run ltmtest first in the - root of the package. - -- Fixed a bug in mp_sub and mp_add where "-a - -a" or "-a + a" would produce -0 as the result [obviously invalid]. - -- Fixed a bug in mp_rshd. If the count == a.used it should zero/return [instead of shifting] - -- Fixed a "off-by-one" bug in mp_mul2d. The initial size check on alloc would be off by one if the residue - shifting caused a carry. - -- Fixed a bug where s_mp_mul_digs() would not call the Comba based routine if allowed. This made Barrett reduction - slower than it had to be. - -Mar 29th, 2003 -v0.16 -- Sped up mp_div by making normalization one shift call - -- Sped up mp_mul_2d/mp_div_2d by aliasing pointers :-) - -- Cleaned up mp_gcd to use the macros for odd/even detection - -- Added comments here and there, mostly there but occasionally here too. - -Mar 22nd, 2003 -v0.15 -- Added series of prime testing routines to lib - -- Fixed up etc/tune.c - -- Added DR reduction algorithm - -- Beefed up the manual more. - -- Fixed up demo/demo.c so it doesn't have so many warnings and it does the full series of - tests - -- Added "pre-gen" directory which will hold a "gen.pl"'ed copy of the entire lib [done at - zipup time so its always the latest] - -- Added conditional casts for C++ users [boo!] - -Mar 15th, 2003 -v0.14 -- Tons of manual updates - -- cleaned up the directory - -- added MSVC makefiles - -- source changes [that I don't recall] - -- Fixed up the lshd/rshd code to use pointer aliasing - -- Fixed up the mul_2d and div_2d to not call rshd/lshd unless needed - -- Fixed up etc/tune.c a tad - -- fixed up demo/demo.c to output comma-delimited results of timing - also fixed up timing demo to use a finer granularity for various functions - -- fixed up demo/demo.c testing to pause during testing so my Duron won't catch on fire - [stays around 31-35C during testing :-)] - -Feb 13th, 2003 -v0.13 -- tons of minor speed-ups in low level add, sub, mul_2 and div_2 which propagate - to other functions like mp_invmod, mp_div, etc... - -- Sped up mp_exptmod_fast by using new code to find R mod m [e.g. B^n mod m] - -- minor fixes - -Jan 17th, 2003 -v0.12 -- re-wrote the majority of the makefile so its more portable and will - install via "make install" on most *nix platforms - -- Re-packaged all the source as seperate files. Means the library a single - file packagage any more. Instead of just adding "bn.c" you have to add - libtommath.a - -- Renamed "bn.h" to "tommath.h" - -- Changes to the manual to reflect all of this - -- Used GNU Indent to clean up the source - -Jan 15th, 2003 -v0.11 -- More subtle fixes - -- Moved to gentoo linux [hurrah!] so made *nix specific fixes to the make process - -- Sped up the montgomery reduction code quite a bit - -- fixed up demo so when building timing for the x86 it assumes ELF format now - -Jan 9th, 2003 -v0.10 -- Pekka Riikonen suggested fixes to the radix conversion code. - -- Added baseline montgomery and comba montgomery reductions, sped up exptmods - [to a point, see bn.h for MONTGOMERY_EXPT_CUTOFF] - -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" - -- Added more comments - -- Made "mtest" be able to use /dev/random, /dev/urandom or stdin for RNG data - -- Corrected some bugs where error messages were potentially ignored - -- add etc/pprime.c program which makes numbers which are provably prime. - -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 - -Dec 30th, 2002 -v0.05 -- Builds with MSVC out of the box - -- Fixed a bug in mp_invmod w.r.t. even moduli - -- Made mp_toradix and mp_read_radix use char instead of unsigned char arrays - -- Fixed up exptmod to use fewer multiplications - -- Fixed up mp_init_size to use only one heap operation - -- Note there is a slight "off-by-one" bug in the library somewhere - without the padding (see the source for comment) the library - crashes in libtomcrypt. Anyways a reasonable workaround is to pad the - numbers which will always correct it since as the numbers grow the padding - will still be beyond the end of the number - -- Added more to the manual - -Dec 29th, 2002 -v0.04 -- Fixed a memory leak in mp_to_unsigned_bin - -- optimized invmod code - -- Fixed bug in mp_div - -- use exchange instead of copy for results - -- added a bit more to the manual - -Dec 27th, 2002 -v0.03 -- Sped up s_mp_mul_high_digs by not computing the carries of the lower digits - -- Fixed a bug where mp_set_int wouldn't zero the value first and set the used member. - -- fixed a bug in s_mp_mul_high_digs where the limit placed on the result digits was not calculated properly - -- fixed bugs in add/sub/mul/sqr_mod functions where if the modulus and dest were the same it wouldn't work - -- fixed a bug in mp_mod and mp_mod_d concerning negative inputs - -- mp_mul_d didn't preserve sign - -- Many many many many fixes - -- Works in LibTomCrypt now :-) - -- Added iterations to the timing demos... more accurate. - -- Tom needs a job. - -Dec 26th, 2002 -v0.02 -- Fixed a few "slips" in the manual. This is "LibTomMath" afterall :-) - -- Added mp_cmp_mag, mp_neg, mp_abs and mp_radix_size that were missing. - -- Sped up the fast [comba] multipliers more [yahoo!] - -Dec 25th,2002 -v0.01 -- Initial release. Gimme a break. - -- Todo list, - add details to manual [e.g. algorithms] - more comments in code - example programs diff --git a/demo/demo.c b/demo/demo.c index 67984aa..3b7997d 100644 --- a/demo/demo.c +++ b/demo/demo.c @@ -68,8 +68,8 @@ int main(void) mp_init(&c); mp_init(&d); mp_init(&e); - mp_init(&f); - + mp_init(&f); + srand(time(NULL)); #if 0 @@ -89,7 +89,7 @@ int main(void) for (;;) { aa = abs(rand()) & MP_MASK; bb = abs(rand()) & MP_MASK; - if (MULT(aa,bb) != (aa*bb)) { + if (MULT(aa,bb) != (aa*bb)) { printf("%llu * %llu == %llu or %llu?\n", aa, bb, (ulong64)MULT(aa,bb), (ulong64)(aa*bb)); return 0; } @@ -111,18 +111,18 @@ int main(void) /* test mp_reduce_2k */ #if 0 - for (cnt = 3; cnt <= 4096; ++cnt) { + for (cnt = 3; cnt <= 256; ++cnt) { mp_digit tmp; mp_2expt(&a, cnt); mp_sub_d(&a, 1, &a); /* a = 2**cnt - 1 */ - - + + printf("\nTesting %4d bits", cnt); printf("(%d)", mp_reduce_is_2k(&a)); mp_reduce_2k_setup(&a, &tmp); printf("(%d)", tmp); - for (ix = 0; ix < 100000; ix++) { - if (!(ix & 1023)) {printf("."); fflush(stdout); } + for (ix = 0; ix < 10000; ix++) { + if (!(ix & 127)) {printf("."); fflush(stdout); } mp_rand(&b, (cnt/DIGIT_BIT + 1) * 2); mp_copy(&c, &b); mp_mod(&c, &a, &c); @@ -135,22 +135,23 @@ int main(void) } #endif - + /* test mp_div_3 */ #if 0 - for (cnt = 0; cnt < 1000000; ) { + for (cnt = 0; cnt < 10000; ) { mp_digit r1, r2; - + if (!(++cnt & 127)) printf("%9d\r", cnt); mp_rand(&a, abs(rand()) % 32 + 1); mp_div_d(&a, 3, &b, &r1); mp_div_3(&a, &c, &r2); - + if (mp_cmp(&b, &c) || r1 != r2) { - printf("Failure\n"); + printf("\n\nmp_div_3 => Failure\n"); } } -#endif + printf("\n\nPassed div_3 testing\n"); +#endif /* test the DR reduction */ #if 0 @@ -162,7 +163,7 @@ int main(void) a.dp[ix] = MP_MASK; } a.used = cnt; - mp_prime_next_prime(&a, 3); + mp_prime_next_prime(&a, 3, 0); mp_rand(&b, cnt - 1); mp_copy(&b, &c); @@ -178,9 +179,9 @@ int main(void) if (mp_cmp(&b, &c) != MP_EQ) { printf("Failed on trial %lu\n", rr); exit(-1); - + } - } while (++rr < 1000000); + } while (++rr < 10000); printf("Passed DR test for %d digits\n", cnt); } #endif @@ -369,7 +370,7 @@ int main(void) div2_n = mul2_n = inv_n = expt_n = lcm_n = gcd_n = add_n = sub_n = mul_n = div_n = sqr_n = mul2d_n = div2d_n = cnt = add_d_n = sub_d_n= 0; - + /* force KARA and TOOM to enable despite cutoffs */ KARATSUBA_SQR_CUTOFF = KARATSUBA_MUL_CUTOFF = 110; TOOM_SQR_CUTOFF = TOOM_MUL_CUTOFF = 150; diff --git a/etc/2kprime.1 b/etc/2kprime.1 index c41ded1..e69de29 100644 --- a/etc/2kprime.1 +++ b/etc/2kprime.1 @@ -1,2 +0,0 @@ -256-bits (k = 36113) = 115792089237316195423570985008687907853269984665640564039457584007913129603823 -512-bits (k = 38117) = 13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006045979 diff --git a/etc/2kprime.c b/etc/2kprime.c index 4f1d4bb..d48b83e 100644 --- a/etc/2kprime.c +++ b/etc/2kprime.c @@ -1,80 +1,80 @@ -/* Makes safe primes of a 2k nature */ -#include -#include - -int sizes[] = {256, 512, 768, 1024, 1536, 2048, 3072, 4096}; - -int main(void) -{ - char buf[2000]; - int x, y; - mp_int q, p; - FILE *out; - clock_t t1; - mp_digit z; - - mp_init_multi(&q, &p, NULL); - - out = fopen("2kprime.1", "w"); - for (x = 0; x < (int)(sizeof(sizes) / sizeof(sizes[0])); x++) { - top: - mp_2expt(&q, sizes[x]); - mp_add_d(&q, 3, &q); - z = -3; - - t1 = clock(); - for(;;) { - mp_sub_d(&q, 4, &q); - z += 4; - - if (z > MP_MASK) { - printf("No primes of size %d found\n", sizes[x]); - break; - } - - if (clock() - t1 > CLOCKS_PER_SEC) { - printf("."); fflush(stdout); -// sleep((clock() - t1 + CLOCKS_PER_SEC/2)/CLOCKS_PER_SEC); - t1 = clock(); - } - - /* quick test on q */ - mp_prime_is_prime(&q, 1, &y); - if (y == 0) { - continue; - } - - /* find (q-1)/2 */ - mp_sub_d(&q, 1, &p); - mp_div_2(&p, &p); - mp_prime_is_prime(&p, 3, &y); - if (y == 0) { - continue; - } - - /* test on q */ - mp_prime_is_prime(&q, 3, &y); - if (y == 0) { - continue; - } - - break; - } - - if (y == 0) { - ++sizes[x]; - goto top; - } - - mp_toradix(&q, buf, 10); - printf("\n\n%d-bits (k = %lu) = %s\n", sizes[x], z, buf); - fprintf(out, "%d-bits (k = %lu) = %s\n", sizes[x], z, buf); fflush(out); - } - - return 0; -} - - - - - +/* Makes safe primes of a 2k nature */ +#include +#include + +int sizes[] = {256, 512, 768, 1024, 1536, 2048, 3072, 4096}; + +int main(void) +{ + char buf[2000]; + int x, y; + mp_int q, p; + FILE *out; + clock_t t1; + mp_digit z; + + mp_init_multi(&q, &p, NULL); + + out = fopen("2kprime.1", "w"); + for (x = 0; x < (int)(sizeof(sizes) / sizeof(sizes[0])); x++) { + top: + mp_2expt(&q, sizes[x]); + mp_add_d(&q, 3, &q); + z = -3; + + t1 = clock(); + for(;;) { + mp_sub_d(&q, 4, &q); + z += 4; + + if (z > MP_MASK) { + printf("No primes of size %d found\n", sizes[x]); + break; + } + + if (clock() - t1 > CLOCKS_PER_SEC) { + printf("."); fflush(stdout); +// sleep((clock() - t1 + CLOCKS_PER_SEC/2)/CLOCKS_PER_SEC); + t1 = clock(); + } + + /* quick test on q */ + mp_prime_is_prime(&q, 1, &y); + if (y == 0) { + continue; + } + + /* find (q-1)/2 */ + mp_sub_d(&q, 1, &p); + mp_div_2(&p, &p); + mp_prime_is_prime(&p, 3, &y); + if (y == 0) { + continue; + } + + /* test on q */ + mp_prime_is_prime(&q, 3, &y); + if (y == 0) { + continue; + } + + break; + } + + if (y == 0) { + ++sizes[x]; + goto top; + } + + mp_toradix(&q, buf, 10); + printf("\n\n%d-bits (k = %lu) = %s\n", sizes[x], z, buf); + fprintf(out, "%d-bits (k = %lu) = %s\n", sizes[x], z, buf); fflush(out); + } + + return 0; +} + + + + + diff --git a/etc/drprime.c b/etc/drprime.c index 2b561e3..0ab8ea6 100644 --- a/etc/drprime.c +++ b/etc/drprime.c @@ -1,7 +1,7 @@ /* Makes safe primes of a DR nature */ #include -int sizes[] = { 256/DIGIT_BIT, 512/DIGIT_BIT, 768/DIGIT_BIT, 1024/DIGIT_BIT, 2048/DIGIT_BIT, 4096/DIGIT_BIT }; +int sizes[] = { 1+256/DIGIT_BIT, 1+512/DIGIT_BIT, 1+768/DIGIT_BIT, 1+1024/DIGIT_BIT, 1+2048/DIGIT_BIT, 1+4096/DIGIT_BIT }; int main(void) { int res, x, y; @@ -27,6 +27,7 @@ int main(void) a.used = sizes[x]; /* now loop */ + res = 0; for (;;) { a.dp[0] += 4; if (a.dp[0] >= MP_MASK) break; diff --git a/etc/drprimes.txt b/etc/drprimes.txt index 717420d..5022e80 100644 --- a/etc/drprimes.txt +++ b/etc/drprimes.txt @@ -1,15 +1,3 @@ -300-bit prime: -p == 2037035976334486086268445688409378161051468393665936250636140449354381299763336706183393387 - -510-bit prime: -p == 3351951982485649274893506249551461531869841455148098344430890360930441007518386744200468574541725856922507964546621512713438470702986642486608412251494847 - -765-bit prime: -p == 194064761537588616893622436057812819407110752139587076392381504753256369085797110791359801103580809743810966337141384150771447505514351798930535909380147642400556872002606238193783160703949805603157874899214558593861605856727005843 - -1740-bit prime: -p == 61971563797913992479098926650774597592238975917324828616370329001490282756182680310375299496755876376552390992409906202402580445340335946188208371182877207703039791403230793200138374588682414508868522097839706723444887189794752005280474068640895359332705297533442094790319040758184131464298255306336601284054032615054089107503261218395204931877449590906016855549287497608058070532126514935495184332288660623518513755499687752752528983258754107553298994358814410594621086881204713587661301862918471291451469190214535690028223 - -2145-bit prime: -p == 5120834017984591518147028606005386392991070803233539296225079797126347381640561714282620018633786528684625023495254338414266418034876748837569635527008462887513799703364491256252208677097644781218029521545625387720450034199300257983090290650191518075514440227307582827991892955933645635564359934476985058395497772801264225688705417270604479898255105628816161764712152286804906915652283101897505006786990112535065979412882966109410722156057838063961993103028819293481078313367826492291911499907219457764211473530756735049840415233164976184864760203928986194694093688479274544786530457604655777313274555786861719645260099496565700321073395329400403 - +280-bit prime: +p == 1942668892225729070919461906823518906642406839052139521251812409738904285204940164839 + diff --git a/makefile b/makefile index afc1000..e40b637 100644 --- a/makefile +++ b/makefile @@ -6,7 +6,7 @@ CFLAGS += -I./ -Wall -W -Wshadow -O3 -funroll-loops #x86 optimizations [should be valid for any GCC install though] CFLAGS += -fomit-frame-pointer -VERSION=0.26 +VERSION=0.27 default: libtommath.a @@ -95,7 +95,7 @@ manual: rm -f bn.aux bn.dvi bn.log clean: - rm -f *.pdf *.o *.a *.obj *.lib *.exe etclib/*.o demo/demo.o test ltmtest mpitest mtest/mtest mtest/mtest.exe \ + rm -f *.bat *.pdf *.o *.a *.obj *.lib *.exe etclib/*.o demo/demo.o test ltmtest mpitest mtest/mtest mtest/mtest.exe \ tommath.idx tommath.toc tommath.log tommath.aux tommath.dvi tommath.lof tommath.ind tommath.ilg *.ps *.pdf *.log *.s mpi.c \ poster.aux poster.dvi poster.log cd etc ; make clean diff --git a/poster.pdf b/poster.pdf index d12d949f5516060a647084087864ed730bf26d76..237e88eca38b9d979f640028487c58c0e6888179 100644 GIT binary patch delta 16514 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 delta 16506 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 == MP_ZPOS) { - /* setup size */ - c->used = a->used + 1; - /* add digit, after this we're propagating * the carry. */ @@ -961,6 +958,9 @@ mp_add_d (mp_int * a, mp_digit b, mp_int * c) /* set final carry */ ix++; *tmpc++ = mu; + + /* setup size */ + c->used = a->used + 1; } else { /* a was negative and |a| < b */ c->used = 1; @@ -2121,7 +2121,7 @@ int mp_dr_is_modulus(mp_int *a) * * Has been modified to use algorithm 7.10 from the LTM book instead * - * Input x must be in the range 0 <= x <= (n-1)^2 + * Input x must be in the range 0 <= x <= (n-1)**2 */ int mp_dr_reduce (mp_int * x, mp_int * n, mp_digit k) @@ -2129,10 +2129,10 @@ mp_dr_reduce (mp_int * x, mp_int * n, mp_digit k) int err, i, m; mp_word r; mp_digit mu, *tmpx1, *tmpx2; - + /* m = digits in modulus */ m = n->used; - + /* ensure that "x" has at least 2m digits */ if (x->alloc < m + m) { if ((err = mp_grow (x, m + m)) != MP_OKAY) { @@ -2140,20 +2140,20 @@ mp_dr_reduce (mp_int * x, mp_int * n, mp_digit k) } } -/* top of loop, this is where the code resumes if +/* top of loop, this is where the code resumes if * another reduction pass is required. */ top: /* aliases for digits */ /* alias for lower half of x */ tmpx1 = x->dp; - + /* alias for upper half of x, or x/B**m */ tmpx2 = x->dp + m; - + /* set carry to zero */ mu = 0; - + /* compute (x mod B**m) + k * [x/B**m] inline and inplace */ for (i = 0; i < m; i++) { r = ((mp_word)*tmpx2++) * ((mp_word)k) + *tmpx1 + mu; @@ -2172,7 +2172,7 @@ top: /* clamp, sub and return */ mp_clamp (x); - /* if x >= n then subtract and reduce again + /* if x >= n then subtract and reduce again * Each successive "recursion" makes the input smaller and smaller. */ if (mp_cmp_mag (x, n) != MP_LT) { @@ -2402,7 +2402,7 @@ mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y) */ #include -/* computes Y == G^X mod P, HAC pp.616, Algorithm 14.85 +/* computes Y == G**X mod P, HAC pp.616, Algorithm 14.85 * * Uses a left-to-right k-ary sliding window to compute the modular exponentiation. * The value of k changes based on the size of the exponent. @@ -2422,10 +2422,10 @@ mp_exptmod_fast (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) mp_int M[TAB_SIZE], res; mp_digit buf, mp; int err, bitbuf, bitcpy, bitcnt, mode, digidx, x, y, winsize; - + /* use a pointer to the reduction algorithm. This allows us to use * one of many reduction algorithms without modding the guts of - * the code with if statements everywhere. + * the code with if statements everywhere. */ int (*redux)(mp_int*,mp_int*,mp_digit); @@ -2456,7 +2456,7 @@ mp_exptmod_fast (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) /* init M array */ /* init first cell */ if ((err = mp_init(&M[1])) != MP_OKAY) { - return err; + return err; } /* now init the second half of the array */ @@ -2476,7 +2476,7 @@ mp_exptmod_fast (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) if ((err = mp_montgomery_setup (P, &mp)) != MP_OKAY) { goto __M; } - + /* automatically pick the comba one if available (saves quite a few calls/ifs) */ if (((P->used * 2 + 1) < MP_WARRAY) && P->used < (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { @@ -2926,17 +2926,29 @@ int mp_grow (mp_int * a, int size) { int i; + mp_digit *tmp; + /* if the alloc size is smaller alloc more ram */ if (a->alloc < size) { /* ensure there are always at least MP_PREC digits extra on top */ - size += (MP_PREC * 2) - (size % MP_PREC); + size += (MP_PREC * 2) - (size % MP_PREC); - a->dp = OPT_CAST realloc (a->dp, sizeof (mp_digit) * size); - if (a->dp == NULL) { + /* reallocate the array a->dp + * + * We store the return in a temporary variable + * in case the operation failed we don't want + * to overwrite the dp member of a. + */ + tmp = OPT_CAST realloc (a->dp, sizeof (mp_digit) * size); + if (tmp == NULL) { + /* reallocation failed but "a" is still valid [can be freed] */ return MP_MEM; } + /* reallocation succeeded so set a->dp */ + a->dp = tmp; + /* zero excess digits */ i = a->alloc; a->alloc = size; @@ -3874,7 +3886,7 @@ mp_mod (mp_int * a, mp_int * b, mp_int * c) */ #include -/* calc a value mod 2^b */ +/* calc a value mod 2**b */ int mp_mod_2d (mp_int * a, int b, mp_int * c) { @@ -4405,12 +4417,13 @@ mp_mul_2d (mp_int * a, int b, mp_int * c) int mp_mul_d (mp_int * a, mp_digit b, mp_int * c) { - int res, pa, olduse; + mp_digit u, *tmpa, *tmpc; + mp_word r; + int ix, res, olduse; /* make sure c is big enough to hold a*b */ - pa = a->used; - if (c->alloc < pa + 1) { - if ((res = mp_grow (c, pa + 1)) != MP_OKAY) { + if (c->alloc < a->used + 1) { + if ((res = mp_grow (c, a->used + 1)) != MP_OKAY) { return res; } } @@ -4418,43 +4431,42 @@ mp_mul_d (mp_int * a, mp_digit b, mp_int * c) /* get the original destinations used count */ olduse = c->used; - /* set the new temporary used count */ - c->used = pa + 1; + /* set the sign */ c->sign = a->sign; - { - register mp_digit u, *tmpa, *tmpc; - register mp_word r; - register int ix; + /* alias for a->dp [source] */ + tmpa = a->dp; - /* alias for a->dp [source] */ - tmpa = a->dp; + /* alias for c->dp [dest] */ + tmpc = c->dp; - /* alias for c->dp [dest] */ - tmpc = c->dp; + /* zero carry */ + u = 0; - /* zero carry */ - u = 0; - for (ix = 0; ix < pa; ix++) { - /* compute product and carry sum for this term */ - r = ((mp_word) u) + ((mp_word)*tmpa++) * ((mp_word)b); + /* compute columns */ + for (ix = 0; ix < a->used; ix++) { + /* compute product and carry sum for this term */ + r = ((mp_word) u) + ((mp_word)*tmpa++) * ((mp_word)b); - /* mask off higher bits to get a single digit */ - *tmpc++ = (mp_digit) (r & ((mp_word) MP_MASK)); + /* mask off higher bits to get a single digit */ + *tmpc++ = (mp_digit) (r & ((mp_word) MP_MASK)); - /* send carry into next iteration */ - u = (mp_digit) (r >> ((mp_word) DIGIT_BIT)); - } - /* store final carry [if any] */ - *tmpc++ = u; - - /* now zero digits above the top */ - for (; pa < olduse; pa++) { - *tmpc++ = 0; - } + /* send carry into next iteration */ + u = (mp_digit) (r >> ((mp_word) DIGIT_BIT)); } - mp_clamp (c); + /* store final carry [if any] */ + *tmpc++ = u; + + /* now zero digits above the top */ + while (ix++ < olduse) { + *tmpc++ = 0; + } + + /* set used count */ + c->used = a->used + 1; + mp_clamp(c); + return MP_OKAY; } @@ -6172,7 +6184,8 @@ mp_sub_d (mp_int * a, mp_digit b, mp_int * c) } } - for (; ix < oldused; ix++) { + /* zero excess digits */ + while (ix++ < oldused) { *tmpc++ = 0; } mp_clamp(c); @@ -6596,12 +6609,12 @@ ERR: #include /* squaring using Toom-Cook 3-way algorithm */ -int +int mp_toom_sqr(mp_int *a, mp_int *b) { mp_int w0, w1, w2, w3, w4, tmp1, a0, a1, a2; int res, B; - + /* init temps */ if ((res = mp_init_multi(&w0, &w1, &w2, &w3, &w4, &a0, &a1, &a2, &tmp1, NULL)) != MP_OKAY) { return res; @@ -6609,8 +6622,8 @@ mp_toom_sqr(mp_int *a, mp_int *b) /* B */ B = a->used / 3; - - /* a = a2 * B^2 + a1 * B + a0 */ + + /* a = a2 * B**2 + a1 * B + a0 */ if ((res = mp_mod_2d(a, DIGIT_BIT * B, &a0)) != MP_OKAY) { goto ERR; } @@ -6625,17 +6638,17 @@ mp_toom_sqr(mp_int *a, mp_int *b) goto ERR; } mp_rshd(&a2, B*2); - + /* w0 = a0*a0 */ if ((res = mp_sqr(&a0, &w0)) != MP_OKAY) { goto ERR; } - + /* w4 = a2 * a2 */ if ((res = mp_sqr(&a2, &w4)) != MP_OKAY) { goto ERR; } - + /* w1 = (a2 + 2(a1 + 2a0))**2 */ if ((res = mp_mul_2(&a0, &tmp1)) != MP_OKAY) { goto ERR; @@ -6649,11 +6662,11 @@ mp_toom_sqr(mp_int *a, mp_int *b) if ((res = mp_add(&tmp1, &a2, &tmp1)) != MP_OKAY) { goto ERR; } - + if ((res = mp_sqr(&tmp1, &w1)) != MP_OKAY) { goto ERR; } - + /* w3 = (a0 + 2(a1 + 2a2))**2 */ if ((res = mp_mul_2(&a2, &tmp1)) != MP_OKAY) { goto ERR; @@ -6667,11 +6680,11 @@ mp_toom_sqr(mp_int *a, mp_int *b) if ((res = mp_add(&tmp1, &a0, &tmp1)) != MP_OKAY) { goto ERR; } - + if ((res = mp_sqr(&tmp1, &w3)) != MP_OKAY) { goto ERR; } - + /* w2 = (a2 + a1 + a0)**2 */ if ((res = mp_add(&a2, &a1, &tmp1)) != MP_OKAY) { @@ -6683,18 +6696,18 @@ mp_toom_sqr(mp_int *a, mp_int *b) if ((res = mp_sqr(&tmp1, &w2)) != MP_OKAY) { goto ERR; } - - /* now solve the matrix - + + /* now solve the matrix + 0 0 0 0 1 1 2 4 8 16 1 1 1 1 1 16 8 4 2 1 1 0 0 0 0 - + using 12 subtractions, 4 shifts, 2 small divisions and 1 small multiplication. */ - + /* r1 - r4 */ if ((res = mp_sub(&w1, &w4, &w1)) != MP_OKAY) { goto ERR; @@ -6766,7 +6779,7 @@ mp_toom_sqr(mp_int *a, mp_int *b) if ((res = mp_div_3(&w3, &w3, NULL)) != MP_OKAY) { goto ERR; } - + /* at this point shift W[n] by B*n */ if ((res = mp_lshd(&w1, 1*B)) != MP_OKAY) { goto ERR; @@ -6779,8 +6792,8 @@ mp_toom_sqr(mp_int *a, mp_int *b) } if ((res = mp_lshd(&w4, 4*B)) != MP_OKAY) { goto ERR; - } - + } + if ((res = mp_add(&w0, &w1, b)) != MP_OKAY) { goto ERR; } @@ -6792,13 +6805,13 @@ mp_toom_sqr(mp_int *a, mp_int *b) } if ((res = mp_add(&tmp1, b, b)) != MP_OKAY) { goto ERR; - } - + } + ERR: mp_clear_multi(&w0, &w1, &w2, &w3, &w4, &a0, &a1, &a2, &tmp1, NULL); return res; -} - +} + /* End: bn_mp_toom_sqr.c */