УДК 004.732
А.А. Свалов, A.A. Svalov, e-mail: svalov@omgtu.ru
Омский государственный технический университет, г. Омск, Россия
Omsk State Technical University, Omsk, Russia
ИСПОЛЬЗОВАНИЕ ЛИНЕЙНО-КОНГРУЭНТНОГО МЕТОДА ДЛЯ ФОРМИРОВАНИЯ УНИКАЛЬНЫХ ИДЕНТИФИКАТОРОВ
THE USE OF A LINEAR-CONGRUENTIAL METHOD TO GENERATE UNIQUE IDS
Предложен метод формирования уникальных идентификаторов выборкой из последовательности псевдослучайных чисел для маркирования фрагментов мультиплексированных данных.
The method of forming the unique identifiers sampling from a sequence of pseudorandom numbers for labeling the fragments of the multiplexed data.
Ключевые слова: фрагмент сообщения, линейно-конгруэнтный метод, выборка из последовательности псевдослучайных чисел.
Keywords: message fragment, the linear-congruential method, sampling from a sequence of pseudorandom numbers.
При передаче мультиплексированных данных по каналам связи в сетях TCP/IP возникает вопрос правильности сборки передаваемого сообщения на стороне получателя[1]. Даже в случае корректного приема всех фрагментов для правильной сборки исходного сообщения необходимо знать порядок соединения полученных фрагментов. Следовательно для
90
Динамика систем, механизмов и машин, № 4, 2014
реализации сеанса передачи сообщения порядок соединения фрагментов должен быть известен и отправителю и получателю.
Для реализации обмена информацией о порядке сборки сообщения между отправителем и получателем необходима нумерация фрагментов сообщения, которая и укажет порядок сборки. Очевидны несколько вариантов нумерации фрагментов:
- прямая нумерация, когда фрагменту в качестве идентификатора присваивается номер по порядку ( рисунок 1)
- косвенная нумерация, когда фрагменту в качестве идентификатора присваевается какая-либо условная величина (например - контрольная сумма), которой в файле ключа устанавливается соответствие с номером по порядку (рисунок 2)
- присвоение фрагменту вычисляемого уникального идентификатора, которому соответствует номер по порядку (рисунок 3)
При прямой нумерации недостатком является очевидность номера каждого фрагмента в случае перехвата.
Рис. 1 Прямая нумерация фрагментов
Вариант с косвенной нумерацией требует передачи информации о соответствии условной величины порядковому номеру в отдельном ключево файле, либо в составе первого фрагмента сообщения.
ксХ
ксZ
ксQ
ксZ
Файл-ключ
1=ксХ 2=ксY 3=ксО 4=ксZ
Рис. 2. Косвенная нумерация фрагментов
Для варианта с уникальным идентификатором предлагается использовать метод синхронной генерации уникальных идентификаторов у отправителя и получателя соответственно.
Рис. 3. Уникальный идентификатор
|~пТ"| |~п2~| |~п3~| |"п4]
ксХ
ксZ
ксQ
ксZ
Файл-ключ
1=ксХ 2=ксY 3=ксО 4=ксZ
91
Динамика систем, механизмов и машин, № 4, 2014
Идентификатор должен обладать следующими качествами:
- уникальностью
- отсутствием корреляционной зависимости [2]
- воспроизводимость получателем
Такими свойствами обладают последовательности псевдослучайных чисел (ППСЧ).
Для маркирования фрагментов предлагается использовать последовательные выборки из ППСЧ длиной п знаков, сделанные через интервал т (а - первая выборка, Ь - вторая выборка и т.д.), как показано на рисунке 4. В качестве ППСЧ использованы последовательности, сгенерированные генераторами псевдослучаиных чисел на основе линейно-конгруэнтных алгоритмов. Линейный конгруэнтный метод порождает статистически хорошую псевдослучайную последовательность чисел, но не является криптографически стойким. Генераторы на основе линейного конгруэнтного метода являются предсказуемыми, так как всегда образует петли, т.е. обязательно существует цикл [3].
m ■■1 m
Рис. 4. Выборка для нумерации пакетов
Линейный конгруэнтный метод заключается в вычислении членов линейной рекуррентной последовательности по модулю некоторого натурального числа m, задаваемой следующей формулой:
Xi+i = (aXi + c) mod m, (1)
где i - номер элемента в последовательности (i больше или равно 0), m - количество значений из которых формируется последовательность, a и c — некоторые целочисленные коэффициенты. Для реализации алгоритма необходимо задать четыре параметра:
- диапазон значений m, при этом m > 0
- множитель a (0 <= a <= m)
- инкрементирующее значение c (0 <= c <= m)
- начальное значение X0 (0 <= X < m)
Получаемая последовательность зависит от выбора стартового числа и при разных его значениях получаются различные последовательности случайных чисел. В тоже время, многие свойства этой последовательности определяются выбором коэффициентов в формуле и не зависят от выбора стартового числа. Однако генераторы на основе линейного конгруэнтного метода сохраняют свою полезность для некриптографических приложений, например, для моделирования. Они эффективны и в большинстве используемых эмпирических тестах демонстрируют хорошие статистические характеристики [4]. Для систем передачи мультиплексированных данных важна воспроизводимость идентификаторов на стороне получателя и сложность вычисления корреляционной зависимости между ними. Это обусловило выбор данного метода для разработки алгоритма генерации уникальных идентификаторов и позволило реализовать механизм маркирования отправляемых фрагментов сообщения уникальными идентификаторами.
Описанный выше механизм маркирования фрагментов разделенных данных (сообщения) был реализован на языке программирования С++ и работает следующим образом: на стороне отправителя с определенными параметрами генерируется последовательность псев-
92
Динамика систем, механизмов и машин, № 4, 2014
дослучайных чисел и производится выборка идентификаторов в количестве равном количеству фрагментов. Идентификаторы дописываются во фрагменты в порядке очередности. Первый фрагмент помечается и дополняется параметрами генерации. Далее происходит отправка фрагментов получателю. На стороне получателя по полученным параметрам генерируется исходная последовательность и методом сравнения выборок с идентификаторами выясняется очередность сборки фрагментов.
Таким образом, была решена проблема нумерации передаваемых фрагментов сообщений уникальными идентификаторами. Предложенный алгоритм в дальнейшем планируется использовать в системах электронной почты с передачей фрагментированных сообщений.
Библиографический список
1. Ефимов, В. И. Система мультиплексирования разнесенного ТСР/1Р-трафика [Текст] / Ефимов В.И. Файзуллин Р.Т. // Вестник Томского государственного университета. - Томск, 2005. - Вып. 14. - С. 115-118.
2. Ефимов, В. И. Нахождение потоков с общим источником методом вычисления последовательной корреляции / В. И. Ефимов // Системы управления и информационные технологии. - 2007. - Вып. 1.1(27). - С. 148-151.
3. Кнут, Д. Э. Искусство программирования. Т. 2. Получисленные алгоритмы /
Д. Э. Кнут. - 3-е изд. ; пер. с англ. : учеб. пособие. - М. : Вильямс, 2000. - 832 с.
4. Шнайер, Б. Прикладная криптография / Б. Шнайдер. - М. : Триумф, 2002. - 816 с.