Modulo număr reciproc

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 20 aprilie 2022; verificările necesită 18 modificări .

Inversul modulo un număr întreg a  este un număr întreg x astfel încât produsul ax este congruent cu 1 modulo m [1] . În notația aritmetică modulară standard , această echivalență este scrisă ca:

care este un mod prescurtat de a spune că m împarte (fără rest) valoarea ax − 1 , sau, pentru a spune altfel, restul când ax este împărțit la întregul m este 1. Dacă a are un modulo invers invers , atunci există un număr infinit de soluții la această echivalență, care formează clasa de reziduuri pentru acest modul. Mai mult, orice număr întreg care este echivalent cu a (adică din clasa de echivalență a ) va avea ca invers orice element al clasei de echivalență x . Folosind notația pentru o clasă de echivalență care conține , afirmația de mai sus poate fi scrisă după cum urmează: elementul invers modulo o clasă de echivalență este o clasă de echivalență astfel încât

unde simbol înseamnă multiplicarea claselor de echivalență modulo m [2] . Acest tip de notaţie reprezintă un analog al conceptului obişnuit de număr invers în mulţimea numerelor raţionale sau reale , dacă înlocuim numerele cu clase de echivalenţă şi definim corect operaţiile binare .

Utilizarea fundamentală a acestei operații este de a rezolva o echivalență liniară de forma:

Găsirea inversului modular are aplicații practice în domeniul criptografiei , cum ar fi criptosistemul cu cheie publică și algoritmul RSA [3] [4] [5] . Avantajul implementării acestor aplicații este că există un algoritm foarte rapid (algoritmul lui Euclid extins ) care poate fi folosit pentru a calcula inversele modulare.

Aritmetică modulară

Pentru un număr pozitiv dat m , se spune că două numere întregi a și b sunt congruente modulo m dacă m împarte diferența lor. Această relație binară se notează ca

Aceasta este o relație de echivalență pe mulțimea numerelor întregi , iar clasele de echivalență sunt numite clase de reziduuri modulo m . Să notăm o clasă de echivalență care conține un număr întreg a [6] , atunci

Comparația liniară  este o comparație modulo a formei

Spre deosebire de ecuațiile liniare din numere întregi , o comparație liniară poate avea zero, una sau mai multe soluții. Dacă x este o soluție la o comparație liniară, atunci orice element al este și o soluție, deci atunci când vorbim despre numărul de soluții la o comparație liniară, ne referim la numărul de clase de echivalență diferite pe care le conțin aceste soluții.

Dacă d este cel mai mare divizor comun al lui a și m , atunci comparația liniară are soluții dacă și numai dacă d împarte b . Dacă d împarte b , atunci există exact d soluții [7] .

Modul reciprocă a unui număr întreg a modulo m  este soluția comparației liniare

S-a spus mai devreme că o soluție există dacă și numai dacă cel mai mare divizor comun al lui a și m este 1, adică a și m trebuie să fie numere prime relativ . Mai mult, dacă această condiție este îndeplinită, există exact o soluție, adică dacă există o soluție, inversul modular este unic [8] .

Dacă are o soluție, este adesea notat după cum urmează

totuși, acest lucru poate fi considerat un abuz de , deoarece poate fi interpretat greșit ca o reciprocă normală (care, spre deosebire de reciproca modulului, nu este un număr întreg decât atunci când a este 1 sau -1). Notația ar fi acceptabilă dacă a ar fi interpretată ca notație pentru clasa de reziduuri , deoarece elementul invers al clasei de reziduuri este din nou o clasă de reziduuri cu operația de înmulțire definită în secțiunea următoare.

Numerele întregi modulo m

Relația de echivalență modulo m împarte mulțimea de numere întregi în m clase de echivalență. Operațiile de adunare și înmulțire pot fi definite pe aceste obiecte astfel: pentru adunarea sau înmulțirea claselor de echivalență, mai întâi, reprezentanții acestor clase sunt selectați în orice mod, apoi operația obișnuită este efectuată asupra numerelor întregi selectate și, în final, rezultatul al operațiunii se află în clasa de reziduuri, care este rezultatul operației asupra claselor . În formă simbolică, cu și reprezentând operații pe clase de reziduuri, aceste definiții pot fi scrise ca

și

Aceste operațiuni sunt bine definite (ceea ce înseamnă că rezultatul final nu depinde de alegerea reprezentanților).

Clasele de reziduuri modulo m cu aceste două operații formează un inel , numit inel de numere întregi modulo m . Există mai multe notații utilizate pentru aceste entități algebrice, cea mai frecvent utilizată fiind sau , cu toate acestea, unele manuale și aplicații elementare folosesc notația simplificată, cu excepția cazului în care intră în conflict cu alte entități algebrice.

Clasele reziduale de numere întregi modulo m au fost cunoscute în mod tradițional ca clase de reziduuri mod m , reflectând faptul că toate elementele unei clase de echivalență au același rest atunci când sunt împărțite la m . Orice set de m numere întregi alese din diferite clase de reziduuri modulo m se numește sistem complet de resturi modulo m [9] . Împărțirea la o coloană arată că mulțimea numerelor întregi {0, 1, 2, ..., m − 1} formează un sistem complet de reziduuri modulo m , cunoscut sub numele de cel mai mic sistem de resturi modulo m . Când se lucrează cu probleme aritmetice, uneori este mai convenabil să se lucreze cu întregul sistem de reziduuri și să se folosească limbajul de echivalență, în timp ce în alte cazuri este mai convenabil să se uite în termeni de clase de echivalență inelă [10] .

Grupul multiplicativ al inelului rezidual

Nu fiecare element al sistemului complet de reziduuri modulo m are un element invers, de exemplu, zero nu are invers. După îndepărtarea elementelor sistemului complet de reziduuri care nu sunt relativ prime pentru m , elementele rămase, care se numesc sistemul redus de reziduuri , au toate inverse. Numărul de elemente din sistemul redus de reziduuri este , unde este funcția Euler , adică numărul de numere întregi pozitive mai mici decât m care sunt relativ prime pentru m .

Într -un inel cu o unitate generală, nu orice element are un invers , iar cei care o au se numesc inversabil . Deoarece produsul elementelor inversabile este inversabil, elementele inversabile ale unui inel formează un grup , grupul de elemente inversabile ale unui inel , iar acest grup este adesea notat ca și cum R ar fi numele unui inel. Grupul de elemente inversabile ale inelului de numere întregi modulo m se numește grupul multiplicativ de numere întregi modulo m și este izomorf la sistemul redus de reziduuri. În special, ordinea (dimensiunea) este .

Când m este prim , să spunem p , atunci toate elementele nenule au inverse și este atunci un câmp finit . În acest caz, grupul multiplicativ de numere întregi modulo p formează un grup ciclic de ordinul p − 1 .

Exemplu

Pentru a ilustra definițiile de mai sus, luați în considerare exemplul numerelor modulo 10.

Două numere sunt echivalente în 10 dacă și numai dacă diferența lor este divizibilă cu 10, de exemplu

deoarece 10 împarte 32 − 12 = 20, deoarece 10 împarte 111 − 1 = 110.

Unele dintre clasele de reziduuri pentru acest modulo sunt:

Comparația liniară nu are soluție deoarece numerele întregi congruente cu 5 (adică cele din ) sunt toate impare, în timp ce 4x sunt toate pare. Totuși, comparația liniară are două soluții și anume și . mcd(4, 10) = 2 și 2 nu împarte 5, ci împarte 6.

Deoarece gcd(3, 10) = 1, comparația liniară va avea soluții, adică va exista reciproca modulo a lui 3 modulo 10. 7 satisface această ecuație (21 − 1 = 20). Cu toate acestea, alte numere întregi satisfac această ecuație, cum ar fi 17 și −3 (deoarece 3(17) − 1 = 50 și 3(−3) − 1 = −10). În special, orice număr întreg din va satisface ecuația, deoarece aceste numere sunt de forma 7 + 10 r pentru unele r și este clar că

este divizibil cu 10. Această ecuație are doar o singură clasă de reziduuri ca soluții. Soluția în acest caz poate fi obținută pur și simplu prin enumerarea claselor posibile, dar sunt necesari algoritmi sistematici pentru a obține o soluție pentru module mari și vor fi prezentați în secțiunile următoare.

Produsul claselor de reziduuri și poate fi obținut prin alegerea unui element din , să zicem 25, și a unui element din , să zicem −2, iar produsul lor (25)(−2) = −50 este în clasa de echivalență . Astfel, . Adăugarea este definită într-un mod similar. Cele zece clase de reziduuri, împreună cu aceste operații de adunare și multiplicare a claselor de reziduuri, formează un inel de numere întregi modulo 10, adică .

Un sistem complet de reziduuri modulo 10 poate fi mulțimea {10, −9, 2, 13, 24, −15, 26, 37, 8, 9}, unde fiecare număr întreg aparține propriei sale clase de reziduuri modulo 10. Sistemul de reziduuri minime modulo 10 servește ca {0, 1, 2, ..., 9}. Sistemul redus de reziduuri modulo 10 poate fi {1, 3, 7, 9}. Produsul oricăror două clase de reziduuri reprezentate de aceste numere este din nou una dintre aceste patru clase. Rezultă că aceste patru clase de reziduuri formează un grup, în acest caz un grup ciclic de ordinul 4, având ca generator 3 sau 7. Clasele de reziduuri prezentate formează grupul de elemente inversabile ale inelului . Aceste clase de reziduuri sunt exact cele care au reciproce modulo.

Calcul

Algoritmul lui Euclid extins

Modul invers al unui modulo m poate fi găsit folosind algoritmul euclidian extins.

Algoritmul lui Euclid determină cel mai mare divizor comun (mcd) a două numere întregi, să spunem a și m . Dacă a are inversul modulo m , acest mcd trebuie să fie egal cu 1. Ultimele câteva egalități obținute în timpul funcționării algoritmului pot fi rezolvate pentru a găsi mcd. Apoi, folosind metoda „substituției inverse”, poate fi obținută o expresie care leagă parametrii originali și GCD. Cu alte cuvinte, pot fi găsite numere întregi x și y care satisfac egalitatea lui Bézout ,

Să-l rescriem după cum urmează

acesta este,

și se calculează reciproca modulo a lui a . O versiune mai eficientă este algoritmul Euclid extins, care reduce două treceri ale algoritmului (substituția înapoi poate fi considerată ca parcurgând algoritmul în ordine inversă) la una folosind egalități suplimentare.

În notația O mare, acest algoritm rulează în timp presupunând că , și este considerat a fi foarte rapid. Este de obicei mai eficient decât algoritmul exponențial alternativ.

Folosind teorema lui Euler

Ca o alternativă la algoritmul euclidian extins pentru calcularea elementului invers modular, se poate lua în considerare utilizarea teoremei lui Euler [11] .

Conform teoremei lui Euler , dacă a este relativ prim pentru m , adică mcd( a , m ) = 1, atunci

unde  este funcția Euler . Aceasta rezultă din faptul că a aparține grupului multiplicativ dacă și numai dacă a este relativ prim cu m . Deci inversul modular poate fi găsit direct:

În cazul special în care m este prim și inversul modular este dat de

Această metodă este, în general, mai lentă decât algoritmul Euclid extins, dar este uneori folosită dacă este deja disponibilă o implementare pentru exponențiarea modulară. Dezavantajele acestei metode:

Avantajul remarcabil al acestei tehnici este că nu există ramuri condiționate care să depindă de valoarea a , și, prin urmare, valoarea a , care poate fi un secret important în criptosistemele cu cheie publică , poate fi protejată de atacurile pe canalul lateral . Din acest motiv, implementarea standard a Curbei25519 folosește tehnica de calcul a elementului invers.

Calcularea inverselor multiple

Este posibil să se calculeze reciprocele mai multor numere modulo m folosind o trecere a algoritmului Euclid și trei înmulțiri pentru fiecare număr de intrare suplimentar [12] . Ideea de bază este de a forma toate , de a o inversa și apoi de a înmulți cu pentru toți , lăsând doar .

Algoritm (toată aritmetica se face modulo m ):

  1. Calculați produse cu prefix pentru toate .
  2. Calculați folosind orice algoritm disponibil.
  3. Pentru i de la n la 2 calculăm
    • și
    • .
  4. În cele din urmă, .

Este posibil să se implementeze înmulțirea sub forma unei structuri arborescente, mai degrabă decât una liniară, pentru a asigura paralelismul calculelor .

Aplicații

Căutarea inversului modular are multe aplicații în algoritmi bazați pe teoria aritmeticii modulare. De exemplu, în criptografie, utilizarea aritmeticii modulare permite ca unele operații să fie efectuate mai rapid și cu mai puține cerințe de memorie, în timp ce alte operațiuni devin mai dificil de efectuat [13] . Ambele proprietăți pot fi folosite definitiv. În special, în algoritmul RSA , criptarea și procesul invers de comunicare se realizează folosind o pereche de numere reciproce unul cu celălalt într-un modulo atent ales. Unul dintre aceste numere este făcut public și poate fi folosit în procedura de criptare rapidă, în timp ce celălalt număr este folosit în procedura de decriptare și nu este dezvăluit. Determinarea unei chei ascunse de la una publică este considerată o sarcină imposibilă, deoarece soluția ei necesită mai multă putere de calcul decât există pe Pământ, ceea ce protejează împotriva accesului neautorizat [14] .

Ca o altă utilizare într-un context diferit, luați în considerare problema diviziunii exacte în computere, în care vi se oferă o listă de numere impare de dimensiunea unui cuvânt de calculator, fiecare dintre ele divizibil cu k și trebuie să le împărțiți cu k . O soluție este următoarea:

  1. Folosim algoritmul euclidian extins pentru a calcula , inversul modular al lui , unde w este egal cu numărul de biți din cuvânt. Acest invers există, deoarece toate numerele sunt impare, iar reziduurile sunt considerate modulo, care nu are divizori impari.
  2. Înmulțim fiecare număr din listă cu și selectăm biții cei mai puțin semnificativi ai rezultatului (adică aruncăm toți biții din afara cuvântului computerului).

Pe multe mașini, în special pe cele fără suport hardware pentru divizare, diviziunea este o operațiune mai lentă decât înmulțirea, astfel încât această abordare poate duce la o creștere semnificativă a vitezei. Primul pas este relativ lent, dar trebuie făcut o singură dată.

reciprocele modulare sunt folosite pentru a obține o soluție la un sistem de comparații liniare, care este garantată de teorema chineză a restului .

De exemplu, sistemul

are o soluție generală deoarece 5, 7 și 11 sunt coprime perechi . Soluția este dată de formula

Unde

invers modular , invers modular , invers modular .

Apoi,

iar în forma dată

deoarece 385 este cel mai mic multiplu comun al lui 5, 7 și 11.

Inversul modular figurează proeminent în definiția sumelor Kloosterman .

Vezi și

Note

  1. Rosen, 1993 , p. 132.
  2. Schumacher, 1996 , p. 88.
  3. Stinson, 1995 , p. 124–128.
  4. Trappe, Washington, 2006 , p. 164-169.
  5. Moriarty, K.; Kaliski, B.; Jonsson, J.; Rusch, A. PKCS #1: Specificații de criptare RSA Versiunea 2.2 . Internet Engineering Task Force RFC 8017 . Grupul operativ de inginerie a internetului (2016). Preluat la 21 ianuarie 2017. Arhivat din original la 12 decembrie 2018.
  6. Alte notații sunt adesea folosite, inclusiv [ a ] ​​și [ a ] ​​m .
  7. Irlanda, Rosen, 1990 , p. 32.
  8. Shoup, 2005 , p. 15 Teorema 2.4.
  9. Rosen, 1993 , p. 121.
  10. Irlanda, Rosen, 1990 , p. 31.
  11. Koshy, 2007 , p. 346.
  12. Brent, Zimmermann, 2010 , p. 67–68.
  13. Trappe, Washington, 2006 , p. 167.
  14. Trappe, Washington, 2006 , p. 165.

Literatură

Link -uri