Kryptografie ist die Verschlüsselung von Nachrichten oder Daten, um diese für Dritte unlesbar zu machen. Das Prinzip ist sehr einfach. Mit der Hilfe eines digitalen Schlüssels wird ein Klartext in einen Geheimtext (Chiffretext) umgewandelt. Und nur wer über den Entschlüsselungsschlüssel verfügt, kann den Chiffretext wieder entschlüsseln und den Klartext lesen.
Dabei unterscheidet man in der digitalen Kryptografie zwischen der symmetrischen Verschlüsselung und der asymmetrischen Verschlüsselung.
Im Gegensatz zum symmetrischen Verschlüsselungsverfahren, wo der Klartext mit demselben Schlüssel ver- und entschlüsselt wird, gibt es bei der asymmetrischen Verschlüsselung ein Schlüsselpaar. Grundsätzlich verfügt jeder Teilnehmer über einen individuellen öffentlichen Schlüssel (Public-Key) und einen privaten Schlüssel (Private-Key). Beide Schlüssel hängen dabei über einen mathematischen Algorithmus eng zusammen.
Bei der Asymmetrischen Verschlüsselung kann eine Schlüssel-Art nur für einen Vorgang (Ver- bzw. Entschlüsseln) verwendet werden und der zugehörigen Schlüssel der anderen Art muss dann dementsprechend für den gegenteiligen Vorgang verwendet werden. Also entweder:
- Verschlüsseln: Public-Key + Entschlüsseln: Private-Key
- Verschlüsseln: Private-Key + Entschlüsseln: Public-Key
Der Private-Key ist, wie der Name schon sagt, ausschließlich für den privaten Gebrauch des Schlüssel-Eigentümers. Dieser kann damit entweder Informationen entschlüsseln, die mit seinem Public-Key verschlüsselt wurden oder kann selbst Nachrichten verschlüsseln, die dann mit seinem Public-Key entschlüsselt werden können. Der Public-Key dagegen ist öffentlich und kann von allen anderen Teilnehmern verwendet werden.
Wollen zum Beispiel zwei Parteien (Sender und Empfänger) Daten verschlüsseln, dann läuft es wie folgt ab.
- Zunächst benötigen beide den öffentlichen Schlüssel des Anderen.
- Der Sender verwendet nun den öffentlichen Schlüssel des Empfängers, den er zuvor erhalten hat und verschlüsselt damit die Daten.
- Im Anschluss kann der Empfänger seinen eigenen privaten Schlüssel verwenden, die Daten entschlüsselten und den Klartext sehen.
Sollten die Daten unterwegs abgefangen werden, können diese ohne den privaten Schlüssel des Empfängers nicht gelesen werden. Dies bedeutet aber auch, dass ein neues Schlüsselpaar erzeugt werden muss, wenn der private Schlüssel in die falschen Hände gelangt.
Mit dem Schlüsselpaar lassen sich aber nicht nur Nachrichten verschlüsseln, sondern auch signieren. Dazu signiert der Sender eine Nachricht/Datei mit seinem privaten Schlüssel und der Empfänger kann mit dem öffentlichen Schlüssel, der zuvor ausgetauscht wurde, die Signatur prüfen und so sicherstellen, dass diese vom richtigen Absender stammt.
Die Vorteile der asymmetrischen Verschlüsselung liegen klar in der Sicherheit. Dadurch, dass der Private-Key zum Entschlüsseln der Daten beim Empfänger bleibt, erfolgt keine Übertragung über unsichere Kanäle und nur eine Person trägt das Geheimnis. Der Public-Key allein nützt den Angreifern zudem wenig. Ein weiterer Vorteil ist die Anzahl der Schlüssel. Diese steigt bei der asymmetrischen Verschlüsselung linear zur Anzahl der Entitäten. Somit werden weniger Schlüssel benötigt als bei der symmetrischen Verschlüsselung.
Als Nachteil gilt die hohe Rechenzeit, die fast 1.000-mal langsamer ist als symmetrische Verschlüsselung. Zudem steigt bei mehreren Empfängern der Aufwand, da die Verschlüsselung mit dem Public-Key eines jeden Empfängers erfolgen muss.
Die Lösung liegt hier in der hybriden Verschlüsselung (Kombination aus symmetrischer und asymmetrischer Verschlüsselung). Dabei werden die Daten selbst symmetrisch verschlüsselt und der Schlüssel im Anschluss asymmetrisch verschlüsselt und verschickt. Man nutzt somit die Vorteile von beiden Verfahren:
- hohe Geschwindigkeit der symmetrischen Verschlüsselung und
- hohe Sicherheit der asymmetrischen Verschlüsselung.
Bekannte asymmetrische Verschlüsselungen sind zum Beispiel ECC (Elliptic Curve Cryptography) was wir von Engity innerhalb unserer Authentifizierungslösung zur Signierung von Token verwenden. Weitere bekannte Verfahren sind RSA (Rivest, Shamir und Adleman) oder DSA (Digital Signature Algorithm), die beide weit verbreitet sind, aber als fehlerhaft gelten.