A Coppersmith -tétel ( Coppersmith - módszer) egy olyan tétel, amely lehetővé teszi, hogy hatékonyan megtalálja a normalizált polinomok összes nulláját egy bizonyos érték függvényében. [egy]
A tételt főleg az RSA kriptorendszer elleni támadásokra használják . Ez a módszer akkor hatékony, ha a kódolási kitevő elég kicsi, vagy ha a titkos kulcs egy része ismert . A tétel az LLL algoritmushoz is kapcsolódik .
A tétel egy algoritmust javasol egy normalizált polinom modulo gyökeinek hatékony megtalálására , amelyek kisebbek, mint . Ha kicsi, akkor az algoritmus gyorsabban fog futni. A tétel előnye, hogy képes megtalálni egy polinom modulo kis gyökét . Ha a modulus egy prímszám, akkor nincs értelme a Coppersmith -tételt használni . Sokkal hatékonyabb lesz más módszereket használni a polinomok gyökereinek megtalálására. [egy]
A titkosítási vagy aláírás-ellenőrzési idő csökkentése érdekében kívánatos kis (kódoló kitevő) használata. A lehető legkisebb érték a , de használata javasolt (egyes támadások elleni védelem érdekében). Az érték használatakor 17 szorzás szükséges az aláírás ellenőrzéséhez ( , ahol a szorzócsoport sorrendje , talán körülbelül 1000). A kicsi használatára összpontosító támadások nem mindig hatékonyak.
A kis kódoló kitevő elleni legerősebb támadások Coppersmith tételén alapulnak , amelynek számos alkalmazása van, ezek közül az egyik a Hasted támadás. [2]
Tegyük fel, hogy egy feladó ugyanazt az üzenetet titkosított formában küldi el bizonyos számú embernek , akik mindegyike ugyanazt a kis kódolási kitevőt használja , mondjuk , és különböző párokat , és . A feladó titkosítja az üzenetet az egyes felhasználók nyilvános kulcsával, és elküldi a megfelelő címzettnek. Ezután, ha az ellenfél hallgatja az átviteli csatornát, és összegyűjti a továbbított titkosított szövegeket , akkor képes lesz visszaállítani az üzenetet .
BizonyításTegyük fel, hogy az ellenség elfogta , és ahol . Feltételezzük, hogy ezek viszonylag prímszámúak , különben az egységen kívüli legnagyobb közös osztó az egyik osztójának megtalálását jelentette . Ha a kínai maradéktételt alkalmazzuk a -ra , és azt kapjuk , hogy , amelynek értéke van . Ennek ismeretében azonban megkapjuk . Ez azt jelenti , hogy az ellenfél visszafejtheti az üzenetet a kockagyökért .
A nyílt kódolású kitevő tetszőleges értékével rendelkező üzenet helyreállításához szükséges, hogy az ellenfél elfogja a rejtjelezett szövegeket .
Legyen és egy fokú normalizált polinom . Hagyjuk , . Ezután a pár adott esetben a támadó minden egész számot kielégítőnek talál . A végrehajtási időt az LLL algoritmus végrehajtása határozza meg egy dimenziós rácson , ahol . [egy]
Legyen természetes szám , amelyet később definiálunk. Határozzuk meg
A polinomokat használjuk rácsunk alapjául . Például amikor és kapunk egy rácsmátrixot , amely sorokra feszül:
,
ahol a "-" nem nullától eltérő átlós elemeket jelöl, amelyek értéke nem befolyásolja a determinánst . Ennek a rácsnak a mérete , és a determinánsát a következőképpen számítjuk ki:
Ezt megköveteljük . ez azt jelenti
amelyre leegyszerűsíthető
,
hol és mindenért . Ha vesszük , akkor egy, tehát, és . Különösen, ha egy tetszőleges -t akarunk megoldani , akkor elegendő a , ahol . [3]