Комментарии 10
Интересно почитать ваши статьи или мысли по этому поводу... В этой статье предложено мое понимание всего того что я описал, "полезная инфа" как вы пишите - это разработанная мною фича для поиска коллизий, основанная на полном переборе. Прежде всего я думаю что данная тема будет интересна и может в каком-то роде полезна node.js разработчикам так-как других вариантов решения для bruteforce sha256 я попросту не нашел. По коллизиям... я думаю что вы не хуже меня знаете сколько времени на это может потребоватся !
Даже интересно, в какой из ссылок, [1] или [3], вы позаимствовали такое определение хеширования и шифрования:
Алгоритмом шифрования называется некая функция принимающая на вход строку произвольной длины, которая посредством определённого математического алгоритма преобразует INPUT (строку произвольной длины) в OUTPUT (строку фиксированной длины). Данный процесс конвертации называется хешированием или шифрованием. Конечным результатом шифрования любой подающей на вход информации называется цифровым отпечатком (дайджестом). Цель любого алгоритма заключается в сжатии, рассеивании и перемешивании входной информации.
Я с практической целью интересуюсь, чтобы в дальнейшем рекомендовать такой источник ни в коем случае не читать, мало ли, что там ещё написано.
Это не "неполное и неточное" определение, это бред. На Coursera есть замечательный курс Cryptography I, который читает замечательный криптоаналитик Dan Boneh (он же один из авторов атаки Padding Oracle на OpenSSL, например). Чисто для разнообразия, посмотрите. Там определения нормальные, строгие. Ваше же даже близко не похоже на общепринятое понимание этих терминов.
я этого и не отрицаю, просто метод полного перебора является одним из вариантов. А если мы говорим о sha256 то их не особо и много... насколько я знаю
хеширование или шифрование
С каких пор хеширование является шифрованием? Логика подсказывает, что зашифрованные данные можно расшифровать. А вот хеширование наоборот должно быть необратимым.
По правде, на базе "надёжной хеш-функции" можно построить "надёжное обратимое шифрование". И наоборот, на базе "надёжного шифрования" можно построить "надёжную хеш-функцию". (Чтобы снять кавычки, я обязан дать строгие определения, но тут места не хватит.)
Более того, семейство SHA2 именно так и устроено: там внутри происходит именно что шифрование данных блочным (512-бит) шифром SHACAL в специальном блочном режиме, подобном CBC, с фиксированным ключом и IV. Но конструкция построена так, чтобы результирующая функция обладала свойствами хеш-функции, и можно строго доказать, что такая конструкция всегда обладает такими свойствами, в предположении, что шифр "достаточно хороший".
Но я сомневаюсь, что автор статьи именно это имел ввиду.
Поиск коллизий в SHA-256 на платформе Node.js при помощи Bitcoin Hasher