
дз_мп_45_2001 / CR_SIGN
.DOCЛабораторная работа
Программа электронной цифровой подписи Crypton Sign
Цель работы: освоение основных функций работы с электронной цифровой подписью.
Аппаратура: IBM PC386 и выше.
Программное обеспечение:
- MSDOS;
-демонстрационная программа системы Crypton Sign.
Теоретические сведения
Электронная цифровая подпись представляет собой последовательность байт, помещаемую в конец подписываемого документа (файла) или в отдельный файл. Подпись формируется на основании секретного ключа и пароля лица, подписывающего документ (файл), и содержимого документа. Для каждого секретного ключа создается свой открытый ключ для проверки подписи. Секретные ключи храняться на ключевой дискете или электронной карточке.
На основании анализа содержимого документа, электронной подписи и открытого ключа получатель подписанного документа устанавливает подлинность информации, лицо подписавшее информацию и то, что данная подпись сформирована именно поставляемой программой формирования подписи, а не ее подделкой.
Прогррамма Crypton Sign - это программа электронной цифровой подписи. В этой программе реализованы алгоритмы электронной цифровой подписи и функции хэширования согласно стандартам ГОСТ Р 34.10-94, ГОСТ Р 34.11-94.
Алгоритм электронной цифровой подписи
Подписываемый документ - файл при помощи некоторой процедуры преобразуется в целое число m. Такую процедуру называют хэшированием. ”Подписывание” числа m состоит в возведении его в заданную степень d с последующим вычислением остатка от деления результата возведения на заданное число n, т.е. : S=m mod n.
Подпись документа составляет пара чисел [m,S]. В секрете должен храниться только показатель степени d, который и представляет собой секретный ключ.
Для проверки подлинности подписи выдается другой показатель степени e (открытый ключ), который используется при проверке соотношения : e
S = m mod n.
Если соотношение выполняется, то подпись считается подлинной или верной.
Процесс создания и проверки подписи
В качестве подписываемого документа в программе используется любой файл. Подпись может проставляться двумя способами. В первом - подписанный файл создается из неподписанного путем добавления в конец файла одной или более электронных подписей. При этом не изменяются ни имя файла, ни его расширение. Во втором, подписи записываются в указанный или текущий каталог в отдельный файл с тем же именем, но со стандартным расширением из последовательности sq0, sq1, sq2,...,sq9.
В первом случае подписанный файл с именем X.Y выглядит следующим образом:
Исходный файл |
подпись1 |
подпись 2 |
... |
подпись n |
во втором - исходный файл остается без изменения, но формируется файл с подписями с именем X.SG0 или X.SGn, если существовал файл X.SG(n-1), где n>0 и n<10. Этот файл содержит только подписи:
подпись 1 |
подпись 2 |
... |
подпись n |
Во втором способе необходимо следить, чтобы
-
не оказалось более 10 файлов-подписей с одинаковым именем в одном каталоге;
-
все подписи одного файла хранились в одном катологе.
Каждая подпись содержит следующую информацию:
-
Дата подписи.
-
Срок окончания действия ключа данной подписи.
-
Информация о лице, подписывающего файл.
-
Идентификатор подписавшего (имя открытого ключа).
-
Собственно подпись (два числа [m,S]).
Для формирования подписи необходимо создать два ключа: секретный и открытый ключи подписи (см. рис.1). Ключи представляют собой обычные файлы на дискете или последоватеоность байт на электронной карточке. В именах ключей используются расширения:
sk - для секретоного ключа;
pk - для открытого колюча.
Генерация случайного кода для создания ключей выполняется аппаратно с помощью одной из плат шифрования Криптон-3, Крипитон-4, Криптон-ИК. Если плат в компьютере нет, случайный код можно получить программно с помощью программы CryptonLite или генератора случайных чисел.
Для генерации ключей достаточно выполнить команду “Создать ключи”.
Для подписи файла необходимо выбрать сам подписывающий файл и секретный ключ, а затем выполнить команду “Поставить подпись”.
Две команды: “Показать подпись” и “Проверить подпись”используются для проверки наличия и подлинности подписей у файла, а также получения дополнительной информации о подписи. Для выполнения данных команд необходимо выбрать проверяемые файлы и указать каталог с открытыми ключами.
При необходимости можно удалить полследнюю подпись, группу последних подписей или все подписи у файла. Для этого в программе используется команда “Удалить подпись”. Для ее выполнения необходимо указать документы-файлы, у которых удаляются подписи.
Запуск программы Crypton Sign
Перед запуском необходимо запустить программу DSCH.EXE, а затем программу CRSIGN.EXE.
Функциональная схема создания и проверки подписи программой Crypton Sign.
Основное
меню программы “Электронная подпись”
Основное меню разделено на две части (панели) (рис.2). В левой части расположены команды, в правой - перечень файлов и раздел, в котором находятся эти файлы. Для выбора команд и файлов используется маркер - специальная закрашенная область.
Основное меню программы
Клавиши
управления маркером
Клавиши |
Правая панель |
Левая панель |
|
Маркер на одну строку вверх |
|
|
Маркер на одну строку вниз |
|
Home |
Маркер на первый файл |
Маркер на первую команду |
End |
Маркер на последний файл |
Маркер на последнюю команду |
PqUp |
Маркер на 15 строк вверх |
Маркер на первую команду |
PgDn |
Маркер на 15 строк вниз |
Маркер на последнюю команду |
Tab |
Переход маркера на левую панель |
Переход маркера на правую панель |
Клавиши выбора файла
-
Клавиша
Назначение
Ins
+
-
Выбор текущего файла
Маска выбора
Снятие выбора по маске
Клавиши смены каталога
-
Клавиша
Назначение
Enter
Alt/F2 и
Alt/F1
Переход в каталог верхнего уровня, если маркер находится в строке с ...
или
переход в каталог нижнего уровня, если маркер находистя на строке с именем каталога.
Смена текущего устройства
Команда “Поставить подпись” (F2)
Подписывает файлы, выбранные на правой панели с использованием указанного секретного ключа.
Для выполнения этой команды необходимо ввести следующие данные:
-
имя секретного ключа;
-
пароль;
-
раздел с секретными ключами.
При выполнении подписи выбирается секретный ключ из указанного раздела.
Подпись формируется следующим образом:
-
проверяется пароль (если он введен). Подсчитывается подпись с постоянным значением функции хэширования и тут же проверяется. Если она верна, то пароль верен;
-
проверяется текущая дата и срок годности ключа;
-
в подпись переносится из ключа срок годности ключа и поле с именем пользователя;
-
имя секретного ключа заносится в качестве идентификатора;
-
подсчитывается сама подпись;
-
выдается сообщение о завершении подписи.
Команда “Показать подпись” (F3)
Эта команда выдает информацию о подписях файлов, которые были ранее выбраны.
Для выполнения этой команды необходимо ввести следующие данные:
-
имя секретного ключа;
-
пароль;
-
раздел с секретными ключами;
-
раздел с открытыми ключами;
-
раздел с открытыми ключами для проверки сертификата.
Под сертификатом понимается подпись открытого ключа.
Команда “Проверить подпись” (F4)
Осуществляется проверка подписей выбранных ранее файлов. Эта команда запрашивает следующие данные:
-
раздел с открытыми ключами;
-
раздел с открытым ключом для проверки сертификата.
При проверке каждой подписи выполняются следующие действия:
-
из подписи выбирается идентификатор - имя открытого ключа;
-
если указан раздел с открытым ключом для проверки сертификата, то осуществляется проверка сертификата открытого ключа, указанного в подписи файла;
-
анализ данных в подписи с данными открытого ключа;
-
собственно проверка подписи.
Команда “Удалить подпись” (F8)
По этой команде удаляются все или часть подписей файлов. При удалении выдается информация о последней подписи.
Команда “ Создать ключ ” (F9).
Создание ключей для подписи производится после ввода следующей информации :
- имя ключа;
- пароль;
- дата годности ключа;
- имя владельца ключа;
- раздел с секретными ключами;
- раздел с открытыми ключами.
Ключи создаются под именами :
Команда “Распечатать ключи” (F5).
Выводит в файл содержимое открытого ключа в текстовом виде . Имя текстового файла - “имя ключа”. txt.
Команда “ База данных ключей ” (F6).
Данная команда предназначена для создания базы данных, записи открытых ключей в базу данных и удаления из базы , а также поиска ключей в базе. База данных представляет собой два файла : один с расширением pkb ( основной) и второй с расширением pkm ( дополнительный).
Для создания БД необходимо выполнить команду “ БД ключей... ” без выбора файлов на правой панели, ввести имя новой БД . База данных создается в текущем каталоге.
Для работы с уже имеющейся БД необходимо на запрос о вводе имени новой БД выбрать имя имеющейся БД с расширением pkb на правой панели. После этого появляется меню БД:
Команда “ Добавить” открытые ключи в БД предназначена для добавления новых открытых ключей в базу данных.
Выбор ключей осуществляется также, как и в основном меню.
Команда “ Журнал ” (F11)
Для протоколирования работы с программой электронной подписи используется журнал. В нем фиксируется работа с первыми шестью командами основного меню программы электронной подписи.
Для создания нового журнала достаточно включить параметр “ Вести журнал ” и задать его имя и каталог в таблице параметров (Команда “ Параметры... ”). Журнал можно вести либо в открытом , либо в зашифрованном виде.
В “ Журнале ” можно искать требуемую команду , обновлять весь журнал и расшифровывать журнал.
Команда “ Параметры ”(F12)
Работа программы электронной подписи управляется параметрами, коиорые можно разделить на следующие группы:
- Команды.
- Журнал.
- Подпись.
- Устройства с ключами.
- Файл с простыми числами.
- Конфигурационный файл.
Первая группа “ Команды ” предназначена для создания списка команд основного меню программы. Для любого оператора администротор может задать свою группу команд, а затем отключить команду “ Параметры ” , чтобы последний не мог изменить свои полномочия по работе с программой.
По умолчанию все команды включены. Непосредственно изменение состава команд происходит после перезагрузки программы.
Установить или отменить параметр можно с помощью клавиши “ пробел ”. Параметры группы “ Журнал ” полностью определяют работу с журналом:
- включают и выключают работу с журналом ;
- определяют вид журнала открытый или зашифрованный;
- задают имя журнала;
- задают каталог, где будет храниться журнал.
Если подпись хранится отдельно от файла , то необходимо включить параметр “Отдельный файл ” и указать “ Раздел ” (Каталог),куда будут помещаться отдельные файлы подписи.
Программа дает возможность пользователю генерировать дополнительный файл с простыми числами .
В параметрах указывается и путь к конфигурационному файлу (КФ). КФ всегда хранится в зашифрованном виде.
Обмен ключами через сертификационный центр.
Организуется сертификационный центр (СЦ) для регистрации пользователей. В СЦ поступают открытые ключи и сопровождающие их документы :
В документе , который подготавливается на бумаге, указываются :
- данные о владельце ключа (Ф.И.О.,должность, место работы);
- сам открытый ключ (распечатка в шеснадцатиричном виде);
- полномочия владельца (перечень документов, которые уполномочен подписывать владелец ключа).
В ответ пользователь получает :
- открытые ключи с сертификатом всех зарегестрированных пользователей (в том числе и свой);
- файл или базу данных с полномочиями этих пользователей (также с сертификатом);
- открытый ключ для проверки сертификата , как в виде файла , так и в виде юридического документа.
Пользователь при получении должен проверить истинность открытого ключа для проверки сертификата, а затем проверить сертификаты всех полученных ключей и файлов, а также и свой открытый ключ . При положительных результатах проверки ключи записываются в соответствующий раздел. Например, PKEY.
При такой организации работы пользователь подписывает документы и не заботится об обмене открытыми ключами и полномочиями .
Однако болшая нагрузка ложится на СЦ по рассылке баз ключей и полномочий. Можно зарегистрироваться в разных СЦ , которые не связаны между собой . Можно связать СЦ в любую сеть для обмена , либо только ключами проверки сертификатов. Тогда пользователю достаточно зарегистрироваться только в нужном из центров.
Тесты для студентов дистанционного обучения
-
Электронная цифровая подпись представляет собой: .
1.Последовательность байт, помещенная в конец файла.
-
Последовательность байт, помещенная в начало файла.
-
Последовательность байт, помещенная в отдельный файл.
2. Документ подписывается:
-
Секретным ключом.
-
Открытым ключом.
-
Секретным и открытым ключами.
-
Главным ключом.
-
Узлом замены.
-
Пользовательским ключом.
-
Подпись документа составляют:
1. m 3. m,S 5. d,m 7. e 9. d,e
2 .S 4. d 6. S,d 8. e,m
-
Для проверки подписи используется соотношение:
-
S=ln(m mod n) 2. S = m mod n
-
S=m mod n 4. S=d mod e
-
Укажите последовательность действий при постановке подписи:
1.Проверяется текущая дата и срок годности ключа.
2.Проверяется пароль.
3. Имя секретного ключа заносится в качестве идентификатора.
4. В подпись переносится из ключа срок годности и имя пользователя.
5. Подсчитывается подпись.
6.Выдается сообщение о завершении постановки подписи.
-
Сертификат - это
1. Секретный ключ.
2. Открытый ключ.
3. Подпись секретного ключа.
4.Подпись открытого ключа
-
Укажите последовательность действий при проверке подписи.
-
Проверка сертификата.
-
Выбор имени ключа.
-
Анализ данных в подписи.
-
Проверка подписи.
8. Укажите, что получает пользователь при работе в сертификационном центре.
-
Секретные ключи других пользователей.
-
Открытые ключи других пользователей.
-
Открытые ключи с сертификатом других пользователей .
-
Файл с полномочиями пользователей с сертификатом.
-
Свой открытый ключ с сертификатом.
-
Открытый ключ для проверки сертификата.
-
Секретный ключ для проверки сертификата.
Порядок выполнения лабораторной работы
-
Переписать на диск D: (или другой рабочий диск ) содержимое каталога Cr_sign.
-
Создать на диске D: каталоги для
-хранения открытых ключей;
-хранения секретных ключей;
-хранения журнала.
Запишите в отчет имена этих разделов.
-
Переписать или создать файлы, на диске D:, в специальный каталог, которые будут подписываться. Записать имена файлов в отчет.
-
Установить возможность ведения журнала в открытом или зашифрованном виде.
-
Сгенерировать несколько ключей для подписи.
-
Подписать какой-нибудь файл одним из созданных ключей.
-
Подписать группу файлов другим ключом.
-
Создать базу данных ключей, в которую включить все ключи, созданные раннее. Записать имя базы данных и включенные в нее ключи в отчет.
-
Поработать с командами меню “БД ключей”.
-
Создать еще две базы данных. Первая должна содержать все открытые ключи. Вторая - секретные ключи. Записать содержимое баз данных в отчет.
-
Удалить по одному ключу из этих БД. Отметить в отчете, какие ключи были удалены.
-
Посмотреть содержимое журнала. Переписать в отчет первые пять записей из журнала.
-
Сгенерировать ключи сертификационного центра и сертифицировать открытые ключи обычных пользователей. Записать имена ключей в отчет.
-
Научитесь работать администратором СЦ.
-
Передать преподавателю несколько подписанных файлов.
-
Сконфигурировать программу для пользователей с разными полномочиями.
-
Выступить в роли администратора программы и сформировать необходимые ключи и конфигурационные файлы для трех абонентов. Записать в отчет имена ключей и файлов.
-
Отчет показать преподавателю.