Schlüsselkapselungsverfahren
Ein Schlüsselkapselungsverfahren (engl. key encapsulation mechanism, KEM) ist eine kryptografische Technik, mit der ein Sitzungsschlüssel, der meist zur Verwendung mit einem symmetrischen Verfahren wie etwa AES gedacht ist, mit einem asymmetrischen Verschlüsselungsverfahren (zum Beispiel RSA) übermittelt wird. Teilnehmer A erzeugt mit einem Verkapselungsalgorithmus aus dem öffentlichen Schlüssel von Teilnehmer B einen geheimen Sitzungsschlüssel und ein Chiffrat, das an B über einen ungeschützten Kanal übermittelt wird. B kann daraus mit dem Entkapselungsalgorithmus und seinem privaten Schlüssel ebenfalls den geheimen Sitzungsschlüssel gewinnen.[1]
Herkömmlich erzeugt man zuerst einen Sitzungsschlüssel von typischerweise 128 oder 256 Bit, der dann mit RSA verschlüsselt und übermittelt wird. Da die Übermittlung zu kurzer Nachrichten per RSA unsicher ist, erweitert man den Sitzungsschlüssel vor dem Verschlüsseln mit einem Paddingverfahren. Dabei muss man sich Gedanken über ein geeignetes Paddingverfahren machen, und für diese gibt es häufig keinen vollständigen Sicherheitsbeweis.
Ein KEM vereinfacht das Verfahren durch direkte Erzeugung einer Zufallszahl von ausreichender Länge, die mit einer asymmetrischen Verschlüsselung übermittelt wird, wonach beide Parteien eine Schlüsselableitungsfunktion anwenden, um aus den Schlüssel zu gewinnen.[2] wird zufällig gleichverteilt aus der Menge der möglichen Klartexte des verwendeten asymmetrischen Verfahrens gewählt. Die Wahl der Schlüsselableitungsfunktion ist beliebig. Es gibt keine durch das Paddingverfahren festgelegten mathematischen Beziehungen zwischen und dem daraus gewonnenen Schlüssel mehr, die von einem Angreifer ausgenutzt werden könnten.
Im Unterschied zu einer Schlüsselvereinbarung wie beim Diffie-Hellman-Schlüsselaustausch bieten KEMs keine Folgenlosigkeit bei späterer Aufdeckung des Hauptschlüssels.
Einzelnachweise
- ↑ https://eprint.iacr.org/2021/1452.pdf, Seite 3
- ↑ XML Security Working Group F2F: Key Encapsulation: A New Scheme for Public-Key Encryption. Mai 2009, abgerufen am 15. Juli 2021 (englisch).