XTR (algoritm)

XTR (förkortning för ECSTR - "Efficient and Compact Subgroup Trace Representation") är en krypteringsalgoritm för offentlig nyckel som är baserad på beräkningskomplexiteten hos det diskreta logaritmproblemet . Fördelarna med denna algoritm jämfört med andra som använder denna idé är högre hastighet och mindre nyckelstorlek.

Denna algoritm använder en generator av en relativt liten undergrupp av ordning (  är enkel) av undergruppen . Med rätt val av har den diskreta logaritmen i gruppen som genereras av , samma beräkningskomplexitet som i . XTR använder aritmetik istället för , vilket ger samma säkerhet, men med mindre beräknings- och dataöverföringskostnader.

Teoretisk grund för XTR

Algoritmen fungerar i ett ändligt fält . Betrakta en grupp av ordning , och dess undergrupp av ordning q , där p  är ett primtal , så att ett annat tillräckligt stort primtal q är en divisor av . En grupp av ordningen q kallas en XTR-undergrupp. Denna cykliska grupp är en undergrupp och har en generator g .

Aritmetiska operationer i

Låt p  vara ett primtal så att p ≡ 2 mod 3 och p 2  - p + 1 är delbart med ett tillräckligt stort primtal q . Eftersom p 2 ≡ 1 mod 3 genererar p . _ Således är det cirkulära polynomet irreducible i . Därför rötterna och bildar en optimal normal grund över och

Givet p ≡ 2 mod 3 :

Således är kostnaden för aritmetiska operationer som följer:

Användning av fotspår i

De konjugerade elementen i i är: sig själv och , och deras summa är spåret .

Förutom:

Betrakta generatorn av en XTR-grupp av ordning , där  är ett primtal. Eftersom  är en undergrupp till gruppen av ordning , alltså . Förutom,

och

.

På det här sättet,

Observera också att konjugatet till elementet är , det vill säga har en norm lika med 1. Nyckelegenskapen för XTR är att det minimala polynomet i

förenklat till

Med andra ord, de konjugerade elementen, som rötterna till det minimala polynomet i , bestäms helt av spåret . Liknande resonemang gäller för vilken grad som helst :

— detta polynom definieras enligt följande .

Tanken med algoritmen är att ersätta med , det vill säga beräkna med istället för med. Men för att metoden ska vara effektiv, ett sätt att snabbt få ut från det tillgängliga .

Snabb beräkningsalgoritm enligt [2]

Definition: För varje definierar vi:

Definition: Låt vara  rötterna i , och . Beteckna:

Egenskaper och :

  1. för
  2. för
  3. Antingen har alla en ordning som är en divisor av och eller så  är alla i fältet . I synnerhet är  - irreducerbar om och endast om dess rötter har en ordning som är en divisor av och .
  4. ta med till fältet om och bara om

Uttalande: Låt .

  1. Beräkningen kräver två produktoperationer på fältet .
  2. Beräkningen kräver fyra produktoperationer på fältet .
  3. Beräkningen kräver fyra produktoperationer på fältet .
  4. Beräkningen kräver fyra produktoperationer på fältet .

Definition: Låt .

Algoritm för beräkning av given och

och om inte udda och om jämnt. Låt oss ställa in och hitta med hjälp av Statement och . Låt i framtiden, var och . För att göra följande i följd:

I slutet av iterationerna , och . Om n är jämnt, använd för att hitta .

Val av alternativ

Val av fält och undergruppsstorlek

För att dra fördel av representationen av gruppelement i form av deras spår och säkerställa tillräcklig datasäkerhet, är det nödvändigt att hitta enkla och , där  är kännetecknet för fältet , och , och  är storleken på undergruppen och divisor . Ange som och storlekarna och i bitar. För att uppnå den säkerhetsnivå som till exempel RSA med en nyckellängd på 1024 bitar ger måste du välja sådan att , det vill säga a kan vara cirka 160. Den första algoritmen som låter dig beräkna sådana primtal och  är Algoritm A.

Algoritm A

  1. Låt oss hitta sådana att talet  är ett primtal av längden i bitar.
  2. Låt oss hitta sådana att talet  är ett primtal av längdbitar, liksom .
Korrekthet av Algoritm A: Det är bara nödvändigt att verifiera det , eftersom alla återstående egenskaper uppenbarligen är uppfyllda på grund av detaljerna i valet av och . Det är lätt att se att , betyder .

Algoritm A är mycket snabb, men kan vara osäker, eftersom den är sårbar för en sifferfältsattack .

Den långsammare algoritmen B är skonad från denna brist.

Algoritm B

  1. Låt oss välja ett primtal för längden i bitar, så att .
  2. Låt oss hitta rötterna och .
  3. Låt oss hitta sådant att , är ett enkelt -bittal och samtidigt för
Korrekthet av algoritm B: Så snart vi väljer är villkoret (Sedan och ) automatiskt uppfyllt. Det följer av detta uttalande och den kvadratiska lagen om ömsesidighet att rötterna finns . För att kontrollera att , överväg igen för och notera att . Därför och är rötter och därför .

Val av undergrupp

I föregående avsnitt hittade vi storlekarna på både det sista fältet och den multiplikativa undergruppen i . Nu måste vi hitta en undergrupp för några sådana som . Det är dock inte nödvändigt att söka efter ett explicit element , det räcker att hitta ett element så att för elementet ordning . Men givet kan XTR-gruppgeneratorn hittas genom att hitta roten till . För att hitta detta , överväg egenskap 5 . Efter att ha hittat en sådan bör man kontrollera om den verkligen är i sin ordning , men först måste man välja c\in GF(p²), så att F(c,\ X) är irreducerbar. Det enklaste sättet är att välja slumpmässigt.

Påstående: För en slumpmässigt vald är sannolikheten att  - är irreducerbar större än 1/3.

Grundläggande sökalgoritm :

  1. Låt oss välja en slumpmässig .
  2. Om  - vi ger, kommer vi tillbaka till det första steget.
  3. Låt oss använda sökalgoritmen . Låt oss hitta .
  4. Om ordningen inte är lika med , återgår vi till det första steget.
  5. Låt .

Denna algoritm beräknar fältelementets ekvivalent för någon ordning . [ett]

Exempel

Diffie-Hellman Protocol

Anta att Alice och Bob har en offentlig XTR-nyckel och vill generera en delad privat nyckel .

  1. Alice väljer ett slumpmässigt tal så att , beräknar det och skickar det till Bob.
  2. Bob tar emot från Alice, väljer en slumpmässig sådan att , beräknar och skickar till Alice.
  3. Alice tar emot från Bob, beräknar och tar emot  - den privata nyckeln .
  4. På samma sätt beräknar och erhåller Bob  den privata nyckeln .

Schema för ElGamal

Anta att Alice har en del av den publika XTR-nyckeln: . Alice väljer ett hemligt heltal och beräknar och publicerar . Med tanke på Alices publika nyckel kan Bob kryptera meddelandet som är avsett för Alice med hjälp av följande algoritm:

  1. Bob väljer en slumpmässig och beräknar .
  2. Bob räknar sedan ut .
  3. Bob definierar en symmetrisk nyckel baserat på .
  4. Bob krypterar meddelandet med nyckeln och tar emot det krypterade meddelandet .
  5. Bob skickar ett par till Alice.

Efter att ha fått ett par , dekrypterar Alice det enligt följande:

  1. Alice räknar ut .
  2. Alice definierar en symmetrisk nyckel baserad på .
  3. Eftersom Alice vet att meddelandekrypteringsalgoritmen är symmetrisk, dekrypterar Alice med nyckeln och tar emot det ursprungliga meddelandet .

Sålunda sänds meddelandet.

Anteckningar

  1. 1 2 Lenstra, Arjen K.; Verheul, Eric R. En översikt av XTR:s publika nyckelsystem  (indef.) . Arkiverad från originalet den 15 april 2006.
  2. Lenstra, Arjen K.; Verheul, Eric R. XTR:s publika nyckelsystem  (obestämd) .