- •Введення
- •1. Структура та обсяг дисципліни
- •2. Основи програмування на мові с
- •2.1 Найпростіші конструкції мови
- •2.2 Типи даних
- •2.4 Операції мови с
- •2.5 Структура простої с програми
- •2.6 Організація введення-виведення
- •2.7 Компіляція в системі Linux
- •2.8 Організація розгалужень в програмі
- •2.9 Організація циклів
- •2.10 Оператор break
- •2.11 Оператор continue
- •2.11 Масиви
- •2.12 Функції
- •2.13 Вызов функции с переменным числом параметров
- •2.14 Рекурсивні функції
- •2.15 Читання і запис текстових файлів
- •2.16 Структури даних
- •2.17 Перелік|перерахування| (enumeration)
- •2.18 Об'єднання (union)
- •3. Операційні системи і системне програмування
- •3.1. Поняття операційної системи
- •4. Корисні команди Linux
- •4.1. Загальні|спільні| команди
- •4.1.1. Команда arch – виведення архітектури комп'ютера
- •4.1.2. Команда clear – очищення екрану
- •4.1.3. Команда date
- •4.1.9. Команда uptime – інформація про роботу системи
- •4.1.10. Команда users – інформація про користувачів
- •4.1.11. Команди w, who і whoami інформація про користувачів
- •4.1.12. Команда xf8config – настройка графічної підсистеми
- •4.2. Команди для роботи з текстом
- •4.2.1. Команди diff і cmp
- •4.2.2. Команди grep і egrep – текстовий фільтр
- •4.2.3. Команди more и less – посторінкове виведення
- •4.2.4. Команди head і tail – виведення начала і хвоста файлу
- •4.2.5. Команда wc – підрахунок слів у файлі
- •5. Захист інформації в інформаційних системах
- •5.1 Основні завдання забезпечення безпеки
- •5.2 Базові поняття криптографії
- •5.2.1 Поняття криптографічного алгоритму і протоколу
- •5.2.2 Криптосистеми з секретним ключем
- •5.2.3 Криптосистеми із відкритим ключем
- •5.2.4. Гибридні криптосистеми
- •5.2.5. Цифрові підписи
- •5.2.6. Сертифікати
- •5.3. Принципи аутентифіекації і керування доступом
- •5.3.1. Основи аутентифікації
- •5.3.2. Основи керування доступом
- •5.4. Аутентифікація та керування доступом в unix
- •5.4.1. Облікові записи користувачів
- •5.4.2. Аутентифікація
- •5.4.3. Керування доступом
- •6. Програмний інтерфейс unix. Системні виклики і функції стандартних бібліотек
- •6.1. Підтримка програмування в oc unix. Вивчення передачі інформації
- •6.2. Змінні оточення
- •6.3. Обробка помилок
- •6.4. Правила формування і засоби розбору командних рядків
- •7. Операції над файлами
- •7.1 Файлові операції posix
- •7.2. Збирання інформації про атрибути файла
- •7.3. Операції над каталогами
- •Література
5.2.3 Криптосистеми із відкритим ключем
Криптографічні алгоритми з відкритим ключем
Алгоритми з видкритим ключем розроблено таким чином, що ключ, використаний для шифрування, відрізняється від ключа для дешифрування. Ці два ключі працюють у парі: текс, який шифрують одним ключем, дешифрують іншим відповідно до формул
Dkpri(Ekpub(P))=P;
Dkpub(Ekpri(P))=P,
де Ekpub, Dkpub – шифрування і дешифрування першим ключем пари, Ekpri,Dkpri - шифрування ідшифрування другим ключем пари. Безпека грунтується на тому, що один ключ не може бути отриманий з іншого. (принаймні за прийнятний для зловмісника проміжок часу).
Ці алгоритми так називаються тому, що один із цих ключів може бути відкритий для всіх (наприклад, опублікований у пресі), даючи змогу будь_якій особі шифрувати цим ключем, але таке повідомлення може прочитати тільки справжній адресат. (що володіє другим ключем).
Ключ, що відкривають для інших осіб для виконання шифрування, називають відкритим ключем (public key), парний до нього ключ для дешифрування – закритим ключем (private key).
Алгоритми із секретним ключем працюють швидче за алгоритми з відкритим ключем,тому, якщо не потрібні специфічні властивості, забезпечувані відкритим ключем (наприклад, не передбачене пересилання даних відкритим каналом зв’язку), достатньо обмежитися алгоритмом із відкритим ключем.
Найвідомішим алгоритмом із відкритим ключем є RSA.
Обмін повідомленнями з використанням криптографії із відкритим ключем
Обмін повідомленнями у разі використання криптографії із відкритим ключем наведемо у вигляді протоколу:
1. Аліса і Боб погоджуються використовувати систему із відкритим ключем.
2. Боб надсилає Алісі свій відкритий ключ.
3. Аліса шифрує повідомлення відкритим ключем Боба і відсилає його Бобові.
4. Боб розшифровує це повідомлення своїм відкритим ключем.
Ця послідовність кроків позбавлена недоліків, властивих для процедури обміну секретним ключем. Перехоплення ключа зловмисником не зпричиняє порушення безпеки каналу, а закритий ключ між сторонами не передають.
5.2.4. Гибридні криптосистеми
На практиці алгоритми із відкритим ключем не можуть цілковито замінити алгоритми із закритим ключем, насемперед через те, що вони працюють значно повільніше, і шифрувати ними великі обсяги даних неефективно.
Для того, щоб об’єднати переваги двох категорій алгоритмів, використовують гібридні криптосистеми, де алгоритми з відкритим ключем використовують для шифрування не самих повідомлень, а ключів симетричних алгоритмів, якими далі (після обміну) шифрують весь канал. Иакі ключі називають сесійними ключами, бо їх звичайно створюють за допомогою генераторів віпадкових чисел для конкретної сесії.
Протокол роботи гибрідної криптосистеми такий:
1. Боб відсилає Алісі свій відкритий ключ.
2. Аліса генерує випадковий сесійний ключ, шифрує його відкритим ключем Боба і відсилає Бобові.
3. Боб розшифровує сесійний ключ своїм закритим ключем.
4. Обидві сторони далі обмінюються повідомленнями, зашифрованими сесійним ключем.
Гибридні криптосистеми забезпечують якісний захист ключів і нрйнятну продуктивність.
