Blocklänge rsa verschlüsselung



  • Hi,

    wollte fragen ob mir jemand sagen kann wo ich einen Algorithmus finden kann der mir zeigt wie ich die maximale Blocklänge für den klartext ermittel!


  • Mod

    RSA ist kein Blockchiffre.

    edit: Die Nachricht sollte kleiner sein als der Schlüssel und wenn sie zu klein ist, sollte sie aufgefüllt werden (Das sollte aber die Kryptobibliothek machen!). War es das, was du meintest?



  • Ich verstehe die Frage nicht.

    Mit RSA verschlüsselt man nicht wirklich irgendwelche Klartextnachrichten. Wenn, dann wird RSA für Schlüssel von symmetrischen Chiffren verwendet. Du verschlüsselst Deine Nachricht mit einem symmetrischen Verfahren unter Verwendung eines zufällig gewählten Schlüssels. Dieser Schlüssel wird dann per RSA verschlüsselt übertragen. Und damit das sicher ist, verwendet man auch noch so etwas wie OAEP.

    Warum? Das geht so am schnellsten und spart Speicherplatz.

    Für Unterschriften verwendet man auch mehr als nur RSA... Da gibt's z.B. RSA-PSS.

    Überlasse bitte Krypto den Profis -- spätestens dann, wenn Du für schlechte Implementierungen haftbar bist. Das heißt: Verwende gut bekannte und getestete Krypto-Bibliotheken.



  • Klar ist RSA kein Blockchiffre.
    Trotzdem kann man "Informationsbrocken" damit verschlüsseln. Dass so ein Brochen dabei als eine einzige Ganzzahl interpretiert wird spielt dabei doch keine Rolle.
    Die Frage ist: wie gross darf die Zahl maximal werden, damit RSA noch funktioniert.
    Das lässt sich irgendwie aus der Schlüssellänge errechnen.
    Die Frage ist: wie?


  • Mod

    hustbaer schrieb:

    Die Frage ist: wie?

    Das ist leicht. Folgende Operation macht das: <

    (Aber trotzdem sollte man noch ein paar zufällige Bytes einstreuen. Dann gilt als "Block" eben das gesamte mit Padding. Es gibt einen bekannten Angriff auf RSA (und andere deterministische Chiffre), wenn man dies nicht tut. krümelkacker hat verlinkt, wie man es tun sollte und auch richtig gesagt, dass man es am besten gar nicht selber tun sollte. )



  • Danke 🙂

    Klar sollte man da nicht selber rummachen, wenn man ein sicheres System will.
    Mir ist aber eine Warnung + Antwort oft lieber als nur eine Warnung.
    Manchmal will man (ich zumindest) bestimmte Dinge einfach nur wissen. Aus blossem Interesse.

    Also.
    Heisst das wenn ich einen 4096 Bit RSA Key habe... ist 2^4096 dann der Modulus? Und heisst das ich kann "Blöcke" bis 4096 Bit (Zahlen bis 2^4096-1) damit verschlüsseln? Oder doch nur 4095 Bit? Oder...?

    Und weil wir gerade dabei sind... ist das bei Elliptic-Curve gleich?

    :xmas2:
    (Wir brauchen Silvester-Smileys)


  • Mod

    Der zu verschlüsselnde Wert muss schon echt kleiner sein als der Modulus. Daher mach mal lieber ein paar Stellen weniger.

    Und weil wir gerade dabei sind... ist das bei Elliptic-Curve gleich?

    Ich glaube, ich bin da überfragt. Ich mach das nur hobbymäßig. Daher würde ich auch meine sonstigen Antworten nicht unbedingt benutzen, wenn es um Leben und Tod (oder wichtiger noch: Geld :xmas2: ) geht.

    (Wir brauchen Silvester-Smileys)

    Finde ich auch. 👍



  • SeppJ schrieb:

    Der zu verschlüsselnde Wert muss schon echt kleiner sein als der Modulus. Daher mach mal lieber ein paar Stellen weniger.

    Hehe, also doch nicht so einfach 🙂
    Das wäre eben genau meine Frage (und ich vermute auch die des OP): wie berechnet man da den grössten "sicheren" Wert?


Anmelden zum Antworten