Seite 1 von 1

Hausübung A1 decrpyt

Verfasst: 5. Jan 2013 17:00
von hanneswernery
Hi

nach den Folien läuft die entschlüsselung ab:

m = c2 * (c1^-a)

Ich dachte zuerst, man muss nun "-a" als Inverses der Restklasse etwas umständlich berechnen und dann weiter in meiner Restklasse potenzieren und multiplizieren.
Komischer Weise kommt aber auch mit einer einfacheren Rechnung das richtige Ergebnis raus:

m = c2/(c1^a)

Ich rechne also normal mit meiner Restklassenpotenzierung c1^a und dividiere normal mit c2.div(..) .

Habt ihr es ausführlicher mit der Inversenberechnung gemacht oder habt auch nur diesen Einzeiler?

LG,
Hannes

Re: Hausübung A1 decrpyt

Verfasst: 6. Jan 2013 00:13
von DB_420
c^(-a) ist das Inverse von c^a (c^a^-1), daher ist teilen durch c^a dasselbe wie mal c^-a.

Re: Hausübung A1 decrpyt

Verfasst: 6. Jan 2013 00:39
von Ankou
wenn ich in meinem Code m*inverse(...) durch m/... ersetze schlägt es fehl, ich würde sagen das sollte es auch

Re: Hausübung A1 decrpyt

Verfasst: 6. Jan 2013 11:57
von DB_420
...weil der Rechner bei Nutzung von "/" wahrscheinlich in den reellen Zahlen teilt, das ist dann natürlich nicht dasselbe. Sonst ist Division im Körper ja durch Multiplikation mit dem Inversen definiert.

Re: Hausübung A1 decrpyt

Verfasst: 10. Jan 2013 01:06
von Aaron_H
Laut Wikipedia kann man einfach m = c2 * c1^(p-1-a) rechnen, klappt mit meiner Implementierung auch ohne Probleme.