Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Алгоритм хэширования H




Матрицы перестановок для ключей

Матрицы перестановок для блоков данных

М1

               
               
               
               

 

М2

               
               
               
               

 

К1

               
               
               
               

К2

               
               
               
               

 

Примечание! Если разрядность блока данных, предназначенного для шифрования не кратна 2 , то до кратности необходимо дополнить блок заполнителем – первый бит 1, остальные – 0.

 

Варианты реализации алгоритма хэширования:

Вариант 1

Исходный текст группируется блоки данных а1, а2, а3, а4 … аn разрядностью по 8 бит. Длина дайджеста – 8 бита. h0 =00000000. Дайджест формируется в течении n итераций цикла. В каждой итерации цикла проводятся действия, котрые можно описать следующим псевдокодом:

for i=1…n

{// прерасчет текущего значениия каждого бита текущего дайджеста hі

(h0)і=(а1)і 3)і 5)і; // значение бита 0 текущего дайджеста

(h1)і=(а0)і 4)і 6)і; // значение бита 1 текущего дайджеста

(h2)і=(а2)і 3)і 7)і; // значение бита 2 текущего дайджеста

(h3)і=(а1)і 5)і 6)і; // значение бита 3 текущего дайджеста

(h4)і=(а4)і 5)і 6)і; // значение бита 4 текущего дайджеста

(h5)і=(а0)і 6)і 7)і; // значение бита 5 текущего дайджеста

(h6)і=(а3)і 4)і 5)і; // значение бита 6 текущего дайджеста

(h7)і=(а0)і 2)і 4)і; // значение бита 7 текущего дайджеста

hі=hі hі-1;

}

Результат h=hn.

Вариант 2

Исходный текст группируется блоки данных а1, а2, а3, а4 … аn разрядностью по 8 бит. Длина дайджеста – 8 бита. h0 =00000000. Дайджест формируется в течении n итераций цикла. В каждой итерации цикла проводятся действия, котрые можно описать следующим псевдокодом:

for i=1…n

{// прерасчет текущего значениия каждого бита текущего дайджеста hі

(h0)і=(а0)і 4)і 5)і; // значение бита 0 текущего дайджеста

(h1)і=(а1)і 2)і 5)і; // значение бита 1 текущего дайджеста

(h2)і=(а2)і 6)і 7)і; // значение бита 2 текущего дайджеста

(h3)і=(а0)і 4)і 5)і; // значение бита 3 текущего дайджеста

(h4)і=(а4)і 5)і 6)і; // значение бита 4 текущего дайджеста

(h5)і=(а1)і 3)і 7)і; // значение бита 5 текущего дайджеста

(h6)і=(а2)і 5)і 6)і; // значение бита 6 текущего дайджеста

(h7)і=(а0)і 3)і 7)і; // значение бита 7 текущего дайджеста

hі=hі hі-1;

}

Результат h=hn.

Вариант 3

Исходный текст группируется блоки данных а1, а2, а3, а4 … аn разрядностью по 8 бит. Длина дайджеста – 8 бита. h0 =00000000. Дайджест формируется в течении n итераций цикла. В каждой итерации цикла проводятся действия, котрые можно описать следующим псевдокодом:

for i=1…n

{// прерасчет текущего значениия каждого бита текущего дайджеста hі

(h0)і=(а0)і 2)і 4)і; // значение бита 0 текущего дайджеста

(h1)і=(а1)і 5)і 7)і; // значение бита 1 текущего дайджеста

(h2)і=(а3)і 5)і 6)і; // значение бита 2 текущего дайджеста

(h3)і=(а1)і 3)і 7)і; // значение бита 3 текущего дайджеста

(h4)і=(а2)і 4)і 6)і; // значение бита 4 текущего дайджеста

(h5)і=(а0)і 2)і 4)і; // значение бита 5 текущего дайджеста

(h6)і=(а2)і 5)і 6)і; // значение бита 6 текущего дайджеста

(h7)і=(а0)і 4)і 7)і; // значение бита 7 текущего дайджеста

hі=hі hі-1;

}

Результат h=hn.

Примечание! Младший бит (0), находится в крайнем правом разряде двоичного числа!

 

Алгоритмы генерации ключевого материала и оказии

Генератор Лемера

Самым популярным алгоритмом для генерирования псевдослучайных чисел является алгоритм, предложенный Лемером (Lehmer) и называемый методом линейного сравнения. Этот алгоритм имеет четыре следующих параметра.

т модуль сравнения т > 0
а множитель 0<а < т
с приращение 0<с < т
Х0 начальное или порождающее число 0<Х0 < т

Последовательность случайных чисел {Х0} получается с помощью итераций следующего соотношения:

.

При этом если т, а, с и Х0 являются целыми, то будет получена последовательность целых чисел из диапазона .

Выбор значений для а, с и т оказывается очень важным с точки зрения раз­работки хорошего генератора случайных чисел. Рассмотрим, например, случай . Порождаемая при этом последовательность очевидно не будет удовле­творительной. Теперь рассмотрим значения . В этом случае генерируется последовательность {7, 17, 23, 1, 7,...}, которая также оче­видно не будет удовлетворительной. Из 32 возможных значений здесь оказыва­ется задействованными только 4 (в данном случае говорят, что последователь­ность имеет период 4). Если же, оставив другие значения прежними, изменить значение а и положить а=5, то результирующей последовательностью будет {1, 5, 25, 29, 17, 21, 9, 13, 1,...} и ее период будет уже равен 8.

Генератор BBS

Один из популярных подходов к генерированию псевдослучайных последовательностей заключается в использовании генератора Блюма-Блюма-Шуба (Blum-Blum-Shub, BBS), названный так в честь его разработчиков. Доказательство его криптографической надежности является, пожалуй, наиболее строгим из опубликованных. Заложенная в его алгоритм процедура выглядит следующим образом. Сначала выбирается два больших простых числа, и , дающих при делении на 4 в остатке 3, т.е.

.

Это просто означает, что . Например, для простых чисел 7 и 11 мы как раз имеем 7=11=3(mod 4). Пусть теперь . Выберем слу­чайное число , взаимно простое с — в данном случае это означает, что ни , ни не являются делителями . Тогда генератор BBS порождает последователь­ность битов , в соответствии со следующим алгоритмом.

for to

Таким образом, на каждой итерации выбирается младший бит. В табл. 1 показан пример последовательности, полученной в результа­те использования алгоритма BBS. Здесь, =192649=383×503 и начальное значение =101355.

Таблица 1.

Пример генерации псевдослучайных значений согласно с алгоритмом ВВS

i Xi Bi i Xi Bi
           
           
           
           
           
           
           
           
           
           
       

Варианты индивидуальных заданий

Номер варианта Схема системы Алгоритм шифрования Алгоритм хэширования
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       



Поделиться с друзьями:


Дата добавления: 2015-06-04; Просмотров: 303; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.037 сек.