РОБОЧА НАВЧАЛЬНА ПРОГРАМА. Листинг А.1 – Программа шифрования/расшифрования текстовых сообщений с помощью алгоритма ГОСТ 28147-89
Листинг А.1 – Программа шифрования/расшифрования текстовых сообщений с помощью алгоритма ГОСТ 28147-89
.386 Sseg segment use16 para stack 'stack' db 256 dup(?) Sseg ends
Dseg segment para public 'data' strng db 'Rocking just to make ya move!$' key dd 0F3FA012Bh, 023FE412Ah, 013F5062Bh, 0D9FA0C9Bh dd 033AA1120h, 0B7FA0182h, 0A3FA0D25h, 083F7035Bh endWithZero dq 0;64 нуля mode db 0;флаг режима: зашифровка = 0, расшифровка = 1 (или любое другое число) last db 0;флаг последнего блока substitute db 4, 1, 3, 11, 0, 10, 5, 2, 7, 12, 6, 14, 8, 9, 15, 13 sblocks db 8 dup(0)
cb dw 0;count blocks, номер, по которому;будет записываться образованный блок в строку dcb dw 0;для decrypt cryptedstring db 256 dup(0) decryptedstring db 256 dup(0) endstr db 13d, 10d, '$';символ конца строки ;для ввода строки Dseg ends
Cseg segment use16 para public 'code' assume cs:Cseg, ds:Dseg, ss:Sseg start proc far ; push ds sub ax, ax push ax ; mov bx, Dseg mov ds, bx ; call main ret start endp main proc near lea dx, ds:[strng];вывод строки,;функция 9 прерывания ДОС 21 mov ah, 09h int 21h
lea dx, ds:[endstr];вывод строки,;функция 9 прерывания ДОС 21 mov ah, 09h int 21h
; ret lea bx, ds:[strng];получить адрес;нашей строки jmp process for_decryption: mov al, 1 mov mode, al;устанавливаем флаг;режима расшифровки lea bx, ds:[cryptedstring] process: xor esi, esi;обнуляем указатель на;строку xor edi, edi;указатель ключа
; maincycle: xor cx, cx lea ax, ds:[key];берем адрес следующей, за строкой, переменной sub ax, bx cmp ax, 8;если на итерации не будет 64 бит, то идем на ветку ;кода, где недостающие биты будут нулями
jl less64 jg next_step
next_step: mov eax, dword ptr [bx+si];занесли;левую часть add si, 4;следующие 4 байта (32 бита) mov edx, dword ptr [bx+si];занесли;правую часть add si, 4;смещение для следующего цикла add bx, 8;смещение для следующего цикла
push ax;сохраняем левую часть в;стек, чтобы освободить регистр для работы ror eax, 16 push ax jmp func ; less64: mov al, 1 mov last, al;флаг, что заменяется;последний блок ; add bx, si xor si, si lea cx, ds:[key] lesstrace: mov al, byte ptr [bx] mov byte ptr endWithZero[si], al inc si inc bx cmp bx, cx jne lesstrace xor cx, cx
;функция func: rol edi, 2 add edx, key[edi] ror edi, 2 ;подстановка ;извлечение push di push bx lea bx, substitute mov eax, edx and dl, 00001111b mov di, dx and di, 00FFh mov dl, substitute[di] mov sblocks[0], dl mov dx, ax shr dl, 4 mov di, dx and di, 00FFh mov dl, substitute[di] mov sblocks[1], dl mov dx, ax and dh, 00001111b xor dl, dl xchg dl, dh mov di, dx mov dh, substitute[di] mov sblocks[2], dh mov dx, ax shr dh, 4 xor dl, dl xchg dl, dh mov di, dx mov dh, substitute[di] mov sblocks[3], dh mov edx, eax shr edx, 16 mov ax, dx and dl, 00001111b mov di, dx and di, 00FFh mov dl, substitute[di] mov sblocks[4], dl mov dx, ax shr dl, 4 mov di, dx and di, 00FFh mov dl, substitute[di] mov sblocks[5], dl mov dx, ax and dh, 00001111b xor dl, dl xchg dl, dh mov di, dx mov dh, substitute[di] mov sblocks[6], dh mov dx, ax shr dh, 4 xor dl, dl xchg dl, dh mov di, dx mov dh, substitute[di] mov sblocks[7], dh pop bx pop di
;замена, склеивание S-блоков mov dl, sblocks[1] rol dl, 4 or dl, sblocks[0] mov dh, sblocks[3] rol dh, 4 or dh, sblocks[2] mov ax, dx mov dl, sblocks[5] rol dl, 4 or dl, sblocks[4] mov dh, sblocks[7] rol dh, 4 or dh, sblocks[6] rol edx, 16 mov dx, ax ;rol edx, 16
rol edx, 11
inc cl
mov al, mode;вспоминаем флаг;режима cmp al, 0; jz cryptmode jmp decryptmode
cryptmode: cmp ch, 3;если идет [0..3];последний цикл применения ключа, идти по подключам в обратном;порядке je creverse_di cmp di, 7;если дошли до;последнего подключа, переходим к первому je creset_di inc di ;inc ch jmp func creset_di: inc ch cmp ch, 3 je func xor di, di
jmp func creverse_di: cmp cl, 23 je func dec di cmp cl, 32 je out_cycle jmp func
decryptmode: cmp ch, 0;если первый проход по;ключу, идем прямо je ddirect_di cmp di, 0 je dset_di dec di cmp cl, 32;завершение 32-х циклов;преобразования jnb out_cycle jmp func dset_di: mov di, 7 inc ch
jmp func ddirect_di: inc di cmp di, 7 ja dset_di cmp cl, 32;завершение 32-х циклов;преобразования jb func
out_cycle: pop ax;восстанавливаем левую;часть из стека rol eax, 16 pop ax xor eax, edx xchg eax, edx
;сохранение блоков в новой строке mov cl, mode cmp cl, 0 jne save_decrypt push si mov si, cb mov dword ptr cryptedstring[si], eax add si, 4 mov dword ptr cryptedstring[si], edx add si, 4 mov cb, si pop si
save_decrypt: push si mov si, dcb mov dword ptr decryptedstring[si], eax add si, 4 mov dword ptr decryptedstring[si], edx add si, 4 mov dcb, si pop si
mov cl, last cmp cl, 0 je maincycle;конец шифровки
mov cl, mode;смена режима после;шифровки cmp cl, 0 je for_decryption
mov si, cb mov byte ptr cryptedstring[si], '$' mov si, dcb mov byte ptr decryptedstring[si], '$'
lea dx, ds:[strng];вывод строки,;функция 9 прерывания ДОС 21 mov ah, 09h int 21h
lea dx, ds:[endstr];вывод строки,;функция 9 прерывания ДОС 21 mov ah, 09h int 21h
lea dx, ds:[cryptedstring];вывод;строки, функция 9 прерывания ДОС 21 mov ah, 09h int 21h
lea dx, ds:[endstr];вывод строки,;функция 9 прерывания ДОС 21 mov ah, 09h int 21h
lea dx, ds:[decryptedstring];вывод;строки, функция 9 прерывания ДОС 21 mov ah, 09h int 21h
ret main endp Cseg ends end start
Примечание: для сборки программы нужно ввести в командной строке следующее: tasm <имя_файла> tlink <имя_файла> /3
РОБОЧА НАВЧАЛЬНА ПРОГРАМА
з курсу “Актуальні питання фінансового права” для підготовки магістрів (спеціалістів) денної (заочної) форми навчання за напрямом підготовки 0601 «Право» спеціальність 8.060101 «Правознавство» магістерська програма «Правове забезпечення фінансової діяльності держави» спеціальність 7.060101 «Правознавство» спеціалізація «Фінансово- правова діяльність» статус дисципліни: вибіркова ІРПІНЬ 2009 Робоча навчальна програма курсу «Актуальні питання фінансового права» складена на основі навчального плану підготовки, затвердженого в 2009 р.
Розглянуто і схвалено на засіданні кафедри фінансового права, Протокол № ___ від „___” _______ 200_р.
Завідувач кафедри Л.М. Касьяненко, к.ю.н., доцент
Погоджено: На засіданні вченої ради юридичного факультету Протокол № від "______________200_р.
Голова вченої ради Г.М. Самілик, к.ю.н., доцент, юридичного факультету декан юридичного факультету
Декан заочного факультету В. В. Бриштіна, к.е.н., доцент
Завідувач навчально-методичного відділу О.О.Бойко
Реєстраційний №______
Рецензія на робочу навчальну програму з курсу «Актуальні питання фінансового права» для підготовки магістрів спеціальності 8.060101 „Правознавство” магістерської програми «Правове забезпечення фінансової діяльності держави» спеціалістів напрям підготовки „Право” спеціальності 7.060101 „Правознавство” розроблену доцентом кафедри фінансового права Нечай А.А. та асистентом кафедри фінансового права Кармаліта М.В. На сьогоднішній день у нашій державі відбуваються зміни в економічній, політичній і правовій системах українського суспільства. Саме тому вітчизняна теорія фінансового права переживає період переосмислення, оновлення і поповнення власного понятійного апарату. Оскільки фінансова політика держави проводиться в життя через фінансове законодавство викладання курсу «Актуальні питання фінансового права» є обґрунтованим та забезпечить студентам необхідну правову підготовку. Робоча навчальна програма з курсу «Актуальні питання фінансового права» складена відповідно до встановлених вимог, що висуваються до робочих навчальних программ, розроблена на основі навчального плану підготовки, затвердженого у 2009 р. Зміст навчальної дисципліни та передбачена тематичним планом кількість годин для вивчення конкретних тем дозволять студентам визначати основні недоліки фінансової системи України, визначати основні проблемні аспекти фінансового контролю, бюджетного процесу, діяльності банківських установ в Україні. Авторами запропоновано ряд тем, що підлягають вивченню аудиторно та тих питань, які студенти повинні опрацювати самостійно і індивідуально. Запропонований план семінарських занять, завдання для самостійної роботи і індивідуальна робота спрямовані на необхідність розвитку у студентів логічного мислення, вміння орієнтуватися у нормативно-правових актах чинного законодавства. Рекомендована література містить достатній перелік джерел з актуальних питань фінансового права, навчальних посібників та іншої спеціальної літератури вітчизняних та зарубіжних авторів. В цілому робоча навчальна програма з курсу «Актуальні питання фінансового права» відповідає навчально-методичним вимогам і заслуговує на впровадження у навчальний процес.
Рецензент: доцент кафедри фінансового права к.ю.н, доцент А.М. Іскоростенський СТРУКТУРА ТА ЗМІСТ РОБОЧОЇ НАВЧАЛЬНОЇ ПРОГРАМИ
1. Передмова 2. Опис навчальної дисципліни 3. Структура навчальної дисципліни 4. Тематичний план (для заочної форми навчання) 5. Зміст навчальної дисципліни за змістовними модулями 6. Методи оцінювання знань та розподіл балів за рейтинговою системою 7. Форми і методи контролю оцінювання знань (для заочної форми навчання) 8. Перелік тем курсових робіт, тематика наукових доповідей 9. Контрольні питання з дисципліни 10. Рекомендована література 11. Список нормативних актів з курсу
|