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

Projekt Crypt

  • Upload
    dieter

  • View
    44

  • Download
    0

Embed Size (px)

DESCRIPTION

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

Citation preview

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