Отправьте статью сегодня! Журнал выйдет ..., печатный экземпляр отправим ...
Опубликовать статью

Молодой учёный

Нахождение k-error линейной сложности бинарной последовательности при помощи точных алгоритмов для частных случаев (k=0 и k=2^m, где m — целое число)

Математика
29.06.2017
677
Поделиться
Аннотация
Данная работа посвящена исследованию задачи нахождения k-error линейной сложности бинарной последовательности. Написаны программы нахождения точного решения k-error линейной сложности для частных случаев.
Библиографическое описание
Голякова, А. А. Нахождение k-error линейной сложности бинарной последовательности при помощи точных алгоритмов для частных случаев (k=0 и k=2^m, где m — целое число) / А. А. Голякова, Р. В. Пьянков, С. А. Арефьев. — Текст : непосредственный // Молодой ученый. — 2017. — № 26 (160). — С. 3-5. — URL: https://moluch.ru/archive/160/44944/.


Данная работа посвящена исследованию задачи нахождения k-error линейной сложности бинарной последовательности. Написаны программы нахождения точного решения k-error линейной сложности для частных случаев.

Ключевые слова: бинарная последовательность, линейная сложность, k-error линейная сложность, алгоритм Берлекэмпа — Мэсси, алгоритм Стэмпа и Мартина.

Известно, что такое свойство последовательности, как линейная сложность, значимо в определении криптографически сильных последовательностей. Введем основные определения.

Дана бесконечная последовательность 𝑠 = , , ... (либо конечная последовательность 𝑠 = , , . . . ,) с элементами из поля 𝐾.

Определение 1. Говорят, что 𝑠 является линейной рекуррентной последовательностью порядка 𝐿 (𝐿 > 0), если для членов этой последовательности выполняется соотношение

для любых 𝑗 = 𝐿, 𝐿 + 1, . . . (или для любых 𝑗 = 𝐿, 𝐿 + 1, . . . , 𝑡 – 1 соответственно), где , . . . , ∈ {0, 1}.

Это уравнение называют линейным рекуррентным отношением порядка 𝐿.

Определение 2. Минимальное 𝐿, такое что 𝑠 является линейной рекуррентной последовательностью порядка 𝐿, называется линейной сложностью последовательности 𝑠.

Cуществует эффективный метод нахождения линейной сложности конечной или периодической последовательности, описанный в источнике [1], известный как алгоритм Берлекэмпа — Мэсси (Berlekamp — Massey Algorithm, BMA).

Пример. Рассмотрим 20-периодичную последовательность 𝑠 с циклом

= 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0.

Ее линейная сложность, посчитанная при помощи алгоритма Берлекэмпа-Мэсси, равна 19.

Пусть дана бесконечная двоичная последовательность 𝑠 = , , ... Через обозначим линейную сложность подпоследовательности = , , . . . ,, 𝑁 > 0.

Последовательность , , ... называется профилем линейной сложности последовательности 𝑠. В случае конечной последовательности профиль линейной сложности состоит из , , . . . ,.

Рассмотрим периодическую последовательность , введенную ранее в примере. Ее профиль линейной сложности, имеющий вид: 1, 1, 1, 3, 3, 3, 3, 5, 5, 5, 6, 6, 6, 8, 8, 8, 9, 9, 10, 10,11, 11, 11, 11, 14, 14, 14, 14, 15, 15, 15, 17, 17, 17, 18, 18, 19, 19, 19, 19, ... , изображен на Рис. 1.

Рис. 1.

Понятие линейной сложности было обобщено до 𝑘-error линейной сложности — минимальной линейной сложности последовательности, в которой по крайней мере 𝑘 элементов были изменены. Эта концепция была впервые изложена Ding, Xiao, Shan [2], которые назвали ее весовой сложностью, и получила название 𝑘-error линейной сложности в работе авторов Stamp и Martin [3]. Это свойство последовательности является важным критерием безопасности потоковых шифров и применяется к проблеме идентификации криптостойких псевдослучайных последовательностей.

Пусть 𝑠 = , , ... — бесконечная последовательность периода 𝑁 с элементами из поля 𝐾. Зафиксируем целочисленное значение 𝑘, 0 𝑘 (, . . . , ), где

(, . . . , ) — вес Хэмминга последовательности = (, . . . , ).

Определение 3. Линейная сложность с k-кратной ошибкой (или k-error линейная сложность) бесконечной периодической последовательности 𝑠 определяется как

(𝑠) = {𝐿(𝑠 + 𝑒) | 0 (, . . . , ) 𝑘},

где 𝑒 — периодическая последовательность из поля 𝐾 с периодом 𝑁.

Последовательности 𝑒 называют вектором ошибок.

Определение 4. Последовательность (𝑠), (𝑠), (𝑠), . . . называется профилем 𝑘-error линейной сложности последовательности 𝑠.

Замечание 1. В этой работе в качестве поля 𝐾 будет использоваться поле Галуа 𝐺𝐹(2) с операцией сложения по модулю 2, то есть его элементами будут двоичные последовательности длины 𝑡. Тогда вес Хэмминга некоторой последовательности 𝑠, (𝑠), будет определяться как количество единиц в этой последовательности.

Не существует общего алгоритма для вычисления профиля 𝑘-error линейной сложности произвольной последовательности над произвольным конечным полем, кроме полного перебора.

Точный алгоритм для вычисления 𝑘-error линейной сложности бинарных последовательностей с периодом , 𝑚 > 1, был предложен авторами Stamp и Martin [3]. Этот эффективный алгоритм является расширением алгоритма Games и Chan [4], предназначенным для вычисления линейной сложности таких последовательностей.

В качестве длины последовательности мы будем брать значения, равные степени 2. Такая локализация нужна для того, чтобы можно было вычислить точные значения 𝑘-error линейной сложности при помощи алгоритма Stamp и Martin. В дальнейшем тестирование будет проходить на бесконечных периодических последовательностях с данным полным периодом. Рассмотрим бинарные последовательности с периодом 𝑛 = = 32.

Начиная с 𝑘=0, будем запускать алгоритм, увеличивая значение 𝑘, пока 𝑘-error линейная сложность не станет равна нулю. Таким образом, мы получим профиль 𝑘-error линейной сложности последовательности 𝑠. Мы применяем алгоритм Stamp и Martin для выборки из 10 последовательностей периода 32 с линейной сложностью 32 (таблица 1), результаты которого представлены в таблице 2. Видно, что выполняется основное свойство 𝑘-error линейной сложности: при увеличении 𝑘 линейная сложность последовательностей уменьшается.

Таблица 1

Тестовые последовательности

Последовательность

= [0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,0,1,0,0,0,0,0]

= [1,1,0,1,1,0,0,0,1,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,1,0,1,0]

= [0,1,0,0,1,1,0,1,1,0,0,1,1,1,0,0,0,0,0,0,1,1,0,0,1,1,0,1,1,1,0,0]

= [0,1,0,0,0,0,0,0,0,1,0,1,1,0,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1]

= [0,0,1,0,1,0,1,0,1,1,0,0,0,0,1,1,1,0,0,1,1,1,0,1,1,1,0,1,1,1,0,0]

= [1,1,0,0,0,0,1,1,0,0,1,0,1,1,0,1,1,0,1,0,0,0,0,0,1,1,1,1,1,1,0,1]

= [1,0,1,1,0,1,1,1,0,1,1,1,0,0,0,0,0,1,0,0,0,1,1,1,0,1,1,0,1,0,0,1]

= [1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,0,1,1,1,1,0,0]

= [0,0,1,0,0,1,0,0,0,1,1,1,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,1,0,1,1,0]

= [0,0,0,1,0,1,0,0,0,0,1,0,1,1,0,0,1,1,0,1,1,1,1,1,0,0,0,1,0,0,0,0]

Таблица 2

Профиль k-error линейной сложности бинарных последовательностей

Профиль k-error линейной сложности бинарных последовательностей

32, 29, 29, 21, 21, 9, 9, 9, 9, 9, 9, 9, 9, 3, 3, 1, 1, 0

32, 29, 29, 20, 20, 13, 13, 10, 10, 5, 5, 4, 4, 0

32, 22, 22, 15, 15, 11, 11, 3, 3, 3, 3, 3, 2, 2, 0

32, 29, 29, 21, 21, 17, 17, 17, 17, 17, 17, 9, 9, 1, 1, 1, 1, 1, 1, 0

32, 26, 26, 23, 23, 17, 17, 17, 17, 17, 17, 9, 9, 3, 3, 1, 1, 0

32, 27, 27, 25, 25, 21, 21, 9, 9, 9, 9, 5, 5, 5, 5, 1, 1, 0

32, 25, 25, 25, 25, 21, 21, 17, 17, 7, 7, 5, 5, 2, 1, 1, 0

32, 25, 25, 25, 25, 25, 25, 9, 9, 7, 7, 5, 5, 0

32, 29, 25, 25, 25, 19, 19, 17, 17, 6, 6, 3, 3, 0

32, 29, 29, 25, 25, 17, 17, 17, 17, 17, 17, 5, 5, 2, 2, 0

Таким образом, при помощи реализованных точных алгоритмов удалось вычислить линейную сложность некоторых последовательностей, а также их k-error линейную сложность. При нахождении профиля k-error линейной сложности видно, что соблюдается основное свойство данной характеристики, о котором говорилось ранее.

Код, при помощи которого были получены приведенные выше результаты, доступен по ссылке https://github.com/cafecco/k-error-linear-complexity.

Литература:

  1. Massey J.L., Serconek S. Linear Complexity of Periodic Sequences // Lecture Notes in Computer Science. New York: Springer, 1996. V. 1109, P. 358–371.
  2. Ding C., Xiao C., Shan W. The Stability Theory of Stream Ciphers // Lecture Notes in Computer Science. Heidelberg: Springer-Verlag. 1992.
  3. Stamp M., Martin C.F. An Algorithm for the 𝑘-Error Linear Complexity of Binary Sequences with Period 2𝑛 // IEEE Transactions on Information Theory. 1993. V. 39, № 4, P. 1398–1401.
  4. Games R.A., Chan A.H. A Fast Algorithm for Determining the Complexity of a Binary Sequence with Period 2𝑛 // IEEE Transactions on Information Theory. 1983. V. 29, № 1, P. 144–146.
Можно быстро и просто опубликовать свою научную статью в журнале «Молодой Ученый». Сразу предоставляем препринт и справку о публикации.
Опубликовать статью
Ключевые слова
бинарная последовательность
линейная сложность
k-error линейная сложность
алгоритм Берлекэмпа — Мэсси
алгоритм Стэмпа и Мартина

Молодой учёный