Учебники

Традиционные шифры

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

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

Ранее криптографические системы

Прежде чем продолжить, вам нужно знать некоторые факты об исторических криптосистемах —

  • Все эти системы основаны на схеме шифрования с симметричным ключом .

  • Единственная служба безопасности, предоставляемая этими системами, — это конфиденциальность информации.

  • В отличие от современных систем, которые являются цифровыми и обрабатывают данные как двоичные числа, более ранние системы работали над алфавитами в качестве основного элемента.

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

Единственная служба безопасности, предоставляемая этими системами, — это конфиденциальность информации.

В отличие от современных систем, которые являются цифровыми и обрабатывают данные как двоичные числа, более ранние системы работали над алфавитами в качестве основного элемента.

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

Цезарь Шифр

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

Эта криптосистема обычно называется шифром сдвига . Идея состоит в том, чтобы заменить каждый алфавит другим алфавитом, который «сдвинут» на некоторое фиксированное число от 0 до 25.

Для такого типа схемы отправитель и получатель договариваются о «секретном числе сдвига» для сдвига алфавита. Этот номер от 0 до 25 становится ключом шифрования.

Название «Цезарь шифр» иногда используется для описания шифра сдвига, когда используется «сдвиг трех».

Процесс шифрования сдвига

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

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

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

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

Процесс шифрования сдвига

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

  • Затем он заменяет зашифрованную букву открытым текстом на скользящей линейке внизу. Следовательно, зашифрованный текст «WXWRULDO» расшифровывается как «учебник». Чтобы расшифровать сообщение, закодированное со сдвигом 3, сгенерируйте открытый текст с использованием сдвига «-3», как показано ниже:

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

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

Процесс сдвига шифра1

Значение безопасности

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

Простой Подстановочный Шифр

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

Например, AB… ..YZ и ZY …… BA — это две очевидные перестановки всех букв алфавита. Перестановка — не что иное, как перемешанный набор алфавитов.

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

Процесс простой замены шифра

  • Напишите алфавиты A, B, C, …, Z в естественном порядке.

  • Отправитель и получатель выбирают произвольно выбранную перестановку букв алфавита.

  • Под алфавитами естественного порядка запишите выбранную перестановку букв алфавита. Для шифрования отправитель заменяет все незашифрованные буквы заменой буквы перестановки, которая находится непосредственно под ней в таблице. Этот процесс показан на следующем рисунке. В этом примере выбранная перестановка — это K, D, G, …, O. Точка открытого текста «зашифрована» в «MJBXZ».

Напишите алфавиты A, B, C, …, Z в естественном порядке.

Отправитель и получатель выбирают произвольно выбранную перестановку букв алфавита.

Под алфавитами естественного порядка запишите выбранную перестановку букв алфавита. Для шифрования отправитель заменяет все незашифрованные буквы заменой буквы перестановки, которая находится непосредственно под ней в таблице. Этот процесс показан на следующем рисунке. В этом примере выбранная перестановка — это K, D, G, …, O. Точка открытого текста «зашифрована» в «MJBXZ».

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

Простой Подстановочный Шифр

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

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

Значение безопасности

Simple Substitution Cipher — это значительное улучшение по сравнению с Cesar Cipher. Возможное количество ключей велико (26!), И даже современные вычислительные системы еще недостаточно мощны, чтобы удобно начать атаку методом взлома, чтобы взломать систему. Тем не менее, Simple Substitution Cipher имеет простую конструкцию и подвержен ошибкам проектирования, скажем, при выборе очевидной перестановки эта криптосистема может быть легко взломана.

Моноалфавитный и Полиалфабетический Шифр

Моноалфавитный шифр — это шифр замещения, в котором для данного ключа алфавит шифра для каждого простого алфавита фиксируется на протяжении всего процесса шифрования. Например, если «A» зашифровано как «D», для любого числа вхождений в этом открытом тексте «A» всегда будет зашифровано до «D».

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

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

Playfair Cipher

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

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

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

Таблица ключей

Процесс Playfair Cipher

  • Сначала текстовое сообщение разбивается на пары из двух букв (орграфов). Если есть нечетное количество букв, Z добавляется к последней букве. Допустим, мы хотим зашифровать сообщение «спрятать деньги». Это будет записано как —

    HI DE MO NE YZ

  • Правила шифрования —

    • Если обе буквы находятся в одном и том же столбце, возьмите букву ниже каждой (возвращаясь к началу, если внизу)

  • T U О р я «H» и «I» находятся в одном столбце, поэтому для их замены используйте букву ниже. HI → QC
    L S В С
    D Е F г ЧАС
    К M N п Q
    В W Икс Y Z

Сначала текстовое сообщение разбивается на пары из двух букв (орграфов). Если есть нечетное количество букв, Z добавляется к последней букве. Допустим, мы хотим зашифровать сообщение «спрятать деньги». Это будет записано как —

HI DE MO NE YZ

Правила шифрования —

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

  • Если обе буквы находятся в одном ряду, возьмите букву справа от каждой из них (возвращаясь влево, если в крайнем правом углу)

  • T U О р я «D» и «E» находятся в одном ряду, поэтому для их замены необходимо взять буквы справа от них. DE → EF
    L S В С
    D Е F г ЧАС
    К M N п Q
    В W Икс Y Z

Если обе буквы находятся в одном ряду, возьмите букву справа от каждой из них (возвращаясь влево, если в крайнем правом углу)

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

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

Playfair Cipher

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

КК EF NU MF ZV

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

Значение безопасности

Он также является шифром замещения и его трудно взломать по сравнению с простым шифром замещения. Как и в случае замещающего шифра, криптоанализ возможен и на шифре Playfair, однако он будет против 625 возможных пар букв (25×25 алфавитов) вместо 26 различных возможных алфавитов.

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

Vigenere Cipher

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

Например, предположим, что ключ «точка». Каждый алфавит ключа преобразуется в соответствующее ему числовое значение: в этом случае

p → 16, o → 15, i → 9, n → 14 и t → 20.

Таким образом, ключ: 16 15 9 14 20.

Процесс Vigenere Cipher

  • Отправитель и получатель выбирают ключ. Скажите «точка» является ключом. Числовое представление этого ключа: «16 15 9 14 20».

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

Отправитель и получатель выбирают ключ. Скажите «точка» является ключом. Числовое представление этого ключа: «16 15 9 14 20».

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

Vigenere Cipher

  • Теперь он сдвигает каждый открытый текст на число, написанное под ним, чтобы создать зашифрованный текст, как показано ниже —

Теперь он сдвигает каждый открытый текст на число, написанное под ним, чтобы создать зашифрованный текст, как показано ниже —

Создать зашифрованный текст

  • Здесь каждый символ открытого текста был сдвинут на разную величину — и эта сумма определяется ключом. Ключ должен быть меньше или равен размеру сообщения.

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

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

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

Зашифрованный текст в обратном порядке

Значение безопасности

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

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

Варианты Vigenere Cipher

Есть два особых случая шифра Vigenere —

  • Длина ключевого слова такая же, как и у открытого сообщения. Этот случай называется Vernam Cipher . Это более безопасно, чем типичный шифр Vigenere.

  • Vigenere шифр становится криптосистемой с совершенной секретностью, которая называется One-time pad .

Длина ключевого слова такая же, как и у открытого сообщения. Этот случай называется Vernam Cipher . Это более безопасно, чем типичный шифр Vigenere.

Vigenere шифр становится криптосистемой с совершенной секретностью, которая называется One-time pad .

Одноразовый блокнот

Обстоятельства:

  • Длина ключевого слова равна длине открытого текста.
  • Ключевое слово представляет собой случайно сгенерированную строку алфавитов.
  • Ключевое слово используется только один раз.

Значение безопасности

Давайте сравним шифр Shift с одноразовой накладкой.

Shift Cipher — легко взломать

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

Одноразовый блокнот — невозможно сломать

Допустим, мы шифруем имя «точка» одноразовым блокнотом. Это текст из 5 букв. Чтобы разбить зашифрованный текст грубой силой, вам нужно попробовать все возможности ключей и провести вычисления для (26 x 26 x 26 x 26 x 26) = 26 5 = 11881376 раз. Это для сообщения с 5 алфавитами. Таким образом, для более длинного сообщения вычисление растет экспоненциально с каждым дополнительным алфавитом. Это делает невозможным в вычислительном отношении взломать шифротекст грубой силой.

Шифр транспонирования

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

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

Например, открытым текстом является «золотая статуя в одиннадцатой пещере», а выбранный секретный случайный ключ — «пять». Мы размещаем этот текст горизонтально в таблице с номером столбца, равным значению ключа. Полученный текст показан ниже.

Шифр транспонирования

Зашифрованный текст получается путем чтения столбца вертикально вниз от первого до последнего столбца. Зашифрованный текст — «gnuneaoseenvltiltedasehetivc».

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

Затем получатель записывает полученный зашифрованный текст вертикально вниз и слева направо. Чтобы получить текст, он читает по горизонтали слева направо и сверху вниз.