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.
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 .
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í:
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 .
Definice: Pro každý definujeme:
Definice: Nechť jsou kořeny v , a . Označit:
Vlastnosti a :
Prohlášení: Nechte .
Definice: Nechat .
Na konci iterací jsou , a . Pokud je n sudé, použijte k nalezení .
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
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
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 :
Tento algoritmus vypočítává ekvivalent prvku pole pro určitý řád . [jeden]
Předpokládejme , že Alice a Bob mají veřejný klíč XTR a chtějí vygenerovat sdílený soukromý klíč .
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:
Po obdržení páru jej Alice dešifruje takto:
Tím je zpráva přenášena.