## Электронная и цифровая подпись - асимметричное шифрование наоборот

#### Электронная подпись (ранее - ЭЦП, сейчас ЭП)

<details><summary style="color: blue; font-weight: bold;">ЭП</summary>
<p>


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

* Простые подписи, такие как отсканированное изображение рукописной подписи;
* Нажатие на кнопку «Подтвердить» или «Согласен»;
* Даже голосовые или биометрические данные;

Электронные подписи, как правило, подтверждают, что человек действительно участвовал в подписании, но не всегда обеспечивают высокий уровень защиты от подделок.

</p>
</details>

#### Цифровая подпись (ЦП)

<details><summary style="color: blue; font-weight: bold;">ЦП</summary>
<p>

Цифровая подпись — это **подвид электронной подписи**, основанный на асимметричном шифровании.

Описанную выше идею Диффи и Хеллмэн используется для ЦП сообщений, которую невозможно подделать за [полиномиальное время](https://github.com/eldaroid/iTWiki/blob/master/5%20Swift/5.2%20Glossary.md#полиномиальное-время):

* **ЦП — это асимметричное шифрование наоборот: вы зашифровываете закрытым ключом, а расшифровать может кто угодно с помощью открытого ключа, который доступен всем**


#### Пример работы цифровой подписи


![Цифровая подпись](/pictures/ComputerScience/Цифровая%20подпись.jpg?raw=true)

**Процесс создания цифровой подписи:**

1) **Получение сертификата и ключей**: В удостоверяющем центре (УЦ) пользователь получает пару ключей — закрытый и открытый. Закрытый ключ используется для **подписания сообщений** и должен храниться в секрете, а открытый ключ — для **верификации подписи**, и он доступен всем через сертификат.

2) **Хеширование документа:** Перед подписью документ (сообщение) преобразуется в криптографический хеш — уникальную строку фиксированной длины, которая является цифровым отпечатком документа. Хеширование обеспечивает целостность документа, так как любое изменение в документе приведет к изменению хеша.

3) **Шифрование хеша закрытым ключом:** Пользователь шифрует полученный хеш своего документа своим закрытым ключом. 
    > **Результат шxифрования и есть цифровая подпись** 
    > 
    > Эта подпись добавляется к документу и отправляется получателю.

4) **Передача документа с подписью:** Документ с подписью и сертификатом отправляется получателю. В сертификате содержится открытый ключ подписавшего, а также информация о владельце сертификата.

**Процесс верификации цифровой подписи:**

1) **Проверка подписи:** Получатель документа использует открытый ключ из сертификата подписавшего, чтобы расшифровать цифровую подпись и извлечь хеш, который был подписан.

2) **Хеширование документа получателем:** Получатель также рассчитывает хеш полученного документа.

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

**А что если подменят сам сертификат?**

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

#### ЦП и документы

В большинстве цивилизованных стран цифровые подписи имеют юридическую силу, равную обычным подписям. В частности, они легитимны в России, ЕС, США, Швейцарии, Бразилии, Мексике, Индии, Индонезии, Турции и Саудовской Аравии.

Проблема в том, что ЦП основана на алгоритмах асимметричного шифрования, а их ([как мы уже знаем](https://github.com/eldaroid/iTWiki/blob/master/2%20ComputerScience/2.5%20Cybersecurity/2.5.2%20Encryption.md#цп-и-документы)) много:
* **Разложение больших чисел на простые множители (RSA)**;
* **[Вычисление логарифма в конечном поле (криптосистема Эль-Гамаля, дискретное логарифмирование)](https://studfile.net/preview/5171438/page:16/)**;
* **Вычисление корней алгебраических уравнений (на основе эллиптических уравнений)**;
* **и др**;

Ключ из одного алгоритма не подойдёт для использования в другом, поэтому в России договорились использовать стандарт шифрования ГОСТ Р 34.10-2012, основанный на эллиптических кривых. Все государственные органы работают только с таким алгоритмом и не принимают другие ЭП.

Это значит, что нам нужен специальный софт, в котором уже есть этот алгоритм. Чаще всего используют КриптоПРО, реже — ViPNet CSP. С помощью этих программ можно подписать документы и проверить сертификаты на подлинность.


#### Блокчейн

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

</p>
</details>

---

[2.5.e Certificate Theme](./2.5.3%20Certificate.md) | [Back To iTWiki Contents](https://github.com/eldaroid/iTWiki) | [2.5.5 AuthenticationvsAuthorization Theme](./2.5.5%20AuthenticationvsAuthorization.md)