- •Курсовая работа
- •Задание на курсовую работу студентам
- •1.Тема работы: «Потоковый шифр Salsa20»
- •3.Содержание расчётно-пояснительной записки
- •Реферат
- •Перечень условных обозначений и сокращений
- •1 Описание алгоритма шифрования salsa20, основные понятия и базовые операции 10
- •2 Основные функции алгоритма salsa20 13
- •3 Демонстрация работы алгоритма salsa20 22
- •1 Описание алгоритма шифрования salsa20, основные понятия и базовые операции
- •1.1 Преимущества и применение
- •1.2 Основные понятия и базовые операции
- •2 Основные функции алгоритма salsa20
- •2.1 Функция quarterround(y)
- •2.2 Функция rowround(y)
- •2.3 Функции columnround(y) и doubleround(y)
- •2.4 Функция littleendian(b)
- •2.6 Функция расширения ключа для Salsa20
- •3 Демонстрация работы алгоритма salsa20
- •3.1 Функция шифрования Salsa20
- •3.2 Демонстрация работы алгоритма Salsa20 в среде Mathcad
- •Перечень источников
3 Демонстрация работы алгоритма salsa20 22
3.1 Функция шифрования Salsa20 22
3.2 Демонстрация работы алгоритма Salsa20 в среде Mathcad 22
ВЫВОДЫ 28
В ходе курсовой работы было проведено изучение и моделирование потокового алгоритма шифрования Salsa20. Для этого сначала было проведено изучение алгоритма: основные принципы работы симметричных потоковых шифров, к которым относится Salsa20, его основные преимущества и недостатки, сфера применения. Изучены понятия , которые применяются для описание алгоритма, а также выполнена реализация базовых операций в среде Mathcad. 28
На втором этапе работы было проведено изучение работы основных функций алгоритма шифрования Salsa20 и их моделирование в среде Mathcad с помощью базовых операций, определённых ранее. 28
На последнем этапе было проведено изучение и моделирование механизма шифрования сообщений Salsa20 с помощью функций, смоделированных предыдущем этапе. Для этого вначале был выбран ключ, число “nonce” и сообщение длинны l. С помощью ключа и числа “nonce” были получены значения n, которые в дальнейшем были использованы для получение гамма-шифры с помощью процедуры расширения ключа. 28
В заключении было осуществлено шифрование сообщения с помощью алгоритма шифрования Salsa20 и получение шифр-текста, а затем осуществлено его расшифрование и проверка правильности работы алгоритма. 28
Поскольку расшифрованное сообщение совпадает с исходным сообщением, то моделирование работы алгоритма шифрования Salsa20 выполнено успешно. 28
ПЕРЕЧЕНЬ ИСТОЧНИКОВ 29
В 2005 году на конкурсе «eSTREAM» была представлена система поточного шифрования Salsa20, разработанная Даниэлем Бернштейном. Алгоритм прошёл до третьего раунда конкурса без каких-либо изменений и стал победителем «eSTREAM» в первом профиле (поточные шифры для программного применения с большой пропускной способностью). 20-раундовый потоковый шифр Salsa20 несомненно быстрее чем AES и рекомендован разработчиком для типичных криптографических приложений.
В данной ПЗ описывается алгоритм шифрования Salsa20 и его реализация при помощи среды Mathcad.
В первой части поясняются особенности работы поточных шифров и Salsa20 в частности, краткое описание принципа работы, основные достоинства и недостатки, а также базовые операции, реализуемые в алгоритме шифрования и их реализация в среде Mathcad.
Во второй части приведено описание основных функций, используемых в алгоритме Salsa20, а также их реализация в среде Mathcad.
В третьей части описывается механизм шифрования и расшифрования сообщения с помощью алгоритма Salsa20. Работа алгоритма шифрования демонстрируется в среде Mathcad.
Курсовой проект посвящён изучению и анализу работы симметричных потоковых шифров на примере алгоритма шифрования Salsa20. Это позволяет реализовывать и применять алгоритмы шифрования на практике.
1 Описание алгоритма шифрования salsa20, основные понятия и базовые операции
1.1 Преимущества и применение
Алгоритм шифрования Salsa20 является синхронным потоковым шифром, а следовательно в той или иной степени имеет соответствующие преимущества и недостатки потоковых шифров.
Поточный шифр - это симметричный шифр, в котором все символы открытого текста преобразуются в символы шифрованного, в зависимости и от используемого ключа, и от его места в потоке открытого текста, где шифрование проводится над каждым битом либо байтом исходного (открытого) текста с использованием гаммирования. Именно поэтому важнейшим преимуществом таких шифров перед другими является высокая скорость шифрования, отсутствует эффект размножения ошибок, и простая реализация за счёт простых операций.
Помимо перечисленных преимуществ поточных шифров Salsa20 имеет и свои. Благодаря тому, что преобразования каждого столбца и каждой строки не зависят друг от друга, вычисления, необходимые для шифрования, легко распараллеливаются. Это даёт существенный выигрыш в скорости для большинства современных платформ. Алгоритм практически не имеет накладных вычислений, необходимых для запуска цикла шифрования. Это так же относится к смене ключа. Многие шифросистемы рассчитывают на предварительные вычисления, результаты которых должны храниться в кэше первого уровня (L1) процессора. Так как они зависят от ключа, вычисления придётся проводить заново. В Salsa20 же достаточно просто загрузить ключ в память.
Атаки на полную Salsa20 до сих пор небыли опубликованы, однако уже опубликованы атаки на Salsa20/5 и Salsa20/8 со сложностью по времени 2165 и 2251 соответственно, которые основаны на усеченном дифференциальном криптоанализе.
Основным недостатком поточных шифров, в частности Salsa20, является сложность обмена ключом между сторонами, а также невозможность использования такого шифра в механизмах формирования электронной цифровой подписи и сертификатов, так как ключ известен каждой стороне.
Исходя из вышеприведённых преимуществ и недостатков Salsa20 набирает популярность и находит применение в тех случаях, когда необходимо обеспечить шифрование данных «на лету»: в защищенных сетевых протоколах транспортного уровня, для обеспечения конфиденциальности данных в виртуальных частных сетях, создания защищённых каналов связи, в алгоритмах создания криптовалюты, а также во вредоносных программах.
