Kryptographie - Kurzanleitung
Menschen ab dem Alter hatten zwei inhärente Bedürfnisse - (a) zu kommunizieren und Informationen auszutauschen und (b) selektiv zu kommunizieren. Diese beiden Bedürfnisse führten zur Kunst, die Nachrichten so zu codieren, dass nur die beabsichtigten Personen Zugang zu den Informationen haben konnten. Unbefugte konnten keine Informationen extrahieren, selbst wenn die verschlüsselten Nachrichten in ihre Hand fielen.
Die Kunst und Wissenschaft, die Botschaften zu verbergen, um Geheimhaltung in der Informationssicherheit einzuführen, wird als Kryptographie anerkannt.
Das Wort "Kryptographie" wurde geprägt, indem zwei griechische Wörter kombiniert wurden: "Krypto" bedeutet versteckt und "Graphen" bedeutet Schreiben.
Geschichte der Kryptographie
Die Kunst der Kryptographie gilt zusammen mit der Kunst des Schreibens als geboren. Als sich die Zivilisationen weiterentwickelten, organisierten sich die Menschen in Stämmen, Gruppen und Königreichen. Dies führte zur Entstehung von Ideen wie Macht, Schlachten, Vorherrschaft und Politik. Diese Ideen haben das natürliche Bedürfnis der Menschen, heimlich mit selektiven Empfängern zu kommunizieren, weiter angeheizt, was wiederum die kontinuierliche Weiterentwicklung der Kryptographie sicherstellte.
Die Wurzeln der Kryptographie liegen in römischen und ägyptischen Zivilisationen.
Hieroglyphe - Die älteste kryptografische Technik
Der erste bekannte Beweis für Kryptographie lässt sich auf die Verwendung von Hieroglyphen zurückführen. Vor etwa 4000 Jahren kommunizierten die Ägypter mit Hieroglyphenbotschaften. Dieser Code war das Geheimnis, das nur den Schriftgelehrten bekannt war, die im Namen der Könige Nachrichten übermittelten. Eine solche Hieroglyphe ist unten gezeigt.
Später verwendeten die Gelehrten zwischen 500 und 600 v. Chr. Einfache monoalphabetische Substitutions-Chiffren. Dies beinhaltete das Ersetzen von Nachrichtenalphabeten durch andere Alphabete durch eine geheime Regel. Dieserule wurde ein key um die Nachricht von der verstümmelten Nachricht zurückzurufen.
Die frühere römische Methode der Kryptographie, im Volksmund als die bekannt Caesar Shift Cipher, Wenn der Empfänger dieser Nachricht die Buchstaben einer Nachricht um eine vereinbarte Nummer verschiebt (drei war eine gängige Wahl), verschiebt er die Buchstaben um dieselbe Nummer zurück und erhält die ursprüngliche Nachricht.
Steganographie
Die Steganographie ist ähnlich, fügt der Kryptographie jedoch eine weitere Dimension hinzu. Bei dieser Methode möchten Personen nicht nur die Geheimhaltung von Informationen schützen, indem sie diese verbergen, sondern auch sicherstellen, dass nicht autorisierte Personen keine Beweise dafür erhalten, dass die Informationen überhaupt vorhanden sind. Zum Beispiel,invisible watermarking.
In der Steganographie ist einem unbeabsichtigten Empfänger oder Eindringling nicht bewusst, dass beobachtete Daten versteckte Informationen enthalten. In der Kryptographie ist sich ein Eindringling normalerweise bewusst, dass Daten übertragen werden, da er die codierte / verschlüsselte Nachricht sehen kann.
Evolution der Kryptographie
Während und nach der europäischen Renaissance führten verschiedene italienische und päpstliche Staaten die rasche Verbreitung kryptografischer Techniken an. In dieser Zeit wurden verschiedene Analyse- und Angriffstechniken erforscht, um die Geheimcodes zu brechen.
Verbesserte Codierungstechniken wie Vigenere Codingentstand in den 15 - ten Jahrhunderts, die Buchstaben in der Nachricht mit einer Anzahl von variablen Orten statt bewegen sie die gleiche Anzahl von Plätzen angeboten bewegen.
Erst nach der 19 - ten Jahrhundert, Kryptographie aus dem Ad - hoc entwickelte Ansätzen zur Verschlüsselung auf die anspruchsvollere Kunst und Wissenschaft der Informationssicherheit.
Im frühen 20. th Jahrhundert, die Erfindung der mechanischen und elektromechanischen Maschinen, wie dieEnigma rotor machine, Bereitstellung fortschrittlicherer und effizienterer Mittel zur Codierung der Informationen.
Während der Zeit des Zweiten Weltkriegs beide cryptography und cryptanalysis wurde übermäßig mathematisch.
Mit den Fortschritten auf diesem Gebiet begannen Regierungsorganisationen, Militäreinheiten und einige Firmenhäuser, die Anwendungen der Kryptographie zu übernehmen. Sie benutzten Kryptographie, um ihre Geheimnisse vor anderen zu schützen. Jetzt hat die Ankunft von Computern und dem Internet eine effektive Kryptographie in die Reichweite gewöhnlicher Menschen gebracht.
Die moderne Kryptographie ist der Eckpfeiler der Computer- und Kommunikationssicherheit. Seine Grundlage basiert auf verschiedenen Konzepten der Mathematik wie der Zahlentheorie, der rechnerischen Komplexitätstheorie und der Wahrscheinlichkeitstheorie.
Merkmale der modernen Kryptographie
Es gibt drei Hauptmerkmale, die die moderne Kryptographie vom klassischen Ansatz trennen.
Klassische Kryptographie | Moderne Kryptographie |
---|---|
Es manipuliert traditionelle Zeichen, dh Buchstaben und Ziffern, direkt. | Es arbeitet mit binären Bitsequenzen. |
Es basiert hauptsächlich auf "Sicherheit durch Dunkelheit". Die für die Codierung verwendeten Techniken wurden geheim gehalten und nur die an der Kommunikation beteiligten Parteien wussten davon. | Es stützt sich auf öffentlich bekannte mathematische Algorithmen zur Codierung der Informationen. Die Geheimhaltung wird durch einen geheimen Schlüssel erreicht, der als Keim für die Algorithmen verwendet wird. Die Rechenschwierigkeiten von Algorithmen, das Fehlen eines geheimen Schlüssels usw. machen es einem Angreifer unmöglich, die ursprünglichen Informationen zu erhalten, selbst wenn er den für die Codierung verwendeten Algorithmus kennt. |
Für die vertrauliche Kommunikation ist das gesamte Kryptosystem erforderlich. | Moderne Kryptographie erfordert, dass Parteien, die an sicherer Kommunikation interessiert sind, nur den geheimen Schlüssel besitzen. |
Kontext der Kryptographie
Die Kryptologie, das Studium von Kryptosystemen, kann in zwei Zweige unterteilt werden -
- Cryptography
- Cryptanalysis
Was ist Kryptographie?
Kryptographie ist die Kunst und Wissenschaft, ein Kryptosystem herzustellen, das Informationssicherheit bietet.
Die Kryptographie befasst sich mit der eigentlichen Sicherung digitaler Daten. Es bezieht sich auf den Entwurf von Mechanismen, die auf mathematischen Algorithmen basieren und grundlegende Informationssicherheitsdienste bereitstellen. Sie können sich Kryptografie als die Einrichtung eines großen Toolkits vorstellen, das verschiedene Techniken in Sicherheitsanwendungen enthält.
Was ist Kryptoanalyse?
Die Kunst und Wissenschaft, den Chiffretext zu brechen, ist als Kryptoanalyse bekannt.
Die Kryptoanalyse ist der Schwesterzweig der Kryptographie und beide existieren nebeneinander. Der kryptografische Prozess führt zum Verschlüsselungstext zur Übertragung oder Speicherung. Es beinhaltet die Untersuchung des kryptografischen Mechanismus mit der Absicht, sie zu brechen. Die Kryptoanalyse wird auch beim Entwurf der neuen kryptografischen Techniken verwendet, um ihre Sicherheitsstärken zu testen.
Note - Die Kryptographie befasst sich mit dem Design von Kryptosystemen, während die Kryptoanalyse das Brechen von Kryptosystemen untersucht.
Sicherheitsdienste der Kryptographie
Das Hauptziel der Verwendung von Kryptografie besteht darin, die folgenden vier grundlegenden Informationssicherheitsdienste bereitzustellen. Lassen Sie uns nun die möglichen Ziele sehen, die durch Kryptographie erreicht werden sollen.
Vertraulichkeit
Vertraulichkeit ist der grundlegende Sicherheitsdienst, der durch Kryptographie bereitgestellt wird. Es ist ein Sicherheitsdienst, der die Informationen von einer nicht autorisierten Person fernhält. Es wird manchmal als bezeichnetprivacy oder secrecy.
Vertraulichkeit kann durch zahlreiche Mittel erreicht werden, angefangen von der physischen Sicherung bis hin zur Verwendung mathematischer Algorithmen für die Datenverschlüsselung.
Datenintegrität
Es ist ein Sicherheitsdienst, der sich mit der Identifizierung von Änderungen an den Daten befasst. Die Daten können absichtlich oder versehentlich von einer nicht autorisierten Stelle geändert werden. Der Integritätsdienst bestätigt, ob Daten intakt sind oder nicht, seit sie zuletzt von einem autorisierten Benutzer erstellt, übertragen oder gespeichert wurden.
Die Datenintegrität kann die Änderung von Daten nicht verhindern, bietet jedoch ein Mittel zum Erkennen, ob Daten auf nicht autorisierte Weise manipuliert wurden.
Authentifizierung
Die Authentifizierung liefert die Identifikation des Urhebers. Es bestätigt dem Empfänger, dass die empfangenen Daten nur von einem identifizierten und verifizierten Absender gesendet wurden.
Der Authentifizierungsdienst hat zwei Varianten -
Message authentication Identifiziert den Absender der Nachricht ohne Rücksicht auf den Router oder das System, das die Nachricht gesendet hat.
Entity authentication ist die Gewissheit, dass Daten von einer bestimmten Entität, beispielsweise einer bestimmten Website, empfangen wurden.
Neben dem Urheber kann die Authentifizierung auch Sicherheit für andere Parameter bieten, die sich auf Daten beziehen, wie z. B. Datum und Uhrzeit der Erstellung / Übertragung.
Nicht-Zurückweisung
Es handelt sich um einen Sicherheitsdienst, der sicherstellt, dass ein Unternehmen das Eigentum an einer früheren Verpflichtung oder Aktion nicht verweigern kann. Es ist eine Zusicherung, dass der ursprüngliche Ersteller der Daten die Erstellung oder Übermittlung dieser Daten an einen Empfänger oder einen Dritten nicht verweigern kann.
Nicht-Zurückweisung ist eine Eigenschaft, die in Situationen am wünschenswertesten ist, in denen die Möglichkeit eines Streits über den Datenaustausch besteht. Wenn beispielsweise eine Bestellung elektronisch aufgegeben wird, kann ein Käufer die Bestellung nicht ablehnen, wenn bei dieser Transaktion der Nicht-Zurückweisungsservice aktiviert wurde.
Kryptographie-Grundelemente
Kryptografie-Grundelemente sind nichts anderes als die Werkzeuge und Techniken in der Kryptografie, die selektiv verwendet werden können, um eine Reihe gewünschter Sicherheitsdienste bereitzustellen.
- Encryption
- Hash-Funktionen
- Nachrichtenauthentifizierungscodes (MAC)
- Digitale Signaturen
Die folgende Tabelle zeigt die Grundelemente, mit denen ein bestimmter Sicherheitsdienst selbst ausgeführt werden kann.
Note - Kryptografische Grundelemente sind eng miteinander verbunden und werden häufig kombiniert, um eine Reihe gewünschter Sicherheitsdienste aus einem Kryptosystem heraus zu erzielen.
Ein Kryptosystem ist eine Implementierung kryptografischer Techniken und der dazugehörigen Infrastruktur zur Bereitstellung von Informationssicherheitsdiensten. Ein Kryptosystem wird auch als bezeichnetcipher system.
Lassen Sie uns ein einfaches Modell eines Kryptosystems diskutieren, das die übertragenen Informationen vertraulich behandelt. Dieses Grundmodell ist in der folgenden Abbildung dargestellt -
Die Abbildung zeigt einen Absender, der vertrauliche Daten so an einen Empfänger übertragen möchte, dass eine Partei, die den Kommunikationskanal abfängt oder abhört, die Daten nicht extrahieren kann.
Das Ziel dieses einfachen Kryptosystems ist, dass am Ende des Prozesses nur der Absender und der Empfänger den Klartext kennen.
Komponenten eines Kryptosystems
Die verschiedenen Komponenten eines grundlegenden Kryptosystems sind wie folgt:
Plaintext. Es sind die Daten, die während der Übertragung geschützt werden sollen.
Encryption Algorithm.Es ist ein mathematischer Prozess, der einen Chiffretext für einen bestimmten Klartext und Verschlüsselungsschlüssel erzeugt. Es ist ein kryptografischer Algorithmus, der Klartext und einen Verschlüsselungsschlüssel als Eingabe verwendet und einen Chiffretext erzeugt.
Ciphertext.Dies ist die verschlüsselte Version des Klartextes, der vom Verschlüsselungsalgorithmus unter Verwendung eines bestimmten Verschlüsselungsschlüssels erzeugt wird. Der Chiffretext wird nicht geschützt. Es fließt auf öffentlichen Kanälen. Es kann von jedem abgefangen oder kompromittiert werden, der Zugriff auf den Kommunikationskanal hat.
Decryption Algorithm,Es ist ein mathematischer Prozess, der einen eindeutigen Klartext für jeden gegebenen Chiffretext und Entschlüsselungsschlüssel erzeugt. Es ist ein kryptografischer Algorithmus, der einen Chiffretext und einen Entschlüsselungsschlüssel als Eingabe verwendet und einen Klartext ausgibt. Der Entschlüsselungsalgorithmus kehrt den Verschlüsselungsalgorithmus im Wesentlichen um und ist daher eng damit verwandt.
Encryption Key.Dies ist ein Wert, der dem Absender bekannt ist. Der Absender gibt den Verschlüsselungsschlüssel zusammen mit dem Klartext in den Verschlüsselungsalgorithmus ein, um den Chiffretext zu berechnen.
Decryption Key.Dies ist ein Wert, der dem Empfänger bekannt ist. Der Entschlüsselungsschlüssel bezieht sich auf den Verschlüsselungsschlüssel, ist jedoch nicht immer mit diesem identisch. Der Empfänger gibt den Entschlüsselungsschlüssel zusammen mit dem Chiffretext in den Entschlüsselungsalgorithmus ein, um den Klartext zu berechnen.
Für ein bestimmtes Kryptosystem wird eine Sammlung aller möglichen Entschlüsselungsschlüssel als a bezeichnet key space.
Ein interceptor(ein Angreifer) ist eine nicht autorisierte Entität, die versucht, den Klartext zu bestimmen. Er kann den Chiffretext sehen und den Entschlüsselungsalgorithmus kennen. Er darf jedoch niemals den Entschlüsselungsschlüssel kennen.
Arten von Kryptosystemen
Grundsätzlich gibt es zwei Arten von Kryptosystemen, die auf der Art und Weise basieren, in der die Verschlüsselung und Entschlüsselung im System durchgeführt wird:
- Symmetrische Schlüsselverschlüsselung
- Asymmetrische Schlüsselverschlüsselung
Der Hauptunterschied zwischen diesen Kryptosystemen ist die Beziehung zwischen der Verschlüsselung und dem Entschlüsselungsschlüssel. In jedem Kryptosystem sind beide Schlüssel logischerweise eng miteinander verbunden. Es ist praktisch unmöglich, den Chiffretext mit dem Schlüssel zu entschlüsseln, der nicht mit dem Verschlüsselungsschlüssel zusammenhängt.
Symmetrische Schlüsselverschlüsselung
Der Verschlüsselungsprozess wo same keys are used for encrypting and decrypting Die Informationen werden als symmetrische Schlüsselverschlüsselung bezeichnet.
Die Untersuchung symmetrischer Kryptosysteme wird als bezeichnet symmetric cryptography. Symmetrische Kryptosysteme werden manchmal auch als bezeichnetsecret key cryptosystems.
Einige bekannte Beispiele für Verschlüsselungsmethoden mit symmetrischen Schlüsseln sind: Digital Encryption Standard (DES), Triple-DES (3DES), IDEA und BLOWFISH.
Vor 1970 verwendeten alle Kryptosysteme eine symmetrische Schlüsselverschlüsselung. Noch heute ist seine Relevanz sehr hoch und wird in vielen Kryptosystemen in großem Umfang eingesetzt. Es ist sehr unwahrscheinlich, dass diese Verschlüsselung verschwindet, da sie bestimmte Vorteile gegenüber der asymmetrischen Schlüsselverschlüsselung hat.
Die herausragenden Merkmale eines Kryptosystems, das auf einer symmetrischen Schlüsselverschlüsselung basiert, sind:
Personen, die eine symmetrische Schlüsselverschlüsselung verwenden, müssen vor dem Informationsaustausch einen gemeinsamen Schlüssel gemeinsam nutzen.
Es wird empfohlen, die Schlüssel regelmäßig zu wechseln, um Angriffe auf das System zu verhindern.
Es muss ein robuster Mechanismus vorhanden sein, um den Schlüssel zwischen den kommunizierenden Parteien auszutauschen. Da die Schlüssel regelmäßig gewechselt werden müssen, wird dieser Mechanismus teuer und umständlich.
In einer Gruppe von n Personen, um die Kommunikation zwischen zwei Personen zu ermöglichen, beträgt die Anzahl der für die Gruppe erforderlichen Schlüssel n × (n – 1)/2.
Die Schlüssellänge (Anzahl der Bits) in dieser Verschlüsselung ist kleiner und daher ist der Prozess der Verschlüsselung-Entschlüsselung schneller als die asymmetrische Schlüsselverschlüsselung.
Die Verarbeitungsleistung des Computersystems, die zum Ausführen eines symmetrischen Algorithmus erforderlich ist, ist geringer.
Herausforderung des Kryptosystems mit symmetrischem Schlüssel
Es gibt zwei restriktive Herausforderungen bei der Verwendung der Kryptographie mit symmetrischen Schlüsseln.
Key establishment- Vor jeder Kommunikation müssen sich sowohl der Absender als auch der Empfänger auf einen geheimen symmetrischen Schlüssel einigen. Es erfordert einen sicheren Mechanismus zur Schlüsselerstellung.
Trust Issue- Da der Absender und der Empfänger denselben symmetrischen Schlüssel verwenden, besteht die implizite Anforderung, dass sich Absender und Empfänger gegenseitig "vertrauen". Beispielsweise kann es vorkommen, dass der Empfänger den Schlüssel an einen Angreifer verloren hat und der Absender nicht informiert wird.
Diese beiden Herausforderungen sind für die moderne Kommunikation äußerst einschränkend. Heutzutage müssen Menschen Informationen mit nicht vertrauten und nicht vertrauenswürdigen Parteien austauschen. Zum Beispiel eine Kommunikation zwischen Online-Verkäufer und Kunde. Diese Einschränkungen der symmetrischen Schlüsselverschlüsselung führten zu asymmetrischen Schlüsselverschlüsselungsschemata.
Asymmetrische Schlüsselverschlüsselung
Der Verschlüsselungsprozess wo different keys are used for encrypting and decrypting the informationwird als asymmetrische Schlüsselverschlüsselung bezeichnet. Obwohl die Schlüssel unterschiedlich sind, sind sie mathematisch verwandt, und daher ist es möglich, den Klartext durch Entschlüsseln des Chiffretextes abzurufen. Der Vorgang ist in der folgenden Abbildung dargestellt:
Asymmetric Key Encryption wurde in 20 erfunden th Jahrhundert zu kommen , die Notwendigkeit des Pre-Shared geheimen Schlüssels zwischen kommunizierenden Personen. Die wichtigsten Merkmale dieses Verschlüsselungsschemas sind:
Jeder Benutzer in diesem System muss über zwei unterschiedliche Schlüssel verfügen. private key und public key. Diese Schlüssel sind mathematisch verwandt. Wenn ein Schlüssel zur Verschlüsselung verwendet wird, kann der andere den Chiffretext wieder in den ursprünglichen Klartext entschlüsseln.
Der öffentliche Schlüssel muss im öffentlichen Repository und der private Schlüssel als gut gehütetes Geheimnis gespeichert werden. Daher wird dieses Verschlüsselungsschema auch genanntPublic Key Encryption.
Obwohl öffentliche und private Schlüssel des Benutzers miteinander verbunden sind, ist es rechnerisch nicht möglich, einen voneinander zu finden. Dies ist eine Stärke dieses Schemas.
Wenn Host1 Daten an Host2 senden muss, erhält er den öffentlichen Schlüssel von Host2 aus dem Repository, verschlüsselt die Daten und überträgt sie.
Host2 verwendet seinen privaten Schlüssel, um den Klartext zu extrahieren.
Die Länge der Schlüssel (Anzahl der Bits) in dieser Verschlüsselung ist groß und daher ist der Prozess der Verschlüsselung-Entschlüsselung langsamer als die Verschlüsselung mit symmetrischen Schlüsseln.
Die Verarbeitungsleistung des Computersystems, die zum Ausführen eines asymmetrischen Algorithmus erforderlich ist, ist höher.
Symmetrische Kryptosysteme sind ein natürliches Konzept. Im Gegensatz dazu sind Kryptosysteme mit öffentlichem Schlüssel ziemlich schwer zu verstehen.
Sie denken vielleicht, wie können der Verschlüsselungsschlüssel und der Entschlüsselungsschlüssel miteinander zusammenhängen, und dennoch ist es unmöglich, den Entschlüsselungsschlüssel aus dem Verschlüsselungsschlüssel zu bestimmen? Die Antwort liegt in den mathematischen Konzepten. Es ist möglich, ein Kryptosystem zu entwerfen, dessen Schlüssel diese Eigenschaft haben. Das Konzept der Kryptographie mit öffentlichen Schlüsseln ist relativ neu. Es sind weniger Public-Key-Algorithmen bekannt als symmetrische Algorithmen.
Herausforderung des Kryptosystems mit öffentlichem Schlüssel
Kryptosysteme mit öffentlichem Schlüssel haben eine große Herausforderung: Der Benutzer muss darauf vertrauen, dass der öffentliche Schlüssel, den er für die Kommunikation mit einer Person verwendet, tatsächlich der öffentliche Schlüssel dieser Person ist und nicht von einem böswilligen Dritten gefälscht wurde.
Dies wird normalerweise über eine Public Key Infrastructure (PKI) erreicht, die aus einem vertrauenswürdigen Dritten besteht. Der Dritte verwaltet und bestätigt die Authentizität öffentlicher Schlüssel sicher. Wenn der Dritte aufgefordert wird, den öffentlichen Schlüssel für eine kommunizierende Person X bereitzustellen, wird ihm vertraut, dass er den richtigen öffentlichen Schlüssel bereitstellt.
Der Dritte überzeugt sich von der Benutzeridentität durch den Prozess der Bescheinigung, Beglaubigung oder eines anderen Prozesses - dass X das einzige oder global eindeutige X ist. Die häufigste Methode, die verifizierten öffentlichen Schlüssel verfügbar zu machen, besteht darin, sie einzubetten in einem Zertifikat, das vom vertrauenswürdigen Dritten digital signiert ist.
Beziehung zwischen Verschlüsselungsschemata
Eine Zusammenfassung der grundlegenden Schlüsseleigenschaften von zwei Arten von Kryptosystemen ist unten angegeben -
Symmetrische Kryptosysteme | Kryptosysteme mit öffentlichem Schlüssel | |
---|---|---|
Relation between Keys | Gleich | Anders, aber mathematisch verwandt |
Verschlüsselungsschlüssel | Symmetrisch | Öffentlichkeit |
Entschlüsselungsschlüssel | Symmetrisch | Privat |
Aufgrund der Vor- und Nachteile beider Systeme werden Kryptosysteme mit symmetrischem Schlüssel und öffentlichem Schlüssel in den praktischen Informationssicherheitssystemen häufig zusammen verwendet.
Kerckhoffs Prinzip für das Kryptosystem
Im 19. - ten Jahrhunderts eingerichtet eine niederländische Kryptograph A. Kerckhoff die Anforderungen an ein gutes Kryptosystem. Kerckhoff erklärte, dass ein kryptografisches System sicher sein sollte, auch wenn alles am System außer dem Schlüssel öffentlich bekannt ist. Die sechs von Kerckhoff für das Kryptosystem definierten Entwurfsprinzipien sind:
Das Kryptosystem sollte praktisch, wenn nicht mathematisch, unzerbrechlich sein.
Das Herunterfallen des Kryptosystems in die Hände eines Eindringlings sollte nicht zu einer Kompromittierung des Systems führen und Unannehmlichkeiten für den Benutzer verhindern.
Der Schlüssel sollte leicht zu kommunizieren, einprägsam und veränderbar sein.
Der Chiffretext sollte per Telegraph, einem unsicheren Kanal, übertragbar sein.
Das Verschlüsselungsgerät und die Dokumente sollten von einer einzelnen Person tragbar und bedienbar sein.
Schließlich ist es notwendig, dass das System einfach zu bedienen ist und weder mentale Belastungen noch die Kenntnis einer langen Reihe von Regeln zur Einhaltung erfordert.
Die zweite Regel ist derzeit bekannt als Kerckhoff principle. Es wird in praktisch allen modernen Verschlüsselungsalgorithmen wie DES, AES usw. angewendet. Diese öffentlichen Algorithmen gelten als absolut sicher. Die Sicherheit der verschlüsselten Nachricht hängt ausschließlich von der Sicherheit des geheimen Verschlüsselungsschlüssels ab.
Das Geheimhalten der Algorithmen kann ein erhebliches Hindernis für die Kryptoanalyse darstellen. Das Geheimhalten der Algorithmen ist jedoch nur möglich, wenn sie in einem streng begrenzten Kreis verwendet werden.
In der heutigen Zeit muss die Kryptografie auf Benutzer ausgerichtet sein, die mit dem Internet verbunden sind. In solchen Fällen ist die Verwendung eines geheimen Algorithmus nicht möglich, daher wurden Kerckhoff-Prinzipien zu wesentlichen Richtlinien für das Entwerfen von Algorithmen in der modernen Kryptographie.
In der heutigen Zeit werden nicht nur Unternehmen, sondern fast alle Aspekte des menschlichen Lebens von Informationen bestimmt. Daher ist es unerlässlich geworden, nützliche Informationen vor böswilligen Aktivitäten wie Angriffen zu schützen. Betrachten wir die Arten von Angriffen, denen Informationen normalerweise ausgesetzt sind.
Angriffe werden normalerweise anhand der vom Angreifer ausgeführten Aktion kategorisiert. Ein Angriff kann also seinpassive oder active.
Passive Angriffe
Das Hauptziel eines passiven Angriffs ist es, zu erhalten unauthorized access to the information. Beispielsweise können Aktionen wie das Abfangen und Abhören des Kommunikationskanals als passiver Angriff angesehen werden.
Diese Aktionen sind passiver Natur, da sie weder Informationen beeinflussen noch den Kommunikationskanal stören. Ein passiver Angriff wird so oft gesehen stiehlt Informationen. Der einzige Unterschied beim Diebstahl physischer Waren und beim Diebstahl von Informationen besteht darin, dass der Diebstahl von Daten den Eigentümer weiterhin im Besitz dieser Daten lässt. Ein passiver Informationsangriff ist daher gefährlicher als der Diebstahl von Waren, da der Diebstahl von Informationen vom Eigentümer unbemerkt bleiben kann.
Aktive Angriffe
Bei einem aktiven Angriff werden die Informationen auf irgendeine Weise geändert, indem ein Prozess für die Informationen ausgeführt wird. Zum Beispiel,
Ändern Sie die Informationen auf nicht autorisierte Weise.
Initiieren einer unbeabsichtigten oder nicht autorisierten Übertragung von Informationen.
Änderung von Authentifizierungsdaten wie dem Namen des Absenders oder dem mit Informationen verknüpften Zeitstempel
Nicht autorisiertes Löschen von Daten.
Verweigerung des Zugriffs auf Informationen für legitime Benutzer (Denial of Service).
Die Kryptographie bietet viele Werkzeuge und Techniken zur Implementierung von Kryptosystemen, mit denen die meisten der oben beschriebenen Angriffe verhindert werden können.
Annahmen des Angreifers
Lassen Sie uns die vorherrschende Umgebung um Kryptosysteme sehen, gefolgt von den Arten von Angriffen, die eingesetzt werden, um diese Systeme zu zerstören.
Umgebung um Cryptosystem
Bei der Betrachtung möglicher Angriffe auf das Kryptosystem ist es erforderlich, die Umgebung des Kryptosystems zu kennen. Die Annahmen und das Wissen des Angreifers über die Umgebung bestimmen seine Fähigkeiten.
In der Kryptografie werden die folgenden drei Annahmen über die Sicherheitsumgebung und die Fähigkeiten des Angreifers getroffen.
Details des Verschlüsselungsschemas
Der Entwurf eines Kryptosystems basiert auf den folgenden zwei Kryptografiealgorithmen:
Public Algorithms - Mit dieser Option sind alle Details des Algorithmus gemeinfrei und allen bekannt.
Proprietary algorithms - Die Details des Algorithmus sind nur den Systementwicklern und Benutzern bekannt.
Bei proprietären Algorithmen wird die Sicherheit durch Dunkelheit gewährleistet. Private Algorithmen sind möglicherweise nicht die stärksten Algorithmen, da sie intern entwickelt und möglicherweise nicht umfassend auf Schwachstellen untersucht werden.
Zweitens erlauben sie nur die Kommunikation zwischen geschlossenen Gruppen. Daher sind sie nicht für die moderne Kommunikation geeignet, bei der Menschen mit einer großen Anzahl bekannter oder unbekannter Entitäten kommunizieren. Nach Kerckhoffs Prinzip wird der Algorithmus bevorzugt, öffentlich zu sein, wobei die Stärke der Verschlüsselung im Schlüssel liegt .
Daher ist die erste Annahme über die Sicherheitsumgebung, dass die encryption algorithm is known to the attacker.
Verfügbarkeit von Chiffretext
Wir wissen, dass der Klartext, sobald er in Chiffretext verschlüsselt ist, zur Übertragung auf einen unsicheren öffentlichen Kanal (z. B. E-Mail) gestellt wird. Somit kann der Angreifer offensichtlich davon ausgehen, dass dies der Fall istaccess to the ciphertext generated by the cryptosystem.
Verfügbarkeit von Klartext und Chiffretext
Diese Annahme ist nicht so offensichtlich wie andere. Es kann jedoch Situationen geben, in denen ein Angreifer auftreten kannaccess to plaintext and corresponding ciphertext. Einige solche möglichen Umstände sind -
Der Angreifer beeinflusst den Absender, Klartext seiner Wahl zu konvertieren, und erhält den Chiffretext.
Der Empfänger kann den Klartext versehentlich an den Angreifer weitergeben. Der Angreifer hat Zugriff auf den entsprechenden Chiffretext aus dem offenen Kanal.
In einem Kryptosystem mit öffentlichem Schlüssel befindet sich der Verschlüsselungsschlüssel in einer offenen Domäne und ist jedem potenziellen Angreifer bekannt. Mit diesem Schlüssel kann er Paare entsprechender Klartexte und Chiffretexte erzeugen.
Kryptografische Angriffe
Die grundlegende Absicht eines Angreifers besteht darin, ein Kryptosystem zu zerstören und den Klartext aus dem Chiffretext zu finden. Um den Klartext zu erhalten, muss der Angreifer nur den geheimen Entschlüsselungsschlüssel herausfinden, da der Algorithmus bereits gemeinfrei ist.
Daher unternimmt er maximale Anstrengungen, um den im Kryptosystem verwendeten geheimen Schlüssel herauszufinden. Sobald der Angreifer den Schlüssel ermitteln kann, gilt das angegriffene System als defekt oder kompromittiert .
Basierend auf der verwendeten Methodik werden Angriffe auf Kryptosysteme wie folgt kategorisiert:
Ciphertext Only Attacks (COA)- Bei dieser Methode hat der Angreifer Zugriff auf eine Reihe von Chiffretexten. Er hat keinen Zugang zu entsprechendem Klartext. COA gilt als erfolgreich, wenn der entsprechende Klartext aus einem gegebenen Satz von Chiffretext bestimmt werden kann. Gelegentlich kann der Verschlüsselungsschlüssel aus diesem Angriff ermittelt werden. Moderne Kryptosysteme werden vor Nur-Chiffretext-Angriffen geschützt.
Known Plaintext Attack (KPA)- Bei dieser Methode kennt der Angreifer den Klartext für einige Teile des Chiffretextes. Die Aufgabe besteht darin, den Rest des Chiffretextes anhand dieser Informationen zu entschlüsseln. Dies kann durch Bestimmen des Schlüssels oder über eine andere Methode erfolgen. Das beste Beispiel für diesen Angriff ist die lineare Kryptoanalyse gegen Blockchiffren.
Chosen Plaintext Attack (CPA)- Bei dieser Methode hat der Angreifer den Text seiner Wahl verschlüsselt. Er hat also das Chiffretext-Klartext-Paar seiner Wahl. Dies vereinfacht seine Aufgabe, den Verschlüsselungsschlüssel zu bestimmen. Ein Beispiel für diesen Angriff ist die differentielle Kryptoanalyse, die sowohl gegen Blockchiffren als auch gegen Hash-Funktionen angewendet wird. RSA ist ein beliebtes Kryptosystem mit öffentlichem Schlüssel und anfällig für ausgewählte Klartextangriffe.
Dictionary Attack- Dieser Angriff hat viele Varianten, die alle das Kompilieren eines 'Wörterbuchs' beinhalten. Bei der einfachsten Methode dieses Angriffs erstellt der Angreifer ein Wörterbuch mit Chiffretexten und entsprechenden Klartexten, die er über einen bestimmten Zeitraum gelernt hat. Wenn ein Angreifer in Zukunft den Chiffretext erhält, verweist er auf das Wörterbuch, um den entsprechenden Klartext zu finden.
Brute Force Attack (BFA)- Bei dieser Methode versucht der Angreifer, den Schlüssel zu ermitteln, indem er alle möglichen Schlüssel versucht. Wenn der Schlüssel 8 Bit lang ist, beträgt die Anzahl der möglichen Schlüssel 2 8 = 256. Der Angreifer kennt den Chiffretext und den Algorithmus und versucht nun, alle 256 Schlüssel einzeln zu entschlüsseln. Die Zeit, um den Angriff abzuschließen, wäre sehr hoch, wenn der Schlüssel lang ist.
Birthday Attack- Dieser Angriff ist eine Variante der Brute-Force-Technik. Es wird gegen die kryptografische Hash-Funktion verwendet. Wenn Schüler einer Klasse nach ihren Geburtstagen gefragt werden, ist die Antwort eines der möglichen 365 Daten. Nehmen wir an , die ersten Schüler birth 3 rd August dann die nächsten Schüler zu finden , dessen Geburtsdatum 3 rd August, müssen wir 1,25 erkundigen * ?? √365 ≈ 25 Studenten.
Wenn die Hash-Funktion 64-Bit-Hash-Werte erzeugt, sind die möglichen Hash-Werte 1,8 x 10 19 . Durch wiederholtes Auswerten der Funktion für verschiedene Eingänge wird erwartet, dass derselbe Ausgang nach etwa 5,1 × 10 9 zufälligen Eingaben erhalten wird.
Wenn der Angreifer zwei verschiedene Eingaben finden kann, die denselben Hashwert ergeben, ist dies a collision und diese Hash-Funktion soll gebrochen sein.
Man in Middle Attack (MIM) - Die Ziele dieses Angriffs sind hauptsächlich Kryptosysteme mit öffentlichen Schlüsseln, bei denen der Schlüsselaustausch erfolgt, bevor die Kommunikation stattfindet.
Host A möchte mit Host B kommunizieren und fordert daher den öffentlichen Schlüssel von B an .
Ein Angreifer fängt diese Anforderung ab und sendet stattdessen seinen öffentlichen Schlüssel.
Unabhängig davon, was Host A an Host B sendet , kann der Angreifer lesen.
Um die Kommunikation zu pflegen, verschlüsselt Wieder der Angreifer die Daten , nachdem er mit seinen öffentlichen Schlüssel zu lesen und sendet an B .
Der Angreifer sendet seinen öffentlichen Schlüssel als öffentlichen Schlüssel von A , sodass B ihn so nimmt, als würde er ihn von A nehmen .
Side Channel Attack (SCA)- Diese Art von Angriff richtet sich nicht gegen eine bestimmte Art von Kryptosystem oder Algorithmus. Stattdessen wird es gestartet, um die Schwachstelle bei der physischen Implementierung des Kryptosystems auszunutzen.
Timing Attacks- Sie nutzen die Tatsache aus, dass unterschiedliche Berechnungen unterschiedliche Zeiten für die Berechnung auf dem Prozessor benötigen. Durch Messen solcher Zeitabläufe ist es möglich, über eine bestimmte Berechnung Bescheid zu wissen, die der Prozessor ausführt. Wenn die Verschlüsselung beispielsweise länger dauert, zeigt dies an, dass der geheime Schlüssel lang ist.
Power Analysis Attacks - Diese Angriffe ähneln Timing-Angriffen, mit der Ausnahme, dass der Stromverbrauch verwendet wird, um Informationen über die Art der zugrunde liegenden Berechnungen zu erhalten.
Fault analysis Attacks - Bei diesen Angriffen werden Fehler im Kryptosystem induziert und der Angreifer untersucht die resultierende Ausgabe auf nützliche Informationen.
Praktikabilität von Angriffen
Die hier beschriebenen Angriffe auf Kryptosysteme sind hochakademisch, da die meisten von ihnen aus der akademischen Gemeinschaft stammen. Tatsächlich beinhalten viele akademische Angriffe ziemlich unrealistische Annahmen über die Umgebung sowie die Fähigkeiten des Angreifers. Beispielsweise benötigt der Angreifer bei einem Angriff mit ausgewähltem Chiffretext eine unpraktische Anzahl absichtlich ausgewählter Klartext-Chiffretext-Paare. Es kann insgesamt nicht praktisch sein.
Die Tatsache, dass ein Angriff vorliegt, sollte jedoch Anlass zur Sorge geben, insbesondere wenn die Angriffstechnik das Potenzial zur Verbesserung aufweist.
Im zweiten Kapitel haben wir die Grundlagen der modernen Kryptographie diskutiert. Wir haben die Kryptographie mit einem Toolkit gleichgesetzt, bei dem verschiedene kryptografische Techniken als grundlegende Werkzeuge betrachtet werden. Eines dieser Tools ist die symmetrische Schlüsselverschlüsselung, bei der der für die Ver- und Entschlüsselung verwendete Schlüssel identisch ist.
In diesem Kapitel werden diese Technik und ihre Anwendungen zur Entwicklung verschiedener Kryptosysteme weiter erläutert.
Frühere kryptografische Systeme
Bevor Sie fortfahren, müssen Sie einige Fakten über historische Kryptosysteme kennen -
Alle diese Systeme sind based on symmetric key encryption planen.
Der einzige Sicherheitsdienst, den diese Systeme bieten, ist die Vertraulichkeit von Informationen.
Im Gegensatz zu modernen Systemen, die digital sind und Daten als Binärzahlen behandeln, arbeiteten die früheren Systeme mit Alphabeten als Grundelement.
Diese früheren kryptografischen Systeme werden auch als Chiffren bezeichnet. Im Allgemeinen ist eine Verschlüsselung einfach nur eine Reihe von Schritten (ein Algorithmus), um sowohl eine Verschlüsselung als auch die entsprechende Entschlüsselung durchzuführen.
Caesar Chiffre
Es ist eine monoalphabetische Chiffre, bei der jeder Buchstabe des Klartextes durch einen anderen Buchstaben ersetzt wird, um den Chiffretext zu bilden. Es ist eine einfachste Form des Substitutionsverschlüsselungsschemas.
Dieses Kryptosystem wird allgemein als das bezeichnet Shift Cipher. Das Konzept besteht darin, jedes Alphabet durch ein anderes Alphabet zu ersetzen, das um eine feste Zahl zwischen 0 und 25 verschoben ist.
Für diese Art von Schema vereinbaren sowohl Sender als auch Empfänger eine "geheime Schichtnummer" zum Verschieben des Alphabets. Diese Zahl zwischen 0 und 25 wird zum Schlüssel der Verschlüsselung.
Der Name 'Caesar Cipher' wird gelegentlich verwendet, um die Shift Cipher zu beschreiben, wenn die 'Shift of Three' verwendet wird.
Prozess der Schichtchiffre
Um einen Klartextbuchstaben zu verschlüsseln, positioniert der Absender das verschiebbare Lineal unter dem ersten Satz von Klartextbuchstaben und schiebt ihn um die Anzahl der Positionen der geheimen Verschiebung nach LINKS.
Der Klartextbuchstabe wird dann mit dem Chiffretextbuchstaben auf dem darunter liegenden Gleitlineal verschlüsselt. Das Ergebnis dieses Prozesses ist in der folgenden Abbildung für eine vereinbarte Verschiebung von drei Positionen dargestellt. In diesem Fall wird das Klartext-Tutorial mit dem Chiffretext WXWRULDO verschlüsselt. Hier ist das Chiffretext-Alphabet für eine Verschiebung von 3 -
Beim Empfang des Chiffretextes positioniert der Empfänger, der auch die geheime Verschiebung kennt, sein verschiebbares Lineal unter dem Chiffretext-Alphabet und schiebt es mit der vereinbarten Schichtnummer, in diesem Fall 3, nach RECHTS.
Anschließend ersetzt er den Chiffretextbuchstaben durch den Klartextbuchstaben auf dem darunter liegenden Gleitlineal. Daher wird der Chiffretext 'WXWRULDO' in 'Tutorial' entschlüsselt. Um eine mit einer Verschiebung von 3 codierte Nachricht zu entschlüsseln, generieren Sie das Klartextalphabet mit einer Verschiebung von '-3' (siehe unten).
Security Value
Caesar Cipher is not a secure cryptosystem because there are only 26 possible keys to try out. An attacker can carry out an exhaustive key search with available limited computing resources.
Simple Substitution Cipher
It is an improvement to the Caesar Cipher. Instead of shifting the alphabets by some number, this scheme uses some permutation of the letters in alphabet.
For example, A.B…..Y.Z and Z.Y……B.A are two obvious permutation of all the letters in alphabet. Permutation is nothing but a jumbled up set of alphabets.
With 26 letters in alphabet, the possible permutations are 26! (Factorial of 26) which is equal to 4x1026. The sender and the receiver may choose any one of these possible permutation as a ciphertext alphabet. This permutation is the secret key of the scheme.
Process of Simple Substitution Cipher
Write the alphabets A, B, C,...,Z in the natural order.
The sender and the receiver decide on a randomly selected permutation of the letters of the alphabet.
Underneath the natural order alphabets, write out the chosen permutation of the letters of the alphabet. For encryption, sender replaces each plaintext letters by substituting the permutation letter that is directly beneath it in the table. This process is shown in the following illustration. In this example, the chosen permutation is K,D, G, ..., O. The plaintext ‘point’ is encrypted to ‘MJBXZ’.
Here is a jumbled Ciphertext alphabet, where the order of the ciphertext letters is a key.
On receiving the ciphertext, the receiver, who also knows the randomly chosen permutation, replaces each ciphertext letter on the bottom row with the corresponding plaintext letter in the top row. The ciphertext ‘MJBXZ’ is decrypted to ‘point’.
Security Value
Simple Substitution Cipher is a considerable improvement over the Caesar Cipher. The possible number of keys is large (26!) and even the modern computing systems are not yet powerful enough to comfortably launch a brute force attack to break the system. However, the Simple Substitution Cipher has a simple design and it is prone to design flaws, say choosing obvious permutation, this cryptosystem can be easily broken.
Monoalphabetic and Polyalphabetic Cipher
Monoalphabetic cipher is a substitution cipher in which for a given key, the cipher alphabet for each plain alphabet is fixed throughout the encryption process. For example, if ‘A’ is encrypted as ‘D’, for any number of occurrence in that plaintext, ‘A’ will always get encrypted to ‘D’.
All of the substitution ciphers we have discussed earlier in this chapter are monoalphabetic; these ciphers are highly susceptible to cryptanalysis.
Polyalphabetic Cipher is a substitution cipher in which the cipher alphabet for the plain alphabet may be different at different places during the encryption process. The next two examples, playfair and Vigenere Cipher are polyalphabetic ciphers.
Playfair Cipher
In this scheme, pairs of letters are encrypted, instead of single letters as in the case of simple substitution cipher.
In playfair cipher, initially a key table is created. The key table is a 5×5 grid of alphabets that acts as the key for encrypting the plaintext. Each of the 25 alphabets must be unique and one letter of the alphabet (usually J) is omitted from the table as we need only 25 alphabets instead of 26. If the plaintext contains J, then it is replaced by I.
The sender and the receiver deicide on a particular key, say ‘tutorials’. In a key table, the first characters (going left to right) in the table is the phrase, excluding the duplicate letters. The rest of the table will be filled with the remaining letters of the alphabet, in natural order. The key table works out to be −
Process of Playfair Cipher
First, a plaintext message is split into pairs of two letters (digraphs). If there is an odd number of letters, a Z is added to the last letter. Let us say we want to encrypt the message “hide money”. It will be written as −
HI DE MO NE YZ
The rules of encryption are −
If both the letters are in the same column, take the letter below each one (going back to the top if at the bottom)
T | U | O | R | I | ‘H’ and ‘I’ are in same column, hence take letter below them to replace. HI → QC |
A | L | S | B | C | |
D | E | F | G | H | |
K | M | N | P | Q | |
V | W | X | Y | Z |
If both letters are in the same row, take the letter to the right of each one (going back to the left if at the farthest right)
T | U | O | R | I | ‘D’ and ‘E’ are in same row, hence take letter to the right of them to replace. DE → EF |
A | L | S | B | C | |
D | E | F | G | H | |
K | M | N | P | Q | |
V | W | X | Y | Z |
If neither of the preceding two rules are true, form a rectangle with the two letters and take the letters on the horizontal opposite corner of the rectangle.
Using these rules, the result of the encryption of ‘hide money’ with the key of ‘tutorials’ would be −
QC EF NU MF ZV
Decrypting the Playfair cipher is as simple as doing the same process in reverse. Receiver has the same key and can create the same key table, and then decrypt any messages made using that key.
Security Value
It is also a substitution cipher and is difficult to break compared to the simple substitution cipher. As in case of substitution cipher, cryptanalysis is possible on the Playfair cipher as well, however it would be against 625 possible pairs of letters (25x25 alphabets) instead of 26 different possible alphabets.
The Playfair cipher was used mainly to protect important, yet non-critical secrets, as it is quick to use and requires no special equipment.
Vigenere Cipher
This scheme of cipher uses a text string (say, a word) as a key, which is then used for doing a number of shifts on the plaintext.
For example, let’s assume the key is ‘point’. Each alphabet of the key is converted to its respective numeric value: In this case,
p → 16, o → 15, i → 9, n → 14, and t → 20.
Thus, the key is: 16 15 9 14 20.
Process of Vigenere Cipher
The sender and the receiver decide on a key. Say ‘point’ is the key. Numeric representation of this key is ‘16 15 9 14 20’.
The sender wants to encrypt the message, say ‘attack from south east’. He will arrange plaintext and numeric key as follows −
He now shifts each plaintext alphabet by the number written below it to create ciphertext as shown below −
Here, each plaintext character has been shifted by a different amount – and that amount is determined by the key. The key must be less than or equal to the size of the message.
For decryption, the receiver uses the same key and shifts received ciphertext in reverse order to obtain the plaintext.
Security Value
Vigenere Cipher was designed by tweaking the standard Caesar cipher to reduce the effectiveness of cryptanalysis on the ciphertext and make a cryptosystem more robust. It is significantly more secure than a regular Caesar Cipher.
In the history, it was regularly used for protecting sensitive political and military information. It was referred to as the unbreakable cipher due to the difficulty it posed to the cryptanalysis.
Variants of Vigenere Cipher
There are two special cases of Vigenere cipher −
The keyword length is same as plaintect message. This case is called Vernam Cipher. It is more secure than typical Vigenere cipher.
Vigenere cipher becomes a cryptosystem with perfect secrecy, which is called One-time pad.
One-Time Pad
The circumstances are −
- The length of the keyword is same as the length of the plaintext.
- The keyword is a randomly generated string of alphabets.
- The keyword is used only once.
Security Value
Let us compare Shift cipher with one-time pad.
Shift Cipher − Easy to Break
In case of Shift cipher, the entire message could have had a shift between 1 and 25. This is a very small size, and very easy to brute force. However, with each character now having its own individual shift between 1 and 26, the possible keys grow exponentially for the message.
One-time Pad − Impossible to Break
Let us say, we encrypt the name “point” with a one-time pad. It is a 5 letter text. To break the ciphertext by brute force, you need to try all possibilities of keys and conduct computation for (26 x 26 x 26 x 26 x 26) = 265 = 11881376 times. That’s for a message with 5 alphabets. Thus, for a longer message, the computation grows exponentially with every additional alphabet. This makes it computationally impossible to break the ciphertext by brute force.
Transpositions-Chiffre
Es ist eine andere Art von Chiffre, bei der die Reihenfolge der Alphabete im Klartext neu angeordnet wird, um den Chiffretext zu erstellen. Die eigentlichen Klartextalphabete werden nicht ersetzt.
Ein Beispiel ist eine "einfache säulenförmige Transposition", bei der der Klartext horizontal mit einer bestimmten Alphabetbreite geschrieben wird. Dann wird der Chiffretext wie gezeigt vertikal gelesen.
Zum Beispiel lautet der Klartext "goldene Statue befindet sich in der elften Höhle" und der geheime zufällige Schlüssel ist "fünf". Wir ordnen diesen Text horizontal in einer Tabelle an, wobei die Anzahl der Spalten dem Schlüsselwert entspricht. Der resultierende Text wird unten angezeigt.
Der Chiffretext wird erhalten, indem die Spalte von der ersten bis zur letzten Spalte vertikal nach unten gelesen wird. Der Chiffretext lautet 'gnuneaoseenvltiltedasehetivc'.
Zum Entschlüsseln bereitet der Empfänger eine ähnliche Tabelle vor. Die Anzahl der Spalten entspricht der Schlüsselnummer. Die Anzahl der Zeilen wird erhalten, indem die Anzahl der gesamten Chiffretext-Alphabete durch den Schlüsselwert dividiert und der Quotient auf den nächsten ganzzahligen Wert gerundet wird.
Der Empfänger schreibt dann den empfangenen Chiffretext vertikal nach unten und von der linken zur rechten Spalte. Um den Text zu erhalten, liest er horizontal von links nach rechts und von der oberen zur unteren Reihe.
Digitale Daten werden im Gegensatz zu Alphabeten in Binärziffern (Bits) dargestellt. Moderne Kryptosysteme müssen diese Binärzeichenfolgen verarbeiten, um sie in eine andere Binärzeichenfolge umzuwandeln. Basierend darauf, wie diese Binärzeichenfolgen verarbeitet werden, kann ein symmetrisches Verschlüsselungsschema in - klassifiziert werden
Blockchiffren
In diesem Schema wird der einfache Binärtext in Blöcken (Gruppen) von Bits gleichzeitig verarbeitet; Wenn ein Block von Klartextbits ausgewählt ist, wird eine Reihe von Operationen an diesem Block ausgeführt, um einen Block von Chiffretextbits zu erzeugen. Die Anzahl der Bits in einem Block ist fest. Beispielsweise haben die Schemata DES und AES Blockgrößen von 64 bzw. 128.
Stream-Chiffren
In diesem Schema wird der Klartext bitweise verarbeitet, dh es wird jeweils ein Bit Klartext verwendet, und es wird eine Reihe von Operationen ausgeführt, um ein Bit Chiffretext zu erzeugen. Technisch gesehen sind Stream-Chiffren Blockchiffren mit einer Blockgröße von einem Bit.
Das Grundschema einer Blockverschlüsselung ist wie folgt dargestellt:
Eine Blockverschlüsselung nimmt einen Block von Klartextbits und erzeugt einen Block von Chiffretextbits, die im Allgemeinen dieselbe Größe haben. Die Größe des Blocks ist im angegebenen Schema festgelegt. Die Wahl der Blockgröße wirkt sich nicht direkt auf die Stärke des Verschlüsselungsschemas aus. Die Stärke der Chiffre hängt von der Schlüssellänge ab.
Block Größe
Obwohl jede Blockgröße akzeptabel ist, werden bei der Auswahl einer Blockgröße die folgenden Aspekte berücksichtigt.
Avoid very small block size- Angenommen, eine Blockgröße beträgt m Bits. Dann sind die möglichen Klartext-Bit-Kombinationen dann 2 m . Wenn der Angreifer die Klartextblöcke entdeckt, die einigen zuvor gesendeten Chiffretextblöcken entsprechen, kann der Angreifer eine Art "Wörterbuchangriff" starten, indem er ein Wörterbuch mit Klartext / Chiffretext-Paaren erstellt, die mit diesem Verschlüsselungsschlüssel gesendet werden. Eine größere Blockgröße erschwert den Angriff, da das Wörterbuch größer sein muss.
Do not have very large block size- Bei sehr großen Blöcken wird der Betrieb der Verschlüsselung ineffizient. Solche Klartexte müssen vor der Verschlüsselung aufgefüllt werden.
Multiples of 8 bit - Eine bevorzugte Blockgröße ist ein Vielfaches von 8, da die Implementierung einfach ist, da die meisten Computerprozessoren Daten in Vielfachen von 8 Bit verarbeiten.
Auffüllen der Blockchiffre
Blockchiffren verarbeiten Blöcke fester Größe (z. B. 64 Bit). Die Länge von Klartexten ist meist kein Vielfaches der Blockgröße. Beispielsweise stellt ein 150-Bit-Klartext zwei 64-Bit-Blöcke mit einem dritten Balance-Block von 22 Bit bereit. Der letzte Bitblock muss mit redundanten Informationen aufgefüllt werden, damit die Länge des letzten Blocks der Blockgröße des Schemas entspricht. In unserem Beispiel müssen für die verbleibenden 22 Bits zusätzliche 42 redundante Bits hinzugefügt werden, um einen vollständigen Block bereitzustellen. Das Hinzufügen von Bits zum letzten Block wird als bezeichnetpadding.
Zu viel Polsterung macht das System ineffizient. Außerdem kann das Auffüllen das System manchmal unsicher machen, wenn das Auffüllen immer mit denselben Bits erfolgt.
Blockverschlüsselungsschemata
Es gibt eine große Anzahl von Blockchiffrenschemata, die verwendet werden. Viele von ihnen sind öffentlich bekannt. Die beliebtesten und bekanntesten Blockchiffren sind unten aufgeführt.
Digital Encryption Standard (DES)- Die beliebte Blockchiffre der 90er Jahre. Es wird jetzt vor allem aufgrund seiner geringen Schlüsselgröße als "kaputte" Blockverschlüsselung angesehen.
Triple DES- Es handelt sich um ein Variantenschema, das auf wiederholten DES-Anwendungen basiert. Es ist immer noch eine angesehene Blockchiffre, aber ineffizient im Vergleich zu den neuen schnelleren verfügbaren Blockchiffren.
Advanced Encryption Standard (AES) - Es handelt sich um eine relativ neue Blockverschlüsselung, die auf dem Verschlüsselungsalgorithmus basiert Rijndael das gewann den AES Designwettbewerb.
IDEA- Es handelt sich um eine ausreichend starke Blockverschlüsselung mit einer Blockgröße von 64 und einer Schlüsselgröße von 128 Bit. Eine Reihe von Anwendungen verwenden die IDEA-Verschlüsselung, einschließlich früherer Versionen des PGP-Protokolls (Pretty Good Privacy). Die Verwendung des IDEA-Schemas ist aufgrund von Patentfragen nur eingeschränkt möglich.
Twofish- Dieses Schema der Blockverschlüsselung verwendet eine Blockgröße von 128 Bit und einen Schlüssel variabler Länge. Es war einer der AES-Finalisten. Es basiert auf der früheren Blockchiffre Blowfish mit einer Blockgröße von 64 Bit.
Serpent- Eine Blockverschlüsselung mit einer Blockgröße von 128 Bit und Schlüssellängen von 128, 192 oder 256 Bit, die auch Finalist des AES-Wettbewerbs war. Es ist langsamer, hat aber ein sichereres Design als andere Blockverschlüsselungen.
In den nächsten Abschnitten werden wir zunächst das Modell der Blockverschlüsselung diskutieren, gefolgt von DES und AES, zwei der einflussreichsten modernen Blockchiffren.
Feistel Cipher ist kein spezifisches Schema der Blockverschlüsselung. Es ist ein Entwurfsmodell, aus dem viele verschiedene Blockchiffren abgeleitet werden. DES ist nur ein Beispiel für eine Feistel-Chiffre. Ein kryptografisches System, das auf der Feistel-Verschlüsselungsstruktur basiert, verwendet denselben Algorithmus sowohl für die Verschlüsselung als auch für die Entschlüsselung.
Verschlüsselungsprozess
Der Verschlüsselungsprozess verwendet die Feistel-Struktur, die aus mehreren Verarbeitungsrunden des Klartextes besteht, wobei jede Runde aus einem "Substitutions" -Schritt gefolgt von einem Permutationsschritt besteht.
Die Feistel-Struktur ist in der folgenden Abbildung dargestellt:
Der Eingabeblock für jede Runde ist in zwei Hälften unterteilt, die für die linke und die rechte Hälfte als L und R bezeichnet werden können.
In jeder Runde geht die rechte Hälfte des Blocks R unverändert durch. Die linke Hälfte L durchläuft jedoch eine Operation, die von R und dem Verschlüsselungsschlüssel abhängt. Zuerst wenden wir eine Verschlüsselungsfunktion 'f' an, die zwei Eingaben benötigt - den Schlüssel K und R. Die Funktion erzeugt die Ausgabe f (R, K). Dann XOR wir die Ausgabe der mathematischen Funktion mit L.
Bei der realen Implementierung der Feistel-Verschlüsselung wie DES wird anstelle des gesamten Verschlüsselungsschlüssels während jeder Runde ein rundenabhängiger Schlüssel (ein Unterschlüssel) vom Verschlüsselungsschlüssel abgeleitet. Dies bedeutet, dass jede Runde einen anderen Schlüssel verwendet, obwohl alle diese Unterschlüssel mit dem Originalschlüssel verknüpft sind.
Der Permutationsschritt am Ende jeder Runde vertauscht das modifizierte L und das nicht modifizierte R. Daher wäre das L für die nächste Runde R der aktuellen Runde. Und R für die nächste Runde ist der Ausgang L der aktuellen Runde.
Die obigen Substitutions- und Permutationsschritte bilden eine "Runde". Die Anzahl der Runden wird durch das Algorithmusdesign festgelegt.
Sobald die letzte Runde abgeschlossen ist, werden die beiden Unterblöcke 'R' und 'L' in dieser Reihenfolge verkettet, um den Chiffretextblock zu bilden.
Der schwierige Teil beim Entwerfen einer Feistel-Chiffre ist die Auswahl der runden Funktion 'f'. Um ein unzerbrechliches Schema zu sein, muss diese Funktion mehrere wichtige Eigenschaften aufweisen, die über den Rahmen unserer Diskussion hinausgehen.
Entschlüsselungsprozess
Der Entschlüsselungsprozess in der Feistel-Chiffre ist nahezu ähnlich. Anstatt mit einem Klartextblock zu beginnen, wird der Chiffretextblock in den Anfang der Feistel-Struktur eingespeist, und danach ist der Vorgang genau der gleiche wie in der gegebenen Abbildung beschrieben.
Der Prozess soll fast ähnlich und nicht genau gleich sein. Bei der Entschlüsselung besteht der einzige Unterschied darin, dass die bei der Verschlüsselung verwendeten Unterschlüssel in umgekehrter Reihenfolge verwendet werden.
Das endgültige Vertauschen von 'L' und 'R' im letzten Schritt der Feistel-Chiffre ist unerlässlich. Wenn diese nicht ausgetauscht werden, kann der resultierende Chiffretext nicht mit demselben Algorithmus entschlüsselt werden.
Anzahl der Runden
Die Anzahl der in einer Feistel-Chiffre verwendeten Runden hängt von der gewünschten Sicherheit des Systems ab. Mehr Runden sorgen für ein sichereres System. Gleichzeitig bedeuten mehr Runden ineffiziente langsame Ver- und Entschlüsselungsprozesse. Die Anzahl der Runden in den Systemen hängt daher vom Kompromiss zwischen Effizienz und Sicherheit ab.
Der Data Encryption Standard (DES) ist eine Blockverschlüsselung mit symmetrischen Schlüsseln, die vom National Institute of Standards and Technology (NIST) veröffentlicht wurde.
DES ist eine Implementierung einer Feistel-Chiffre. Es verwendet 16 runde Feistel-Struktur. Die Blockgröße beträgt 64 Bit. Obwohl die Schlüssellänge 64 Bit beträgt, hat DES eine effektive Schlüssellänge von 56 Bit, da 8 der 64 Bit des Schlüssels vom Verschlüsselungsalgorithmus nicht verwendet werden (nur als Prüfbits fungieren). Die allgemeine Struktur von DES ist in der folgenden Abbildung dargestellt:
Da DES auf der Feistel-Chiffre basiert, ist zur Angabe von DES nur Folgendes erforderlich:
- Runde Funktion
- Schlüsselzeitplan
- Jede zusätzliche Verarbeitung - Anfangs- und Endpermutation
Anfangs- und Endpermutation
Die Anfangs- und Endpermutation sind gerade Permutationsfelder (P-Felder), die invers zueinander sind. Sie haben in DES keine kryptografische Bedeutung. Die Anfangs- und Endpermutationen werden wie folgt gezeigt:
Runde Funktion
Das Herzstück dieser Chiffre ist die DES-Funktion, f . Die DES-Funktion wendet einen 48-Bit-Schlüssel auf die 32 Bit ganz rechts an, um eine 32-Bit-Ausgabe zu erzeugen.
Expansion Permutation Box- Da der rechte Eingang 32 Bit und der runde Schlüssel 48 Bit ist, müssen wir zuerst den rechten Eingang auf 48 Bit erweitern. Die Permutationslogik ist in der folgenden Abbildung grafisch dargestellt:
Die grafisch dargestellte Permutationslogik wird allgemein als Tabelle in der DES-Spezifikation beschrieben, die wie gezeigt dargestellt ist -
XOR (Whitener).- Nach der Erweiterungspermutation führt DES eine XOR-Operation für den erweiterten rechten Abschnitt und den runden Schlüssel aus. Die runde Taste wird nur in diesem Vorgang verwendet.
Substitution Boxes.- Die S-Boxen führen das eigentliche Mischen durch (Verwirrung). DES verwendet 8 S-Boxen mit jeweils einem 6-Bit-Eingang und einem 4-Bit-Ausgang. Siehe folgende Abbildung -
Die S-Box-Regel ist unten dargestellt -
Es gibt insgesamt acht S-Box-Tische. Die Ausgabe aller acht S-Boxen wird dann zu einem 32-Bit-Abschnitt zusammengefasst.
Straight Permutation - Die 32-Bit-Ausgabe von S-Boxen wird dann der geraden Permutation mit der in der folgenden Abbildung gezeigten Regel unterzogen:
Schlüsselgenerierung
Der Rundschlüsselgenerator erstellt aus einem 56-Bit-Chiffrierschlüssel 16 48-Bit-Schlüssel. Der Prozess der Schlüsselgenerierung ist in der folgenden Abbildung dargestellt:
Die Logik für Parity Drop, Shifting und Compression P-Box ist in der DES-Beschreibung angegeben.
DES-Analyse
Das DES erfüllt beide gewünschten Eigenschaften der Blockverschlüsselung. Diese beiden Eigenschaften machen die Chiffre sehr stark.
Avalanche effect - Eine kleine Änderung im Klartext führt zu einer sehr großen Änderung im Chiffretext.
Completeness - Jedes Bit Chiffretext hängt von vielen Bits Klartext ab.
In den letzten Jahren hat die Kryptoanalyse einige Schwachstellen in DES festgestellt, wenn ausgewählte Schlüssel schwache Schlüssel sind. Diese Schlüssel sind zu vermeiden.
DES hat sich als sehr gut gestaltete Blockverschlüsselung erwiesen. Es gab keine signifikanten kryptoanalytischen Angriffe auf DES außer einer umfassenden Schlüsselsuche.
Die Geschwindigkeit der umfassenden Schlüsselsuche gegen DES nach 1990 verursachte bei den Benutzern von DES Unbehagen. Benutzer wollten DES jedoch nicht ersetzen, da das Ändern von Verschlüsselungsalgorithmen, die weit verbreitet und in große Sicherheitsarchitekturen eingebettet sind, enorm viel Zeit und Geld kostet.
Der pragmatische Ansatz bestand nicht darin, das DES vollständig aufzugeben, sondern die Art und Weise zu ändern, in der DES verwendet wird. Dies führte zu den modifizierten Schemata von Triple DES (manchmal als 3DES bekannt).
Im Übrigen gibt es zwei Varianten von Triple DES, die als 3-Schlüssel-Triple-DES (3TDES) und 2-Schlüssel-Triple-DES (2TDES) bekannt sind.
3-KEY Triple DES
Vor der Verwendung von 3TDES generiert und verteilt der Benutzer zunächst einen 3TDES-Schlüssel K, der aus drei verschiedenen DES-Schlüsseln K 1 , K 2 und K 3 besteht . Dies bedeutet, dass der tatsächliche 3TDES-Schlüssel eine Länge von 3 × 56 = 168 Bit hat. Das Verschlüsselungsschema ist wie folgt dargestellt:
Der Verschlüsselungs- / Entschlüsselungsprozess ist wie folgt:
Verschlüsseln Sie die Klartextblöcke mit einem einzigen DES mit dem Schlüssel K 1 .
Entschlüsseln Sie nun die Ausgabe von Schritt 1 mit einem einzelnen DES mit dem Schlüssel K 2 .
Schließlich verschlüsseln Sie die Ausgabe von Schritt 2 mit einem einzelnen DES mit dem Schlüssel K 3 .
Die Ausgabe von Schritt 3 ist der Chiffretext.
Die Entschlüsselung eines Chiffretextes erfolgt in umgekehrter Reihenfolge. Der Benutzer entschlüsselt zuerst mit K 3, dann mit K 2 und schließlich mit K 1 .
Aufgrund dieses Designs von Triple DES als Verschlüsselungs-, Entschlüsselungs- und Verschlüsselungsprozess ist es möglich, eine 3TDES-Implementierung (Hardware) für einzelne DES zu verwenden, indem K 1, K 2 und K 3 auf denselben Wert gesetzt werden. Dies bietet Abwärtskompatibilität mit DES.
Die zweite Variante von Triple DES (2TDES) ist identisch mit 3TDES, außer dass K 3 durch K 1 ersetzt wird . Mit anderen Worten, der Benutzer verschlüsselt Klartextblöcke mit dem Schlüssel K 1, entschlüsselt dann mit dem Schlüssel K 2 und verschlüsselt schließlich erneut mit K 1 . Daher hat 2TDES eine Schlüssellänge von 112 Bit.
Triple-DES-Systeme sind wesentlich sicherer als Single-DES, aber dies ist eindeutig ein viel langsamerer Prozess als die Verschlüsselung mit Single-DES.
Der populärere und am weitesten verbreitete symmetrische Verschlüsselungsalgorithmus, der heutzutage wahrscheinlich anzutreffen ist, ist der Advanced Encryption Standard (AES). Es ist mindestens sechsmal schneller als Triple DES.
Ein Ersatz für DES wurde benötigt, da die Schlüsselgröße zu klein war. Mit zunehmender Rechenleistung wurde es als anfällig für umfassende Angriffe auf die Schlüsselsuche angesehen. Triple DES wurde entwickelt, um diesen Nachteil zu überwinden, wurde jedoch als langsam befunden.
Die Funktionen von AES sind wie folgt:
- Symmetrischer Schlüssel Symmetrische Blockverschlüsselung
- 128-Bit-Daten, 128/192 / 256-Bit-Schlüssel
- Stärker und schneller als Triple-DES
- Geben Sie die vollständigen Spezifikationen und Designdetails an
- In C und Java implementierbare Software
Betrieb von AES
AES ist eher eine iterative als eine Feistel-Chiffre. Es basiert auf dem 'Substitutions-Permutations-Netzwerk'. Es besteht aus einer Reihe verknüpfter Operationen, von denen einige das Ersetzen von Eingaben durch bestimmte Ausgaben (Ersetzungen) und andere das Mischen von Bits (Permutationen) beinhalten.
Interessanterweise führt AES alle Berechnungen eher mit Bytes als mit Bits durch. Daher behandelt AES die 128 Bits eines Klartextblocks als 16 Bytes. Diese 16 Bytes sind in vier Spalten und vier Zeilen zur Verarbeitung als Matrix angeordnet -
Im Gegensatz zu DES ist die Anzahl der Runden in AES variabel und hängt von der Länge des Schlüssels ab. AES verwendet 10 Runden für 128-Bit-Schlüssel, 12 Runden für 192-Bit-Schlüssel und 14 Runden für 256-Bit-Schlüssel. Jede dieser Runden verwendet einen anderen 128-Bit-Rundenschlüssel, der aus dem ursprünglichen AES-Schlüssel berechnet wird.
Das Schema der AES-Struktur ist in der folgenden Abbildung dargestellt:
Verschlüsselungsprozess
Hier beschränken wir uns auf die Beschreibung einer typischen Runde der AES-Verschlüsselung. Jede Runde besteht aus vier Teilprozessen. Der Prozess der ersten Runde ist unten dargestellt -
Bytesubstitution (SubBytes)
Die 16 Eingangsbytes werden durch Nachschlagen einer festen Tabelle (S-Box) ersetzt, die im Entwurf angegeben ist. Das Ergebnis ist eine Matrix aus vier Zeilen und vier Spalten.
Shiftrows
Jede der vier Zeilen der Matrix ist nach links verschoben. Alle Einträge, die abfallen, werden auf der rechten Seite der Zeile erneut eingefügt. Die Verschiebung erfolgt wie folgt:
Die erste Reihe wird nicht verschoben.
Die zweite Zeile wird um eine (Byte-) Position nach links verschoben.
Die dritte Reihe ist zwei Positionen nach links verschoben.
Die vierte Reihe ist drei Positionen nach links verschoben.
Das Ergebnis ist eine neue Matrix, die aus denselben 16 Bytes besteht, jedoch relativ zueinander verschoben ist.
MixColumns
Jede Spalte mit vier Bytes wird jetzt mithilfe einer speziellen mathematischen Funktion transformiert. Diese Funktion nimmt die vier Bytes einer Spalte als Eingabe und gibt vier völlig neue Bytes aus, die die ursprüngliche Spalte ersetzen. Das Ergebnis ist eine weitere neue Matrix, die aus 16 neuen Bytes besteht. Es ist zu beachten, dass dieser Schritt in der letzten Runde nicht ausgeführt wird.
Addroundkey
Die 16 Bytes der Matrix werden jetzt als 128 Bit betrachtet und auf die 128 Bit des runden Schlüssels XOR-verknüpft. Wenn dies die letzte Runde ist, ist die Ausgabe der Chiffretext. Andernfalls werden die resultierenden 128 Bits als 16 Bytes interpretiert und wir beginnen eine weitere ähnliche Runde.
Entschlüsselungsprozess
Der Entschlüsselungsprozess eines AES-Chiffretextes ähnelt dem Verschlüsselungsprozess in umgekehrter Reihenfolge. Jede Runde besteht aus den vier Prozessen in umgekehrter Reihenfolge -
- Runden Schlüssel hinzufügen
- Spalten mischen
- Reihen verschieben
- Bytesubstitution
Da Unterprozesse in jeder Runde im Gegensatz zu einer Feistel-Verschlüsselung umgekehrt sind, müssen die Verschlüsselungs- und Entschlüsselungsalgorithmen separat implementiert werden, obwohl sie sehr eng miteinander verbunden sind.
AES-Analyse
In der heutigen Kryptographie ist AES weit verbreitet und wird sowohl in der Hardware als auch in der Software unterstützt. Bis heute wurden keine praktischen kryptoanalytischen Angriffe gegen AES entdeckt. Darüber hinaus verfügt AES über eine integrierte Flexibilität bei der Schlüssellänge, die ein gewisses Maß an Zukunftssicherheit gegen Fortschritte bei der Durchführung umfassender Schlüsselsuchen ermöglicht.
Genau wie bei DES ist die AES-Sicherheit jedoch nur dann gewährleistet, wenn sie korrekt implementiert ist und eine gute Schlüsselverwaltung angewendet wird.
In diesem Kapitel werden die verschiedenen Betriebsarten einer Blockverschlüsselung erläutert. Dies sind Verfahrensregeln für eine generische Blockverschlüsselung. Interessanterweise führen die verschiedenen Modi dazu, dass unterschiedliche Eigenschaften erzielt werden, die die Sicherheit der zugrunde liegenden Blockverschlüsselung erhöhen.
Eine Blockverschlüsselung verarbeitet die Datenblöcke fester Größe. Normalerweise ist die Größe einer Nachricht größer als die Blockgröße. Daher wird die lange Nachricht in eine Reihe von aufeinanderfolgenden Nachrichtenblöcken unterteilt, und die Verschlüsselung bearbeitet diese Blöcke einzeln.
EZB-Modus (Electronic Code Book)
Dieser Modus ist eine sehr einfache Möglichkeit, eine Reihe von nacheinander aufgelisteten Nachrichtenblöcken zu verarbeiten.
Betrieb
Der Benutzer nimmt den ersten Klartextblock und verschlüsselt ihn mit dem Schlüssel, um den ersten Chiffretextblock zu erzeugen.
Dann nimmt er den zweiten Klartextblock und folgt demselben Vorgang mit demselben Schlüssel und so weiter.
Der EZB-Modus ist deterministicDas heißt, wenn die Klartextblöcke P1, P2, ..., Pm zweimal unter demselben Schlüssel verschlüsselt werden, sind die ausgegebenen Chiffretextblöcke dieselben.
Tatsächlich können wir für einen bestimmten Schlüssel technisch ein Codebuch mit Chiffretexten für alle möglichen Klartextblöcke erstellen. Die Verschlüsselung würde dann bedeuten, nur nach dem erforderlichen Klartext zu suchen und den entsprechenden Chiffretext auszuwählen. Somit ist die Operation analog zur Zuweisung von Codewörtern in einem Codebuch und erhält daher einen offiziellen Namen - Electronic Codebook Mode of Operation (ECB). Es ist wie folgt dargestellt -
Analyse des EZB-Modus
In der Realität enthalten Anwendungsdaten normalerweise Teilinformationen, die erraten werden können. Zum Beispiel kann die Gehaltsspanne erraten werden. Ein Chiffretext der EZB kann es einem Angreifer ermöglichen, den Klartext durch Ausprobieren zu erraten, wenn die Klartextnachricht vorhersehbar ist.
Wenn beispielsweise bekannt ist, dass ein Chiffretext aus dem EZB-Modus eine Gehaltszahl verschlüsselt, kann ein Angreifer mit einer kleinen Anzahl von Versuchen die Zahl wiederherstellen. Im Allgemeinen möchten wir keine deterministische Verschlüsselung verwenden, und daher sollte der EZB-Modus in den meisten Anwendungen nicht verwendet werden.
CBC-Modus (Cipher Block Chaining)
Der CBC-Betriebsmodus bietet eine Nachrichtenabhängigkeit zum Erzeugen von Chiffretext und macht das System nicht deterministisch.
Betrieb
Der Betrieb des CBC-Modus ist in der folgenden Abbildung dargestellt. Die Schritte sind wie folgt:
Laden Sie den n-Bit-Initialisierungsvektor (IV) in das oberste Register.
XOR der n-Bit-Klartextblock mit Datenwert im obersten Register.
Verschlüsseln Sie das Ergebnis der XOR-Operation mit der zugrunde liegenden Blockverschlüsselung mit Schlüssel K.
Führen Sie den Chiffretextblock in das oberste Register ein und setzen Sie den Vorgang fort, bis alle Klartextblöcke verarbeitet sind.
Zur Entschlüsselung werden IV-Daten mit dem ersten entschlüsselten Chiffretextblock XOR-verknüpft. Der erste Chiffretextblock wird auch in das Register eingespeist, das IV ersetzt, um den nächsten Chiffretextblock zu entschlüsseln.
Analyse des CBC-Modus
Im CBC-Modus wird der aktuelle Klartextblock zum vorherigen Chiffretextblock hinzugefügt und das Ergebnis mit dem Schlüssel verschlüsselt. Die Entschlüsselung ist somit der umgekehrte Vorgang, bei dem der aktuelle Chiffretext entschlüsselt und anschließend der vorherige Chiffretextblock zum Ergebnis hinzugefügt wird.
Der Vorteil von CBC gegenüber der EZB besteht darin, dass eine Änderung der IV zu einem unterschiedlichen Chiffretext für eine identische Nachricht führt. Auf der Nachteilsseite wird der Übertragungsfehler während der Entschlüsselung aufgrund des Verkettungseffekts auf wenige weitere Blöcke übertragen.
Erwähnenswert ist, dass der CBC-Modus die Grundlage für einen bekannten Authentifizierungsmechanismus für den Datenursprung bildet. Dies hat einen Vorteil für Anwendungen, die sowohl eine symmetrische Verschlüsselung als auch eine Datenursprungsauthentifizierung erfordern.
CFB-Modus (Cipher Feedback)
In diesem Modus wird jeder Chiffretextblock in den Verschlüsselungsprozess zurückgeführt, um den nächsten Klartextblock zu verschlüsseln.
Betrieb
Der Betrieb des CFB-Modus ist in der folgenden Abbildung dargestellt. Beispielsweise hat in dem vorliegenden System ein Nachrichtenblock eine Größenbits, wobei 1 <s <n ist. Der CFB-Modus erfordert einen Initialisierungsvektor (IV) als den anfänglichen zufälligen n-Bit-Eingabeblock. Die IV muss nicht geheim sein. Arbeitsschritte sind -
Laden Sie die IV in das oberste Register.
Verschlüsseln Sie den Datenwert im obersten Register mit der zugrunde liegenden Blockverschlüsselung mit Schlüssel K.
Nehmen Sie nur die Anzahl der höchstwertigen Bits (linke Bits) der Ausgabe des Verschlüsselungsprozesses und XOR sie mit dem Klartext-Nachrichtenblock 's', um einen Chiffretextblock zu erzeugen.
Führen Sie den Chiffretextblock in das oberste Register ein, indem Sie bereits vorhandene Daten nach links verschieben, und setzen Sie den Vorgang fort, bis alle Klartextblöcke verarbeitet sind.
Im Wesentlichen wird der vorherige Chiffretextblock mit dem Schlüssel verschlüsselt, und dann wird das Ergebnis in den aktuellen Klartextblock XOR-verknüpft.
Ähnliche Schritte werden zur Entschlüsselung ausgeführt. Die vorab festgelegte IV wird zunächst zu Beginn der Entschlüsselung geladen.
Analyse des CFB-Modus
Der CFB-Modus unterscheidet sich erheblich vom EZB-Modus. Der einem bestimmten Klartextblock entsprechende Chiffretext hängt nicht nur von diesem Klartextblock und dem Schlüssel ab, sondern auch vom vorherigen Chiffretextblock. Mit anderen Worten ist der Chiffretextblock von der Nachricht abhängig.
CFB hat eine sehr seltsame Eigenschaft. In diesem Modus entschlüsselt der Benutzer den Chiffretext nur mit dem Verschlüsselungsprozess der Blockverschlüsselung. Der Entschlüsselungsalgorithmus der zugrunde liegenden Blockverschlüsselung wird niemals verwendet.
Anscheinend wandelt der CFB-Modus eine Blockverschlüsselung in eine Art Stream-Verschlüsselung um. Der Verschlüsselungsalgorithmus wird als Schlüsselstromgenerator verwendet, um einen Schlüsselstrom zu erzeugen, der in das untere Register gestellt wird. Dieser Schlüsselstrom wird dann wie im Fall der Stromverschlüsselung mit dem Klartext XOR-verknüpft.
Durch Konvertieren einer Blockverschlüsselung in eine Stream-Verschlüsselung bietet der CFB-Modus einige der vorteilhaften Eigenschaften einer Stream-Verschlüsselung, während die vorteilhaften Eigenschaften einer Blockverschlüsselung beibehalten werden.
Auf der anderen Seite wird der Übertragungsfehler aufgrund des Wechsels von Blöcken weitergegeben.
Ausgangsrückkopplungsmodus (OFB)
Dabei werden die aufeinanderfolgenden Ausgabeblöcke von der zugrunde liegenden Blockverschlüsselung zurückgeführt. Diese Rückkopplungsblöcke stellen eine Bitfolge bereit, um den Verschlüsselungsalgorithmus zu speisen, der wie im Fall des CFB-Modus als Schlüsselstromgenerator fungiert.
Der generierte Schlüsselstrom wird mit den Klartextblöcken XOR-bearbeitet. Der OFB-Modus erfordert eine IV als anfänglichen zufälligen n-Bit-Eingabeblock. Die IV muss nicht geheim sein.
Die Operation ist in der folgenden Abbildung dargestellt -
Zähler (CTR) -Modus
Es kann als zählerbasierte Version des CFB-Modus ohne Rückmeldung betrachtet werden. In diesem Modus müssen sowohl der Sender als auch der Empfänger auf einen zuverlässigen Zähler zugreifen, der jedes Mal, wenn ein Chiffretextblock ausgetauscht wird, einen neuen gemeinsamen Wert berechnet. Dieser gemeinsame Zähler ist nicht unbedingt ein geheimer Wert, aber die Herausforderung besteht darin, dass beide Seiten den Zähler synchronisieren müssen.
Betrieb
In der folgenden Abbildung sind sowohl die Verschlüsselung als auch die Entschlüsselung im CTR-Modus dargestellt. Schritte in Betrieb sind -
Das Laden des anfänglichen Zählerwerts in das oberste Register ist für Sender und Empfänger gleich. Es spielt die gleiche Rolle wie das IV im CFB- (und CBC-) Modus.
Verschlüsseln Sie den Inhalt des Zählers mit dem Schlüssel und legen Sie das Ergebnis in das untere Register.
Nehmen Sie den ersten Klartextblock P1 und XOR zum Inhalt des unteren Registers. Das Ergebnis ist C1. Senden Sie C1 an den Empfänger und aktualisieren Sie den Zähler. Die Zähleraktualisierung ersetzt die Chiffretext-Rückmeldung im CFB-Modus.
Fahren Sie auf diese Weise fort, bis der letzte Klartextblock verschlüsselt wurde.
Die Entschlüsselung erfolgt in umgekehrter Reihenfolge. Der Chiffretextblock wird mit der Ausgabe von verschlüsselten Inhalten mit Zählerwert XOR-verknüpft. Nach der Entschlüsselung jedes Chiffretext-Blockzählers wird wie bei der Verschlüsselung aktualisiert.
Analyse des Zählermodus
Es hat keine Nachrichtenabhängigkeit und daher hängt ein Chiffretextblock nicht von den vorherigen Klartextblöcken ab.
Wie der CFB-Modus beinhaltet der CTR-Modus nicht den Entschlüsselungsprozess der Blockverschlüsselung. Dies liegt daran, dass der CTR-Modus tatsächlich die Blockverschlüsselung verwendet, um einen Schlüsselstrom zu generieren, der mit der XOR-Funktion verschlüsselt wird. Mit anderen Worten, der CTR-Modus konvertiert auch eine Blockverschlüsselung in eine Stream-Verschlüsselung.
Der schwerwiegende Nachteil des CTR-Modus besteht darin, dass ein synchroner Zähler bei Sender und Empfänger erforderlich ist. Der Verlust der Synchronisation führt zu einer fehlerhaften Wiederherstellung von Klartext.
Der CTR-Modus bietet jedoch fast alle Vorteile des CFB-Modus. Außerdem verbreitet es überhaupt keinen Übertragungsfehler.
Kryptographie mit öffentlichen Schlüsseln
Im Gegensatz zur Kryptographie mit symmetrischen Schlüsseln findet die Kryptographie mit öffentlichen Schlüsseln keine historische Verwendung. Es ist ein relativ neues Konzept.
Die symmetrische Kryptographie war gut geeignet für Organisationen wie Regierungen, Militärs und große Finanzunternehmen, die an der geheimen Kommunikation beteiligt waren.
Mit der Verbreitung unsicherer Computernetzwerke in den letzten Jahrzehnten wurde ein echtes Bedürfnis verspürt, Kryptographie in größerem Maßstab einzusetzen. Der symmetrische Schlüssel erwies sich aufgrund der Herausforderungen für die Schlüsselverwaltung als unpraktisch. Dies führte zu Kryptosystemen mit öffentlichem Schlüssel.
Der Prozess der Ver- und Entschlüsselung ist in der folgenden Abbildung dargestellt:
Die wichtigsten Eigenschaften des Verschlüsselungsschemas mit öffentlichem Schlüssel sind:
Für die Ver- und Entschlüsselung werden unterschiedliche Schlüssel verwendet. Dies ist eine Eigenschaft, die dieses Schema von dem symmetrischen Verschlüsselungsschema unterscheidet.
Jeder Empfänger besitzt einen eindeutigen Entschlüsselungsschlüssel, der allgemein als sein privater Schlüssel bezeichnet wird.
Der Empfänger muss einen Verschlüsselungsschlüssel veröffentlichen, der als sein öffentlicher Schlüssel bezeichnet wird.
In diesem Schema ist eine gewisse Sicherheit der Authentizität eines öffentlichen Schlüssels erforderlich, um Spoofing durch den Gegner als Empfänger zu vermeiden. Im Allgemeinen handelt es sich bei dieser Art von Kryptosystem um vertrauenswürdige Dritte, die bestätigen, dass ein bestimmter öffentlicher Schlüssel nur einer bestimmten Person oder Entität gehört.
Der Verschlüsselungsalgorithmus ist komplex genug, um zu verhindern, dass Angreifer den Klartext aus dem Chiffretext und dem Verschlüsselungsschlüssel (öffentlich) ableiten.
Obwohl private und öffentliche Schlüssel mathematisch zusammenhängen, ist es nicht möglich, den privaten Schlüssel aus dem öffentlichen Schlüssel zu berechnen. Tatsächlich besteht ein intelligenter Teil eines Kryptosystems mit öffentlichem Schlüssel darin, eine Beziehung zwischen zwei Schlüsseln zu entwerfen.
Es gibt drei Arten von Verschlüsselungsschemata für öffentliche Schlüssel. Wir diskutieren sie in den folgenden Abschnitten -
RSA-Kryptosystem
Dieses Kryptosystem ist eines der ursprünglichen Systeme. Es ist bis heute das am häufigsten verwendete Kryptosystem. Das System wurde von drei Gelehrten erfundenRon Rivest, Adi Shamir, und Len Adleman und daher wird es als RSA-Kryptosystem bezeichnet.
Wir werden zwei Aspekte des RSA-Kryptosystems sehen: erstens die Erzeugung von Schlüsselpaaren und zweitens Verschlüsselungs- und Entschlüsselungsalgorithmen.
Generierung eines RSA-Schlüsselpaars
Jede Person oder Partei, die mit Verschlüsselung an der Kommunikation teilnehmen möchte, muss ein Schlüsselpaar generieren, nämlich einen öffentlichen und einen privaten Schlüssel. Der Prozess bei der Generierung von Schlüsseln wird nachfolgend beschrieben -
Generate the RSA modulus (n)
Wählen Sie zwei große Primzahlen, p und q.
Berechnen Sie n = p * q. Für eine starke unzerbrechliche Verschlüsselung sei n eine große Zahl, typischerweise ein Minimum von 512 Bit.
Find Derived Number (e)
Nummer e muss größer als 1 und kleiner als (p - 1) (q - 1) sein.
Es darf keinen gemeinsamen Faktor für e und (p - 1) (q - 1) außer 1 geben. Mit anderen Worten, zwei Zahlen e und (p - 1) (q - 1) sind Koprime.
Form the public key
Das Zahlenpaar (n, e) bildet den öffentlichen RSA-Schlüssel und wird veröffentlicht.
Obwohl n Teil des öffentlichen Schlüssels ist, stellt die Schwierigkeit, eine große Primzahl zu faktorisieren, interessanterweise sicher, dass der Angreifer die beiden Primzahlen (p & q), die zum Erhalten von n verwendet werden, nicht in endlicher Zeit finden kann. Dies ist die Stärke von RSA.
Generate the private key
Der private Schlüssel d wird aus p, q und e berechnet. Für gegebenes n und e gibt es eine eindeutige Zahl d.
Die Zahl d ist die Umkehrung von e modulo (p - 1) (q - 1). Dies bedeutet, dass d die Zahl kleiner als (p - 1) (q - 1) ist, so dass sie bei Multiplikation mit e gleich 1 Modulo (p - 1) (q - 1) ist.
Diese Beziehung wird mathematisch wie folgt geschrieben:
ed = 1 mod (p − 1)(q − 1)
Der erweiterte euklidische Algorithmus nimmt p, q und e als Eingabe und gibt d als Ausgabe.
Beispiel
Ein Beispiel zum Generieren eines RSA-Schlüsselpaars ist unten angegeben. (Zum besseren Verständnis sind die hier verwendeten Primzahlen p & q kleine Werte. Praktisch sind diese Werte sehr hoch.)
Sei zwei Primzahlen p = 7 und q = 13. Somit ist der Modul n = pq = 7 x 13 = 91.
Wählen Sie e = 5, was eine gültige Wahl ist, da es keine Zahl gibt, die der gemeinsame Faktor 5 ist, und (p - 1) (q - 1) = 6 × 12 = 72, außer 1.
Das Zahlenpaar (n, e) = (91, 5) bildet den öffentlichen Schlüssel und kann jedem zur Verfügung gestellt werden, dem wir verschlüsselte Nachrichten senden möchten.
Geben Sie p = 7, q = 13 und e = 5 in den erweiterten euklidischen Algorithmus ein. Die Ausgabe ist d = 29.
Überprüfen Sie, ob das berechnete d korrekt ist, indem Sie -
de = 29 × 5 = 145 = 1 mod 72
Daher ist der öffentliche Schlüssel (91, 5) und der private Schlüssel (91, 29).
Verschlüsselung und Entschlüsselung
Sobald das Schlüsselpaar generiert wurde, ist der Prozess der Ver- und Entschlüsselung relativ einfach und rechnerisch einfach.
Interessanterweise arbeitet RSA nicht direkt mit Bitfolgen wie bei der symmetrischen Schlüsselverschlüsselung. Es arbeitet mit Zahlen modulo n. Daher ist es notwendig, den Klartext als eine Reihe von Zahlen kleiner als n darzustellen.
RSA-Verschlüsselung
Angenommen, der Absender möchte eine Textnachricht an jemanden senden, dessen öffentlicher Schlüssel (n, e) ist.
Der Absender repräsentiert dann den Klartext als eine Reihe von Zahlen kleiner als n.
Um den ersten Klartext P zu verschlüsseln, der ein Zahlenmodul ist. Der Verschlüsselungsprozess ist ein einfacher mathematischer Schritt als -
C = Pe mod n
Mit anderen Worten, der Chiffretext C ist gleich dem Klartext P, der e-mal mit sich selbst multipliziert und dann modulo n reduziert wird. Dies bedeutet, dass C auch eine Zahl kleiner als n ist.
Zurück zu unserem Beispiel für die Schlüsselgenerierung mit Klartext P = 10 erhalten wir den Chiffretext C -
C = 105 mod 91
RSA-Entschlüsselung
Der Entschlüsselungsprozess für RSA ist ebenfalls sehr einfach. Angenommen, der Empfänger des Public-Key-Paares (n, e) hat einen Chiffretext C erhalten.
Der Empfänger erhöht C auf die Potenz seines privaten Schlüssels. D. Das Ergebnismodulo n ist der Klartext P.
Plaintext = Cd mod n
Zurück zu unserem numerischen Beispiel: Der Chiffretext C = 82 würde mit dem privaten Schlüssel 29 auf Nummer 10 entschlüsselt.
Plaintext = 8229 mod 91 = 10
RSA-Analyse
Die Sicherheit von RSA hängt von den Stärken zweier separater Funktionen ab. Das RSA-Kryptosystem ist die beliebteste Stärke des Kryptosystems mit öffentlichem Schlüssel, dessen praktische Schwierigkeit darin besteht, die sehr großen Zahlen zu berücksichtigen.
Encryption Function - Es wird als Einwegfunktion zur Umwandlung von Klartext in Chiffretext betrachtet und kann nur mit Kenntnis des privaten Schlüssels d rückgängig gemacht werden.
Key Generation- Die Schwierigkeit, einen privaten Schlüssel aus einem öffentlichen RSA-Schlüssel zu bestimmen, entspricht dem Faktorisieren des Moduls n. Ein Angreifer kann daher die Kenntnis eines öffentlichen RSA-Schlüssels nicht zur Bestimmung eines privaten RSA-Schlüssels verwenden, es sei denn, er kann n faktorisieren. Es ist auch eine Einwegfunktion, von p & q-Werten zu Modul n zu wechseln ist einfach, aber eine Umkehrung ist nicht möglich.
Wenn eine dieser beiden Funktionen als nicht einseitig erwiesen ist, wird RSA unterbrochen. Wenn eine Technik zum effizienten Factoring entwickelt wird, ist RSA nicht mehr sicher.
Die Stärke der RSA-Verschlüsselung nimmt gegenüber Angriffen drastisch ab, wenn die Zahlen p und q keine großen Primzahlen sind und / oder der gewählte öffentliche Schlüssel e eine kleine Zahl ist.
ElGamal Cryptosystem
Neben RSA werden weitere Kryptosysteme mit öffentlichem Schlüssel vorgeschlagen. Viele von ihnen basieren auf verschiedenen Versionen des diskreten Logarithmusproblems.
Das ElGamal-Kryptosystem, Elliptic Curve Variant genannt, basiert auf dem Discrete Logarithm Problem. Sie leitet die Stärke aus der Annahme ab, dass die diskreten Logarithmen für eine gegebene Zahl nicht im praktischen Zeitrahmen gefunden werden können, während der inverse Betrieb der Leistung effizient berechnet werden kann.
Lassen Sie uns eine einfache Version von ElGamal durchgehen, die mit Zahlen modulo p arbeitet. Bei elliptischen Kurvenvarianten basiert es auf ganz unterschiedlichen Zahlensystemen.
Generierung eines ElGamal-Schlüsselpaars
Jeder Benutzer des ElGamal-Kryptosystems generiert das Schlüsselpaar wie folgt:
Choosing a large prime p. Im Allgemeinen wird eine Primzahl mit einer Länge von 1024 bis 2048 Bit gewählt.
Choosing a generator element g.
Diese Zahl muss zwischen 1 und p - 1 liegen, darf aber keine Zahl sein.
Es ist ein Generator der multiplikativen Gruppe von ganzen Zahlen modulo p. Dies bedeutet, dass es für jede ganze Zahl m, die zu p co-primiert, eine ganze Zahl k gibt, so dass g k = a mod n ist.
Zum Beispiel ist 3 Generator der Gruppe 5 (Z 5 = {1, 2, 3, 4}).
N. | 3 n | 3 n mod 5 |
---|---|---|
1 | 3 | 3 |
2 | 9 | 4 |
3 | 27 | 2 |
4 | 81 | 1 |
Choosing the private key. Der private Schlüssel x ist eine beliebige Zahl größer als 1 und kleiner als p - 1.
Computing part of the public key. Der Wert y wird aus den Parametern p, g und dem privaten Schlüssel x wie folgt berechnet:
y = gx mod p
Obtaining Public key. Der öffentliche ElGamal-Schlüssel besteht aus den drei Parametern (p, g, y).
Angenommen, p = 17 und g = 6 (Es kann bestätigt werden, dass 6 ein Generator der Gruppe Z 17 ist ). Der private Schlüssel x kann eine beliebige Zahl sein, die größer als 1 und kleiner als 71 ist. Wir wählen also x = 5. Der Wert y wird dann wie folgt berechnet:
y = 65 mod 17 = 7
Somit ist der private Schlüssel 62 und der öffentliche Schlüssel (17, 6, 7).
Verschlüsselung und Entschlüsselung
Die Generierung eines ElGamal-Schlüsselpaars ist vergleichsweise einfacher als der entsprechende Prozess für RSA. Die Ver- und Entschlüsselung ist jedoch etwas komplexer als bei RSA.
ElGamal-Verschlüsselung
Angenommen, der Absender möchte einen Klartext an jemanden senden, dessen öffentlicher ElGamal-Schlüssel (p, g, y) lautet. Dann -
Der Absender repräsentiert den Klartext als eine Reihe von Zahlen modulo p.
Um den ersten Klartext P zu verschlüsseln, der als Zahl modulo p dargestellt wird. Der Verschlüsselungsprozess zum Erhalten des Chiffretextes C ist wie folgt:
- Erzeugen Sie zufällig eine Zahl k;
- Berechnen Sie zwei Werte C1 und C2, wobei -
C1 = gk mod p
C2 = (P*yk) mod p
Senden Sie den Chiffretext C, der aus den beiden getrennten Werten (C1, C2) besteht, die zusammen gesendet wurden.
In Bezug auf unser oben angegebenes Beispiel für die ElGamal-Schlüsselgenerierung wird der Klartext P = 13 wie folgt verschlüsselt:
- Generieren Sie zufällig eine Zahl, sagen wir k = 10
- Berechnen Sie die beiden Werte C1 und C2, wobei -
C1 = 610 mod 17
C2 = (13*710) mod 17 = 9
Senden Sie den Chiffretext C = (C1, C2) = (15, 9).
ElGamal-Entschlüsselung
Um den Chiffretext (C1, C2) mit dem privaten Schlüssel x zu entschlüsseln, werden die folgenden zwei Schritte ausgeführt:
Berechnen Sie die modulare Inverse von (C1) x modulo p, die (C1) -x ist und allgemein als Entschlüsselungsfaktor bezeichnet wird.
Erhalten Sie den Klartext mit der folgenden Formel:
C2 × (C1)-x mod p = Plaintext
In unserem Beispiel ist der Entschlüsselungsfaktor, um den Chiffretext C = (C1, C2) = (15, 9) unter Verwendung des privaten Schlüssels x = 5 zu entschlüsseln
15-5 mod 17 = 9
Extrahieren Sie Klartext P = (9 × 9) mod 17 = 13.
ElGamal-Analyse
Im ElGamal-System verfügt jeder Benutzer über einen privaten Schlüssel x. und hatthree components des öffentlichen Schlüssels - prime modulus p, generator g, and public Y = gx mod p. Die Stärke des ElGamal basiert auf der Schwierigkeit des diskreten Logarithmusproblems.
Die sichere Schlüsselgröße beträgt im Allgemeinen> 1024 Bit. Heute werden sogar 2048 Bit lange Schlüssel verwendet. In Bezug auf die Verarbeitungsgeschwindigkeit ist Elgamal ziemlich langsam und wird hauptsächlich für Schlüsselauthentifizierungsprotokolle verwendet. Aufgrund der höheren Verarbeitungseffizienz werden Elliptic Curve-Varianten von ElGamal immer beliebter.
Elliptische Kurvenkryptographie (ECC)
Elliptic Curve Cryptography (ECC) ist ein Begriff, der eine Reihe von kryptografischen Werkzeugen und Protokollen beschreibt, deren Sicherheit auf speziellen Versionen des Problems des diskreten Logarithmus basiert. Es werden keine Zahlen modulo p verwendet.
ECC basiert auf Zahlenmengen, die mathematischen Objekten zugeordnet sind, die als elliptische Kurven bezeichnet werden. Es gibt Regeln zum Hinzufügen und Berechnen von Vielfachen dieser Zahlen, genau wie es für Zahlen modulo p gibt.
ECC enthält eine Variante vieler kryptografischer Schemata, die ursprünglich für modulare Nummern wie ElGamal-Verschlüsselung und Algorithmus für digitale Signaturen entwickelt wurden.
Es wird angenommen, dass das Problem des diskreten Logarithmus viel schwieriger ist, wenn es auf Punkte auf einer elliptischen Kurve angewendet wird. Dies veranlasst das Umschalten von Zahlen modulo p zu Punkten auf einer elliptischen Kurve. Eine äquivalente Sicherheitsstufe kann auch mit kürzeren Schlüsseln erreicht werden, wenn wir elliptische kurvenbasierte Varianten verwenden.
Die kürzeren Schlüssel ergeben zwei Vorteile -
- Einfache Schlüsselverwaltung
- Effiziente Berechnung
Diese Vorteile machen elliptisch-kurvenbasierte Varianten des Verschlüsselungsschemas für Anwendungen mit eingeschränkten Rechenressourcen sehr attraktiv.
RSA- und ElGamal-Schemata - Ein Vergleich
Vergleichen wir kurz die RSA- und ElGamal-Schemata zu den verschiedenen Aspekten.
RSA | ElGamal |
---|---|
Es ist effizienter für die Verschlüsselung. | Es ist effizienter für die Entschlüsselung. |
Es ist weniger effizient für die Entschlüsselung. | Es ist effizienter für die Entschlüsselung. |
Für eine bestimmte Sicherheitsstufe sind in RSA lange Schlüssel erforderlich. | Für die gleiche Sicherheitsstufe sind sehr kurze Tasten erforderlich. |
Es ist weit verbreitet und wird verwendet. | Es ist neu und auf dem Markt nicht sehr beliebt. |
Bisher haben wir die Verwendung von symmetrischen und öffentlichen Schlüsselschemata diskutiert, um die Vertraulichkeit von Informationen zu erreichen. Mit diesem Kapitel beginnen wir unsere Diskussion über verschiedene kryptografische Techniken, die zur Bereitstellung anderer Sicherheitsdienste entwickelt wurden.
Der Schwerpunkt dieses Kapitels liegt auf der Datenintegrität und den kryptografischen Tools, mit denen dies erreicht wird.
Bedrohungen für die Datenintegrität
Wenn vertrauliche Informationen ausgetauscht werden, muss der Empfänger die Gewissheit haben, dass die Nachricht vom beabsichtigten Absender intakt ist und nicht versehentlich oder auf andere Weise geändert wird. Es gibt zwei verschiedene Arten von Bedrohungen für die Datenintegrität:passive und active.
Passive Bedrohungen
Diese Art von Bedrohungen besteht aufgrund versehentlicher Datenänderungen.
Diese Datenfehler treten wahrscheinlich aufgrund von Rauschen in einem Kommunikationskanal auf. Außerdem können die Daten beschädigt werden, während die Datei auf einer Festplatte gespeichert wird.
Fehlerkorrekturcodes und einfache Prüfsummen wie Cyclic Redundancy Checks (CRCs) werden verwendet, um den Verlust der Datenintegrität zu erkennen. Bei diesen Techniken wird ein Datenauszug mathematisch berechnet und an die Daten angehängt.
Aktive Bedrohungen
Bei dieser Art von Bedrohungen kann ein Angreifer die Daten mit böswilliger Absicht manipulieren.
Auf der einfachsten Ebene können Daten ohne Digest ohne Erkennung geändert werden. Das System kann Techniken zum Anhängen von CRC an Daten verwenden, um eine aktive Änderung zu erkennen.
Bei einer höheren Bedrohungsstufe kann der Angreifer Daten ändern und versuchen, einen neuen Digest für geänderte Daten aus dem Verlassen des Digests abzuleiten. Dies ist möglich, wenn der Digest mit einfachen Mechanismen wie CRC berechnet wird.
Sicherheitsmechanismen wie Hash-Funktionen werden verwendet, um die aktiven Änderungsbedrohungen zu bekämpfen.
Hash-Funktionen sind äußerst nützlich und erscheinen in fast allen Informationssicherheitsanwendungen.
Eine Hash-Funktion ist eine mathematische Funktion, die einen numerischen Eingabewert in einen anderen komprimierten numerischen Wert umwandelt. Die Eingabe in die Hash-Funktion hat eine beliebige Länge, die Ausgabe ist jedoch immer von fester Länge.
Von einer Hash-Funktion zurückgegebene Werte werden aufgerufen message digest oder einfach hash values. Das folgende Bild zeigt die Hash-Funktion -
Funktionen von Hash-Funktionen
Die typischen Merkmale von Hash-Funktionen sind -
Fixed Length Output (Hash Value)
Die Hash-Funktion verdeckt Daten beliebiger Länge auf eine feste Länge. Dieser Prozess wird oft als bezeichnethashing the data.
Im Allgemeinen ist der Hash viel kleiner als die Eingabedaten, daher werden manchmal Hash-Funktionen aufgerufen compression functions.
Da ein Hash eine kleinere Darstellung größerer Daten ist, wird er auch als a bezeichnet digest.
Die Hash-Funktion mit n-Bit-Ausgabe wird als bezeichnet n-bit hash function. Beliebte Hash-Funktionen generieren Werte zwischen 160 und 512 Bit.
Efficiency of Operation
Im Allgemeinen ist die Berechnung von h (x) für jede Hash-Funktion h mit Eingabe x eine schnelle Operation.
Computergestützte Hash-Funktionen sind viel schneller als eine symmetrische Verschlüsselung.
Eigenschaften von Hash-Funktionen
Um ein effektives kryptografisches Werkzeug zu sein, soll die Hash-Funktion folgende Eigenschaften besitzen:
Pre-Image Resistance
Diese Eigenschaft bedeutet, dass es rechnerisch schwierig sein sollte, eine Hash-Funktion umzukehren.
Mit anderen Worten, wenn eine Hash-Funktion h einen Hash-Wert z erzeugt hat, sollte es schwierig sein, einen Eingabewert x zu finden, der auf z hascht.
Diese Eigenschaft schützt vor einem Angreifer, der nur einen Hashwert hat und versucht, die Eingabe zu finden.
Second Pre-Image Resistance
Diese Eigenschaft bedeutet, dass es bei einer Eingabe und ihrem Hash schwierig sein sollte, eine andere Eingabe mit demselben Hash zu finden.
Mit anderen Worten, wenn eine Hash-Funktion h für eine Eingabe x einen Hash-Wert h (x) erzeugt, sollte es schwierig sein, einen anderen Eingabewert y zu finden, so dass h (y) = h (x).
Diese Eigenschaft der Hash-Funktion schützt vor einem Angreifer, der einen Eingabewert und dessen Hash hat und anstelle des ursprünglichen Eingabewerts einen anderen Wert als legitimen Wert ersetzen möchte.
Collision Resistance
Diese Eigenschaft bedeutet, dass es schwierig sein sollte, zwei verschiedene Eingaben beliebiger Länge zu finden, die zum gleichen Hash führen. Diese Eigenschaft wird auch als kollisionsfreie Hash-Funktion bezeichnet.
Mit anderen Worten, für eine Hash-Funktion h ist es schwierig, zwei verschiedene Eingaben x und y zu finden, so dass h (x) = h (y).
Da die Hash-Funktion eine Komprimierungsfunktion mit fester Hash-Länge ist, ist es für eine Hash-Funktion unmöglich, keine Kollisionen zu haben. Diese Eigenschaft der Kollisionsfreiheit bestätigt nur, dass diese Kollisionen schwer zu finden sein sollten.
Diese Eigenschaft macht es für einen Angreifer sehr schwierig, zwei Eingabewerte mit demselben Hash zu finden.
Auch wenn eine Hash-Funktion kollisionssicher ist then it is second pre-image resistant.
Design von Hashing-Algorithmen
Das Herzstück eines Hashs ist eine mathematische Funktion, die mit zwei Datenblöcken fester Größe arbeitet, um einen Hashcode zu erstellen. Diese Hash-Funktion bildet den Teil des Hashing-Algorithmus.
Die Größe jedes Datenblocks variiert je nach Algorithmus. Typischerweise liegen die Blockgrößen zwischen 128 Bit und 512 Bit. Die folgende Abbildung zeigt die Hash-Funktion -
Der Hashing-Algorithmus beinhaltet Runden der obigen Hash-Funktion wie eine Blockverschlüsselung. Jede Runde benötigt eine Eingabe mit fester Größe, normalerweise eine Kombination aus dem neuesten Nachrichtenblock und der Ausgabe der letzten Runde.
Dieser Vorgang wird für so viele Runden wiederholt, wie zum Hashing der gesamten Nachricht erforderlich sind. Das Schema des Hashing-Algorithmus ist in der folgenden Abbildung dargestellt:
Da der Hash-Wert des ersten Nachrichtenblocks eine Eingabe für die zweite Hash-Operation wird, deren Ausgabe das Ergebnis der dritten Operation ändert, und so weiter. Dieser Effekt, bekannt alsavalanche Wirkung von Hashing.
Der Lawineneffekt führt zu wesentlich unterschiedlichen Hashwerten für zwei Nachrichten, die sich sogar durch ein einzelnes Datenbit unterscheiden.
Verstehen Sie den Unterschied zwischen Hash-Funktion und Algorithmus richtig. Die Hash-Funktion generiert einen Hash-Code, indem sie zwei Blöcke von Binärdaten fester Länge bearbeitet.
Der Hashing-Algorithmus ist ein Prozess zur Verwendung der Hash-Funktion, der angibt, wie die Nachricht aufgeteilt wird und wie die Ergebnisse früherer Nachrichtenblöcke miteinander verkettet werden.
Beliebte Hash-Funktionen
Lassen Sie uns kurz einige beliebte Hash-Funktionen sehen -
Message Digest (MD)
MD5 war einige Jahre lang die beliebteste und am weitesten verbreitete Hash-Funktion.
Die MD-Familie umfasst die Hash-Funktionen MD2, MD4, MD5 und MD6. Es wurde als Internet Standard RFC 1321 übernommen. Es handelt sich um eine 128-Bit-Hash-Funktion.
MD5-Digests werden in der Softwarewelt häufig verwendet, um die Integrität der übertragenen Datei zu gewährleisten. Beispielsweise stellen Dateiserver häufig eine vorberechnete MD5-Prüfsumme für die Dateien bereit, damit ein Benutzer die Prüfsumme der heruntergeladenen Datei damit vergleichen kann.
Im Jahr 2004 wurden in MD5 Kollisionen gefunden. Es wurde berichtet, dass ein analytischer Angriff nur in einer Stunde mithilfe eines Computerclusters erfolgreich war. Dieser Kollisionsangriff führte zu einer Beeinträchtigung von MD5 und wird daher nicht mehr zur Verwendung empfohlen.
Sichere Hash-Funktion (SHA)
Die SHA-Familie besteht aus vier SHA-Algorithmen. SHA-0, SHA-1, SHA-2 und SHA-3. Obwohl aus derselben Familie, gibt es strukturell unterschiedliche.
Die Originalversion ist SHA-0, eine 160-Bit-Hash-Funktion, die 1993 vom Nationalen Institut für Standards und Technologie (NIST) veröffentlicht wurde. Sie hatte nur wenige Schwächen und wurde nicht sehr beliebt. Später im Jahr 1995 wurde SHA-1 entwickelt, um angebliche Schwächen von SHA-0 zu korrigieren.
SHA-1 ist die am weitesten verbreitete der vorhandenen SHA-Hash-Funktionen. Es wird in mehreren weit verbreiteten Anwendungen und Protokollen eingesetzt, einschließlich der SSL-Sicherheit (Secure Socket Layer).
Im Jahr 2005 wurde eine Methode gefunden, um Kollisionen für SHA-1 innerhalb des praktischen Zeitrahmens aufzudecken, was die langfristige Beschäftigungsfähigkeit von SHA-1 zweifelhaft macht.
Die SHA-2-Familie verfügt über vier weitere SHA-Varianten, SHA-224, SHA-256, SHA-384 und SHA-512, abhängig von der Anzahl der Bits in ihrem Hash-Wert. Es wurden noch keine erfolgreichen Angriffe auf die SHA-2-Hash-Funktion gemeldet.
Obwohl SHA-2 eine starke Hash-Funktion ist. Obwohl es sich erheblich unterscheidet, folgt sein grundlegendes Design immer noch dem Design von SHA-1. Daher forderte NIST neue wettbewerbsfähige Hash-Funktionsdesigns.
Im Oktober 2012 wählte das NIST den Keccak-Algorithmus als neuen SHA-3-Standard. Keccak bietet viele Vorteile, wie z. B. effiziente Leistung und gute Widerstandsfähigkeit gegen Angriffe.
RIPEMD
Das RIPEMD ist eine Abkürzung für RACE Integrity Primitives Evaluation Message Digest. Dieser Satz von Hash-Funktionen wurde von einer offenen Forschungsgemeinschaft entworfen und ist allgemein als eine Familie europäischer Hash-Funktionen bekannt.
Das Set enthält RIPEMD, RIPEMD-128 und RIPEMD-160. Es gibt auch 256- und 320-Bit-Versionen dieses Algorithmus.
Das ursprüngliche RIPEMD (128 Bit) basiert auf den in MD4 verwendeten Entwurfsprinzipien und bietet fragwürdige Sicherheit. Die 128-Bit-Version von RIPEMD wurde als schneller Ersatz für die Behebung von Schwachstellen im ursprünglichen RIPEMD bereitgestellt.
RIPEMD-160 ist eine verbesserte Version und die am häufigsten verwendete Version in der Familie. Die 256- und 320-Bit-Versionen verringern die Wahrscheinlichkeit einer versehentlichen Kollision, bieten jedoch keine höhere Sicherheitsstufe als RIPEMD-128 bzw. RIPEMD-160.
Whirlpool
Dies ist eine 512-Bit-Hash-Funktion.
Es ist von der modifizierten Version des Advanced Encryption Standard (AES) abgeleitet. Einer der Designer war Vincent Rijmen, ein Mitschöpfer der AES.
Drei Versionen von Whirlpool wurden veröffentlicht; nämlich WHIRLPOOL-0, WHIRLPOOL-T und WHIRLPOOL.
Anwendungen von Hash-Funktionen
Es gibt zwei direkte Anwendungen der Hash-Funktion basierend auf ihren kryptografischen Eigenschaften.
Passwortspeicherung
Hash-Funktionen bieten Schutz für die Kennwortspeicherung.
Anstatt das Kennwort klar zu speichern, speichern die meisten Anmeldevorgänge die Hashwerte der Kennwörter in der Datei.
Die Passwortdatei besteht aus einer Tabelle von Paaren, die in der Form vorliegen (Benutzer-ID, h (P)).
Der Anmeldevorgang ist in der folgenden Abbildung dargestellt:
Ein Eindringling kann nur die Hashes von Passwörtern sehen, selbst wenn er auf das Passwort zugegriffen hat. Er kann sich weder mit Hash anmelden noch das Passwort aus dem Hashwert ableiten, da die Hash-Funktion die Eigenschaft des Pre-Image-Widerstands besitzt.
Datenintegritätsprüfung
Die Datenintegritätsprüfung ist eine der häufigsten Anwendungen der Hash-Funktionen. Es wird verwendet, um die Prüfsummen für Datendateien zu generieren. Diese Anwendung bietet dem Benutzer Sicherheit über die Richtigkeit der Daten.
Der Vorgang ist in der folgenden Abbildung dargestellt:
Die Integritätsprüfung hilft dem Benutzer, Änderungen an der Originaldatei zu erkennen. Es gibt jedoch keine Garantie für die Originalität. Anstatt die Dateidaten zu ändern, kann der Angreifer die gesamte Datei ändern und insgesamt neuen Hash berechnen und an den Empfänger senden. Diese Anwendung zur Integritätsprüfung ist nur dann nützlich, wenn der Benutzer sich über die Originalität der Datei sicher ist.
Im letzten Kapitel haben wir die Bedrohungen der Datenintegrität und die Verwendung der Hashing-Technik erörtert, um festzustellen, ob Änderungsangriffe auf die Daten stattgefunden haben.
Eine andere Art von Bedrohung, die für Daten besteht, ist das Fehlen von message authentication. Bei dieser Bedrohung ist sich der Benutzer nicht sicher über den Absender der Nachricht. Die Nachrichtenauthentifizierung kann mithilfe der kryptografischen Techniken bereitgestellt werden, bei denen geheime Schlüssel verwendet werden, wie dies bei der Verschlüsselung der Fall ist.
Nachrichtenauthentifizierungscode (MAC)
Der MAC-Algorithmus ist eine kryptografische Technik mit symmetrischem Schlüssel zur Bereitstellung der Nachrichtenauthentifizierung. Zum Einrichten des MAC-Prozesses teilen sich Sender und Empfänger einen symmetrischen Schlüssel K.
Im Wesentlichen ist ein MAC eine verschlüsselte Prüfsumme, die für die zugrunde liegende Nachricht generiert wird und zusammen mit einer Nachricht gesendet wird, um die Nachrichtenauthentifizierung sicherzustellen.
Der Prozess der Verwendung von MAC zur Authentifizierung ist in der folgenden Abbildung dargestellt:
Versuchen wir nun, den gesamten Prozess im Detail zu verstehen -
Der Absender verwendet einen öffentlich bekannten MAC-Algorithmus, gibt die Nachricht und den geheimen Schlüssel K ein und erzeugt einen MAC-Wert.
Ähnlich wie beim Hash komprimiert die MAC-Funktion auch eine beliebige lange Eingabe in eine Ausgabe fester Länge. Der Hauptunterschied zwischen Hash und MAC besteht darin, dass MAC während der Komprimierung einen geheimen Schlüssel verwendet.
Der Absender leitet die Nachricht zusammen mit dem MAC weiter. Hier gehen wir davon aus, dass die Nachricht im Klartext gesendet wird, da es um die Authentifizierung des Nachrichtenursprungs und nicht um die Vertraulichkeit geht. Wenn Vertraulichkeit erforderlich ist, muss die Nachricht verschlüsselt werden.
Beim Empfang der Nachricht und des MAC führt der Empfänger die empfangene Nachricht und den gemeinsamen geheimen Schlüssel K in den MAC-Algorithmus ein und berechnet den MAC-Wert neu.
Der Empfänger überprüft nun die Gleichheit des frisch berechneten MAC mit dem vom Absender empfangenen MAC. Wenn sie übereinstimmen, akzeptiert der Empfänger die Nachricht und versichert sich, dass die Nachricht vom beabsichtigten Absender gesendet wurde.
Wenn der berechnete MAC nicht mit dem vom Absender gesendeten MAC übereinstimmt, kann der Empfänger nicht feststellen, ob die Nachricht geändert oder der Ursprung gefälscht wurde. Unter dem Strich geht ein Empfänger sicher davon aus, dass die Nachricht nicht echt ist.
Einschränkungen von MAC
Es gibt zwei Hauptbeschränkungen von MAC, beide aufgrund seiner symmetrischen Funktionsweise -
Establishment of Shared Secret.
Es kann eine Nachrichtenauthentifizierung für vorab festgelegte legitime Benutzer bereitstellen, die einen gemeinsam genutzten Schlüssel haben.
Dies erfordert die Einrichtung eines gemeinsamen Geheimnisses vor der Verwendung von MAC.
Inability to Provide Non-Repudiation
Nicht-Zurückweisung ist die Gewissheit, dass ein Nachrichtenurheber keine zuvor gesendeten Nachrichten und Verpflichtungen oder Aktionen ablehnen kann.
Die MAC-Technik bietet keinen Nicht-Ablehnungsdienst. Wenn der Absender und der Empfänger in einen Streit über die Entstehung von Nachrichten verwickelt sind, können MACs keinen Beweis dafür liefern, dass eine Nachricht tatsächlich vom Absender gesendet wurde.
Obwohl kein Dritter den MAC berechnen kann, könnte der Absender dennoch leugnen, die Nachricht gesendet zu haben, und behaupten, der Empfänger habe sie gefälscht, da nicht festgestellt werden kann, welcher der beiden Parteien den MAC berechnet hat.
Diese beiden Einschränkungen können überwunden werden, indem die im folgenden Abschnitt beschriebenen auf öffentlichen Schlüsseln basierenden digitalen Signaturen verwendet werden.
Digitale Signaturen sind die Grundelemente des öffentlichen Schlüssels für die Nachrichtenauthentifizierung. In der physischen Welt ist es üblich, handschriftliche Signaturen für handgeschriebene oder getippte Nachrichten zu verwenden. Sie werden verwendet, um den Unterzeichner an die Nachricht zu binden.
In ähnlicher Weise ist eine digitale Signatur eine Technik, die eine Person / Entität an die digitalen Daten bindet. Diese Bindung kann sowohl vom Empfänger als auch von Dritten unabhängig überprüft werden.
Die digitale Signatur ist ein kryptografischer Wert, der aus den Daten und einem geheimen Schlüssel berechnet wird, der nur dem Unterzeichner bekannt ist.
In der realen Welt muss der Empfänger der Nachricht sicherstellen, dass die Nachricht dem Absender gehört, und er sollte nicht in der Lage sein, die Entstehung dieser Nachricht abzulehnen. Diese Anforderung ist in Geschäftsanwendungen sehr wichtig, da die Wahrscheinlichkeit eines Streits über ausgetauschte Daten sehr hoch ist.
Modell der digitalen Signatur
Wie bereits erwähnt, basiert das digitale Signaturschema auf der Kryptographie mit öffentlichen Schlüsseln. Das Modell des digitalen Signaturschemas ist in der folgenden Abbildung dargestellt:
Die folgenden Punkte erläutern den gesamten Prozess im Detail -
Jede Person, die dieses Schema anwendet, hat ein öffentlich-privates Schlüsselpaar.
Im Allgemeinen unterscheiden sich die Schlüsselpaare, die zum Ver- / Entschlüsseln und Signieren / Überprüfen verwendet werden. Der zum Signieren verwendete private Schlüssel wird als Signaturschlüssel und der öffentliche Schlüssel als Bestätigungsschlüssel bezeichnet.
Der Unterzeichner gibt Daten an die Hash-Funktion weiter und generiert Hash-Daten.
Der Hash-Wert und der Signaturschlüssel werden dann dem Signaturalgorithmus zugeführt, der die digitale Signatur bei einem bestimmten Hash erzeugt. Die Signatur wird an die Daten angehängt und dann werden beide an den Prüfer gesendet.
Der Prüfer gibt die digitale Signatur und den Bestätigungsschlüssel in den Überprüfungsalgorithmus ein. Der Verifizierungsalgorithmus gibt einen Wert als Ausgabe an.
Verifier führt dieselbe Hash-Funktion auch für empfangene Daten aus, um einen Hash-Wert zu generieren.
Zur Verifizierung werden dieser Hashwert und die Ausgabe des Verifizierungsalgorithmus verglichen. Basierend auf dem Vergleichsergebnis entscheidet der Prüfer, ob die digitale Signatur gültig ist.
Da die digitale Signatur durch den "privaten" Schlüssel des Unterzeichners erstellt wird und niemand sonst diesen Schlüssel haben kann; Der Unterzeichner kann die zukünftige Unterzeichnung der Daten nicht ablehnen.
Es sollte beachtet werden, dass anstatt Daten direkt mit dem Signaturalgorithmus zu signieren, normalerweise ein Hash von Daten erstellt wird. Da der Hash von Daten eine eindeutige Darstellung von Daten ist, reicht es aus, den Hash anstelle von Daten zu signieren. Der wichtigste Grund für die Verwendung von Hash anstelle von Daten direkt zum Signieren ist die Effizienz des Schemas.
Nehmen wir an, dass RSA als Signaturalgorithmus verwendet wird. Wie im Kapitel zur Verschlüsselung mit öffentlichem Schlüssel erläutert, umfasst der Verschlüsselungs- / Signaturprozess mit RSA eine modulare Exponentiation.
Das Signieren großer Datenmengen durch modulare Exponentiation ist rechenintensiv und zeitaufwändig. Der Hash der Daten ist daher ein relativ kleiner Auszug der Datensigning a hash is more efficient than signing the entire data.
Bedeutung der digitalen Signatur
Von allen kryptografischen Grundelementen wird die digitale Signatur unter Verwendung der Kryptografie mit öffentlichem Schlüssel als sehr wichtiges und nützliches Werkzeug zur Erreichung der Informationssicherheit angesehen.
Neben der Möglichkeit, die Nachricht nicht abzulehnen, bietet die digitale Signatur auch die Nachrichtenauthentifizierung und Datenintegrität. Lassen Sie uns kurz sehen, wie dies durch die digitale Signatur erreicht wird -
Message authentication - Wenn der Prüfer die digitale Signatur mit dem öffentlichen Schlüssel eines Absenders validiert, wird ihm versichert, dass die Signatur nur von dem Absender erstellt wurde, der den entsprechenden geheimen privaten Schlüssel besitzt, und von niemand anderem.
Data Integrity- Falls ein Angreifer Zugriff auf die Daten hat und diese ändert, schlägt die Überprüfung der digitalen Signatur auf Empfängerseite fehl. Der Hash der geänderten Daten und die vom Verifizierungsalgorithmus bereitgestellte Ausgabe stimmen nicht überein. Daher kann der Empfänger die Nachricht sicher ablehnen, vorausgesetzt, dass die Datenintegrität verletzt wurde.
Non-repudiation- Da davon ausgegangen wird, dass nur der Unterzeichner den Signaturschlüssel kennt, kann er nur für bestimmte Daten eine eindeutige Signatur erstellen. Somit kann der Empfänger Daten und die digitale Signatur einem Dritten als Beweismittel vorlegen, wenn in Zukunft Streitigkeiten auftreten.
Durch Hinzufügen einer Verschlüsselung mit öffentlichem Schlüssel zum Schema der digitalen Signatur können wir ein Kryptosystem erstellen, das die vier wesentlichen Sicherheitselemente bietet: Datenschutz, Authentifizierung, Integrität und Nicht-Zurückweisung.
Verschlüsselung mit digitaler Signatur
Bei vielen digitalen Kommunikationen ist es wünschenswert, verschlüsselte Nachrichten als Klartext auszutauschen, um Vertraulichkeit zu erreichen. Beim Verschlüsselungsschema mit öffentlichem Schlüssel ist ein öffentlicher (Verschlüsselungs-) Schlüssel des Absenders in einer offenen Domäne verfügbar, und daher kann jeder seine Identität fälschen und jede verschlüsselte Nachricht an den Empfänger senden.
Daher ist es für Benutzer, die PKC für die Verschlüsselung verwenden, wichtig, digitale Signaturen zusammen mit verschlüsselten Daten zu suchen, um sicherzustellen, dass Nachrichten authentifiziert und nicht zurückgewiesen werden.
Dies kann archiviert werden, indem digitale Signaturen mit einem Verschlüsselungsschema kombiniert werden. Lassen Sie uns kurz diskutieren, wie diese Anforderung erreicht werden kann. Es gibttwo possibilities, sign-then-encrypt und encrypt-then-sign.
Das auf Sign-Then-Encrypt basierende Kryptosystem kann jedoch vom Empfänger ausgenutzt werden, um die Identität des Absenders zu fälschen und diese Daten an Dritte zu senden. Daher ist dieses Verfahren nicht bevorzugt. Der Prozess des Verschlüsselns und Signierens ist zuverlässiger und weit verbreitet. Dies ist in der folgenden Abbildung dargestellt -
Der Empfänger überprüft nach dem Empfang der verschlüsselten Daten und der darauf befindlichen Signatur zunächst die Signatur mit dem öffentlichen Schlüssel des Absenders. Nachdem er die Gültigkeit der Signatur sichergestellt hat, ruft er die Daten durch Entschlüsselung mit seinem privaten Schlüssel ab.
Das auffälligste Merkmal der Public Key Infrastructure (PKI) ist, dass ein Schlüsselpaar verwendet wird, um den zugrunde liegenden Sicherheitsdienst zu erreichen. Das Schlüsselpaar besteht aus einem privaten und einem öffentlichen Schlüssel.
Da sich die öffentlichen Schlüssel in einer offenen Domäne befinden, werden sie wahrscheinlich missbraucht. Es ist daher erforderlich, eine vertrauenswürdige Infrastruktur einzurichten und zu warten, um diese Schlüssel zu verwalten.
Schlüsselverwaltung
Es versteht sich von selbst, dass die Sicherheit eines Kryptosystems davon abhängt, wie sicher seine Schlüssel verwaltet werden. Ohne sichere Verfahren für den Umgang mit kryptografischen Schlüsseln gehen möglicherweise die Vorteile der Verwendung starker kryptografischer Schemata verloren.
Es wird beobachtet, dass kryptografische Schemata selten durch Schwachstellen in ihrem Design beeinträchtigt werden. Sie werden jedoch häufig durch eine schlechte Schlüsselverwaltung gefährdet.
Es gibt einige wichtige Aspekte des Schlüsselmanagements:
Kryptografische Schlüssel sind nichts anderes als spezielle Daten. Die Schlüsselverwaltung bezieht sich auf die sichere Verwaltung kryptografischer Schlüssel.
Die Schlüsselverwaltung behandelt den gesamten Schlüssellebenszyklus, wie in der folgenden Abbildung dargestellt:
Es gibt zwei spezifische Anforderungen an die Schlüsselverwaltung für die Kryptographie mit öffentlichen Schlüsseln.
Secrecy of private keys. Während des gesamten Schlüssellebenszyklus müssen geheime Schlüssel vor allen Parteien geheim bleiben, mit Ausnahme derjenigen, die Eigentümer sind und zur Verwendung berechtigt sind.
Assurance of public keys.In der Kryptographie mit öffentlichen Schlüsseln sind die öffentlichen Schlüssel offen und werden als öffentliche Daten angesehen. Standardmäßig kann nicht garantiert werden, ob ein öffentlicher Schlüssel korrekt ist, mit wem er verknüpft werden kann oder wofür er verwendet werden kann. Daher muss sich die Schlüsselverwaltung von öffentlichen Schlüsseln viel expliziter auf die Gewährleistung des Zwecks von öffentlichen Schlüsseln konzentrieren.
Die wichtigste Anforderung zur Gewährleistung des öffentlichen Schlüssels kann durch die Public-Key-Infrastruktur (PKI) erfüllt werden, ein Schlüsselverwaltungssystem zur Unterstützung der Kryptographie mit öffentlichem Schlüssel.
Public Key Infrastructure (PKI)
PKI bietet die Sicherheit des öffentlichen Schlüssels. Es ermöglicht die Identifizierung öffentlicher Schlüssel und deren Verteilung. Eine Anatomie der PKI umfasst die folgenden Komponenten.
- Public Key-Zertifikat, allgemein als "digitales Zertifikat" bezeichnet.
- Private Schlüssel-Token.
- Zertifizierungsstelle.
- Registrierungsstelle.
- Zertifikatverwaltungssystem.
Digitales Zertifikat
In Analogie kann ein Zertifikat als der der Person ausgestellte Personalausweis betrachtet werden. Menschen verwenden Ausweise wie Führerschein, Reisepass, um ihre Identität zu beweisen. Ein digitales Zertifikat macht das Gleiche in der elektronischen Welt, aber mit einem Unterschied.
Digitale Zertifikate werden nicht nur an Personen ausgestellt, sondern können auch an Computer, Softwarepakete oder alles andere ausgestellt werden, um die Identität in der elektronischen Welt nachzuweisen.
Digitale Zertifikate basieren auf dem ITU-Standard X.509, der ein Standardzertifikatformat für Public-Key-Zertifikate und die Validierung von Zertifizierungen definiert. Daher werden digitale Zertifikate manchmal auch als X.509-Zertifikate bezeichnet.
Der öffentliche Schlüssel zum Benutzerclient wird von der Zertifizierungsstelle (CA) zusammen mit anderen relevanten Informationen wie Clientinformationen, Ablaufdatum, Verwendung, Aussteller usw. in digitalen Zertifikaten gespeichert.
CA signiert diese gesamten Informationen digital und nimmt die digitale Signatur in das Zertifikat auf.
Jeder, der die Gewissheit über den öffentlichen Schlüssel und die zugehörigen Informationen des Clients benötigt, führt den Signaturvalidierungsprozess mit dem öffentlichen Schlüssel von CA durch. Durch eine erfolgreiche Validierung wird sichergestellt, dass der im Zertifikat angegebene öffentliche Schlüssel der Person gehört, deren Details im Zertifikat angegeben sind.
Der Prozess zum Erhalten eines digitalen Zertifikats durch eine Person / Organisation ist in der folgenden Abbildung dargestellt.
Wie in der Abbildung gezeigt, akzeptiert die Zertifizierungsstelle den Antrag eines Clients zur Zertifizierung seines öffentlichen Schlüssels. Die Zertifizierungsstelle stellt nach ordnungsgemäßer Überprüfung der Identität des Kunden ein digitales Zertifikat für diesen Kunden aus.
Zertifizierungsstelle (CA)
Wie oben erläutert, stellt die Zertifizierungsstelle einem Client ein Zertifikat aus und unterstützt andere Benutzer bei der Überprüfung des Zertifikats. Die Zertifizierungsstelle übernimmt die Verantwortung für die korrekte Identifizierung der Identität des Kunden, der die Ausstellung eines Zertifikats anfordert, und stellt sicher, dass die im Zertifikat enthaltenen Informationen korrekt sind, und signiert es digital.
Schlüsselfunktionen von CA.
Die Schlüsselfunktionen einer Zertifizierungsstelle sind wie folgt:
Generating key pairs - Die Zertifizierungsstelle kann unabhängig oder gemeinsam mit dem Client ein Schlüsselpaar generieren.
Issuing digital certificates- Die Zertifizierungsstelle kann als PKI-Äquivalent einer Passagentur angesehen werden. - Die Zertifizierungsstelle stellt ein Zertifikat aus, nachdem der Kunde die Anmeldeinformationen zur Bestätigung seiner Identität angegeben hat. Die Zertifizierungsstelle signiert dann das Zertifikat, um eine Änderung der im Zertifikat enthaltenen Details zu verhindern.
Publishing Certificates- Die Zertifizierungsstelle muss Zertifikate veröffentlichen, damit Benutzer sie finden können. Es gibt zwei Möglichkeiten, dies zu erreichen. Eine besteht darin, Zertifikate im Äquivalent eines elektronischen Telefonverzeichnisses zu veröffentlichen. Die andere Möglichkeit besteht darin, Ihr Zertifikat an diejenigen Personen zu senden, von denen Sie glauben, dass sie es auf die eine oder andere Weise benötigen.
Verifying Certificates - Die Zertifizierungsstelle stellt ihren öffentlichen Schlüssel in der Umgebung zur Verfügung, um die Überprüfung seiner Signatur auf dem digitalen Zertifikat des Kunden zu unterstützen.
Revocation of Certificates- Manchmal widerruft CA das aus einem bestimmten Grund ausgestellte Zertifikat, z. B. aufgrund einer Gefährdung des privaten Schlüssels durch den Benutzer oder eines Vertrauensverlusts in den Client. Nach dem Widerruf verwaltet die Zertifizierungsstelle die Liste aller widerrufenen Zertifikate, die der Umgebung zur Verfügung stehen.
Klassen von Zertifikaten
Es gibt vier typische Zertifikatsklassen -
Class 1 - Diese Zertifikate können einfach durch Angabe einer E-Mail-Adresse erworben werden.
Class 2 - Für diese Zertifikate müssen zusätzliche personenbezogene Daten angegeben werden.
Class 3 - Diese Zertifikate können nur erworben werden, nachdem die Identität des Antragstellers überprüft wurde.
Class 4 - Sie können von Regierungen und Finanzorganisationen verwendet werden, die ein hohes Maß an Vertrauen benötigen.
Registrierungsstelle (RA)
CA kann eine Drittregistrierungsbehörde (RA) verwenden, um die erforderlichen Überprüfungen bei der Person oder Firma durchzuführen, die das Zertifikat zur Bestätigung ihrer Identität anfordert. Die RA wird dem Client möglicherweise als Zertifizierungsstelle angezeigt, signiert jedoch das ausgestellte Zertifikat nicht.
Zertifikatsverwaltungssystem (CMS)
Es ist das Managementsystem, über das Zertifikate veröffentlicht, vorübergehend oder dauerhaft ausgesetzt, erneuert oder widerrufen werden. Zertifikatsverwaltungssysteme löschen normalerweise keine Zertifikate, da es möglicherweise aus rechtlichen Gründen erforderlich sein kann, ihren Status zu einem bestimmten Zeitpunkt nachzuweisen. Eine Zertifizierungsstelle führt zusammen mit der zugehörigen RA Zertifikatverwaltungssysteme aus, um ihre Verantwortlichkeiten und Verbindlichkeiten verfolgen zu können.
Private Schlüssel-Token
Während der öffentliche Schlüssel eines Clients im Zertifikat gespeichert ist, kann der zugehörige geheime private Schlüssel auf dem Computer des Schlüsselbesitzers gespeichert werden. Diese Methode wird im Allgemeinen nicht angewendet. Wenn ein Angreifer Zugriff auf den Computer erhält, kann er problemlos auf den privaten Schlüssel zugreifen. Aus diesem Grund wird ein privater Schlüssel auf einem sicheren Wechseldatenträger gespeichert, auf den der Zugriff durch ein Kennwort geschützt ist.
Verschiedene Anbieter verwenden häufig unterschiedliche und manchmal proprietäre Speicherformate zum Speichern von Schlüsseln. Entrust verwendet beispielsweise das proprietäre .epf-Format, während Verisign, GlobalSign und Baltimore das Standard-.p12-Format verwenden.
Hierarchie von CA.
Bei großen Netzwerken und Anforderungen der globalen Kommunikation ist es praktisch nicht möglich, nur eine vertrauenswürdige Zertifizierungsstelle zu haben, von der alle Benutzer ihre Zertifikate erhalten. Zweitens kann die Verfügbarkeit nur einer Zertifizierungsstelle zu Schwierigkeiten führen, wenn die Zertifizierungsstelle gefährdet ist.
In diesem Fall ist das hierarchische Zertifizierungsmodell von Interesse, da es die Verwendung von Public-Key-Zertifikaten in Umgebungen ermöglicht, in denen zwei kommunizierende Parteien keine Vertrauensbeziehungen zu derselben Zertifizierungsstelle haben.
Die Stammzertifizierungsstelle befindet sich oben in der CA-Hierarchie, und das Zertifikat der Stammzertifizierungsstelle ist ein selbstsigniertes Zertifikat.
Die Zertifizierungsstellen, die der Stammzertifizierungsstelle direkt untergeordnet sind (z. B. CA1 und CA2), verfügen über Zertifizierungsstellenzertifikate, die von der Stammzertifizierungsstelle signiert sind.
Bei den Zertifizierungsstellen unter den untergeordneten Zertifizierungsstellen in der Hierarchie (z. B. CA5 und CA6) werden die Zertifizierungsstellenzertifikate von den übergeordneten untergeordneten Zertifizierungsstellen signiert.
Hierarchien der Zertifizierungsstelle (CA) werden in Zertifikatketten angezeigt. Eine Zertifikatskette verfolgt einen Pfad von Zertifikaten von einem Zweig in der Hierarchie zum Stamm der Hierarchie.
Die folgende Abbildung zeigt eine CA-Hierarchie mit einer Zertifikatkette, die von einem Entitätszertifikat über zwei untergeordnete CA-Zertifikate (CA6 und CA3) zum CA-Zertifikat für die Stammzertifizierungsstelle führt.
Durch das Überprüfen einer Zertifikatkette wird sichergestellt, dass eine bestimmte Zertifikatkette gültig, korrekt signiert und vertrauenswürdig ist. Das folgende Verfahren überprüft eine Zertifikatkette, beginnend mit dem Zertifikat, das zur Authentifizierung vorgelegt wird:
Ein Client, dessen Authentizität überprüft wird, liefert sein Zertifikat im Allgemeinen zusammen mit der Zertifikatskette bis zur Stammzertifizierungsstelle.
Der Prüfer nimmt das Zertifikat und validiert es mit dem öffentlichen Schlüssel des Ausstellers. Der öffentliche Schlüssel des Ausstellers befindet sich im Zertifikat des Ausstellers, das sich in der Kette neben dem Zertifikat des Kunden befindet.
Wenn der Prüfer der höheren Zertifizierungsstelle, die das Zertifikat des Ausstellers signiert hat, vertraut, ist die Überprüfung erfolgreich und wird hier beendet.
Andernfalls wird das Zertifikat des Ausstellers auf ähnliche Weise wie für den Kunden in den obigen Schritten überprüft. Dieser Vorgang wird fortgesetzt, bis entweder eine vertrauenswürdige Zertifizierungsstelle dazwischen gefunden wird, oder bis die Stammzertifizierungsstelle fortgesetzt wird.
Heutzutage sind die Netzwerke global geworden und Informationen haben die digitale Form von Bits und Bytes angenommen. Kritische Informationen werden jetzt in digitaler Form auf Computersystemen und offenen Kommunikationskanälen gespeichert, verarbeitet und übertragen.
Da Informationen eine so wichtige Rolle spielen, zielen Gegner auf die Computersysteme und öffnen Kommunikationskanäle, um entweder die vertraulichen Informationen zu stehlen oder das kritische Informationssystem zu stören.
Die moderne Kryptographie bietet eine Reihe robuster Techniken, um sicherzustellen, dass die böswilligen Absichten des Gegners vereitelt werden und die legitimen Benutzer Zugang zu Informationen erhalten. Hier in diesem Kapitel werden wir die Vorteile der Kryptographie, ihre Einschränkungen sowie die Zukunft der Kryptographie diskutieren.
Kryptographie - Vorteile
Kryptographie ist ein wesentliches Werkzeug für die Informationssicherheit. Es bietet die vier grundlegendsten Dienste der Informationssicherheit -
Confidentiality - Die Verschlüsselungstechnik kann die Informationen und die Kommunikation vor unbefugter Offenlegung und Zugriff auf Informationen schützen.
Authentication - Die kryptografischen Techniken wie MAC und digitale Signaturen können Informationen vor Spoofing und Fälschungen schützen.
Data Integrity - Die kryptografischen Hash-Funktionen spielen eine wichtige Rolle, um die Benutzer über die Datenintegrität zu informieren.
Non-repudiation - Die digitale Signatur bietet den Nicht-Ablehnungsdienst, um sich vor Streitigkeiten zu schützen, die durch die Verweigerung der Weitergabe von Nachrichten durch den Absender entstehen können.
All diese grundlegenden Dienste, die die Kryptographie bietet, haben die Geschäftsabwicklung über die Netzwerke unter Verwendung der Computersysteme auf äußerst effiziente und effektive Weise ermöglicht.
Kryptographie - Nachteile
Neben den vier grundlegenden Elementen der Informationssicherheit gibt es weitere Probleme, die sich auf die effektive Nutzung von Informationen auswirken:
Eine stark verschlüsselte, authentische und digital signierte Information kann sein difficult to access even for a legitimate userzu einem entscheidenden Zeitpunkt der Entscheidungsfindung. Das Netzwerk oder das Computersystem kann von einem Eindringling angegriffen und funktionsunfähig gemacht werden.
High availability,Einer der grundlegenden Aspekte der Informationssicherheit kann durch die Verwendung von Kryptografie nicht gewährleistet werden. Andere Methoden sind erforderlich, um sich vor Bedrohungen wie Denial-of-Service oder einem vollständigen Ausfall des Informationssystems zu schützen.
Ein weiteres Grundbedürfnis der Informationssicherheit von selective access controlkann auch nicht durch die Verwendung von Kryptographie realisiert werden. Administrative Kontrollen und Verfahren müssen dafür ausgeübt werden.
Kryptographie schützt nicht vor den Schwachstellen und threats that emerge from the poor design of systems,Protokolle und Verfahren. Diese müssen durch ordnungsgemäße Planung und Einrichtung einer Verteidigungsinfrastruktur behoben werden.
Kryptographie ist kostenpflichtig. Die Kosten sind in Bezug auf Zeit und Geld -
Das Hinzufügen von kryptografischen Techniken in der Informationsverarbeitung führt zu Verzögerungen.
Die Verwendung der Kryptografie mit öffentlichen Schlüsseln erfordert die Einrichtung und Wartung einer Infrastruktur mit öffentlichen Schlüsseln, für die ein ansehnliches Finanzbudget erforderlich ist.
Die Sicherheit der kryptografischen Technik basiert auf der Rechenschwierigkeit mathematischer Probleme. Jeder Durchbruch bei der Lösung solcher mathematischen Probleme oder der Erhöhung der Rechenleistung kann eine kryptografische Technik anfällig machen.
Zukunft der Kryptographie
Elliptic Curve Cryptography(ECC) wurde bereits erfunden, aber seine Vor- und Nachteile sind noch nicht vollständig verstanden. Mit ECC können Ver- und Entschlüsselungen in drastisch kürzerer Zeit durchgeführt werden, sodass eine höhere Datenmenge mit gleicher Sicherheit übertragen werden kann. Wie andere Verschlüsselungsmethoden muss auch ECC getestet und als sicher erwiesen werden, bevor es für den staatlichen, kommerziellen und privaten Gebrauch zugelassen wird.
Quantum computationist das neue Phänomen. Während moderne Computer Daten in einem Binärformat speichern, das als "Bit" bezeichnet wird und in dem eine "1" oder eine "0" gespeichert werden kann; Ein Quantencomputer speichert Daten unter Verwendung einer Quantenüberlagerung mehrerer Zustände. Diese mehrwertigen Zustände werden in "Quantenbits" oder "Qubits" gespeichert. Dadurch kann die Berechnung von Zahlen um mehrere Größenordnungen schneller erfolgen als bei herkömmlichen Transistorprozessoren.
Um die Leistung eines Quantencomputers zu verstehen, betrachten Sie RSA-640, eine Zahl mit 193 Ziffern, die von achtzig 2,2-GHz-Computern über einen Zeitraum von 5 Monaten berücksichtigt werden kann. Ein Quantencomputer würde weniger als 17 Sekunden in Betracht ziehen. Zahlen, deren Berechnung normalerweise Milliarden von Jahren in Anspruch nimmt, können mit einem voll entwickelten Quantencomputer nur wenige Stunden oder sogar Minuten dauern.
Angesichts dieser Tatsachen muss die moderne Kryptographie nach rechenintensiveren Problemen suchen oder völlig neue Techniken zur Archivierung der Ziele entwickeln, denen die moderne Kryptographie gegenwärtig dient.