Асимметричные системы шифрования
ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ В МОБИЛЬНЫХ СИСТЕМАХ СВЯЗИ
В силу свободы доступа к радиоэфиру системы беспроводной связи потенциально уязвимы для разного рода злоумышленников в плане как перехвата сообщения с последующим несанкционированным использованием чужой информации, так и попыток обмана сети и абонентов. Поэтому стандарты систем мобильной связи предусматривают различные механизмы защиты интересов законных пользователей и самой сети от подобных действий. К таким механизмам относятся шифрование данных и процедуры аутентификации.
Методы шифрования
Шифрование состоит в преобразовании исходного, открытого текста в криптограмму (шифртекст) по некоторому правилу (алгоритму шифрования) с целью скрыть смысл сообщения. Некоторые параметры этого алгоритма, называемые ключом шифрования, известны только законным абонентам и неизвестны (секретны) для злоумышленников. Законный пользователь легко может осуществить обратное преобразование шифровки в исходный текст, а криптоаналитик, т.е. субъект, пытающийся несанкционированно получить открытый текст, будет вынужден угадывать значение ключа.
В зависимости от степени секретности сведений, содержащихся в сообщении (государственных, военных, коммерческих, личных и т.п.), разрабатываются и используются различные системы шифрования. При их создании учитываются и возможности аналитика как интеллектуальные, так и технические. Ясно, что закрыть информацию от злоумышленника-одиночки проще, чем от другого государства, располагающего возможностью привлекать для раскрытия ключа крупных специалистов и новейшую технику.
Обычно разрабатывают систему шифрования, стойкую по отношению к фрагменту открытого текста. При этом предполагается, что аналитику известны криптограмма, алгоритм шифрования и фрагмент открытого текста, который он может сопоставить с криптограммой. Поэтому стойкость системы шифрования, те. свойство противостоять действиям аналитика по вскрытию исходного текста, определяется трудностью разгадывания ключа.
Для оценки стойкости выдвигаются различные критерии. Наиболее объективный - это сложность (число умножений) существующего алгоритма вскрытия ключа. Если известны только алгоритмы вскрытия экспоненциальной сложности, у которых число операций пропорционально ап, где а - целое, а n - число неизвестных параметров, то считается, что система шифрования обладает совершенной стойкостью. Подобные алгоритмы решения задачи реализуют прямой перебор вариантов. Так как аналитик при любых условиях может воспользоваться подбором параметров (силовой атакой), то нельзя разработать систему, обладающую стойкостью, превышающей совершенную. Другие системы шифрования, для которых известны алгоритмы вскрытия ключа меньшей сложности, - например, полиномиальная (линейная) с числом операций, пропорциональным nа, - считаются системами малой стойкости.
Другой важной характеристикой систем шифрования является быстродействие алгоритмов шифрования и дешифрования при знании ключа.
Множество систем шифрования разделяют на симметричные, одноключевые, и асимметричные, двухключевые, или системы с открытым ключом [47-49].
В классических симметричных системах для шифрования и расшифрования используется один и тот же ключ. В асимметричных системах для получения шифрограммы используется открытый, известный всем (и злоумышленнику) ключ, а для получения по шифровке исходного текста - другой, секретный, известный только законному получателю сообщения. Между этими ключами существует связь, обеспечивающая правильную расшифровку, но не позволяющая определить секретный ключ по открытому. Рассмотрим принципы построения названных систем шифрования.
8.1.1. Симметричные системы шифрования
Структурная схема системы секретной связи показана на рис. 8.1.
На передающей стороне исходный текст X = (Х1, Х2,..., Хп)
с помощью известного алгоритма и секретного ключа
Z = (Z1, Z2,...,Zk) преобразуется в шифрограмму Y =(Y1,Y2,...,Ym). Компоненты этих последовательностей могут быть битами, символами, взятыми из одного или нескольких алфавитов разных объемов. Обычно это биты. На приемной стороне по известным Y' и Z восстанавливается исходный текст X .
Аналитик, перехватив шифрограмму, пытается понять исходный текст или определить ключ шифрования. Кроме того, он может внедрить в систему собственную, фальшивую криптограмму с целью обмана абонента Б. Таким образом, система шифрования должна обеспечить не только секретность связи, но и защиту от несанкционированного изменения, подмены сообщения X. Последняя задача, называемая аутентификацией сообщения или контролем целостности, обсуждается в § 8.2.
Из этой схемы видно, что для оперативной доставки ключа шифрования на приемную сторону должен быть предусмотрен специальный, защищенный канал. Возникает задача распределения ключей шифрования между пользователями или задача управления ключами. При большом числе абонентов, желающих установить секретную связь, распределение ключей становится серьезной проблемой при использовании симметричных систем шифрования. Решение этой задачи и стимулировало разработку асимметричных методов шифрования.
Теория и многовековая практика позволили сформулировать ряд требований к ключам систем шифрования повышенной стойкости. С позиций теории информации наибольшие трудности по вскрытию криптограммы без знания ключа возникают, если в ней отсутствует информация о X, что означает использование преобразований, обеспечивающих статистическую независимость случайных процессов X и Y.
Анализ этого требования приводит к следующим рекомендациям. Конкретное значение ключа должно использоваться только один раз для шифрования одного сообщения. Значения ключа должны выбираться с одинаковой вероятностью 1/L , где I - объем алфавита символов ключа. Длина ключа к должна быть не меньше длины сообщения п.
На практике из-за сложности реализации и стоимости не все перечисленные требования могут быть выполнены. Для построения практических систем шифрования используются принципы рассеяния и перемешивания. Первый требует, чтобы изменение одного символа исходного текста приводило к изменению большого числа символов криптограммы. Второй направлен на поиск преобразований, разрушающих статистические связи
между Y и X
Общий подход к построению практически стойких шифров состоит в многократном применении простых методов шифрования путем подстановки (замены) и перестановки символов исходного текста, а также скремблирования.
Метод подстановки заключается в том, что символ исходного текста заменяется другим, выбранным из этого или другого алфавита по правилу, задаваемому ключом шифрования. Местоположение символа в тексте при этом не изменяется.
При перестановке в соответствии с ключом изменяется порядок следования символов открытого текста. Значение символа при этом сохраняется. Шифры перестановки являются блочными, т.е. исходный текст предварительно разбивается на блоки, в которых и осуществляется заданная ключом перестановка.
Под скремблированием понимается процесс наложения на коды символов открытого текста кодов случайной последовательности чисел, которую называют также гаммой (по названию буквы у греческого алфавита, используемой в математических формулах для обозначения случайного процесса). Гаммирование относится к поточным методам шифрования, когда следующие Друг за другом символы открытого текста последовательно превращаются в символы шифрограммы, что повышает скорость преобразования.
В качестве гаммы широко используются псевдослучайные последовательности (ПСП). Коды символов криптограммы у, есть поразрядная сумма по модулю 2 кодов X, и Z,. Расшифровка производится по правилу: X = Y+Z = X + Z + Z = X , так что на приемной стороне должна генерироваться такая же ПСП и с той же фазой. Стойкость скремблирования определяется параметрами ПСП, главным из которых является период последовательности. На практике используются генераторы ПСП с периодом в несколько недель. Из-за простоты генерации хороших ПСП и высокой скорости шифрования - дешифрования скремблирование предусмотрено многими стандартами мобильной связи (GSM TETRA, IS-95).
Чтобы затруднить аналитику вычисление элементов ПСП при сопоставлении фрагментов открытого текста и шифровки, применяется обратная связь по выходу и шифртексту. На рис. 8.2 поясняется принцип введения обратной связи по шифртексту.
Сначала передается преамбула, в которой содержится информация о параметрах генерируемой ПСП, в том числе и о значении начальной фазы Zoo. По каждым n сформированным символам шифрограммы вычисляется и устанавливается в генераторе новое значение фазы Z0i. Обратная связь делает метод гаммирования чувствительным к искажениям криптограммы. Так, из-за помех в канале связи могут исказиться некоторые принятые символы, что приведет к вычислению ошибочного значения фазы ПСП и затруднит дальнейшую расшифровку. В то же время такое искажение можно объяснить попыткой злоумышленника навязать ложные данные.
Следует отметить, что в отечественном стандарте на шифрование предусмотрено использование подстановок, перестановок и гаммирования.
Распределение ключей в симметричных системах шифрования является серьезной задачей, если число законных пользователей велико. Протокол распределения ключей должен предусматривать запрет на передачу по радиоканалу сеансового ключа и возможность оперативно изменять ключ.
Обычно протокол распределения включает два этапа. При регистрации МС в сети центр аутентификации (ЦА) выделяет ей секретное число К,, которое хранится у нее в стандартном идентификационном модуле (SIM). Второй этап протокола в упрощенном варианте для стандарта GSM показан на рис. 8.3.
При необходимости осуществить секретную связь МС посылает запрос на шифрование. ЦКМС генерирует случайное число RAND (random number), которое передается на МС и используется на обеих сторонах для вычисления единого сеансового ключа Ks по алгоритму А8. Из-за помех в радиоканале возможно искажение RAND, и ключ на МС будет отличаться от вычисленного ЦКМС. Для проверки идентичности ключей служит числовая последовательность ключа (ЧПК), являющаяся кодом его хэш-функции (см. § 8.2). Любые изменения ключа Ks с большой вероятностью приводят к изменению ЧПК, но по ЧПК трудно определить значение Ks. Поэтому перехват ЧПК в радиоканале не снижает стойкости шифра. После подтверждения правильности установки ключей производится поточное шифрование данных по алгоритму А5.
В системах мобильной связи общего пользования для шифрования используются алгоритмы, предусмотренные соответствующими спецификациями (стандартный уровень секретности). В корпоративных системах допускается использование своих, оригинальных шифров (повышенный уровень секретности).
Асимметричные системы шифрования
В асимметричных системах шифрования каждый абонент имеет два связанных между собой ключа: открытый и секретный. При необходимости установления секретной связи абоненты обмениваются открытыми ключами по незащищенным каналам, и, следовательно, открытые ключи могут быть известны всем пользователям (и злоумышленнику). Секретный ключ хранится абонентом в тайне. Определение секретного ключа по открытому практически невозможно, так как требует несоизмеримых с ценностью получаемой информации вычислительных затрат.
Любой абонент может послать шифрованное сообщение другому абоненту, используя его открытый ключ. Вскрыть такое сообщение может только адресат по своему секретному ключу. Таким образом, отпадает необходимость в распределении ключей шифрования между абонентами.
Предложено много асимметричных систем шифрования (RSA, ранцевая система, Эль-Гамаля, Мак-Элиса и др.), основанных на использовании односторонних или однонаправленных функций. Функция Y = f(X) называется односторонней, если для вычисления У по X существует алгоритм полиномиальной сложности, а для определения X по У известны только алгоритмы экспоненциальной сложности. Иначе, найти У по X легко, а Х по У трудно.
Строгого доказательства, что данная функция является односторонней, не существует, так как прогресс в математике может привести в будущем к получению решения приемлемой сложности для задач, ранее считавшихся трудноразрешимыми. Известны многие функции, претендующие на звание односторонних.
Ярким представителем этого множества является показательная функция в кольце вычетов по некоторому модулю (8.1)
где а, n - известные натуральные числа.
Поясним ее однонаправленность на числовом примере.
Пример 8.1. Пусть для простоты n = 10000 , X = 4101. Число X представим в двоичной позиционной системе счисления
4101 = 212+22+20.
Тогда
У3 У2 У1 У0 –остаток от деления а4101 на 10000.
Видно, что для вычисления У потребовалось всего 16 умножений и делений, которые при выбранном модуле сводятся просто к удержанию 4 младших разрядов результатов возведения в квадрат.
Обратная задача - вычисление дискретного логарифма -практически неразрешима. Действительно, если, например, У = 5678 , то сравнение (8.2) иначе записывается как равенство ах =**...*5678 , где символ * обозначает неизвестную десятичную цифру. Значения этих неизвестных цифр можно восстановить лишь одновременно со значением X, перебрав все варианты последнего, количество которых зависит от используемой разрядности чисел. При разрядности в 100 - 300 десятичных цифр подобный перебор на самых мощных ЭВМ занял бы время, не выражаемое даже геологическими эпохами.
Однако функция (8.1) "в одиночку" для целей шифрования непригодна, так как законный получатель, определяя исходный текст X по шифрограмме Y, будет испытывать те же трудности, что и криптоаналитик. Поэтому для законного абонента вводится лазейка (потайной ход), использование которой приводит к резкому снижению затрат на вычисление обратной функции.
Односторонней функцией с лазейкой называется функция Y= /z(X), обладающая следующими свойствами:
• для вычисления У по X существует алгоритм полиномиальной сложности;
• для вычисления Х по Упри известном Zтакже существует алгоритм полиномиальной сложности;
• для вычисления X по У при неизвестном Z существует только алгоритм экспоненциальной сложности.
Из определения видно, что Z играет роль секретного ключа, находящегося у законного получателя шифрограммы. Отсюда ясен механизм создания шифров с открытым ключом. Для трудноразрешимой задачи формулируются условия, знание которых позволяет создать алгоритм ее решения полиномиальной сложности. Эти условия и составляют секрет законного пользователя.
В качестве примера рассмотрим асимметричную систему шифрования RSA (Ривест, Шамир, Адлеман). В ее основу положена трудноразрешимая задача разложения (факторизации) большого числа на простые множители. Сложность факторизации числа иллюстрирует следующий факт. Для разложения числа, содержащего около 130 десятичных цифр, потребовалась работа 1600 ЭВМ в течение 8 месяцев.
Пусть n = pq , где р и q - простые числа, т.е. не имеющие делителей, кроме 1 и самих себя. Каждый пользователь, выбрав р и q и случайное d, находит соответствующее е как решение сравнения
т.е. получает свои открытый (е,n) и секретный (d,n) ключи. Для криптоаналитика определение d по известному (открытому) е означает факторизацию л, сложность которой уже обсуждалась.
Шифрованию открытого текста X предшествует преобразование его по определенному правилу в целое число X (в простейшем виде оно поясняется в примере 8.2). Вычисление криптограммы в адрес данного пользователя производится по формуле
что согласно сказанному ранее не позволяет аналитику получить X по известному У. Адресат же по своему секретному ключу легко находит сначала целое X
а затем по нему восстанавливает исходный текст X, т.е. d является той лазейкой, которой пользуется законный абонент при расшифровке У.
Авторы системы RSA рекомендуют для обеспечения высокой стойкости использовать числа, содержащие около 200 десятичных цифр. Хотя разработаны специальные вычислители, позволяющие быстро возводить числа в большие степени, быстродействие RSA считается низким.
Асимметричные системы шифрования характеризуются высокой теоретической стойкостью. Однако их внедрение сдерживается недоверием со стороны практиков. Как уже указывалось, всегда существует опасность, что успехи математиков приведут к приемлемому по сложности решению задачи, ранее считавшейся трудной. И история шифрования знает такие примеры. Так, для ранцевой системы шифрования, основанной на одностороннем преобразовании У = XTN, где X, N - столбцы целых чисел, был найден алгоритм определения X по У с числом операций меньшим, чем при прямом переборе значений X.
В то же время в асимметричных системах не требуется распределять ключи шифрования. Поэтому считаются перспективными гибридные системы, в которых асимметричная система служит для распределения сеансовых ключей, а шифрование данных выполняется с помощью симметричной системы. Классический протокол распределения ключей, основанный на односторонней функции (8.1), показан в табл. 8.1.
Абоненты случайно и независимо выбирают числа dA и dБ и держат их в секрете. По (8.1) каждый вычисляет свой открытый ключ (еА или еБ) и посылает его другому абоненту.
Из-за односторонности (8.1) по открытым ключам трудно определить секретные. При установлении режима шифрования каждый из абонентов вычисляет сеансовый ключ. Для этого открытый ключ другого абонента возводится в степень, равную своему секретному ключу. Из табл. 8.1 видно, что такие вычисления дают одинаковый результат ZAБ = ZБA, который можно использовать как сеансовый ключ в симметричной системе шифрования. Важно отметить, что распределение ключей произошло без передачи секретных параметров по каналу связи.