Inverzní modulo a celé číslo a je celé číslo x takové, že součin ax je shodný s 1 modulo m [1] . Ve standardní modulární aritmetické notaci je tato ekvivalence zapsána jako:
což je zkrácený způsob, jak říci, že m dělí (beze zbytku) hodnotu ax − 1 , nebo, jinak řečeno, zbytek, když je ax děleno celým číslem m , je 1. Jestliže a má inverzní modulo m , pak existuje nekonečný počet řešení této ekvivalence, která tvoří třídu zbytků pro tento modul. Navíc každé celé číslo, které je ekvivalentní a (tj. z třídy ekvivalence a ), bude mít jakýkoli prvek třídy ekvivalence x jako svou inverzní hodnotu. Použití notace pro třídu ekvivalence obsahující , lze výše uvedený příkaz zapsat takto: inverzní prvek modulo třída ekvivalence je třída ekvivalence taková, že
kde symbol znamená násobení tříd ekvivalence modulo m [2] . Tento druh zápisu představuje obdobu obvyklého pojetí inverzního čísla v množině racionálních nebo reálných čísel , pokud čísla nahradíme třídami ekvivalence a správně definujeme binární operace .
Základním použitím této operace je řešení lineární ekvivalence tvaru:
Nalezení modulární inverze má praktické aplikace v oblasti kryptografie , jako je kryptosystém s veřejným klíčem a algoritmus RSA [3] [4] [5] . Výhodou implementace těchto aplikací je, že existuje velmi rychlý algoritmus ( Extended Euclid's algorithm ), který lze použít k výpočtu modulárních inverzí.
Pro dané kladné číslo m se říká , že dvě celá čísla aab jsou shodná modulo m , jestliže m dělí jejich rozdíl. Tato binární relace je označena jako
Toto je vztah ekvivalence na množině celých čísel a třídy ekvivalence se nazývají zbytkové třídy modulo m . Označme tedy třídu ekvivalence obsahující celé číslo a [6 ]
Lineární srovnání je modulo porovnání formuláře
Na rozdíl od lineárních rovnic v celých číslech může mít lineární srovnání nula, jedno nebo více řešení. Je-li x řešením lineárního srovnání, pak je řešením i jakýkoli prvek z, takže když mluvíme o počtu řešení lineárního srovnání, máme na mysli počet různých tříd ekvivalence, které tato řešení obsahují.
Jestliže d je největší společný dělitel a a m , pak má lineární srovnání řešení právě tehdy, když d dělí b . Jestliže d dělí b , pak existuje právě d řešení [7] .
Modulo převrácená hodnota celého čísla a modulo m je řešením lineárního srovnání
Již dříve bylo řečeno, že řešení existuje právě tehdy, když největší společný dělitel a a m je 1, to znamená, že a a m musí být relativně prvočísla . Navíc, pokud je tato podmínka splněna, existuje právě jedno řešení, to znamená, že pokud řešení existuje, modulární inverze je jedinečná [8] .
Pokud má řešení, je často označováno následovně
nicméně, toto může být považováno za zneužití , jak to může být nesprávně interpretováno jako normální reciproká (která, na rozdíl od modulus reciproční, není celé číslo kromě když a je 1 nebo -1). Zápis by byl přijatelný, pokud by a bylo interpretováno jako zápis pro třídu zbytků , protože inverzní prvek třídy zbytků je opět třída zbytků s operací násobení definovanou v další části.
Relace ekvivalence modulo m rozděluje množinu celých čísel do tříd m ekvivalence. Operace sčítání a násobení lze na těchto objektech definovat následovně: pro sčítání nebo násobení tříd ekvivalence se nejprve libovolným způsobem vyberou zástupci těchto tříd, poté se s vybranými celými čísly provede obvyklá operace a nakonec výsledek operace leží ve třídě reziduí, která je výsledkem operace na třídách . V symbolické formě, s a reprezentující operace na třídách zbytků, lze tyto definice zapsat jako
a
Tyto operace jsou dobře definované (což znamená, že konečný výsledek nezávisí na výběru zástupců).
Třídy zbytků modulo m s těmito dvěma operacemi tvoří kruh , nazývaný kruh celých čísel modulo m . Pro tyto algebraické entity se používá několik zápisů, nejběžněji používané je nebo , nicméně některé základní učebnice a aplikace používají zjednodušený zápis, pokud není v rozporu s jinými algebraickými entitami.
Třídy zbytků celých čísel modulo m byly tradičně známé jako třídy zbytků mod m , což odráží skutečnost, že všechny prvky třídy ekvivalence mají stejný zbytek, když je děleno m . Libovolný soubor m celých čísel vybraných z různých tříd zbytků modulo m se nazývá úplný systém zbytků modulo m [9] . Dělení sloupcem ukazuje, že množina celých čísel {0, 1, 2, ..., m − 1} tvoří úplný systém zbytků modulo m , známý jako nejmenší systém zbytků modulo m . Při práci s aritmetickými problémy je někdy výhodnější pracovat s celým systémem reziduí a používat jazyk ekvivalence, zatímco v jiných případech je výhodnější hledat třídy ekvivalence kruhů [10] .
Ne každý prvek úplného systému zbytků modulo m má inverzní prvek, například nula nemá žádnou inverzní. Po odstranění prvků úplného systému zbytků, které nejsou relativně prvočíslo k m , mají všechny zbývající prvky, které se nazývají redukovaný systém zbytků , inverze. Počet prvků v redukovaném systému zbytků je , kde je Eulerova funkce , tj. počet kladných celých čísel menších než m , která jsou relativně prvočísla k m .
V kruhu s obecnou jednotkou nemá každý prvek inverzní , a ty, které ano, se nazývají invertibilní . Protože součin invertibilních prvků je invertibilní, tvoří invertibilní prvky prstenu skupinu , skupinu invertibilních prvků prstence , a tato skupina je často označována, jako by R bylo jméno prstenu. Skupina invertibilních prvků kruhu celých čísel modulo m se nazývá multiplikativní skupina celých čísel modulo m a je izomorfní k redukovanému systému zbytků. Zejména jeho pořadí (velikost) je .
Když m je prvočíslo , řekněme p , pak všechny nenulové prvky mají inverze a je to pak konečné pole . V tomto případě multiplikativní skupina celých čísel modulo p tvoří cyklickou skupinu řádu p − 1 .
Pro ilustraci výše uvedených definic zvažte příklad čísel modulo 10.
Dvě čísla jsou ekvivalentní v 10 právě tehdy, když je jejich rozdíl dělitelný například 10
protože 10 dělí 32 − 12 = 20, protože 10 dělí 111 − 1 = 110.Některé ze zbytkových tříd pro toto modulo jsou:
Lineární srovnání nemá řešení, protože celá čísla shodná s 5 (tj. čísla v ) jsou všechna lichá, zatímco 4x jsou všechna sudá. Lineární srovnání má však dvě řešení, a to a . gcd(4, 10) = 2 a 2 nedělí 5, ale dělí 6.
Protože gcd(3, 10) = 1, lineární srovnání bude mít řešení, to znamená, že modulo reciprokáza 3 modulo 10 bude existovat. 7 tuto rovnici splňuje (21 − 1 = 20). Tuto rovnici však splňují i jiná celá čísla, například 17 a −3 (protože 3(17) − 1 = 50 a 3(−3) − 1 = −10). Zejména jakékoli celé číslo od splní rovnici, protože tato čísla jsou ve tvaru 7 + 10 r pro nějaké r a je jasné, že
je dělitelná 10. Tato rovnice má pouze jednu třídu zbytků jako řešení. Řešení v tomto případě lze získat jednoduše výčtem možných tříd, ale k získání řešení pro velké moduly jsou zapotřebí systematické algoritmy, které budou uvedeny v následujících částech.
Součin tříd reziduí a lze získat výběrem prvku z řekněme 25 a prvku z řekněme −2 a jejich součin (25)(−2) = −50 je ve třídě ekvivalence . Tedy, . Sčítání je definováno podobným způsobem. Deset tříd zbytků spolu s těmito operacemi sčítání a násobení tříd zbytků tvoří kruh celých čísel modulo 10, tj . .
Kompletní systém zbytků modulo 10 může být množina {10, −9, 2, 13, 24, −15, 26, 37, 8, 9}, kde každé celé číslo patří do své vlastní třídy zbytků modulo 10. Systém minimálních zbytků modulo 10 slouží jako {0, 1, 2, ..., 9}. Redukovaný systém zbytků modulo 10 může být {1, 3, 7, 9}. Produkt jakýchkoli dvou tříd zbytků reprezentovaných těmito čísly je opět jednou z těchto čtyř tříd. Z toho vyplývá, že tyto čtyři třídy zbytků tvoří skupinu, v tomto případě cyklickou skupinu řádu 4, mající jako generátor 3 nebo 7. Uvedené třídy zbytků tvoří skupinu invertibilních prvků kruhu . Tyto třídy zbytků jsou přesně ty, které mají modulo reciprokály.
Modulo inverzní k modulo m lze nalézt pomocí rozšířeného Euklidova algoritmu.
Euklidův algoritmus určuje největšího společného dělitele (gcd) dvou celých čísel, řekněme a a m . Pokud a má inverzní modulo m , musí být toto gcd rovno 1. Posledních několik rovností získaných během operace algoritmu lze vyřešit k nalezení gcd. Potom pomocí metody "reverzní substituce" lze získat výraz spojující původní parametry a GCD. Jinými slovy, lze najít celá čísla x a y , která splňují Bézoutovu rovnost ,
Přepišme to následovně
to znamená,
a vypočítá se modulo reciproká hodnota a . Efektivnější verzí je rozšířený Euclidův algoritmus, který redukuje dva průchody algoritmem (zpětnou substituci lze považovat za průchod algoritmem v obráceném pořadí) na jeden s použitím dalších rovností.
V notaci velkého O tento algoritmus běží v čase za předpokladu, že , a je považován za velmi rychlý. Obvykle je účinnější než alternativní exponenciální algoritmus.
Jako alternativu k rozšířenému euklidovskému algoritmu pro výpočet modulárního inverzního prvku lze uvažovat o použití Eulerovy věty [11] .
Podle Eulerovy věty , je-li a relativně prvočíslo k m , tj. gcd( a , m ) = 1, pak
kde je Eulerova funkce . To vyplývá ze skutečnosti, že a patří do multiplikativní grupy právě tehdy, když a je relativně prvočíslo k m . Takže modulární inverze lze nalézt přímo:
Ve speciálním případě, kdy m je prvočíslo a modulární inverzní je dána pomocí
Tato metoda je obecně pomalejší než rozšířený Euclidův algoritmus, ale někdy se používá, pokud je již k dispozici implementace pro modulární umocňování. Nevýhody této metody:
Pozoruhodnou výhodou této techniky je to, že neexistují žádné podmíněné větve, které by závisely na hodnotě a , a proto hodnotu a , která může být důležitým tajemstvím v kryptosystémech s veřejným klíčem , lze chránit před útoky na postranní kanály . Z tohoto důvodu standardní implementace Curve25519 používá techniku výpočtu inverzních prvků.
Je možné vypočítat reciprokály několika čísel modulo m pomocí jednoho průchodu Euklidova algoritmu a tří násobení pro každé další vstupní číslo [12] . Základní myšlenkou je vytvořit all , obrátit to a pak vynásobit pro všechny a ponechat pouze .
Algoritmus (veškerá aritmetika se provádí modulo m ):
Je možné implementovat násobení ve formě stromové struktury spíše než lineární, aby byla zajištěna paralelnost výpočtů .
Hledání modulární inverze má mnoho aplikací v algoritmech založených na teorii modulární aritmetiky. Například v kryptografii umožňuje použití modulární aritmetiky některé operace provádět rychleji a s menšími nároky na paměť, zatímco jiné operace se stávají obtížněji proveditelné [13] . Obě tyto vlastnosti lze využít k dobru. Zejména v algoritmu RSA se šifrování a zpětný proces komunikace provádí pomocí dvojice vzájemně recipročních čísel v nějakém pečlivě zvoleném modulu. Jedno z těchto čísel je zveřejněno a lze jej použít v proceduře rychlého šifrování, zatímco druhé číslo se používá v proceduře dešifrování a není zveřejněno. Určení skrytého klíče od veřejného je považováno za nemožný úkol, protože jeho řešení vyžaduje větší výpočetní výkon než je na Zemi, což chrání před neoprávněným přístupem [14] .
Jako další použití v jiném kontextu zvažte problém přesného dělení v počítačích, kde dostanete seznam lichých čísel o velikosti slov, z nichž každé je dělitelné k , a musíte je vydělit k . Jedno řešení je následující:
Na mnoha strojích, zejména těch bez hardwarové podpory dělení, je dělení pomalejší operací než násobení, takže tento přístup může vést k výraznému zvýšení rychlosti. První krok je relativně pomalý, ale stačí ho udělat jednou.
Modulární reciprokály se používají k získání řešení systému lineárních srovnání, který je zaručen čínskou větou o zbytku .
Například systém
má obecné řešení, protože 5, 7 a 11 jsou párové coprime . Řešení je dáno vzorcem
kde
modulární zpětný chod , modulární zpětný chod , modulární zpětný chod .Pak,
a v dané podobě
protože 385 je nejmenší společný násobek 5, 7 a 11.
Modulární inverzní figuruje prominentně v definici Kloostermanových součtů .