Программно-методическое обеспечение криптостойкости
Передачи сообщений по каналам связи
Стариков Дмитрий Дмитриевич
Московский Авиационный Институт
(Государственный Технический Университет),
Студент, e-mail: puppy-chihulia@mail.ru
Аннотация
Описывается программа, позволяющая вести базу данных пользователей и пересылать криптостойкие сообщения в сети Интернет при помощи разработанных автором криптографических алгоритмов и программ, позволяющих выполнять их на ЭВМ.
Ключевые слова: криптография, криптостойкость, каналы связи, хеширование.
Ensuring the reliability of communication
Starikov Dmitriy Dmitrievich
Moscow Aviation Institute (State Technical University)
Student, e-mail: puppy-chihulia@mail.ru
Abstract
We describe a program that allows users to maintain a database and send cryptographically Internet-messages using developed by the author of cryptographic algorithms and programs to implement them on a computer.
Key words:cryptography, cryptographic strength, communication channels, hashing.
Введение
С древних времен люди стремились скрыть истинную суть передаваемых ими сообщений. Пройдя через века, цели людей не изменились: все также остаются те, кто хотят скрыть свою информацию от посторонних глаз, и те, кто хочет эту информацию раскрыть с определенными целями.
Цель работы — разработка криптостойкого алгоритма шифрования, а также предоставление пользователю возможности удобного использования алгоритма в программе. В своей работе я хочу показать, что повседневное шифрование становится неотъемлемой частью современной жизни, если нам необходима конфиденциальность.
В работе показан механизм алгоритма шифрования, приведены таблицы, в которых алгоритм сравнивается с некоторыми другими криптоалгоритмами, создано специальное программное обеспечение, что дает возможность эффективно применять данный метод в различных областях
Алгоритм
Схема алгоритма шифрования
1) Формируется одномерный массив (256 ячеек)
2) Исходное сообщение переводится в «транслит» (чтобы использовались только ASCII-коды в пределах 0..255)
Рисунок 1. Кодовая таблица ASCII
3) Далее происходит обход текста, похожий на метод Хаффмана.
Одномерный массив заполняется значениями, равными количеству обнаруженных букв в тексте.
После этого находится максимальный элемент и ему присваивается 0, второму – 1, третьему 10, четвертому – 11 и т.д.
Такой метод экономичнее метода Хаффмана и метода Фано.
Например:
Есть текст. Его длина равна 1000 букв, половина из которых A, четверть B, восьмая часть C и D.
Таблица 1. Кодирование текста методом Фано
A | 0.5 | |||
B | 0.25 | |||
C | 0.125 | |||
D | 0.125 |
Итого, длина сообщения после кодирования будет:
1000 * ( 0.5 * 1 + 2 * 0.25 + 3 * 2 * 0.125) = 1750 букв
Таблица 2. Кодирование текста моим методом
A | 0.5 | |
B | 0.25 | |
C | 0.125 | |
D | 0.125 |
То есть самому часто используемому символу присваивается минимальное двоичное число, а, соответственно, самому редко используемому присваивается двоичное число, равное в десятичной системе счисления количеству используемых букв.
Итого, длина сообщения после кодирования будет:
1000 * ( 0.5 * 1 + 1 * 0.25 + 2 * 2 * 0.125) = 1250 букв
Значит данный тип кодирования экономичнее метода Фано в 1,4 раза.
4) После этого этапа формируется заголовок, по формуле:
(Номер_буквы_по_ASCII)2.Код_по_методу_кодирования.
5) После этого каждая буква сообщения шифруется по формуле:
Hash(A-key + «.» + Код + «.» + (i*i + 5*i - 6)), что делает подбор практически невозможным даже на суперкомпьютерах, так как чтобы расшифровать одну букву, не имея ключа, нужно перебрать ~ 100100 вариантов. А при использовании усложненных ключей (со специальными символами и большей длиной) количество возможных вариантов может увеличиться в несколько раз.
При этом, разгадав одну букву, не получится сразу выявить все эти буквы в тексте, так как существует динамическая часть (i*i + 5*i - 6), зависящая от номера буквы в сообщении. Таким образом, шифр сообщений «1111223», «2222774», «ААААББВ» будет выглядеть абсолютно одинаково, за исключением заголовка. Изменив кодирование заголовка, можно добиться того, что коды букв не будут раскрыты, даже если кому-либо удастся подобрать букву. Усложнив динамическую часть, можно существенно затруднить расшифровку шифра.
Таким образом, если ввести сообщение «сообщение для отправки» и нажать кнопку «Зашифровать» (ключ FirstKey), то в поле появится шифр:
«1024.1,9409.10,9604.111,9801.1000,10000.1001,10201.11,10816.100,11025.101,11449.1010,11664.1011,12100.1100,12321.0,12544.1101,12769.1110,12996.1111,13225.110,13456.10000,13924.10001,14161.10010,14641.10011;4602c8fbbc9a6ba7306ee41b9570cb3b+b731462a2d21eb3233dda549e7a6b40d+44f132868f3264da8515eef852315d1b+0607dbbd98b1626c8a9b048e12daa5d9+d76f4b949fabd579af32bc00eb7e45f1+1408f6b2044302c4c25e8a4bd07fa552+76ef5b8fd868aa0d78c3081928484c7f+eae55e7f2c79a91c2391596ece1a35e3+97e4c32ad3a38a701327403f9db84b55+e6b4807350d7f55ff83a9c37e012bf6e+a32e14d1e2999741e3c5f415806cbaa2+0c6819b40aa9c183dfeb62628369bddc+dec76e09c388aa08c3d74530903c4d73+4c4b81ef6b3c758241e628e3ade276ca+d355e791791f9d0edd5b2a9de3acf787+a03e343df3047b677203603983aecf4a+04285ec68b76bd28c692878156b5408d+9187a7ca3da66df34025488978be57f2+fbdee4c5a565a5d5f7d2e1241779cb80+0b6706c7c9f71189bc9c19cde8326572+4988142e042551c262445153d4a813be+610f86fcf47270b0cf54d33bd8aa0bc8+91baa45a7f6eda2c5ceb5c688e294bf3+b4e269f1a706663de6297c8d8148171c+2eab33c599405224c27d43988096ba08+d9c949b63a6083016e1ae8ff69b98309+2c7cbf68f1b744ee7911067ea200bc03+15cc485fc60cb303a048dbccca656ee7».
Если же поменять ключ на FirstKey1, то получим:
«1024.1,9409.10,9604.111,9801.1000,10000.1001,10201.11,10816.100,11025.101,11449.1010,11664.1011,12100.1100,12321.0,12544.1101,12769.1110,12996.1111,13225.110,13456.10000,13924.10001,14161.10010,14641.10011;bee20e36df2d5a09f5e05bbd64982551+6a480c79426101ea57ebf244c5ab0e41+4e067cb8af843df8ba2d71e3842d5d2b+ef640098cbb1a547b50af05103a48106+3a9dedb906340d519f0df5477cf98972+6f3edbbf98de4a156bb900957933bbed+17f0f7e08471380c4783fb8b7f06f989+2c5c7d1d53f9978da8658a32318a1917+72e0bd64e2a5bc5ca54b92dbdd37c964+718a1ca6cf76b53212fb5b051a3df240+efa54c0d4d217e624b7fdbe036c9ba98+8e4ab3e93fe5a718d891899e850e413c+fca497c702d0faf2cf8ceb11afc7b76f+d31dbce733229c5702c3c624f4f0f6c7+f2cc806eeff75231d99097c28a99a9e2+6f577812fe615a73880bf78d6c6645ed+20c82ce49099c3f8fc4249316496c9f3+901e73779203c218149d686f1be1ec6d+dd1d86f49733dae8081bdc7eb0a2963b+e86ef22f3983a1987904d8d98ea4b311+a7200ae88e4c4efdb8fa9b7b9a12575d+7f81fc2b72ebe30bb8d2f1df8c32f5ba+3ec60224a82bbadc209fe014496816b3+cc9368b3ead5c513f7b77ee25e4a20a4+5cc72875547d81d173051b2d2ab0de05+5e5d2f5aa890560792dc05dc5a5588f3+835b0f6bc193d02f33f094252ec5a7e3+bae5b2ea8d79a6edc468d2dd6fe1c2a1».
То есть при одинаковых заголовках получили абсолютно разные шифрованные послания.
Программная реализация
При запуске программы, формируется главное окно программы, на котором необходимо ввести логин и пароль, чтобы открыть дополнительные функции.
Изначально установлены значения test:test, которые можно поменять после входа. Также в данном окне можно поменять прозрачность окна (элемент дизайна), посмотреть справку и параметры компьютера.
После ввода пароля откроется поле для вывода результата и поле для ввода сообщения.
Чтобы зашифровать какой – либо текст нужно ввести в поле типа Edit в верхней части формы и нажать кнопку «Зашифровать». После этого в поле снизу появится зашифрованное послание. Для его расшифровки нужно, не меняя ничего в нижнем поле, нажать кнопку «Расшифровать». После этого действия выведется результат шифрования (при условии, что введенный секретный ключ совпадает с ключом шифрования).
На данном окне мы можем видеть шифр сообщения «сообщение для отправки» ключом «FirstKey». И результат расшифровки – первоначальное сообщение.
Нажав в меню «Правка -> Настройки», откроется окно настроек, в котором можно ввести A-key, который должен совпадать с
ключом собеседника, логин и пароль для входа в программу и фон.
Серверная часть, установленная на веб-сервере, позволяет рассылать шифрованные сообщения адресатам.
Рисунок 2.Главное окно программы
Рисунок 3.Главное окно программы после входа
Рисунок 4.Пример шифрования
Рисунок 5.Окно настроек программы
Заключение
Разработана программа TextCryptor для ОС семейства Windows, которая наглядно демонстрирует пользователю работу алгоритма. Как уже говорилось выше, в современной жизни шифрование должно стать обыденной вещью, если мы хотим сохранять конфиденциальность.
Литература
1. Архангельский А.Я. C++ Builder 6. Справочное пособие. Книга 1. Язык C++. -М:Бином-Пресс, 2002.
References
1. Arhangelskiy A. C++ Builder 6. Handbook. Book 1. Language C++. -M: Binom-Press, 2002.
Анализ сценариев сетевых атак в сетях TCP/IP
Лелекова Александра Евгеньевна
Всероссийская государственная налоговая академия
Министерства финансов Российской Федерации,
Студент, e-mail: a.lelekova@mail.ru
Аннотация
Рассматриваются возможные варианты атак на корпоративные сети, построенные на основе наиболее распространенного протокола TCP/IP. Задачу выявления сетевых атак предлагается реализовать с помощью активного воздействия на программу сниффера, основанного на известном факте независимости работы программных модулей, работающих на различных сетевых уровнях модели OSI.
Ключевые слова: сетевая атака, протокол TCP/IP, программа сниффер, модель OSI, ARP-сервер, сервис DHCP, DNS-сервис.
Analysis of network attacks models in TCP/IP networks
Lelekova Aleksandra Evgenevna
The Tax Academy of the Russian Federation,
Student, e-mail: a.lelekova@mail.ru
Abstract
The possible attacks on corporate networks based on the most common TCP/IP protocol is considered. The task of identifying network attacks on the base of the active influence on the sniffer program is offered. Such influence is based on the known fact of independence the software modules running on different network layers of OSI model.
Key words: network attack, TCP/IP protocol, sniffer program, OSI model, ARP-server, service DHCP, DNS-service.
Введение
Жесткая конкуренция между организациями, предприятиями и банками заставляет обеспечить широкий доступ пользователей к своим информационным базам данных, сервисам, услугам и, соответственно, интегрировать свои корпоративные системы в общедоступные глобальные сети.
Стоимость конфиденциальной информации, хранящейся на электронных носителях и передающейся по линиям связи, можно оценить, например, путем подсчета убытков в случае использования ее конкурентами [1]. Очевидно, что размеры таких потерь могут быть соизмеримыми со стоимостью основных фондов предприятия. Нельзя также недооценивать нематериальные потери граждан, предприятий, стран в случае распространения или искажения конфиденциальной информации.