Главная страница
Навигация по странице:

  • ABCD

  • Перестановка байт в переменных ABCD

  • Лабораторная

  • лаб 15. Лаб раб 15. Лабораторные работы


    Скачать 0.6 Mb.
    НазваниеЛабораторные работы
    Анкорлаб 15
    Дата22.09.2022
    Размер0.6 Mb.
    Формат файлаdocx
    Имя файлаЛаб раб 15.docx
    ТипДокументы
    #690117
    страница26 из 26
    1   ...   18   19   20   21   22   23   24   25   26

    Выравнивание потока.


    В конец исходного сообщения, длиной L, дописывают единичный бит, затем необходимое число нулевых бит так, чтобы новый размер L' был сравним с 448 по модулю 512 (L’ mod 512 = 448). Добавление нулевых бит выполняется, даже если новая длина, включая единичный бит, уже сравнима с 448.
    1. Добавление длины сообщения.


    К модифицированному сообщению дописывают 64-битное представление длины данных (количество бит в сообщении). Т.е. длина сообщения T становится кратной 512 (T mod 512 = 0). Если длина исходного сообщения превосходит 264 - 1, то дописывают только младшие 64 бита. Кроме этого, для указанного 64-битного представления длины вначале записываются младшие 32 бита, а затем старшие 32 бита.
    1. Инициализация буфера.


    Для вычислений инициализируются 4 переменных размером по 32 бита и задаются начальные значения (шестнадцатеричное представление):

    A = 67 45 23 01;

    B = EF CD AB 89; C = 98 BA DC FE; D = 10 32 54 76.

    В этих переменных будут храниться результаты промежуточных вычислений.

    Начальное состояние ABCD называется инициализирующим вектором.
    1. Вычисление хеша в цикле.


    Исходное сообщение разбивается на блоки T, длиной 512 бит. Для каждого блока в цикле выполняется процедура, приведенная на рис.1. Результат обработки всех блоков исходного сообщения в виде объединения 32-битных значений переменных ABCD и будет являться хешем.



    Рис.1. Шаг основного цикла вычисления хеша

    В каждом раунде над переменными ABCD и блоком исходного текста Т в цикле (16 итераций) выполняются однотипные преобразования по следующей схеме.



    Рис.2. Одна итерация цикла раунда

    Условные обозначения.

    1. RF - раундовая функция, определяемая по следующей таблице.



    Таблица - Раундовые функции RF




    1. tj - j-ая 32-битовая часть блока исходного сообщения Т с обратным порядком следования байт;




    1. ki - целая часть константы, определяемой по формуле

    ki = 232 * | sin(i + 16 * (r - 1)) |, где i номер итерации цикла (i = 1..16);

    r номер раунда (r = 1..4).
    Аргумент функции sin измеряется в радианах.


    1. сложение по модулю 232.




    1. <<< si циклический сдвиг влево на si разрядов.


    Используемая 32-битовая часть блока исходного сообщения tj и величина циклического сдвига влево si зависят от номера итерации и приведены в следующей таблице.
    Таблица - Величины, используемые на шаге цикла раунда




    После 4 раундов новое (модифицированное) значение каждой из переменных ABCD складывается (⊞) с исходным (значением переменной до 1-го раунда).


    1. Перестановка байт в переменных ABCD. После обработки всех блоков исходного сообщения для каждой переменной выполняется обратная перестановка байт.



    Задание


    В лабораторной работе необходимо по алгоритму MD5 получить хеш-образ сообщения, состоящего из первых трех букв своей фамилии.
    Лабораторная работа №14 Генерация простых чисел

    Цель работы: используя решето Эратосфена создать программу построения простых чисел, которые не превосходят некоторого заданного числа N.

    Задание к работе


    В программной реализации решета Эратосфена должен быть разработан интерфейс, удобный для эксплуатации в интерфейсе предусмотреть:

    • ввода начальной информации из сформированного заранее файла и файла, который создается в оболочке программы;

    • ввод начальной информации с клавиатуры. Подготовить отчет по работе.

    В отчете описать алгоритм Эратосфена, описать структуру представления данных в программе, основные функции программы, назначение функций, входные и выходные параметры функций. Теоретический материал Решето Эратосфена Для составления таблицы всех простых чисел, которые не превосходят заданного числа N, надо из таблицы чисел 2, 3, …, N вычеркнуть все числа, которые делятся на два, кроме 2. Затем вычеркнуть все числа, которые делятся на три, кроме 3. Далее этот процесс (оставить наименьшее из оставшихся простых и вычеркивать все кратные этому простому) продолжаем до тех пор, пока очередное выбранное число не превысит N . Данный метод позволяет строить множество простых чисел, но он неудобен для проверки простоты заданного числа.
    Лабораторная работа №15 Реализовать защищенное от нелегальной установки программное

    Задание


    В рамках работы по дисциплине студенты должны реализовать защищенное от нелегальной установки программное приложение. Необходимо выбрать модель распространения программы (на выбор): Demoware, Trialware или Nagware.

    Для регистрации программы реализовать проверку введения регистрационного кода.

    Реализовать метод проверки регистрационного кода (на выбор):

      1. алгоритмический, основанный на принципе "чёрного ящика";

      2. алгоритмический, основанный на математически сложной проблеме;

      3. табличный.

    При необходимости в нужных местах следует применять шифрование. Алгоритм шифрования - на выбор в зависимости от шифруемых данных.
    Примерный перечень тем

    1. Калькулятор. Секретная информация: хранящаяся в файле история вычислений, которую в открытом виде можно посмотреть только с помощью калькулятора.

    2. Часы с функцией будильника. При срабатывании будильника звучит сигнал и выдаётся окно с сообщением. Сообщение можно задавать при заводе будильника. После срабатывания будильника сообщение добавляется в историю сообщений. Секретные данные: все хранящиеся в истории сообщения.

    3. Блокнот, создающий зашифрованный файл. Секретная информация: ключи,

    используемые для расшифровывания ранее созданных файлов. Ключи можно хранить в некотором файле, ставящем в соответствие каждому созданному файлу ключ.

    1. Файловый менеджер. Секретная информация: данные о каталогах, которые были открыты в панелях менеджера при его последнем закрытии.

    2. Браузер. Секретная информация: история посещения адресов.

    3. Программа учёта домашних финансов (Домашняя бухгалтерия). Секретная информация: все хранящиеся данные о доходах и расходах.

    4. Адресно-телефонная книга. Секретная информация: телефоны людей.

    5. Органайзер с напоминанием о событиях. Секретная информация: описание события.

    6. Домашняя библиотека (каталог книг). Секретная информация: названия книг.

    7. Решатель квадратных уравнений. Секретная информация: хранящаяся в файле история решения уравнений, которую в открытом виде можно посмотреть только с помощью решателя.

    Примечание: можно использовать другую задачу для написания приложения, если она не проще заданного варианта и согласована с преподавателем.
    1   ...   18   19   20   21   22   23   24   25   26


    написать администратору сайта