Руководство для начинающих по классической криптографии

Руководство для начинающих по классической криптографии


Криптография (Cryptography): Это метод скремблирования [разновидность кодирования информации] сообщения с использованием математической логики для обеспечения безопасности информации. Он сохраняет скремблированное сообщение от взлома при транспортировке по незащищенной сети. Поскольку он преобразует читаемое сообщение в нечитаемый текст.


Простой текст (Plaintext): Это содержимое данных, которое находится в удобночитаемой форме, которым необходимо обмениваться в небезопасной сети.


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


Зашифрованный текст (Cipher text): Вывод шифрования создает шифрованный текст, который не читается людьми.


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

Функциональность криптосистемы

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

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

  • Целостность: Целостность - это аспект безопасности, который подтверждает, что исходное содержимое информации не было изменено или повреждено. При транспортировке по сети не должно быть никаких изменений в информации.

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


Типы классических криптографических алгоритмов


Шифр Цезаря


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


Алгоритм


Шаг 0: Математический, сопоставление букв с числами (т.е., A = 1, B = 2, and т.д.).



Шаг 1: Выберем целочисленный ключ K между 1 и 25 (т. е. в английском языке всего 26 букв), допустим, сдвинуть вправо на 3 буквы алфавита, где A +3 = D, B + 3 = E и т. д.


Шаг 2: Формула шифрования: «Добавить k mod 26»; то есть исходная буква L становится (L + k)% 26.


Например, шифрование «IGNITE» будет выглядеть так:


C = E (L+K) %26


Где L= I и K = 3


C = E (I+3) % 26


C = E (9+3) % 26


C = E (12) % 26


C = E (L)


Следовательно, шифрование IGNITE: LJQLWH



Шаг 3: Расшифровка - «Вычесть k mod 26»; то есть зашифрованная буква L становится (L - k)% 26. Например, расшифровка «LJQLWH» будет выглядеть как: 


C = D (L-K) %26


C = D (L-3) % 26


C = D (12-3) % 26


C = D (9) % 26


C = D (I)


Следовательно, расшифровка LJQLWH: IGNITE


Ограниченность: Шифр Цезаря уязвим для атаки грубой силы (brute-force attack), потому что он зависит от одного ключа с 25 возможными значениями, если открытый текст написан на английском языке. Следовательно, пробовав каждый вариант и проверяя, какой из них приводит к содержательному слову, можно узнать ключ. Как только ключ найден, полный текст шифрования может быть дешифрован точно.


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


Это также тип шифрования замещения, в котором каждая буква алфавита является подменой, используя некоторую перестановку букв в алфавите. Следовательно, перестановки из 26 букв будут 26! (Факториал 26) и равен 4 × 1026. Этот метод использует случайный ключ для каждой отдельной буквы для шифрования и который делает моноалфавитный шифр защищенным от атаки грубой силы.


Отправитель и получатель принимают решение о случайно выбранной перестановке букв алфавита. Например, в слове «HACKING» замените G на «J» и N на «W», поэтому ключ перестановки равен 2! то есть факториал 2, а HACKING станет «HACKIWJ» [в оригинальной статье - HACKING станет “HACKJIW”].


Алгоритм


Шаг 0: Создадим пару тексту с открытым текстом, путем сопоставления каждой простой текстовой буквы с другой текстовой буквой IJKLQR --- GFE.



Шаг 1: Чтобы зашифровать, для каждой буквы в исходном тексте, заменим обычное текстовое письмо на текстовое письмо. Следовательно, шифрование «IGNITE» будет таким, как показано ниже


[​IMG]



Шаг 2: для расшифровки нужно изменить процедуру на шаге 1. 


Следовательно, расшифровка «USBUOQ» будет «IGNITE» 


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


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


Он шифрует орграфы или пары букв, а не отдельные буквы, такие как простой шифр замещения. В этом шифре создается таблица алфавита с сеткой размером 5 × 5, которая содержит 25 букв вместо 26. Один символ «J» (или любой другой) опущен. Сначала нужно заполнить пробелы в таблице буквами ключевого слова (не записывая повторяющиеся буквы), а затем заполнить оставшиеся пробелы остальными буквами алфавита по порядку. Если открытый текст () содержит "J", то он заменяется на "I".


Алгоритм 


Шаг 0: Разделим открытый текст на пару, если количество букв нечетно, добавьте «X» с последней буквой открытого текста. Например, "TABLE" ("ТАБЛИЦА") - это наш открытый текст, который разбивает его на пару как: TA BL EX


Шаг 1: Установим матрицу 5 × 5, заполнив первые позиции ключевым словом. Заполним остальную часть матрицы другими буквами. Пусть предположим, что «ARTI» - наш ключ для шифрования.




Шаг 2: для шифрования он включает в себя три правила: если обе буквы попадают в одну строку, нужно заменить каждую букву справа на круговой узор. TA -> IR


[​IMG]



Если обе буквы попадают в разные строки и столбцы, формируется прямоугольник с двумя буквами и возьмём буквы в горизонтальном противоположном углу прямоугольника. BL -> TN


[​IMG]



Если обе буквы попадают в один и тот же столбец, каждая букву заменяется буквой под ней круговой диаграммой. EX -> LT


[​IMG]



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


Шифрование слова «TABLE» - это «IR TN LT».


Ограниченность: Шифр Плейфера значительно сложнее сломать; он по-прежнему уязвим для частотного анализа, поскольку в случае с этим шифром частотный анализ будет применяться на 25 * 25 = 625 возможных орграфах, а не в 25 возможных монографиях (моноалфавитных)


Полиалфавитный шифр


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


Алгоритм 


Шаг 0: Решим ключ шифрования для изменения открытого текста в шифре, например, возьмём «HACKING» в качестве ключа шифрования, числовое представление которого «7, 0, 2, 10, 8, 13, 6»


[​IMG]



Шаг 1: Чтобы зашифровать, число первой буквы ключа шифрует первую букву открытого текста, второе число второй буквы ключа шифрует вторую букву открытого текста и т. д.


Например, открытый текст “VISIT TO HACKING ARTICLES”, а ключ “HACKING: 7 0 2 10 8 13 6”



Шаг 2: Формула шифрования: «Добавить k mod 26»; то есть исходная буква L становится (L + k)% 26


C = E (L+K) %26


Где L=V и K =7


C = E (V+7) %26


C = E (21+7) %26


C = E (28) %26


C = E (2)


C = E (C)


Следовательно, “VISIT TO HACKING ARTICLES” будет зашифровано в “CIUSBGUOAEUQAMHRVSKYKZ”


[​IMG]



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


Шифрование вращением


В ротации шифр генерирует шифрованный текст от имени размера блока и угла поворота обычного текста в направлении следующих углов: 90° 180° 270°


Алгоритм


Шаг 0: Определим размер блока для открытого текста «CRYPTOGRAPHY», допустим, 6 для него как размер блока.


CRYPTO


GRAPHY


Шаг 1: Для шифрования открытый текст размещается в любом направлении между этими углами 90° 180° 270°, как показано ниже: В 90° поместим точку поворота вниз по вертикали от G до C и так далее.


CRYPTO


GRAPHY


В 180° буква вращается справа налево горизонтально от O до C и так далее.


CRYPTO --- OTPYRC


GRAPHY --- YHPARG


В 270° вращение помещает последнюю букву сверху вниз вертикально от O до Y и так далее.


CRYPTO


GRAPHY


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



Шаг 2: Упорядочив буквы в соответствии с их углами, получим: 


Шифр повернутый на 90° «GCRRAYPPHTYO» 


Шифр повернутый на 180° «YHPARGOTPYRC» 


Шифр повернутый на 270° «OYTHPPYARRCG»


Ограниченность: Для дешифрования с использованием размера блока и угла поворота среди всех вышеуказанных текстов шифрования можно расшифровать.


Шифр перестановки


В перестановочном шифровании символы оригинального исходного текста переставляются местами.


Алгоритм 


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


Шаг 1: Сохраним текст «classical cryptography» в таблице слева направо.


[​IMG]



Шаг 2: Для шифрования упорядочим все буквы в соответствии с столбцами в возрастающем порядке ключевого слова «CIPHER» будет CEHIPR как:


Столбец 1: CCCPP 


Column2: ESRR 


Столбец 3: HSCG 


Столбец 4: PALOY 


Столбец 5: RIYA


Следовательно, мы получим зашифрованный текст «CCCPPESRRHSCGPALOYRIYA»


Шаг 3: Для дешифровки используется ключ для переупорядочения 26 букв шифрования в соответствии с его столбцом в матрице 6 * 5.


Ограниченность: Было очень легко определить зашифрованное послание, если определить правильный ключ.


Author:ED-GoD


Report Page