Что такое криптография и как мы ее используем в современных компьютерных вычислениях?

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


История криптографии

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

Первые попытки разработать и применять тайный язык для коммуникации предпринял Гай Юлий Цезарь, который изобрел собственную систему шифрования для связи с Цицероном в Риме, когда он собирался захватить Европу. Это была простая система, которая просто сдвигала каждую букву в сообщении на 3 шага вправо в алфавите (три последние буквы алфавита заменялись тремя первыми). Как это работает? Допустим, Цезарь хочет отправить Цицерону следующее соообщение:

В нашем случае фраза записана с применением алфавита современного английского языка:

ABCDEFGHIJKLMNOPQRSTUVWXYZ.

Если мы захотим зашифровать это сообщение с помощью шифра Цезаря (сдвиг на 3 символа), то нам нужно использовать смещенный алфавит:

DEFGHIJKLMNOPQRSTUVWXYZABC.

Применим этот метод. Наше первоначальное послание примет следующий вид:

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

Основы криптографии

После ознакомления с краткой историей криптографии мы можем перейти к тому, как она работает.

Что такое криптография? Это система, необходимая для того, чтобы два партнера могли достичь по-настоящему секретного общения, основываясь на четырех идеях. Первые три можно запомнить с помощью аббревиатуры CIA (Confidentiality — конфиденциальность, Integrity — целостность, Authentication — аутентификация), четвертая — Nonrepudiation — неотрекаемость, то есть необходимость предоставить получателю гарантию, что полученное сообщение действительно отправлено отправителем, а не замаскировано злоумышленником.

Конфиденциальность

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

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

Целостность

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

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

Аутентификация

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

Неотрекаемость

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

Современная криптография

Итак, что такое криптография в современном виде? В настоящее время мы используем очень сложные алгоритмы, придуманные блестящими математиками, которые пытаются обеспечить высокий уровень секретности передачи информации. Примерами этих алгоритмов являются формулы двустороннего шифрования, такие как AES-256 или Triple-Des. Это общедоступные системы, и с помощью google вы можете узнать, как они работают. Некоторые считают это уязвимостью, так как настоящая секретность достигается, когда сам алгоритм никому не известен. Другие же считают, что обнародование системы помогает усилить стойкость алгоритмов от взломов. Этот аргумент породил принцип Керкгоффса.

Принцип Керкгоффса

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

Симметричное шифрование

Криптография с симметричным ключом (или криптография с секретным/приватным ключом) использует один ключ, который можно использовать для шифрования и дешифрования данных. Для дальнейшей защиты данных используются более крупные ключи. Это хороший метод шифрования больших объемов данных (например, жестких дисков или данных, которые редко используются), однако есть некоторые недостатки:

  1. Обмен ключами между сторонами создает проблему, потому что если он не будет отправлен надежно, то злоумышленник сможет попытаться получить ключ с помощью атаки «человек посередине», и тогда используемое шифрование станет неактуальным. Ключи должны быть обменены безопасным образом, и если это невозможно, то их необходимо передать с помощью автономного/физического метода.
  2. Поскольку обе стороны могут зашифровать / дешифровать оба ключа, принцип неотрекаемости не может быть реализован, поскольку ни один из участников не может быть достоверно знать, где был зашифрован текст.
  3. Частое обновление ключа происходит в тех случаях, когда большая группа использует симметричное шифрование для связи. Если один участник покидает группу, то ключ должен быть обновлен, чтобы он не смог присоединиться к разговору.

Примером симметричного шифрования является AES-256, Triple-DES или Blowfish, где каждый алгоритм выполняет свои собственные сложные математические задачи на основе предоставленного ключа для шифрования и дешифрования сообщения.

Ассиметричное шифрование

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

  • Пользователи группы могут быть легко удалены с помощью механизма отзыва, встроенного в асимметричные криптосистемы.
  • Обновление ключа происходит только в том случае, если закрытый ключ скомпрометирован, так как публичный ключ известен всем.
  • Обеспечивает конфиденциальность, целостность, аутентификацию и неотказуемость. Это если пользователь не раскрывает свой приватный ключ, то сообщение, подписанное этим пользователем, подлинно; оно не может быть подделано позже.
  • Ключи легко распространять, так как открытый ключ можно отправить без безопасного соединения, и это единственное, что требуется для защищенной связи.

Хеширование

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

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

Это все немножко запутанно

Все вышенаписанное может показаться запутанным, и это так! Криптография — нелегкая тема, ведь если бы все знали, как это работает, это, вероятно, было бы недостаточно безопасно! Однако именно эта наука способна подсказать нам, как сохранить наши данные в безопасности.


Источник: m.vk.com

Комментарии: