XTR (algoritm)

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.

Baza teoretică a XTR

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 .

Operații aritmetice în

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

Utilizarea amprentelor în

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 .

Algoritm de calcul rapid conform [2]

Definiție: Pentru fiecare definim:

Definiție: Fie  rădăcinile în , și . Denota:

Proprietăți și :

  1. pentru
  2. pentru
  3. Fie toate au un ordin care este un divizor al lui și , fie toate  sunt în câmp . În special,  - este ireductibil dacă și numai dacă rădăcinile sale au un ordin care este un divizor al lui și .
  4. aduce pe teren dacă și numai dacă

Afirmație: Să .

  1. Calculul necesită două operațiuni de produs pe teren .
  2. Calculul necesită patru operațiuni de produs pe teren .
  3. Calculul necesită patru operațiuni de produs pe teren .
  4. Calculul necesită patru operațiuni de produs pe teren .

Definiție: Fie .

Algoritm pentru calculul dat și

iar dacă nu impar și dacă par. Să setăm și să găsim folosind Statement și . Să, în viitor, unde si . Pentru a face următoarele în secvență:

La sfârșitul iterațiilor , și . Dacă n este par, folosiți pentru a găsi .

Alegerea opțiunilor

Alegerea câmpului și a mărimii subgrupului

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

  1. Să găsim astfel încât numărul să  fie un număr prim de lungime în biți.
  2. Să găsim astfel încât numărul să  fie un număr prim de biți de lungime , precum și .
Corectitudinea algoritmului A: Este necesar doar să verificăm că , deoarece toate proprietățile rămase sunt în mod evident satisfăcute datorită specificului alegerii și . Este ușor de văzut că înseamnă .

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

  1. Să alegem un număr prim de lungime în biți, astfel încât .
  2. Să găsim rădăcinile și .
  3. Să găsim astfel încât , este un număr simplu de biți și, în același timp, pentru
Corectitudinea algoritmului B: De îndată ce alegem , condiția (Deoarece și ) este îndeplinită automat. Din această afirmație și din legea pătratică a reciprocității rezultă că rădăcinile există . Pentru a verifica acest lucru , luați în considerare din nou pentru și rețineți că . Prin urmare , și sunt rădăcini și, prin urmare, .

Selectarea subgrupului

Î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ă :

  1. Să alegem unul la întâmplare .
  2. Dacă  – dăm, vom reveni la primul pas.
  3. Să folosim algoritmul de căutare . Să găsim .
  4. Dacă ordinea nu este egală cu , revenim la primul pas.
  5. Lasă .

Acest algoritm calculează echivalentul elementului de câmp pentru o anumită ordine . [unu]

Exemple

Protocolul Diffie-Hellman

Să presupunem că Alice și Bob au o cheie publică XTR și doresc să genereze o cheie privată partajată .

  1. Alice alege un număr aleatoriu astfel încât , îl calculează și îl trimite lui Bob.
  2. Bob primește de la Alice, alege o aleatorie astfel încât , calculează și trimite lui Alice.
  3. Alice primește de la Bob, calculează și primește  - cheia privată .
  4. În același mod, Bob calculează și obține  cheia privată .

Schema lui ElGamal

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:

  1. Bob alege unul aleator și calculează .
  2. Bob calculează apoi .
  3. Bob definește o cheie simetrică pe baza .
  4. Bob criptează mesajul cu cheia , primind mesajul criptat .
  5. Bob îi trimite un cuplu lui Alice.

După ce a primit o pereche , Alice o decriptează după cum urmează:

  1. calculează Alice .
  2. Alice definește o cheie simetrică bazată pe .
  3. Știind că algoritmul de criptare a mesajelor este simetric, Alice decriptează cu cheia , primind mesajul original .

Astfel, mesajul este transmis.

Note

  1. 1 2 Lenstra, Arjen K.; Verheul, Eric R. O prezentare generală a sistemului de chei publice XTR  (indef.) . Arhivat din original pe 15 aprilie 2006.
  2. Lenstra, Arjen K.; Verheul, Eric R. Sistemul de cheie publică XTR  (nedefinită) .