Основные методы шифрования: Как работает шифрование | Мир ПК

Содержание

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

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

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

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

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

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

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

И наконец, последний фрагмент головоломки — это ключи. Они различаются по длине и, следовательно, по силе: ведь чем длиннее ключ, тем больше число возможных комбинаций. Скажем, если программа шифрования использует 128-битовые ключи, то ваш конкретный ключ будет одной из 3,4 триллиона миллиардов миллиардов миллиардов, или 2128 возможных комбинаций нулей и единиц. Хакер с большей вероятностью выиграет в лотерею, чем взломает такой уровень шифрования методом «грубой силы» (т. е. планомерно пробуя ключи, пока не встретится нужный). Для сравнения: чтобы подобрать на стандартном ПК симметричный 40-битовый ключ, специалисту по шифрованию потребуется около 6 часов. Однако даже шифры со 128-битовым ключом до некоторой степени уязвимы; у профессионалов имеются изощренные методы, которые позволяют взламывать даже самые сложные коды.

Незримые защитники

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

Так, Microsoft Internet Explorer и Netscape Communicator содержат встроенные средства шифрования для операций электронной торговли. Без каких бы то ни было указаний со стороны пользователя номера кредитных карточек передаются с компьютера пользователя на Web-сервер зашифрованными по симметричному протоколу SSL (Secure Sockets Layer). По умолчанию используются 40-битовые ключи, но для обоих браузеров доступна также версия со 128-битовыми ключами.

Можно сыграть в защите своих данных и более активную роль. Популярные почтовые программы, в том числе Microsoft Outlook и Lotus Notes, в настоящее время позволяют шифровать письма. Многие «почтальоны» поддерживают протокол асимметричного шифрования S/MIME (Secure MIME, защищенный MIME), хотя лишь немногие пользователи его применяют. Для работы с S/MIME требуется цифровой идентификатор — «сертификат», который нужно покупать у компаний, таких как VeriSign, за 15 долл. в год.

Дополнительную защиту могут обеспечить автономные утилиты, которые шифруют не только почтовые сообщения, но и файлы с изображениями, документы, папки на жестком диске и т. д. Наиболее популярной из них является PGP. Ее бесплатную версию для некоммерческого использования можно получить по адресу web.mit.edu/network/pgp.html.

Аналитики предполагают, что применение систем сильного шифрования расширится благодаря недавним изменениям в регулировании экспорта криптографических систем Министерством торговли США. До 13 января большинство программ шифрования проходили по категории вооружений и подпадали под те же экспортные ограничения, что ручные гранаты или ракеты. Экспорт шифровальных программ с ключами длиннее 40 бит запрещался под страхом высокого штрафа или тюрьмы. Новые правила разрешают вывоз из США некоторых систем шифрования. По словам аналитиков, поначалу это не будет иметь серьезного эффекта, поскольку большинство шифровальных программ созданы за пределами Штатов, а импорт ПО этого типа уже был разрешен. Выгоду из изменений в законодательстве должны извлечь производители ПО, которым больше не нужно будет разрабатывать криптографические средства за границей.

Эндрю Брандт, Александра Красне

Об авторах

Эндрю Брандт — внештатный редактор PC World, Александра Красне — редактор и корреспондент PC World.


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

У отправителя и получателя одна и та же программа шифрования. 1 Чтобы послать зашифрованное сообщение, отправитель сочиняет его и придумывает шифровальный ключ. 2 Он пересылает ключ получателю по каналу, отличному от того, которым пойдет сообщение. 3 Программа шифрования превращает открытый текст в зашифрованный. 4 Зашифрованный текст пересылается получателю. 5 Получатель прочитывает его, используя имеющийся у него ключ.

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

У отправителя и получателя одна и та же программа шифрования. 1 Чтобы кто-либо мог послать вам зашифрованное сообщение, вы заранее генерируете с помощью своей шифровальной программы открытый и закрытый ключи, после чего посылаете соответствующему человеку открытый. 2 Используя алгоритм шифрования и ваш открытый ключ, он получает зашифрованное сообщение. 3 Сообщение пересылается вам. 4 Вы расшифровываете сообщение, используя алгоритм расшифровки и свой закрытый ключ. Чтобы послать ответ, вам понадобится открытый ключ адресата.

Основные методы шифрования и дешифрования. Терморектальный криптоанализ.

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

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

Впервые я столкнулся с секретным ключом много лет назад в аптеке. Я был знаком с ее владельцем. Разглядывая товары на полках, я увидел, что на каждой упаковке есть набор символов под ценой товара, например, S4.95/RSM.

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

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

Ключ: zyxwvutsrqponmlkjihgfedcba
Алфавит: abcdefghijklmnopqrstuvwxyz

Так же как и мой друг-аптекарь, любой может сделать из открытого текста зашифрованный, если воспользуется этой системой как ключом. Примером использования этой системы может служить шифрование фразы «Show me the money!» («Покажите деньги!»). Если вы не имеете шифровального ключа, вы увидите вместо этой простой фразы следующий набор символов (в данном примере восклицательный знак не кодируется, а пробел опускается): HSLDNVGSVNLMVB!

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

Алфавит: abcdefghi jkl mnopqrstuvwxyz
Шифр: FGHIJKtMNOPQRSTUVWXYZABCDE

Приведенные примеры показывают, до чего же много шифров можно изобрести. В простом примере, когда сдвиг ограничен пятью позициями, для того чтобы расшифровать текст, достаточно просто найти этот сдвиг. Однако если буквы алфавита располагать не в алфавитном порядке, то тогда существует более 400 000 000 000 000 000 000 000 000 возможных способов расположения букв [SING99]. Человеку, пытающемуся разгадать этот шифр, предстоит проделать, прямо скажем, немалую работу.

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

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

Шифрование — Википедия

Шифрова́ние — обратимое преобразование информации в целях сокрытия от неавторизованных лиц, с предоставлением, в это же время, авторизованным пользователям доступа к ней. Главным образом, шифрование служит задачей соблюдения конфиденциальности передаваемой информации. Важной особенностью любого алгоритма шифрования является использование ключа, который утверждает выбор конкретного преобразования из совокупности возможных для данного алгоритма[1][2].

Пользователи являются авторизованными, если они обладают определённым аутентичным ключом. Вся сложность и, собственно, задача шифрования состоит в том, как именно реализован этот процесс[1].

В целом, шифрование состоит из двух составляющих — зашифровывание и расшифровывание.

С помощью шифрования обеспечиваются три состояния безопасности информации[1]:

  • Конфиденциальность.
Шифрование используется для скрытия информации от неавторизованных пользователей при передаче или при хранении.
Шифрование используется для предотвращения изменения информации при передаче или хранении.
  • Идентифицируемость.
Шифрование используется для аутентификации источника информации и предотвращения отказа отправителя информации от того факта, что данные были отправлены именно им.

Для того, чтобы прочитать зашифрованную информацию, принимающей стороне необходимы ключ и дешифратор (устройство, реализующее алгоритм расшифровывания). Идея шифрования состоит в том, что злоумышленник, перехватив зашифрованные данные и не имея к ним ключа, не может ни прочитать, ни изменить передаваемую информацию. Кроме того, в современных криптосистемах (с открытым ключом) для шифрования, расшифрования данных могут использоваться разные ключи. Однако, с развитием криптоанализа, появились методики, позволяющие дешифровать закрытый текст без ключа. Они основаны на математическом анализе переданных данных[1][3].

Цели шифрования

Шифрование применяется для хранения важной информации в ненадёжных источниках и передачи её по незащищённым каналам связи. Такая передача данных представляет из себя два взаимно обратных процесса:

  • Перед отправлением данных по линии связи или перед помещением на хранение они подвергаются зашифровыванию.
  • Для восстановления исходных данных из зашифрованных к ним применяется процедура расшифровывания.

Шифрование изначально использовалось только для передачи конфиденциальной информации. Однако впоследствии шифровать информацию начали с целью её хранения в ненадёжных источниках. Шифрование информации с целью её хранения применяется и сейчас, это позволяет избежать необходимости в физически защищённом хранилище[4][5].

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

В настоящий момент существует огромное количество методов шифрования. Главным образом эти методы делятся, в зависимости от структуры используемых ключей, на симметричные методы и асимметричные методы. Кроме того, методы шифрования могут обладать различной криптостойкостью и по-разному обрабатывать входные данные — блочные шифры и поточные шифры. Всеми этими методами, их созданием и анализом занимается наука криптография[6].

Зашифровывание и расшифровывание

Как было сказано, шифрование состоит из двух взаимно обратных процессов: зашифрование и расшифрование. Оба этих процесса на абстрактном уровне представимы математическими функциями, к которым предъявляются определённые требования. Математически данные, используемые в шифровании, представимы в виде множеств, над которыми построены данные функции. Иными словами, пусть существуют два множества, представляющие данные — M{\displaystyle M} и C{\displaystyle C}; и каждая из двух функций (шифрующая и расшифровывающая) является отображением одного из этих множеств в другое[6][7].

Зашифровывающая функция: E:M→C{\displaystyle E\colon M\to C}
Расшифровывающая функция: D:C→M{\displaystyle D\colon C\to M}

Элементы этих множеств — m{\displaystyle m} и c{\displaystyle c} — являются аргументами соответствующих функций. Также в эти функции уже включено понятие ключа. То есть, тот необходимый ключ для зашифровывания или расшифровывания является частью функции. Это позволяет рассматривать процессы шифрования абстрактно, вне зависимости от структуры используемых ключей.{-1}})[2].

DK2(EK1(m))=m{\displaystyle D_{K_{2}}\left(E_{K_{1}}\left(m\right)\right)=m}
EK1(DK2(c))=c{\displaystyle E_{K_{1}}\left(D_{K_{2}}\left(c\right)\right)=c}
  • Важной характеристикой шифрующей функции E{\displaystyle E} является её криптостойкость. Косвенной оценкой криптостойкости является оценка взаимной информации между открытым текстом и шифротекстом, которая должна стремиться к нулю.

Криптостойкость шифра

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

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

Другой метод дешифровки основывается на анализе перехваченных сообщений. Этот метод имеет большое значение, так как перехват сообщений возможен, если злоумышленник обладает специальным оборудованием, которое, в отличие от достаточно мощного и дорогостоящего оборудования для решения задач методом полного перебора, более доступно. Например, перехват ван Эйка для ЭЛТ монитора осуществим с помощью обычной телевизионной антенны. Кроме того, существуют программы для перехвата сетевого трафика (снифферы), которые доступны и в бесплатных версиях[10][11][12].

При анализе передаваемых сообщений криптоустойчивость шифра оценивается из возможности получения дополнительной информации об исходном сообщении из перехваченного. Возможность получения этой информации является крайне важной характеристикой шифра, ведь эта информация в конечном итоге может позволить злоумышленнику дешифровать сообщение.{n}p(m_{i}|c_{k})\log _{2}p(m_{i}|c_{k}).}

Через p(mi|ck){\displaystyle p(m_{i}|c_{k})} здесь обозначена вероятность того, что исходное сообщение есть mi{\displaystyle m_{i}} при условии, что результат его зашифрования есть ck{\displaystyle c_{k}}.

Это позволяет ввести такую характеристику шифрующей функции (алгоритма) E{\displaystyle E}, как количество информации об исходном тексте, которое злоумышленник может извлечь из перехваченного шифротекста. Необходимая характеристика является разностью между обычной и условной информационной неопределенностью:

I=H(M)−H(M|ck){\displaystyle I=H(M)-H(M|c_{k})}

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

Абсолютно стойкие системы

Оценка криптоустойчивости шифра, проведенная Шенноном, определяет фундаментальное требование к шифрующей функции E{\displaystyle E}. Для наиболее криптоустойчивого шифра неопределённости (условная и безусловная) при перехвате сообщений должны быть равны для сколь угодно большого числа перехваченных шифротекстов.

8ck2C:H(M|ck)=H(M)⇒I=0{\displaystyle {\mathcal {8}}c_{k}{\mathcal {2}}C:H(M|c_{k})=H(M)\Rightarrow I=0}

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

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

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

Стойкость таких систем не зависит от того, какими возможностями обладает криптоаналитик. Однако практическое применение абсолютно стойких криптосистем ограничено соображениями стоимости таких систем и их удобства. Идеальные секретные системы обладают следующими недостатками:

  1. Шифрующая система должна создаваться с исключительно глубоким знанием структуры используемого языка передачи сообщений
  2. Сложная структура естественных языков крайне сложна, и для устранения избыточности передаваемой информации может потребоваться крайне сложное устройство.
  3. Если в передаваемом сообщений возникает ошибка, то эта ошибка сильно разрастается на этапе кодирования и передачи в связи со сложностью используемых устройств и алгоритмов[15].
Достаточно стойкие системы

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

9ck2C:H(M)>H(M|ck)⇒I>0{\displaystyle {\mathcal {9}}c_{k}{\mathcal {2}}C:H(M)>H(M|c_{k})\Rightarrow I>0}

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

Добиться высокого уровня практической стойкости алгоритма можно двумя подходами[17]:

  1. Изучить методы, которыми пользуется злоумышленник, и попытаться защитить используемую систему от них.
  2. Составить шифр таким образом, чтобы его сложность была эквивалентна сложности известной задачи, для решения которой требуется большой объём вычислительных работ.

Методы шифрования

  • Симметричное шифрование использует один и тот же ключ и для зашифровывания, и для расшифровывания.
  • Асимметричное шифрование использует два разных ключа: один для зашифровывания (который также называется открытым), другой для расшифровывания (называется закрытым).

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

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

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

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

Симметричные, а конкретнее, алфавитные алгоритмы шифрования были одними из первых алгоритмов[18]. Позднее было изобретено асимметричное шифрование, в котором ключи у собеседников разные[19].

Схема реализации

Задача. Есть два собеседника — Алиса и Боб, они хотят обмениваться конфиденциальной информацией.
  • Генерация ключа.
Боб (или Алиса) выбирает ключ шифрования d{\displaystyle d} и алгоритмы E,D{\displaystyle E,D} (функции шифрования и расшифрования), затем посылает эту информацию Алисе (Бобу).
  • Шифрование и передача сообщения.
Алиса шифрует сообщение m{\displaystyle m} с использованием полученного ключа d{\displaystyle d}.
E(m,d)=c{\displaystyle E(m,d)=c}
И передает Бобу полученный шифротекст c{\displaystyle c}. То же самое делает Боб, если хочет отправить Алисе сообщение.
  • Расшифровывание сообщения.
Боб(Алиса), с помощью того же ключа d{\displaystyle d}, расшифровывает шифротекст c{\displaystyle c}.
D(c,d)=m{\displaystyle D(c,d)=m}

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

Асимметричное шифрование (с открытым ключом)

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

В системах с открытым ключом используются два ключа — открытый и закрытый, связанные определённым математическим образом друг с другом. Открытый ключ передаётся по открытому (то есть незащищённому, доступному для наблюдения) каналу и используется для шифрования сообщения и для проверки ЭЦП. Для расшифровки сообщения и для генерации ЭЦП используется секретный ключ[20].

Данная схема решает проблему симметричных схем, связанную с начальной передачей ключа другой стороне. Если в симметричных схемах злоумышленник перехватит ключ, то он сможет как «слушать», так и вносить правки в передаваемую информацию. В асимметричных системах другой стороне передается открытый ключ, который позволяет шифровать, но не расшифровывать информацию. Таким образом решается проблема симметричных систем, связанная с синхронизацией ключей[19].

Первыми исследователями, которые изобрели и раскрыли понятие шифрования с открытым кодом, были Уитфилд Диффи и Мартин Хеллман из Стэнфордского университета и Ральф Меркле из Калифорнийского университета в Беркли. В 1976 году их работа «Новые направления в современной криптографии» открыла новую область в криптографии, теперь известную как криптография с открытым ключом.

Схема реализации

Задача. Есть два собеседника — Алиса и Боб, Алиса хочет передавать Бобу конфиденциальную информацию.
  • Генерация ключевой пары.
Боб выбирает алгоритм (E,D){\displaystyle (E,D)} и пару открытый, закрытый ключи — (e,d){\displaystyle (e,d)} и посылает открытый ключ e{\displaystyle e} Алисе по открытому каналу.
  • Шифрование и передача сообщения.
Алиса шифрует информацию с использованием открытого ключа Боба e{\displaystyle e}.
E(m,e)=c{\displaystyle E(m,e)=c}
И передает Бобу полученный шифротекст c{\displaystyle c}.
  • Расшифровывание сообщения.
Боб, с помощью закрытого ключа d{\displaystyle d}, расшифровывает шифротекст c{\displaystyle c}.
D(c,d)=m{\displaystyle D(c,d)=m}

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

Управление ключами

Основные угрозы ключам

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

Цели управления ключами

  • Сохранение конфиденциальности закрытых ключей и передаваемой информации.
  • Обеспечение надёжности сгенерированных ключей.
  • Предотвращение несанкционированного использования закрытых или открытых ключей, например использование ключа, срок действия которого истек[21][22][23].

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

Система генерации ключей обеспечивает составление криптоустойчивых ключей. Сам алгоритм генерации должен быть безопасным, так как значительная часть безопасности, предоставляемой шифрованием, заключена в защищённости ключа. Если выбор ключей доверить пользователям, то они с большей вероятностью выбирают ключи типа «Barney», нежели «*9(hH/A», просто потому что «Barney» проще запомнить. А такого рода ключи очень быстро подбираются методом вскрытия со словарем, и тут даже самый безопасный алгоритм не поможет. Кроме того, алгоритм генерации обеспечивает создание статистически независимых ключей нужной длины, используя наиболее криптоустойчивый алфавит[24].

Система контроля ключей служит для наиболее безопасной передачи ключей между собеседниками. Если передавать ключ шифрования по открытому каналу, который могут прослушивать, то злоумышленник легко перехватит ключ, и всё дальнейшее шифрование будет бессмысленным. Методы асимметричного шифрования решают эту проблему, используя разные ключи для зашифровывания и расшифровывания. Однако при таком подходе количество ключей растет с увеличением количества собеседников (каждый вынужден хранить свои закрытый и открытый ключи и открытые ключи всех собеседников). Кроме того, методы асимметричного шифрования не всегда доступны и осуществимы. В таких ситуациях используются разные методы по обеспечению безопасной доставки ключей: одни основаны на использовании для доставки ключей альтернативных каналов, считающихся безопасными. Другие, в согласии со стандартом X9.17, используют два типа ключей: ключи шифрования ключей и ключи шифрования данных. Третьи разбивают передаваемый ключ на составные части и передают их по различным каналам. Также существуют различные комбинации перечисленных выше методов[25].

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

Правовые нормы

Развитие шифрования и его методов привело к их широчайшей распространённости. Сейчас для конечного пользователя не составляет труда зашифровать раздел на жёстком диске или переписку и установить защищённое соединение в интернет. В связи с тем, что шифрование и другие информационные технологии проникают в наш быт, растет число компьютерных преступлений. Зашифрованная информация так или иначе представляет собой объект защиты, который, в свою очередь, должен подвергаться правовому регулированию. Кроме того, подобные правовые нормы необходимы из-за того, что существует некоторое противоречие между стремлением правительств иметь доступ к информации (с целью обеспечения безопасности и для предотвращения преступлений) и стремлением граждан обеспечить высокий уровень охраны для своей действительно секретной информации. Для разрешения этой проблемы прибегают к разным способам: это и возможный запрет на использование высокоэффективных методов шифрования, и требование передачи компетентным органам шифровальных ключей. Различия в правилах и ограничениях по шифрованию компьютерной информации могут создать определённые трудности в деловых международных контактах в плане обеспечения конфиденциальности их общения. В связи с этим в любом государстве поведение в отношении передачи и шифрования информации регулируется различными правовыми нормами[26].

См. также

Примечания

  1. 1 2 3 4 Мэйволд, 2006, Глава 12.Шифрование.
  2. 1 2 3 Шнайер, 2002, с. 8.
  3. 1 2 Шнайер, 2002, с. 8—9.
  4. ↑ Шнайер, 2002, Введение.
  5. ↑ Жельников, 1996, Введение.
  6. 1 2 Шнайер, 2002, Глава 1. Основные понятия.
  7. ↑ Шеннон, 1963, с. 1—8.
  8. ↑ Шнайер, 2002, с. 9—10.
  9. ↑ Мао, 2005, с. 43—45.
  10. 1 2 Мао, 2005, с. 45—48.
  11. ↑ Шеннон, 1963, с. 12.
  12. Wim van Eck. Electromagnetic Radiation from Video Display Units: An Eavesdropping Risk? (англ.) // Computers & Security : журнал. — Elsevier Advanced Technology Publications, 1985. — Vol. 4, iss. 4. — P. 269—286. — ISSN 01674048. — DOI:10.1016/0167-4048(85)90046-X. Архивировано 2 января 2006 года.
  13. 1 2 3 Шеннон, 1963, Часть 2.Теоретическая секретность..
  14. ↑ Шеннон, 1963, Часть 2.Теоретическая секретность, с. 23—27.
  15. ↑ Шеннон, 1963, Часть 2.Теоретическая секретность, с. 37.
  16. ↑ Шеннон, 1963, Части 2 и 3.
  17. ↑ Шеннон, 1963, с. 39—40.
  18. Павел Исаев. Некоторые алгоритмы ручного шифрования (рус.) // КомпьютерПресс. — 2003. — Вып. 3.
  19. 1 2 Уитфилд Диффи, Мартин Хеллман. Новые направления в криптографии (англ.). — 1976.
  20. ↑ Шнайер, 2002, Глава 1 и 19.
  21. 1 2 3 Шнайер, 2002, Глава 8.
  22. ↑ Алферов, 2002, с. 68—69.
  23. ↑ Мао, 2005, с. 61—62.
  24. ↑ Шнайер, 2002, Глава 8.1.
  25. ↑ Шнайер, 2002, Глава 8.3.
  26. Колесников Дмитрий Геннадьевич. Защита информации в компьютерных системах (рус.).

Литература

  • Э. Мэйволд. Безопасность сетей. — 2006. — 528 с. — ISBN 978-5-9570-0046-9.

Ссылки

Введение в основные принципы криптографии

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

Основные принципы

1. Шифрование

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

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

Это еще один важный принцип криптографии. С точки зрения непрофессионала, аутентификация гарантирует, что сообщение было отправлено отправителем, заявленным в сообщении. Теперь можно подумать, как сделать это возможным? Предположим, Алиса отправляет сообщение Бобу, и теперь Боб хочет доказательства того, что сообщение действительно было отправлено Алисой. Это станет возможным, если Алиса выполнит какое-то действие с сообщением, которое, как известно Бобу, может делать только Алиса. Что ж, это составляет основу аутентификации.

3. Целостность

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

4. Сохранение авторства

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

Типы криптографии

Существует три типа методов криптографии:

  • Секретный ключ Криптография
  • Криптография с открытым ключом
  • Хеш-функции

1. Криптография с секретным ключом

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

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

2. Криптография с открытым ключом

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

В этом методе у каждой стороны есть закрытый ключ и открытый ключ. Личное является секретным и не раскрывается, пока открытый ключ передается всем, с кем вы хотите общаться. Если Алиса хочет отправить сообщение Бобу, то Алиса зашифрует его открытым ключом Боба, а Боб сможет расшифровать сообщение своим закрытым ключом.

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

3. Хеш-функции

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

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

Если вам понравилась эта статья, вам также может понравиться ..



Шифрование и дешифрование строк — Visual Basic

  • 3 минуты на чтение

В этой статье

В этом пошаговом руководстве показано, как использовать класс DESCryptoServiceProvider для шифрования и дешифрования строк с использованием версии алгоритма Triple Data Encryption Standard (TripleDES) для поставщика криптографических служб (CSP).Первый шаг — создать простой класс-оболочку, который инкапсулирует алгоритм 3DES и хранит зашифрованные данные в виде строки в кодировке base-64. Затем эта оболочка используется для безопасного хранения личных данных пользователя в общедоступном текстовом файле.

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

Для получения дополнительной информации см. Службы криптографии.

Важно

Алгоритмы Rijndael (теперь называемые Advanced Encryption Standard [AES]) и Triple Data Encryption Standard (3DES) обеспечивают большую безопасность, чем DES, потому что они требуют больших вычислительных ресурсов. Для получения дополнительной информации см. DES и Rijndael.

Для создания оболочки шифрования

  1. Создайте класс Simple3Des для инкапсуляции методов шифрования и дешифрования.

      Открытый класс NotInheritable Simple3Des
    Конец класса
      
  2. Добавьте импорт пространства имен криптографии в начало файла, который содержит класс Simple3Des .

      Импорт System.Security.Cryptography
      
  3. В классе Simple3Des добавьте частное поле для хранения поставщика службы криптографии 3DES.

      Private TripleDes как новый TripleDESCryptoServiceProvider
      
  4. Добавить частный метод, который создает массив байтов указанной длины из хэша указанного ключа.

      Частная функция TruncateHash (
        Ключ ByVal как строка,
        Длина ByVal в виде целого числа) в виде байта ()
    
        Dim sha1 как новый SHA1CryptoServiceProvider
    
        «Хэшируйте ключ.
        Затемнить keyBytes () As Byte =
            System.Text.Encoding.Unicode.GetBytes (ключ)
        Тусклый хеш () As Byte = sha1.ComputeHash (keyBytes)
    
        'Усекать или дополнять хэш.
        ReDim Preserve hash (длина - 1)
        Вернуть хеш
    Конечная функция
      
  5. Добавьте конструктор для инициализации поставщика службы криптографии 3DES.

    Параметр key управляет методами EncryptData и DecryptData .

      Sub New (ключ ByVal в виде строки)
        'Инициализируйте поставщика криптографии.
        TripleDes.Key = TruncateHash (ключ, TripleDes.KeySize \ 8)
        TripleDes.IV = TruncateHash ("", TripleDes.BlockSize \ 8)
    Конец подписки
      
  6. Добавьте открытый метод, шифрующий строку.

      Открытая функция EncryptData (
        ByVal простой текст как строка) как строка
    
        'Преобразуйте строку открытого текста в массив байтов.Dim plaintextBytes () как Byte =
            System.Text.Encoding.Unicode.GetBytes (простой текст)
    
        'Создайте поток.
        Dim ms As New System.IO.MemoryStream
        'Создайте кодировщик для записи в поток.
        Dim encStream как новый CryptoStream (мс,
            TripleDes.CreateEncryptor (),
            System.Security.Cryptography.CryptoStreamMode.Write)
    
        'Используйте криптопоток для записи байтового массива в поток.
        encStream.Write (plaintextBytes, 0, plaintextBytes.Length)
        encStream.FlushFinalBlock ()
    
        'Преобразуйте зашифрованный поток в строку для печати.Возврат Convert.ToBase64String (ms.ToArray)
    Конечная функция
      
  7. Добавьте общедоступный метод, расшифровывающий строку.

      Открытая функция DecryptData (
        ByVal зашифрованный текст как строка) как строка
    
        'Преобразование зашифрованной текстовой строки в массив байтов.
        Dim encryptedBytes () As Byte = Convert.FromBase64String (зашифрованный текст)
    
        'Создайте поток.
        Dim ms As New System.IO.MemoryStream
        'Создайте декодер для записи в поток.
        Dim decStream как новый CryptoStream (мс,
            TripleDes.CreateDecryptor (),
            System.Security.Cryptography.CryptoStreamMode.Write)
    
        'Используйте криптопоток для записи байтового массива в поток.
        decStream.Write (encryptedBytes, 0, encryptedBytes.Length)
        decStream.FlushFinalBlock ()
    
        'Преобразуйте поток открытого текста в строку.
        Вернуть System.Text.Encoding.Unicode.GetString (ms.ToArray)
    Конечная функция
      

    Класс-оболочка теперь можно использовать для защиты пользовательских ресурсов. В этом примере он используется для безопасного хранения личных данных пользователя в общедоступном текстовом файле.

Для проверки оболочки шифрования

  1. Добавьте в отдельный класс метод, который использует метод оболочки EncryptData для шифрования строки и записи ее в папку «Мои документы» пользователя.

      Субтест Кодирование ()
        Dim plainText As String = InputBox ("Введите простой текст:")
        Тусклый пароль как String = InputBox ("Введите пароль:")
    
        Dim wrapper As New Simple3Des (пароль)
        Тусклый cipherText As String = wrapper.EncryptData (plainText)
    
        MsgBox ("Шифрованный текст:" & cipherText)
        Мой.Computer.FileSystem.WriteAllText (
            My.Computer.FileSystem.SpecialDirectories.MyDocuments &
            "\ cipherText.txt", cipherText, False)
    Конец подписки
      
  2. Добавьте метод, который считывает зашифрованную строку из папки «Мои документы» пользователя и расшифровывает строку с помощью метода DecryptData оболочки.

      Субтест декодирования ()
        Тусклый cipherText как String = My.Computer.FileSystem.ReadAllText (
            My.Computer.FileSystem.SpecialDirectories.Мои документы &
                "\ cipherText.txt")
        Тусклый пароль как String = InputBox ("Введите пароль:")
        Dim wrapper As New Simple3Des (пароль)
    
        'DecryptData выдает, если используется неправильный пароль.
        Пытаться
            Тусклый plainText как String = wrapper.DecryptData (cipherText)
            MsgBox ("Обычный текст:" & plainText)
        Поймать ex как System.Security.Cryptography.CryptographicException
            MsgBox ("Не удалось расшифровать данные с помощью пароля.")
        Конец попытки
    Конец подписки
      
  3. Добавьте код пользовательского интерфейса для вызова методов TestEncoding и TestDecoding .

  4. Запустить приложение.

    При тестировании приложения обратите внимание, что оно не расшифрует данные, если вы укажете неправильный пароль.

См. Также

Cipher Identifier (онлайн-инструмент) | Boxentriq

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

Этот инструмент использует технологию искусственного интеллекта / машинного обучения для распознавания более 25 распространенных типов и кодировок шифров, включая: Caesar Cipher, Vigenère Cipher (включая вариант autokey), Beaufort Cipher (включая вариант autokey), Playfair Cipher, Двухквадратный / двойной шифр Playfair, столбчатый шифр транспонирования, двунаправленный шифр, четырехквадратный шифр, шифр Атбаш и многое другое!

Вы должны ввести сообщение.

Удалить пробелы Только буквы Обеспечить регресс ВЕРХНИЙ ниже 5 групп Отменить

Анализировать текст Копировать Вставить Параметры текста …

Примечание. Для получения точных результатов ваш зашифрованный текст должен содержать не менее 25 символов.

Результаты анализа

Вероятно, ваш зашифрованный текст имеет следующий тип:

Примечание. Длина вашего зашифрованного текста не превышает 25 символов. Результаты менее надежны.

Для дальнейшего анализа текста и статистики щелкните здесь.

Цезарь Шифр ​​

Шифр Цезаря, также известный как шифр сдвига, является одним из старейших и самых известных шифров в истории.Несмотря на то, что он обманчиво прост, он исторически использовался для получения важных секретов и до сих пор популярен среди головоломок. В шифре Цезаря каждая буква сдвигается на фиксированное количество шагов в алфавите.

Моноалфавитный шифр замены

Моноалфавитный шифр замещения — один из самых популярных шифров среди создателей головоломок. Каждая буква заменяется другой буквой в алфавите.Если он содержит границы слов (пробелы и знаки препинания), он называется аристократом. Более сложный вариант, без границ слов, называется Патристократ.

Шифр ​​Атбаша

Atbash Cipher — это действительно простой шифр подстановки, который иногда называют зеркальным кодом. Считается, что это первый использованный шифр. Чтобы использовать Atbash, вы просто меняете алфавит, так что A становится Z, B становится Y и так далее.

Шифр ​​Виженера

Шифр Виженера был изобретен в середине 16 века и с тех пор пользуется популярностью в сообществе криптографии и взломщика кодов. Несмотря на то, что он был назван шифром Виженера в честь Блеза де Виженера, на самом деле он был разработан Джован Баттиста Беллазо. Шифр Виженера является усовершенствованием шифра Цезаря, в котором используется последовательность сдвигов вместо применения одного и того же сдвига к каждой букве.

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

Vigenère Autokey Cipher

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

Шифр ​​Бофорта

Шифр Бофорта назван в честь сэра Фрэнсиса Бофорта. Он похож на шифр Виженера, но использует другую «tabula recta». Письмо в виде открытого текста вычитаются из ключевой буквы, а не прибавляются.Шифр Бофорта является взаимным (алгоритмы шифрования и дешифрования одинаковы).

Шифр ​​Autokey по Бофорту

Этот шифр похож на шифр Виженера с автоключом, хотя он вычитает буквы, а не добавляет их. Шифр автоключа Бофорта не взаимный.

Шифр ​​Playfair

Шифр Playfair был изобретен в 1854 году Чарльзом Уитстоном, но назван в честь лорда Playfair, который активно продвигал использование этого шифра.Это шифр полиграфической замены, который шифрует пару букв вместо отдельных букв.

Шифр ​​транспонирования столбцов

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

Шифр ​​Railfence

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

Неизвестный шифр транспозиции

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

Бифид-шифр

Шифр Bifid был изобретен французским криптографом-любителем Феликсом Деластелем около 1901 года и считается важным изобретение в криптологии.Он использует комбинацию квадрата Полибия и транспонирования дробных букв для шифрования Сообщения.

Двухквадратный горизонтальный шифр

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

Двухквадратный вертикальный шифр

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

Четырехквадратный шифр

Шифр с четырьмя квадратами был изобретен французским криптографом-любителем Феликсом Деластелем.Это шифр орграфа, где каждый пара букв в зашифрованном тексте зависит от пары букв в открытом тексте. Он использует четыре квадрата 5×5 для перевода каждый орграф.

Base64

Base64 — еще один фаворит среди создателей головоломок. В основном его можно использовать для кодирования чего угодно в печатные символы ASCII. Не редко будет содержимое требует дальнейшего декодирования.

Base64 легко распознать.Он состоит из букв (около 50% прописных и 50% строчных), а также цифр и часто равные символы (=) в конце.

Код Морзе

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

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

Шестнадцатеричные коды

Шестнадцатеричные коды могут представлять ASCII, UTF-8 или более сложные схемы кодирования. Они также могут представлять выходные данные хеш-функций. или современные криптоалгоритмы, такие как RSA, AES и т. д.

В шестнадцатеричных кодах используются только цифры 0–9 и буквы A – F.

Двоичные коды

Двоичные коды могут представлять ASCII, UTF-8 или более сложные схемы кодирования. Они также могут представлять выходные данные хеш-функций. или современные криптоалгоритмы, такие как RSA, AES и т. д.

В двоичных кодах используются только цифры 0–1.

Восьмеричные коды

Восьмеричные коды могут представлять A1Z26, ASCII или более сложные схемы кодирования.Они также могут представлять выходные данные хеш-функций. или современные криптоалгоритмы, такие как RSA, AES и т. д., даже если они обычно представлены в шестнадцатеричном или двоичном формате.

В восьмеричных кодах используются только цифры 0-7.

Десятичные коды

Десятичные коды могут представлять A1Z26, ASCII или более сложные схемы кодирования. Они также могут представлять выходные данные хеш-функций. или современные криптоалгоритмы, такие как RSA, AES и т. д., даже если они обычно представлены в шестнадцатеричном или двоичном формате.

В десятичных кодах используются только цифры 0–9.

Шифр ​​ADFGX и ADFGVX

Шифр ADFGVX использовался немецкой армией во время Первой мировой войны. Он был изобретен лейтенантом Фрицем Небелем и является дробным. шифр транспозиции, который сочетает в себе квадрат Полибия с столбчатым транспонированием. Название происходит от шести возможных букв: A, D, F, G, V и X. Это было усовершенствование более раннего шифра ADFGX.

Обычный текст

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

Другие шифры

Чтобы узнать больше о вашем шифре, рекомендуются следующие инструменты:

Неизвестный формат

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

дефектов, решений и внешних нитей

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

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

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

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

RSA: Почему шифрование бессмысленно, если разработчики взломаны

Алгоритм RSA (названный в честь создателей Рона Ривеста, Ади Шамира и Леонарда Адлемана) представляет собой асимметричный криптографический метод.Асимметричная криптография использует как открытый ключ (который может быть передан любому), так и закрытый ключ (который не может быть скомпрометирован, пока он защищен).

Крайне важно понимать, что RSA считается стандартом де-факто для асимметричной криптографии. Он используется в бесчисленных ситуациях, таких как создание безопасного соединения через незащищенную сеть (SSH, аутентификация VPN и т. Д.). В таком случае представьте себе хаос, если алгоритм окажется под угрозой.

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

RSA никогда не сообщала о степени повреждения, но ущерб был настолько серьезным, что компания бесплатно выдавала новые ключи, стирая скомпрометированные ключи.Это произошло у подрядчика оборонной промышленности Lockheed Martin, заказчика RSA, и в конечном итоге RSA заменила все токены, что было дорогостоящим и трудоемким делом.

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

SHA (алгоритм Secure-Hash-Algorithm): урок того, как самоуспокоенность убивает безопасность

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

На сегодняшний день большинство из них все еще используют SHA-1 из-за неправильных прогнозов.Например, в отчете исследователя безопасности Брюса Шнайера говорится, что взлом алгоритма будет стоить не менее 700 000 долларов США. Этот отчет был опубликован в 2012 году, и многие в мире безопасности основывали свою политику в отношении SHA-1 на подобных оценках. Таким образом, SHA-1 стал алгоритмом де-факто, и он остается по сей день.

Проблема в том, что оказывается, что прогнозы ошиблись. В настоящее время существует возможность создать атаку столкновения примерно за 100 000 долларов США, которая использует два разных хэша с одним и тем же выводом, который расшифровывает значение хэша SHA-1.Это означает, что многие системы, пока они не обновятся до 224–512 SHA-2 (предпочтительно 1600-битного SHA-3, поскольку он наиболее безопасен), уязвимы.

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

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

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

Государственные угрозы криптографии: актуальная проблема

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

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

Часто будут технологические компании, готовые поставить под угрозу безопасность и конфиденциальность, действуя как исполнитель бэкдора. Возьмем, к примеру, ранее упомянутый RSA. С начала 2000-х компания разрешила АНБ установить бэкдор в Dual_EC_DRBG. Клептографический бэкдор позволил АНБ красть информацию без какого-либо обнаружения.

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

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

Эта проблема эквивалентна открытию Ящика Пандоры, но абсолютно актуальна.Это не просто вопрос конфиденциальности; это вопрос безопасности. Эти скрытые бэкдоры могут использоваться черными шляпами так же легко, как и кем-то в штаб-квартире АНБ в Форт-Миде. Единственный способ убедиться, что криптография выполняет свою работу, — это отказаться от политики страха. От этого будет лучше и силовикам, и рядовым гражданам.

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

Оставить комментарий

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *