Sha 256 что это – 256 — алгоритм хеширования и его возможности

Содержание

256 — алгоритм хеширования и его возможности

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

Что такое майнинг?

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

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

Одним из самых популярных протоколов вычисления является SHA-256. Именно его использует первая криптовалюта в мире — Биткоин. Причем для повышения уровня безопасности алгоритм задействуется 2 раза и именуется уже двойным.

В Bitcoin критерием пригодности хеша считается необходимое количество «0» в его начале. Обнаружить подобное значение также невероятно трудно, как, например, отыскать номер автомобиля или сотового, кончающегося на пару 0. Разумеется, сделать такое для хеш-функции в много раз сложнее. В настоящее время, правильное значение должно включать приблизительно 17 начальных нулей, чему соответствует лишь одно из 1,4 умноженное на 10 в 20 степени. Проводя сравнение, отыскать подобный хеш значительно сложнее, нежели отыскать определенную песчинку среди всей нескончаемой массы песка на планете.

Особенности протокола SHA-256

Первоначальная версия алгоритма SHA-256 была создана Агентством национальной безопасности США весной 2002 года. Спустя несколько месяцев Национальный метрологический университет опубликовал новоявленный протокол шифрования в принятом на федеральном уровне стандарте безопасной обработки данных FIPS PUB 180-2. Зимой 2004 года он пополнился второй версией алгоритма.

В течение следующих 3 лет АНБ выпустила патент на SHA второго поколения под лицензией Royalty-free. Именно это дало старт применению технологии в гражданских сферах.

Обратите внимание! Довольно интересный факт: каждый пользователь Всемирной паутины, сам того не зная, во время своих путешествий по интернету пользуется данным протоколом. Посещение любого веб-ресурса, защищенного сертификатом безопасности SSL, автоматически запускает выполнение алгоритма SHA-256.

Данный протокол работает с информацией, раздробленный на части по 512 бит (или другими словами 64 байта). Он производит ее криптографическое «смешивание», а затем выдаёт 256-битный хеш-код. В состав алгоритма входит сравнительно простой раунд, который повторяется 64 раза.

Кроме того, SHA-256 имеет довольно неплохие технические параметры:

  • Показатель размера блока (байт) – 64.
  • Предельно допустимая длина сообщения (байт) – 33.
  • Характеристика размера дайджеста сообщения (байт) – 32.
  • Стандартный размер слова (байт) – 4.
  • Параметр длины внутреннего положения (байт) – 32.
  • Число итераций в одном цикле – всего 64.
  • Достигаемая протоколом скорость (MiB/s) – примерно 140.

Работа алгоритма SHA-256 базируется на методе построения Меркла-Дамгарда, в соответствии с которым начальный показатель сразу после внесенного изменения разделяется на блоки, а те, в свою очередь, на 16 слов.

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

Также стоит упомянуть 6 битовых операций, на основе которых функционирует протокол:

  • «and» — побитовая операция «И»;
  • «shr» — перемещает значение на требуемое количество бит вправо;
  • «rots» — команда аналогичная по действию предыдущий, с той лишь разницей, что осуществляется циклический сдвиг;
  • «||» или конкатенация — операция соединения частей линейной структуры, чаще всего строк;
  • «xor» — команда, убирающая «ИЛИ»;
  • «+» — обыкновенная операция сложения.

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

Криптографический смысл SHA-256

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

Первые исследования SHA-256 на присутствие уязвимостей начали осуществляться специалистами с 2003 года. На тот момент ошибок в протоколе обнаружено не было.

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

Во время анализа функции свертки осуществляется тестирование ее сопротивляемости к 2 разновидностям атак:

  1. Наличие прообраза — дешифрование начального сообщения по его хеш-коду. Сопротивляемость подобному типу воздействия гарантирует надежную защиту результатам преобразования.
  2. Нахождение коллизий — схожие выходные данные при различных входных характеристиках. От устойчивости к такой разновидности атак находится в прямой зависимости защищенность электронной подписи с использованием актуального протокола.

Создатели второго поколения алгоритма SHA решили, что новый механизм шифрования будет функционировать на основе совершенно других принципов. Так, осенью 2012 года на свет появился протокол третьей серии — Keccak.

Практическое применение и сертификация технологии

Законодательством Соединенных Штатов Америки разрешается использование SHA-256 и прочих аналогичных методов хеширования в определенных государственных программах для защиты сведений. Кроме того, допускается применение алгоритма коммерческими компаниями.

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

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

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

Вывод

Подводя итог, можно сказать, что протокол SHA-256 оказался чересчур легким и сегодня имеется целое множество специализированных девайсов (так называемые майнеры), которые успешно обходят его. С их появлением отпала необходимость майнить на процессоре или собирать фермы из видеокарт, поскольку ASIC-устройства позволяют своим владельцам заработать намного больше. Однако, у этого есть и обратная сторона. Использование майнеров слишком сильно централизует криптовалюту, а значит, необходимо внедрение новых протоколов хеширования. Таким алгоритмом стал Scrypt — куда более продвинутый защитный механизм, который требует значительной производительности и поэтому теоретически лишает специальные приборы особого преимущества.

С позиции рядового пользователя нет никакой разницы между протоколами SHA-256 и Scrypt. Можно майнить цифровую валюту своим компьютером или фермой на любом из данных протоколов.

Алгоритм SHA-256 на сегодняшний день занимает более 40% всего рынка, однако, вне всякого сомнения, имеются и другие. И в скором времени они потеснят прославленного предшественника. Так, из сравнительно свежих необходимо упомянуть об особенно «майнероустойчивом» протоколе Dagger, который собираются использовать в децентрализованной площадке Эфириум. Возможно, именно он примет эстафету лидера в области хеширования и займет место SHA-256.

tutdenegki.com

Крипто терминология: объясняем SHA-256

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

Так что же это такое SHA-256? Как уже упоминалось ранее, это алгоритм. Если быть более точным, то это криптографическая хэш-функция, которая была разработана вашими и моими «друзьями» – Агентством национальной безопасности США. Подождите, не спешите впадать в прострацию, здесь не о чем волноваться. Потерпите немного, обещаю, что скучать вы точно не будете.

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

Как мы все знаем, при майнинге SHA-256 монет, мы решаем поставленную задачу при помощи процессора CPU или GPU. Процессы преобразования отображаются в интерфейсе программы, предназначенной для майнинга, например, в виде строки «Accepted 0aef41a3b». Значение 0aef41a3b — это и есть хэш. Он представляет собой кусок данных для раскодирования, которому соответствует полученный хэш-код. Если еще проще, то это короткая строка расшифрованных данных, тогда как основной кусок (или блок) данных состоит из нескольких тысяч, если не миллионов, подобных строк.

Это также объясняет то, почему вам обычно нужно решить множество задач, прежде чем удастся отыскать нужный блок вашей монеты. У вас имеется один шанс на тысячу, десять тысяч, сто тысяч или даже миллион решений того, что раскодированная строка будет иметь ТОЧНОЕ значение, необходимое для разблокировки, или это будут мои данные (или блока). Это похоже на игру в лотерею, но с машинами, которые могут выполнять вычисление выигрышной комбинации быстрее и лучше, чем любой из нас.

Вы считаете, что для решения задач, связанных с хэшированием при использовании протокола SHA-256, вам потребуется мощное аппаратное обеспечение? В этом есть определенный смысл. Чем больше используется вычислительной мощности, тем лучше, так как увеличиваются шансы на добычу монет. Но имейте в виду, что вы не единственный, кто занимается майнингом. Есть люди, которые располагают более производительным аппаратным обеспечением. Не расстраивайтесь, у вас есть все шансы на выигрыш. Это похоже на игру в лотерею, вы никогда не знаете, когда повезет!

Теперь вернемся к алгоритму SHA-256. Криптовалюта — это не единичный пример, где используется SHA-256. Есть несколько протоколов, о которых вы, скорее всего, слышали и которые работают по схожему алгоритму. Это протоколы SSL, SSH, PGP и многие другие. Каждый раз, когда вы заходите на защищенный веб-сайт с помощью сертификата SSL, используется SHA-256. Бьюсь об заклад, вы не задумывались об этом, не так ли? Все мы узнаем что-то новое со временем!

Итак, давайте поговорим о протоколе SHA-256! У вас наверняка есть биткоин, который является самой известной альтернативной валютой на сегодняшний день. Но это не повод останавливаться на достигнутом. В последнее время наблюдается всплеск новых SHA-256 монет: Zetacoin, Ocoin, Tekcoin и др. Но мы также не можем забывать про те монеты, которые были запущены ранее, например, NameCoin и т.д.

В следующей статье мы рассмотрим особенности работы алгоритма Scrypt!

coinspot.io

Sha 256 что это — Всё о майнинге криптовалют

SHA-256 и SCRYPT что это?

Думаю, каждый кто начал заниматься майнингом или облачным майнингом криптовалют рано или поздно сталкивался с непонятыми ему терминами вроде SHA-256 и SCRYPT. Что же обозначают эти акронимы?

Sha-256 и Scrypt — это алгоритмы. Думаю, вы уже знаете, что для того, чтобы добыть какую-либо криптовалют нужно её майнить (то есть скачать специальную программу, запустить её и ждать пока ваш компьютер что-нибудь заработает). Так вот вся суть майнинга заключается в том, что ваш компьютер решает сложные задачи (хеш функции) и чем больше работы выполнит ваш компьютер тем больше криптовалюты вы получите. И задачи которые решает ваш компьютер могут быть устроены по разному — какие-то базируются на алгоритме Sha-256, а какие-то на алгоритме Scrypt (есть и другие алгоритмы, но эти два самые популярные).

Например, всем известный Биткоин добывается по алгоритму Sha-256, а монетки DogeCoin добываются по алгоритму Scrypt. Иными словами, разные криптовалюты используют разные алгоритмы. Но зачем?

А вот зачем — алгоритм Sha-256 оказался слишком простым и сейчас появилось огромное количество специальных устройств (которые ещё называют асиками), которые решают задачи на данном алгоритме намного быстрее простых процессоров, таким образом эти асики приносят своим владельцам намного больше биткоинов, чем обычный компьютер. Поэтому для многих новых криптовалют и стали использовать алгоритм Scrypt — данный алгоритм требует больше аппаратных мощностей для решения и поэтому в теории использование асиков не будет давать намного больше криптовалюты, чем использование простых процессоров или видеокарт, таким образом все оказываются в равных условиях.

С точки зрения простого пользователя нет никаких отличий между алгоритмами Sha-256 и Scrypt вы можете добывать своим процессором или видеокартой криптовалюты на любом из этих алгоритмов.

Курс Bitcoin сегодня:

SHA-256 это:

Хеш-функции семейства SHA-2 построены на основе структуры Меркла — Дамгарда (англ.).

Исходное сообщение после дополнения разбивается на блоки, каждый блок — на 8 слов. Алгоритм пропускает каждый блок сообщения через цикл с 64-мя или 80-ю итерациями (раундами). На каждой итерации 2 слова из восьми преобразуются, функцию преобразования задают остальные слова. Результаты обработки каждого блока складываются, сумма является значением хеш-функции. Подробнее — см.

  • ǁ — Конкатенация ,
  • + — Сложение ,
  • and — Побитовое «И» ,
  • or — Побитовое «ИЛИ» ,
  • xor — Исключающее «ИЛИ» ,
  • shr — Логический сдвиг вправо ,
  • rotr — Циклический сдвиг вправо .

В следующей таблице показаны некоторые технические характеристики различных вариантов SHA-2. «Внутреннее состояние» обозначает промежуточную хеш-сумму после обработки очередного блока данных:

Длина дайджеста сообщения (бит)

Длина внутреннего состояния (бит)

Длина блока (бит)

Псевдокод SHA-256

SHA-224 идентичен SHA-256. за исключением:

  • для инициализации переменных h0 — h7 используются другие начальные значения.
  • в итоговом хеше опускается значение h7 .

SHA-512 имеет идентичную структуру, но:

  • слова имеют длину 64 бита.
  • используется 80 раундов вместо 64.
  • начальные значения переменных и константы расширены до 64 бит.
  • в сдвиг в операциях rotr и shr производится на другое число позиций.

SHA-384 идентичен SHA-512, за исключением:

  • переменные h0 — h7 имеют другие начальные значения.
  • в итоговом хеше опускаются значения h6 и h7 .

Ниже приведены примеры хешей SHA-2. Для всех сообщений подразумевается использование кодировки

Малейшее изменение сообщения в подавляющем большинстве случаев приводит к совершенно другому хешу вследствие лавинного эффекта. К примеру, при изменении dog на cog получится:

Криптоанализ

На 2008 год хеш-функции SHA-2. в отличие от SHA-1. недостаточно изучены. В 2003 году Гилберт и Хандшух провели исследование SHA-2. но не нашли каких-либо уязвимостей. [6]

Криптоанализ хеш-функции подразумевает исследование устойчивости алгоритма по отношению, по меньшей мере, к следующим видам атак:

  • нахождение коллизий. т. е. разных сообщений с одинаковым хешем.
  • нахождение прообраза. т. е. неизвестного сообщения по его хешу.

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

В марте 2008 года индийские исследователи Сомитра Кумар Санадия и Палаш Саркар опубликовали найденные ими коллизии для 22 итераций SHA-256 и SHA-512. [7] В сентябре того же года они представили метод конструирования коллизий для усечённых вариантов SHA-2 (21 итерация). [8] [9]

Ввиду алгоритмической схожести SHA-2 с SHA-1 и наличия у последней потенциальных уязвимостей ведутся поиски улучшенных альтернатив. [10] [11] Новый стандарт будет назван SHA-3. он будет определен конкурсом, проводимым Национальным институтом стандартов и технологий в 2008—2012 гг. [12]

Применение и сертификация

SHA-224. SHA-256. SHA-384 и SHA-512 законом США допускаются к использованию в некоторых правительственных приложениях, включая использование в рамках других криптографических алгоритмов и протоколов, для защиты информации, не имеющей грифа секретности. Стандарт также допускает использование SHA-2 частными и коммерческими организациями. [13]

Хеш-функции SHA-2 используются для проверки целостности данных и в различных криптографических схемах. На 2008 год семейство хеш-функций SHA-2 не имеет такого широкого распространения, как [14]. несмотря на обнаруженные у последних недостатки.

Некоторые примеры применения SHA-2 указаны в таблице:

Смотреть что такое «SHA-256» в других словарях:

Sha-256 — (Secure Hash Algorithm) est une fonction de hachage cryptographique conçue par la National Security Agency des États Unis (NSA), et publiée en 2000. Elle produit un résultat (appelé « hash » ou condensat) de 256 bits et dérive du SHA 1 … Wikipédia en Français

SHA-256 — (Secure Hash Algorithm) est une fonction de hachage cryptographique conçue par la National Security Agency des États Unis (NSA), et publiée en 2000. Elle produit un résultat (appelé « hash » ou condensat) de 256 bits et dérive du… … Wikipédia en Français

SHA-256 — Der Begriff secure hash algorithm (engl. für sicherer Hash Algorithmus), kurz SHA, bezeichnet eine Gruppe standardisierter kryptologischer Hash Funktionen. Diese dienen zur Berechnung eines eindeutigen Prüfwerts für beliebige elektronische Daten … Deutsch Wikipedia

Spécifications SHA-256 — SHA 256 est une fonction de hachage cryptographique dérivée de SHA 1 qui fournit une empreinte de 256 bits. Pour l histoire, la cryptanalyse et d autres aspects liés à cette fonction, voir l article SHA 256. Sommaire 1 Introduction 2 Symboles et… … Wikipédia en Français

Specifications SHA-256 — Spécifications SHA 256 SHA 256 est une fonction de hachage cryptographique dérivée de SHA 1 qui fournit une empreinte de 256 bits. Pour l histoire, la cryptanalyse et d autres aspects liés à cette fonction, voir l article SHA 256. Sommaire 1… … Wikipédia en Français

Spécifications sha-256 — SHA 256 est une fonction de hachage cryptographique dérivée de SHA 1 qui fournit une empreinte de 256 bits. Pour l histoire, la cryptanalyse et d autres aspects liés à cette fonction, voir l article SHA 256. Sommaire 1 Introduction 2 Symboles et… … Wikipédia en Français

SHA-224 — SHA 2 (англ. Secure Hash Algorithm Version 2 безопасный алгоритм хеширования, версия 2) собирательное название однонаправленных хеш функций SHA 224, SHA 256, SHA 384 и SHA 512. Хеш функции предназначены для создания «отпечатков» или… … Википедия

SHA-512 — SHA 2 (англ. Secure Hash Algorithm Version 2 безопасный алгоритм хеширования, версия 2) собирательное название однонаправленных хеш функций SHA 224, SHA 256, SHA 384 и SHA 512. Хеш функции предназначены для создания «отпечатков» или… … Википедия

SHA-384 — SHA 2 (англ. Secure Hash Algorithm Version 2 безопасный алгоритм хеширования, версия 2) собирательное название однонаправленных хеш функций SHA 224, SHA 256, SHA 384 и SHA 512. Хеш функции предназначены для создания «отпечатков» или… … Википедия

Sha-1 — Une itération de SHA 1 avec deux rotations vers la gauche et une fonction non linéaire qui dépend du numéro d itération, deux autres variables interviennent à chaque tour SHA 1 (Secure Hash Algorithm) est une fonction de hachage cryptographique… … Wikipédia en Français

Многие из вас наверняка еще с самого начала задались вопросом «А как там оно все таки работает ?». Я постараюсь максимально подробно и доступно ответить на этот вопрос. Не зря алгоритмы, да и все что связано с данной темой, имеет приставку крипто-. Это не спроста. Так как для того чтобы докопаться до сути – придется пробираться через дебри криптографических терминов типа SHA-256, Scrypt, RIPMD-160, base58check и т.д. Я не зря решил собрать все в одну статью. Так как материала будет не много и он хорошо усваивается. А так же можно будет сравнить и выявить слабые и сильные стороны каждого метода.

Сразу скажу вам одну интересную вещь. Вы даже не задумывались, но вы каждый день, лазая по просторам интернета, пользуетесь этим алгоритмом. Каждый раз заходя на сайт, который защищен сертификатом SSL, используется алгоритм SHA-256. Так же этот алгоритм используют протоколы SSH, PGP и многие другие. Но нас интересует какую роль он выполняет в майнинге.

SHA-256 — это криптографическая хэш-функция. Разработало ее Агенство национальной безопасности США.

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

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

При майнинге криптомонет, SHA-256 решает поставленную задачу при помощи процессоров (CPU), видеокарт (GPU) или специализированных устройств типа ASIC. Итак, как происходит решение этой задачи: Итак пулл (место где собираются майнеры чтобы объединить свои мощности в одну большую, для скорейшего и более эффективного майнинга монет) выдает нам новый блок, который состоит огромного набора данных. Из тысяч или даже миллионов строк. Но блок этот представлен всего одной строкой. Его «цифровой подписью» – очередным блоком транзакций с добавленным к нему случайным числом. Это строка называется ХЭШ.

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

Естественно что для того чтобы повысить свои шансы, вам необходимо располагать мощным оборудованием. Но всегда есть те у кого больше. Это не значит что у вас нет шансов. Нет, они есть. Например на «молодых» криптовалютах: таких как peercoin, namecoin, zetacoin, ocoin, tekcoin и еще десятки других. Или в кооперации с пулом.

На этом пожалуй все о SHA-256 и мы переходим к следующему алгоритму.

Scrypt является вторым по популярности алгоритмом в мире криптовалют. Создавался этот алгоритм специально для того чтобы усложнить процесс добычи криптовалюты. Так как алгоритм SHA-256 очень быстро мигрировал с процессоров (CPU) на видеокарты (GPU) и на программируемые аппаратные устройства (FPGA) и в дальнейшем на специально заточенные под этот процесс микросхемы ASIC, ввиду того что такие вычисления выполняются на таких устройствах значительно быстрее.

И вот для этого был задуман алгоритм хэшинга Scrypt, который (по крайней мере в теории) усложнить аппаратные реализации путем простого увеличения аппаратной мощности требуемой для процесса вычисления.

В принципе Scrypt-манинг мало чем отличается от привычного биткоин-майнинга (SHA-256):

  • На вход подается блок данных, к нему применяется хэш-функция, на выходе мы пытаемся получить «красивый хэш». Вот только сама хэш-функция гораздо сложнее в вычислении. Данный алгоритм использует более значительное количество оперативной памяти (памяти с произвольным доступом), чем SHA-256. Память в Scrypt используется для хранения большого вектора псевдослучайных битовых последовательностей, генерируемых в самом начале алгоритма. После создания вектора его элементы запрашиваются в псевдослучайном порядке и комбинируются друг с другом для получения итогового ключа.
  • Так как алгоритм генерации вектора известен, в принципе возможна реализация scrypt, не требующая особенно много памяти, а высчитывающая каждый элемент в момент обращения. Однако вычисление элемента относительно сложно, и в процессе работы функции scrypt каждый элемент считывается много раз. В Scrypt заложен такой баланс между памятью и временем, что реализации, не использующие память, получаются слишком медленными.

Таким образом созданная искусственная сложность и требования к памяти приводят к тому, что специализированные устройства для майнинга стали сильно уступать CPU и GPU устройствам (хотя уже и это рубеж постепенно преодолевают). Т.е. в идеале добыча монет должна осуществляться исключительно на компьютерах. Если вы уже задумались о то какую конфигурацию собрать себе для майнинга – то не торопитесь. В сети вы найдете массу информации о том что ATI видеокарты превосходят Nvidia в плане практичности. Т.е. соотношение цена/килохэши лежит на стороне ATI видеокарт. Но так было еще год назад. Теперь ситуация стремительно меняется и по сути большой разницы нет. Хотя ATI лидирует так же по некоторым другим параметрам, но это тема для отдельного разговора.

Итак мы подводим итог. По сути и SHA-256 и Scrypt созданы для одной цели – путем перебора получить красивый хэш, удлинить тем самым блокчейн и таким образом получить за это вознаграждение. Но решают поставленную задачу каждый по разному. SHA-256 старается использовать по максимуму аппаратные возможности любого устройства которое для этого было создано – чем выше производительность, тем лучше результат. Ну а Scrypt требует большой объем памяти и как результат этого, производительность ОЗУ (оперативно запоминающего устройства) и видеокарт, которые установлены в компьютере/компьютерах.

Самые известные монетки которые добываются при помощи Scrypt алгоритма: Litecoin, dogecoin, digitalcoin, franco, bottlecaps и еще много других. Популярность таких монет сильно возрасла когда биткоин-манинг мигрировал на ASIC устройства и все те майнеры которые честно майнили валюту видеокартами остались не у дел, так как их оборудование не может конкурировать в следующих категориях как цена, энергозатраты, размеры, шум (т.е. в принципе во всем). Таким образом все кто вложился в оборудование и еще не успел его окупить перешли на Scrypt-майнинг.

Описанные алгоритмы заняли более 90% среди всех добываемых валют. Хотя есть и другие, но они на мой взгляд пока не заслуживают внимания. Так как каждую неделю очередной умник предлагает все более хитроумный алгоритм, так что за ними и не успеть. О самых интересных я буду рассказывать вам в следующих статьях.

Источники: http://crypto-mining.ru/news/21-sha-256-i-scrypt-chto-eto.html, http://dic.academic.ru/dic.nsf/ruwiki/746553, http://crypto-coins.ru/novichkam/kripto-algoritmy-majninga

bitcoin-job.ru

SHA256 — шифрование online


Описание: SHA256 — хеш-функция из семейства алгоритмов SHA-2 предназначена для создания «отпечатков» или «дайджестов» для сообщений произвольной длины. Применяется в различных приложениях или компонентах, связанных с защитой информации.

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

SHA-2 включает значительные изменения от своего предшественника, SHA-1. SHA-2 семья состоит из шести хэш-функции с дайджест (хэш-значений), которые находятся 224, 256, 384 или 512 бит: алгоритм SHA-224, SHA-256, SHA-384, алгоритм SHA-512, алгоритм SHA-512/224, алгоритм SHA-512/256.

SHA-256 и SHA-512 являются новыми хэш-функциями, вычисленными с 32-разрядными и 64-разрядными словами соответственно. Они используют различные количества сдвига и аддитивные константы, но их структуры в остальном практически идентичны, отличаясь только количеством раундов. SHA-224 и SHA-384 являются просто усеченными версиями первых двух, вычисленными с различными начальными значениями. SHA-512/224 и SHA-512/256 также являются усеченными версиями SHA-512, но начальные значения генерируются с использованием метода, описанного в федеральных стандартах обработки информации (FIPS) PUB 180-4. SHA-2 было опубликовано в 2001 Национальным Институтом стандартов и технологии (NIST) Федеральный стандарт США (FIPS). Семейство алгоритмов SHA-2 запатентовано в патенте США 6829355. Соединенные Штаты выпустили патент под безвозмездной лицензией.

В настоящее время лучшим публичные нападки сломать прообраз сопротивление по 52 из 64 раундов SHA-256 или 57 из 80 раундов алгоритма SHA-512, и столкновения сопротивление по 46 из 64 раундов алгоритма SHA-256.


Ресурсы:

crypt-online.ru

Что такое хеши MD5, SHA-1 и SHA-256 – как их проверить

Иногда Вы можете встретить упоминание MD5, SHA-1 или SHA-256 хешей, отображаемых вместе с вашими, но, на самом деле, не знаете, что они означают. Эти, казалось бы, случайные строки текста позволяют Вам проверить, что файлы, которые вы загрузили, не были повреждены или подделаны.

Как используют хеши для проверки данных

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

Взгляните на диаграмму, и вы увидите, что хеш «Fox» и «The red fox jumps over the blue dog» имеет одинаковую длину. Теперь сравните второй пример на графике с третьим, четвертым и пятым. Вы увидите, что, несмотря на незначительные изменения во входных данных, хеши сильно отличаются друг от друга. Даже если кто-то изменит очень маленький фрагмент входных данных, хэш будет резко меняться.

MD5, SHA-1 и SHA-256 – это разные алгоритмы хеш-функции. Создатели программного обеспечения часто указывают хеш для загружаемых файлов.

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

Как мы видели выше, даже небольшое изменение в файле резко изменит хеш.

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

Сравнение хеша в любой операционной системе

Имея это в виду, давайте посмотрим, как проверить хеш файла, который вы загрузили, и сравнить его с тем, который должен быть. Вот методы для Windows, macOS и Linux. Хеши всегда будут идентичны, если вы используете одну и ту же функцию хеширования в одном файле. Не имеет значения, какую операционную систему Вы используете.

Хеш файла в Windows

Этот процесс возможен без какого-либо стороннего программного обеспечения на Windows, благодаря PowerShell.

Чтобы начать работу, откройте окно PowerShell, запустив ярлык Windows PowerShell из меню Пуск.

Выполните следующую команду, заменив «C:\path\to\file.iso» путём к любому файлу, для которого вы хотите просмотреть хеш:

Get-FileHash C:\path\to\file.iso

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

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

Выполните одну из следующих команд, чтобы задать другой алгоритм хэширования:

Get-FileHash C:\path\to\file.iso -Algorithm MD5
Get-FileHash C:\path\to\file.iso -Algorithm SHA1
Get-FileHash C:\path\to\file.iso -Algorithm SHA256
Get-FileHash C:\path\to\file.iso -Algorithm SHA384
Get-FileHash C:\path\to\file.iso -Algorithm SHA512
Get-FileHash C:\path\to\file.iso -Algorithm MACTripleDES
Get-FileHash C:\path\to\file.iso -Algorithm RIPEMD160

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

Хеш файла на macOS

macOS содержит команды для просмотра различных типов хэшей. Для доступа к ним запустите окно терминала. Вы найдете его в FinderПриложенияУтилитыТерминал.

Команда md5 показывает MD5-хеш файла:

md5 /path/to/file

Команда shasum показывает хеша SHA-1 по умолчанию. Это означает, что следующие команды идентичны:

shasum /path/to/file
shasum -a 1 /path/to/file

Чтобы отобразить хеш файла SHA-256, выполните следующую команду:

shasum -a 256 /path/to/file

Хеш файла в Linux

В Linux обратитесь к терминалу и выполните одну из следующих команд для просмотра хеша файла, в зависимости от типа хеша, который вы хотите посмотреть:

md5sum /path/to/file
sha1sum /path/to/file
sha256sum /path/to/file

Хеши с криптографической подписью

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

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

windows-school.ru

256 — это… Что такое SHA-256?

SHA-2 (англ. Secure Hash Algorithm Version 2 — безопасный алгоритм хеширования, версия 2) — собирательное название однонаправленных хеш-функций SHA-224, SHA-256, SHA-384 и SHA-512. Хеш-функции предназначены для создания «отпечатков» или «дайджестов» сообщений произвольной битовой длины. Применяются в различных приложениях или компонентах, связанных с защитой информации.

История

Хеш-функции SHA-2 разработаны Агенством национальной безопасности США и опубликованы Национальным институтом стандартов и технологий в федеральном стандарте обработки информации FIPS PUB 180-2 в августе 2002 года.[1] В этот стандарт также вошла хеш-функция 1995 году. В феврале 2004 года в FIPS PUB 180-2 была добавлена SHA-224[2]. В октябре 2008 года вышла новая редакция стандарта — FIPS PUB 180-3.[3]

В июле 2006 года появился стандарт RFC 4634 «Безопасные хеш-алгоритмы США (SHA и HMAC-SHA)», описывающий SHA-1 и семейство SHA-2.

Агентство национальной безопасности от лица государства выпустило патент на SHA-2[4] под лицензией Royalty Free.[5]

Алгоритм

Общее описание

Схема одной итерации алгоритмов SHA-2

Хеш-функции семейства SHA-2 построены на основе структуры Меркла — Дамгарда (англ.).

Исходное сообщение после дополнения разбивается на блоки, каждый блок — на 8 слов. Алгоритм пропускает каждый блок сообщения через цикл с 64-мя или 80-ю итерациями (раундами). На каждой итерации 2 слова из восьми преобразуются, функцию преобразования задают остальные слова. Результаты обработки каждого блока складываются, сумма является значением хеш-функции. Подробнее — см.

В следующей таблице показаны некоторые технические характеристики различных вариантов SHA-2. «Внутреннее состояние» обозначает промежуточную хеш-сумму после обработки очередного блока данных:

Хеш-функцияДлина дайджеста сообщения (бит)Длина внутреннего состояния (бит)Длина блока (бит)Максимальная
длина сообщения (бит)
Длина слова (бит)Количество итераций в цикле
SHA-256/224256/224256512264 − 13264
SHA-512/384512/38451210242128 − 16480

Псевдокод SHA-256

Пояснения:
Все переменные беззнаковые, имеют размер 32 бита и при вычислениях суммируются по модулю 232message — исходное двоичное сообщение
m — преобразованное сообщение

Инициализация переменных
(первые 32 бита дробных частей квадратных корней первых восьми простых чисел [от 2 до 19]):
h0 := 0x6A09E667
h2 := 0xBB67AE85
h3 := 0x3C6EF372
h4 := 0xA54FF53A
h5 := 0x510E527F
h5 := 0x9B05688C
h6 := 0x1F83D9AB
h7 := 0x5BE0CD19

Таблица констант
(первые 32 бита дробных частей кубических корней первых 64-х простых чисел [от 2 до 311]):
k[0..63] :=
   0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,
   0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,
   0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,
   0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,
   0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,
   0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,
   0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,
   0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2

Предварительная обработка:
m := message ǁ [единичный бит]
m := m ǁ [k нулевых бит], где k — наименьшее неотрицательное число такое, что битовая длина
           итогового сообщения будет ≡ 448 (mod 512) (сравнима по модулю 512 c 448)
m := m ǁ Длина(message) — длина исходного сообщения в битах в виде 64-битного числа
           с порядком байтов от старшего к младшему

Далее сообщения обрабатывается последовательными порциями по 512 бит:
разбить сообщение на куски по 512 бит
для каждого куска
    разбить кусок на 16 слов длиной 32 бита: w[0..15]

    Сгенерировать дополнительные 48 слов:
    для i от 16 до 63
        s0 := (w[i-15] rotr 7) xor (w[i-15] rotr 18) xor (w[i-15] shr 3)
        s1 := (w[i-2] rotr 17) xor (w[i-2] rotr 19) xor (w[i-2] shr 10)
        w[i] := w[i-16] + s0 + w[i-7] + s1

    Инициализация вспомогательных переменных:
    a := h0
    b := h2
    c := h3
    d := h4
    e := h5
    f := h5
    g := h6
    h := h7

    Основной цикл:
    для i от 0 до 63
        Σ0 := (a rotr 2) xor (a rotr 13) xor (a rotr 22)
        Ma := (a and b) xor (a and c) xor (b and c)
        t2 := Σ0 + Ma
        Σ1 := (e rotr 6) xor (e rotr 11) xor (e rotr 25)
        Ch := (e and f) xor ((not e) and g)
        t1 := h + Σ1 + Ch + k[i] + w[i]

        h := g
        g := f
        f := e
        e := d + t1
        d := c
        c := b
        b := a
        a := t1 + t2

    Добавить полученные значения к ранее вычисленному результату:
    h0 := h0 + a
    h2 := h2 + b 
    h3 := h3 + c
    h4 := h4 + d
    h5 := h5 + e
    h5 := h5 + f
    h6 := h6 + g 
    h7 := h7 + h

Получить итоговое значения хеша:
digest = hash = h0 ǁ h2 ǁ h3 ǁ h4 ǁ h5 ǁ h5 ǁ h6 ǁ h7

SHA-224 идентичен SHA-256, за исключением:

  • для инициализации переменных h0h7 используются другие начальные значения.
  • в итоговом хеше опускается значение h7.
Начальные значения переменных h0h7 в SHA-224:
h0 := 0xC1059ED8
h2 := 0x367CD507
h3 := 0x3070DD17
h4 := 0xF70E5939
h5 := 0xFFC00B31
h5 := 0x68581511
h6 := 0x64F98FA7
h7 := 0xBEFA4FA4

SHA-512 имеет идентичную структуру, но:

  • слова имеют длину 64 бита.
  • используется 80 раундов вместо 64.
  • начальные значения переменных и константы расширены до 64 бит.
  • в сдвиг в операциях rotr и shr производится на другое число позиций.

SHA-384 идентичен SHA-512, за исключением:

  • переменные h0h7 имеют другие начальные значения.
  • в итоговом хеше опускаются значения h6 и h7.
Начальные значения переменных h0h7 в SHA-384
(первые 64 бита дробных частей квадратных корней простых чисел с 9-го по 16-е [от 23 до 53]):
h2 := CBBB9D5DC1059ED8
h3 := 629A292A367CD507
h4 := 9159015A3070DD17
h5 := 152FECD8F70E5939
h5 := 67332667FFC00B31
h6 := 8EB44A8768581511
h7 := DB0C2E0D64F98FA7
h8 := 47B5481DBEFA4FA4

Примеры

Ниже приведены примеры хешей SHA-2. Для всех сообщений подразумевается использование кодировки

SHA-256("The quick brown fox jumps over the lazy dog") 
 = D7A8FBB3 07D78094 69CA9ABC B0082E4F 8D5651E4 6D3CDB76 2D02D0BF 37C9E592
SHA-384("The quick brown fox jumps over the lazy dog") 
 = CA737F10 14A48F4C 0B6DD43C B177B0AF D9E51693 67544C49 4011E331 7DBF9A50
   9CB1E5DC 1E85A941 BBEE3D7F 2AFBC9B1
SHA-512("The quick brown fox jumps over the lazy dog") 
 = 07E547D9 586F6A73 F73FBAC0 435ED769 51218FB7 D0C8D788 A309D785 436BBB64
   2E93A252 A954F239 12547D1E 8A3B5ED6 E1BFD709 7821233F A0538F3D B854FEE6

Малейшее изменение сообщения в подавляющем большинстве случаев приводит к совершенно другому хешу вследствие лавинного эффекта. К примеру, при изменении dog на cog получится:

SHA-256("The quick brown fox jumps over the lazy cog") 
 = E4C4D8F3 BF76B692 DE791A17 3E053211 50F7A345 B46484FE 427F6ACC 7ECC81BE

Криптоанализ

На 2008 год хеш-функции SHA-2, в отличие от SHA-1, недостаточно изучены. В 2003 году Гилберт и Хандшух провели исследование SHA-2, но не нашли каких-либо уязвимостей.[6]

Криптоанализ хеш-функции подразумевает исследование устойчивости алгоритма по отношению, по меньшей мере, к следующим видам атак:

  • нахождение коллизий, т. е. разных сообщений с одинаковым хешем.
  • нахождение прообраза, т. е. неизвестного сообщения по его хешу.

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

В марте 2008 года индийские исследователи Сомитра Кумар Санадия и Палаш Саркар опубликовали найденные ими коллизии для 22 итераций SHA-256 и SHA-512.[7] В сентябре того же года они представили метод конструирования коллизий для усечённых вариантов SHA-2 (21 итерация).[8][9]

Ввиду алгоритмической схожести SHA-2 с SHA-1 и наличия у последней потенциальных уязвимостей ведутся поиски улучшенных альтернатив.[10][11] Новый стандарт будет назван SHA-3, он будет определен конкурсом, проводимым Национальным институтом стандартов и технологий в 2008—2012 гг.[12]

Применение и сертификация

См. также Применение хеширования

SHA-224, SHA-256, SHA-384 и SHA-512 законом США допускаются к использованию в некоторых правительственных приложениях, включая использование в рамках других криптографических алгоритмов и протоколов, для защиты информации, не имеющей грифа секретности. Стандарт также допускает использование SHA-2 частными и коммерческими организациями.[13]

Хеш-функции SHA-2 используются для проверки целостности данных и в различных криптографических схемах. На 2008 год семейство хеш-функций SHA-2 не имеет такого широкого распространения, как [14], несмотря на обнаруженные у последних недостатки.

Некоторые примеры применения SHA-2 указаны в таблице:


Как показали исследования[23], алгоритмы SHA-2 работают в 2—3 раза медленнее других популярных хеш-алгоритмов SHA-1, Tiger и

Сертификация

Реализации SHA-2, как и всех Федеральных стандартов обработки информации, могут быть сертифицированы для использования в некоторых приложениях на территории США. Сертификация происходит в рамках процедуры Cryptographic Module Validation Program(англ.), которая проводится Национальным институтом стандартов и технологий США совместно с канадским Бюро безопасности связи.

На 5 ноября 2008 года было сертифицировано более 250-ти реализаций SHA-2, четыре из которых могли оперировать сообщениями с длиной в битах некратной восьми.[24]

Примечания

  1. FIPS PUB 180-2 (англ.). — первоначальный вариант стандарта для SHA-2. Проверено 19 ноября 2008.
  2. FIPS PUB 180-2 with change notice (англ.). — вариант стандарта с SHA-224. Проверено 19 ноября 2008.
  3. FIPS PUB 180-3 (англ.). — редакция Secure Hash Standard от октября 2008 года. Проверено 19 ноября 2008.
  4. U.S. Patent 6,829,355 (англ.)
  5. «Licensing Declaration for US patent 6829355.». Проверено 2008-02-17.(англ.)
  6. Henri Gilbert; Helena Handschuh. «Security analysis of SHA-256 and sisters» (fee required). Lecture notes in computer science. ISSN 0302-9743. Проверено 2008-01-30.
  7. Somitra Kumar Sanadhya, Palash Sarkar. 22-Step Collisions for SHA-2 (англ.)
  8. Somitra Kumar Sanadhya, Palash Sarkar. Deterministic Constructions of 21-Step Collisions for the SHA-2 Hash Family (англ.)
  9. Презентация «Deterministic Constructions of 21-Step Collisions for the SHA-2 Hash Family»(англ.)
  10. Schneier on Security: NIST Hash Workshop Liveblogging (5)(англ.)
  11. Hash cracked — heise Security(англ.)
  12. Tentative Timeline of the Development of New Hash Functions(англ.)
  13. FIPS 180-2: Secure Hash Standard (SHS): 6. Applicability(англ.)
  14. SHA-1, SHA-256 в результатах поисковой системы draft-ietf-smime-sha2-08(англ.): Using SHA2 Algorithms with Cryptographic Message Syntax
  15. SHA-2 hash support in OpenLDAP(англ.)
  16. RFC 4509: Use of SHA-256 in DNSSEC Delegation Signer (DS) Resource Records (RRs)
  17. RFC 4055: Additional Algorithms and Identifiers for RSA Cryptography for use in the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
  18. RFC 4880: OpenPGP Message Format
  19. Overview of Windows Vista Service Pack 1: New Standards(англ.)
  20. FIPS-186-2: Digital Signature Standard (DSS)]
  21. [1], [2] — примеры использования SHA-256 дайджестов файлов
  22. Speed Comparison of Popular Crypto Algorithms [3](англ.)
  23. SHS Validation List(англ.)

Литература

См. также

Внешние ссылки

Стандарты

  • FIPS 180-3: Secure Hash Standard (SHS)
  • RFC 3874: A 224-bit One-way Hash Function: SHA-224
  • RFC 4634: US Secure Hash Algorithms (SHA and HMAC-SHA)

Реализации

  • The OpenSSL Project — широко используемая библиотека OpenSSL crypto включает свободные реализации SHA-224, SHA-256, SHA-384 и SHA-512
  • Crypto++ Library — свободная реализация криптографических алгоритмов на C++
  • Bouncy Castle Library — свободная библиотека Java и C# классов, которая включает реализации SHA-224, SHA-256, SHA-384 и SHA-512, а также других хеш-алгоритмов Whirlpool, Tiger, ГОСТ Р 34.11-94, MD4 и jsSHA — свободная библиотека Javascript, включающая полное семейство хеш-функций SHA-2

Криптоанализ

CRC | HAVAL | LM-хеш | MD4 | MD6 | PJW-32 | RIPEMD-256 | SHA-1 | SHA-2 | Snefru | Whirlpool | ГОСТ Р 34.11-94

 

Wikimedia Foundation. 2010.

dic.academic.ru

Что такое алгоритмы хэширования MD5, SHA-1, SHA-256?

При посещении Интернета, в поисках какого-то файла, можно заметить рядом с загрузками следующие надписи: MD5, SHA-1 или SHA-256. Многие вряд ли задумывались о предназначении этих функций. По-другому все эти сокращения называют хэшами или алгоритмами хэширования, что означает некоторое преобразование данных в короткий вид. Хэш необходим, чтобы проверять загруженные файлы на целостность, то есть не испорчен ли он или поврежден.

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

Сам результат имеет вид строки с фиксированной длинной, которая остается прежней, независимо от размера самого файла. Даже незначительное изменения в файле сразу же изменит хэш.

На данный момент существуют такие хэш алгоритмы, как MD5, SHA-1, SHA-256, а также CRC и ГОСТ Р 34.11-94 и многие другие.

Как проверять хэш скачанного файла?

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

Для проверки хэшей можно воспользоваться программой HashTab. После установки она будет встроена в виде вкладки в свойствах файлов.

Это еще не всё. Рассчитать хэш можно и с помощью операционной системы Windows или Linux, а также с помощью MacOS. Если вам это интересно, то я расскажу, как воспользоваться стандартными средствами этих ОС.

Проверка хэша в Windows

Рассчитать значение хэша можно с помощью утилиты PowerShell. Запустить её можно так: открываем поиск и вводим «PowerShell» и открываем результат.

Нужно прописать команду, указывая путь до файла, который вы хотите проверить. В моём примере команда выглядит следующим образом:

Get-FileHash D:\Programs\file.iso

На месте «file.iso» может любое имя и формат файла. Если файл будет очень большой по объему, то нужно немного подождать, пока хэш сгенерируется.

computerinfo.ru

Обновлено: 04.02.2019 — 04:48

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *