Modulo reciproční číslo

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 20. dubna 2022; kontroly vyžadují 18 úprav .

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í.

Modulární aritmetika

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.

Celá čísla modulo m

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] .

Multiplikativní skupina zbytkového kruhu

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 .

Příklad

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.

Výpočet

Rozšířený Euklidův algoritmus

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.

Použití Eulerovy věty

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ů.

Výpočet více inverzí

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 ):

  1. Vypočítat produkty s předponou pro všechny .
  2. Počítejte pomocí libovolného dostupného algoritmu.
  3. Pro i od n do 2 počítáme
    • a
    • .
  4. Konečně, .

Je možné implementovat násobení ve formě stromové struktury spíše než lineární, aby byla zajištěna paralelnost výpočtů .

Aplikace

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í:

  1. K výpočtu používáme rozšířený euklidovský algoritmus , modulární inverzi , kde w se rovná počtu bitů ve slově. Tato konverzace existuje, protože všechna čísla jsou lichá a zbytky jsou považovány za modulo, které nemá žádné liché dělitele.
  2. Každé číslo v seznamu vynásobíme a vybereme nejméně významné bity výsledku (tj. všechny bity mimo slovo počítače zahodíme).

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ů .

Viz také

Poznámky

  1. Rosen, 1993 , str. 132.
  2. Schumacher, 1996 , s. 88.
  3. Stinson, 1995 , str. 124–128.
  4. Trappe, Washington, 2006 , s. 164-169.
  5. Moriarty, K.; Kaliski, B.; Jonsson, J.; Rusch, A. PKCS #1: Specifikace kryptografie RSA verze 2.2 . Internet Engineering Task Force RFC 8017 . Internet Engineering Task Force (2016). Staženo 21. 1. 2017. Archivováno z originálu 12. 12. 2018.
  6. Často se používají jiné zápisy, včetně [ a ] ​​​​a [ a ] ​​​​m .
  7. Irsko, Rosen, 1990 , s. 32.
  8. Shoup, 2005 , str. 15 Věta 2.4.
  9. Rosen, 1993 , str. 121.
  10. Irsko, Rosen, 1990 , s. 31.
  11. Koshy, 2007 , str. 346.
  12. Brent, Zimmermann, 2010 , s. 67–68.
  13. Trappe, Washington, 2006 , s. 167.
  14. Trappe, Washington, 2006 , s. 165.

Literatura

Odkazy