diff --git a/www/SHA.html b/www/SHA.html new file mode 100644 index 0000000..170fa08 --- /dev/null +++ b/www/SHA.html @@ -0,0 +1,98 @@ + + + + + Security is an important thing + + + + + + + + + + + + + + +


+ + + + + +
+
+

Введение

+

Безопасный хэш-алгоритм (Secure Hash Algorithm) был разработан NIST и опубликован в качестве федерального информационного стандарта (FIPS PUB 180) в 1993 году. У алгоритмов MD5 и SHA-1 много общего. +Алгоритм получает на входе сообщение произвольной длины и создает в качестве выхода дайджест сообщения длиной 160 бит. +Алгоритм состоит из следующих шагов: +

+ +

Шаг 1: добавление недостающих битов

+

Сообщение добавляется таким образом, чтобы его длина была кратна 448 по модулю 512 (длина = 448 (mod 512)). Добавление осуществля-ется всегда, даже если сообщение уже имеет нужную длину. Таким образом, число добавляемых битов находится в диапазоне от 1 до 512. +Добавление состоит из единицы, за которой следует необходимое количество нулей. +

+

Шаг 2: добавление длины

+

СК сообщению добавляется блок из 64 битов. Этот блок трактуется как беззнаковое 64-битное целое и содержит длину исходного сообщения до добавления. +Результатом первых двух шагов является сообщение, длина которого кратна 512 битам. Расширенное сообщение может быть представлено как последовательность 512-битных блоков Y0, Y1, . . . ,YL-1, так что общая длина расширенного сообщения есть L * 512 бит. Таким образом, результат кратен шестнадцати 32-битным словам. +

+

Шаг 3: инициализация SHA-1 буфера

+

Используется 160-битный буфер для хранения промежуточных и окон-чательных результатов хэш-функции. Буфер может быть представлен как пять 32-битных регистров A, B, C, D и E. Эти регистры инициализируются следующими шестнадцатеричными числами: +
A = 67452301 +
B = EFCDAB89 +
C = 98BADCFE +
D = 10325476 +
E = C3D2E1F0 + +

+

обработка сообщения в 512-битных (16-словных) блоках

+

Основой алгоритма является модуль, состоящий из 80 циклических обработок, обозначенный как HSHA. Все 80 циклических обработок имеют одинаковую структуру (рис. 3.6). +Каждый цикл получает на входе текущий 512-битный обрабатываемый блок Yq и 160-битное значение буфера ABCDE, и изменяет содержимое этого буфера. +В каждом цикле используется дополнительная константа Кt которая принимает только четыре различных значения: +

+ +

Для получения SHAq+1 выход 80-го цикла складывается со значением SHAq. Сложение по модулю 232 выполняется независимо для каждого из пяти слов в буфере с каждым из соответствующих слов в SHAq.

+ +

Шаг 5: выход

+

После обработки всех 512-битных блоков выходом L-ой стадии является 160-битный дайджест сообщения. +Вот так выглядит логика выполнения отдельного цикла: +

+ +

Рис. 3.7. Логика выполнения отдельного цикла

+

Каждая элементарная функция получает на входе три 32-битных слова и создает на выходе одно 32-битное слово. Элементарная функция выполняет набор побитных логических операций, т.е. n-ый бит выхода является функцией от n-ых битов трех входов. Функции следующие: +
Таблица 3.1

+ +

На самом деле используются только три различные функции. Для 0 ≤ t ≤ 19 функция является условной: if B then C else D Для 20 ≤ t ≤ 39 и 60 ≤ t ≤ 79 функция создает бит четности. Для 40 ≤ t ≤ 59 функция является истинной, если два или три аргумента истинны. +32-битные слова Wt получаются из очередного 512-битного блока сообщения следующим образом.

+ +

Рис. 3.9. Получение входных значений каждого цикла из очередного блока

+

Первые 16 значений Wt берутся непосредственно из 16 слов текущего блока. Оставшиеся значения определяются следующим образом:

+ +

В первых 16 циклах вход состоит из 32-битного слова данного блока. Для оставшихся 64 циклов вход состоит из XOR нескольких слов из блока сообщения.

+ + + + + + + + + + + + diff --git a/www/_generator.html b/www/_generator.html new file mode 100644 index 0000000..c092e9c --- /dev/null +++ b/www/_generator.html @@ -0,0 +1,167 @@ + + + + + Security is an important thing + + + + + + + + + + + + + +


+ + +
+
+

Введение

+

В нелинейных комбинациях генераторов и генераторах на нелинейных фильтрах перемещение данных во всех РСЛОС контролируется одним синхросигналом. +Основная идея функционирования рассматриваемого типа генераторов — внести нелинейность в работу генераторов потока ключей, основанных на РСЛОС, путём управления синхросигналом одного регистра выходной последовательностью другого. +Есть 2 типа генераторов, основанных на управлении синхросигналом: +
1. генератор переменного шага +
2. сжимающий генератор. +

+

Генератор переменного шага

+ +

1. Регистр РСЛОС 1 синхронизован внешним синхросигналом

+

2. Если на выходе регистра РСЛОС 1 единица, то на регистр РСЛОС 2 подаётся синхросигнал, а РСЛОС 3 повторяет свой предыдущий выходной бит (для начального момента времени предыдущий выходной бит РСЛОС 3 принимается равным 0)

+

3. Если на выходе регистра РСЛОС 1 ноль, то на регистр РСЛОС 3 подаётся синхросигнал, а РСЛОС 2 повторяет свой предыдущий выходной бит (для начального момента времени предыдущий выходной бит РСЛОС 2 также принимается равным 0)

+

4. Выходная последовательность битов генератора с переменным шагом является результатом применения операции побитового исключающего ИЛИ к выходным последовательностям регистров РСЛОС 2 и РСЛОС 3.

+ +

Пример работы генератора

+
+
+
R1:
+
0
+
+
+
+
+
+ + +
+
+
R2:
+
0
+
+
+
+
+
+ +
+
+
+
RS:
+
1
+
+
+
+
+ +
+
+
+
Значение после изменения rs:
+
+
+
0
+
+
+
+ +
+
+
+
+
+
+
+ + + + + + + + + + + diff --git a/www/images/laws/dd.png b/www/images/laws/dd.png new file mode 100644 index 0000000..53db7dd Binary files /dev/null and b/www/images/laws/dd.png differ diff --git a/www/images/laws/generator.png b/www/images/laws/generator.png new file mode 100644 index 0000000..7db6abb Binary files /dev/null and b/www/images/laws/generator.png differ diff --git a/www/images/laws/ii.png b/www/images/laws/ii.png new file mode 100644 index 0000000..a7b2123 Binary files /dev/null and b/www/images/laws/ii.png differ diff --git a/www/images/laws/nn.jpg b/www/images/laws/nn.jpg new file mode 100644 index 0000000..64f1c16 Binary files /dev/null and b/www/images/laws/nn.jpg differ diff --git a/www/images/laws/qq.jpg b/www/images/laws/qq.jpg new file mode 100644 index 0000000..a458a7f Binary files /dev/null and b/www/images/laws/qq.jpg differ diff --git a/www/images/laws/tt.jpg b/www/images/laws/tt.jpg new file mode 100644 index 0000000..0f48455 Binary files /dev/null and b/www/images/laws/tt.jpg differ diff --git a/www/images/laws/uu.jpg b/www/images/laws/uu.jpg new file mode 100644 index 0000000..b2d015f Binary files /dev/null and b/www/images/laws/uu.jpg differ diff --git a/www/images/laws/ww.jpg b/www/images/laws/ww.jpg new file mode 100644 index 0000000..c63bba0 Binary files /dev/null and b/www/images/laws/ww.jpg differ diff --git a/www/images/laws/yy.jpg b/www/images/laws/yy.jpg new file mode 100644 index 0000000..6e7b082 Binary files /dev/null and b/www/images/laws/yy.jpg differ diff --git a/www/lectures.html b/www/lectures.html index 40f83a1..96862f1 100644 --- a/www/lectures.html +++ b/www/lectures.html @@ -275,7 +275,7 @@

Алгоритм MD5

-
+
17.

SHA-1

diff --git a/www/other_laws.html b/www/other_laws.html index 502b33f..643429b 100644 --- a/www/other_laws.html +++ b/www/other_laws.html @@ -22,7 +22,7 @@