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
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.
5 august 2025 | 3.5.2 |