Безопасность в Internet- Intranet



         

Сеть Файстеля - часть 5


uint32_t Feistel_Network_Optimal(uint32_t data, uint8_t key, int rounds) { uint16_t left, right, swap; left = data & 0xFFFF; // делим данные на половинки right = (data >> 16) & 0xFFFF; swap = left ^ right ^ ((uint16_t) key * 0xABCD1234); // 1-й раунд left = right; right = swap; swap = left ^ right ^ ((uint16_t) key * 0xABCD1234); // 2-й раунд left = right; right = swap; swap = left ^ right ^ ((uint16_t) key * 0xABCD1234); // 3-й раунд left = right; right = swap; swap = left ^ right ^ ((uint16_t) key * 0xABCD1234); // 4-й раунд left = right; right = swap; return (left | ((uint32_t) right << 16)); }

Листинг 4.4

На сегодняшний день практически отсутствуют системы шифрования, построенные с помощью разбалансированных сетей Файстеля, а все популярные алгоритмы являются с этой точки зрения классическими. Их вид и функции шифрования можно успешно представить себе, исходя из предоставленных в листингах раздела примеров.




Содержание  Назад  Вперед