Hatte mal so einen Bildverschlüsselungs Programm vor 2 Jahren in Java programmiert, ist das einzige Programm, das ich jemals mit einem UI versehen habe :D Cool dass du was dazu machst ^^
Das Thema werde ich auch bald mit meinen SuS im Info-Unterricht machen. Da wir auch Python lernen werden, passt da wie Faust aufs Auge. Danke für die tollen Videos!
@@johnwayne8059 8k ist im Bilderformat nichts untypisches. Mein Handy macht Bilder mit einer Auflösung von 12032 x 9024, wenn ich unbinded auswähle sonst wirds durch 4 geteilt :) pixil binding. 8k dagegen wäre ja "nur" 7680 x 4320 :D' Soll kein flexen sein, sollte nur ein Beispiel sein das große Bildformate gar nicht unüblich sind. Es gibt Posterscans die eine monströse Auflösung haben. Man könnte die Datei auch Splitten und auf mehrere Fotos verteilen ;) ist halt nur jeweils ein Schritt mehr mit den Splitting & File-Binding beim Encrypten / Decrypten.
Sehr gutes Video 👍. Mann kann das Verschlüsseln ja sicherer machen, in dem man nicht nach Reihenfolge in Pixel für Pixel verschlüsselt, sondern Zufällig. Dabei kann man sich den Nachteil vom Zufall bei Computern ausnutzen und einen Seed als Schlüssel setzten. In Python ginge das mit random.seed(int) und in int würde dann der Schlüssel reinkommen. So kann man dann durch random.randint eine genaue Reihenfolge erhalten, die besagt, welche Pixel wichtig sind und in Welcher Reihenfolge man verschlüsseln bzw. entschlüsseln muss.
Geilo! Ich schaue gerade Mr. Robot und jetzt weiß ich (Achtung, kleiner Spoiler) wie er in der letzten Folge der 3. Staffel seinen Private Key in zwei Bildern versteckt hat (haben könnte) - seeehr cool! Danke! :D
Hab ich was verpasst? Wie löst du die Redundanz bei "seek" auf? Müsste die Nachricht in der Ausgabedatei nicht mehrfach vorkommen? Ich habe so ein Programm mal in Java geschrieben. Es ist aber noch ein paar Schritte weiter gegangen: - Ich speichere so etwas wie eine Header-Information. Ich weiß nicht mehr genau, was da alles drin steht, aber auf jeden Fall die Nachrichtenlänge. - Ich habe eine einfache Verschlüsselung mit Passphrase vorgesehen (Hashwert auf Passphrase = Bitmaske für Xor-Verschlüsselung). - Ich springe in pseudo-Zufälligen Abständen zwischen den Pixeln anstatt nacheinander um die Nachricht besser im Bild zu verteilen. - Ich klassifiziere die Pixel anhand benachbarter Pixel (wie viele direkten Nachbarn haben eine "andere Farbe" (Abstand im RGB-Raum muss über einer bestimmten Schwelle liegen). Ich vergleiche nur die 4 direkten Nachbarn. Wenn alle 4 anders sind, ist das die beste Kategorie und diese Pixel werden zuerst aufgebraucht. Dann kommen die mit 3, dann 2 usw. - Da ich PNGs ausgebe ist es auch möglich den Alpha-Kanal zu nutzen. Dieser wird als allerletztes genommen, weil eine Manipulation dort am ehesten auffällt. - Ich habe auch noch irgendwie den Dateityp kodiert, weiß aber nicht mehr genau wie. Es war entweder eine Header-Info oder der Salt für die Passphrase (ich glaube es war letzteres). Wenn du Interesse hast es zu sehen, melde dich, ich teile es gerne mit dir.
wirklich ein sehr sehr schönes Video, du hast alles sehr gut und verständlich erklärt. haha mir ist gerade aufgefallen dass dieses tolle Video an meinem Geburtstag raus kam :) Ach wie cool xD
Hey, wieder mal ein tolles Video. Nur der Ausgabewert nach dem Aufruf von seek sollte eine textdatei mit der größe des Bildes beinhalten und die geheime Nachricht sich wiederholen. Gibt es eine Möglichkeit diese Nachricht nur einmal zu erhalten?
Sicher, du kannst beispielsweise am Anfang der Nachricht eine Länge definieren, d.h. nachdem du die Nachricht entschlüsselt hast, suchst du einen int-Wert der die Länge der Textnachricht angibt und nur diese Länge soll dann ausgegeben werden. Ich denke, dies sollte die einfachste Methode sein.
@@Marc7437 stimmt, aber man muss eine maximale binäre länge festlegen welche die länge des Textes definiert. Beispiel 8bit, dann darf eine Nachricht nicht mehr als 256 bit lang sein und man muss auch die grenze zwischen den Längen bits und den Nachrichten bits finden. Vielleicht ist ein Null-Byte die beste Möglichkeit. Einfach am Ende der Nachricht einen Null-Byte als Grenze anbinden. Was wäre aber, wenn die Datei zu klein ist für die Nachricht?
Klasse Video auf jedenfall nen daumen rauf verdient, mir ist im Tumbnail bei den zwei Alpakas nur Aufgefallen das beim Rechten Bild die beige Fläche am Rand des Kopfes zwischen den Ohren ein sichbares Stück Größer und gebeult ist und etwas vom magenta fehlt, als würde dort die Farbe für den Übergang fehlen. 😅
Ich sehe das auf einem Bildschirm mit 24 bit Farbtiefe, kann es möglich sein dass das Bild während des Vorgangs so stark Komprimiert wird dass selbst der kleinste nenner ein derartig sichtbares Color Banding hervorrufen kann. Gibt es noch weitere Möglichkeiten die Bilder Farblich zu verändern sodass der Empfänger das Bild erst auf den Farbzustand nach verstecken der Nachricht zurück wandeln muss um überhaupt einen Brauchbaren Vergleich zum Originalen Bild feststellen zu können. Das einfache Umwandeln anhand des Original Bildes würde die Nachricht dann doch nur weiter verfälschen sollte man versuchen ohne genaue Angabe den Original Zustand wiederherzustellen.
Vigenère ist doch eigentlich einfacher umzusetzen, mit mehr Nutzlast und sicherer(wenn Angreifer versteckte Botschaften erwarten) Ich fände schön wenn du auch ein Video darüber machst wie man das bricht, wenn das Passwort so lang wie die Nachricht und zufällig ist und das Passwort für die nächste Nachricht hintendrangehängt und verschlüsselt wird. Wie immer gutes Video
Ich frage mich echt wie lange du gebraucht hast um dir das alles zu überlegen :D Wenn man sich den Code anschaut sieht das ja alles ganz logisch aus, aber auf die Idee wäre ich erst gar nicht gekommen. Gutes Video!
Sehr gut erklärt. Jedoch gibt es einen kleinen Denkfehler, wenn sie mündlich ausgemacht haben das er ihr (oder andersrum) auf einer social media Plattform ein bild schickt wo die botschaft drin ist, hätten sie auch gleich sagen können ohne einen so großen aufwand zu betreiben. Wenn sie es nicht mündlich Gemacht haben sondern geschrieben haben weis der (hacker oder zuhörer oder so) auch wo und wie die geheimbotschaft versteckt ist. Aber sonst wirklich sehr interesannt
Bei audio Dateien könnte das eigentlich auch gut funktionieren. Bei unkomprimierten 16-Bit WAV Dateien sollte kein Unterschied bemerkbar sein. Auch Wave Dateien selbst mit Python im Binär Format zu speichern ist umsetzbar (habe ich schon gemacht), da die dateistruktur vergleichsweise einfach aufgebaut ist.
Sehr schön. Insbesondere wenn man bedenkt, das Text noch die naheliegende Form der Daten wäre! Spannend wird es, wenn man ganz neue Bilder, Karten, Sounds und so weiter auf diese Weise versteckt ;) Meine Frage: Wie schnell ist das Programm im Durchlauf, insbesondere bei hochauflösenden/großen Bildern? Ich würde aus Performancegründen da vielleicht noch eine Start/Stop Mechanik einbauen. Bei hochauflösenden Bildern bzw. kurzen zu versteckenden Nachrichten/Daten müsste die Schleife immer das gesamte Bild durchlaufen. Mit ner START/STOP Mechanik könnte man so evtl. die Rechenzeit reduzieren. Wobei ich noch nicht weiß, wie gut die Performance bereits in deiner Vorlage ist.
Wie immer gutes Video. Eine Frage hätte ich jedoch noch. Ab Minute 11:20 verstehe ich die Zusammenhänge nicht mehr, damit meine ich, dass ich nicht weiß wo das "hide()" hinkommt und wie man denn jetzt ein Bild zurückbekommt. Muss das hide() in die Main Klasse ? Außerdem Frage ich mich wo ich den zu versteckenden Text und das Bild angeben muss?
Du kannst alle Funktionen in eine .py-Datei schreiben. Du musst vorher ein Bild und eine Textdatei mit der Botschaft anlegen und den Pfad wie im Video zu sehen angeben. Du kannst die Parameter entweder in der Funktion selber füttern und dann einfach die Funktion hide() mit "hide()" aufrufen, oder du rufst hide('pfad1', 'pfad2', 'pfad3') auf. Die Pfade müssen dabei natürlich der Reihenfolge der Parameter in der Funktion, also (in_file, secret, out_file) entsprechen. Die Output-Bilddatei wird automatisch erstellt, sobald du das Programm ausführst. Ich hoffe das hilft dir weiter :)
9:10 Keine Ahnung ob ich einfach zu wenig in Python mache oder da ein System an mir vorbei gegangen ist, aber die Funktion die du zur bit manipulation geschrieben hast finde ich nicht so gut lesbar wie ein paar bit operationen. Vielleicht wäre es besser weniger als one-liner oder mit weniger Python spezifischen Operationen :)
Hey ich schau gern deine video damit wenn ich als informatiker gefragt werde was ist eig dies oder das ich es genau in der art wie du es erklärst erklären kann oder ihnen einfach dein video dazu zeigen kann selbst bin ich entwickler und egal wo man anfängt zu entwickeln meistens existiert schon eine codebase die meist sehr groß ist und meist auch nicht so schön für Schönen code gibt es Metriken Da ich davon ausgehe das du davon schonmal etwas mitbekommen hast wäre es vielleicht interessant für dich ein video über einige der metriken zu machen die so existieren lg Scharada
Eine interessante Idee, zugegeben... ABER... Hier werden verlustfrei gespeicherte Bild Pixel (PNG Format) binär manipuliert, was aber nun bei nachfolgender verlustbehafteter Kompression (JPEG) und Auflösungs-Reduktion (typisch für Messenger Dienste) leider zwangsläufig zur Zerstörung der Nachricht führt. Gibt es hierfür Lösungen?
Natürlich kann man die Kommunikation "absichern" indem man sie verschlüsselt und entsprechend beim ersten Bilder wechsel die gegenseitigen PubKeys tauscht. Hatte dieses Thema auch im Studium und man sollte für das selbst ausprobieren jedoch wissen, dass wenn man Bilder per Messenger schickt diese idr. komprimiert und reduziert werden und dadurch die Nachricht verloren gehen kann.
Ich hätte es mit Open CV gemacht. Da werden automatisch die BGR Werte der Pixel in dezimal angezeigt. Mit einer Hilfsfunktion hätte ich die Dezimalzahlen in binär umgewandelt und den letzten Bit geändert, dann wieder in dezimal umgewandelt und mit dem Pixel im Bild ersetzt.
Aber was passiert wenn die Nachricht zu lange ist? Dann wird sie doch nur bis zu einem gewissen grad gespeichert, zum Beispiel bis zur hälfte, könnte gerade bei unscharfen bildern in kombination mit langen nachrichten win problem sein oder?
6:19 Ich habe jetzt, glaube ich, 60 Minuten auf die beiden Bilder geguckt, und ich bin fest der Überzeugung, ich weiß was es dachte als es fotografiert wurde! Ich sage euch das aber nicht, weil das zu intim ist. :D
Wenn sie sicher verschlüsselt ist, dann ist die Nachricht auch ohne Bild sicher verschlüsselt. Text im Bild sorgt nur dafür, dass weniger Personen Kenntnis haben, dass du Zeug verschlüsselst.
Lustiger Weise hat beim Bild mit der Robbe die YT Komprimierung die Unterschiede zwischen den beiden Bildern zu einem Bild angeglichen und damit direkt die größte Schwäche dieses Steno Verfahrens offenbart. Komprimierung
Also , ich wusste nicht genau, wozu ich dich frage posten soll. Also schreib ich’s mal hierhin😅. AX B = {1,2} x {3,4} = {(0,0)(0,1)(1,0)(1,1)} Beim Kartesischen Produkt wurde hier die Menge A betrachtet mit sich selbst multipliziert. Woher nehmen wir dann die {3,4} also okay die sin das Produkt von B ,aber müssten dann beim Ergebnis nicht noch die anderen vier Tupel von inkludiert sein {3,4}🤔
Das ist nicht das kartesische Produkt. Im Buch gibt es dazu ein Kapitel. {(1,3),(1,4),(2,3),(2,4)} ist hier das kartesische Produkt. Ich kann hier aus zeitlichen Gründen leider nicht alle Fragen beantworten und du hast schon sehr viele gestellt ;)
Du kannst solche Fragen auch auf meinem Discord Server im passenden Forum stellen. Bitte beachte, dass auch hier die Fragen auf freiwilliger Basis beantwortet werden.
Es nervt nicht. ;) Ich kann nur zeitlich nicht alle Fragen beantworten ;) Also nicht wundern, wenn du mal keine Antwort bekommen solltest. Deshalb mein Vorschlag mit dem Discord Server.
Achtung.. Früher gab es nur 2 Farben... Schwarz und Weiß Dann gab es 4 Farben..... 2² Als nächstes gab es 16 Farben.... = 4² Jetzt war die Zeit von VGA (256 Farben) erreicht.... 16² Als letztes besann man sich darauf, die Farben (R) ot (G)rün (B)lau in jeweils 256 Abstufungen ( 0 - 255 ) oder Hexadezimal (00 - FF) aufzusplitten. Daraus ergibt sich eine Farbvielfalt von 256*256*256 = 16.777.216 Farbabstufungen.
Was viele nicht verstehen ist, dass das ganze Video eigentlich nur ein diskreter, geschickter Hinweis an seinen Crush ist, dass sie sein Crush ist. Das ganze Video ist also eigentlich nur ein Transportmittel für diese versteckte Botschaft!
ich versteh nur bitarray. 🤔 bitarray mit der länge des bitarry auslesen. bitarray. textdatei. 🤪 ich guck jetzt ne sachgeschichte aus sendung mit der maus.
Ach, ich erinnere mich noch wie wir in der schule steganografie in java umgesetzt haben, das war lustig
Lustig weil viel aufwändiger in Java als in Python gezeigt wurde?
@@SuperMCToaster war es auch, aber wir haben damals alles in java gemacht
Hatte mal so einen Bildverschlüsselungs Programm vor 2 Jahren in Java programmiert, ist das einzige Programm, das ich jemals mit einem UI versehen habe :D
Cool dass du was dazu machst ^^
😊 Du kannst ja gerne mal den GitHub-Link teilen.
Kannst du den Github link teilen?
Das Thema werde ich auch bald mit meinen SuS im Info-Unterricht machen. Da wir auch Python lernen werden, passt da wie Faust aufs Auge. Danke für die tollen Videos!
Gerne :)
Was ist ein SuS?
Edit: ach "Schüler und Schülerin" ^^'
Danke für die Ergänzung 🤪
Deine Videos werden immer besser! Weiter so :)
Vielen Dank 😊👍
Du bist der Kanal, den ich nicht wusste, dass ich ihn brauchte.
Ich nehme das mal als Kompliment ;)
Das istvauch ne prima Möglichkeit Daten zu verstecken! Und weniger auffällig eine Datei mit einer Anderen zu "verschmelzen"!😇 top Video!👍👍👍
Da muss die Datei aber echt klein sein :D' oder das Bild unendlich riesig
@@azakura1991 8K-jpeg!😂🤣😂
@@johnwayne8059 8k ist im Bilderformat nichts untypisches. Mein Handy macht Bilder mit einer Auflösung von 12032 x 9024, wenn ich unbinded auswähle sonst wirds durch 4 geteilt :) pixil binding. 8k dagegen wäre ja "nur" 7680 x 4320 :D'
Soll kein flexen sein, sollte nur ein Beispiel sein das große Bildformate gar nicht unüblich sind. Es gibt Posterscans die eine monströse Auflösung haben.
Man könnte die Datei auch Splitten und auf mehrere Fotos verteilen ;) ist halt nur jeweils ein Schritt mehr mit den Splitting & File-Binding beim Encrypten / Decrypten.
Mal wieder ein top Video! Interessant und einfach erklärt, super👍🏼
Danke dir :)
Super interessantes Video :D
Wieder was gelernt, mit dem ich mich vlt im Studium beschäftigen werde ^^
Danke 😁
Sehr gutes Video 👍.
Mann kann das Verschlüsseln ja sicherer machen, in dem man nicht nach Reihenfolge in Pixel für Pixel verschlüsselt, sondern Zufällig. Dabei kann man sich den Nachteil vom Zufall bei Computern ausnutzen und einen Seed als Schlüssel setzten. In Python ginge das mit random.seed(int) und in int würde dann der Schlüssel reinkommen. So kann man dann durch random.randint eine genaue Reihenfolge erhalten, die besagt, welche Pixel wichtig sind und in Welcher Reihenfolge man verschlüsseln bzw. entschlüsseln muss.
Sehr interessant, danke!
Gerne 🙂
Ach wie schön das Bild ist.
Das ist die Werhahnlinie. ^^
Danke für die Aufklärung ;)
Na klar. Damit sind wir bestimmt schon oft gefahren!
Geilo! Ich schaue gerade Mr. Robot und jetzt weiß ich (Achtung, kleiner Spoiler) wie er in der letzten Folge der 3. Staffel seinen Private Key in zwei Bildern versteckt hat (haben könnte) - seeehr cool! Danke! :D
Ja, so könnte er es gemacht haben ;)
Hab ich was verpasst? Wie löst du die Redundanz bei "seek" auf? Müsste die Nachricht in der Ausgabedatei nicht mehrfach vorkommen?
Ich habe so ein Programm mal in Java geschrieben. Es ist aber noch ein paar Schritte weiter gegangen:
- Ich speichere so etwas wie eine Header-Information. Ich weiß nicht mehr genau, was da alles drin steht, aber auf jeden Fall die Nachrichtenlänge.
- Ich habe eine einfache Verschlüsselung mit Passphrase vorgesehen (Hashwert auf Passphrase = Bitmaske für Xor-Verschlüsselung).
- Ich springe in pseudo-Zufälligen Abständen zwischen den Pixeln anstatt nacheinander um die Nachricht besser im Bild zu verteilen.
- Ich klassifiziere die Pixel anhand benachbarter Pixel (wie viele direkten Nachbarn haben eine "andere Farbe" (Abstand im RGB-Raum muss über einer bestimmten Schwelle liegen). Ich vergleiche nur die 4 direkten Nachbarn. Wenn alle 4 anders sind, ist das die beste Kategorie und diese Pixel werden zuerst aufgebraucht. Dann kommen die mit 3, dann 2 usw.
- Da ich PNGs ausgebe ist es auch möglich den Alpha-Kanal zu nutzen. Dieser wird als allerletztes genommen, weil eine Manipulation dort am ehesten auffällt.
- Ich habe auch noch irgendwie den Dateityp kodiert, weiß aber nicht mehr genau wie. Es war entweder eine Header-Info oder der Salt für die Passphrase (ich glaube es war letzteres).
Wenn du Interesse hast es zu sehen, melde dich, ich teile es gerne mit dir.
wirklich ein sehr sehr schönes Video, du hast alles sehr gut und verständlich erklärt.
haha mir ist gerade aufgefallen dass dieses tolle Video an meinem Geburtstag raus kam :)
Ach wie cool xD
Haha cool :) Alles Gute nachträglich!
@@Florian.Dalwigk hehe danke :)
Hey, wieder mal ein tolles Video. Nur der Ausgabewert nach dem Aufruf von seek sollte eine textdatei mit der größe des Bildes beinhalten und die geheime Nachricht sich wiederholen. Gibt es eine Möglichkeit diese Nachricht nur einmal zu erhalten?
Sicher, du kannst beispielsweise am Anfang der Nachricht eine Länge definieren, d.h. nachdem du die Nachricht entschlüsselt hast, suchst du einen int-Wert der die Länge der Textnachricht angibt und nur diese Länge soll dann ausgegeben werden.
Ich denke, dies sollte die einfachste Methode sein.
@@Marc7437 stimmt, aber man muss eine maximale binäre länge festlegen welche die länge des Textes definiert. Beispiel 8bit, dann darf eine Nachricht nicht mehr als 256 bit lang sein und man muss auch die grenze zwischen den Längen bits und den Nachrichten bits finden. Vielleicht ist ein Null-Byte die beste Möglichkeit. Einfach am Ende der Nachricht einen Null-Byte als Grenze anbinden.
Was wäre aber, wenn die Datei zu klein ist für die Nachricht?
Klasse Video auf jedenfall nen daumen rauf verdient, mir ist im Tumbnail bei den zwei Alpakas nur Aufgefallen das beim Rechten Bild die beige Fläche am Rand des Kopfes zwischen den Ohren ein sichbares Stück Größer und gebeult ist und etwas vom magenta fehlt, als würde dort die Farbe für den Übergang fehlen. 😅
Sehr gute Augen!
Ich sehe das auf einem Bildschirm mit 24 bit Farbtiefe, kann es möglich sein dass das Bild während des Vorgangs so stark Komprimiert wird dass selbst der kleinste nenner ein derartig sichtbares Color Banding hervorrufen kann.
Gibt es noch weitere Möglichkeiten die Bilder Farblich zu verändern sodass der Empfänger das Bild erst auf den Farbzustand nach verstecken der Nachricht zurück wandeln muss um überhaupt einen Brauchbaren Vergleich zum Originalen Bild feststellen zu können.
Das einfache Umwandeln anhand des Original Bildes würde die Nachricht dann doch nur weiter verfälschen sollte man versuchen ohne genaue Angabe den Original Zustand wiederherzustellen.
Vigenère ist doch eigentlich einfacher umzusetzen, mit mehr Nutzlast und sicherer(wenn Angreifer versteckte Botschaften erwarten)
Ich fände schön wenn du auch ein Video darüber machst wie man das bricht, wenn das Passwort so lang wie die Nachricht und zufällig ist und das Passwort für die nächste Nachricht hintendrangehängt und verschlüsselt wird.
Wie immer gutes Video
Dein pixeliger crush sieht echt cool aus, würde ich auch hinterherlaufen xD
Ich frage mich echt wie lange du gebraucht hast um dir das alles zu überlegen :D
Wenn man sich den Code anschaut sieht das ja alles ganz logisch aus, aber auf die Idee wäre ich erst gar nicht gekommen.
Gutes Video!
Danke dir :) Gar nicht sooo lange ;)
Sehr gut erklärt.
Jedoch gibt es einen kleinen Denkfehler, wenn sie mündlich ausgemacht haben das er ihr (oder andersrum) auf einer social media Plattform ein bild schickt wo die botschaft drin ist, hätten sie auch gleich sagen können ohne einen so großen aufwand zu betreiben. Wenn sie es nicht mündlich Gemacht haben sondern geschrieben haben weis der (hacker oder zuhörer oder so) auch wo und wie die geheimbotschaft versteckt ist. Aber sonst wirklich sehr interesannt
Das müssen sie nur einmal sagen und können das dann zukünftig immer wieder machen. Das war nicht nur auf einen einmaligen Austausch bezogen.
Das müsste dann auch in einer Audio-Datei möglich sein? Aber ich denke mal, das wird um einiges komplizierter :/
Bei audio Dateien könnte das eigentlich auch gut funktionieren. Bei unkomprimierten 16-Bit WAV Dateien sollte kein Unterschied bemerkbar sein. Auch Wave Dateien selbst mit Python im Binär Format zu speichern ist umsetzbar (habe ich schon gemacht), da die dateistruktur vergleichsweise einfach aufgebaut ist.
Dazu kommt auch noch ein Video.
Du auch hier Lex ?
Und den versteckten text dann direkt noch mit text to speech in eine neue audio Datei verwandeln. Für style Punkte
😎
Hab das Video zwar noch nicht ganz geguckt sieht aber bis jetzt sehr interessant aus 👍
Bin einfach Fan! 👍👍👍👍👍
Auch gut 😅
Cooles Video ,wie immer 😎👍
Vielen Dank!
Sehr schön. Insbesondere wenn man bedenkt, das Text noch die naheliegende Form der Daten wäre!
Spannend wird es, wenn man ganz neue Bilder, Karten, Sounds und so weiter auf diese Weise versteckt ;)
Meine Frage: Wie schnell ist das Programm im Durchlauf, insbesondere bei hochauflösenden/großen Bildern?
Ich würde aus Performancegründen da vielleicht noch eine Start/Stop Mechanik einbauen.
Bei hochauflösenden Bildern bzw. kurzen zu versteckenden Nachrichten/Daten müsste die Schleife immer das gesamte Bild durchlaufen. Mit ner START/STOP Mechanik könnte man so evtl. die Rechenzeit reduzieren. Wobei ich noch nicht weiß, wie gut die Performance bereits in deiner Vorlage ist.
Bei meinem Computer hat es ungefähr 15 Sekunden gebraucht um die Botschaft zu verstecken und etwa 40 Sekunden um sie wieder zu entschlüsseln
Sehr nice! Schade, dass du die Anwendung des Programms nicht gezeigt hast
Die sollst du ja selbst machen
Wie immer gutes Video.
Eine Frage hätte ich jedoch noch.
Ab Minute 11:20 verstehe ich die Zusammenhänge nicht mehr, damit meine ich, dass ich nicht weiß wo das "hide()" hinkommt und wie man denn jetzt ein Bild zurückbekommt. Muss das hide() in die Main Klasse ?
Außerdem Frage ich mich wo ich den zu versteckenden Text und das Bild angeben muss?
Du kannst alle Funktionen in eine .py-Datei schreiben. Du musst vorher ein Bild und eine Textdatei mit der Botschaft anlegen und den Pfad wie im Video zu sehen angeben. Du kannst die Parameter entweder in der Funktion selber füttern und dann einfach die Funktion hide() mit "hide()" aufrufen, oder du rufst hide('pfad1', 'pfad2', 'pfad3') auf. Die Pfade müssen dabei natürlich der Reihenfolge der Parameter in der Funktion, also (in_file, secret, out_file) entsprechen. Die Output-Bilddatei wird automatisch erstellt, sobald du das Programm ausführst.
Ich hoffe das hilft dir weiter :)
interessantes Video
Danke dir!
👍
:)
Warte hast du das nicht schonmal gemacht? Ach egal deine Videos sind gut genug, dass ich sie trotzdem anschauen würde!
Ne, ich habe mal ein Video zu einem ähnlichen Thema erstellt. Dazu aber noch nicht.
9:10 Keine Ahnung ob ich einfach zu wenig in Python mache oder da ein System an mir vorbei gegangen ist, aber die Funktion die du zur bit manipulation geschrieben hast finde ich nicht so gut lesbar wie ein paar bit operationen. Vielleicht wäre es besser weniger als one-liner oder mit weniger Python spezifischen Operationen :)
Das ist Geschmacksache ...
Cooles Video! Hast du schonmal was zu Datenkompression oder Fehlerkorrektion gemacht?
Ja, aber nicht in Videoform ;)
Hey
ich schau gern deine video
damit wenn ich als informatiker gefragt werde was ist eig dies oder das ich es genau in der art wie du es erklärst erklären kann oder ihnen einfach dein video dazu zeigen kann
selbst bin ich entwickler und egal wo man anfängt zu entwickeln meistens existiert schon eine codebase die meist sehr groß ist und meist auch nicht so schön
für Schönen code gibt es Metriken
Da ich davon ausgehe das du davon schonmal etwas mitbekommen hast wäre es vielleicht interessant für dich ein video über einige der metriken zu machen die so existieren
lg Scharada
Eine interessante Idee, zugegeben... ABER...
Hier werden verlustfrei gespeicherte Bild Pixel (PNG Format) binär manipuliert, was aber nun bei nachfolgender verlustbehafteter Kompression (JPEG) und Auflösungs-Reduktion (typisch für Messenger Dienste) leider zwangsläufig zur Zerstörung der Nachricht führt.
Gibt es hierfür Lösungen?
Das nächste Video wird dann ein Algorithmus mit zusätzlicher Kennwort Verschlüsselung? Kennwortvorschlag: Buttler
Ist es möglich eine Stunde bei dir zu buchen für einige private Fragen?
Das ist leider nicht möglich. Du kannst deine Fragen aber gerne auf UA-cam stellen ;)
Natürlich kann man die Kommunikation "absichern" indem man sie verschlüsselt und entsprechend beim ersten Bilder wechsel die gegenseitigen PubKeys tauscht. Hatte dieses Thema auch im Studium und man sollte für das selbst ausprobieren jedoch wissen, dass wenn man Bilder per Messenger schickt diese idr. komprimiert und reduziert werden und dadurch die Nachricht verloren gehen kann.
Natürlich! Die Steganographie an sich ist aber nach Kerkhoff ein unsicheres Verfahren.
@@Florian.Dalwigk ein interessantes Feld ist sie heutzutage aber noch immer gerade wenn man sich mit dem Thema Lizenzierung auseinander setzt.
Wohl wahr!
Ich hätte es mit Open CV gemacht. Da werden automatisch die BGR Werte der Pixel in dezimal angezeigt. Mit einer Hilfsfunktion hätte ich die Dezimalzahlen in binär umgewandelt und den letzten Bit geändert, dann wieder in dezimal umgewandelt und mit dem Pixel im Bild ersetzt.
sehr cool :)
Soso du warst also auf der Schadowstraße? :)
Ne, aber danke, dass ich jetzt weiß, wo diese U-Bahn-Station liegt ;)
ich frage mich bei 11:11 was das für ein zeichen nach dem Prozentzeichen ist? Weil wollte das Script selbst testen
So viele Möglickeiten dafür gibt es nicht
@@Florian.Dalwigk das gibt es nicht aus meiner tastz
@@PitGamer-sj4qydoch gibt es, das mysteriöse Zeichen ist nämlich ein kleines L mein gutster
Hi @Algorithmen verstehen, kann man das auch in JS umsetzen?
Ja
@@Florian.Dalwigk Ok, kannst du das vllt auch in einem Video zeigen ?
Eher nicht, ich habe es ja schon in Python gezeigt.
@@Florian.Dalwigk pk
Du bist gut.. woher hast du das alles gelernt?
Informatikstudium + Selbststudium
Stenografie? :P
Alles, was ich dazu sagen kann: Butler
Nicht Stenografie, STEGANOgrafie ;)
Kann man das auch in Videos 😁? Im Prinzip sind das ja auch nur eine Aneinanderreihung von Matrizen🤔
Ja, das geht. Ein Video ist nur eine Abfolge mehrerer Bilder (mit Ton)
Woher weiß man später, wann das Dateiende der Geheimbotschaft erreicht wurde?
Braucht man hier nicht, weil es wiederholt wird. Man könnte aber am Anfang die Länge definieren oder bei anderen Dateitypen die EOF-Signatur suchen.
Kann ich auch größere zip Archive auf diese Weise verstecken?
Solange das Bild groß genug ist, ja.
Aber was passiert wenn die Nachricht zu lange ist? Dann wird sie doch nur bis zu einem gewissen grad gespeichert, zum Beispiel bis zur hälfte, könnte gerade bei unscharfen bildern in kombination mit langen nachrichten win problem sein oder?
Dann ist für das Verstecken der Nachricht kein Platz, ja.
@@Florian.Dalwigk ok vielen dank. Dann nutze ich ab jetzt 4k Bilder 🤝
:D Du kannst dir den Speicherplatz sehr leicht berechnen, denn pro Pixel können 3 Bits gespeichert werden.
6:19 Ich habe jetzt, glaube ich, 60 Minuten auf die beiden Bilder geguckt, und ich bin fest der Überzeugung, ich weiß was es dachte als es fotografiert wurde! Ich sage euch das aber nicht, weil das zu intim ist. :D
okay ... :D
Hast du das mal auf ein paar Bilder im Netz angewandt? Vielleicht kannste da ja eine nette Unterhaltung mitlesen ;-D
Bestimmt ... Habe ich aber noch nicht ausprobiert
Endlich weiß ich was hinter der drei ??? Folge steckt
Ja 😁😁😁
Wow...
Gutes Wow oder schlechtes Wow?
Guten Tag.
Wenn der erste Pixel im Bild weiß ist und die Methode seek() 'int' object is not subscriptable".
Hat irgendjemand eine Lösung dafür?
Was ist, wenn man die Nachicht die man im Bild versteckt zusätzlich mit einem sicheren Verfahren verschlüsselt? Ist die Verschlüsselung dann "sicher"?
Wenn sie sicher verschlüsselt ist, dann ist die Nachricht auch ohne Bild sicher verschlüsselt. Text im Bild sorgt nur dafür, dass weniger Personen Kenntnis haben, dass du Zeug verschlüsselst.
@@Marc7437 Also ja
Lustiger Weise hat beim Bild mit der Robbe die YT Komprimierung die Unterschiede zwischen den beiden Bildern zu einem Bild angeglichen und damit direkt die größte Schwäche dieses Steno Verfahrens offenbart. Komprimierung
👍
me : lache in alter Alt Griechisch
:D
3:52 wieso ist die mittlere Bestehens aus 7 zahlen?
Führende 0 ... Ne, war ein Tippfehler.
verstehen auch ok is ja nicht schlimm danke für die Antwort
;)
Ja, ich sehe einen Unterschied zwischen den Bildern.. Oh warte... Ist nur Dreck auf meinem Display... :P
😅
ImportError: No module named PIL
wie installiert man die Library?
Pip
@@Florian.Dalwigk ist schon installiert, geht trotzdem nicht (sogar auf die neueste Version geupdated)
Den einzigen Unterschied den ich sehe (bei den Bildern) ist das es beidem bearbeiteten Bild es minimal heller ist
Das kann man eigentlich nicht sehen.
Also , ich wusste nicht genau, wozu ich dich frage posten soll. Also schreib ich’s mal hierhin😅.
AX B = {1,2} x {3,4} = {(0,0)(0,1)(1,0)(1,1)}
Beim Kartesischen Produkt wurde hier die Menge A betrachtet mit sich selbst multipliziert. Woher nehmen wir dann die {3,4} also okay die sin das Produkt von B ,aber müssten dann beim Ergebnis nicht noch die anderen vier Tupel von inkludiert sein {3,4}🤔
Das ist nicht das kartesische Produkt. Im Buch gibt es dazu ein Kapitel. {(1,3),(1,4),(2,3),(2,4)} ist hier das kartesische Produkt. Ich kann hier aus zeitlichen Gründen leider nicht alle Fragen beantworten und du hast schon sehr viele gestellt ;)
Du kannst solche Fragen auch auf meinem Discord Server im passenden Forum stellen. Bitte beachte, dass auch hier die Fragen auf freiwilliger Basis beantwortet werden.
@@Florian.Dalwigk 👍
@@Florian.Dalwigk hab es mit was verwechselt 😂und sorry, wenn es nervt einfach früher sagen😁
Es nervt nicht. ;) Ich kann nur zeitlich nicht alle Fragen beantworten ;) Also nicht wundern, wenn du mal keine Antwort bekommen solltest. Deshalb mein Vorschlag mit dem Discord Server.
Das geht auch besser, ohne dass man dem Bild ansehen kann, dass Bits manipuliert sind.
Klar, es gibt auch Ansätze über Fourier-Transformation oder bestimmte Bitmuster.
Warum wird ein Freund/Freundin "zerquetschen" genannt?
Hä?
@@Florian.Dalwigk Nagut dann halt Schwarm. Schwarm Freund. Die person in die man verknallt ist.
Achso. Keine Ahnung, sagt man eben so ...
@@Florian.Dalwigk Hm, okay.
Achtung..
Früher gab es nur 2 Farben... Schwarz und Weiß
Dann gab es 4 Farben..... 2²
Als nächstes gab es 16 Farben.... = 4²
Jetzt war die Zeit von VGA (256 Farben) erreicht.... 16²
Als letztes besann man sich darauf, die Farben (R) ot (G)rün (B)lau in jeweils 256 Abstufungen ( 0 - 255 ) oder Hexadezimal (00 - FF) aufzusplitten.
Daraus ergibt sich eine Farbvielfalt von 256*256*256 = 16.777.216 Farbabstufungen.
Auf meinem ersten Rechner (Atari ST, 640*400 Pixel monochrom) hätte man vielleicht noch "Störungen" mit blossem Auge erkennen können.
Was viele nicht verstehen ist, dass das ganze Video eigentlich nur ein diskreter, geschickter Hinweis an seinen Crush ist, dass sie sein Crush ist. Das ganze Video ist also eigentlich nur ein Transportmittel für diese versteckte Botschaft!
Das ist echt meta! 😅
Wenn man in einem Bild eine versteckte Nachricht vermutet aber es nicht sicher weis gibt es eine Möglichkeit das herauszufinden
Da wird momentan dran geforscht. Aber ja, gibt es.
@@Florian.Dalwigk danke
Gerne
Geht das auch für Schwatz Weiss Bilder?
Natürlich! :)
Dort kann man dann aber weniger Informationen speichern.
Würde der Unterschied optisch da mehr auffallen?
Ja, weil der Wertebereich größer ist.
Dass in der Mitte nur 7 Ziffern sind triggert richtig
3:52
Führende 0 :P
Bin mir ziemlich sicher das man mit array[-1] das letzte element vom array kriegen kann
Ok ...
@@Florian.Dalwigk Du hattest in deinem Video array[len(array) - 1] deswegen
Das ist da aber richtig.
@@Florian.Dalwigk ja kann man aber kürzer machen
Jo
die 3 ??? justus jonas ... peter shaw .. bob andreas.....justus jonas jonas... peter shaw...bob andreas die 3 ??? / Kindheit einfach
Yessss :)
ich versteh nur bitarray. 🤔
bitarray mit der länge des bitarry auslesen. bitarray. textdatei. 🤪 ich guck jetzt ne sachgeschichte aus sendung mit der maus.
Welche? :)
@@Florian.Dalwigk Na ich fang mal bei den Grundlagen an: "Internet" ;o) ua-cam.com/video/fpqhjEtznVk/v-deo.html
Wie dämlich
Du scheinst von dir zu sprechen 🤷♂️