Вы находитесь на странице: 1из 3

Проект РФФИ № 19-01-00294а «Построение эффективных алгоритмов для систем

кодирования и защиты информации и для задач распознавания образов» Промежуточный


отчет за 2019 год. Научно-популярное изложение результатов по 1,2,3,4,5 и 6 задачам
проекта.

1. Задача о параллельном перестроении арифметических выражений изучается с 1960-


70-х гг. Она состоит в следующем: задано выражение (формула), использующее символы
переменных, знаки операций, при необходимости скобки (для задания очередности
действий) и, возможно, константы; требуется переписать его возможно более
параллельным образом – так, чтобы дерево вычислений имело как можно меньшую
глубину. Например, выражение a∙b∙c+a∙b∙d+a∙c∙d+b∙c∙d можно переписать в виде формулы
(a+b)∙(c∙d)+(a∙b)∙(c+d) глубины 3. Длина выражения (формулы) определяется как число
символов переменных в нем. Если используются бинарные операции, то выражение
длины N, которое не может быть укорочено, нельзя перестроить в формулу с глубиной
менее чем log2 N. С другой стороны, для большинства базисов операций известно, что
любое выражение длины N в данном базисе может быть перестроено с глубиной не более
c∙log2 N (Храпченко, Брент, 1960-70-е). Например, для монотонного арифметического
базиса {+,∙} с ≤ 2 (Косараю, 1986), для более широкого базиса {+,∙,/} с ≤ 2.89 (Маллер,
Препарата, 1976). Для булева аналога первого базиса {OR,AND}, как и для стандартного
булева базиса {OR,AND,NOT} имеет место оценка с ≤ 1.73 (Храпченко, 1978). Эти
оценки, скорее всего, не являются окончательными. Естественно возникает вопрос,
насколько трудными для распараллеливания бывают выражения. До недавних пор
удавалось строить примеры таких трудных выражений только в арифметическом базисе
{+,∙}. Рекордная нижняя оценка глубины – 1.5∙log2 N для специального выражения длины
N (Копперсмит, Шибер, 1992). Для булевых базисов в силу их гибкости задача оказалась
более сложной. Впервые результат такого типа для булева монотонного базиса {OR,AND}
получен в рамках работ по настоящему проекту, а именно, построен пример выражения
длины N, которое не может быть вычислено с глубиной менее 1.06∙log2 N.

2. Вычисления в конечных полях имеют важные приложения в теории кодов,


исправляющих ошибки, и в криптографии, причем в первом направлении используются
поля малого порядка, а во втором (в особенности в публичной криптографии) - большого.
Порядком поля называется число его элементов. Известно, что порядком может быть
только степень простого числа (упомянутая степень называется размерностью поля,
которая может быть равна и единице), причем по порядку поле определяется однозначно с
точностью до изоморфизма (т.е, грубо говоря, системы обозначений его элементов). Над
элементами поля можно выполнять все арифметические операции, как и над
рациональными числами, при этом выполняются все свойства этих операций (результат не
зависит от порядка и т.п.) Если порядок равен степени двойки, элементы поля естественно
представлять строками из нулей и единиц (битов). В общем случае тоже так можно
делать, предварительно представив в таком виде числа от нуля до p-1, если порядок равен
степени простого числа p. В этих представлениях любую операцию над элементами поля
можно выразить через элементарные операции над битами (умножение и сложение по
модулю два, т.е. сложение, при котором 1+1=0). Число таких операций называется
битовой сложностью операции. Если их реализовывать логическими функциональными
схемами, элементы которых реализуют конъюнкцию, т.е. просто умножение битов, и
сумму по модулю два, то битовая сложность совпадает с числом элементов такой схемы.
Если операции в поле реализовывать компьютерными программами, то битовая
сложность пропорциональна времени работы программы. Операция сложения - самая
простая, умножение сложнее, и деление, а также его частный случай - инвертирование,
т.е. вычисление элемента 1/x, еще сложнее. Но еще более сложными являются операции
извлечения квадратных и кубических корней, используемые в криптографии на
эллиптических кривых, а также в кодировании, например для решения уравнений малых
степеней (к тому же корни уравнений не всегда принадлежат самому полю, иногда они
лежат в его расширении, которое является полем более высокого порядка). Однако
удалось для некоторых типов полей найти алгоритмы извлечения корней и решения
уравнений степени не выше 4, сложность которых по порядку больше сложности
операции умножения в рассматриваемом поле только на логарифм размерности поля.

3. Задача умножения плотных матриц большого растущего размера может встретиться


в очень многих приложениях. Кроме криптографии это могут быть задачи
математического моделирования в экономике, механике, биологии, органической химии о
др. С другой стороны, технические характеристики современных процессоров постоянно
улучшаются. Уже сейчас современные процессоры имеют многоуровневую кэш память
(L1, L2, L3), объем которой постоянно растет. Самые высокопроизводительные
процессоры сегодня имеют кэш память соответственно по уровням 1, 8, 62 Mb. Чтобы при
умножении матриц была возможность использовать этот объем в алгоритм Копперсмита
1995 года введен новый параметр, позволяющий за счет увеличения объема
предварительных вычислений, и соответственно объема хранения их результатов,
ускорить работу всего алгоритма в целом. Поскольку изменение данного параметра
требует скачкообразного раста кэш памяти, то его прикладные возможности стали
реальными только сейчас. Появилась возможность за счет изменения этого параметра
уменьшить время на матричное умножение вдвое. При этом также вдвое уменьшится
время работы всех алгоритмов, для которых матричное умножение является базовой
операцией, то есть ее сложность входит в главный член оценки сложности всего
алгоритма. Например в задачах целой факторизации и дискретного логарифмирования
применение рассматриваемого метода приводит к тому, что главный член в оценке
сложности зависит только от процедуры построения пространства Крылова, то есть, в
конечном счете, от умножения разреженной матрицы на вектор. Тем самым мы приходим
к естественной границе применимости Ланцошеподобных методов.

4. Условия безопасности и вскрытия (k,m)-схемы Блома. Изучается исторически первая


схема предварительного распределения ключей, часто используемая и в настоящее время,
 схема Р. Блома. Она задается симметрическим многочленом f(x1,x2,...,xk) степени m по
каждой из k переменных над полем Fp большой характеристики. Коэффициенты этого
m k 
многочлена секретны. Их число равно  . В качестве идентификаторов n
 m 
пользователей компьютерной сети выбираются n различных элементов r1,...,rn поля. Это
назначение общеизвестно, но защищено от модификации. Каждый пользователь i в
качестве своего предварительного ключаa получает по секретному каналу коэффициенты
многочлена f(ri,x2,...,xk), i=1,...,n. Любые k пользователей, образующих группу P могут
вычислить единый ключ KP=f(r1,r2,...,rk) конференц-связи для этой группы. В то же время
любые m пользователей с идентификаторами r’i , i=1,...,m, объединив свои
предварительные ключи f(r’i,x2,...,xk), не смогут получить никакой информации о ключе K
конфиденциальной связи других k пользователей с идентификаторами ri , i=1,...,k.
Действительно, для любого возможного ключа K*, этих k пользователей неявно можно
указать симметрический многочлен f*(x1,x2,...,xk), такой, что f*(r1,r2,...,rk)=K*, в то время.
как f*(r’i,x2,...,xk) =f(r’i,x2,...,xk), i=1,...,m. Этот многочлен f*(x1,x2,...,xk) можно определить1
так:

1
1. Формула получена обобщением формулы для (2,m)-схемы Блома из лекции
Stinson D. Overview of Attack Models and Adversarial Goals for SKDS and KAS. CS 758, http:
//cgi.di.uoa.gr/~halatsis/Crypto/Bibliografia/Crypto_Lectures/Stinson_lectures/lec09.pdf (дата обращения 26 июня 2019)
f*(x1,x2,...,xk) =f(x1,x2,...,xk) +
(𝑥1 − 𝑟𝑖′ )(𝑥2 − 𝑟𝑖′ ) … (𝑥𝑘 − 𝑟𝑖′ )
+(𝐾 ∗ − 𝐾) ∏
(𝑟1 − 𝑟𝑖′ )(𝑟2 − 𝑟𝑖′ ) … (𝑟𝑘 − 𝑟𝑖′ )
1𝑖𝑚

Этим определяется безусловная (не зависящая от вычислительных ресурсов крипто


аналитика) безопасность (k,m)-схемы Блома относительно компрометации
предварительных ключей m абонентов. При этом на основе безызбыточного
представления симметрических многочленов показано, что для вскрытия (k,m) схемы
Блома знание всех (𝑘 + 𝑚 − 1) (𝑚 + 1) коэффициентов m + 1 скомпрометированных
𝑚
многочленов избыточно: из них достаточно использовать только (𝑘 + 𝑚) коэффициентов
𝑚
– ровно столько, сколько используется для безызбыточного представления исходного
многочлена. Эти коэффициенты используются для построения последовательности
𝑘+𝑚−1
из ( ) СЛАУ рангов не выше m + 1, последовательным решением которых
𝑚
восстанавливаются коэффициенты исходного многочлена.

5. Рассмотрен достаточно популярный современный метод автоматической


классификации – линейный метод опорных векторов. Суть линейного метода опорных
векторов заключается в следующем: с помощью автоматического обучения
рассчитываются параметры классификатора, на следующем этапе классификатор
классифицирует объекты, которые не использовались при расчёте параметров. Для
хранения параметров классификатора в памяти вычислительной системы мы предлагаем
два способа: способ, основанный на экономном представлении совпадающих параметров;
и способ, основанный на экономном представлении наиболее часто встречающихся в
классификаторе параметров. В экспериментах с коллекциями новостных текстов Reuters-
21578 и 20Newsgroups мы продемонстрировали, как с помощью разработанных способов
значительно сократить требуемый объём памяти вычислительной системы. Результаты
нашего исследования будут полезны, если будет поставлена задача сжать классификатор,
то есть использовать его при вычислениях в ограниченных по памяти вычислительных
системах, например, на Интернет-хостингах или небольших перспективных процессорах.

6. В дистанционный электронный образовательный ресурс «Алгебраический


процессор «НИУ «МЭИ» добавлена возможность выполнения программ для системы
компьютерной алгебры Sage. Данный ресурс используется для преподавания цикла
дисциплин по современной компьютерной алгебре и методам защиты информации в
Национальном исследовательском университете «МЭИ», в рамках которых студенты
изучают свойства и алгоритмы конечных групп, колец, полей, групп точек эллиптических
кривых и основанных на этих алгебраических структурах алгоритмы и протоколы,
используя современные средства компьютерной алгебры с открытым кодом. Sage
интегрирует в себе множество существующих математических пакетов и систем, таких
как: Maxima, GiNaC, FriCAS (для математического анализа), Gap (для теории групп и
комбинаторики), PARI/GP, NTL и FLINT (для теории чисел), SINGULAR (для
полиномиальных вычислений с акцентом на коммутативную и некоммутативную алгебру,
алгебраическую геометрию и теорию особенностей), SymPy (для символьных
вычислений), SciPy и GSL (для численных методов). Интеграция Sage в алгебраический
процессор позволяет предоставить совместный доступ удаленных пользователей к
доступным программным средствам для моделирования многосторонних вычислений при
исполнении криптографических протоколов. Особое внимание уделено
работоспособности приложения в случаях недоброкачественного его использования
(ограничению доступа к системным ресурсам, изоляции пользователей, контроля
переполнения памяти и зависаний), а также освобождению неиспользуемых ресурсов.