28572

Примеры хеш-функций

Доклад

Информатика, кибернетика и программирование

Расширение исходного сообщения Собственно хеширование . Расширение исходного битового сообщения M длины L происходит следующим образом. Алгоритм хеширования работает циклами за один цикл обрабатывается блок исходного сообщения длины 512 бит. Цикл состоит из четырех раундов каждый из которых вычисляет новые значения переменных A B C D на основании их предыдущего значения и значения 64битного отрезка хешируемого 512битного блока исходного сообщения.

Русский

2013-08-20

14.18 KB

1 чел.

Примеры хеш-функций:

MD 5 (R. RIVEST 1992)

Данная хэш-функция является однопроходной хэш-функцией, размер хэш-функции - 128 бит.

Алгоритм хэширования разделяется на две части.

  1.  Расширение исходного сообщения
  2.  Собственно хеширование

. Расширение исходного битового сообщения M длины L происходит следующим образом. Пусть К - минимальное для которого выполняется соотношение L < K*512 - 64. Исходное сообщение M дополняется одним единичным битом и далее нулями до длины K*512 - 64, после чего к полученному сообщению дописывается 64 битный блок содержащий двоичную запись значения L. Таким образом, расширенное сообщение М имеет длину кратную 512 бит.

Алгоритм хеширования работает циклами, за один цикл обрабатывается блок исходного сообщения длины 512 бит. Пусть A, B, C, D - 32 битные переменные. Перед первым циклом хеширования им присваиваются начальные значения (в шестнадцатиричной записи).

Цикл состоит из четырех раундов каждый из которых вычисляет новые значения переменных A, B, C, D  на основании их предыдущего значения и значения 64-битного отрезка хешируемого 512-битного блока исходного сообщения. В заключение цикла полученные значения A, B, C, D суммируются по модулю 232 с соответствующими значениями до начала цикла хэширования.

Финальное (после обработки последнего блока хэшируемого сообщения) значение переменных A, B, C, D является 128 битным значением хэш-функции.

Через функцию F обозначено соответствующее нелинейное преобразование (S, T, U или V). С  учетом циклического сдвига переменных a, b, c, d в преобразованиях SS, TT, UU и VV. Один цикл работы алгоритма MD 5 можно представить в виде 64 тактов работы нелинейного регистра сдвига с четырьмя обратными связями, при этом первые 16 тактов работает первая обратная связь, следующие 16 вторая и т.д.

В заключение рассмотрения алгоритма MD 5 отметим, что несмотря на многие попытки провести на него атаку, он остается практически стойким.

MD 2 (R. RIVEST 1992)

Данный алгоритм также реализует 128 битную однопроходную хэш-функцию и в частности используется в протоколе PEM (Privacy -Enhanced Mail см. ниже). Этот алгоритм значительно более медленный чем остальные изложенные в книге примеры, однако, до сих пор у него не найдено даже потенциальных слабостей.

Алгоритм использует случайную перестановку на байтах,  задаваемую вектором (S0,S1, ... S255), сам автор, например, предлагает генерировать эту подстановку из битового вектора, получаемого записью числа  в двоичном виде. Также используется 48 байтный блок X=X0,...,X48,

Алгоритм выглядит следующим образом;

  1.  Исходное сообщение расширяется до сообщения длины кратной 16 байтам. При этом если дописывается N байтов, до их значение равно 0, 1, ... N-1.
  2.  Сообщение дополняется 16 байтной контрольной суммой, которая содержит истинный размер сообщения и может содержать дополнительную информацию (например, CRC значение).
  3.  Первый 16 байтный блок блока X инициализируется нулями.
  4.  Второй 16 байтный блок блока Х устанавливается равным очередному 16 байтному блоку хэшируемого текста.
  5.  Третий 16 байтный блок блока Х получается покоординатным суммированием первого и второго 16-байтных блоков блока X.
  6.  Вычисляется преобразование (запишем его в терминах псевдоязыка программирования)


 

А также другие работы, которые могут Вас заинтересовать

17556. Читання з файлу в C++ 31 KB
  ЛАБОРАТОРНА РОБОТА № 19 – 20. Тема: Читання з файлу. Мета: отримання практичних навичок розвязання завдань з використанням текстових файлів мовою С. include iostream.h include void...
17557. Міжнародні організації, курс лекцій 541.5 KB
  Міжнародні організації – об’єднання суверенних держав, установ, фізичних осіб, заснованих на базі міжнародних договорів і статутів для виконання певних цілей. Мають постійно діючі органи.
17558. Права доступу protected в C++ 36 KB
  ЛАБОРАТОРНА РОБОТА № 22 Тема:Права доступу protected. Ціль:Ознайомити з доступом до компонентів базового класу при закритому спадкуванні include include class Gruzoperevozchik { protected: float vremya; float stoimost; char mesto[15]; float rasst; Gruzoperevosc...
17559. Основи програмування С++. Базові типи даних та ввод-вивод 209.5 KB
  ЛАБОРАТОРНА РОБОТА № 1 Тема:Основи програмування С. Базові типи даних та вводвивод Мета: отримання практичних навичок в роботі з типами даних мови C і використання функцій стандартного вводувиводу. Приклад рішення задачі Буд...
17560. Структури в С++ 111.5 KB
  ЛАБОРАТОРНА РОБОТА № 3 Тема:Структури в С. Мета: отримання навичок роботи із структурами. Теоретична частина Тип даних структура об'єднує декілька змінних можливо різного типу. Змінні які об'єднані структурою називаються полями структури чи елементами ст...
17561. Освоєння основ програмування в програмному середовищі VISSIM 124 KB
  Лабораторна робота №1 з дисципліни: Автоматизоване проектування ТЗЗІ Тема: Освоєння основ програмування в програмному середовищі VISSIM Мета: спроектувати довільну модель. Теоретичні відомості Будьяке коло яке містить RLелементи має властивість часто...
17562. Дослідження методів функціонування модуляторів та демодуляторів 605.5 KB
  Лабораторна робота №1 з дисципліни: Автоматизоване проектування ТЗЗІ Тема: Дослідження методів функціонування модуляторів та демодуляторів Мета: Вивчити особливості функціювання різноманітних модуляторів та демодуляторів. Теоретичні відомості В зага...
17563. Дослідження методів кодування в каналах передачи інформації 315.5 KB
  Лабораторна робота №3 з дисципліни: Автоматизоване проектування ТЗЗІ Тема: Дослідження методів кодування в каналах передачи інформації Мета: Кодування джерела інформації каналу передачи лінії зв’язку криптографічне кодування. Ход работы 1 На первой сх
17564. Канали передачі інформації 2.02 MB
  Лабораторна робота №4 з дисципліни: Автоматизоване проектування ТЗЗІ Тема: Канали передачі інформації Контрольные вопросы и задания для Гауссового канала При определении отношения Es/No канала AWGN разд. 3.5 используется два опорных значения средней мощн