Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [ 25 ] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88


Рассмотрим процесс получения СЛС-кода последовательности ошибок е. Каждый ед ничный бит этой последовательности, поступив на вход первых двух СЛС-генератор искажает состояние только одного, первого, разряда регистра. В третьем генератор в котором CRC-Kod последовательности А равен остатку от деления многочлена/4л на 9(jc), в аналогичной ситуации искажаются сразу njb разрядов, где пь - количество водов обратной связи.

В общем случае схемы СЛС-генераторов имеют вид, показанный на рис. 2.5.2.

Входная двоичная последовательность А

LFSRl Схема Фибоначчи

Feedback

Входная двоичная последовательность А

LFSR2 Схема Галуа

Feedback

LFSRl Схема Галуа

Feedback

Входная двоичная последовательность А

Рис. 2.5.2. Варианты схемы одноканального С/?С-генератора: а - на основе генератора Фибоначчи; б, в - на основе генератора Галуа

СЛС-генератор, обеспечивающий получение контрольного кода, равного остать от деления многочлена хА{х) на многочлен

ф(х)=л:+х + л:+/ + 1, где А{х) - многочлен входной последовательности

А = аа,а...а,...а„ „а, G {0,1}, tO,{m-1),

показан на рис. 2.5.3.

Глава

CRC-KOfl

.аьное состояние 1

начально»

I-e слово 0

2-е слово 0

1 0

1"

1 "

1 0

L.I.

2.5.3. Обработка Ф(х) = х + х +

двух слов в С/?С-генераторе, соответствующем образующему многочлену х + х + \ и характеристическому многочлену ~ х + ) + х + х +

2.5.3. Многоканальные СЛС-генераторы

5 /Р°ЧДУРУ формирования СЛС-кода многоразрядной последовательности, наприме итовой, можно реализовать двумя способами: либо преобразованием каждого бай •Чедовательности в последовательный код с последующей обработкой каждого би



в одноканальном СЛС-генераторе (рис. 2.5.4), либо побайтовой обработкой в q генераторе, реализованном на основе восьмиразрядного генератора Фибоначчи (р 2.5.5). В тех случаях когда разрядность используемого для получения СЛС-кода LF больше требуемой разрядности контрольного кода, последний снимается с младших р рядов СЛС-генератора. Например, для СЛС-генератора, показанного на рис. 2.5.5, разрядный контрольный код необходимо снимать с выходов

<7i5<7i4 - <7i • Ч2Я1Яо-

Входная многоразрядная последовательноаь А

Преобразователь параллельного кода в последовательный

Одноканальный CRC-генератор

Рис. 2.5.4. Многоканальный С/?С-генератор

</l -

Я, -

- 1,

- ?»

- Я,,


Н Яе.

----- <?,

Рис. 2.5.5. Восьмиканальный С/?С-генератор, реализованный по схеме Фибоначчи. Ф(х) = + х + 1

==== сгс16 - процедура формирования 16-разрядного CRC-кода ==== последовательности слов (содержимого буфера Buf). ====

==== При вызове: DS - сегментный адрес буфера, ====================

==== SI - относительный адрес буфера, СХ - размер буфера, =========

==== АХ - начальное состояние СКС-генератора, DX - вектор обратной

==== связи; при возврате: АХ - СКС-код заданного массива слов. ====

сгс16

PROC push

bx di

Глава

raov di, 16 ; Число повторений внутреннего цикла Начало внешнего цикла обработки очередного слова, число повторений равно числу слов в обрабатываемом массиве

-Word

NextBit:

ZeroFBl:

push

lodsw

Чтение буфера

push

Очередное слово в ВХ

;

Текущее значение CRC-кода

push

Сохраняем параметр внешнего цикла

raov

di ;

Число повторений внутреннего цикла

внутреннего

цикла

обработки очередного бита слова

ZeroFBl

dx ;

Выдвигаемый бит равен 1, поэтому

инвертируем биты CRC-генератора -

приемники сигнала обратной связи

ZeroFB2

dx ;

Обрабатываемый бит слова равен 1,

ZeroFB2:

crcie

25.4.

loop

loop

ENDP

NextBit ; cx ;

NextWord ; di bx

поэтому инвертируем биты CRC-генератора приемники сигнала обратной связи

Конец внутреннего цикла Восстанавливаем параметр внешнего цикла Конец внешнего цикла

Способы обмана 0?С-кода

в заключение сформулируем способы "обмана" СЛС-кода, т. е. способы внесения не-обнаруживаемых искажений информации. Пусть задан массив данных А. CRC-kojx Sa искаженного массива /1 будет равен Ci?C-кoдy массива А в следующих случаях:

) искаженный массив получается путем добавления к исходному массиву А информационной последовательности, имеющей нулевой СЛС-код;

) искаженный массив получается путем исключения из исходного массива А информационной последовательности, имеющей нулевой СЛС-код;

) искаженный массив получается путем замены фрагмента исходного массива А на другой, имеющий такое же значение CRC -кода;



Ассемблер в задачах защить( информа!

4) искаженный массив получается путем инвертирования битов исходного массив таким образом, чтобы соответствующий многочлен ошибок фс) делился Hat, на характеристический многочлен (f){x) генератора СЛС-кода.

2.6. Стохастическое преобразование информации

2.6.1. Л-блок

Эффективным средством защиты информации от случайных и умышленных деструц. тивных воздействий является стохастическое преобразование информации. Схема одного из возможных вариантов построения R-блока стохастического преобразования и его условное графическое обозначение показаны соответственно на рис. 2.6.1 и 2.6.2.

Ключевая информация R-блока - заполнение таблицы

Н = {Н{т)}, т = 0,(2"-1)

размерности я х 2", содержащей элементы GF(2"), перемешанные случайным образом, т, е, Щт) е GF{2"). Результат Rn{A,B) преобразования входного «-разрядного двоичного набора А зависит от заполнения таблицы Я и параметра преобразования В, задающего смещение в таблице относительно ячейки, содержащей значение А, следующим образом

Ря{А,В) = Н{{т + В) modi"), где т - адрес ячейки таблицы Н, содержащей код А, т. е. Н{тл) = А. Другими словами результат работы Л-блока суть считывание содержимого ячейки таблицы Н, циклически смещенной на В позиций в сторону старших адресов относительно ячейки, содержащее код А. Для ускорения преобразования в состав Л-блока вводится вспомогательный адресный массив

Addr= {AddHj)}

размерности « х 2", причем 1

V; = О, (2" -1) Addr{j) = nij. (

Иными словами ячейка с адресом J в массиве Addr хранит адрес ячейки массива содержащей код у. Заслуживают внимания следующие факты:

при Addr = {О, 1, 2,(2" - 1)}, т. е. при записи в каждую ячейку массива Addr ее собс венного адреса и « = 4 результат преобразования в точности совпадает с результата" работы двух тактов (сложение с 4 битами ключа и замена в соответствующем замены) одной секции раундовой функции российского стандарта криптографически защиты ГОСТ 28147-89;

в частном случае при Addr= {О, 1, 2, (2" - 1)} и В = О получаем классический блок (блок замены) с таблицей замен Я;

J- 03 2 Программирование алгоритмов защить! информации 1б1

при записи в каждую ячейку массивов Я и Addr ее собственного адреса получаел * ассический сумматор по модулю 2", а значит, с полным на то основанием Л-бло может быть назван стохастическим сумматором;

по такому же принципу (заменой сумматора по модулю 256 на операцию поразрядно! го XOR) может быть построен стохастический сум.штор в поле GF{2) (стохасти веский XOR), а возможно и другие элементы {AND, OR, modр и т. п.); g заслуживает дополнительного исследования схема стохастического преобразования показанная на рис. 2.6.3, где функция F - сумматор по модулю 2* или поразрядны! XOR (а возможно и другие операции AND, OR, modрнт. п.).

Вспомогательный массив (адресный)

Адрес Addr

О 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

S = 6

SM >

Основной

массив

Адрес

•""С- 2.6.1. Логика работы /?-блока

/г-10 -►



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [ 25 ] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88