Методы и задачи криптографической защиты информации. Мартынов А.И. - 48 стр.

UptoLike

Составители: 

Программные реализации LFSR генераторов достаточно медленны и
быстрее работают, если они написаны на ассемблере, а не на языке С. Одним из
решений является использование параллельно 16-ти LFSR (или 32 в
зависимости от длины слова в архитектуре конкретного компьютера). В такой
схеме используется массив слов, размер которого равен длине LFSR, а каждый
бит слова массива относится к своему LFSR. При условии, что используются
одинаковые номера отводных последовательностей, то это может дать
заметный выигрыш в производительности.
Схему обратной связи также можно модифицировать. При этом генератор
не будет обладать большей криптостойкостью, но его будет легче реализовать
программно. Вместо использования для генерации нового крайнего левого бита
битов отводной последовательности выполняется XOR каждого бита отводной
последовательности с выходом генератора и замена его результатом этого
действия, затем результат генератора становится новым левым крайним битом
(Рисунок 2.11).
Эту модификацию называют конфигурацией Галуа. На языке С это
выглядит следующим образом:
static unsigned long ShiftRegister = 1;
void seed_LFSR (unsigned long seed)
{
if (seed ==0)
seed = 1;
ShiftRegister = seed;
}
int Galua_LFSR (void)
{
if (ShiftRegister & 0x00000001) {
ShiftRegister = (ShiftRegister ^ mask >> 1) | 0x8000000;
return 1;
} else {
ShiftRegister >>= 1;
return 0;
}
}
Выигрыш состоит том, что все XOR выполняются за одну операцию. Эта
схема также может быть распараллелена.
Рисунок 2.11. LFSR Галуа