Анимация
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


Puc. 2.6.2. Условное графическое обозначение /?-блока

Addr

Arlrlr

/лииГ

RF„(A,B)

) *

Рис. 2.6.3. Вариант схемы блока стохастического преобразования (RF-6aok)

Ключевая информация, необходимая для работы 7?-блока, - содержимое таблицы Н стохастического преобразования. Алгоритм замены ключевой информации, т. е. "перемешивания" или "взбивания" таблиц Н, показан на рис. 2.6.4. Каждая очередная пара байтов

BYTE,, BYTEt,]

инициализирующей последовательности меняет местами два соответствующих элемента массива Н, т. е. выполняется операция

HiBYTE,) H(BYTE,+i), i = О, 2, 4, где Нф - элемент массива Н, расположенный в ячейке с адресом J. Алгоритм формнр вания вспомогательного массива Addr показан на рис. 2.6.5.

ВПЕВПЕ.....fi)Tf„

w(syrf.)«

;•++,

ADDR{H(j))-j

i«2"?

ADDR

Рис. 2.6.4. Схема алгоритма "перемешивания" таблицы стохастического преобразования с использованием инициализирующей ПСП ВУТЕо, BYTEb BYTE2.....flVTf,, fiVTf,+i,

Puc. 2.6.5. Схема алгоритма формирования адресного массива Лсс/л по известному массиву Н

- RBox - процедура стохастического преобразования.

= При вызове: AL - входной байт, АН - параметр преобразования, = =- DS - сегментный адрес массива AddrSH, ========================

==== ВХ -=== СХ -

относительный адрес массива,AddrSH (рис. 2.6.6), ====

размерность массивов Addr и Н (HSize).

=== При возврате: AL - выходной байт. ==========

=====

RBox

?.Бох

PROC

push

xlat

al, ah

bx, cx

xlat

ENDP

; Чтение из таблицы Addr

; AL - адрес выходного байта в массиве Н

; ВХ - относительный адрес массива Н

; Чтение из таблицы Н



170 Ассемблер в задачах защиты инрмац1;у

AddrSH

DS;BX-»

AddrlO]

Addr [1]

Addr [2]

DS:[BX+HSize]-J

«[0]

«[1]

W[2]

Addr


Puc. 2.6.6. Массив Addr&H

HPerral - перемешивание таблицы замен S-блока или таблицы стохастического преобразования R-блока: S(Ql) <-4S(Q2). =

При вызове: таблица, содержащая все значения байта, ==========

DS: SI - адрес ключевого массива байтов, СХ - размер ключевого массива в словах (число циклов перемешивания), ===============

DS: ВХ - адрес таблицы. ======================================

При возврате: готовая к использованию (перемешанная) таблица.

HPeml PROC

Сохранение содержимого используемых регистров pushf

push ах di Инициализация eld

xor ah, ah Цикл перемешивания

NextPem:

lodsb

raov xlat

push lodsb

push xlat

raov

pop pop raov

; Чтение нечетного байта ключевой

; последовательности AL = Ql di, ax ; DI = Ql

; Чтение байта из ячейки таблицы

; с адресом Ql, AL = S(Q1) ах ; S(Q1) --> стек

Чтение четного байта ключевой

; последовательности AL = Q2 ах ; Q2 -> стек

; Чтение байта из ячейки таблицы

; с адресом Q2, AL = BYTE PTR [bx + di], al

S(Q2)

di ax

BYTE PTR

: Запись байта : с адресом Ql : DI = Q2 ; AL = S(Q1) [bx + di], al

S(Q2)

в ячейку таблицы

Глава 2. Профаммирование алгоритмов защиты информации

HPerml

; Запись байта S(Q1)

; в ячейку таблицы с адресом Q2

loop NextPerm Восстановление содержимого регистров pop di ах popf ret ENDP

s=== Addrini - процедура формирования массива Addr ================

==== по известному массиву Н. =====================================

==== При вызове: таблица Н стохастического преобразования, ========

==== DS - сегментный адрес массива AddrSH, ========================

==== ВХ - относительный адрес массива Addr&H, =====================

==== СХ - размер массивов Addr и Н (HSize).

==== При возврате: готовый к использованию массив AddrSH.

Addrini PROC

; Сохранение содержимого используемых регистров

push ах si di ; Инициализация

хог al, al

raov si, cx ; Цикл записи в массив Addr NextWrAddr:

di, WORD PTR [bx + si]

raov

and raov

di, OFFh

BYTE PTR [bx + di], al

inc al

inc si

loop NextWrAddr ; Восстановление содержимого регистров

pop di si ax ret

Mdrini ENDP

Чтение байта из массива Н

Запись байта в массив Addr Подготовка к следующему циклу

Можно предложить еще один возможный алгоритм формирования таблицы стохасти-ского преобразования, его схема приведена на рис. 2.6.7.



ВШу Вт.....BYTE,

j-0,i = 0

Запись байта BYTE, в ячейку таблицы Не адресом j НО) = BYTE,

Чтение байта BYTE,

Поиск BYTE, в заполненных ячейках таблицы Н



Рис. 2.6.7. Схема алгоритма формирования таблицы стохастического преобразования с использованием инициализирующей ПСП BYTEo, SVTfi, BYTE2,BYTEi,

Возможен вариант использования Л-блока, когда содержимое массива Я (а значи и содержимое массива Addr) зафиксировано, а ключевая информация подается на вход параметра преобразования. В этой ситуации для обеспечения возможности вычислени результата преобразования "на лету" (без использования таблиц) в качестве содержимог массива Я выбираются последовательные состояния генератора ПСП, который допуск, ет эффективную программную реализацию.

2.6.2. Использование Л-блоков

для построения генераторов ПСП

Для построения стохастического генератора ПСП RFSR в схеме LFSR, функционирующего в поле GF(2"), предлагается вместо блоков сложения в GF(2") использовать К блоки (рис. 2.6.8). Ключевая информация - заполнение таблиц Я, определяющих логиЮ работы Л-блоков.



Puc. 2.6.8. Общий вид стохастического генератора ПСП - RFSR (режим OFB]


Кед,

RFSRi

Reg,

Выход

RFSR2


-----Reg,,,

Выход

2.6.9. Варианты схемы RFSR с одним /?-6локом (режим OFB)

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

Рассмотрим вариант этой схемы с одним /?-блоком, которая может быть представле{ одном из двух идентичных вариантов (рис. 2.6.9, а - RFSRI, или 2.6.9, б - RFSR2). При ответствующем выборе таблицы стохастического преобразования выходная ПСП по сут это нелинейная М-последовательность, т. е. последовательность максимальной длины, своим статистическим свойствам превосходящая классическую Л/-последовательност выхода LFSR той же разрядности (рис. 2.6.10-2.6.12).



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