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

Элементарные шифры на понятном языке

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

Прежде всего, разберемся в терминологии.

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

Исходное сообщение – это, собственно, то, что мы хотим зашифровать. Классический пример — текст.

Шифрованное сообщение – это сообщение, прошедшее процесс шифрования.

Шифр — это сам алгоритм, по которому мы преобразовываем сообщение.

Ключ — это компонент, на основе которого можно произвести шифрование или дешифрование.

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

Теперь, когда мы говорим на более-менее одном языке, разберем простые шифры.

Шифр Атбаша

Самый-самый простой шифр. Его суть – переворот алфавита с ног на голову.

Например, есть у нас алфавит, который полностью соответствует обычной латинице.

Для реализации шифра Атбаша просто инвертируем его. «А» станет «Z», «B» превратится в «Y» и наоборот. На выходе получим такую картину:

И теперь пишем нужное сообшение на исходном алфавите и алфавите шифра

Исходное сообщение: I love habr
Зашифрованное: r olev szyi

Шифр Цезаря

Тут добавляется еще один параметр — примитивный ключ в виде числа от 1 до 25 (для латиницы). На практике, ключ будет от 4 до 10.

Опять же, для наглядности, возьмем латиницу

И теперь сместим вправо или влево каждую букву на ключевое число значений.

Например, ключ у нас будет 4 и смещение вправо.

Исходный алфавит: a b c d e f g h i j k l m n o p q r s t u v w x y z
Зашифрованный: w x y z a b c d e f g h i j k l m n o p q r s t u v

Пробуем написать сообщение:

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

Шифр Вернама (XOR-шифр)

Простейший шифр на основе бинарной логики, который обладает абсолютной криптографической стойкостью. Без знания ключа, расшифровать его невозможно (доказано Клодом Шенноном).

Исходный алфавит — все та же латиница.

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

Теперь вспомним курс электроники и элемент «Исключающее ИЛИ», также известный как XOR.

XOR принимает сигналы (0 или 1 каждый), проводит над ними логическую операцию и выдает один сигнал, исходя из входных значений.

Если все сигналы равны между собой (0-0 или 1-1 или 0-0-0 и т.д.), то на выходе получаем 0.
Если сигналы не равны (0-1 или 1-0 или 1-0-0 и т.д.), то на выходе получаем 1.

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

сообщение: LONDON
ключ: SYSTEM

Переведем их в бинарный код и выполним XOR:

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

С виду — совершенно несвязный набор чисел, но мы-то знаем.

Шифр кодового слова

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

Например, возьмем для разнообразия, кириллический алфавит.

Придумаем кодовое слово. Например, «Лукоморье». Выдернем из него все повторяющиеся символы. На выходе получаем слово «Лукомрье».

Теперь вписываем данное слово в начале алфавита, а остальные символы оставляем без изменений.

И теперь запишем любое сообщение и зашифруем его.

Получим в итоге следующий нечитаемый бред:

Шифр Плейфера

Классический шифр Плейфера предполагает в основе матрицу 5х5, заполненную символами латинского алфавита (i и j пишутся в одну клетку), кодовое слово и дальнейшую манипуляцию над ними.

Пусть кодовое слово у нас будет «HELLO».

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

Теперь возьмем любое сообщение. Например, «I LOVE HABR AND GITHUB».

Разобьем его на биграммы, т.е. на пары символов, не учитывая пробелы.

Читайте также:  Легальный способ заработать деньги

Если бы сообщение было из нечетного количества символов, или в биграмме были бы два одинаковых символа (LL, например), то на место недостающего или повторившегося символа ставится символ X.

Шифрование выполняется по нескольким несложным правилам:

1) Если символы биграммы находятся в матрице на одной строке — смещаем их вправо на одну позицию. Если символ был крайним в ряду — он становится первым.

Например, EH становится LE.

2) Если символы биграммы находятся в одном столбце, то они смещаются на одну позицию вниз. Если символ находился в самом низу столбца, то он принимает значение самого верхнего.

Например, если бы у нас была биграмма LX, то она стала бы DL.

3) Если символы не находятся ни на одной строке, ни на одном столбце, то строим прямоугольник, где наши символы — края диагонали. И меняем углы местами.

Например, биграмма RA.

По этим правилам, шифруем все сообщение.

Если убрать пробелы, то получим следующее зашифрованное сообщение:

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

Источник

Шифрование: типы и алгоритмы. Что это, чем отличаются и где используются?

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

Давайте разберемся со всем по порядку.

Тип шифрования № 1: Симметричное шифрование

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

В Киеве живут два близких друга Антон и Алиса. По какой-то причине Алиса вынуждена покинуть город. Единственный способ общаться друг с другом — по почте. Но есть одна проблема: Антон и Алиса боятся, что кто-то сможет прочитать их письма.

Чтобы защитить свои письма, они решили шифровать сообщения таким образом, чтобы каждая буква заменялась буквой на семь позиций вниз по алфавиту. Вместо того, чтобы писать «Apple», они будут писать «hwwsl» (A -> H, P -> W, L -> S, E -> L). Чтобы расшифровать сообщение, необходимо каждую букву заменить на семь позиций в алфавитном порядке назад. Такую технику шифрования давным-давно использовал римский император и военный генерал Гай Юлий Цезарь, известна она еще как «шифр Цезаря».

Что делает симметричное шифрование хорошим решением

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

  • Значительно быстрее, чем их аналоги асимметричного шифрования (о чем мы вскоре поговорим);
  • Требуется меньше вычислительной мощности;
  • Не снижается скорость интернета.

3 алгоритма симметричного типа шифрования

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

Существуют сотни алгоритмов симметричного типа! Наиболее распространенные из них — AES, RC4, DES, 3DES, RC5, RC6 и т. д. Давайте рассмотрим три самых популярных.

1. DES-алгоритм симметричного шифрования

DES (data encryption standard), представленный в 1976 году, является старейшей симметричных методов шифрования. Он был разработан IBM для защиты конфиденциальных правительственных данных и был официально принят в 1977 году для использования федеральными агентствами в США. Алгоритм шифрования DES был одним из тех, который был включен в версии 1.0 и 1.1 TLS (transport layer security).

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

В 2005 году DES был официально объявлен устаревшим и был заменен алгоритмом шифрования AES. Самым большим недостатком DES была слишком маленькая длина ключа шифрования, что облегчало взлом. Протокол TLS 1.2, который широко используется сегодня не использует метод шифрования DES.

2. Алгоритм симметричного шифрования 3DES

3DES также известный как TDEA (triple data encryption algorithm), как следует из названия, является обновленной версией алгоритма DES. 3DES был разработан для преодоления недостатков алгоритма DES и был введен в эксплуатацию в конце 1990 года. Обновленный алгоритм применял циклы DES трижды к каждому блоку данных. В результате 3DES было намного сложнее взломать, чем его предшественника DES. TDEA стал широко используемым алгоритмом шифрования в платежных системах и других ​​технологиях финансовой индустрии. Он также стал частью криптографических протоколов, таких как TLS, SSH, IPsec и OpenVPN.

Читайте также:  Как сделать открытку простой способ

Все алгоритмы шифрования в конечном итоге поддаются власти времени, и 3DES не стал исключением. Уязвимость Sweet32 алгоритма 3DES была обнаружена Картикеяном Бхаварганом и Гаэтаном Леурентом. Это открытие заставило индустрию безопасности рассмотреть вопрос об устаревании алгоритма, а Национальный институт стандартов и технологий США (англ. National Institute of Standards and Technology, NIST) объявил об этом официально в проекте руководства, опубликованном в 2019 году.

Согласно этому проекту, использование 3DES должно быть отменено во всех новых приложениях после 2023 года. Стоит также отметить, что TLS 1.3, новейший стандарт для протоколов SSL/TLS, также прекратил использование 3DES.

3. Алгоритм симметричного шифрования AES

AES(advanced encryption system) также известный как Rijndael, является одним из наиболее распространенных алгоритмов шифрования. Был разработан в качестве альтернативы DES и после утверждения NIST в 2001 году стал новым стандартом шифрования. AES — это семейство блочных шифров с различной длиной ключей и разными размерами блоков.

AES работает методами подстановки и перестановки. Сначала незашифрованные данные преобразуются в блоки, а затем шифрование применяется с использованием ключа. Процесс шифрования состоит из различных процессов, таких как сдвиги строк, смешивание столбцов и добавление ключей. В зависимости от длины ключа выполняется 10, 12 или 14 таких трансформаций (раундов). Стоит отметить, что последний раунд отличается от предыдущих и не включает подпроцесс микширования.

Преимущество использования алгоритма шифрования AES

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

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

  • Беспроводную безопасность,
  • Безопасность процессоров и шифрование файлов,
  • Протокол SSL/TLS (безопасность сайтов),
  • Безопасность Wi-Fi,
  • Шифрование мобильных приложений,
  • VPN (virtual private network) и т. д.

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

Тип шифрования № 2: асимметричное шифрование

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

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

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

Что делает асимметричное шифрование отличной техникой

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

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

2 основных типа алгоритмов асимметричного шифрования

1. Алгоритм асимметричного шифрования RSA

В 1977 году алгоритм изобрели трое ученых из Массачусетского технологического института Рон Ривест, Ади Шамир и Леонард Адлеман (Ron Rivest, Adi Shamir, and Leonard Adleman отсюда «RSA»). На сегодняшний день является наиболее используемым алгоритмом асимметричного шифрования. Его эффективность заключается в методе «первичной факторизации». По сути, выбираются два различных случайных простых числа заданного размера (например, 1024 бита каждое) и умножаются, чтобы создать еще одно гигантское число. Задача состоит в том, чтобы определить исходные простые числа из умноженного гигантского. Оказывается, эта головоломка практически невозможна для современных суперкомпьютеров, не говоря уже о людях.

В 2010 году группа добровольцев провела исследование, и им потребовалось более 1500 лет вычислительного времени (распределенного по сотням компьютеров), чтобы взломать 768-битный ключ RSA, что намного ниже стандартного 2048-битного, который используется сегодня.

Читайте также:  Способы передвижения брюхоногих моллюсков
Преимущество использования алгоритма шифрования RSA

Большим преимуществом RSA является его масштабируемость, ключи могут быть разной длины шифрования: 768-битный, 1024-битный, 2048-битный, 4096-битный и т. д.

RSA основан на простом математическом подходе, поэтому его реализация в инфраструктуре открытых ключей (PKI) становится легкой. Адаптивность и безопасность сделали RSA наиболее используемым алгоритмом асимметричного шифрования для различных приложений, включая сертификаты SSL / TLS, криптовалюты и шифрование электронной почты.

2. Алгоритм асимметричного шифрования ECC

В 1985 году два математика по имени Нил Коблиц и Виктор Миллер предложили использовать эллиптические кривые в криптографии. Спустя почти два десятилетия их идея воплотилась в реальность, алгоритм ECC (Elliptic Curve Cryptography) начали использовать в 2004-2005 годах.

В процессе шифрования ECC эллиптическая кривая представляет набор точек, которые удовлетворяют математическое уравнение (y 2 = x 3 + ax + b).

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

Преимущество использования алгоритма шифрования ECC

Не смотря на то, что по сравнению с RSA, в ECC используется более короткая длина ключа обеспечивает он большую безопасность (от современных методов взлома).

Еще одним преимуществом использования более коротких ключей в ECC является более высокая производительность. Короткие ключи требуют меньшей сетевой нагрузки и вычислительной мощности, и это отлично подходит для устройств с ограниченными возможностями хранения и обработки. Использование алгоритма ECC в сертификатах SSL/TLS значительно сокращает время, необходимое для шифрования и дешифрования, что помогает быстрее загружать веб-сайт. Алгоритм ECC используется для приложений шифрования, цифровых подписей, в псевдослучайных генераторах и т. д.

Однако проблема массового использования ECC заключается в том, что многие серверные программы и панели управления еще не добавили поддержку сертификатов ECC SSL/TLS. Мы надеемся, что это изменится в скором будущем, а пока что RSA будет продолжать оставаться наиболее используемым алгоритмом асимметричного шифрования.

Гибридное шифрование: симметричное + асимметричное шифрование

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

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

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

Метод гибридного шифрования используется в SSL/TLS сертификатах во время последовательной связи между серверами и клиентами (веб-браузерами) в процессе, известном как “TLS handshake”. Сначала проверяется личность обеих сторон с использованием закрытого и открытого ключа. После того, как обе стороны подтвердят свою личность, шифрование данных происходит посредством симметричного шифрования с использованием эфемерного (сеансового) ключа. Это обеспечивает быструю передачу большого объема данных, которые мы отправляем и получаем в Интернете каждую минуту.

Типы методов шифрования

Если у вас возник вопрос: “Так какой же тип шифрования лучше?”, то явного победителя не будет.

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

Преимущества симметричного и асимметричного шифрования мы собрали в таблицу, с которой предлагаем ознакомится и вам:

Симметричное шифрование Асимметричное шифрование
Один ключ используется для шифрования и дешифрования данных. Пара ключей используется для шифрования и дешифрования. Эти ключи известны как “открытый ключ” и “закрытый ключ”.
Более простой метод шифрования, так как используется только один ключ. В связи с тем, что используется пара ключей — процесс более сложный.
Используется для шифрования большого объема данных. Обеспечивает аутентификацию.
Обеспечивает более высокую производительность и требует меньше вычислительной мощности. Сложные процессы протекают медленнее и требуют большей вычислительной мощности.
Для шифрования данных используется меньшая длина ключа (128-256 бит). Используются более длинные ключи шифрования (1024-4096 бит).
Идеально подходит для шифрования большого количества данных. Используется при шифровании небольшого объема данных.
Стандартные алгоритмы: RC4, AES, DES, 3DES и QUAD. Стандартные алгоритмы: RSA, Diffie-Hellman, ECC, El Gamal и DSA.

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

Специалисты техподдержки Hostpro помогут выбрать необходимый сертификат, ориентируясь на потребности вашего сайта. Также бесплатно установят и настроят работу по HTTPS. Свяжитесь удобным для вас способом в режиме телефонного звонка, on-line чата или тикет-системы 24/7.

Источник

Оцените статью
Разные способы