Top Banner
Projekt Crypt Einfache kryptografische Verfahren zum selber programmieren. von Torsten Zuther
28

Projekt Crypt

Jan 05, 2016

Download

Documents

Dieter

Projekt Crypt. Einfache kryptografische Verfahren zum selber programmieren. von Torsten Zuther. Inhalt Seite 1. Einfache klassische Verfahren 1.1. Cäsarverfahren – altes Prinzip modernisiert 1.2. Multiplikationsverfahren 1.3. Tausch-Chiffre - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Projekt Crypt

Projekt Crypt

Einfache kryptografische Verfahrenzum selber programmieren.

von Torsten Zuther

Page 2: Projekt Crypt

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

Page 3: Projekt Crypt

Inhalt Seite 2

2. Schwer invertierbare Verfahren

2.1. Das RSA-Verfahren2.2. Der Data Encryption Standard(DES)

Page 4: Projekt Crypt

1.1. Cäsar modernisiert

Idee von Cäsar:(Verschiebung des Alphabets um s Einheiten)

Index 1 2 … 26

Alphabet A B … Z

Chiffriertes Alphabet (s = 4)

E F … D

Page 5: Projekt Crypt

1.1. Cäsar modernisiert

Beispiel:Schlüssel = 11

aus „CAESAR“ wird „NLPDC“

Page 6: Projekt Crypt

1.1. Cäsar modernisiert

Das Alphabet hier besteht aus 256 Zeichen (ASCII-Zeichensatz).

0 < s < 256

255 Schlüssel

Page 7: Projekt Crypt

1.1. Cäsar modernisiert

Beispiel (s = 46):

Page 8: Projekt Crypt

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)

Page 9: Projekt Crypt

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

Page 10: Projekt Crypt

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

Page 11: Projekt Crypt

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

Page 12: Projekt Crypt

1.4. Lineare Schieberegister

Schlüssel = 11011...

0 0 1 1 1 0 1 1

0 0 0 1 1 1 0 1

0 0 0 0 1 1 1 0

0 0 0 0 0 1 1 1

1 0 0 0 0 0 1 1

... ... ... ... ... ... ... ...

Page 13: Projekt Crypt

1.4. Lineare Schieberegister Beispiel Klartext = 01101111; Schlüssel = 11101100

Verschlüsselt = Klartext xor Schlüssel 01101111 ++11101100 10000011 Ciphertext

Page 14: Projekt Crypt

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)

Page 15: Projekt Crypt

1.5. Vigenére-Chiffre Garantiert 100%ige Sicherheit, wenn

Passwortlänge = Klartextlänge

Keine Häufigkeitenanalyse

One-Time-Pad

Page 16: Projekt Crypt

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)

Page 17: Projekt Crypt

1.7. XOR-Verschlüsselung Einfachstes symmetrisches Verfahren Schwacher Schutz

Jedes Klartextzeichen wird XOR mit dem Schlüssel verknüpft.

Entschlüsseln = Verschlüsseln

Page 18: Projekt Crypt

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

Page 19: Projekt Crypt

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)

Page 20: Projekt Crypt

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

Page 21: Projekt Crypt

2.1. Das RSA-Verfahren

Klartext = 2

c = 2^e mod n = 2 ^ 7 mod 527 = 128 mod 527 = 128

Page 22: Projekt Crypt

2.1. Das RSA-Verfahren

Entschlü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

Page 23: Projekt Crypt

2.1. Das RSA-Verfahren

Angriffsmöglichkeiten:

BruteForce-Attacke (aussichtslos)Primfaktorzerlegung von n um auf d zu schließen (bei n >= 1000 Bits aussichtslos)

Page 24: Projekt Crypt

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)

Page 25: Projekt Crypt
Page 26: Projekt Crypt

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);

Page 27: Projekt Crypt

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 }

Page 28: Projekt Crypt

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