РЕАЛИЗАЦИЯ АЛГОРИТМА ПОТОЧНОГО ШИФРОВАНИЯ RC4
Мищенко Владимир Игоревич
Студен, Южный Федеральный Университет, г. Таганрог
Шилов Александр Кимович
кандидат технических наук, доцент, Южный Федеральный Университет, г. Таганрог
THE IMPLEMENTATION OF THE ALGORITHM STREAM ENCRYPTION RC4 Mishchenko Vladimir Igorevich, student, Southern Federal University, Taganrog Shilov Alexander Kimovich, candidate of technical Sciences, assistant Professor, Taganrog АННОТАЦИЯ
Рассмотрено понятие поточных шифров, в частности, шифра RC4. Показано его практическая применимость. Данный алгоритм реализован программным методом для надежного шифрования и хранения данных. ABSTRACT
The article discusses the concept of stream ciphers, in particular, cipher RC4. Shown its practical applicability. This algorithm is implemented in software for secure encryption and data storage. Ключевые слова: шифр, ключ, ключевой поток, гамма, блок. Keywords: cipher, key, key stream, gamma, block.
Тенденция развития современных технологий характеризуется постоянным повышением значения информации. В последнее время вырос интерес к вопросам защиты информации. Это связывают с тем, что стали более широко использоваться вычислительные сети, что приводит к тому, что появляются большие возможности для несанкционированного доступа к передаваемой информации. Наиболее эффективными являются криптографические способы защиты информации. Криптография в переводе с древнегреческого означает "тайнопись". Суть ее заключается в том, что последовательность символов (открытый текст) подвергается некоторому преобразованию (в котором используется ключ) и в результате получается закрытый текст, непонятный тому, кто не знает алгоритма шифрования и, конечно, ключа. Даже простое преобразование информации является весьма эффективным средством, дающим возможность скрыть её смысл от большинства неквалифицированных нарушителей. К таким средствам относятся алгоритмы поточного шифрования.
Поточный шифр — это симметричный шифр, в котором каждый символ открытого текста преобразуется в символ шифрованного текста в зависимости не только от используемого ключа, но и от его расположения в потоке открытого текста. Поточный шифр реализует другой подход к симметричному шифрованию, нежели блочные шифры [1].
Поточные шифры на базе сдвиговых регистров активно использовались в годы войны, ещё задолго до появления электроники. Они были просты в проектировании и реализации.
Большую популярность поточным шифрам принесла работа Клода Шеннона, опубликованная в 1949 году, в которой Шеннон доказал абсолютную стойкость шифра Вернама (также известного, как одноразовый блокнот). В шифре Вернама ключ имеет длину, равную длине самого передаваемого сообщения. Ключ используется в качестве гаммы, и если каждый бит ключа выбирается случайно, то вскрыть шифр невозможно (т.к. все возможные открытые тексты будут равновероятны). К настоящему времени создано большое количество алгоритмов поточного шифрования, таких как: A3, A5, A8, MUGI, PIKE, RC4, SEAL, ORION.
RC4 (англ. Rivest Cipher 4 или англ. Ron's Code, также известен как ARCFOUR или ARC4 (англ. Alleged RC4)) — поточный шифр, разработанный в 1987 году Роном Риве-стом для RSA Data Security, Inc. Он широко применяется в различных системах защиты информации в компьютерных сетях (например, в протоколах SSL и TLS, алгоритме безопасности беспроводных сетей WEP и WPA).
Алгоритм RC4, как и любой поточный шифр, строится на основе параметризованного ключом генератора псевдослучайных битов с равномерным распределением. Длина ключа может составлять от 40 до 2048 бит [2].
Основные преимущества шифра — высокая скорость работы и переменный размер ключа. RC4 довольно уязвим, если используются не случайные или связанные ключи, один ключевой поток используется дважды. Эти факторы, а также способ использования могут сделать криптосистему небезопасной.
Поточный шифр RC4 был создан Роном Ривестом из RSA Security в 1987 году. Хотя официально сокращение обозначает Rivest Cipher 4, его часто считают сокращением от Ron's Code.
В течение семи лет шифр являлся коммерческой тайной, и точное описание алгоритма предоставлялось только после подписания соглашения о неразглашении, но в сентябре 1994 года его описание было анонимно отправлено в рассылку Cypherpunks. Вскоре описание RC4 было опубликовано в news-группе sci.crypt. Именно оттуда исходный код попал на множество сайтов в сети Интернет. Опубликованный шифр давал те же шифротексты на выходе, какие давал подлинный RC4. Опубликованный шифр совместим с имеющимися продуктами, использующими RC4, обладатели легальных копий RC4 подтвердили идентичность алгоритмов при различиях в обозначениях и структуре программы.
Поскольку данный алгоритм известен, он более не является коммерческой тайной. Однако, название «RC4» является торговой маркой компании RSA. Поэтому иногда шифр называют «ARCFOUR» или «ARC4» (имея в виду Alleged RC4 — предполагаемый RC4, поскольку RSA официально не опубликовала алгоритм), чтобы избежать возможных претензий со стороны владельца торговой марки.
Алгоритм шифрования RC4 применяется в некоторых широко распространённых стандартах и протоколах шифрования таких, как WEP, WPA и TLS.
Главными факторами, способствовавшими широкому применению RC4, были простота его аппаратной и программной реализации, а также высокая скорость работы алгоритма в обоих случаях.
В США длина ключа, рекомендуемая для использования внутри страны, равна 128 битам, но соглашение, заключённое между Software Publishers Association (SPA) и правительством США, даёт RC4 специальный статус, который означает, что разрешено экспортировать шифры длиной ключа до 40 бит. 56-битные ключи разрешено использовать заграничным отделениям американских компаний.
Ядро алгоритма поточных шифров состоит из генератора гаммы, который выдаёт ключевой поток (гамму).
Функция генерирует последовательность битов foi), которая затем объединяется с открытым текстом посредством суммирования по модулю два.
Расшифровка заключается в регенерации ключевого потока fci) и сложении с шифрограммой по модулю два. В силу свойств суммирования по модулю два на выходе мы получим исходный незашифрованный текст (
RC4 — фактически класс алгоритмов, определяемых размером блока (в дальнейшем S-блока). Параметр n является размером слова для алгоритма и определяет длину S-блока. Обычно, n = 8, но в целях анализа можно уменьшить его. Однако для повышения безопасности необходимо увеличить эту величину. В алгоритме нет противоречий на увеличение размера S-блока. При увеличении n, допустим, до 16 бит, элементов в S-блоке становится 65536 и соответственно время начальной итерации будет увеличено. Однако, скорость шифрования возрастет.
Внутреннее состояние RC4 представляется в виде массива размером 2n и двух счётчиков. Массив известен как S-блок, и далее будет обозначаться как S. Он всегда содержит перестановку 2n возможных значений слова. Два счётчика обозначены через i и j.
Инициализация RC4 состоит из двух частей:
1.Инициализация S-блока
2.Генерация псевдослучайного слова K
Первая часть также известна как Key-Scheduling Algorithm или KSA. Этот алгоритм использует ключ, который подается на вход пользователем, сохранённый в Key, и имеющий длину L байт. Инициализация начинается с заполнения массива S, далее этот массив перемешивается путем перестановок, определяемых ключом. Так как только одно действие выполняется над S, то должно выполняться утверждение, что S всегда содержит один набор значений, который был дан при первоначальной инициализации (S[i]:= i).
Эта часть алгоритма называется генератором псевдослучайной последовательности (англ. Pseudo-Random Generation Algorithm or PRGA). Генератор ключевого потока RC4 переставляет значения, хранящиеся в S. В одном цикле RC4 определяется одно n-битное слово K из ключевого потока. Псевдокод показан на Рисунке 2. В дальнейшем ключевое слово будет сложено по модулю два с исходным текстом, которое пользователь хочет зашифровать, и получится зашифрованный текст [3].
В рамках учебного курса «Программно-аппаратные средства защиты информации» была разработана программа «RC4 de-encrypter», с помощью которой пользователь может зашифровать, а затем расшифровать как введенные данные, так и данные из файла с расширением^ с помощью алгоритма поточного шифрования RC4. Результат выполнения программы показан на рис. 1.
RC4 de-encrypter
Open File C:AJsers/vovch_000/Desktop/Test.txt
Encrypt Key: 43 Bit 43 Encryption time: 0.014
In cryptography, a mode of operation is an algorithm that uses a block cipher to provide an information service such as confidentiality or authenticity. [1] A block cipher by itself is only suitable for the secure cryptographic transformation (encryption or decryption) of one fixed-length group of bits called a block. A mode of operation describes how to repeatedly apply a cipher's single-block operation to securely transform amounts of data larger than a block. Most modes require a unique binary sequence, often called an initialization vector (IV), for each encryption operation. The IV has to be non-repeating and, for some modes, random as well. The initialization vector is used to ensure distinct ciphertexts are produced even when the same plaintext is encrypted multiple times independently with the same key. 4B 6E 8 65 73 6B 7C 71 66 65 7A 78 73 72 6C 22 34 71 2F 45 66 746F 36 * 7C 70 2B 45 58 61 6C 74 6E 48 62 6C 9 7B 67 2 1 48 7D 2 77 65 68 7D 75 69 66 6E 4E 24 67 75 48 6C 33 50 74 47 7A 3C 45 3B 40 6 6 6A 75 6 4 8 6F 67 63 4E 7D 58 34 5 5 73 2C 65 7F 6 1 62 76 70 6B 7 46 77 5 7C 78 66 68 62 49 64 63 73 77 75 0 57 60 6D 71 67 60 6A 0 77 7E 61 66 38 6 3 52 28 76 4 5 4E4C6B 78 43 6F6B65 45 7E 69 6E7E216D652D657F 74 73 61 48 67 75 61 72 7A 76 38 4B 15 48 26 43 24 6F 79 67 4A 7E 2C 7B 41 57 7E 47 6F 9 68 66 4 75 71 77 6A 4C 69 27 4B 6C 39 6B 63 7A 65 3F 63 7A 70 7E 7A 44 4F 6C 3F 62 62 57 2F 66 42 74 2D 61 72 76 66 66 4F 3F 4 1 73 7B 53 71 4C 4D 77 64 67 4F 61 65 35 78 5 5 6 5 4B 7C 74 70 6 3 7D 63 52 60 4D 6 3 20 3B 61 6F 7E 6B 6B 7E 7B IB 4F 60 35 66 5A 2E 79 4C 40 6B 7E 7A 57 6C 77 72 0 35 6A 7C 2F 4B 7D 73 24 7E 79 7A 7E 66 26 66 64 7E 76 77 73 2A 75 70 49 6C7F 29 6 7 7B9784C6D 6 3 28 6B 46 764D 7A 76 32 40 4 68 60 7A 77 7D 21 5 48 3B 48 45 68 60 A 70 73 2D 69 51 7C 7161 51 7F 4B 4E 23 71 78 60 76 77 4A 45 6E 6E 36 4D 7E 57 35 5E 6 5 26 6 5 6C 77 62 7C 53 7A 78 46 7D 27 77 61 50 4E 66 3A 6A 2F 68 76 74 77 7D 7F 30 78 3A 64 70 6A 6F 69 40 2C 79 6 5 6 5 40 6 2 39 71 6F 6F «
Decrypt Key: 43 | Bits: [43 Decryption time: 0.008
4B 6E 8 65 73 6B 7C 71 66 65 7A 78 73 72 6C 22 34 71 2F 45 66 74 6F 36 Л 7C 70 2B 45 58 61 6C 746E 48 6 2 6C 9 7B 67 2 1 48 7D 2 7765 68 7D 75 69 66 6E 4E 24 67 75 48 6C 33 50 74 47 7A 3C 45 3B 40 66 6A 75 64 8 6F 67 63 4E 7D 58 34 5 5 73 2C 65 7F 61 62 76 70 6B 7 46 77 5 7C 78 66 6B 62 49 64 63 73 77 75 0 57 60 6D 7167 60 6A 0 77 7E 61 66 38 63 52 28 76 4 5 4E 4C 6B 78 43 6F 6B 65 45 7E 69 6E 7E 21 6D 65 2D 65 7F 74 73 61 48 67 75 61 72 7A 76 38 4B 15 48 26 43 246F 79 67 4A 7E 2C 7B 41 57 7E 47 6F 9 68 66 4 75 71 77 6A 4C 69 27 4B 6C 39 6B 63 7A 65 3F 63 7A 70 7E 7A 44 4F 6C 3F 62 62 57 2F 66 42 74 2D 61 72 76 66 66 4F 3F 41 73 7B 53 71 4C 40 776467 4F 61 65 35 78 55 6 5 46 7C 74 70 63 7D 63 52 60 4D 6 3 20 ЗБ 616F 7C 6B 6B 7E 7B 7B 4F 60 35 66 5A 2E 79 4C 40 6B 7E 7A 57 6C 77 72 0 35 6A 7C 2F 4B 7D 73 24 7E 79 7A 7E 66 26 66 64 7E 76 77 73 2A 75 70 49 6C 7F 29 6 7 7B 9 78 4C 6D 6 3 28 6B 46 76 4D 7A 76 32 40 46B 60 7A 77 7D 2 1 5 48 3B 48 45 68 60 A 70 73 2D 69 51 7C 7161 51 7F 4B 4E 23 71 78 60 76 77 4A 45 6E 6E 36 4D 7E 57 35 5E 65 26 65 6C 77 62 7C 53 7A 78 46 7D 27 77 61 50 4E 66 ЗА 6A 2F 68 76 74 77 7D 7F 30 78 ЗА 64 7D 6A 6F 69 40 2C 79 6 5 6 5 40 62 39 71 6F 6F v In cryptography, a mode of operation is an algorithm that uses a block cipher to provide an information service such as confidentiality or authenticity. [1] A block cipher by itself is only suitable for the secure cryptographic transformation (encryption or decryption) of one fixed-length group of bits called a block. A mode of operation describes how to repeatedly apply a cipher's single-block operation to securely transform amounts of data larger than a block. Most modes require a unique binary sequence, often called an initialization vector (IV), for each encryption operation. The IV has to be non-repeating and, for some modes, random as well. The initialization vector is used to ensure distinct ciphertexts are produced even when the same plaintext is encrypted multiple times independently with the same key.
Quit
Рисунок 1. Шифрование и дешифрование данных
В данный момент в алгоритме RC4 не обнаружено каких бы то ни было слабых мест. Помимо высокой устойчивости к криптоанализу, этот алгоритм очень быстр и может использоваться для генерации ключевой последовательности при потоковом шифровании.
Список литературы 1. Брюс Шнайер. Прикладная криптография. — СПб.: БХВ-Петербург, 2009. — С. 610.
2. Н. Смарт. Криптография. — М.: Техносфера, 2005. — С. 528.
3. С. Панасенко. Алгоритмы шифрования. — СПб.: БХВ-Петербург, 2009. — С. 576.
4. Н.А. Прохоренок. Python 3 и PyQT. Разработка приложений. — СПб.: БХВ-Петербург, 2012. — С. 704.
СИСТЕМА ЗАЩИТЫ РАДИОКАНАЛОВ БПЛА ОТ НЕСАНКЦИОНИРОВАННОГО
ВМЕШАТЕЛЬСТВА
Навроцкий Денис Александрович
аспирант, ассистент. Национальный авиационный университет, г. Киев
SYSTEMS OF PROTECTION UAVS COMMUNICATION CHANNELS AGAINST ILLEGAL INTRUSION Navrotskyi Denys, postgraduate, assistant, National Aviation University, Kyiv
АННОТАЦИЯ
В статье представлена информация об эффективной криптографической защите радиоканала связи «Земля - БПЛА - Земля». Рассмотрены основные угрозы для БПЛА и несанкционированные методы вмешательства в канал связи БПЛА. Предложено решение защиты командно-телеметрической информации БПЛА. Показан способ и аппаратно-программная реализация «навесной» защиты с помощью разработанного шифратора. Полученные результаты позволяют увеличить эффективность работы систем защиты информации БПЛА и создают предпосылки для дальнейших исследований.
ABSTRACT
The article provides information on effective cryptographic protection of radio communication «Ground - UAV - Ground». The main threats to UAVs and illegal intrusion methods in communication channel are considered. A suggested approach to protect UAVs control telemetry data. The way and hardware-software implementation of «on-board» UAVs protection using the developed encoder is shown. The obtained results can improve the efficiency of UAVs information security systems and create the basis for further researches.
Ключевые слова: защита информации, криптография, БПЛА.
Keywords: information security, cryptography, UAV.
Вступление
Рынок БПЛА достаточно разнообразен по своему ассортименту, ценам и доступности. Сейчас собрать многофункциональный беспилотник можно уже домашних условиях. Если военные дорогие БПЛА (которые не доступны рядовому пользователю) оснащены надежными системами защиты, то у «бюджетных» БПЛА эта защита достаточно часто отсутствует. В это же время достаточно распространено явление, когда именно дешёвые беспи-лотники используются для ответственных задач, таких как наблюдение за местностью или доставкой груза и др. Иногда готовые БПЛА могут запрещать для продажи, но отдельные детали представлены в широком ассортименте на рынке, их может купить кто угодно и самостоятельно собрать или модифицировать нужный беспилотник.
Поскольку модельный ряд «бюджетных» и самостоятельно сделанных БПЛА достаточно велик, то возникает вопрос о создании универсальной системе защиты, которую можно адаптировать под разные модели и которая бы не влияла на функционирование беспилотника. У пользователя обычно нет возможности вносить изменения в прошивку микроконтроллера (МК), которая управляет БПЛА, поэтому решение проблемы защиты только программным путём усложняется закрытостью кода. Раз-
работка требует аппаратно-программной реализации, которая присоединяется к аппаратуре беспилотника, не влияя на её функционирование («навесная» защита).
Последние исследования и публикации
Идея была взята из программирования, где используется защита «навесного» типа (протектор) для защиты программ, в которых не предусмотрена защита [1,2]. Подобная система была недавно разработана Intel и называется Data Protection Technology for Transactions, она представляет собой в области решения для сквозного шифрования пользовательских и финансовых данных [3]. Также к вниманию следует взять израильскую разработку защиты БПЛА SPS-65V5 (см. Рис.1), которая была продемонстрирована на парижской авиационной выставке (Paris Air Show 2013) фирмами Elbit System EW i Sigint - Elisra's («Elisra»), как система самозащиты при радиоэлектронной борьбе (a self protection Electronic Warfare system) [4].
Формулирование целей статьи (постановка задания)
Исследовать защищенность канала связи БПЛА. Разработать криптографическую систему защиты БПЛА. Продемонстрировать основные узлы и способы подключения шифратора к бортовой и наземной аппаратуре. Дать объяснение по аппаратно-программной реализации шифратора.