Московский государственный университет имени М.В. Ломоносова
Факультет вычислительной математики и кибернетики
Магистерская программа «Математическое и программное обеспечение
защиты информации»
Магистерская диссертация
Использование криптографических средств для защиты
облачных вычислений
Работу выполнил
студент Ярмухаметовс И.
Научный руководитель:
к. ф.-м. н., доцент Применко Э.А.
Москва 2013
СОДЕРЖАНИЕ
Содержание1. Аннотация
2. Введение
3. Постановка задачи
4. Определение и классификация
5. Модели развертывания
5.1 Технологии
6. Проблемы с безопасностью
7. Способы защиты данных в облачных технологиях
7.1 Соглашение об уровне обслуживания.
7.2 Установление защищенного канала до системы находящейся в облаке
7.3 Использование разделения ролей для доступа к информации
7.4 Сегментирование виртуальных машин
7.6 Использование промежуточного (прокси) сервера для шифрования данных
7.7 Обработка обезличенных данных в облаке
8. Гомоморфное шифрование
9. Гомоморфные системы шифрования
9.1 Криптосистема RSA
9.2 Криптосистема Эль Гамаля
9.3 Криптосистема Пэйе
9.4 Модель Бракерски-Гентри-Вайкунтанатан
10. Описание практической части
Результаты
11. Заключение
12. СПИСОК ЦИТИРУЕМОЙ ЛИТЕРАТУРЫ
13. Приложение
13.1 Криптосистема Гентри
13.2 Криптосистема Rsa
13.3 Криптосистема Пэйе
1. АННОТАЦИЯ В магистерской диссертации рассматриваются облачные вычисления и их защита с использованием криптографических средств. Представлены основные понятия и архитектура. Описаны различные виды облачных вычислений и основные угрозы безопасности информации. Проведен анализ основных методов защиты, как нормативно правовые, так и с использованием криптографических средств. В качестве криптографических средств также было рассмотрено гомоморфное шифрование, а в частности частично гомоморфные криптосистемы, а также единственная на сегодняшний день существующая модель полного гомоморфного шифрования Бракерски–Гентри–Вайкунтанатан. Были проведены сравнения и приведены результаты по производительности частично гомоморфных криптосистем RSA и Пэйе и модели шифрования Гентри.
2. ВВЕДЕНИЕ Начиная с 2008-го года термин "облачные вычисления" начал активно распространяться по миру. Основной идеей облачных технологий является предоставление ресурсов по требованию. Тем самым субъекту арендующему ресурсы нет необходимости содержать эти ресурсы.
Концепция облачных вычислений является рыночным ответом на усиление роли аутсорсинга в ИТ-индустрии. Переход на технологии означает передачу на аутсорсинг традиционных процессов управления ИТинфраструктурой внешним профессиональным поставщикам.
Использование облачных технологий дает ряд преимуществ перед традиционными технологиями ИТ:
- Организация может более эффективно управлять использованием вычислительных ресурсов.
- Повышается управляемость ИТ-инфраструктурой (в том числе географическая) - Упрощается управление бесперебойностью работы организации, благодаря заложенным в концепцию системам резервного копирования и миграции виртуальных машин.
- Сокращение расходов на ИТ-инфраструктуру, таких как содержание парка вычислительных ресурсов, электроэнергию, а также персонала, обслуживающего эту инфраструктуру.
Тем самым, на первый взгляд облачные технологии имеют настолько сильные преимущества, что встает закономерный вопрос «А почему же коммерческие и государственные организации все еще не используют публичные облака?».
Дело в том, что основным барьером и главным недостатком использования облачных вычислений является недостаточно проработанное нормативноправовое регулирование в данной сфере. Это проблема не является лишь проблемой России. Так, даже в Соединенных Штатах Америки вопрос об использовании облачных вычислений урегулирован лишь отчасти. Виной тому является то, что данный вид услуги появился относительно недавно и технологии, на данный момент, сильно опережают нормативно-правовую базу.
3. ПОСТАНОВКА ЗАДАЧИ
Целью данной работы было изучить применимость гомоморфных криптосистем для защиты и обработки данных в облачных вычислениях.Для достижения поставленной задачи мною были определены следующие подзадачи:
Рассмотреть существующие средства для защиты информации при облачных вычислениях.
Рассмотреть существующие схемы шифрования с гомоморфными свойствами.
Дать оценку применимости гомоморфного шифрования в облачных вычислениях на данный момент.
4. ОПРЕДЕЛЕНИЕ И КЛАССИФИКАЦИЯ
Существует много различных определений облачным вычислениям, но в данной работе мы будем использовать определение NIST:Облако это подход, при котором большое количество вычислительных машин объединяются в вычислительный ресурс с использованием технологий виртуализации. На одной вычислительной машине могут находиться несколько виртуальных машин, которые используются разными пользователями. Таким образом, облака образуют пул конфигурируемых вычислительных ресурсов.
Существует много характеристик, описывающих облачные вычисления, но основными являются:
1. Общая инфраструктура - Использование технологий виртуализации позволяет отделить физическую среду. Это обеспечивает меньшую связность вычислительных ресурсов и компонентами серверов, тем самым делая решение более гибким.
2. Динамическое выделение ресурсов(масштабируемость) - Используя приложения по управлению ресурсами, автоматически выделяются дополнительные ресурсы, либо уменьшается доступный ресурс по требованию.
3. Сетевая доступность - возможность подключится к выделенным ресурсам из вне.
4. Управляемый учет - возможность вести учет и управление потребляемых ресурсов, для оптимизации используемых ресурсов.
Модели предоставления сервиса Программное обеспечение как сервис - пользователь получает возможность пользоваться неким программным продуктам, который находится в облаке. Пользователь не имеет никаких возможностей, кроме тех, которые предоставляет сама программа.
Платформа как сервис - пользователь получает в использование платформу, на которую может установить свое собственное приложение. В этом случае, пользователь не имеет возможность контролировать операционную систему, сетевые настройки, а также может применяться ряд других ограничений на разворачиваемое приложение.
Инфраструктура как сервис - Пользователь получает и управляет системой. Он получает контроль над операционной системой, приложениями, дисковым пространством и сетевым соединением, но не над инфраструктурой облака.
Так же существуют другие виды моделей, например такие как "Коммуникации как сервис". Они обеспечивают разворачивание Автономных Телефонных Станций (АТС) в облаке использую SIP телефонию, но на самом деле могут быть классифицированы как "Программное обеспечение как сервис". Их отличие заключается лишь в некоторых специфических компонентах.
5. МОДЕЛИ РАЗВЕРТЫВАНИЯ
Частное облако (англ. private cloud) — инфраструктура, предназначенная для использования одной организацией, включающей несколько потребителей (например, подразделений одной организации), возможно также клиентами и подрядчиками данной организации. Частное облако может находиться в собственности, управлении и эксплуатации, как самой организации, так и третьей стороны (или какой-либо их комбинации), и оно может физически существовать как внутри, так и вне юрисдикции владельца.Публичное облако (англ. public cloud) — инфраструктура, предназначенная для свободного использования широкой публикой.
Публичное облако может находиться в собственности, управлении и эксплуатации коммерческих, научных и правительственных организаций (или какой-либо их комбинации). Публичное облако физически существует в юрисдикции владельца — поставщика услуг.
Гибридное облако (англ. hybrid cloud) — это комбинация из двух или более различных облачных инфраструктур (частных, публичных или общественных), остающихся уникальными объектами, но связанных между собой стандартизованными или частными технологиями передачи данных и приложений (например, кратковременное использование ресурсов публичных облаков для балансировки нагрузки между облаками).
Общественное облако (англ. community cloud) — вид инфраструктуры, предназначенный для использования конкретным сообществом потребителей из организаций, имеющих общие задачи (например, миссии, требований безопасности, политики, и соответствия различным требованиям). Общественное облако может находиться в кооперативной (совместной) собственности, управлении и эксплуатации одной или более из организаций сообщества или третьей стороны (или какой-либо их комбинации), и оно может физически существовать как внутри, так и вне юрисдикции владельца.
Основами облачных технологий являются гипервизор и средства управления и мониторинга. Гипервизор это аппаратная или компьютерная схема, обеспечивающая виртуализацию. Он позволяет на одном компьютере управлять и выполнять параллельное выполнение многих независимых операционных систем, эмулируя при этом аппаратное обеспечение. Тем самым гипервизор позволяет перейти от физического подхода к логическому.
Гипервизоры делятся на следующие типы:
1. Автономный гипервизор (гипервизор типа 1) - гипервизоры типа работают непосредственно на оборудовании системы (Рис. 2).
2. На основе базовой ОС (гипервизор типа 2) - гипервизоры типа работают поверх основной операционной системы, которая обеспечивает поддержку устройств ввода/вывода, управлению памятью, а так же процессорным временем (Рис. 1).
В первом случае, гипервизор работает с физическим оборудованием – он управляет памятью, выделяет вычислительные ресурсы и т.д. Зачастую они представляют собой доработанную операционную систему, которая дает возможность более глубоко управлять ресурсами физического оборудования. Как пример, можно рассмотреть платформу VMWare ESX/ESXi. Во втором, случае гипервизору, являющимся программным обеспечением, которое устанавливается на полноценную операционную систему, приходится работать с ресурсами, которые были выделены ему операционной системой. Как пример можно рассмотреть систему KVM.
Средства управления представляют собой программные продукты, которые позволяют вести точную настройку большого количества гипервизоров, управление резервированием, миграцией и состоянием виртуальных машин.
6. ПРОБЛЕМЫ С БЕЗОПАСНОСТЬЮ
Гипервизоры обеспечивают выполнение нескольких операционных систем, но тем самым порождается проблема безопасности. Происходит это из-за того, что появляется новый слой (а в случае гипервизора типа 2 два новых слоя) которые могут представлять угрозу безопасности. Тем самым, необходимо обеспечивать защиту основной ОС (в случае использования гипервизора типа 2) и гипервизора. Несмотря на то, что система виртуализации должна изолировать гостевые среды, гарантировать это в общем случае нельзя. Происходит это потому, что, например взаимодействие между несколькими виртуальными машинами, находящимися на одном физическом оборудовании происходит через виртуальные сетевые интерфейсы внутри гипервизора, а, следовательно, взаимодействие происходит через общую память.Тем самым можно выявить следующие виды атак:
1. Атака на гостевую систему 2. 2.Атака на гипервизор, позволяющая получить доступ до памяти других гостевых систем, выполняющихся на данном сервере, а так же управлять им. Атака происходит из другой гостевой системы, которая находится на данном сервере.
3. Атака на гипервизор, позволяющая получить доступ до памяти других гостевых систем, выполняющихся на данном сервере, а так же управлять им. Атака происходит извне.
4. Атака на основную операционную систему, позволяющая полного контроля над сервером (в случае гипервизора типа 2) В случае использования публичных, общественных и гибридных облаков информация размещается на серверах, которые находятся за пределами доверенной зоны. Это так же порождает проблемы с безопасностью. Так, вся ответственность за техническую составляющую находится на лице, предоставляющего данную услугу. Тем самым, хранение информации на данных системах не может гарантировать их конфиденциальность и. Так же, при миграции виртуальных машин встает вопрос очистки виртуальных файловых хранилищ. Если память не очищается перед передачей ее другой виртуальной машине, имеется риск компрометации данных.
На данный момент вопросы безопасности данных в облаках практически не регулируются. А большинство организаций предоставляющих облачные вычисления снимают с себя всю ответственность за сохранность данных.
На пример, рассмотрим пользовательское соглашение компании Amazon, как одного из самых крупных игроков на данном рынке: «Сервис предоставляется «как есть». Мы и наши партнеры не даем никаких поручительств или гарантий…, что любое содержимое, Ваше или третьей стороны, будет в безопасности, не будет потеряно либо повреждено»
7. СПОСОБЫ ЗАЩИТЫ ДАННЫХ В ОБЛАЧНЫХ
ТЕХНОЛОГИЯХ
7.1 Соглашение об уровне обслуживания.Поскольку на данный момент отсутствуют нормативно правовые акты, регулирующие правила предоставления облачных ресурсов, то Соглашение об уровне обслуживания (СУО) является наиболее важным критерием выбора поставщика вычислительных ресурсов. К сожалению, на данный момент большинство поставщиков составляют СУО таким образом, чтобы брать на себя как можно меньше ответственности. Это означает, что для работы с конфиденциальными данными в облачных ресурсах необходимо выбирать поставщика с хорошо составленным СУО и четко определяющим ответственность сторон.
7.2 Установление защищенного канала до системы Для соединения с системой находящейся в облаке используется канал с шифрованием. Для установления защищенного канала могут использоваться такие технологии как VPN(виртуальные частные сети).
Тем самым, несмотря на то, что коммуникации осуществляются по сетям с низким уровнем доверия уровень доверия к каналу остается высоким, благодаря использованию средств криптографии (шифрования, аутентификации, инфраструктуры с открытыми ключами и предотвращения изменения передаваемых данных). Является наиболее простым решением, в тоже время очень действенным, защищающим от атаки MITM(Человек посередине). На самом деле, этот способ позволяет защитить лишь канал связи между системой находящейся в облаке. Вся информация, проходящая через систему, является открытой. Этот способ используется не только для связи с системами в облаках.
7.3 Использование разделения ролей для доступа к Так как вся гостевая система является лишь образом, состоящим из нескольких файлов, то администратор виртуальной инфраструктуры может в любой момент скопировать данные и запустить их на другом компьютере для исследования на наличие конфиденциальных данных.
Копирование этих данных - вопрос нескольких минут. Таким образом, утечка конфиденциальных данных со стороны недобросовестных администраторов виртуальных инфраструктур весьма реальна. Для защиты от этого можно использовать разделение ролей администратора виртуальной инфраструктуры и администратора безопасности. Это позволяет разделить обязанности внутри ЦОД и не позволит одностороннее изменение настроек безопасности. К сожалению, это разделение лежит на совести поставщика, предоставляющего доступ к ресурсам облачных технологий.
Примером такой технологии может служить средство, разработанное ООО «Код Безопасности» vGate, которое работает на базе систем VMware vSphere.
7.4 Сегментирование виртуальных машин Сегментация представляет собой разделение виртуальных машин на сегменты для обеспечения требованиям к разделению клиентов и безопасности. Оно позволяет полное разделение сетевого трафика, и разделение политиками управления доступом, даже если они работают на общем физическом оборудовании и с общей сетевой инфраструктурой. В случае создания частного облака это позволяет разделить, например, на сегменты виртуальные машины, относящиеся к бухгалтерии и виртуальные машины, относящиеся к отделу разработки. Есть возможность выделить эти сегменты для работы на разных сетевых интерфейсах.
7.5 Хранение информации в облаке в зашифрованном виде Этот метод заключается в шифровании криптографическими средствами каждого файла, который передается в облако на хранение. Таким образом, никто не сможет получить данные находящиеся в облаке, кроме тех лиц, которые обладают ключом для расшифрования данного файла. Данный способ очень хорошо подходит для частных лиц, либо малых организаций.
Однако при большом количестве лиц обладающих ключом данный метод обладает рядом недостатков, так как контролировать данный ключ становится проблематично.
7.6 Использование промежуточного (прокси) сервера для В данном способе используется оборудование, находящееся в доверенной среде. Все передаваемые данные проходят через него. Он отвечает за шифрование всех данных перед отправкой их в облако и расшифрование при запросе этих данных. Таким образом, ключ для шифрования/дешифрования известен лишь данному серверу. Он может вести журнал учета доступа к файлам. Так же использование промежуточного сервера делает работу с файлами прозрачной для пользователя.
7.7 Обработка обезличенных данных в облаке Использование данного метода заключается в передаче облаку данных, которые не могут быть использованы третьими лицами. Для этого передаются не данные в полном объеме, а лишь часть, которая не может однозначно привязана к сущностям используемых в системе.
Конфиденциальная информация, в то же время, находится в доверенной зоне предприятия.
8. ГОМОМОРФНОЕ ШИФРОВАНИЕ
Использование облачных вычислений дает много преимуществ, но для обработки данных в публичных «облаках» в общем случае необходимо работать с открытыми данными. Но для работы с конфиденциальными данными необходима аппаратура или хотя бы организационные меры по хранению ключей. К провайдерам облачных вычислений такие требования представить не представляется возможным. Это по определению несет в себе риски, так как мы не можем повлиять никоим образом на то, как это происходит на третьей стороне. Было бы гораздо безопаснее передавать данные в зашифрованном виде с тем, чтобы операции, которые производятся над этими данными, никоим образом не распространяло информацию об этих данных.На рисунке 1 представлена общая схема такого взаимодействия:
1. На первом этапе организация отправляет данные в зашифрованном 2. На втором этапе организация отправляет запрос на выполнения некоторых операций над этими данными 3. Программа, находящаяся в облаке, реализует вычисления над этими данными.
4. Обработанные данные возвращаются организации 5. Организация расшифровывает результат.
В 1978 году авторами известного алгоритма с открытым ключем RSA Майклом Дертузосом, Рональдом Риверстом и Леонардом Адлеманом было сформировано понятие гомоморфного шифрования. В их работе они описали концепцию гомоморфного шифрования, а также задались вопросами возможно ли такое шифрование в принципе и для каких алгебраических систем такой гомоморфизм существует. Их попытки потерпели неудачу, и было решено, что эта идея не является реализуемой.
Под формальным определением гомоморфного шифрования понимается криптографический примитив, представляющий собой функцию шифрования, удовлетворяющую дополнительному требованию гомоморфности относительно каких-либо алгебраических операций над открытым текстом.
Пусть – функция шифрования, где – ключ шифрования, а – открытый текст. Функция считается гомоморфной относительно операции op, если существует эффективный алгоритм, такой что любых при дешифровании будет получен открытый текст.
Как правило, рассматривается частный случай гомоморфного шифрования.
Для функции шифрования и операции над открытым текстом существует операция над закрытым текстом такая, что при Задачу вычисления над зашифрованными данными можно рассматривать в различных постановках. Например, данные могут сравниваться по
9. ГОМОМОРФНЫЕ СИСТЕМЫ ШИФРОВАНИЯ
Криптосистема RSA является одной из самых известных и популярных криптосистем. Она является гомоморфной относительно операции умножения открытых текстов.Пусть – составной модуль, – открытая экспонента В криптосистеме Эль Гамаля в циклической группе, если открытый шифрования выглядит следующим образом для сообщения где Свойство гомоморфности выглядит следующим образом:
Таким образом, криптосистема Эль Гамаля является гомоморфной относительно операции умножения.
Для шифрования открытого текста выбирается случайное число из и вычисляется Свойство гомоморфности выглядит следующим образом Надо заметить, что в данном случае интересными гомоморфными свойствами являются:
Произведением двух зашифрованных значений будет их сумма, то есть Ту же самую сумму можно получить, умножив Открытый текст можно умножить на константу возведя закрытый текст в степень, то есть при дешифровании будет получен открытый текст Последнее свойство, на самом деле не является свойством гомоморфности функции шифрования относительно умножения открытых текстов, так как умножение происходит на константу.
9.4 Модель Бракерски-Гентри-Вайкунтанатан 25 июня 2009 года аспирант Стэндфордского университета и стажер IBM Крейг Гентри предложил модель полностью гомоморфного шифрования, которая позволяла проводить глубокую обработку данных без их расшифровки. В алгоритме Гентри выполняются свойства гомоморфности относительно как умножения, так и сложения. Тем самым данную модель можно использовать в облачных вычислениях без ограничений. Передавая данные в облака, то есть в недоверенную зону, можно не задумываться об их конфиденциальности. Однако модель Гентри оказалась слишком непрактичной. С увеличением количества операций производимых над зашифрованным текстом сложность и размер шифр текста увеличивается с невероятной скоростью. И не смотря на то, что за последние несколько лет были произведены множество улучшений данной модели, она все еще остается скорее теоретической моделью, которая не применима на практике.
ОПИСАНИЕ ПРАКТИЧЕСКОЙ ЧАСТИ
В рамках данной работы были протестированы модель Гентри, криптосистема Пэйе и RSA и сравнены скорости шифрования данных и скорости операций гомоморфных свойств. Реализации были написаны на языке С++, использовались библиотеки NTL и HELib. Для каждой криптосистемы были реализованы выделены отдельные классы, которые содержали следующие функции:Генерация ключей (KeyGeneration) Шифрование (Encrypt) Дешифрование (Decrypt) Сложение (Addition) Умножение (Multiplication) В случае криптосистемы Пэйе умножение шифр тескта производилось на константу, что не является свойством гомоморфности. Тем не менее, данное свойство является интересным и позволяет использовать систему при тайном голосовании с весами для разных типов голосов.
В криптосистеме RSA функция сложения(Addition) реализована не была.
В ходе эксперимента были получены следующие результаты.
Гентри Пэйе *Для криптосистемы Пэйе умножение проводилось на константу.
Операция шифрования проводилась 1000 раз для каждой криптосистемы.
Операции умножения 10000 раз для каждой криптосистемы Операции сложения 10000 раз для каждой криптосистемы Размер числа был равен 64 битам.
Характеристики компьютера, на котором проводились замеры:
Процессор: Intel Core i5 2.6Ghz ОЗУ: 4Гб Жесткий диск: Intel 335 SSD 240 Gb ОС: Ubuntu 13.04 32-бит В ходе тестирования модели Гентри на умножение выяснилось, что операции занимают слишком много времени. Было решено прервать эксперимент. Так же резкое увеличение времени для модели Гентри происходило при увеличении размера числа.
ЗАКЛЮЧЕНИЕ
В ходе работы был проведен анализ методов зашиты облачных вычислений. Рассмотрен нормативно правовой аспект данной области.Рассмотрено гомоморфное шифрование, как наиболее перспективное направление в области защиты информации при использовании облачных вычислений. Проведены эксперименты производительности криптосистем RSA и Пэйе обладающих одним гомоморфным свойством и криптосистемы Бракерски-Гентри-Вайкунтанатана обладающей двумя гомоморфными свойствами (умножения и сложения). В ходе экспериментов выяснилось, что на данный момент криптосистема Гентри на практике не применима. В то же время, криптосистемы RSA и Пэйе могут использоваться в очень узконаправленных приложениях. Так, криптосистема Пэйе может использоваться при тайном голосовании, включая тайное голосование с весами, где различные типы голосов имеют различные веса.
СПИСОК ЦИТИРУЕМОЙ ЛИТЕРАТУРЫ
1. NIST Определение облачных вычислений http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf 2. Ronald L. Rivest, Len Adleman, Michael L. Dertouzos On data banks and privacy homomorphisms (1978) http://people.csail.mit.edu/rivest/RivestAdlemanDertouzosOnDataBanksAndPrivacyHomomorphisms.pdf 3. Ronald L. Rivest Voting, Homomorphic Encryption http://web.mit.edu/6.857/OldStuff/Fall02/handouts/L15-voting.pdf 4. Craig Gentry; Shai Halevi. "A Working Implementation of Fully Homomorphic Encryption" http://eurocrypt2010rump.cr.yp.to/9854ad3cab48983f7c2c5a2258e27717.5. SattvaQ Homomorphic encryption http://www.sattvaq.com/jai/wp-content/uploads/2013/02/Homomorphicencryption.pdf 6. B. Barak Fully Homomorphic Encryption http://www.cs.bu.edu/~reyzin/teaching/s11cs937/notes-boaz-1.pdf 7. Вик Уинклер Облачные вычисления: Вопросы безопасности в виртуальных облаках http://technet.microsoft.com/ruru/magazine/hh641415.aspx 8. Cisco Безопасная сегментация в унифицированной архитектуре центров обработки данных Cisco http://www.cisco.com/web/RU/downloads/broch/white_paper_c11pdf 9. Ronald L. Krutz, Russel Dean Vines, Cloud Security: Comprehensive Guide to Secure Cloud Computing, Wiley Publishing, 10. Н.П. Варновский, А.В. Шокуров Гомоморфное шифрование http://www.ispras.ru/ru/proceedings/docs/2007/12/isp_12_2007_27.pdf 11.K. Lauter, M.Naehrig, V.Vaikuntanathan http://research.microsoft.com/pubs/148825/ccs2011_submission_412.pdf
ПРИЛОЖЕНИЕ
Ниже представлен заголовочный файл использовавшийся для криптосистемы Гентри:#include "FHE.h" #include "EncryptedArray.h" #include #include #include #include class Gentry void KeyGeneration();
Ctxt Encrypt(Ctxt plaintext);
Ctxt Decrypt(Ctxt encryptedText);
Ctxt Addition(Ctxt encryptedText1, Ctxt encryptedText2);
Ctxt Multiplication(Ctxt encryptedText1, Ctxt encryptedText2);
Ниже представлен заголовочный файл использовавшийся для криптосистемы RSA:
#include #include class Rsa void KeyGeneration();
ZZ Encrypt(ZZ plaintext);
ZZ Decrypt(ZZ encryptedText);
ZZ Addition(ZZ encryptedText1, ZZ encryptedText2);
ZZ Multiplication(ZZ encryptedText1, ZZ encryptedText2);
Ниже представлен заголовочный файл использовавшийся для криптосистемы Пэйе:
#include #include class Pailler void KeyGeneration();
ZZ Encrypt(ZZ plaintext);
ZZ Decrypt(ZZ encryptedText);
ZZ Addition(ZZ encryptedText1, ZZ encryptedText2);
ZZ Multiplication(ZZ encryptedText1, ZZ encryptedText2);