WikiDer > Indexberechnungsalgorithmus

Indexcalculusalgoritme

In dem Gruppentheorie, Teil von dem Mathematik, ist der Indexberechnungsalgorithmus ein Algorithmus für einige Gruppen das diskreter Logarithmus, h = gnein, zu lösen, wo G und haElemente aus der Gruppe, G, sein. Ein diskreter Logarithmus ist auf a . definiert endliche Gruppe G. Vorher G wenn Urheber von G und h G geht auf die Lösung von fragte.

Der Algorithmus

Der Indexberechnungsalgorithmus kann angewendet werden auf endliche Felder.

Die Methode für Primkörper und binäre Felder lässt sich wie folgt beschreiben:

In Primkörpern

G ist ein Untergruppe von , huh G
wofür nein gilt (mod p)

Der Algorithmus verwendet eine Faktorbasis von mehreren kleinen Primzahlen, B={ (-1), 2, 3, 5, 7,..., r}

Schritt 1:
Finde etwas Elemente von G die die Eigenschaft haben, auch zu sein in Primfaktoren zerlegen von dem Sammlung b.
Wir schreiben diese Gruppenelemente als

Schritt 2:
Nimm den Logarithmus auf beiden Seiten. Dadurch entsteht ein lineares Gleichungssystem woraus die diskrete Logarithmen der verwendeten Primzahlen gelöst werden.

Schritt 3:
Dann suche nach einem Element damit er kann mit Primfaktoren aus B aufgelöst werden.
ha (G) = (-1) ...
Durch den Logarithmus auf beiden Seiten erhält man den Wert von n.
Die drei Schritte des Algorithmus wurden mit Hilfe des folgenden Beispiels erarbeitet.

In binären Feldern

Die Elemente des endlichen Körpers werden als Polynome in . dargestellt [x] mit einem Grad von höchstens (m-1). Die Operation ist Multiplikation modulo ein festes Polynom vom Grad n, f(x) in [x], das nicht aufgelöst werden kann.
Wählen Sie für die Faktorbasis B Elemente aus der Menge aller nicht zerlegbaren Polynome in [x] mit einem Grad von nicht mehr als einer vorbestimmten Obergrenze.

Schritt 1:
Polynome suchen mod f(x), mit g als Generator von die ein Produkt von Polynomen aus B sind.

Schritt 2:
Genau wie bei Primkörpern können die Logarithmen der Polynome durch Lösen eines Gleichungssystems ermittelt werden.

Schritt 3: Suchen Sie als Nächstes nach einem Polynom damit er kann mit Polynomen aus B aufgelöst werden.
Durch den Logarithmus auf beiden Seiten erhält man den Wert von n.

Beispiele

In Primkörpern

Wir nehmen an = 5 mit p=2003.
Wir wählen nun h = 543 aus dieser Gruppe und wollen nach n aus h = . auflösen Mod 2003.

Schritt 1:
Nehmen Sie B = {(-1), 2, 3, 5, 7, 11, 13, 19}. Dies ist eine kleine Faktorbasis.
Der Nachteil dabei ist, dass Sie länger nach Zahlen suchen müssen, die damit faktorisiert werden können, der Vorteil ist, dass das zu lösende System in der Größe begrenzt ist.
Wir wählen jetzt zufällig Zahlen aus getallen 5 und faktoriere sie in Primzahlen. Wir können nur Zahlen verwenden, die mit B faktorisiert werden können.

964 =
wir werden nicht verwenden.

Nach ein paar Versuchen haben wir:

Jede Primzahl kommt mindestens zweimal vor. Wir schreiben nun die erste Gleichung wie folgt:

Log = log () = Log log13 log19
37 = 3 log2 1 log13 1 log19

Für 108 gilt:
108 = 1 log(-1) 1 log7 2 log13

weil = 1 und so () = 1, muss das halten = -1 (mod 2002). Jedes Element von 5 ist doch einzigartig.
Deshalb wissen wir das
108 = 1001 1 log7 2 log13

Schritt 2:
Wir wollen nun den Wert der verwendeten Logarithmen wissen. Wir finden es, indem wir die folgende Matrix verwenden.

In der unteren Reihe durch 9 teilen.
21 steht für eine Zahl (21 k 2002)
Für k = 6 ergibt dies 12033, was durch 9 teilbar ist.
Jetzt wissen wir das
log2 = 1337 (mod 2002).

Jetzt folgt log7 = 123 (mod 2002)
log13 = 123 - 631 1494 (mod 2002)
log19 = 30 - 1494 = 538 (mod 2002)

Schritt 3:
Wir suchen nun nach einer geeigneten Faktorisierung von Zahlen der folgenden Form: 543
Nach ein paar Versuchen haben wir

543 = (-1)

Daraus folgt die Gleichung

log 543 = log(-1) 2 log2 2 log19
log 543 433 = 1001 2 1337 2 538

Daraus folgt log 543 = 314,
die Lösung: n = 314

In binären Feldern

Wir nehmen an mod f(x) = x 1
Die Elemente von sind alle Polynome in höchstens Grades 6. Die Operation ist Multiplikation mod f(x). Die Reihenfolge von ist 128 - 1 = 127
Das Polynom g = x ist Generator von
Wir wählen nun h = x 1 aus dieser Gruppe und wollen nach n aus auflösen
x 1 = mod f(x)

Schritt 1:
Wähle als Faktorbasis die Menge aller nicht zerlegbaren Polynome in [x] höchstens Grades 3.
B = {x,x1, x 1, x 1, 1}
Suchen Sie nun nach Polynomen, die mit Polynomen aus B faktorisiert werden können. Unten sind fünf erfolgreich.

Schritt 2:
Wir wollen nun den Wert der verwendeten Logarithmen wissen.
Paar

Das gibt

weil = 1 kann dies vereinfacht werden zu

Daraus folgt = 7, also = 90, = 56 und = 31

Schritt 3:
Wir suchen nun nach einer geeigneten Zerlegung von Polynomen der Form h mod f(x), die mit Polynomen aus B faktorisiert werden können.
Das funktioniert für i = 66
( x1) mod f(x) = x = x( x1)
So Log( x1) = ( 2 -66) (mod 127) = 47
die Lösung: n = 47

Siehe auch

Verweise