SHA-1
Рис. 8.18. Применение SHA-1 и RSA для создания подписей несекретных сообщений |
При получении сообщения Боб сам вычисляет хэш-функцию с помощью алгоритма 5НА-1 и применяет открытый ключ Алисы к подписанному хэшу для того, чтобы получить исходный хэш, Я.
Если они совпадают, сообщение считается корректным. Так как Труди не может, перехватив сообщение, изменить его таким образом, чтобы значение Я совпадало с контрольным, Боб легко узнает обо всех подменах, которые совершила Труди. Для сообщений, чья неприкосновенность существенна, а секретность не имеет значения, часто применяется схема, показанная на рис. 8.18. При относительно небольших затратах на вычисления она гарантирует, что любые изменения, внесенные на пути следования сообщения, будут с высокой вероятностью выявлены.Давайте теперь вкратце рассмотрим, как работает 5НА-1. Для начала алгоритм 8НА-1 также дополняет сообщение единичным битом в конце, за которым следует такое количество нулевых бит, чтобы в итоге получилось общее число битов, кратное 512. Затем 64-разрядное число, содержащее длину сообщения (до битового дополнения), логически складывается (операция ИЛИ) с 64 младшими битами.
На рис. 8.19, а показано сообщение с дополнением, расположенным справа, потому что английский текст и рисунки читаются слева направо (то есть правая граница рисунка воспринимается как его конец, а левая — как начало). Применительно к вычислительной технике такое расположение соответствует обратному порядку хранения байтов (сначала передается самый значимый, старший бит).Такая реализация присуща, например, SPARC. Однако вне зависимости от используемой техники SHA-1 вставляет битовое дополнение в конец сообщения.
Во время выполнения вычислений SHA-1 работает с пятью 32-битными переменными (Я0... Я4), в которых накапливается значение хэш-функции. Они показаны на рис. 8.19, б. Их начальные значения — это постоянные величины, определенные стандартом.
Рис. 8.19. Сообщение, дополненное до размера, кратного 512 битам (а); выходные переменные (б); массив слов (в) |
Затем поочередно обрабатываются блоки с М0 по Мп_х. Для текущего блока 16 слов сначала копируются в начало вспомогательного массива W размером 80 слов, как показано на рис. 8.19, в. 64 оставшихся слова вычисляются с использованием следующей формулы:
W. = S!(Wj._3 XOR W(_8 XOR Wt_Xi XOR (165/5 79),
где Sb(W) представляет собой поворот 32-разрядного слова W на Ь бит. Теперь по значениям #0... Н4 инициализируются переменные от А до Е.
Сами вычисления на псевдо-С можно записать таким образом:
for(i-0;i
Еще по теме SHA-1:
- Л.О. Доліненко, В.О. Доліненко, С.О. Сарновська. Цивільне право України, 2006
- ЦИВІЛЬНЕ ПРАВО УКРАЇНИ
- ПЕРЕДМОВА
- Частина І ПРОГРАМА КУРСУ «ЦИВІЛЬНЕ ПРАВО УКРАЇНИ»
- Розділ І. Загальні положення цивільного права
- Тема 1. Поняття цивільного права. Предмет та метод, система цивільного права. Функції та принципи цивільного права
- Тема 2. Цивільне законодавство України
- Тема 3. Поняття, елементи та види цивільних правовідносин
- Тема 4. Здійснення цивільних прав і виконання обов’язків
- Тема 5. Захист цивільних прав та інтересів
- Тема 6. Об’єкти цивільних прав
- Тема 7.ФІЗИЧНІ особи як суб’єкти цивільного права
- Тема 8. Юридичні особи
- Тема 9. Держава як суб’єкт цивільного права. Територіальні громади та Автономна Республіка Крим як суб’єкти цивільного права
- Тема 10. Правочини: поняття, види. Умови чинності правочину
- Тема 11. Представництво і довіреність
- Тема П.Строки. Позовна давність
- Нормативний матеріал: