SlideShare a Scribd company logo
1 of 25
Download to read offline
Советский суперкомпьютер
К-340А и секретные
вычисления
Кренделев Сергей Федорович
Новосибирский государственный университет
Parallels
Работа выполнена при финансовой поддержке
Минобрнауки РФ (договор № 02.G25.31.0054)
• Под секретными вычислениями подразумевается
обработка зашифрованных данных без их
дешифрования
• области применения таковы:
• Обработка персональных данных в облачных
сервисах в зашифрованном виде
• Мощные методы обфускации на программном и
аппаратном уровне. Защита от
Side Channel атак
• Защищенные базы данных в облаках, и на рабочем
месте.
• В обработке данных участвуют две
стандартные структуры
1. Отношение порядка, применяется для
поиска и сравнений. Шифрование для этой
структуры называется Шифрованием
сохраняющим порядок. (Order Preserving
Encryption – OPE)
2. Арифметические структуры. Сложение
умножение. Шифрование для этих структур
называется Гомоморфным Шифрованием (
Homomorphic Encryption).
С точки зрения математики в криптографии
ничего нового нет. Все конструкции давно
известны. Новым является только метод
реализации.
Очень жаль, что Эйлер, Ферма, Гаусс …. не
имели компьютеров, сейчас про числа мы бы
знали гораздо больше.
Например: если говорить про шифрование
сохраняющее порядок, то это на самом деле
речь идет о представлении монотонных
функций.
В докладе будем говорить, только о
гомоморфном шифровании.
Вот математическое определение.
Под гомоморфным шифрованием понимается
любое отображение :  , где ,  кольца
произвольного вида, такое что (x+y) (x)+ (y)   
(x y) (x) (y)     , если уравнение (x) λ  имеет
решение, то это решение единственно.
Считается, что  - открытый ключ. Как решать
уравнение (x) λ  это секретный ключ.
• Литература на эту тему фактически является
отчетами по грантам для DARPA ( Defense
Advanced Research Projects Agency —
агентство передовых оборонных
исследовательских проектов министерства
обороны США),
• IARPA ( Intelligence Advanced Research
Projects Activity — Агентство по
перспективным исследованиям
разведывательного ведомства,
национальная разведка США)
• Отчеты в компаниях IBM, Microsoft.
В этих работах рассматривается вариант
гомоморфного шифрования, где 2Z  .
Другими словами 2:Z . Наличие
гомоморфизма  позволяет секретно
вычислять любые многочлены от любого
числа переменных. Это означает, что можно
имитировать (эмулировать) стандартный
процессор с двоичным представлением
данных и операциями, связанными с
двоичной логикой. Это возможно, учитывая,
что стандартные операции в поле 2Z можно
преобразовать в логические операции or, and
(на самом деле достаточно nand).
Печальный факт заключается в том, что
вариант с гомоморфным шифрованием 2:Z 
очень далек от практической реализации.
Проблема в росте зашифрованных данных,
особенно при умножении. В случае реализации
логических схем умножение присутствует всегда
• Необходимы другие подходы, как к
гомоморфному шифрованию, так и к
компьютерным системам которые собираемся
эмулировать.
• Существует вариант компьютеров основанных на
системе остаточных классов (СОК) или в
современных терминах на основе модулярной
арифметике. Такие компьютеры разрабатывались
в 50-70 годы прошлого столетия для создания
РЛС. К ним относится суперкомпьютер К-340А, а
также СуперЭВМ 5Э53, ЭВМ “Алмаз” и т.п. Все они
основаны на модулярной арифметике.
Особенностью данных компьютеров является
очень высокий параллелизм, что позволяет
делать вычисления в реальном времени.
Недостатки – проверка выхода за диапазон
данных, сравнение больше, меньше. С точки
зрения разработчиков этих систем –
“модулярная и двоичная арифметика
несовместимы”. Цель работы
построить систему полностью гомоморфного
шифрования, которая бы имитировала
(эмулировала) этот класс вычислительных
устройств.
Общие методы построения гомоморфного шифрования.
Стандартный метод построения гомоморфизмов колец проистекает из
стандартной алгебраической геометрии. Пусть 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) образованное всевозможными произведениями и суммами базисных
функций.
Основная модель полностью гомоморфного шифрования.
Фактически вышеперечисленные компьютеры используют полностью
гомоморфное шифрование. Согласно модулярной арифметике, если дан
набор взаимно простых чисел 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 , сделать из них секретный ключ. Однако такая система
шифрования достаточно просто вскрывается атакой с известными данными.
Достаточно построить полностью гомоморфное шифрование для одного
модуля, пусть этот модуль равен 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 . Этот набор назовем таблицей умножения
Определим произведение двух функций
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
структурой алгебры (системы гиперкомплексных чисел). Умножение в этой
алгебре не является, вообще говоря, коммутативным и ассоциативным.
Положим 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 .
Шифрование. Всякому 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) .
Гомоморфность данного шифрования вытекает из того факта, что множество
линейных функций с заданной таблицей умножения не выводит из класса
линейных функций.
В данном варианте не происходит увеличение размера данных при
умножении
• Наличие таблицы умножения позволяет
реализовать гомоморфное шифрование
для рациональных чисел.
• Данная конструкция позволяет строить
шифрование с открытым ключом из
шифрования с секретным ключом.
Бонус
Пример шифрования с открытым ключом.
Отметим, что всякое шифрование суть
некоторое вычисление. Возможность
вычислять секретно позволяет из секретного
ключа сделать открытый ключ.
Приведем элементарный пример, как из
шифрования Хилла сделать шифрование с
открытым ключом. Выберем модуль m=42.
Построим 2x2 матрицу обратимую по
модулю 42 .
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)
   
   
Для получения вероятностного шифрования добавим элемент
представляющий 0. Выберем элемент вида ( 10,14) . Очевидно, что всякий
элемент вида ( 10 ,14 )k k представляет 0. Этот элемент является частью
открытого ключа.
Будем шифровать биты 0,1. Напишем представление для вероятностного
шифрования. Биту 0 сопоставим числа 31,39. В зашифрованном
представлении этим числам соответствуют пары (4, 9) ,( 23,16) . Биту 1
сопоставим числа 38,15. В зашифрованном виде им соответствуют пары
( 27,19) ,(12, 3) . Этот набор пар является частью открытого ключа.
В данной ситуации таблица умножения не нужна,
поэтому умножение пар получается из произведения
полиномов от двух переменных
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)
    
   
.
Модифицируем матрицу. В ней изменим элемент 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)
Дешифрование.
По секретному вектору (7, 19) v строим вектор
(симметрический квадрат) (49, 133,361) (7, 7,25)mod(42)  
Вычисляем скалярные произведения
(( 121,34, 85),(7, 7,25)) 847 238 2115
3210 18mod(42) 24mod(42)
(( 55,215, 57),(7, 7,25)) 385 1505 1425
3315 39mod(42) 3mod(42)
       
   
       
   
Согласно построению решаем уравнение
13 7 24
11 8 3
x
y
     
    
    
Находим решение 39, y 15x   . На всякий случай проверим
13 39 7 15 507 105 24mod(42)
11 39 8 15 429 120 3mod(42)
     
     
Смотрим по таблице, 39 соответствует биту 0, 15 соответствует биту 1.
В данном шифровании модуль 42 был секретом.
Можно ли сделать модуль или кратное модулю
число открытым,
мне пока неизвестно. Очевидно, что нужно брать
количество переменных
больше чем 2.
Основным фактором для стойкости, является то
обстоятельство,
что шифрование является чисто вероятностным.
Аналогично можно поступить и с вариантом RSA. При
этом придется использовать таблицу умножения.
Однако никакой проблемы связанной с
факторизацией составного числа здесь нет. Отметим,
что в данной ситуации
шифрование также является вероятностным
СПАСИБО ЗА ВНИМАНИЕ.
Вопросы?

More Related Content

What's hot

Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиMikhail Kurnosov
 
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Nikolay Grebenshikov
 
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"Nikolay Grebenshikov
 
асимметричные алгоритмы шифрования
асимметричные алгоритмы шифрованияасимметричные алгоритмы шифрования
асимметричные алгоритмы шифрованияhmyrhik nikita
 
Лекция 10. Графы. Остовные деревья минимальной стоимости
Лекция 10. Графы. Остовные деревья минимальной стоимостиЛекция 10. Графы. Остовные деревья минимальной стоимости
Лекция 10. Графы. Остовные деревья минимальной стоимостиMikhail Kurnosov
 
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...Alexey Paznikov
 
Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)Mikhail Kurnosov
 
Лекция 1. Амортизационный анализ (amortized analysis)
Лекция 1. Амортизационный анализ (amortized analysis)Лекция 1. Амортизационный анализ (amortized analysis)
Лекция 1. Амортизационный анализ (amortized analysis)Mikhail Kurnosov
 
Основы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторыОсновы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторыTheoretical mechanics department
 
Векторизация кода (семинар 3)
Векторизация кода (семинар 3)Векторизация кода (семинар 3)
Векторизация кода (семинар 3)Mikhail Kurnosov
 
Векторизация кода (семинар 2)
Векторизация кода (семинар 2)Векторизация кода (семинар 2)
Векторизация кода (семинар 2)Mikhail Kurnosov
 
Лекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовЛекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовMikhail Kurnosov
 
Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Семинар 5. Многопоточное программирование на OpenMP (часть 5)Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Семинар 5. Многопоточное программирование на OpenMP (часть 5)Mikhail Kurnosov
 
Алгоритмы и языки программирования
Алгоритмы и языки программированияАлгоритмы и языки программирования
Алгоритмы и языки программированияTheoretical mechanics department
 
Лекция 4: Стек. Очередь
Лекция 4: Стек. ОчередьЛекция 4: Стек. Очередь
Лекция 4: Стек. ОчередьMikhail Kurnosov
 
20101125 proof complexity_hirsch_lecture08
20101125 proof complexity_hirsch_lecture0820101125 proof complexity_hirsch_lecture08
20101125 proof complexity_hirsch_lecture08Computer Science Club
 
Векторизация кода (семинар 1)
Векторизация кода (семинар 1)Векторизация кода (семинар 1)
Векторизация кода (семинар 1)Mikhail Kurnosov
 
Лекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировкиЛекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировкиMikhail Kurnosov
 

What's hot (20)

Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
 
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
 
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
 
асимметричные алгоритмы шифрования
асимметричные алгоритмы шифрованияасимметричные алгоритмы шифрования
асимметричные алгоритмы шифрования
 
Лекция 10. Графы. Остовные деревья минимальной стоимости
Лекция 10. Графы. Остовные деревья минимальной стоимостиЛекция 10. Графы. Остовные деревья минимальной стоимости
Лекция 10. Графы. Остовные деревья минимальной стоимости
 
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
 
Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)
 
Лекция 1. Амортизационный анализ (amortized analysis)
Лекция 1. Амортизационный анализ (amortized analysis)Лекция 1. Амортизационный анализ (amortized analysis)
Лекция 1. Амортизационный анализ (amortized analysis)
 
Основы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторыОсновы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторы
 
Векторизация кода (семинар 3)
Векторизация кода (семинар 3)Векторизация кода (семинар 3)
Векторизация кода (семинар 3)
 
Векторизация кода (семинар 2)
Векторизация кода (семинар 2)Векторизация кода (семинар 2)
Векторизация кода (семинар 2)
 
Лекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовЛекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмов
 
Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Семинар 5. Многопоточное программирование на OpenMP (часть 5)Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Семинар 5. Многопоточное программирование на OpenMP (часть 5)
 
Алгоритмы и языки программирования
Алгоритмы и языки программированияАлгоритмы и языки программирования
Алгоритмы и языки программирования
 
Лекция 4: Стек. Очередь
Лекция 4: Стек. ОчередьЛекция 4: Стек. Очередь
Лекция 4: Стек. Очередь
 
10474
1047410474
10474
 
20101125 proof complexity_hirsch_lecture08
20101125 proof complexity_hirsch_lecture0820101125 proof complexity_hirsch_lecture08
20101125 proof complexity_hirsch_lecture08
 
Векторизация кода (семинар 1)
Векторизация кода (семинар 1)Векторизация кода (семинар 1)
Векторизация кода (семинар 1)
 
Лекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировкиЛекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировки
 
Python: ввод и вывод
Python: ввод и выводPython: ввод и вывод
Python: ввод и вывод
 

Similar to Советский суперкомпьютер К-340А и секретные вычисления

CSEDays. Александр Семенов
CSEDays. Александр СеменовCSEDays. Александр Семенов
CSEDays. Александр СеменовLiloSEA
 
генераторы псевдослучайных последовательностей и шифрование методом гаммирования
генераторы псевдослучайных последовательностей и шифрование методом гаммированиягенераторы псевдослучайных последовательностей и шифрование методом гаммирования
генераторы псевдослучайных последовательностей и шифрование методом гаммированияhmyrhik nikita
 
Лекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыЛекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыMikhail Kurnosov
 
Лекция 13 Теоретико-числовые алгоритмы Часть 2
Лекция 13 Теоретико-числовые алгоритмы Часть 2Лекция 13 Теоретико-числовые алгоритмы Часть 2
Лекция 13 Теоретико-числовые алгоритмы Часть 2simple_people
 
курсовой проект
курсовой проекткурсовой проект
курсовой проектGulnaz Shakirova
 
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Mikhail Kurnosov
 
Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.LiloSEA
 
РЕКУРРЕНТНОЕ СИСТЕМАТИЧЕСКОЕ ПОМЕХОЗАЩИТНОЕ ПРЕОБРАЗОВАНИЕ КОДОВ: ВОЗМОЖНОСТИ...
РЕКУРРЕНТНОЕ СИСТЕМАТИЧЕСКОЕ ПОМЕХОЗАЩИТНОЕ ПРЕОБРАЗОВАНИЕ КОДОВ: ВОЗМОЖНОСТИ...РЕКУРРЕНТНОЕ СИСТЕМАТИЧЕСКОЕ ПОМЕХОЗАЩИТНОЕ ПРЕОБРАЗОВАНИЕ КОДОВ: ВОЗМОЖНОСТИ...
РЕКУРРЕНТНОЕ СИСТЕМАТИЧЕСКОЕ ПОМЕХОЗАЩИТНОЕ ПРЕОБРАЗОВАНИЕ КОДОВ: ВОЗМОЖНОСТИ...ITMO University
 
Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.Roman Brovko
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.sharikdp
 
асимметричные алгоритмы шифрования
асимметричные алгоритмы шифрованияасимметричные алгоритмы шифрования
асимметричные алгоритмы шифрованияhmyrhik nikita
 
Использование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетовИспользование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетовТранслируем.бел
 
криптографический стандарт Rsa
криптографический стандарт Rsaкриптографический стандарт Rsa
криптографический стандарт Rsahmyrhik nikita
 
Tech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU
 
Как приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMКак приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMTech Talks @NSU
 
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Technopark
 
Николай Паламарчук "Functional Programming basics for PHP developers"
Николай Паламарчук "Functional Programming basics for PHP developers"Николай Паламарчук "Functional Programming basics for PHP developers"
Николай Паламарчук "Functional Programming basics for PHP developers"Fwdays
 

Similar to Советский суперкомпьютер К-340А и секретные вычисления (20)

CSEDays. Александр Семенов
CSEDays. Александр СеменовCSEDays. Александр Семенов
CSEDays. Александр Семенов
 
лекция 14
лекция 14лекция 14
лекция 14
 
лекция 14
лекция 14лекция 14
лекция 14
 
генераторы псевдослучайных последовательностей и шифрование методом гаммирования
генераторы псевдослучайных последовательностей и шифрование методом гаммированиягенераторы псевдослучайных последовательностей и шифрование методом гаммирования
генераторы псевдослучайных последовательностей и шифрование методом гаммирования
 
Лекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыЛекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмы
 
Лекция 13 Теоретико-числовые алгоритмы Часть 2
Лекция 13 Теоретико-числовые алгоритмы Часть 2Лекция 13 Теоретико-числовые алгоритмы Часть 2
Лекция 13 Теоретико-числовые алгоритмы Часть 2
 
курсовой проект
курсовой проекткурсовой проект
курсовой проект
 
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.
 
Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.
 
РЕКУРРЕНТНОЕ СИСТЕМАТИЧЕСКОЕ ПОМЕХОЗАЩИТНОЕ ПРЕОБРАЗОВАНИЕ КОДОВ: ВОЗМОЖНОСТИ...
РЕКУРРЕНТНОЕ СИСТЕМАТИЧЕСКОЕ ПОМЕХОЗАЩИТНОЕ ПРЕОБРАЗОВАНИЕ КОДОВ: ВОЗМОЖНОСТИ...РЕКУРРЕНТНОЕ СИСТЕМАТИЧЕСКОЕ ПОМЕХОЗАЩИТНОЕ ПРЕОБРАЗОВАНИЕ КОДОВ: ВОЗМОЖНОСТИ...
РЕКУРРЕНТНОЕ СИСТЕМАТИЧЕСКОЕ ПОМЕХОЗАЩИТНОЕ ПРЕОБРАЗОВАНИЕ КОДОВ: ВОЗМОЖНОСТИ...
 
Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.
 
асимметричные алгоритмы шифрования
асимметричные алгоритмы шифрованияасимметричные алгоритмы шифрования
асимметричные алгоритмы шифрования
 
Использование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетовИспользование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетов
 
криптографический стандарт Rsa
криптографический стандарт Rsaкриптографический стандарт Rsa
криптографический стандарт Rsa
 
Tech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVM
 
Как приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMКак приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVM
 
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1
 
Николай Паламарчук "Functional Programming basics for PHP developers"
Николай Паламарчук "Functional Programming basics for PHP developers"Николай Паламарчук "Functional Programming basics for PHP developers"
Николай Паламарчук "Functional Programming basics for PHP developers"
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 

More from Positive Hack Days

Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesИнструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesPositive Hack Days
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerPositive Hack Days
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesPositive Hack Days
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikPositive Hack Days
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQubePositive Hack Days
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityPositive Hack Days
 
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Positive Hack Days
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для ApproofPositive Hack Days
 
Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Positive Hack Days
 
Формальные методы защиты приложений
Формальные методы защиты приложенийФормальные методы защиты приложений
Формальные методы защиты приложенийPositive Hack Days
 
Эвристические методы защиты приложений
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложенийPositive Hack Days
 
Теоретические основы Application Security
Теоретические основы Application SecurityТеоретические основы Application Security
Теоретические основы Application SecurityPositive Hack Days
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летPositive Hack Days
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиPositive Hack Days
 
Требования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОТребования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОPositive Hack Days
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке СиPositive Hack Days
 
Механизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CorePositive Hack Days
 
SOC для КИИ: израильский опыт
SOC для КИИ: израильский опытSOC для КИИ: израильский опыт
SOC для КИИ: израильский опытPositive Hack Days
 
Honeywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterHoneywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterPositive Hack Days
 
Credential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиCredential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиPositive Hack Days
 

More from Positive Hack Days (20)

Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesИнструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release Notes
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive Technologies
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + Qlik
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQube
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps Community
 
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для Approof
 
Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»
 
Формальные методы защиты приложений
Формальные методы защиты приложенийФормальные методы защиты приложений
Формальные методы защиты приложений
 
Эвристические методы защиты приложений
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложений
 
Теоретические основы Application Security
Теоретические основы Application SecurityТеоретические основы Application Security
Теоретические основы Application Security
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 лет
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на грабли
 
Требования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОТребования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПО
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке Си
 
Механизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET Core
 
SOC для КИИ: израильский опыт
SOC для КИИ: израильский опытSOC для КИИ: израильский опыт
SOC для КИИ: израильский опыт
 
Honeywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterHoneywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services Center
 
Credential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиCredential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атаки
 

Советский суперкомпьютер К-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)
  • 23. Дешифрование. По секретному вектору (7, 19) v строим вектор (симметрический квадрат) (49, 133,361) (7, 7,25)mod(42)   Вычисляем скалярные произведения (( 121,34, 85),(7, 7,25)) 847 238 2115 3210 18mod(42) 24mod(42) (( 55,215, 57),(7, 7,25)) 385 1505 1425 3315 39mod(42) 3mod(42)                         Согласно построению решаем уравнение 13 7 24 11 8 3 x y                 Находим решение 39, y 15x   . На всякий случай проверим 13 39 7 15 507 105 24mod(42) 11 39 8 15 429 120 3mod(42)             Смотрим по таблице, 39 соответствует биту 0, 15 соответствует биту 1.
  • 24. В данном шифровании модуль 42 был секретом. Можно ли сделать модуль или кратное модулю число открытым, мне пока неизвестно. Очевидно, что нужно брать количество переменных больше чем 2. Основным фактором для стойкости, является то обстоятельство, что шифрование является чисто вероятностным. Аналогично можно поступить и с вариантом RSA. При этом придется использовать таблицу умножения. Однако никакой проблемы связанной с факторизацией составного числа здесь нет. Отметим, что в данной ситуации шифрование также является вероятностным

Editor's Notes

  1. Например. Для учетной записи логин, пароль. Логин шифруется шифрованием сохраняющим порядок, а для шифрования пароля используется гомоморфное шифрование. Оба шифрования должны быть вероятностными, иначе возможна атака использующая структуру данных.
  2. Это к тому что существующее гомоморфное шифрование для использования в бинарной логике далеко от полной реализации. Основное приложение, которое обсуждается, это гомоморфно шифровать шифрование AES. Это нужно, чтоб устранить атаку Side Channel.
  3. Акушинский Израиль Яковлевич, Юдицкий Давлет Исламович Машинная арифметика в остаточных классах. Интересный момент заключается в том, что в этой книге описано как все реализовать для комплексных чисел. Кстати это позволяет делать устройства для очень быстрой обработки цифровых сигналов. 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 как раз математические основы этих компьютеров, В том числе и комплексная арифметика остаточных классов.
  4. Интересная дискуссия у американцев по поводу того, что хорошо бы реализовать методы модулярной арифметике на FPGA (ПЛИС) разработав их для с использованием модулярной арифметики вместо бинарной логики. Уж очень быстро все вычисляется и распараллеливается. Также обсуждалась проблема безопасности интернета вещей, для чего предлагалось реализовать SoC (System on Chip) или ARM+FPGA с секретным исполнением программ или обфускацией кода.
  5. Любопытно отметить, что понятие гомоморфного шифрования ввели Ривест и Дертузо в 1987 году. Первые примеры были как раз основаны на модулярной арифметике. Собственно если считать что в схеме компьютера на базе модулярной арифметике модули являются закрытым ключом, то это как раз первые примеры гомоморфного шифрования. Моя точка зрения заключается в том, что если удается провести атаку с известными или специально подобранными данными, то это означает, что система полностью скомпрометирована, а это означает слабость построенной системы.
  6. По построению видно, что данное шифрование является вероятностным. Для этого в проекте был построен специальный генератор случайных чисел у которого нет периодичности вообще. Кстати он прошел все тесты NIST.