Підвищення криптостійкості та швидкодії алгоритму Blowfish у каналах передачі даних
Використання алгоритму Blowfish з метою передачі інформації каналами зв’язку у межах приватних корпоративних мереж, у глобальній мережі. Вдосконалення алгоритму та його реалізація в вигляді програми, яка є Mapi-клієнтом поштового серверу Exchange.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | украинский |
Дата добавления | 29.01.2019 |
Размер файла | 241,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
С. М. Білан, І. М. Шварц
Размещено на http://www.allbest.ru/
102
Размещено на http://www.allbest.ru/
Підвищення криптостійкості та швидкодії алгоритму Blowfish у каналах передачі даних
Актуальність проблеми захисту інформації пов'язана зі зростанням можливостей обчислювальної техніки. Розвиток засобів, методів і форм автоматизації процесів обробки інформації та масове застосування персональних комп'ютерів роблять інформацію дуже вразливою.
Державна інформація представляє великий інтерес для кримінальних елементів. Сьогодні у керівництва більшості державних організацій немає сумнівів щодо необхідності серйозно піклуватися про інформаційну безпеку (у збереженні державних таємниць, забезпеченні безпеки електронних документів). Застосування сучасних інформаційних технологій у державних системах розширює можливості для різних зловживань, пов'язаних із використанням обчислювальної техніки (так званих комп'ютерних злочинів).
Щорічні втрати від злочинів у цій сфері складають у світі, за різними оцінками, від 170 млн. до 10 млрд. дол. За деякими даними, в промислово розвинених країнах середній збиток від одного комп'ютерного злочину (а значну частку таких злочинів складають зловживання в фінансовій сфері) близький до 450 тис. дол., а щорічні сумарні втрати в США і Західній Європі досягають 100 млрд. і 35 млрд. дол. відповідно [1]. В останні десятиріччя зберігалася стійка тенденція до зростання збитків, пов'язаних з комп'ютерною злочинністю і в Україні.
Для протидії комп'ютерним злочинам або зменшення збитку від них необхідно грамотно вибирати заходи і засоби забезпечення захисту інформації від навмисного руйнування, крадіжки і несанкціонованого доступу. Тому у нашому випадку будемо використовувати блочний шифр із секретним ключем, а саме криптографічний алгоритм Blowfish. Він оптимізований для тих задач, у яких немає частої зміни ключів, таких, як поштовий клієнт, а також є мережею Фейстела (Feistel), у якої кількість ітерацій становить 16. Довжина блоку дорівнює 64 бітам, ключ може мати будь-яку довжину у межах 448 біт [2]. Перед початком будь-якого шифрування виконується складна фаза, і алгоритм складається з двох частин: розширення ключа та шифрування даних. Розширення ключа перетворює ключ довжиною щонайменше 448 біт у кілька масивів підключів загальною довжиною 4168 байт [2].
В основі алгоритму покладено мережу Фейстела (Feistel) з 16 ітераціями. Кожна ітерація складається з перестановки, що залежить від ключа, та підстановки, що залежить від ключа та даних. Операціями є XOR та складання 32-бітних слів. Blowfish використовує велику кількість підключів. Ці ключі повинні бути обчислені заздалегідь, до початку будь-якого шифрування або дешифрування даних. Саме шифрування відбувається достатньо швидко [3].
У даній статті ставиться задача підвищення надійності та швидкості при передачі інформації комп'ютерними мережами з використанням модифікованого криптографічного алгоритму шифрування Blowfish та програмна реалізація цього алгоритму у вигляді Mapi-клієнта поштового сервера.
Данні шифруються на 32-бітових мікропроцесорах, і після ініціалізації у пам'яті розміщуються два масиви, якими шифруються дані.
Алгоритм використовує тільки прості операції: додавання, XOR та вибірку з таблиці по 32-бітному операнду. Аналіз його схеми не складний, що зменшує кількість помилок при реалізації алгоритму.
Довжина ключа є змінною та може досягати 448 біт.
С. М. Білан, І. М. Шварц
Размещено на http://www.allbest.ru/
102
Размещено на http://www.allbest.ru/
Ключ для шифрування створюється за допомогою двох частин: перша - пароль-масив із символів; друга - час, який переводиться в комп'ютерний формат. У результаті отримуємо два 32-бітних числа, що беруть участь в ініціалізації ключа (рис. 1).
Алгоритм оптимізований для тих задач, в яких немає частої зміни ключів, таких, як поштовий клієнт. Данні кодуються по 32 біта, і тому у 32-розрядній системі алгоритм працює дуже швидко, набагато швидше за DES. Він не придатний для використання у задачах з частою зміною ключів, наприклад, при комутації пакетів, чи для використання у якості єдино спрямованої хеш-функції [4].
Ключ є 64-бітним блочним шифром з ключем змінної довжини. Алгоритм складається з двох частин: розгортання ключа та шифрування даних. Розгортання ключа перетворює ключ довжиною до 448 біт у кілька масивів підключів, загальним обсягом 4168 байт.
Шифрування даних базується на простій функції, що виконується послідовно 16 раз. Кожен етап складається з залежної від ключа перестановки та залежної від ключа та даних підстановки. Використовуються тільки додавання та XOR 32-бітових слів. Єдиними додатковими операціями на кожному етапі є чотири вилучення даних з індексованого масиву.
С. М. Білан, І. М. Шварц
Размещено на http://www.allbest.ru/
102
Размещено на http://www.allbest.ru/
1. Р-масив ініціалізується фіксованою строкою (рис. 2).
2. Чотири S-блоки ініціалізуються фіксованою строкою.
3. Виконується операція XOR Р1 з непарними 32 бітами ключа, XOR Р2 з непарними другими 32 бітами ключа та старшою 32-бітною частиною часу, і так далі для всіх бітів ключа (до Р18).
4. Операція 2 виконується циклічно, доки для усього Р-масиву не буде виконана операція XOR з бітами ключа.
5. Використовуючи підключі, отри-мані на етапах 1, 2 і 3 алгоритмом шиф-рування, шифрується значення з часу. P1 і Р2 замінюються цими результатами, а результат шифрування часу шифрується за допомогою алгоритму та змінених підключів.
6. Значення Р3 і Р4 замінюються значеннями, обчисленими у п. 4.
7. Під час процесу усі елементи Р-масиву і потім поступово усі чотири S-блоки замінюються виходом алгоритму, що постійно змінюється.
Підключі зберігаються для кодування чи декодування даних.
Дані повинні бути кратні 4 байтам, тому, якщо ця умова не виконується, додаємо додаткові нульові біти до роз-міру, який кратний чотирьом. Наприк-лад, Р-масив дорівнює 12 байт, або три 32-бітних числа (рис. 3).
У функцію шифрування передаються два 32-бітних числа, обираються спочатку перше і останнє, поступово направляючись до середини:
Рис. 3. Вхідна інформація, або
1,2,3,4,… 20,21,22…38,39,40,41. три 32-бітних числа
Якщо залишається одне число, то воно кодується разом з наступним елементом масиву після нього. Так, у наведеному прикладі, 21 буде кодуватися з 41. При обраній операції ці числа будуть кодуватися першими. Це дає можливість кодувати як парну кількість подвійних слів, так і непарну.
С. М. Білан, І. М. Шварц
Размещено на http://www.allbest.ru/
102
Размещено на http://www.allbest.ru/
Процес кодування двох 32-бітних чисел XL, і XR складається з наступних етапів (рис. 4).
1. Послідуючі операції виконуються у циклі 16 раз.
1.1. xL = xLxR - числа додаються за модулем 2.
Строка коду: «X1 = X1 ^ c->P[i]».
1.2. xR = Func(xL)xR - число xR додається за модулем 2 з F(xL), де F(xL) - це функція, яка виконує наступні дії.
1.2.1. Розділяємо хL на чотири 8-бітних частини: a, b, c, d, що здійснюється зсувом цього числа праворуч на 8 біт (рис. 5).
1.2.2. Функція обчислюється як ((S1,a + S2,b mod 232) S3,c) + S4,d mod 232.
Строка коду: «Xr = Func (c, X1) ^ Xr».
1.3. Переставляємо xL та xr.
Строки коду: «temp = X1; X1 = Xr; Xr = temp».
2. Переставляємо xL та xr: «temp = X1; X1 = Xr; Xr = temp».
3. xR = xR P17 - числа додаються за модулем 2 з елементом ключа P17.
Строки коду: «Xr = Xr ^ c->P[N]».
4. xR = xR P18 - число додається за модулем 2 з елементом ключа P18.
Строки коду: «X1 = X1 ^ c->P [N + 1]».
Ми отримали закодоване повідомлення, а результат в 32-бітних числах.
Рис. 5. Вихідна інформація у 8-бітних значеннях
Дешифрування виконується аналогічно шифруванню, але Р1, Р2,…, P18 використовуються у зворотному порядку.
Даний алгоритм був змодульований програмними засобами Мathcad (рис. 6).
С. М. Білан, І. М. Шварц
Размещено на http://www.allbest.ru/
102
Размещено на http://www.allbest.ru/
Рис. 6. Графік залежності вхідної та вихідної інформації
Як бачимо з графіка, зашифровані дані не мають лінійних властивостей. Це вказує на те, що в даному криптографічному методі не має чітко виражених логічних дій, що в свою чергу, свідчить про криптографічну стійкість цього методу.
Для слабких ключів, які генерують погані S-блоки, додавання двох додаткових 32-бітних ключів (з часу) підвищує захищеність ключа, що підвищує якість шифрування. При невідомих S-блоках ми можемо виявити використання слабкого ключа, але не можемо визначити сам ключ (S-блоки та Р-масив). Тому цей метод ефективний тільки проти варіантів зі зменшеною кількістю етапів та абсолютно недієвий проти 16-етапного.
Підготовка до пересилання даних на поштовий сервер складається з таких етапів:
1) створюється ключ кодування: перший ключ - пароль доступу до пошти, другий - час створення повідомлення;
2) дані, що містяться у повідомленні, шифруються нашим алгоритмом;
3) вкладені дані завантажуються у пам'ять і сереалізуються в архів, у результаті якого отримуємо байтовий масив;
4) байтовий масив шифрується за допомогою алгоритму кодування як 32-бітний (якщо кількість байт у масиві не кратна 4 байтам, то масив розширюється до потрібного розміру);
5) усе повідомлення перетворюється у 7-бітний код за допомогою алгоритму base 64 та відправляється [5];
6) при отриманні перевіряється, кому відправлене кожне повідомлення, воно розшифровується у зворотній послідовності;
7) усі дані у скриньках користувача зберігаються у зашифрованому вигляді.
У даній статті був проаналізований криптографічний метод Blowfish, запропоновано спосіб його вдосконалення, що підвищує загальну криптостійкість системи. Цей метод був впроваджений у поштовій програмі, яка є клієнтом поштового серверу Microsoft Exchange. Розроблена програма дає можливість не тільки обмінюватися секретними даними електронною поштою, використовуючи принципово новий метод їх шифрування, але й введення власних користувачів, як з одного боку мережі, так і з іншого, тобто дає можливість умовного поділу однієї пош-тової скриньки та використання її багатьма користувачами з власними паролями доступу. Основними перевагами запропонованого алгоритму є поліпшена крипостійкість за рахунок створення більш надійного ключа, а також підвищення швидкодії за рахунок шифрування по два 32-бітних числа.
Література
алгоритм мережа програма криптостійкість
1. Организация и современные методы защиты информации. - М.: Концерн «Банковский Деловой центр», 1998. - 465 с.
2. Брюс Шнайер. Прикладная криптография. Протоколы, алгоритмы и исходные тексты на языке С. 2-е издание. - М.: Дело, 2003. - 524 с.
3. Smith J.L. The Design of Lucifer. A Cryptographic Device for Data Communication, RC 3326, White Plains: IBM Research.
4. Горбенко И.Д., Долгов В.И., Рублинецкий В.И. Мифы и реальность // Безопасность информации. - 1996. - №2. - С. 17-25.
5. Biham E. and Shamir A. Differential Cryptanalysis of the Data Encryption Standard. - Springer-Verlag, 1993.
Размещено на Allbest.ru
Подобные документы
Дослідження етапів розробки програмної реалізації криптографічного алгоритму RC5. Опис об'єкту, що потребує захисту: операційне середовище, тип програмного забезпечення. Блок-схема алгоритму функціонування програми криптозахисту. Листінг тесту програми.
курсовая работа [4,4 M], добавлен 28.10.2010Формати прийому та передачі даних через послідовний порт, його технічні характеристики, будова і принцип роботи. Характеристика протоколів послідовної передачі. Способи керування портами у WINDOWS95 та WINDOWS XP. Опис алгоритму і функціонування програми.
дипломная работа [752,6 K], добавлен 09.06.2010Види секретної інформації та методи захисту. Тип і об’єм вхідних даних. Програмна реалізація системи алгоритму шифрування зі стисненням. Призначення та опис програмного продукту Export. Алгоритми захисту зберігання та обміну секретною інформацією.
дипломная работа [1,1 M], добавлен 19.09.2012Поняття комп'ютерної мережі як спільного підключення окремих комп’ютерів до єдиного каналу передачі даних. Сутність мережі однорангової та з виділеним сервером. Топології локальних мереж. Схема взаємодії комп'ютерів. Проблеми передачі даних у мережі.
курсовая работа [605,0 K], добавлен 06.05.2015Опис інтерфейсу паралельного порту Centronics, який має 25-контактний 2-рядний роз'єм DB-25-female. Швидкість передачі даних, фірмові розширення. Розгляд BIOS для LPT-порту. Опис програмного середовища. Приклад виконання програми, блок-схема алгоритму.
курсовая работа [1,2 M], добавлен 23.04.2014Побудова блок-схеми алгоритму проста вставка. Програмна реалізація алгоритму, опис результатів. Особливості обліку ітерації масивів. Відсортування даних за допомогою програми Turbo Pascal. Аналітична оцінка трудомісткості, графічне представлення.
контрольная работа [570,1 K], добавлен 21.05.2014- Розроблення алгоритму і програми а NASM асемблері для додавання / множення чисел з плаваючою крапкою
Розробка алгоритму роботи програми, її загальна характеристика та функціональні особливості, умови ефективного використання. Способи виклику та адреса завантаження, відомості про використання оперативної пам'яті. Посібник системного програміста.
курсовая работа [182,6 K], добавлен 07.06.2016 Створення алгоритму програмної моделі розкладу в учбовому закладі для ефективного вирішення завдань автоматичного складання розкладу, шляхом підбору найбільш оптимальних варіантів. Шляхи реалізації розробленого алгоритму в середовищі Mathemetica 5.0.
дипломная работа [5,0 M], добавлен 25.10.2012Назначение алгоритма "Blowfish", особенности длины ключа и степени криптостойкости. Обоснование программной реализации расширения ключа и сцепления блоков шифра "Blowfish". Проверка использования инициализирующего вектора и распространения ошибок шифра.
курсовая работа [1,3 M], добавлен 30.01.2014Сутність алгоритму розв’язку задачі на оптимізацію конічної передачі. Оптимізація параметрів, підстави до розробки, призначення та вимоги до програмного продукту, вибір моделі його створення. Особливості діаграми прецедентів та умови виконання програми.
курсовая работа [1,6 M], добавлен 12.06.2013