Zum Hauptinhalt springen

Anhang A. Zwischenwerte für die Verschlüsselung

Anhang A. Zwischenwerte für die Verschlüsselung

Hier sind die für das Beispiel in Abschnitt 5 berechneten Zwischenwerte aufgeführt. Leerzeichen in den base64url-Werten können entfernt werden.

Eingaben für die Berechnung:

Klartext (Plaintext): V2hlbiBJIGdyb3cgdXAsIEkgd2FudCB0byBiZSBhIHdhdGVybWVsb24

Öffentlicher Schlüssel des Anwendungsservers (as_public):

BP4z9KsN6nGRTbVYI_c7VJSPQTBtkgcy27mlmlMoZIIg
Dll6e3vCYLocInmYWAmS6TlzAC8wEqKK6PBru3jl7A8

Privater Schlüssel des Anwendungsservers (as_private): yfWPiYE-n46HLnH0KqZOF1fJJU3MYrct3AELtAQ-oRw

Öffentlicher Schlüssel des User-Agents (ua_public):

BCVxsr7N_eNgVRqvHtD0zTZsEc6-VV-
JvLexhqUzORcx aOzi6-AYWXvTBHm4bjyPjs7Vd8pZGH6SRpkNtoIAiw4

Privater Schlüssel des User-Agents (ua_private): q1dXpw3UpT5VOmu_cf_v6ih07Aems3njxI-JWgLcM94

Salt: DGv6ra1nlYgDCS1FRnbzlw

Authentifizierungsgeheimnis (auth_secret): BTBZMqHH6r4Tts7J_aSIgg

Es genügt, einen der privaten Schlüssel zu kennen. Der Anwendungsserver erzeugt das Salt zufällig; für den Empfänger ist Salt eine Eingabe.

Daraus ergeben sich folgende Zwischenwerte:

Gemeinsames ECDH-Geheimnis (ecdh_secret): kyrL1jIIOHEzg3sM2ZWRHDRB62YACZhhSlknJ672kSs

Pseudozufälliger Schlüssel (PRK) zur Schlüsselkombination (PRK_key): Snr3JMxaHVDXHWJn5wdC52WjpCtd2EIEGBykDcZW32k

Info zur Schlüsselkombination (key_info):

V2ViUHVzaDogaW5mbwAEJXGyvs3942BVG
q8e0PTNNmwR zr5VX4m8t7GGpTM5FzFo7OLr4BhZe9MEebhuPI-OztV3
ylkYfpJGmQ22ggCLDgT-M_SrDepxkU21WCP3O1SUj0Ew
bZIHMtu5pZpTKGSCIA5Zent7wmC6HCJ5mFgJkuk5cwAv MBKiiujwa7t45ewP

Eingangsschlüsselmaterial zur Ableitung des Inhaltsverschlüsselungsschlüssels (IKM): S4lYMb_L0FxCeq0WhDx813KgSYqU26kOyzWUdsXYyrg

PRK für Inhaltsverschlüsselung (PRK): 09_eUZGrsvxChDCGRCdkLiDXrReGOEVeSCdCcPBSJSc

Info zur CEK-Ableitung (cek_info): Q29udGVudC1FbmNvZGluZzogYWVzMTI4Z2NtAA

Inhaltsverschlüsselungsschlüssel (CEK): oIhVW04MRdy2XN9CiKLxTg

Info zur Nonce-Ableitung (nonce_info): Q29udGVudC1FbmNvZGluZzogbm9uY2UA

Nonce (NONCE): 4h_95klXJ5E_qnoN

Aus Salt, Datensatzgröße 4096 und öffentlichem Schlüssel des Anwendungsservers ergibt sich ein 86-Oktett-Header:

DGv6ra1nlYgDCS1FRnbzlwAAEABBBP4z 9KsN6nGRTbVYI_c7VJSPQTBtkgcy27ml
mlMoZIIgDll6e3vCYLocInmYWAmS6Tlz AC8wEqKK6PBru3jl7A8

An den Klartext der Push-Nachricht wird das Padding-Trennoktett (0x02) angehängt:

V2hlbiBJIGdyb3cgdXAsIEkgd2FudCB0 byBiZSBhIHdhdGVybWVsb24C

Der Klartext wird mit AES-GCM verschlüsselt, was folgenden Chiffretext liefert:

8pfeW0KbunFT06SuDKoJH9Ql87S1QUrd irN6GcG7sFz1y1sqLgVi1VhjVkHsUoEs
bI_0LpXMuGvnzQ

Header und Chiffretext zusammengefügt ergeben das Ergebnis aus Abschnitt 5.