Scroll to navigation

BN_MOD_MUL_MONTGOMERY(3SSL) OpenSSL BN_MOD_MUL_MONTGOMERY(3SSL)

NUME

BN_mod_mul_montgomery, BN_MONT_CTX_new, BN_MONT_CTX_free, BN_MONT_CTX_set, BN_MONT_CTX_copy, BN_from_montgomery, BN_to_montgomery - înmulțirea Montgomery

SINOPSIS

 #include <openssl/bn.h>
 BN_MONT_CTX *BN_MONT_CTX_new(void);
 void BN_MONT_CTX_free(BN_MONT_CTX *mont);
 int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *m, BN_CTX *ctx);
 BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from);
 int BN_mod_mul_montgomery(BIGNUM *r, BIGNUM *a, BIGNUM *b,
                           BN_MONT_CTX *mont, BN_CTX *ctx);
 int BN_from_montgomery(BIGNUM *r, BIGNUM *a, BN_MONT_CTX *mont,
                        BN_CTX *ctx);
 int BN_to_montgomery(BIGNUM *r, BIGNUM *a, BN_MONT_CTX *mont,
                      BN_CTX *ctx);

DESCRIERE

Aceste funcții implementează înmulțirea Montgomery. Ele sunt utilizate automat atunci când BN_mod_exp(3) este apelată cu o intrare adecvată, dar pot fi utile atunci când trebuie efectuate mai multe operații folosind același modul.

BN_MONT_CTX_new() alocă și inițializează o structură BN_MONT_CTX.

BN_MONT_CTX_set() configurează structura mont din modulul m prin precalcularea inversului său și a unei valori R.

BN_MONT_CTX_copy() copiază from în to BN_MONT_CTX.

BN_MONT_CTX_free() eliberează componentele structurii BN_MONT_CTX și, dacă aceasta a fost creată de BN_MONT_CTX_new(), și structura în sine. Dacă mont este NULL, nu se face nimic.

BN_mod_mul_montgomery() calculează Mont(a,b):=a*b*R^-1 și plasează rezultatul în r.

BN_from_montgomery() efectuează reducerea Montgomery r = a*R^-1.

BN_to_montgomery() calculează Mont(a,R^2), adică a*R. Rețineți că a trebuie să fie nenegativ și mai mic decât modulul.

Pentru toate funcțiile, ctx este un BN_CTX alocat anterior, utilizat pentru variabile temporare.

VALORI RETURNATE

BN_MONT_CTX_new() returnează valoarea BN_MONT_CTX nou alocată și valoarea NULL în caz de eroare.

BN_MONT_CTX_free() nu are valoare de returnare.

Pentru celelalte funcții, 1 este returnat în caz de succes, 0 în caz de eroare. Codurile de eroare pot fi obținute prin ERR_get_error(3).

AVERTISMENTE

Intrările trebuie să fie reduse modulo m, altfel rezultatul va fi în afara intervalului așteptat.

CONSULTAȚI ȘI

ERR_get_error(3), BN_add(3), BN_CTX_new(3)

ISTORIC

BN_MONT_CTX_init() a fost eliminat în OpenSSL 1.1.0

DREPTURI DE AUTOR

Drepturi de autor 2000-2020 The OpenSSL Project Authors. Toate drepturile rezervate.

Licențiat sub Licența Apache 2.0 („License”). Nu aveți voie să utilizați acest fișier decât în conformitate cu licența. Puteți obține o copie din fișierul LICENSE din distribuția sursei sau de la <https://www.openssl.org/source/license.html>.

TRADUCERE

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

12 iulie 2025 3.5.1