Честный игровой автомат В данном документе приводится модель секретных вычислений на примере игрального автомата. Основным объектом является аналог логической схемы для произвольных, не обязательно бинарных данных. Ключевые слова – криптография с открытым ключом; шифрование; безопасность; I. ВВЕДЕНИЕ Любая система шифрования это вычисление некоторой функции в точке y=f(x). Причем точка x это секретное сообщение, значение y это зашифрованное сообщение, а функция f является ключом. Дешифрование это решение уравнения y=f(x). Если функцию f предъявить явно для всех желающих, то это криптография с открытым ключом. Например, в RSA функция f предъявляется явно – это возведение в степень. Если функция f не предъявляется явно, то это симметричная криптография. Например, AES, где f является суперпозицией элементарных функций, зависящих от параметров которые являются ключом. Как правило, симметричное шифрование производится быстрее. Необходимо отметить, что в силу того, что в симметричных схемах операции производятся над битами, то любая функция f является полиномиальной. Идея о том, что можно превратить симметричную криптографию в асимметричную криптографию, высказана давно [1], суть ее заключается в том, что вместо открытого ключа всем желающим посылается программа, в которой каким-то образом спрятано вычисление функции в точке. Такое направление называется White-Box криптографией, достаточно полный обзор эту тему приведен в [2]. Вычисление полиномиальной функции от нескольких переменных можно осуществлять очень многими способами, поэтому выбор некоторого метода назовем обфускацией. Усложнить вычисления можно за счет того, что если вместо функций над полями рассмотреть функции над кольцами, то в этом случае получаются новые функции, которые являются сложными с точки зрения теории сложности. Последнее соображение, которое позволяет усложнить ситуацию, заключается в том, что в выражении f(x), можно считать, что x это функция от f. Figure 1. Три шарика Занумеруем их (0,1,2). И пусть имеется некоторое устройство, которое на вход принимает два шарика, а на выходе выдает третий шарик некоторого цвета. На рисунке представлено данное устройство. Figure 2. Функциональный элемент Результирующий цвет определяется 3х3(матрицей). Например, матрицей вида таблицей 1 1 2 0 1 0 0 2 2 Номер столбца отвечает за цвет шарика пришедшего слева, номер строки за цвет шарика пришедшего справа. Номер в таблице, находящийся на пересечении строки и столбца дает цвет шарика выходящего из устройства. В общем, это в каком-то смысле “таблица умножения”. Например, для булевых функций это будет таблица истинности. В общем случае для таблицы, нет коммутативности, обратного элемента и т.п. Правильная интерпретация данной таблицы, это функция от двух переменных z = f(x,y). Для наглядности эту таблицу можно представить с помощью изображения. Например, такой. В любом руководстве по криптографии обычно приводят пример приложения криптографии с открытым ключом. Мы опишем конструкцию на примере честного игрального автомата. II. ОПИСАНИЕ МОДЕЛИ A. Примеры Опишем предлагаемый подход на примерах. Пусть имеется три шарика с некоторым свойством, в данном случае цветом. Figure 3. «Таблица умножения» Остается добавить еще один полезный элемент из теории схем – разветвитель (fun out) . На вход которому подается шарик определенного цвета, а выходе получается несколько шариков того же цвета. Figure 4. Разветвитель Теперь все готово к изготовлению “честного игрового автомата”. На изображение считается, что для всех функциональных элементов “таблицы умножения” одинаковые. позициях. Второй вопрос относится уже к классу NP задач. Таким образом, получен игральный автомат, в котором играющий имеет полную информацию об игре и конфигурации. Он может полностью просчитать все варианты и выбрать оптимальный для себя. При этом не используются никакие генераторы случайных чисел. Все детерминировано. Более того, есть прямая проверка о существовании правильного ответа, которая может быть предъявлена. Интересно подпадает ли такой автомат под закон об игровых автоматах, учитывая, что игра честная? Как правило, играющий выбирает случайную стратегию для игры. С точки зрения математики это естественно для поиска решений NP задач. C. Интерпретация автомата Теперь об интерпретации, автомата. Если число входов и выходов одинакова и разным входам соответствуют разные выходы, то это ситуация стандартной криптографии. Если число входов больше, чем число выходов, то этот автомат имитирует хэш-функцию. Если число выходов больше, чем число входов, то эта ситуация относится к кодам исправляющим ошибки. III. Figure 5. «Честный игровой автомат» Вопросом данной задачи является определить цвет шарика на выходе. В среднем человек сможет определить цвет шарика на выходе за одну минуту. Это простой пример “честного игрового автомата” со стандартным вопросом. Допускается ответ “нигде”. В России подобное устройство можно назвать “честный наперсточник”. Рассмотрим более сложный пример. МАТЕМАТИЧЕСКОЕ ОПИСАНИЕ АВТОМАТА Опишем, что делает автомат на самом деле. Автомат вычисляет значение функции многих переменных в поле вычетов по модулю три Z3. Какая функция вычисляется на Figure 5? Прежде всего, имеется три переменных, обозначим их x1, x2, x3. Всякая таблица есть функция двух переменных, обозначим ее f ( x, y ) . Следовательно, вычисляется функция f(f( x ,x ), f( x ,x )) в точке (0, 2, 0). Пользуясь 1 2 2 3 таблицей, которая для данного случая имеет вид, представленный на Figure.5, выпишем соответствующую функцию f(x,y). Так как Z3 поле, то эта функция есть многочлен от двух переменных, и его с помощью интерполяции можно выписать явно. Для этого разложим многочлен по базису Лагранжа, т.е. будем искать многочлен f(x,y) в следующем виде. f ( x , y ) a ( x 1 )( x 2 )( y 1 )( y 2 ) a ( x 1 )( x 2 ) y ( y 2 ) a ( x 1 )( x 2 ) y ( y 1 ) 00 01 02 a x ( x 2 )( y 1 )( y 2 ) a x ( x 2 ) y ( y 2 ) a x ( x 2 ) y ( y 2 ) 10 11 12 a x ( x 1 )( y 1 )( y 2 ) a x ( x 1 ) y ( y 2 ) a x ( x 1 ) y ( y 2 ) 20 21 22 Для бинарных данных это полный аналог дизъюнктной нормальной формы. Теперь для интерполяции вычисляем Figure 6. Сложный «честный наперсточник» B. Сложность вычисления Определение результирующего цвета является достаточно простым вопросом. Существенно более сложный вопрос, указать конфигурацию на входе такую, что на выходе будут красные шарики на второй и третьей f ( x, y ) . Значения в точках 24 111 4 21 2 mod( 3 ) 111 4 24 111 всевозможные значения Следовательно, матрица коэффициентов равна добавив новые полиномиальные преобразования в качестве замены для аффинных отображений. a a 112 a 00 01 02 010 a 10 a 11 a 12 a a a 022 20 21 22 Откуда получаем f ( x , y ) ( x 1 )( x 2 )( y 1 )( y 2 ) ( x 1 )( x 2 ) y ( y 2 ) 2 ( x 1 )( x 2 ) y ( y 1 ) x ( x 2 ) y ( y 2 ) 2 x ( x 1 ) y ( y 2 ) 2 x ( x 1 ) y ( y 1 ) 2 2 2 2 x ( 9 y 15 y 2 ) x ( 18 y 31 y 6 ) 2 ( 4 y 7 y 2 ) 22 2 2 2 2 9 x y 15 x y 2 x 18 xy 31 xy 6 x 8 y 14 y 4 Все вычисления по модулю 3. Можно составить окончательный ответ f ( x , y ) 2 2 2 2 2 2 9 x y 15 x y 2 x 18 xy 31 xy 6 x 8 y 14 y 4 f( x ,x ), f( x ,x )) Теперь очевидно, что f( есть 1 2 2 3 полином от трех переменных, следовательно, содержит 27 слагаемых. 1. Нетрудно проверить, что Figure 6 соответствует трем полиномам, каждый от восьми переменных. В каждом 8 полиноме 3 6561слагаемых. 2. Построение для каждой «таблицы умножения». 3. Расстановка порядка действий операций. На самом деле ситуация может быть еще более сложной. Дело в том, что если рассматривать количество шариков с количеством цветов не являющимся простым числом, то все возможные функции не сводятся к полиномиальным. Появляются сложные функции в смысле теории сложности. К ним относятся функции типа логарифма. IV. атомарной функции На выходе алгоритма получается зашифрованная функция и «таблицы умножения». Использование заранее заготовленных таблиц значений функций позволяет производить вычисление некоторые операции, быстрее, чем расчет в реальном времени. В качестве примера можно привести функции sin, cos, sqrt и т.п. Минусом данного подхода является увеличение суммарного объема программы, поэтому алгоритм можно использовать только для вычисления секретных данных. Тем самым каждой таблице соответствует полином от двух переменных и наоборот полиному от двух переменных соответствует таблица. ПРИМЕНЕНИЕ На основании предыдущих выкладок приведем несколько применений. Криптография с открытым ключом + стенография. В качестве открытого ключа предъявляется картинка. Для этих целей можно имитировать, например подход типа HFE (Hidden Field Equation). Естественно этот подход надо модифицировать, добавив варианты, использующие алгебраические расширения произвольного кольца вычетов. И Всякая картинка может описывать некоторую хэшфункцию. Для всякой базы данных, где хранятся хэши паролей, можно использовать свою хэшфункцию. В этом случае все методы, использующие грубую силу(brute-force), теряют смысл, поскольку тип функций неизвестен. Защита исходного кода компьютерных программ путем запутывания(obfuscate). Любую дискретную функцию в коде можно заменить “таблицей умножения” и получать значения функции не вычисляя её, а использовать уже заданные значение. Тем самым при дизассемблировании кода, для восстановления исходной функции придется перебрать все возможные функции с заданным количеством аргументов. Схема алгоритма: на вход алгоритму подается функция от n аргументов, и m результирующих значений. Декомпозиция функции на атомарные функции, такие как сложение, умножение, sqrt, xor и т.д. И наконец, можно использовать по прямому назначению как честный игровой автомат. СПИСОК ЛИТЕРАТУРЫ [1] [2] [3] [4] Whitfield Diffie and Martin E. Hellman. New directions in cryptography. IEEE Transactions on Information Theory, IT-22(6), 1976 Brecht WYSEUR “White-Box Cryptography”, KATHOLIEKE UNIVERSITEIT, Arenbergkasteel, B-3001 Heverlee (Belgium) 2009. Koblitz N. Algebraic aspects of cryptography . Algorithms and Computation in Mathematics 3. Springer, 1998. S.Chow, P.Eisen, H.Johnson, P.C. van Oorschot “A White-Box DES Implementation for DRM Applications, research at Cloakware Corp, 2005