Часть 2 - Симметричная и асимметричная криптография
Опубликовано: 03.08.2023
Часть 2 - Симметричная и асимметричная криптография
На последнем уроке, Основные понятия и принципы кибербезопасности,мы показали, зачем защищать, что защищать и от чего защищать наши конечные устройства.
На сегодняшнем уроке мы рассмотрим основные концепции кибербезопасности и рассмотрим симметричную и асимметричную криптографию.
Во-первых, давайте объясним понятия криптографии и криптоанализа.Криптография— этонаука о создании шифрови, наоборот,криптоанализ— этонаука о взломе шифры. Сегодня большинство мер безопасности основано на криптографических методах, поэтому сегодня мы немного поговорим о них.Кодирование и шифрование
Хотя каждый из нас наверняка имеет некоторое представление о том, что означают шифрование и кодирование, эти два термина часто путают.Кодирование— этопростая записьпо-другому, математики используют термин представление. Тогда какшифрование— этоизображение, которое дополнительнопараметризуется ключом.Если мыпреобразуемобычныйтекствкод Морзеилипереведемнапримерна немецкий, этокодирование. Кодирование не связано с какой-либо защитой или секретностью. Даже если мы не знаем, например, упомянутого немецкого языка, закодированный таким образом текст, конечно, не будет понятен. С другой стороны, в случаешифрования,не должно быть возможности выполнитьшифрованиеилиоперация расшифровки без точного знания ключа, вне зависимости от того, знаем мы саму процедуру шифрования или нет.
В случаевысококачественного шифра, следовательно,устойчивостьк взломузависит только от его ключа.
При взломе шифра есть две основные процедуры поиска ключа:
- Мы оцениваем ключна основе информации о человеке, создавшем ключ. Для этого мы можем использовать, например, имена, даты рождения, клички домашних животных, любимых певцов или актеров, математические советы и тому подобное.
- Мы пробуемвсевозможныеключи один за другим, пока не наткнемся на нужный. Этот метод называетсяBFA(Brutal Force Attack) и в принципе может использоваться для большинства шифров.
Атака полным перебором не может быть использована, например, с шифром Вернама, но мы не будем рассматривать этот частный случай в этом курсе.
Симметричный шифр
Этот тип шифра наиболее точно соответствует тому, что большинство людей представляет под термином шифр. Это процедура, в которой используетсяодин и тот же ключ как для шифрования, так и для дешифрованиятекста или данных в целом. Однако в криптографии для данных обычно используется термин открытый/зашифрованный текст.Открытый текст— это текст,предназначенный для секретности, которыйпреобразуетсяв при шифровании процесс зашифрованного текста.Сегодня широко используетсяAES(расширенный стандарт шифрования). Иногда это обозначение дополняется длиной ключа в битах, например AES-256. AES с 256-битным истинным случайным ключом в настоящее время считается практически невзламываемым шифром, включая использование квантовых компьютеров в процессе взлома.AESобычно используется в качествепервичного шифрадля защиты данныхидоверено правительство США для секретной информации уровняСовершенно секретно, так что мы тоже :)
Симметричные шифрыимеют много преимуществ, таких какони очень быстрыеиключи не должны быть очень длинными[(14505)]. Однако, если бы мы хотели использовать их, например, дляшифрования связи E2E,мы бы немедленнов[(14505)] первая [( 14504)]проблема, а именно, какбезопасно обменятьисходныйключ шифрованияс контрагентом. Если это друг рядом с нами, у нас нет проблем, мы соберемся и договоримся о ключе. Но как безопасно разрешить обмен, когда контрагент находится на другом конце земного шара?
Еще одна проблема — количество ключей. Присимметричном шифре только одного ключанедостаточнодля всех, ему пришлось бы иметь специальную комбинацию ключей для всех, с кем он хочет общаться таким образом. Было бы еще сложнее, если бы мы хотели использовать симметричный шифр длясигнатуры. В этом случае должна бытьспециальная комбинация клавишне толькодля всех вовлеченных сторон, но и длякаждого такой подписанный текст[(14505 )]. И это подводит нас касимметричной криптографии.
Асимметричный шифр
Асимметричный шифр использует метод шифрования, при которомодин ключ требуется для шифрованияи, в свою очередь,второй ключ для дешифрования. Таким образом, если мы шифруем текст с помощью ключа шифрования, нам также нужен ключ дешифрования, чтобы иметь возможность расшифровать его обратно в открытую форму. И другой не может быть получен из одного ключа.Но это не совсем так. В принципе, конечно, это возможно, но процедура настолько требовательна к вычислительным ресурсам, что мы не в состоянии осуществить ее на практике.
Процесс асимметричного шифрования работает путем первоначальной генерации пары ключей из случайных значений. Один ключ, так называемыйсекретный ключ, аккуратносохраняемв какой-нибудь файл или на чип-карту.Короче, чтобы никто, кроме нас, не смог до него добраться. Второй ключ, так называемый Мы можем опубликоватьоткрытый ключили отправить его кому-нибудь в открытом электронном письме.
Если кто-то затемзахочет отправить нам сообщениетак, чтобы егоне смог прочитать кто-либо еще, все, что ему нужно сделать, это [(14504)] зашифровать его нашим открытым ключом. Поскольку только мыимеем соответствующий секретный ключ, мы можемрасшифровать его.
Фактически, для более быстрой обработки само сообщение шифруется симметрично с использованием AES со случайно выбранным одноразовым симметричным ключом, который затем асимметрично шифруется с помощью открытого ключа получателя и упаковывается вместе с сообщением.
Цифровая подпись
цифровая подписьтакже работает по вышеуказанному принципу. Если к нашему сообщениюприкрепитьтакое жесообщение, но наоборотзашифрованное нашим секретным ключом, [(14504)]каждыйможет легкопроверить, что мыдействительно зашифровали его нашимоткрытым ключом14505 )]. На практике все сообщение не шифруется и не прикрепляется снова, а только его краткая печать илихеш, что мы рассмотрим в ходе курса.На данный момент может показаться, что мы уже успешно решили все проблемы с аутентификацией. С чисто криптографической точки зрения это верно, но на практике возникает еще одна проблема. Используяметод цифровой подписи, мыпроверяем, что это тот жеконтрагент, который предоставил нам публичные ключ, нокаждыйиз насможет генерировать сколько угодно таких ключейи при их отправке претендовать на то, что он, например, президент США:)
В некоторых ситуациях нам может быть все равно, потому что нам не важно, какое имя кто-то выбрал для своей маркировки. Однако, например,банкуилиофисупо-прежнему необходимоидентифицировать данный открытый ключ с реальной личностью[(14505)] в гражданской жизни. Или наоборот, нужно быть уверенным, что это действительно банк или государственное учреждение с данными полномочиями. Итак, мы вернулись к тому, что две противоборствующие стороны должны сначала снова встретиться. На этот раз не для обмена ключами, а для того, чтобы убедиться, что ключ действительно идентифицирует субъекта.
Сертификаты и центры сертификации
Для решения этой ситуации в игру вступаютсертификатыицентры сертификации. Центр сертификации (CA) действует кактрастовый брокермежду двумя сторонами путемпроверки личности запрашивающего[(14505)] и создание для негосертификата. Сертификат содержит открытый ключ заявителя, дополненный информацией о его реальной личности, и все этоподписано секретным ключом соответствующего удостоверяющего центра.Весь процесс очень похож на то, когда государство после проверки нашей личности выдает удостоверение личности, которое мы затем используем, чтобы подтвердить себя перед другими субъектами. Только вместо удостоверения личности функцию проверки выполняет цифровая подпись данного органа.
Дляпроверкитакогосертификатадостаточнознания открытого ключа данного центра сертификацииидоверять этому. Это уменьшает необходимость проверки каждой стороны только для проверки сторон с гораздо меньшим количеством центров сертификации. Кроме того, в процессе проверки так называемыецепочка доверия. Если верно, что субъект А верит В, а субъект В верит С, то также верно и то, что А может верить С.
Подробнее о надежности сертификатов мы поговорим в одном из следующих уроков. Пока упомянем только, что в настоящее время в Словацкой Республике действуют три центра сертификации:
Асимметричные алгоритмы
Алгоритмов асимметричного шифрования не так много, как симметричных. Это связано с тем, что симметричные алгоритмы могут быть созданы более или менее бесконечно из логики их работы. На практике мы будем в основном сталкиваться со следующими алгоритмами:- RSA— первый алгоритм, вошедший в широкое употребление. Оноснован на проблеме факторизации больших чисели в настоящее времясчитается безопасным, если он использует ключ не менее2048 бит[(14505) )]. Но если мы генерируем новую пару ключей, мы предпочитаем использовать длину 3072 бит или даже4096 бит, если она доступна в данном программном обеспечении.
- ECDSA/EdDSA— это более современный вариант, основанный на задаче решения дискретных логарифмов по эллиптическим кривым. Это обеспечиваетболее высокий уровень безопасностипри использовании значительноболее короткого ключа. Если мы генерируем новую пару ключей и не нуждаемся в обратной совместимости для какой-то исторической системы, мы скорее воспользуемся этим алгоритмом.
Однако оба вышеупомянутых алгоритма теоретически могут быть взломаны когда-нибудь в будущем с помощью квантовых компьютеров. Поэтому были разработаны алгоритмы, устойчивые к данному типу атак. Среди них это подходящая альтернатива, например НТРУ.
На будущем уроке, Пароль и биометрическая защита,мы рассмотрим другие варианты использования криптографии в защите данных. В основном мы будем иметь дело с паролями, их безопасностью и хранением. Но речь также пойдет о биометрии и защите конфиденциальности.