Классическая криптография

Блок-схема алгоритма заполнения диагональных ячеек магического квадрата. Диаграммы переходов состояний, деятельности варианта использования "шифрование". Спецификации на программные модули. Разбиение на классы эквивалентности. Анализ граничных значений.

Рубрика Программирование, компьютеры и кибернетика
Вид отчет по практике
Язык русский
Дата добавления 27.04.2023
Размер файла 334,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Филиал федерального государственного бюджетного образовательного учреждения высшего профессионального образования

«Национальный исследовательский университет «МЭИ»

в городе Смоленске

Кафедра ВТ

Отчет

Тема: Классическая криптография

Студент: Костюхин К.А.

Смоленск 2013

1. Техническое задание

Клетки квадрата 4х4 пронумеровали так, что клетка в правом нижнем углу получила номер 1, а все остальные получили разные номера от 2 до 16. Оказалось, что суммы номеров клеток каждой строки, каждого столбца, а также каждой из двух диагоналей квадрата одинаковы («магический» квадрат). Клетки квадрата заполнили буквами некоторого сообщения так, что его первая буква попала в клетку с номером 1, вторая - в клетку с номером 2 и т. д. В результате построчного выписывания букв заполненного квадрата (слева направо и сверху вниз) получилась последовательность букв ЫРЕУСЕ ТВЬАТБЕКВПО. Восстановите магический квадрат и исходное сообщение.

2. Анализ технического задания

В качестве языка разработки взят Java. Первое, с чем необходимо определиться - это с алгоритмом восстановления магического квадрата. Так как согласно условию, клетка в правом нижнем углу получила номер 1, то заполнять квадрат номерами будем по следующему правилу: двигаясь снизу-вверх справа-налево заполняются помеченные клетки (счетчик начинается с единицы и инкрементируется с каждой клеткой), затем двигаясь сверху-вниз слева-направо аналогично заполняются непомеченные клетки. Карта помеченных клеток представлена на рисунке 1.

х

х

х

х

х

х

х

х

Рисунок 1 - Помеченные клетки магического квадрата

Далее для дешифрования данного в задании сообщения алгоритм ищет в магическом квадрате позиции номеров от 1 до 16 включительно и прибавляет к конечному сообщению соответствующую букву из шифрованного сообщения. Буквы шифровки можно хранить в массиве вместе с номерами ячеек, но это выльется в трехмерный массив и увеличит сложность работы с ним. Второй вариант - хранить символы шифровки в отдельном одномерном массиве, находить индексы i и j в двумерном массиве номеров, а к результирующей строке добавлять (4*i + j)-ый символ из одномерного массива. Второй вариант предпочтительнее, он в программе и используется.

3. Схемы, диаграммы

Блок-схема алгоритма заполнения помеченных (диагональных) элементов представлена на рисунке 2.

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

Программа разрабатывалась под конкретную задачу и конкретное зашифрованное послание, поэтому вариант использования у нее единственен - дешифрование шифротекста из задания. Диаграмма деятельности основного и единственного варианта использования представлена на рис. 4.

Функциональная диаграмма проста и представлена на рис. 5. В программе присутствует единственная функция void main(), которая и выполняет основную логику программы. В качестве входных параметров можно описать зашифрованное сообщение (а точнее массив из символов зашифрованного сообщения) и условие для восстановления магического квадрата(он должен быть нормальным магическим квадратом и левая нижняя ячейка должна иметь номер 1).

Рисунок 2 - Схема алгоритма заполнения диагональных ячеек магического квадрата

Рисунок 3 - Диаграмма переходов состояний

Рисунок 4 - Диаграмма деятельности варианта использования «шифрование»

Рисунок 5 - Функциональная диаграмма

После всех внутренних операций на выходе получается строка с расшифрованным сообщением.

Диаграмма компонентов еще проще функциональной и представлена на рис. 6. Проект состоит из единственного исполняемого компонента my_first_java.java, который содержит всю логику выполнения технического задания.

Рисунок 6 - Диаграмма компонентов

4. Спецификации на программные модули

Программа состоит из единственного модуля my_first_java.java.

Спецификация

1. Имя главного модуля - my_first_java.java

2. Вызывающий модуль - explorer.exe

3. Модуль содержит глобальные переменные и основную логику программы

4. Входные данные: зашифрованное сообщение и условие восстановления магического квадрата

5. Модуль разработан под конкретное задание и конкретное зашифрованное сообщение. Возможности что-то изменить без внесения изменений в код нет.

5. Тестирование

Функциональное тестирование

1) Разбиение на классы эквивалентности

Согласно алгоритму длина сообщения не может превышать размера магического квадрата, поэтому разобьем всевозможные сообщения на эквивалентные множества исходя из их длины (учитываем, что размеры квадрата 4х4). Результаты сведены в таблицу 1.

Таблица 1 - Разбиение на классы эквивалентности

Класс эквивалентности

Тестовый набор

Предполагаемый результат

Полученный результат

1

Сообщения длиной не превосходящие количества ячеек квадрата (до 16)

Зашифрованная фраза «_ИР_С____ЬС_В__М» (символ «_» означает незаполненную ячейку квадрата)

«МИРВСЕМ»

«МИРВСЕМ»

2

Сообщения длиной превосходящие количества ячеек квадрата (более 16)

Зашифрованная фраза «ЫЕРУСЕТВЬАТБЕКВПО» (состоит из 17 символов)

«ПЕРЕСТАВЬТЕБУКВЫ», последний символ шифротекста должен проигнорироваться

«ПЕРЕСТАВЬТЕБУКВЫ», последний символ шифротекста проигнорирован

Как видно из таблицы, предполагаемые результаты тестов совпали с полученными.

2) Анализ граничных значений.

Результаты сведены в таблицу 2.

Таблица 2 - Анализ граничных значений

Граничное значение (длина шифрованного сообщения)

Тестовый набор

Предполагаемый результат

Полученный результат

1

0

Пустое сообщение

Программа должна вывести пустую строку, так как строка шифротекста тоже пуста

Получена пустая строка

2

16

Шифровка «ЫРЕУС ТЕВЬТАБЕВКП»

«ПРЕЕСАТВЬЕТБУВКЫ»

«ПРЕЕСАТВЬЕТБУВКЫ»

Как видно из таблицы, предполагаемые результаты тестов совпали с полученными.

Визуализация тестирования

В качестве визуального примера работы программы на рисунке 7 приведены результаты последнего теста.

Рисунок 7 - Тестирование

магический квадрат шифрование эквивалентность

Приложение А

Текст программы

1. public class my_first_java {

2. public static void main(String[] args) {

3. // Создаем нормальный магический квадрат

4. int[] square[] = { {0,0,0,0}, {0,0,0,0},

5. {0,0,0,0}, {0,0,0,0} };

6. int len_ = square.length;

7. // идем снизу-вверх справа-налево по диагональным элементам

8. int num = 1;

9. for(int i = len_ - 1; i >= 0; i--)

10. for(int j = square[i].length - 1; j >= 0;j-- ){

11. if (i == j || i + j == len_ - 1)

12. square[i][j] = num;

13. num += 1;

14. }

15. // идем сверху-вниз слева-направо по недиагональным элементам

16. num = 1;

17. for(int i = 0; i < len_; ++i)

18. for(int j = 0; j < square[i].length; j++){

19. if (i != j && i + j != len_ - 1)

20. square[i][j] = num;

21. num += 1;

22. }

23. System.out.println("Magic square:");

24. for(int i = 0; i <4; ++i) {

25. for(int j = 0; j < 4; ++j){

26. System.out.print(square[i][j]);

27. System.out.print(" ");

28. }

29. System.out.println();

30. }

31. // Дешифруем

32. char mes_letters[] = {'Ы', 'Р', 'Е', 'У', 'С', 'Т', 'Е', 'В',

33. 'Ь', 'Т', 'А', 'Б', 'Е', 'В', 'К', 'П'};

34. String message = "";

35. for(int number = 1; number < mes_letters.length; ++number)

36. for(int i = 0; i < len_; ++i)

37. for(int j = 0; j < len_; ++j)

38. if (square[i][j] == number)

39. message += mes_letters[4*i + j];

40. System.out.println("\r\nDecripted message:\r\n" + message);

41.

42. }

43. }

Размещено на Allbest.ru

...

Подобные документы

  • Зарождение и развитие криптографии. Симметричное шифрование и его особенности. Нейронная сеть и области ее использования, основные составляющие. Математическая модель нейронной сети на базе базисно-радиальных функций. Алгоритм симметричного шифрования.

    курсовая работа [809,4 K], добавлен 30.09.2016

  • Изучение понятия и свойств алгоритма. Определение сущности технологии Robson. Исполнитель, а также блок-схема алгоритма или его графическое представление, в котором он изображается в виде последовательности связанных между собой функциональных блоков.

    реферат [155,9 K], добавлен 19.10.2013

  • Криптография и шифрование. Симметричные и асимметричные криптосистемы. Основные современные методы шифрования. Алгоритмы шифрования: замены (подстановки), перестановки, гаммирования. Комбинированные методы шифрования. Программные шифраторы.

    реферат [57,7 K], добавлен 24.05.2005

  • История возникновения криптографии. Открытый ключ криптосистемы. Шифрование секреторного ключа. Математические методы обеспечения конфиденциальности и аутентичности информации. Преобразование текста на основе секретного алгоритма в шифрованный текст.

    презентация [260,8 K], добавлен 11.10.2015

  • Характеристика вероятностного алгоритма и особенности его использования. Принцип работы и назначение генератора случайных чисел, сущность псевдослучайных чисел. Рассмотрение и реализация метода середины квадрата, разработка алгоритма и его кодирование.

    курсовая работа [50,3 K], добавлен 18.09.2009

  • Криптография — наука о методах обеспечения конфиденциальности и аутентичности информации. Реализация криптографии на примере трех программных продуктов: PGP, Tor, I2P. Понятие криптографических примитивов и протоколов, симметричных и асимметричных шифров.

    учебное пособие [180,4 K], добавлен 17.06.2011

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

    дипломная работа [1,2 M], добавлен 20.06.2011

  • Симметрическое шифрование как способ шифрования, в котором применяется один и тот же криптографический ключ. Функции стандартного диалогового окна открытия и сохранения файла. Характерная схема действий при генерации подписи. Цифровая подпись файла.

    курсовая работа [641,5 K], добавлен 14.06.2011

  • Примерный вид выходного сигнала датчика. Описание и блок-схема алгоритма обработчиков прерываний. Формула вычисления температуры на индикаторе. Перевод абсолютного значения в BCD-код. Блок-схема алгоритма основной программы. Динамическая индикация.

    курсовая работа [141,2 K], добавлен 21.10.2012

  • Особенности шифрования данных, предназначение шифрования. Понятие криптографии как науки, основные задачи. Анализ метода гаммирования, подстановки и метода перестановки. Симметрические методы шифрования с закрытым ключом: достоинства и недостатки.

    курсовая работа [564,3 K], добавлен 09.05.2012

  • Алгоритм решения задачи: расположение значений ветора в порядке возрастания методом "Всплывающих пузырьков". Блок-схема алгоритма решения задачи. Описание блок-схемы, распечатка программы. Операторы: rem, dim, print, input, lprint using, for-next.

    курсовая работа [17,4 K], добавлен 27.02.2010

  • История возникновения алгоритма симметричного шифрования, условия и особенности его применения на современном этапе. Принципы и функции исследуемой технологии. Анализ главных преимуществ и недостатков использования алгоритма, оценка его уязвимости.

    курсовая работа [301,9 K], добавлен 29.10.2017

  • Процесс разработки методических указаний к выполнению лабораторных работ, посвященных исследованию основ эллиптической криптографии, анализ протокола шифрования ECES. Требования к созданию и функционированию разрабатываемого программного обеспечения.

    дипломная работа [935,5 K], добавлен 08.06.2011

  • Выбор шифров перестановки для проведения анализа. Анализ алгоритма двух различных шифров, построение блок-схемы алгоритма и программы, разработка общего интерфейса. Сравнение шифров перестановки по результатам шифрования и криптоанализа текстов.

    курсовая работа [2,8 M], добавлен 14.01.2014

  • Разработка программы шифрования данных с использованием алгоритма DES. Структура алгоритма, режимы его работы. Электронный шифровальный блокнот. Цепочка цифровых блокнотов. Цифровая и внешняя обратная связь. Структура окна: функции основных кнопок.

    лабораторная работа [830,3 K], добавлен 28.04.2014

  • Элементы и переменные, используемые для составления записи в Паскале. Основные числовые типы языка Turbo Pascal. Составление блок-схемы приложения, программирование по ней программы для вычисления функции. Последовательность выполнения алгоритма.

    лабораторная работа [256,9 K], добавлен 10.11.2015

  • Табличный вывод значений суммы ряда и номера последнего элемента суммы в зависимости от значений величин входных параметров с применением операторов ветвления и циклов. Блок-схема алгоритма решения. Время работы программы для расчета одного значения.

    контрольная работа [762,9 K], добавлен 14.05.2013

  • Решение задачи по методу Адамса. Блок-схема функции main. Блок-схема функции Adams. Листинг программы. Блок-схема функции MMinor. Блок-схема функции MatrixMultiply. Блок-схема функции Determinant. Результат решения задачи на ЭВМ.

    курсовая работа [68,9 K], добавлен 16.04.2004

  • Безопасность электронной коммерции. Шифрование сообщений с открытым и закрытым ключом. Цифровая подпись и сертификат ключа. Стандарты безопасности. Роль закона "Об электронной цифровой подписи" во всех сферах деятельности. Электронный сертификат.

    презентация [141,0 K], добавлен 16.09.2013

  • История развития криптографии, ее основные понятия. Простейший прием дешифровки сообщения. Основные методы и способы шифрования, современный криптографический анализ. Перспективы развития криптографии. Создание легкого для запоминания и надежного пароля.

    курсовая работа [3,9 M], добавлен 18.12.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.