Советский суперкомпьютер К-340А и секретные вычисления
1. Советский суперкомпьютер
К-340А и секретные
вычисления
Кренделев Сергей Федорович
Новосибирский государственный университет
Parallels
Работа выполнена при финансовой поддержке
Минобрнауки РФ (договор № 02.G25.31.0054)
2. • Под секретными вычислениями подразумевается
обработка зашифрованных данных без их
дешифрования
• области применения таковы:
• Обработка персональных данных в облачных
сервисах в зашифрованном виде
• Мощные методы обфускации на программном и
аппаратном уровне. Защита от
Side Channel атак
• Защищенные базы данных в облаках, и на рабочем
месте.
3. • В обработке данных участвуют две
стандартные структуры
1. Отношение порядка, применяется для
поиска и сравнений. Шифрование для этой
структуры называется Шифрованием
сохраняющим порядок. (Order Preserving
Encryption – OPE)
2. Арифметические структуры. Сложение
умножение. Шифрование для этих структур
называется Гомоморфным Шифрованием (
Homomorphic Encryption).
4. С точки зрения математики в криптографии
ничего нового нет. Все конструкции давно
известны. Новым является только метод
реализации.
Очень жаль, что Эйлер, Ферма, Гаусс …. не
имели компьютеров, сейчас про числа мы бы
знали гораздо больше.
Например: если говорить про шифрование
сохраняющее порядок, то это на самом деле
речь идет о представлении монотонных
функций.
5. В докладе будем говорить, только о
гомоморфном шифровании.
Вот математическое определение.
Под гомоморфным шифрованием понимается
любое отображение : , где , кольца
произвольного вида, такое что (x+y) (x)+ (y)
(x y) (x) (y) , если уравнение (x) λ имеет
решение, то это решение единственно.
Считается, что - открытый ключ. Как решать
уравнение (x) λ это секретный ключ.
6. • Литература на эту тему фактически является
отчетами по грантам для DARPA ( Defense
Advanced Research Projects Agency —
агентство передовых оборонных
исследовательских проектов министерства
обороны США),
• IARPA ( Intelligence Advanced Research
Projects Activity — Агентство по
перспективным исследованиям
разведывательного ведомства,
национальная разведка США)
• Отчеты в компаниях IBM, Microsoft.
7. В этих работах рассматривается вариант
гомоморфного шифрования, где 2Z .
Другими словами 2:Z . Наличие
гомоморфизма позволяет секретно
вычислять любые многочлены от любого
числа переменных. Это означает, что можно
имитировать (эмулировать) стандартный
процессор с двоичным представлением
данных и операциями, связанными с
двоичной логикой. Это возможно, учитывая,
что стандартные операции в поле 2Z можно
преобразовать в логические операции or, and
(на самом деле достаточно nand).
8. Печальный факт заключается в том, что
вариант с гомоморфным шифрованием 2:Z
очень далек от практической реализации.
Проблема в росте зашифрованных данных,
особенно при умножении. В случае реализации
логических схем умножение присутствует всегда
9. • Необходимы другие подходы, как к
гомоморфному шифрованию, так и к
компьютерным системам которые собираемся
эмулировать.
• Существует вариант компьютеров основанных на
системе остаточных классов (СОК) или в
современных терминах на основе модулярной
арифметике. Такие компьютеры разрабатывались
в 50-70 годы прошлого столетия для создания
РЛС. К ним относится суперкомпьютер К-340А, а
также СуперЭВМ 5Э53, ЭВМ “Алмаз” и т.п. Все они
основаны на модулярной арифметике.
Особенностью данных компьютеров является
очень высокий параллелизм, что позволяет
делать вычисления в реальном времени.
10. Недостатки – проверка выхода за диапазон
данных, сравнение больше, меньше. С точки
зрения разработчиков этих систем –
“модулярная и двоичная арифметика
несовместимы”. Цель работы
построить систему полностью гомоморфного
шифрования, которая бы имитировала
(эмулировала) этот класс вычислительных
устройств.
11. Общие методы построения гомоморфного шифрования.
Стандартный метод построения гомоморфизмов колец проистекает из
стандартной алгебраической геометрии. Пусть R произвольное кольцо, D
произвольное множество. Рассмотрим множество функций определенных
на множестве D со значениями в R , обозначим это множество (D,R) .
Множество (D,R) является кольцом относительно поточечного
умножения. Теперь построим отображение из кольца R в кольцо (D,R) по
правилу, выбираем некоторую фиксированную точку 0x D (это секретный
ключ), для всякого α R находим функцию f D (D,R) такую, что
0f(x ) α , функция f является представлением для элемента кольца α и
объявляется как открытый ключ. Очевидно, что это гомоморфизм колец. Для
определения зашифрованного элемента достаточно вычислить 0f(x ).
В практических приложениях обычно берут конечный набор функций
1 2 rf ,f ,...,f , которые объявляются базисными, и рассматривают под кольцо в
(D,R) образованное всевозможными произведениями и суммами базисных
функций.
12. Основная модель полностью гомоморфного шифрования.
Фактически вышеперечисленные компьютеры используют полностью
гомоморфное шифрование. Согласно модулярной арифметике, если дан
набор взаимно простых чисел 1 2 km ,m ,...,m и 1 2 kM m m ...m , то строится
изоморфизм колец MZ и 1 2 km m mZ Z ... Z . То, что это изоморфизм следует
из китайской теоремы об остатках. Для ЭВМ К-340А набор модулей такой
2; 5; 23; 63; 17; 19; 29; 13; 31; 61. Первое, что приходит в голову, чтоб
сделать из модулярного подхода гомоморфное шифрование это скрыть набор
модулей 1 2 km ,m ,...,m , сделать из них секретный ключ. Однако такая система
шифрования достаточно просто вскрывается атакой с известными данными.
13. Достаточно построить полностью гомоморфное шифрование для одного
модуля, пусть этот модуль равен m. Тем самым рассматривается кольцо mZ .
Согласно алгебраической геометрии для построения гомоморфизмов
необходимо построить множество функций со значением в кольце mZ .
Выберем простейший случай, в качестве множества функций выберем
линейные функции n переменных
1 2 n 1 1 2 2 n n
i m
h(x ,x ,...,x ) α x +α x +...+α x
α Z i=1,2,...,n
Множество таких функций обозначим R . К сожалению, R является
модулем над кольцом mZ , но не является кольцом. Для того чтобы сделать из
множества R кольцо, введем набор 3
n структурных констант
ijk mγ Z i,j,k=1,2,...,n . Этот набор назовем таблицей умножения
14. Определим произведение двух функций
1 1 2 n 1 1 2 2 n n
2 1 2 n 1 1 2 2 n n
h (x ,x ,...,x ) α x +α x +...+α x
h (x ,x ,...,x ) β x +β x +...+β x
По правилу
1 1 2 n 2 1 2 n
k ijk i j
1 , 1
h (x ,x ,...,x ) h (x ,x ,...,x )
x γ α β
n n
k i j
.
Введение структурных констант позволяет снабдить множество R
структурой алгебры (системы гиперкомплексных чисел). Умножение в этой
алгебре не является, вообще говоря, коммутативным и ассоциативным.
15. Положим n
1 2 n m(u ,u ,...,u ) Z u , и определим гомоморфизм mφ:R Z по
правилу
1 2 nφ(h) h(u ,u ,...,u ) , специализация (вычисление функции в точке).
1 2 n(u ,u ,...,u )u назовем секретным ключом.
Утверждение 1. Структурные константы ijkγ можно выбрать так, что
отображение φ является гомоморфизмом колец.
Утверждение 2. Для любой секретной точки 1 2 n(u ,u ,...,u )u таблица
умножения ijkγ находится всегда, причем находится неоднозначно.
Таким образом, построено полностью гомоморфное шифрование в кольце
mZ . Секретным ключом является набор, состоящий из модуля m и точки
1 2 n(u ,u ,...,u )u . Открытым ключом является таблица умножения
ijk mγ Z i,j,k=1,2,...,n .
16. Шифрование. Всякому md Z сопоставляется функция
1 2 n 1 1 2 2 n n
i m
h(x ,x ,...,x ) α x +α x +...+α x
α Z i=1,2,...,n
Такая, что 1 2 nh(u ,u ,...,u ) d mod(m)
Дешифрование. Всякой функции 1 2 nh(x ,x ,...,x ) сопоставляется число
1 2 nd h(u ,u ,...,u ) mod(m) .
Гомоморфность данного шифрования вытекает из того факта, что множество
линейных функций с заданной таблицей умножения не выводит из класса
линейных функций.
В данном варианте не происходит увеличение размера данных при
умножении
17. • Наличие таблицы умножения позволяет
реализовать гомоморфное шифрование
для рациональных чисел.
• Данная конструкция позволяет строить
шифрование с открытым ключом из
шифрования с секретным ключом.
18. Бонус
Пример шифрования с открытым ключом.
Отметим, что всякое шифрование суть
некоторое вычисление. Возможность
вычислять секретно позволяет из секретного
ключа сделать открытый ключ.
Приведем элементарный пример, как из
шифрования Хилла сделать шифрование с
открытым ключом. Выберем модуль m=42.
Построим 2x2 матрицу обратимую по
модулю 42 .
19. 13 7
11 8
A det 181 13mod(42) A
Например
Выберем секретный ключ (7, 19) v
Для представления первого элемента матрицы необходимо решить
уравнение 7x 19y 13mod(42) решаем стандартным образом и находим
пару (9, 4) . Аналогично для других элементов матрицы находим пары
( 2, 7) , (5, 12) ,(15, 17) . Открытый ключ – матрица
(9, 4) ( 2, 7)
(5, 12) (15, 17)
20. Для получения вероятностного шифрования добавим элемент
представляющий 0. Выберем элемент вида ( 10,14) . Очевидно, что всякий
элемент вида ( 10 ,14 )k k представляет 0. Этот элемент является частью
открытого ключа.
Будем шифровать биты 0,1. Напишем представление для вероятностного
шифрования. Биту 0 сопоставим числа 31,39. В зашифрованном
представлении этим числам соответствуют пары (4, 9) ,( 23,16) . Биту 1
сопоставим числа 38,15. В зашифрованном виде им соответствуют пары
( 27,19) ,(12, 3) . Этот набор пар является частью открытого ключа.
21. В данной ситуации таблица умножения не нужна,
поэтому умножение пар получается из произведения
полиномов от двух переменных
2 2
( )( ) ( )ax by cx dy acx ad bc xy bdy
На уровне пар это выглядит так-
( , ) ( , ) ( , , )a b c d ac ad bc bd .
Сложение делается по координатам.
Шифруем. Пусть надо зашифровать пару бит (0,1). Выбираем случайно
представление. Предположим, что выбрали две пары ( 23,16) ,(12, 3) .
Модифицируем за счет представления 0 парой ( 10,14) . Из первой пары
вычли 0,ко второй добавили. Получаем пары
( 23,16) ( 10,14) ( 13,2)
(12, 3) ( 10,14) (2,11)
.
22. Модифицируем матрицу. В ней изменим элемент 22a ,
прибавив к нему представление 0.
(15, 17) ( 10,14) (5, 3)
Получаем матрицу
(9, 4) ( 2, 7)
(5, 12) (5, 3)
Теперь вычисляем
(9, 4) ( 2, 7) ( 13,2) ( 121,34, 85)
(5, 12) (5, 3) (2,11) ( 55,215, 57)
Отправляем на выход пару
( 121,34, 85),( 55,215, 57)
Это и есть шифртекст для представления (0,1)
24. В данном шифровании модуль 42 был секретом.
Можно ли сделать модуль или кратное модулю
число открытым,
мне пока неизвестно. Очевидно, что нужно брать
количество переменных
больше чем 2.
Основным фактором для стойкости, является то
обстоятельство,
что шифрование является чисто вероятностным.
Аналогично можно поступить и с вариантом RSA. При
этом придется использовать таблицу умножения.
Однако никакой проблемы связанной с
факторизацией составного числа здесь нет. Отметим,
что в данной ситуации
шифрование также является вероятностным
Например. Для учетной записи логин, пароль. Логин шифруется шифрованием сохраняющим порядок, а для шифрования пароля используется гомоморфное шифрование.
Оба шифрования должны быть вероятностными, иначе возможна атака использующая структуру данных.
Это к тому что существующее гомоморфное шифрование для использования в бинарной логике далеко от полной реализации.
Основное приложение, которое обсуждается, это гомоморфно шифровать шифрование AES. Это нужно, чтоб устранить атаку Side
Channel.
Акушинский Израиль Яковлевич, Юдицкий Давлет Исламович Машинная арифметика в остаточных классах.
Интересный момент заключается в том, что в этой книге описано как все реализовать для комплексных чисел.
Кстати это позволяет делать устройства для очень быстрой обработки цифровых сигналов.
Three Selected JASON Defense Advisory Panel/MITRE
Corporation Reports released by the Department of
Defense (DoD), 1984-1985
В разделе AD-B149675, Radical Computing, May, 1984, JSR-82-701 как раз математические основы этих компьютеров,
В том числе и комплексная арифметика остаточных классов.
Интересная дискуссия у американцев по поводу того, что хорошо бы реализовать методы модулярной арифметике на FPGA (ПЛИС) разработав их для с использованием модулярной арифметики вместо бинарной логики. Уж очень быстро все вычисляется и распараллеливается. Также обсуждалась проблема безопасности интернета вещей, для чего предлагалось реализовать SoC (System on Chip) или ARM+FPGA с секретным исполнением программ или обфускацией кода.
Любопытно отметить, что понятие гомоморфного шифрования ввели Ривест и Дертузо в 1987 году. Первые примеры были как раз основаны на модулярной арифметике. Собственно если считать что в схеме компьютера на базе модулярной арифметике модули являются закрытым ключом, то это как раз первые примеры гомоморфного шифрования.
Моя точка зрения заключается в том, что если удается провести атаку с известными или специально подобранными данными, то это означает, что система полностью скомпрометирована, а это означает слабость построенной системы.
По построению видно, что данное шифрование является вероятностным.
Для этого в проекте был построен специальный генератор случайных чисел у которого нет периодичности вообще.
Кстати он прошел все тесты NIST.