Coppersmithův teorém ( Coppersmithova metoda) je teorém, který vám umožní efektivně najít všechny nuly normalizovaných polynomů modulo určité hodnoty. [jeden]
Věta se používá především pro útoky na kryptosystém RSA . Tato metoda je účinná, pokud je exponent kódování dostatečně malý nebo pokud je známa část tajného klíče . Tato věta také souvisí s algoritmem LLL .
Věta navrhuje algoritmus pro efektivní nalezení kořenů normalizovaného polynomu modulo , které jsou menší než . Pokud je malý, algoritmus poběží rychleji. Výhodou věty je schopnost najít malé kořeny polynomu modulo . Pokud je modul prvočíslo, pak nemá smysl používat Coppersmithovu větu . Mnohem efektivnější bude použít jiné způsoby, jak najít kořeny polynomu. [jeden]
Pro zkrácení doby šifrování nebo ověřování podpisu je žádoucí použít malý (exponent kódování). Nejmenší možná hodnota je , ale doporučuje se používat (pro ochranu před některými útoky). Při použití hodnoty , je k ověření podpisu potřeba 17 násobení ( , kde je pořadí multiplikativní skupiny , možná asi 1000). Útoky zaměřené na použití malých nejsou vždy účinné.
Nejsilnější útoky na malý exponent kódování jsou založeny na Coppersmithově teorému , který má mnoho aplikací, z nichž jednou je útok Hasted. [2]
Předpokládejme, že jeden odesílatel pošle stejnou zprávu v zašifrované podobě určitému počtu lidí , z nichž každý používá stejný malý exponent kódování , řekněme , a různé páry a . Odesílatel zašifruje zprávu pomocí veřejného klíče každého uživatele a odešle ji příslušnému příjemci. Poté, pokud protivník naslouchá přenosovému kanálu a shromažďuje přenášené šifrové texty , bude schopen obnovit zprávu .
DůkazPředpokládejme, že nepřítel byl zachycen a kde . Předpokládáme, že jsou relativně prvočísla , jinak největší společný dělitel jiný než jednota znamenal nalezení dělitele jednoho z . Aplikováním čínské věty o zbytku na a dostaneme takové, že , který má hodnotu . Když to však víme , dostáváme . To znamená , že protivník může dešifrovat zprávu tím , že vezme krychli z .
Pro obnovení zprávy s libovolnou hodnotou exponentu otevřeného kódování je nutné, aby protivník zachytil šifrové texty .
Dovolit a být normalizovaný polynom stupně . Nechte ,. _ Útočník pak s daným párem efektivně najde všechna celá čísla vyhovující . Doba provádění je určena provedením algoritmu LLL na mřížce dimenzí , kde . [jeden]
Nechť je přirozené číslo , které budeme definovat později. Pojďme definovat
Polynomy používáme pro a jako základ naší mřížky . Například když a dostaneme mřížkovou matici rozloženou po řádcích:
,
kde "—" označuje nenulové mimodiagonální prvky, jejichž hodnota neovlivňuje determinant . Velikost této mřížky je a její determinant se vypočítá takto:
To vyžadujeme . z toho vyplývá
které lze zjednodušit
,
kde a pro všechny . Pokud vezmeme , pak dostaneme a, tedy a . Konkrétně, pokud chceme řešit pro libovolný , postačí vzít , kde . [3]