Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЕК. Алгоритмізація. Конспект лекцій.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
1.89 Mб
Скачать
  1. Алгоритми криптографії та хешування

Перелік питань:

      1. Значення випадкових чисел у програмуванні.

      2. Алгоритми генерації рівномірно розподілених псевдовипадкових чисел.

      3. Перевірка якості випадкових чисел.

      4. Кодування з виправленням помилок.

      5. Стиснення даних.

      6. Стиснення даних зі словником.

      7. Алгоритм стиснення Лемпела-Зіва.

      8. Введення до криптографії.

      9. Елементи теорії порівнянь.

      10. Шифрування за допомогою випадкових чисел.

      11. Створення таємного ключа по Діффі-Хеллману.

      12. Система RSA.

      13. Алгоритми цифрового підпису.

      14. Введення до хешування.

      15. Функції хешування.

      16. Проста функція хешування рядків.

      17. Хеш-таблиці

      18. Функції хешування з використанням рандомізації.

      19. Вирішення конфліктів за допомогою лінійного зондування.

      20. Видалення елементів із хеш-таблиці з лінійним зондуванням.

      21. Клас хеш-таблиць з лінійним зондуванням.

      22. Інші схеми відкритої адресації.

      23. Квадратичне зондування.

      24. Псевдовипадкове зондування.

      25. Подвійне хешування.

      26. Вирішення конфліктів за допомогою зв’язування.

      27. Вирішення конфліктів за допомогою групування.

      28. Розширююче хешування.

    1. Значення випадкових чисел у програмуванні

Випадкові числа – числа, значення яких не можна передбачити.

Випадкові числа використовуються у статистиці, економіці, математиці, азартних іграх, особливого поширення набули у криптографії

У економічній сфері випадкові числа активно використовуються для математичного моделювання економічних процесів – фінансових ринків, інструментів і т.д.

Випадкові числа розподілені за різними законами: біноміальним, нормальним, законом Пуассона і т.д.

За допомогою комп’ютерів генерація випадкових чисел здійснюється за спеціальними алгоритмами, які у своїй більшості, однак, не можуть гарантувати справжньої випадковості, тому їх називають генераторами псевдовипадкових чисел

Деякі генератори псевдовипадкових чисел сприймають певне початкове значення, далі на основі певного алгоритму за допомогою рекурертних співвідношень формують наступні числа. Знаючи алгоритм і його початкові значення можна передбачити числа, що є особливо небезпечно для алгоритмів криптографії.

Поширені способи генерації випадкових чисел

Використання системних значень дати, часу, різноманітних таймерів, лічильника тактів процесора

Зчитування пристроїв введення інформації (клавіатури, миші)

Використання сенсорів температури, сигналів аудіоканалів, зображення веб-камер

Використання унікальних серійних номерів процесора, мережевої плати, іншого обладнання

Використання спеціальних пристроїв, наприклад, лічильників радіації Гейгера

Використання таблиць заздалегідь згенерованих чисел

Використання спеціалізованих сервісів, які надають можливість отримувати випадкові числа через Інтернет

Алгоритм генерації псевдовипадкових чисел на основі системного часу

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading;

namespace RandomGenerator

{

class Program

{

static void Main(string[] args)

{

for (int i = 0; i < 10; i++)

{

int Rand = DateTime.Now.Millisecond % 100;

Console.WriteLine(Rand);

Thread.Sleep(100 + Rand * 10);

}

Console.ReadKey();

}

}

}

Використання стандартного класу Random в C#