Министерство образования и науки Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования «Уральский федеральный университет имени первого Президента России Б.Н.Ельцина» КАФЕДРА ТЕХНИЧЕСКОЙ ФИЗИКИ ОТЧЕТ по лабораторной работе КРИПТОГРАФИЧЕСКИЕ АЛГОРИТМЫ. АЛГОРИТМ КРИПТОПРЕОБРАЗОВАНИЯ – ГОСТ 28147-89 Студент: Юдина Ю. В. Группа: Фт-420203 Преподаватель: Александров О. Е. Екатеринбург 2015 Введение Для защиты данных от нежелательного доступа используют различные криптографические методы. Они опираются на свойства самой информации и не используют свойства ее материальных носителей, особенности узлов ее обработки, передачи и хранения. Можно сказать, что криптографические методы строят барьер между защищаемой информацией и реальным или потенциальным злоумышленником из самой информации. Для разъяснения принципов построения шифров предлагаются данные методические материалы к лабораторной работе по курсу «Теория информационных систем». Под криптографической защитой подразумевается шифрование данных. Раньше, когда эта операция выполнялось человеком вручную или с использованием различных приспособлений, и при посольствах содержались многолюдные отделы шифровальщиков, сдерживалось проблемой применения развитие криптографии шифров. Появление цифровых электронно-вычислительных машин изменило все коренным образом и в этой сфере. С одной стороны, взломщики шифров получили в свои руки чрезвычайно мощное орудие, с другой стороны, барьер сложности реализации исчез, и для создателей шифров открылись практически безграничные перспективы. Все это определило стремительный прогресс криптографии в последние десятилетия. Российская Федерация имеет свой стандарт шифрования. Этот стандарт закреплен ГОСТом №28147-89, принятом, как явствует из его обозначения, еще в 1989 году в СССР. 2 Цель: ознакомиться с алгоритмом криптопреобразования ГОСТ 2814789, выполнить практическое задание: Дополнить программу GOST подсчетом времени, затрачиваемого на выполнение основного шага криптопреобразования и базовых циклов. Дополнить программу GOST шифрованием/дешифрованием произвольного файла, подсчетом затрачиваемого времени и скорости шифрования/дешифрования. Ход работы: 1) Блок данных – единица обработки информации, в которой находятся алгоритмы для криптографических преобразований, т.е. шифрования и дешифрования. – ну опять. какой алгоритм засунут в блок? 2) Таблица замен является вектором, содержащим восемь узлов замены. Каждый узел замены, в свою очередь, является вектором, содержащим шестнадцать 4-битовых элементов замены, которые можно представить в виде целых чисел от 0 до 15, все элементы одного узла замены обязаны быть различными. Таким образом, таблица замен может быть представлена в виде матрицы размера 8x16 или 16x8, содержащей 4-битовые заменяющие значения. Для языков программирования, в которых двумерные массивы расположены в оперативной памяти по строкам, естественным является первый вариант (8x16). Тогда узлы замены будут строками таблицы замен. Таким образом, общий объем таблицы замен равен: 8 узлов x 16 элементов/узел x 4 бита/элемент = 512 бит = 64 байта. Таблица замен является дополнительным 512-битовым ключом, т.е. используется для шифрования. Таблица замен является долговременным ключевым элементом, то есть действует в течение гораздо более длительного срока, чем отдельный ключ. 3 Предполагается, что она является общей для всех узлов шифрования в рамках одной системы криптографической защиты. Даже при нарушении конфиденциальности таблицы замен стойкость шифра остается чрезвычайно высокой и не снижается ниже допустимого предела. Таблица замен необходима для поблочной замены 32-битного значения полученного в результате сложения младшей половины преобразуемого блока с используемым элементом ключа. Замена необходима для обеспечения криптостойкости алгоритма. – роль таблицы в повышении криптостойкости не раскрыта 3) Ключом в данном алгоритме служит массив из восьми 32-битных чисел. Таким образом, длина ключа составляет 256 бит. Ключ можно представить как таблицу, в которой 8 строк и 32 столбца. Такая конфигурация ключа необходима для работы алгоритма. Ключ необходим для шифрования/расшифровки сообщений (данных). Ключ – это секретный параметр криптопреобразования. - ок 4) В готовой программе шифрованные данные будут тождественны исходным в случае, когда ключ симметричный и все элементы таблицы замен единицы. Однако в реальности нельзя подобрать такие ключ и таблицу замен, т.к. в этом случае данный алгоритм являлся бы не криптостойким. – повтор непроверенного утверждения. 5) Гамми́рование заключающийся в — «наложении» метод симметричного шифрования, последовательности, состоящей из случайных чисел, на открытый текст. — прям таки из случайных? 6) Имитовставка — специальный набор символов, который добавляется к сообщению и предназначен для обеспечения его целостности и аутентификации источника данных. Имитовста́вка обычно применяется для обеспечения целостности и защиты от фальсификации передаваемой информации. – а необычно как можно применять? 4 7) Гаммирование с обратной связью похоже на режим гаммирования и отличается от него только способом выработки элементов гаммы – очередной элемент гаммы вырабатывается как результат преобразования по циклу 32-З предыдущего блока зашифрованных данных, а для зашифрования первого блока массива данных элемент гаммы вырабатывается как результат преобразования по тому же циклу синхропосылки. Этим достигается зацепление блоков – каждый блок шифртекста в этом режиме зависит от соответствующего и всех предыдущих блоков открытого текста. Поэтому данный режим иногда называется гаммированием с зацеплением блоков. На стойкость шифра факт зацепления блоков не оказывает никакого влияния. Шифрование в режиме гаммирования с обратной связью обладает теми же особенностями, что и шифрование в режиме обычного гаммирования, за исключением влияния искажений шифртекста на соответствующий открытый текст. -ок 8) Самым быстрым алгоритмом шифрования является простая замена, так как его реализация самая простая (На практике было произведено сравнение времени выполнения шифрования для простой замены и для гаммирования). Режим простой замены принимает на вход данные, размер которых кратен 64-м битам. Результатом шифрования является входной текст, преобразованный блоками по 64 бита в случае зашифрования циклом «32-З», а в случае расшифрования — циклом «32-Р». Режим гаммирования принимает на вход данные любого размера, а также дополнительный 64-битовый параметр — синхропосылку. В ходе работы синхропосылка преобразуется в цикле «32-З», результат делится на две части. Полученное объединением обеих преобразованных частей значение, называемое гаммой шифра, поступает в цикл «32-З», его результат порязрядно складывается по модулю 2 с 64-разрядным блоком входных данных. Если последний меньше 64-х разрядов, то лишние разряды 5 полученного значения отбрасываются. Полученное значение подаётся на выход. Если ещё имеются входящие данные, то действие повторяется: составленный из 32-разрядных частей блок преобразуется по частям и так далее. Таким образом, видно, что гаммирование по своей реализации сложнее просто замены, и ему необходимо больше времени на выполнение. Режим гаммирования с обратной связью также принимает на вход данные любого размера и синхропосылку. Блок входных данных поразрядно складывается по модулю 2 с результатом преобразования в цикле «32-З» синхропосылки. Полученное значение подаётся на выход. Значение синхропосылки заменяется в случае зашифрования выходным блоком, а в случае расшифрования — входным, то есть зашифрованным. Если последний блок входящих данных меньше 64 разрядов, то лишние разряды гаммы (выхода цикла «32-З») отбрасываются. Если ещё имеются входящие данные, то действие повторяется: из результата зашифрования заменённого значения образуется гамма шифра и т.д. Данный режим также требует больших временных затрат. – ну зачем столько лишних слов? 9) При дешифровании блока данных в режиме «гаммирования с обратной связью», соответствующего блок и открытых предыдущего данных блоков зависит от зашифрованных данных. Поэтому, если внести искажения в зашифрованный блок, то после дешифрования искаженными окажутся два блока открытых данных – соответствующий и следующий за ним, причем искажения в первом случае будут носить тот же характер, что и в режиме «гаммирования», а во втором случае – как в режиме простой замены. Другими словами, в соответствующем блоке открытых данных искаженными окажутся те же самые биты, что и в блоке шифрованных данных, а в следующем блоке открытых данных все биты независимо друг от друга с вероятностью 1/2 изменят свои значения. В режиме простой 6 замены отсутствуют шифрования зависимости блоков между открытого текста, операциями поэтому распараллеливание возможно. В режиме гаммирования гамма накладывается независимо на различные блоки открытого текста. Сам процесс выработки гаммы представляет собой суммирование по модулю 232 и 2 32 -1 содержимого соответствующих полублоков с константами. Данная рекурсия легко преобразуется к параллельному виду. Таким образом, режим гаммирования пригоден для реализации на параллельном вычислителе. В режиме гаммирования с обратной связью гамма формируется на основе предыдущего блока зашифрованных данных. Этот режим не распараллеливается. – поясните, как вы собираетесь вырабатывать элементы гаммы параллельно Вывод В ходе данной лабораторной работы ознакомились с алгоритмом криптопреобразования – ГОСТ 28147-89 и получили практические навыки его использования. 7