Обзор алгоритма шифрования SHA-256
История создания алгоритма SHA–256
Для чего создавался SHA–256
SHA 256 – сокращение от Secure Hashing Algorithm – это популярный криптографический алгоритм хэширования, разработанный National Security Agency – Агентством национальной безопасности США. Задача SHA–256 состоит в том, чтобы сделать из случайного набора данных определённые значения с фиксированной длиной, которое послужит идентификатором этих данных.
Полученное значение сравнивается с дубликатами исходных данных, извлечь которые невозможно. Основная сфера применения алгоритма – использование в различных приложениях или сервисах, связанных с защитой информации, где функция и получила широкое распространение. Также она используется как технология для майнинга криптовалют.
Этот алгоритм относится к группе шифровальных алгоритмов SHA–2, которые в свою очередь разработаны на базе алгоритма SHA–1, впервые созданного в 1995 году для использования в гражданских целях. Сам SHA–2 разработан Агентством национальной безопасности США весной 2002 года. В течение трёх лет АНБ США выпустили патент на использование технологии SHA в гражданских проектах.
В 2012 году в Национальном институте стандартов и технологий создан обновлённый вариант алгоритма: SHA–3. Со временем новый алгоритм будет вытеснять как текущий основной алгоритм SHA–2, так и уже устаревший, но ещё используемый SHA–1.
Хэш–сумма не является технологией шифрования данных в классическом понимании, этим обусловлена невозможность расшифровки данных в обратную сторону. Это односторонняя шифровка для любого количества данных. Все алгоритмы SHA базируются на методе Меркла–Дамгарда: данные разделяют на равномерные группы, каждая из которых проходит через одностороннюю функцию сжатия. В результате этого длина данных уменьшается.
У такого метода есть два значительных достоинства:
- быстрая скорость шифрования и практически невозможная расшифровка без ключей;
- минимальный риск появления коллизий (одинаковых образов).
Где ещё используется
Ежедневно каждый пользователь Сети, зная или нет, использует SHA–256: сертификат безопасности SSL, которым защищён каждый веб–сайт, включает в себя алгоритм SHA–256. Это необходимо для установления и аутентификации защищённого соединения с сайтом.
Плюсы SHA–256
SHA–256 – самый распространённый алгоритм майнинга среди всех остальных. Он зарекомендовал себя как устойчивый к взломам (за редким исключением) и эффективный алгоритм как для задач майнинга, так и для других целей.
Минусы SHA–256
Главным недостатком SHA–256 является его подконтрольность майнерам: обладатели самых больших вычислительных мощностей получают большую часть криптовалюты, что исключает один из основополагающих принципов криптовалют – децентрализованность.
После того как крупные инвесторы начали вкладывать деньги в вычислительные мощности для промышленного майнинга биткоина, сложность майнинга многократно выросла и стала требовать исключительных вычислительных мощностей. Этот недостаток исправлен в других протоколах, более современных и «заточенных» под использование в майнинге криптовалют, таких как Scrypt. Несмотря на то, что сегодня SHA–256 занимает большую часть рынка криптовалют, он будет ослаблять своё влияние в пользу более защищённых и продвинутых протоколов.
Через какое-то время алгоритмы SHA–1 перестали давать необходимый уровень надёжности из–за вероятного возникновения коллизий. SHA–256, как и SHA–512 более защищены от этого недостатка, но вероятность возникновения все равно присутствует.
Использование в криптовалютах
Майнинг на SHA–256
Майнинг на SHA–256, как и на любом другом алгоритме – это процесс решения какой–либо сложной криптографической задачи, которую генерирует программа для майнинга на основе данных с предыдущих блоков.
Майнить с использованием функции SHA–256 можно тремя способами:
- CPU (центральный процессор);
- GPU (графический процессор);
- специализированный процессор: ASIC.
В майнинге хэш–сумма используется в качестве идентификатора уже имеющихся блоков и создания новых на основе предыдущих. Процесс майнинга отображается в интерфейсе в виде «accepted f33ae3bc9…». Где f33ae3bc9 – это хэш–сумма, часть данных, предназначенная для дешифровки. Основной блок состоит из огромного количества подобных хэш–сумм.
То есть, майнинг с алгоритмом SHA–256 представляет собой безостановочный подбор правильного значения хэш–суммы, перебор чисел для создания нового блока. Чем больше ваши вычислительные мощности, тем больше шансов получить правильный блок: скорость перебора различных хэш–сумм зависит от мощностей.
Ввиду того, что Bitcoin построен на алгоритме SHA–256, для конкурентоспособного майнинга на нём необходимы крайне большие вычислительные мощности. Это связано с тем, что для майнинга биткоина достаточно давно налажено производство «асиков» – application specific integrated circuit, т. е. интегральная схема специального назначения. Асики позволяют майнить биткоины и другие криптовалюты на алгоритме SHA–256 гораздо быстрее, эффективнее и дешевле.
Какие криптовалюты используют алгоритм SHA–256
SHA–256 это классический алгоритм для криптовалют: на нем построена основная криптовалюта – Bitcoin. Соответственно, и в форках биткоина используется этот алгоритм: в Bitcoin Cash, Gold, Diamond.
Помимо них, SHA–256 используется также в:
- Steemit;
- DigiByte;
- PeerCoin;
- NameCoin;
- TeckCoin;
- Ocoin;
- Zetacoin;
- EmerCoin.
Также алгоритм SHA-256 используется как подпрограмма в криптовалюте Litecoin, а основным алгоритмом для майнинга там является Scrypt.