XTR (prescurtare de la ECSTR - „Efficient and Compact Subgroup Trace Representation”) este un algoritm de criptare cu cheie publică bazat pe complexitatea de calcul a problemei logaritmului discret . Avantajele acestui algoritm față de alții care folosesc această idee sunt viteza mai mare și dimensiunea mai mică a tastei.
Acest algoritm folosește un generator al unui subgrup relativ mic de ordin ( este simplu) al subgrupului . Cu alegerea corectă a , logaritmul discret din grupul generat de , are aceeași complexitate de calcul ca și în . XTR folosește aritmetica în loc de , oferind aceeași securitate, dar cu mai puține cheltuieli de calcul și transfer de date.
Algoritmul funcționează într-un câmp finit . Considerăm un grup de ordin și subgrupul său de ordin q , unde p este un număr prim , astfel încât un alt număr prim suficient de mare q este un divizor al lui . Un grup de ordinul q se numește subgrup XTR. Acest grup ciclic este un subgrup și are un generator g .
Fie p un număr prim astfel încât p ≡ 2 mod 3 și p 2 - p + 1 este divizibil cu un prim suficient de mare q . Deoarece p 2 ≡ 1 mod 3 , p generează . Astfel, polinomul circular este ireductibil în . Prin urmare, rădăcinile și formează o bază normală optimă peste și
Dat p ≡ 2 mod 3 :
Astfel, costul operațiilor aritmetice este după cum urmează:
Elementele conjugate ale lui în sunt: sine și , iar suma lor este urma .
In afara de asta:
Luați în considerare generatorul unui grup XTR de ordin , unde este un număr prim. Deoarece este un subgrup al grupului de ordine , atunci . In afara de asta,
și
.În acest fel,
Rețineți, de asemenea, că conjugatul cu elementul este , adică are o normă egală cu 1. Caracteristica cheie a XTR este că polinomul minim din
simplificat la
Cu alte cuvinte, elementele conjugate , ca rădăcinile polinomului minim în , sunt complet determinate de urma . Raționament similar este valabil pentru orice grad :
— acest polinom este definit după cum urmează .
Ideea algoritmului este să înlocuiască cu , adică să se calculeze cu în loc de cu. Cu toate acestea, pentru ca metoda să fie eficientă, o modalitate de a obține rapid din disponibilul .
Definiție: Pentru fiecare definim:
Definiție: Fie rădăcinile în , și . Denota:
Proprietăți și :
Afirmație: Să .
Definiție: Fie .
La sfârșitul iterațiilor , și . Dacă n este par, folosiți pentru a găsi .
Pentru a profita de reprezentarea elementelor grupului sub forma urmelor lor și pentru a asigura o securitate suficientă a datelor, este necesar să găsiți simplu și , unde este caracteristica câmpului , și , și este dimensiunea subgrupului și divizorului . Notați ca și dimensiunile și în biți. Pentru a atinge nivelul de securitate pe care îl oferă, de exemplu, RSA cu o lungime a cheii de 1024 de biți, trebuie să alegeți astfel încât , adică a poate fi de aproximativ 160. Primul algoritm care vă permite să calculați astfel de prime și este algoritmul A.
Algoritmul A
Algoritmul A este foarte rapid, dar poate fi nesigur, deoarece este vulnerabil la un atac cu sită de câmp numeric .
Algoritmul B mai lent este ferit de acest neajuns.
Algoritmul B
În secțiunea anterioară, am găsit dimensiunile atât ale câmpului final, cât și ale subgrupului multiplicativ în . Acum trebuie să găsim un subgrup pentru unii astfel încât . Cu toate acestea, nu este necesar să căutați un element explicit , este suficient să găsiți un element astfel încât pentru elementul de ordine . Dar dat fiind, generatorul de grup XTR poate fi găsit prin găsirea rădăcinii lui . Pentru a găsi aceasta , luați în considerare proprietatea 5 . După ce am găsit astfel de , ar trebui să verificați dacă este într-adevăr de ordine , dar mai întâi trebuie să alegeți c\in GF(p²), astfel încât F(c,\ X) să fie ireductibil. Cea mai simplă abordare este să alegeți la întâmplare.
Afirmație: Pentru una aleasă aleatoriu , probabilitatea ca - să fie ireductibil este mai mare de 1/3.
Algoritm de căutare de bază :
Acest algoritm calculează echivalentul elementului de câmp pentru o anumită ordine . [unu]
Să presupunem că Alice și Bob au o cheie publică XTR și doresc să genereze o cheie privată partajată .
Să presupunem că Alice are o parte din cheia publică XTR: . Alice alege un întreg secret și calculează și publică . Având în vedere cheia publică a lui Alice , Bob poate cripta mesajul destinat lui Alice utilizând următorul algoritm:
După ce a primit o pereche , Alice o decriptează după cum urmează:
Astfel, mesajul este transmis.