XTR (algoritme)

XTR (forkortelse for ECSTR - "Efficient and Compact Subgroup Trace Representation") er en offentlig nøglekrypteringsalgoritme baseret på beregningskompleksiteten af ​​det diskrete logaritmeproblem . Fordelene ved denne algoritme frem for andre, der bruger denne idé, er højere hastighed og mindre nøglestørrelse.

Denne algoritme bruger en generator af en relativt lille undergruppe af orden (  er enkel) af undergruppen . Med det korrekte valg af har den diskrete logaritme i gruppen genereret af , den samme beregningsmæssige kompleksitet som i . XTR bruger aritmetik i stedet for , hvilket giver den samme sikkerhed, men med mindre beregnings- og dataoverførselsomkostninger.

Teoretisk grundlag for XTR

Algoritmen arbejder i et begrænset felt . Overvej en gruppe af orden , og dens undergruppe af orden q , hvor p  er et primtal , således at et andet tilstrækkeligt stort primtal q er en divisor af . En gruppe af orden q kaldes en XTR-undergruppe. Denne cykliske gruppe er en undergruppe og har en generator g .

Aritmetiske operationer i

Lad p  være et primtal, således at p ≡ 2 mod 3 og p 2  - p + 1 er deleligt med et tilstrækkeligt stort primtal q . Da p 2 ≡ 1 mod 3 , genererer p . Således er det cirkulære polynomium irreducerbart i . Derfor danner rødderne og et optimalt normalgrundlag over og

Givet p ≡ 2 mod 3 :

Således er omkostningerne ved aritmetiske operationer som følger:

Brug af fodspor i

De konjugerede elementer af i er: sig selv og , og deres sum er sporet .

Udover:

Overvej generatoren af ​​en XTR-gruppe af orden , hvor  er et primtal. Da  er en undergruppe af ordensgruppen , så . Udover,

og

.

På denne måde

Bemærk også, at konjugatet til elementet er , dvs. har en norm lig med 1. Nøgletræk ved XTR er, at det minimale polynomium i

forenklet til

Med andre ord er de konjugerede elementer, som rødderne af det minimale polynomium i , fuldstændig bestemt af sporet . Lignende ræsonnement gælder for enhver grad :

— dette polynomium er defineret som følger .

Ideen med algoritmen er at erstatte med , altså beregne med i stedet for med. Men for at metoden skal være effektiv, en måde at hurtigt få ud af det tilgængelige .

Hurtig beregningsalgoritme ifølge [2]

Definition: For hver definerer vi:

Definition: Lad være  rødderne i , og . Angiv:

Egenskaber og :

  1. til
  2. til
  3. Enten har alle en rækkefølge, der er en divisor af og , eller  også er alle i feltet . Især  - er irreducerbar, hvis og kun hvis dens rødder har en orden, der er en divisor af og .
  4. bringe på banen hvis og kun hvis

Udtalelse: Lad .

  1. Beregningen kræver to produktoperationer på marken .
  2. Beregningen kræver fire produktoperationer på marken .
  3. Beregningen kræver fire produktoperationer på marken .
  4. Beregningen kræver fire produktoperationer på marken .

Definition: Lad .

Algoritme til beregning af givet og

og hvis ikke ulige og hvis lige. Lad os indstille og finde ved hjælp af Statement, og . Lad i fremtiden, hvor og . For at gøre følgende i rækkefølge:

I slutningen af ​​gentagelserne, og . Hvis n er lige, skal du bruge til at finde .

Valg af muligheder

Valg af felt og undergruppestørrelse

For at drage fordel af repræsentationen af ​​gruppeelementer i form af deres spor og sikre tilstrækkelig datasikkerhed, er det nødvendigt at finde enkle og , hvor  er karakteristikken for feltet , og , og  er størrelsen af ​​undergruppen og divisor . Angiv som og størrelserne og i bits. For at opnå det sikkerhedsniveau, som for eksempel RSA med en nøglelængde på 1024 bit giver, skal du vælge sådan, at , det vil sige a kan være omkring 160. Den første algoritme, der giver dig mulighed for at beregne sådanne primtal og  er Algoritme EN.

Algoritme A

  1. Lad os finde sådan, at tallet  er et primtal af længde i bit.
  2. Lad os finde sådan, at tallet  er et primtal af længdebit, såvel som .
Korrekthed af algoritme A: Det er kun nødvendigt at verificere det , da alle de resterende egenskaber naturligvis er opfyldt på grund af de særlige forhold ved valget af og . Det er let at se det betyder .

Algoritme A er meget hurtig, men kan være usikker, da den er sårbar over for et talfeltsigteangreb .

Den langsommere algoritme B er skånet for denne mangel.

Algoritme B

  1. Lad os vælge et primtal af længde i bit, sådan at .
  2. Lad os finde rødderne og .
  3. Lad os finde sådan, at , er et simpelt -bit tal og på samme tid for
Korrekthed af algoritme B: Så snart vi vælger , er betingelsen (Siden og ) automatisk opfyldt. Det følger af denne udtalelse og den kvadratiske lov om gensidighed , at rødderne eksisterer . For at kontrollere det , overvej igen for og bemærk, at . Derfor , og er rødder , og derfor .

Undergruppevalg

I det foregående afsnit fandt vi størrelserne af både det endelige felt og den multiplikative undergruppe i . Nu skal vi finde en undergruppe i for nogle sådan, at . Det er dog ikke nødvendigt at søge efter et eksplicit element , det er nok at finde et element sådan for elementet af orden . Men givet kan XTR-gruppegeneratoren findes ved at finde roden til . For at finde dette , overveje ejendom 5 . Når man har fundet en sådan , bør man tjekke, om den virkelig er i orden , men først skal man vælge c\in GF(p²), sådan at F(c,\ X) er irreducerbar. Den enkleste tilgang er at vælge tilfældigt.

Udsagn: For en tilfældigt valgt er sandsynligheden for, at  - er irreducerbar, større end 1/3.

Grundlæggende søgealgoritme :

  1. Lad os vælge en tilfældig .
  2. Hvis  - vi giver, vil vi vende tilbage til det første trin.
  3. Lad os bruge søgealgoritmen . Lad os finde .
  4. Hvis rækkefølgen ikke er lig med , vender vi tilbage til det første trin.
  5. Lad .

Denne algoritme beregner feltelementets ækvivalent for en eller anden rækkefølge . [en]

Eksempler

Diffie-Hellman Protocol

Antag, at Alice og Bob har en offentlig XTR-nøgle og ønsker at generere en delt privat nøgle .

  1. Alice vælger et tilfældigt tal , så , beregner det og sender det til Bob.
  2. Bob modtager fra Alice, vælger en tilfældig sådan, at , beregner og sender til Alice.
  3. Alice modtager fra Bob, beregner og modtager  - den private nøgle .
  4. På samme måde beregner og henter Bob  den private nøgle .

Ordning af ElGamal

Antag, at Alice har en del af den offentlige XTR-nøgle: . Alice vælger et hemmeligt heltal og beregner og udgiver . Givet Alices offentlige nøgle kan Bob kryptere meddelelsen, der er bestemt til Alice ved hjælp af følgende algoritme:

  1. Bob vælger en tilfældig og beregner .
  2. Bob regner så ud .
  3. Bob definerer en symmetrisk nøgle baseret på .
  4. Bob krypterer beskeden med nøglen og modtager den krypterede besked .
  5. Bob sender et par til Alice.

Efter at have modtaget et par , dekrypterer Alice det som følger:

  1. Alice beregner .
  2. Alice definerer en symmetrisk nøgle baseret på .
  3. Ved at vide, at meddelelseskrypteringsalgoritmen er symmetrisk, dekrypterer Alice med nøglen og modtager den originale meddelelse .

Dermed sendes beskeden.

Noter

  1. 1 2 Lenstra, Arjen K.; Verheul, Eric R. En oversigt over XTR offentlige nøglesystem  (indef.) . Arkiveret fra originalen den 15. april 2006.
  2. Lenstra, Arjen K.; Verheul, Eric R. XTR offentlige nøglesystem  (ubestemt) .