La procédure de génération de clé de session make_local_key remplit le tampon avec une séquence d'octets aléatoires. Cette procédure est effectuée de la même manière par chaque abonné Extra Systems Cypher Net (bien entendu, différentes séquences aléatoires sont générées). Ensuite, dans la procédure get_common_key, l'ajout binaire de deux de ces clés créées par deux abonnés se produit. Le résultat est le même numéro, qui est utilisé comme clé de session pour l'algorithme de chiffrement de flux.
La taille de la clé PACKED_SESSION_KEY_LENTH dépend de l'algorithme de chiffrement, mais doit être inférieure au module RSA, sinon elle ne pourra pas être chiffrée. Dans notre système, la longueur maximale de ce paramètre est définie sur un octet plus court que la longueur de la clé RSA (cela garantit qu'un cryptage ultérieur peut être effectué).
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); }
Le contenu de cette page est également disponible en anglais, allemand, ukrainien et en russe.
© Extra Systems, 2024 |