заповнений блок шифрується;
3. ,, виділяються старших біт блоку;
4. вихідний символ складається по модулю два з комбінацією;
. Повідомлення передається в канал зв'язку як зашифроване повідомлення, відповідне вихідного;
6. блок зсувається логічно вліво на розрядів, а в молодші розрядів записується.
Аналіз режиму OFB показує, що OFB варто використовувати тільки, коли розмір зворотного зв'язку збігається з розміром блоку. Тобто розмірність одно, розмірності. Режим OFB виконує XOR над потоком ключів і текстом. Цей потік ключів з часом повторюється. Важливо, щоб він не повторювався для того ж ключа, в іншому випадку порушується безпеку. Коли розмір зворотного зв'язку дорівнює розміру блоку, блоковий шифр переставляє -бітовие значення (де - це розмір блоку), і середня довжина циклу складає. При довжині блоку 64 біта це дуже велике число. Коли розмір зворотного зв'язку менше довжини блоку, середня довжина циклу падає до приблизно. Для 64-бітного шифру це тільки 232 - що явно недостатньо.
2.2 ANSI X9.17
Даний стандарт підходить для генерації сеансових ключів або псевдовипадкових чисел в системі.
Нехай - це, зашифрований DES ключем, спеціальним ключем, передбаченим для генерації секретних ключів.- Це секретна 64-бітова стартова послідовність.- Це мітка часу. Для генерації випадкового ключа обчислимо:
Для генерації обчислимо:
Для перетворення в ключ DES, просто видаліть кожен восьмий біт. Якщо вам потрібен 64-бітовий ключ, використовуйте ключ без зміни. Якщо вам потрібен 128-бітовий ключ, створіть пару ключів і об'єднайте їх.
. 3 Лінійний зсувний регістр зі зворотним зв'язком (LFSR)
Найбільш поширений серед криптографов алгоритм генерації псп - LFSR. Використовується в основному для потокових шифрів, але може використовуватися для генерації ключа і вектора ініціалізації блокових шифрів. Для цього необхідно згенерувати послідовність у БД, потім розбити її на блоки потрібної довжини, далі по мітках синхронізації блоків зашифрованих повідомлень міняти блок вектора ініціалізації (якщо потрібно, наприклад для режиму CBC), а по мітках синхронізації внутрішнього циклу алгоритму (брати по найменшому циклу) , міняти ключ. Зворотній зв'язок регістра являє собою просто XOR деяких бітів регістра, перелік цих бітів називається відвідної послідовністю, такий регістр ще називають конфігурацією Фіббоначі.
n-бітовий LFSR може перебувати в одному з внутрішніх станів. Це означає, що теоретично він може генерувати послідовність з бітів. Але тільки за певних відвідних послідовностях LFSR циклічно пройде через всі станів, такі LFSR називають LFSR з максимальним періодом, а послідовність, М-послідовністю.
Для того щоб конкретний LFSR мав максимальний період, многочлен, утворений з відвідної послідовності і константи 1, повинен бути примітивний за модулем 2. Ступінь многочлена є довжиною зсувного регістру.
Примітивний багаточлен ступеня n - це непріводімий многочлен, який є дільником, але не є дільником для всіх, що є дільниками.
У загальному випадку не існує простого способу генерувати примітивні многочлени даній ступеня, зазвичай це роблять, або методом підбору, або спеціалізованого програмного забезпечення. Але за вже відомим многочлену, можна згенерувати, наприклад якщо примітивний, то так само примітивний. LFSR - хороший генератор псп, але послідовні біти лінійні. Для LSFR довжини внутрішній стан представляє вихідних бітів генератора, а схема зворотного зв'язку може бути визначена по вихідних бітам генератора.
P.S. Конгруентний метод генерації псп не розглядається, оскільки такі генератори є передбачуваними і не можуть застосовуватися в криптографії.
2.4 Генератор реальних випадкових послідовностей
На мій погляд - це оптимальний спосіб генерації блокових ключів.
Першим постає питання про перевірки такого генератора, чи дійсно він видає нам випадкові числа? У цьому питанні нам може допомогти тест Маурера. Мета тесту - з'ясувати, чи може дана послідовність бути значно стиснута без втрат інформації. У випадку якщо це можливо зробити, то вона не є істинно випадковою. Так як же згенерувати випадкову послідовність? Якщо ви обмежені в засобах, можна підкидати монетку, записувати орел як 0, решка як 1, але є і більш дієві методи:
. Таблиці RAND. У 1955 році Rand Corporation видала книгу, містила мільйон випадкових цифр і описали метод генерації так: