Verschlüsselte JPEG Datei anzeigen

cable545

Aktives Mitglied
Juten Tag,
ich hab mal ne Frage. Ich habe mit einer eigenen AES Implementierung eine JPEG Datei verschlüsselt, um das Resultat einer bestimmten Betriebsart von Blockchiffren zu sehen.
Nun ist es aber so, dass sich der Inhalt der verschlüsselten Datei nicht anzeigen lässt.
Besitzt eine JPEG Datei irgendeinen Header in welchem Daten drin stehen die ich nicht verschlüsseln darf?
Oder anders, kann ich eine solche Kennung wiederherstellen?
 

HoaX

Top Contributor
Wenn es verschlüsselt ist, dann ist es kein Bild mehr, das ist ja der Sinn der Verschlüsselung, den Inhalt zu verbergen.

Wozu den Header stehen lassen wenn die enthaltenen Daten ggf. ungültig sind, weil diese nicht dem JPEG-Format entsprechen? Willst du eine bildliche Darstellung erreichen? Dann ist wohl ehr ein Format wie BMP sinnvoll. Wie die ganzen Bildformate aufgebaut sind (Header, etc.) findet man massig bei Google.
 

irgendjemand

Top Contributor
@TO
selbst wenn du dir die mühe machst und den header nicht cryptest ... wirst du das problem haben das der rest dann keine gültigen JPEG daten mehr sind *zu mal auch gerade bei block-ciphern das problem der längenänderung besteht -> die gecrypteten daten sind unter umständen länger* ... womit du auch nichts mehr graphisch darstellen kannst ...


bei sowas müsstest du dann schon BMP oder ähnliches verwenden die ihre daten 1) nicht verschlüsselen 2) in der regel auch ohne header angezeigt werden können und 3) RAW daten sind ... also das ein pixel auch wirklich 4byte *32bit -> ARGB* hat ... wodurch sich auch bei normalen "auflösungen" kein problem mit der länge ergeben sollte ...
 

cable545

Aktives Mitglied
cool, ich danke euch. Ich habs mit einem BMP File probiert und hab genau das was ich haben wollte. Ich hab mein ursprüngliches File mit einem FileInputStream in ein Byte Array geschrieben und hab die ersten
54 Byte(Header 1 = 14 Byte, Header 2 = 40 Byte) in ein extra Array geschrieben. Den Rest aus dem Byte Array hab ich verschlüsselt.
Das Byte Array mit den verschlüsselten Daten hab ich dann wieder an den Header gepackt.
Also Header + verschlüsselte Daten. Das läßt sich glücklicher Weise dann auch als BMP File öffnen.
 

cable545

Aktives Mitglied
Der Sinn ist der, dass ich mir visuell den Nachteil des "electronic code book mode" bei Blockchiffren anzeigen lassen will. Von meinem ursprünglichen Bild werden immer einzelne Blöcke hintereinander verschlüsselt und dann wieder zusammen gepackt. Jeder 16 Byte(AES) Block aus meinem Bild wird also einzeln verschlüsselt. In dem verschlüsselten Bild lässt sich dann gut erkennen, dass gleiche Byte Folgen immer in allen Blöcken gleich verschlüsselt sind. Bei Wikipedia gibts ein Artikel zum ECB Mode. Da wird genau das Beispiel erklärt. Ich wollte es nochmal selbst ausprobieren.
 

irgendjemand

Top Contributor
das ist der sinn hinter ECB ... ist halt schnell und unkompliziert ...

wenn du diesen nachteil umgehen willst musst du dir mal CBC *chain block cipher* geben ...
einfach erklärt wird dort jeder folgeblock mit dem vorherigen bereits verschlüsseltem block XOR verknüpft und dann erst durch den cipher gejagt ...

hat aber auch nachteile

1) du brauchst für den ersten block einen sog. initialisierungs Vector
2) durch die zusätzlich XOR operation mehr zeit

außerdem ist gerade bei CBC auch pkcs5padding sinnvoll ... sonst kann es beim entschlüsseln schnell zum "BadBlockPadding" fehler kommen ...
 

cable545

Aktives Mitglied
Den CBC Mode werde ich morgen mal zusammen basteln. Ist das mit dem IV ein Nachteil ? Ich kann mir den doch zufällig erzeugen lassen und nutz den dann jeweils zur Ver- und Entschlüsselung.
Zu dem padding hab ich leider nix gefunden. Kannst Du das kurz erläutern?
Ansonsten, vielen Dank für die Tipps.
 

irgendjemand

Top Contributor
nun ... das problem des IV ist das beide seiten genau den selben IV brauchen ... ansonsten knallt es schon beim ersten block

PADDING ist grob gesagt eine technik bei block-basierten vorgängen um unterschiedlich lange input-sequenzen immer auf ein vielfaches der sog. blocklänge zu bringen ...
es passiert nichts mehr und nicht weniger als das der input um so viele zeichen erweitert wird bis der letzte block voll ist ... *bei AES128 immer 16byte blöcke* ...

wie du schon am namen erkennen kannst gibt es für unterschiedliche cipher PKCS #1-14 *glaub ich .. ansonsten wars 1-11* auch immer unterschiedliche PADDING-verfahren ...

AES z.b. fällt unter PKCS #5 ... und verwendet darum das für PKCS #5 beschriebene verfahren ...

*wikipedia sollte bei "PKCS" einiges dazu liefern*

leider kann bei einem ungünstigen input dies zu fehlern führen wenn z.b. der input genau die sequenz enthält die durch das padding ergänzt werden würde geht zwar beim verschlüsseln noch alles gut ... aber beim entschlüsseln kann es dann zu problemen führen ... gerade wenn dieser spezielle block irgendwo mitten drin auftauchen ... kann es beim entschlüsseln dazu führen das der de-cipher denkt das wäre der letzte block mit padding ... und dann gehen eine menge daten verloren ...
 

cable545

Aktives Mitglied
Ich hab mir den CBC Mode mal erstellt und ausprobiert. Is ne schöne Sache. Den letzten Block meiner Daten hab ich mit Nullen aufgefüllt. Trotz der von Dir genannten Nachteile. Aber da es bei mir nur zum Lernen fungiert, denke ich geht das in Ordnung. Ich danke Dir für Deine guten Tipps.
Bis denne!!!
 

irgendjemand

Top Contributor
hmm .. gut ... manuell irgendwie padden würde ich nicht ... das würde ich schon dem cipher-impl überlassen ... da z.b. das was du machst FAST PKCS #1 entspricht *anhängen von genau einem "1"er Bit und den rest mit "0"-bits füllen *wird unter anderem auch in der SHA-familie genutzt** ...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JavaCode verschlüsseln / verschlüsselte Werte Allgemeine Java-Themen 3
S Verschlüsselte Mails entschlüsseln! Allgemeine Java-Themen 2
RalleYTN JPEG mit CMYK(ohne JAI oder TwelveMonkeys!) Allgemeine Java-Themen 0
C Array als JPEG Allgemeine Java-Themen 3
M JPEG Image komprimieren Allgemeine Java-Themen 2
A jpeg Files mit eigenem Programm öffnen Allgemeine Java-Themen 4
MQue save as jpeg Allgemeine Java-Themen 3
S JPEG Bild übertragen mit RMI ? Allgemeine Java-Themen 4
F Image als GIF oder JPEG abspeichern Allgemeine Java-Themen 2
E JPEG Datei Größe und Qualität ändern (für Thumbnails) Allgemeine Java-Themen 4
C Dateieigenschaften (JPEG) auslesen Allgemeine Java-Themen 7
kodela StatusBar-Anzeigen auch in Log-Datei ausgeben Allgemeine Java-Themen 3
G Maven Projekt JAR-Datei Allgemeine Java-Themen 6
E XML - Datei Darstellung in IntelliJ als Baum Allgemeine Java-Themen 2
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
D Erste Schritte Mp3 Datei kann nicht von der Festplatte geöffnet werden - mit ChatGPT erstellt Allgemeine Java-Themen 7
J Filenotfoundexception obwohl Datei existiert Allgemeine Java-Themen 6
M Java Überprüfen ob .exe-Datei bereits ausgeführt wird Allgemeine Java-Themen 2
S .exe Datei/Programm auslesen? Allgemeine Java-Themen 2
E Datei verschoben Event Allgemeine Java-Themen 3
D Datei mit "Kohsuke GitHub API" in Repository hochladen Allgemeine Java-Themen 2
S Bookmark HTML Datei einlesen, alle Links erhalten und manche editieren..? (aktuell JSoup) Allgemeine Java-Themen 4
melaniemueller Einzelne Zeile aus einer txt Datei in einem String speichern Allgemeine Java-Themen 12
G JavaFX Maven Projekt als .exe Datei exportieren Allgemeine Java-Themen 10
J (Geplante) Änderungen an einer Datei vorübergehend speichern und anwenden? Allgemeine Java-Themen 12
Neumi5694 Datei komprimiert Allgemeine Java-Themen 6
_user_q Obfuscate einer .jar-Datei mit ProGuard? Allgemeine Java-Themen 2
_user_q Verknüpfung einer .jar-Datei (liegt z. B. auf dem Desktop) im Autostart-Ordner erstellen? Allgemeine Java-Themen 20
E java mithilfe url .jar datei öffnen Allgemeine Java-Themen 9
E Java .exe Datei mit args starten Allgemeine Java-Themen 2
W Bilder werden in App mit Jar-Datei nicht angezeigt Allgemeine Java-Themen 15
Master3000 Java Datei mehrmals einlesen Allgemeine Java-Themen 4
M Excel Datei Erstellen Allgemeine Java-Themen 2
E Input/Output Eigene Datei mit java öffnen Allgemeine Java-Themen 9
R Sonderzeichen aus Datei einlesen und in Datei ausgeben. Allgemeine Java-Themen 17
Tobero Download .jar von github lädt kaputte Datei runter Allgemeine Java-Themen 3
P Bat Datei in Java ausführen Allgemeine Java-Themen 2
S Verwendet Programmiersprache aus Quellcode - Datei ermitteln Allgemeine Java-Themen 6
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
J Jar-Datei ausführen Allgemeine Java-Themen 7
C Outlook msg-Datei Anhänge extrahieren Allgemeine Java-Themen 2
G Datei aus Ordner wählen, ohne den Dateinamen im Pfad angeben zu müssen Allgemeine Java-Themen 4
G Datei senden via Xmodem an Serial-Port Allgemeine Java-Themen 35
C Wav-Datei aus Jar laden? Allgemeine Java-Themen 11
L Best Practice Zip Datei aktualisieren Allgemeine Java-Themen 1
N Speicherort einer Datei im Explorer ändern Allgemeine Java-Themen 8
H Mehrere PNG-Files in einer Datei Allgemeine Java-Themen 9
Gaudimagspam CSV-Datei auslesen in Java Allgemeine Java-Themen 7
S createTempFile erstellt keine temporäre Datei Allgemeine Java-Themen 13
Hatsi09 Jar datei ausführen verursacht NumberFormatException Allgemeine Java-Themen 9
kodela bestimmten Dateityp immer mit jar-Datei öffnen Allgemeine Java-Themen 17
N Arrayliste in eine Datei speichern Allgemeine Java-Themen 4
B .txt Datei erstellen und auslesen bzw. schreiben Allgemeine Java-Themen 6
J Öffnen eine jar-Datei Allgemeine Java-Themen 11
Dann07 MP3 Datei abspielen funktioniert nicht Allgemeine Java-Themen 6
H ArrayListe in CSV Datei speichern Allgemeine Java-Themen 6
O Aus JAR-Datei erstellte EXE-Datei funktioniert nicht Allgemeine Java-Themen 10
N Txt Datei auslesen. Allgemeine Java-Themen 5
B Datei/Ordner auf Server zugreifen/erstellen Allgemeine Java-Themen 2
MiMa Datei verschieben hat einen Fehler?? Allgemeine Java-Themen 20
MiMa Erstellungsdatum einer Datei Allgemeine Java-Themen 10
O xlsx Datei auslesen mit POI Apache liest keine LEERZELLEN Allgemeine Java-Themen 6
P Input/Output entfernte Datei mit Java öffnen ohne Download Allgemeine Java-Themen 5
O xlsx Datei auslesen mit POI von Apache wirft seltsamen Fehler. Allgemeine Java-Themen 11
J Hilfe, Jar Datei kann nicht ausgeführt werden Allgemeine Java-Themen 2
M Programm erkennt String aus .txt Datei nicht Allgemeine Java-Themen 3
O Java-Applikation tut in Netbeans, als JAR nicht, wegen Pfadangaben einer benötigten Datei Allgemeine Java-Themen 8
J Fehlermeldung bei Ausführung von .jar-Datei Allgemeine Java-Themen 9
J Die Letzte Zahl aus einer Text datei lesen Allgemeine Java-Themen 8
Elyt Compiler-Fehler Datei kann nicht erstellt werden. Die Syntax für den Dateinamen etc. ist falsch. Allgemeine Java-Themen 2
M Probleme jar datei. Allgemeine Java-Themen 2
F Datei in String-Array einlesen Allgemeine Java-Themen 8
O docx-Datei erzeugung mit DocXStamper funktioniert nicht Allgemeine Java-Themen 2
T Objekt mit String und Int aus TxT Datei erstellen Allgemeine Java-Themen 23
Bluedaishi Prüfen ob Datei noch geöffnet ist Allgemeine Java-Themen 59
I Temp-Datei wird nicht gelöscht Allgemeine Java-Themen 12
D ODS.Datei öffnet leider in Excel Allgemeine Java-Themen 3
L JavaFX JavaFX Chart in Apache Poi Excel Datei Allgemeine Java-Themen 2
D .txt Datei in .jar Datei speichern Allgemeine Java-Themen 3
ralfb1105 Blöcke aus Datei filtern/suchen und in neue Datei schreiben Allgemeine Java-Themen 10
M Daten aus MatLab Datei lesen Allgemeine Java-Themen 8
L SQL Datei in Eclipse erstellen Allgemeine Java-Themen 3
Drachenbauer Wie sorge ich dafür, dass mein Spiel die ini-Datei in der Resourcen-ordner des Projektes schreibt? Allgemeine Java-Themen 5
Trèfle Excel-Datei nicht speicherbar, da von Java zum Bearbeiten gesperrt. Allgemeine Java-Themen 3
N Datei Zeilenweise Einlesen, Versteckte Zeichen Allgemeine Java-Themen 5
L Excel Datei löscht sich selbst im Programm - Java Allgemeine Java-Themen 3
G Workupload datei mit Java Downloaden Allgemeine Java-Themen 6
H .jar Datei startet nicht richtig bei Doppelklick Allgemeine Java-Themen 11
S Hilfe bei dem Auslesen einer YAML Datei Allgemeine Java-Themen 8
M Java Eclipse- Datei exportieren Allgemeine Java-Themen 5
R jar-Datei funktioniert nicht Allgemeine Java-Themen 2
R .txt Datei einlesen und auf der Konsole ausgeben lassen Allgemeine Java-Themen 11
T Jar Datei nicht ausführbar Allgemeine Java-Themen 6
H jar-Datei mit java.exe anstatt mit javaw.exe ausführen Allgemeine Java-Themen 9
S Datei wird nicht gefunden Thread.currentThread().getContextClassLoader().getResourceAsStream() Allgemeine Java-Themen 1
A Steuerung von Spiel aus Datei lesen Allgemeine Java-Themen 0
Javafan01 .sh datei in Java ausführen Allgemeine Java-Themen 1
MiMa Speichern von Programmeinstellungen in Datei Allgemeine Java-Themen 7
J Ordner und Datei Struktur einer War Datei Allgemeine Java-Themen 1
J XML Datei mit installiertem Programm öffnen Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben