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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Передача в процедуру адреса функции http://www.cyberforum.ru/cpp-beginners/thread145434.html
1.Не могу найти где прочитать - как вызывать функцию, если передается ее адрес - и как выглядит вызов и обращение к ней? 2. Нужен хороший учебник по С++ для подготовки к экзамену, или ссылка на - описание языка в инете Спасибо, всем кто откликнется!
C++ Функция переноса помогите написать функцию, которая переносила бы последний элемент списка на первое место. http://www.cyberforum.ru/cpp-beginners/thread145268.html
C++ Сжать массив, удалив из него все элементы, модуль которых не превышает 1
Сжать массив, удалив из него все элементы, модуль которых не превышает 1. Освободившиеся в конце массива элементы заполнить нулями.
C++ Упорядочить строки целочисленной прямоугольной матрицы
Упорядочить строки целочисленной прямоугольной матрицы по возрастанию ко-личества одинаковых элементов в каждой строке.
C++ Построить матрицу, строками которой являются соответственно векторы http://www.cyberforum.ru/cpp-beginners/thread145165.html
Даны векторы X={x1, x2, x3}, Y={у1, у2, у3} и Z={z1, z2, z3}. Построить матрицу A(3,3), строками которой являются соответственно векторы X,Y и Z, упорядоченные в порядке возрастания значений их компонент. Ввод элементов массива, упорядочение вектора по возрастанию оформить в виде подпрограммы. #include <iostream.h> main(){ int A int i,j; cout<< "Ââîä ìàòðèöû A"...
C++ Подключение библиотеки в процессе выполенния программы имеется следующая задача - в процессе выполнения прога формирует данные на основе которых проиходит выбор функций дальнейших обработок. Функции распиханы по разным срр файлам. Включать все их в начале не могу нужно что бы в зависимости от результата прога в роцессе выполнения подллючала библотеки созданных мной функий ! как это реализовать в С ? Желательно в рамках консольного приложения !!!! подробнее

Показать сообщение отдельно
RNT
Автор FAQ
 Аватар для RNT
3131 / 351 / 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.

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