Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Нужна хеш-функция для программы на языке С++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Структуры http://www.cyberforum.ru/cpp-beginners/thread145476.html
помогите плз плз плз плз плз ЛЮБУЮ ИЗ "2" 1) N учеников проходили тестирование, выполнив M тестов по какому-либо предмету. Сколько очков набрал каждый ученик по...
C++ Рекурсия: размещения из 10 по 3 элемента Помогите Плз Плз Плз Плз Плз Получить все размещения из 10 элементов 1, 2,..., 10 по 3 в каждом. Размещением называется выборка из п указанных элементов т неповторяющихся элементов. http://www.cyberforum.ru/cpp-beginners/thread145473.html
C++ Заменить все прописные буквы на строчные
Подредактируйте код, нужно поменять все прописные буквы на строчные буквы. Только вот программа не запускается. Код: #include <stdio.h> #include <ctype.h> int main(void){ char...
исходник win calc C++
Здрасти. Не знаю в какой раздел написать лучше, написал в самый лучший. А ктони-будь знает где можно посмотреть исходный код калькулятора windows компании microsoft?
C++ Описать рекурсивную функцию, вычисляющую значение двойного факториала http://www.cyberforum.ru/cpp-beginners/thread145456.html
Описать рекурсивную функцию Fact2(N) вещественного типа,вычисляющую значение двойного факториала N!! = N*(N-2)*(N-4)*... (N>0 - параметр целого типа;последний сомножитель в произведении равен 2,если...
C++ ортогональность кто нибудь может привести пример ортогональности на си подробнее

Показать сообщение отдельно
RNT
Автор FAQ
3134 / 354 / 3
Регистрация: 08.08.2009
Сообщений: 1,126
16.06.2010, 09:12  [ТС]
Цитата Сообщение от CheshireCat Посмотреть сообщение
Хорошо, тогда сформулируй, в чем разница между хеш-функцией и контрольной суммой.
Контрольные суммы
Несложные, крайне быстрые и легко реализуемые аппаратные алгоритмы, используемые для защиты от непреднамеренных искажений, в том числе ошибок аппаратуры.

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

Платой за столь высокую скорость является отсутствие криптостойкости — лёгкая возможность подогнать сообщение под заранее известную сумму. Также обычно разрядность контрольных сумм (типичное число: 32 бита) ниже, чем криптографических хешей (типичные числа: 128, 160 и 256 бит), что означает возможность возникновения непреднамеренных коллизий.

Простейшим случаем такого алгоритма является деление сообщения на 32- или 16- битные слова и их суммирование, что применяется, например, в TCP/IP.

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

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

* Необратимость: для заданного значения хеш-функции m должно быть вычислительно неосуществимо найти блок данных X, для которого H(X) = m.
* Стойкость к коллизиям первого рода: для заданного сообщения M должно быть вычислительно неосуществимо подобрать другое сообщение N, для которого H(N) = H(M).
* Стойкость к коллизиям второго рода: должно быть вычислительно неосуществимо подобрать пару сообщений ~(M, M'), имеющих одинаковый хеш.

Данные требования не являются независимыми:

* Обратимая функция нестойка к коллизиям первого и второго рода.
* Функция, нестойкая к коллизиям первого рода, нестойка к коллизиям второго рода; обратное неверно.

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

Атака «дней рождения» позволяет находить коллизии для хеш-функции с длиной значений n битов в среднем за примерно 2n / 2 вычислений хеш-функции. Поэтому n-битная хеш-функция считается криптостойкой, если вычислительная сложность нахождения коллизий для неё близка к 2n / 2.

Для криптографических хеш-функций также важно, чтобы при малейшем изменении аргумента значение функции сильно изменялось (лавинный эффект). В частности, значение хеша не должно давать утечки информации даже об отдельных битах аргумента. Это требование является залогом криптостойкости алгоритмов хеширования, хеширующих пользовательский пароль для получения ключа.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru