Blockchiffren
Daher beschr ¨ankt man sich auf eine kleine Teilmenge vonS(An), welche als Ver- und Entschl ¨usselungsfunktionen vorkommen.
•Teilmenge soll trotzdem m ¨oglichst zuf ¨allig ausS(An)gew ¨ahlt aussehen.
•Teilmenge muß durch Schl ¨usselk(effizient) definierbar sein.
Anderer Ansatz f ¨ur die Definition zuf ¨alliger Funktionen ausS(An):
SindrVerschl ¨usselungen zu berechnen, kann man auch einfachr zuf ¨allige Bilder w ¨ahlen und diese dann den (zu einem sp ¨ateren Zeitpunkt) gegebenen Klartexten zuordnen.
Beispiel:
•Vernam One-Time Pad.
3 20. April 2004
One-Time Pad
Vernam’s One-Time Pad (1917) ist wie folgt definiert:
•M=C=K={0,1}n.
•c=E(k,m) :=m⊕k(bitweises XOR = bitweise Addition inZ/2Z).
•m=D(k,c) :=c⊕k.
•kwird zuf ¨allig gew ¨ahlt und nur einmal (!) verwendet.
Entspricht der einmaligen Anwendung einer allgemeinen, zuf ¨alligen Permutation ausS({0,1}n).
Known-Plaintext Angriff liefertk=m⊕c. Unsicher unter mehrfacher Verwendung vonk.
Aber: Unter einmaliger Anwendung vollkommen sicher!
Blockchiffren
Def: Eine Blockchiffre mit Blockl ¨angenist ein symmetrisches Verschl ¨usselungssystem mitM=C=An.
Prop: Die AlgorithmenEundD einer Blockchiffre definieren bijektive Funktionen.
Bew: WegenD(k,E(k,m)) =mwird keinen zwei Nachrichten der gleiche Chiffretext zugeordnet. WegenC=Mwird jeder Nachricht daher genau ein Chiffretext zugeordnet.
BezeichnetS(An)die Menge aller bijektiven Abbildungen (Permutationen) vonAnin sich, so gilt also (etwas ungenau) E(k,·),D(k,·)∈S(An).
Weiter erhalten wir AbbildungenK→S(An),k7→E(k,·)bzw.
k7→D(k,·).
1 20. April 2004
Blockchiffren
Beispiele:
•Die affin-linearen Chiffren (historisch).
•Substitutionchiffren (definiert durch koordinatenweise Anwendung eines Elements ausS(A)aufAn, historisch).
•DES (Data Encryption Standard, 1977, veraltet).
•AES (Advanced Encryption Standard, 2001, aktuell).
Allgemeine Elemente ausS(An)k ¨onnen nur durch explizite Angabe aller Urbild-Bild Paare beschrieben werden (also#Anviele, folglich auch#S(An) = (#An)!).
IstE(k,·)ein
”allgemeines“ Element ausS(An), so entsprichtkeiner solchen Urbild-Bild Beschreibung. Wegen der großen Anzahl#An (Anzahl der m ¨oglichen Klartexte) ist dies nicht praktikabel.
Perfekte Sicherheit
Def: Ein symmetrisches Verschl ¨usselungssystem heißt perfekt sicher, wennPr(m=m0|c=c0) = Pr(m=m0)f ¨ur allem0∈M,c0∈C.
Kenntnis vonc=c0ergibt also keine weiteren Hinweise ¨uber den Wert vonm.
Prop: F ¨ur ein perfekt sicheres Verschl ¨usselungssystem gilt#K≥#C.
Genauer gibt es f ¨ur jedesm0∈M,c0∈C eink0∈K mitc0=E(k0,m0).
Thm (Shannon): Es gelte#K= #C. Ein Verschl ¨usselungssystem ist genau dann perfekt sicher, wennPr(k=k0) = 1/#K f ¨ur allek0∈Kund wenn es f ¨ur jedesm0∈M,c0∈Cgenau eink0∈Kgibt mit
c0=E(k0,m0).
Folg: Das One-Time Pad ist bei gv. Schl ¨usselwahl perfekt sicher.
7 20. April 2004
Perfekte Sicherheit
Bew Prop: Nach dem Satz von Bayes giltPr(c=c0|m=m0) = Pr(c=c0) f ¨ur jedesc0∈C. WegenPr(c=c0)>0istc0der Chiffretext f ¨ur einm0. Daher gibt es eink0∈Kmitc0=E(k0,m0).
Bew Thm:
⇒. Die Existenz vonk0folgt aus der Prop. Außerdem gilt
C={E(k0,m0)|k0∈K}, woraus sich wegen#C= #K die Eindeutigkeit vonk0ergibt.
Seic0∈Cundk(m0)∈K mitE(k(m0),m0) =c0. Dann gilt
Pr(m=m0|c=c0) Pr(c=c0) = Pr(c=c0|m=m0) Pr(m=m0)
= Pr(k=k(m0)) Pr(m=m0).
AusPr(m=m0|c=c0) = Pr(m=m0)ergibt sich damit
Pr(k=k(m0)) = Pr(c=c0). Dies ist unabh ¨angig vonm0, folglich sind alle Wahrscheinlichkeiten gleich und betragen1/#C= 1/#K.
One-Time Pad
Sicherheit durch Shannon bewiesen (1949).
Problem:
•Hoher Schl ¨usselverbrauch, daher ineffizient.
•Wie Schl ¨ussel erzeugen?
Wurde angeblich f ¨ur die Verbindung zwischen Washington und Moskau verwendet (und andere milit ¨arische/diplomatische Anwendungen).
Das One-time pad ist ein Spezialfall der Chiffre von Vign ´ere, wenn nur einmal verwendet.
5 20. April 2004
Perfekte Sicherheit
Theorie durch Shannon (1949). Sicherheit in Anwesenheit von Angreifern mit unbeschr ¨ankter Rechenleistung.
Modell:
1. Betrachten Klartextemals Zufallsvariablen mit Werten inM.
(”HEUTE“ kommt h ¨aufiger vor als
”XZYQR“.)
2. Betrachten Schl ¨usselkals Zufallsvariablen mit Werten inK. (Die Schl ¨ussel werden irgendwie zuf ¨allig gew ¨ahlt.)
3. Annahme:mundksind unabh ¨angig.
4. Definieren Chiffretexte als Zufallsvariablec=E(k,m).
Als Ereignisraum k ¨onnen wirM×Knehmen.
K ¨onnenPr(c=c0)>0f ¨ur allec0∈Cannehmen (sonstCverkleinern), ebensoPr(m=m0)>0f ¨ur allem0∈M.
Bemerkungen
Gibt es Nebenschl ¨ussel, so kann ein Angreifer den Klartext nicht eindeutig reproduzieren.
( F ¨ur Chiffretext der L ¨angen:sn≥#K/(#M)nr−1. (rRedundanz) ) 2. Wieviel Chiffretext ist durchschnittlich erforderlich, damit es keine Nebenschl ¨ussel mehr geben kann?
Dann kann ein Angreifer den Schl ¨ussel bestimmen.
(n0≈log2(#K)/(rlog2(#M))Elemente ausC. )
11 20. April 2004
Entropie
Schl ¨usselkonzept zu Shannon’s Untersuchung ist die Entropie einer Zufallsvariablen.
Sind diexif ¨ur1≤i≤ndie Werte der ZVX, so wird definiert H(X) =−∑Pr(X=xi)>0Pr(X=xi) log2(Pr(X=xi)).
−log2(Pr(X=xi))ist L ¨ange in Bits der Information, daßxieintritt.
AlsoH(X)erwartete (durchschnittliche) Information oder Unsicherheit.
0≤H(X)≤log2(n),
H(X) = 0f ¨urn= 1,H(X)max. f ¨urPr(X=xi) = 1/n.
...
Beispiel: W ¨urfeln mit fairem und
”frisierten“ W ¨urfel.
Exhaustive Search Aufwand≈2H(k)statt#K.
Perfekte Sicherheit
Bew Thm:
⇐. Seik(m0,c0)∈K mitE(k(m0,c0),m0) =c0. Dann gilt Pr(m=m0|c=c0) = Pr(c=c0|m=m0) Pr(m=m0)/Pr(c=c0)
= Pr(k=k(m0,c0)) Pr(m=m0)/
∑
m1∈M
Pr(m=m1) Pr(k=k(m1,c0)).
MitPr(k=k(m1,c0)) = 1/#K nach Voraussetzung ist
∑m1∈MPr(m=m1) Pr(k=k(m1,c0)) =∑m1∈MPr(m=m1)/#K= 1/#K.
Einsetzen in obige Gleichung liefertPr(m=m0|c=c0) = Pr(m=m0).
Bew Folg: Wegenk=m⊕cgibt es zu jedemm,cgenau einen Schl ¨usselkmitc=E(k,m)..
9 20. April 2004
Bemerkungen
In einem perfekt sicheren Verschl ¨usselungssystem erh ¨alt ein Angreifer aus dem Chiffretext keine Information ¨uber den Klartext oder den Schl ¨ussel.
F ¨ur nicht perfekt sichere Systeme hat Shannon die folgenden Fragen untersucht (mehrfache Verschl ¨usselung mit dem gleichen Schl ¨ussel):
1. Seic=E(k,m). IstD(k1,c)ein
”sinnvoller“ Klartext (z.B. deutsch) undk16=k, so heißtk1Nebenschl ¨ussel. Wieviel Nebenschl ¨ussel gibt es durchschnittlich, basierend auf der Redundanz der Klartexte?
ECB – Electronic Code Book Mode
Einfachste Herangehensweise.
Klartextmin Bl ¨ocke der passenden Gr ¨oße aufteilenm=m1m2· · ·mt. Letzten Block durch (zuf ¨allige) Bits erg ¨anzen, falls n ¨otig.
Verschl ¨usselung durchc=c1c2· · ·ct mitci=E(k,mi).
Entschl ¨usseln durchmi=D(k,ci).
15 20. April 2004
ECB – Electronic Code Book Mode
Eigenschaften:
•mi=mjdannci=cj, also Regelm ¨aßigkeiten und Wiederholungen
¨ubertragen sich.
•Unabh ¨angigeci, ¨Ubertragungsfehler auf Block beschr ¨ankt.
Beispiel: Bei Bildern bleiben h ¨aufig Konturen erkennbar!
Probleme:
•Chiffretext zu Klartext am Anfang/Ende von Nachrichten extrahierbar.
•Block replay: Mischen/Einf ¨ugen von bekanntem Chiffretext m ¨oglich.
Anwendung: Besser nicht (u.U. Verschl ¨usselung von Schl ¨usseln).
Bemerkungen
Man kann also keine perfekte (informationstheoretische) Sicherheit erreichen, wenn man viel Klartext mit einem kleinen Schl ¨ussel verschl ¨usseln will.
Man kann aber versuchen, komplexit ¨atstheoretische Sicherheit zu erreichen.
Die Philosophie hierbei ist, daßE(k,·)
”sich wie eine zuf ¨allige Funktion verh ¨alt“.
13 20. April 2004
Betriebsarten von Blockchiffren
Blockl ¨ange ist fest und klein. Wie große Mengen an Daten verschl ¨usseln?
Blockchiffre geeignet verwenden:
•ECB Mode (Electronic Code Book)
•CBC Mode (Cipher Block Chaining)
•CFB Mode (Cipher Feedback)
•OFB Mode (Output Feedback)
•CTR Mode (Counter Mode)
Diese Betriebsarten (ohne CTR) wurden urspr ¨unglich f ¨ur DES entwickelt, k ¨onnen aber mit jedem Blockchiffre verwendet werden.
Sind standardisiert.
Padding
Klartextmin Bl ¨ocke der passenden Gr ¨oße aufteilenm=m1m2· · ·mt. Padding=Letzten Block durch (zuf ¨allige) Bits erg ¨anzen.
Vom Standpunkt der Kryptographie ist egal, wie man erg ¨anzt (da jeder Klartext sicher verschl ¨usselt werden soll).
Ans ¨atze:
•Eine Eins und soviele Nullen anh ¨angen, wie n ¨otig.
•Zuf ¨allige Bytes und Anzahl zu entfernender Bytes hinten anh ¨angen.
Warum nicht nur Nullen anh ¨angen?
19 20. April 2004
Bild unverschl ¨usselt
(ausgeliehen von N. Smart, F. Vercauteren)
CBC – Cipher Block Chaining Mode
Klartextmin Bl ¨ocke der passenden Gr ¨oße aufteilenm=m1m2· · ·mt. Letzten Block durch (zuf ¨allige) Bits erg ¨anzen, falls n ¨otig.
Verschl ¨usselung durchc= (c0)c1c2· · ·ct mitc0=IV und ci=E(k,mi⊕ci−1)f ¨uri≥0.
Entschl ¨usseln durch
mi=D(k,ci)⊕ci−1f ¨uri≥0.
IV ist zuf ¨allig gew ¨ahlt, oder wird ausmerzeugt (so daß es nur f ¨urm vorkommt, z.B. die Verschl ¨usselung einer eindeutigen
Nachrichtennummer).
Braucht nicht geheim gehalten zu werden.
17 20. April 2004
CBC – Cipher Block Chaining Mode
Eigenschaften:
•Kontextabh ¨angig:cih ¨angt voncjmit j<iab.
•Regelm ¨aßigkeiten und Wiederholungen werden (durch unterschiedliche IV) verwischt.
•Fehler incibetrifft nurmiund lokalmi+1.
•Block replay nicht m ¨oglich.
Anwendung: Ist der Standardmodus. Verschl ¨usseln langer Nachrichten.
Bild verschl ¨usselt im ECB Mode
21 20. April 2004