Цифровые подписи и криптографическая хеш-функция
Cryptokach | Биткоин, криптовалюты ICO, AirDropВ процессе проведения платежей в сети Биткоин используется криптография для проверки транзакций и создания блоков транзакций. В частности, Биткоин опирается на две криптографические схемы: 1) цифровые подписи и 2) криптографические хэш‑функции. Первая схема позволяет обмениваться платежными инструкциями между сторонами транзакции, а вторая используется для поддержания дисциплины внесения записей по транзакциям в публичный реестр (блокчейн). Следует заметить, что ни одна из этих схем не является уникальной для Биткоина — все они широко используются для защиты коммерческих и государственных коммуникаций. Приведем краткое описание ниже.
Цифровые подписи используются для удостоверения подлинности сообщения между отправителем и получателем и обеспечивают:
(1) удостоверение подлинности: получатель может проверить, что сообщение пришло от отправителя;
(2) невозможность отказа: отправитель не может отказаться от отправки сообщения;
(3) целостность: сообщение не было подделано.
Применение цифровых подписей включает шифрование с открытым ключом, в котором пара ключей — открытый и закрытый — генерируются с определенными желаемыми свойствами. Цифровая подпись используется для подписания сообщений: транзакция подписывается с помощью закрытого ключа, а затем транслируется в сеть Биткоин. Все участники сети могут проверить, что эта транзакция пришла от владельца открытого ключа, взяв сообщение, подпись, открытый ключ и запустив алгоритм проверки.
Криптографическая хеш‑функция принимает на входе строку произвольной длины (сообщение m) и возвращает строку с заранее определенной длиной (хэш h). Функция является детерминированной, это означает, что один и тот же m на входе всегда будет давать один и тот же h на выходе. Помимо этого, функция также должна обладать следующими свойствами.
(1) Стойкость к восстановлению прообраза. При данном хэше h сложно найти такое сообщение m, при котором хэш(m) = h.
(2) Стойкость к коллизиям. При заданном сообщении m1 сложно найти другое сообщение m2, при котором хэш(m1) = хэш(m2). Другими словами, изменение сообщения приводит к изменению хэша.
Выход хэш‑функции выглядит так, как будто получен случайным образом, хотя и является детерминированным. Биткоин в основном использует алгоритм безопасного хеширования SHA‑256 — тип Secure Hash Algorithm (SHA‑2), разработанный Агентством национальной безопасности и опубликованный Национальным институтом стандартов и технологий, см. (Dang, 2012).
----------------------
Подписываемся на канал Cryptokach