Иван Комаров (dfyz) wrote,
Иван Комаров
dfyz

Про #cryptoclass

Мне кажется, курс Crypto I стоит прослушать всем программистам. Вот прям вообще всем. Криптография – это такая математикоёмкая (есть такое слово?) область, типа сжатия данных или формальных языков, с которой каждый программист-практик столкнётся в жизни хотя бы раз. Вот только, в отличие от сжатия данных, цена ошибки из-за плохого понимания предметной области здесь может быть намного, намного выше.

Что можно узнать из курса:
0. (самоочевидное) Если вам вдруг по какой-то причине захочется реализовать какие-нибудь криптографические примитивы для продакшен-системы самостоятельно, немедленно убейте себя об стену, мир станет лучше и добрее. У вас будет замечательный шанс наступить на одни из мириадов граблей, про которые вы даже не подозревали, и протерять все полимеры.
1. При этом если вы используете стандартные криптографические библиотеки, но плохо понимаете, как их надо применять (например, считаете, что шифрование AES'ом со случайным ключом решит все ваши проблемы, или хешируете пароли с помощью SHA-256), то шансов встретиться с граблями и расстаться с полимерами у вас ничуть не меньше.
2. Совершенно непонятно, почему кто-то ещё использует CBC вместо более других режимов шифрования.
3. Padding oracle attacks – забавная и красивая штука, которая как нельзя лучше иллюстрирует пункт 0.
4. RSA кажется очень простым, но его сложно приготовить правильно, есть десятки неочевидных тонкостей (см. пункт 0 про полимеры).
5. В английском языке есть слово "squeamish".
6. В языке программирования Питон из коробки есть возведение в степень по модулю, чего достаточно для реализации MITM-вычисления дискретного логарифма в Z_n.
7. Роль теории чисел в криптографии с открытым ключом сильно преувеличена.
8. И многое другое.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 12 comments