при хранении и передаче, но не при обработке: как правило, данные обрабатываются, а программы выполняются в явном, незащищенном виде. Именно во время обработки информация наиболее уязвима для хакеров, программных закладок («троянских коней») и вирусов. Для обеспечения комплексной защиты информации при ее компьютерной обработке автором разработана стохастическая информационная технология, представленная в работах [1, 2, 3].
Принципиально новым элементом в данной технологии является возможность обрабатывать закодированную символьную информацию, не раскодируя ее, причем кодирование основано на стохастическом преобразовании команд и данных, и коды периодически меняются в ходе эксплуатации программы. Благодаря этому гарантируется (с любой заданной вероятностью ошибки) выявление попыток искажения информации и ее коррекция.
Стохастическое кодирование может применяться не только при реализации информационно-логических процедур, но и для защиты числовой информации при выполнении арифметических действий.
Краткое описание метода
Для чисел, с которыми выполняются арифметические действия, используется не двоичное представление, как в обычной реализации, а символьное (двоично-десятичное). Сразу после ввода в компьютер числовая информация подвергается стохастическому преобразованию и далее хранится, передается и обрабатывается только в закодированном виде: при вычислениях используются стохастические таблицы сложения, умножения и вычитания преобразованных чисел, находящиеся в оперативной памяти компьютера.
Во время обработки сами преобразованные числа и таблицы, по которым производятся вычисления, периодически случайным образом изменяются. Степень защищенности числовой информации и арифметических действий с ней определяется степенью защищенности и размерностью стохастических таблиц, используемых для кодирования и раскодирования данных.
Кодирование чисел
Непосредственно после ввода числа в компьютер вправо и влево от запятой в нем последовательно выделяются группы цифр по m разрядов (в неполные группы добавляется нужное число нулей). Затем каждая группа заменяется на уникальный стохастический индекс длиной L битов по кодовой таблице, содержащей такие индексы для всех чисел от 0 до 99...9 (m раз), и число превращается в последовательность случайных индексов.
Например, число 125627,829 при использовании таблицы, фрагмент которой показан на рис. 1, будет преобразовано в Iξ+ Iξ12 Iξ56 Iξ27 Iξ, Iξ82 Iξ90
Чтобы можно было представить все числа различными индексами, m и L должны удовлетворять соотношению 2L-1≥10m или L≥log2(10m+1)~mlog210
В нашем примере m=2, а L=8.
Рис. 1. Фрагмент стохастической таблицы. |
||||||||||||||||||||||||||||||||||||||||||
|
Выбор значения m определяется требуемым уровнем защищенности числовой информации. Кодовую таблицу можно заполнить N=(10m)! способами, следовательно, при m=1 для раскодирования истинных значений чисел потребуется перебор 10! (3 628 800) при m=2 — N=(102)!>10100, а при m=3 — N=(103)!>>101000 вариантов. Тем самым, при m=1 степень защищенности (учитывая возможности современной вычислительной техники) низкая, в то время как при значениях начиная с 2 она вполне достаточна [4, 5]. Оптимальное соотношение защищенности и накладных расходов достигается при m=2.
Сложение и умножение закодированных чисел производится по таблицам размером 10m х 10m. Столбцы и строки такой таблицы соответствуют стохастическим индексам закодированных чисел, а в пересечении содержится результат операции, записанный также в индексном виде. На рис. 2 приведен фрагмент стохастической таблицы умножения при m=2.
Для вычитания используется таблица размером 10m х 2 х 10m, поскольку необходимо учитывать перенос старшего разряда из других индексов при отрицательном результате вычитания.
При повышении значения m необходимый объем памяти для таблиц резко возрастает. Например, при m=2 он составит около 4 х 104 байт, а при m=3 — уже около 5 х 106 байт. Правда, таблицы размером 10m х 10m и 10m х 2 х 10m могут быть сведены к m таблицам размером 10 х 10 или 10 х 20. Но при этом из-за усложнения кодирования и реализации вычислений значительно возрастает время обработки.
Рис. 2. Фрагмент стохастической таблицы умножения | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Реализация вычислений
Для выполнения сложения, вычитания и умножения каждое число представляется в виде суммы индексов с учетом разрядности индексируемых групп цифр. Затем по соответствующей таблице определяется результат операции для каждого разряда; поразрядные результаты складываются с использованием таблицы сложения, и таким образом формируется общий результат в индексном представлении. На рис. 3 приведен пример умножения двух чисел по таблице, показанной на рис. 2. Деление выполняется «столбиком» с применением таблиц умножения, вычитания и сложения. Единственное отличие от обычного алгоритма то, что в качестве разрядов выступают индексы, заменяющие группу из m цифр.
Рис. 3. Умножение закодированных чисел | |
---|---|
|
Таким образом, результатом арифметических операций с кодированными числами оказываются точно так же закодированные числа; разрядность чисел может быть любой. Перед выдачей результата пользователю он преобразуется в обычное символьное представление по таблице, обратной таблице кодирования.
Отметим, что время выполнения вычислений определяется количеством обращений к стохастическим таблицам и временем выполнения процедур типа регистр — память, а значит, находится в линейной зависимости от разрядности числа. Конечно, оно значительно выше, чем при использовании традиционной технологии, но при аппаратной реализации описанной системы в специальном устройстве, подключаемом к типовому компьютеру, разрыв значительно уменьшится. Программная же реализация может эффективно применяться в банковских, бухгалтерских и других финансовых системах для выполнения арифметических действий с числовой информацией, имеющей повышенный уровень конфиденциальности.
Литература
- Насыпный В.В. Развитие теории построения открытых систем на основе информационной технологии искусственного интеллекта. М., 1994, 248 с.
- Насыпный В.В. Синтез систем обработки информации с защитой от программных закладок и вирусов. М., 1997, 28 с.
- Насыпный В.В. Комплексная защита компьютерных систем. «Мир ПК», 1998 г., № 4, с. 68—69.
- Диффи У., Хэллмэн М.Э. Защищенность и имитостойкость: Введение в криптографию. ТИИЭР, т. 67, 1979 г., № 3, с. 71—109.
- Теория и практика обеспечения информационной безопасности/Под ред. П.Д. Зегжда, М., 1996, 126 с.