8.3 Генератор пвп на основі rsa
Параметрами генератора є параметри криптосистеми RSA, за винятком секретного ключа, тобто , де великі нерівні прости числа і випадкове число , у діапазоні , взаємно просте з , де . Після генерації і , решта даних і результати проміжних обчислень знищуються.
Генератор видає двійкову послідовність довжини , виходячи із випадкового секретного значення : .
Алгоритм генерації: , , .
8.4 Генератор квадратичних лишків bbs
Позначення генератора пов’язано з призвіщамі авторів (Blum, Blum, Shub). Параметри генератора: секретні великі нерівні прости числа , такі що, ; число ; - випадковий секретний лишок за модулем .
Алгоритм обчислення послідовності бітів .
1. Обчислити початкове значення .
2. Для :, .
Зауваження. Алгоритм можна використовувати для шифрування файлів з довільним доступом, якщо, крім , ввести секретний параметр , оскільки тоді можна обчислити без знання , оскільки , де .
8.5 Генератор Блюма-Мікалі
Цей генератор оснований на складності дискретного логарифмування.
Нехай - велике просте число, таке, що дискретний логарифм у обчислювально неможливий, а - елемент великого порядку.
Вибираємо випадково секретне початкове значення .
Алгоритм побудови ПВП наступний.
Обчислити . Якщо , то , інакше, .
8.6 Методи симетризації та селекції поліпшення якості пвп
Модифікація первісної ПВП спрямована на поліпшення її статистичних властивостей за рахунок послаблення залежності між елементами і наближення розподілу елементів до рівномірного.
Це, наприклад, вибір підпослідовностей, додавання за модулем 2 частини бітів блоку, видалення підпослідовностей бітів з блоків, тощо.
Наприклад, в українському стандарті на цифровий підпис ДСТУ 4145-2002, для побудови рандомізаторів застосовується генератор випадкових двійкових послідовностей побудований за схемою ANSI X9.17 з використанням алгоритму ГОСТ 28147-89.
При цьому черговий біт такої послідовності є правим крайнім розрядом відповідного блоку довжини 64, що за ANSI X9.17 міститься у ПВП цілком.
Для порушення зв’язку ПВП з первісним алгоритмом, або для поліпшення первісної ПВП, можна застосувати т. зв. алгоритми симетризації та селекції.
Метод симетризації полягає у наступному.
Нехай - первісна двійкова псевдовипадкова послідовність з незалежними елементами, в якій порушено умову рівноймовірності:
; , де , .
За допомогою наступних (або еквівалентних) перетвореннь первісна послідовність перетворюються до виду: , якщо ; , якщо ; - у інших випадках.
Таким чином, розглядаємо пари бітів, що не перетинаються, і робимо заміну: , , , .
З послідовності відкинемо значення . В результаті, отримуємо двійкову послідовність . Підрахуємо розподіл ймовірностей елементів послідовності .
Оскільки , то після відкидання значень отримуємо двійкову послідовність з рівноймовірним розподілом.
Зауважимо, що цей результат використовує умову щодо попарної незалежності елементів первісної послідовності.
Крім того, чим більше відхиляється від 0,5, тим більше скорочується довжина .
Але у випадку, коли первісна послідовність є результатом шифроперетворення, обидва ці недоліки практично відсутні.
На відміну від методу симетризації, метод селекції дозволяє побудувати безліч способів поліпшення послідовностей за рахунок комбінування елементарних генераторів ПВП.
У методі селекції двійкова ПВП «проріджується» за допомогою іншої ПВП , в результаті чого отримується послідовність . Наприклад, в залишаються лише ті елементи , для яких (послідовність стискується).
Елементи послідовності називаються селекторами.
Слід враховувати, що якщо генератор якісний, то генератор , у якому послідовності помінялися ролями, може бути дуже слабкий.
Тому цей метод звичайно застосовується для послідовностей з хорошими статистичними властивостями, з метою порушення зв’язку з початковим станом первісного генератора.
Приклад 1. Стискуючий генератор SG (Shrinking Generator), що генерує двійкову ПВП.
У цьому генераторі послідовності і породжуються двійковими регістрами зсуву з лінійним зворотним зв’язком і відповідно.
Теорема 8.1 Нехай мінімальні поліноми регістрів і примітивні, , , а періоди послідовностей і - взаємно прості числа.
Тоді період і лінійна складність послідовності, що генерується, задовільняють умовам: , .
Приклад 2. Послідовність генерується так званим старт-стоп генератором. У цьому генераторі задіяні три РЗЛЗЗ і . Регістр рухається рівномірно і керує рухом регістрів ,: якщо після просування його вихід дорівнює 1, то просувається , інакше, просувається .
Після зміни стану системи біти, що знімаються з виходів регістрів , додаються за модулем два. Результат є черговим бітом ПВП , що генерується.
Приклад 3. Генератор Mush. Нерівноймовірна послідовність селекторів.
Послідовність отримується з рекурентного співідношення виду ,, з початковим станом . Елементи - двійкові числа розміром 32 біти. Операція означає, що спочатку числа додаються звичайним образом. Далі результат розглядається як 33-х розрядне число, яке розбивається на старший розряд і молодші 32 розряди, які становлять значення . Значення є черговим бітом послідовності селекторів .
Приклад 4. У якості і вибираємо послідовності з прикладів 2 і 3, або послідовності, що відповідно отримані з генератора ANSI X9.17 і генератора Блюма-Мікалі.