F-FCSR
— семейство
поточных шифров
, основанное на использовании
регистра сдвига с обратной связью по переносу (FCSR)
с линейным фильтром на выходе. Идея шифра была предложена Терри Бергером, Франсуа Арно и Седриком Лараду. F-FCSR был представлен на конкурсе
eSTREAM
, был включен в список победителей конкурса в апреле 2008, но в дальнейшем была выявлена криптографическая слабость и в сентябре 2008 F-FCSR был исключён из списка eSTREAM.
История
Впервые идея использования регистра сдвига с обратной связью по переносу (FCSR) для создания поточного фильтра была предложена Клаппером и Горески в 1994 году
. Позднее ими был разработан алгоритм такого шифра
. Один FCSR без подключения линейного компонента не может быть использован в качестве поточного шифра, так как легко дешифруется.
В 2002 году был предложен самосинхронизующийся поточный шифр, основанный на совместном использовании FCSR и LFSR
. Позднее он был подвергнут атаке с выбором шифротекста
.
В 2005 году Арно и Бергер предложили идею совместного использования FCSR и линейного фильтра для создания поточного шифра, который получил название F-FCSR (Filtered FCSR)
. Позже ими были предложены 4 алгоритма, реализующих эту идею: F-FCSR-SF1, F-FCSR-SF, F-FCSR-DF1 и F-FCSR-DF8
. Первые два использовали статические фильтры, последние — фильтры, зависящие от ключа. Позже была выявлена слабость всех этих алгоритмов перед различными видами атак
.
В 2005 Терри Бергер, Франсуа Арноль и Седрик Лараду предложили два шифра на основе F-FCSR
для участия в конкурсе eSTREAM: F-FCSR-H для аппаратной реализации и F-FCSR-8 для программной. В результате последующих испытаний у первоначальных версий F-FCSR-H и F-FCSR-8 были найдены уязвимости
, которые позже были исправлены в версиях F-FCSR-H v.2 и F-FCSR-16
. Улучшенный вариант F-FCSR-H v.2 стал финалистом eSTREAM
. Но после обнаружения уязвимости
был исключен из eSTREAM Portfolio (rev.1)
.
Характеристики версий
Название
Длина главного
регистра
Инициализация
Фильтр
Число бит
на выходе фильтра
F-FCSR-8
128
64/128 тактов
(в зависимости от IV)
Зависит от ключа
8
F-FCSR-H
160
160 тактов
Статический
8
F-FCSR-8.2
256
258 тактов
Зависит от ключа
16
F-FCSR-16
256
16 + 258 тактов
Статический
16
F-FCSR-H v.2
160
20 + 162 такта
Статический
8
Описание алгоритма
FCSR
FCSR
реализуется в двух конфигурациях: Галуа и Фиббоначи. В F-FCSR используется конфигурация Галуа, так как она эффективней. Вводятся следующие обозначения:
q
— целостность соединения (connection integer) — отрицательное нечетное целое число, удовлетворяющее следующим условиям:
T = (|q| − 1)/2 — простое, 2T — период битовой последовательности p/q
Число единиц в двоичном представлении числа (1 − q)/2 порядка n/2
p
— параметр, зависящий от ключа, такое, что 0 < p < |q|
n
— размер главного регистра FCSR, |q| в двоичной записи имеет n + 1 знаков: 2
n
< −q < 2
n+1
d
: d = (1 − q)/2, в двоичной записи
, d
i
= {0, 1}, d
n-1
= 1
M
— n-разрядный главный регистр, значения его i-го разряда,
.
C
— l-разрядный регистр сдвига, l + 1 — число единиц в двоичной записи d,
.
(m, c)
— состояние FCSR
Если (m, c) — состояние FCSR в момент времени t
0
,
,
, то
— двоичное представление p/q, где p = m + 2c.
Пример FCSR
q = −347, d = 174 = (10101110)
2
, n = 8, l = 4.
Фильтрация
Фильтрующая линейная функция на выходе определяется маской (
) Один бит на выходе определяется следующим образом:
Инициализация
С учетом слабости предыдущих версий F-FCSR из-за слабого начального перемешивания битов в главном регистре процедура инициализации в F-FCSR-H v.2 и F-FCSR-16 проводится следующим образом:
Главный регистр M инициализируется конкатенацией секретного ключа K и IV — (K, IV), в регистр переноса записываются нули.
Проходит 16 тактов генератора для F-FCSR-16 и 20 для F-FCSR-H v.2
Полученные на выходе 256 и 160 битов соответственно записываются в M
Проходит n + 2 тактов генератора, биты на выходе при этом отбрасываются
Первоначально найденные уязвимости F-FCSR-8 и F-FCSR-H, связанные с малым количеством тактов при инициализации, были исправлены в F-FCSR-16 и F-FCSR-H v.2. В 2008 году Мартин Хелл и Томас Джоанссон описали и осуществили атаку на F-FCSR, с помощью которой можно вскрыть состояние FCSR.
Фильтрующая функция линейна, поэтому криптостойкость F-FCSR определяется нелинейностью FCSR, которая возникает из-за наличия регистра переноса, таким образом систему требуется линеаризовать, максимльно увеличив число нулей в регистре переноса. Рассмотрим ситуацию, когда состояние регистра переноса на протяжении 20 тактов будет следующим:
Если бит обратной связи 0, то биты регистра переноса, равные 0, остаются равны 0, а равные 1 с вероятностью ½ становятся равны 0. Тогда для возникновения (*), потребуется приблизительно
последовательных нулей в бите обратной связи.
В силу предположения (*) состояния главного регистра
M(t + 1), …, M(t + 19)
линейно зависят от
M(t)
, и нам известна эта зависимость.
Выразим
z(t), z(t + 1), … , z(t + 19)
через значения битов главного регистра в момент t:
M(t) = (m
0
… m
159
)
.
Получим 20 уравнений с 20 неизвестными
, где
:
…
Аналогично получим системы уравнений, зависящих от
, где
и т. д.
Итого 8 систем из 20 уравнений с 20 неизвестными.
Ведем следующие обозначения:
,
,
…
.
Обозначим
вектор
Тогда системы сожно записать в виде
, где
— известная матрица, определяемая фильтрующей функцией. Алгоритм нахождения состояния главного регистра в предположении(*) можно описать следующим образом:
В момент времени t получаем на выходе байты:
z(t), z(t +1), . . . , z(t + 19)
for
i = 0
to
7
Решаем уравнение
if
(нет решений)
goto
1
else
сохраняем возможные значения
for
(каждый возможный набор
)
if
(M из
может дать на выходе
z(t), z(t +1), . . . , z(t + 19)
)
return
;
goto
1
Для осуществления описанной выше атаки требуется 2
26
байт шифротекста. Возможно улучшение атаки, требуюшее 2
24,3
байта. Аналогичная атака может быть применена к F-FCSR-16.
Примечания
↑ A. Klapper, M. Goresky, 2-adic shift registers, in Fast Software Encryption’93, ed. by R.J. Anderson. Lecture Notes in Computer Science, vol. 809 (Springer, Berlin, 1994), pp. 174—178
F. Arnault, T. Berger, A. Necer, A new class of stream ciphers combining LFSR and FCSR architectures, in Progress in Cryptology—INDOCRYPT 2002, ed. by A. Menezes, P. Sarkar. Lecture Notes in Computer Science, vol. 2551/2002 (Springer, Berlin, 2002), pp. 22-33
B. Zhang, H.Wu, D. Feng, F. Bao, Chosen ciphertext attack on a new class of self-synchronizing stream ciphers, in Progress in Cryptology—INDOCRYPT 2004, ed. by A. Canteaut, K. Viswanathan. Lecture Notes in Computer Science, vol. 3348/2004 (Springer, Berlin, 2004), pp. 73-83
F. Arnault, T. Berger, Design and properties of a new pseudorandom generator based on a filtered FCSR automaton. IEEE Trans. Comput. 54, 1374—1383 (2005)
F. Arnault, T. Berger, F-FCSR: Design of a new class of stream ciphers, in Fast Software Encryption 2005, ed. by H. Gilbert, H. Handschuh. Lecture Notes in Computer Science, vol. 3557 (Springer, Berlin, 2005), pp. 83-97
E. Jaulmes, F. Muller, Cryptanalysis of the F-FCSR stream cipher family, in Selected Areas in Cryptography—SAC 2005, ed. by B. Preneel, S. Tavares. Lecture Notes in Computer Science, vol. 3897 (Springer, Berlin, 2005), pp. 36-50
(неопр.)
.
Дата обращения: 23 ноября 2011.
27 мая 2011 года.
(неопр.)
.
Дата обращения: 23 ноября 2011.
27 мая 2011 года.
(неопр.)
.
Дата обращения: 23 ноября 2011.
27 мая 2011 года.
(неопр.)
.
Дата обращения: 23 ноября 2011.
5 декабря 2011 года.
M. Hell, T. Johansson, Breaking the F-FCSR-H stream cipher in real time, in Advances in Cryptology— ASIACRYPT 2008. Lecture Notes in Computer Science, vol. 5350/2008 (Springer, Berlin, 2008), pp. 557—569
(неопр.)
.
Дата обращения: 23 ноября 2011.
13 августа 2012 года.
Литература
M. Hell, T. Johansson, Breaking the F-FCSR-H stream cipher in real time, in Advances in Cryptology. ASIACRYPT 2008. Lecture Notes in Computer Science, vol. 5350/2008 (Springer, Berlin, 2008), pp.557-569
F. Arnault and T.P. Berger. F-FCSR: design of a new class of stream ciphers. In Fast Software Encryption — FSE 2005, v. 3557 of Lecture Notes in Computer Science, p. 83-97. Springer-Verlag, 2005.
F. Arnault, T. Berger, C. Lauradoux, Update on F-FCSR stream cipher. eSTREAM, ECRYPT Stream Cipher Project, Report 2006/025 (2006).