Die Sitzungsschlüsselgenerierungsprozedur make_local_key füllt den Puffer mit einer Folge zufälliger Bytes. Dieser Vorgang wird von jedem Extra Systems Cypher Net-Abonnenten auf die gleiche Weise durchgeführt (natürlich werden unterschiedliche Zufallssequenzen generiert). Als nächstes erfolgt in der Prozedur get_common_key die binäre Addition zweier solcher Schlüssel, die von zwei Abonnenten erstellt wurden. Das Ergebnis ist dieselbe Nummer, die als Sitzungsschlüssel für den Stream-Verschlüsselungsalgorithmus verwendet wird.
Die Größe des Schlüssels PACKED_SESSION_KEY_LENTH hängt vom Verschlüsselungsalgorithmus ab, muss jedoch kleiner als das RSA-Modul sein, andernfalls kann er nicht verschlüsselt werden. In unserem System ist die maximale Länge dieses Parameters auf ein Byte kürzer als die Länge des RSA-Schlüssels eingestellt (dies gewährleistet die Möglichkeit einer nachträglichen Verschlüsselung).
void make_local_key(void) { memset(local_key.packed, 0, PACKED_VALUE_LENTH); fill_random_buffer(local_key.packed, PACKED_SESSION_KEY_LENTH); unpack_value(local_key.packed, local_key.unpacked); }
Der Inhalt dieser Seite ist auch in Englisch, Französisch, Ukrainisch und Russisch verfügbar.
© Extra Systems, 2024 |