Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция № 11 ХЕШ-функции.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
2.01 Mб
Скачать

Гипотеза о существовании односторонних функций.

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

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

Криптографические хэш-функции разделяются на два класса:

  • хэш-функции без ключа (MDC (Modification (Manipulation) Detect Code) - коды),

  • хэш-функции c ключом (MАC (Message Authentication Code) - коды).

ПЕРЕВОД:

Message Authentification Codeкод аутентификации сообщений

Manipulation Detection Codeкод обнаружения манипуляций

Хэш-функции без ключа разделяются на два подкласса:

  • слабые хэш-функции,

  • сильные хэш-функции.

Слабой хэш-функцией называется односторонняя функция H(x), удовлетворяющая следующим условиям:

  1. аргумент х может быть строкой бит произвольной длины;

  2. значение H(x) должно быть строкой бит фиксированной длины;

  3. значение H(x) легко вычислить;

  4. для любого фиксированного x вычислительно невозможно найти другой x' != x, такой что H(x')=H(x). Пара x' != x, когда H(x')=H(x) называется коллизией хэш-функции.

Сильной хэш-функцией называется односторонняя функция H(x), удовлетворяющая условиям 1-3 для слабой хэш-функции и свойству 4': 4') вычислительно невозможно найти любую пару x' != x, такой что H(x')=H(x). Поскольку из свойств 1-2 следует, что множество определения хэш-функции значительно шире множества значений, то коллизии должны существовать. Свойство 4 требует, чтобы найти их для заданного значения х было практически невозможно. Требование 4' говорит о том, что у сильной хэш-функции вычислительно невозможно вообще найти какую-либо коллизию.

Хэш-функцией с ключом (MAC) называется функция H(k,x), удовлетворяющая свойствам:

  1. аргумент х функции H(k,x) может быть строкой бит произвольной длины;

  2. значение H(k,x) должно быть строкой бит фиксированной длины;

  3. при любых k и x легко вычислить H(k,x);

  4. для любого х должно быть трудно вычислить H(k,x) не зная k;

должно быть трудно определить k даже при большом числе неизвестных пар {x, H(k,x)} при выбранном наборе х или вычислить по этой информации H(k,x') для x' != x.

Свойства односторонних хэш-функций.

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

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

3.Чувствительность – изменение даже одного бита исходных данных,

должно приводить к существенному изменению хеш-свертки.

Длины однонаправленных хэш-функций

64-битовые хэш-функции слишком малы, чтобы противостоять вскрытию. Более практичны однонаправленные хэш-функции, выдающие 128-битовые хэш-значения. При этом, чтобы найти два документа с одинаковыми хэш-значениями, для вскрытия методом дня рождения придется хэшировать 264 слу­чайных документов, что, впрочем, недостаточно, если нужна длительная безопасность. NIST в своем Стандарте безопасного хэширования (Secure Hash Standart, SНS), использует 160-битовое хэш-значение. Это еще сильнее усложняет вскрытие методом дня рождения, для которого понадобится 280 хэширований.

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

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

  1. Хэш значение добавляется к сообщению.

  2. Генерируется хэш-значение объединения сообщения и хэш-значения этапа (1).

  1. Создается большее хэш-значение, состоящее из объединения хэш-значения этапа (1) и хэш-значения этапа (3).

  1. Этапы (1)-(4) повторяются нужное количество раз для обеспечения требуемой длины хэш-значения .

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