Введение
Шифрование появилось около четырех тысяч лет тому назад. Первым известным примером шифра считается египетский текст, созданный примерно в 1900 г. до н.э., в котором вместо обычных для египтян иероглифов использовались не совпадающие с ними символы.
Шифрование входит в состав криптографии. Криптографии уже более 4-х тысяч лет. Она появилась впервые в Древнем Египте. Имеются свидетельства, что криптография как техника защиты текста возникла вместе с письменностью, и способы тайного письма были известны уже древним цивилизациям Индии, Египта и Месопотамии.
Хотя жители Индии, Египта и Месопотамии использовали методы шифрования, первыми, кто серьезно занялся криптографией, были древние греки и римляне – враждующие культуры, для которых тайное общение являлось ключевым элементом военных успехов.
Теория
Что же такое шифрование? Шифрование – это обратимое преобразование информации в целях сокрытия от неавторизованных лиц с предоставлением в это же время авторизованным пользователям доступа к ней.
Важной особенностью любого алгоритма шифрования является использование ключа (k), который утверждает выбор конкретного преобразования из совокупности возможных для данного алгоритма.
Какие же состояния безопасности информации обеспечиваются с помощью шифрования?
Целостность – информация сохраняется в полном объеме и не изменяется без ведома владельца.
Доступность – тот, кто имеет право на доступ к информации, может её получить в любой момент времени.
Конфиденциальность – доступ к информации есть только у того, кто имеет на это право.
Но для того, чтобы прочитать зашифрованные данные, необходимо их либо расшифровать, либо дешифровать, поэтому давайте разберем и эти определения подробней.
Дешифрование (как и расшифровка) – это прежде всего обратные шифрованию процессы. Однако же дешифрование иногда путают с расшифрованием.
Отличие же в том, что первое – легитимная процедура, быстро выполняемая с помощью известного ключа, а второе – попытка «взломать шифр», то есть восстановить без знания ключа открытый текст зашифрованного сообщения.
Самым известным успехом взлома алгоритмов шифрования является взлом шифра шифровальной машины Энигма, используемой гитлеровской Германией для защиты военных и политических каналов связи. Это совершенный аппарат для шифрования по меркам своего времени, над которым трудились лучшие умы Германии.
Но не меньшие силы были задействованы и для взлома шифра: над этим работало целое подразделение британских криптографов вместе с молодым ученым Аланом Тьюрингом. Несмотря на завесу тайны, именно его имя связывают с подбором ключа для взлома Энигмы.
А зацепкой стало, казалось бы, банальное гитлеровское приветствие, которым обязательно должно было заканчиваться каждое сообщение.
Алан Тьюринг совершил невозможное, обеспечив своей родине бесценное преимущество во второй мировой войне.
Если же обращаться к истории вновь, то одним из самых простых и наиболее широко известных методов шифрования является шифр Цезаря, известный как шифр сдвига иди же код Цезаря. Шифр назван в честь римского полководца Гая Юлия Цезаря, использовавшего его для секретной переписки со своими генералами.
Шифр Цезаря – это вид шифра подстановки, в котором каждый символ в открытом тексте заменяется символом, находящимся на некотором постоянном числе позиций левее или правее него в алфавите.
Например, в шифре со сдвигом вправо на 3, A была бы заменена на D, B станет D, и так далее.
Шаг шифрования, выполняемый шифром Цезаря, часто включается как часть более сложных схем, таких как шифр Виженера, и всё ещё имеет современное приложение в системе ROT13 (Алгоритм ROT13 заменяет каждую букву на парную ей из второй половины латинского алфавита, образовывая два набора по тринадцать символов).
Как и все моноалфавитные шифры, шифр Цезаря легко взламывается и не имеет почти никакого применения на практике. Поэтому метод перестановки чаще всего сочетается с другими техниками и используется для обучения будущих криптографов.
Методы
Допустим, что мы имеем какой-либо круг доверенных пользователей, которые хотят обмениваться информацией. Однако канал связи открытый, что явно говорит нам о возможности перехвата информации.
Пользователи знают какой-то определенный секретный ключ, благодаря которому возможно шифрование и дешифрование информации.
Отметим, что отсюда вытекает главная задача – сохранение ключа в секретности для установления и поддержки защищенного канала связи, так как именно ключ является самым слабым звеном в цепи.
Поэтому пользователи имеют следующие пути решения данной проблемы:
Симметричное шифрование – способ, при котором в современных криптосистемах для шифрования и дешифрования используется один и тот же ключ. Алгоритм и ключ выбирается заранее и известен обеим сторонам.
Среди наиболее популярных алгоритмов симметричного шифрования являются:
DES (DataEncryptionStandard) – разработанный фирмой IBM на основе сети Фейстеля с 16 циклами (или раундами – последовательными шагами обработки данных в алгоритме блочного шифрования) и ключом, имеющим длину 56 бит. В 1977 году DES был утвержден правительством США как официальный стандарт.
Количество ключей в данном алгоритме шифровании не очень велико, поэтому современными компьютерами DES взламывается легко. Однако же данный алгоритм просуществовал 20 лет с момента создания и только лишь в 1997 году был поднят вопрос о создании нового алгоритма шифрования.
Среди атак, которым подвержен DES, можно выделить следующие:
Метод полного перебора, для которого потребуются:
Одна известная пара зашифрованного и расшифрованного текста.
Незначительный объем памяти.
Выполнение метода за шагов.
В настоящее время прямым развитием DES является алгоритм TripleDES (3DES), созданный в 1978 году с целью устранения главного недостатка – малой длины ключа размером в 56 бит, который уязвим перед методом полного перебора ключа.
В 3DES шифрование/расшифровка выполняются путём троекратного выполнения алгоритма DES. Это снижает скорость выполнения алгоритма в три раза по сравнению с DES, однако же намного возрастает криптостойкость шифра, которая позволяет увеличить время (вплоть до миллиарда раз), требуемое на криптоанализ 3DES.
AES(AdvancedEncryptionStandard) – Принят правительством США как новый стандарт шифрования по результатам конкурса AES. Новом алгоритм имеет три версии:
AES-128 с размером ключа в 128 бит и 10 раундами шифрования.
AES-192 с размером ключа в 192 бит и 12 раундами шифрования.
AES-256 с размером ключа в 256 бит и 14 раундами шифрования.
Рекомендуется делать длину ключа максимальной для обеспечения наибольшей стойкости шифра (то есть использовать AES-256).
Среди атак на шифр возможны следующие варианты:
Атака по времени. Данная атака основывается на предположении, что операции в устройствах выполняются за разное время в зависимости от входных данных. Таким образом, имея набор точных измерений времени для разных операций, криптоаналитик может восстановить исходные данные.
Атака по времени невозможна на алгоритмы, операции которых выполняются за одинаковое число тактов на всех платформах. AES же использует операции сложения и умножения, которые не соответствуют этому требованию и из-за этого алгоритм подвержен атаке по времени.
В качестве предотвращения подобной атаки необходимо сделать время выполнения всех операций в алгоритме одинаковыми, что является сложной задачей из-за оптимизации компилятора, обращению к кэшу и других факторов, вносящих различные временные отклонения.
Либо же попробовать добавлять ко времени выполнения операции задержки случайной длительности, что значительно усложнит атаку по времени.
Атака по энергопотреблению. Данная атака основывается на измерении энергопотребления устройства с высокой точностью в процессе работы шифратора. Таким образом криптоаналитик может получить информацию об операциях, выполняемых в устройстве и у него появляется возможность извлечь криптографические ключи или другую секретную информацию из устройства, не оказывая на него непосредственного влияния.
Возможные варианты противодействия данной атаке:
Балансировка энергопотребления — при проведении операции задействовать все аппаратные части устройства.
Обеспечение независимости флуктуаций энергопотребления и происходящих в системе процессов.
Важно то, что симметричные алгоритмы не могут применяться для формирования цифровых подписей и сертификатов, потому что секретный ключ при использовании этого метода должен быть известен всем, кто работает с шифром, что противоречит самой идее электронной подписи (возможности проверки ее подлинности без обращения к владельцу).
Область применения симметричного шифрования неразрывно связана с обменом данными во многих современных сервисах (например, мессенджеры), часто в сочетании с асимметричным шифрованием.
Рассмотрим его подробнее.
Вышеописанный путь решения проблемы в виде симметричного шифрования возможно модифицировать и использовать не один ключ шифрования и дешифрования, а два – один для шифрования информации, а другой для её последующей расшифровки. О нём пойдет речь ниже.
Ассиметричное шифрование – способ, который предполагает использование двух ключей: открытого (для шифрования информации) и закрытого (для расшифровки информации). Открытый ключ может передаваться по незащищенным каналам связи, в то время как закрытый ключ должен быть всегда в секрете.
Также стоит отметить, что ключи связаны они между собой функцией, но так, что, зная один, сложно вычислить другой. К тому же их генерация происходит в одно и то же время ввиду особенностей математической функции.
Среди наиболее популярных методов шифрования стоит выделить следующие:
RSA(Рон Ривест, Ади Шамир, Леонард Адлеман – по фамилиям ученых (в том же порядке), опубликовавших статью о своём алгоритме) – алгоритм шифрования, в основе которого лежит вычислительная сложность факторизации (разложения на множители) больших простых чисел.
На основе алгоритма существуют такие протоколы связи, как SSL(SecureSocketsLayer) и TLS(TransportLayerSecurity, который, по сути, является прямым продолжением SSL): стандарты с помощью ассиметричного шифрования кодируют и передают ключ от симметричного шифра, которым и пользуются в ходе дальнейшей передачи данных на стадии установки соединения.
Криптографические приложения PGP и S/MIME используют ассиметричное шифрование в основе своей работы.
А также наш отечественный и известный своей безопасностью мессенджер «Telegram» использует на этапе авторизации алгоритм RSA.
Схема Эль-Гамаля – криптосистема с открытым исходным ключом, основанная на сложности вычисления дискретных логарифмов. Данный алгоритм лежит в основе бывших стандартов электронной цифровой подписиDSA (DigitalSignatureAlgorithm, «алгоритм цифровой подписи») и отечественного ГОСТ 34.10–94.
ECDSA (Elliptic Curve Digital Signature Algorithm) – алгоритм, основанный на сложности вычисления дискретного логарифма в группе точек эллиптической кривой. Применяется для генерации цифровых подписей, в частности для подтверждения транзакций в криптовалюте Ripple.
Асимметричное шифрование решает главную проблему симметричного метода, при котором для кодирования и восстановления данных используется один и тот же ключ. Если передавать этот ключ по незащищенным каналам, его могут перехватить и получить доступ к зашифрованным данным.
С другой стороны, асимметричные алгоритмы гораздо медленнее симметричных, поэтому во многих криптосистемах применяются и те, и другие.
Асимметричные алгоритмы применяются для создания электронных подписей для подтверждения авторства и (или) целостности данных. При этом подпись генерируется с помощью закрытого ключа, а проверяется с помощью открытого.
Замечу, что в тексте неоднократно вводилось понятие цифровой подписи. Что же это такое?
Прежде чем рассматривать понятие цифровой подписи, обратимся к другому определению – хэш-функции (или функции свёртки).
Если коротко, то криптографическая хеш-функция, чаще называемая просто хешем, – это математический алгоритм, преобразовывающий произвольный массив данных в состоящую из букв и цифр строку фиксированной длины.
Причем при условии использования того же типа хеша длина эта будет оставаться неизменной, вне зависимости от объема вводных данных.
Преобразование же, производимое хеш-функцией, называется хешированием.
Исходные данные называются входным массивом, «ключом» или «сообщением». Результат преобразования (или выходные данные) называется «хешем», «хеш-кодом», «хеш-суммой», «сводкой сообщения».
Среди примеров хэш-функций можно выделить следующие: MD2, MD4, MD5, HAVAL, SHA, SHA-1, SHA-256, SHA-384, SHA-512, Tiger и др.
Хеш-функция принимает входные данные любого размера. Это может быть e-mail, файл или слово.
Интересно то, что хеш-функция является односторонней и конвертация хэша обратно в изначальные входные данные невозможна.
Поэтому после хэширования выходные данные обеспечены целостностью и защищены от непреднамеренных модификаций. Замечу, что этот факт позволяет установить достоверность того или иного файла в сети Интернет.
Тем не менее, возможен и такой вариант, когда веб-сайт (например) уже скомпрометирован (злоумышленники подменили какой-либо файл со своими модификациями, изменили соответствующие хэш-суммы). Тогда хеш ничего не значит, то есть он не может обнаружить преднамеренную модификацию файла. И нам нужно что-то еще чтобы удостовериться что данное программное обеспечение действительно исходит от разработчика.
И здесь мы подходим к цифровым подписям.
Цифровая подпись по факту является значением хэша. То есть это результат работы хеш-функции с фиксированным размером, который зашифрован закрытым ключом отправителя с целью создания цифровой подписи или подписанного сообщения.
С технической точки зрения цифровая подпись – это отметка, подтверждающая лицо, которое подписало сообщение. Это выдача гарантии на объект, который был подписан с ее помощью.
Если объект шифрования подписан цифровой подписью, то обеспечена аутентификация, потому что объект зашифрован при помощи закрытого ключа, шифровать которым может только владелец этого закрытого ключа. Это и есть аутентификация.
Она обеспечивает невозможность отказа от авторства, поскольку, повторюсь, использован закрытый ключ отправителя. И она обеспечивает целостность, поскольку мы хешируем.
Цифровая подпись может быть использована, например, в программном обеспечении. Может использоваться для драйверов внутри вашей операционной системы. Может использоваться для сертификатов и подтверждать, что подписанные объекты исходят именно от того лица, которое указано в сертификате, и что целостность данных этих объектов была сохранена, то есть никаких изменений они не претерпели.
Заключение
Сегодня, в век цифровых технологий, каждый из нас сталкивается с шифрованием даже не замечая этого. Мы ежедневно пользуемся разными Интернет-ресурсами, которые зашифровывают данные для того, чтобы избежать получения этих данных третьими лицами.
Набирая текст в поисковой строке, поисковик шифрует доступные ему данные. Когда вы заходите на любой сайт в интернете, информация о Вашем устройстве, IP адресе, MAC адресе и идентификатор сессии так же шифруется.
Многие люди не интересуются этой темой и для кого-то это покажется слишком сложным.
В наш век очень ценна информация. Вряд ли Вы хотите, чтобы Ваше сообщение прочитал кто-то другой, а не получатель. Многие передают в сообщениях очень много конфиденциальной и ценной информации.
Как раз, чтобы эта информация не попала злоумышленнику, большинство сервисов обмена сообщений поддерживают шифрование. А самые безопасные – шифрование с закрытым ключом.
Список литературы:
1. Шифрование ― Википедия. — Текст : электронный // Википедия ― свободная энциклопедия : [сайт]. — URL: https://ru.wikipedia.org/wiki/%D0%A8%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5#cite_note-_bb323dceb5683839-2 (дата обращения: 10.12.2022).
2. Дешифровка ― Википедия. — Текст : электронный // Википедия ― свободная энциклопедия : [сайт]. — URL: https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BA%D0%B0 (дата обращения: 10.12.2022).
3. DES ― Википедия. — Текст : электронный // Википедия ― свободная энциклопедия : [сайт]. — URL: https://ru.wikipedia.org/wiki/DES (дата обращения: 11.12.2022).
4. AES (стандарт шифрования) ― Википедия. — Текст : электронный // Википедия ― свободная энциклопедия : [сайт]. — URL: https://ru.wikipedia.org/wiki/AES_(%D1%81%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82_%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F) (дата обращения: 11.12.2022).
5. Схема Эль-Гамаля ― Википедия. — Текст : электронный // Википедия ― свободная энциклопедия : [сайт]. — URL: https://ru.wikipedia.org/wiki/%D0%A1%D1%85%D0%B5%D0%BC%D0%B0_%D0%AD%D0%BB%D1%8C-%D0%93%D0%B0%D0%BC%D0%B0%D0%BB%D1%8F (дата обращения: 11.12.2022).
6. Хэш-функция ― Википедия. — Текст : электронный // Википедия ― свободная энциклопедия : [сайт]. — URL: https://ru.wikipedia.org/wiki/%D0%A5%D0%B5%D1%88-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F (дата обращения: 11.12.2022).
7. Дешифрование, декодирование и расшифрование — в чём разница? - "Криптонит". — Текст : электронный // Криптонит : [сайт]. — URL: https://kryptonite.ru/articles/deshifrovanie-dekodirovanie-i-rasshif/ (дата обращения: 11.12.2022).
8. Что такое симметричное шифрование | Энциклопедия «Касперского». — Текст : электронный // Энциклопедия «Касперского» : [сайт]. — URL: https://encyclopedia.kaspersky.ru/glossary/symmetric-encryption/ (дата обращения: 12.12.2022).
9. Что такое асимметричное шифрование | Энциклопедия «Касперского». — Текст : электронный // Энциклопедия «Касперского» : [сайт]. — URL: https://encyclopedia.kaspersky.ru/glossary/asymmetric-encryption/ (дата обращения: 12.12.2022).
10. RSA — Википедия . — Текст : электронный // Википедия — Свободная энциклопедия : [сайт]. — URL: https://ru.wikipedia.org/wiki/RSA (дата обращения: 13.12.2022).