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

  • 1ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

  • Алгоритм RSA состоит из следующих пунктов

  • 2Практическая часть

  • 3СОДЕРЖАНИЕ ОТЧЕТА

  • методические указания. Лабораторная работа состоит из двух программ


    Скачать 271.5 Kb.
    НазваниеЛабораторная работа состоит из двух программ
    Дата18.04.2023
    Размер271.5 Kb.
    Формат файлаdoc
    Имя файламетодические указания.doc
    ТипЛабораторная работа
    #1071759




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

    Изучение ассиметричного алгоритма шифрования RSA
    Лабораторная работа состоит из двух программ:

    • первая программа RSA.exe представляет собой реализацию в обучающем режиме алгоритма RSA.

    • вторая программа DemoRSA.exe позволяет в демонстрационном режиме наглядно увидеть этапы работы алгоритма RSA на конкретном примере генерации открытого и закрытого ключа, шифрования/дешифрования информации.



    1ТЕОРЕТИЧЕСКАЯ ЧАСТЬ




    1.1Основы работы с программой



    При запуске программы (файл RSA.exe) появляется главная форма (см. рис 1), в которой и будет происходить вся дальнейшая работа. Форма имеет главное меню программы, куда входят такие пункты как «Вызов деморежима», «Вызов справки», «О программе» и «Выход».



    Рис.1 ­- Главное окно программы Rsa.exe
    На рисунке приняты следующие обозначения:

    1 – главное меню программы;

    2 – окно выбора количества бит в числах p и q;

    3 – кнопка генерации случайных простых чисел p и q в соответствии с размером, выбранным в окне 2;

    4 – поле ввода/отображения сгенерированного простого числа q;

    5 – поле ввода/отображения сгенерированного простого числа q;

    6 – кнопка вычисления произведения n=p*q;

    7 – поле отображения произведения;

    9 – кнопка вычисления функции Эйлера от числа n;

    10 – поле отображения значения функции Эйлера от числа n;

    11 – окно выбора открытой экспоненты e из простых чисел Ферма;

    12 – кнопка вычисления секретной экспоненты d;

    13 – поле отображения секретной экспоненты d;

    14 – поле отображения открытого ключа;

    15 – поле отображения секретного ключа;

    16 – поле отображения пути к исходному файлу;

    17 – кнопка, при нажатии на которую открывается диалоговое окно выбора исходного файла, который требуется зашифровать;

    18 – поле отображения пути к папке, в которую сохранится файл отчета о процессе шифрования;

    19 – кнопка, при нажатии на которую открывается диалоговое окно выбора папки для сохранения отчета;

    20 – кнопка, при нажатии на которую начинается процесс шифрования входного файла или строки;

    21 – прогресс-бар, показывающий, какая часть файла обработана;

    22 – кнопка, при нажатии на которую открывается диалоговое окно выбора папки для сохранения отчета;

    23 – поле отображения пути к папке, в которую сохранится файл отчета о процессе дешифрования;

    24 – кнопка, при нажатии на которую начинается процесс дешифрования;

    25 – прогресс-бар, показывающий, какая часть файла обработана;

    26 – картинка, изображающая процесс шифрования и дешифрования информации с помощью ассиметричного алгоритма RSA.
    При наведении курсора мыши на поля вывода информации и чисел появляются всплывающие подсказки. Например, поле на этапе «Вычисление значения функции Эйлера от числа n» имеет подсказку, представленную на рис.2.


    Рис.2 – Всплывающая подсказка
    Существует возможность вызвать демонстрационный модуль в главной форме из меню. Окно деморежима представлено на рис.3.



    Рис.3 – Окно демонстрационного режима

    При нажатии на единственную на форме кнопку Run, начинается демонстрация работы алгоритма шифрования. Можно просто наблюдать, как происходит генерация ключей и шифруется, а затем и дешифруется некоторый текст.

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

    1.2Краткая теория




    Основой для лабораторной работы является алгоритм шифрования с открытым ключом RSA.

    RSA (буквенная аббревиатура от фамилий Rivest, Shamir и Adleman) - криптографический алгоритм с открытым ключом. RSA стал первым алгоритмом такого типа, пригодным и для шифрования, и для цифровой подписи. Алгоритм используется в большом числе криптографических приложений.

    В криптографической системе с открытым ключом каждый участник располагает как открытым ключом (public key), так и секретным ключом (secret key). Каждый ключ - это часть информации. В криптографической системе RSA каждый ключ состоит из пары целых чисел. Каждый участник создаёт свой открытый и секретный ключ самостоятельно. Секретный ключ каждый из них держит в секрете, а открытые ключи можно сообщать кому угодно или даже публиковать их. Открытый и секретный ключи каждого участника обмена сообщениями образуют «согласованную пару» в том смысле, что они являются взаимно обратными.

    Алгоритм RSA состоит из следующих пунктов:

    1. Выбрать простые числа p и q заданного размера (например, 512 битов каждое).

    В криптографии под случайным простым числом понимается простое число, содержащее в двоичной записи заданное количество битов k, на алгоритм генерации которого накладываются определенные ограничения.

    1. Вычислить n = p * q

    2. Вычисляется значение функции Эйлера от числа n:

    m = (p - 1) * (q - 1)

    1. Выбрать число d взаимно простое с m

    Два целых числа называются взаимно простыми, если они не имеют никаких общих делителей, кроме ±1. Примеры: 14 и 25 взаимно просты, а 15 и 25 не взаимно просты (у них имеется общий делитель 5).

    1. Выбрать число e так, чтобы e * d = 1 (mod m)

    Числа e и d являются ключами. Шифруемые данные необходимо разбить на блоки - числа от 0 до n - 1.

    Шифрование и дешифровка данных производятся следующим образом:

    Шифрование: P(M) = Me mod n

    Дешифровка: S(C) = Cd mod n

    Следует также отметить, что ключи e и d равноправны, т.е. сообщение можно шифровать как ключом e, так и ключом d, при этом расшифровка должна быть произведена с помощью другого ключа.

    Схема шифрования и дешифрования RSA представлена на рис.4. Предположим, сторона B хочет послать стороне А сообщение М. Сообщением являются целые числа от 0 до n-1.



    Рис.4 – Схема шифрования/дешифрования RSA

    Размер ключа в алгоритме RSA связан с размером модуля n. Два числа p и q, произведением которых является модуль, должны иметь приблизительно одинаковую длину, поскольку в этом случае найти сомножители (факторы) сложнее, чем в случае, когда длина чисел значительно различается. Например, если предполагается использовать 768-битный модуль, то каждое число должно иметь длину приблизительно 384 бита. Обратите внимание, что если два числа чрезвычайно близки друг к другу или их разность близка к некоторому предопределенному значению, то возникает потенциальная угроза безопасности, однако такая вероятность – близость двух случайно выбранных чисел – незначительна.

    Оптимальный размер модуля определяется требованиями безопасности: модуль большего размера обеспечивает большую безопасность, но и замедляет работу алгоритма RSA. Длина модуля выбирается в первую очередь на основе значимости защищаемых данных и необходимой стойкости защищенных данных и во вторую очередь – на основе оценки возможных угроз.

    На 2009 год система шифрования на основе RSA считается надёжной, начиная с размера n = p * q в 1024 бита. В лабораторной работе предлагается выбрать размер чисел p и q, и сгенерировать ключ размерами 64 (при выборе размерности простых чисел из выпадающего списка – 32 бита), 128, 256, 512, 1024 бита.

    Более подробную информацию о данном алгоритме шифрования и конкретные примеры можно получить из справки, а также из источников, указанных в литературе.

    2Практическая часть





    1. Ознакомиться с теоретической частью данной лабораторной работы.




    1. Запустить файл RSA.exe и изучить интерфейс программы.




    1. Запустить из меню программы деморежим и просмотреть его до конца.




    1. Постараться реализовать разобранный пример:

    4.1. Выбрать из выпадающего списка размерность чисел p и q. Для начала это будет 32 бита. Следовательно, ключ будет 64-битный.

    4.2. С помощью генератора случайных простых чисел сгенерировать p и q (кнопка «Генерация»).

    4.3. Нажатием на соответствующие кнопки вычислить n и f(n).

    4.4. Из выпадающего списка выбрать открытую экспоненту. Пусть это будет 17.

    4.5. Нажать на кнопку, вычисляющую секретную экспоненту. В полях для вывода открытого и закрытого ключа будут примерно такие числа, как на рис.5.



    Рис.5 – Ключи сгенерированы

    Вставьте в отчет по лабораторной работе эти ключи.

    4.6. Выбрать текстовый файл размером 1 байт (то есть в файле должен быть один символ). Выбрать папку для сохранения зашифрованного файла.

    4.7. Нажмите на кнопку «Шифровать». Посмотрите размер зашифрованного файла. Его название будет таким: название исходного файла + ‘_crypt’. Объясните, почему 1 байт информации шифруется столькими байтами при ключе размером 64 бита. Выводы и сам зашифрованный текст вставьте в отчет.

    4.8. Зашифруйте файл размером от 8 до 16 байт, то есть 8-16 символов. Посмотрите размер полученного файла. Объясните, выводы вставьте в отчет.

    4.9. Нажмите на кнопку «Дешифровать». Теперь вы видите, как восстанавливается исходный файл. Его название будет таким: название исходного файла + ‘_decrypt’.
    5. Проделать все действия, описанные в пункте 4, для ключа размером 1024 бита. Для этого выбрать размерность чисел p и q 512 бит. В отчет вставить выводы по пунктам, а также ключи и содержимое исходного, зашифрованного и дешифрованного файлов.


    1. Проверка алгоритма на помехоустойчивость:

    Сгенерировать ключи произвольной длины. Зашифровать и дешифровать некоторый небольшой файл (меньше 350 байт – для шифрования файла большего размера потребуется слишком много времени, RSA – медленный алгоритм). Затем изменить один символ в шифрованном файле и попытаться дешифровать. Вставить в отчет результат и сделать выводы.


    1. Проверка алгоритма на криптостойкость:

    Сгенерировать ключи произвольной длины. Зашифровать и дешифровать некоторый небольшой файл. Изменить один символ в закрытом (секретном) ключе. В поле, изображенном на рис.6.



    Рис.6 – В этом поле нужно изменять секретный ключ

    Дешифровать файл таким ключом. Результат и выводы оформить в отчет.


    1. Сгенерировать ключи произвольной длины. Для шифрования выбрать любой нетекстовый файл, например, с расширением .bmp. Зашифровать и дешифровать его. Удалить из названия дешифрованного файла «_decrypt», убедиться, что он полностью идентичен исходному.


    8. Проверка скорости работы алгоритма:

    8.1. Зашифровать небольшой файл (1 Кбайт - 100 Кбайт), и посмотреть время шифрования.

    8.2. Дешифровать закодированный файл и посмотреть время дешифрования. Сравнить время шифрования и дешифрования. Сделать выводы. Проверить на работоспособность и корректность преобразования дешифрованный файл.

    8.3. Зашифровать большой файл (100 Кбайт - 350 Кбайт), и посмотреть время шифрования.

    8.4. Дешифровать закодированный файл и посмотреть время дешифрования. Сравнить время шифрования и дешифрования. Сделать вывод, объяснить, почему файл дешифруется дольше, чем шифруется. Проверить на работоспособность и корректность преобразования дешифрованный файл.
    9. Сделать общие выводы по работе. В отчете должны быть вставлены файлы-отчеты.

    3СОДЕРЖАНИЕ ОТЧЕТА


    Отчет о лабораторной работе должен содержать:

    1. Титульный лист

    2. Цель работы

    3. Краткую теорию, описывающую алгоритм RSA.

    4. Подробное описание проделанных экспериментов по пунктам 4­­ - 8, со всеми выводами и объяcнениями.



    4ЛИТЕРАТУРА


    1. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. Б. Шнайер- М.: Издательство Триумф, 2002-816с.

    2. http://www.e-nigma.ru/stat/rsa/

    3. http://ru.wikipedia.org/wiki/RSA

    4. http://www.cybersecurity.ru/manuals/crypto/algorithm/1868.html


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