{"id":239,"date":"2019-10-22T15:14:41","date_gmt":"2019-10-22T15:14:41","guid":{"rendered":"http:\/\/gigers.com\/blog\/?p=239"},"modified":"2024-06-24T17:33:04","modified_gmt":"2024-06-24T17:33:04","slug":"steganografie-mit-snap","status":"publish","type":"post","link":"https:\/\/gigers.com\/blog\/steganografie-mit-snap\/","title":{"rendered":"Steganografie mit Snap!"},"content":{"rendered":"<p>Die Steganografie ist die Kunst, zus\u00e4tzliche Informationen in einem Medium zu verstecken. In der Digitaltechnik geschieht dies h\u00e4ufig dadurch, dass ein bestimmtes, f\u00fcr Aussenstehende unauff\u00e4lliges Bitmuster hinterlegt wird.<\/p>\n<p>Das folgende Snap!-Beispiel verwendet eine einfachere Methode und nutzt die Tatsache, dass in einem Computersystem jeder Buchstabe auch durch eine Zahl repr\u00e4sentiert werden kann. Diese Zahl wird dann einfach in einen Farbkanal von Bildpunkten geschrieben.<\/p>\n<figure id=\"attachment_241\" aria-describedby=\"caption-attachment-241\" style=\"width: 960px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-241\" src=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2019\/10\/steganography_stage.png\" alt=\"\" width=\"960\" height=\"720\" srcset=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2019\/10\/steganography_stage.png 960w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2019\/10\/steganography_stage-300x225.png 300w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2019\/10\/steganography_stage-768x576.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><figcaption id=\"caption-attachment-241\" class=\"wp-caption-text\">In diesem Kunstwerk aus Quadraten versteckt sich eine geheime Botschaft.<\/figcaption><\/figure>\n<h2>Programmierung in Snap!<\/h2>\n<p>Das Programm besteht aus zwei Teilen:<\/p>\n<ol>\n<li>Im Hauptteil, welcher direkt beim Start aufgerufen wird, berechnet das Programm f\u00fcr jeden Buchstaben einer Geheimbotschaft den entsprechenden nummerischen Wert und verwendet diesen dann, um den Gr\u00fcnkanal der einzelnen Farbquadrate zu setzen. Damit diese Ver\u00e4nderungen im Gr\u00fcnkanal nicht so augenf\u00e4llig sind, werden f\u00fcr den Blau- und den Rotkanal zus\u00e4tzlich zuf\u00e4llige Werte gesetzt.<\/li>\n<li>Das Auslesen der Bildinformation wird gestartet, sobald die Leertaste gedr\u00fcckt wird. Dazu wird der Gr\u00fcnwert eines jeden Quadrates bestimmt und wieder in einen Buchstaben umgerechnet.<\/li>\n<\/ol>\n<figure id=\"attachment_242\" aria-describedby=\"caption-attachment-242\" style=\"width: 525px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-242\" src=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2019\/10\/steganographie_code-782x1024.png\" alt=\"\" width=\"525\" height=\"687\" srcset=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2019\/10\/steganographie_code-782x1024.png 782w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2019\/10\/steganographie_code-229x300.png 229w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2019\/10\/steganographie_code-768x1005.png 768w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2019\/10\/steganographie_code.png 1198w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><figcaption id=\"caption-attachment-242\" class=\"wp-caption-text\">Mit diesen Befehlen kann eine vorher festgelegte Botschaft in das Bild kodiert und anschliessend auch wieder ausgelesen werden.<\/figcaption><\/figure>\n<p>Um die farbigen Quadrate auf den Bildschirm zu zeichnen werden drei ineinander verschachtelte for-Schlaufen verwendet:<\/p>\n<ol>\n<li>Die z-Schlaufe zeichnet die einzelnen Quadrate, deren Farbe durch jeweils einen einzelnen Buchstaben bestimmt wird.<\/li>\n<li>Die x-Schlaufe rechnet f\u00fcr jeden Buchstaben den passenden Farbwert (Gr\u00fcnkanal) aus und zeichnet jeweils eine Zeile von Quadraten.<\/li>\n<li>Die y-Schlaufen bestimmt, wo die Quadratzeile auf dem Bildschirm platziert wird.<\/li>\n<\/ol>\n<p>Dabei benutzt das Programm zus\u00e4tzliche Bibliotheken, welche erst \u00fcber das Dateimen\u00fc importiert werden m\u00fcssen:<\/p>\n<figure id=\"attachment_243\" aria-describedby=\"caption-attachment-243\" style=\"width: 600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-243\" src=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2019\/10\/steganografie_import_rgb.png\" alt=\"\" width=\"600\" height=\"590\" srcset=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2019\/10\/steganografie_import_rgb.png 600w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2019\/10\/steganografie_import_rgb-300x295.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><figcaption id=\"caption-attachment-243\" class=\"wp-caption-text\">Die Funktion &#8222;set pen color&#8220; erm\u00f6glicht das einfache Festlegen der Quadratfarbe nach dem RGB-Schema.<\/figcaption><\/figure>\n<p>Die Funktion &#8222;multiline&#8220; aus der Bibliothek &#8222;allow multi-line text input into a block&#8220; erleichtert die Texteingabe f\u00fcr die Geheimnachricht.<\/p>\n<h2>Verwendung der Steganografie<\/h2>\n<p>Bei der Verschl\u00fcsselung von Daten sorgt man heute meist f\u00fcr Offenheit, was bedeutet, dass die Verfahren zur Verschl\u00fcsselung offengelegt werden k\u00f6nnen und es einer Drittperson trotzdem nicht in n\u00fctzlicher Frist gelingt, die Geheimbotschaft zu lesen. Bei der Steganografie hingegen versucht man die Tatsache zu verschleiern, dass \u00fcberhaupt eine geheime Mitteilung besteht. Verwendung findet dieses Verfahren deshalb in folgenden Situationen:<\/p>\n<ul>\n<li>Bei verschiedenen Medien kann mittels der Steganografie ein Wasserzeichen eingebaut werden, welches R\u00fcckschl\u00fcsse auf die Weitergabe eines solchen Mediums zul\u00e4sst. Dies ist beispielsweise dann n\u00fctzlich, wenn \u00fcberpr\u00fcft werden soll, ob ein Copyright eingehalten wurde.<\/li>\n<li>Mittels des gleichen Verfahrens ist es aber beispielsweise auch m\u00f6glich, einen Schadcode, z.B. f\u00fcr einen Virus, in eine daf\u00fcr geeignete Computerdatei einzuf\u00fcgen.<\/li>\n<\/ul>\n<h2>Verwendung in der Schule<\/h2>\n<p>In der Informatik k\u00f6nnen mit dem Programmbeispiel die Konzepte Variable, verschachtelte Schlaufen und die Kodierung von Zeichen und Farben thematisiert werden. Fortgeschrittene Sch\u00fclerinnen und Sch\u00fcler k\u00f6nnen den Kodierungsalgorithmus so anpassen, dass das Auslesen der Informationen durch eine Drittperson erschwert wird, indem beispielsweise mehr als ein Farbkanal f\u00fcr die Verschl\u00fcsselung verwendet wird (Rotation oder Auswahl eines RGB-Kanals abh\u00e4ngig vom zuletzt verschl\u00fcsselten Buchstaben). Etwas einfacher ist die Anpassung des Farbraums durch geschicktes Ausw\u00e4hlen der Zufallszahlen f\u00fcr die nicht kodierten Farbkan\u00e4le.<\/p>\n<p>Nat\u00fcrlich k\u00f6nnen sich die Sch\u00fclerinnen und Sch\u00fcler auch mit Geheimbotschaften hinterlegte Bilddateien austauschen. Sie k\u00f6nnen die Bilder mit einem Rechtsklick auf die B\u00fchnenfl\u00e4che (stage) speichern.<\/p>\n<figure id=\"attachment_245\" aria-describedby=\"caption-attachment-245\" style=\"width: 289px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-245\" src=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2019\/10\/steganografie_bild_speichern.png\" alt=\"\" width=\"289\" height=\"169\" \/><figcaption id=\"caption-attachment-245\" class=\"wp-caption-text\">Ein Bild kann mittels der eingebauten Speicherfunktionen gesichert werden.<\/figcaption><\/figure>\n<p>Ebenso einfach kann ein Bild geladen werden, indem man dieses dem Hintergrund als neues Kost\u00fcm zuordnet.<\/p>\n<figure id=\"attachment_246\" aria-describedby=\"caption-attachment-246\" style=\"width: 394px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-246\" src=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2019\/10\/steganografie_bild_laden.png\" alt=\"\" width=\"394\" height=\"262\" srcset=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2019\/10\/steganografie_bild_laden.png 394w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2019\/10\/steganografie_bild_laden-300x199.png 300w\" sizes=\"auto, (max-width: 394px) 100vw, 394px\" \/><figcaption id=\"caption-attachment-246\" class=\"wp-caption-text\">Ein Bild l\u00e4dt man, indem man dem Hintergrund oder wahlweise einem anderen Objekt ein neues Kost\u00fcm zuordnet.<\/figcaption><\/figure>\n<p>Damit steht dem Austausch von geheimen Botschaften innerhalb einer Klasse nichts mehr im Wege.<\/p>\n<h3>Quellen<\/h3>\n<p>Representing Data with Images and Sound (Kurs der Rasperry Pi Foundation auf FutureLearn), <a href=\"https:\/\/www.futurelearn.com\/courses\/representing-data-with-images-and-sound\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.futurelearn.com\/courses\/representing-data-with-images-and-sound<\/a><\/p>\n<p>Wikipedia: Steganografie, <a href=\"https:\/\/de.wikipedia.org\/wiki\/Steganographie#Ziele_der_Steganographie\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/de.wikipedia.org\/wiki\/Steganographie#Ziele_der_Steganographie<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Steganografie ist die Kunst, zus\u00e4tzliche Informationen in einem Medium zu verstecken. In der Digitaltechnik geschieht dies h\u00e4ufig dadurch, dass ein bestimmtes, f\u00fcr Aussenstehende unauff\u00e4lliges Bitmuster hinterlegt wird. Das folgende Snap!-Beispiel verwendet eine einfachere Methode und nutzt die Tatsache, dass in einem Computersystem jeder Buchstabe auch durch eine Zahl repr\u00e4sentiert werden kann. Diese Zahl wird &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/gigers.com\/blog\/steganografie-mit-snap\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eSteganografie mit Snap!\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-239","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/gigers.com\/blog\/wp-json\/wp\/v2\/posts\/239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gigers.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gigers.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gigers.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gigers.com\/blog\/wp-json\/wp\/v2\/comments?post=239"}],"version-history":[{"count":3,"href":"https:\/\/gigers.com\/blog\/wp-json\/wp\/v2\/posts\/239\/revisions"}],"predecessor-version":[{"id":248,"href":"https:\/\/gigers.com\/blog\/wp-json\/wp\/v2\/posts\/239\/revisions\/248"}],"wp:attachment":[{"href":"https:\/\/gigers.com\/blog\/wp-json\/wp\/v2\/media?parent=239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gigers.com\/blog\/wp-json\/wp\/v2\/categories?post=239"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gigers.com\/blog\/wp-json\/wp\/v2\/tags?post=239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}