8. Taxonomie der von COSE verwendeten Algorithmen
In diesem Abschnitt wird eine Taxonomie der verschiedenen Algorithmustypen dargelegt, die in COSE verwendet werden können. Diese Taxonomie sollte nicht als erschöpfend betrachtet werden. Es werden neue Algorithmen erstellt werden, die nicht in diese Taxonomie passen.
8.1. Signaturalgorithmen
Signaturalgorithmen werden zur Authentifizierung und zur Abwehr von Änderungen verwendet. Signaturalgorithmen bestehen aus einem Schlüsselpaar: einem privaten Schlüssel (dem Signaturschlüssel) und einem öffentlichen Schlüssel (dem Verifizierungsschlüssel).
8.2. Message Authentication Code (MAC)-Algorithmen
MAC-Algorithmen werden zur Authentifizierung und zur Abwehr von Änderungen verwendet. MAC-Algorithmen verwenden einen gemeinsamen geheimen Schlüssel. Der Erzeuger und der Verbraucher besitzen denselben Schlüssel.
8.3. Inhaltsverschlüsselungsalgorithmen
Inhaltsverschlüsselungsalgorithmen werden verwendet, um die Vertraulichkeit von Daten zu schützen. Diese Algorithmen sind Algorithmen zur authentifizierten Verschlüsselung (AEAD). Dies bietet sowohl eine Integritätsprüfung der Daten als auch Vertraulichkeit. Der Algorithmus verwendet einen Schlüssel, einen Initialisierungsvektor (IV) und Klartext und erzeugt Chiffretext und ein Authentifizierungs-Tag.
8.4. Schlüssenableitungsfunktionen (KDFs)
Schlüssenableitungsfunktionen werden verwendet, um neue Schlüssel basierend auf einem Hauptgeheimnis zu generieren.
8.5. Verteilungsmethoden für Inhaltsschlüssel
Verteilungsmethoden für Inhaltsschlüssel werden verwendet, um den Inhaltsverschlüsselungsschlüssel (CEK) einem Empfänger bereitzustellen.
8.5.1. Direkte Verschlüsselung
Diese Methode wird für Empfänger verwendet, die eine Kopie des CEK besitzen. Dies kann ein vorab geteilter Schlüssel oder ein ausgehandelter Schlüssel sein.
8.5.2. Key Wrap (Schlüsselumhüllung)
Diese Methode wird verwendet, wenn der CEK zufällig generiert und dann durch einen Schlüssel verschlüsselt wird, der dem Empfänger gehört. Dieser Schlüssel wird als Schlüsselverschlüsselungsschlüssel (KEK) bezeichnet.
8.5.3. Direkte Schlüsselvereinbarung
Diese Methode wird verwendet, wenn ein Schlüsselvereinbarungsalgorithmus verwendet wird, um den CEK zu generieren. Das aus der Schlüsselvereinbarung resultierende gemeinsame Geheimnis wird dann durch eine KDF geleitet, um den CEK abzuleiten. Der öffentliche Schlüssel des Empfängers und der private Schlüssel des Absenders werden für den Schlüsselvereinbarungsalgorithmus verwendet.
8.5.4. Schlüsselvereinbarung mit Key Wrap
Diese Methode wird verwendet, wenn ein Schlüsselvereinbarungsalgorithmus verwendet wird, um einen KEK zu generieren. Der CEK wird zufällig generiert und mit dem KEK verschlüsselt.