Kryptographisches Pairing: Verstehen der Multiplikation und Funktion

Neue Frage »

Shalec Auf diesen Beitrag antworten »
Kryptographisches Pairing: Verstehen der Multiplikation und Funktion
[Vorbemerkung: Nachfolgend ist das Problem dargestellt und Stück für Stück weiter zurück geführt. Dabei habe ich versucht eine übersichtliche Unterteilung zu schaffen und alle notwendigen Informationen möglichst kurz darzustellen. ]

Hallo allerseits,

ich habe ein kleines Problem und bereits vor einer Weile (diesmal wirklich mehr als 24h her Big Laugh ) diese Frage auf Stackexchange [1] gepostet, und noch keine Antwort, trotz Bounty, erhalten. Es geht um das Optimal Ate Pairing. Genauer gesagt: Die Evaluierung der Produkte. Ich wiederhole mal die Stelle aus Stackexchange:

Zitat:

Consider the curve and its quartic twist . For computing the optimal Ate pairing



where is parameterized as a polynomial and evaluated at "u" as a prime. Furthermore, describes all points P on E, with . is just a Eigenspace of , the p-Frobenius.


Problem
Mein Problem ist vermutlich relativ grundlegender Natur: Ich verstehe nicht, über welchen Körper die Multiplikation definiert ist.

Die Potenzierung, d.h. der -Frobenius, ist über definiert. Demnach muss das Produkt sein.

Beschreibung der Funktionen
ist das Ergebnis der sog. Miller-loop [2, P.4 Table 2]. Hier ist z.B. nicht eindeutig klar, in welchem Körper gilt. Auch ist nicht ganz eindeutig klar, welchen Output die Funktion hat. Da der Output vermutlich ein Element sein wird, kann ich mir vorstellen, dass aus entsprechenden Körper kommt. Verbleibt also die Funktion

Beschreibung von
Bei dieser Funktion handelt es sich um eine Gerade durch die Punkte ausgewartet an . Ausgabe ist eine Differenz von "y" und "x". (Vgl. meine ebenfalls unbeantwortete Frage [3] im Abschnitt "Question" Frage 1.) Da der Twist über definiert ist, sind natürlich alle Koordinaten Elemente von .

Informationen zum Twist
Der Twist ist ein "quartic twist" von . Entsprechend existiert ein Isomorphismus von und sein Inverses.

Interpretation
Ich kann mir nun folgendes Vorstellen: Die Punkte von werden über den Twist isomorph auf abgebildet, innerhalb dessen gerechnet und anschließend zurück abgebildet. Also wäre mein Vorgehen praktisch so: Ich berechne praktisch allerdings sehe ich nicht, wie ich dadurch zurück auf kommen soll, da ich nur auf die Punkte anwenden kann.

Ich bin für jeden Hinweis und jede Interpretation sehr dankbar. Auch wenn noch Informationen fehlen sollte, um diese Frage zu beantworten, werde ich mich bemühen alles notwendige zusammen zu tragen.

Quellen
[1] https://math.stackexchange.com/questions...ngs-optimal-ate

[2] https://eprint.iacr.org/2016/472.pdf

[3] https://math.stackexchange.com/questions...mal-ate-pairing
Shalec Auf diesen Beitrag antworten »

Meine Theorie mit den Twists erhärtet sich. Ich werde in den kommenden 24h diesen Beitrag mit etwas Background editieren. Nochmal zur Verdeutlichung:
Frage: Ist ? Wenn ja, warum und wenn nein, warum nicht? Ich erwarte, dass es so ist, kann es aber nicht erklären unglücklich
 
 
Shalec Auf diesen Beitrag antworten »

Ich habe praktisch die Frage gelöst. Es liegt an dem Twist. Ich weiß noch nicht so recht, an welcher Stelle ich den Twist anwenden muss. Ich hätte intuitiv die Produkte ausgerechnet, den Isomorphismus angewendet und dann addiert. Theoretisch kann ich aber auch noch vorher addieren und dann den Isomorphismus anwenden. Aber hier geht es wieder um die Feinheiten, die ich mir (noch) nicht erklären kann.
Shalec Auf diesen Beitrag antworten »

Ein Twist ist ein Isomorphismus. Anhand dessen lassen sich alle Punkte von auf vereinfachen. Folglich ist klar, dass jede Operation zur Berechnung der Geraden zwischen A und B ausgewertet an P, eben Operationen über sind. Damit ist das Ergebnis .

Der Output der Miller-Loop . Wie also, definiere ich eine Multiplikation zwischen und ? Über die natürliche Einbettung?

Weiteres Problem: Innerhalb der Miller-Loop (Ich wiederhole sie malsmile

Input: und ein bestimmtes , von dem die Darstellung zur Basis 2 mit positiven und negativen Vorzeichen bekannt ist. Sei n die höchste Potenz dieser Darstellung:

Output:

Prozedur:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
f\gets 1, R\gets Q
for k=n-1 down to 0 do
    f \gets f^2 \cdot l_{R,R}(P), R\gets 2R
    if ui == 1 then
        f\gets f\cdot l_{R,Q}(P), R\gets R+Q
    elif ui == -1 then
        f\gets f\cdot l_{R,-Q}(P), R\gets R-Q
endfor
return f


man sieht, dass hier (in keiner mir bekannten Ausführung dieses Algos) recht schwammig präzisiert wird. stellt mich vor die Frage: welche 1? Das würde als einziges für mich Sinn machen.
Nun multipliziere ich dort aber auch mit einem Element, welches zur obigen Frage (erneut) führt: Wie definiere ich diese Multiplikation?

Den Rest habe ich für mich erschlossen. Hat jemand hierfür einen Vorschlag? Nutze ich einfach die natürliche Einbettung?
Shalec Auf diesen Beitrag antworten »

Die Antwort ist unerwartet blöd.

Es ist und . Dadurch muss man sich eben eine "dünnbesetzte" Multiplikation zweier Elemente definieren. D.h. man nutzt den Twist nur in eine Richtung und bleibt dann dort einfach.





So eine Sparse-Multiplikation habe ich momentan eher blöd als schlau realisiert. Mein Vorgehen:

Sagen wir: , dann:
Zerlege A in vier gleichgroße Blöcke (praktisch: low low, low high, high low und high high), wende auf jeden Block die Karazuba Multiplikation über an, jedoch ohne Reduktion. Wenn ich mir das als Arrays vorstelle: Jeder Array hat als Input 4 Einträge, Output sind dann 7 (). Danach werden die vier Return-Arrays jeweils zur Basis b^{4k}, k=0,1,2,3, addiert. Damit erhalte ich einen großen Array mit 19 Einträgen, welcher nun modulo dem definierenden Polynom von reduziert wird.

Dabei prüfe ich an keiner Stelle, wie viele Multiplikationen für A überhaupt notwendig sind. (blöder Ansatz) Nun..ein Test ließe sich realisieren: Jeder 0-Block returnt einen 0-Block.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »