Betriebsmodi bei Blockchiffren

Dozent:

Prof. Dr. Michael Eichberg

Version:
2024-05-09
Basierend auf:

Cryptography and Network Security - Principles and Practice, 8th Edition, William Stallings

Folien:

https://delors.github.io/sec-blockchiffre-operationsmodi/folien.rst.html

https://delors.github.io/sec-blockchiffre-operationsmodi/folien.rst.html.pdf

Fehler auf Folien melden:

https://github.com/Delors/delors.github.io/issues

Betriebsmodi

Betriebsmodi - Übersicht

Modus

Beschreibung

Typische Anwendung

Electronic Codebook (ECB)

Jeder Block von Klartextbits wird unabhängig voneinander mit demselben Schlüssel verschlüsselt.

  • Sichere Übertragung einzelner Werte (z. B. eines Verschlüsselungsschlüssels)

Cipher Block Chaining (CBC)

Die Eingabe für den Verschlüsselungsalgorithmus ist die XOR-Verknüpfung des nächsten Klartextblocks mit dem vorangegangenen Chiffretextblock.

  • Universelle blockorientierte Übertragung

  • Authentifizierung

Cipher Feedback (CFB)

Die Eingabe wird Bit für Bit verarbeitet. Der vorhergehende Chiffretext wird als Eingabe für den Verschlüsselungsalgorithmus verwendet, um eine pseudozufällige Ausgabe zu erzeugen, die mit dem Klartext XOR-verknüpft wird, um die nächste Einheit des Chiffretextes zu erzeugen.

  • Allgemeine stromorientierte Übertragung

  • Authentifizierung

Output Feedback (OFB)

Ähnlich wie CFB, mit dem Unterschied, dass die Eingabe für den Verschlüsselungsalgorithmus die vorangegangene Verschlüsselungsausgabe ist, und volle Blöcke verwendet werden.

  • Stromorientierte Übertragung über verrauschte Kanäle (z. B. Satellitenkommunikation)

Counter (CTR)

Jeder Klartextblock wird mit einem verschlüsselten Zähler XOR-verknüpft. Der Zähler wird für jeden nachfolgenden Block erhöht.

  • Blockorientierte Übertragung für allgemeine Zwecke

  • Nützlich für Hochgeschwindigkeitsanforderungen

Grundlegende Blockchiffren

Electronic Codebook

opensource-drawings/ecb_encryption.svg opensource-drawings/ecb_decryption.svg

Autor: https://commons.wikimedia.org/wiki/User:WhiteTimberwolf

Probleme bei der Verwendung der Verschlüsselung im ECB-Modus

ECB-Tux - der Linux-Pinguin verschlüsselt im ECB-Modus:

Quelle: https://github.com/robertdavidgraham/ecb-penguin

opensource-drawings/tux.ecb.from_robert_david_graham.png

Kriterien und Eigenschaften für die Bewertung und Konstruktion von Blockchiffre-Betriebsarten, die ECB überlegen sind.

Cipher Block Chaining

opensource-drawings/cbc_encryption.svg
opensource-drawings/cbc_decryption.svg

Blockchiffren, die als Stromchiffren verwendet werden können.

Konvertierung von Blockchiffren in Stromchiffre

Bei AES, DES oder jeder anderen Blockchiffre erfolgt die Verschlüsselung immer Block-für-Block mit Blockgrößen von b Bits:

Cipher Feedback Mode

opensource-drawings/cfb_encryption.svg
opensource-drawings/cfb_decryption.svg

Cipher Feedback Mode als Stromchiffre

drawings/operationsmodi/cfb_s_bits.svg

Output Feedback Mode

opensource-drawings/ofb_encryption.svg
opensource-drawings/ofb_decryption.svg

Counter Mode

opensource-drawings/ctr_encryption.svg
opensource-drawings/ctr_decryption.svg

Counter Mode - Vorteile

Hardware-Effizienz:

kann von der Parallelisierung der Hardware profitieren

Software-Effizienz:

leicht parallelisierbar in Software

Vorverarbeitung:

die Verschlüsselung der Zähler

Zufälliger Zugriff:

der i-te Block des Klartextes/des Chiffretextes kann im Zufallszugriff verarbeitet werden

Nachweisbare Sicherheit:

genauso sicher wie die anderen Verfahren

Einfachheit:

es wird nur der Verschlüsselungsalgorithmus benötigt

Rückkopplungseigenschaften[1] der Betriebsmodi

drawings/operationsmodi/feedback_characteristics.svg

Spezielle Betriebsmodi

XTS-AES Modus für blockorientierte Speichergeräte

2010 vom NIST als zusätzlicher Blockchiffre-Betriebsmodus genehmigt.

Modus ist auch ein IEEE-Standard, IEEE Std 1619-2007

Tweakable Blockchiffren - Bestandteile

Tweakable Blockchiffren - grundlegende Struktur

drawings/operationsmodi/tweakable_block_cipher.svg

Anforderungen an die Speicherverschlüsselung

Die Anforderungen an die Verschlüsselung gespeicherter Daten, die auch als data at rest bezeichnet werden, unterscheiden sich von denen für übertragene Daten.

Die Norm P1619 wurde in Hinblick auf folgende Eigenschaften entwickelt:

XTS-AES Operation auf einem Block

drawings/operationsmodi/xts_aes.svg
  • Schlüssel: es gilt: \(Schlüssel = Schlüssel_1\, ||\, Schlüssel_2\)

  • \(P_j\): Der j-te Block des Klartexts. Alle Blöcke haben eine Länge von 128 bits. Eine Klartextdateneinheit – in der Regel ein Festplattensektor – besteht aus einer Folge von Klartextblöcken.

  • \(C_j\): Der j-te Block des Chiffretextes.

  • \(j\): Die fortlaufende Nummer des 128-Bit-Blocks innerhalb der Dateneinheit.

  • \(i\): Der Wert des 128-Bit-Tweaks.

  • \(\alpha\): Ein primitives Element des \(GF(2^{128})\) welches dem Polynom \(x\) (d. h. 0000...0010) entspricht.

  • \(\alpha^j\): \(\alpha\) \(j\) mal mit sich selbst multipliziert im Körper \(GF(2^{128})\)

  • \(\oplus\) Bitwise XOR

  • \(\otimes\) Modulare Multiplikation mit Binärkoeffizienten modulo \(x^{128}+x^7+x^2+x+1\).

Übung

Übung

Verwenden Sie den OFB-Modus in Kombination mit einer Caesar-Chiffre. Die Blockgröße ist ein einzelnes Zeichen. Der Schlüssel ist die Anzahl der Zeichen, um die Sie ein Zeichen verschieben wollen - wie zuvor. Die IV ist ein Zeichen. Damit sie ein XOR durchführen können, ordnen wir jedem Zeichen einen Wert zu und erweitern das Alphabet um die Ziffern 1 bis 3, "!", "?" und das "_". Auf diese Weise ist es immer möglich, ein sinnvolles Zeichen auszugeben.

Daraus ergibt sich die folgende Kodierung:

Index

Zeichen

Binärdarstellung

0

A

00000

1

B

00001

2

C

00010

3

D

00011

4

E

00100

5

F

00101

6

G

00110

7

H

00111

8

I

01000

9

J

01001

10

K

01010

Index

Zeichen

Binärdarstellung

11

L

01011

12

M

01100

13

N

01101

14

O

01110

15

P

01111

16

Q

10000

17

R

10001

18

S

10010

19

T

10011

20

U

10100

21

V

10101

Index

Zeichen

Binärdarstellung

22

W

10110

23

X

10111

24

Y

11000

25

Z

11001

26

1

11010

27

2

11011

28

3

11100

29

!

11101

30

?

11110

31

_

11111

Verschlüsseln Sie nun einige Nachrichten mit dieser Chiffre. Welchen Effekt hat die Anwendung des OFB-Modus auf die Nachrichten?

MTAwMDAw:fnYxXEF4P9k3KUev7uA+thiYLIQ3dE1gnFWzLke76og=:i7cZGxVznooL33S7:AV1EdmlsZeA67IL6tbacGsNGVqvEIfXrOEKlFu7p0DyFcCvXDHNVkL2Kmbb8MUj7rTScbRQxpvjtb/S6+wAhdsORmZZ0nMyBvpbGbzpEXl76we0ZqLdigBIiNy2V6L7NengvFctFQ4l2otm83BAJnnVaGQmfs8MF4dmKEKNrKDdGSM3rWDEeIqfwc0U+SN7yTcxQasNVk11L5enlm/wZe+UHBqEgoIIct5GlQBtGoxHaU3acMSn+kjqzwC8S+e8xWa4oJKaf4H4z65xtRQRf7YvQYSDxqq6TzsJJcVPVmfFX5yRsAV/S4BHd8eiaHEkcEPPL2sZugdZnzYm+pqYg7YyQRIp+J3b/Z9T/+e+ucppIyyTg+h8yZszdn0WVT839AeMLYzpiSzFWQJl5FMSZTLXqaP028o90YshihXem7w5I/dj+HGrsGG9vE2k0gf13amMNlHxjeDy7ocU84qEkwNhVqLC9fAyW/XI/AFS+dXHq1APsF+15tiUZJehOBIvHR/L+mBdpHAz+DAF+HL3u9pG774jopKayIAZWMZUKlL7pFdtsfrJRHTr3nLSuBNr15kRUQCCxYWf+XQUDVHwOJ/+ZPOXF/5qiaVYxvkVIqfo2fb5XYAtJjdire2vYSifr93zkioExqGFbTDj00/yQ25O90gt+d/2PegzwIj8nO5jolAxh6jCYEF2VDcNTSLskgFchG0GDlN7fIIODQvz9+whgJtMrzUl7yzcceem5XN2zDG2KexvA1z4RcoYRLdNpzP8OyUTegC4rRw5AQfmzRa85u4y7umd6cV6QLDHX73ASHVcykVWGFcMnzOeV1ZlFOzNOLZgHYfgj8xdowEfVEYeaVwUqaOOS5CAzGFevNxZmX4mms7Sw8yKlJ3tpJBL7pcSz+fUP5QrtPKouHs5nnEa30NeWQ473s2D2GxjelNFVummC7j74tI4sOwDdfodFHHMt4htn+QS2iBR5nomkooI0WzJVjA5ooFRhHl922tdUInXlPRJUKNqXeM6FzmJiXuwR+ZCR6AR31Jc64LmAeVXK9un030oFnc6IfPJxF+GciT70hL4SGpCdWGVl6R+z2ZRlw/nMrkxovHG6Ye7NMXFjhRvsFzksOH7GLn7uKJ5W2RVRG16PRaM97jgiSCvLgmJU6RrX3+H3KDv5iYieun67F+3HXrLchETQTqCgSRwmmGlaEv2gSR71gLNaGkQn9U/916EewGNluorSeA/OKGR9t/feqhZ/ioefE1smAsNgX6iw/7lX5VSwzrGe1q3kr8jIPpXJt7wK5IxVyRL4Agi8Dx0ZyElEB7mVx0zguOoJ0VnowXzzKbfeu0WvtGZngXr+