Kryptologie ("Lehre vom Verborgenen") besteht aus Kryptographie und Kryptoanalyse. Kryptographie beschäftigt sich mit der Konstruktion von Chiffren ("Verbergendes Schreiben"), Kryptoanalyse mit dem Brechen von Chiffren ("Untersuchung des Verborgenen"). Der Sprachgebrauch ist uneinheitlich. Die Begriffe "Code" und "Chiffre", und ebenso "Codierung/Verschlüsselung" und "Chiffrierung", sowie "Rückumwandlung" und "Dechiffrierung" werden oft nebeneinander (überdeckend) verwendet.
Datensicherheit ist ein komplexes Themenfeld, das alle modernen Lebensbereiche und die IT betrifft. Hierzu gehören Kommunikationsdaten und technologische Daten wie z.B. bei Unternehmen, Militär, weltweite Transaktionen, Wissenschaft, industrielle Forschung, Flugverbindungen, Geldströme, Infrastruktur, usw. Das unbemerkte Angreifen und Abgreifen von privaten Daten und von kritischer Firmendaten erfolgt meist unbemerkt. Das Sammeln aller Personendaten führt zu unermeßlichem Datenmengen ( Clouds fürs "Datengold" ). Verschlüsselungstechnologien kennen keinen Entwicklungsstillstand. Es gibt kein felerfreies Programm. Die Komplexität zum auffinden und beseitigen von Fehlern wächst. Gefährdungen können grenzenlos sein. Eine vollkommene Schwachstellenanalysen ist unmöglich.
Kryptographie versucht zu verhindern, daß Unberechtigte keine Einblicke in geheime Informationen erlangen können Für Außenstehende, die in den Besitz der verschlüsselten Nachrichten kommen, soll ein entschlüsseln der Nachricht "unmöglich" sein.
Ein System ist in gewisser Weise "sicher", wenn die Kosten eines Angriffs erheblich den erzielbaren Nutzen übersteigen, d.h. wenn ein Angreifer in die "Kosten-Sack-Gasse" läuft.
Beispiele sind: Militärische Strategien und Aktionen, Terroristen, interne Geheimnisse bei Regierungen, Konzernen, Parteien, Firmen, private Personen, usw. Telefonkarten, Handys, Fernbedienungen, Geldautomaten, Geldverkehr zwischen Banken, Electronic cash, Online-Banking, Sichere E-Mail, Satellitenfernsehen, PayTV, Wegfahrsperre im Auto, Digital Rights Management (DRM), usw.
Es gibt zahlreiche legitime Gründe für die Verwendung eines Kryptosystems ( Softwar, Hardware ). Warum sollen Informationen lediglich bestimmten Personen zugänglich sein und anderen verborgen bleiben? Warum werden Daten verschlüsselt? Einige Beispiele:
Wie unterscheiden sich symmetrische und asymmetrische Verschlüsselungen? Warum brauchen asymmetrische Verschlüsselungen einen öffentlicher und einen privaten Schlüssel?
Symmetrische Verschlüsselung3n sind einfach und effizient und beruhen darauf, dass Absender und Empfänger einer Geheimbotschaft den gleichen Schlüssel verwenden. Jeder, der über diesen Schlüssel verfügt, kann daher die Nachricht entschlüsseln - auch dann, wenn er/sie diese Nachricht nicht lesen dürfte.
Asymmetrische Verschlüsselungen sind übersichtlich und aufwändig, brauchen mehr Rechenleistung. Asymmetrische Verschlüsselung beseitigt das Problem der Verteilung geheimer Schlüssel. Allerdings benötigen asymmetrische Verschlüsselungsverfahren für Verschlüsselung und Entschlüsselung der übertragenen Daten bei weitem mehr Rechenleistung als symmetrische Verfahren. Vielfach werden in der Praxis asymmetrische Verfahren lediglich nur zur Verteilung geheimer symmetrischer Schlüssel verwendet ( Problem einer manipulationssicheren Verteilung von öffentlichen Schlüsseln bleibt ). PKI und Digitale Signatur ( Schlüssel mit Fingerabdruck ): Mit einer Public Key Infrastruktur und Digitalen Signaturen soll sichergestellt werden, dass Nachrichten zwischen den richtigen Sendern und Empfängern ausgetauscht und auf dem Weg nicht manipuliert werden.
Heute ( 2013 ) sind Vertraulichkeit, Integrität und Verfügbarkeit unscharfe, hinterfragungswürdige und doch auch wichtige Begriffe.
Der Zugriffsschutz (Login) umfasst die System-Zugangskontrolle (Zugriffsrechte, Zugriffsprofile, Passwort, Kennwort). Ein Passwort ist ein meist acht- oder mehrstelliges Wort, mit dem man gegenüber einem Rechnersystem seine Identität ( Identity ) nachweist. Auch das Dateisystem erlaubt es, eine Datei mit einem Passwort zur Überprüfung der Identität des berechtigten Nutzers zu versehen (Rechte für Lesen, Schreiben, Ausführen). Ein hirarchisches Schutzschema hat unabhängige und sich ergänzende Ebenen:
Wesentlich für ein Verschlüsselungsverfahren ist die erzielte Sicherheit gegenüber einer unberechtigten Einsicht.
Es geht um die Begriffe Identität, Vertraulichkeit, Authentifizierung, Integrität, Verbindlichkeit, Geheim, Vertraulich, Intern, Öffentlich, Confidentiality, Authentication, Integrity.
Schützenswerte Daten können verschlüsselt werden
Welche Vorgänge können kritisch sein? Wer/was kann gefährdet sein?
Was ist "Sicherheit"? Sicherheit ist ein fasettenreicher Begriff. Sicherheit umfaßt z.B. Technische Aspekte, Sicherheitstechniken, Angriffssicherheit, Betriebssicherheit, Systemsicherheit, und auch individuelle/zwischenmenschliche/kollektive/wirtschaftliche Sicherheiten.
Besonders gefährdete "Kontext-Bereiche" sind: Endpoint Security, Remote Management, File Security, Mail Security, Gateway Security, SharePoint Security, Secure Authentication, Data Encryption, Disaster Recovery und Mobile Security.
Authentifizierung möchte das "von wem" zusichern. Integrität möchte die "Unveränderbarkeit" zusichern. Verbindlichkeit möchte die "Unabstreitbarkeit" zusichern. Vertraulichkeit möchte das "unbefugte Verbreiten von Geheimen" verhindern.
Wer ist die "verbürgende Vertrauensautorität" ( propritär?, staatlich?, ... ) ? Zertifizierungsstellen und Zertifikate ( engl. CA = Certification Authority, siehe z.B. Windows Zertifikate: Start certmgr.msc ). Zertifizierung und Stichworte, wie Gütesiegel‚ Gütezeichen oder Qualitätssiegel, Prüfzeichen oder Prüfsiegel. Siehe z.B. Prüfsiegel . Es wird unterschieden zwischen User-zentrierten und Server-zentrierten Authorisierungen (user-consent, server-centric, user-to-user, server-to-server). zation and authentication flows. Zur Verbesserung der Informationssicherheit kann eine internationale Zertifizierung von Informationssystemen beitragen. Ein "sichers System" möchte die interne/externe Integrität und Konsistenz bewahren und unzulässige System-Modifikationen durch autorisierte/unautorisierte Anwender verhindern. Oft werden die folgenden Zustände unterschieden:
Geheim Vertraulich
↑ nicht nach oben schreiben ↓ nicht nach unten lesen
Intern Öffentlich
Die Sicherheit von verschlüsselten Informationen hängt von zahlreichen Faktoren ab, wie z.B. der "Stärke der Paßwortes".
Was meint der Begriff Identität? Was ist ein Identitätsdiebstahl? In der Logik bezeichnet Identität das Prinzip der Ununterscheidbarkeit. In der Mathematik gibt die "Identische Abbildung" genau die Argumente zurück. Im Alltag bezeichnet Identität ausgewählte Eigenschaften und Eigentümlichkeiten, die die Identität mit Hilfe von Attributen festlegen sollen. Zu jedem Menschen gehört eine ( biologische Identität . Siehe aus de.wikipedia: Genom und Genetischer Code .
Bei einer vertrauenswürdigen Kommunikation ( z.B. Bankgeschäfte ) ist es heute ( 2015 ) ein vorrangiges Anliegen, die Kommunikationsdaten und die persönlichen Daten vor "Auskundschaftung und unbefugten Bespitzelungen" zu schützen und natürlich auch die handelnde Person ( Bankgeschäfte ) "hinreichend exakt" zu identifizieren.
Wie können Authentifizierung ( möchte das "von wem" zusichern ), Integrität ( möchte die "Unveränderbarkeit" zusichern ), Verbindlichkeit ( möchte die "Unabstreitbarkeit" zusichern ) und die Vertraulichkeit ( möchte das "unbefugte Verbreiten von Geheimen" verhindern) gewährleistet werden?
Eine Authentifizierung (griechisch echt) ist ein Nachweis einer Behauptung ( Verifizierung, Zugangskontrolle, Zugriffsrecht ). Die FIDO-Allianz ( fidoalliance.org ) hat überwiegend multinationale Unternehmen und unterliegt keiner Geheimhaltung, wie die die Industrie-Initiative OATH ( Open Authentication ).
FIDO ( Fast IDentity Online ) macht U2f ( Universal Second Factor, universeller zweiter Faktor ). Die Zwei-Faktor-Authentifikation nutzt z.B. für eine Transaktion die Kombination von Bankkarte und PIN. Bei einer Anfrage an den Server verschlüsselt der FIDO-Authenticator mit dem privaten Schlüssel und antwortet mit dem erzielten Ergebnis die Anfrage. Der Server benutzt dann den hinterlegten öffentlichen Schlüssels für die Benutzer-Identifizierung. Für die Authentifizierung wird eine Kombination von "Geheimnissen" verwendet:
Individuelle Fingerabdrücke identifizieren Individuen.
Das Wort "Fingerabdruck" wird auch im übertragenen Sinne
metaphorisch und/oder als
Akronym
verwendet.
Beipiele:
Barcode for Digital Music,
Audio Identifikationen und Sprachanalyse,
individuelle Parameter aus der räumlich-farbigen Spektralverteilung bei zertifizierten
Iris-Scannern,
Automatic Iris Capturing,
individuelle Augenbewegungsmuster,
Gesichteserkennung,
Fingerabdruckscanner
,
genetischer Fingerabdruck per DNA-Sequenzen,
identifizierende Muster von
Geräte-Einstellungen und
Geräte-Fähigeiten und
Geräte-Nutzungs-Spektren,
individuelle Browser- und Software-Einstellungen,
Nutzungsmuster der
TCP/UDP-Ports
,
Umfang der aktivierten MIME-Typen,
individuelle Nutzungsgewohnheiten,
digitale Signaturkollektionen für Metadaten + Inhalt + Gerät + User + RFID+Sensornetze,
Big-Data-Cloud Klassifikationsverfahren und Musteranalysen,
individuelle "Face Recognition" in verfügbaren Bilduploads,
usw.
).
Was gehört wird besteht aus vielfältigen Audio-Spektren. Was gesprochen wird besteht aus Metadaten ( Ort, Zeit ) und vielfältigen Audio-Spektren. Was gesehen wird hat speicherbare Unterscheidungsmerkmale und Muster. Was abgebildet wird besteht aus Metadaten (Ort, Zeit) und geometrischen Formen und Farbmustern. Chronologisches Tun hat typische, individuelle Gewohnheitsmuster. Was "begriffen" wird hinterlässt "individuelle Eigenheiten" bei Lehrgängen, Schulungen, Gesprächen. Fingerabdrücke sind überall hinterlegt/gespeichert.
Wer kann heute als faire, unabhängige Vertauensinstanz wirken, und ein humanes Bildungniveau und hinreichendes Bürgervertrauen befördern, wenn stets auf andere verwiesen wird, deren vielfältigen Fingerabdrücke sammeln und als "Sündenböcke" alle eignen Unzulänglichkeiten begehen? Welches Bildungniveau wird ein Staatssystem für seine Bürger anstreben, wenn die eigene Bevölkerung als bedingt ausgepähungswürdig behandelt werden muss? Welchen Ausspähungsgrad sollte dann für andere gelten?
Datenschutz hat viele Fasetten. Einige Fragen zum Datenschutz:
Eine Digitale Rechteverwaltung ( DRM, Digital Rights Management ) möchten den Schutz an Verwertungsrechten bei Bild-, Ton- oder Videoaufnahmen gewährleisten und dazu beitragen, rechtliche Ansprüche durchzusetzen. Oft möchte DRM eine "grobe Pauschalvergütungen feiner Granulieren" nach Häufigkeit, Dauer, Umfang und die User-Nutzungen individuell abrechnen.
DRM kann als eine "Digitale Beschränkungsverwaltung" oder ein "Digitales Rechtemanagement" gesehen werden. DRMS nutzt zur Kontrolle der User eingebaute technische ( Hardware- ) Lösungen, die mit einem "garantierten Eigen-Zugang" die Nutzung von Distributionen kontrollieren und Abrechnung und Verwaltung von digitalem und physischem Content ermöglichen möchte.
Die Kryptologie kommt aus dem Griechischen und behandelte die Lehre von den Geheimschriften und deren Gebrauch. Kryptologie entspricht einer Datenverschlüsselung. Daten werden in eine scheinbar sinnlose Anordnung oder Folge von Informationen umgeformt und dadurch ein unberechtigtes Lesen der Daten "verhindert". Die Kryptologie behandelt Methoden zum Ver- und Entschlüsselung von Informationen. Eine Verschlüsselung (ebenso Entschlüsselung) entspricht einer geeigneten Codierung.
Die Buchstaben eines Alphabets werden bei einer konkreten Verwendung (sprach- und kulturabhängig) unterschiedlich häufig eingesetzt. Auch zu Buchstaben-Paaren (Bigramme) gehören zugeordnete Häufigkeiten. Ähnliches gilt für Code-Tabellen (wie z.B. ASCI, ISO-7-Bit, UTF-8, usw.).
Heute behandelt die Kryptologie Verfahren zum Verschlüsseln (injektive Abbildung, Chiffren) von Daten mit dem Ziel, diese (geheimen) Daten der unberechtigten Nutzung zu entziehen. Unbefugte können diese Daten besitzen aber nicht entschlüsseln. Die Daten sind durch Verschlüsselungsverfahren nur den Personen zugänglich, die den entsprechenden Schlüsselcode besitzen. Der Klartext wird verschlüsselt (Hardware/Software). Die Rückgewinnung benötigt
Anders als in dem Beispiel aus der ägyptischen Mythologie wird heute ( 2015 ) bei "Big-Date-Monopolisierungsbestrebungen" auch versucht, das "universellste-super-stärkste Ver-/Ent-Schlüsselungsverfahren anzupreisen und "für alle kostenfrei-günstig" anzubieten und systematisch einzusetzen. Also: Was ist anders, wenn vorrangig in Folgen, Abfolgen und Zusammenhängen gedacht wird? Hier beispielhaft ein grober Versuch mit Literatur und Häufigkeiten ... Welcher "digitale Fingerabdruck" gehört zu einer Literaurstelle, zu einem Autor, zu einer Sprachkultur?
Das "geheime Schreiben mit Licht" ( Geheimtinte ) bzw. elektromagnetischen Wellen ( Telegrafie, Nachrichtentechnik ) wird auch als Stenographia/Cryptologia bezeichnet. Die verborgene Übermittlung und Speicherung von Informationen in Bildern oder anderen Trägern wird als Steganographie ( de.wikipedia ) bezeichnet. Es wird unter anderem als Form der Steganographie verwendet. Die Verschlüsselung von Nachrichten durch Einbettung in eine andere Darstellungsform entspricht etwa dem "systematisch-intelligenten Verstecken von wenigen Sandkörnern am Urlaubsstrand". Beispiel Machine Identification Code ( de.wikipedia ).
Weblinks: Siehe z.B. de.wikipedia: Computergestützte Steganographie , en.wikipedia OpenPuff , hierher gehören auch Möglichkeiten von Plagiatsfallen , Westerlinck-Code (Schutzmaßnahme gegen Copy&Paste-Plagiieren) und Digitale Wasserzeichen .
In der Kryptographie werden unterschiedliche Bezeichner für das Gleiche verwendet:
Synonyma | |||
---|---|---|---|
Verschlüsselungsfunktion f | Entschlüsselungsfunktion g | ||
Chiffrierfunktion encryption function |
Dechiffrierfunktion decryption function |
||
KT = Klartext | GT = Geheimtext | S = Schlüssel | H = Horcher |
Urtext Botschaft Nachricht clear text |
Bildtext Schlüsseltext Kryptogramm Chiffrat cipher text |
Schlüsselwort key |
Krytoanalyst Kryto-Analytiker crytoanalyst |
Ist A das Alphabet für den Klartext und B das Alphabet für den Geheimtext und S die Schlüsselmenge S, so gilt die vereinfachte Darstellung:
f: S x A* --> B*
GT = f(KT, S) |
Unsichere Übertragung |
g: S x B* --> A*
KT = g(GT, S) = g(f(KT, S), S) |
||
---|---|---|---|---|
f ist eine bijektive Funktion | g ist die Umkehrfunktion zu f | |||
A kann gleich B sein |
In der Kryptologie werden Codes f untersucht
f := { f | x aus X, y aus Y, y := f(x) }
die zusätzlichen Kriterien genügen:
Ist x eine unverschlüsselte Nachricht (Klartext), y die verschlüsselte Nachricht und s der Schlüssel, so bezeichnet
Vs die Verschlüsselungsfunktion, d.h. y = Vs(x)
Es die Entschlüsselungsfunktion, d.h. x = Es(y) = Es(Vs (x)).
Ein Kryptosystem KS ist ein Tripel KS := { X, Y, S }, wobei x aus X, y aus Y und s aus S ist. Zu jedem s gibt es eine Verschlüsselungsfunktion Vs und eine Entschlüsselungsfunktion Es. Ein gutes Kryptosystem erfüllt die folgenden Bedingungen:
Es werden zwei Arten von Verschlüsselungsprinzipien unterschieden bei symmetrischen Verschlüsselungsverfahren kennt der Empfänger den Schlüssel und macht damit die Chiffrierung des Senders rückgängig. Bei asymmetrischen Verschlüsselungsverfahren gibt es zwei Schlüssel: einen zum Chiffrieren, einen zum Dechiffrieren. Die Schlüssel entstehen durch Multiplikation zweier sehr großer Primzahlen.
Eine bijektive Abbildung einer endlichen Menge M auf sich wird Permutation genannt. zu jedem x aus M gehört genau ein Bild (bijektiv meint eindeutig auf).
Beispiel: 23 soll in die Fakultätsbasis zerlegt werden, d.h. In 23 = k3.3! + k2*2! + k1*1! + k0*0! sind die Zahlen [k4,k3,k2,k1,k0] gesucht.
23/1 = 23, Rest=0 23/2 = 11, Rest=1 11/3 = 3, Rest=2 3/4= 0, Rest=3 0/5=0, Rest=0
Die Zerlegung ergibt den Restvektor V = [k3,k2,k1,k0] = [3,2,1,0] d.h. 23 = 3.3! + 2*2! + 1*1! + 0*0!
Die Rotation ist eine spezielle Permutation.
Die Menge N ={0,1,2,3,4,5,6,...} und
die Menge N x N = {[i,j]: i,j, aus N }
haben gleich viele Elemente, woraus gefolgert werden kann,
dass es nur abzählbar-unendlich viele Funktionen gibt.
Z.B. ist für die Elemente der "graue hinterlegten Diagonalen"
i+j = 4
.
Die Zahl d(i,j) bei [i,j] auf der Diagonalen ist
d(i,j) := j + (i+j)(i+j+1)/2;
.
j=0 | 1 | 2 | 3 | 4 | 5 | 6 | |
---|---|---|---|---|---|---|---|
i=0 |
0 [0,0] |
2 [0,1] |
5 [0,2] |
9 [0,3] |
14 [0,4] |
20 [0,5] |
27 [0,6] |
1 |
1 [1,0] |
4 [1,1] |
8 [1,2] |
13 [1,3] |
19 [1,4] |
26 [1,5] |
... |
2 |
3 [1,0] |
7 [2,1] |
12 [2,2] |
18 [2,3] |
25 [2,4] |
... | ... |
3 |
6 [3,0] |
11 [3,1] |
17 [3,2] |
24 [3,3] |
... | ... | ... |
4 |
10 [4,0] |
16 [4,1] |
23 [4,2] |
... | ... | ... | ... |
5 |
15 [5,0] |
22 [4,1] |
... | ... | ... | ... | ... |
6 |
21 [6,0] |
... | ... | ... | ... | ... | ... |
Aus [i,j] ergibt sich |
d(i,j) := j + (i+j)(i+j+1)/2; |
||||||
Aus der Zahl d auf der Diagonalen ergeben sich i und j: |
k := floor(sqrt(2*d+0.25)-0.5); j := d - k*(k+1)/2; i := k - j; |
Wenn jeder Buchstabe des Alphabets stets zu demselben Geheimtextzeichen verschlüsselt wird, so heißt ein solches Verschlüsselungverfahren monoalphabetisch. Versuche mit Hilfe statistischer Analyse den folgenden deutschen Text ( Zum "Knacken einer monoalphabetischen Verschlüsselung wird die Häufigkeitsanalyse eingesetzt. Für deutsche Texte gelten die folgenden Häufigkeiten der Buchstaben (in Prozent)
e n i s r a t d h u l g m o b w f k z ... 17.7 9.8 7.6 7.3 7.0 6.5 6.2 5.1 4.8 4.4 3.4 3.0 2.5 2.5 1.9 1.9 1.7 1.2 1.1 <0.01
Die Kryptologie behandelt Methoden zum Ver- und Entschlüsselung von Informationen. Es gibt die Verfahren der Transposition oder/und der Substitution.
Eine Transposition T[i,j] ist eine Permutation, bei der nur an 2 Stellen die Bilder vertauscht werden. Sind i und j diese Stellen (und i verschieden von j), so gilt z.B.
T[1,5](1,2,3,4,5) = (5,2,3,4,1) T[2,4](5,2,3,4,1) = (5,4,3,2,1)
Eine Komposition (=Hintereinanderausführung=Verkettung=Verknüpfung=Zusammensetzung). Die Inversen machen die Verkettungen rücklgängig.
f macht aus: 1 2 3 dies: 3 1 2 g macht aus: 1 2 3 dies: 2 3 1 f(g) macht dann aus: 1 2 3 dies: 1 2 3
Bereits Cäsar benutzte das folgende (einfache) Verfahren mit einem Buchstabenversatz s. Die 26 Buchstaben des Alphabets werden in einem Kreis angeordnen. Zur Verschlüsselung wird jeder Buchstabe z.B. um den Versatz s = 5 Stellen im Alphabet im Uhrzeigersinn verschoben. Der Schlüssel entspricht hier die Anweisung, wie die Buchstaben verschoben werden. Diese sog. Cäsar-Verschlüsselung ist sehr unsicher, weil aus der Häufigkeitsverteilung der Buchstaben die dahinter steckende Zuordnung erschlossen werden kann.
Gegeben sei ein geordnete Menge von 26 Buchstaben X:={ a, b, c, ..., z }, die durch S:={0, 1, 2, ...,25 } auf Y abgebildet werden, indem s den zyklischen Versatz (mod 26) angibt. Zu s gehört die Entschlüsselungszahl (26-s).
Codierung (Verschlüsselung):
y[i] = x[(i + s) mod 26] liefert V5("WALTERBACHMANN") = "txiqboyxzejxkk"
Decodierung (Entschlüsselung):
x[i] = y[(i - s) mod 26] liefert E5("txiqboyxzejxkk") = "WALTERBACHMANN",
Bei einfachen Stubstitutions-chiffren wird jeder Buchstabe durch einen zugeordnetes Zeichen ersetzt. Die Buchstaben werden in ihrer normalen Reihenfolge belassen. Worttrennungen (blanks) bleiben meistens erhalten.
Kryptologie mit zyklisch rotierten Ersatz-Buchstaben | |||||||||||||||||||||||||
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
x | y | z | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w |
Beispiel mit Klartext: W A L T E R B A C H M A N N |
|||||||||||||||||||||||||
Verschlüsselter Geheimtext: t x i q b o y x z e j x k k |
Das Cäsar-verfahren kann einfach programmiert werden.
Das folgende Beispiel zeigt auch, wie mit ECMAScript der 2. Parameter von .replace()
,
der normalerweise ein ersetzender String ist, auch eine Funktion sein kann, die die "geklammerten Werte"
des regulären Ausdruckes übergibt.
Der 2. Parameter von .replace()
kann eine Funktion ( hier caesar_rotation ) sein, die die "geklammerten"
Werte des regulären Ausdruckes übergibt.
function func(s0, s1, s2) { var s=""; s += "<br />s0=" + s0 s += "<br />s1=" + s1 s += "<br />s2=" + s2; document.write(s) } var str = "abc-ABC-123-UVW"; str.replace(/([a-z]+).*?(\d+)/g, func);
function caesar_rotation(str) { var key = get_string_from_key(); var v = parseInt(key); if (!v) {v = 1; set_string_to_key(v); } var n, nA=65, nZ=90, na=97, nz=122; var d = str.charCodeAt(0) n = d + v; if((nA <= d)&&(d <= nZ)){ // A=65..Z=90 if (n > nZ) {n = (nA - 1) + (n - nZ);} } if((na <= d)&&(d <= nz)) {//a=97..z=122 if(n > nz) {n = (na-1) + (n-nz);} } return String.fromCharCode(n); } function caesar_chiffrierung() { var str = get_string_from_src(); dst = str.replace(/[A-Z,a-z]/g, caesar_rotation); set_string_to_dst(dst); }
Die Häufigkeiten bleiben erhalten. Z.B. kommt der Buchstabe A und auch x jeweils 3 mal vor. Diese Chiffren erkennt man an den normalen Buchstabenhäufungen. Sie werden mit Hilfe der Häufigkeitsanalyse und durch das Feststellen der Merkmale von bestimmten Buchstabengruppen, wie z.B. folgend, gelöst:
Das "Knacken" ist einfach, weil Buchstaben-Kombinationen wie z.B. "QJ" praktisch nicht in einem natürlichen Text erscheinen, während ander Folgen, wie z.B. "ER" häufig sind. Bei diesem Verfahren bleiben die Buchstaben-Häufigkeiten erhalten.
Anstelle der Buchstaben-Buchstaben-Codierung kann auch eine Buchstaben-Zahl-Codierung verwendet werden. Weil auch hier die Zeichen-Häufigkeiten erhalten bleiben, ist auch das folgenden einfachen Ersatz-Verfahren leicht zu entschlüsseln.
Kryptologie mit Ersatz-Ziffern | |||||||||||||||||||||||||
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
Beispiel mit Klartext: W A L T E R B A C H M A N N |
|||||||||||||||||||||||||
Verschlüsselter Geheimtext: 22 0 11 19 4 17 1 0 2 7 12 0 13 13 |
Die Häufigkeiten bleiben erhalten. Z.B. kommt der Buchstabe A und auch die Zahl 0 jeweils 3 mal vor. Günstiger ist es, eine Schlüssel-Zuordnungstabelle zu verwenden, wie z.B. S:={ 2, 1, 0, 2, 1, 0, ..., 2, 1 }. Dieses Verfahren ist sicher, wenn die Schlüssel-Tabelle ebenso lang ist wie der Klartext.
Bei binären Daten kann jedes Byte ein XOR mit einem Schlüssel (z.B. bin 0010 1011) durchgeführt werden. Für das Ver- und Entschlüsseln kann das gleiche, schnelle XOR-Verfahren benutzt werden. Schlüssel-Byte = (hex) 2b = (bin) 0010 1011
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Beispiel: ======== WALTER BACHMANN |jg1ny2ijhcfjee |
Dieses Verfahren kann verbessert werden, indem der Byte-Source-Strom nicht mit einem einzigen Byte, sondern mit einem binären Schlüssel aus z.B. 16 Byte XOR-gefaltet wird. Die Buchstaben-Häufigkeiten ändern sich. Ist src der zu verschlüsselnde Text (ASCII) und key die Schlüssel-Zeichenkette (ASCII), so kann key zyklisch wiederholt auf src gelegt werden und die jeweils aufeinander fallenden Zeichen xor-verknüft werden und ergeben den String enc.
//Pseudo-Code: var enc = "", len = key.length; for (i = 0; i < src.length; i++) { ch = src.charCodeAt(i); enc += String.fromCharCode( ch^(i%len) ); } |
Beispiel: Quelltext src = "Walter Bachmann" Sclüssel key = "abc" Ausgabe enc = "Oytl}j8Zy{puyvv" |
Gegeben sei ein geordnete Menge von 26 Buchstaben X:={ A, B, C, ..., Z }, die durch die zugeordnete Tabelle Y:={ w,c,d,e,f,g,x,y,z,a,b,r,s,t,p,q,u,v,h,i,j,m,n,o,k,l } auf Y abgebildet werden.
Kryptologie mit Ersatz-Buchstaben-Tabelle | |||||||||||||||||||||||||
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
w | c | d | e | f | g | x | y | z | a | b | r | s | t | p | q | u | v | h | i | j | m | n | o | k | l |
Beispiel mit Klartext: W A L T E R B A C H M A N N |
|||||||||||||||||||||||||
Verschlüsselter Geheimtext: n w r i f v c w d y b w t t |
Codierung (Verschlüsselung):
y[i] = y[tab(x[i])] liefert VS("WALTERBACHMANN") = "nwrifvcwdybwtt"
Decodierung (Entschlüsselung):
x[i] = x[tab(y[i])] liefert ES("nwrifvcwdybwtt") = "WALTERBACHMANN",
<script> // var alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; var geheimtab = "wcdefgxyzabrstpquvhijmnokl"; var na0 = 'A'.charCodeAt(0); // na0 = 65 function verschluesselung_mit_tab(klartext){ var i, j, geheimtext = ""; for (i = 0; i < klartext.length; i += 1) { j = klartext.charCodeAt(i); geheimtext += geheimtab.charAt(j-na0); } return geheimtext; } function entschluesselung_mit_tab(geheimtext) { var i, j, c, klartext = ""; for (i = 0; i < geheimtext.length; i += 1) { c = geheimtext.charAt(i); j = geheimtab.indexOf(c); klartext += String.fromCharCode(j + na0); } return klartext; } </script>
verschluesselung_mit_tab("BACHMANN") liefert "cwdyswtt" und
entschluesselung_mit_tab("cwdyswtt") liefert "BACHMANN".
Die Häufigkeiten bleiben erhalten. Z.B. kommt der Buchstabe
A und auch w jeweils
3 mal vor.
Das folgende
Vigenère Crypto-System stammt aus dem 16. Jh
( Siehe z.B.
en.wikipedia:
Vigenère Cipher
,
de.wikipedia:
Vigenère Verschlüsselung
)
Es benutzt ein Schlüsselwort,
bei dem Buchstaben nicht mehrfach vorkommen
(oder gestrichen werden).
Das Schlüsselwort habe 4 Zeichen, wie z.b.
B
A
C
H.
Das (i mod 4)-Zeichen des zu verschlüssernden Textes wird
aus der jeweiligen Zeile entnommen, die zu diesem
Schlüsselbuchstaben gehört.
Der chiffrierte Buchstabe steht in
der Position (Zeile,Spalte) der quadratischen Matrix.
Für den Klartext
Das 0.,4.,8.,...
Ist die Schlüssellänge bekannt,
so kann dieses Verfahren mit der statistischen Analyse
"geknackt" werden.
0 1 2 01234567890123456789012345 0.Zeile: ABCDEFGHIJKLMNOPQRSTUVWXYZ 1.Zeile: BCDEFGHIJKLMNOPQRSTUVWXYZA 2.Zeile: CDEFGHIJKLMNOPQRSTUVWXYZAB 4.Zeile: EFGHIJKLMNOPQRSTUVWXYZABCD 5.Zeile: FGHIJKLMNOPQRSTUVWXYZABCDE 6.Zeile: GHIJKLMNOPQRSTUVWXYZABCDEF 7.Zeile: HIJKLMNOPQRSTUVWXYZABCDEFG 8.Zeile: IJKLMNOPQRSTUVWXYZABCDEFGH 9.Zeile: JKLMNOPQRSTUVWXYZABCDEFGHI 10.Zeile: KLMNOPQRSTUVWXYZABCDEFGHIJ 11.Zeile: LMNOPQRSTUVWXYZABCDEFGHIJK 12.Zeile: MNOPQRSTUVWXYZABCDEFGHIJKL 13.Zeile: NOPQRSTUVWXYZABCDEFGHIJKLM 14.Zeile: OPQRSTUVWXYZABCDEFGHIJKLMN 15.Zeile: PQRSTUVWXYZABCDEFGHIJKLMNO 16.Zeile: QRSTUVWXYZABCDEFGHIJKLMNOP 17.Zeile: RSTUVWXYZABCDEFGHIJKLMNOPQ 18.Zeile: STUVWXYZABCDEFGHIJKLMNOPQR 19.Zeile: TUVWXYZABCDEFGHIJKLMNOPQRS 20.Zeile: UVWXYZABCDEFGHIJKLMNOPQRST 21.Zeile: VWXYZABCDEFGHIJKLMNOPQRSTU 22.Zeile: WXYZABCDEFGHIJKLMNOPQRSTUV 23.Zeile: XYZABCDEFGHIJKLMNOPQRSTUVW 24.Zeile: YZABCDEFGHIJKLMNOPQRSTUVWX 25.Zeile: ZABCDEFGHIJKLMNOPQRSTUVWXY
Das Vigenère Crypto-System verwendet die folgenden Formeln, wobei GT für Geheimtext, KT für Klartext und S für Schlüssel steht.
GTi = ( KTi + (Si % s.length) ) % 26 KTi = ( GTi - (Si % s.length) ) % 26
Die nachfolgend ECMAScript-Funktionen dienem dem Ver- und Entschlüsseln.
Als Alphabet gelte var alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
vigenere_verschluesselung("KLARTEXT", "BACH") gibt "LLCYUEZA" aus.
vigenere_entschluesselung("LLCYUEZA", "BACH") gibt "KLARTEXT" aus.
vigenere_verschluesselung("WACHBLEIBEN", "BACH") gibt "XAEOCLGPCEP" aus.
<script> var alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; function vigenere_verschluesselung(klartext, schluessel) { var i, j, k, len = alphabet.length, geheimtext = ""; for (i = 0; i < klartext.length; i += 1) { j = i % schluessel.length; s = schluessel.charCodeAt(j) - 65; k = klartext.charCodeAt(i) - 65; geheimtext += String.fromCharCode(65 + (k + s) % len); } return geheimtext; } function vigenere_entschluesselung(geheimtext, schluessel) { var i, j, g, len = alphabet.length, klartext = ""; for (i = 0; i < geheimtext.length; i += 1) { j = i % schluessel.length; s = schluessel.charCodeAt(j) - 65; g = geheimtext.charCodeAt(i) - 65; klartext += String.fromCharCode(65 + (len + g - s) % len); } return klartext; } </script>
Bei Transpositionschiffren wird die geometrische Position der Zeichen umgestellt, d.h. die Zeichen werden nach einem festgelegten Verfahren umgeordnet. Z.B. kann die Mitteilung in Buchstabenreihen geschrieben und in einem rechteckigen Block angeordnet werden. Dann werde die Buchstaben in einer vorher festgelegten Art und Weise um-positioniert, z.B.
Die Anordnung der Buchstaben in der chiffrierten Mitteilung hängt von der Größe des Blockes und von der gewählten Schreib- und Umstellmethoden ab. Um eine Chiffre noch sicherer zu machen, kann ein Schlüsselwort oder eine Zahl verwendet werden. Die Buchstabenhäufigkeit der Zeichen entspricht der verwendeten Sprache. Zum "Knacken" müssen die Buchstaben in verschiedenen geometrischen Formen anordnet und gleichzeitig Anagramme möglicher Wörter gelöst werden.
Orginal in 3 Spalten |
tausche Zeilen 1,2; 3,4 |
tausche Spalten 1,2 |
||||||||||
W | A | L | t | e | r | e | t | r | ||||
T | E | R | w | a | l | a | w | l | ||||
B | A | c | h | m | h | c | m | |||||
C | H | M | b | a | b | a | ||||||
A | N | N | a | n | n | n | a | n |
Wenn das Passwort geheim bleibt, ist das folgende Verfahren schwieriger zu entschlüsseln, denn die Zeichen-Häufigkeiten bleiben nicht erhalten. Im folgenden Beispiel wird das Passwort "paswd" verwendet.
Kryptologie mit mehrfachem Ersatzverfahren | ||
---|---|---|
Beispiel-Text | Verfahren: (addieren mit paswd) mod 26 | |
Source- Text |
W A L T E R B A C H M A N N | = 22 0 11 19 4 17 1 0 2 7 12 0 13 13 |
Pass- Wort |
p a s w d p a s w d p a s w | + 15 0 18 22 3 15 0 18 22 3 15 0 18 22 |
Summe der Ersatzzahlen: | 37 0 29 41 7 32 1 18 24 10 27 0 31 35 | |
Modulo 26: | = 11 0 3 15 7 6 1 18 24 10 1 0 5 9 | |
Ergebnis der Verschlüsselung: | L A D P H G B S Y K B A F J | |
Entschlüsselung: |
L A D P H G B S Y K B A F J = 11 0 3 15 7 6 1 18 24 10 1 0 5 9 - 15 0 18 22 3 15 0 18 22 3 15 0 18 22 22 0 11 19 4 17 1 0 2 7 12 0 13 13 W A L T E R B A C H M A N N |
Bei der Autochiffrierung wird mit einem Schlüsselbuchstaben begonnen. Der chiffrierte erste Buchstabe wird dann verwendet, um den zweiten Buchstaben zu chiffrieren (automatischer Schlüssel für Chiffretext) usw., bis die ganze Mitteilung chiffriert ist.
Mit einer "erschöpfenden Folge" von Zeichen-Kombinationen kann ein unbekanntes Passwort aufgespürt werden. Der Algorithmus ist einfach. Die Anzahl der Zeichenkombinationen kann gross sein. Syszematisch werden alle möglichen Schlüssel durchprobiert, bis der passende Schlüssel gefunden wird. Es können z.B. 2 000 000 000 Schlüsseln pro Sekunde generiert werden. Zeit für einen Schlüssel ist t1 = 1 sec/2 000 000 000. Bei "längeren" Passwörtern werden zum Durchprobieren werden viele Rechner und/oder Hochleistungsrechner eingesetzt.
- Bei Dezimalzahlen gibt es 10 verschiedene Zeichen, d.h. jede Ziffer 0-9 kann die Werte 0, 1,2 ,3, 4, 5, 6 ,7, 8, 9 haben. - Bei den Buchstaben A-Z und a-z gibt es 52 verschiedene Zeichen. - Bei den Sonderzeichen gibt es z.B.
Die Anzahl der möglichen Kombinationen kann mit Hilfe von zeichen_anzahl ^ kennwort_laenge berechnet werden:
Einige Beispiele:
5 Zeichen (3 Kleinbuchstaben,2 Zahlen) 0,03 Sekunden 7 Zeichen (1 Groß-, 6 Kleinbuchstaben) ca. 9 Minuten 8 Zeichen (4 Kleinbuchstaben, 2 Sonderzeichen, 2 Zahlen) ca. 2,6 Tage 9 Zeichen (2 Groß-, 3 Kleinbuchstaben, 2 Sonderzeichen, 2 Zahlen) ca. 9,1 Jahre 12 Zeichen (3 Groß-, 4 Kleinbuchstaben, 3 Sonderzeichen, 2 Zahlen) ca. 7,5 Millionen Jahre
Ein großer Teil vertraulicher Informationen wird routinemäßig in Form von Datenkommunikation von einem Computer zu einem anderen gesendet (staatliche Stellen, Banken, Unternehmen). Solche Daten über Telefonleitungen können abgefangen werden. Bei praktischen Anwendungen wird zwischen dem notwendige Aufwand und der gewünschten, hinreichender Sicherheit gewogen. In diesem Sinne gibt es kein perfektes Verschlüsselungsverfahren.
Ein zeitaufwendiges, sicheres Verfahren, bei dem der Schlüssel die Länge der Nachricht hat, ist das 1917 für telegrafische Einsätze entwickelt "One Time Pad" - Verfahren. Hierbei macht die sichere, offline Verteilung der Schlüssel einen erheblichen Aufwand. Die zu verschlüsselnde Text-Bit-Folge wird bitweise mit einer zufälligen Schlüssel-Bitfolge verknüpft (binäre Addition oder Operation Exclusive Or). Die Entschlüsselung erfolgt, indem die gleiche Schlüssel-Folge mit der umgekehrten Verknüpfungsvorschrift auf die kodierte Nachricht anwendet wird.
Zum "Knacken" der Geheimhaltungsverfahren müssen (bei bekanntem Verknüpfungsalgorithmus), alle möglichen Schlüssel durchprobiert werden (Brute-Force-Verfahren). Beträgt die Länge des Schlüssels z.B. 40 bit, so gibt es 240 = 1 099 511 627 776 mögliche Schlüssel. Kann ein Computer 106 Schlüssel pro Sekunde durchprobieren, so benötigt er ca. 13 Tage um alle Schlüssel auszuprobieren. Schlüssellängen von 40 bit gelten daher als unsicher. Dagegen erscheint es derzeit aussichtslos einen Schlüssel von 128 bit Länge und mehr nach dem Brute-Force-Verfahren zu knacken. Ein Computer benötigt bei einem 128 bit-Schlüssel 1025 Jahre.
Anzahl Schlüssel- bits |
2bits mögliche Schlüssel | etwa |
10 | 1024 | 103 |
20 | 1048576 | 106 |
30 | 1073741824 | 109 |
40 | 1099511627776 | 1012 |
50 | 1125899906842624 | 1015 |
60 | 1152921504606846976 | 1018 |
70 | 1180591620717411303424 | 1021 |
80 | 1208925819614629174706176 | 1024 |
90 | 1237940039285380274899124224 | 1027 |
100 | 1267650600228229401496703205376 | 1030 |
110 | 1298074214633706907132624082305024 | 1033 |
120 | 1329227995784915872903807060280344576 | 1036 |
DES (Data Encryption Standard) ist ein symmetrisches Verschlüsselungsverfahren, welches Anfang der 70er Jahre von der Firma IBM entwickelt und 1974 von der US-Regierung veröffentlicht wurde. Anfang der siebziger Jahre wurde in den USA das Verschlüsselungssystem LUCIFER entwickelt, bei dem sowohl die Substitutions- als auch die Transpositionsmethode zum Einsatz kam. 1976 entwickelte IBM, aufbauend auf dem LUCIFER-System, eine kryptographische Technik mit dem Namen DES (Data Encryption Standard, Datenverschlüsselungsstandard). Mit dem DES werden 64-Bit-Segmente der Mitteilung in 64-Bit-Segmente des Chiffretextes umgewandelt, wobei ein 56-Bit-Schlüssel (7 Byte) verwendet wird. Es gibt mehr als 70 Billiarden mögliche 56-Bit-Kombinationen.
Jeder Nutzer sucht mittels Zufallsgenerator einen 7 Byte - Schlüssel aus und macht ihn denjenigen zugänglich, die befugt sind, diese geschützten Daten zu lesen. Bei DES müssen sowohl der Verschlüsselungs- und Entschlüsselungs-Zahl geheim gehalten werden, weil ein Unbekannter aus der Verschlüsselung auch die Entschlüsselung"knacken kann" .
Das Public-Key-Kryptosystem (PKK) ist ein sehr sicheres asymmetrisches Verschlüsselungsverfahren, welches 1976 von WHITFIELD DIFFIE und MARTIN HELMAN entwickelt wurde. Es gibt zwei Schlüssel, den einen benutzt man zum Chiffrieren, den anderen zum Dechiffrieren. Einen der beiden Schlüssel kann man öffentlich zugänglich machen, daher auch der Name. Meistens ist der Entschlüsselung geheim. Dadurch ist das Versenden von Nachrichten zwischen vielen Teilnehmern erleichtert. Jeder stellt seine Verschlüsselung öffentlich zur Verfügung. Ist z.B. x eine Unterschrift des Absenders src, die geheim zum Empfänger dst gelangen soll, so kann wie folgt vorgegangen werden:
öffentlche Funktionen: Vsrc, Vdst,
Private Funktionen: Esrc, Edst,
Gesendete Nachricht: x
Verschlüsselte Nachricht: xs
Sender:
src sendet xs = Vdst (Esrc(x))
Empfänger:
dst empfängt xs und erhält
y = Edst(xs) = Edst(Vdst(Esrc(x))) = Esrc(x)
und dann mit der öffentlchen Funktion Vsrc die Unterschrift
x = Vsrc(y).
Der Sender kann nicht abstreiten, die Unterschrift gesendet zu haben. Obwohl es grundsätzlich möglich ist, die PKK-Entschlüsselung zu "knacken", ist dies trotz Computer-Unterstützung z.Z. mit einem vertretbaren Aufwand nicht möglich.
RTP (Real-Time Protocol) kann Datenpakete von Multicast-Routinen nach Unicast umsetzten (und umgekehrt). Ein Bit im Header gibt an, dass die Nutzdaten DES verschlüsselt sind.
Das IPv6 sieht für verschlüsselte Datepakete einen Erweiterungsheader vor. Dieser ESP-header (Encapsulated Security Payload) definiert, dass das folgende Paket verschlüsselt ist. Dann kann mit dem AH (Authentication Header) die Authentifizierung und der Integritätsschutz ermöglicht werden.
Der ATM (Asynchronous Transfer Mode) definiert ein eigenes Sicherheitsmodell für Ende-zu-Ende- und Leitungs-Verschlüsselungen.
MIME ist eine Abkürzung für Multipurpose Internet Mail Extensions, dt. Mehrzweckerweiterungen für Internetpost. MIME ist Bestandteil von HTTP und wird in den Requests for Comments (RFC) der Internet Engineering Task Force (IETF) definiert. S/MIME enthält eine symmetrische Datenverschlüsselung.
Standardverfahren zur Kodierung von E-Mails, die nicht nur aus einfachem Text bestehen, sondern auch noch aus Dateianhängen (Anhang) in unterschiedlichen Formaten. Damit solche sog. Multipart-Mails (dt. Mails aus unterschiedlichen Bestandteilen) verschickt werden können, müssen die Einzelkomponenten in einer einzigen Datei zusammengefasst werden. Beim Empfänger müssen diese Teile dann wieder eindeutig voneinander getrennt werden können. Außerdem muss die Empfangs-Software in der Lage sein zu erkennen, um welchen Datentyp (also welches Format) es sich bei dem jeweils nächsten Teil der Mail handelt.
Chiffren, die auf Schlüsseln beruhen sind einfacher zu handhaben als Codes. Aber sowohl Sender und Empfänger müssen im Besitz identischer Codebücher sein. Codebücher werden aus Gründen der Bequemlichkeit und nicht so sehr der Geheimhaltung benutzt. Die Codebücher müssen sicher aufbewahrt werden. Die Verteilung enthält ein Risiko.
Das wichtigste PKK-Verfahen ist das RSA-Verfahren (1978, R.Rivest, A. Shamir, L. Adleman). Dieses System beruht auf der Tatsache, daß es praktisch unmöglich ist 2 große Primzahlen p, q (z.B. 100 Stellen) aus der Kenntnis des Produktes n = p*q zurück zu gewinnen. Zur Verschlüsselung genügt im wesentlichen die Bekanntgabe von n. Zur Entschlüsselung müssen beide Primzahlen bekannt sein.
IDEA (International Data Encryption Algorithmus) ist ein relativ sicheres symmetrisches Verschlüsselungsverfahren, welches ab 1990 von XUAIJA LAI und JAMES MASSEY entwickelt wurde.
Zur Verschlüsselung sensibler Daten für das Internet wird heute meist das von Philip Zimmermann entwickelte Pretty Good Privacy (PGP, "ziemlich gute Vertraulichkeit") benutzt. PGP kombiniert symmetrische und asymmetrische Verfahren: Die Nachricht wird mit IDEA (symmetrisches Verschlüsselungsverfahren) verschlüsselt, es werden also Zeichengruppen vertauscht und durch andere Zeichen ersetzt. Für jede Nachricht gibt einen eigenen IDEA-Schlüssel. Der für den Empfänger bestimmte öffentliche Schlüssel wird mit RSA (asymmetrisches Verschlüsselungsverfahren) erzeugt und mit der chiffrierten Nachricht versandt.
[Abk. für Encapsulating Security Payload IEEE Standard, dt. IEEE-Standard für Nutzlast mit eingebetteter Sicherheit], Der ESP-IEEE-Standard ist eine vorgeschlagene Ergänzung zum Internetprotokoll (IP), die Vertraulichkeit, Datenintegrität und Authentizität von Datagrammen sicherstellt. Dabei wird ein Teil des Headers und die Nutzlast (engl. Payload=gesamtes Datagramm) verschlüsselt und mit einer Prüfsumme versehen. Dadurch kann weder die Senderadresse noch die Nutzlast verändert werden, ohne dass der Empfänger dies bemerken würde. Abhängig vom verwendeten Kryptologieverfahren ist auch eine Authentifizierung möglich.
Ein Nachrichtenbeglaubigungscode [MAC steht für Message Authentication Code] wird auch Digitaler Fingerabdruck (Message Digest, Message Authentication Code, MAC) genannt. Ein Nachrichtenbeglaubigungscode wird aus einer beliebig langen Nachricht generiert, indem mit einer Hash-Funktion eine "Prüfsumme" (oft 128 Bit = 16 Byte) ermittelt wird. Das Verfahren ist sicher, wenn es nicht gelingt, aus dem Hash-Wert die Nachricht zu generieren, die denselben Hash-Wert besitzt. Der Hash-Wert identifiziert die Nachricht wie wie ein Fingerabdruck die ursprünglichen Daten. Die bekanntesten Sicheren Hash-Funktionen sind SHA-1 (Secure Hash Algorithm), und RIPEMD-160 und für "kurzlebige MACs" auch MD5.
Die folgende C-Funktion ist ein Beispiel für eine "hash"-Kontroll-Zahl-Ermittlung. Jeder Buchstabe aktChar verändert den Wert code_old und liefert code_new.
int code_new (int code_old , char aktChr) { int akt_char = (int) aktChr ; akt_char ^= code_old ; if (code_old < 0) { code_old <<= 1 ; code_old ++ ; } else { code_old <<= 1 ; } code_old ^= akt_char ; akt_char = (akt_char << 8) | (akt_char >> 8) ; if (code_old < 0) { code_old <<= 1 ; code_old ++ ; } else { code_old <<= 1 ; } code_old ^= akt_char ; return code_old ; }
Hier eine andere Hash-Funktion, die einen String aus Ziffern zurück gibt.
function calcHash(s) { if (!s || s=="") return 1; var h=0, g=0; for (var i = s.length-1; i>=0; i-=1) { var c = parseInt(s.charCodeAt(i)); h = ((h << 6) & 0xfffffff) + c + (c << 14); if ((g=h & 0xfe00000)!=0) h=(h ^ (g >> 21)); } return h; }
Oft werden die Begriffe digitale Unterschrift und Digitale Signatur [engl. digital signature] synonym verwendet. In eine eine Bilddatei (Bild der Unterschrift) können mit geeigneten Verschlüsselungsverfahren fälschungssichere Kennzeichen eingefügt werden (MAC, Digitale Signatur, Nachrichtenbeglaubigungscode). Die Digitale Signatur kann die Echtheit und die Herkunft des Bildes belegen. Eine Vertraulichkeit der Nachricht und Schutz vor unbefugtem Lesen durch Dritte bietet nur eine zusätzliche Verschlüsselung. Bekannte Verfahren für die digitale Signatur sind der Digital Signature Standard (DSS) und S/MIME (MIME). Das populärste Programm zur Erzeugung einer digitalen Signatur ist das Verschlüsselungsprogramm Pretty Good Privacy (PGP).
Unter der Authentizität ist der Nachweis der Identität des Urhebers zu verstehen (digitale Unterschrift, digitale Signatur, Fingerprint, digitale Wasserzeichen, Chipkarten). Die Vertraulichkeit verhindert, dass Unberechtigte die Informationen lesen können. Die Integrität sichert die Unversehrtheit der übertragenen Daten (Prüfziffern, digitale Zeitstempel).
Die Glaubwürdigkeit von Computerdaten wird Authentizität genannt. Hierbei ist gemeint:
Für die Gewährleistung der Authentizität wird oft ein vertrauenswürdiger, dritter Partner (Trusted Third Party) benutzt. Dieser wird auch als Vertrauens- oder Zertifizierungsinstanz (Registrierung, Personalisierung, Zertifizierung) bezeichnet. Diese Instanz erstellt ein Berechtigungs-Zertifikat und führt Datensätze, wie z.B. Namen und Adresse, öffentlichen Schlüssel des Teilnehmers. Ziele sind der Nachweis des Urheberrechtes, der Nachweis der Echtheit/Authenzität ( siehe z.B. Windows Zertifikate: Start certmgr.msc ).
Die folgenden Daten und Tabellen sind z.T ohne Quellenangaben aus alten Internetseiten ( z.B. Heise-Security-Artikel aus 2012 ) zusammengetragenworden. Diese Daten sind z.T nicht mehr aktuell. Neuere Angaben finden sich bei wikipedia. In der Kryptographie gibt es zahlreiche Algorithmen, siehe z.B. de.wikipedia Kryptographie-Algorithmen .