Метод DES может быть реализован и программно. В зависимости от быстродейст-
вия и типа процессора персонального компьютера программная система, шифруем дан-
ные с использованием метода
DES, может обрабатывать от нескольких килобайт до де-
сятков кБ данных в секунду. В то же время необходимо отметить, базовый алгоритм все
же рассчитан на реализации электронных устройствах специального назначения.
Алгоритмы криптографического преобразования, являющиеся отечественным стан-
дартом и определяемый ГОСТ 28147–89, свободен от недостатка стандарта
DES и в то же
время обладает всеми его преимуществами. Кроме того, в стандарт уже заложен метод, с
помощью которого можно зафиксировать необнаруженную случайную или умышленную
модификацию зашифрованной информации.
Однако у алгоритма есть очень существенный недостаток, который заключается в
том, что его программная реализация очень сложна и практически лишена всякого смыс-
ла из-за крайне низкого быстродействия. По оценкам, за одну секунду на персональном
компьютере может быть обработано всего лишь несколько десятков (максимально сотен)
байт данных, а подобная производительность вряд ли удовлетворит кого-либо из пользо-
вателей. Хотя сейчас уже разработанные программные средства, реализующие данный
алгоритм криптографического преобразования данных, которые демонстрируют прием-
лемую производительность.
Теперь остановимся на методе
RSA. Он является очень перспективным, поскольку
для зашифрования информации не требует передачи ключа другим пользователям. Это
выгодно отличает его от всех вышеописанных методов криптографической зашиты дан-
ных. Но в настоящее время по этому методу относятся с подозрительностью, поскольку в
ходе дальнейшего развития может быть найден эффективный алгоритм определения де-
лителей целых чисел, в результате чего метод шифрования станет абсолютно не защи-
щенным. Кроме того,
не существует строго доказательства, что не существует другого
способа определения секретного ключа по известному, кроме как определения делителя
целых чисел.
В остальном метод
RSA обладает только достоинствами. К числу этих достоинств
следует отнести очень высокую криптостойкость, довольно простую программную и ап-
паратную реализации. Правда, следует заметить что использование этого метода для
криптографической защиты данных неразрывно связано с очень высоким уровнем разви-
тия техники.
6.4.4. МЕТОДЫ КОДИРОВАНИЯ
Как уже отмечалось, под кодированием понимается замена элементов открытого
текста (букв, слов, фраз и т.п.) кодами. Различают символьное и смысловое кодирование.
При
символьном кодировании каждый знак алфавита открытого текста заменяется
соответствующим символом. Примером символьного кодирования служит азбука Морзе,
а также методы шифрования заменой и перестановкой. Рассмотрим метод символьного
кодирования, который использует предыдущие символы открытого текста. Этот метод,
называемый методом стопки книг, был предложен Б.Я. Рябко.
Предположим, что нужно передать сообщение
X из алфавита А, в котором буквы
алфавита отождествлены с числами 1, 2, …,
L, где L – число элементов алфавита А. Каж-
дой букве алфавита соответствует код
k
i
, 1 = 1…L. При появлении в сообщении X оче-
редной буквы
х
j
ее код представляется кодом номера позиции j, занимаемой в данный
момент буквой
х
j
в списке. Это дает возможность на приемном конце по коду номера по-
зиции
j определить букву х
j
. После кодирования буквы х
j
одновременно на приемном и
передающих концах перемещают букву
х
j
в начало списка, увеличивая тем самым на
единицу номера букв, стоявших на позициях от 1 до
j – 1. Номера букв, стоявших на по-
зициях от
j + 1 до L, остаются без изменений. В результате кодирования открытого текста
в начале списка будут находиться буквы, которые наиболее часто встречались в откры-
том тексте.
Интересный метод кодирования в 1992 г. предложил С.П. Савчук. В отличие от ме-
тода стопки книг перемещению подвергается список кодов. Пусть алфавит
А = {а
1
, а
2
, ...,
а
n
}. Данному порядку расположения букв соответствует начальный список кодов K
0
=
{
k
1
, k
2
, …, k
n
}. При появлении в кодируемом сообщении буквы a
i
в качестве кода выбира-
ется соответствующий ее местоположению код
k
i
. После этого осуществляется сдвиг спи-
ска кодов:
{k
1
, k
2
, ..., k
i
, ..., k
n
} → {k
2
, k
3
, ..., k
n
, k
1
}.
Таким образом, список кодов образует замкнутое кольцо.
Смысловое кодирование – это кодирование, в котором в качестве исходного алфави-
та используются не только отдельные символы (буквы), но и слова и даже наиболее часто
встречающиеся фразы.
Рассмотрим пример одноалфавитного и многоалфавитного смыслового кодирова-
ния.