Комментарии 56
Входными данными для обоих функций является блок данных длиной 512 бит.
Думаю, следует уточнить, что это относится непосредственно к хэшированию, но в стандарте также описаны функции сжатия (для сообщений больших 512 бит) и дополнения (для сообщений меньших 512 бит).
P.S. Нормативным написанием является «хэширование», «хэш», а не «хешеривание», «хеш». Собственно даже по названию стандартов (что старого, что нового) это видно. Да и логически, по-моему, сложнее обосновать преобразование «hash» в «хеш», чем в «хэш».
+2
Вы совершенно правы. Вычисления х{е, э}ш-функции возможно для сообщений любой длины. Однако, на каждой итерации обрабатывается блок длиной именно в 512 бит.
Что касается вашего замечания касательно правильности написания слова х{е, э}ш, то тема эта не нова и в интернете уже давно ведется обсуждение этого вопроса. Например вот в этой ветке. однако к какому то определенному решению так никто и не пришел, кому то ближе слово хеш, а кому то хэш. Я из числа первых, поэтому всегда использовал вариант с буквой е. Может быть он и неправильный, что спорно, но более привычный. Поэтому я все таки оставлю текущий вариант, и надеюсь на ваше понимание:)
Что касается вашего замечания касательно правильности написания слова х{е, э}ш, то тема эта не нова и в интернете уже давно ведется обсуждение этого вопроса. Например вот в этой ветке. однако к какому то определенному решению так никто и не пришел, кому то ближе слово хеш, а кому то хэш. Я из числа первых, поэтому всегда использовал вариант с буквой е. Может быть он и неправильный, что спорно, но более привычный. Поэтому я все таки оставлю текущий вариант, и надеюсь на ваше понимание:)
+1
По-моему неплохо бы этот момент уточнить прямо в посте, рядом с процитированной фразой. А то я полез читать сам стандарт, чтобы уточнить этот момент :)
Слово «хеш» (и аналогичные, например «кеш») мне лично не нравятся прежде всего потому-что допускают двоякое прочтение на русском. Уже сталкивался в реале с прочтением через «е». Потому обрадовался когда обратил внимание, что в ГОСТе (ещё старом) используется «мой» вариант. Хотя иногда бессознательно подстраиваешься под собеседника и пишешь через «е».
Слово «хеш» (и аналогичные, например «кеш») мне лично не нравятся прежде всего потому-что допускают двоякое прочтение на русском. Уже сталкивался в реале с прочтением через «е». Потому обрадовался когда обратил внимание, что в ГОСТе (ещё старом) используется «мой» вариант. Хотя иногда бессознательно подстраиваешься под собеседника и пишешь через «е».
0
Добавил следующий текст:
Думаю, так станет понятнее.
Спасибо за замечание)
В случае, если длина сообщения больше 512 бит, то происходит разбиение сообщения на блоки. В случае же, если длина меньше 512 бит, то производится дополнение сообщения.
Думаю, так станет понятнее.
Спасибо за замечание)
+1
НЛО прилетело и опубликовало эту надпись здесь
соу хаш литл бэйби доооуунт йу край…
+1
А я вот слышу «э». И если верить словарям, то транскрипция /hæʃ/, а в других источниках /æ/ характеризуется как «Долгое «э» с широко раскрытым ртом и сильно опущенной нижней челюстью, среднее между «а» и «э»». Но пускай среднее, но всё долгое «э», а не «а». А уж е откуда взяло вообще не понять. Вроде как оно может заменять английское «a» после русских «ж», «ш» и «ч», но про «х» или «к» не упоминается.
0
НЛО прилетело и опубликовало эту надпись здесь
Индийские корни? Т.е. город Стрий в Львовской области имеет какое-то сакральное отношение к Индии? =)
Всё более популярна сейчас идея как раз об обратном переносе культуры — от древних славян-многобожцев в Индию.
Всё более популярна сейчас идея как раз об обратном переносе культуры — от древних славян-многобожцев в Индию.
-1
НЛО прилетело и опубликовало эту надпись здесь
Имя Стрибога восходит к древнему корню «стрег», что означает «старший», «дядя по отцу». godsbay.ru/slavs/stribog.html
Возможно, что это не у русских слов индийские корни, а у санскрита славянские корни, потому то многие слова и похожи.
Возможно, что это не у русских слов индийские корни, а у санскрита славянские корни, потому то многие слова и похожи.
0
НЛО прилетело и опубликовало эту надпись здесь
Технари не могут в лингвистику, да? Санскрит и русский — равноправные потомки праиндоевропейского языка, с точки зрения официальной науки.
+9
А что за свидетельства? Просто во времена ведического санскрита (~1500 лет до н.э) протославянский язык ещё толком не отпочковался от балтославянской общности. Кстати, балтийские языки в этом смысле к санскриту ещё ближе, в т.ч. по грамматическим свойствам. Так что у литовского в этом отношении даже побольше прав записываться в «прародители санскрита» :)
Но с учётом миграций индоевропейских племён ситуация, при которой давно ушедшие на северо-запад балтославяне каким-то образом дают начало индийскому языку, кажется очень сомнительной. Намного логичней рассматривать ситуацию, при которой и та и другая группа ветвь языков — соседние и развивающиеся из общего корня, а сохранение в славянских языках архаичных черт легко объясняется тем, что славяне селились преимущественно на не слишком заселённых территориях и не были подвержены действию языкового субстрата автохтонных племён (как это произошло, например, с германскими и романскими племенами — Западная Европа к моменту их прибытия была уже весьма заселена неиндоевропейским населением)
Но с учётом миграций индоевропейских племён ситуация, при которой давно ушедшие на северо-запад балтославяне каким-то образом дают начало индийскому языку, кажется очень сомнительной. Намного логичней рассматривать ситуацию, при которой и та и другая группа ветвь языков — соседние и развивающиеся из общего корня, а сохранение в славянских языках архаичных черт легко объясняется тем, что славяне селились преимущественно на не слишком заселённых территориях и не были подвержены действию языкового субстрата автохтонных племён (как это произошло, например, с германскими и романскими племенами — Западная Европа к моменту их прибытия была уже весьма заселена неиндоевропейским населением)
+7
Почему-то в глазах многих термин «индоевропейские» ассоциируется прежде всего с Индией.
+5
НЛО прилетело и опубликовало эту надпись здесь
Грешновато.
+5
И чем им sha 3 не угодил…
-3
Ну как минимум тем, то стандарта sha3 ещё нет даже черновой версии. А ГОСТ 34.11-2012 уже введён в действие с 01.01.2013.
+1
Мне вот кстати тоже непонятно это желание быть «не такими как все». Это еще можно было понять в конце 80-х, начале 90-х когда принимались старые стандарты. Но сейчас… хз, может они знают что то, чего не знаем мы.
+1
НЛО прилетело и опубликовало эту надпись здесь
Радует, что появился еще один хэш-алгоритм. Но хочется понять его приемущества:
1) насколько он устойчив к коллизиям по сравнению например с SHA2 или SHA2?
2) насколько он требователен к вычислительным ресурсам по сравнению с другими?
3) на каких аппаратных архитектурах ожидаются лучшие результаты?
4) рекомендации к применению этого алгоритма: где он к месту, а где лучше использовать другие?
Для прикладных программистов ситуация пока в тумане.
1) насколько он устойчив к коллизиям по сравнению например с SHA2 или SHA2?
2) насколько он требователен к вычислительным ресурсам по сравнению с другими?
3) на каких аппаратных архитектурах ожидаются лучшие результаты?
4) рекомендации к применению этого алгоритма: где он к месту, а где лучше использовать другие?
Для прикладных программистов ситуация пока в тумане.
+7
НЛО прилетело и опубликовало эту надпись здесь
Случайность недостаточно хороша, как минимум. да и как вы дешифровывать будете?
Таблицы подбираются для усложнения взлома.
Таблицы подбираются для усложнения взлома.
0
НЛО прилетело и опубликовало эту надпись здесь
Вам ничто не мешает для своих нужд применять доморощенные таблицы замен, вычисленные каким угодно способом. Только потом не говорите, что вас не предупреждали, если ваш хеш будет взломан. И вообще, надеюсь, вы имеете профессиональный опыт в криптографии, потому что чуть более, чем всегда, бывает так, что «усовершенствования», вносимые в стандартный криптоалгоритм дилетантами, приводят к образованию в нем фатальных уязвимостей.
При чем здесь дороги с двусторонним движением? Может лучше вообще отказаться от автомобилей? Ведь из-за них в день так много смертей случается? И переход на дороги с односторонним движением может лишь сократить, но не устранить эти случаи гибели людей.
При чем здесь дороги с двусторонним движением? Может лучше вообще отказаться от автомобилей? Ведь из-за них в день так много смертей случается? И переход на дороги с односторонним движением может лишь сократить, но не устранить эти случаи гибели людей.
0
Мне как-то говорили, что изобретают свои криптографические алгоритмы 2 типа людей: гении и глупцы. Вы так уверены, что взятие дополнительной функции от сообщения вместо константы увеличит криптостойкость? Я вот нет.
0
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Для «генерации хаоса» ни в коем случае нельзя использовать исходные сообщения в общем случае, ибо исходное сообщение, в реальных применениях, имеет какой-либо практический смысл, следовательно, оно не является случайным!
Так что использовав исходное сообщение мы практически наверняка понизим криптостойкость.
Так что использовав исходное сообщение мы практически наверняка понизим криптостойкость.
0
Хоть бы ссылку на оригинальную реализацию дали. А то подстановка сначала «Pi», а потом «Sbox» обзывается…
+2
В стандарте в качестве примера используются следующие строки:
Строка: 210987654321098765432109876543210987654321098765432109876543210
512: 486f64c1917879417fef082b3381a4e211c324f074654c38823a7b76f830ad00fa1fbae42b1285c0352f227524bc9ab16254288dd6863dccd5b9f54a1ad0541b
256:
00557be5e584fd52a449b16b0251d05d27f94ab76cbaa6da890b59d8ef1e159d
Строка: ыверогИ ыкълп яырбарх ан ималертс яром с ътюев, ицунв ижобиртС, иртев еС
512: 28fbc9bada033b1460642bdcddb90c3fb3e56c497ccd0f62b8a2ad4935e85f037613966de4ee00531ae60f3b5a47f8dae06915d5f2f194996fcabf2622e6881e
256:
508f7e553c06501d749a66fc28c6cac0b005746d97537fa85d9e40904efed29d
Строка: 210987654321098765432109876543210987654321098765432109876543210
512: 486f64c1917879417fef082b3381a4e211c324f074654c38823a7b76f830ad00fa1fbae42b1285c0352f227524bc9ab16254288dd6863dccd5b9f54a1ad0541b
256:
00557be5e584fd52a449b16b0251d05d27f94ab76cbaa6da890b59d8ef1e159d
Строка: ыверогИ ыкълп яырбарх ан ималертс яром с ътюев, ицунв ижобиртС, иртев еС
512: 28fbc9bada033b1460642bdcddb90c3fb3e56c497ccd0f62b8a2ad4935e85f037613966de4ee00531ae60f3b5a47f8dae06915d5f2f194996fcabf2622e6881e
256:
508f7e553c06501d749a66fc28c6cac0b005746d97537fa85d9e40904efed29d
+2
О Бояне, соловію стараго времени!
+1
С первой строкой согласен, а во второй у вас ошибочка с запятыми)
Вот так она должна выглядеть:
ыверогИ ыкълп яырбарх ан ималертс яром с ътюев, ицунв ижобиртС, иртев еС
Вот так она должна выглядеть:
ыверогИ ыкълп яырбарх ан ималертс яром с ътюев, ицунв ижобиртС, иртев еС
+1
Упс, оказывается это хабр пробелы перед запятыми глотает. В общем там пробелы не после запятых а перед должны стоять.
0
И не заметил сначала. Нормальная версия примеров
0
НЛО прилетело и опубликовало эту надпись здесь
В псевдокоде у вас написано что пункты 7 и 8 следующие
7. Вычислить h = g(0, m, h)
8. Для хеш-функции с длиной выхода в 512 бит возвращаем h в качестве результата. Для функции с длиной выхода 256 бит возвращаем MSB256(h).
но в C#
Получается 8 шаг должен быть
h = g(0, Σ, h)
7. Вычислить h = g(0, m, h)
8. Для хеш-функции с длиной выхода в 512 бит возвращаем h в качестве результата. Для функции с длиной выхода 256 бит возвращаем MSB256(h).
но в C#
h = G_n(N_0, h, N);
h = G_n(N_0, h, Sigma);
Получается 8 шаг должен быть
h = g(0, Σ, h)
0
А в чем смысл каждого из преобразований? Почему каждое преобразование реализовано именно так, как оно реализовано а не по-другому? Я смотрю на все это как на малосвязный формальный порядок действий, который не укладывается в общую картину.
В чем ценность этой статьи? Формальное описание алгоритма можно в стандарте найти
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Хеш-функция Стрибог или в городе новый шериф