С развитием технологий пользователи по всему миру, а также программисты и разработчики начали сталкиваться с вопросом сохранения конфиденциальности информации. Интернет-технологии и хакерские атаки начали ставить под угрозу соответствующее направление. Так появились различные способы шифрования данных.
В данной статье будет рассказано о том, что это такое, раскрыто понятие криптографии, рассмотрены основные способы, которыми можно защитить те или иные данные. Предложенная информация окажется полезной как опытным программерам, так и начинающим ПК-пользователям.
Понятие криптографии
Криптография также нередко называется криптологией. Это – искусство передачи информации электронного или иного типа так, чтобы без ключа шифрования считать ее было невозможно. Термин произошел от нескольких греческих слов:
- криптос – скрытый;
- графо – писать.
Направление науки по составлению алгоритмов шифрования является одним из древнейших в мире. Но в современных реалиях данное понятие приобрело совершенно новые обороты.
Криптография – комплекс алгоритмов, знаний и средств для защиты конфиденциальности тех или иных сведений от посторонних глаз. А криптоанализом называют некое направление деятельности, которое изучает правила и методы нарушения сохранности сообщения.
История возникновения
Вопросы, связанные с алгоритмами шифрования, начали решаться еще в древнем мире. Работают изобретенные некогда людьми варианты защиты по сей день.
Впервые соответствующая тема всплыла с появлением первой письменности. Раньше встречались следующие виды письма:
- иератическое;
- демотическое.
Первый вариант использовался священнослужителями, второй – всеми остальными. Греки и римляне стали «изобретателями» собственных систем тайного письма. А именно – скорописи. Изначально это и было секретным письмом. «Изобретателем» является некий Тиллиус Тиро.
Но лишь в средневековье различные алгоритмы по так называемому шифрованию сообщений начали использовать в дипломатических целях с завидной регулярностью. Также соответствующие приемы встречались в торговле и военной деятельности. А в 1499 году появилась первая книжка по криптографии.
Современное развитие
Алгоритмы шифрования потихоньку развивались и приобретали новый вид. Современная интерпретация оных возникла примерно в 1990 году. В те времена началось активное развитие информационных технологий.
Разные страны начали придумывать собственные стандарты криптографических протоколов. Примеры:
- Америка – Rijndael;
- Европа – NESSIE;
- Япония – CRYPTREC.
Также все ранее существующие алгоритмы сильно усложнились в плане математических конструкций. Это способствует затруднению криптоанализа. Новые требования, часто не связанные с математикой, привели к тому, что методы шифрования сейчас стали максимально устойчивыми и сложными. Начали появляться направления в криптографии, которые находятся на стыке математики и квантовых вычислений.
Где применяется
Цифровые сервисы должны в обязательном порядке беспокоиться о сохранности пользовательской и архивной информации. В противном случае утечка данных чревата серьезными последствиями. Пример – хакеры смогут использовать полученные электронные материалы от того или иного проекта в своих корыстных целях.
Сегодня практически все важные аспекты жизни и деятельности человека зависят от информационных технологий и гаджетов. Финансовые операции, а также всевозможные платежи и даже работа осуществляются через мобильные технологии. Их трудно назвать безопасными каналами передачи электронных материалов. Поэтому приходится думать, как лучше организовать защиту сведений.
Алгоритмы по шифрованию информации применяются везде:
- телевидение;
- компьютеры;
- интернет технологии;
- программирование;
- радиосвязь;
- прочие коммуникации;
- банковская деятельность.
Везде, где фигурируют информационные технологии и присутствует цифровизация, задействована криптография. Данное научное направление весьма сложное, но перспективное.
Основные виды
Сейчас в мире достаточно методов шифрования информации. Их условно можно классифицировать. Существуют следующие алгоритмы криптографии:
- квантовая;
- симметричная;
- асимметричная;
- хеш-функции;
- примитивы.
Каждый вариант предусматривает собственные нюансы и особенности. О них статья расскажет далее.
Примитивы
Шифрование – сложный процесс, как и процедура расшифровки данных при необходимости. При генерации подобной информации в целях повышения уровня безопасности нередко используются так называемые примитивы. Они помогают уже зашифрованным сведениям получить более надежную и стойкую защиту.
В качестве алгоритмов, предусматривающих примитивы, используют:
- подстановки;
- циклические сдвиги;
- гаммирование;
- перестановки.
Подобный вариант развития событий в реальной жизни появился давным-давно. Он может использоваться не только в информационных технологиях. Раньше примитивы преобразовывали и защищали обычный рукописный текст. Сейчас это не самый лучший вариант, если он задействован в качестве самостоятельного элемента.
Важно: так называемый открытый ключ для получения необходимой информации представляет собой некий алгоритм или инструкцию, согласно которому удается прочесть написанное сообщение.
Квантовые технологии
Совершенно новый виток в алгоритмах шифрования. Пока не слишком распространен, так как у человечества нет достаточно мощных квантовых компьютеров. Но такой вариант позволяет в результате получить практически неуязвимую на сегодня систему защиты электронных материалов.
В ходе реализации метода задействованы квантовые объекты. Они не только не позволяют считывать материалы, но и подделывать их. Авторы данной теории – некие ученые Беннет и Брассард. Они предложили пользоваться квантовыми технологиями специально для того, чтобы передавать секретный ключ.
Важно: первые попытки выдвижения квантовой теории для разработки алгоритмов шифрования в 1970 году высказал некий Стефан Вейснер.
Хеширование
На практике принято использовать многочисленные варианты защиты электронных материалов от хищения, копирования и подделки. Существует один такой подход, как хеширование. Имеет название хеш-функций.
В ходе него осуществляется преобразование первоначального информационного массива той или иной «протяженности» в битовую строчку фиксированной длины (256 бит, 128 бит и так далее).
Миру известна далеко не одна хеш-функция, но нас интересуют только ее криптографические вариации. Каждый вариант имеет отличие по:
- стойкости;
- сложности вычисления;
- разрядности.
Криптографически стойкие операции имеют два существенно важных критерия. А именно:
- для сообщения, которое требуется расшифровать/зашифровать, почти невозможно подобрать аналогичный текст с точно таким же хешем;
- пары сообщений в связке «оригинал-аналог» с одним и тем же хешем практически не обнаружимы.
Соответствующие отличия и требования называют стойкостью к коллизиям первого и второго рода. Есть и еще один важный критерий: если аргумент изменяется незначительно, происходит наиболее крупная «корректировка» функции. Так, значение хеша не предоставляет информацию даже об отдельных битах аргументов.
Примеры алгоритмов
Стандарт шифрования информации посредством хешев может быть разным. Сегодня выделяют более 10 вариаций, среди которых встречаются такие алгоритмы как:
- Adler-32;
- N-Hash;
- Tiger (TTH);
- Whirlpool;
- RFC 1071;
- MD2;
- MD5;
- MD4;
- CRC.
Это – лишь малая часть способов представления шифра в виде хеш-функций. Соответствующее направление активно развивается по сей день.
Асимметричные
В мире сегодня криптографических алгоритмов очень много. И среди них, как уже можно было заметить, встречаются совершенно разные вариации. Стандарт шифрования применяется в зависимости от типа используемой информации, а также технологических возможностей «клиента».
Есть метод так называемого асимметричного шифрования. Это система криптографического типа, которая использует открытый ключ. В данном случае для защиты информации задействована некая «расшифровка». Она является открытой. Передается прямо по открытым каналам связи (то есть, никак не скрывается). Используется специально для того, чтобы проверять электронные подписи, а также для зашифровки информации.
Технологии асимметричных алгоритмов для дешифрования и создания электронных подписей предусматривают задействование еще одного ключа. Он называется секретным.
В основе соответствующей идеи лежит принцип односторонних функций f(x). В них, согласно действующим законам математики, не так трудно найди x после получения информации о самой функции. Важно учесть, что дополнительно практически невозможно определить саму f(x), если известно только значение «икса».
Принципы работы
Асимметричные методы и алгоритмы так называемого шифрования работают по следующим принципам:
- Существуют несколько абонентов: А и Б. Второй намерен отправить сообщение первому в зашифрованной форме.
- Отправитель шифрует данные открытым ключом.
- Происходит передача сообщения в зашифрованной форме по открытым связным каналам.
- Первый клиент получает тот или иной текст.
- Клиенту А передается секретный ключ-дешифровщик.
- Сообщение «разгадывается» при помощи дешифрованного блока данных, после чего может быть прочитано без проблем.
Стоит обратить внимание на одну особенность, без которой соответствующий принцип не сработает. Речь идет о том, что при получении текста в зашифрованном виде получателю придется провести аутентификацию личности. Она производится перед отправителем. Это – своеобразная система защиты.
Если получатель не смог провести аутентификацию или является не истинным лицом, которому адресован текст, расшифровка не произведется. А у недоброжелателя не получится заметить открытый ключ, предусматриваемый отправителем, на собственный.
Асимметричные шрифты – наглядные примеры
Лучший алгоритм для шифрования информации асимметричным способом подобрать трудно. Здесь, как и в случае с хешами, довольно много вариантов. Вот наиболее распространенные из них:
- RSA;
- DSA;
- Deffie-Hellman;
- ГОСИТ Р 34.10-2001;
- Luc;
- Rabin;
- ECC;
- McEliece.
Применяются все эти варианты на практике весьма часто. Но есть и еще один подход к защите информации от недоброжелателей и хакеров. Он встречается в реальной жизни чаще остальных.
Алгоритм симметричного шифрования
Речь идет о симметричном шифровании. В этом случае происходит использование одного и того же ключа как для зашифровки, так и для расшифровки. Требования, применяемые к этому раскладу, следующие:
- полное отсутствие какой-либо линейности;
- утрата всех имеющихся статистических закономерностей в объекте, который необходимо защитить.
Подобные системы разделяются на несколько типов – блочного и поточного представления. Первые предусматривают дробление исходной информации на блоки, состоящих из данных. После этого осуществляется дальнейшее преобразование посредством ключей.
Поточные системы обрабатываются следующим образом: определяется выходная гамма (последовательность), накладываемая на текст сообщения. Защита проводится путем отправки потока по мере генерации гаммы.
Особенности и преимущества
Симметричный алгоритм для шифрования имеет собственные недостатки и преимущества. Отличается данный вариант высокой защитой. Для применения задействуются разнообразные сложные и многоступенчатые комбинации перестановок и подставок первоначальных сведений. Подходов для реализации поставленной задачи бывает довольно много. Каждый в обязательном порядке соответствует ключу прохода.
Если бы программист представил себе принцип обработки подобным методом, операция проводилась бы так:
- Сначала выполняется первое требование, которое предъявляется к шифру. Вследствие происходит избавление от всех статистических данных.
- Осуществляется перемешивание битов сообщения по заданным канонам.
- Алгоритм приобретает нелинейность. Больше «стандартно» расшифровать его не получится.
- Проводится замена той или иной части сообщения заданной величины на стандартные значения (простое число) посредством обращения к первоначальному (исходному) массиву.
У такого подхода к алгоритмам расшифровки и шифрования есть ряд преимуществ:
- длина ключа уменьшена;
- высокая скорость обеспечения защиты;
- простая реализация (из-за размера ключа и не только);
- высокая степень изученности.
Недостатки у подобной системы тоже имеются. К ним относят сложность обмена ключами. Это связано с тем, что в процессе реализации поставленной задачи может произойти нарушение секретности. Также в большой сети ключами довольно трудно управлять.
Наглядные примеры
К симметричным шифрам относят:
- 3DES;
- SEED — Корея;
- Camellia – Япония;
- CAST – от разработчиков Carlisle Adams;
- IDEA;
- XTEA – самый лучший алгоритм, который проще освоить;
- DES – старый американский стандарт;
- AES.
Как и в прошлых случаях, это всего лишь примеры. Сегодня на практике довольно часто встречается такой алгоритм для шифрования информации, как AES. Он является новым американским.
Rijndael
Подход типа Rijndael – это симметричный метод защиты сведений. Относится к блочным. В нем можно корректировать параметры блоков, а также секретных ключей от 128 до 256 бит. Но важно учесть — разность достигает 32 бита.
В процессе реализации задействует линейно-подстановочные принципы. Раунд здесь может быть 10, 12 или 14. Он напрямую зависит от длины ключа.
Особенности AES
AES – это своеобразный подход к решению поставленной задачи, опирающийся на алгоритм Rijndael. Предыдущее решение с ключом 128 бит. Блок данных здесь составит 16 байт. Предусматривает различные функции.
К ним относят:
- keyExpansion – само расширение ключа;
- subBytes — замена «стейт»;
- addRoundKey – раундовые ключи;
- shiftRows – смещение строк посредством циклов;
- mixColumns – перемешивание столбцов;
- invMixColumns – обратное от предыдущего действия;
- invShiftRows – обратный вариант от shiftRows;
- invSubBytes – обратная замена «стейт».
Шифрование информации через алгоритм так называемого шифрования AES осуществляется в несколько шагов. Каждый предусматривает собственные нюансы.
Принцип зашифровки
Шифрование осуществляется в несколько этапов:
1. Формирование «стейт». Предположим, что уже есть секретное сообщение, для того или иного адресата. Оно представлено числами в диапазоне от 0 до 255. Здесь происходит деление на n-блоков информации по 16 байт. Каждый «пакет информации» называется «стейт». Если текст не кратен 16 байтам, он дополняется до соответствующих значений.
2. KeyExpansion. Ключи в AES побайтно равны state. Происходит расширение ключа, которое отвечает за генерацию нынешних массивов ключей для циклов раундов шифрования. В виде сопоставления операции XOR задействован фиксированный массив Rcon. Здесь keyExpansion через XOR с фиксированными ключевыми массивами осуществляет возврат массивов оных. Их количество – 11 штук. Только один не относится к раунду алгоритма.
3. AddRoundKey. Это – первый этап шифрования. Применяется к state при помощи правил суммирования. Происходит XOR со state, с каждым его байтов. Далее «стейт» переходит к следующей ступени – к системе раундов алгоритмов.
4. Раунды. Всего их 10 штук. Получается своеобразные таблицы замен из 10 шагов. Первые 9 выполняют subBytes, shiftRows, mixColumns, addRoundKey. Последний отвечает за обработку «саба», «шифта» и «эдда».
5. SubBytes. Происходит трансформация «стейта» через замену собственных байтов на иные. Для этого используется их подставление в готовые фиксированные таблицы S-box.
6. ShiftRows. Производится циклическое смещение трех последних строк влево. Принцип указан на картинке.
7. MixColumns. Самый сложный вычислительный процесс. Здесь осуществляется умножение на постоянную функцию f(x) = {03}x^3 + {01}x^2 + {01}x + {02}. Так получается произведение по указанным ранее правилам конкретных столбцов из State на функции a(x). Если исключить правило умножения алгоритма так называемого шифрования, подобный прием будет аналогичен матричному умножению.
В случае с дешифрованием ситуация будет примерно такой же. Процедура полностью осуществляется за несколько подходов (шагов).
О дешифровании
Сначала система при чтении сообщения путем алгоритмов шифрования типа AES использует KeyExpansion. Далее производятся раунды алгоритмов. Они предусматривают 10 ступеней, называемых шагами криптопреобразования.
Первые девять штук отвечают за цикличное выполнение 4-х функций в порядке, обратном методу первоначально защиты (шифровки). А именно:
- addRoundKey;
- invMixColumns;
- invShiftRows;
- invSubBytes.
Последний, 10 раунд – это три операции: «ЭддРаундКей», «ИнвШифт», «ИнвСабБайтс». Далее производится обработка addRoundKey. Этап предусматривает обратное суммирование по правилам алгоритмов используемого шифрования самого себя. Полностью исключается массив Rcon.
Следующий шаг – обработка invMixColumns. Это – мультипликативная обработка операции умножения по правилам умножения алгоритма на постоянную функцию a^(-1) от x конкретного столбца «стейт».
Теперь система будет производить обратную трансформацию shiftRows. То есть, проведет цикличное смещение «информации» вправо. Завершающий этап – это инверсия. Производится относительно «СабБайтс». Предусматривает обратную замену байта state, которая заведомо представлена в hex согласно соответствию фиксированной таблички:
На данном этапе пользователь сможет прочесть необходимую ему информацию. Звучит трудно, но программисты и хакеры для реализации поставленной задачи никогда не действуют «вручную». Они используют IT-технологии и всевозможные шифровальщики и дешифраторы.
Криптография и IT
В цифровых технологиях криптография – это основной инструмент обеспечения конфиденциальности информации. Помогает противодействовать незаконному (несанкционированному) копированию и распространению информации по интернету (включая даркнет). В основном применяется для защиты интеллектуальной собственности.
Среднестатистические юзеры могут столкнуться с соответствующими методами не только при работе в Сети, но и во время установки/запуска игр. Там тоже задействованы рассмотренные варианты защиты в той или иной форме.
Внимание: хакерский взлом и появление «пиратских» копий программного обеспечения ставит под вопрос сохранность информации пользователей, а также ее целостность и конфиденциальность.
Заключение
Криптография – полезная и перспективная наука, тесно связанная с программированием. Сейчас на нее нельзя отучиться на «вышке». Ни один ВУЗ не предлагает изучение encryption и других вариантов обеспечения безопасности в полной мере.
Если пользователь захотел стать экспертом в данном области, он должен разбираться в программировании, IT, информатике, алгоритмах. Можно пройти спецкурсы по выбранному направлению.
<!DOCTYPE html>
<html dir="ltr" lang="ru-RU">
<head>
<meta charset="UTF-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="profile" href="http://gmpg.org/xfn/11" />
<title>Все, что нужно знать о криптографии: алгоритмы OTUS</title>
<!-- All in One SEO 4.5.2.1 - aioseo.com -->
<meta name="description" content="С развитием технологий пользователи по всему миру, а также программисты и разработчики начали сталкиваться с вопросом сохранения конфиденциальности информации. Интернет-технологии и хакерские атаки начали ставить под угрозу соответствующее направление. Так появились различные способы шифрования данных. В данной статье будет рассказано о том, что это такое, раскрыто понятие криптографии, рассмотрены основные способы, которыми можно защитить те" />
<meta name="robots" content="max-image-preview:large" />
<link rel="canonical" href="https://otus.ru/journal/vse-chto-nuzhno-znat-o-kriptografii-algoritmy/" />
<meta name="generator" content="All in One SEO (AIOSEO) 4.5.2.1" />
<script type="application/ld+json" class="aioseo-schema">
{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/otus.ru\/journal\/vse-chto-nuzhno-znat-o-kriptografii-algoritmy\/#article","name":"\u0412\u0441\u0435, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u043e \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438: \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b OTUS","headline":"\u0412\u0441\u0435, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u043e \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438: \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b","author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2021\/09\/oj-1080x720-6-1.png","width":1080,"height":720},"datePublished":"2021-09-25T10:27:47+00:00","dateModified":"2021-09-25T10:27:49+00:00","inLanguage":"ru-RU","mainEntityOfPage":{"@id":"https:\/\/otus.ru\/journal\/vse-chto-nuzhno-znat-o-kriptografii-algoritmy\/#webpage"},"isPartOf":{"@id":"https:\/\/otus.ru\/journal\/vse-chto-nuzhno-znat-o-kriptografii-algoritmy\/#webpage"},"articleSection":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435, \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b"},{"@type":"BreadcrumbList","@id":"https:\/\/otus.ru\/journal\/vse-chto-nuzhno-znat-o-kriptografii-algoritmy\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/#listItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/otus.ru\/journal\/","nextItem":"https:\/\/otus.ru\/journal\/vse-chto-nuzhno-znat-o-kriptografii-algoritmy\/#listItem"},{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/vse-chto-nuzhno-znat-o-kriptografii-algoritmy\/#listItem","position":2,"name":"\u0412\u0441\u0435, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u043e \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438: \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b","previousItem":"https:\/\/otus.ru\/journal\/#listItem"}]},{"@type":"Organization","@id":"https:\/\/otus.ru\/journal\/#organization","name":"\u041e\u0442\u0443\u0441 \u043e\u043d\u043b\u0430\u0439\u043d-\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435","url":"https:\/\/otus.ru\/journal\/","sameAs":["https:\/\/www.youtube.com\/channel\/UCetgtvy93o3i3CvyGXKFU3g"],"contactPoint":{"@type":"ContactPoint","telephone":"+74999389202","contactType":"Customer Support"}},{"@type":"Person","@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author","url":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/","name":"A. Pavlenko","image":{"@type":"ImageObject","@id":"https:\/\/otus.ru\/journal\/vse-chto-nuzhno-znat-o-kriptografii-algoritmy\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/d4c499a104d7c2522fa41f89e6819499?s=96&d=mm&r=g","width":96,"height":96,"caption":"A. Pavlenko"}},{"@type":"WebPage","@id":"https:\/\/otus.ru\/journal\/vse-chto-nuzhno-znat-o-kriptografii-algoritmy\/#webpage","url":"https:\/\/otus.ru\/journal\/vse-chto-nuzhno-znat-o-kriptografii-algoritmy\/","name":"\u0412\u0441\u0435, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u043e \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438: \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b OTUS","description":"\u0421 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u043c\u0438\u0440\u0443, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043d\u0430\u0447\u0430\u043b\u0438 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0438 \u0445\u0430\u043a\u0435\u0440\u0441\u043a\u0438\u0435 \u0430\u0442\u0430\u043a\u0438 \u043d\u0430\u0447\u0430\u043b\u0438 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0434 \u0443\u0433\u0440\u043e\u0437\u0443 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435. \u0422\u0430\u043a \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043d\u043e \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0442\u0430\u043a\u043e\u0435, \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u043e \u043f\u043e\u043d\u044f\u0442\u0438\u0435 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c \u0442\u0435","inLanguage":"ru-RU","isPartOf":{"@id":"https:\/\/otus.ru\/journal\/#website"},"breadcrumb":{"@id":"https:\/\/otus.ru\/journal\/vse-chto-nuzhno-znat-o-kriptografii-algoritmy\/#breadcrumblist"},"author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"creator":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2021\/09\/oj-1080x720-6-1.png","@id":"https:\/\/otus.ru\/journal\/vse-chto-nuzhno-znat-o-kriptografii-algoritmy\/#mainImage","width":1080,"height":720},"primaryImageOfPage":{"@id":"https:\/\/otus.ru\/journal\/vse-chto-nuzhno-znat-o-kriptografii-algoritmy\/#mainImage"},"datePublished":"2021-09-25T10:27:47+00:00","dateModified":"2021-09-25T10:27:49+00:00"},{"@type":"WebSite","@id":"https:\/\/otus.ru\/journal\/#website","url":"https:\/\/otus.ru\/journal\/","name":"OTUS JOURNAL","description":"Blog about IT","inLanguage":"ru-RU","publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"}}]}
</script>
<!-- All in One SEO -->
<link rel='dns-prefetch' href='//otus.ru' />
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
<link rel='stylesheet' id='wp-block-library-css' href='https://otus.ru/journal/wp-includes/css/dist/block-library/style.min.css?ver=6.4.7' type='text/css' media='all' />
<style id='classic-theme-styles-inline-css' type='text/css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<style id='global-styles-inline-css' type='text/css'>
body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
.wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
.wp-block-pullquote{font-size: 1.5em;line-height: 1.6;}
</style>
<link rel='stylesheet' id='wbcr-comments-plus-url-span-css' href='https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/css/url-span.css?ver=2.2.0' type='text/css' media='all' />
<link rel='stylesheet' id='wpel-style-css' href='https://otus.ru/journal/wp-content/plugins/wp-external-links/public/css/wpel.css?ver=2.59' type='text/css' media='all' />
<link rel='stylesheet' id='ez-toc-css' href='https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/css/screen.min.css?ver=2.0.61' type='text/css' media='all' />
<style id='ez-toc-inline-css' type='text/css'>
div#ez-toc-container .ez-toc-title {font-size: 120%;}div#ez-toc-container .ez-toc-title {font-weight: 500;}div#ez-toc-container ul li {font-size: 95%;}div#ez-toc-container nav ul ul li {font-size: 90%;}
.ez-toc-container-direction {direction: ltr;}.ez-toc-counter ul{counter-reset: item ;}.ez-toc-counter nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }.ez-toc-widget-direction {direction: ltr;}.ez-toc-widget-container ul{counter-reset: item ;}.ez-toc-widget-container nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }
</style>
<link rel='stylesheet' id='contentberg-fonts-css' href='https://fonts.googleapis.com/css?family=Roboto%3A400%2C500%2C700%7CPT+Serif%3A400%2C400i%2C600%7CIBM+Plex+Serif%3A500' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-core-css' href='https://otus.ru/journal/wp-content/themes/contentberg/style.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-lightbox-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/lightbox.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='font-awesome-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/fontawesome/css/font-awesome.min.css?ver=1.8.3' type='text/css' media='all' />
<script type="text/javascript" id="breeze-prefetch-js-extra">
/* <![CDATA[ */
var breeze_prefetch = {"local_url":"https:\/\/otus.ru\/journal","ignore_remote_prefetch":"1","ignore_list":["\/wp-admin\/"]};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js" id="breeze-prefetch-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery-migrate.min.js" id="jquery-migrate-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/lazysizes.js" id="lazysizes-js"></script>
<link rel="https://api.w.org/" href="https://otus.ru/journal/wp-json/" /><link rel="alternate" type="application/json" href="https://otus.ru/journal/wp-json/wp/v2/posts/2107" /><link rel='shortlink' href='https://otus.ru/journal/?p=2107' />
<link rel="alternate" type="application/json+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fvse-chto-nuzhno-znat-o-kriptografii-algoritmy%2F" />
<link rel="alternate" type="text/xml+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fvse-chto-nuzhno-znat-o-kriptografii-algoritmy%2F&format=xml" />
<script>var Sphere_Plugin = {"ajaxurl":"https:\/\/otus.ru\/journal\/wp-admin\/admin-ajax.php"};</script><link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-32x32.png" sizes="32x32" />
<link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-180x180.png" />
<meta name="msapplication-TileImage" content="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-270x270.png" />
<style type="text/css" id="wp-custom-css">
#menu-item-10406 .wpel-icon {
display: none;
}
#menu-item-10407 .wpel-icon {
display: none;
}
.otus-login-site a .wpel-icon {
display: none;
}
.menu-menju-navykov-container a .wpel-icon {
display: none;
}
.otus-login-site a
{
background: #ffd709;
border-radius: 12px;
color: #0f0f10;
font-size: 14px;
font-weight: 700;
line-height: 20px;
display: block;
text-align: center;
padding: 8px 25px;
}
.main-footer.dark {
background: linear-gradient(90deg, #a64fc5, #4f54e6);
border-color: transparent;
}
.main-footer.bold .copyright {
color: #fff;
}
.main-footer.bold .to-top i {
color: #fff;
}
.main-footer.bold .back-to-top {
color: #fff;
}
.nav__scroll {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.scrollable-menu .menu {
display: flex;
}
.nav__scroll
{
background: linear-gradient(90deg, #a64fc5, #4f54e6);
}
.scrollable-menu .menu .menu-item {
flex: 0 0 auto;
padding: 15px 15px;
}
.scrollable-menu .menu .menu-item a {
color: #fff;
}
.nav__scroll::-webkit-scrollbar{background-color:#fff;height:5px;}
.nav__scroll::-webkit-scrollbar-thumb{background-color:#dcdcdc;}
.nav__scroll::-webkit-scrollbar-track{-webkit-border-radius:0;border-radius:0;background-color:#fff;}/
body {
min-width: 320px;
}
.banner-click img {
margin: 0 auto;
display: block;
}
.banner-click {
cursor: pointer;
}
.banner-footer-area {
margin-bottom: 20px;
}
.banner-left-area {
margin-top: 40px;
} </style>
<!--Start VDZ Yandex Metrika Plugin-->
<!-- Yandex.Metrika counter --><script type="text/javascript" >(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");ym(34531570, "init", {clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true, trackHash:true, ecommerce:"dataLayer"});</script>
<noscript><div><img src="https://mc.yandex.ru/watch/34531570" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter --><!--START ADD EVENTS FROM CF7--><script type='text/javascript'>document.addEventListener( 'wpcf7submit', function( event ) {
//event.detail.contactFormId;
if(ym){
//console.log(event.detail);
ym(34531570, 'reachGoal', 'VDZ_SEND_CONTACT_FORM_7');
ym(34531570, 'params', {
page_url: window.location.href,
status: event.detail.status,
locale: event.detail.contactFormLocale,
form_id: event.detail.contactFormId,
});
}
}, false );
</script><!--END ADD EVENTS FROM CF7-->
<!--End VDZ Yandex Metrika Plugin-->
</head>
<body class="post-template-default single single-post postid-2107 single-format-standard right-sidebar lazy-normal has-lb">
<div class="main-wrap">
<header id="main-head" class="main-head head-nav-below has-search-modal simple simple-boxed">
<div class="inner inner-head" data-sticky-bar="0">
<div class="wrap cf wrap-head">
<div class="left-contain">
<span class="mobile-nav"><i class="fa fa-bars"></i></span>
<div class="title">
<a href="https://otus.ru/journal/" title="OTUS JOURNAL" rel="home" data-wpel-link="internal">
<span class="text-logo"><img src="/journal/wp-content/themes/contentberg/img/logo_site.svg" alt="OTUS JOURNAL"></span>
</a>
</div>
</div>
<div class="navigation-wrap inline">
<nav class="navigation inline simple light" data-sticky-bar="0">
<div class="menu-rubriki-container"><ul id="menu-rubriki" class="menu"><li id="menu-item-109" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-1 menu-item-109"><a href="https://otus.ru/journal/category/pro-it/" data-wpel-link="internal"><span>Про IT</span></a></li>
<li id="menu-item-113" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-cat-4 menu-item-113"><a href="https://otus.ru/journal/category/polza/" data-wpel-link="internal"><span>Полезное</span></a></li>
<li id="menu-item-114" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-3 menu-item-114"><a href="https://otus.ru/journal/category/lifestyle/" data-wpel-link="internal"><span>Лайфстайл</span></a></li>
<li id="menu-item-10406" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10406"><a href="https://otus.ru/catalog/courses" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Обучение</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10407" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10407"><a href="https://otus.ru/about" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Информация</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </nav>
</div>
<div class="actions">
<div class="otus-login-site">
<a href="https://otus.ru/login/" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Войти<span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
<a href="#" title="Search" class="search-link"><i class="fa fa-search"></i></a>
</div>
</div>
</div>
</header> <!-- .main-head -->
<div class="nav nav_disable nav_colored nav_transparent course-categories__nav nav__scroll ">
<div class="container wrap">
<div class="links inline simple light scrollable-menu">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov" class="menu"><li id="menu-item-10413" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10414" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10415" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10416" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10417" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10418" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10419" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10420" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10421" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
</div>
</div>
<div class="main wrap">
<div class="ts-row cf">
<div class="col-8 main-content cf">
<article id="post-2107" class="the-post post-2107 post type-post status-publish format-standard has-post-thumbnail category-polza tag-algoritmy">
<header class="post-header the-post-header cf">
<div class="post-meta the-post-meta">
<span class="post-cat">
<a href="https://otus.ru/journal/category/polza/" class="category" data-wpel-link="internal">Полезное</a>
</span>
<h1 class="post-title">
Все, что нужно знать о криптографии: алгоритмы
</h1>
<a href="https://otus.ru/journal/vse-chto-nuzhno-znat-o-kriptografii-algoritmy/" class="date-link" data-wpel-link="internal"><time class="post-date">25 сентября, 2021</time></a>
</div>
<div class="featured">
<a href="https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-6-1.png" class="image-link" data-wpel-link="internal"><img width="770" height="515" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20770%20515%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-contentberg-main size-contentberg-main lazyload wp-post-image" alt="Все, что нужно знать о криптографии: алгоритмы" title="Все, что нужно знать о криптографии: алгоритмы" decoding="async" fetchpriority="high" data-srcset="https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-6-1-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-6-1-300x200.png 300w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-6-1-1024x683.png 1024w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-6-1-150x100.png 150w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-6-1-270x180.png 270w" data-src="https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-6-1-770x515.png" data-sizes="(max-width: 770px) 100vw, 770px" /> </a>
</div>
</header><!-- .post-header -->
<div class="post-content description cf entry-content content-normal">
<div id="ez-toc-container" class="ez-toc-v2_0_61 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction">
<div class="ez-toc-title-container">
<p class="ez-toc-title " >Содержание</p>
<span class="ez-toc-title-toggle"><a href="#" class="ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle" aria-label="Toggle Table of Content"><span class="ez-toc-js-icon-con"><span class=""><span class="eztoc-hide" style="display:none;">Toggle</span><span class="ez-toc-icon-toggle-span"><svg style="fill: #999;color:#999" xmlns="http://www.w3.org/2000/svg" class="list-377408" width="20px" height="20px" viewBox="0 0 24 24" fill="none"><path d="M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z" fill="currentColor"></path></svg><svg style="fill: #999;color:#999" class="arrow-unsorted-368013" xmlns="http://www.w3.org/2000/svg" width="10px" height="10px" viewBox="0 0 24 24" version="1.2" baseProfile="tiny"><path d="M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z"/></svg></span></span></span></a></span></div>
<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-1" href="#%D0%9F%D0%BE%D0%BD%D1%8F%D1%82%D0%B8%D0%B5_%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%B8" title="Понятие криптографии">Понятие криптографии</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-2" href="#%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%B2%D0%BE%D0%B7%D0%BD%D0%B8%D0%BA%D0%BD%D0%BE%D0%B2%D0%B5%D0%BD%D0%B8%D1%8F" title="История возникновения">История возникновения</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-3" href="#%D0%A1%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5_%D1%80%D0%B0%D0%B7%D0%B2%D0%B8%D1%82%D0%B8%D0%B5" title="Современное развитие">Современное развитие</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-4" href="#%D0%93%D0%B4%D0%B5_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F" title="Где применяется">Где применяется</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-5" href="#%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%B2%D0%B8%D0%B4%D1%8B" title="Основные виды">Основные виды</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-6" href="#%D0%9F%D1%80%D0%B8%D0%BC%D0%B8%D1%82%D0%B8%D0%B2%D1%8B" title="Примитивы">Примитивы</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-7" href="#%D0%9A%D0%B2%D0%B0%D0%BD%D1%82%D0%BE%D0%B2%D1%8B%D0%B5_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8" title="Квантовые технологии">Квантовые технологии</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-8" href="#%D0%A5%D0%B5%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" title="Хеширование">Хеширование</a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-9" href="#%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D0%BE%D0%B2" title="Примеры алгоритмов">Примеры алгоритмов</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-10" href="#%D0%90%D1%81%D0%B8%D0%BC%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%BD%D1%8B%D0%B5" title="Асимметричные">Асимметричные</a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-11" href="#%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF%D1%8B_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B" title="Принципы работы">Принципы работы</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-12" href="#%D0%90%D1%81%D0%B8%D0%BC%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%BD%D1%8B%D0%B5_%D1%88%D1%80%D0%B8%D1%84%D1%82%D1%8B_%E2%80%93_%D0%BD%D0%B0%D0%B3%D0%BB%D1%8F%D0%B4%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B" title="Асимметричные шрифты – наглядные примеры">Асимметричные шрифты – наглядные примеры</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-13" href="#%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D1%81%D0%B8%D0%BC%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%BD%D0%BE%D0%B3%D0%BE_%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F" title="Алгоритм симметричного шифрования">Алгоритм симметричного шифрования</a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-14" href="#%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%B8_%D0%BF%D1%80%D0%B5%D0%B8%D0%BC%D1%83%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B0" title="Особенности и преимущества">Особенности и преимущества</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-15" href="#%D0%9D%D0%B0%D0%B3%D0%BB%D1%8F%D0%B4%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B" title="Наглядные примеры">Наглядные примеры</a></li></ul></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-16" href="#Rijndael" title="Rijndael">Rijndael</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-17" href="#%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_AES" title="Особенности AES">Особенности AES</a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-18" href="#%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF_%D0%B7%D0%B0%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BA%D0%B8" title="Принцип зашифровки">Принцип зашифровки</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-19" href="#%D0%9E_%D0%B4%D0%B5%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8" title="О дешифровании">О дешифровании</a></li></ul></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-20" href="#%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F_%D0%B8_IT" title="Криптография и IT">Криптография и IT</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-21" href="#%D0%97%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5" title="Заключение">Заключение</a></li></ul></nav></div>
<p>С развитием технологий пользователи по всему миру, а также программисты и разработчики начали сталкиваться с вопросом сохранения конфиденциальности информации. Интернет-технологии и хакерские атаки начали ставить под угрозу соответствующее направление. Так появились различные способы шифрования данных.</p>
<p>В данной статье будет рассказано о том, что это такое, раскрыто понятие криптографии, рассмотрены основные способы, которыми можно защитить те или иные данные. Предложенная информация окажется полезной как опытным программерам, так и начинающим ПК-пользователям.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D0%BE%D0%BD%D1%8F%D1%82%D0%B8%D0%B5_%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%B8"></span>Понятие криптографии<span class="ez-toc-section-end"></span></h2>
<p>Криптография также нередко называется криптологией. Это – искусство передачи информации электронного или иного типа так, чтобы без ключа шифрования считать ее было невозможно. Термин произошел от нескольких греческих слов:</p>
<ul><li>криптос – скрытый;</li><li>графо – писать.</li></ul>
<p>Направление науки по составлению алгоритмов шифрования является одним из древнейших в мире. Но в современных реалиях данное понятие приобрело совершенно новые обороты.</p>
<p>Криптография – комплекс алгоритмов, знаний и средств для защиты конфиденциальности тех или иных сведений от посторонних глаз. А криптоанализом называют некое направление деятельности, которое изучает правила и методы нарушения сохранности сообщения.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%B2%D0%BE%D0%B7%D0%BD%D0%B8%D0%BA%D0%BD%D0%BE%D0%B2%D0%B5%D0%BD%D0%B8%D1%8F"></span>История возникновения<span class="ez-toc-section-end"></span></h3>
<p>Вопросы, связанные с алгоритмами шифрования, начали решаться еще в древнем мире. Работают изобретенные некогда людьми варианты защиты по сей день.</p>
<p>Впервые соответствующая тема всплыла с появлением первой письменности. Раньше встречались следующие виды письма:</p>
<ul><li>иератическое;</li><li>демотическое.</li></ul>
<p>Первый вариант использовался священнослужителями, второй – всеми остальными. Греки и римляне стали «изобретателями» собственных систем тайного письма. А именно – скорописи. Изначально это и было секретным письмом. «Изобретателем» является некий Тиллиус Тиро.</p>
<p>Но лишь в средневековье различные алгоритмы по так называемому шифрованию сообщений начали использовать в дипломатических целях с завидной регулярностью. Также соответствующие приемы встречались в торговле и военной деятельности. А в 1499 году появилась первая книжка по криптографии.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A1%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5_%D1%80%D0%B0%D0%B7%D0%B2%D0%B8%D1%82%D0%B8%D0%B5"></span>Современное развитие<span class="ez-toc-section-end"></span></h3>
<p>Алгоритмы шифрования потихоньку развивались и приобретали новый вид. Современная интерпретация оных возникла примерно в 1990 году. В те времена началось активное развитие информационных технологий.</p>
<p>Разные страны начали придумывать собственные стандарты криптографических протоколов. Примеры:</p>
<ul><li>Америка – Rijndael;</li><li>Европа – NESSIE;</li><li>Япония – CRYPTREC.</li></ul>
<p>Также все ранее существующие алгоритмы сильно усложнились в плане математических конструкций. Это способствует затруднению криптоанализа. Новые требования, часто не связанные с математикой, привели к тому, что методы шифрования сейчас стали максимально устойчивыми и сложными. Начали появляться направления в криптографии, которые находятся на стыке математики и квантовых вычислений.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%93%D0%B4%D0%B5_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F"></span>Где применяется<span class="ez-toc-section-end"></span></h2>
<p>Цифровые сервисы должны в обязательном порядке беспокоиться о сохранности пользовательской и архивной информации. В противном случае утечка данных чревата серьезными последствиями. Пример – хакеры смогут использовать полученные электронные материалы от того или иного проекта в своих корыстных целях.</p>
<p>Сегодня практически все важные аспекты жизни и деятельности человека зависят от информационных технологий и гаджетов. Финансовые операции, а также всевозможные платежи и даже работа осуществляются через мобильные технологии. Их трудно назвать безопасными каналами передачи электронных материалов. Поэтому приходится думать, как лучше организовать защиту сведений.</p>
<p>Алгоритмы по шифрованию информации применяются везде:</p>
<ul><li>телевидение;</li><li>компьютеры;</li><li>интернет технологии;</li><li>программирование;</li><li>радиосвязь;</li><li>прочие коммуникации;</li><li>банковская деятельность.</li></ul>
<p>Везде, где фигурируют информационные технологии и присутствует цифровизация, задействована криптография. Данное научное направление весьма сложное, но перспективное.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%B2%D0%B8%D0%B4%D1%8B"></span>Основные виды<span class="ez-toc-section-end"></span></h2>
<p>Сейчас в мире достаточно методов шифрования информации. Их условно можно классифицировать. Существуют следующие алгоритмы криптографии:</p>
<ul><li>квантовая;</li><li>симметричная;</li><li>асимметричная;</li><li>хеш-функции;</li><li>примитивы.</li></ul>
<p>Каждый вариант предусматривает собственные нюансы и особенности. О них статья расскажет далее.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D1%80%D0%B8%D0%BC%D0%B8%D1%82%D0%B8%D0%B2%D1%8B"></span>Примитивы<span class="ez-toc-section-end"></span></h3>
<p>Шифрование – сложный процесс, как и процедура расшифровки данных при необходимости. При генерации подобной информации в целях повышения уровня безопасности нередко используются так называемые примитивы. Они помогают уже зашифрованным сведениям получить более надежную и стойкую защиту.</p>
<p>В качестве алгоритмов, предусматривающих примитивы, используют:</p>
<ul><li>подстановки;</li><li>циклические сдвиги;</li><li>гаммирование;</li><li>перестановки.</li></ul>
<p>Подобный вариант развития событий в реальной жизни появился давным-давно. Он может использоваться не только в информационных технологиях. Раньше примитивы преобразовывали и защищали обычный рукописный текст. Сейчас это не самый лучший вариант, если он задействован в качестве самостоятельного элемента.</p>
<p>Важно: так называемый открытый ключ для получения необходимой информации представляет собой некий алгоритм или инструкцию, согласно которому удается прочесть написанное сообщение.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9A%D0%B2%D0%B0%D0%BD%D1%82%D0%BE%D0%B2%D1%8B%D0%B5_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8"></span>Квантовые технологии<span class="ez-toc-section-end"></span></h3>
<p>Совершенно новый виток в алгоритмах шифрования. Пока не слишком распространен, так как у человечества нет достаточно мощных квантовых компьютеров. Но такой вариант позволяет в результате получить практически неуязвимую на сегодня систему защиты электронных материалов.</p>
<p>В ходе реализации метода задействованы квантовые объекты. Они не только не позволяют считывать материалы, но и подделывать их. Авторы данной теории – некие ученые Беннет и Брассард. Они предложили пользоваться квантовыми технологиями специально для того, чтобы передавать секретный ключ.</p>
<p>Важно: первые попытки выдвижения квантовой теории для разработки алгоритмов шифрования в 1970 году высказал некий Стефан Вейснер.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A5%D0%B5%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5"></span>Хеширование<span class="ez-toc-section-end"></span></h3>
<p>На практике принято использовать многочисленные варианты защиты электронных материалов от хищения, копирования и подделки. Существует один такой подход, как хеширование. Имеет название хеш-функций.</p>
<p>В ходе него осуществляется преобразование первоначального информационного <a href="https://otus.ru/journal/massivy-v-programmirovanii-opisanie-i-napolnenie-dannymi/" data-wpel-link="internal">массива</a> той или иной «протяженности» в битовую строчку фиксированной длины (256 бит, 128 бит и так далее).</p>
<p>Миру известна далеко не одна хеш-функция, но нас интересуют только ее криптографические вариации. Каждый вариант имеет отличие по:</p>
<ul><li>стойкости;</li><li>сложности вычисления;</li><li>разрядности.</li></ul>
<p>Криптографически стойкие операции имеют два существенно важных критерия. А именно:</p>
<ul><li>для сообщения, которое требуется расшифровать/зашифровать, почти невозможно подобрать аналогичный текст с точно таким же хешем;</li><li>пары сообщений в связке «оригинал-аналог» с одним и тем же хешем практически не обнаружимы.</li></ul>
<p>Соответствующие отличия и требования называют стойкостью к коллизиям первого и второго рода. Есть и еще один важный критерий: если аргумент изменяется незначительно, происходит наиболее крупная «корректировка» функции. Так, значение хеша не предоставляет информацию даже об отдельных битах аргументов.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D0%BE%D0%B2"></span>Примеры алгоритмов<span class="ez-toc-section-end"></span></h4>
<p>Стандарт шифрования информации посредством хешев может быть разным. Сегодня выделяют более 10 вариаций, среди которых встречаются такие алгоритмы как:</p>
<ul><li>Adler-32;</li><li>N-Hash;</li><li>Tiger (TTH);</li><li>Whirlpool;</li><li>RFC 1071;</li><li>MD2;</li><li>MD5;</li><li>MD4;</li><li>CRC.</li></ul>
<p>Это – лишь малая часть способов представления шифра в виде хеш-функций. Соответствующее направление активно развивается по сей день.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%90%D1%81%D0%B8%D0%BC%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%BD%D1%8B%D0%B5"></span>Асимметричные<span class="ez-toc-section-end"></span></h3>
<p>В мире сегодня криптографических алгоритмов очень много. И среди них, как уже можно было заметить, встречаются совершенно разные вариации. Стандарт шифрования применяется в зависимости от типа используемой информации, а также технологических возможностей «клиента».</p>
<p>Есть метод так называемого асимметричного шифрования. Это система криптографического типа, которая использует открытый ключ. В данном случае для защиты информации задействована некая «расшифровка». Она является открытой. Передается прямо по открытым каналам связи (то есть, никак не скрывается). Используется специально для того, чтобы проверять электронные подписи, а также для зашифровки информации.</p>
<p>Технологии асимметричных алгоритмов для дешифрования и создания электронных подписей предусматривают задействование еще одного ключа. Он называется секретным.</p>
<p>В основе соответствующей идеи лежит принцип односторонних функций f(x). В них, согласно действующим законам математики, не так трудно найди x после получения информации о самой функции. Важно учесть, что дополнительно практически невозможно определить саму f(x), если известно только значение «икса».</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF%D1%8B_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B"></span>Принципы работы<span class="ez-toc-section-end"></span></h4>
<p>Асимметричные методы и алгоритмы так называемого шифрования работают по следующим принципам:</p>
<ol type="1"><li>Существуют несколько абонентов: А и Б. Второй намерен отправить сообщение первому в зашифрованной форме.</li><li>Отправитель шифрует данные открытым ключом.</li><li>Происходит передача сообщения в зашифрованной форме по открытым связным каналам.</li><li>Первый клиент получает тот или иной текст.</li><li>Клиенту А передается секретный ключ-дешифровщик.</li><li>Сообщение «разгадывается» при помощи дешифрованного блока данных, после чего может быть прочитано без проблем.</li></ol>
<p>Стоит обратить внимание на одну особенность, без которой соответствующий принцип не сработает. Речь идет о том, что при получении текста в зашифрованном виде получателю придется провести аутентификацию личности. Она производится перед отправителем. Это – своеобразная система защиты.</p>
<p>Если получатель не смог провести аутентификацию или является не истинным лицом, которому адресован текст, расшифровка не произведется. А у недоброжелателя не получится заметить открытый ключ, предусматриваемый отправителем, на собственный.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%90%D1%81%D0%B8%D0%BC%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%BD%D1%8B%D0%B5_%D1%88%D1%80%D0%B8%D1%84%D1%82%D1%8B_%E2%80%93_%D0%BD%D0%B0%D0%B3%D0%BB%D1%8F%D0%B4%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B"></span>Асимметричные шрифты – наглядные примеры<span class="ez-toc-section-end"></span></h4>
<p>Лучший алгоритм для шифрования информации асимметричным способом подобрать трудно. Здесь, как и в случае с хешами, довольно много вариантов. Вот наиболее распространенные из них:</p>
<ul><li>RSA;</li><li>DSA;</li><li>Deffie-Hellman;</li><li>ГОСИТ Р 34.10-2001;</li><li>Luc;</li><li>Rabin;</li><li>ECC;</li><li>McEliece.</li></ul>
<p>Применяются все эти варианты на практике весьма часто. Но есть и еще один подход к защите информации от недоброжелателей и хакеров. Он встречается в реальной жизни чаще остальных.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D1%81%D0%B8%D0%BC%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%BD%D0%BE%D0%B3%D0%BE_%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F"></span>Алгоритм симметричного шифрования<span class="ez-toc-section-end"></span></h3>
<p>Речь идет о симметричном шифровании. В этом случае происходит использование одного и того же ключа как для зашифровки, так и для расшифровки. Требования, применяемые к этому раскладу, следующие:</p>
<ul><li>полное отсутствие какой-либо линейности;</li><li>утрата всех имеющихся статистических закономерностей в объекте, который необходимо защитить.</li></ul>
<p>Подобные системы разделяются на несколько типов – блочного и поточного представления. Первые предусматривают дробление исходной информации на блоки, состоящих из данных. После этого осуществляется дальнейшее преобразование посредством ключей.</p>
<p>Поточные системы обрабатываются следующим образом: определяется выходная гамма (последовательность), накладываемая на текст сообщения. Защита проводится путем отправки потока по мере генерации гаммы.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%B8_%D0%BF%D1%80%D0%B5%D0%B8%D0%BC%D1%83%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B0"></span>Особенности и преимущества<span class="ez-toc-section-end"></span></h4>
<p>Симметричный алгоритм для шифрования имеет собственные недостатки и преимущества. Отличается данный вариант высокой защитой. Для применения задействуются разнообразные сложные и многоступенчатые комбинации перестановок и подставок первоначальных сведений. Подходов для реализации поставленной задачи бывает довольно много. Каждый в обязательном порядке соответствует ключу прохода.</p>
<p>Если бы программист представил себе принцип обработки подобным методом, операция проводилась бы так:</p>
<ol type="1"><li>Сначала выполняется первое требование, которое предъявляется к шифру. Вследствие происходит избавление от всех статистических данных.</li><li>Осуществляется перемешивание битов сообщения по заданным канонам.</li><li>Алгоритм приобретает нелинейность. Больше «стандартно» расшифровать его не получится.</li><li>Проводится замена той или иной части сообщения заданной величины на стандартные значения (простое число) посредством обращения к первоначальному (исходному) массиву.</li></ol>
<p>У такого подхода к алгоритмам расшифровки и шифрования есть ряд преимуществ:</p>
<ul><li>длина ключа уменьшена;</li><li>высокая скорость обеспечения защиты;</li><li>простая реализация (из-за размера ключа и не только);</li><li>высокая степень изученности.</li></ul>
<p>Недостатки у подобной системы тоже имеются. К ним относят сложность обмена ключами. Это связано с тем, что в процессе реализации поставленной задачи может произойти нарушение секретности. Также в большой сети ключами довольно трудно управлять.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9D%D0%B0%D0%B3%D0%BB%D1%8F%D0%B4%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B"></span>Наглядные примеры<span class="ez-toc-section-end"></span></h4>
<p>К симметричным шифрам относят:</p>
<ul><li>3DES;</li><li>SEED — Корея;</li><li>Camellia – Япония;</li><li>CAST – от разработчиков Carlisle Adams;</li><li>IDEA;</li><li>XTEA – самый лучший алгоритм, который проще освоить;</li><li>DES – старый американский стандарт;</li><li>AES.</li></ul>
<p>Как и в прошлых случаях, это всего лишь примеры. Сегодня на практике довольно часто встречается такой алгоритм для шифрования информации, как AES. Он является новым американским.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="Rijndael"></span>Rijndael<span class="ez-toc-section-end"></span></h2>
<p>Подход типа Rijndael – это симметричный метод защиты сведений. Относится к блочным. В нем можно корректировать параметры блоков, а также секретных ключей от 128 до 256 бит. Но важно учесть — разность достигает 32 бита.</p>
<p>В процессе реализации задействует линейно-подстановочные принципы. Раунд здесь может быть 10, 12 или 14. Он напрямую зависит от длины ключа.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_AES"></span>Особенности AES<span class="ez-toc-section-end"></span></h3>
<p>AES – это своеобразный подход к решению поставленной задачи, опирающийся на алгоритм Rijndael. Предыдущее решение с ключом 128 бит. Блок данных здесь составит 16 <a href="https://otus.ru/journal/bajty-i-bity-chto-nuzhno-znat-ob-ih-poryadke/" data-wpel-link="internal">байт</a>. Предусматривает различные функции.</p>
<p>К ним относят:</p>
<ul><li>keyExpansion – само расширение ключа;</li><li>subBytes — замена «стейт»;</li><li>addRoundKey – раундовые ключи;</li><li>shiftRows – смещение строк посредством циклов;</li><li>mixColumns – перемешивание столбцов;</li><li>invMixColumns – обратное от предыдущего действия;</li><li>invShiftRows – обратный вариант от shiftRows;</li><li>invSubBytes – обратная замена «стейт».</li></ul>
<p>Шифрование информации через алгоритм так называемого шифрования AES осуществляется в несколько шагов. Каждый предусматривает собственные нюансы.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF_%D0%B7%D0%B0%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BA%D0%B8"></span>Принцип зашифровки<span class="ez-toc-section-end"></span></h4>
<p>Шифрование осуществляется в несколько этапов:</p>
<p>1. Формирование «стейт». Предположим, что уже есть секретное сообщение, для того или иного адресата. Оно представлено числами в диапазоне от 0 до 255. Здесь происходит деление на n-блоков информации по 16 байт. Каждый «пакет информации» называется «стейт». Если текст не кратен 16 байтам, он дополняется до соответствующих значений.</p>
<p>2. KeyExpansion. Ключи в AES побайтно равны state. Происходит расширение ключа, которое отвечает за генерацию нынешних массивов ключей для циклов раундов шифрования. В виде сопоставления операции XOR задействован фиксированный массив Rcon. Здесь keyExpansion через XOR с фиксированными ключевыми массивами осуществляет возврат массивов оных. Их количество – 11 штук. Только один не относится к раунду алгоритма.</p>
<p>3. AddRoundKey. Это – первый этап шифрования. Применяется к state при помощи правил суммирования. Происходит XOR со state, с каждым его байтов. Далее «стейт» переходит к следующей ступени – к системе раундов алгоритмов.</p>
<p>4. Раунды. Всего их 10 штук. Получается своеобразные таблицы замен из 10 шагов. Первые 9 выполняют subBytes, shiftRows, mixColumns, addRoundKey. Последний отвечает за обработку «саба», «шифта» и «эдда».</p>
<p>5. SubBytes. Происходит трансформация «стейта» через замену собственных байтов на иные. Для этого используется их подставление в готовые фиксированные таблицы S-box.</p>
<figure class="wp-block-image size-large"><img decoding="async" width="620" height="332" src="https://otus.ru/journal/wp-content/uploads/2021/09/1-4.png" alt="Все, что нужно знать о криптографии: алгоритмы" class="wp-image-2110" srcset="https://otus.ru/journal/wp-content/uploads/2021/09/1-4.png 620w, https://otus.ru/journal/wp-content/uploads/2021/09/1-4-300x161.png 300w, https://otus.ru/journal/wp-content/uploads/2021/09/1-4-150x80.png 150w" sizes="(max-width: 620px) 100vw, 620px" /></figure>
<p>6. ShiftRows. Производится циклическое смещение трех последних строк влево. Принцип указан на картинке.</p>
<figure class="wp-block-image size-large"><img decoding="async" width="623" height="372" src="https://otus.ru/journal/wp-content/uploads/2021/09/2-2.png" alt="Все, что нужно знать о криптографии: алгоритмы" class="wp-image-2111" srcset="https://otus.ru/journal/wp-content/uploads/2021/09/2-2.png 623w, https://otus.ru/journal/wp-content/uploads/2021/09/2-2-300x179.png 300w, https://otus.ru/journal/wp-content/uploads/2021/09/2-2-150x90.png 150w" sizes="(max-width: 623px) 100vw, 623px" /></figure>
<p>7. MixColumns. Самый сложный вычислительный процесс. Здесь осуществляется умножение на постоянную функцию f(x) = {03}x^3 + {01}x^2 + {01}x + {02}. Так получается произведение по указанным ранее правилам конкретных столбцов из State на функции a(x). Если исключить правило умножения алгоритма так называемого шифрования, подобный прием будет аналогичен матричному умножению.</p>
<p>В случае с дешифрованием ситуация будет примерно такой же. Процедура полностью осуществляется за несколько подходов (шагов).</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E_%D0%B4%D0%B5%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8"></span>О дешифровании<span class="ez-toc-section-end"></span></h4>
<p>Сначала система при чтении сообщения путем алгоритмов шифрования типа AES использует KeyExpansion. Далее производятся раунды алгоритмов. Они предусматривают 10 ступеней, называемых шагами криптопреобразования.</p>
<p>Первые девять штук отвечают за цикличное выполнение 4-х функций в порядке, обратном методу первоначально защиты (шифровки). А именно:</p>
<ul><li>addRoundKey;</li><li>invMixColumns;</li><li>invShiftRows;</li><li>invSubBytes.</li></ul>
<p>Последний, 10 раунд – это три операции: «ЭддРаундКей», «ИнвШифт», «ИнвСабБайтс». Далее производится обработка addRoundKey. Этап предусматривает обратное суммирование по правилам алгоритмов используемого шифрования самого себя. Полностью исключается массив Rcon.</p>
<p>Следующий шаг – обработка invMixColumns. Это – мультипликативная обработка операции умножения по правилам умножения алгоритма на постоянную функцию a^(-1) от x конкретного столбца «стейт».</p>
<p>Теперь система будет производить обратную трансформацию shiftRows. То есть, проведет цикличное смещение «информации» вправо. Завершающий этап – это инверсия. Производится относительно «СабБайтс». Предусматривает обратную замену байта state, которая заведомо представлена в hex согласно соответствию фиксированной таблички:</p>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="589" height="341" src="https://otus.ru/journal/wp-content/uploads/2021/09/3-1.png" alt="Все, что нужно знать о криптографии: алгоритмы" class="wp-image-2112" srcset="https://otus.ru/journal/wp-content/uploads/2021/09/3-1.png 589w, https://otus.ru/journal/wp-content/uploads/2021/09/3-1-300x174.png 300w, https://otus.ru/journal/wp-content/uploads/2021/09/3-1-150x87.png 150w" sizes="(max-width: 589px) 100vw, 589px" /></figure>
<p>На данном этапе пользователь сможет прочесть необходимую ему информацию. Звучит трудно, но программисты и хакеры для реализации поставленной задачи никогда не действуют «вручную». Они используют IT-технологии и всевозможные шифровальщики и дешифраторы.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F_%D0%B8_IT"></span>Криптография и IT<span class="ez-toc-section-end"></span></h2>
<p>В цифровых технологиях криптография – это основной инструмент обеспечения конфиденциальности информации. Помогает противодействовать незаконному (несанкционированному) копированию и распространению информации по интернету (включая даркнет). В основном применяется для защиты интеллектуальной собственности.</p>
<p>Среднестатистические юзеры могут столкнуться с соответствующими методами не только при работе в Сети, но и во время установки/запуска игр. Там тоже задействованы рассмотренные варианты защиты в той или иной форме.</p>
<p>Внимание: хакерский взлом и появление «пиратских» копий программного обеспечения ставит под вопрос сохранность информации пользователей, а также ее целостность и конфиденциальность.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%97%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5"></span>Заключение<span class="ez-toc-section-end"></span></h2>
<p>Криптография – полезная и перспективная наука, тесно связанная с программированием. Сейчас на нее нельзя отучиться на «вышке». Ни один ВУЗ не предлагает изучение encryption и других вариантов обеспечения безопасности в полной мере.</p>
<p>Если пользователь захотел стать экспертом в данном области, он должен разбираться в программировании, IT, информатике, алгоритмах. Можно пройти спецкурсы по выбранному направлению.</p>
<figure class="wp-block-image size-large"><a href="https://otus.ru/lessons/algorithm/?utm_source=oj&utm_medium=affilate&utm_campaign=algo" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer"><img loading="lazy" decoding="async" width="970" height="90" src="https://otus.ru/journal/wp-content/uploads/2021/09/Algoritmy_970x90-20219-543a9a.png" alt="Все, что нужно знать о криптографии: алгоритмы" class="wp-image-2109" srcset="https://otus.ru/journal/wp-content/uploads/2021/09/Algoritmy_970x90-20219-543a9a.png 970w, https://otus.ru/journal/wp-content/uploads/2021/09/Algoritmy_970x90-20219-543a9a-300x28.png 300w, https://otus.ru/journal/wp-content/uploads/2021/09/Algoritmy_970x90-20219-543a9a-150x14.png 150w, https://otus.ru/journal/wp-content/uploads/2021/09/Algoritmy_970x90-20219-543a9a-768x71.png 768w" sizes="(max-width: 970px) 100vw, 970px" /></a></figure>
<p></p>
</div><!-- .post-content -->
<div class="the-post-foot cf">
<div class="tag-share cf">
<div class="post-tags"><a href="https://otus.ru/journal/tag/algoritmy/" rel="tag" data-wpel-link="internal">Алгоритмы</a></div>
<div class="post-share">
<div class="post-share-icons cf">
<span class="counters">
</span>
<a href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fotus.ru%2Fjournal%2Fvse-chto-nuzhno-znat-o-kriptografii-algoritmy%2F" class="link facebook wpel-icon-right" target="_blank" title="Share on Facebook" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-facebook"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fvse-chto-nuzhno-znat-o-kriptografii-algoritmy%2F&text=%D0%92%D1%81%D0%B5%2C%20%D1%87%D1%82%D0%BE%20%D0%BD%D1%83%D0%B6%D0%BD%D0%BE%20%D0%B7%D0%BD%D0%B0%D1%82%D1%8C%20%D0%BE%20%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%B8%3A%20%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B" class="link twitter wpel-icon-right" target="_blank" title="Share on Twitter" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-twitter"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fotus.ru%2Fjournal%2Fvse-chto-nuzhno-znat-o-kriptografii-algoritmy%2F" class="link linkedin wpel-icon-right" target="_blank" title="LinkedIn" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-linkedin"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://pinterest.com/pin/create/button/?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fvse-chto-nuzhno-znat-o-kriptografii-algoritmy%2F&media=https%3A%2F%2Fotus.ru%2Fjournal%2Fwp-content%2Fuploads%2F2021%2F09%2Foj-1080x720-6-1.png&description=%D0%92%D1%81%D0%B5%2C%20%D1%87%D1%82%D0%BE%20%D0%BD%D1%83%D0%B6%D0%BD%D0%BE%20%D0%B7%D0%BD%D0%B0%D1%82%D1%8C%20%D0%BE%20%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%B8%3A%20%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B" class="link pinterest wpel-icon-right" target="_blank" title="Pinterest" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-pinterest-p"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
</div>
</div>
</div>
<div class="post-nav">
<div class="post previous cf">
<a href="https://otus.ru/journal/bitriks-i-big-data-opisanie-i-osobennosti/" title="Prev Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-left"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/bitriks-i-big-data-opisanie-i-osobennosti/" class="image-link" rel="previous" data-wpel-link="internal">
<img width="150" height="100" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20100%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="Битрикс и Биг Дата: описание и особенности" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-5-1-150x100.png 150w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-5-1-300x200.png 300w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-5-1-1024x683.png 1024w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-5-1-768x512.png 768w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-5-1-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-5-1-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-5-1-370x245.png 370w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-5-1.png 1080w" data-src="https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-5-1-150x100.png" data-sizes="(max-width: 150px) 100vw, 150px" title="Битрикс и Биг Дата: описание и особенности" /> </a>
<div class="post-meta">
<span class="label">Prev Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/bitriks-i-big-data-opisanie-i-osobennosti/" data-wpel-link="internal">Битрикс и Биг Дата: описание и особенности</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/bitriks-i-big-data-opisanie-i-osobennosti/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2021-09-25T09:57:47+00:00">25 сентября, 2021</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">9 Mins Read</span>
</div>
</div> </div>
</span>
</div>
<div class="post next cf">
<a href="https://otus.ru/journal/android-studio-opisanie-primery-programm-kak-sdelat-svoj-magazin-v-seti/" title="Next Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-right"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/android-studio-opisanie-primery-programm-kak-sdelat-svoj-magazin-v-seti/" class="image-link" rel="next" data-wpel-link="internal">
<img width="150" height="100" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20100%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="Android Studio – описание, примеры программ, как сделать свой магазин в Сети" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-7-150x100.png 150w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-7-300x200.png 300w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-7-1024x683.png 1024w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-7-768x512.png 768w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-7-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-7-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-7-370x245.png 370w, https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-7.png 1080w" data-src="https://otus.ru/journal/wp-content/uploads/2021/09/oj-1080x720-7-150x100.png" data-sizes="(max-width: 150px) 100vw, 150px" title="Android Studio – описание, примеры программ, как сделать свой магазин в Сети" /> </a>
<div class="post-meta">
<span class="label">Next Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/android-studio-opisanie-primery-programm-kak-sdelat-svoj-magazin-v-seti/" data-wpel-link="internal">Android Studio – описание, примеры программ, как сделать свой магазин в Сети</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/android-studio-opisanie-primery-programm-kak-sdelat-svoj-magazin-v-seti/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2021-09-25T10:33:17+00:00">25 сентября, 2021</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">9 Mins Read</span>
</div>
</div> </div>
</span>
</div>
</div>
<section class="related-posts grid-3">
<h4 class="section-head"><span class="title">Читать ещё</span></h4>
<div class="ts-row posts cf">
<article class="post col-4">
<a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" title="Уровень готовности CTO к 2026" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Уровень готовности CTO к 2026" title="Уровень готовности CTO к 2026" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" class="post-link" data-wpel-link="internal">Уровень готовности CTO к 2026</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-16T19:50:59+00:00">16 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" title="Новые уроки ноября: только топ-темы по программированию" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Новые уроки ноября: только топ-темы по программированию" title="Новые уроки ноября: только топ-темы по программированию" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" class="post-link" data-wpel-link="internal">Новые уроки ноября: только топ-темы по программированию</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-09T23:24:11+00:00">9 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/schjot-idjot-na-chasy/" title="Счёт идёт на часы" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Счёт идёт на часы" title="Счёт идёт на часы" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-370x245.png 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/schjot-idjot-na-chasy/" class="post-link" data-wpel-link="internal">Счёт идёт на часы</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-10-30T15:04:59+00:00">30 октября, 2025</time>
</div>
</div>
</article >
</div>
</section>
</article> <!-- .the-post -->
</div>
<aside class="col-4 sidebar">
<div class="inner">
<ul>
<li id="search-2" class="widget widget_search"><h5 class="widget-title"><span>Поиск по блогу</span></h5>
<form method="get" class="search-form" action="https://otus.ru/journal/">
<label>
<span class="screen-reader-text">Search for:</span>
<input type="search" class="search-field" placeholder="Введите запрос и нажмите Enter" value="" name="s" title="Search for:" />
</label>
<button type="submit" class="search-submit"><i class="fa fa-search"></i></button>
</form>
</li>
<li id="tag_cloud-5" class="widget widget_tag_cloud"><h5 class="widget-title"><span>Метки</span></h5><div class="tagcloud"><a href="https://otus.ru/journal/tag/android-2/" class="tag-cloud-link tag-link-74 tag-link-position-1" style="font-size: 12.472222222222pt;" aria-label="Android (34 элемента)" data-wpel-link="internal">Android</a>
<a href="https://otus.ru/journal/tag/c-3/" class="tag-cloud-link tag-link-91 tag-link-position-2" style="font-size: 10.916666666667pt;" aria-label="C (23 элемента)" data-wpel-link="internal">C</a>
<a href="https://otus.ru/journal/tag/c-2/" class="tag-cloud-link tag-link-81 tag-link-position-3" style="font-size: 12.666666666667pt;" aria-label="C# (35 элементов)" data-wpel-link="internal">C#</a>
<a href="https://otus.ru/journal/tag/c/" class="tag-cloud-link tag-link-20 tag-link-position-4" style="font-size: 12.472222222222pt;" aria-label="c++ (34 элемента)" data-wpel-link="internal">c++</a>
<a href="https://otus.ru/journal/tag/computer-science/" class="tag-cloud-link tag-link-209 tag-link-position-5" style="font-size: 15.972222222222pt;" aria-label="computer science (78 элементов)" data-wpel-link="internal">computer science</a>
<a href="https://otus.ru/journal/tag/css/" class="tag-cloud-link tag-link-288 tag-link-position-6" style="font-size: 8.6805555555556pt;" aria-label="CSS (13 элементов)" data-wpel-link="internal">CSS</a>
<a href="https://otus.ru/journal/tag/data-science/" class="tag-cloud-link tag-link-151 tag-link-position-7" style="font-size: 8pt;" aria-label="Data Science (11 элементов)" data-wpel-link="internal">Data Science</a>
<a href="https://otus.ru/journal/tag/devops/" class="tag-cloud-link tag-link-98 tag-link-position-8" style="font-size: 10.138888888889pt;" aria-label="devops (19 элементов)" data-wpel-link="internal">devops</a>
<a href="https://otus.ru/journal/tag/docker/" class="tag-cloud-link tag-link-143 tag-link-position-9" style="font-size: 8.2916666666667pt;" aria-label="Docker (12 элементов)" data-wpel-link="internal">Docker</a>
<a href="https://otus.ru/journal/tag/gamedev/" class="tag-cloud-link tag-link-25 tag-link-position-10" style="font-size: 11.694444444444pt;" aria-label="gamedev (28 элементов)" data-wpel-link="internal">gamedev</a>
<a href="https://otus.ru/journal/tag/hr/" class="tag-cloud-link tag-link-103 tag-link-position-11" style="font-size: 8pt;" aria-label="hr (11 элементов)" data-wpel-link="internal">hr</a>
<a href="https://otus.ru/journal/tag/html/" class="tag-cloud-link tag-link-217 tag-link-position-12" style="font-size: 11.208333333333pt;" aria-label="HTML (25 элементов)" data-wpel-link="internal">HTML</a>
<a href="https://otus.ru/journal/tag/ios/" class="tag-cloud-link tag-link-101 tag-link-position-13" style="font-size: 8.9722222222222pt;" aria-label="iOS (14 элементов)" data-wpel-link="internal">iOS</a>
<a href="https://otus.ru/journal/tag/it/" class="tag-cloud-link tag-link-50 tag-link-position-14" style="font-size: 10.527777777778pt;" aria-label="IT (21 элемент)" data-wpel-link="internal">IT</a>
<a href="https://otus.ru/journal/tag/java/" class="tag-cloud-link tag-link-75 tag-link-position-15" style="font-size: 15.680555555556pt;" aria-label="Java (73 элемента)" data-wpel-link="internal">Java</a>
<a href="https://otus.ru/journal/tag/javascript/" class="tag-cloud-link tag-link-83 tag-link-position-16" style="font-size: 14.319444444444pt;" aria-label="JavaScript (53 элемента)" data-wpel-link="internal">JavaScript</a>
<a href="https://otus.ru/journal/tag/linux/" class="tag-cloud-link tag-link-141 tag-link-position-17" style="font-size: 11.888888888889pt;" aria-label="Linux (29 элементов)" data-wpel-link="internal">Linux</a>
<a href="https://otus.ru/journal/tag/machine-learning/" class="tag-cloud-link tag-link-167 tag-link-position-18" style="font-size: 8.6805555555556pt;" aria-label="Machine Learning (13 элементов)" data-wpel-link="internal">Machine Learning</a>
<a href="https://otus.ru/journal/tag/otus-book/" class="tag-cloud-link tag-link-261 tag-link-position-19" style="font-size: 9.9444444444444pt;" aria-label="otus book (18 элементов)" data-wpel-link="internal">otus book</a>
<a href="https://otus.ru/journal/tag/php/" class="tag-cloud-link tag-link-45 tag-link-position-20" style="font-size: 10.527777777778pt;" aria-label="PHP (21 элемент)" data-wpel-link="internal">PHP</a>
<a href="https://otus.ru/journal/tag/python/" class="tag-cloud-link tag-link-27 tag-link-position-21" style="font-size: 16.944444444444pt;" aria-label="Python (99 элементов)" data-wpel-link="internal">Python</a>
<a href="https://otus.ru/journal/tag/qa/" class="tag-cloud-link tag-link-155 tag-link-position-22" style="font-size: 11.402777777778pt;" aria-label="qa (26 элементов)" data-wpel-link="internal">qa</a>
<a href="https://otus.ru/journal/tag/sql/" class="tag-cloud-link tag-link-38 tag-link-position-23" style="font-size: 12.861111111111pt;" aria-label="SQL (37 элементов)" data-wpel-link="internal">SQL</a>
<a href="https://otus.ru/journal/tag/team-lead/" class="tag-cloud-link tag-link-364 tag-link-position-24" style="font-size: 9.9444444444444pt;" aria-label="team lead (18 элементов)" data-wpel-link="internal">team lead</a>
<a href="https://otus.ru/journal/tag/unity/" class="tag-cloud-link tag-link-24 tag-link-position-25" style="font-size: 8pt;" aria-label="unity (11 элементов)" data-wpel-link="internal">unity</a>
<a href="https://otus.ru/journal/tag/algoritmy/" class="tag-cloud-link tag-link-30 tag-link-position-26" style="font-size: 9.9444444444444pt;" aria-label="Алгоритмы (18 элементов)" data-wpel-link="internal">Алгоритмы</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh/" class="tag-cloud-link tag-link-40 tag-link-position-27" style="font-size: 10.138888888889pt;" aria-label="Базы данных (19 элементов)" data-wpel-link="internal">Базы данных</a>
<a href="https://otus.ru/journal/tag/matematika/" class="tag-cloud-link tag-link-44 tag-link-position-28" style="font-size: 10.916666666667pt;" aria-label="Математика (23 элемента)" data-wpel-link="internal">Математика</a>
<a href="https://otus.ru/journal/tag/arhitektura-po/" class="tag-cloud-link tag-link-10 tag-link-position-29" style="font-size: 9.4583333333333pt;" aria-label="архитектура ПО (16 элементов)" data-wpel-link="internal">архитектура ПО</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh-2/" class="tag-cloud-link tag-link-251 tag-link-position-30" style="font-size: 10.138888888889pt;" aria-label="базы данных (19 элементов)" data-wpel-link="internal">базы данных</a>
<a href="https://otus.ru/journal/tag/vebinar/" class="tag-cloud-link tag-link-201 tag-link-position-31" style="font-size: 13.930555555556pt;" aria-label="вебинар (48 элементов)" data-wpel-link="internal">вебинар</a>
<a href="https://otus.ru/journal/tag/dajdzhest/" class="tag-cloud-link tag-link-308 tag-link-position-32" style="font-size: 10.722222222222pt;" aria-label="дайджест (22 элемента)" data-wpel-link="internal">дайджест</a>
<a href="https://otus.ru/journal/tag/zapis-vebinara/" class="tag-cloud-link tag-link-226 tag-link-position-33" style="font-size: 14.902777777778pt;" aria-label="запись вебинара (61 элемент)" data-wpel-link="internal">запись вебинара</a>
<a href="https://otus.ru/journal/tag/zapis-uroka/" class="tag-cloud-link tag-link-272 tag-link-position-34" style="font-size: 16.069444444444pt;" aria-label="запись урока (80 элементов)" data-wpel-link="internal">запись урока</a>
<a href="https://otus.ru/journal/tag/informacionnaya-bezopasnost/" class="tag-cloud-link tag-link-232 tag-link-position-35" style="font-size: 10.138888888889pt;" aria-label="информационная безопасность (19 элементов)" data-wpel-link="internal">информационная безопасность</a>
<a href="https://otus.ru/journal/tag/karera-v-it/" class="tag-cloud-link tag-link-292 tag-link-position-36" style="font-size: 9.9444444444444pt;" aria-label="карьера в IT (18 элементов)" data-wpel-link="internal">карьера в IT</a>
<a href="https://otus.ru/journal/tag/podborka/" class="tag-cloud-link tag-link-7 tag-link-position-37" style="font-size: 12.666666666667pt;" aria-label="подборка (35 элементов)" data-wpel-link="internal">подборка</a>
<a href="https://otus.ru/journal/tag/podborka-statej/" class="tag-cloud-link tag-link-219 tag-link-position-38" style="font-size: 15.777777777778pt;" aria-label="подборка статей (75 элементов)" data-wpel-link="internal">подборка статей</a>
<a href="https://otus.ru/journal/tag/programmirovanie/" class="tag-cloud-link tag-link-65 tag-link-position-39" style="font-size: 22pt;" aria-label="программирование (332 элемента)" data-wpel-link="internal">программирование</a>
<a href="https://otus.ru/journal/tag/proekt/" class="tag-cloud-link tag-link-321 tag-link-position-40" style="font-size: 11.888888888889pt;" aria-label="проект (29 элементов)" data-wpel-link="internal">проект</a>
<a href="https://otus.ru/journal/tag/proektnaya-rabota/" class="tag-cloud-link tag-link-310 tag-link-position-41" style="font-size: 11.597222222222pt;" aria-label="проектная работа (27 элементов)" data-wpel-link="internal">проектная работа</a>
<a href="https://otus.ru/journal/tag/seti/" class="tag-cloud-link tag-link-181 tag-link-position-42" style="font-size: 12.958333333333pt;" aria-label="сети (38 элементов)" data-wpel-link="internal">сети</a>
<a href="https://otus.ru/journal/tag/testirovanie/" class="tag-cloud-link tag-link-69 tag-link-position-43" style="font-size: 13.930555555556pt;" aria-label="тестирование (48 элементов)" data-wpel-link="internal">тестирование</a>
<a href="https://otus.ru/journal/tag/upravlenie-komandoj/" class="tag-cloud-link tag-link-63 tag-link-position-44" style="font-size: 11.694444444444pt;" aria-label="управление командой (28 элементов)" data-wpel-link="internal">управление командой</a>
<a href="https://otus.ru/journal/tag/habr-2/" class="tag-cloud-link tag-link-203 tag-link-position-45" style="font-size: 13.930555555556pt;" aria-label="хабр (48 элементов)" data-wpel-link="internal">хабр</a></div>
</li>
</ul>
</div>
</aside>
</div> <!-- .ts-row -->
</div> <!-- .main -->
<footer class="main-footer dark bold">
<section class="lower-footer cf">
<div class="wrap">
<div class="links">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov-1" class="menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
<p class="copyright"> © 2015-2026 OTUS </p>
<div class="to-top">
<a href="#" class="back-to-top"><i class="fa fa-angle-up"></i> Top</a>
</div>
</div>
</section>
</footer>
</div> <!-- .main-wrap -->
<div class="mobile-menu-container off-canvas" id="mobile-menu">
<a href="#" class="close"><i class="fa fa-times"></i></a>
<div class="logo">
</div>
<ul class="mobile-menu"></ul>
</div>
<div class="search-modal-wrap">
<div class="search-modal-box" role="dialog" aria-modal="true">
<form method="get" class="search-form" action="https://otus.ru/journal/">
<input type="search" class="search-field" name="s" placeholder="Search..." value="" required />
<button type="submit" class="search-submit visuallyhidden">Submit</button>
<p class="message">
Type above and press <em>Enter</em> to search. Press <em>Esc</em> to cancel. </p>
</form>
</div>
</div>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/js/url-span.js" id="wbcr-comments-plus-url-span-js"></script>
<script type="text/javascript" id="ez-toc-scroll-scriptjs-js-extra">
/* <![CDATA[ */
var eztoc_smooth_local = {"scroll_offset":"30"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/smooth_scroll.min.js" id="ez-toc-scroll-scriptjs-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js" id="ez-toc-js-cookie-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js" id="ez-toc-jquery-sticky-kit-js"></script>
<script type="text/javascript" id="ez-toc-js-js-extra">
/* <![CDATA[ */
var ezTOC = {"smooth_scroll":"1","visibility_hide_by_default":"","scroll_offset":"30","fallbackIcon":"<span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span>"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js" id="ez-toc-js-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/custom-script.js" id="custom-script-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/magnific-popup.js" id="magnific-popup-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.fitvids.js" id="jquery-fitvids-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/imagesloaded.min.js" id="imagesloaded-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/object-fit-images.js" id="object-fit-images-js"></script>
<script type="text/javascript" id="contentberg-theme-js-extra">
/* <![CDATA[ */
var Bunyad = {"custom_ajax_url":"\/journal\/vse-chto-nuzhno-znat-o-kriptografii-algoritmy\/"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theme.js" id="contentberg-theme-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theia-sticky-sidebar.js" id="theia-sticky-sidebar-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.slick.js" id="jquery-slick-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jarallax.js" id="jarallax-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/masonry.min.js" id="masonry-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.masonry.min.js" id="jquery-masonry-js"></script>
</body>
</html>
<!-- Cache served by breeze CACHE - Last modified: Tue, 10 Mar 2026 18:25:57 GMT -->