Wie kann man eine Binäre modulo-Exponentiation in Python durchführen?
z.B. damit er es nicht ewig dauert, um (123**121)%4482139 auszurechnen...
brauche es für eine RSA verschlüsselung, bei kleinen Zahlen funktionierts problemlos ohne die Binäre modulo-Exponentiation, bei grösseren Zahlen dauert es jedoch sehr lange...
Greez, mike
Binäre modulo-Exponentiation
Doch Python selbst kann das:
Wobei das konkrete Beispiel auch mit "normaler" Rechnung nicht wahrnehmbar viel Zeit benötigt.
Code: Alles auswählen
In [94]: pow(123, 121, 4482139)
Out[94]: 4194574L
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Also bei mir braucht das keine merkbare Rechenzeit, ebensowenig das erste Beispiel.
Offizielles Python-Tutorial (Deutsche Version)
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Problem bei Rechnungen mit grossen Zahlen ist oft nicht die Rechnung an sich, sondern das Ausgeben der Zahlen. Weil die Umrechnung von einer Zahl, die intern zur Basis 2 gespeichert ist, in eine Zeichenkettendarstellung zur Basis 10, leider nicht besonders effizient bewerkstelligt werden kann.