3.2 Вираз елементів рекуренти через початковий стан
Співвідношення
дозволяє легко обчислити стан
при дуже великих
,
оскільки існують ефективні методи
обчислення степеня матриці.
Виявляється,
що так само неважко визначити номери
бітів з початкового стану
,
комбінація яких дає біт
рекурентної послідовності
з номером
.
Нехай
- рядки одиничної матриці
порядка
.
Розглянемо кожний рядок як початковий
стан відповідної рекуренти
.
Запишемо
рекуренти
як рядки деякої матриці
і
розглянемо її як послідовність
векторів-стовбчиків
.
Послідовність
підпорядковується тому ж самому
рекурентному співвідношенню, що і
.
Початковий стан
становлять
векторів
,
що за побудовою, є стовбчиками матриці
.
Координати
наступного вектора
можна отриматияк
останні біти станів
,або
одною матричною операцією:
-
це
останній стовбчик
з матриці
.
Таким
чином,
- першій, а
- останній стовбчик матриці
.
Наступний стовбчик
буде останнім стовбчиком в матриці
,
першим стовбчиком якої є
і так далі,
.
Таким чином, в матриці
матриці
і
розташовані послідовно, але їхні спільні
колонки суміщено.
У добутку
матриць
останній стовбчик матриці
дорівнює добутку матриці
на останній стовбчик матриці
.
Це означає, що сусідні стовбчики матриці
пов’язані співвідношенням
,
або
,
де
- довільне ціле число, оскільки матриця
оборотна.
Таким
чином, ми легко можемо обчисліти вектор
,
що пов’язаний
з бітом
.
Нехай
.
Оскільки
,
то
,
тобто
є сумою рядків матриці
з коефіціентами
.
В термінах стовбчиків
це означає, що біт рекуренти з номером
можна записати як![]()
,
де
- координати вектора
.
Номери
цих координат, що відмінні від нуля,
вказують, сумою яких компонент початкового
стану
є біт
.
3.3 Існування тричленних похідних співвідношень
Як нам
відомо, для того, щоб послідовність
векторів
![]()
мала максимальний період
,
слід вибирати
- примитивним поліномом степеня
.
Тому будемо вважати
примітивним.
У цьому
випадку послідовність
,
при
пробігає всі ненульові двійкові вектори,
тобто довільний вектор
дорівнює вектору
при деякому
.
Виберемо
в матриці
два ненульових нерівних вектори
,
і обчислимо вектор
.
За попереднім, існує ціле
,
таке, що
.
При
цьому
![]()
,
звідки
і
.
Таким чином, для нашої рекуренти
виконується тричленне співвідношення
.
Зауважимо,
що, як правило, значення
надзвичайно великі. Це заважає звести
важливу задачу відновлення початкового
заповнення так званої спотвореної
рекуренти з відомим мінімальним поліномом
до тричленних співвідношень, яка при
реальних значеннях
розв’язується
ефективно.
Згадана задача пов’язана з дешифруванням шифра гамування, коли біти нерівноймовірного відкритого тексту перешифровано двійковою рекурентною гамою додаванням за модулем .
При
цьому шифротекст вважається рекурентною
гамою, що в невідомих місцях викривлена
відкритим текстом, з відомою ймовірністю
.
Основні
параметри, що впливають на ефективність
розв’язування, - це абсолютна величина
відхилення ймовірності викривлення
від
та кількість членів в рекурентному
співвідношенні.
Чим
більше таких членів і чим ближче
ймовірність спотворення до
,
тим більше потрібно знаків спотвореної
рекуренти.
Щоб
пояснити методику відновлення двійкової
викривленої рекуренти
,
почнемо з методу відновлення періодичної
двійкової гами
,
за допомогою якої перешифровано
«відкритий текст» - двійкову послідовність
достатньої довжини з незалежними
елементами з нерівноймовірним розподілом:
.
Зауважимо, що літературний текст, наданий у бітовому вигляді, у більшості випадків є суттево нерівноймовірним.
Припустимо
спочатку, що
і період гами
є відомим.
Таким
чином,
і кількість нулів у довільній достатньо
великий підмножині послідовності
переважає кількість одиниць.
Випишемо
послідовність
в періоді
,
тобто перші
елементів запишемо у перший рядок,
наступні
елементів – у другий рядок і т.д. (останній
рядок може бути неповним). Надпишемо
над першим рядком позначення перших
елементів гами.
Таб. 3.1 Виписка шифротексту у періоді гами
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
У першому
стовбчику маємо
,
і т.д,
,
тобто елементі відкритого тексту
перешифровані одним й тим самим елементом
гами
.
У другому стовбчику – елементом
і так далі.
Розглянемо
перший стовбчик, решта – аналогічно.
Якщо
,
то
,
і т.д.,
,
тобто у всьому стовбчику знаходяться
елементи, вибрані з деяких місць
відкритого тексту. Якщо
,
то
,
і т.д.,
,
тобто у всьому стовбчику знаходяться
інвертовані елементі відкритого тексту.
Елементи
відкритого тексту невідомі, але нулів
у ньому більше ніж одиниць, тому у випадку
у стовбчику нулів має бути більше ніж
одиниць. Якщо
(тобто нулі відкритого тексту перетворилися
у одиниці і навпаки) у стовбчику мають
пареважати одиниці.
Таким чином, стовбчикам, що містять більше нулів відповідає гама нуль, а тим, що містять більше одиниць – гама одиниця.
Звичайно,
можуть бути помилки, якщо
є близькими. Щоб цього уникнути потрібно
більше шифротексту, тоді глубини
стовбчиків будуть більшими і статистика
має спрацювати.
Згадаємо,
що ми припустили, що
.
Нехай насправлі
.
Що ми
отримаємо за нашим алгоритмом?
Очевидно, замість
отримаємо
,
звідки випливає, щонаш
алгоритм дає два варіанти періода гами,
а тим самим і два варіанти повної гами,
які легко перевірити, отримуючи два
варіанти відкритих текстів.
Тепер
розглянемо як визначити мінімальний
період
.
Його можливі значення будемо просто
перебирати. При кожному варіанті будуємо
за попереднім алгоритмом таблицю.Якщо
період помилковий, то у стовбчиках
таблиці будут присутні біти відкритого
тексту, які при істинному періоді мали
б бути у різних стовбчиках.
Це означає, що у стовчиках таблиці
присутні біти відкритого тексту
перешифровані як нулями так і одиницями
гами, тому кількість одиниць і кількість
нулів у стовбчику приблизно рівні.
При
істинному періоді у колонці з номером
має бути перевага кількості нулів
над кількістю одиниць
,
або навпаки. Тобто начення
бажано отримати як найбільшим у кожній
колонці.
Тому
можна ввести середню оцінку відносно
глубини
колонки з номером
:
.
Тут
і
є середнім значенням розходження між
ймовірностями нуля і одиниці, що припадає
на одну колонку таблиці. Ми, очевидно,
маємо шукати значення
,
для якого
.
Розглянемо тепер викривлену лінійну рекуренту.
Нагадаємо, що при відновленні рекуренти, ми одночасно отримуємо викривляючу послідовність, яку ми вважаємо видкритим текстом.
Використуємо
співвідношення
,
або довільне похідне перевірочне
співвідношення.
Для
істиної рекуренти перевірочне
співвідношення виконується на довільному
місці
для «шаблону»
номерів
бітів, що вибіраються. Для
спотвореної рекуренти виду
це не так,
оскільки послідовність спотворень
ненульова.
З
іншого боку, для спотвореної рекуренти
перевірочне співвідношення дає значення
,
які не залежать від рекуренти, бо вона
самознищується.
Прийнято вважати, що задача відновлення лінійної спотвореної рекуренти є розв’язною, а використання лінійної рекуренти у якості гами є недоцільним.
Покажемо
ідею одного з підходів до розв’язування
цієї задачі
за умови, що ймовірність викривлення
не дуже велика.
Ми можемо
оцінити ймовірність того, що біт наданої
нам рекуренти
є викривленим, якщо «примусити» цей біт
приймати участь у великій кількості
перевірочних співвідношень, наприклад,
![]()
,
![]()
,
і так
далі, де «шаблон» для вибору бітів
зсувається вліво на відповідну кількість
кроків
,
доки позначення
у «шаблоні» не з’явиться лівіше біта,
що спочатку був позначений як
.
Аналогічно можна використати похідні
співвідношення, наприклад, що задаються
поліномами виду![]()
.
Кількість ненульових коефіціентів таких поліномів однакова (за рахунок зведення за модулем 2).
Виходячи
з ймовірності
можна розрахувати ймовірності для
за умови, що
і перевірити, чи відповідають
експеріментальні значення теоретичному
розподілу ймовірностей
.
Якщо вдається уникати перетину місць знімання бітів між шаблонами, наприклад, за рахунок похідних перевірочних співвідношень, то можна застосувати алгоритм, щодо відновлення періодичної гами.
Дійсно,
у співвідношеннях виду
![]()
відома
права частина, а в лівій частині завжди
присутній елемент
.
Переставимо
у кожній лівій частині доданки і запишемо
її починаючи, починаючи з
:
.
Перепозначимо
,
,
де параметр
(номер співвідношення) вказує на
залежність
бітів
та
від вибору та зсуву шаблона.
Таким
чином, можна записати
.
Тепер
ми можемо розглядати для біта
усю сукупність, що складається, скажимо
з
співвідношень:
,
.
Аналогія
з методикою відновлення періодичної
гами полягає в тому, що відомі біти
можна розглядати вміст однієї колонки
таблиці періодичної виписки шифротексту.
Ця колонка відповідає одному біту
невідомої «гами»
яким
перешифровано кожний біт «відкритого
тексту»
.
Біти
являють собою суму невідомих бітів
відкритого тексту, але кількість
доданків, а також ймовірності нуля та
одиниці відомі. Це дозволяє обчислити
ймовірності нуля та одиниці для бітів
.
Таким чином, біт
можна відновити, що з використанням
відповідного біту початкового шифротексту
відновлює біт гами.
При достатній довжині спотвореної рекуренти алгоритм дозволяє її відновити, принаймні, частково.
Зауважимо,
що вираз бітів рекуренти
через елементі початкового стану
дозволяє однозначно відновити початковий
стан, якщо відомі
бітів на місцях, де відповідні вектори
лінійно незалежні.
Важливим
питанням я можливість знаходження
мінімального характеристичного поліному,
якому відповідає рекурентне співвідношення
для заданного скінченного відрізку
послідовності над полем
.
Найкращій відомий алгоритм – це алгоритм Берлекемпа-Мессі, дуже ефективний, але обгрунтування цього алгоритму не є очевидним.
