Worksheet: Unterschied zwischen den Versionen
(Arbeitsblatt) |
|||
(6 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
__NOTOC__ | __NOTOC__ | ||
− | [ | + | [https://wiki.zum.de/index.php?title=PH_Heidelberg/Bausteine/Verschlüsselung/Worksheet&printable=yes Druckversion] |
=== Die Cäsar Codierung === | === Die Cäsar Codierung === | ||
− | Bei der Cäsar-Verschlüsselung handelt es sich um eine monoalphabetische Substitution. | + | Bei der Cäsar-Verschlüsselung handelt es sich um eine [http://de.wikipedia.org/wiki/Monoalphabetische_Substitution monoalphabetische Substitution]. Das bedeutet, dass bei der Veschlüsselung nur ein einziges festes Alphabet zur Verschlüsselung verwendet wird. Folgendes Beispiel soll das ganze verdeutlichen, bei dem zum Klartext (als Zahl) drei addiert werden um die Geheimbotschaft zu erhalten. |
{{PHHDLückeMitText|Der Klartext lautet: ICHLIEBEDICH<br /> | {{PHHDLückeMitText|Der Klartext lautet: ICHLIEBEDICH<br /> | ||
Geheimbotschaft: <br /><br />Suche dir selbst einen Klartext und verschlüssele ihn.<br /><br /><br />}} | Geheimbotschaft: <br /><br />Suche dir selbst einen Klartext und verschlüssele ihn.<br /><br /><br />}} | ||
Zeile 15: | Zeile 15: | ||
Offensichtlich macht die Anwendung von <math>D_k</math> die vorherige Anwendung von <math>E_k</math> wieder rückgängig. | Offensichtlich macht die Anwendung von <math>D_k</math> die vorherige Anwendung von <math>E_k</math> wieder rückgängig. | ||
<br /> | <br /> | ||
− | Das Verfahren ist allerdings total unsicher (warum?). Eine beliebige Permutation der Buchstaben anstelle einer einfachen Verschiebung macht es auch nicht besser (warum?). | + | Das Verfahren ist allerdings total unsicher (warum?). Eine beliebige Permutation der Buchstaben anstelle einer einfachen Verschiebung macht es auch nicht besser (warum?).<br /> |
+ | Man kann sich das auch damit verdeutlichen, indem man sich die "Bastelanleitung" ([http://www.nw-unterricht.de/materialien/kriminallabor/2c-WirbaueneineVerschluesselungsscheibe.pdf Anleitung]) einer "Verschlüsselungsscheibe" oder [http://de.wikipedia.org/wiki/Chiffrierscheibe Chiffrierscheibe] anschaut. Eine solche Scheibe kann man auch schon mit Kindern in der Grundschule anfertigen. | ||
+ | |||
+ | === Vigenère-Verschlüsselung === | ||
+ | Ein bisschen gewitzter als die Cäsar-Verschlüsselung ist die Vigenère-Verschlüsselung (es handelt sich hier um eine [http://de.wikipedia.org/wiki/Polyalphabetische_Substitution polyalphabetische Substition]). Dabei wird das folgende Vigenère-Quadrat benutzt. | ||
{| class="wikitable" | align="center" | {| class="wikitable" | align="center" | ||
Zeile 59: | Zeile 63: | ||
|} | |} | ||
(entnommen aus der [http://de.wikipedia.org/wiki/Polyalphabetische_Substitution Wikipedia-Seite zur polyalphabetischen Substitution]) | (entnommen aus der [http://de.wikipedia.org/wiki/Polyalphabetische_Substitution Wikipedia-Seite zur polyalphabetischen Substitution]) | ||
+ | |||
+ | {{PHHDLückeMitText|Nehmen wir mal den selben Klartext wie bei der Cäsar-Verschlüsselung. Mit dem Klartext und einem Geheimwort (im Folgenden RING) verschlüsseln wir nun unseren Klartext.<br /> | ||
+ | Geheimwort: RINGRINGRING<br /> | ||
+ | Klartext: ICHLIEBEDICH<br /> | ||
+ | Geheimbotschaft:<br /> | ||
+ | <br /> | ||
+ | Suche dir selbst einen Klartext und verschlüsslele ihn mit einem Wort deiner Wahl.<br /><br /><br /><br /><br />}} | ||
+ | |||
+ | == RSA == | ||
+ | |||
+ | Problematisch bei den bisherigen Verfahren ist, dass es sich um symmetrische Verfahren handelt: Sender und Empfänger arbeiten mit demselben Schlüssel. Beide müssen sich also vorher über den Schlüssel verständigen - aber wie? | ||
+ | |||
+ | Dieses Problem beheben asymmetrische Verfahren: Der Sender verschlüsselt mit einem Schlüssel <math>k</math>, der Empfänger entschlüsselt mit einem Schlüssel <math>l</math>, und <math>l</math> ist aus <math>k</math> praktisch nicht herzuleiten. Der Empfänger teilt dann den Sendern den Schlüssel <math>k</math> mit, mit dem die Sender Nachrichten für den Empfänger verschlüsseln sollen. Der Empfänger behält <math>l</math> schön für sich: Damit kann nur er und sonst niemand die Botschaft entschlüsseln. Auf diesem Prinzip beruht RSA, ein Verschlüsselungsverfahren, das von Rivest, Shamir und Adleman entwickelt wurd. | ||
+ | |||
+ | === Konstruktion der Schlüssel === | ||
+ | |||
+ | '''Konstruktion des öffentlichen Schlüssels (public key):''' | ||
+ | |||
+ | # Bestimme zwei (sehr große) Primzahlen <math>p</math> und <math>q</math> | ||
+ | # Bilde <math>N = p\cdot q</math> | ||
+ | # Bestimme <math>\varphi(N)</math> mit <math>\varphi(N)=\varphi(p\cdot q)=\varphi(p)\cdot\varphi(q)=(p-1)\cdot (q-1)</math> | ||
+ | # Wähle eine Zahl <math>1<e<\varphi(N)</math> mit <math>ggT(e,\varphi(N))=1</math> | ||
+ | # Der öffentliche Schlüssel ist dann <math>(e,N)</math> | ||
+ | |||
+ | '''Konstruktion des privaten Schlüssels (private key):''' | ||
+ | |||
+ | # Bestimme das Inverse <math>d</math> zu <math>e</math> mod <math>\varphi(N)</math>, also <math>e\cdot d\equiv 1</math> mod <math>\varphi(N)</math>. Man macht dies am einfachsten mit dem erweiterten euklidischen Algorithmus, man berechnet also <math>e\cdot d + q\cdot\varphi(N) = 1</math>. | ||
+ | # Der private Schlüssel ist dann <math>(d,N)</math> | ||
+ | |||
+ | Somit ist <math>(e,N)</math> der öffentliche und <math>(d,N)</math> der private Schlüssel. Den öffentlichen Schlüssel <math>(e,N)</math> gibt man anderen Personen, die Geheimbotschaften an einen schicken können sollen (man darf den z.B. ins Internet stellen). Den privaten Schlüssel <math>(d,N)</math> behält man tunlichst für sich und gibt ihn keinesfalls weiter - dieser dient dem Entschlüsseln der Geheimbotschaften. Die Zahle <math>p</math>, <math>q</math> und <math>\varphi(N)</math> sind Abfall. Diese sollten aber ebenso niemandem in die Hände fallen, also besser wegwerfen! | ||
+ | |||
+ | === Ver- und Entschlüsselung === | ||
+ | |||
+ | Der Sender verschlüsselt eine geheime Botschaft <math>T</math> (in diesem Fall eine Zahl) mit folgender Berechnung: | ||
+ | |||
+ | <math>G = T^e</math> mod <math>N</math> | ||
+ | |||
+ | <math>G</math> ist der Geheimtext und wird dem Empfänger übermittelt. Der Empfänger kann nun den Geheimtext <math>G</math> folgendermaßen entschlüsseln: | ||
+ | |||
+ | <math>T = G^d</math> mod <math>N</math> | ||
+ | |||
+ | denn: | ||
+ | |||
+ | Wir wissen, <math>e\cdot d \equiv 1</math> mod <math>\varphi(N)</math>, also <math>e\cdot d = 1 + r\cdot \varphi(N)</math> für ein <math>r\in\mathbb{Z}</math> | ||
+ | |||
+ | Außerdem wissen wir mit dem Satz von Euler, dass <math>a^{\varphi(m)}\equiv 1</math> mod <math>m</math>, falls <math>ggT(a,m)=1</math>. | ||
+ | |||
+ | Somit ergibt sich: <math>G^d\equiv (T^e)^d \equiv T^{e\cdot d} \equiv T^{1+r\cdot\varphi(N)}\equiv T\cdot T^{r\cdot\varphi(N)}\equiv T\cdot (T^{\varphi(N)})^r \equiv T\cdot 1^r\equiv T</math> mod <math>N</math> | ||
+ | |||
+ | Voraussetzung dafür ist, dass <math>ggT(T,N)=1</math>, und dies erreicht man einfach, in dem man die zu verschlüsselnden Zahlen nicht so groß wählt wie die Primzahlen, die man zur Konstruktion von <math>N</math> verwendet. | ||
+ | |||
+ | Das ganze an einem Beispiel: | ||
+ | |||
+ | # Wir wählen <math>p=7</math> und <math>q=11</math> | ||
+ | # Somit ist <math>N=77</math> und <math>\varphi(N)=60</math> | ||
+ | # Wir wählen <math>e=47</math> (es gilt nämlich <math>ggT(47,60)=1</math>) | ||
+ | # Wir bestimmten <math>d</math> mit <math>47\cdot d\equiv 1</math> mod <math>60</math>, und der erweiterte euklidische Algorithmus liefert <math>d=23</math> | ||
+ | # Der öffentliche Schlüssel ist nun <math>(47,77)</math>, der geheime ist <math>(23,77)</math>. | ||
+ | |||
+ | Wir verschlüsseln die Zahl <math>T=2</math>: | ||
+ | |||
+ | <math>G = 2^{47}\equiv 18</math> mod <math>77</math> | ||
+ | |||
+ | Und wir entschlüsseln: | ||
+ | |||
+ | <math>18^{23}\equiv ... \equiv 2</math> mod <math>77</math> | ||
+ | |||
+ | So ein Glück. | ||
== Fragen == | == Fragen == | ||
Zeile 65: | Zeile 137: | ||
{{PHHDLückeGroß}} | {{PHHDLückeGroß}} | ||
+ | |||
+ | |||
+ | |||
+ | [[Kategorie:Arbeitsblatt Informatik PH Heidelberg|Verschlüsselung]] | ||
+ | {{SORTIERUNG:{{SUBPAGENAME}}}} | ||
+ | [[Kategorie:PH Heidelberg/Bausteine]] | ||
+ | [[Kategorie:Verschlüsselung]] |
Aktuelle Version vom 11. Dezember 2016, 13:56 Uhr
Die Cäsar Codierung
Bei der Cäsar-Verschlüsselung handelt es sich um eine monoalphabetische Substitution. Das bedeutet, dass bei der Veschlüsselung nur ein einziges festes Alphabet zur Verschlüsselung verwendet wird. Folgendes Beispiel soll das ganze verdeutlichen, bei dem zum Klartext (als Zahl) drei addiert werden um die Geheimbotschaft zu erhalten.
Der Klartext lautet: ICHLIEBEDICH
Geheimbotschaft:
Suche dir selbst einen Klartext und verschlüssele ihn.
Somit handelt es sich bei der Cäsar-Verschlüsselung um ein einfaches, aber sehr unsicheres Verschlüsselungsverfahren, das man mit folgenden Funktionen beschreiben kann:
- Verschlüsselungsfunktion:
mit
- Entschlüsselugsfunktion:
mit
Offensichtlich macht die Anwendung von die vorherige Anwendung von
wieder rückgängig.
Das Verfahren ist allerdings total unsicher (warum?). Eine beliebige Permutation der Buchstaben anstelle einer einfachen Verschiebung macht es auch nicht besser (warum?).
Man kann sich das auch damit verdeutlichen, indem man sich die "Bastelanleitung" (Anleitung) einer "Verschlüsselungsscheibe" oder Chiffrierscheibe anschaut. Eine solche Scheibe kann man auch schon mit Kindern in der Grundschule anfertigen.
Vigenère-Verschlüsselung
Ein bisschen gewitzter als die Cäsar-Verschlüsselung ist die Vigenère-Verschlüsselung (es handelt sich hier um eine polyalphabetische Substition). Dabei wird das folgende Vigenère-Quadrat benutzt.
Text | |||
---|---|---|---|
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z | |||
S c h l ü s s e l |
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
G e h e i m t e x t |
(entnommen aus der Wikipedia-Seite zur polyalphabetischen Substitution)
Nehmen wir mal den selben Klartext wie bei der Cäsar-Verschlüsselung. Mit dem Klartext und einem Geheimwort (im Folgenden RING) verschlüsseln wir nun unseren Klartext.
Geheimwort: RINGRINGRING
Klartext: ICHLIEBEDICH
Geheimbotschaft:
Suche dir selbst einen Klartext und verschlüsslele ihn mit einem Wort deiner Wahl.
RSA
Problematisch bei den bisherigen Verfahren ist, dass es sich um symmetrische Verfahren handelt: Sender und Empfänger arbeiten mit demselben Schlüssel. Beide müssen sich also vorher über den Schlüssel verständigen - aber wie?
Dieses Problem beheben asymmetrische Verfahren: Der Sender verschlüsselt mit einem Schlüssel , der Empfänger entschlüsselt mit einem Schlüssel
, und
ist aus
praktisch nicht herzuleiten. Der Empfänger teilt dann den Sendern den Schlüssel
mit, mit dem die Sender Nachrichten für den Empfänger verschlüsseln sollen. Der Empfänger behält
schön für sich: Damit kann nur er und sonst niemand die Botschaft entschlüsseln. Auf diesem Prinzip beruht RSA, ein Verschlüsselungsverfahren, das von Rivest, Shamir und Adleman entwickelt wurd.
Konstruktion der Schlüssel
Konstruktion des öffentlichen Schlüssels (public key):
- Bestimme zwei (sehr große) Primzahlen
und
- Bilde
- Bestimme
mit
- Wähle eine Zahl
mit
- Der öffentliche Schlüssel ist dann
Konstruktion des privaten Schlüssels (private key):
- Bestimme das Inverse
zu
mod
, also
mod
. Man macht dies am einfachsten mit dem erweiterten euklidischen Algorithmus, man berechnet also
.
- Der private Schlüssel ist dann
Somit ist der öffentliche und
der private Schlüssel. Den öffentlichen Schlüssel
gibt man anderen Personen, die Geheimbotschaften an einen schicken können sollen (man darf den z.B. ins Internet stellen). Den privaten Schlüssel
behält man tunlichst für sich und gibt ihn keinesfalls weiter - dieser dient dem Entschlüsseln der Geheimbotschaften. Die Zahle
,
und
sind Abfall. Diese sollten aber ebenso niemandem in die Hände fallen, also besser wegwerfen!
Ver- und Entschlüsselung
Der Sender verschlüsselt eine geheime Botschaft (in diesem Fall eine Zahl) mit folgender Berechnung:
mod
ist der Geheimtext und wird dem Empfänger übermittelt. Der Empfänger kann nun den Geheimtext
folgendermaßen entschlüsseln:
mod
denn:
Wir wissen, mod
, also
für ein
Außerdem wissen wir mit dem Satz von Euler, dass mod
, falls
.
Somit ergibt sich: mod
Voraussetzung dafür ist, dass , und dies erreicht man einfach, in dem man die zu verschlüsselnden Zahlen nicht so groß wählt wie die Primzahlen, die man zur Konstruktion von
verwendet.
Das ganze an einem Beispiel:
- Wir wählen
und
- Somit ist
und
- Wir wählen
(es gilt nämlich
)
- Wir bestimmten
mit
mod
, und der erweiterte euklidische Algorithmus liefert
- Der öffentliche Schlüssel ist nun
, der geheime ist
.
Wir verschlüsseln die Zahl :
mod
Und wir entschlüsseln:
mod
So ein Glück.
Fragen
Hast du noch Fragen? Notiere sie dir hier, damit du sie in deiner Lerngruppe, in der Übungsstunde oder in der nächsten Plenumssitzung klären kannst!