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

1911froct

Публикатор
Элита форума
29 Сен 2020
242
125
(Оригинальная статья: "Beginner Guide to Classic Cryptography", автор RAJ CHANDEL, http://www.hackingarticles.in/beginner-guide-classic-cryptography/, )


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

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

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

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

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


[IMG]

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

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

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

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

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

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

Шифр Цезаря

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

Алгоритм

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

[IMG]

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

[IMG]
Шаг 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

[IMG]

Шаг 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.

[IMG]

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

[IMG]

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

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

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

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

Алгоритм

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

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

[IMG]

Шаг 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”

[IMG]

Шаг 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
Следовательно, зашифровальный текст будет выглядеть следующим образом:

[IMG]

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

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

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

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

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

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

Алгоритм

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

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

[IMG]

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

[IMG]

Столбец 1: CCCPP

Column2: ESRR

Столбец 3: HSCG

Столбец 4: PALOY

Столбец 5: RIYA

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

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

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