Как работает шифрование

Carder

Professional
Messages
2,619
Reputation
9
Reaction score
1,726
Points
113
Когда мы пользуемся Интернетом, мы не всегда просто кликаем и пассивно воспринимаем информацию, например, читаем новостные статьи или сообщения в блогах - большая часть нашего времени в Интернете связана с отправкой другим нашей собственной информации. Заказ чего-либо через Интернет, будь то книга, компакт-диск или что-нибудь еще у онлайн-продавца, или регистрация онлайн-аккаунта, требует ввода большого количества конфиденциальной личной информации. Типичная транзакция может включать не только наши имена, адреса электронной почты, физический адрес и номер телефона, но также пароли и личные идентификационные номера (ПИН-коды).

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

Посмотрим правде в глаза, есть много информации, которую мы не хотим, чтобы другие люди видели, например:
  • Информация о кредитной карте
  • Номера социального страхования
  • Частная переписка
  • Личная информация
  • Конфиденциальная информация о компании
  • Информация о банковском счете
Информационная безопасность обеспечивается на компьютерах и в Интернете различными способами. Простой, но понятный метод безопасности - хранить конфиденциальную информацию только на съемных носителях, таких как портативные флэш-накопители или внешние жесткие диски. Но все самые популярные формы безопасности полагаются на шифрование, процесс кодирования информации таким образом, что только человек (или компьютер) с ключом может ее расшифровать.

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

Системы шифрования безопасности​

Компьютерное шифрование основано на науке криптографии, которая использовалась с тех пор, как люди хотели сохранить информацию в секрете. До наступления цифровой эпохи крупнейшими пользователями криптографии были правительства, особенно в военных целях.
Греческий историк Плутарх писал, например, о спартанских генералах, которые отправляли и получали конфиденциальные сообщения, используя скитал, тонкий цилиндр, сделанный из дерева. Генерал оборачивал скитал куском пергамента и писал на нем свое послание. Когда кто-то извлекал бумагу из цилиндра, надпись казалась беспорядочной чепухой. Но если бы у другого генерала, получившего пергамент, была скиталия такого же размера, он мог бы обернуть ее бумагой и легко прочитать предполагаемое сообщение.
Греки также были первыми, кто использовал шифры, особые коды, включающие замены или транспозиции букв и цифр.
Пока у обоих генералов был правильный шифр, они могли расшифровать любое сообщение, отправленное другим. Чтобы сообщение было сложнее расшифровать, они могли расположить буквы внутри сетки в любой комбинации.
Большинство форм криптографии, используемых в наши дни, полагаются на компьютеры просто потому, что код, основанный на человеке, слишком легко взломать компьютеру. Шифры также более известны сегодня как алгоритмы, которые являются руководством по шифрованию - они обеспечивают способ создания сообщения и дают определенный диапазон возможных комбинаций. Ключ , с другой стороны, помогает человеку или компьютеру фигуру из одной возможности по данному поводу.
Компьютерные системы шифрования обычно относятся к одной из двух категорий:
  • Шифрование с симметричным ключом
  • Шифрование с открытым ключом
В следующих разделах вы узнаете о каждой из этих систем.

Симметричный ключ​

Так же, как два спартанских генерала, отправляющие сообщения друг другу, компьютеры, использующие шифрование с симметричным ключом для обмена информацией между собой, должны иметь один и тот же ключ.
При шифровании с симметричным ключом каждый компьютер имеет секретный ключ (код), который он может использовать для шифрования пакета информации перед его отправкой по сети на другой компьютер. Симметричный ключ требует, чтобы вы знали, какие компьютеры будут взаимодействовать друг с другом, чтобы вы могли установить ключ на каждом из них. Шифрование с симметричным ключом - это, по сути, то же самое, что и секретный код, который должен знать каждый из двух компьютеров для декодирования информации. Код дает ключ к расшифровке сообщения.
Подумайте об этом так: вы создаете закодированное сообщение для отправки другу, в котором каждая буква заменяется буквой, которая находится на две буквы ниже в алфавите. Таким образом, «A» становится «C», а «B» становится «D». Вы уже сказали надежному другу, что код - «Сдвиг на 2». Ваш друг получает сообщение и расшифровывает его. Любой другой, кто увидит сообщение, увидит только ерунду.
То же самое и с компьютерами, но, конечно, ключи обычно намного длиннее. Первым основным симметричным алгоритмом, разработанным для компьютеров в США, был Стандарт шифрования данных (DES), одобренный для использования в 1970-х годах. DES использует 56-битный ключ.
Поскольку с 70-х годов компьютеры становятся все более быстрыми, эксперты по безопасности больше не считают DES безопасным - хотя 56-битный ключ предлагает более 70 квадриллионов возможных комбинаций (70 000 000 000 000 000), атака грубой силы (просто пробуя все возможные комбинации по порядку чтобы найти правильный ключ) может легко расшифровать зашифрованные данные за короткое время. С тех пор DES был заменен расширенным стандартом шифрования (AES), который использует 128-, 192- или 256-битные ключи. Большинство людей полагают, что AES будет достаточным стандартом шифрования на долгое время: например, 128-битный ключ может иметь более 300 000 000 000 000 000 000 000 000 000 000 000 комбинаций ключей.

Шифр Цезаря
Юлий Цезарь также использовал похожую технику замены, сдвигая на три буквы вверх. Если бы он хотел сказать, например, «ПЕРЕСЕЧЕНИЕ РУБИКОНА», он бы вместо этого записал «FURVV LQJWK HUXEL FRQ». Как видите, текст также разбит на четные группы, чтобы сделать размер каждого слова менее очевидным.

Шифрование с открытым ключом​

Одна из слабых сторон шифрования с симметричным ключом, которую некоторые отмечают, заключается в том, что два пользователя, пытающиеся общаться друг с другом, нуждаются в безопасном способе сделать это; в противном случае злоумышленник может легко извлечь необходимые данные из потока. В ноябре 1976 года в журнале IEEE Transactions on Information Theory была опубликована статья «Новые направления в криптографии», в которой рассматривалась эта проблема и было предложено решение: шифрование с открытым ключом.
Также известное как шифрование с асимметричным ключом, шифрование с открытым ключом использует сразу два разных ключа - комбинацию закрытого и открытого ключей. Секретный ключ известен только вашему компьютеру, в то время как открытый ключ выдается вашим компьютером любому компьютеру, который хочет с ним безопасно обмениваться данными. Чтобы декодировать зашифрованное сообщение, компьютер должен использовать открытый ключ, предоставленный исходным компьютером, и свой собственный закрытый ключ. Хотя сообщение, отправленное с одного компьютера на другой, не будет безопасным, поскольку открытый ключ, используемый для шифрования, опубликован и доступен для всех, любой, кто его заберет, не сможет прочитать его без закрытого ключа. Ключевая пара основана на простых числах (числах, которые имеют только делители самого себя и единицы, например 2, 3, 5, 7, 11 и т.д.) Большой длины. Это делает систему чрезвычайно безопасной, поскольку доступно бесконечное количество простых чисел, а это означает, что существует почти бесконечное количество ключей. Одна очень популярная программа шифрования с открытым ключом:Pretty Good Privacy (PGP), которая позволяет зашифровать практически все.

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

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

SSL и TLS​

encryption2.jpg

Ищите «s» после «http» в адресе, когда вы собираетесь ввести конфиденциальную информацию, такую как номер кредитной карты, в форму на веб-сайте.

Популярной реализацией шифрования с открытым ключом является Secure Sockets Layer (SSL). Первоначально разработанный Netscape, SSL - это протокол безопасности в Интернете, используемый браузерами и веб-серверами для передачи конфиденциальной информации. SSL стал частью общего протокола безопасности, известного как Transport Layer Security (TLS).
В браузере вы можете определить, используете ли вы безопасный протокол, например TLS, несколькими способами. Вы заметите, что «http» в адресной строке заменен на «https», и вы должны увидеть небольшой замок в строке состояния в нижней части окна браузера. Когда вы получаете доступ к конфиденциальной информации, такой как банковский счет в Интернете или служба платежных переводов, такая как PayPal или Google Checkout, есть вероятность, что вы увидите этот тип изменения формата и будете знать, что ваша информация, скорее всего, будет передаваться безопасно.
TLS и его предшественник SSL широко используют центры сертификации. Как только ваш браузер запрашивает безопасную страницу и добавляет «s» в «http», браузер отправляет открытый ключ и сертификат, проверяя три вещи: 1) что сертификат исходит от доверенной стороны; 2) что сертификат на данный момент действителен; и 3) сертификат имеет отношение к сайту, с которого он исходит.

encryption3.jpg

Символ замка указывает на то, что вы используете шифрование.

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

Алгоритм хеширования​

Ключ в шифровании с открытым ключом основан на хеш-значении. Это значение, которое вычисляется из базового входного числа с использованием алгоритма хеширования. По сути, хеш-значение - это сводка исходного значения. Важная особенность хеш-значения заключается в том, что практически невозможно получить исходный входной номер, не зная данных, используемых для создания хеш-значения. Вот простой пример:
Номер ввода
10 667
Алгоритм хеширования
Вход № x 143
Хеш-значение
1 525 381
Вы можете видеть, как сложно было бы определить, что значение 1 525 381 получилось путем умножения 10 667 и 143. Но если бы вы знали, что множитель равен 143, тогда было бы очень легко вычислить значение 10 667. Шифрование с открытым ключом на самом деле намного сложнее, чем этот пример, но это основная идея.
В открытых ключах обычно используются сложные алгоритмы и очень большие хеш-значения для шифрования, включая 40-битные или даже 128-битные числа. 128-битное число может иметь 2 128 или 3 402 823 669 209 384 634 633 746 074 300 000 000 000 000 000 000 000 000 000 000 000 000 различных комбинаций - это все равно что пытаться найти одну конкретную песчинку в пустыне Сахара.[/B]

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

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

  • Пароль - использование имени пользователя и пароля обеспечивает наиболее распространенную форму аутентификации. Вы вводите свое имя и пароль по запросу компьютера. Он проверяет пару по защищенному файлу для подтверждения. Если имя или пароль не совпадают, дальнейший доступ запрещен.
  • Пропускные карты. Эти карты могут варьироваться от простых карт с магнитной полосой, подобных кредитной карте, до сложных смарт-карт со встроенным компьютерным чипом.
  • Цифровые подписи. Цифровая подпись - это, по сути, способ убедиться, что электронный документ (электронная почта, электронная таблица, текстовый файл) является подлинным. Стандарт цифровой подписи (DSS) основан на типе метода шифрования с открытым ключом, который использует алгоритм цифровой подписи (DSA). DSS - это формат цифровой подписи , одобренный правительством США. Алгоритм DSA состоит из закрытого ключа, известного только отправителю документа (подписавшему), и открытого ключа. Открытый ключ состоит из четырех частей, о которых вы можете узнать больше на этой странице. Если что-либо вообще изменится в документе после прикрепления к нему цифровой подписи, это изменит значение, с которым сравнивается цифровая подпись, что сделает подпись недействительной.
В последнее время в домашних и офисных компьютерных системах начали появляться более сложные формы аутентификации. Большинство этих новых систем используют некоторые формы биометрии для аутентификации. Биометрия использует биологическую информацию для проверки личности.

Методы биометрической аутентификации включают:
  • Сканирование отпечатков пальцев
  • Сканирование сетчатки
  • Сканирование лица
  • Голосовая идентификация

Контрольная сумма и CRC​

Еще одна потребность в безопасных вычислениях - убедиться, что данные не были повреждены во время передачи или шифрования. Для этого есть несколько популярных способов:
Контрольная сумма - вероятно, один из самых старых методов проверки правильности данных. Контрольные суммы также обеспечивают форму аутентификации, поскольку неверная контрольная сумма предполагает, что данные каким-то образом были скомпрометированы. Контрольная сумма определяется одним из двух способов. Допустим, контрольная сумма пакета составляет 1 байт. Байт состоит из 8 бит, и каждый бит может находиться в одном из двух состояний, что дает в общей сложности 256 (2 8 ) возможных комбинаций. Поскольку первая комбинация равна нулю, байт может иметь максимальное значение 255.
  • Если сумма других байтов в пакете равна 255 или меньше, то контрольная сумма содержит это точное значение.
  • Если сумма других байтов больше 255, тогда контрольная сумма представляет собой остаток от общего значения после его деления на 256.

Давайте посмотрим на пример контрольной суммы:
  • Всего байт 1151[/B]
  • 1,151 / 256 = 4,496 (округляем до 4)
  • 4 х 256 = 1024[/B]
  • 1,151 - 1,024 = 127 контрольная сумма

Циклический контроль избыточности[/B] (CRC) - CRC похожи по концепции на контрольные суммы, но они используют полиномиальное деление для определения значения CRC, которое обычно составляет 16 или 32 бита в длину. CRC хорош тем, что он очень точен. Если один бит неверен, значение CRC не будет совпадать. И контрольная сумма, и CRC хороши для предотвращения случайных ошибок при передаче, но мало защищают от преднамеренной атаки на ваши данные. Методы шифрования с симметричным и открытым ключом намного безопаснее.

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

Для получения дополнительной информации о шифровании и связанных темах перейдите по ссылкам ниже.
 
Last edited:
Top