Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 98 additions & 0 deletions www/SHA.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
<!DOCTYPE HTML>

<html>
<head>
<title>Security is an important thing</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="icon" href="images/laws/shield.png">
<link rel="stylesheet" href="assets/css/main.css" />
<script src="assets/js/jquery-3.3.1.js"></script>
<script>
$(function(){
$("#header").load("header.html");
$("#here_footer").load("footer.html");
});
</script>
</head>
<body>

<div id="header"></div>

<!-- Banner -->
<section id="banner">
<div class="inner">
<header>
<h1>Хэш-функция SHA-1</h1>
</header>

</div>
</section>

<br/><br/><br/>
<!-- Three -->

<a name="doktrina"></a>


<div class="row move_left">
<section class="12u 12u$(large)">
<h3>Введение</h3>
<p>Безопасный хэш-алгоритм (Secure Hash Algorithm) был разработан NIST и опубликован в качестве федерального информационного стандарта (FIPS PUB 180) в 1993 году. У алгоритмов MD5 и SHA-1 много общего.
Алгоритм получает на входе сообщение произвольной длины и создает в качестве выхода дайджест сообщения длиной 160 бит.
Алгоритм состоит из следующих шагов:
</p>
<img src="images/laws/nn.jpg" alt="" class="image_fixer">
<h1><b>Шаг 1: добавление недостающих битов </b></h1>
<p>Сообщение добавляется таким образом, чтобы его длина была кратна 448 по модулю 512 (длина = 448 (mod 512)). Добавление осуществля-ется всегда, даже если сообщение уже имеет нужную длину. Таким образом, число добавляемых битов находится в диапазоне от 1 до 512.
Добавление состоит из единицы, за которой следует необходимое количество нулей.
</p>
<h1><b>Шаг 2: добавление длины</b></h1>
<p>СК сообщению добавляется блок из 64 битов. Этот блок трактуется как беззнаковое 64-битное целое и содержит длину исходного сообщения до добавления.
Результатом первых двух шагов является сообщение, длина которого кратна 512 битам. Расширенное сообщение может быть представлено как последовательность 512-битных блоков Y0, Y1, . . . ,YL-1, так что общая длина расширенного сообщения есть L * 512 бит. Таким образом, результат кратен шестнадцати 32-битным словам.
</p>
<h1><b>Шаг 3: инициализация SHA-1 буфера</b></h1>
<p>Используется 160-битный буфер для хранения промежуточных и окон-чательных результатов хэш-функции. Буфер может быть представлен как пять 32-битных регистров A, B, C, D и E. Эти регистры инициализируются следующими шестнадцатеричными числами:
</br>A = 67452301
</br>B = EFCDAB89
</br>C = 98BADCFE
</br>D = 10325476
</br>E = C3D2E1F0

</p>
<h1><b>обработка сообщения в 512-битных (16-словных) блоках</b></h1>
<p>Основой алгоритма является модуль, состоящий из 80 циклических обработок, обозначенный как HSHA. Все 80 циклических обработок имеют одинаковую структуру (рис. 3.6).
Каждый цикл получает на входе текущий 512-битный обрабатываемый блок Yq и 160-битное значение буфера ABCDE, и изменяет содержимое этого буфера.
В каждом цикле используется дополнительная константа Кt которая принимает только четыре различных значения:
</p>
<img src="images/laws/dd.png" alt="" class="image_fixer">
<p>Для получения SHAq+1 выход 80-го цикла складывается со значением SHAq. Сложение по модулю 232 выполняется независимо для каждого из пяти слов в буфере с каждым из соответствующих слов в SHAq.</p>
<img src="images/laws/qq.jpg" alt="" class="image_fixer">
<h1><b>Шаг 5: выход</b></h1>
<p>После обработки всех 512-битных блоков выходом L-ой стадии является 160-битный дайджест сообщения.
Вот так выглядит логика выполнения отдельного цикла:
</p>
<img src="images/laws/ww.jpg" alt="" class="image_fixer">
<p><b>Рис. 3.7.</b> Логика выполнения отдельного цикла</p>
<p>Каждая элементарная функция получает на входе три 32-битных слова и создает на выходе одно 32-битное слово. Элементарная функция выполняет набор побитных логических операций, т.е. n-ый бит выхода является функцией от n-ых битов трех входов. Функции следующие:
</br>Таблица 3.1</p>
<img src="images/laws/tt.jpg" alt="" class="image_fixer">
<p>На самом деле используются только три различные функции. Для 0 ≤ t ≤ 19 функция является условной: if B then C else D Для 20 ≤ t ≤ 39 и 60 ≤ t ≤ 79 функция создает бит четности. Для 40 ≤ t ≤ 59 функция является истинной, если два или три аргумента истинны.
32-битные слова Wt получаются из очередного 512-битного блока сообщения следующим образом.</p>
<img src="images/laws/uu.jpg" alt="" class="image_fixer">
<p><b>Рис. 3.9.</b> Получение входных значений каждого цикла из очередного блока</p>
<p>Первые 16 значений Wt берутся непосредственно из 16 слов текущего блока. Оставшиеся значения определяются следующим образом:</p>
<img src="images/laws/ii.png" alt="" class="image_fixer">
<p>В первых 16 циклах вход состоит из 32-битного слова данного блока. Для оставшихся 64 циклов вход состоит из XOR нескольких слов из блока сообщения.</p>

<div id="here_footer"></div>


<!-- Scripts -->
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/skel.min.js"></script>
<script src="assets/js/util.js"></script>
<script src="assets/js/main.js"></script>

</body>
</html>
167 changes: 167 additions & 0 deletions www/_generator.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
<!DOCTYPE HTML>
<html>

<head>
<title>Security is an important thing</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="icon" href="images/laws/shield.png">
<link rel="stylesheet" href="assets/css/main.css" />
<script src="assets/js/jquery-3.3.1.js"></script>
<script>
$(function(){
$("#header").load("header.html");
$("#here_footer").load("footer.html");
});
</script>
<style type="text/css">
p {
text-indent: 35px;
}
</style>
</head>

<body>
<div id="header"></div>
<!-- Banner -->
<section id="banner">
<div class="inner">
<header>
<h1>Генераторы, основанные на управлении синхросигналом</h1>
</header>
</div>
</section>
<br /><br /><br />
<!-- Three -->
<a name="doktrina"></a>
<div class="row move_left">
<section class="12u 12u$(large)">
<h3>Введение</h3>
<p>В нелинейных комбинациях генераторов и генераторах на нелинейных фильтрах перемещение данных во всех РСЛОС контролируется одним синхросигналом.
Основная идея функционирования рассматриваемого типа генераторов — внести нелинейность в работу генераторов потока ключей, основанных на РСЛОС, путём управления синхросигналом одного регистра выходной последовательностью другого.
Есть 2 типа генераторов, основанных на управлении синхросигналом:
</br>1. генератор переменного шага
</br>2. сжимающий генератор.
</p>
<h2>Генератор переменного шага</h2>
<img src="images/laws/generator.png" alt="" class="image_fixer">
<p>1. Регистр РСЛОС 1 синхронизован внешним синхросигналом</p>
<p>2. Если на выходе регистра РСЛОС 1 единица, то на регистр РСЛОС 2 подаётся синхросигнал, а РСЛОС 3 повторяет свой предыдущий выходной бит (для начального момента времени предыдущий выходной бит РСЛОС 3 принимается равным 0)</p>
<p>3. Если на выходе регистра РСЛОС 1 ноль, то на регистр РСЛОС 3 подаётся синхросигнал, а РСЛОС 2 повторяет свой предыдущий выходной бит (для начального момента времени предыдущий выходной бит РСЛОС 2 также принимается равным 0)</p>
<p>4. Выходная последовательность битов генератора с переменным шагом является результатом применения операции побитового исключающего ИЛИ к выходным последовательностям регистров РСЛОС 2 и РСЛОС 3.</p>

<h3>Пример работы генератора</h3>
<div class="row">
<div class="2u 12u$(small)">
<div>R1:</div>
<div id="seed">0</div>
</div>
<div class="3u 12u$(small)">
</br> <input type="submit" value="Изменить значение r1" class="fit" onclick="set_TSC()">
</div>
</div>


<div class="row">
<div class="2u 12u$(small)">
<div>R2:</div>
<div id="r2_value">0</div>
</div>
<div class="3u 12u$(small)">
</br> <input type="submit" value="Изменить значение r2" class="fit" onclick="_set_TSC()">
</div>
</div>

<br>
<div class="row">
<div >
<div>RS:</div>
<div id="deed">1</div>
<div >
</br> <input type="submit" value="Изменить значение rs" class="fit" onclick="linear_congruential()">
</div>
</div>

<br>
<div class="row">
<div >
</br><div>Значение после изменения rs:</div>
</div>
<div >
</br> <div id="xor_r1_r2">0</div>
</div>
</div>
<br>

</div>
<div id="curve_chart" style="width: 900px; height: 500px"></div>
</section>
</div>
<br>
<br>
<br>
<div id="here_footer"></div>
<!-- Scripts -->
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script>
var arr = [
['N', 'Значение'],
[0, 0],
];
var N = 1;

function drawChart() {
var data = google.visualization.arrayToDataTable(arr);
var options = {
title: 'Распределение генератора',
curveType: 'line',
legend: { position: 'bottom' }
};
var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));
chart.draw(data, options);
}

function TSC() {
return (new Date()).valueOf();
}

function set_TSC() {
if(seed.innerHTML==0){
seed.innerHTML=1;
}else{
seed.innerHTML=0;
}

}
function _set_TSC() {
if(r2_value.innerHTML==0){
r2_value.innerHTML=1;

}else{
r2_value.innerHTML=0;
}
}
function linear_congruential() {
if(deed.innerHTML==0){
deed.innerHTML=1;
r2_value.innerHTML=0;
}else{
deed.innerHTML=0;
seed.innerHTML=0;
}
if(r2_value.innerHTML==seed.innerHTML){
xor_r1_r2.innerHTML=0;
}else{
xor_r1_r2.innerHTML=1;
}

}

</script>
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/skel.min.js"></script>
<script src="assets/js/util.js"></script>
<script src="assets/js/main.js"></script>
</body>

</html>
Binary file added www/images/laws/dd.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added www/images/laws/generator.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added www/images/laws/ii.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added www/images/laws/nn.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added www/images/laws/qq.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added www/images/laws/tt.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added www/images/laws/uu.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added www/images/laws/ww.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added www/images/laws/yy.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion www/lectures.html
Original file line number Diff line number Diff line change
Expand Up @@ -275,7 +275,7 @@ <h3>Алгоритм MD5</h3>

<div class="flex">
<div>
<div class="div-button" onclick="location.href = '/404.html';">
<div class="div-button" onclick="location.href = '/SHA.html';">
<span class="icon">17. </span><span class="icon fa-file-text"></span>
<h3>SHA-1</h3>
</div>
Expand Down
21 changes: 9 additions & 12 deletions www/other_laws.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,15 @@
<section id="banner">
<div class="inner">
<header>
<h1>Другие законодательные акты</h1>
<h1>Панов и Борисенко алгоритм шифрования</h1>
</header>

<div class="flex ">

<div>
<div class="div-button" onclick="location.href = '#doktrina';">
<span class="icon fa-bookmark"></span>
<h3>ПП №608<br/> "О сертификации средств защиты информации"</h3>
<h3>Secure Hash Algorithm 1 (SHA-1)<br/> </h3>
</div>
</div>

Expand All @@ -44,18 +44,18 @@ <h3>ПП №608<br/> "О сертификации средств защиты и
<!-- Three -->

<a name="doktrina"></a>
<h3 class="move_left">ПП №608 "О сертификации средств защиты информации"</h3>
<h3 class="move_left">Secure Hash Algorithm 1 (SHA-1)</h3>

<div class="row move_left">
<section class="6u 12u$(medium)">
<h2>Полное название</h2>
<p><strong>...</strong> ...</p>
<h2>Secure Hash Algorithm 1</h2>
<p>Для входного сообщения произвольной длины (максимум {\displaystyle 2^{64}-1} 2^{64}-1 бит, что примерно равно 2 эксабайта) алгоритм генерирует 160-битное (20 байт) хеш-значение, называемое также дайджестом сообщения, которое обычно отображается как шестнадцатиричное число, длиной в 40 цифр. Используется во многих криптографических приложениях и протоколах.</p>
<p></p>
</section>
<section class="3u 6u(medium) 12u$(small)">
<h2>Как это выглядит?</h2>
<span class="image">
<img src="images/laws/doktrina.jpg" alt="" class="image_fixer">
<img src="images/laws/SWS.png" alt="" class="image_fixer">
</span>
</section>

Expand All @@ -65,14 +65,14 @@ <h2>Как это выглядит?</h2>
<section class="6u 12u$(medium)">
<h2>Что это?</h2>

<p><strong>...</strong> - это ... </p>
<p><strong>Secure Hash Algorithm 1 </strong> - это алгоритм криптографического хеширования. </p>

</section>

<section class="6u 12u$(medium)">
<h2>Как относится к безопасности?</h2>

<p><strong>...</strong> ...</p>
<p>1. Разработан для защиты паролей,путем их шифрования.</p>

</section>

Expand All @@ -81,11 +81,8 @@ <h2>Как относится к безопасности?</h2>
<div class="row move_left">
<section class="6u 12u$(medium)">
<h2>С чем связано?</h2>

<h4>Документы: </h4>
<p>...</p>
<h4> Область действия:</h4>
<p>...</p>
<p>Конфеденциальные данные (пароли)</p>
</section>
</div>

Expand Down
Loading