Важное предупреждение!

Эта статья:

  • НЕ даст четкого понимания, как все работает

  • НЕ позволит вам разобраться в технических особенностях и нюансах

  • совершенно точно НЕ поможет вам разбираться в криптовалютах

  • будет изобиловать неточностями и упрощениями (например, слова “данные” и “информация” будут использоваться как синонимы)

  • может вызывать нервную дрожь и повышенное выделение, вплоть до недержания едких замечаний у людей, разбирающихся в предмете

Зачем же и кому нужна такая статья?

В этой статье приведены основные понятия, которые возникают, когда речь заходит о криптографии. Попытаемся объяснить их на простом бытовом уровне, понятном каждому.

Такой подход, безусловно, приведет к неточностям формулировок и вновь просим учитывать это, переходя к прочтению. Но разобраться в чем-то и уточнить всегда возможно, если знаешь «куда копать». Согласитесь, намного проще искать информацию по какому-то определенному вопросу, чем пытаться сориентироваться в абстрактном поле новой темы.

Кому это может быть интересно? Например:

  • менеджерам и аналитикам, которым не важны технические детали, но важно понимать, о чем говорят их коллеги разработчики

  • новичкам, которым предстоит погрузиться в мир криптографии

  • всем несчастным, кому приходится слушать о задачах информационной безопасности при встрече с друзьями программистами.

Итак, если после всех предупреждений и объяснений вам все еще интересно, предлагаем перейти к сути.

Суть статьи

О чем поговорим:

Криптография: что это и зачем

Шифрование: каким оно бывает

Хеширование: в чем соль

Имитовставка: на страже целостности

Подписи: на страже целостности 2

Сертификаты: без бумажки ты к…конечно, не сможешь быть убедительным

TLS/SSL: как пример использования всего вышесказанного

Криптография: что это и зачем

Криптография – это наука о защите информации, решающая следующие задачи:

1. Конфиденциальность - только те, кому положено, должны суметь прочитать ваше сообщение, мошенникам оно должно быть не понятно. Будет не очень здорово, если номер вашего паспорта, который вы отправили авиакомпании для оформления билетов в страну мечты, станет известен кому-то, кто перехватит сообщение.

2. Целостность данных - получатель должен получить именно те данные, которые вы отправили. У мошенников не должно быть возможности поменять что-то в отправленном сообщении. Согласитесь, будет обидно, если вы отправите реквизиты своей банковской карты для получения лотерейного выигрыша, а мошенник заменит их на данные своей карты.

3. Аутентификация - получатель должен быть уверен, что сообщение отправили вы. Кошмарно, если кто-то кроме вас сможет давать распоряжению банку о переводе денег с вашего счета.

4. Неотрекаемость - у отправителя не должно быть возможности отказаться от авторства сообщения. Не хотелось бы, чтобы работодатель мог обратиться в банк и сказать, что он, на самом деле, не переводил вам зарплату, это какая-то ошибка и обязать банк отозвать уже переведённые деньги.

Как видно из примеров, криптография стоит на страже наших персональных данных, финансов и приватности.

Шифрование: каким оно бывает

Шифрование - процесс изменения исходных данных по какому-то алгоритму с целью их запутать и сделать нечитаемым для тех, кто не знает алгоритма.

Шифрование решает только задачу конфиденциальности, но не решает три остальные. Т.е. это одна из запчастей, необходимых для защиты информации. Необходимая, но недостаточная.

Лирическое отступление: интересный факт

Если верить открытым источникам, первые зашифрованные сообщения относятся к ~1900 г. до н.э. и были обнаружены в Египте и Месопотамии. В них использовались иероглифы с изменённым смыслом.

Дешифровка (расшифровка) - процесс обратный шифрованию. Восстановление исходных данных из запутанных.

Алгоритм шифрования – последовательность шагов преобразования данных. На вход принимает ключ и исходное сообщение, на выходе выдает зашифрованное сообщение - шифротекст.

Ключ - секретная информация, которая определяет, как именно будут зашифрованы данные. Обычно является строкой битов.

Если вы зашифруете исходное сообщение два раза, при этом используя один и тот же алгоритм шифрования, но два разных ключа, вы получите два разных шифротекста. В то же время, если в обоих случаях ключ будет одинаковым, то и два полученных шифротекста будут одинаковыми.

Ключи используются как для шифрования, так и для расшифровки.

Лирическое отступление: простой пример

Самым известным является шифр Цезаря, придуманный, как следует из названия, Юлием Цезарем.

Его смысл: смещать буквы вперед по алфавиту с определенным шагом.

В данном случае “смещать буквы” — это алгоритм шифрования, а “определенный шаг” — это ключ.

Например, для шага (ключа) 3 в исходном сообщении буква “П” должна быть заменена на “Т”. И тогда:

ПРИВЕТ -> ТУЛЗИХ

Если взять шаг (ключ) 1, то:

ПРИВЕТ -> РСЙГЁУ

Развлечения ради можете попробовать расшифровать следующий шифротекст, ключ 3:

ЖСУСЁЦ   РФЛОЛХ   ЛЖЦЩЛМ

Симметричный алгоритм шифрования - алгоритм, где для шифровки и расшифровки используется одинаковый ключ. Такие алгоритмы считаются надежными и быстрыми, их применяют для шифрования больших текстов.

Если вы видите аббревиатуры AES, DES (устарел), ChaCha20, знайте — это название симметричных алгоритмов шифрования. Конечно, здесь и далее по тексту, за аббревиатурами скрываются полные названия алгоритмов, но в этой статье они ценности не представляют, их легко найти в интернете.

При использовании симметричных алгоритмов отправителю сообщений и получателю важно заранее договориться о том, какой ключ они будут использовать. Причем важно сохранить его в секрете от посторонних глаз.

Есть проблема! Некоторые алгоритмы (AES, DES) устроены так, что в результате их применения получается шифротекст, похожий на исходное сообщение. Такой, что, глядя на него, можно будет догадаться об исходном содержании. Классическая иллюстрация этой проблемы пингвин ECB. Посмотрите, конечно, картинка «шифротекст» не повторяет «исходное сообщение», но все же, имея немного воображения, можно увидеть на ней пингвина.

Исходное сообщение
Исходное сообщение
Шифротекст
Шифротекст

Для решения этой проблемы придумали режимы шифрования.

Режим шифрования – алгоритм преобразования исходных данных с целью подготовки их к шифрованию. На вход принимает исходное сообщение и вектор инициализации.

Вектор инициализации - секретный код, определяющий, как данные будут изменены. Напоминает ключ, но имеет ряд важных отличий:

  • при каждой попытке шифрования меняется (в отличие от ключа, который хранится и у отправителя сообщения, и у получателя);

  • генерируется для каждого блока отдельно (в отличие от ключа, который применяется для всего исходного сообщения);

  • короче ключа (длина ключа имеет значение для безопасности, упрощая, чем длиннее ключ - тем безопасней. Хотя бы потому, что его сложнее подобрать)

Если вам встретились аббревиатуры CBC, CTR, GCM, речь о режиме шифрования.

Запись AES-GCM говорит о том, что для шифрования используется симметричный алгоритм AES, в котором для подготовки данных применяется режим шифрования GCM.

Асимметричный алгоритм шифрования – алгоритм, где для шифровки и расшифровки используется разные ключи: открытый (публичный) ключ для шифрования, закрытый (приватный) ключ для дешифровки. Приватный ключ является секретом и не должен быть скомпрометирован, а вот публичный является общедоступным.

Асимметричные алгоритмы работают медленнее симметричных, поэтому их не применяют для шифрования больших текстов. Но наличие двух ключей освобождает от необходимости отправителю и получателю сообщений заранее знакомится и договариваться о ключах. Любой, у кого есть открытый ключ, может написать зашифрованное сообщение владельцу закрытого ключа. При этом открытый ключ не нуждается в защите и не требует особых условий охраны, он может быть размещен где угодно, его легко распространять.

Чаще всего встречается асимметричный алгоритм RSA. Аббревиатура ECC укажет, что вы столкнулись с асимметричными алгоритмами на эллиптических кривых (отличаются алгоритмом преобразования данных), таких как ECDH, ECDSA.

На данный момент существует довольно много атак, которые способны успешно расшифровывать шифротексты, полученные с помощью асимметричных алгоритмов. Для защиты от таких атак были придуманы схемы дополнения.

Схема дополнения (дополнение) - процесс подготовки исходного сообщения к шифрованию с помощью асимметричных алгоритмов путем добавления случайных данных к исходному тексту.

Дополнения - некий аналог режимов шифрования в симметричных алгоритмах.

Примеры схем: OAEP, PSS. Алгоритм RSA принято использовать с дополнением OAEP: RSA-OAEP.

На практике асимметричные алгоритмы шифрования используются для решения задачи обмена ключами.

Задача обмена ключами: безопасно передавать симметричный ключ между двумя сторонами по незащищённому каналу так, чтобы злоумышленник не смог его перехватить.

Лирическое отступление: совсем уж лирическое

Для решения этой задачи используется такая элегантная математика! Если вы любите красивые решения, почитайте про это поподробней. В этом видео очень быстро и легко объясняется алгоритм Диффи-Хеллмана, если у вас есть пять минут, посмотрите его.

Каждый вид шифрования обладает своими плюсами и минусами, и чтобы объединить преимущества каждого из подходов используется гибридное шифрование:

  1. с помощью асимметричного шифрования осуществляется обмен ключами так, чтобы у каждой из сторон был секретный симметричный ключ для дальнейшего использования;

  2. сообщения, в том числе и большие тексты, шифруются с помощью симметричных алгоритмов с использованием ключа, полученного на первом шаге.

Хеширование: в чем соль

Хеш-функции – функция необратимого преобразования данных, обладающая набором крайне полезных свойств, о них чуть дальше. Фактически, это функция, которая на вход принимает текст и преобразует его в строку условно случайных символов фиксированной длины.

Результат выполнения хеш-функции называют хешем или дайджестом. Выглядит это так: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Процесс применения хеш-функций называют хешированием.

Свойства хеш-функций:

  1. Необратимость – по дайджесту нельзя восстановить исходные данные. Если не верите, попробуйте разгадать фразу:

    e3d0e19b4f67c8b0e0e3a7a8f3d4c6b2e5d8e1a9c4b3f6e7d2c5a8b1e0d9f2a4

  2. Детерминированность – один и тот же вход всегда даёт одинаковый хеш. Сколько бы раз вы не пытались захешировать слово БУЙ, итог будет всегда одинаковым.

  3. Уникальность – даже небольшое изменение входных данных полностью меняет хеш. Если захешровать сообщения «БУЙ» и «БуЙ», то результат будет разным.

  4. Фиксированная длина – независимо от размера входных данных, дайджест всегда будет иметь одинаковую длину. Не важно, каким будет входное сообщение, «БУЙ» или фрагмент 1го тома «Войны и мира», длина полученной строки будет одинаковой.

  5. Стойкость к коллизиям:

    a. крайне сложно найти разные входные данные, которые в результате преобразования получают один и тот же хеш;

    b. крайне сложно, имея входные данные и дайджест, найти другие входные данные, которые получили бы такой же хеш.

    Примечание: найти данные настолько сложно, что на данном этапе развития криптографических алгоритмов можно считать невозможны.

    Хотя эти коллизии (a и b) очень похожи, но на самом деле разные. С точки зрения теории это важно, с точки зрения этой статьи на самом деле нет.

    Хеш-функции позволяют решить проблему проверки целостности данных. Но также используются в криптографических механизмах для решения других задач.

    Что нужно понимать о хеш-функциях?  Они полезны, когда вам нужно использовать какие-то данные, но не надо их знать – работать с данными, не раскрывая секрета.

    Например, пароли от учетных записей обычно хранятся в хешированном виде. При авторизации, когда вы введете свой пароль, он предварительно захешируется, а после будет сравнен с тем хешем, что был сохранен в базе данных.  Это хорошая практика, ведь владельцам сайтов не обязательно знать, как попасть в вашу учетную запись. Да и если пароль «утечет», восстановить его из хеша не получится. Также при оплате товаров и услуг банковскими картами в системах используются не их номера в «чистом» виде, а так называемы хеш PAN, т.е. захешированные номера. Именно благодаря хешированию можно привязывать банковские карты к аккаунтам интернет-магазинов, владельцы сайтов точно не узнают номер вашей кредитки, ведь банк передаст им только строку непонятных символов.

    Но если говорить о паролях, то все мы знаем, что есть множество ненадежных паролей, давно известных мошенникам. Им не сложно вычислить дайджесты этих паролей, а потом сравнить с данными, которые «утекли». Тогда они все-таки смогут узнать ваш пароль (если он был ненадежным) и использовать его для проникновения в аккаунты.

    Лирическое отступление: о названиях

    Списки ненадежных и давно взломанных паролей и их хешей называют «радужные таблицы».

    Не очень приятная ситуация. Что же тогда делать? Надо посолить!

    Соль – данные, которые добавляются к исходному сообщению перед хешированием.

    Для каждого сообщения используется своя соль. Очень похоже на дополнение в асимметричном шифровании, но в отличие от дополнений, получаемых с помощью определенных алгоритмов (схем), генерируется случайным образом.

    Пример хеш-функций: SHA-256, SHA-512, SHA-3, Keccak-256, BLAKE2, Argon2 (специализированная для паролей). Соли обозначений не имеют, они либо используются, либо нет (но лучше да).

    Имитовставка: на страже целостности

    Имитовставка (MAC) – механизм «запечатывания» отправляемого сообщения, по аналогии с проставлением обычной печати на бумажном документе. При этом формируется аутентификационный тег, который и является «печатью». В плоскости реализации имитовставка — это функция, которая на вход принимает исходный текст и ключ, смешивает их по умному алгоритму и хеширует результат.

    Есть разные виды MAC, отличающиеся тем, как они готовят данные к хешированию и какую функцию используют. Например: HMAC, KMAC, CMAC-AES, Poly1305.

    Аутентификационный тег выглядит ровно так же, как дайджест. Он передается вместе с сообщением.

    Имитовставка решает задачи проверки целостности данных.

    Важный нюанс! Имитовставка – это элемент симметричной криптографии: чтобы магия сработала у отправителя и получателя должен быть одинаковый ключ. А еще они оба должны знать, какой именно вариант MAC используют (HMAC, KMAC, что-то еще).

    В этом случае магия выглядит примерно так:

    1. Отправитель сообщения формирует аутентификационный тег – тег 1, и направляет его вместе с сообщением получателю.

    2. Получатель берет сообщение и ключ и сам генерирует аутентификационный тег – тег 2.

    3. Получатель сравнивает тег 1 и тег 2. Если они равны, то можно быть уверенным, что сообщение доставлено от отправителя без изменений. Если они отличаются – не обошлось без вмешательства со стороны, пора проявлять бдительность.

Подписи: на страже целостности 2

Цифровая подпись/ Электронная подпись/ Подпись – буквально аналог той подписи, что вы множество раз оставляли на всякого рода бланках, заявлениях, договорах, той самой, что красуется в вашем паспорте. Для получения подписи текст исходного сообщения хешируют, а полученный хеш шифруют с помощью закрытого ключа. Процесс шифрование хеша называют подписанием.

Примеры алгоритмов подписания: RSA-PSS, ECDSA.

Сформированная подпись направляется вместе с исходным текстом.

Подпись решает задачи проверки целостности данных и аутентификации.

Почувствовали дежавю? Не случайно, ведь ровно то же написано ранее про имитовставку. То же, но есть нюанс.

Подписи – элемент асимметричного шифрования (в отличие от имитовставки). Она формируется с помощью закрытого ключа, а получатель сообщения может проверить ее с помощью открытого.

Магия подписи происходит примерно так:

1.       Отправитель сообщения формирует подпись:

a.       хеширует исходный текст – хеш 1

b.       шифрует (подписывает) его с помощью закрытого ключа и направляет ее вместе с исходным сообщением получателю.

2.       Отправитель сообщения:

a.       расшифровывает подпись с помощью открытого ключа, получая хеш 1

b.       самостоятельно хеширует исходный текст – хеш 2

3.       Получатель сравнивает хеш 1 и хеш 2. Если они равны, то можно быть уверенным, что сообщение действительно пришло в целости и сохранности от отправителя. Если хеши разные, не стоит доверять этому тексту.

Пример алгоритма цифровой подписи – RSA PKCS#1, RSA-PSS.

Тут может возникнуть путаница, ранее в разделе Шифрование говорилось, что шифруют с помощью открытого ключа, а дешифруют с помощью закрытого, а теперь вдруг утверждаем обратное. На самом деле ошибки нет, в зависимости от целей использования роли ключей могут меняться. Закрытым ключом должна пользоваться сторона, которой мы по умолчанию доверяем.

В шифровании вы доверяете получателю (ему одному доступен закрытый ключ).

В подписи вы доверяете отправителю (только он знает закрытый ключ).

В РФ вы можете получить цифровую подпись, которой сможете подписывать электронные документы и заявления. Например, регистрировать патенты, подписывать долговые подписки, заверять доверенности, заключать договоры на оказание услуг и др. Такие подписи выдаются на физическом носителе, который выглядит как флешка.
Использование электронных подписей в РФ регламентирует Федеральный закон "Об электронной подписи" от 06.04.2011 N 63-ФЗ.

Сертификаты: без бумажки ты к…конечно, не сможешь быть убедительным

Сертификат – удостоверение, подтверждающее, что подпись принадлежит владельцу. Это документ, связывающий открытый ключ с информацией о владельце ключа. Он может быть электронным, тогда это цифровой сертификат, или бумажным.

Например, для обычной подписи, которую вы ставите на бумагах, сертификатом выступает ваш паспорт, в котором хранится «эталонный» образец. При необходимости подтвердить, что на какой-то долговой расписке стоит именно ваша подпись, эксперты будут сравнивать подпись на документе с подписью в паспорте.

Сертификат помогает решить задачу аутентификации (подтверждает, что открытый ключ принадлежит его отправителю) и неотрекаемости от авторства (нельзя сказать, что подпись не ваша, если в сертификате указаны ваши данные).

Примеры стандартов цифровых сертификатов: X.509, RFC 5280.

Бумажные сертификаты вместе с подписями на физических носителях, выдают аккредитованные удостоверяющие центры. При этом:

  • получатель предоставляет документы, удостоверяющие личность, а также биометрические данные

  • сотрудники выполняют проверку личности

  • генерируется и записывается на физический носитель подпись, оформляется сертификат

  • подпись и сертификат выдаются на руки получателю.

Аккредитацией удостоверяющих центров в РФ занимается государство.

В приведенной выше аналогии с паспортом удостоверяющим центром в РФ будет МВД (даже если обращаться в него через МФЦ).

В цифровом мире для выдачи подписей и сертификатов, а также проверки соответствия данных выстраиваются инфраструктуры открытых ключей.

Инфраструктура открытых ключей (PKI) – набор компонент, которые решают задачи выдачи подписей и сертификатов, а также их проверки. Основная задача PKI – обеспечение безопасной работы с открытыми ключами. По сути, это цифровой аналог удостоверяющих центров.

Основные компоненты PKI:

  • центр сертификации (CA, Certificate Authority) — выдает и подписывает цифровые сертификаты;

  • регистрационный центр (RA, Registration Authority) — проверяет данные перед выдачей сертификата;

  • хранилище сертификатов и CRL (Certificate Revocation List) — базы данных выданных и отозванных сертификатов.

Чтобы убедится, что какой-то сертификат действительно выдан CA, он подписывается подписью этого самого CA. Но как убедится, что подпись на сертификате принадлежит CA? Конечно, проверить сертификат CA! Сертификат, который принадлежит CA называют корневым сертификатом. Корневой сертификат подписывается той же подписью, для которой он сформирован.

Лирическое отступление: минутка на ворчание

Чтобы общаться в плоскости криптографии, нужно стать параноиком, никому не доверять, все проверять. Поэтому мы и угодили в этот круговорот: чтобы доказать, что моя подпись настоящая, нужен сертификат – чтобы доказать, что сертификат настоящий, нужна подпись выдающего сертификат – чтобы убедиться, что подпись настоящая, нужен сертификат…подпись-сертификат-подпись-сертификат…Но ничего, из этого цикла есть выход

Перечень организаций, который могут выдавать цифровые сертификаты, ограничен и строго определен. Корневые сертификаты встроены в браузеры и операционные системы. Таким образом, у каждого есть четкий список, каким именно подписям можно доверять, и это дает возможность убедиться в подлинности сертификата.

Лирическое отступление: от общего к частному

PKI используется не только для решения глобальных задач мирового интернета. Многие компании в своём защищённом контуре организуют свою локальную инфраструктуру, делают свой CA и выпускают сертификатов для внутреннего использования

Корневой сертификат – очень важная и ценная штука. Если его скомпрометировать, это принесет много проблем множеству людей. Мы не сможем доверять ни одной подписи и сертификату, выданным CA, чей корневой сертификат «разоблачен». Чтобы понизить риски возникновения такой ситуации CA выпускают для себя промежуточные сертификаты, с помощью которых и подписывают сертификаты для конечных пользователей.

Цепочка доверия выглядит так: Корневой CA → Промежуточный CA → Сертификат сайта/пользователя. При проверке подлинности сертификата проверяется вся цепочка.

TLS/SSL: как пример использования всего вышесказанного

Давайте попробуем посмотреть, как все, о чем мы говорили ранее, используется на практике. В качестве примера нам послужит протокол TLS/SSL.

TLS/SSL – это транспортный протокол, обеспечивающий безопасное взаимодействие и обмен данными в интернете.

Лирическое отступление: о названии

Изначально протокол назывался SSL, по мере своего развития стал называться TLS. Хоть SSL и устарел, название не вышло из обращения, поэтому можно встретить и обозначение SSL, и TLS, и TLS/SSL.

Суть его состоит в том, что сначала клиент (например, браузер) и сервер (например, сайт) устанавливают защищенный канал связи (фаза рукопожатия), а после обмениваются зашифрованными сообщениями (фаза передачи данных).

Владельцы сайтов приобретают SSL‑сертификаты в официальных центрах сертификации.

Примечание: SSL-сертификат – это цифровой сертификат определенного стандарта (X.509). Выпускаются специально для использования в TLS/SSL протоколе.

В фазу рукопожатия выполняются следующие шаги:

1.       Переговоры. Клиент и сервер договариваются, какие версии и алгоритмы будут использоваться при взаимодействии. Определяют: алгоритм обмена ключами, алгоритм цифровой подписи, вариант имитовставки, алгоритм симметричного шифрования сообщений.

2.       Обмен ключами по выбранному на предыдущем шаге алгоритму (например, ECDH) – это пример использования асимметричного шифрования.

3.       Аутентификация сервера, в нашем примере сайта. Сайт предоставляет клиенту-браузеру свой сертификат. Браузер проверяет:

  • наличие и действительность сертификата в CRL;

  • цепочку сертификатов для определения подлинности сертификата, предоставленного сайтом.

4.       Возобновление сеанса. Механизм, позволяющий быстро восстановить соединение с каким-то сайтом. Не будем рассматривать его подробно, просто знайте, что он есть.

На этапе рукопожатия для проверки целостности сообщений используется подпись сервера. Т.е. все сообщения подписываются.

После успешного «рукопожатия» между браузером и сайтом устанавливается безопасный канал связи и начинается фаза передачи данных.

В фазу передачи данных происходит обмен сообщениями, которые шифруются с помощью симметричного алгоритма, выбранного на первом этапе фазы рукопожатия (например AES-GCM). При этом вместе с сообщением будет передаваться аутентификационный тег, сформированный при использовании имитовставки, также выбранной на первом шаге рукопожатия.

Например, когда вы открываете сайт почтового сервиса, например gmail.com, браузер выполняет установку соединения с сайтом, проходит фазу рукопожатия. А когда вы пишите и отправляете электронное письмо, оно шифруется и «запечатывается» имитовставкой.

Не все сайты имеют сертификаты и готовы к установке безопасного соединения. Обычно, при переходе на такие сайты, браузеры запрашивают подтверждение перехода, обращая внимание пользователей на снижение безопасности. Переход на такой сайт сам по себе никакой угрозы не несет, но вот данные, которые вы там оставите, не будут надежно защищены и могут «утечь» в руки злоумышленникам.

Итоги

Структурируем сказанное

Последнее слово

На этом все.  Как и обещали в начале, это статья:

  • НЕ дала вам четкого понимания, как все работает

  • НЕ позволила разобраться в технических особенностях и нюансах

  • НЕ содержала ни слова о криптовалютах

  • Зато содержала неточности и упрощения.

Но все же надеемся, что эта статья помогла вам немного понять, о чем говорится в криптографии и, может, помогла сформулировать вопросы, которые позволят погрузиться в эту тему подробней.

Экспертов, которые все же прочли эту статью и имеют что сказать, приглашаем в комментарии. Однако просим, исправляя огрехи автора, придерживаться принципа простоты и понятности, чтобы новички, которые являются целевой аудиторией статьи, смогли понять, в чем была ошибка и сформировать правильное представление о тех или иных терминах.

На этом действительно все. Спасибо за внимание!

Комментарии (8)


  1. vilgeforce
    20.10.2025 15:04

    " сделать нечитаемым для тех, кто не знает алгоритма " - глупости. Нужно считать что алгоритм всегда известен. Дальше читать не стал


    1. mmMike
      20.10.2025 15:04

      Так должно быть "Безопасность не должна быть основана на секретности самого алгоритма"

      А в жизни: Mifare, первые алгоритмы GSM..
      Это только то, что вот прям с ходу вспоминается :)


  1. plus79501445397
    20.10.2025 15:04

    Вектор инициализации - секретный код

    Зачем секретить то, что передается в открытом виде?


  1. avmcoder
    20.10.2025 15:04

    Какая-то путаница в терминах с самого начала статьи. Конфиденциальность, целостность и неотрекаемость это свойства информации. Аутентификация - это вообще процесс. А в статье - это подаётся как задачи криптографии.


  1. mmMike
    20.10.2025 15:04

    Мда.. описание для менеджеров в пересказе другого менеджера (который стол в курилке рядом с обсуждавшими тему и что то услышал)

    "За попытку - спасибо"


  1. id_Alex
    20.10.2025 15:04

    Начало про определение Криптографии было хорошим до слова "Неотрекаемость". Вроде бы такой термин есть и даже иногда используется, но привычней всё ж "Ответственность" (как часть определения электронной подписи).


  1. Pochemuk
    20.10.2025 15:04

    Списки ненадежных и давно взломанных паролей и их хешей называют «радужные таблицы»

    Радужные таблицы - это не тупо списки хешей и взломанных паролей. Это способ хранения списков хешей (и не только для "взломанных" паролей), позволяющий сократить требуемый объем хранения на порядки.


  1. lukman31
    20.10.2025 15:04

    а разве он шифрует не с помощью открытого ключа получателя? откуда доступ к закрытому ключу получателя у отправителя?

    b.       шифрует (подписывает) его с помощью закрытого ключа и направляет ее вместе с исходным сообщением получателю.