Unter Ver­schlüs­se­lung (Chif­frie­rung) versteht man ein Verfahren, bei dem Klartext mithilfe eines Schlüs­sels in eine un­ver­ständ­li­che Zei­chen­fol­ge übersetzt wird. Im besten Fall ist der Inhalt des so ge­won­ne­nen Ge­heim­tex­tes (Chiffrats) nur dem zu­gäng­lich, der die Chif­frie­rung mithilfe des Schlüs­sels wieder rück­gän­gig machen kann. Die Begriffe „Klartext“ und „Ge­heim­text“ können dabei als his­to­risch gewachsen be­trach­tet werden. Außer auf Text­nach­rich­ten lassen sich moderne Ver­schlüs­se­lungs­ver­fah­ren auch auf andere elek­tro­nisch vor­lie­gen­de In­for­ma­tio­nen wie Sprach­nach­rich­ten, Bild­da­tei­en oder Pro­gramm­code anwenden.

Ver­schlüs­se­lung wird ein­ge­setzt, um Dateien, Laufwerke oder Ver­zeich­nis­se vor un­er­wünsch­ten Zugriffen zu schützen oder Daten ver­trau­lich zu über­mit­teln. Bereits in der Antike kamen einfache Ver­schlüs­se­lungs­ver­fah­ren zum Einsatz, die sich in erster Linie auf eine Codierung der zu schüt­zen­den In­for­ma­tio­nen be­schränk­ten. Dabei werden einzelne Zeichen des Klar­tex­tes, Wörter oder ganze Sätze innerhalb der Botschaft um­sor­tiert (Trans­po­si­ti­on) oder durch al­ter­na­ti­ve Zei­chen­kom­bi­na­tio­nen ersetzt (Sub­sti­tu­ti­on).

Um einen derart ver­schlüs­sel­ten Text an­schlie­ßend wieder de­co­die­ren zu können, muss der Empfänger die Regel kennen, nach der der Text chif­friert wurde. Per­mu­ta­tio­nen im Rahmen von Trans­po­si­ti­ons­ver­fah­ren werden in der Regel anhand einer Matrix vor­ge­nom­men. Um einen trans­po­nier­ten Ge­heim­text in Klartext um­schrei­ben zu können, muss die Trans­po­si­ti­ons­ma­trix bekannt sein oder re­kon­stru­iert werden. Sub­sti­tu­ti­ons­ver­fah­ren stützen sich auf eine ta­bel­la­ri­sche Zuordnung von Klar­text­zei­chen und Chiffren in Form eines geheimen Codebuchs.

Eines der ersten und ein­fachs­ten Ver­schlüs­se­lungs­ver­fah­ren dieser Art geht auf Gaius Julius Cäsar zurück. Die so­ge­nann­te Cäsar-Ver­schlüs­se­lung basiert auf mo­no­al­pha­be­ti­scher Sub­sti­tu­ti­on. Um seine mi­li­tä­ri­sche Kor­re­spon­denz vor feind­li­chen Spionen zu schützen, verschob der gewiefte Feldherr die Buch­sta­ben seiner Wörter um drei Schritte im Alphabet. Das Ergebnis war folgendes:

Die Anzahl der Schritte, um die die Zeichen ver­scho­ben werden, kann bei dieser Art der Chif­frie­rung als Schlüssel be­trach­tet werden. Dieser wird nicht als Zahl angegeben, sondern mit dem ent­spre­chen­den Buch­sta­ben im Alphabet. Eine Ver­schie­bung um drei Stellen, ent­spricht somit dem Schlüssel „C“.

Während das Prinzip hinter der Cäsar-Ver­schlüs­se­lung relativ leicht zu durch­schau­en ist, beruhen moderne Chif­frie­run­gen heute auf kom­ple­xe­ren ma­the­ma­ti­schen Funk­tio­nen, so­ge­nann­ten Al­go­rith­men, die mehrere Sub­sti­tu­tio­nen und Trans­mu­ta­tio­nen kom­bi­nie­ren und durch Schlüssel in Form von Pass­wör­tern oder Bi­när­codes pa­ra­me­tri­siert werden. Diese Verfahren stellen für Kryp­to­ana­ly­ti­ker (Code­kna­cker) deutlich größere Hürden dar. Viele eta­blier­ten Kryp­to­sys­te­me gelten mit den heute zur Verfügung stehenden Mittel als un­knack­bar.

Wie funk­tio­niert Ver­schlüs­se­lung?

Ein Ver­schlüs­se­lungs­ver­fah­ren besteht grund­sätz­lich aus zwei Kom­po­nen­ten: einem kryp­to­gra­fi­schen Al­go­rith­mus und min­des­tens einem geheimen Schlüssel. Während der Al­go­rith­mus die Ver­schlüs­se­lungs­me­tho­de be­schreibt (z. B. „Ver­schie­be jeden Buch­sta­ben entlang der Rei­hen­fol­ge des Alphabets“), liefert der Schlüssel die Parameter (z. B. „C = drei Schritte“). Eine Ver­schlüs­se­lung lässt sich somit als Verfahren be­schrei­ben, bei dem man einem kryp­to­gra­fi­schen Al­go­rith­mus den Klartext und einen Schlüssel übergibt und einen Ge­heim­text als Ausgabe erhält.

Digitale Schlüssel

Bei modernen Chif­frie­rungs­ver­fah­ren kommen digitale Schlüssel in Form von Bitfolgen zum Einsatz. Ein we­sent­li­ches Kriterium für die Si­cher­heit der Ver­schlüs­se­lung ist die Schlüs­sel­län­ge in Bits. Diese gibt das log­arith­mi­sche Maß für die Anzahl der möglichen Schlüs­sel­kom­bi­na­tio­nen an. Man spricht in diesem Fall auch vom Schlüs­sel­raum. Je größer der Schlüs­sel­raum, desto wi­der­stands­fä­hi­ger ist eine Chif­frie­rung gegen so­ge­nann­te Brute-Force-Attacken – eine Lö­sungs­me­tho­de, die auf dem Aus­pro­bie­ren aller möglichen Kom­bi­na­tio­nen beruht.

Ver­deut­li­chen lassen sich Brute-Force-Attacken an der Cäsar-Ver­schlüs­se­lung. Deren Schlüs­sel­raum liegt bei 25 – das ent­spricht einer Schlüs­sel­län­ge von unter 5 bit. Ein Code­kna­cker muss lediglich 25 Kom­bi­na­tio­nen durch­pro­bie­ren, um den Klartext zu ent­zif­fern. Ein ernst­zu­neh­men­des Hindernis stellt die Cäsar-Ver­schlüs­se­lung somit nicht dar. Moderne Ver­schlüs­se­lungs­ver­fah­ren hingegen nutzen Schlüssel, die deutlich mehr Zustände abbilden können. Der Advanced En­cryp­ti­on Standard (AES) bei­spiels­wei­se bietet die Mög­lich­keit, Schlüs­sel­län­gen von 128, 192 oder 256 bit zu wählen. Ent­spre­chend groß ist der Schlüs­sel­raum dieses Ver­fah­rens.

Bereits mit einer 128-bit-Ver­schlüs­se­lung lassen sich 2128 Zustände abbilden. Dies ent­spricht mehr als 340 Sex­til­lio­nen möglichen Schlüs­sel­kom­bi­na­tio­nen. Arbeitet AES mit 256 bit, beträgt die Anzahl der möglichen Schlüssel mehr als 115 Duo­de­zil­li­ar­den. Selbst mit ent­spre­chen­der tech­ni­scher Aus­rüs­tung würde es eine Ewigkeit dauern, alle möglichen Kom­bi­na­tio­nen aus­zu­pro­bie­ren. Mit der heute zur Verfügung stehenden Technik sind Brute-Force-Attacken auf den AES-Schlüs­sel­raum somit nicht prak­ti­ka­bel. Laut Heise würde ein Cluster aus 1 Billion PCs, von denen jedes Gerät 1 Billion Schlüssel pro Sekunde aus­pro­biert, immer noch 10 Millionen Jahre rechnen müssen, um eine 128-bit-Ver­schlüs­se­lung zu knacken.

Das Kerck­hoffs’sche Prinzip

Aufgrund der gängigen Schlüs­sel­län­gen stellen Brute-Force-Attacken für moderne Ver­schlüs­se­lungs­ver­fah­ren keine erst­zu­neh­men­de Bedrohung mehr dar. Statt­des­sen suchen Code­kna­cker Schwächen im Al­go­rith­mus, die es er­mög­li­chen, die Re­chen­zeit für das Ent­zif­fern ver­schlüs­sel­ter Daten zu re­du­zie­ren. Eine andere Her­an­ge­hens­wei­se kon­zen­triert sich auf so­ge­nann­te Sei­ten­ka­nal­an­grif­fe, die die Im­ple­men­tie­rung eines Kryp­to­sys­tems in einem Gerät oder einer Software ins Visier nehmen. Die Ge­heim­hal­tung eines Ver­schlüs­se­lungs­ver­fah­rens ist dabei eher kon­tra­pro­duk­tiv für dessen Si­cher­heit.

Dem Kerck­hoffs’schen Prinzip zufolge beruht die Si­cher­heit eines Kryp­to­sys­tems nicht auf der Ge­heim­hal­tung des Al­go­rith­mus, sondern auf der des Schlüs­sels. Bereits im Jahr 1883 for­mu­lier­te Auguste Kerck­hoffs einen der Grund­sät­ze der modernen Kryp­to­gra­fie: Um einen Klartext zu­ver­läs­sig zu ver­schlüs­seln, genügt es, ein bekanntes, gut be­schrie­be­nes ma­the­ma­ti­sches Verfahren mit geheimen Pa­ra­me­tern zu versehen. An dieser Annahme hat sich bis heute im We­sent­li­chen nichts geändert.

Wie vielen anderen Bereichen des Software-En­gi­nee­rings liegt auch der Ent­wick­lung von Ver­schlüs­se­lungs­me­cha­nis­men die Annahme zugrunde, dass Open Source nicht zu Lasten der Si­cher­heit geht. Vielmehr führt eine kon­se­quen­te Anwendung des Kerck­hoffs’schen Prinzips dazu, dass Fehler in kryp­to­gra­fi­schen Al­go­rith­men schneller entdeckt werden, da ent­spre­chen­de Verfahren den kri­ti­schen Augen der Fachwelt stand­hal­ten müssen.

Schlüs­sel­ex­pan­si­on: Vom Passwort zum Schlüssel

Endnutzer, die Daten chif­frie­ren oder de­chif­frie­ren möchten, kommen in der Regel nicht mit Schlüs­seln in Berührung, sondern nutzen eine hand­li­che­re Zei­chen­fol­ge: das Passwort. Sichere Pass­wör­ter haben 8 bis 12 Zeichen, stellen eine Kom­bi­na­ti­on aus Ziffern, Buch­sta­ben und Son­der­zei­chen dar und haben gegenüber Bitfolgen einen ent­schei­den­den Vorteil: Auch Menschen können sich Pass­wör­ter ohne größeren Aufwand merken.

Als Schlüssel sind Pass­wör­ter im Rahmen der Chif­frie­rung aufgrund ihrer geringen Länge jedoch un­ge­eig­net. Viele Ver­schlüs­se­lungs­ver­fah­ren be­inhal­ten daher einen Zwi­schen­schritt, in dem ein Passwort be­lie­bi­ger Länge in eine feste, dem Kryp­to­sys­tem ent­spre­chen­de Bitfolge um­ge­rech­net wird. Al­ter­na­tiv gibt es Verfahren, bei denen die Schlüssel im Rahmen der tech­ni­schen Mög­lich­kei­ten zufällig generiert werden.

Eine gängige Methode, Schlüssel aus Pass­wör­tern zu berechnen, stellt PBKDF2 (Password-Based Key De­ri­va­ti­on Function 2) dar. Im Rahmen dieses Ver­fah­rens werden Pass­wör­ter um eine pseu­do­zu­fäl­li­ge Zei­chen­fol­ge, den so­ge­nann­ten Saltwert, ergänzt und an­schlie­ßend mittels kryp­to­gra­fi­scher Hash­funk­tio­nen auf Bitfolgen der ge­wünsch­ten Länge ab­ge­bil­det.

Bei Hash­funk­tio­nen handelt es sich um kol­li­si­ons­si­che­re Ein­weg­funk­tio­nen – Be­rech­nun­gen, die ver­gleichs­wei­se leicht durch­zu­füh­ren, aber nur mit er­heb­li­chem Aufwand um­zu­keh­ren sind. Als sicher be­zeich­net man in der Kryp­to­gra­fie ein Verfahren, wenn un­ter­schied­li­chen Do­ku­men­ten un­ter­schied­li­che Hashes zu­ge­wie­sen werden. Pass­wör­ter, die mittels Ein­weg­funk­tio­nen in Schlüssel um­ge­rech­net wurden, lassen sich wenn überhaupt nur mit er­heb­li­chem Re­chen­auf­wand re­kon­stru­ie­ren. Dies ist ver­gleich­bar mit einer Suche im Te­le­fon­buch: Während es ein Leichtes ist, für einen gegebenen Namen die passende Te­le­fon­num­mer her­aus­zu­su­chen, kann die Suche nach einem Namen anhand der Te­le­fon­num­mer zum un­lös­ba­ren Problem werden.

Die ma­the­ma­ti­sche Be­rech­nung wird im Rahmen von PBKDF2 in mehreren Ite­ra­tio­nen (Wie­der­ho­lun­gen) durch­ge­führt, um den auf diese Art ge­ne­rier­ten Schlüssel gegen Brute-Force-Angriffe zu schützen. Der Saltwert erhöht den Aufwand bei der Re­kon­struk­ti­on eines Passworts auf Basis von Re­gen­bo­gen­ta­bel­len. Dabei handelt es sich um ein An­griffs­mus­ter, bei dem Code­kna­cker ausgehend von ge­spei­cher­ten Hash­wer­ten auf ein un­be­kann­tes Passwort schließen.

Weitere Passwort-Hashing-Verfahren sind scrypt, bcrypt und LM-Hash. Letzteres gilt al­ler­dings als veraltet und unsicher.

Das Schlüs­sel­ver­tei­lungs­pro­blem

Ein zentrales Problem der Kryp­to­lo­gie ist die Frage, wie In­for­ma­tio­nen an einem Ort ver­schlüs­selt und an einem anderen Ort ent­schlüs­selt werden können. Bereits Julius Cäsar war mit dem so­ge­nann­ten Schlüs­sel­ver­tei­lungs­pro­blem kon­fron­tiert. Wollte der Feldherr eine ver­schlüs­sel­te Nachricht von Rom an die ger­ma­ni­sche Front schicken, musste er si­cher­stel­len, dass der Empfänger in der Lage war, die Ge­heim­bot­schaft zu de­chif­frie­ren. Die einzige Lösung: Nicht nur der Ge­heim­text, auch der Schlüssel musste durch einen Boten über­mit­telt werden. Doch wie gelingt die Übergabe des Schüssels ohne Gefahr, dass dieser Dritten in die Hände fällt?

Die gleiche Frage be­schäf­tigt Kryp­to­lo­gen bei der Über­tra­gung ver­schlüs­sel­ter Daten im Internet noch heute. Lö­sungs­vor­schlä­ge sind in die Ent­wick­lung diverser Kryp­to­sys­te­me und Schlüs­sel­aus­tausch­pro­to­kol­le ein­ge­flos­sen. Das Schlüs­sel­ver­tei­lungs­pro­blem sym­me­tri­scher Kryp­to­sys­te­me kann als Haupt­mo­ti­va­ti­on für die Ent­wick­lung asym­me­tri­scher Ver­schlüs­se­lungs­ver­fah­ren be­trach­tet werden.

Zur Klas­si­fi­ka­ti­on von Ver­schlüs­se­lungs­ver­fah­ren

In der modernen Kryp­to­lo­gie un­ter­schei­det man grund­sätz­lich zwischen sym­me­tri­schen und asym­me­tri­schen Ver­schlüs­se­lungs­ver­fah­ren. Die Klas­si­fi­ka­ti­on erfolgt anhand der Schlüs­sel­hand­ha­bung.

Bei sym­me­tri­schen Kryp­to­sys­te­men kommt ein und derselbe Schlüssel sowohl zur Chif­frie­rung als auch zur De­chif­frie­rung ver­schlüs­sel­ter Daten zum Einsatz. Möchten zwei kom­mu­ni­zie­ren­de Parteien chif­frier­te Daten aus­tau­schen, muss ein Weg gefunden werden, auch den ge­mein­sa­men Schlüssel geheim zu über­mit­teln. Bei asym­me­tri­schen Kryp­to­sys­te­men hingegen erzeugt jeder Kom­mu­ni­ka­ti­ons­part­ner ein eigenes Schlüs­sel­paar: einen öf­fent­li­chen Schlüssel (Public Key) und einen privaten Schlüssel (Private Key).

Kommen sym­me­tri­sche und asym­me­tri­sche Ver­schlüs­se­lungs­ver­fah­ren in Kom­bi­na­ti­on zum Einsatz, spricht man von Hy­brid­ver­fah­ren.

Sym­me­tri­sche Ver­schlüs­se­lungs­ver­fah­ren

Bis in die 1970er Jahre basierte die Ver­schlüs­se­lung von In­for­ma­tio­nen auf sym­me­tri­schen Kryp­to­sys­te­men, deren Ursprünge in antiken Verfahren wie der Cäsar-Ver­schlüs­se­lung liegen. Das Grund­prin­zip sym­me­tri­scher Ver­schlüs­se­lung ist, dass Chif­frie­rung und De­chif­frie­rung mithilfe ein und desselben Schlüs­sels erfolgen. Möchten zwei Parteien ver­schlüs­selt kom­mu­ni­zie­ren, muss sowohl der Sender als auch der Empfänger über eine Kopie des ge­mein­sa­men Schlüs­sels verfügen. Um chif­frier­te In­for­ma­tio­nen vor dem Zugriff Dritter zu schützen, wird der sym­me­tri­sche Schlüssel geheim gehalten. Man spricht daher auch von einem Private-Key-Verfahren.

Während klas­si­sche sym­me­tri­sche Ver­schlüs­se­lungs­ver­fah­ren auf Buch­sta­be­ne­be­ne arbeiten, um Klartexte in Ge­heim­tex­te um­zu­schrei­ben, erfolgt die Chif­frie­rung bei com­pu­ter­ge­stütz­ten Kryp­to­sys­te­men auf Bit-Ebene. Man un­ter­schei­det dabei zwischen Strom­ver­schlüs­se­lun­gen und Block­ver­schlüs­se­lun­gen.

  • Strom­ver­schlüs­se­lung: Jedes Zeichen bzw. Bit des Klar­tex­tes wird mit einem Zeichen bzw. Bit des Schlüs­sel­stroms verknüpft und somit in ein chif­frier­tes Aus­ga­be­zei­chen übersetzt.
  • Block­ver­schlüs­se­lung: Die zu ver­schlüs­seln­den Zeichen bzw. Bits werden in Blöcke fester Länge zu­sam­men­ge­fasst und auf ein Chiffrat fester Länge ab­ge­bil­det.

Gängige Ver­schlüs­se­lungs­me­tho­den sym­me­tri­scher Kryp­to­sys­te­me sind ver­gleichs­wei­se einfache Ope­ra­tio­nen wie Sub­sti­tu­tio­nen und Trans­po­si­tio­nen, die bei modernen Verfahren kom­bi­niert und in mehreren auf­ein­an­der­fol­gen­den Runden (Ite­ra­tio­nen) auf den Klartext an­ge­wen­det werden. Zudem fließen Ad­di­tio­nen, Mul­ti­pli­ka­tio­nen, Modulare Arith­me­tik und XOR-Ope­ra­tio­nen in moderne sym­me­tri­sche Ver­schlüs­se­lungs­al­go­rith­men ein.

Bekannte sym­me­tri­sche Ver­schlüs­se­lungs­ver­fah­ren sind der in­zwi­schen überholte Data En­cryp­ti­on Standard (DES) und dessen Nach­fol­ger Advanced En­cryp­ti­on Standard (AES).

Data En­cryp­ti­on Standard (DES)

Bei DES handelt es sich um ein sym­me­tri­sches Ver­schlüs­se­lungs­ver­fah­ren, das in den 1970er Jahren von IBM ent­wi­ckelt und 1977 durch das US-ame­ri­ka­ni­sche National Institute of Standards and Tech­no­lo­gy (NIST) stan­dar­di­siert wurde. Als erstes nach damaligen Maßstäben aus­rei­chend sicheres, com­pu­ter­ge­stütz­tes Ver­schlüs­se­lungs­ver­fah­ren begründet DES die Anfänge der modernen Kryp­to­gra­fie. Der Standard ist frei von Pa­tent­rech­ten, gilt aufgrund der geringen Schlüs­sel­län­ge von 64 bit (effektiv nur 56 bit) heute jedoch als veraltet. Bereits 1994 wurde das Kryp­to­sys­tem mit zwölf HP-9735-Work­sta­tions und einem Re­chen­auf­wand von 50 Tagen geknackt. Mit dem heutigen Stand der Technik lässt sich ein DES-Schlüssel durch Brute-Force-Angriffe bereits in wenigen Stunden ent­zif­fern.

Der sym­me­tri­sche Al­go­rith­mus arbeitet als Block­ver­schlüs­se­lung auf Bit-Ebene. Dabei wird der Klartext in Blöcke von 64 bit zerlegt, die einzeln mit einem 64-bit-Schlüssel chif­friert werden. Es werden somit jeweils 64 bit Klartext in 64 bit Ge­heim­text übersetzt. Da jedes achte Bit des Schlüs­sels als Paritäts-Bit fungiert, stehen für die Ver­schlüs­se­lung effektiv nur 56 bit zur Verfügung.

Der DES-Ver­schlüs­se­lungs­al­go­rith­mus stellt ein so­ge­nann­tes Fei­s­tel­netz­werk dar und beruht auf einer Kom­bi­na­ti­on von Sub­sti­tu­tio­nen und Trans­po­si­tio­nen, die in 16 Ite­ra­tio­nen durch­ge­führt werden. Das nach dem IBM-Mit­ar­bei­ter Horst Feistel benannte Verfahren lässt sich in vier Schritten be­schrei­ben:

1. Ein­gangs­per­mu­ta­ti­on: Der 64 bit um­fas­sen­de Klartext-Block wird einer Ein­gangs­per­mu­ta­ti­on un­ter­zo­gen, die die Rei­hen­fol­ge der Bits verändert. Das Ergebnis dieser Per­mu­ta­ti­on wird in zwei 32-bit-Register ge­schrie­ben. Es entsteht eine linke Block­hälf­te (L) und eine rechte Block­hälf­te (R).

2. Schlüs­sel­per­mu­ta­ti­on: Die für die Chif­frie­rung re­le­van­ten 56 bit des Schlüs­sels werden ebenfalls einer Per­mu­ta­ti­on un­ter­zo­gen und an­schlie­ßend in zwei 28 bit große Blöcke auf­ge­teilt (C und D). Für jede der 16 Ite­ra­tio­nen wird aus den beiden Schlüs­sel­blö­cken C und D ein Run­den­schlüs­sel generiert. Dazu werden die Bits beider Halb­blö­cke um jeweils 1 oder 2 bit zyklisch nach links ver­scho­ben. Dies soll si­cher­stel­len, dass in jeder Ver­schlüs­se­lungs­run­de ein anderer Run­den­schlüs­sel ein­ge­rech­net wird. An­schlie­ßend werden die beiden Halb­blö­cke C und D auf einen 48-bit-Run­den­schlüs­sel ab­ge­bil­det.

3. Ver­schlüs­se­lungs­run­den: Jede Ver­schlüs­se­lungs­run­de umfasst die Schritte a) bis d). Pro Schleife gehen jeweils ein Halbblock R und ein Run­den­schlüs­sel in die Ver­schlüs­se­lung ein. Der Halbblock L bleibt zunächst außen vor.

  • Expansion: Der Halbblock R wird mittels Expansion auf einen 48-bit-Block erweitert. Dazu werden die 32 bit des Halb­blocks im Rahmen der Expansion in 4-bit-Gruppen auf­ge­teilt und ent­spre­chend folgendem Schema teilweise du­pli­ziert und per­mu­tiert:
  • XOR-Ver­knüp­fung von Da­ten­block und Run­den­schlüs­sel: In jeder Ver­schlüs­se­lungs­run­de wird der auf 48 bit ex­pan­dier­te Block R mit einem 48-bit-Run­den­schlüs­sel mittels einer XOR-Operation verknüpft. Das Ergebnis der XOR-Ver­knüp­fung ist wiederum ein 48-bit-Block.
  • S-Boxen (Sub­sti­tu­ti­ons­bo­xen): Im Anschluss an die XOR-Ver­knüp­fung wird der 48-bit-Block in acht 6-bit-Blöcke auf­ge­teilt, mithilfe von S-Boxen durch acht 4-bit-Blöcke sub­sti­tu­iert und zu einem 32-bit-Block zu­sam­men­ge­fasst. Das Ergebnis der Sub­sti­tu­ti­ons­bo­xen wird erneut einer Per­mu­ta­ti­on un­ter­zo­gen.
  • XOR-Ver­knüp­fung von R-Block und L-Block: Nach jeder Ver­schlüs­se­lungs­run­de wird das Ergebnis der S-Boxen mittels XOR mit dem bisher un­ge­nutz­ten L-Block verknüpft. Das Ergebnis ist ein 32-bit-Block, der als neuer R-Block in die zweite Ver­schlüs­se­lungs­run­de eingeht. Der R-Block der ersten Runde dient als L-Block der zweiten Runde.

2. Aus­gangs­per­mu­ta­ti­on: Wurden alle 16 Ver­schlüs­se­lungs­run­den durch­lau­fen, werden L- und R-Block zu einem 64-bit-Block zu­sam­men­ge­fasst und einer zur Ein­gangs­per­mu­ta­ti­on inversen Aus­gangs­per­mu­ta­ti­on un­ter­zo­gen. Der Klartext ist nun chif­friert.

Folgende Grafik zeigt eine sche­ma­ti­sche Dar­stel­lung des DES-Al­go­rith­mus. Die XOR-Ver­knüp­fun­gen sind als rote Kreise mit weißem Kreuzen ge­kenn­zeich­net.

Die Ent­schlüs­se­lung eines per DES chif­frier­ten Ge­heim­tex­tes erfolgt nach demselben Schema in um­ge­kehr­ter Rei­hen­fol­ge.

Ein Haupt­kri­tik­punkt an DES ist die geringe Schlüs­sel­län­ge von 56 bit, die in einem ver­gleichs­wei­se kleinen Schlüs­sel­raum re­sul­tiert. Dieser kann Brute-Force-Angriffen mit der heute zur Verfügung stehenden Re­chen­leis­tung nicht mehr stand­hal­ten. Zudem wird das Verfahren der Schlüs­sel­per­mu­ta­ti­on, das 16 nahezu iden­ti­sche Run­den­schlüs­sel erzeugt, als zu schwach ein­ge­schätzt.

Mit Triple-DES (3DES) wurde eine Variante von DES ent­wi­ckelt, bei der das Ver­schlüs­se­lungs­ver­fah­ren in drei auf­ein­an­der­fol­gen­den Runden durch­lau­fen wird. Doch auch die effektive Schlüs­sel­län­ge von 3DES beträgt effektiv lediglich 112 bit und liegt damit noch immer unter dem heutigen Min­dest­stan­dard von 128 bit. Zudem ist 3DES deutlich re­chen­in­ten­si­ver als DES.

Der Data En­cryp­ti­on Standard wurde daher weit­ge­hend ersetzt. Als Nach­fol­ger gilt der ebenfalls sym­me­tri­sche Ver­schlüs­se­lungs­al­go­rith­mus Advanced En­cryp­ti­on Standard.

Advanced En­cryp­ti­on Standard (AES)

In den 1990er Jahren zeichnete sich ab, dass der bis dato meist­ge­nutz­te Ver­schlüs­se­lungs­stan­dard DES der tech­ni­schen Ent­wick­lung nicht mehr gewachsen war. Ein neuer Ver­schlüs­se­lungs­stan­dard musste her. Als Nach­fol­ger eta­blier­te sich der nach seinen Ent­wick­lern Vincent Rijmen und Joan Daemen benannte Rijndael-Al­go­rith­mus (Aus­spra­che: „Reindahl“) – ein Verfahren, das sich aufgrund seiner Si­cher­heit, Fle­xi­bi­li­tät und Per­for­mance in einer öf­fent­li­chen Aus­schrei­bung durch­setz­te und Ende 2000 vom NIST als Advanced En­cryp­ti­on Standard (AES) zer­ti­fi­ziert wurde.

Auch AES teilt den zu ver­schlüs­seln­den Klartext in Blöcke auf. Somit beruht auch dieses Kryp­to­sys­tem wie DES auf einer Block­ver­schlüs­se­lung. Der Standard un­ter­stützt 128-, 192- und 256-bit-Schlüssel. Statt 64-bit-Blöcken kommen bei AES jedoch deutlich größere 128-bit-Blöcke zum Einsatz, die mit Hilfe eines Sub­sti­tu­ti­ons-Per­mu­ta­ti­ons-Netzwerks (SPN) in mehreren auf­ein­an­der­fol­gen­den Runden chif­friert werden. Auch der DES-Nach­fol­ger verwendet bei jeder Ver­schlüs­se­lungs­run­de einen neuen Run­den­schlüs­sel, der rekursiv aus dem Aus­gangs­schlüs­sel ab­ge­lei­tet und mittels XOR mit dem zu ver­schlüs­seln­den Da­ten­block verknüpft wird. Der Ablauf der Ver­schlüs­se­lung lässt sich grob in vier Schritte un­ter­tei­len:

1. Schlüs­sel­ex­pan­si­on: Wie DES nutzt auch AES in jeder Ver­schlüs­se­lungs­schlei­fe einen neuen Run­den­schlüs­sel. Dieser wird durch Rekursion aus dem Aus­gangs­schlüs­sel ab­ge­lei­tet. Dabei wird der Aus­gangs­schlüs­sel auf eine Länge ex­pan­diert, die es er­mög­licht, die benötigte Anzahl an 128-bit-Run­den­schlüs­seln ab­zu­bil­den. Jeder Run­den­schlüs­sel basiert somit auf einem Teil­ab­schnitt des er­wei­ter­ten Aus­gangs­schlüs­sels. Die Anzahl der be­nö­tig­ten Run­den­schlüs­sel beträgt die Anzahl der Ver­schlüs­se­lungs­run­den (R) inklusive Schluss­run­de plus einen Run­den­schlüs­sel für die Vorrunde (Anzahl der Run­den­schlüs­sel = R + 1).

2. Vorrunde: In der Vorrunde wird der 128-bit-Ein­ga­be­block in eine zwei­di­men­sio­na­le Tabelle (Array) über­tra­gen und mittels XOR mit dem ersten Run­den­schlüs­sel verknüpft (Key­Ad­di­ti­on). Die Tabelle umfasst 4 Zeilen und 4 Spalten. Jede Zelle enthält somit ein Byte (8 bit) des zu ver­schlüs­seln­den Blocks.

3. Ver­schlüs­se­lungs­run­den: Die Anzahl der Ver­schlüs­se­lungs­run­den hängt von der ver­wen­de­ten Schlüs­sel­län­ge ab: 10 Runden bei AES128, 12 Runden bei AES192 und 14 Runden bei AES256. In jeder Ver­schlüs­se­lungs­run­de kommen folgende Ope­ra­tio­nen zum Einsatz:

  • SubBytes: Bei SubBytes handelt es sich um eine mo­no­al­pha­be­ti­sche Sub­sti­tu­ti­on. Dabei wird jedes Byte im zu ver­schlüs­seln­den Block mithilfe einer S-Box durch ein Äqui­va­lent ersetzt.
  • ShiftRows: Im Rahmen der ShiftRow-Trans­for­ma­ti­on werden die Bytes in den Zellen des Arrays (siehe Vorrunde) zyklisch nach links ver­scho­ben.
  • Mix­Co­lum­ns: Mit Mix­Co­lum­ns be­inhal­tet der AES-Al­go­rith­mus eine Trans­for­ma­ti­on, bei der die Daten innerhalb der Spalten des Arrays vermischt werden. Dieser Schritt fußt auf einer Neu­be­rech­nung jeder einzelnen Zelle. Dazu werden die Spalten des Arrays einer Ma­tri­zen­mul­ti­pli­ka­ti­on un­ter­zo­gen und die Er­geb­nis­se mittels XOR verknüpft.
  • Key­Ad­di­ti­on: Am Ende jeder Ver­schlüs­se­lungs­run­de findet eine weitere Key­Ad­di­ti­on statt. Diese beruht wie in der Vorrunde auf einer XOR-Ver­knüp­fung des Da­ten­blocks mit dem aktuellen Run­den­schlüs­sel.

4. Schluss­run­de: Die Schluss­run­de ist die letzte Ver­schlüs­se­lungs­run­de. Anders als die vor­her­ge­hen­den Runden be­inhal­tet diese keine Mix­Co­lum­ns-Trans­for­ma­tio­nen und umfasst somit lediglich die Ope­ra­tio­nen SubBytes, ShiftRows und Key­Ad­di­ti­on. Das Ergebnis der Schluss­run­de ist der Ge­heim­text.

Die Ent­schlüs­se­lung von AES-chif­frier­ten Daten beruht auf der In­ves­tie­rung des Ver­schlüs­se­lungs­al­go­rith­mus. Diese bezieht sich neben der Abfolge der Ar­beits­schrit­te auch auf die Ope­ra­tio­nen ShiftRow, Mix­Co­lum­ns und SubBytes, deren Richtung ebenfalls umgekehrt wird.

AES wird aufgrund seines Al­go­rith­mus eine hohe Si­cher­heit be­schei­nigt. Bis heute ist kein pra­xis­re­le­van­ter Angriff bekannt. Brute-Force-Angriffe sind wegen der Schlüs­sel­län­ge von min­des­tens 128 bit in­ef­fi­zi­ent. Zudem sorgen Ope­ra­tio­nen wie ShiftRows und Mix­Co­lum­ns für eine optimale Durch­mi­schung der Bits: Im Resultat ist jedes Bit vom Schlüssel abhängig. Zudem überzeugt das Kryp­to­sys­tem durch eine einfache Im­ple­men­tie­rung und eine hohe Ge­schwin­dig­keit. Anwendung findet AES u. a. als Ver­schlüs­se­lungs­stan­dard bei WPA2, SSH und IPSec. Zudem wird der Al­go­rith­mus zur Ver­schlüs­se­lung kom­pri­mier­ter Da­tei­ar­chi­ve wie 7-Zip oder RAR verwendet.

Sicher vor dem Zugriff Dritter sind AES-chif­frier­te Daten jedoch nur solange, wie der Schlüssel geheim bleibt. Da ein und derselbe Schlüssel zur Chif­frie­rung und De­chif­frie­rung verwendet wird, ist das Kryp­to­sys­tem wie jedes andere sym­me­tri­sche Verfahren vom Schlüs­sel­ver­tei­lungs­pro­blem betroffen. Der sichere Einsatz von AES be­schränkt sich somit auf An­wen­dungs­fel­der, die keinen Schlüs­sel­aus­tausch erfordern oder diesen über einen sicheren Kanal er­mög­li­chen.

Die ver­schlüs­sel­te Kom­mu­ni­ka­ti­on im Internet erfordert es jedoch, dass Daten auf einem Rechner chif­friert und auf einem anderen de­chif­friert werden. Hier haben sich asym­me­tri­sche Kryp­to­sys­te­me durch­ge­setzt, die einen sicheren Austausch sym­me­tri­scher Schlüssel er­mög­li­chen oder ohne den Austausch eines ge­mein­sa­men Schlüs­sels funk­tio­nie­ren.

Als Al­ter­na­ti­ven zu AES bieten sich die ebenfalls auf einer Block­ver­schlüs­se­lung ba­sie­ren­den sym­me­tri­schen Kryp­to­sys­te­me MARS, RC6, Serpent und Twofish an, die neben Rijndael zu den Fi­na­lis­ten der AES-Aus­schrei­bung zählten. Auch der Twofish-Vorgänger Blowfish ist nach wie vor im Einsatz. Beachtung findet zudem die Strom­ver­schlüs­se­lung Salsa20, die 2005 von Daniel J. Bernstein ent­wi­ckelt wurde und zu den Fi­na­lis­ten des eu­ro­päi­schen eSTREAM-Projekts gehört.

Asym­me­tri­sche Ver­schlüs­se­lungs­ver­fah­ren

Während bei sym­me­tri­schen Kryp­to­sys­te­men auf beiden Seiten der chif­frier­ten Kom­mu­ni­ka­ti­on der gleiche Schlüssel zum Einsatz kommt, erzeugen die beiden Parteien einer asym­me­trisch ver­schlüs­sel­ten Kom­mu­ni­ka­ti­on pro Seite jeweils ein Schlüs­sel­paar. Jeder Kom­mu­ni­ka­ti­ons­teil­neh­mer verfügt somit über zwei Schlüssel: einen öf­fent­li­chen und einen privaten. Um ver­schlüs­selt kom­mu­ni­zie­ren zu können, muss jede Partei ihren öf­fent­li­chen Schlüssel be­kannt­ge­ben. Dies erfolgt in der Regel über Schlüs­sel­ser­ver. Man spricht von einem Public-Key-Verfahren. Der private Schlüssel hingegen bleibt geheim. Hier zeigt sich die Stärke asym­me­tri­scher Kryp­to­sys­te­me: Anders als bei sym­me­tri­schen Ver­schlüs­se­lungs­ver­fah­ren wird der geheime Schlüssel zu keiner Zeit aus der Hand gegeben.

Im Rahmen einer asym­me­tri­schen Ver­schlüs­se­lung dienen öf­fent­li­che Schlüssel der Chif­frie­rung. Zudem erlauben sie, digitale Si­gna­tu­ren zu prüfen und Benutzer zu ve­ri­fi­zie­ren. Private Schlüssel hingegen kommen bei der De­chif­frie­rung zum Einsatz und er­mög­li­chen es, digitale Si­gna­tu­ren zu erzeugen oder sich gegenüber anderen Benutzern zu au­then­ti­fi­zie­ren.

Ein Beispiel:

Benutzer A möchte Benutzer B eine chif­frier­te Nachricht senden. Dazu benötigt A den öf­fent­li­chen Schlüssel von B. Der öf­fent­li­che Schlüssel von B er­mög­licht es A, eine Nachricht so zu chif­frie­ren, dass sie nur mit dem privaten Schlüssel von B de­chif­friert werden kann. Abgesehen von B ist somit niemand in der Lage, die Nachricht zu lesen. Selbst A hat nach der Ver­schlüs­se­lung keine Mög­lich­keit mehr, die Nachricht zu ent­schlüs­seln.

Der Vorteil der asym­me­tri­schen Ver­schlüs­se­lung besteht somit darin, dass prin­zi­pi­ell jeder den öf­fent­li­chen Schlüssel von Benutzer B verwenden kann, um Nach­rich­ten zu chif­frie­ren, die aber aus­schließ­lich B mit seinem geheimen Schlüssel de­chif­frie­ren kann. Da lediglich der öf­fent­li­che Schlüssel aus­ge­tauscht wird, kann man auf einen ab­hör­si­che­ren, ma­ni­pu­la­ti­ons­ge­schütz­ten Kanal ver­zich­ten.

Ein Nachteil dieses Ver­schlüs­se­lungs­ver­fah­rens ist jedoch, dass B sich nicht sicher sein kann, dass die chif­frier­te Nachricht tat­säch­lich von A stammt. Denn grund­sätz­lich könnte auch ein Dritter (C) den öf­fent­li­chen Schlüssel von B nutzen, um Nach­rich­ten zu ver­schlüs­seln – bei­spiels­wei­se, um Malware zu ver­brei­ten. Zudem kann A sich nicht sicher sein, dass es sich bei einem öf­fent­li­chen Schlüssel tat­säch­lich um den von B handelt. Auch C könnte einen öf­fent­li­chen Schlüssel erstellen und diesen als den von B ausgeben, um Nach­rich­ten von A zu B ab­zu­fan­gen. Im Rahmen der asym­me­tri­schen Ver­schlüs­se­lung wird somit ein Me­cha­nis­mus benötigt, mit dem ein Kom­mu­ni­ka­ti­ons­part­ner die Au­then­ti­zi­tät des anderen prüfen kann.

Lösen lässt sich dieses Problem durch digitale Zer­ti­fi­ka­te und Si­gna­tu­ren.

  • Digitale Zer­ti­fi­ka­te: Um asym­me­tri­sche Ver­schlüs­se­lungs­ver­fah­ren sicher zu gestalten, haben Kom­mu­ni­ka­ti­ons­part­ner die Mög­lich­keit, die Echtheit ihrer öf­fent­li­chen Schlüssel durch eine of­fi­zi­el­le Zer­ti­fi­zie­rungs­stel­le be­stä­ti­gen zu lassen. Ein gängiger Standard für Public-Key-Zer­ti­fi­ka­te ist X.509. Anwendung findet dieser bei­spiels­wei­se bei der TLS/SSL-ver­schlüs­sel­ten Da­ten­über­tra­gung via HTTPS oder im Rahmen der E-Mail-Ver­schlüs­se­lung via S/MIME.
  • Digitale Si­gna­tu­ren: Während digitale Zer­ti­fi­ka­te verwendet werden, um öf­fent­li­che Schlüssel zu ve­ri­fi­zie­ren, kommen digitale Si­gna­tu­ren zum Einsatz, um den Absender einer ver­schlüs­sel­ten Nachricht zwei­fels­frei zu iden­ti­fi­zie­ren.Dazu nutzt dieser seinen privaten Schlüssel, um eine Signatur zu erzeugen. An­schlie­ßend ve­ri­fi­ziert der Empfänger diese Signatur mithilfe des öf­fent­li­chen Schlüs­sels des Absenders. Die Echtheit digitaler Si­gna­tu­ren lässt sich durch hier­ar­chisch struk­tu­rier­te Public-Key-In­fra­struk­tu­ren (PKI) si­cher­stel­len. Ein Beispiel dafür ist das DE-Mail-System. Eine de­zen­tra­le Al­ter­na­ti­ve zur hier­ar­chi­schen PKI ist das so­ge­nann­te Web of Trust (WOT), ein Netzwerk, in dem sich Nutzer ge­gen­sei­tig direkt und indirekt ve­ri­fi­zie­ren. Folgende Grafik zeigt eine sche­ma­ti­sche Dar­stel­lung eines solchen Ver­trau­ens­netz­werks:

Die erste wis­sen­schaft­li­che Ver­öf­fent­li­chung eines asym­me­tri­schen Ver­schlüs­se­lungs­ver­fah­rens erfolgte 1977 durch die Ma­the­ma­ti­ker Rivest, Shamir und Adleman. Das nach den Erfindern benannte RSA-Verfahren basiert auf Ein­weg­funk­tio­nen mit Falltür und lässt sich zur Ver­schlüs­se­lung von Daten sowie als Si­gna­tur­ver­fah­ren einsetzen.

Rivest, Shamir, Adleman (RSA)

RSA gilt als eines der si­chers­ten und best­be­schrie­be­nen Public-Key-Verfahren. Die Idee, eine Ver­schlüs­se­lung durch einen öf­fent­li­chen Chif­frier­schlüs­sel und einen geheimen De­chif­frier­schlüs­sel zu rea­li­sie­ren, geht auf die Kryp­to­lo­gen Whitfield Diffie und Martin Hellman zurück. Diese ver­öf­fent­lich­ten 1976 mit dem Diffie-Hellman-Schlüs­sel­aus­tausch ein Verfahren, das es zwei Kom­mu­ni­ka­ti­ons­part­nern er­mög­licht, sich über einen un­si­che­ren Kanal gemeinsam auf einen geheimen Schlüssel zu einigen. Dabei stützten sich die Forscher auf das von Ralph Merkle ent­wi­ckel­te Merkles Puzzle. Man spricht daher auch vom Diffie-Hellman-Merkle-Schlüs­sel­aus­tausch (DHM).

Die Kryptogen bedienten sich ma­the­ma­ti­scher Ein­weg­funk­tio­nen, die zwar leicht durch­zu­füh­ren sind, sich aber nur mit er­heb­li­chem Re­chen­auf­wand umkehren lassen. Noch heute kommt der nach ihnen benannte Schlüs­sel­aus­tausch zur Anwendung, um geheime Schlüssel im Rahmen sym­me­tri­scher Kryp­to­sys­te­me aus­zu­han­deln. Ein weiteres Verdienst des For­scher­du­os stellt das Konzept der Falltür dar. Bereits in der Ver­öf­fent­li­chung des Diffie-Hellman-Schlüs­sel­aus­tauschs werden ver­steck­te Ab­kür­zun­gen an­ge­spro­chen, die es er­mög­li­chen sollen, die Inversion einer Ein­weg­funk­ti­on zu be­schleu­ni­gen. Einen konkreten Beweis lieferten Diffie und Hellmann nicht, regten mit ihrer Theorie der Falltür jedoch zahl­rei­che Kryp­to­lo­gen zu eigenen Un­ter­su­chun­gen an.

Auch Rivest, Shamir und Adleman suchten nach Ab­kür­zun­gen für Ein­weg­funk­tio­nen – ur­sprüng­lich mit der Mo­ti­va­ti­on, die Fall­tür­theo­rie zu wi­der­le­gen. Doch ihre Forschung ent­wi­ckel­te sich in eine andere Richtung und mündete in das schließ­lich nach ihnen benannte Ver­schlüs­se­lungs­ver­fah­ren. Heute gilt RSA als der erste wis­sen­schaft­lich pu­bli­zier­te Al­go­rith­mus, der eine Über­tra­gung chif­frier­ter Daten ohne Austausch eines geheimen Schlüs­sels er­mög­licht.

Beim RSA kommt ein Al­go­rith­mus zum Einsatz, der sich auf die Mul­ti­pli­ka­ti­on großer Prim­zah­len stützt. Während es im All­ge­mei­nen kein Problem darstellt, zwei Prim­zah­len mit 100, 200 oder 300 Stellen zu mul­ti­pli­zie­ren, existiert bis heute kein ef­fi­zi­en­ter Al­go­rith­mus, der das Ergebnis einer solchen Re­chen­ope­ra­ti­on im Um­kehr­schritt in ihre Prim­fak­to­ren zerlegen kann. Ver­deut­li­chen lässt sich die Prim­fak­to­ri­sie­rung an einem Beispiel:

Mul­ti­pli­ziert man die Prim­zah­len 14.629 und 30.491 erhält man das Produkt 446.052.839. Dieses hat lediglich vier Teiler: 1, sich selbst sowie die beiden Prim­zah­len, die mul­ti­pli­ziert wurden. Streicht man die ersten beiden Teiler, da jede Zahl durch 1 und durch sich selbst teilbar ist, erhält man somit die Aus­gangs­wer­te 14.629 und 30.491.

Dieses Schema ist die Grundlage der RSA-Schlüs­sel­er­zeu­gung. Sowohl der öf­fent­li­che als auch der private Schlüssel stellen zwei Zah­len­paa­re dar:

Öf­fent­li­cher Schlüssel: (e, N)

Privater Schlüssel: (d, N)

Bei N handelt es sich um das so­ge­nann­te RSA-Modul. Dieses ist in beiden Schlüs­seln enthalten und ergibt sich aus dem Produkt zweier zufällig gewählter, sehr großer Prim­zah­len p und q (N = p x q).

Um den öf­fent­li­chen Schlüssel zu ge­ne­rie­ren, benötigt man zudem e, eine Zahl, die mit gewissen Ein­schrän­kun­gen zufällig gewählt wird. Kom­bi­niert man N und e erhält man den öf­fent­li­chen Schlüssel, der jedem Kom­mu­ni­ka­ti­ons­teil­neh­mer in Klartext vorliegt.

Um den private Schlüssel zu ge­ne­rie­ren, benötigt neben N auch d. Bei d handelt es sich um einen Wert, der sich aus den zufällig ge­ne­rier­ten Prim­zah­len p und q sowie der Zu­falls­zahl e ergibt, die auf Basis der Eu­ler­schen Phi-Funktion (φ) mit­ein­an­der ver­rech­net werden.

Welche Prim­zah­len in die Be­rech­nung des privaten Schlüs­sels eingehen, muss geheim bleiben, um die Si­cher­heit der RSA-Ver­schlüs­se­lung zu ge­währ­leis­ten. Das Produkt der beiden Prim­zah­len hingegen kann im öf­fent­li­chen Schlüssel in Klartext verwendet werden, da man davon ausgeht, dass es heut­zu­ta­ge keinen ef­fi­zi­en­ten Al­go­rith­mus gibt, der das Produkt sehr großer Prim­zah­len in re­le­van­ter Zeit in seine Faktoren zerlegen kann. Es ist somit nicht möglich, p und q aus N zu berechnen. Es sei denn, man kann die Be­rech­nung abkürzen. Eine solche Falltür stellt der Wert d dar, der lediglich dem Besitzer des privaten Schlüs­sels bekannt ist.

Die Si­cher­heit des RSA-Al­go­rith­mus ist in hohem Maße abhängig vom tech­ni­schen Fort­schritt. Die Re­chen­leis­tung von Computern ver­dop­pelt sich in etwa alle zwei Jahre. Es ist somit nicht aus­ge­schlos­sen, dass in ab­seh­ba­rer Zeit ein ef­fi­zi­en­tes Verfahren zur Prim­fak­tor­zer­le­gung in der heute üblichen Grö­ßen­ord­nung zur Verfügung steht. In diesem Fall bietet RSA die Mög­lich­keit, den Al­go­rith­mus der tech­ni­schen Ent­wick­lung an­zu­pas­sen, indem zur Be­rech­nung der Schlüssel noch größere Prim­zah­len her­an­ge­zo­gen werden.

Für einen sicheren Betrieb des RSA-Ver­fah­rens gibt die Bun­des­netz­agen­tur für den Wert N (das Produkt beider Prim­zah­len) bis Ende 2020 eine Min­dest­län­ge von 1.976 bit an, empfiehlt jedoch 2.048 bit. Dies ent­spricht Prim­zah­len in einer Grö­ßen­ord­nung von etwa 300 De­zi­mal­stel­len.

ID-basierte Public-Key-Verfahren

Die zentrale Schwach­stel­le asym­me­tri­scher Ver­schlüs­se­lungs­sys­te­me ist die Be­nut­zer­au­then­ti­fi­zie­rung. In klas­si­schen Public-Key-Verfahren steht ein öf­fent­li­cher Schlüssel in keinerlei Zu­sam­men­hang mit der Identität seines Benutzers. Gelingt es einem Dritten, sich mithilfe seines eigenen Public Keys als eine der an der ver­schlüs­sel­ten Da­ten­über­tra­gung be­tei­lig­ten Parteien aus­zu­ge­ben, lässt sich das gesamte Kryp­to­sys­tem aushebeln, ohne dass der Al­go­rith­mus oder ein privater De­chif­frier­schlüs­sel direkt an­ge­grif­fen werden müssen. Bereits 1984 schlug Adi Shamir, Mit­ent­wick­ler der RSA, daher ein ID-basiertes Kryp­to­sys­tem vor, das auf dem asym­me­tri­schen Ansatz basiert, dessen Schwach­stel­le jedoch zu kom­pen­sie­ren versucht.

Im Rahmen der iden­ti­täts­ba­sier­ten Ver­schlüs­se­lung („identity-based en­cryp­ti­on“, IBE) wird der Public Key eines Kom­mu­ni­ka­ti­ons­part­ners nicht in Ab­hän­gig­keit zum Private Key erzeugt, sondern aus einer ein­deu­ti­gen ID berechnet. Je nach Kontext bieten sich bei­spiels­wei­se die E-Mail-Adresse oder eine Domain an. Es entfällt somit die Au­then­ti­fi­zie­rung öf­fent­li­cher Schlüssel durch of­fi­zi­el­le Zer­ti­fi­zie­rungs­stel­len. Deren Platz nimmt jedoch eine andere Instanz ein: der so­ge­nann­te Private Key Generator (PKG). Dabei handelt es sich um einen zentralen Al­go­rith­mus, bei dem sich der Empfänger einer ver­schlüs­sel­ten Nachricht einen zu seiner Identität gehörigen De­chif­frier­schlüs­sel aus­stel­len lassen kann.

Die Theorie der ID-basierten Ver­schlüs­se­lung löst somit ein grund­le­gen­des Problem asym­me­tri­scher Kryp­to­sys­te­me, führt jedoch zwei weitere Si­cher­heits­lü­cken ein: Ein zentraler Kri­tik­punkt ergibt sich aus der Frage, wie die Übergabe des privaten De­chif­frier­schlüs­sels vom PKG zum Empfänger der ver­schlüs­sel­ten Nachricht erfolgen soll. Hier tut sich das alt­be­kann­te Schlüs­sel­ver­tei­lungs­pro­blem auf. Einen weiteren Nachteil ID-basierter Verfahren stellt der Umstand dar, dass es mit dem PKG neben dem Empfänger einer chif­frier­ten Nachricht eine weitere Instanz gibt, die den De­chif­frier­schlüs­sel kennt. Dieser ist somit per De­fi­ni­ti­on kein Private Key und kann miss­bräuch­lich ein­ge­setzt werden. Theo­re­tisch hat der PKG die Mög­lich­keit, sämtliche Nach­rich­ten un­au­to­ri­siert zu ent­schlüs­seln. Umgehen lässt sich dies, indem das Schlüs­sel­paar mit Open-Source-Software auf dem eigenen Rechner generiert wird.

Das be­kann­tes­te ID-basierte Verfahren geht auf Dan Boneh und Matthew K. Franklin zurück.

Hybrid-Verfahren

Als Hybrid-Ver­schlüs­se­lung be­zeich­net man die Ver­bin­dung sym­me­tri­scher und asym­me­tri­scher Kryp­to­sys­te­me im Rahmen der Da­ten­über­tra­gung im Internet. Ziel dieser Kom­bi­na­ti­on ist es, die Schwächen des einen Systems durch die Stärken des anderen zu kom­pen­sie­ren.

Sym­me­tri­sche Kryp­to­sys­te­me wie AES (Advanced En­cryp­ti­on Standard) gelten zum heutigen Stand der Technik als sicher und er­mög­li­chen es, auch große Da­ten­men­gen schnell und re­chen­ef­fi­zi­ent zu ver­ar­bei­ten. Das Design des Al­go­rith­mus auf Basis eines ge­mein­sa­men Private Keys, der ab­hör­si­cher zwischen Empfänger und Sender einer chif­frier­ten Nachricht aus­ge­tauscht werden muss, stellt Anwender sym­me­tri­scher Verfahren jedoch vor das Problem der Schlüs­sel­ver­tei­lung. Lösen lässt sich dieses durch asym­me­tri­sche Kryp­to­sys­te­me. Verfahren wie RSA beruhen auf einer strikten Trennung von öf­fent­li­chen und privaten Schlüs­seln und er­mög­li­chen es so, die Übergabe eines privaten Schlüs­sels zu umgehen.

Einen ver­läss­li­chen Schutz gegen Kryp­to­ana­ly­sen bietet RSA jedoch nur bei einer aus­rei­chend großen Schlüs­sel­län­ge von min­des­tens 1.976 bit. Diese re­sul­tiert in langen Re­chen­vor­gän­gen, die den Al­go­rith­mus für eine Ver- und Ent­schlüs­se­lung großer Da­ten­men­gen dis­qua­li­fi­ziert. Zudem ist der zu über­mit­teln­de Ge­heim­text nach einer RSA-Chif­frie­rung deutlich größer als der ur­sprüng­li­che Klartext.

Im Rahmen hybrider Ver­schlüs­se­lungs­ver­fah­ren kommen asym­me­tri­sche Al­go­rith­men daher nicht zum Einsatz, um Nutzdaten zu ver­schlüs­seln, sondern um die Über­tra­gung eines sym­me­tri­schen Session-Keys über einen un­ge­schütz­ten öf­fent­li­chen Kanal ab­zu­si­chern. Dieser wiederum er­mög­licht es, einen mithilfe sym­me­tri­scher Al­go­rith­men effizient chif­frier­ten Ge­heim­text zu ent­schlüs­seln.

Der Ablauf einer hybriden Ver­schlüs­se­lung lässt sich in drei Schritten be­schrei­ben:

1. Schlüs­sel­ver­wal­tung: Bei Hybrid-Verfahren wird die sym­me­tri­sche Ver­schlüs­se­lung einer Nachricht von einem asym­me­tri­schen Ver­schlüs­se­lungs­ver­fah­ren ein­ge­rahmt. Dazu müssen sowohl asym­me­tri­sche (a) als auch sym­me­tri­sche Schlüssel (b) generiert werden:

  • Bevor es zur chif­frier­ten Da­ten­über­tra­gung kommt, erzeugen beide Kom­mu­ni­ka­ti­ons­part­ner zunächst je ein asym­me­tri­sches Schlüs­sel­paar: einen Public Key und einen Private Key. An­schlie­ßend erfolgt der Austausch der öf­fent­li­chen Schlüssel – im besten Fall ab­ge­si­chert durch einen Au­then­ti­fi­zie­rungs­me­cha­nis­mus. Das asym­me­tri­sche Schlüs­sel­paar dient der Chif­frie­rung und De­chif­frie­rung eines sym­me­tri­schen Session-Keys und wird in der Regel mehrmals benutzt.
  • Die Chif­frie­rung und De­chif­frie­rung des Klar­tex­tes erfolgt anhand des sym­me­tri­schen Sit­zungs­schlüs­sels (Session-Key). Dieser wird vom Absender einer Nachricht bei jedem Ver­schlüs­se­lungs­vor­gang neu generiert.

2. Ver­schlüs­se­lung: Soll eine (um­fang­rei­che) Nachricht sicher über das Internet über­mit­telt werden, erzeugt der Absender zunächst einen sym­me­tri­schen Session-Key, mit dem die Nutzdaten chif­friert werden. Ist dies erfolgt, kommt der Public Key des Emp­fän­gers zum Einsatz. Dieser dient der asym­me­tri­schen Chif­frie­rung des Sit­zungs­schlüs­sels. Sowohl die Nutzdaten als auch der sym­me­tri­sche Schlüssel liegen somit in chif­frier­ter Form vor und können ohne Bedenken versendet werden.

3. Ent­schlüs­se­lung: Geht ein Ge­heim­text zusammen mit dem chif­frier­ten Session-Key beim Empfänger ein, nutzt dieser seinen Private Key um den Sit­zungs­schlüs­sel asym­me­trisch zu de­chif­frie­ren. Dieser kommt im Anschluss zum Einsatz, um die sym­me­trisch chif­frier­ten Nutzdaten zu ent­schlüs­seln.

Nach diesem Schema lässt sich ein ef­fi­zi­en­tes Ver­schlüs­se­lungs­ver­fah­ren rea­li­sie­ren, mit dem sich selbst um­fang­rei­che Nutzdaten in hoher Ge­schwin­dig­keit sicher ver- und ent­schlüs­selt werden können. Da lediglich ein kurzer Sit­zungs­schlüs­sel asym­me­trisch chif­friert wird, fallen die ver­gleichs­wei­se langen Be­rech­nungs­zei­ten asym­me­tri­scher Al­go­rith­men bei der Hybrid-Ver­schlüs­se­lung nicht ins Gewicht. Das Schlüs­sel­ver­tei­lungs­pro­blem des sym­me­tri­schen Ver­schlüs­se­lungs­ver­fah­rens reduziert sich durch die asym­me­tri­sche Chif­frie­rung des Session-Keys auf das Problem der Be­nut­zer­au­then­ti­fi­zie­rung. Dieses lässt sich wie bei rein asym­me­tri­schen Kryp­to­sys­te­men durch digitale Si­gna­tu­ren und Zer­ti­fi­ka­te lösen.

Hybride Ver­schlüs­se­lungs­ver­fah­ren kommen in Form von IPSec bei der ge­si­cher­ten Kom­mu­ni­ka­ti­on über un­ge­si­cher­te IP-Netze zum Einsatz. Und auch das Hypertext Transfer Protocol Secure (HTTPS) setzt mit TLS/SSL auf ein hybrides Ver­schlüs­se­lungs­pro­to­koll, das sym­me­tri­sche und asym­me­tri­sche Kryp­to­sys­te­me kom­bi­niert. Zudem ist eine Umsetzung des Hy­brid­ver­fah­rens die Basis für Ver­schlüs­se­lungs­stan­dards wie Pretty Good Privacy (PGP), GnuPG und S/MIME, die im Rahmen der E-Mail-Ver­schlüs­se­lung zum Einsatz kommen.

Eine gängige Kom­bi­na­ti­on im Rahmen hybrider Ver­schlüs­se­lungs­ver­fah­ren ist die sym­me­tri­sche Ver­schlüs­se­lung der Nutzdaten via AES und die an­schlie­ßen­de asym­me­tri­sche Ver­schlüs­se­lung des Session-Key mittels RSA. Al­ter­na­tiv lässt sich der Session-Key im Rahmen des Diffie-Hellman-Ver­fah­rens aus­han­deln. Dieses kann als Ephemeral Diffie-Hellman Forward Secrecy bieten, ist jedoch anfällig für Man-in-the-Middle-Angriffe. Einen Ersatz für den RSA-Al­go­rith­mus stellt das Elgamal-Kryp­to­sys­tem dar. Das 1985 vom Taher Elgamal ent­wi­ckel­te Public-Key-Verfahren basiert ebenfalls auf der Idee des Diffie-Hellman-Schlüs­sel­aus­tauschs und kommt in der aktuellen Version des Ver­schlüs­se­lungs­pro­gramms PGP zum Einsatz.

Zum Hauptmenü