ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ Алексеев А. П. ВЫЧИСЛЕНИЯ С ПОМОЩЬЮ МАТЕМАТИЧЕСКОЙ СИСТЕМЫ РТС MATHCAD PRIME 3. 0 Методические указания к проведению лабораторной работы Самара - 2015 ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования «ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ» Кафедра информатики и вычислительной техники А.П. Алексеев ВЫЧИСЛЕНИЯ С ПОМОЩЬЮ МАТЕМАТИЧЕСКОЙ СИСТЕМЫ PTC MATHCAD PRIME 3.0 Методические указания к проведению лабораторной работы Самара, 2015 г. 2 УДК 004.414.2(076)+ 519.8(076) Рецензент д.ф.-м.н., проф. Блатов И.А. Рекомендовано к изданию методическим советом ПГУТИ, протокол № 15 от 17 декабря 2014 г. Алексеев А.П. Вычисления с помощью математической системы PTC Mathcad Prime 3.0. Методические указания к проведению лабораторной работы по дисциплине «Информатика», для студентов первого курса специальностей 10.03.01 и 10.05.02 Методические указания содержат девять заданий на выполнение расчѐтов и составление программ в Mathcad: Операции с комплексными числами. Вычисление рядов, факториалов и интегралов. Расчѐт интеграла графическим способом. Вычисление пределов. Логические операции в матричной форме. Преобразование матриц (метод гаммирования). Составление программ на языке Mathcad (шифры атбаш, Цезаря, RSA). 3 Введение В инженерной деятельности приходится производить большое число математических расчетов. Уменьшить число ошибок в расчетах и автоматически решать сложные задачи позволяют математические системы, например, Derive, Mathcad, MATLAB, Mathematica, Maple [1, 4]. В данной работе рассматривается наиболее свежая на данный момент времени версия математической системы PTC Mathcad Prime 3.0. Интерфейс этой версии математической системы существенно отличается от интерфейсов предыдущих версий (Mathcad 15, Mathcad 14…). Есть изменения и в синтаксисе программ этих версий. Большое число разнообразных заданий в данных методических указаниях позволяет преподавателю использовать разные варианты проведения занятий на различных специальностях и при изменяющемся числе выделяемых часов. Помимо необходимых всем специальностям задач математического анализа в данной публикации значительное внимание уделяется вопросам защиты информации, которые решаются с помощью математической системе. Автор выражает благодарность доценту Макарову М.И. за помощь в выборе и обсуждении приведѐнных здесь задач. 4 Лабораторная работа «Вычисления с помощью математической системы PTC Mathcad Prime 3.0» 1. Цель работы Освоить порядок выполнения простейших вычислений и составления программ в Mathcad, получить навыки в проведении анализа полученных результатов. 2. Общие сведения Отличительной особенностью математической системы Mathcad является одновременное присутствие в документах текста, самой программы и продуктов еѐ работы (в виде формул, программ, результатов расчѐта, таблиц, графиков и итогов символьного преобразования аналитических формул). Вид документа напоминает научную статью. Основные команды размещены на ленте, которая может быть настроена по усмотрению конкретного пользователя. Вид уравнений в основном совпадает с привычной математической записью. Писать формулы можно по всей свободной площади листа. Математическая система подбирает размеры для дробей, скобок и других математических символов так, чтобы они были пропорциональными и выглядели в привычном виде. В системе используются стандартные символы для обозначения суммы, произведения, интеграла, производной, предела и т. д. Однако некоторые особенности синтаксиса системы приводят к частым ошибкам при записи формул. Например, вместо необходимой записи sin(x)2 часто ошибочно записывают sin2x. В системе принято аргумент указывать в круглых скобках, которые должны располагаться сразу за именем функции. Первоначально нелогичным кажется использование в системе нескольких знаков определения и вычислений. Например, в следующем примере использованы три операции присвоения (назначения) переменным некоторых числовых значений, а четвертая операция выводит на экран результат суммирования. В этих случаях используются разные символы. 5 Существует оператор глобального присвоения, который сохраняет назначенное значение во всем документе. Попытка присвоить глобальной переменной новое значение приведѐт к неудаче. Ещѐ один символ (стрелка) служит для запуска в действие символьных операций: Символ сравнения (жирный знак равенства) имеет конфигурацию, сходную с конфигурацией рассмотренных знаков. Однако он используется иначе, например, для нахождения корней квадратного уравнения: В режиме программирования используется ещѐ один вид присвоения (стрелка, направленная справа-налево). Некоторое представление о возможностях математической системы даѐт вкладка Функции. Предлагаемый набор функций позволяет успешно решать большинство инженерных задач. Данная математическая система позволяет выполнять разнообразные математические преобразования, в том числе есть возможность использовать логические функции, изучение которых необходимо в курсе «Информатика». На рисунке показан пример работы с наиболее часто используемыми логическими функциями в векторной форме. 6 Естественно, что в Mathcad доступна не только Булева алгебра, но и обычная алгебра. Следующий рисунок показывает примеры арифметических операций в матричной форме. В Mathcad можно задавать точность проводимых вычислений и определять форму чисел, в которой выводится результат. Математическая система позволяет строить двухмерные и трѐхмерные графики. На следующем рисунке показан график, построенный в прямоугольной системе координат. 7 Расположение мест заполнения вида функции и аргумента первоначально кажется непривычным. Нагляднее располагать обозначение функции вдоль вертикальной оси, а имя аргумента вдоль горизонтальной. Ради справедливости следует отметить, что надписи (легенды) можно перемещать по графику. На следующих рисунках показан график в полярной системе координат и трѐхмерный график. 8 3. Задания на выполнение лабораторной работы 3.1.Задание 1. Выполнить операции с комплексными числами В соответствии с номером варианта выполнить в алгебраической форме операции сложения Z1 + Z2, вычитания Z1 - Z2, умножения Z1 * Z2 и деления Z1 / Z2 над комплексными числами, указанными в таблице 3.1. Таблица 3.1. Вариант 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Z1 3 7i 3 7i 3 7i 3 7i 5 + 2i 5 + 2i 5 + 2i 5 + 2i 7 + 8i 7 + 8i 7 + 8i 7 + 8i 4 6i 4 6i 4 6i 4 6i Z2 4 + 9i 4 9i 4 + 9i 4 9i 6+i 6+i 6 i 6 i 1 + 3i 1 + 3i 1 3i 1 3i 4 + 9i 4 9i 4 + 9i 4 9i 9 1 Задание 2. Выполнить вычисления по формулам (таблицы 3.2.1, 3.2.2 и 3.2.3). Произвести расчѐт при х = 1,2; a = 3,4; b = 6,7 Таблица 3.2.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 10 Произвести расчѐт при m = 8, n = 5 и p = 10 Таблица 3.2.2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 11 Вычислить определѐнный интеграл Табл.3.2.3 1 2 2 5 1 x (2 (3 dx 2 9 x) dx x) 2 1 3 4 2 6 1 9 x 2 si n( 2 dx 3 x) dx 2 1 5 6 5 6 x si n( x) dx x 2 cos 1 dx 3 7 8 8 6 2 si n( x) cos ( x) dx x 3 3 cos ( x) dx 3 9 10 3 2 cos ( x) cos ( x) dx 1 cos ( x) si n( x) 1 2 dx 2 11 12 2 3 cos ( x) si n( x) 4 dx e x dx 2 3 13 14 2 2 si n( x) dx 1 0 15 1 dx cos ( x) 3 16 12 3.3. Задание 3. Вычислить определенный интеграл графическим способом 1. интеграл: Используя формулу Ньютона-Лейбница, вычислить вручную определѐнный b 1 x 2 dx , 1 где b - номер варианта (порядковый номер студента по списку). 2. С помощью системы Mathcad построить график подынтегральной функции х2. На графике образовать координатную сетку и подсчитать число клеток, которое занимает криволинейная трапеция. Определив площадь одной клетки, найти площадь криволинейной трапеции, образованной подынтегральной функцией, осью абсцисс, прямыми x = 1 и x = b+1. Результат графического расчета площади сравнить с результатом, полученным в п.1. 13 3.4. Задание 4. Найти предел в соответствии с вариантом Таблица 3.4. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 14 3.5. Задание 5. Выполнить логические операции в матричной форме Выполнить в матричной форме пять логических операций: дизъюнкцию, конъюнкцию, Исключающее ИЛИ (неравнозначность), инверсию векторов А и В. Объяснить полученные результаты. Таблица 3.5. Вариант 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 3.6. Вектор А 10100001 10100010 10100011 10100100 10100101 10100110 10100111 10101000 10101001 10100100 10100100 10100100 10100100 10100100 10101111 10110000 Вектор В 11000011 10011100 11100010 11001100 11000011 10011100 11100010 11001100 11000011 10011100 11100010 11001100 11100010 11001100 11101100 10010011 Задание 6. Выполнить преобразование матриц 1. Создать матрицу М размером 8х8 с изображением в бинарной форме первой буквы Вашей фамилии. 2. Создать матрицу G (8х8), содержащую псевдослучайные двоичные числа. Псевдослучайные числа в матрице получить путѐм преобразования букв Вашей фамилии в двоичные числа с помощью кодовой таблицы CP-1251 (Приложение 1). 3. Получить матрицу С путѐм выполнения векторной операции Исключающее ИЛИ над матрицами M и G. 4. Получить матрицу P путѐм выполнения векторной операции Исключающее ИЛИ над матрицами C и G. 5. Получить матрицу W путѐм суммирования матрицы М с матрицей R, содержащей только единицы. 6. Сделать анализ полученных результатов. 15 3.7. Задание 7. Зашифровать текст шифром атбаш Составить программу на языке Mathcad и зашифровать свою фамилию, записанную заглавными латинскими буквами, с помощью шифра атбаш. 3.8. Задание 8. Зашифровать текст шифром Цезаря Составить программу и зашифровать свою фамилию, записанную заглавными латинскими буквами, с помощью шифра Цезаря. 3.9. Задание 9. Исследовать алгоритм шифрования RSA Выполнить моделирование процесса передачи сообщения secrb от банкира к вкладчику и сообщения secrv от вкладчика к банкиру. Исследование произвести с помощью программы, составленной на языке Mathcad. Исходные данные для моделирования передачи сообщения от банкира к вкладчику приведены в таблице. Таблица 3.9 Вар. q1 p1 secrb Вар q1 p1 secrb . 1 71 101 21 9 37 139 9 2 67 103 22 10 31 149 10 3 61 107 23 11 29 151 11 4 59 109 24 12 23 157 12 5 53 113 25 13 19 163 13 6 47 127 26 14 17 167 14 7 43 131 27 15 13 173 15 8 41 137 28 16 11 179 16 Простые числа q2, p2 и передаваемое вкладчиком число secrv выбрать самостоятельно. Таблица простых чисел приведена в Приложении 2. 16 4. Порядок выполнения лабораторной работы 4.1. Методические указания к заданию 3.1 Для ввода формул следует использовать вкладку Математика (Операторы, Алгебра). Следующий листинг показывает порядок выполнения алгебраических операций с комплексными числами. i 1 Z1 5 3i Z2 4 2i Z1 Z2 9 i Z1 Z2 1 5i 26 2i Z1 Z2 Z1 Z2 0 .7 1 .1i 17 4.2. Методические указания к заданию 3.2 Используя вкладку Математика (пункт Математический анализ), нужно ввести исходные данные и расчетные формулы. . Ниже приеден листинг программы для расчѐта рядов. x 3 a 4 b 5 8 y si n( k a k y 3 0 .56 7 5 z co s n n z b) 3 b x 2 0 .19 1 18 Приведѐм пример использования формул, содержащих факториалы. m 5 n 8 p 3 (n (m m) p) p 0 .75 Ниже показан пример вычисления определѐнного интеграла. 5 cos( 2 x ) sin( 3 x 2 )dx 0.276 2 19 4.3. Методические указания к заданию 3.3 Предположим, что дан интеграл: b 1 x 3dx . 1 1. Для девятого варианта b = 9 и значение интеграла, найденное по формуле НьютонаЛейбница, составляет: 9 1 x 3dx 1 x4 4 10 1 10 4 4 14 = 2499,75. 4 2. Определим графически приближѐнное значение этого же интеграла, подсчитав площадь криволинейной трапеции, образованной графиком подынтегральной функции, осью абсцисс и вертикальными прямыми на краях интервала интегрирования. Для построения графика заданной функции на ленте нужно выбрать вкладку График (Вставить график, График XY). В результате этих действий на экране появится заготовка, на которой нужно описать функцию и аргумент. Для этого на графике предусмотрены места заполнения, положение которых не столь удачное по сравнению с предыдущими версиями программы. Видимо, место для указания вида функции следовало бы указать на вертикальной оси, а аргумента - на горизонтальной. Однако программа позволяет переместить легенды в указанные места графика. 20 Вид заготовки показан на следующем рисунке. После простановки легенды и щелчка ниже заготовки появится график. Из рисунка видно, что по умолчанию аргумент изменяется от -10 до +10. Для рассматриваемой задачи интерес представляет только первая четверть графика. Чтобы исключить лишнее изображение на графике нужно соответственно изменить диапазон вариации аргумента. Делается это с помощью оператора диапазона x,y..z. Оператор возвращает последовательность чисел с шагом (y − x), начиная с x и заканчивая z. В этом случае аргумент изменяется от 1 до b=10 с шагом 0,01. Для нахождения интеграла графическим способом нужно нанести на график коорди21 натную сетку. К сожалению, в версии PTC Mathcad Express Prime 3.0 не стало этой удобной функции. Поэтому координатную сетку нанесѐм на график с помощью какого-либо графического редактора. Площадь закрашенной фигуры, расположенной ниже графика подынтегральной функции, численно равна определѐнному интегралу от этой функции. Примерно оценим эту площадь визуально. Площадь одной клетки на графике составляет 90 единиц. Число целых клеток, умещающихся на криволинейной трапеции, равно 18. Площадь фигуры, состоящей только из целых клеток, составляет 90*18 = 1620 единиц. Площадь частично вошедших в фигуру клеток приблизительно можно определить так: (0,01+0,1+0,3+0,7+1+0,3+0,9+0,3+0,9+0,3+0,9+0,3+0,6+0,1+0,9+0,7+0,2)*90= 855,9 единиц. Дробные числа показывают, какую долю от площади целой клетки составляет закрашенная часть клетки. Таким образом, общая площадь криволинейной трапеции, состоящей из целых и частично закрашенных клеток, составила примерно 2475,9 единиц. Сравнивая полученный результат с точным значением интеграла (2499,75), видим, что приближенное значение имеет несколько меньшую величину. Это объясняется неточным визуальным определением площади криволинейной трапеции. Естественно, что процедура определения площади субъективна и при каком-то расчѐте площади она может оказаться больше истинной. Проделанные вычисления дают наглядную интерпретацию определѐнному интегралу, который можно представить себе, как площадь криволинейной трапеции, образованной графиком подынтегральной функции, осью абсцисс и вертикальными прямыми на краях интервала интегрирования. Наглядной иллюстрацией эффективного использования математического анализа является следующий обыденный пример. Предположим, что необходимо определить площадь дачного участка, который с трѐх сторон огорожен заборами, а с четвертой стороны проходит извилистый овраг. Чтобы воспользоваться рассмотренной методикой вычисления определѐнного интеграла нужно математически описать (аппроксимировать) форму оврага, то есть определить подынтегральную функцию f(x). 22 4.4. Методические указания к заданию 3.4 Чтобы вычислить предел, нужно сформировать соответствующий оператор, который находится на вкладке Математика (Операторы, Математический анализ). Появится заготовка, на которой обозначены места для ввода выражения, переменной и ограничивающего значения. Ниже приведѐн пример заполнения этих мест. Чтобы получить результат нужно ввести символьный оператор выполнения расчѐта, который находится на вкладке Математика (Операторы, Определение и вычисление): 23 В итоге получится результат: С целью проверки полученного результата найдѐм предел вручную. Для этого определим корни квадратного уравнения, записанного в числителе: x1 3; x2 2. Учитывая известное соотношение: ax2 bx c a ( x x1 ) ( x x2 ) , числитель можно записать в виде: x 2 15 x 56 ( x 3)( x 2) . После очевидных преобразований получим: Полученное число говорит о том, что результаты ручного и машинного расчѐтов совпадают. 24 4.5. Методические указания к заданию 3.5 В данном задании переменные являются вектор-столбцами. Для присвоения переменным необходимых значений следует использовать вкладку Матрицы/таблицы. С помощью пункта Вставить матрицу формируется необходимая конфигурация вектор-столбца (в данном случае 8х1). Заполнение заготовки единицами и нулями ведѐтся стандартно. Так как логические операции выполняются над векторами, то вначале нужно ввести оператор векторных операций. Вызвать этот оператор можно на вкладке Математика (Операторы, Векторы и матрицы). На следующим рисунке этот оператор выделен овалом. Для выполнения задания придѐтся выполнить четыре разных операции. Необходимые операторы расположены на вкладке Математика (Операторы, Сравнение). На рисунке они выделены овалами. На следующем рисунке приведѐн пример выполнения логических операций в векторной форме. Важной особенностью этих операций является то, что между собой взаимодействуют только одноименные разряды двоичных чисел (или говоря математическим языком: числа, расположенные в одинаковых строках). 25 26 4.6. Методические указания к заданию 3.6 Это задание иллюстрирует принцип криптографической защиты информации. Пусть на передающей стороне имеется сообщение (Message) в виде матрицы М, содержащей описание какой-либо буквы. Для того чтобы скрыть от противника содержание сообщения его нужно зашифровать. В данном задании шифрование производится аддитивным методом (методом гаммирования). Для получения криптограммы С (Crypto) выполняется сложение с помощью логической операции Исключающее ИЛИ сообщения М с псевдослучайной матрицей G (Gamma) [3]. Заметим, что матрица G должна быть известной лишь на передающей и на приѐмной сторонах. Для криптоаналитиков она должна быть неизвестной и трудно вычислимой. Зашифрованное сообщение (матрица С) предаѐтся по открытому каналу связи на приѐмную сторону, где для дешифрования выполняется еѐ сложение с гаммой (G). Рассмотрим пример выполнения этого задания. Предположим, что с передающей стороны отправлено сообщение в виде латинской буквы «F», записанной в матрицу 8x8 в виде единиц на фоне нулей. Для защиты от несанкционированного ознакомления нужно исказить сообщение М так, чтобы затруднить чтение для третьей стороны (криптоаналитиков). Процесс преднамеренного искажения сообщения на передающей стороне называется шифрованием. Шифрование в данном случае производится путѐм поэлементного суммирования сообщения М с псевдослучайной матрицей G, для формирования которой используется фамилия студента. Понятно, что это делается лишь в учебных целях. В реальных случаях для формирования гаммы должен использоваться генератор случайных чисел. Будем считать, что фамилия студента – Пфердман. При выполнении задания длина фамилии студента может оказаться не равной восьми буквам. В этом случае длинные фамилии нужно использовать частично, а короткие фамилии дополнять буквами имени (и отчества) студента. Для формирования матрицы G вначале составим таблицу со значениями двоичных чисел. Буквы П ф е р д м а н Десятичный код 207 244 229 240 228 236 224 237 Двоичный код 11001111 11110100 11100101 11110000 11100100 11101100 11100000 11101101 27 Двоичные числа из третьего столбца таблицы нужно перенести в матрицу G. После суммирования матриц получим криптограмму: Криптограмма передаѐтся по открытому каналу связи. На приѐмной стороне выполняется расшифрование криптограммы. Для этого выполняется опять операция Исключающее ИЛИ над матрицами С и G. Полученная матрица Р точно совпадает с отправленной матрицей М, хотя по каналу связи передавалась «искажѐнная» матрица С. По виду матрицы С противнику сложно понять какая буква передавалась по каналу связи. Вид матрицы G известен только на передающей и приѐмной сторонах. Сложность дешифрации сообщения третьей стороной состоит в том, что криптоаналитикам неизвестен вид матрицы G. Если сделать попытку подобрать вид матрицы G, то результат будет многозначным. При разных матрицах G можно получить любую букву открытого текста, а это значит, что криптоанализ не достигает необходимого результата. Рассмотрим пример. Пусть криптоаналитик сделал предположение, что для формирования криптограммы на передающей стороне была использована матрица G1, показанная на следующем рисунке. 28 Суммирование матриц С и G1 даст матрицу Р1, вид которой не совпадает с матрицей М. На полученной матрице видна буква К (вместо F). Показанный пример демонстрирует бессмысленность подбора криптоаналитиком гаммы, так как может быть получен любой символ (русские, латинские буквы, цифры, математические знаки, иероглифы и т.п.). Если гамма формируется правильно, то аддитивный метод считается теоретически криптостойким. Неверное формирование гаммы иллюстрирует следующий пример. Пусть на передающей стороне в качестве гаммы используется матрица G2, содержащая только единицы. В результате «шифрования» с помощью такой гаммы на криптограмме С2 чѐтко просматривается открытый текст (буква F только в инверсном виде). 29 Если матрица гаммы содержит только нули, то в канал связи будет передан открытый текст. Таким образом, при формировании гаммы одинаково плохо для криптостойкости наличие большого числа единиц и наличие большого числа нулей. Поэтому одним из требований к формированию гаммы является равновероятное появление единиц и нулей. 30 4.7. Методические указания к заданию 3.7 Оператор ORIGIN определяет, с какого числа начинается отсчѐт векторов. По умолчанию отсчѐт начинается с нуля. Открытый текст в рассматриваемом примере реализации программы взят в виде набора заглавных букв латинского алфавита. Это позволит после окончания шифрования легко проверить правильность работы программы (в шифре атбаш первая буква алфавита должна заменяться последней буквой, вторая – предпоследней и т.д.). Следующая команда преобразует буквы в их десятичные коды (см. таблицу СР-1251). Для выборочной проверки (контроля) правильности выполненного преобразования букв в числа выведем коды некоторых букв. Сравнение полученных кодов с таблицей СР-1251 показывает правильность выполненных преобразований. Определим число букв в сообщении (длину сообщения): С помощью оператора диапазона сформируем числа от единицы до числа букв в сообщении: Дальше идѐт инициализация вектора v и обнуление его элементов: Криптограмма формируется с помощью регулярного цикла внутри которого происходит замена символов открытого текста на символы шифрограммы в соответствии с шифром атбаш. Число 155 в предыдущем блоке было определено конфигурацией кодовой таблицы. Код заглавной латинской буквы А имеет десятичное значение 65. Код последней заглавной буквы латинского алфавита Z равен 90. Сумма кодов этих чисел даѐт число 155. Необходимые элементы для формирования показанных в программе символов размещены на вкладке Математика (Программирование). Для анализа полученного результата целесообразно расположить рядом матрицу кодов криптограммы и матрицу кодов открытого текста. 31 Ещѐ нагляднее получается сравнении с помощью символьной записи передаваемого сообщения и шифровки. Для этого следует криптограмму перевести из числового вида в символьный: Затем вывести на экран шифрограмму и открытый текст: Легко заметить, что произошла замена первой буквы алфавита на последнюю, а вторая буква заменена предпоследней и т.д. Не менее наглядно идея шифрования просматривается на заменах, произошедших в матрице С. 32 4.8. Методические указания к заданию 3.8 Преобразование открытого текста осуществляется в соответствии с шифром Цезаря. Символы открытого текста заменяются символами этого же алфавита, расположенными на три позиции впереди. Смещение определяется ключом key. В первом варианте шифра, предложенным Цезарем, эта величина равнялась трѐм. Шифр является циклическим, поэтому последние буквы алфавиты заменяются первыми. Оператор ORIGIN определяет, с какого числа начинается отсчѐт векторов. По умолчанию отсчѐт начинается с нуля. В данном случае отсчѐт удобнее вести с единицы. Открытое сообщение ABCXYZ присваивается переменной mess: Следующая команда преобразует буквы в их десятичные коды: Переменной d присваивается число символов в сообщении: Результаты шифрования присваиваются переменной С. Дальше приведѐн листинг программы. Шифрование происходит путѐм формирования вектора v, элементы которого увеличены на три единицы по сравнению с элементами вектора m. Оператор передачи управления проверяет, превышают или нет элементы вектора v величину 90 (код заглавной буквы Z). 33 В случае выполнения этого условия элементы уменьшаются на 26 единиц и шифрование ведѐтся буквами, расположенными в начале латинского алфавита: Если текст криптограммы предполагается записывать строчными латинскими буквами, то в операторе передачи управления вместо числа 90 нужно записать число 122 (в соответствии с таблицей кодировки). Вставка линий новой структуры (вертикальная линия) осуществляется на вкладке Математика (Программирование). На завершающей стадии формирования блока шифрования нужно подготовить место для ввода выходной переменной v, значение которой присваивается вектору С. На последних шагах алгоритма числовое значение матрицы С преобразуются в буквы: Сравнение открытого текста mess с криптограммой crypt подтверждает правильность работы составленной программы: 34 4.9. Методические указания к заданию 3.9 Процесс передачи информации в асимметричной криптосистеме рассмотрим на примере взаимодействия банкира и вкладчика. В программе переменные банкира содержат цифру 1, а переменные вкладчика - цифру 2. В соответствии с протоколом создания защищѐнного канала связи RSA, описанном в [2], банкиру и вкладчику следует выполнить следующие действия. 1. Для формирования ключей банкир и вкладчик должны выбрать два простых числа p и q. Нужно сделать следующее замечание. Здесь рассматривается учебный пример, поэтому описываемые операции не совпадают с реальными действиями абонентов. Фактически ключи формируются автоматически, например, программным путѐм. Разрядность реальных ключей многократно превышает разрядность рассматриваемых здесь ключей. Пусть банкир выбрал простые числа: Для справки несколько простых чисел приведено в Приложении 2. Простые числа вкладчика: 2. Вычислить произведение простых чисел: 3. Рассчитать функцию Эйлера: 4. Выбрать случайное число s, взаимно простое с w из интервала 0<s<w Формирование взаимно простых чисел осуществляют с помощью следующих функций пользователя: Результаты расчѐтов взаимно простых чисел: 35 Из предыдущих таблиц нужно выбрать числа из интервала 0 < s < w и присвоить их переменным s1 и s2. Например: 5. Рассчитать секретный ключ банкира t1. Расчѐт секретного ключа ведѐтся с помощью обобщѐнного алгоритма Евклида [5]. Итак, секретный ключ банкира 10525. 6. Теперь нужно определить секретный ключ вкладчика. Секретный ключ вкладчика: 36 7. На этом шаге протокола создания закрытого канала банкир и вкладчик публикуют свои открытые ключи, например, на сайтах. Банкир: s1=5329, r1=13961. Вкладчик: s2=3897, r2=64741. Естественно, что секретные ключи t хранятся в местах, недоступных для посторонних лиц. Рассмотрим порядок обмена информацией между банкиром и вкладчиком. Обмен сообщениями происходит по открытому каналу связи в виде криптограмм. Предположим, что банкир решил отправить вкладчику сообщение secrb, например, некоторое число. Если нужно передать символьную информацию, то она должна быть закодирована числами. Для формирования криптограммы банкир использует открытый ключ вкладчика, который состоит из двух частей s2 и r2. Секретное сообщение (число secrb) возводят в степень s2 и находят остаток от деления на r2. Пусть банкир передаѐт сообщение: Тогда: Сформированное число cryptb=51300 является криптограммой, за которой скрывается открытое сообщение банкира secrb=50. Криптограмму cryptb банкир по открытому каналу связи передаѐт вкладчику. Принятую криптограмму cryptb вкладчик должен расшифровать с помощью своего секретного ключа t2. Для этого принятое число cryptb возводят в степень t2 и находят остаток от деления на r2: Из рассмотренного примера видно, что вкладчик принял число 50, которое отправил банкир, хотя по открытому каналу связи предавалось число 51300. При этом банкир зашифровал своѐ сообщение открытым (опубликованным) ключом вкладчика. Расшифровать криптограмму может только лицо, которое владеет ключом t2. Рассмотрим процесс передачи ответного сообщения (от вкладчика к банкиру). Для шифрования сообщения вкладчик использует открытый ключ банкира, который состоит из двух частей s1 и r1. Пусть: Шифрование своего сообщения вкладчиком даст число: Криптограмма cryptv=4018 передаѐтся банкиру. Для расшифрования криптограммы банкир должен использовать собственный секретный ключ t1: Итак, переданное вкладчиком число после расшифрования без искажений принято банкиром. 37 6. Требования к отчѐту Отчѐт подготавливается в электронном виде. Он должен содержать постановку задачи, скриншоты, которые показывают порядок решения задачи, необходимые комментарии и анализ полученных результатов. 5. Контрольные вопросы 6.1. Перечислите известные Вам математические системы. 6.2. Назовите достоинства математической системы Mathcad. 6.3. О каких версиях математической системы Mathcad Вы слышали? 6.4.Что такое символьная математика? 6.5. Какова структура оператора управления if? 6.6. Как представить мнимую единицу в системе Mathcad? 6.7. Как в системе Mathcad построить график заданной функции? 6.8. Как ввести матрицу? 6.9. Запишите формулу Ньютона-Лейбница. 6.10. Как задать диапазон изменения чисел с определѐнным шагом? 6.11. Запишите таблицу истинности для конъюнкции. 6.12. Запишите таблицу истинности для дизъюнкции. 6.13. Запишите таблицу истинности для неравнозначности. 6.14. Чем вектор-столбец и вектор-строка отличаются от матрицы? 6.15. Какие знаки определения и вычисления Вы знаете? 6.16. Какие виды графиков можно построить с помощью математической системы Mathcad? 6.17. Какова структура оператора регулярного цикла for? 6.18. Какова структура оператора цикла while? 6. Список литературы 1. Алексеев А.П. Использование ЭВМ для математических расчѐтов [Текст]: учеб. пособие/ Алексеев А.П., Камышенков Г.Е. – Самара: Парус, 1998 г.-190 с. 2. Алексеев А.П. Информатика 2007 [Текст]: учеб. пособие для вузов/ Алексеев А.П. – М.: СОЛОН-ПРЕСС, 2007. - 608 с.- (Библиотека студента). 3. Алексеев А.П., Орлов В.В. Способ стеганографического сокрытия информации. Патент 2374770. 4. Дьяконов В. П. Mathcad 11/12/13 в математике [Текст]: справочник/ Дьяконов В.П. – М.: Горячая линия-Телеком. 2007. - 958 с.: ил. 5. Рябко Б.Я., Фионов А.Н. Криптографические методы защиты информации [Текст]. – М.: Горячая линия-Телеком, 2014. - 230 с. – (Учебное пособие для высших учебных заведений). 38 Приложение 1 Таблица СР-1251 Приложение 2 Некоторые простые числа 2 23 69 97 137 179 227 269 3 29 61 101 139 181 229 271 5 31 67 103 149 191 233 277 7 37 71 107 151 193 239 281 11 41 73 109 157 197 241 283 13 43 79 113 163 199 251 293 17 47 83 127 167 211 257 307 19 53 89 131 173 223 263 311 39