Хэш, асимметрия и ЭЦП: чем защищен Биткоин
Конфиденциальность, сохранность личных данных… Ценная «валюта» в современном мире! Даже не касаясь Биткоина: сколько раз мы слышали об утечке личных данных, причем, даже у каких-нибудь гигантов уровня Яндекс или Google.
В финансовых вопросах ценность конфиденциальности возрастает вдвое и втрое. А то и в десять раз. Уже все научились не разглашать три символа на обратной стороне кредитки. И все равно — то так, то эдак мошенники выманят деньги из чужого кармана!
Биткоин создавался, в том числе, чтобы обеспечить полную безопасность пользователей. Основа технологии — криптография или невозможность доступа к информации посторонним. Здесь же подразумевается:
- Целостность информации — нельзя незаметно внести изменения;
- Уникальность аутентификации — нельзя «прикинуться» другим пользователем, также сохраняются свойства объекта.
У Биткоина есть также три основных технологии:
- Хэширование;
- Асимметричная криптография;
- Электронная цифровая подпись (ЭЦП).
Разберемся, что они означают и как работают.
Хэширование
Технология хэширования существовала еще до криптовалюты. Если вы использовали торренты, то знаете: каждый файл проверяется на хэш. Если программа обнаруживает ошибки в этом длинном цифровом коде (сумме хэша), то сообщает о том, что скачивание прошло неудачно. Но в торрент-файлах хэш открытый — там ведь просто делятся в сети файлами, нужно только получить ярлык (сам торрент-файл), чтобы скачать информацию. Захэшировать можно любой объем информации: от «Hello, world» до «Войны и мира».
В криптовалюте хэш одновременно «скрытый» и «открытый». Скрытый — для безопасности. Открытый — для прозрачности и отслеживания операций.
Само по себе хэширование — это преобразование данных в символьную строку (hash). У любого объема данных эта строка уникальна. Если поменять хотя бы один символ — меняется весь хэш полностью.
Чаще всего технологию сравнивают с ДНК. Генетический код состоит из однообразных белков — сами по себе они очень простые, как и символы. А вот комбинация уникальна, даже у однояйцевых близнецов разный ДНК-код. Изредка появляются так называемые коллизии — совпадения хэша. Криптографы стараются минимизировать вероятности коллизий.
Интересный факт: в Биткоине чаще всего используют хэш-функцию SHA-256, которая состоит из 256 бит или 32 байта. В ней 64 символа. Пример: ef3c82303f3896044125616982c715e7757d4cd1f84c34c6b2e64167d2fde766
Поменять исходную информацию или восстановить ее из хэша нельзя. Придется перебирать все возможные варианты, но это займет несколько тысяч лет даже на мощных компьютерах. Поэтому надежность криптографического метода не вызывает сомнений: подобрать пароль от почты или CVV на карте относительно нетрудно. А хэш — практически невозможно.
В то же время, «вытащить» и сверить информацию из хэша несложно. Справится даже слабый компьютер — всего-то 32 байта. Поэтому проверить транзакцию на подлинность очень просто, а для платежа Биткоином не надо мощного устройства, хватит и мобильного гаджета.
Похожие технологии используются как в блокчейне — платежах и транзакциях криптовалюты, так и для электронных цифровых подписей (ЭЦП).
Как шифрование с открытым ключом «создало» крипту
Сначала существовало шифрование с закрытым ключом. Один и тот же ключ использовался для «запирания» и «отпирания». Но это создавало и проблемы.
Ближайшая аналогия — сейф. Да, он большой, тяжелый, надежный — возможно, даже огнеупорный.
Но чтобы закрыть и открыть этот сейф нужно просто набрать код из чисел. Пускай это очень длинная-сложная цепь символов — все равно ее должен знать каждый, кто пытается получить доступ к содержимому.
Тут возникали проблемы, которые мы иногда видим в фильмах, а иногда встречаем в реальности: код сейфа написан на бумажке, бумажка под ковриком. Или надо передать сейф другому человеку, но тот находится в людном месте, где другие могут посмотреть через плечо. А потом вскрыть сейф.
То есть, закрытый ключ — это как пароль. Его сложнее взломать, но если записали на бумажку и положили рядом с компьютером, то никакая безопасность не поможет. Поэтому специалисты в криптошифровании искали способ заменить закрытые ключи. Так появилось шифрование с открытым ключом.
Решение появилось задолго до рождения Биткоина и других криптовалют — в 1975 году. Авторы методики — Уитфилд Диффи и Мартин Хеллман. Они предложили так называемые «публичные ключ». В чем суть системы:
- Генерируется приватный ключ (последовательность символов). За счет алгоритма генерируется другой — публичный. Но для каждого закрытого ключа есть только один вариант открытый. То есть, это пара — публичный и «спрятанный».
- Публичный можно переслать как угодно. Хоть написать на бумажке, хоть на асфальте сделать граффити.
- Отправитель зашифровывает сообщение и отправляет получателю. У того будет только один уникальный приватный ключ, который подходит только к этому открытому ключу.
Пример: Маша и Петя общаются через компьютеры. Они работают вместе, хотели бы встретиться вечером. Система небезопасна — могут перехватывать Wi-Fi-роутеры, бдит сисадмин Вася, который любит лезть не в свое дело. Что они предпримут?
Маша получает от Пети открытый ключ по обычной почте. Да, сисадмин Вася увидит этот ключ. Но ничего страшного! Маша получит открытый ключ, и с помощью него сделает шифрование. Она опять-таки отправит письмо Пете: «Встретимся в семь часов в кафе», но прочитать может только владелец «изначального» кода — Петя. Любопытный сисадмин Вася останется ни с чем.
Конечно, у Маши должен быть закрытый (приватный) ключ. Но его можно передать один раз — он будет подходить для всех открытых ключей.
Асимметричное шифрование на примере сундуков и замков
Система асимметричного шифрования может выглядеть немного неочевидной. Попробуем использовать аналогию с сундуками. Наша цель: сделать так, чтобы только один человек смог открыть этот контейнер.
Вот, как это работает:
- Два ключа и замок.
- У нас есть один замок, но на нем две замочные скважины. Ключей тоже два.
- Один ключ (расположен слева) открывает только соответствующую скважину. Замок остается закрытым: правая-то часть никуда не делась.
- Правый ключ закрывает замок, используя свою скважину. Однако он открывает и запирающий механизм слева.
Представим исходное состояние замка:
- Левая половина зафиксирована — закрыта изначально даже для отправителя;
- Правая часть не зафиксирована;
- Правый ключ (публичный) находится в открытом доступе.
Переходим к шифрованию и отправке. Для начала, надо чтобы отправитель закрыл замок:
- У отправителя есть контейнер с замком, а также общий ключ.
- Он закрывает замок публичным ключом. Конечно, при этом закрывается только правая половина замка.
- После этого сам отправитель уже не может открыть замок: второй ключ только закрывает, но не открывает.
Далее сундук едет к адресату вместе с запертым замком. Перехват не страшен — даже если есть публичный ключ, он вскроет только половину, и это ровным счетом ничего не даст.
Сундук и замок у получателя. Теперь:
- У получателя есть приватный ключ. Он открывает правую часть через левую скважину.
- Приватный ключ открывает сундук полностью. Получатель может прочитать сообщение.
- То есть, самое важное — это приватный или закрытый ключ. Он должен быть только у получателя. Важный момент: его нет даже у отправителя! И он никуда не пересылается, это контейнер изначально сделан под получателя с его приватным ключом.
Технология ассиметричного шифрования используется далеко не только в криптовалютных транзакциях и блокчейнах. Основное направление — это сайты, базы данных. Любой современный веб-ресурс с адресом вида HTTPS — ассиметричен. «Приватный» ключ есть только у пользователя или у владельца сервера. А обмениваются сервер-клиент открытыми ключами. Перехватит хакер — не страшно. Это самая надежная из существующих систем шифрования.
Электронная цифровая подпись (ЭЦП)
«Царь-то ненастоящий!» — очень распространенная ситуация в интернете. Часто один пользователь выдает себя за другого. Хакеры подделывают личные данные, вплоть до фотографий.
Как добиться защиты? С помощью ЭЦП — электронной цифровой подписи. Как это работает?
Попробуем сравнить с обычной бумажной почтой. Подпись есть — но этого недостаточно. Идем к нотариусу, заверяем. Теперь уже вопросов не будет.
С электронной все сложнее. «Нотариально заверенные скриншоты» вряд ли помогут. А вот криптография — да.
Здесь тоже используется принцип асимметричного шифрования с публичным и приватным ключом. Но в случае ЭЦП процесс обратный:
- Отправитель шифрует сообщение приватным ключом;
- Получатель расшифровывает публичным;
- Хэш-код сравнивается с расшифрованной ЭЦП.
Если совпадает — подпись подлинная. Конечно, все эти операции делаются программно, сверять каждый символ вручную не надо.
ЭЦП отправляется, как правило, вместе с сертификатом. В нем публичный ключ плюс данные о владельце. С помощью сертификата можно определить отправителя и забрать публичный ключ для сверки.
ЭЦП тоже используется далеко не только в крипте. Например, ее применяют на сайтах госуслуг.
Биткоин нельзя представить себе без шифрования. Только благодаря асимметричному «закрыванию» и «открыванию» замков гарантируется безопасность уникального уровня: гораздо выше, чем на любой банковской карте.
Подписывайтесь на наш новый Telegram, который посвящен только сфере криптовалют. Ссылку на канал можно найти ниже в разделе «Об авторе».
Источник: playground.com





0 комментариев
Добавить комментарий