merkle-hellman-kryptosystem algorithmus zur...

13
MERKLE-HELLMAN-KRYPTOSYSTEM Algorithmus zur Entschlüsselung von Kryptotexten Projektarbeit im Rahmen der Vorlesung Algorithm Engineering WiSe 2015/16, Friedrich-Schiller-Universität Jena Sebastian Brühl

Upload: others

Post on 05-Sep-2019

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Merkle-Hellman-Kryptosystem Algorithmus zur ...theinf2.informatik.uni-jena.de/.../Lectures_material/.../team01-p-546.pdf · 2 Kryptosystem nach Merkle-Hellman • 1978 von Ralph C

MERKLE-HELLMAN-KRYPTOSYSTEMAlgorithmus zur Entschlüsselung von Kryptotexten

Projektarbeit im Rahmen der Vorlesung Algorithm Engineering

WiSe 2015/16, Friedrich-Schiller-Universität Jena

Sebastian Brühl

Page 2: Merkle-Hellman-Kryptosystem Algorithmus zur ...theinf2.informatik.uni-jena.de/.../Lectures_material/.../team01-p-546.pdf · 2 Kryptosystem nach Merkle-Hellman • 1978 von Ralph C

2

Kryptosystem nach Merkle-Hellman

• 1978 von Ralph C. Merkle und Martin Hellman vorgestellt

• Hiding Information and Signatures in Trapdoor Knapsacks [1]

• basiert auf Untersummenproblem -> O(2n)

• Entschlüsselung bedeuted Berechnung eines Skalarproduktes

• empfohlene Schlüssellänge um ein Knacken der Verschlüsselung

in angemessener Zeit zu verhindern: n > 100

• 1976 – Cray-1 – 80 MFLOPS

• 2016 – raj – 4 TFLOPS

• Gilt die Aussage n > 100 heute noch?

Page 3: Merkle-Hellman-Kryptosystem Algorithmus zur ...theinf2.informatik.uni-jena.de/.../Lectures_material/.../team01-p-546.pdf · 2 Kryptosystem nach Merkle-Hellman • 1978 von Ralph C

3

Vektorisierung

Bedingung: ? = {0, 1}

6790

=

●? ? ? ? ? ? ? ? ? ?

2292 1089 211 1625 1283 599 759 315 2597 2463

Public Key

Kryptotext

Klartext

Page 4: Merkle-Hellman-Kryptosystem Algorithmus zur ...theinf2.informatik.uni-jena.de/.../Lectures_material/.../team01-p-546.pdf · 2 Kryptosystem nach Merkle-Hellman • 1978 von Ralph C

4

Vektorisierung

Bedingung: ? = {0, 1}

6790

=

●0 0 1 1 1 0 1 1 1 0

2292 1089 211 1625 1283 599 759 315 2597 2463

Public Key

Kryptotext

Klartext

Page 5: Merkle-Hellman-Kryptosystem Algorithmus zur ...theinf2.informatik.uni-jena.de/.../Lectures_material/.../team01-p-546.pdf · 2 Kryptosystem nach Merkle-Hellman • 1978 von Ralph C

5

Vektorisierung

Probleme

• Schlüssellängen n > 100 benötigen sehr große Zahlen (2200)

• Algorithmus in zwei Versionen

• _64: unsigned long long (vektorisierbar)

• _BN: boost::multiprecision::int_512_t (nicht vektorisierbar)

• Initialisierung/Allozierung des Testvektors

• Padding des Testvektors

Page 6: Merkle-Hellman-Kryptosystem Algorithmus zur ...theinf2.informatik.uni-jena.de/.../Lectures_material/.../team01-p-546.pdf · 2 Kryptosystem nach Merkle-Hellman • 1978 von Ralph C

6

Vektorisierung

• skalare Version: GNU Compiler

• vektorisierte Version: Intel Compiler + OpenMP/SIMD

1,0847

0,23080

0,2

0,4

0,6

0,8

1

1,2

skalar vektorisiert

Laufzeit in

Sekunden

Page 7: Merkle-Hellman-Kryptosystem Algorithmus zur ...theinf2.informatik.uni-jena.de/.../Lectures_material/.../team01-p-546.pdf · 2 Kryptosystem nach Merkle-Hellman • 1978 von Ralph C

7

Parallelisierung

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 1

0 0 0 0 0 0 0 0 1 0

0 0 0 0 0 0 0 0 1 1

1 1 1 1 1 1 1 1 1 1

0

1

2

3

1024

for-Schleife

Hauptaufgabe des Algorithmus

• Testvektor ● Public Key = Kryptotext

• 2n voneinander unabhängige Iterationen, im Beispiel 210=1024

?

0 0 0 0 0 0 0 0 0 0

0 0 1 1 1 1 1 1 1 1

…0

255

1 0 0 0 0 0 0 0 0 0

1 0 1 1 1 1 1 1 1 1

0 1 0 0 0 0 0 0 0 0

0 1 1 1 1 1 1 1 1 1

511

1 1 0 0 0 0 0 0 0 0

1 1 1 1 1 1 1 1 1 1

1024

256

768512

767

parallele for-Schleifen

• Problem: Abbruch bei Treffer -> omp cancel for

Page 8: Merkle-Hellman-Kryptosystem Algorithmus zur ...theinf2.informatik.uni-jena.de/.../Lectures_material/.../team01-p-546.pdf · 2 Kryptosystem nach Merkle-Hellman • 1978 von Ralph C

8

Parallelisierung

Parallelisierung mittels omp for

0

0,5

1

1,5

2

2,5

3

0

0,5

1

1,5

2

2,5

3

3,5

8 10 12 14 16 18 20

SPEED

UP

LA

UFZEIT

IN

S

SCHLÜSSELLÄNGE

Seriell Parallel Speedup

Page 9: Merkle-Hellman-Kryptosystem Algorithmus zur ...theinf2.informatik.uni-jena.de/.../Lectures_material/.../team01-p-546.pdf · 2 Kryptosystem nach Merkle-Hellman • 1978 von Ralph C

9

Verteilte Ausführung

• Merkle-Hellman ist eine Blockchiffre• jeder Block muss einzeln entschlüsselt werden• Verteilung der Blöcke auf verschiedene Knoten

173827820633687652372624452047340402030882221937893958511734521023872356418939085597090364389627364262981059221135046440247117475990107748665711044593982336475481416529010910714520788414159083012046649554111174443135439315902065428428215154146405706987961414368228039787904434979082798126805867157970945712079109491368153579913062443570815038298210976213795694513811374897094481784855885396337418574317731032706247758097529972562272159782548137519606286546903470925992160413351629756774223913931282503775067036655917747618068886063711916416668715956791072013372980365000799780756056231912669471404272013833375546208052710389895352526885028546982994426354812054399946016359004753116070612675535546961874807733704054194643823103193483850762825

1738278206336876523726244520473404020308822219378939585117345210238723564189390855970903643896273642629810592211350464402471

1747599010774866571104459398233647548141652901091071452078841415908301204664955411117444313543931590206542842821515414640570

698796141436822803978790443497908279812680586715797094571207910949136815357991306244357081503829821097621379569451381137489

709448178485588539633741857431773103270624775809752997256227215978254813751960628654690347092599216041335162975677422391393

1282503775067036655917747618068886063711916416668715956791072013372980365000799780756056231912669471404272013833375546208052

710389895352526885028546982994426354812054399946016359004753116070612675535546961874807733704054194643823103193483850762825

1 Knoten

6 Knoten

Page 10: Merkle-Hellman-Kryptosystem Algorithmus zur ...theinf2.informatik.uni-jena.de/.../Lectures_material/.../team01-p-546.pdf · 2 Kryptosystem nach Merkle-Hellman • 1978 von Ralph C

10

Verteilte Ausführung

Start

Daten Einlesen

0 2

0

1 3 4 5

Aufteilung in Blöcke

0 21 3 4 5

MPI Scatter

Berechnung

foreach Block

MPI Gather

Ausgabe

Ende

0 21 3 4 5

0

0 21 3 4 5

21 3 4 50

• Verteilung mittels MPI

• beispielsweise 6 Knoten

• Knoten 0 übernimmt Steuerung

• Alle Knoten sind an der

Berechnung beteiligt

Page 11: Merkle-Hellman-Kryptosystem Algorithmus zur ...theinf2.informatik.uni-jena.de/.../Lectures_material/.../team01-p-546.pdf · 2 Kryptosystem nach Merkle-Hellman • 1978 von Ralph C

11

Benchmark - Speedup

0

0,5

1

1,5

2

2,5

3

3,5

4

0

20

40

60

80

100

120

140

160

8 13 18 23 28

SPEED

UP

LA

UFZEIT

IN

S

SCHLÜSSELLÄNGE

_64 _BN MPI Speedup _64/MPI

• ca. 22*109 Operationen/s (MPI)• Laufzeit MPI bei einer Schlüssellänge von 100: 80*1012 Jahre• Alter des Universums: 14*109 Jahre

Page 12: Merkle-Hellman-Kryptosystem Algorithmus zur ...theinf2.informatik.uni-jena.de/.../Lectures_material/.../team01-p-546.pdf · 2 Kryptosystem nach Merkle-Hellman • 1978 von Ralph C

12

Quellcode: https://github.com/sblatgithub/knapsack

Page 13: Merkle-Hellman-Kryptosystem Algorithmus zur ...theinf2.informatik.uni-jena.de/.../Lectures_material/.../team01-p-546.pdf · 2 Kryptosystem nach Merkle-Hellman • 1978 von Ralph C

13

Quellen

[1] Ralph C. Merkle, Martin E. Hellman. “Hiding Information and Signatures in Trapdoor Knapsacks“In IEEE TRANSACTIONS ON INFORMATION THEORY, VOL: IT-24, NO. 5, SEPTEMBER 1978.