Шифрование данных является одним из основных элементов современных вычислений и ключом к тому, чтобы технологии нашего цифрового века могли безопасно соединять людей и услуги друг с другом, поэтому неудивительно, что за этим стоит прекрасная наука.
В основе шифрования лежит так называемая криптография. Криптография имеет богатую историю, которая намного предшествовала современным технологиям, от иероглифов Древнего Египта до секретных сообщений, зашифрованных шифром Юлия Цезаря и его генералов, вплоть до кодирования нацистских сообщений с помощью машины-энигмы и последующего нарушение этой схемы во время Второй мировой войны.
Перенесемся в 1970-е годы, когда коммерческое использование шифрования начало процветать на волне бизнеса и персональных компьютеров, а вместе с ним и рост вычислительной мощности, используемой для взлома схем шифрования, и мы оказались на пике популярности. разделение исторической и современной криптографии, где исторически криптография была скорее искусством, чем наукой, и еще не управлялась богатой математической теорией, известной сегодня исследователям криптографии.
Для целей того, о чем я хочу поговорить, мы имеем дело с современной криптографией, которую я бы кратко определил следующим образом:
Современная криптография — это изучение механизмов защиты передачи данных и доступа к ним в распределенной сетевой вычислительной среде от злоумышленников.
Что такое ключи?
Я имею в виду, ты наверняка использовал ключ раньше!? Мы все запираем двери, когда выходим из дома или машины, и уж точно не оставляем свой почтовый ящик открытым все время, так почему же мы должны обращаться с нашими данными по-другому?
Ключи в смысле современной криптографии не сильно отличаются от тех, которые мы используем в нашем физическом мире. Они просто являются механизмом, позволяющим нам передавать данные какой-либо другой стороне или получать некоторые данные с уверенностью в том, что доступ к ним есть только у надлежащих получателей передаваемых данных, а не у какой-либо третьей стороны, которая может прослушивать наши данные. канал связи.
Ключи являются краеугольным камнем криптографии и единственным элементом схемы шифрования, который необходимо хранить в секрете, чтобы схема шифрования была успешной. Хотя может показаться, что сохранение внутренних деталей алгоритма шифрования поможет избежать взлома, это создает некоторые другие проблемы:
- Без обнародования схем шифрования гораздо сложнее сформировать стандартизированные механизмы шифрования поверх существующих протоколов.
- Публикация схем шифрования приводит к значительному увеличению рецензирования алгоритмов и, в свою очередь, к повышению надежности.
- В случае раскрытия гораздо проще заменить ключ, чем всю схему шифрования.
- Даже приложив все усилия, трудно сохранить в секрете всю схему шифрования по сравнению с одним лишь ключом.
Именно эти проблемы приводят к хорошо известному принципу Керкхоффа, который гласит:
Безопасность схемы шифрования не должна зависеть от секретности функции шифрования, а только от ключа.
Что такое криптографический ключ?
Мы можем детализировать определение ключа в современной криптографии следующим образом:
Ключи — это значения, которые позволяют отправителю сообщения зашифровать открытое текстовое сообщение или получателю сообщения расшифровать зашифрованное текстовое сообщение.
Это не так просто, верно?
Хорошо, я намеренно оставил это определение расплывчатым, в конце концов, как еще я собираюсь побудить вас прочитать следующий пост!? На данный момент есть много открытых вопросов, связанных с моим определением ключа, и некоторые из них могут возникнуть у вас:
- Один и тот же ключ используется для шифрования и дешифрования сообщения?
- Как мы изначально делимся ключами, которые используем для шифрования сообщений в канале, по тому же самому каналу? Это вообще возможно?
- Используем ли мы одни и те же ключи для шифрования каналов с разными сторонами?
Ответ на все это ... это зависит. В своем продолжении я начну продвигаться вперед в ответах на эти вопросы, представив две наиболее известные школы мысли в современной криптографии, шифрование с открытым и закрытым ключами.