Существует единственный абсолютно надежный шифр ( то есть в принципе не раскрываемый, даже при использовании неограниченных вычислительных возможностей ), применяемый на практике. Это – одноразовая система шифрования, изобретенная в 1917 г. американцами Дж. Моборном и Г. Вернамом. Теоретическое доказательство существования и единственности абсолютно стойкого шифра было осуществлено К. Э. Шенноном в середине 40-х годов ХХ века [1]. Идеальные криптосистемы должны удовлетворять следующим требованиям: 1) полная случайность (равновероятность) ключа; 2) длина ключа должна быть не меньше, чем длина открытого текста (сообщения); 3) однократность использования ключа. Эти требования препятствуют широкому распространению абсолютно надежных криптосистем.
Наиболее близкими к идеальным криптосистемам, по структуре и принципам построения, являются реальные системы потокового шифрования, обеспечивающие, с высокой скоростью, защиту огромных массивов данных, а также, практически в режиме реального времени, шифрование или расшифрование информации, циркулирующей в современных вычислительных сетях. Под потоковым шифрованием понимается последовательное выполнение криптографических преобразований над элементами открытого текста [2]. К преимуществам потокового шифрования относятся: отсутствие размножения ошибок; простота реализации; высокая скорость шифрования; защита от вставок и изъятия части шифрованного текста из потока данных, так как эти действия приведут к нарушению синхронизации. Если используемый канал связи подвержен ошибкам, которые не должны размножаться криптосистемой, то выбору системы потокового шифрования нет альтернативы [3].
В основе криптосхемы потокового шифрования лежит генератор псевдослучайной последовательности, строящийся на базе регистров сдвига. Используемые на практике регистры сдвига характеризуются фиксированной структурой, что объясняется их преимущественно аппаратной реализацией. Регистр сдвига, выполненный программным или аппаратно-программным способом, позволяет увеличить мощность ключевой системы, за счет использования секретного алгоритма шифрования [2, 3], и даже увеличить скорость шифрования при условии адаптации регистра сдвига к архитектуре вычислительного устройства. Например, используя непозиционные специализированные вычислительные системы для осуществления криптографических преобразований в конечных полях [4].
Секретность алгоритма шифрования, казалось бы, входит в противоречие с фундаментальным правилом криптоанализа, впервые сформулированным голландцем А. Керкгоффсом еще в XIX веке и заключающимся в том, что стойкость шифра должна определяться только секретностью ключа. Однако, следует иметь в виду, что в этом правиле отражен очень важный принцип технологии защиты информации: защищенность криптосистемы не должна зависеть от секретности чего-либо, что невозможно быстро изменить в случае утечки секретной информации, а современные программные криптографические средства позволяют распространить этот принцип и на скоростной выбор алгоритма шифрования в зависимости от секретного ключа.
Предлагаемый алгоритм относится к классу алгоритмов, обеспечивающих работу синхронных потоковых шифров, но отличается от известных [3] возможностью выбора структуры регистра сдвига и использования не только посимвольного сложения по модулю p (p>2) открытого текста и элементов псевдослучайной последовательности, но и реализации множества других линейных и нелинейных криптографических преобразований, что не только увеличивает криптостойкость системы шифрования, но и разрушает возможность наиболее опасной криптографической атаки на основе известного или специально подобранного открытого текста и соответствующего ему шифрованного текста.
Генератор псевдослучайных чисел реализован в виде многотактного двоичного фильтра, состоящего из линий задержки и сумматора по модулю два, включенных в цепь обратной связи.
Данной схеме генератора соответствует характеристический многочлен: 6+5+1. Этот многочлен является примитивным, и порядок этого многочлена равен: N=26 – 1.
В силу этих свойств генератор формирует псевдослучайную последовательность чисел максимальной длины N=63 при любом (кроме нулевого) начальном заполнении линий задержек.
Для выбранного примитивного многочлена структурная схема регистра сдвига с обратной связью будет иметь вид, представленный на рис.1:
Рис. 1. Структурная схема линейного регистра сдвига
Двоичные числа снимаются с 1, 2, 3, 4 и 5 разряда регистра сдвига (блоки 1, 2, 3, 4, 5) и на каждом такте работы регистра сдвига с набором сопоставляется двоичный вектор (число):=24*5+23*4+22*3+2*2+1; последовательность двоичных чисел в процессе работы регистра рассматриваем как последовательность чисел (символов). Аналогично получаем последовательность чисел :=24*1+23*2+22*4+2*5+6;
Сформированные псевдослучайные последовательности символов конечного поля и в виде двоичных векторов преобразуют поступающий поток данных в зашифрованное сообщение в соответствии с выбранным криптографическим преобразованием в конечном поле F31.
Обозначим ={9 9 9 9 9 9 9 9 9 9} – поток открытого текста; – соответствующий поток шифрованного текста; =31 – характеристика простого конечного поля ; – число, взаимно простое с функцией Эйлера , используемое в качестве дополнительного секретного ключа ; и – псевдослучайные последовательности в формате поля , формируемые при съеме информации с определенных отводов линейного регистра сдвига; и – сопряженные псевдослучайные последовательности (т.е.обратные для конечного поля); – функция Эйлера числа , тогда шифрование / расшифрование осуществляется одним из следующих способов:
1) |
2) ^ – операция возведения в степень; |
Второй способ реализует возможность использования принципов асимметричной криптографии при поточном шифровании информации. Здесь, за счет секретности алгоритма и дополнительного ключа , криптоаналитику потребуется решение трудновычислимой задачи дискретного логарифмирования даже при известной паре: открытый текст – шифрованный текст.
В таблицах 1 – 5 представлены результаты вычислительного эксперимента, подтверждающие корректность преобразований, соответствующих способам шифрования / расшифрования 1) и 2).
Таблица 1
1 |
2 |
3 |
4 |
5 |
6 |
|||
1 |
0 |
0 |
0 |
1 |
1 |
1 |
24 |
7 |
2 |
0 |
0 |
0 |
0 |
1 |
1 |
16 |
3 |
3 |
0 |
0 |
0 |
0 |
0 |
1 |
30 |
1 |
4 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
16 |
5 |
0 |
1 |
0 |
0 |
0 |
0 |
2 |
8 |
6 |
0 |
0 |
1 |
0 |
0 |
0 |
4 |
30 |
7 |
0 |
0 |
0 |
1 |
0 |
0 |
8 |
4 |
8 |
0 |
0 |
0 |
0 |
1 |
0 |
16 |
2 |
9 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
17 |
10 |
1 |
1 |
0 |
0 |
0 |
0 |
3 |
24 |
Таблица 2
9 |
9 |
9 |
9 |
9 |
9 |
9 |
9 |
9 |
9 |
|
24 |
16 |
30 |
1 |
2 |
4 |
8 |
16 |
1 |
3 |
|
7 |
3 |
1 |
16 |
8 |
30 |
4 |
2 |
17 |
24 |
|
6 |
23 |
23 |
25 |
26 |
4 |
14 |
22 |
26 |
20 |
Таблица 3
6 |
23 |
23 |
25 |
26 |
4 |
14 |
22 |
26 |
20 |
|
22 |
2 |
30 |
1 |
16 |
8 |
4 |
2 |
1 |
21 |
|
24 |
28 |
30 |
15 |
23 |
1 |
27 |
29 |
14 |
7 |
|
9 |
9 |
9 |
9 |
9 |
9 |
9 |
9 |
9 |
9 |
Таблица 4
9 |
9 |
9 |
9 |
9 |
9 |
9 |
9 |
9 |
9 |
|
24 |
16 |
30 |
1 |
2 |
4 |
8 |
16 |
1 |
3 |
|
7 |
7 |
7 |
7 |
7 |
7 |
7 |
7 |
7 |
7 |
|
3 |
26 |
9 |
11 |
12 |
14 |
18 |
26 |
11 |
13 |
Таблица 5
3 |
26 |
9 |
11 |
12 |
14 |
18 |
26 |
11 |
13 |
|
7 |
15 |
1 |
30 |
29 |
27 |
23 |
15 |
30 |
28 |
|
13 |
13 |
13 |
13 |
13 |
13 |
13 |
13 |
13 |
13 |
|
9 |
9 |
9 |
9 |
9 |
9 |
9 |
9 |
9 |
9 |
Библиографический список
Шеннон К. Э. Работы по теории информации и кибернетике / К. Э. Шеннон. − М.: Издательство иностранной литературы, 1963. − 694 с.
Молдовян А. А. Криптография / А. А. Молдовян, Н. А. Молдовян, Б. Я. Советов − Серия «Учебники для вузов. Специальная литература». − СПб.: Издательство «Лань», 2000. − 224 с.
Баричев С. Г. Основы современной криптографии / С. Г. Баричев, В. В. Гончаров, Р. Е. Серов. − М.: Горячая линия – Телеком, 2001. − 120 с.
Ирхин В. П. Проектирование непозиционных специализированных процессоров. − Воронеж: Издательство Воронежского госуниверситета, 1999. − 136 с.