ВВЕДЕНИЕ 3
1. Описание работы алгоритмов шифрования 9
1.1 Схема шифрования Эль-Гамаля 9
1.1.1 Задача дискретного логарифмирования в конечных полях 10
1.1.2 Аспекты выбора ключей шифрования 11
1.1.2.1 Выбор простого модуля 11
1.1.2.2 Нахождение первообразного корня по простому модулю 13
1.1.2.3 Генерация закрытого ключа 15
1.1.3 Операции шифрования и расшифрования в схеме 16
1.2 Криптосистема AES 17
1.2.1 Общее описание системы 18
1.2.2 Описание функций раундов 19
1.2.3 Процедура расширения ключа 21
1.2.4 Операции шифрования и расшифрования 22
1.2.5 Криптостойкость 24
1.3 Гаммирование цепочки блоков 26
1.3.1 Функция хеширования SHA-3 27
1.3.1.1 Функция перестановок 28
1.3.2 Алгоритм гаммирования цепочки блоков 30
1.3.3 Криптостойкость 31
2. Описание работы программного продукта 32
2.1 Информация о средствах проектирования 32
2.2 Описание функций и экранных форм 33
2.3 Аспекты реализации основных модулей 37
3. Качественные показатели работы программного продукта 39
3.1 Результаты тестов модуля AES 39
3.2 Результаты тестов модуля Blockchain 41
3.3 Результаты тестов модуля ElGamal 43
3.4 Итоговые результаты по работе всех модулей 45
ЗАКЛЮЧЕНИЕ 46
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 48
ПРИЛОЖЕНИЕ
В условиях интенсивного внедрения информационных технологий во все виды деятельности общества, государства и каждой отдельной личности, твёрдо нарастает вопрос о конфиденциальности и защите информации, тем или иным образом циркулирующей в компьютерных системах. Для каждого из рассмотренных субъектов существуют свои особенные виды информации, которые подлежат защите и контролю доступа. Примером таких сведений для государства являются как сведения, составляющие государственную тайну: места дислокации ядерного оружия, состав и размер вооружений; так и сведения об управлении стратегически важных объектов энергетики, промышленности и инфраструктуры. Для каждой отдельной личности примерами критичной информации могут являться персональные данные, личные переписки, а также сведения, компрометирующие личность.
В течение всей истории человечества разрабатывались и совершенствовались различные способы защиты информации от нежелательного ознакомления и использования. Исторически сложилось так, что первой областью для прикладного применения методов защиты явилось военное дело. В условиях военных действий необходимо было обеспечить противодействие утечкам информации о стратегических планах: передвижения войск, организация обеспечения войск необходимыми припасами. В связи с ростом количества информации, интенсивности её обмена и развития технологий передачи сообщений менялись способы её защиты, появлялись новые области применения средств обеспечения безопасности.
Сокрытие конфиденциальных данных осуществлялось, в основном, двумя наиважнейшими методами - применением средств стеганографии и криптографии. В данной работе рассматриваются только методы криптографической защиты, рассмотрим его подробнее.
Данный способ реализует возможность хранения информации в открытом виде, не опасаясь за её конфиденциальность, но только с одной оговоркой - необходимо соблюдение строгой политики управления ключами шифрования. Криптографическая защита информации позволяет с высокой надёжностью защитить критичные данные от несанкционированного ознакомления и использования.
В настоящей работе содержится информация о способе организации системы криптографической защиты данных, хранящихся на съёмном носителе. Целью данной работы является разработка программного продукта позволяющего производить шифрование и расшифрование файлов с целью не предупредить несанкционированное ознакомление и использование последних. Разработанный программный продукт позволяет реализовать криптосистему по гибридному типу, либо производить шифрование только с использованием симметричной или ассиметричной криптографии. Гибридная криптосистема - это система шифрования, которая в своей реализации содержит симметричный и асимметричный способы шифрования данных. Симметричная криптосистема выполняет операцию зашифрования и расшифрования с одним и тем же ключом, в то же время асимметричная криптосистема использует два ключа: один для шифрования, другой - для расшифровки. Также для защиты целостности зашифрованных данных и противодействия анализу и атакам предлагается использовать технологию Blockchain и гаммирование. Содержится описание и обоснование выбора используемых криптографических средств защиты.
Дадим описание работы системы при зашифровке с использованием всех модулей:
1. Пользователь вводит закрытый ключ в схеме асимметричной криптографии. К нему генерируется открытый ключ.
2. Генерируется ключ симметричной криптосистемы.
3. Программа разбивает входной поток данных на блоки равного размера и шифрует его методом симметричного шифрования по сгенерированному ключу.
4. Генерируется последовательность бит равная блоку, затем складывается с первым блоком по модулю 2. С помощью функции свёртки вычисляется хэш-значение от первого блока, которое затем складывается со вторым блоком. Операция продолжается до тех пор, пока не будет зашифрован последний блок. Затем ключ симметричной криптосистемы зашифровывается открытым ключом асимметричной системы.
5. Происходит окончательное зашифрование всех данных согласно асимметричной криптосистеме (опционально).
При расшифровании данных все операции алгоритма выполняются в обратном порядке, то есть:
1. Пользователь вводит закрытый ключ асимметричной системы шифрования.
2. Происходит расшифрование всех данных по асимметричной схеме, если ранее было задано соответствующая опция.
3. Происходит расшифрование цепочки блоков начиная с последнего и заканчивая первым.
4. Расшифровывается ключ симметричной системы. Происходит
расшифровка блоков по алгоритму симметричного шифрования.
5. Данные пользователя расшифровываются окончательно.
В качестве симметричной криптосистемы был выбран Advanced Encryption Standard (AES), также известный как Rijndael. AES - это симметричный алгоритм блочного шифрования. Отличается простотой реализации и скоростью шифрования данных. AES является одним из наиболее распространённых систем шифрования. [1] Агенство национальной безопасности США постановило, что алгоритм AES обеспечивает необходимую надёжность и стойкость защиты, применимую для зашифровки данных, составляющих государственную тайну.
В качестве асимметричной криптосистемы предлагается использовать схему Эль-Гамаля, основанную на математической сложности операции логарифмирования в конечных полях. [2] Данная система может работать как в режиме шифрования данных, так и в режиме электронно-цифровой подписи, однако нами она будет пользоваться только для шифрования и расшифровки.
Так как в схему Эль-Гамаля вводится случайная величина, шифр Эль-Гамаля можно назвать шифром многозначной замены. Из-за случайности выбора одного из параметров такую схему еще называют схемой вероятностного шифрования. Вероятностный характер шифрования является преимуществом для схемы Эль-Гамаля, так как у схем вероятностного шифрования наблюдается большая стойкость по сравнению со схемами с определенным процессом шифрования. Недостатком схемы шифрования Эль-Гамаля является удвоение длины зашифрованного текста по сравнению с начальным текстом.
В чистом виде технология Blockchain используется в криптовалютах для подтверждения подлинности транзакций. Данная технология работает следующим образом:
1. От блока xiвычисляется свёртка H(xi) и записывается в блок xi+1.
2. Аналогичная операция производится над последующими блоками.
Технология Blockchain позволяет вызвать порчу всей цепи блоков при несанкционированном изменении какого-либо из них. Так, чтобы изменить один из блоков без потери подлинности, потребуется пересчитать всю цепочку от начала изменяемого блока, а для этого нужны огромные вычислительные мощности. [3]
В нашем случае предлагается не дописывать хэш-значение каждого блока к следующему, а использовать его в качестве гаммы для сложения по модулю 2. При таком подходе нужно учитывать, что хэш-значение должно равняться длине блока.
Гаммирование с применением технологии Blockchain позволяет вызвать лавинный эффект повреждения всех блоков при несанкционированном изменении данных, если это нужно, например, для анализа и подготовки атаки. Так, при изменении одного из блоков, шифротекст «сломается», и при расшифровании мы получим совершенно другие выходные данные, так как даже при небольших изменениях входных данных значение хэш-функции изменяется довольно сильно.
В качестве хэш-функции предлагается использовать алгоритм SHA-3, известный как Keccak. Размер хэш-значения варьируется от 0 до 264 бит, количество раундов по умолчанию - 24. Хеш-функции семейства SHA-3 построены на основе конструкции криптографической «губки», в которой данные сначала «впитываются» в губку, при котором исходное сообщение подвергается многораундовым перестановкам, затем результат «отжимается» из губки. На этапе «впитывания» блоки сообщения суммируются по модулю 2 с подмножеством состояния, которое затем преобразуется с помощью функции перестановки. На этапе «отжимания» выходные блоки считываются из одного и того же подмножества состояния, изменённого функцией перестановок. Размер части состояния, который записывается и считывается, называется «скоростью», а размер части, которая нетронута вводом/выводом, называется «емкостью». [5]
Выбор данного алгоритма хэширования продиктован его новизной и отсутствием атак на алгоритм. Предполагается, что в ближайшем будущем атаки для успешного взлома SHA-3 не будут найдены, но и в этом случае всегда имеется возможность заменить алгоритм свёртки без потери работоспособности продукта, так как хеширование является лишь одним из модулей программы.
Так как все представленные модули изучены достаточно хорошо, существует огромное количество литературы по предполагаемым к реализации алгоритмам. Описания криптосистем содержатся в классических книгах по прикладному криптоанализу известных авторов, таких как Брюс Шнайер, Марк Стамп, Ричард Лоу. Наряду с описанием алгоритмов и доказательств криптостойкости приведены реализации систем на различных языках программирования, либо представлен псевдокод того или иного алгоритма.
Реализованный программный продукт позволяет совершать манипуляции по шифрованию и расшифрованию пользовательских данных с выбором алгоритмов, настройкой политики управления ключами и политики управления данными. Выбор опций шифрования целиком и полностью ложится на пользователя.
Программный продукт имеет под собой выверенную и научно обоснованную теоретическую базу, которая представлена в настоящей работе. Криптостойкость всех методов шифрования, использующихся в программе, теоретически доказана или проверена временем. Данное программное обеспечение может применяться в «боевых» условиях, когда требуется обеспечить приемлемую конфиденциальность информации и высокую степень защиты от взлома.
Программное обеспечение обладает удобным интуитивным графическим интерфейсом, имеет все необходимые элементы управления, позволяющие пользователю по достоинству оценить удобство и функциональность программы.
Программный продукт содержит следующие модули:
• Схема шифрования Эль-Г амаля
• Алгоритм шифрования Advanced Encryption Standard (AES)
• Гаммирование цепочки блока с использованием технологии Blockchain
Наличие представленных модулей позволяет совершать шифрование в нескольких режимах, в зависимости от использования того или иного модуля. Например, ключи AES и блокчейна могут быть вшиты в шифротекст в зашифрованном виде алгоритмом ElGamal. Или же ключи каждого модуля могут быть сгенерированы независимо, что обеспечивает тройную защиту от несанкционированного ознакомления и использования пользовательских данных. Выбор рабочих модулей и управление ключами шифрования предоставляются пользователю непосредственно, что обеспечивает гибкость программного обеспечения.
Экспериментальная часть работы подтверждает применимость программного продукта для шифрования данных реальных объёмов за приемлемое время, предоставляет оценку временных затрат каждого модуля на щифрование и расшифрование файлов различного размера.
1. Biryukov, A. Related-key Cryptanalysis of the Full AES-192 and AES-256 [Текст] / A. Biryukov, D. Khovratovich // Advances in Cryptology - 2009.
- 19 с.
2. ElGamal, T A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms [Текст] / Taher ElGamal // IEEE Transactions on Information Theory. - 1985. - 9 c.
3. Stamp, M. APPLIED CRYPTANALYSIS. Breaking Ciphers in the Real World [Текст]: учебное пособие / Mark Stamp, Richard M. Low. - М.: WILEY-INTERSCIENCE, 2007. - 402 с.
4. Blockchain / [Электронный ресурс]. - Режим доступа: URL:
https: //habrahabr.ru/post/335994 (20.08.2017).
5. Morris J. Dworkin, SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions [Текст] // Federal Inf. Process. Stds. (NIST FIPS) - 202. - 2015. - 29 c.
6. Смарт, Н. Криптография [Текст]: учебное пособие / Н. Смарт. - М.: Техносфера, 2005. - 200 с.
7. Илюшечкин, Е. А. ПРАКТИЧЕСКИЕ АСПЕКТЫ ГЕНЕРАЦИИ КЛЮЧЕЙ ДЛЯ КРИПТОСИСТЕМЫ ЭЛЬ-ГАМАЛЯ. [Текст] / Е. А. Илюшечкин, А. А. Лаптев // Математические структуры и моделирование. - 2011. - №22. - С.131 - 138.
8. Фергюсон, Н. Практическая криптография [Текст]: учебное пособие / Н. Фергюсон, Б. Шнайер. - М.: Диалектика, 2005. - 420 с.
9. Courtois, N. Cryptanalysis of Block Ciphers with Overdefined Systems of Equations [Текст] / Nicolas Courtois, Josef Pieprzyk // Advances in Cryptology - 2002. - С. 267—287.
10. Алгоритм SHA3-256 защищён от взлома с помощью квантовых компьютеров / [Электронный ресурс]. - Режим доступа: URL: https://coinspot.io/analysis/algoritm-sha3-256-zashhishhyon-ot-vzloma-s- pomoshhyu-kvantovyh-kompyuterov/(21.10.2016).