Алгоритм формирования электронной цифровой подписи
Описание задачи
В наше время Internet становится все более обыденным и хорошо известным. Многие пользователи, компании подключаются к глобальной сети Internet для того, чтобы воспользоваться ее ресурсами и преимуществами для получения или обмена любого рода информации. Во многих случаях понятием «информация» обозначают специальный товар, который можно приобрести, продать, обменять на что-то другое и т.п. При помощи средств, предоставляемых Internet любой пользователь, подключенный к ее сети, становится малой ячейкой во всемирной “паутине”, объединившей мир. В связи с этим возникает острая необходимость в разработке эффективных аппаратных или программных средств для обеспечения защиты компьютерных систем обработки и хранения информации от несанкционированного доступа извне. Одним из таких средств безопасности передаваемых данных является аутентификация автора электронного документа и самого электронного документа, т.е. установление подлинности автора и отсутствия изменений в полученном документе. В настоящее время, в компьютерных сетях для аутентификации текстов, передаваемых по телекоммуникационным каналам, используется электронная цифровая подпись, которая в принципе аналогична обычной рукописной подписи и следовательно обладает ее основными достоинствами:
- удостоверяет, что подписанный текст исходит от лица, поставившего подпись;
- не дает самому этому лицу возможности отказаться от обязательств, связанных с подписанным текстом;
- гарантирует целостность подписанного текста.
Цифровая электронная подпись представляется в виде относительно небольшого количества дополнительной цифровой информации, передаваемой вместе с подписываемым текстом.
Система электронной цифровой подписи включает в себя две процедуры:
1) процедуру постановки подписи, в которой отправитель прежде всего вычисляет хэш-функцию h(M) подписываемого текста M. Вычисленное значение хэш-функции h(M) представляет собой один короткий блок информации m, характеризующий весь текст M в целом. Затем число m шифруется секретным ключом отправителя. Получаемая при этом пара чисел представляет собой электронную цифровую подпись для данного текста M.
2) процедуру проверки подписи, при которой получатель сообщения снова вычисляет хэш-функцию m = h(M) принятого по каналу текста M, после чего при помощи открытого ключа отправителя проверяет, соответствут ли полученная подпись вычисленному значению m хэш-функции.
Как видно, в обеих процедурах системы электронной цифровой подписи участвует алгоритм хеширования исходного текста M, т.е. по существу сжатия подписываемого документа M произвольной длины до фиксированной длины в несколько десятков или сотен бит. Следует отметить, что хэш-функция должна удовлетворять целому ряду условий:
- хэш-функция должна быть чувствительна к всевозможным изменениям в тексте M, таким как вставки, выбросы, перестановки и т.п.;
- хэш-функция должна обладать свойством необратимости, то есть задача подбора документа M’, который обладал бы требуемым значением хэш-функции, должна быть вычислительно неразрешима;
- вероятность того, что значения хэш-функций двух различных документов (вне зависимости от их длин) совпадут, должна быть ничтожно мала.
- Вычислительный алгоритм безопасного хэширования на основе использования процедур обучения иммунокомпьютинга состоит из следующих шагов:
Шаг 1. Представим текстовую информацию исходного текста M в виде множества отдельных букв I, т.е. в виде:
I = {i1, i2,…, ik} (1)
и сопоставим в строгое соответствие каждой букве ik определенную цифру ak, т.е. вместо буквенного множества (1) в результате получим цифровой ряд вида:
A = {a1,.. ,ak} (2)
Шаг 2. Сформируем определенным образом из ряда (2) матрицу A размерности (s x q).
Шаг 3. Сгенерируем случайным образом набор цифр bk. В качестве примера возьмем формулу генератора случайных чисел вида: bk = (p+k)2/100, т.е. получим цифровой ряд вида:
B = {b1, …., bk}. (3)
Шаг 4. Сформируем из ряда (3) матрицу B одинаковой с матрицей A размерности (s x q).
Шаг 5. Осуществим сингулярное разложение матрицы А, т.е. определим множества сингулярных чисел, правых и левых сингулярных векторов:
{s1, s2, sd}, {U1, U2,…Ud}, {V1, V2,….,Vd}.
Шаг 6. Вычислим значение энергии связи w. Результатом хэширования будет величина l равная w.
После применения вышеуказанного алгоритма, следуя процедуре постановки подписи, автор электронного документа передает получателю тройку (M, l, p), где l представляет собой электронную цифровую подпись, а p - открытый ключ.
Пусть, к примеру, текстовый документ M представлен в виде сообщения: «Петров Л.П. вылетел 17 января в Москву. Прошу встретить. Иванов.». Сопоставляя в строгое соответствие каждой букве указанного сообщения цифру, получим ряд вида (2), элементы которого отражены в таб. 3.
Таблица 3 Цифровое соответствие букв сообщения M
П | е | т | р | о | в | Л | . | П | . | в | ы | л | е | ||
т | е | л | я | н | в | а | р | я | в | ||||||
М | о | с | к | в | у | . | П | р | о | ш | у | в | с | ||
т | р | е | т | и | т | ь | . | И | в | а | н | о | в | . | |
На основе исходных данных, сформируем матрицу A размерности (8 x 8) вида:
. (4)
Подразумевая, что p = 5 сгенерируем ряд (3). Матрица B размерности (8 x 8) будет иметь вид:
. (5)
Применяя (1), получим: l = 1656,77.
Согласно процедуре проверки подписи получатель электронного документа, в свою очередь, по заранее согласованной с автором и переданной по защищенному каналу, формуле генератора случайных чисел (3), а также алгоритму хэш-функции вида восстанавливает матрицы A’ и B’, которые, в случае достоверной передачи, должны совпадать с (4) и (5). Затем вычисляет численное значение хэш-функции l’. В том случае если выполнится равенство вида:
l = l'', (6)
то можно с уверенностью сказать, что электронный документ дошел по телекоммуникационному каналу до адресата в неискаженном злоумышленником виде и электронная цифровая подпись автора подлинная.
Особо следует отметить, что для обеспечения наилучшей защищенности передаваемой информации исходный текст M и значение хэш-функции l можно зашифровать при помощи известных, действующих криптографических методов.
В виду того, что созданная по предложенному алгоритму хэш-функция полностью удовлетворят вышеотмеченным свойствам, а сам алгоритм претендует на нестандартность и хорошо программно реализуем, созданная на основе указанного алгоритма система электронной цифровой подписи будет обеспечивать целостность автоматизированной системы обработки и хранения информации и надежную аутентификацию подлинности электронного документа и его автора.
Лабораторная работа № 9
Целью работыявляется реализация программной системы безопасного хэширования сообщения произвольной длины на основе средств универсальных систем MATLAB.
Порядок выполнения работы
1. Открыть универсальную систему MATLAB.
2. Получить у преподавателя таблицу с обучающей выборкой для реализации алгоритма формирования электронной цифровой подписи.
3. Реализовать вычислительную процедуру обучения с экспертом (использовать программный модуль лабораторной работы № 3).
4. Реализовать вычислительную процедуру самообучения (использовать программный модуль лабораторной работы № 4).
5. Представить результаты реализации алгоритма формирования электронной цифровой подписи.
6. Оформить тематическую заглавную страницу лабораторной работы № 9.
7. Сохранить все результаты выполнения работы в файле на диске.
9.2.2. Порядок оформления отчета
Отчетом о лабораторной работе № 10 является файл с именем, совпадающим с фамилией студента с результатами работы в папке Мои документы/номер группы.
9.2.3. Контрольные вопросы
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
ОГЛАВЛЕНИЕ
ПРЕДИСЛОВИЕ............................................................................... 2
1. МАТРИЧНЫЕ ВЫЧИСЛЕНИЯ НА ОСНОВЕ УНИВЕРСАЛЬНОЙ СИСТЕМЫ MATLAB............................................................................................ 5
1.1. Задание матриц..................................................................... 5
1.2. Матричные вычисления....................................................... 6
1.2.1. Функции описания матриц......................................... 6
1.2.2. Знаки операций............................................................ 6
1.2.3. Матричные характеристики...................................... 6
1.2.4. Команды линейной алгебры...................................... 6
1.2.5. Команды факторизации.............................................. 7
1.2.6. Команды вычисления спектра................................... 7
1.3. Интегрирование MATLAB и Excel...................................... 8
1.3.1. Конфигурирование Excel............................................. 8
1.3.2. Обмен данными между MATLAB и Excel................. 9
1.4. Программирование............................................................ 10
1.4.1. М-файлы...................................................................... 10
1.4.2. Файл-программа........................................................ 11
1.4.3. Файл-функция............................................................ 13
1.4.4. Создание графика...................................................... 14
1.4.5. Печать графиков........................................................ 16
1.5. Лабораторная работа № 1................................................. 17
1.5.1. Порядок выполнения работы.................................. 17
1.5.2. Оформление отчета.................................................... 17
1.5.3. Контрольные вопросы............................................... 17
2. ВЫЧИСЛИТЕЛЬНАЯ ПРОЦЕДУРА СИНГУЛЯРНОГО РАЗЛОЖЕНИЯ МАТРИЦ 18
2.1. Математический аппарат................................................... 18
2.2. Лабораторная работа № 2................................................. 20
2.2.1. Порядок выполнения работы.................................. 20
2.2.2. Пример выполнения лабораторной работы №2... 20
2.2.3. Порядок оформления отчета.................................... 25
2.2.4. Контрольные вопросы............................................... 25
3. ВЫЧИСЛИТЕЛЬНАЯ ПРОЦЕДУРА ОБУЧЕНИЯ С ЭКСПЕРТОМ 25
3.1. Математический аппарат................................................... 25
3.2. Лабораторная работа № 3................................................. 28
3.2.1. Порядок выполнения работы.................................. 28
3.2.2. Порядок оформления отчета.................................... 28
3.2.3. Пример выполнения лабораторной работы №3... 28
3.2.4. Контрольные вопросы............................................... 30
4. ВЫЧИСЛИТЕЛЬНАЯ ПРОЦЕДУРА ОБУЧЕНИЯ С ЭКСПЕРТОМ 31
4.1. Математическая формализация задачи............................. 31
4.2. Обучение............................................................................. 33
4.3. Распознавание..................................................................... 33
4.4. Замечания........................................................................... 34
4.5. Лабораторная работа № 4................................................. 35
4.5.1. Порядок выполнения работы.................................. 35
4.5.2. Порядок оформления отчета.................................... 36
4.5.3. Пример выполнения лабораторной работы №4... 36
4.5.4. Контрольные вопросы............................................... 38
5. ФОРМИРОВАНИЕ ИНДЕКСОВ РИСКА........................... 39
5.1. Описание задачи формирования индексов........................ 39
5.2. Базовый алгоритм вычисления индекса............................ 39
Ниже представлены частные случаи процедуры формирования индекса с использованием компонент сингулярного разложения матрицы М. 44
5.3. Одномерный линейный случай.......................................... 44
5.4. Лабораторная работа № 5................................................. 44
5.4.1. Порядок выполнения работы.................................. 47
5.4.2. Порядок оформления отчета.................................... 47
5.4.3. Контрольные вопросы............................................... 47
6. ТЕСТИРОВАНИЕ ПОЛУПРОВОДНИКОВЫХ ЛАЗЕРНЫХ ДИОДОВ НА ОСНОВЕ ИНСТРУМЕНТАРИЯ УНИВЕРСАЛЬНЫХ СИСТЕМ MATLAB 48
6.1. Описание задачи................................................................. 48
6.2. Тестовые данные................................................................. 49
6.3. Лабораторная работа № 6................................................. 50
6.3.1. Порядок выполнения работы.................................. 51
6.3.2. Порядок оформления отчета.................................... 51
6.3.3. Контрольные вопросы............................................... 51
7. ПРОВЕДЕНИЕ ЭКСПЕРТИЗЫ НАУЧНО-ТЕХНИЧЕСКИХ ПРОЕКТОВ 51
7.1. Описание задачи................................................................. 51
7.2. Лабораторная работа № 7................................................. 54
7.2.1. Порядок выполнения работы.................................. 54
7.2.2. Порядок оформления отчета.................................... 54
7.2.3. Контрольные вопросы............................................... 55
8. КОМПЛЕКСНАЯ ЭКСПЕРТИЗА ВНУТРИВУЗОВСКИХ СИСТЕМ УПРАВЛЕНИЯ КАЧЕСТВОМ ОБРАЗОВАНИЯ..................................................... 55
8.1. Описание задачи................................................................. 55
8.2. Лабораторная работа № 8................................................. 57
8.2.1. Порядок выполнения работы.................................. 57
8.2.2. Порядок оформления отчета.................................... 59
8.2.3. Контрольные вопросы............................................... 59
9. АЛГОРИТМ ФОРМИРОВАНИЯ ЭЛЕКТРОННОЙ ЦИФРОВОЙ ПОДПИСИ 59
9.1. Описание задачи................................................................. 59
9.2. Лабораторная работа № 10............................................... 63
9.2.1. Порядок выполнения работы.................................. 63
9.2.2. Порядок оформления отчета.................................... 64
9.2.3. Контрольные вопросы............................................... 64