русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Алгоритм безопасного хеширования SHA-1

Алгоритм безопасного хеширования SHA-1 был опубликован в 1995 году в качестве замены использовавшегося до этого алгоритма хеширования SHA-0, в котором была обнаружена уязвимость.

Для сообщения произвольной длины l, не превышающей 2^64 бит, алгоритм SHA-1 формирует 160-битный хеш-образ.
Процедура формирования хеш-образа состоит из следующих шагов.

  • Весь исходный текст разбивается на блоки по 512 бит. В случае если длина исходного текста не кратна 512 битам, производится его выравнивание за счёт добавления в конец бита со значением 1, m нулевых битов и 64-битного представления значения длины исходного сообщения (рис. 12).


Рис. 12 . Выравнивание исходного сообщения

  • Инициализируется пять 32-битных рабочих переменных A, B, C, D, E:

  • Выполняется обработка очередных 512 бит исходного текста. Для этого значения переменных A, B, C, D, E копируются в переменные a, b, c, d, e и далее для t от 1 до 80 выполняется преобразование значений данных переменных по схеме, изображенной на рис. 13.


Рис. 13 . Схема итерации алгоритма SHA-1

Каждая из 80 итераций может быть записана следующим образом:

 

где «+» – операция сложения по модулю 2^32, ft(X, Y, Z) – нелинейная функция, имеющая следующий вид:
                  (22)
где «&» –  побитовая операция «И», «|» – побитовая операция «ИЛИ»,
«!» – операция побитового инвертирования, «» – операция побитового сложения по модулю 2. Параметр Kt принимает четыре различных значения в зависимости от номера текущей итерации:
Kt = 5A82799916,  ;
Kt = 6ED9EBA116,  ;
Kt = 8F1BBCDC16,  ;
Kt = CA62C1D616,  .
«<<<» – операция циклического сдвига на 30 либо 5 бит влево, Wt – одно из шестна­дцати 32-битных слов 512-битного блока сообщения при либо значение, определяемое в соответствии со следующим выражением при :
.             (23)
4. Значения переменных a, b, c, d, e независимо друг от друга складываются по модулю 2^32 со значениями переменных A, B, C, D, E, в которые затем и помещаются полученные результаты.

5. Шаги 3–4 выполняются до тех пор, пока не будет обработан весь текст.
После обработки последнего блока текста значение хеш-образа формируется как ABCDE.

Автор: Ярмолик, В. Н.

Просмотров: 7132

Вернуться в оглавление: элементы теории информации




Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.