Jūs esateŽurnalai / Ernestas Kardzys's blog / Montgomery's Multiplication

Montgomery's Multiplication


ParašėErnestas Kardzys - 2009 Balandžio 20

Based on "Handbook of Applied Cryptography". Montgomery's multiplication in C programming language. void mpa_mod_mon_mult(bignum_t *res, bignum_t *m, bignum_t *x, bignum_t *y, const digit_t map) { int i = 0; digit_t ui; bignum_t *uim = mpa_create_bignum(); xrealloc_bignum(uim, ALL_DIGITS(m) + 1); bignum_t *xiy = mpa_create_bignum(); xrealloc_bignum(uim, ALL_DIGITS(m) + 1); if (m->all_digits > x->all_digits) xrealloc_bignum(x, ALL_DIGITS(m)); zero_number(res); xrealloc_bignum(res, ALL_DIGITS(m) + 1); for (i = 0; i < m->all_digits; i++) { ui = (res->digits[0] + x->digits[i] * y->digits[0]) * map; /* 2.1 */ hpa_mul(uim, m, ui); /* 2.2 */ hpa_mul(xiy, y, x->digits[i]); mpa_add2(res, uim); mpa_add2(res, xiy); rshift(res, 1); printf("\n"); } if (greaterorequal(res, m)) mpa_sub2(res, m); mpa_free_bignum(xiy); mpa_free_bignum(uim); }

Skelbti naują komentarą

Šio laukelio turinys bus laikomas privatus ir nerodomas viešai.
  • Web puslapiu adresai ir el. pašto adresai automatiškai tampa nuorodomis.
  • Leidžiamos HTML žymės: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Linijos ir paragrafai atskiriami automatiškai
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <php>, <python>, <ruby>. The supported tag styles are: <foo>, [foo].

Daugiau informacijos apie teksto formatavimą

CAPTCHA
Šis klausimas yra skirtas įsitikinti, jog jūs esate žmogus, ir sustabdyti automatinį šlamšto siuntimą.