Дается общее определение вероятностной поточной шифрсистемы, охватывающее все известные шифрсистемы этого класса. Приводятся примеры новых таких шифрсистем, построенных по данному определению. Обсуждается возможность построения таким образом стойких шифрсистем с нестойкими компонентами.
Ключевые слова: шифрсистема, поточная шифрсистема, вероятностная шифрсистема, стойкость
Все шифрсистемы можно разделить на два класса - вероятностные и детерминированные. В первых результат шифрования зависит не только от ключа шифрования и открытого текста, как во вторых, но и от некоторого случайного элемента - рандомизатора. Среди современных шифрсистем большинство являются детерминированными и только единицы вероятностными. Вместе с тем известно, что внесение элемента случайности в процесс шифрования позволяет получить следующие важнейшие свойства шифрсистемы [1, 2, 3]:
К недостаткам вероятностного шифрования следует отнести увеличение длины шифртекста по сравнению с длиной исходного открытого текста и уменьшение скорости шифрования.
В настоящее время на практике в качестве вероятностных поточных шифрсистем широко используются поточные режимы блочных шифров [1], в которых рандомизация шифртекста достигается за счет случайного выбора векторов инициализации, называемых также синхропосылками, и передачи их, как правило, в открытом виде вместе с криптограммой открытого текста. Другим методом рандомизации шифртекста в блочных алгоритмах является добавление в открытый текст наборов случайных букв с последующим шифрованием преобразованного текста [1,2].
В настоящей работе предпринимается попытка дать общее определение вероятностной поточной шифрсистемы, под которое подпадают все известные по литературе шифрсистемы этого класса. Следуя данному определению, можно построить много новых вероятностных поточных шифросистем. Некоторые примеры таких шифрсистем приводятся. Обсуждается также возможность построения стойких вероятностных поточных шифрсистем с нестойкими компонентами.
Под шифром всюду далее понимается любой набор из пяти объектов = (X, K, Y, E, D), где X, K, Y - множества соответственно сообщений (открытых текстов), ключей, криптограмм (шифртекстов), E и D - функции, E: K × X Y, D: K × Y X, связанные соотношением обратимости E(k, x) = y D(k, y) = x для всех x X и y Y и называемые функциями шифрования и расшифрования соответственно. Предполагается, что сообщения, ключи, криптограммы и рандомизаторы являются словами в некоторых алфавитах. Алфавит слов в некотором множестве V обозначается AV. Предполагается также, что всякий ключ k в K представляется парой взаимозависимых ключей k1, k2 так, что k = (k1, k2), где k1 является ключом шифрования: y = E(k, x) = E(k1, x), а k2 - ключом расшифрования: D(k, y) = D(k2, y) = x. В случае, если k2 вычисляется по k1 трудно (с экспоненциальной сложностью), то называется шифром с открытым ключом, в противном случае - шифром с закрытым ключом.
Рис. 1. Схема вероятностной поточной шифрсистемы PSC
Она состоит из ключевой системы K и блоков рандомизации Ra и шифрования En. Состав ключевой системы здесь не раскрывается, ее функция заключается в выработке тройки ключей ki Ki, kw Kw и kg Kg, называемых ключами соответственно инициализации, свидетельства и генератора. Блок рандомизации состоит из источника (множества) рандомизаторов R и узлов свидетельства W и инициализации h. Формально узел свидетельства является некоторым шифром W = (R, Kw, S, e', d'). Он предназначен для создания свидетельства s = e'(r, kw) S рандомизатора r R в зависимости от ключа свидетельства kw. Формально узел инициализации является некоторой функцией h: R × Ki AX × AZ × Q. Он создает для блока шифрования вектор инициализации v = (x0, z0, q0) = h(r, ki). Блок шифрования состоит из генератора ключевых потоков G, представляющего собой множество конечных автоматов Mk = (AX × AZ, Q, Г, k, k), k Kg, с входным алфавитом AX × AZ, выходным алфавитом Г, множеством состояний Q и функциями переходов и выходов соответственно k: (AX × AZ) × Q Q и k: (AX × AZ) × Q Г, и шифра C = (AX, AZ, Г, e, d).
При фиксированных ключах ki, kw и k = kg шифрсистема PSC на стороне отправителя открытый текст x = x1 ... xl X преобразует в шифртекст z = z1 ... zl Z следующим образом: выбирается случайно рандомизатор r R, вычисляются его свидетельство s = e'(r, kw), вектор инициализации (x0, z0, q0) = h(r, ki), ключевой поток = 1 ... l, где для любого t = 1, ..., l
t = k((xt-1, zt-1), qt), qt = k((xt-1, zt-1), qt-1) и zt = e(t, xt).
Пара (s, z) передается в канал связи. На стороне получателя шифрсистема PSC восстанавливает открытый текст, вычисляя последовательно r = d'(s, kw), (x0, z0, q0) = h(r, ki) и для t = 1, ..., l
t = k((xt-1, zt-1), qt), qt = k((xt-1, zt-1), qt-1) и xt = d(t, zt).
обсудить | все отзывы (0) | |
[26550; 34; 6.44] |
|
|