Шифрование и хеширование
| English | Русский |
|---|---|
| symmetric/sɪˈmetrɪk/ | симметричным |
| encryption/enˈkrɪpʃn/ | шифрование |
| asymmetric/ˌeɪsɪˈmetrɪk/ | асимметричное |
| plaintext/ˈpleɪntekst/ | открытый текст |
| ciphertext/ˈsaɪfətekst/ | шифротекст |
| decrypt/dɪˈkrɪpt/ | дешифровать |
| key pair/kiː peə/ | пара ключей |
| public key/ˈpʌblɪk kiː/ | открытый ключ |
| private key/ˈpraɪvət kiː/ | приватным ключом |
| session key/ˈseʃn kiː/ | ключ сессии |
| cryptographic hash/ˌkrɪptəˈɡræfɪk hæʃ/ | криптографический хэш |
| digest/ˈdaɪdʒest/ | хеш-сумма (дигест) |
Два незнакомца договариваются о секретном ключе на виду у всех
- Вот задача, которая звучит невозможной. Вы и магазин никогда не встречались и ничего не знаете друг о друге. Все ваши слова подслушивают все. Договоритесь о секретном ключе.
- До 1976 года ответ был: это невозможно: симметричное шифрование требует предварительной доставки ключа курьером или лично, поэтому военные кодовые книги печатались и отправлялись по почте.
- Затем Диффи, Хеллман, а позже Ривест, Шамир и Адлеман показали, что это возможно, используя ключ, который только запирает, и другой ключ, который только открывает. Каждая ваша онлайн-покупка основана на этом.
- Этот урок посвящен симметричному и асимметричному шифрованию, почему реальные системы используют оба типа, и односторонней функции, называемой хэшированием.
Словарь терминов
- Шифрование превращает читаемый открытый текст в нечитаемый шифротекст с помощью ключа; дешифрование — это обратное действие с подходящим ключом.
- Шифрование обеспечивает конфиденциальность: перехваченная копия не может быть прочитана. Оно не предотвращает перехват, задержку или удаление данных.
- Надежность зависит от ключа, а не от сохранения алгоритма в тайне. Алгоритмы публикуются и изучаются именно для того, чтобы уязвимости находили друзья, а не враги.
Симметричное шифрование
- Симметричное шифрование использует один и тот же ключ для шифрования и дешифрования. AES является стандартным примером.
- Оно быстрое, поэтому подходит для объемных данных: весь диск, видеопоток, большой файл.
- Его слабость — распределение ключей: ключ должен достичь другой стороны без перехвата, и если он перехвачен, вся схема нарушена. Для $n$ человек, которые хотят общаться приватно парами, количество необходимых ключей растет пропорционально квадрату $n$.
Шифр подстановки (симметричный ключ)
Шифр Цезаря сдвигает каждую букву вперед на фиксированный ключ. ОДИН И ТО ЖЕ ключ используется как для шифрования, так и для расшифровки — именно это означает симметричность. Попробуйте прочитать шифротекст, не зная сдвига.
Симметричное шифрование использует:
Симметричное шифрование использует один секретный ключ — быстро, но он должен передаваться безопасным образом.
Асимметричное шифрование
- Асимметричное шифрование предоставляет каждому пользователю пару ключей: открытый ключ, который они публикуют для всего мира, и закрытый ключ, который они никогда не раскрывают.
- Всё, что зашифровано открытым ключом, может быть расшифровано только соответствующим закрытым ключом. Поэтому, чтобы отправить Алисе конфиденциальное сообщение, вы шифруете его её открытым ключом, и прочитать его сможет только она.
- Предварительный обмен ключами не требуется, что решает проблему, поставленную в начале урока. Цена этого — значительно меньшая скорость, поэтому оно не используется для больших объемов данных.

Один ключ запирает, другой открывает, и только один из них является секретным
Соотнесите каждый криптографический инструмент с тем, что он использует.
Симметричное быстрое, но требует распределения ключей; асимметричное решает эту проблему с парой ключей; хеширование одностороннее; HTTPS объединяет их.
Чтобы отправить конфиденциальное сообщение Алисе, используя асимметричное шифрование, вы шифруете с помощью:
Шифрование публичным ключом получателя означает, что только соответствующий ему закрытый ключ может его расшифровать.
Соотнесите каждый вид шифрования с его основным недостатком.
Гибридная схема использует каждое для покрытия слабости другого: асимметричное для доставки ключа, симметричное для передачи данных.
Разобранный пример: отправка конфиденциального сообщения
- Объясните, как асимметричное шифрование позволяет Бобу отправить конфиденциальное сообщение Алисе, даже если они никогда не встречались. [3]
- Алина публикует свой открытый ключ, который может иметь кто угодно, включая прослушивателя.
- Боб шифрует сообщение открытым ключом Алисы. Шифротекст может быть расшифрован только соответствующим закрытым ключом.
- Алина расшифровывает его своим закрытым ключом, который она никогда не передавала. Прослушиватель, владеющий открытым ключом и шифротекстом, не сможет восстановить сообщение.
- Самая частая ошибка — утверждать, что Боб шифрует своим собственным ключом. Отследите, чей ключ используется на каждом шаге.
Боб отправляет Алисе конфиденциальное сообщение, используя асимметричное шифрование. Какой ключ он использует для шифрования?
Только закрытый ключ Алисы может отменить действие её публичного ключа, и только у неё он есть. Боб никогда не видит закрытый ключ Алисы.
Гибридный подход, который происходит на самом деле
- Симметричное быстрое, но не может безопасно обмениваться ключом; асимметричное может обмениваться ключом, но медленное. Реальные системы используют каждое там, где оно эффективно.
- Клиент генерирует случайный ключ сессии, шифрует этот небольшой ключ открытым ключом сервера и отправляет его. Сервер расшифровывает его своим закрытым ключом, и теперь обе стороны имеют одинаковый ключ сессии.
- Каждый байт фактической переписки затем шифруется симметрично этим ключом сессии: быстро, а медленный асимметричный шаг произошел только один раз, над несколькими байтами.
- Именно так работают HTTPS и SSH.

Асимметричное для согласования ключа, симметричное для передачи данных
В гибридном подходе, используемом в HTTPS, асимметричное шифрование применяется для:
Медленная асимметричная криптография лишь обменивается сеансовым ключом; основной объем данных затем шифруется быстрым симметричным шифрованием.
Расставьте шаги гибридной схемы, используемой HTTPS, в правильном порядке.
Медленный асимметричный шаг выполняется один раз для нескольких байт; всё последующее — это быстрое симметричное шифрование.
Хэширование
- Криптографический хэш преобразует входные данные любого размера в фиксированный размер хеш-сумму. Один и тот же вход всегда дает одну и ту же хеш-сумму, а небольшое изменение входа полностью меняет хеш-сумму.
- Это односторонняя функция: входные данные нельзя восстановить из хеш-суммы. В этом и заключается суть, и именно это отличает её от шифрования, которое предназначено для обратного преобразования.
- Применение: хранение паролей, когда система хранит только хеш-сумму и сравнивает их при входе, так что украденная база данных не даст паролей; и проверка целостности, когда хеш-сумма файла пересчитывается и сравнивается для выявления любых изменений.
Криптографический хеш-функция выдает фиксированный по размеру ____ из входных данных любого объема.
Один и тот же вход всегда дает одну и ту же хеш-сумму, незначительное изменение приводит к совершенно другой, и исходные данные невозможно восстановить из нее.
Разобранный пример: почему пароли хэшируют, а не шифруют
- Веб-сайт хранит пароли пользователей в виде хешей, а не зашифрованного текста. Объясните почему.
- Шифрование обратимо: где-то существует ключ, который возвращает сохраненное значение обратно в пароль, и злоумышленник, получивший базу данных, может также получить этот ключ.
- Хэширование одностороннее, поэтому украденная база данных хеш-сумм не даст паролей, и даже сотрудники самого сайта не смогут их прочитать.
- Вход всё ещё работает, потому что система хэширует то, что ввел пользователь, и сравнивает хеш-суммы, а не сами пароли.
Хеширование и эффект лавины
Хеш односторонний: легко вычислить, практически невозможно восстановить. Небольшое изменение во входных данных меняет большую, непредсказуемую часть выхода — эффект лавины, благодаря которому хеши подходят для паролей.
Криптографический хеш является односторонним (нельзя восстановить входные данные из хеш-суммы) и демонстрирует эффект лавины: крошечное изменение во входных данных меняет значительную, непредсказуемую часть выхода.
Именно односторонность плюс эффект лавины делают хеши подходящими для хранения паролей и проверки целостности.
Почему пароли следует хранить в виде хешей, а не зашифрованными? Выберите все подходящие варианты.
Фиксированная по размеру хеш-сумма действительно может быть короче, но это не причина безопасности. Причина — необратимость.
Потерянные баллы
- Чтобы отправить кому-то конфиденциальное сообщение, используйте их открытый ключ, а не свой. Называйте чей ключ на каждом шаге.
- Слабое место симметричного шифрования — распределение ключей; слабое место асимметричного — скорость. Гибридный подход использует каждый из них для компенсации недостатков другого.
- Хэширование является односторонним и не является шифрованием: здесь нет ключа, и нечего расшифровывать.
- Шифрование обеспечивает только конфиденциальность. Оно не предотвращает перехват, удаление или незаметное изменение сообщения: для этого необходим хэш-контроль.
Вы поняли
- Шифрование превращает открытый текст в зашифрованный текст с помощью ключа и обеспечивает только конфиденциальность; надежность заключается в секретности ключа, а не в сокрытии алгоритма.
- Симметричное: один общий ключ, высокая скорость, подходит для пакетной передачи данных, уязвимо при распределении ключей · Асимметричное: открытый ключ для шифрования и закрытый ключ для дешифрования, не требует предварительного обмена, но работает медленно
- Гибридная система, используемая в HTTPS и SSH, отправает случайный сессионный ключ, зашифрованный асимметрично, а затем передает данные симметрично.
- Криптографический хэш создает фиксированную по размеру хэш-сумму (дигест), является односторонним и используется для паролей и проверки целостности.