Теоретические основы информатики Лекция 23. Электронная подпись 1. Общие принципы использования электронной подписи 2. Вычисление и проверка подлинности электронной подписи 1. Необходимость криптографического контроля целостности пересылаемого по открытым сетям электронного документа появилась в связи с задачей идентификации источника и проверки достоверности полученной информации (как её содержания, так и автора). B основе такого контроля лежит понятие электронной цифровой подписи (ЭЦП, в настоящее время — ЭП). ЭП — это особый реквизит электронного документа, который позволяет установить отсутствие искажения информации в нем с момента формирования ЭП и подтвердить принадлежность ЭП владельцу. ЭП представляет собой уникальную последовательность символов, полученную в результате криптографического преобразования данных электронного документа, которая добавляется к исходному документу. ЭП используется в качестве аналога собственноручной подписи. Применение электронной подписи обеспечивает: • удостоверение источника документа; • защиту от изменений документа; • невозможность отказа от авторства; • значительное сокращение времени обмена документами; • усовершенствование и удешевление процедур подготовки, доставки, учёта и хранения документов; • возможность использования единой и персональной ЭП при подготовке различных документов; • юридическую силу электронным документам наравне с бумажными, подписанными собственноручной подписью. При построении электронной подписи используются два алгоритма. Первый уже был рассмотрен выше — это криптосистема с открытым ключом; при этом секретный ключ хранится у источника (автора), подписывающего документ; открытый (общедоступный) ключ позволяет получателю(лям) проверить подлинность подписи и сохранность документа. Использование другого алгоритма — хеширования (hashing) — обусловлено тем, что подписываемые документы могут иметь достаточно большой объем и шифровать его полностью по схеме с открытым ключом оказывается нерационально 1 Теоретические основы информатики (ранее указывалось, что алгоритмы ассиметричного шифрования относительно медленны и требуют значительных вычислительных ресурсов). Используемое решение состоит в том, что по информации исходного документа с помощью специальных криптографических преобразований посредством односторонних функций — они называются хеш-функциями — вычисляют так называемый хеш документа. Хеш — это выходная битовая строка фиксированной длины, получаемая после обработки документа независимо от его объема. Хеш-функция работает таким образом, что обеспечивает связь всех битов исходных данных с битами хеша. B результате изменение хотя бы одного бита переданной информации сказывается на битах хеша. Далее на основании хеша и секретного ключа формируется электронная подпись, которая передаётся вместе с документом. Преимущество такого подхода в том, что объем хеша исходного документа во много раз меньше, чем сам документ, а алгоритмы вычисления хеша являются более быстрыми, чем алгоритмы шифрования. На приёмном конце осуществляются две операции: (1) по полученной ЭП и с помощью открытого ключа определяется хеш отправленного документа; (2) информация пришедшего документа обрабатывается той же самой (что у отправителя) хеш-функцией и вычисляется его хеш. B случае совпадения обоих хешей делается заключение о сохранности документа. Ðèñ. 5. Схема использования электронной подписи Двумя наиболее распространёнными хеш-функциями являются MD5, генерирующая 128-битную контрольную последовательность, и SHA, которая производит последовательность длиной 160 бит. 2 Теоретические основы информатики На рис. 5 показана схема взаимодействия отправителя и получатель с применением хеш-преобразований и ЭП. 2. Вычисление и проверка подлинности электронной подписи Проследим весь цикл создания и использования электронной подписи. Как уже указывалось, генерация ЭП начинается с предварительного хеширования — вычисления некоторой контрольной суммы S от числовых кодов (wi ) всех знаков сообщения. Хеш-функции могут быть различными — мы используем достаточно простую хеш-функцию квадратичной свертки, которая позволяет последовательно вычислять значения суммы при обработке i-го знака сообщения (Si ) по значению на предыдущем шаге и числовому коду знака i: Si = (Si−1 + wi )2 mod n, где S0 = 0, а n — простое число, входящее в оба ключа∗ . После обработки последнего символа формируется хеш всего сообщения S. Вычисление ЭП P выполняется по значению S с помощью секретного ключа d: P = S d mod n. ЭП присоединяется к исходному сообщению M — образуется новое сообщение P M , которое и пересылается. Процедура проверки подлинности ЭП и самого сообщения после его получения заключается в следующем. 1. От полученного сообщения отделяется ЭП. 2. Открытым ключом отправителя по ЭП находится хеш переданного сообщения по формуле S ′′ = P e mod n. 3. Вычисляется хеш S ′ полученного сообщения по указанной выше формуле. 4. Сравнивается S ′ и S ′′ ; ЭП признается подлинной, если значения хешей совпадают. Таким образом, c помощью секретного ключа {d, n} электронная подпись создается, присоединяется к электронному документу и передается вместе с ним. Открытым ключом {e, n} проверяются подлинность подписи и сохранность документа. Алгоритм генерации ключей может быть принят, например, тем же, что в рассмотренной выше криптосистеме RSA. 3 Теоретические основы информатики Ïðèìåð 7.4. На основании описанных алгоритмов требуется генерировать электронную подпись на сообщении ИНФОРМАТИКА. Значения ключей возьмем из примера 7.3: p = 11, q = 3, n = 33, Ф(33) = 20, открытый {7, 33}, секретный {3, 33}. Числовые коды знаков исходного текста пусть соответствуют их порядковым номерам в алфавите: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 АБВГДЕЖЗИ Й К Л М Н О П Р С Т У Ф Х Ц Ч ШЩ Ь Ы Э Ю Я Проводим вычисления: № Знак Код знака wi 0 1 2 3 4 5 6 7 8 9 10 11 И Н Ф О Р М А Т И К А 09 14 21 15 17 13 01 19 09 11 01 Хеш ЭП Значения хеш-функции S0 = 0 S1 = (S0 + w1 )2 mod n = (0 + 9)2 mod 33 = 15 S2 = (S1 + w2 )2 mod n = (15 + 14)2 mod 33 = 16 S3 = (S2 + w3 )2 mod n = (16 + 21)2 mod 33 = 16 S4 = (S3 + w4 )2 mod n = (16 + 15)2 mod 33 = 4 S5 = (S4 + w5 )2 mod n = (4 + 17)2 mod 33 = 12 S6 = (S5 + w6 )2 mod n = (12 + 13)2 mod 33 = 31 S7 = (S6 + w7 )2 mod n = (31 + 1)2 mod 33 = 1 S8 = (S7 + w8 )2 mod n = (1 + 19)2 mod 33 = 4 S9 = (S8 + w9 )2 mod n = (4 + 9)2 mod 33 = 4 S10 = (S9 + w10 )2 mod n = (4 + 11)2 mod 33 = 27 S11 = (S10 + w11 )2 mod n = (27 + 1)2 mod 33 = 25 S = 25 P = S d mod n = 253 mod 33 = 16 Таким образом, будет отправлено сообщение с ЭП: 16 09 14 21 15 17 13 01 19 09 11 01 Пусть получателю пришло сообщение 16 09 14 21 15 17 13 01 19 09 11 09 и он желает проверить его истинность. С этой целью осуществляется последовательность операций: № 0 1 2 3 4 Код знака wi Значение хеш-функции Знак Хеш′′ Из ЭП: S ′′ = P e mod n = 167 mod 33 = 25 S0′ = 0 S1′ = (S0′ + w1 )2 mod n = (0 + 9)2 mod 33 = 15 S2′ = (S1′ + w2 )2 mod n = (15 + 14)2 mod 33 = 16 S3′ = (S2′ + w3 )2 mod n = (16 + 21)2 mod 33 = 16 S4′ = (S3′ + w4 )2 mod n = (16 + 15)2 mod 33 = 4 И Н Ф О 09 14 21 15 4 Теоретические основы информатики № Код знака wi Значение хеш-функции Знак 5 6 7 8 9 10 11 17 13 01 19 09 11 09 Хеш′ S5′ = (S4′ + w5 )2 mod n = (4 + 17)2 mod 33 = 12 S6′ = (S5′ + w6 )2 mod n = (12 + 13)2 mod 33 = 31 S7′ = (S6′ + w7 )2 mod n = (31 + 1)2 mod 33 = 1 S8′ = (S7′ + w8 )2 mod n = (1 + 19)2 mod 33 = 4 S9′ = (S8′ + w9 )2 mod n = (4 + 9)2 mod 33 = 4 ′ = (S ′ + w )2 mod n = (4 + 11)2 mod 33 = 27 S10 10 9 ′ = (S ′ + w )2 mod n = (27 + 9)2 mod 33 = 9 S11 11 10 S′ = 9 Р М А Т И К И Вывод: S ′ ̸= S ′′ , следовательно, полученный документ не совпадает с исходным. В заключении необходимо отметить, что желающему использовать ЭП необходимо получить сертификат электронной подписи — документ, который подтверждает принадлежность открытого ключа (ключа проверки) ЭП владельцу сертификата. Выдаются сертификаты удостоверяющими центрами. Удостоверяющий центр — это юридическое лицо, согласно Закону «Об электронно-цифровой подписи» выполняющее следующие функции: • генерацию ключевой пары — из набора возможных случайным образом выбирается секретный ключ и вычисляется соответствующий ему открытый ключ; при этом гарантируется сохранение в тайне секретного ключа ЭП; • выдача по запросу лица или организации, приостановка, возобновление и аннулирование действия идентифицирующего сертификата открытого ключа подписи; • подтверждение подлинности электронной цифровой подписи в электронном документе в отношении выданных им сертификатов ключей подписей. Таким образом, владелец получает секретный (закрытый) ключ ЭП, доступ к которому имеет только он сам и который позволяет генерировать электронную подпись и прикреплять ее к электронному документу. Открытый ключ ЭП однозначно связан с секретным ключом и предназначен для проверки подлинности подписи получателями документа. Сертификат можно рассматривать в качестве дополнительного средства подтверждения подлинности документа и подписи на нем автора. 5 Теоретические основы информатики Контрольные вопросы и задания к лекциям 21-23 1. B чем схожесть и различие помехоустойчивого кодирования и шифрования сообщения? 2. Предложите алгоритм шифрования-дешифрования методом замены, отличный от тех, что описаны в тексте главы. 3. Предложите алгоритм шифрования-дешифрования с использованием книги (как шифровальной таблицы). 4. Предложите алгоритм шифрования-дешифрования, в котором для получения одного символа шифротекста используются несколько символов исходного текста. 5. Предложите алгоритм шифрования-дешифрования на основе кодов ASCII. 6. Предложите шифр, основанный на преобразовании отдельных битов символов текста, и опишите его алгоритм. 7. Предложите алгоритм дешифрования крипрограммы, полученной методом блочной перестановки, описанным в п. 7.2.2.2. 8. Напишите программу работы шифратора-дешифратора по введенному тексту (криптограмме) и ключу для какого-либо алгоритма замены. 9. Напишите программу работы шифратора-дешифратора по введенному тексту (криптограмме) и ключу для какого-либо алгоритма перестановки. 10. Напишите программу работы шифратора-дешифратора по методу гаммирования; битовая гамма должна формироваться программой случайным образом. 11. Что такое криптостойкость? Какими факторами она определяется? 12. Каким образом из теории информации Шеннона можно получить условие абсолютной криптостойкости? 13. B чем отличия симметричных и асимметричных криптосистем? В чем их достоинства и недостатки? 14. Каков принцип работы криптосистемы с открытым ключом? 15. На конкретном примере продемонстрируйте шифрование текста с помощью алгоритма RSA. 16. B чем достоинства и недостатки применения электронной подписи? 17. Поясните схему организации и порядок использования электронной подписи. 18. Поясните, имеет ли смысл подписывать электронной подписью документ без его предварительного шифрования? 19. Предложите пример создания электронной подписи к сообщению на основании ключей, использованных в задании 15. 20. Проверьте подлинность полученного сообщения и ЭП из задания 19. 6