Crypto 101 — Бесплатная электронная книга


Кто сказал, что за качество всегда нужно платить? Crypto 101 — доказательство того, что из этого правила есть исключения. Это бесплатное руководство по науке о криптографии, которое, говоря обыденным языком, удовлетворяет потребности каждого разработчика программного обеспечения в правильном включении и применении криптографических элементов при построении своего программного обеспечения.

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

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

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

Можно подумать, что такая важная образовательная услуга стоит дорого, но это не всегда так. К счастью, есть также бесплатные, надежные и качественные решения, такие как книга Crypto 101.

Crypto 101 — это исчерпывающий и простой в использовании путеводитель по миру криптографии, разработанный Лоренсом Ван Хаутвеном (lvh), главным инженером Rackspace Managed Security, где он работает над информационной безопасностью, криптографией и распределенными системами. Он любезно предоставил его по разрешительной лицензии Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0).

Просматривая указатель, кажется, что в его книге есть все:

Эксклюзивное или / XOR рассматривает этот столп криптографии как с теоретической точки зрения:

«Вы можете применять XOR в любом порядке: a ⊕ b = b ⊕ a, независимо от того, какие значения a и b».

и практические перспективы:

«Python, например, предоставляет оператор ^ (каретка), который выполняет побитовое XOR для целых чисел. Он делает это, сначала выражая эти два целых числа в binary4, а затем выполняя XOR для их соответствующих битов. Отсюда и название, побитовое XOR».

Блочные шифры исследуют понятия открытого текста и зашифрованного текста, в то время как появляются первые ссылки на шифрование с симметричным ключом, AES, DES и 3DES. За ними следуют глубокие технические подробности внутренней работы алгоритма (SubBytes, ShiftRows, MixColumns AddRoundKey и т. Д.), Которые, несмотря на их образовательную ценность, помечены как несущественные для понимания, поскольку они не дают многого для процесса написания лучше. программное обеспечение, как таковые их можно бездумно пропустить.

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

Это как раз тот случай, когда объясняется режим EBC и способы, которыми он может быть атакован, например, атака оракула, при которой злоумышленник может расшифровать сообщения, получив доступ к оракулу шифрования, проблема, которая впоследствии была решена путем перехода в режим CBC, что-то, что впоследствии приводит к атакам заполнения CBC, которые впоследствии приводят к … вы понимаете дрейф.

В обмене ключами используется классический способ Алисы и Боба, пытающегося найти способ безопасного обмена сообщениями в ненадежной сети. Это обсуждение привело к протоколу Диффи-Хеллмана и его вариациям, дискретным логарифмам и эллиптическим кривым, и объясняет, что, несмотря на то, что они способны гарантировать общий секрет на небезопасной среде, им по-прежнему не хватает целостности сообщений, поскольку они подвержены злоумышленникам Атаки посередине (MITM).

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

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

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

или же:

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

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

Затем книга заканчивается примерами полных криптосистем, таких как SSL и TLS, OpenPGP и GPG и OTR.

Подводя итог, это не просто хорошая книга, это отличная книга. И, прежде всего, сколько вы за нее платите? Нуль. Это поднимает представление о соотношении цены и качества на новый уровень. По правде говоря, это кража; Я определенно заплачу за такую работу. Единственным недостатком является то, что здесь и там есть довольно много заполнителей «ДОЛЖНО ДЕЛАТЬ», поскольку работа над ней постоянно продолжается, она постоянно редактируется и дополняется.

Я бы определенно порекомендовал вариант краудфандинга книги, чтобы автору помогли своевременно добавлять больше материала, как, например, Help Kickstart First Ever PerlDancer Book. Как вы думаете?


Добавить комментарий