Анимация
JavaScript
|
Главная Библионтека 180 Ао/блер в задачах защиты информац ifit ==== RGen - так* работы стохастического генератора ПСП. =========== ==== При вызове: массив Regs - текущее состояние генератора == ==== DS: ВХ - адрес массива AddrSH, СХ = HSize, ============== ==== DS: SI - адрес массива Regs, DI = Тар2, DX = Tapl. ====== -=== При возврате: массив Regs - новое состояние генератора. = RGen PROC ; Сохранение содержимого используемых регистров pushf push es ах ; Инициализация и определение значений отводов ; обратной связи push ds pop es push bx cx raov bx, si dec dx add bx, dx raov ah, BYTE PTR [bx] dec di raov cx, di add si, di raov di, si dec si raov al, BYTE PTR [di] ; Формирование нового состояния генератора rep movsb pop cx bx xchg al, ah :№xtDig:push :atOfInput: Этой строки не должно быть, FB АВ -> FB ВА если RGen call RBox raov BYTE PTR [di], al Восстановление регистров pop ax es popf ret ENDP nput
:==== RBox - блок стохастического преобразования. ================== =================:================================================ ==== При вызове: AL - входной байт, АН - параметр преобразования, DS - сегментный адрес массива AddrSH, ВХ - относительный адрес массива AddrSH, СХ - размерность массивов Addr и Н (HSize), == === возможные значения - 4, 8. =================================== ==== При возврате: AL - выходной байт. ============================ ==== Input - процедура ввода числа с клавиатуры. ==== При возврате: AL - двоичное число. Input PROC •OModHs ize;
...?5.f.£fР l!?.?.:!!!.?. защиты информации ==== Addrini - процедура формирования массива Addr ==== по известному массиву Н. ===================== ==== При вызове: таблица Н стохастического преобразования, ======== ==== DS - сегментный адрес массива AddrSH, ВХ - относительный адрес ==== массива AddrSH, СХ - размер массивов Addr и Н (HSize). ======= ==== При возврате: готовый к использованию массив AddrSH. ========= Addrini PROC NextWrAddr:
Addrini ENDP Conv - процедура преобразования двоичного числа в строку цифр. ==== При вызове: АХ - двоичное число, меньшее 2560, =============== ==== DS: SI -адрес буфера для приема строки, ====================== ==== СХ - размер выходного буфера. ================================ ==== При возврате: готовая к выводу строка цифр исходного числа. == Conv NextDiv: div Exit:
conv popf ENDP Begin Результаты отладки программы: HSize: 4 Rbox: Tapl: 2 Tap2: 3 Period: 00014 HSize: 4 Rbox: 1 . 2 Tapl: 2 Tap2: 3 Period: 00063 HSize: 8 Rbox: 0 1 2 3 4 5 6 7 Tapl: 4 Tap2: 7 Period: 00508 2-63. Стохастический генератор байтовой ПСП
••15. Стохастический 8-разрядный генератор ПСП при N = 4, ФМ = х* + + ] 1 g4 /Ассембле p в задачах защиты и нфор; Rbox8 - процедура 8-разрядного стохастического преобразования. При вызове: AL - входной байт, АН - параметрпреобразования, DS:BX - адрес массива AddrSH {рис. 2• При возврате: AL - выходной байт. =----ЦЦЦЦЦЦИИ 1 HSize = 256 RBox8 RBox8 PROC push xlat add xlat pop ret ENDP al, ah bx, HSize чтение из таблицы Addr AL - адрес выходного байта в массиве Н ВХ - относительный адрес массива Н чтение из таблицы Н ==== RGen4N8 - стохастический 8-разрядный генераторПСП ==== N = 4, Ф{х) = X + х + 1 {рис. 2.6.15). =====----": ==== При вызове: массив Regs - текущее состояние генератора, ES:D1 - адрес массива RegsSAddrSH (рис. 2.6.16). -= При возврате: массив Regs - новое состояние sfP°Pfi l" ==== AL - выходной байт. RGen4N8 PROC pushf push mov inc push pop mov ; Входная информация для R-блока mov bx, si call RBoxS ds bx si si, di si es ds ax WORD PTR [di] eld mov movsb cx, N-1 mov BYTE PTR [di] ; Запись байта обратной связи в RegO pop si bx ds popf ret RGen4N8 ENDP , al Сохранение содержимого используемых регистров Инициализация регистров для команды MOVSB: ES:D1 -> Reg3, DS:SI -> Reg2 DS:BX - адрес массива AddrSH Вычисление байта обратной связи, AL - байт обратной связи (результат стохастического преобразования) Число повторений команды MOVSB Обновление регистров Reg2, Reg2, Regl Восстановление регистров
Массив Regs Массив Addr Массив И Puc. 2.6.16. Массив Regs&Addr&H 2.6.4. Использование /{-блоков для построения СйС-генераторов На рис. 2.6.17 показаны возможные схемы стохастических СЛС-генераторов На рис. 2.6.18 показан пример /?С7?С-генератора, построенного на основе 8-разряднол генератора ПСП, рассмотренного ранее (см. рис. 2.6.15). - rcrc4N8 - стохастический CRC-генератор. === N = 4, Ф(х) = X* + х + 1 (рис. 2.6.18). При вызове: массив Regs - текущее состояние генератора, ==11 " 2°™!6 массива RegsSAddrSH === ""= При возврате: ======================================= -ГГ 53 - новое состояние генератора. ============== ; Сохранение содержимого ; используемых регистров =tc4N8 PROC pushf push ds bx si raov si, di inc si ; DI -> RegS, SI -> B.eg2 mov BYTE PTR [si], al ОД входного байта в генератор mov ах, WORD PTR [di] водная информация для R-блока 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 |