2 Практическая работа. Принципы работы классических алгоритмов шифрования
Скачать 246.73 Kb.
|
Шифрование методом замены (подстановки)Наиболее простой метод шифрования. Символы шифруемого текста заменяются другими символами, взятыми из одного алфавита (одноалфавитная замена) или нескольких алфавитов (многоалфавитная подстановка). Одноалфавитная подстановкаПростейшая подстановка - прямая замена символов шифруемого сообщения другими буквами того же самого или другого алфавита. Примеры таблиц замены: А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я М Л Д О Т В А Ч К Е Ж Х Щ Ф Ц Э Г Б Я Ъ Ш Ы З И Ь Н Ю У П С Р Й А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я Q W E R T Y U I O P [ ] A S D F G H J K L Z X C V B N M < > @ % Стойкость метода простой замены низкая. Зашифрованный текст имеет те же самые статистические характеристики, что и исходный, поэтому зная стандартные частоты появления символов в том языке, на котором написано сообщение, и подбирая по частотам появления символы в зашифрованном сообщении, можно восстановить таблицу замены. Для этого требуется лишь достаточно длинный зашифрованный текст, для того, чтобы получить достоверные оценки частот появления символов. Поэтому простую замену используют лишь в том случае, когда шифруемое сообщение достаточно коротко! Стойкость метода равна 20 - 30, трудоемкость определяется поиском символа в таблице замены. Для снижения трудоемкости при шифровании таблица замены сортируется по шифруемым символам, а для расшифровки формируется таблица дешифрования, которая получается из таблицы замены сортировкой по заменяющим символам. Многоалфавитная одноконтурная обыкновенная подстановкаДля замены символов используются несколько алфавитов, причем смена алфавитов проводится последовательно и циклически: первый символ заменяется на соответствующий символ первого алфавита, второй - из второго алфавита, и т.д. пока не будут исчерпаны все алфавиты. После этого использование алфавитов повторяется. Рассмотрим шифрование с помощью таблицы Вижинера - квадратной матрицы с n2 элементами, где n - число символов используемого алфавита. В первой строке матрицы содержится исходный алфавит, каждая следующая строка получается из предыдущей циклическим сдвигом влево на один символ.
Для шифрования необходимо задать ключ - слово с неповторяющимися символами. Таблицу замены получают следующим образом: строку "Символы шифруемого текста" формируют из первой строки матрицы Вижинера, а строки из раздела "Заменяющие символы" образуются из строк матрицы Вижинера, первые символы которых совпадают с символами ключевого слова. При шифровании и дешифровании нет необходимости держать в памяти всю матрицу Вижинера, поскольку используя свойства циклического сдвига, можно легко вычислить любую строку матрицы по ее номеру и первой строке. При шифровании символы из первой строки заменяются символами остальных строк по правилу a(1,i) -> a(k,i), где k - номер используемой для шифрования строки. Используя свойства циклического сдвига влево элементы k-ой строки можно выразить через элементы первой строки a(1,i+k-1), если i<=n-k+1 a(k,i)= a(1,i-n+k-1), если i>n-k+1 При дешифровании производится обратная замена a(k,i) -> a(1,i). Поэтому необходимо решить следующую задачу: пусть очередной дешифруемый символ в тексте - a(1,j) и для дешифрования используется k-я строка матрицы Вижинера. Необходимо найти в k-ой строке номер элемента, равного a(1,j). Очевидно, a(k,j-k+1), если j>=k a(1,j)= a(k,n-k+j+1), если j Таким образом, при дешифровании по k-ой строке матрицы Вижинера символа из зашифрованного текста, значение которого равно a(1,j), проводится обратная подстановка a(1,j-k+1), если j>=k a(1,j) -> a(1,n-k+j+1), если j Стойкость метода равна стойкости метода подстановки, умноженной на количество используемых при шифровании алфавитов, т.е. на длину ключевого слова и равна 20*L, где L - длина ключевого слова. С целью повышения стойкости шифрования предлагаются следующие усовершенствования таблицы Вижинера: Во всех (кроме первой) строках таблицы буквы располагаются в произвольном порядке. В качестве ключа используются случайные последовательности чисел, которые задают номера используемых строк матрицы Вижинера для шифрования. |