javax.crypto.IllegalBlockSizeException

severin_96

Mitglied
Moin,

ich bin gerade dabei, ein Framework für meine Abschlussarbeit aufzubauen, wo ich RSA mit einem Post-Quantum-Algorithmus vergleiche im Bezug auf Laufzeit und Sicherheit. Soweit funktioniert das mit dem Ver- und Entschlüsseln auch, nur wenn ich beispielsweise die Schlüsselgröße 512 neheme und eine etwas längere Nachricht verschlüsseln möchte, wird die javax.crypto.IllegalBlockSizeException: Data must not be longer than 53bytes Exception geworfen.

[CODE lang="java" title="Schlüsselerzeugung"]public static void generate(int keylen)
{
KeyPairGenerator keygen = null;
try
{
keygen = KeyPairGenerator.getInstance("RSA");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
//Schlüsselgröße initialisiernen
keygen.initialize(keylen);
key = keygen.generateKeyPair();
}[/CODE]

Ich weiß, dass der RSA-Algorithmus nur Daten verschlüsseln kann, deren maximale Bytelänge der RSA-Schlüssellänge in Bits geteilt durch acht minus elf Füllbytes entspricht, d. h. Anzahl der maximalen Bytes = Schlüssellänge in Bits / 8 - 11. Somit kommt auch die 53 zustande.

[CODE lang="java" title="encrypt-Methode"] public static byte[] encrypt(String message, PublicKey pk)
{
Cipher cipher = null;
try
{
cipher = Cipher.getInstance("RSA/ECB/NoPadding");
cipher.init(Cipher.ENCRYPT_MODE, pk);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
}
byte[] geheimtext = null;
try {
geheimtext = cipher.doFinal(message.getBytes(StandardCharsets.UTF_8));
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
}
return geheimtext;
}[/CODE]

Ich hab RSA/ECB/NoPadding genutzt, somit fällt das Padding weg. Aber meine Frage, wie kann ich denn größere Nachrichten verschlüsseln, ohne das diese Exception geworfen wird?
 
K

kneitzel

Gast
Ist es nicht üblich, dass hybride Verfahren verwendet werden? RSA verschlüsselt ist dann nur der symmetrische Key, der dann für die eigentliche Nachricht verwendet wird?

Das war zumindest bisher mein Stand. Aber da wird es bestimmt noch bessere Experten geben, die dazu genaueres schreiben können.
 

severin_96

Mitglied
Ist es nicht üblich, dass hybride Verfahren verwendet werden? RSA verschlüsselt ist dann nur der symmetrische Key, der dann für die eigentliche Nachricht verwendet wird?

Das war zumindest bisher mein Stand. Aber da wird es bestimmt noch bessere Experten geben, die dazu genaueres schreiben können.
Das stimmt, alleine schon wegen der Laufzeit. Aber da ich sozusagen die Zeiten der Verschlüsselung für verschiedene Schlüsselgrößen messen wollte und anhand dieser dann argumentieren wollte, würde ich schon nur bei RSA bleiben.
 

mihe7

Top Contributor
Ich hab RSA/ECB/NoPadding genutzt, somit fällt das Padding weg. Aber meine Frage, wie kann ich denn größere Nachrichten verschlüsseln, ohne das diese Exception geworfen wird?
Du verwendest einen Block-Cipher ohne Padding. Dann muss die Nachrichtenlänge ein Vielfaches der Blockgröße sein, was Du durch entsprechendes Padding erreichst :)

Korrektur: gilt nicht für RSA.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
schegga_B javax.crypto - Cipher Objekte - Sevice Provider matching? Allgemeine Java-Themen 1
schegga_B AES-Algorithmus in javax.crypto Allgemeine Java-Themen 3
Q javax.crypto.BadPaddingException - was ist das genau? Allgemeine Java-Themen 9
reibi javax.crypto.SecretKey - Einfaches Beispiel gewünscht ;-) Allgemeine Java-Themen 2
C Probleme mit javax.mail.Session Allgemeine Java-Themen 8
jumichel Eclipse The package javax.mail is not accessible Allgemeine Java-Themen 3
T Erste Schritte mit javax.validation Allgemeine Java-Themen 5
pkm javax.script.ScriptEngineManager gibt mir keine Engine Allgemeine Java-Themen 4
C javax.mail.Message message.setreplyto() null setzen (keine replyto Adresse) Allgemeine Java-Themen 25
E javax.mail sene Type ändern Allgemeine Java-Themen 2
RalleYTN javax.vecmath Transformationsmatrix für LWJGL3 Allgemeine Java-Themen 2
R javax.comm --> Programm funktioniert nach Export nicht mehr Allgemeine Java-Themen 0
U javax.mail.Folder.list() zeigt nicht alle Ordner Allgemeine Java-Themen 5
T javax.script (JavaScript): Nicht-JRE-Packages importieren/nutzen Allgemeine Java-Themen 4
buggy84 JavaX und win32comm.dll Allgemeine Java-Themen 3
N javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1] Allgemeine Java-Themen 3
H Java Mail Fehlermeldung: java.lang.NoClassDefFoundError: javax/mail/internet/AddressException Allgemeine Java-Themen 5
G Wie installiere ich javax-usb unter windows? Allgemeine Java-Themen 0
B Javax.Sound Problem (setMessage-Methode) Allgemeine Java-Themen 2
P javax.mail MessageCount Allgemeine Java-Themen 13
I javax.sound.sampled.* - Hilfe zu den Controls Allgemeine Java-Themen 8
E NoClassDefFoundError: javax/microedition/io/Connection Allgemeine Java-Themen 2
J javax.comm findet serielle ports nicht Allgemeine Java-Themen 2
B Eclipse [Ubuntu] Paket javax.media.* nicht gefunden Allgemeine Java-Themen 7
J package javax.servlet does not exist Allgemeine Java-Themen 5
T Wo ist javax.swing.TransferHandler enthalten? Allgemeine Java-Themen 10
M System.setProperty("javax.net.ssl.trustStore", "mykey.pkx"); Allgemeine Java-Themen 1
G javax.jms.IllegalStateException: This method. Allgemeine Java-Themen 4
E javax.comm: Suche eine open source Alternative zu rxtx Allgemeine Java-Themen 8
M Netbeans IDE und javax.comm 2.0 Allgemeine Java-Themen 4
O javax.comm ? Allgemeine Java-Themen 3
L Fehlende Teile des javax Packages Allgemeine Java-Themen 3
P welche java version für javax.mail? Allgemeine Java-Themen 7
L javax.comm unter Linux Allgemeine Java-Themen 11
G javax.comm bzw serielle Schhnittstelle? Allgemeine Java-Themen 2
S Fehler bei der javax.usb api Allgemeine Java-Themen 2
K javax.comm Problem beim starten aus .jar heraus Allgemeine Java-Themen 3
foobar Rxtx vs javax.comm Allgemeine Java-Themen 2
T Exception at javax.swing.plaf.basic.BasicTableUI.paintCell Allgemeine Java-Themen 3
T Wo kann ich Javax.Comm Api Downloaden ? Allgemeine Java-Themen 6
C [javax.mail] Betreff vergleichen Allgemeine Java-Themen 5
C [javax.mail] Folder not open Allgemeine Java-Themen 2
H javax.comm und Parallele Schnittstelle (PIN für PIN) Allgemeine Java-Themen 7
S Javax.comm Probleme mit Ansteuerung eines 8051 EEPROMs Allgemeine Java-Themen 8
F Problem beim Drucken mit javax.print Allgemeine Java-Themen 2
M javax.mail – Sending failed – Invalid Addresses Allgemeine Java-Themen 8
S RS232 mit javax.comm Allgemeine Java-Themen 5
N javax.security.sasl verzweifelt gesucht Allgemeine Java-Themen 2
P javax.sound: clip.stop(); Allgemeine Java-Themen 4
S javax.comm unter Windows XP Allgemeine Java-Themen 2
M Verwendung der Cipher von gnu crypto (Serpent) Allgemeine Java-Themen 3
S Verschlüsselung - IllegalBlockSizeException Allgemeine Java-Themen 3
K Cipherproblem: IllegalBlockSizeException Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben