SlideShare a Scribd company logo
1 of 14
Обработка приватных
данных на публичных
вычислительных сетях
Введение
 Вычислительные системы прошли путь от мэйнфрэймов к
персональным компьютерам, и теперь совершают
обратный путь - от персональных компьютеров к
мэйнфрэймам.
 Массово предлагаются услуги для всех желающих по
выполнению вычислений на высокопроизводительных
компьютерах, реализованных в виде облачных и других
систем, от компаний предоставляющих подобные сервисы
в публичных сетях.
 Однако использование публичных вычислительных сетей
несёт для их потребителей риски
 Утечки приватных данных в процессе их обработки на
внешнем устройстве или в процессе передачи данных;
 Возможность наличия искажений в получаемых
результатах вычислений на внешнем устройстве или в
процессе передачи данных. При этом, даже
многократный повтор вычислений с одними и теми же
исходными данными не позволит обнаружить наличие
этих искажений если они носят системный, а не
случайный характер.
 Мы не будем рассматривать вопросы утечки приватных
данных или искажений в результатах вызванных в
процессе передачи данных, оставляя эту тему
классической криптографии по обеспечению закрытого
канала связи требуемой степени надёжности.
 Рассмотрим вопрос, когда сам внешний вычислитель
может подвержен компрометации, и на нём самом
возможны и анализ приватных данных в процессе
обработки, и искажение результатов вычислений, и
постараемся решить задачу, которую сформулируем
следующим образом:
 Требуется обеспечить механизм обработки приватных
данных на внешнем вычислительном устройстве,
который, при сохранении возможностей использования
типовых алгоритмов, позволил бы сделать невозможным
(то есть достаточно сложным) выявление значений
приватных данных, а также позволял бы выявлять и
исправлять возможные искажения в результатах
вычислений, вносимые случайно или системно.
 Поскольку, несомненно, потребуется некоторая
дополнительная обработка заданий и результатов, на
стороне потребителя, то желательно, чтобы
сложность(цена, время) такой обработки была
значительно меньше сложности(цены, времени) решения
основной задачи – иначе у потребителя нет смысла для
проведения вычислений на внешних публичных сетях.
 Также, несомненно, может возрасти общее количество
вычислений, отдаваемых на внешний вычислитель,
поскольку любое внесение избыточности в исходные
данные, либо с целью исключения их однозначного
определения, либо с целью контроля за их
достоверностью, несомненно потребует обработки
большего количества информации. Однако, поскольку
внешние вычислительные мощности могут быть
увеличены только за счёт большей оплаты со стороны
потребителя, то разумное увеличение стоимости не
должно являться решающим фактором при выборе
алгоритма механизма защиты данных.
Термины и обозначения
 Обозначим формулой 𝑓 𝑥 = 𝑓0 ? постановку задачи решения
математического уравнения.
 В качестве отправной точки для рассуждений выберем задачу решения
системы линейных уравнений
 Обозначим формулой (𝑥0 + 𝜀 𝑥): 𝑓 𝑥0 + 𝜀 𝑥 = 𝑓0 принятие в качестве
решения задачи значения (𝑥0 + 𝜀 𝑥) , где 𝑥0 - истинное решение задачи, а
𝜀 𝑥 - искажение добавленное к истинному решению задачи.
Открытая модель с доверием
𝑓 𝑥 = 𝑓0?
𝑥0 + 𝜀 𝑥
Закрытая модель без доверия
𝑔 𝑥 = 𝑔0 ?𝑓 𝑥 = 𝑓0?
𝑦0 + 𝜀 𝑦𝑥0 + 𝜀 𝑥
Постановка задачи
Требуется найти преобразования задачи 𝐸 𝑘 и преобразование найденного решения 𝐷 𝑘, такие
что
𝑓 𝑥 = 𝑓0 ?
𝐸 𝑘
𝑔 𝑥 = 𝑔0 ?
(𝑦0 + 𝜀 𝑦): 𝑔 𝑦0 + 𝜀 𝑦 = 𝑔0
𝑦0 + 𝜀 𝑦
𝐷 𝑘
𝑥0 + 𝜀 𝑥
(𝑥0 + 𝜀 𝑥): 𝑓 𝑥0 + 𝜀 𝑥 = 𝑓0
где
𝑓: 𝑅 → 𝑅
𝑔: 𝐶 → 𝐶
При этом должна сохраняться экономическая/временная/или другая выгода от выполнения
вычислений на внешнем вычислителе
𝑝𝑟𝑖𝑐𝑒 𝑓 𝑥 = 𝑓0?
𝐸 𝑘
𝑔 𝑥 = 𝑔0 ? + 𝑝𝑟𝑖𝑐𝑒 𝑦0 + 𝜀 𝑦
𝐷 𝑘
𝑥0 + 𝜀 𝑥 ≪ 𝑝𝑟𝑖𝑐𝑒(𝑓 𝑥 = 𝑓0? )
Решение системы линейных уравнений
 Рассмотрим задачу решения системы линейных уравнений 𝑎𝑥 𝑇 = 𝑏 𝑇, где
 𝑎 и 𝑏 - исходные данные - матрицы с элементами из поля R
 𝑥 – искомые данные – матрица с элементами из поля R
 Решение представляет собой множество, являющееся линейной
комбинацией векторов фундаментальной системы решений.
 Для упрощения, считаем, что размеры всех элементов матричного
уравнения согласованы между собой.
 Полагаем, что сложность вычисления обратной матрицы к произвольной
матрице на локальном компьютере значительно больше сложности
умножения или сложения двух матриц.
 Также отметим, что множество матриц с элементами из поля R с операциями
умножения и сложения являются ассоциативным кольцом с делителями нуля.
Линейные преобразования системы
линейных уравнений
 𝑎𝑥 𝑇 = 𝑏 𝑇? → 𝑈𝑎𝑥 𝑇 = 𝑈𝑏 𝑇? → 𝑎′𝑥′ 𝑇
= 𝑏′ 𝑇
? |𝑎′ = 𝑈𝑎, 𝑥 𝑇 = 𝑥′ 𝑇, 𝑏′ 𝑇 = 𝑈𝑏 𝑇
 𝑎𝑥 𝑇 = 𝑏 𝑇? → 𝑎𝑉𝑉−1 𝑥 𝑇 = 𝑏 𝑇? → 𝑎′𝑥′ 𝑇 = 𝑏′ 𝑇? |𝑎′ = 𝑎𝑉, 𝑥 𝑇 = 𝑉𝑥′ 𝑇, 𝑏′ = 𝑏
 𝑎𝑥 𝑇 = 𝑏 𝑇? → 𝑎(𝑥 − 𝑧) 𝑇= 𝑏 𝑇 − 𝑎𝑧 𝑇? → 𝑎′𝑥′ 𝑇
= 𝑏′ 𝑇
? | 𝑎′ = 𝑎, 𝑥 𝑇 = 𝑥′ 𝑇 + 𝑧 𝑇,
𝑏′ 𝑇
= 𝑏 𝑇
− 𝑎𝑧 𝑇
Алгоритм защиты вычислений
решения системы линейных уравнений
 Пусть дано уравнение 𝑎𝑥 𝑇
= 𝑏 𝑇
 Сформируем обратимые матрицы U и V и вектор z из случайных величин
 Имеем 𝑎𝑥 𝑇 = 𝑏 𝑇? → 𝑈𝑎𝑉𝑉−1(𝑥 − 𝑧) 𝑇= 𝑈(𝑏 𝑇 − 𝑎𝑧 𝑇)? → 𝑎′𝑥′ 𝑇
= 𝑏′ 𝑇
? |𝑎′ = 𝑈𝑎𝑉, 𝑥 𝑇 =
𝑉𝑥′ 𝑇
+ 𝑧 𝑇
, 𝑏′ 𝑇
= 𝑈(𝑏 𝑇
− 𝑎𝑧 𝑇
)
 То есть
 Вычисляем на локальном вычислителе 𝑎′
= 𝑈𝑎𝑉, 𝑏′ 𝑇
= 𝑈(𝑏 𝑇
− 𝑎𝑧 𝑇
)
 Передаём на внешний вычислитель задачу решения уравнения 𝑎′𝑥′ 𝑇
= 𝑏′ 𝑇
?
 Используя полученное решение уравнения 𝑎′𝑥′ 𝑇
= 𝑏′ 𝑇
?, вычисляем на локальном
вычислителе 𝑥 𝑇
= 𝑉𝑥′ 𝑇
+ 𝑧 𝑇
 Проверка истинности найденного решения может быть выполнена явной
подстановкой найденного решения в формулу системы линейных уравнений
𝑎𝑥 𝑇
= 𝑏 𝑇
Абстрактный вычислитель
 Согласно теории алгоритмов, современные технические устройства, при
решении задач обработки данных могут быть представлены в виде конечного
абстрактного вычислителя, полностью имитирующем вычисление на любом
техническом устройстве. Модели таких абстрактных вычислителей были
предложены Тьюрингом, Марковым и другими.
 Будем использовать запись y=x*F для обозначение работы этих вычислителей
над исходными данными x по алгорифму F где y – искомые данные.
 Последовательное применение нескольких алгорифмов (программа) F1,…,Fn
при обработке данных будем обозначать как y=x*F1*…*Fn
 Теория алгоритмов, говорит нам, что любой алгоритм (или композиция алгоритмов)
имеют эквивалентные алгоритмы, а значит, можно составить алгорифм “уменьшения”
количества шагов программы или алгоритм “обфукации” программы для усложнения
анализа кода программы, используя запись программы F1*…*Fn как исходные данные для
обработки.
Публичный абстрактный вычислитель
 Пусть требуется выполнить вычисления 𝑦 = 𝑥 ∗ 𝐹 над исходными данными
𝑥 по алгорифму 𝐹 где 𝑦 – искомые данные.
 При передачи задания на внешний вычислитель мы сообщаем этому
вычислителю исходные данные 𝑥 и алгорифм 𝐹, получая в ответ искомые
данные 𝑦
 В тоже время очевидно, что существуют алгорифмы, обладающие
свойствами 𝑥 = 𝑥 ∗ 𝐸 ∗ 𝑈 и 𝑦 = 𝑦 ∗ 𝑉 ∗ 𝐷 для любых допустимых 𝑥 и 𝑦
 Примеры таких алгорифмов известны из задач криптографии и задач
восстановления искажённых данных (коды исправляющие ошибки)
 А значит любая задача вида 𝑦 = 𝑥 ∗ 𝐹 может быть заменена на задачу вида
 𝑦 = 𝑥 ∗ 𝐸 ∗ 𝑈 ∗ 𝐹 ∗ 𝑉 ∗ 𝐷 = (𝑥 ∗ 𝐸) ∗ (𝑈 ∗ 𝐹 ∗ 𝑉) ∗ 𝐷 = (𝑥 ∗ 𝐸) ∗ 𝐺 ∗ 𝐷, где 𝐺 = 𝑈 ∗ 𝐹 ∗ 𝑉
Алгоритм защиты вычислений на
публичном вычислителе
 Пусть требуется выполнить вычисления 𝑦 = 𝑥 ∗ 𝐹 над исходными данными x по алгорифму 𝐹 где
𝑦 – искомые данные.
 Возьмём произвольные алгорифмы, обладающие свойствами 𝑥 = 𝑥 ∗ 𝐸 ∗ 𝑈 и 𝑦 = 𝑦 ∗ 𝑉 ∗ 𝐷 для
любых допустимых 𝑥 и 𝑦, и такие, что алгорифмы 𝐸 и 𝐷 не являются слишком затратными для
вычисления на локальном вычислителе.
 Составим алгорифм 𝐺 = 𝑈 ∗ 𝐹 ∗ 𝑉 и используя алгорифм “уменьшения” количества вычислений
или алгоритм “обфукации” преобразуем его к программе 𝐺’ используя локальный вычислитель.
 Вычислим на локальном вычислителе 𝑥’ = 𝑥 ∗ 𝐸
 Выполним на внешнем вычислителе задачу 𝑦’ = 𝑥’ ∗ 𝐺’, сообщив на внешний вычислитель 𝑥’ в
качестве исходных данных, программу 𝐺’ и получив в ответ значение 𝑦’.
 Вычислим на локальном вычислителе 𝑦 = 𝑦’ ∗ 𝐷
 Использование алгорифмов 𝐸 и 𝐷 , полученных из теорий криптографии и восстановления
искажённых данных позволит обеспечить защиту приватных данных переданных на внешний
вычислитель или полученных от внешнего вычислителя, а также детектировать факты
искажения результатов обработки данных на внешнем вычислителе.
Литература
 Кудрявцев В.В, Алешин С. В., Подколзин А. С. Введение в теорию автоматов. М.: Наука,
1985.
 Мальцев А. И. Алгоритмы и вычислимые функции. М.: Наука, 1986.
 МакВильмс Ф. Дж., Слоэн Н. Дж. Теория кодов, исправляющих ошибки. М.: Связь, 1979
 Марков А. А. Введение в теорию кодирования. М.: Наука, 1982
 Карманов В.Г. Математическое программирование. М.: Наука, 2000.
 Турчин В.Ф. Язык программирования РЕФАЛ. Интернет-проект http://www.refal.net/
 Иван Кочуркин @KvanTTT Математические выражения в .NET (разбор,
дифференцирование, упрощение, дроби, компиляция). Интернет-публикация
http://habrahabr.ru/post/150043/
 @JediPhilosopher Как компьютер сам свой код улучшал, или программируем процесс
программирования. Интернет-публикация http://habrahabr.ru/post/265195/
dmitry@protopopov.ru
Спасибо за внимание
 Контакты
 Дмитрий Протопопов, Москва, Россия
dmitry@protopopov.ru
+7 916 6969591
 Интернет-адрес проекта: https://github.com/dprotopopov/сс
dmitry@protopopov.ru

More Related Content

What's hot

Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства" Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства" Technosphere1
 
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиMikhail Kurnosov
 
Основы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторыОсновы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторыTheoretical mechanics department
 
Лекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмовЛекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмовMikhail Kurnosov
 
Представление информации в компьютере
Представление информации в компьютереПредставление информации в компьютере
Представление информации в компьютереAndrey Dolinin
 
Лекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировкиЛекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировкиMikhail Kurnosov
 
Программирование линейных алгоритмов
Программирование линейных алгоритмовПрограммирование линейных алгоритмов
Программирование линейных алгоритмовAndrey Dolinin
 
Григорий Демченко, Универсальный адаптер
Григорий Демченко, Универсальный адаптерГригорий Демченко, Универсальный адаптер
Григорий Демченко, Универсальный адаптерSergey Platonov
 
Лекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовЛекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовMikhail Kurnosov
 
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Technosphere1
 
Алгоритмы и языки программирования
Алгоритмы и языки программированияАлгоритмы и языки программирования
Алгоритмы и языки программированияTheoretical mechanics department
 
Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining" Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining" Technosphere1
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовMikhail Kurnosov
 
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Technosphere1
 
Лекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыЛекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыMikhail Kurnosov
 

What's hot (20)

Python
PythonPython
Python
 
Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства" Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства"
 
Основы MATLAB. Программирование
Основы MATLAB. ПрограммированиеОсновы MATLAB. Программирование
Основы MATLAB. Программирование
 
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
 
Основы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторыОсновы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторы
 
Лекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмовЛекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмов
 
Основы SciPy
Основы SciPyОсновы SciPy
Основы SciPy
 
Представление информации в компьютере
Представление информации в компьютереПредставление информации в компьютере
Представление информации в компьютере
 
Лекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировкиЛекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировки
 
Основы Python. Функции
Основы Python. ФункцииОсновы Python. Функции
Основы Python. Функции
 
Программирование линейных алгоритмов
Программирование линейных алгоритмовПрограммирование линейных алгоритмов
Программирование линейных алгоритмов
 
Tricky Java Generics
Tricky Java GenericsTricky Java Generics
Tricky Java Generics
 
Григорий Демченко, Универсальный адаптер
Григорий Демченко, Универсальный адаптерГригорий Демченко, Универсальный адаптер
Григорий Демченко, Универсальный адаптер
 
Лекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовЛекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмов
 
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
 
Алгоритмы и языки программирования
Алгоритмы и языки программированияАлгоритмы и языки программирования
Алгоритмы и языки программирования
 
Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining" Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining"
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмов
 
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана"
 
Лекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыЛекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмы
 

Viewers also liked

Educative Mobile Apps
Educative Mobile AppsEducative Mobile Apps
Educative Mobile AppsDrawer4Life
 
аппроксимация функции нескольких переменных
аппроксимация функции нескольких переменныхаппроксимация функции нескольких переменных
аппроксимация функции нескольких переменныхDmitry Protopopov
 
фурье вычисления для сравнения изображений
фурье вычисления для сравнения изображенийфурье вычисления для сравнения изображений
фурье вычисления для сравнения изображенийDmitry Protopopov
 
корзинная сортировка
корзинная сортировкакорзинная сортировка
корзинная сортировкаDmitry Protopopov
 
фурье обработка цифровых изображений
фурье обработка цифровых изображенийфурье обработка цифровых изображений
фурье обработка цифровых изображенийDmitry Protopopov
 
метод широкополосного сигнала
метод широкополосного сигналаметод широкополосного сигнала
метод широкополосного сигналаDmitry Protopopov
 
битоническая сортировка
битоническая сортировкабитоническая сортировка
битоническая сортировкаDmitry Protopopov
 
чётно нечётная сортировка
чётно нечётная сортировкачётно нечётная сортировка
чётно нечётная сортировкаDmitry Protopopov
 
сортировка слияниями
сортировка слияниямисортировка слияниями
сортировка слияниямиDmitry Protopopov
 
Relational operators In C language (By: Shujaat Abbas)
Relational operators In C language (By: Shujaat Abbas)Relational operators In C language (By: Shujaat Abbas)
Relational operators In C language (By: Shujaat Abbas)Shujaat Abbas
 
Introduction to photoshop (By:Shujaat abbas)
Introduction to photoshop (By:Shujaat abbas)Introduction to photoshop (By:Shujaat abbas)
Introduction to photoshop (By:Shujaat abbas)Shujaat Abbas
 
Adope Photoshop Tool Bar (By: Shujaat Abbas)
Adope Photoshop Tool Bar (By: Shujaat Abbas)Adope Photoshop Tool Bar (By: Shujaat Abbas)
Adope Photoshop Tool Bar (By: Shujaat Abbas)Shujaat Abbas
 

Viewers also liked (16)

C activities
C activitiesC activities
C activities
 
Educative Mobile Apps
Educative Mobile AppsEducative Mobile Apps
Educative Mobile Apps
 
аппроксимация функции нескольких переменных
аппроксимация функции нескольких переменныхаппроксимация функции нескольких переменных
аппроксимация функции нескольких переменных
 
фурье вычисления для сравнения изображений
фурье вычисления для сравнения изображенийфурье вычисления для сравнения изображений
фурье вычисления для сравнения изображений
 
корзинная сортировка
корзинная сортировкакорзинная сортировка
корзинная сортировка
 
Technology
TechnologyTechnology
Technology
 
фурье обработка цифровых изображений
фурье обработка цифровых изображенийфурье обработка цифровых изображений
фурье обработка цифровых изображений
 
метод широкополосного сигнала
метод широкополосного сигналаметод широкополосного сигнала
метод широкополосного сигнала
 
битоническая сортировка
битоническая сортировкабитоническая сортировка
битоническая сортировка
 
чётно нечётная сортировка
чётно нечётная сортировкачётно нечётная сортировка
чётно нечётная сортировка
 
сортировка слияниями
сортировка слияниямисортировка слияниями
сортировка слияниями
 
Relational operators In C language (By: Shujaat Abbas)
Relational operators In C language (By: Shujaat Abbas)Relational operators In C language (By: Shujaat Abbas)
Relational operators In C language (By: Shujaat Abbas)
 
Introduction to photoshop (By:Shujaat abbas)
Introduction to photoshop (By:Shujaat abbas)Introduction to photoshop (By:Shujaat abbas)
Introduction to photoshop (By:Shujaat abbas)
 
Adope Photoshop Tool Bar (By: Shujaat Abbas)
Adope Photoshop Tool Bar (By: Shujaat Abbas)Adope Photoshop Tool Bar (By: Shujaat Abbas)
Adope Photoshop Tool Bar (By: Shujaat Abbas)
 
Project report
Project reportProject report
Project report
 
non destructive methods
non destructive methodsnon destructive methods
non destructive methods
 

Similar to Обработка приватных данных на публичных вычислительных сетях

якобовский - введение в параллельное программирование (1)
якобовский - введение в параллельное программирование (1)якобовский - введение в параллельное программирование (1)
якобовский - введение в параллельное программирование (1)Michael Karpov
 
9 1.1 - системы счисления
9 1.1 - системы счисления9 1.1 - системы счисления
9 1.1 - системы счисленияjula-mam
 
системы счиление
системы счилениесистемы счиление
системы счилениеYUYFF
 
практика 12
практика 12практика 12
практика 12student_kai
 
Урок 17. Паттерн 9. Смешанная арифметика
Урок 17. Паттерн 9. Смешанная арифметикаУрок 17. Паттерн 9. Смешанная арифметика
Урок 17. Паттерн 9. Смешанная арифметикаTatyanazaxarova
 
лабораторная работа 1 1
лабораторная работа 1 1лабораторная работа 1 1
лабораторная работа 1 1Gulnaz Shakirova
 
Параллельные алгоритмы обработки данных
Параллельные алгоритмы обработки данныхПараллельные алгоритмы обработки данных
Параллельные алгоритмы обработки данныхSergey Vasilyev
 
!Predictive analytics part_2
!Predictive analytics part_2!Predictive analytics part_2
!Predictive analytics part_2Vladimir Krylov
 
Переменные: тип, имя, значение
Переменные: тип, имя, значениеПеременные: тип, имя, значение
Переменные: тип, имя, значениеЕлена Никонова
 
В поисках математики. Михаил Денисенко, Нигма
В поисках математики. Михаил Денисенко, НигмаВ поисках математики. Михаил Денисенко, Нигма
В поисках математики. Михаил Денисенко, Нигмаyaevents
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3Eugeniy Tyumentcev
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3etyumentcev
 
Урок 24. Фантомные ошибки
Урок 24. Фантомные ошибкиУрок 24. Фантомные ошибки
Урок 24. Фантомные ошибкиTatyanazaxarova
 
регрессионный анализ в Ptc math cad
регрессионный анализ в Ptc math cadрегрессионный анализ в Ptc math cad
регрессионный анализ в Ptc math cadkhishigbayar ider
 
лабораторная работа 1 2
лабораторная работа 1 2лабораторная работа 1 2
лабораторная работа 1 2Gulnaz Shakirova
 
05
0505
05JIuc
 
пр 3 перевод чисел.docx
пр 3 перевод чисел.docxпр 3 перевод чисел.docx
пр 3 перевод чисел.docxssuser6d63bc1
 

Similar to Обработка приватных данных на публичных вычислительных сетях (20)

якобовский - введение в параллельное программирование (1)
якобовский - введение в параллельное программирование (1)якобовский - введение в параллельное программирование (1)
якобовский - введение в параллельное программирование (1)
 
9 1.1 - системы счисления
9 1.1 - системы счисления9 1.1 - системы счисления
9 1.1 - системы счисления
 
системы счиление
системы счилениесистемы счиление
системы счиление
 
практика 12
практика 12практика 12
практика 12
 
Урок 17. Паттерн 9. Смешанная арифметика
Урок 17. Паттерн 9. Смешанная арифметикаУрок 17. Паттерн 9. Смешанная арифметика
Урок 17. Паттерн 9. Смешанная арифметика
 
лабораторная работа 1 1
лабораторная работа 1 1лабораторная работа 1 1
лабораторная работа 1 1
 
Параллельные алгоритмы обработки данных
Параллельные алгоритмы обработки данныхПараллельные алгоритмы обработки данных
Параллельные алгоритмы обработки данных
 
Test
TestTest
Test
 
!Predictive analytics part_2
!Predictive analytics part_2!Predictive analytics part_2
!Predictive analytics part_2
 
8
88
8
 
Переменные: тип, имя, значение
Переменные: тип, имя, значениеПеременные: тип, имя, значение
Переменные: тип, имя, значение
 
В поисках математики. Михаил Денисенко, Нигма
В поисках математики. Михаил Денисенко, НигмаВ поисках математики. Михаил Денисенко, Нигма
В поисках математики. Михаил Денисенко, Нигма
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3
 
Урок 24. Фантомные ошибки
Урок 24. Фантомные ошибкиУрок 24. Фантомные ошибки
Урок 24. Фантомные ошибки
 
регрессионный анализ в Ptc math cad
регрессионный анализ в Ptc math cadрегрессионный анализ в Ptc math cad
регрессионный анализ в Ptc math cad
 
лабораторная работа 1 2
лабораторная работа 1 2лабораторная работа 1 2
лабораторная работа 1 2
 
05
0505
05
 
лекция 1
лекция 1лекция 1
лекция 1
 
пр 3 перевод чисел.docx
пр 3 перевод чисел.docxпр 3 перевод чисел.docx
пр 3 перевод чисел.docx
 

Обработка приватных данных на публичных вычислительных сетях

  • 1. Обработка приватных данных на публичных вычислительных сетях
  • 2. Введение  Вычислительные системы прошли путь от мэйнфрэймов к персональным компьютерам, и теперь совершают обратный путь - от персональных компьютеров к мэйнфрэймам.  Массово предлагаются услуги для всех желающих по выполнению вычислений на высокопроизводительных компьютерах, реализованных в виде облачных и других систем, от компаний предоставляющих подобные сервисы в публичных сетях.  Однако использование публичных вычислительных сетей несёт для их потребителей риски  Утечки приватных данных в процессе их обработки на внешнем устройстве или в процессе передачи данных;  Возможность наличия искажений в получаемых результатах вычислений на внешнем устройстве или в процессе передачи данных. При этом, даже многократный повтор вычислений с одними и теми же исходными данными не позволит обнаружить наличие этих искажений если они носят системный, а не случайный характер.  Мы не будем рассматривать вопросы утечки приватных данных или искажений в результатах вызванных в процессе передачи данных, оставляя эту тему классической криптографии по обеспечению закрытого канала связи требуемой степени надёжности.  Рассмотрим вопрос, когда сам внешний вычислитель может подвержен компрометации, и на нём самом возможны и анализ приватных данных в процессе обработки, и искажение результатов вычислений, и постараемся решить задачу, которую сформулируем следующим образом:  Требуется обеспечить механизм обработки приватных данных на внешнем вычислительном устройстве, который, при сохранении возможностей использования типовых алгоритмов, позволил бы сделать невозможным (то есть достаточно сложным) выявление значений приватных данных, а также позволял бы выявлять и исправлять возможные искажения в результатах вычислений, вносимые случайно или системно.  Поскольку, несомненно, потребуется некоторая дополнительная обработка заданий и результатов, на стороне потребителя, то желательно, чтобы сложность(цена, время) такой обработки была значительно меньше сложности(цены, времени) решения основной задачи – иначе у потребителя нет смысла для проведения вычислений на внешних публичных сетях.  Также, несомненно, может возрасти общее количество вычислений, отдаваемых на внешний вычислитель, поскольку любое внесение избыточности в исходные данные, либо с целью исключения их однозначного определения, либо с целью контроля за их достоверностью, несомненно потребует обработки большего количества информации. Однако, поскольку внешние вычислительные мощности могут быть увеличены только за счёт большей оплаты со стороны потребителя, то разумное увеличение стоимости не должно являться решающим фактором при выборе алгоритма механизма защиты данных.
  • 3. Термины и обозначения  Обозначим формулой 𝑓 𝑥 = 𝑓0 ? постановку задачи решения математического уравнения.  В качестве отправной точки для рассуждений выберем задачу решения системы линейных уравнений  Обозначим формулой (𝑥0 + 𝜀 𝑥): 𝑓 𝑥0 + 𝜀 𝑥 = 𝑓0 принятие в качестве решения задачи значения (𝑥0 + 𝜀 𝑥) , где 𝑥0 - истинное решение задачи, а 𝜀 𝑥 - искажение добавленное к истинному решению задачи.
  • 4. Открытая модель с доверием 𝑓 𝑥 = 𝑓0? 𝑥0 + 𝜀 𝑥
  • 5. Закрытая модель без доверия 𝑔 𝑥 = 𝑔0 ?𝑓 𝑥 = 𝑓0? 𝑦0 + 𝜀 𝑦𝑥0 + 𝜀 𝑥
  • 6. Постановка задачи Требуется найти преобразования задачи 𝐸 𝑘 и преобразование найденного решения 𝐷 𝑘, такие что 𝑓 𝑥 = 𝑓0 ? 𝐸 𝑘 𝑔 𝑥 = 𝑔0 ? (𝑦0 + 𝜀 𝑦): 𝑔 𝑦0 + 𝜀 𝑦 = 𝑔0 𝑦0 + 𝜀 𝑦 𝐷 𝑘 𝑥0 + 𝜀 𝑥 (𝑥0 + 𝜀 𝑥): 𝑓 𝑥0 + 𝜀 𝑥 = 𝑓0 где 𝑓: 𝑅 → 𝑅 𝑔: 𝐶 → 𝐶 При этом должна сохраняться экономическая/временная/или другая выгода от выполнения вычислений на внешнем вычислителе 𝑝𝑟𝑖𝑐𝑒 𝑓 𝑥 = 𝑓0? 𝐸 𝑘 𝑔 𝑥 = 𝑔0 ? + 𝑝𝑟𝑖𝑐𝑒 𝑦0 + 𝜀 𝑦 𝐷 𝑘 𝑥0 + 𝜀 𝑥 ≪ 𝑝𝑟𝑖𝑐𝑒(𝑓 𝑥 = 𝑓0? )
  • 7. Решение системы линейных уравнений  Рассмотрим задачу решения системы линейных уравнений 𝑎𝑥 𝑇 = 𝑏 𝑇, где  𝑎 и 𝑏 - исходные данные - матрицы с элементами из поля R  𝑥 – искомые данные – матрица с элементами из поля R  Решение представляет собой множество, являющееся линейной комбинацией векторов фундаментальной системы решений.  Для упрощения, считаем, что размеры всех элементов матричного уравнения согласованы между собой.  Полагаем, что сложность вычисления обратной матрицы к произвольной матрице на локальном компьютере значительно больше сложности умножения или сложения двух матриц.  Также отметим, что множество матриц с элементами из поля R с операциями умножения и сложения являются ассоциативным кольцом с делителями нуля.
  • 8. Линейные преобразования системы линейных уравнений  𝑎𝑥 𝑇 = 𝑏 𝑇? → 𝑈𝑎𝑥 𝑇 = 𝑈𝑏 𝑇? → 𝑎′𝑥′ 𝑇 = 𝑏′ 𝑇 ? |𝑎′ = 𝑈𝑎, 𝑥 𝑇 = 𝑥′ 𝑇, 𝑏′ 𝑇 = 𝑈𝑏 𝑇  𝑎𝑥 𝑇 = 𝑏 𝑇? → 𝑎𝑉𝑉−1 𝑥 𝑇 = 𝑏 𝑇? → 𝑎′𝑥′ 𝑇 = 𝑏′ 𝑇? |𝑎′ = 𝑎𝑉, 𝑥 𝑇 = 𝑉𝑥′ 𝑇, 𝑏′ = 𝑏  𝑎𝑥 𝑇 = 𝑏 𝑇? → 𝑎(𝑥 − 𝑧) 𝑇= 𝑏 𝑇 − 𝑎𝑧 𝑇? → 𝑎′𝑥′ 𝑇 = 𝑏′ 𝑇 ? | 𝑎′ = 𝑎, 𝑥 𝑇 = 𝑥′ 𝑇 + 𝑧 𝑇, 𝑏′ 𝑇 = 𝑏 𝑇 − 𝑎𝑧 𝑇
  • 9. Алгоритм защиты вычислений решения системы линейных уравнений  Пусть дано уравнение 𝑎𝑥 𝑇 = 𝑏 𝑇  Сформируем обратимые матрицы U и V и вектор z из случайных величин  Имеем 𝑎𝑥 𝑇 = 𝑏 𝑇? → 𝑈𝑎𝑉𝑉−1(𝑥 − 𝑧) 𝑇= 𝑈(𝑏 𝑇 − 𝑎𝑧 𝑇)? → 𝑎′𝑥′ 𝑇 = 𝑏′ 𝑇 ? |𝑎′ = 𝑈𝑎𝑉, 𝑥 𝑇 = 𝑉𝑥′ 𝑇 + 𝑧 𝑇 , 𝑏′ 𝑇 = 𝑈(𝑏 𝑇 − 𝑎𝑧 𝑇 )  То есть  Вычисляем на локальном вычислителе 𝑎′ = 𝑈𝑎𝑉, 𝑏′ 𝑇 = 𝑈(𝑏 𝑇 − 𝑎𝑧 𝑇 )  Передаём на внешний вычислитель задачу решения уравнения 𝑎′𝑥′ 𝑇 = 𝑏′ 𝑇 ?  Используя полученное решение уравнения 𝑎′𝑥′ 𝑇 = 𝑏′ 𝑇 ?, вычисляем на локальном вычислителе 𝑥 𝑇 = 𝑉𝑥′ 𝑇 + 𝑧 𝑇  Проверка истинности найденного решения может быть выполнена явной подстановкой найденного решения в формулу системы линейных уравнений 𝑎𝑥 𝑇 = 𝑏 𝑇
  • 10. Абстрактный вычислитель  Согласно теории алгоритмов, современные технические устройства, при решении задач обработки данных могут быть представлены в виде конечного абстрактного вычислителя, полностью имитирующем вычисление на любом техническом устройстве. Модели таких абстрактных вычислителей были предложены Тьюрингом, Марковым и другими.  Будем использовать запись y=x*F для обозначение работы этих вычислителей над исходными данными x по алгорифму F где y – искомые данные.  Последовательное применение нескольких алгорифмов (программа) F1,…,Fn при обработке данных будем обозначать как y=x*F1*…*Fn  Теория алгоритмов, говорит нам, что любой алгоритм (или композиция алгоритмов) имеют эквивалентные алгоритмы, а значит, можно составить алгорифм “уменьшения” количества шагов программы или алгоритм “обфукации” программы для усложнения анализа кода программы, используя запись программы F1*…*Fn как исходные данные для обработки.
  • 11. Публичный абстрактный вычислитель  Пусть требуется выполнить вычисления 𝑦 = 𝑥 ∗ 𝐹 над исходными данными 𝑥 по алгорифму 𝐹 где 𝑦 – искомые данные.  При передачи задания на внешний вычислитель мы сообщаем этому вычислителю исходные данные 𝑥 и алгорифм 𝐹, получая в ответ искомые данные 𝑦  В тоже время очевидно, что существуют алгорифмы, обладающие свойствами 𝑥 = 𝑥 ∗ 𝐸 ∗ 𝑈 и 𝑦 = 𝑦 ∗ 𝑉 ∗ 𝐷 для любых допустимых 𝑥 и 𝑦  Примеры таких алгорифмов известны из задач криптографии и задач восстановления искажённых данных (коды исправляющие ошибки)  А значит любая задача вида 𝑦 = 𝑥 ∗ 𝐹 может быть заменена на задачу вида  𝑦 = 𝑥 ∗ 𝐸 ∗ 𝑈 ∗ 𝐹 ∗ 𝑉 ∗ 𝐷 = (𝑥 ∗ 𝐸) ∗ (𝑈 ∗ 𝐹 ∗ 𝑉) ∗ 𝐷 = (𝑥 ∗ 𝐸) ∗ 𝐺 ∗ 𝐷, где 𝐺 = 𝑈 ∗ 𝐹 ∗ 𝑉
  • 12. Алгоритм защиты вычислений на публичном вычислителе  Пусть требуется выполнить вычисления 𝑦 = 𝑥 ∗ 𝐹 над исходными данными x по алгорифму 𝐹 где 𝑦 – искомые данные.  Возьмём произвольные алгорифмы, обладающие свойствами 𝑥 = 𝑥 ∗ 𝐸 ∗ 𝑈 и 𝑦 = 𝑦 ∗ 𝑉 ∗ 𝐷 для любых допустимых 𝑥 и 𝑦, и такие, что алгорифмы 𝐸 и 𝐷 не являются слишком затратными для вычисления на локальном вычислителе.  Составим алгорифм 𝐺 = 𝑈 ∗ 𝐹 ∗ 𝑉 и используя алгорифм “уменьшения” количества вычислений или алгоритм “обфукации” преобразуем его к программе 𝐺’ используя локальный вычислитель.  Вычислим на локальном вычислителе 𝑥’ = 𝑥 ∗ 𝐸  Выполним на внешнем вычислителе задачу 𝑦’ = 𝑥’ ∗ 𝐺’, сообщив на внешний вычислитель 𝑥’ в качестве исходных данных, программу 𝐺’ и получив в ответ значение 𝑦’.  Вычислим на локальном вычислителе 𝑦 = 𝑦’ ∗ 𝐷  Использование алгорифмов 𝐸 и 𝐷 , полученных из теорий криптографии и восстановления искажённых данных позволит обеспечить защиту приватных данных переданных на внешний вычислитель или полученных от внешнего вычислителя, а также детектировать факты искажения результатов обработки данных на внешнем вычислителе.
  • 13. Литература  Кудрявцев В.В, Алешин С. В., Подколзин А. С. Введение в теорию автоматов. М.: Наука, 1985.  Мальцев А. И. Алгоритмы и вычислимые функции. М.: Наука, 1986.  МакВильмс Ф. Дж., Слоэн Н. Дж. Теория кодов, исправляющих ошибки. М.: Связь, 1979  Марков А. А. Введение в теорию кодирования. М.: Наука, 1982  Карманов В.Г. Математическое программирование. М.: Наука, 2000.  Турчин В.Ф. Язык программирования РЕФАЛ. Интернет-проект http://www.refal.net/  Иван Кочуркин @KvanTTT Математические выражения в .NET (разбор, дифференцирование, упрощение, дроби, компиляция). Интернет-публикация http://habrahabr.ru/post/150043/  @JediPhilosopher Как компьютер сам свой код улучшал, или программируем процесс программирования. Интернет-публикация http://habrahabr.ru/post/265195/ dmitry@protopopov.ru
  • 14. Спасибо за внимание  Контакты  Дмитрий Протопопов, Москва, Россия dmitry@protopopov.ru +7 916 6969591  Интернет-адрес проекта: https://github.com/dprotopopov/сс dmitry@protopopov.ru