Анимация
JavaScript
|
Главная Библионтека Puc. 2.6.2. Условное графическое обозначение /?-блока
Рис. 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„
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 ?.Бох
; Чтение из таблицы Addr ; AL - адрес выходного байта в массиве Н ; ВХ - относительный адрес массива Н ; Чтение из таблицы Н 170 Ассемблер в задачах защиты инрмац1;у AddrSH
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 |