Компания Cisco открыла реализацию блочного шифра FNR

23/06/2014 10:52

Компания Cisco открыла исходные тексты экспериментального предметно-ориентированного блочного шифра FNR (Flexible Naor and Reingold), предназначенного для шифрования таких объектов (до 128 бит), как номера кредитных карт, IPv6/IPv4/MAC-адреса, номера сетевых портов, короткие строки и числовые значения. Код библиотеки с реализацией FNR опубликован под лицензией LGPLv2.1. Ключевым назначением FNR является обеспечение анонимности данных телеметрии и записей в логах. Отличительной чертой FNR от таких шифров, как AES, является отсутствие необходимости дополнения блоков до номинального размера (padding), что позволяет обеспечить неизменность размера данных до и после шифрования. Указанная особенность FNR позволяет интегрировать поддержку шифрования в существующие системы, рассчитанные на фиксированные размеры полей, например, в NetFlow коллекторы. FNR также можно использовать для шифрования фиксированных полей в пакетах и реализации систем шифрования данных в БД, подобных cryptdb. В частности, при использовании AES 256 размер блока на выходе составит 32 байта, даже если шифрование применялось к IPv4-адреcу, размер которого 4 байта. Подобное увеличение размера становится критичным при обеспечении шифрования отдельных параметров в логах. В случае FNR зашифрованный IPv4-адреc по-прежнему будет занимать 4 байта. FNR продолжает развитие идей Мони Наора (Moni Naor) и Омера Рейнголда, предложивших переработанный вариант классического метода построения блочных шифров на основе сети Фейстеля, в котором для обеспечения дополнительной рандомизации и защищённости предлагалось использовать две попарно-независимые перестановки на первом и последнем раунде формирования LR-конструкций (PWIP, pair-wise independent permutation). Проблема метода Наора и Рейнголда заключается в применении функции PWIP, основанной на теории конечного поля Галуа, которая достаточно сложна в реализации для входных данных разного размера (GF(2^n)). Для обхода данной проблемы в FNR функции PWIP основаны на случайных инвертируемых матрицах "N X N".
Источник