лаб 15. Лаб раб 15. Лабораторные работы
Скачать 0.6 Mb.
|
Выравнивание потока.В конец исходного сообщения, длиной L, дописывают единичный бит, затем необходимое число нулевых бит так, чтобы новый размер L' был сравним с 448 по модулю 512 (L’ mod 512 = 448). Добавление нулевых бит выполняется, даже если новая длина, включая единичный бит, уже сравнима с 448. Добавление длины сообщения.К модифицированному сообщению дописывают 64-битное представление длины данных (количество бит в сообщении). Т.е. длина сообщения T становится кратной 512 (T mod 512 = 0). Если длина исходного сообщения превосходит 264 - 1, то дописывают только младшие 64 бита. Кроме этого, для указанного 64-битного представления длины вначале записываются младшие 32 бита, а затем старшие 32 бита. Инициализация буфера.Для вычислений инициализируются 4 переменных размером по 32 бита и задаются начальные значения (шестнадцатеричное представление): A = 67 45 23 01; B = EF CD AB 89; C = 98 BA DC FE; D = 10 32 54 76. В этих переменных будут храниться результаты промежуточных вычислений. Начальное состояние ABCD называется инициализирующим вектором. Вычисление хеша в цикле.Исходное сообщение разбивается на блоки T, длиной 512 бит. Для каждого блока в цикле выполняется процедура, приведенная на рис.1. Результат обработки всех блоков исходного сообщения в виде объединения 32-битных значений переменных ABCD и будет являться хешем. Рис.1. Шаг основного цикла вычисления хеша В каждом раунде над переменными ABCD и блоком исходного текста Т в цикле (16 итераций) выполняются однотипные преобразования по следующей схеме. Рис.2. Одна итерация цикла раунда Условные обозначения. RF - раундовая функция, определяемая по следующей таблице. Таблица - Раундовые функции RF tj - j-ая 32-битовая часть блока исходного сообщения Т с обратным порядком следования байт; ki - целая часть константы, определяемой по формуле ki = 232 * | sin(i + 16 * (r - 1)) |, где i – номер итерации цикла (i = 1..16); r – номер раунда (r = 1..4). Аргумент функции sin измеряется в радианах. ⊞ – сложение по модулю 232. <<< si – циклический сдвиг влево на si разрядов. Используемая 32-битовая часть блока исходного сообщения tj и величина циклического сдвига влево si зависят от номера итерации и приведены в следующей таблице. Таблица - Величины, используемые на шаге цикла раунда После 4 раундов новое (модифицированное) значение каждой из переменных ABCD складывается (⊞) с исходным (значением переменной до 1-го раунда). Перестановка байт в переменных ABCD. После обработки всех блоков исходного сообщения для каждой переменной выполняется обратная перестановка байт. ЗаданиеВ лабораторной работе необходимо по алгоритму MD5 получить хеш-образ сообщения, состоящего из первых трех букв своей фамилии. Лабораторная работа №14 Генерация простых чисел Цель работы: используя решето Эратосфена создать программу построения простых чисел, которые не превосходят некоторого заданного числа N. Задание к работеВ программной реализации решета Эратосфена должен быть разработан интерфейс, удобный для эксплуатации в интерфейсе предусмотреть: ввода начальной информации из сформированного заранее файла и файла, который создается в оболочке программы; ввод начальной информации с клавиатуры. Подготовить отчет по работе. В отчете описать алгоритм Эратосфена, описать структуру представления данных в программе, основные функции программы, назначение функций, входные и выходные параметры функций. Теоретический материал Решето Эратосфена Для составления таблицы всех простых чисел, которые не превосходят заданного числа N, надо из таблицы чисел 2, 3, …, N вычеркнуть все числа, которые делятся на два, кроме 2. Затем вычеркнуть все числа, которые делятся на три, кроме 3. Далее этот процесс (оставить наименьшее из оставшихся простых и вычеркивать все кратные этому простому) продолжаем до тех пор, пока очередное выбранное число не превысит N . Данный метод позволяет строить множество простых чисел, но он неудобен для проверки простоты заданного числа. Лабораторная работа №15 Реализовать защищенное от нелегальной установки программное ЗаданиеВ рамках работы по дисциплине студенты должны реализовать защищенное от нелегальной установки программное приложение. Необходимо выбрать модель распространения программы (на выбор): Demoware, Trialware или Nagware. Для регистрации программы реализовать проверку введения регистрационного кода. Реализовать метод проверки регистрационного кода (на выбор): алгоритмический, основанный на принципе "чёрного ящика"; алгоритмический, основанный на математически сложной проблеме; табличный. При необходимости в нужных местах следует применять шифрование. Алгоритм шифрования - на выбор в зависимости от шифруемых данных. Примерный перечень тем Калькулятор. Секретная информация: хранящаяся в файле история вычислений, которую в открытом виде можно посмотреть только с помощью калькулятора. Часы с функцией будильника. При срабатывании будильника звучит сигнал и выдаётся окно с сообщением. Сообщение можно задавать при заводе будильника. После срабатывания будильника сообщение добавляется в историю сообщений. Секретные данные: все хранящиеся в истории сообщения. Блокнот, создающий зашифрованный файл. Секретная информация: ключи, используемые для расшифровывания ранее созданных файлов. Ключи можно хранить в некотором файле, ставящем в соответствие каждому созданному файлу ключ. Файловый менеджер. Секретная информация: данные о каталогах, которые были открыты в панелях менеджера при его последнем закрытии. Браузер. Секретная информация: история посещения адресов. Программа учёта домашних финансов (Домашняя бухгалтерия). Секретная информация: все хранящиеся данные о доходах и расходах. Адресно-телефонная книга. Секретная информация: телефоны людей. Органайзер с напоминанием о событиях. Секретная информация: описание события. Домашняя библиотека (каталог книг). Секретная информация: названия книг. Решатель квадратных уравнений. Секретная информация: хранящаяся в файле история решения уравнений, которую в открытом виде можно посмотреть только с помощью решателя. Примечание: можно использовать другую задачу для написания приложения, если она не проще заданного варианта и согласована с преподавателем. |