В этой статье мы рассмотрим один из простых алгоритмов шифрования, алгоритм под названием ChaCha, о предшественнике которого, под названием Salsa20, мы уже упоминали. Алгоритм ChaCha очень известен и широко применяется, а также имеет за собой стандартизированное в RFC описание, которое в упрощенном виде будет показано далее.
Читать далееМетка: криптография
Программирование алгоритма цифровой подписи на основе эллиптических кривых
Сегодня мы попытаемся сделать еще один шаг в сторону криптографии, но уже не в попытке сокрытия данных под видом «случайного шума» из байтов, генерируемого современными алгоритмами шифрования, а в несколько ином направлении. В этой статье мы прикоснемся к таким понятиям как доверие и подтверждение подлинности, познакомившись (впервые в этом блоге) с асимметричной криптографией и эллиптическими кривыми.
Эллиптические кривые — это очень привлекательный, интересный и сложный математический объект, поэтому сами механизмы на основании, которых будут работать механизмы подписания и проверки, мы объясним с необходимым минимализмом, подробности вы сможете найти в предложенных ссылках в конце статьи.
Читать далееРеализации алгоритмов шифрования Raiden и RC5
И вновь в нашем блоге мы решили затронуть тему криптографии, но сделать это на примере двух разных алгоритмов Raiden и RC5. Оба алгоритма разрабатывались разными разработчиками и принадлежат к разным семействам, но мы покажем, что может быть общего между ними и как это можно использовать.
Читать далееРеализация поточной системы шифрования Salsa20
В этом скромном рецепте мы вам покажем, как реализовать систему поточного шифрования Salsa20 от уже знакомого нам Даниэля Бернштейна (того самого, кто придумал redo) в D. Сразу скажем, что наша реализация — это голый порт с C99 с некоторыми улучшениями, но нам показалось, что неплохо бы было поделиться с читателями этим незначительным портом.
Читать далееРеализация блочного криптографического алгоритма Threefish
В этой статье мы покажем реализацию симметричного блочного криптографического алгоритма Threefish на языке программирования D, реализацию функций настройки алгоритма, шифрования и дешифрования одного блока, что, дает скоростной и практичный криптографический примитив для использования в своих проектах.
Читать далееАлгоритм шифрования XTEA
Иногда возникает потребность в реализации достаточно быстрого, но вместе с тем довольно простого алгоритма блочного шифрования, который не был бы слишком критичен к ресурсам и при этом не был бы слишком строгим криптографическим методом.
В этом рецепте, я покажу несколько классов, реализующих алгоритм шифрования XTEA с разными размерами блока и разными размерами ключей, которые вы можете использовать в своих приложениях, которые рассчитаны на сокрытие некоторого объема информации, но при этом не столь требовательны к безопасности шифруемых данных
Создаем свою программу шифрования файлов на RC4
В этой статье я попробую рассказать вам, дорогие читатели блога, об одной из своих первых попыток написания самодельной программы шифрования файлов и показать вполне рабочий пример простого алгоритма шифрования.
А что это будет за алгоритм и как будет организована программа вы узнаете далее… Читать далее
Простая реализация алгоритма шифрования BlowFish
Эта реализация была написана ради эксперимента в области реализации криптографических алгоритмов, просто для того, чтобы попробовать кое-что новое.
В мою реализацию BlowFish, созданную на основе описания из книги Брюса Шнайера «Прикладная криптография» включено шифрование и дешифрование массивов байтов, строк, а также показаны простые процедуры шифрования файлов.
Шифр Виженера
Меня всегда притягивали различные шифры и коды, но вплотную я этим не интересовался, хотя пробовал сделать реализацию некоторых простых методов шифрования. Одним из таких простых для воплощения (как и для взлома) шифров является полиалфавитный шифр Виженера, который является модифицированным шифром Цезаря (это простой шифр с заменой, в котором каждая буква латинского алфавита заменяется буквой, стоящей на некоторой позиции, сдвинутой на некоторый шаг от позиции исходной буквы в алфавите).