XTR (algoritmus)

XTR (zkratka pro ECSTR - "Efficient and Compact Subgroup Trace Representation") je šifrovací algoritmus veřejného klíče založený na výpočetní složitosti problému diskrétního logaritmu . Výhody tohoto algoritmu oproti ostatním využívajícím tuto myšlenku jsou vyšší rychlost a menší velikost klíče.

Tento algoritmus využívá generátor relativně malé podskupiny řádu (  je jednoduchý) podskupiny . Při správné volbě , má diskrétní logaritmus ve skupině generované , stejnou výpočetní složitost jako v . XTR používá aritmetiku místo , poskytuje stejné zabezpečení, ale s menší režií na výpočty a přenos dat.

Teoretický základ XTR

Algoritmus pracuje v konečném poli . Uvažujme skupinu řádu a jeho podgrupu řádu q , kde p  je prvočíslo , takže další dostatečně velké prvočíslo q je dělitelem . Skupina řádu q se nazývá XTR-podskupina. Tato cyklická skupina je podskupinou a má generátor g .

Aritmetické operace v

Nechť p  je prvočíslo takové, že p ≡ 2 mod 3 a p 2  - p + 1 je dělitelné dostatečně velkým prvočíslem q . Protože p 2 ≡ 1 mod 3 , p generuje . Kruhový polynom je tedy v . Proto kořeny a tvoří optimální normální základ přes a

Dané p ≡ 2 mod 3 :

Náklady na aritmetické operace jsou tedy následující:

Použití stop v

Konjugované prvky in jsou: sebe a , a jejich součet je stopa .

Kromě:

Uvažujme generátor XTR-skupiny řádu , kde  je prvočíslo. Protože  je podskupinou skupiny řádu , pak . Kromě,

a

.

Takto,

Všimněte si také, že konjugát k prvku je , to znamená, že má normu rovnou 1. Klíčovým rysem XTR je, že minimální polynom v

zjednodušené na

Jinými slovy, konjugované prvky, jako kořeny minimálního polynomu v , jsou zcela určeny stopou . Podobné úvahy platí pro jakýkoli stupeň :

— tento polynom je definován následovně .

Myšlenkou algoritmu je nahradit za , to znamená vypočítat podle namísto podle. Aby však byla metoda efektivní, způsob, jak rychle získat z dostupných .

Rychlý výpočetní algoritmus podle [2]

Definice: Pro každý definujeme:

Definice: Nechť jsou  kořeny v , a . Označit:

Vlastnosti a :

  1. pro
  2. pro
  3. Buď mají všechny řád, který je dělitelem a , nebo  jsou všechny v poli . Zejména  - je neredukovatelné tehdy a pouze tehdy, když jeho kořeny mají řád, který je dělitelem a .
  4. přinést do pole tehdy a jen tehdy

Prohlášení: Nechte .

  1. Výpočet vyžaduje dvě operace produktu na poli .
  2. Výpočet vyžaduje čtyři operace produktu na poli .
  3. Výpočet vyžaduje čtyři operace produktu na poli .
  4. Výpočet vyžaduje čtyři operace produktu na poli .

Definice: Nechat .

Algoritmus pro výpočet daných a

a není-li liché a pokud sudé. Pojďme nastavit a najít pomocí Statement a . Ať v budoucnu kde a . Postupně postupujte takto :

Na konci iterací jsou , a . Pokud je n sudé, použijte k nalezení .

Výběr možností

Volba velikosti pole a podskupiny

Pro využití reprezentace prvků skupiny v podobě jejich tras a zajištění dostatečné bezpečnosti dat je nutné najít jednoduché a , kde  je charakteristika pole , a , a  je velikost podskupiny a dělitele . Označte jako a velikosti a v bitech. Chcete-li dosáhnout úrovně zabezpečení, kterou poskytuje například RSA s délkou klíče 1024 bitů, musíte zvolit takovou , že , tedy a může být přibližně 160. První algoritmus, který umožňuje vypočítat taková prvočísla a  je Algoritmus A.

Algoritmus A

  1. Pojďme najít takové, že číslo  je prvočíslo délky v bitech.
  2. Pojďme najít takové, že číslo  je prvočíslo bitů délky, stejně jako .
Správnost algoritmu A: Je třeba pouze ověřit , že vzhledem ke specifikům výběru a jsou zjevně splněny všechny zbývající vlastnosti . Je snadné to vidět , znamená .

Algoritmus A je velmi rychlý, ale může být nejistý, protože je zranitelný vůči útokům typu field sieve .

Pomalejší Algoritmus B je tohoto nedostatku ušetřen.

Algoritmus B

  1. Zvolme prvočíslo délky v bitech, takové, že .
  2. Pojďme najít kořeny a .
  3. Najdeme takové, že , je jednoduché -bitové číslo a zároveň for
Správnost algoritmu B: Jakmile zvolíme , je automaticky splněna podmínka (Od a ). Z tohoto tvrzení a kvadratického zákona reciprocity vyplývá, že kořeny existují . Chcete-li zkontrolovat, že , zvažte znovu pro a poznamenejte si, že . Proto , a jsou kořeny , a tedy .

Výběr podskupiny

V předchozí části jsme našli velikosti jak konečného pole , tak multiplikativní podskupiny v . Nyní musíme najít podskupinu pro některé takové, že . Není však nutné hledat explicitní prvek , stačí najít prvek takový, že pro prvek objednávky . Ale vzhledem k tomu , generátor skupiny XTR lze nalézt nalezením kořene . Chcete-li to zjistit , zvažte vlastnost 5 . Po nalezení takového je třeba zkontrolovat, zda je skutečně v pořádku , ale nejprve je třeba zvolit c\in GF(p²), takže F(c,\ X) je ireducibilní. Nejjednodušší způsob je vybrat náhodně.

Tvrzení: U náhodně vybraného je pravděpodobnost, že  - je neredukovatelné, větší než 1/3.

Základní vyhledávací algoritmus :

  1. Vyberme si náhodný .
  2. Pokud  – dáme, vrátíme se k prvnímu kroku.
  3. Použijme vyhledávací algoritmus . Pojďme najít .
  4. Pokud má pořadí není rovno , vrátíme se k prvnímu kroku.
  5. Nechte _

Tento algoritmus vypočítává ekvivalent prvku pole pro určitý řád . [jeden]

Příklady

Protokol Diffie-Hellman

Předpokládejme , že Alice a Bob mají veřejný klíč XTR a chtějí vygenerovat sdílený soukromý klíč .

  1. Alice vybere náhodné číslo takové, že , vypočítá je a pošle Bobovi.
  2. Bob obdrží od Alice, vybere náhodný takový, že , vypočítá a pošle Alici.
  3. Alice přijímá od Boba, vypočítává a přijímá  - soukromý klíč .
  4. Stejným způsobem Bob vypočítá a získá  soukromý klíč .

Schéma ElGamal

Předpokládejme, že Alice má část veřejného klíče XTR: . Alice vybere tajné celé číslo a spočítá a publikuje . Díky Alicinu veřejnému klíči může Bob zašifrovat zprávu určenou pro Alici pomocí následujícího algoritmu:

  1. Bob si vybere náhodný a počítá .
  2. Bob pak počítá .
  3. Bob definuje symetrický klíč založený na .
  4. Bob zašifruje zprávu pomocí klíče a přijme zašifrovanou zprávu .
  5. Bob posílá pár k Alici.

Po obdržení páru jej Alice dešifruje takto:

  1. Alice počítá .
  2. Alice definuje symetrický klíč založený na .
  3. S vědomím, že algoritmus šifrování zprávy je symetrický, Alice dešifruje pomocí klíče , přičemž obdrží původní zprávu .

Tím je zpráva přenášena.

Poznámky

  1. 1 2 Lenstra, Arjen K.; Verheul, Eric R. Přehled systému veřejného klíče XTR  (indef.) . Archivováno z originálu 15. dubna 2006.
  2. Lenstra, Arjen K.; Verheul, Eric R. Systém veřejného klíče XTR  (neurčitý) .