O procedimento de geração de chaves de sessão make_local_key preenche o buffer com uma sequência de bytes aleatórios. Este procedimento é realizado da mesma forma por cada subscritor da Extra Systems Cypher Net (claro, são geradas diferentes sequências aleatórias). De seguida, no procedimento get_common_key, ocorre a adição binária de duas destas chaves criadas por dois subscritores. O resultado é o mesmo número, que é utilizado como chave de sessão para o algoritmo de encriptação de fluxo.
O tamanho da chave PACKED_SESSION_KEY_LENTH depende do algoritmo de encriptação, mas deve ser menor que o módulo RSA, caso contrário não pode ser encriptada. No nosso sistema, o comprimento máximo deste parâmetro é definido como um byte menor que o comprimento da chave RSA (isto garante que a encriptação subsequente pode ser executada).
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); }
O conteúdo desta página está também disponível em inglês, francês, alemão, espanhol, ucraniano e russo.
© Extra Systems, 2024 |