Fragen zur RSA-Verschlüsselung

  • Hoi,
    habe hier das Problem einer Besonderen Lernleistung zum Abitur über RSA liegen.
    Das Problem: ich muss da das Verschlüsseln warsch. einmal vorrechnen. Auf Wikipedia gibts dazu ne ganz gute Anleitung: hier.


    Hab ich auch soweit auch gut verstanden... bis zu dem Punkt 5 bei der Schlüsselerstellung, wo man d berechnet:


    Berechne den Entschlüsselungsexponent d als Multiplikativ Inverses von e bezüglich des Modulus (eulersche Funktion von N). Es soll also die folgende Kongruenz gelten
    [blabla]


    Was muss ich da rechnen? Simpel, was muss ich in den Taschenrechner eingeben, um auf d zu kommen? *langsam verzweifelt sei* hab leider nur noch zwei Wochen dafür...

    Gigabyte GA-X58A-OC, Intel i7-980X, 12GB DDR3-RAM 2000Mhz, 2x Geforce GTX480, 1x Geforce 8800GTS, X-Fi Platinum, 3x OCZ-SSD 120GB (Raid0), watercooled


    "Die Welt ist klein, gemein und gnadenlos, und jeder stirbt einsam..."

    2 Mal editiert, zuletzt von Mjolnir ()

  • Hoi,
    habe hier das Problem einer Besonderen Lernleistung zum Abitur über RSA liegen.
    Das Problem: ich muss da das Verschlüsseln warsch. einmal vorrechnen. Auf Wikipedia gibts dazu ne ganz gute Anleitung: hier.


    Hab ich auch soweit auch gut verstanden... bis zu dem Punkt 5 bei der Schlüsselerstellung, wo man d berechnet:


    Berechne den Entschlüsselungsexponent d als Multiplikativ Inverses von e bezüglich des Modulus (eulersche Funktion von N). Es soll also die folgende Kongruenz gelten
    [blabla]


    Was muss ich da rechnen? Simpel, was muss ich in den Taschenrechner eingeben, um auf d zu kommen? *langsam verzweifelt sei* hab leider nur noch zwei Wochen dafür...

    Gigabyte GA-X58A-OC, Intel i7-980X, 12GB DDR3-RAM 2000Mhz, 2x Geforce GTX480, 1x Geforce 8800GTS, X-Fi Platinum, 3x OCZ-SSD 120GB (Raid0), watercooled


    "Die Welt ist klein, gemein und gnadenlos, und jeder stirbt einsam..."

    2 Mal editiert, zuletzt von Mjolnir ()

  • Ähhhh... *sich wie ein Schwein im Hühnerstall umherdreh und dumm guck* tut mir leid, aber da bin ich wohl zu blöd für.. was ist denn dieses Gleichheitszeichen mit den drei Strichen, und was bedeutet es, wenn da ne Variable steht und dann UNTEN rechts dran n kleiner Buchstabe? Also zb sozusagen r_tiefergelegt_k ? Was muss man da denn machen, ich verstehs einfach nich.. *panikattacken krieg*

    Gigabyte GA-X58A-OC, Intel i7-980X, 12GB DDR3-RAM 2000Mhz, 2x Geforce GTX480, 1x Geforce 8800GTS, X-Fi Platinum, 3x OCZ-SSD 120GB (Raid0), watercooled


    "Die Welt ist klein, gemein und gnadenlos, und jeder stirbt einsam..."

  • Ähhhh... *sich wie ein Schwein im Hühnerstall umherdreh und dumm guck* tut mir leid, aber da bin ich wohl zu blöd für.. was ist denn dieses Gleichheitszeichen mit den drei Strichen, und was bedeutet es, wenn da ne Variable steht und dann UNTEN rechts dran n kleiner Buchstabe? Also zb sozusagen r_tiefergelegt_k ? Was muss man da denn machen, ich verstehs einfach nich.. *panikattacken krieg*

    Gigabyte GA-X58A-OC, Intel i7-980X, 12GB DDR3-RAM 2000Mhz, 2x Geforce GTX480, 1x Geforce 8800GTS, X-Fi Platinum, 3x OCZ-SSD 120GB (Raid0), watercooled


    "Die Welt ist klein, gemein und gnadenlos, und jeder stirbt einsam..."

  • Hab mir das ganze jetzt nicht so genau angeschaut um es zu verstehen, aber das tiefgestellte k an den einzelnen Variablen ist ein Index der von 1 beginnend hochgezählt wird um damit den jeweiligen Rechenschritt zu benennen. Also rk kann also sein r1, r2, r3 usw.
    Das ganze wird gemacht weil man einunddenselben Rechenschritt eben k-mal durchführen muss um am Ende auf einen Rest von Null zu kommen.


    Zu dem "Gleichheitszeichen" siehe hier.

    Meine System:
    Intel X58||Core I7-950||Geforce 970GTX||OCZ DDR3-1600 3x6GB||
    Creative SB-Z||Samsung 850 EVO 120GB (SATA3)||WD-RED 3TB (SATA2)||Seagate Barracuda 320GB (SATA2)||Logitech G700s ||Logitech G910

    Einmal editiert, zuletzt von Slugger ()

  • Hab mir das ganze jetzt nicht so genau angeschaut um es zu verstehen, aber das tiefgestellte k an den einzelnen Variablen ist ein Index der von 1 beginnend hochgezählt wird um damit den jeweiligen Rechenschritt zu benennen. Also rk kann also sein r1, r2, r3 usw.
    Das ganze wird gemacht weil man einunddenselben Rechenschritt eben k-mal durchführen muss um am Ende auf einen Rest von Null zu kommen.


    Zu dem "Gleichheitszeichen" siehe hier.

    Meine System:
    Intel X58||Core I7-950||Geforce 970GTX||OCZ DDR3-1600 3x6GB||
    Creative SB-Z||Samsung 850 EVO 120GB (SATA3)||WD-RED 3TB (SATA2)||Seagate Barracuda 320GB (SATA2)||Logitech G700s ||Logitech G910

    Einmal editiert, zuletzt von Slugger ()

  • Ähh... tut mir leid, aber ich verstehs immer noch nicht... *ganz klein mach und schäm* und was genau ist d da eigentlich?
    Ist d der grösste gemeinsame Teiler von N (dem RSA-Modul) und e (dem Verschlüsselungsexponenten)? Oder wie steht der in Beziehung zu den beiden Zahlen?
    Tut mir leid, wenn ich soviel frag, aber ich bin strunzdumm in Mathe... *sfz* stellt euch vor, ihr habt hier nen minderbemittelten 4.-Klässler sitzen und müsste ihm RSA erklären, ja?

    Gigabyte GA-X58A-OC, Intel i7-980X, 12GB DDR3-RAM 2000Mhz, 2x Geforce GTX480, 1x Geforce 8800GTS, X-Fi Platinum, 3x OCZ-SSD 120GB (Raid0), watercooled


    "Die Welt ist klein, gemein und gnadenlos, und jeder stirbt einsam..."

  • Ähh... tut mir leid, aber ich verstehs immer noch nicht... *ganz klein mach und schäm* und was genau ist d da eigentlich?
    Ist d der grösste gemeinsame Teiler von N (dem RSA-Modul) und e (dem Verschlüsselungsexponenten)? Oder wie steht der in Beziehung zu den beiden Zahlen?
    Tut mir leid, wenn ich soviel frag, aber ich bin strunzdumm in Mathe... *sfz* stellt euch vor, ihr habt hier nen minderbemittelten 4.-Klässler sitzen und müsste ihm RSA erklären, ja?

    Gigabyte GA-X58A-OC, Intel i7-980X, 12GB DDR3-RAM 2000Mhz, 2x Geforce GTX480, 1x Geforce 8800GTS, X-Fi Platinum, 3x OCZ-SSD 120GB (Raid0), watercooled


    "Die Welt ist klein, gemein und gnadenlos, und jeder stirbt einsam..."

  • Also das Prinzip ist dir aber klar oder? Da das multiplizieren von 2 Primzahlen recht einfach aber das Zerlegen einer berechneten Zahl in ihre Faktoren extrem schwer ist, wenn man den entsprechenden Faktor hier d nicht kennt.
    d ist hier der Faktor der wenn man ihn mit e multipliziert und dann k*Phi(N) dazu addiert 1 ergibt. Eben das multiplikativ inverse zu e. Heisst wenn e=5 ist dann ist das multiplikativ inverse dazu 1/5.
    Bei der Berechnung hier muss aber eben noch berücksichtigt werden das nicht 5*1/5=1 ergeben muss sonder erst dann =1 ist wenn man k*Phi(N) dazu addiert.
    Das alles jetzt und um diese Uhrzeit zu erklären fehlt mir die Kraft und der Wille. :)


    Schau dir am besten auch folgende Artikel noch an:


    Kongruenz
    Inverses Element
    Und eben den zum euklidischen Algorithmus.

    Meine System:
    Intel X58||Core I7-950||Geforce 970GTX||OCZ DDR3-1600 3x6GB||
    Creative SB-Z||Samsung 850 EVO 120GB (SATA3)||WD-RED 3TB (SATA2)||Seagate Barracuda 320GB (SATA2)||Logitech G700s ||Logitech G910

  • Also das Prinzip ist dir aber klar oder? Da das multiplizieren von 2 Primzahlen recht einfach aber das Zerlegen einer berechneten Zahl in ihre Faktoren extrem schwer ist, wenn man den entsprechenden Faktor hier d nicht kennt.
    d ist hier der Faktor der wenn man ihn mit e multipliziert und dann k*Phi(N) dazu addiert 1 ergibt. Eben das multiplikativ inverse zu e. Heisst wenn e=5 ist dann ist das multiplikativ inverse dazu 1/5.
    Bei der Berechnung hier muss aber eben noch berücksichtigt werden das nicht 5*1/5=1 ergeben muss sonder erst dann =1 ist wenn man k*Phi(N) dazu addiert.
    Das alles jetzt und um diese Uhrzeit zu erklären fehlt mir die Kraft und der Wille. :)


    Schau dir am besten auch folgende Artikel noch an:


    Kongruenz
    Inverses Element
    Und eben den zum euklidischen Algorithmus.

    Meine System:
    Intel X58||Core I7-950||Geforce 970GTX||OCZ DDR3-1600 3x6GB||
    Creative SB-Z||Samsung 850 EVO 120GB (SATA3)||WD-RED 3TB (SATA2)||Seagate Barracuda 320GB (SATA2)||Logitech G700s ||Logitech G910

  • Ehhhm... *kopp kratz* ok, danke, d hab ich nun mit der "Handrechenmethode" mit der Tabelle im Artikel zum erweiterten euklidschen Algorithmus hingekriegt...


    Aber direkt die nächste Frage: wie berechnet man "x mod y" bei grossen Zahlen? zB x=(11 hoch 14), y=21.
    Normalerweise würd ich jetzt simpel x ausrechnen,
    dann durch y teilen (ergibt z, also x/y=z),
    dann z mit y multiplizieren, ergibt a (also a=z*y)
    und dann x-a rechnen. Schwups, hab ich mein "x mod y".


    Nur geht das irgendwie schlecht bei grossen Zahlen, und wirkt meiner Ansicht nach nicht wirklich professionell; wie rechnet man das wirklich?

    Gigabyte GA-X58A-OC, Intel i7-980X, 12GB DDR3-RAM 2000Mhz, 2x Geforce GTX480, 1x Geforce 8800GTS, X-Fi Platinum, 3x OCZ-SSD 120GB (Raid0), watercooled


    "Die Welt ist klein, gemein und gnadenlos, und jeder stirbt einsam..."

  • Ehhhm... *kopp kratz* ok, danke, d hab ich nun mit der "Handrechenmethode" mit der Tabelle im Artikel zum erweiterten euklidschen Algorithmus hingekriegt...


    Aber direkt die nächste Frage: wie berechnet man "x mod y" bei grossen Zahlen? zB x=(11 hoch 14), y=21.
    Normalerweise würd ich jetzt simpel x ausrechnen,
    dann durch y teilen (ergibt z, also x/y=z),
    dann z mit y multiplizieren, ergibt a (also a=z*y)
    und dann x-a rechnen. Schwups, hab ich mein "x mod y".


    Nur geht das irgendwie schlecht bei grossen Zahlen, und wirkt meiner Ansicht nach nicht wirklich professionell; wie rechnet man das wirklich?

    Gigabyte GA-X58A-OC, Intel i7-980X, 12GB DDR3-RAM 2000Mhz, 2x Geforce GTX480, 1x Geforce 8800GTS, X-Fi Platinum, 3x OCZ-SSD 120GB (Raid0), watercooled


    "Die Welt ist klein, gemein und gnadenlos, und jeder stirbt einsam..."

  • Wens interessiert: die Arbeit is nu fertig geworden, hab sie auch als PDF hier hochgeladen.

    Gigabyte GA-X58A-OC, Intel i7-980X, 12GB DDR3-RAM 2000Mhz, 2x Geforce GTX480, 1x Geforce 8800GTS, X-Fi Platinum, 3x OCZ-SSD 120GB (Raid0), watercooled


    "Die Welt ist klein, gemein und gnadenlos, und jeder stirbt einsam..."

  • Wens interessiert: die Arbeit is nu fertig geworden, hab sie auch als PDF hier hochgeladen.

    Gigabyte GA-X58A-OC, Intel i7-980X, 12GB DDR3-RAM 2000Mhz, 2x Geforce GTX480, 1x Geforce 8800GTS, X-Fi Platinum, 3x OCZ-SSD 120GB (Raid0), watercooled


    "Die Welt ist klein, gemein und gnadenlos, und jeder stirbt einsam..."