Эцп представляет собой результат использования алгоритма на хеш данных документов

Содержание
  1. Электронная подпись: надёжность и риски
  2. Немного теории
  3. Применение хэш-функций
  4. Что же может пойти не так?
  5. Подключаем человеческий фактор, бюрократию и частные организации
  6. Заключение
  7. Электронная цифровая подпись для чайников: с чем ее есть, и как не подавиться. Часть 1
  8. Применение хеш-функции в создании электронной цифровой подписи
  9. Библиографическое описание:
  10. Похожие статьи
  11. Исследование криптосистем с открытым ключом на основе.
  12. Создание ключей, шифрование и дешифрование сообщений.
  13. Пост-квантовый алгоритм электронно—цифровой подписи на.
  14. Алгоритмы шифрования данных | Статья в журнале.
  15. Реализация алгоритма шифрования RSA на языке.
  16. Анализ алгоритма RSA. Некоторые распространённые.
  17. Способ хранения закрытого ключа криптосистемы цифровой.
  18. Шифрование и криптоанализ | Статья в журнале «Молодой. »
  19. Теория чисел в криптографии | Статья в журнале.

Электронная подпись: надёжность и риски

c2d8ad1641cf25a060d18e894cc168b5

Сначала вкратце опишу то, как работает электронная подпись (ЭП) и в чём заключается её надёжность. Электронная подпись – подтверждение того, что какой-либо электронный документ был создан и подписан определённым физическим или юридическим лицом. При этом она должна обладать следующими свойствами:

Неотказуемость – подписавшее документ лицо не может утверждать, что это сделал кто-то другой;

Целостность – внесение исправлений в уже подписанный документ должно нарушать подпись;

Авторство – электронная подпись должна быть жёстко закреплена за определённым физическим или юридическим лицом.

Эти базовые принципы и делают ЭП эффективной и безопасной в использовании.

Немного теории

В качестве алгоритмической базы для электронной подписи обычно применяют методы шифрования с открытым ключом. Подробнее о самих алгоритмах можно почитать на википедии или на хабре. Их суть сводится к тому, что для желающего обзавестись собственной электронной подписью специальным образом выбирается пара ключей – открытый и закрытый. Первый, как следует из названия, доступен всем, а второй владельцу подписи лучше держать в секрете. Естественно, ключи выбираются так, чтобы закрытый ключ нельзя было легко угадать по открытому. После чего закрытый ключ используется для шифрования документа (иными словами, его подписания), а открытый – для расшифровки (то есть для проверки подписи). При этом алгоритмы выбора ключей гарантируют, что открытым ключом можно расшифровать только те документы, которые шифровались соответсвующим ему закрытым ключом. Таким образом, если мы знаем открытый ключ владельца ЭП и смогли расшифровать им полученный от него документ, то он был точно подписан тем самым владельцем. Так работают асимметричные схемы ЭП.

Применение хэш-функций

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

image loaderПодробная схема с применением хэш-функции

Тот должен всего лишь хэшировать текст документа той же хэш-функцией, после чего расшифровать открытым ключом подпись и сравнить оба результата. Если они совпадают – то документ мог быть подписан только отправителем (вот она и неотказуемость) и не был испорчен, дополнен или подменён в процессе пересылки (а это целостность). А дляпоследнего свойства – авторства – необходимо, чтобы пара ключей подписавшего была закреплена за ним. На практике для этого используются так называемые удостоверяющие центры, которые по запросу выдают сертификат на пару ключей, а также гарантируют единственность обладания ими.

Что же может пойти не так?

Наверное, внимательные читатели уже увидели, что описанная выше схема представляет собой сферическую ЭП в вакууме.

И действительно, в теории взломать или подделать такую подпись можно несколькими способами. Самый лакомый способ для взломщика-криптоаналитика – это по открытому ключу угадать закрытый. Тогда злоумышленнику сразу открываются сказочные перспективы – ведь он сможет действовать от лица истинного владельца подписи и даже управлять его имуществом. Однако обычно такой взлом не возможен ввиду того, что подбор закрытого ключа по открытому – вычислительно нерешаемая задача. При генерации пары ключей широко применяются факторизация или дискретное логарифмирование, что оставляет взломщику мало надежды. Конечно можно попробовать подобрать закрытый ключ полным перебором, но при достаточно большом размере ключей такая возможность отпадает.

Ещё одно уязвимое место – это хэш-функция. Здесь возможны сразу несколько направлений атак. Если алгоритм хэширования не достаточно надёжный, то взломщик может подобрать какой-нибудь свой документ, применение хэш-функции к которому даст тот же результат, что и её применение к исходному документу. Или же злоумышленник может сгенерировать два документа, дающие одинаковый хэш, после чего при необходимости сможет подменить один документ другим. Названные ситуации считаются коллизиями хэш-функций. Однако жизнь взломщика хэш-функции всё же не так легка: мало того, что подставной документ должен представлять из себя читаемый текст, а не быть бессмысленным набором бит, так еще и придумано достаточно криптостойких алгоритмов хэширования. Для примера, надёжными на момент написания статьи являются SHA-3, BLAKE2, семейство JH или отечественный «Стрибог» (он же ГОСТ 34.11-2018).

Подключаем человеческий фактор, бюрократию и частные организации

В самом начале мы говорили о свойствах, которыми должна обладать качественная электронная подпись. Из них под действием уже упомянутых выше атак пока страдали только её целостность и неотказуемость. Однако в реалиях нашего мира наибольшее количество нарушений происходит из-за подмены авторства.

image loader

В России получение ЭП регулируется законом № 63-ФЗ «Об электронной подписи». Для её оформления нужно получить сертификат от удостоверяющего центра (УЦ) на выбор. В УЦ нужно предоставить необходимые документы и заплатить некоторую сумму, после чего забрать свой сертификат и заветный eToken с закрытым ключом.

Заключение

Источник

Электронная цифровая подпись для чайников: с чем ее есть, и как не подавиться. Часть 1

Итак, все чаще в кругах, работающих с документами все чаще звучат слова «электронный документ» и, связанное с ним почти неразрывно «электронная цифровая подпись», иначе — ЭЦП.

Данный цикл статей предназначен для того, чтобы раскрыть «тайное знание» о том, что это такое, когда и как это можно и нужно использовать, какие есть плюсы и минусы.

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

Зачем нам вообще что-то подписывать? Естественно, чтобы удостоверить, что мы ознакомились с содержимым, согласны (а иногда наоборот, не согласны) с ним. А электронная подпись еще и защищает наше содержимое от подмены.

Итак, начать, естественно, стоит с того, что такое электронная цифровая подпись.
В самом примитивном случае это — результат хэш-функции. Что это такое лучше меня разъяснит википедиа, в нашем же случае главное, что с высокой степенью вероятности ее результат не повторяется для разных исходных данных, а также что результат этой функции мало того, что короче исходных данных, так еще по нему исходную информацию восстановить нельзя. Результат функции называют хэшем, а применение этой функции к данным называют хешированием. Грубо, можно назвать хэш функцию архивированием, в результате чего мы получаем очень маленькую последовательность байт, но восстановить исходные данные из такого «архива» нельзя.

Итак, мы читаем файлик в память, хэшируем прочитанное. И что, уже получаем ЭЦП? Почти. Наш результат с большой натяжкой можно назвать подписью, но, все же, полноценной подписью он не является, потому что:

1. Мы не знаем, кто сделал данную подпись

2. Мы не знаем, когда была сделана подпись

3. Сама подпись не защищена от подмены никак.

4. Ну и да, хэш функций много, какая из них использовалась для создания этого конкретного хэша?

Поэтому применять к хэшу слово «подпись» еще нехорошо, будем называть его дальше просто хэш.

Вы посылаете ваш файл другому человеку, допустим, по почте, будучи уверенными, что он точно получит и прочитает именно то, что вы послали. Он же, в свою очередь, тоже должен хэшировать ваши данные и сравнить свой результат с вашим. Если они совпали — все хорошо. Это значит что данные защищены? Нет.
Ведь хэшировать может кто угодно и когда угодно, и вы никогда не докажете, что он хэшировал не то, что вы послали. То есть, если данные будут перехвачены по дороге злоумышленником, или же тот, кому вы посылаете данные — не очень хороший человек, то данные могут быть спокойно подменены и прохэшированы. А ваш получатель (ну или вы, если получатель — тот самый нехороший человек) никогда не узнает, что он получил не то, что вы отправляли, или сам подменил информацию от вас для дальнейшего использования в своих нехороших целях.
Посему, место для использование чистой хэш функции — транспорт данных в пределах программы или программ, если они умеют общаться между собой. Собственно, с помощью хэш функций вычисляются контрольные суммы. И эти механизмы защищают от случайной подмены данных, но не защищают от специальной.

Но, пойдем дальше. Нам хочется защитить наш результат хеширования от подмены, чтобы каждый встречный не мог утверждать, что это у него правильный результат. Для этого самое очевидное что (помимо мер административного характера)? Правильно, зашифровать. А ведь с помощью шифрования же можно и удостоверить личность того, кто хэшировал данные! И сделать это сравнительно просто, ведь есть ассиметричное шифрование. Да, оно медленное и тяжелое, но ведь нам всего-то и надо — зашифровать маленькую последовательность байт. Плюсы такого действия очевидны — для того, чтобы проверить нашу подпись, надо будет иметь наш открытый ключ, по которому личность зашифровавшего (а значит, и создавшего хэш) можно легко установить.
Суть этого шифрования в следующем: у вас есть закрытый ключ, который вы храните у себя. И есть открытый ключ. Открытый ключ вы можете всем показывать и раздавать, а закрытый — нет. Шифрование происходит с помощью закрытого ключа, а расшифровывание — с помощью открытого.
Приводя аналогию, у вас есть отличный замок и два ключа к нему. Один ключ замок открывает (открытый), второй — закрывает (закрытый). Вы берете коробочку, кладете в нее какую-то вещь и закрываете ее своим замком. Так, как вы хотите, чтобы закрытую вашим замком коробочку открыл ее получатель, то вы открытый, открывающий замок, ключик спокойно отдаете ему. Но вы не хотите, чтобы вашим замком кто-то закрывал коробочку заново, ведь это ваш личный замок, и все знают, что он именно ваш. Поэтому закрывающий ключик вы всегда держите при себе, чтобы кто-нибудь не положил в вашу коробочку мерзкую гадость и не говорил потом, что это вы ее положили и закрыли своим замком.

И все бы хорошо, но тут сразу же возникает проблема, а, на самом деле, даже не одна.

1. Надо как-то передать наш открытый ключ, при этом его должна понять принимающая сторона.

2. Надо как-то связать этот открытый ключ с нами, чтобы нельзя было его присвоить.

3. Мало того, что ключ надо связать с нами, надо еще и понять, какой зашифрованный хэш каким ключом расшифровывать. А если хэш не один, а их, скажем, сто? Хранить отдельный реестр — очень тяжелая задача.

Все это приводит нас к тому, что и закрытый ключ, и наш хэш надо хранить в каких-то форматах, которые нужно стандартизировать, распространить как можно шире и уже тогда использовать, чтобы у отправителя и получателя не возникало «трудностей перевода».

Как водится у людей, к чему-то единому прийти так и не смогли, и образовалось два больших лагеря — формат OpenPGP и формат S/MIME + X.509. Но об этом уже в следующей статье.

Источник

Применение хеш-функции в создании электронной цифровой подписи

dba579c069139fdce76a2015f2ec7b2c

practical theory actual

Рубрика: Математика: алгебра и начала анализа, геометрия

Дата публикации: 17.06.2020 2020-06-17

Статья просмотрена: 410 раз

Библиографическое описание:

Трубникова, Е. А. Применение хеш-функции в создании электронной цифровой подписи / Е. А. Трубникова, В. П. Батунина. — Текст : непосредственный // Юный ученый. — 2020. — № 7 (37). — С. 19-22. — URL: https://moluch.ru/young/archive/37/2117/ (дата обращения: 12.09.2021).

При обмене электронными документами по каналам связи возникает проблема аутентификации как автора документа, так и самого документа. Это означает, что получатель должен быть уверен, во-первых, в истинности автора, а во-вторых, в отсутствии изменений в самом документе. В обычных бумажных документах эти проблемы решаются за счет того, что содержание документа и рукописная подпись автора жестко связаны физическим носителем данных (бумагой). В электронных документах на машинных носителях такой связи нет.

Целью аутентификации электронных документов является их защита от возможных видов вредоносных действий:

– активный перехват — злоумышленник, подключившись к каналу связи, перехватывает файлы документов и меняет их на другие,

2117.001

направляет документ абоненту

2117.002

2117.003

2117.003

утверждает, что не направлял документ абоненту

2117.002

, хотя в действительности посылал;

2117.002

меняет полученный или формирует новый документ, после чего утверждает, что получил его от абонента

2117.003

2117.001

повторяет от своего имени ранее переданный документ, который абонент

2117.003

2117.002

Один из самых простых способов аутентификации (подписи) электронных документов — использование шифрования. При этом отправитель

2117.003

шифрует документ своим секретным ключом и отправляет получателю

2117.002

2117.002

дешифрует документ с помощью открытого ключа отправителя

2117.003

. Если это ему удается, то документ считается истинным. Если получатель

2117.002

не сможет дешифровать документ, то документ подлинным не считается. Такой способ имеет чрезвычайно серьезный недостаток, связанный с тем, что он неэффективен для подписания документов значительного объема.

Именно поэтому для аутентификации электронных документов, передаваемых по телекоммуникационным каналам связи, используется специально создаваемая электронная цифровая подпись (ЭЦП). Функционально ЭЦП аналогична обычной рукописной подписи и обладает следующими свойствами:

– показывает, что подписанный документ получен от лица, поставившего свою подпись;

– не дает возможности лицу, поставившему свою подпись, отказаться от подписанного документа;

– является неотъемлемой частью данного документа и не может быть использована для подписания другого документа;

– гарантирует целостность подписанного документа.

Электронная цифровая подпись представляет собой относительно небольшое количество дополнительных цифровых данных, которые передаются вместе с подписанным текстом. Применение ЭЦП имеет вид следующего криптографического протокола:

2117.004

, который должен быть подписан, отправитель

2117.003

вычисляет значение односторонней хэш-функции

2117.005

2117.006

2117.003

шифрует своим личным секретным ключом и получает число, которое считается подписью документа;

3) зашифрованное хэш-значение вместе с документом

2117.004

2117.003

2117.002

2117.002

сначала сам вычисляет хэш-значение

2117.006

полученного документа, далее дешифрует полученное хеш-значения с использованием открытого ключа отправителя

2117.003

, после чего сравнивает оба значения.

Если два полученных хэш-значения совпадают, то подпись отправителя

2117.003

считается верной, а сам документ

2117.004

Участники криптографического протокола ЭЦП должны предварительно договориться об использовании определенной криптографической системы, а также хэш-функции.

Среди большого количества различных асимметричных криптосистем самой популярной является криптосистема RSA, разработанная в 1977 г. и получившая свое название в честь Рона Ривеста (Rivest), Ади Шамира (Shamir) и Леонарда Эйдельмана (Adleman). Алгоритм RSA используется в банковских компьютерных сетях, особенно для работы с удаленными клиентами (Обслуживание кредитных карточек). Надежность алгоритма основывается на трудности факторизации (разложения на множители) больших чисел и трудности вычисления дискретных алгоритмов (нахождения

2117.007

2117.008

2117.009

2117.010

Алгоритм RSA состоит из трех частей: генерации ключей, шифрования и дешифрования. Генерируют

2117.011

2117.012

— секретный ключ. Открытый ключ публикуется и доступен каждому желающему прислать владельцу ключа сообщение, которое зашифровано указанным алгоритмом. Зашифрованное сообщение невозможно прочитать с помощью открытого ключа, и только владелец закрытого ключа имеет возможность расшифровать принятое сообщение.

2117.013

, которая используется в протоколе ЭЦП, предназначена для того, чтобы сжать подписываемый документ

2117.004

произвольной длины к двоичному хэш-значению

2117.005

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

Основные свойства хэш-функции:

2117.014

зависит от всего документа

2117.015

чрезвычайно сложным способом, благодаря чему по значению

2117.014

невозможно восстановить документ

2117.015

2117.014

чувствительно к любым, даже незначительным, изменениям в документе

2117.015

(вставки, удаления, перестановки и т. п.);

2117.016

является необратимой, то есть подбор некоторого фиктивного документа

2117.015

‘ с тем же самым хеш-значением

2117.014

является задачей практически нерешаемой;

4) вероятность того, что хеш-значения двух разных документов совпадут, чрезвычайно мала.

Подавляющее большинство используемых хэш-функций имеют вид

2117.017

и работают по следующему принципу: они образуют одно хэш-значение длиной

2117.018

бит из двух входных значений, каждое из которых тоже имеет длину n бит. Для применения такой хэш-функции документ

2117.004

должен быть предварительно представлен в двоичной форме и разбит на отдельные блоки

2117.019

2117.018

Содержание указанных входных значений хэш-функции следующее:

1) первое входное значение представляет собой очередной блок документа

2117.020

2) второе входное значение представляет собой хэш-значение

2117.021

всех предыдущих блоков документа.

При исчислении хэш-значение для первого блока

2117.022

документа используется некоторое начальное хэш-значение

2117.023

, которое можно выбрать случайным или фиксированным (например,

2117.024

— в простейшем случае). При этом хэш-значение, вычисленное при использовании последнего блока документа, считается хеш-значением всего документа

2117.004

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

2117.025

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

2117.026

2117.027

— произведение двух простых чисел, и алгоритм шифрования RSA.

Возьмем два простых числа

2117.028

2117.029

2117.030

2117.023

выбираем случайным образом, пусть оно равно 12. Слово «ТРУБНИКОВА» представим в виде последовательности чисел (20, 18, 21, 2, 15, 10, 12, 16, 3, 1) по номерам букв в русском алфавите. Тогда имеем

2117.031

2117.032

2117.033

, получим хеш-образ сообщения «ТРУБНИКОВА»:

2117.034

2117.035

2117.036

2117.037

2117.038

2117.039

2117.040

2117.041

2117.042

2117.043

2117.044

2117.045

2117.046

2117.047

2117.048

2117.049

2117.050

2117.051

2117.052

2117.053

В итоге получаем хеш-образ сообщения «ТРУБНИКОВА», равный 9, который будем использовать для вычисления электронной цифровой подписи по схеме RSA.

Сгенерируем открытый и секретный ключи для алгоритма шифрования RSA. Оставим ранее выбранные простые двузначные числа

2117.028

2117.054

2117.055

, тогда функция Эйлера

2117.056

2117.057

выбираем из условий

2117.058

2117.057

2117.059

2117.060

2117.059

не имеют общих делителей.

2117.061

2117.062

выбираем из условий

2117.063

2117.064

2117.065

2117.066

Последнее условие означает, что число

2117.067

должно делиться на 352 без остатка.

Таким образом, для определения

2117.062

нужно подобрать такое число

2117.068

2117.069

2117.070

2117.071

2117.072

Таким образом мы сгенерировали

2117.073

2117.074

Электронная цифровая подпись сообщения, состоящего из Фамилии, вычисляется по правилу

2117.075

Для проверки ЭЦП используем открытый ключ

2117.076

2117.077

Как видим, хеш-образ сообщения совпадает с найденным значением H, следовательно, подпись признается подлинной.

Таким образом мы построили демонстрационный пример создания электронной цифровой подписи с использованием хеш-функции

2117.078

и алгоритма шифрования RSA. Все вычисления были выполнены в электронных таблицах Excel, в частности, с использованием формулы =ОСТАТ(

2117.079

2117.018

Похожие статьи

Исследование криптосистем с открытым ключом на основе.

В криптосистеме с открытым ключом для шифрования и расшифрования используются различные ключи.

RSA — криптографический алгоритм с открытым ключом

Это позволит нападающему читать все сообщения, зашифрованные открытым ключом и подделывать.

Создание ключей, шифрование и дешифрование сообщений.

Статья посвящена реализации алгоритма шифрования на открытом ключе RSA. LabVIEW (англ. RSA (аббревиатура от фамилий Rivest.

Пост-квантовый алгоритм электронноцифровой подписи на.

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

Алгоритмы шифрования данных | Статья в журнале.

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

Реализация алгоритма шифрования RSA на языке.

Статья посвящена реализации алгоритма шифрования на открытом ключе RSA. LabVIEW (англ. Laboratory Virtual Instrumentation Engineering Workbench) — это среда разработки и платформа для выполнения программ.

Анализ алгоритма RSA. Некоторые распространённые.

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

Основные термины (генерируются автоматически): открытым ключом, шифрования rsa.

Способ хранения закрытого ключа криптосистемы цифровой.

Электронная цифровая подпись (ЭЦП) — реквизит электронного документа, полученный в результате криптографического преобразования информации с использованием закрытого ключа подписи и позволяющий установить отсутствие искажения информации в электронном.

Шифрование и криптоанализ | Статья в журнале «Молодой. »

Основные термины (генерируются автоматически): открытым ключом, шифрования rsa, секретной экспоненты, секретную экспоненту, открытый ключ

Алгоритмы шифрования данных | Статья в журнале. Алгоритмы асимметричного шифрования используют два ключа.

Теория чисел в криптографии | Статья в журнале.

RSA, число, простое число, тест, выбор показателей, случайный сеансовый ключ, случайный образ, секретный показатель, простой перебор

Статья посвящена реализации алгоритма шифрования на открытом ключе RSA. Некоторые аспекты криптографического взлома и.

Источник

Комфорт