La procedura di generazione della chiave di sessione make_local_key riempie il buffer con una sequenza di byte casuali. Questa procedura viene eseguita allo stesso modo da ciascun abbonato di Extra Systems Cypher Net (ovviamente vengono generate sequenze casuali diverse). Successivamente, nella procedura get_common_key, avviene l'addizione binaria di due di queste chiavi create da due abbonati. Il risultato è lo stesso numero, utilizzato come chiave di sessione per l'algoritmo di crittografia del flusso.
La dimensione della chiave PACKED_SESSION_KEY_LENTH dipende dall'algoritmo di crittografia, ma deve essere inferiore al modulo RSA, altrimenti non può essere crittografata. Nel nostro sistema, la lunghezza massima di questo parametro è impostata su un byte inferiore alla lunghezza della chiave RSA (questo garantisce che possa essere eseguita la successiva crittografia).
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); }
Il contenuto di questa pagina è disponibile anche in inglese, francese, tedesco, portoghese, spagnolo, ucraino e russo.
© Extra Systems, 2024 |
|