||aij || bj = cj =Saij bj
Если матрицу ||aij || использовать в качестве ключа , а вместо компонента вектора bj подставить символы текста , то компоненты вектора cj будут представлять собой символы зашифрованного текста.
Приведем пример , взяв в качестве ключа квадратную матрицу третьего порядка14 8 3
8 5 2
3 2 1
Заменим буквы алфавита цифрами, соответствующими порядковому номеру в алфавите. Тогда отрывку текста ВАТАЛА соответствует последовательность номеров 3,0,19,0,12,0. По принятому алгоритму шифрования выполним необходимые действия:
14 8 3 3 99 14 8 3 0 968 5 2 * 0 = 62 ; 8 5 2 * 12 = 60
3 2 1 19 28 3 2 1 0 24
При этом зашифрованый текст будет иметь вид:99,62,28,96,60,24.
Расшифрование осуществляетсяс использованием того же правила умножения матрицы на вектор, только в качестве основы берется матрица, обратная той, с помощью которой осуществляется закрытие, а в качестве вектора-самножителя – соответствующие колличество символов закрытого текста; тогда значениями вектора-результата будут цифровые эквиваленты знаков открытого текста. Обратной к данной называется матрица, полущающая из так называемой присоединенной матрицы делением всех ее элементов на определитель данной матрицы. В свою очередь присоединенной называется матрица, составленная из алгеброических дополнений А ,к элементам данной матрицы, которые вычисляются по формуле: Aij = (-1)^i+j Dij ,
где Dij – определитель матрицы, получаемый вычеркиванием i-й ее строки и j-го столбца. Определителем же как известно, называется алгеброическая сумма n! членов (для определения n-ого порядка), составленная следующим образом: членами служат всевозможные произведения n элементов матрицы, взятых по одному в каждой строке и в каждом столбце, причем член суммы берется со знаком ''+'', если его индексы составлят подставку, и со знаком ''-'' - в противоположном случае. Для матрицы третьего порядка, например, определитель вычисляется по следующей формуле:
D=а11а22а33+а12а23а31+а13а21а32-а11а23а32-а12а21а33-а13а22а31.
Тогда процесс раскрытия выглядит так:
1 -2 1 99 1*99-2*62+1*28 3-2 5 -4 * 62 = -2*99+5*62-4*28 = 0
1 -4 6 28 1*99-4*62+6*28 19
1 -2 1 96 1*96-2*60+1*24 02 5 -4 * 60 = -2*96+5*60-4*24 = 12
1 -4 6 24 1*96-4*60+6*24 0
Таким образом, получили следующюю последовательность знаков раскрытого текста:3,0,19,0,12,0, что соответствует исходному тексту. Этот метод шифрования является формальнным , что позволяет легко реализовать его программными средствами.
1.8. Криптосистемы на основе эллиптических уравнений
Эллиптические кривые - математический объект, который может определен над любым полем (конечным, действительным, рациональным или комплексным). В криптографии обычно используются конечные поля. Эллиптическая кривая есть множество точек(x,y), удовлетворяющее следующему уравнению:
y2 = x3 + ax + b,
а также бесконечно удаленная точка. Для точек на кривой довольно легко вводится операция сложения, которая играет ту же роль, что и операция умножения в криптосистемах RSA и Эль-Гамаля.
В реальных криптосистемах на базе эллиптических уравнений используется уравнение
y2 = x3 + ax + bmod p,
где р - простое.
Проблема дискретного логарифма на эллиптической кривой состоит в следующем: дана точка G на эллиптической кривой порядка r (количество точек на кривой) и другая точка Y на этой же кривой. Нужно найти единственную точку x такую, что Y = xG, то есть Y есть х-я степень G.
Как бы ни были сложны и надежны криптографические системы - их слабое мест при практической реализации - проблема распределения ключей. Для того, чтобы был возможен обмен конфиденциальной информацией между двумя субъектами ИС, ключ должен быть сгенерирован одним из них, а затем каким-то образом опять же в конфиденциальном порядке передан другому. То есть , в общем случае для передачи ключа опять же требуется использование какой-то криптосистемы.
Для решения этой проблемы на основе результатов, полученных классической и современной алгеброй, были предложены системы с открытым ключом.
Суть их состоит в том, что каждым адресатом ИС генерируются два ключа, связанные между собой по определенному правилу. Один ключ объявляется открытым, а другой закрытым. Открытый ключ публикуется и доступен любому, кто желает послать сообщение адресату. Секретный ключ сохраняется в тайне.
Исходный текст шифруется открытым ключом адресата и передается ему. Зашифрованный текст в принципе не может быть расшифрован тем же открытым ключом. Дешифрование сообщение возможно только с использованием закрытого ключа, который известен только самому адресату.
Рис.2.1.Реализация процедуры шифрования с открытым ключом.
Криптографические системы с открытым ключом используют так называемые необратимые или односторонние функции, которые обладают следующим свойством: при заданном значении x относительно просто вычислить значение f(x), однако если y=f(x), то нет простого пути для вычисления значения x.
Множество классов необратимых функций и порождает все разнообразие систем с открытым ключом. Однако не всякая необратимая функция годится для использования в реальных ИС.
В самом определении необратимости присутствует неопределенность. Под необратимостью понимается не теоретическая необратимость, а практическая невозможность вычислить обратное значение используя современные вычислительные средства за обозримый интервал времени.
Поэтому чтобы гарантировать надежную защиту информации, к системам с открытым ключом (СОК) предъявляются два важных и очевидных требования:
1. Преобразование исходного текста должно быть необратимым и исключать его восстановление на основе открытого ключа.
2. Определение закрытого ключа на основе открытого также должно быть невозможным на современном технологическом уровне. При этом желательна точная нижняя оценка сложности (количества операций) раскрытия шифра.
Алгоритмы шифрования с открытым ключом получили широкое распространение в современных информационных системах. Так, алгоритм RSA стал мировым стандартом де-факто для открытых систем и рекомендован МККТТ.