Projekt Crypt Einfache kryptografische Verfahren zum selber programmieren. von Torsten Zuther.
-
Upload
alma-sachs -
Category
Documents
-
view
223 -
download
2
Transcript of Projekt Crypt Einfache kryptografische Verfahren zum selber programmieren. von Torsten Zuther.
Projekt Crypt
Einfache kryptografische Verfahrenzum selber programmieren.
von Torsten Zuther
Inhalt Seite 11. Einfache klassische Verfahren
1.1. Cäsarverfahren – altes Prinzip modernisiert
1.2. Multiplikationsverfahren1.3. Tausch-Chiffre1.4. Lineare Schieberegister1.5. Vigenére-Chiffre1.6. Aufblähen-Algorithmus1.7. XOR-Verschlüsselung
Inhalt Seite 22. Schwer invertierbare Verfahren
2.1. Das RSA-Verfahren2.2. Der Data Encryption Standard(DES)
1.1. Cäsar modernisiert Idee von Cäsar:(Verschiebung des Alphabets um s Einheiten)
Index 1 2 … 26Alphabet A B … ZChiffriertes Alphabet (s = 4)
E F … D
1.1. Cäsar modernisiert Beispiel:Schlüssel = 11
aus „CAESAR“ wird „NLPDC“
1.1. Cäsar modernisiert Das Alphabet hier besteht aus 256 Zeichen
(ASCII-Zeichensatz). 0 < s < 256
255 Schlüssel
1.1. Cäsar modernisiertBeispiel (s = 46):
1.2. Multiplikationsverfahren Starke Verwandtschaft mit dem
Cäsarverfahren
Jedes Zeichen wird im Modul 256 mit t multipliziert. (t ist der Schlüssel)
K = 44 (Klartext)M = 256 (das Modul, der ASCII-Zeichensatz)T = 11 (t, der Multiplikator oder der Schlüssel)
1.2. Multiplikationsverfahren Beispiel:
Verschlüsselung:
(K * t) mod m = (44 * 11) mod 256 = 484 mod 256 C (Ciphertext)= 228
Entschlüsselung:(modulare Inverse von t ausrechen – mit dem
euklidischen Algorithmus)(C * inv t) mod m = (228 * 163) mod 256= K = 37164 mod 256 = 44
1.3. Tausch-Chiffre Kapselt Cäsar- und Multiplikationsverfahren
Verschlüsselung: c = [(k + s) * t] mod m
Entschlüsselung: k = [(c * inv t) – s] mod m
1.4. Lineare Schieberegister Besteht aus n Bits (Zellen) und einem Index
m (die markierte Zelle)
Beispiel: 0 0 1 1 1 0 1 1 m = 4
Register wird 2n – 1 mal nach rechts verschoben
1.4. Lineare Schieberegister
Schlüssel = 11011...
0 0 1 1 1 0 1 10 0 0 1 1 1 0 10 0 0 0 1 1 1 00 0 0 0 0 1 1 11 0 0 0 0 0 1 1... ... ... ... ... ... ... ...
1.4. Lineare Schieberegister Beispiel Klartext = 01101111; Schlüssel = 11101100
Verschlüsselt = Klartext xor Schlüssel 01101111 ++11101100 10000011 Ciphertext
1.5. Vigenére-Chiffre Ähnlich dem Cäsarverfahren, aber mit mehreren
versch. Schlüsseln zu einem Passwort zusammengefügt:
Klartext = "CAESAR"Passwort = "TEST"
Verschlüsselung:C A E S A R
T(s=20) E(s=5) S(s=19) T(s=20) T(s=20) E(s=5)
1.5. Vigenére-Chiffre Garantiert 100%ige Sicherheit, wenn
Passwortlänge = Klartextlänge
Keine Häufigkeitenanalyse
One-Time-Pad
1.6. Aufblähen-Algorithmus Klartext = "Test" = c0 + c1 + c2 + c3
Verschlüsseln durch Verwirbelung
Ciphertext = c1 + R0 + c0 + c3 + R1 + c
(Vertauschen von je zwei Zeichen und Einfügen eines Zufallszeichens in deren Mitte)
1.7. XOR-Verschlüsselung Einfachstes symmetrisches Verfahren Schwacher Schutz
Jedes Klartextzeichen wird XOR mit dem Schlüssel verknüpft.
Entschlüsseln = Verschlüsseln
2.1. Das RSA-Verfahren
Beruht auf dem Problem der Primfaktorenzerlegung, das bei großen Zahlen (>512 Bit) enormen Rechenaufwand verursacht.
Asymmetrisches Verfahren 3 Schlüssel (2 öffentliche, 1 geheimer): öffentlich: das Modul n, der Encryptor e geheim : der Decryptor d
2.1. Das RSA-Verfahren Zunächst Schlüsselerzeugung p und q (beide prim) bilden das Modul n: n = p * q e ist teilerfremd zu (p-1)*(q-1), d.h.
GgT(e,[p-1]*[q-1]) = 1 d = die Inverse von e im Modul (p-1)*(q-1)
2.1. Das RSA-Verfahren Nun kann verschlüsselt werden (Beispiel):
p = 17; q = 31 n = p * q = 527
e muss teilerfremd zu (p-1) * (q-1) sein z.B. e = 7 d = inv e (im Modul (17-1)*(31-1) = 480)d = 343
2.1. Das RSA-Verfahren
Klartext = 2
c = 2^e mod n = 2 ^ 7 mod 527 = 128 mod 527 = 128
2.1. Das RSA-VerfahrenEntschlüsseln
Klar = 128^d mod n = 128^343 mod 527 = 128256 * 12864 * 12816 * 1284 * 1282* 1281 mod 527
= 35 * 256 * 35 * 101 * 47 * 128 mod 527= 2 mod 527 = 2
2.1. Das RSA-Verfahren Angriffsmöglichkeiten:
BruteForce-Attacke (aussichtslos)Primfaktorzerlegung von n um auf d zu schließen (bei n >= 1000 Bits aussichtslos)
2.2. Der Data Encryption Standard (DES)
64 Bit Daten werden mit einem 64 Bit Schlüssel verschlüsselt (bzw. 56 Bit)
Symmetrisches Verfahren
Grafische Darstellung (nächste Seite)
Beispiel Permutationstabelle:type
TPTab = array[1..64] of Byte;
const
IPTab: TPTab =(58,50,42,34,26,18,10,02,60,52,44,36,28,20,12,04, 62,54,46,38,30,22,14,06,64,56,48,40,32,24,16,08, 57,49,41,33,25,17,09,01,59,51,43,35,27,19,11,03, 61,53,45,37,29,21,13,05,63,55,47,39,31,23,15,07);
Beispiel Sbox:type
SBox = array[0..3,0..15] of Byte; const
S1: SBox =((14,04,13,01,02,15,11,08,03,10,06,12,05,09,00,07), (00,15,07,04,14,02,13,01,10,06,12,11,09,05,03,08), (04,01,14,08,13,06,02,11,15,12,09,07,03,10,05,00), (15,12,08,02,04,09,01,07,05,11,03,14,10,00,06,13));
{ BEISPIEL: Input : 6 Bits: "101011" Output : 4 Bits: Zeile 11b = 3; Spalte 0101b = 5 }
Quellen:http://goethe.ira.uka.de/seminare/dzs/ec/des2.pnghttp://dud.inf.tu-dresden.de/~pfitza/DSuKrypt.pdf
Lehr- und Übungsbuch Mathematik für Informatiker (Prof. Dr. Aulenbacher, Prof. Dr. Meyer, Dipl.-Math. Wabel-Frenk, Prof. Dr.
Wenisch; Fachbuchverlag Leipzig)
ENDE