Забезпечення інформаційної безпеки

Аналіз і характеристика особливостей захисту персональних комп'ютерів. Опис спеціального програмного забезпечення для захищення і шифрування інформації. Розробка комплексного програмного продукту, який реалізує обмін даними за допомогою серверу.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 28.07.2017
Размер файла 91,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

ВСТУП

На сьогодні в інформаційному просторі, швидкими темпами впроваджуються новітні досягнення комп'ютерних і телекомунікаційних технологій. Комп'ютерні cистеми активно впроваджуються у фінансові, промислові, торгові і соціальні сфери. Внаслідок цього різко зріс інтерес широкого кола користувачів до проблем захисту інформації. Захист інформації - це сукупність організаційно-технічних заходів і правових норм для попередження заподіяння збитку інтересам власника інформації. В останні роки з розвитком комерційної і підприємницької діяльності збільшилося число спроб несанкціонованого доступу (НСД) до конфіденційної інформації.

Серед всього спектру методів захисту даних від небажаного доступу особливе місце займають криптографічні методи. Криптографія - наука про математичні методи забезпечення конфіденційності і автентичності інформації. Для сучасної криптографії характерне використання відкритих алгоритмів шифрування, що припускають використання обчислювальних засобів.

Криптографічний захист інформації - вид захисту інформації, що реалізується шляхом перетворення інформації з використанням спеціальних (ключових) даних з метою приховування та відновлення змісту інформації, підтвердження її справжності, цілісності, авторства.

Одним з напрямків захисту інформації в інформаційних системах є технічний захист інформації . У свою чергу, питання технічного захисту інформації розбиваються на два великих класи завдань: захист інформації від несанкціонованого доступу і захисту інформації від витоку технічними каналами. Під несанкціонованим доступом мається на увазі доступ до інформації, що порушує встановлену в інформаційній системі політику розмежування доступу. Під технічними каналами розуміються канали сторонніх електромагнітних випромінювань і наведень, акустичні канали, оптичні канали й ін.

Інформація цінувалася у всі часи. В наші дні вона має велику цінність. Ця цінність може визначатися не тільки кількістю праці витраченої на її створення, але і кількістю прибутку, отриманого від її можливої реалізації. Проблема захисту інформації: надійне забезпечення її збереження і встановлення статусу використовування - є однією з найважливіших проблем сучасності.

Причини втрати і пошкодження інформації можуть бути різними. Найчастіше це зараження вірусами. Сьогодні нікого не здивуєш існуванням комп'ютерних вірусів. Якщо звернутися до історії, то можна побачити, що одним з перших був створений вірус, який розповсюджувався по глобальній мережі, був створений в 1988 році. Його написав аспірант факультету інформатики Корнелльського університету Роберт Моррисан. У перебігу декількох годин 2 листопада 1988 року були заражені більше 6000 комп'ютерів. Подібні програми створюються і зараз. І для розповсюдження, також використовують проломи в системах захисту серверів. Окрім програм, які займаються псуванням, знищенням даних, псуванням апаратного забезпечення, уповільненням роботи комп'ютера, існують віруси, які стараються нічим не видати своєї присутності, а потихеньку збирають інформацію, наприклад, паролі, ведуть контроль за натисненням клавіш користувача, а потім передають знайдену інформацію на заздалегідь певну адресу, або здійснюють які-небудь певні дії. Ці віруси відносяться до так званих “троянским коням”. Основним засобом захисту від вірусів можна вважати використання антивірусів, краще якщо це буде дві незалежні програми, наприклад Dr.Web, AVP. Антивірусні засоби рекомендується встановити на ЄОМ і на поштовому сервері, або змусити сканувати весь трафік, а також правильна політика безпеки, що включає оновлення використовуваних програм і антивірусних засобів, оскільки антивірусні засоби пасивні і не в змозі гарантувати 100 % захист від невідомих вірусів, допоможе уникнути вірусного зараження. На сьогоднішній день найменш контрольована область - це інформація, що надсилається за допомогою електронної пошти. Цим активно користуються інсайдери і несумлінні працівники, і левова частка конфіденційної або небажаної інформації витікає саме через Інтернет, за допомогою повідомлень електронної пошти. Наприклад, такі системи, як E-NIGMA, Secure, Altell використовують в своїх програмах методи розмежування прав доступу до e-mail повідомлень, за допомогою яких дотримується інформаційна безпека підприємства. Контроль за якістю роботи співробітників є важливим процесом в організації роботи цілого підприємства. Однією з складових цього контролю є моніторинг листування співробітників. Використовуючи одну з програм приведених вище систем можна легко відстежувати листування кожного із співробітників, не вмонтовуючи собі їх ящики, оскільки вона перехоплює всю пошту на рівні протоколу. Радіовипромінювання монітора. Перехоплення зображення монітора достатньо поширений спосіб розкрадання інформації. Це стає можливим у зв'язку з його паразитним випромінюванням, прийом якого можливий до 50 м. Основним захистом можна вважати екранування приміщення, металевий корпус, а також використання пристроїв тих, що маскують побічне електромагнітне випромінювання, наприклад, генератор радіошуму ГШ-1000, який зашумляє діапазон частот від 0,1 до 1000 Мгц. Сьогодні існують пристрої, здатні розкодувати факс-модемную передачу, із запису її на магнітофон, або безпосередньо з телефонної лінії. Заборонити це не можливо, оскільки підключитися до телефонної лінії можна на будь-якій ділянці проходження телефонного з'єднання. Єдиний захист - це не передавати за допомогою подібного устаткування відомостей не бажаних для розголошування. Забезпечення інформаційної безпеки традиційно розглядається як сукупність чисто оборонних заходів. Характерними прикладами оборонних заходів, використовуваних для захисту комунікаційних мереж, є міжмережеві екрани, шифрування і системи виявлення вторгнень (Intrusion Detection Systems, IDS). Стратегія будується на класичній парадигмі забезпечення безпеки "захищай, виявляй, виправляй". При такому підході виникає проблема, пов'язана з тим, що ініціатива належить атакуючому, який завжди виявляється на крок попереду. За останні декілька років стає все більш очевидним, що традиційні прийоми мережевого захисту ефективні лише в певних межах. Відповідно необхідні нові методи посилення захисту мереж. Одним з перспективних підходів є використовування приманок - комп'ютерних ресурсів, що знаходяться під постійним спостереженням, які ми дозволяємо випробовувати на міцність, атакувати і зламувати. Точніше кажучи, приманка є "елементом інформаційної системи, цінність якого полягає у тому, що він дозволяє вести моніторинг несанкціонованого або протиправного використовування даного елементу". Моніторинг даних, що поступають на приманку і покидають її, дозволяє зібрати відомості, які не можна добути за допомогою IDS. Приманки можуть працювати під управлінням будь-якої операційної системи і на будь-якій кількості серверів. За допомогою налаштувань задаються доступні супротивнику способи злому або перевірки стійкості системи. Приманки володіють двома додатковими перевагами: масштабованістю і легкістю в обслуговуванні.

Достовірність результати в данній роботі отримані на основі аналізу літературних джерел та практичних розробок.

Мета данної роботі є дослідження існуючих методів захисту та перевірки данних що надає можливість конфедеційного обміну інформацією в мережах. комп'ютер захист інформація програмний

Актуальність розробка нових механізмів захисту данних, створення системи що виконює обмін інформацією.

Наукова новизна полягає в досконаленні існуючих методів захисту передачі інформації, перевірки цілісності данних при передачі їх через TCP сервер між клієнтами. Реалізовані функції асинхронного шифрування даних за допомогою двох ключів, електронній підпис повідомлення, перевірка на цілісність та достовірність вхідних даних, реалізований TCP сервер, та два тестових клієнта.

Практична цінність роботи полягає в тому, що вдосконалені методи перевірки цілісності данних та методи шифрування доцільно використовувати при конфедеційному обміну інформацією.

Програмний продукт реалізований за допомогою мови програмування С++ засобами крос-платформного інструментарію Qt Creator 2.2.1.

1. Передпроектне дослідження предметної області

1.1 Опис предметної області

Особливості захисту персональних комп'ютерів обумовлені специфікою їх використання. Як правило, ПК користується обмежене число користувачів. ПК можуть працювати як в автономному режимі, так і в складі локальних мереж (сполученими з іншими ПК) і можуть бути залучені до віддаленого ПК або локальної мережі за допомогою модему по телефонній лінії.

Стандартність архітектурних принципів побудови, устаткування і програмного забезпечення персональних комп'ютерів, висока мобільність програмного забезпечення і ряд інших ознак визначають порівняно легкий доступ професіонала до інформації, що знаходиться в ПК. Якщо персональним комп'ютером користується група користувачів, то може виникнути необхідність в обмеженні доступу до інформації різноманітних користувачів.

Несанкціонованим доступом (НСД) до інформації ПК будемо називати незаплановане ознайомлення, опрацювання, копіювання, застосування різноманітних вірусів, у тому числі руйнуючі програмні продукти, а також модифікацію або знищення інформації та порушення встановлених правил розмежування доступу. У захисті інформації ПК від НСД можна виділити три основні напрямки: · перший орієнтується на недопущення порушника до обчислювального середовища і ґрунтується на спеціальних технічних засобах упізнання користувача · другий пов'язано з захистом обчислювального середовища і ґрунтується на створенні спеціального програмного забезпечення по захисту інформації. · третій напрямок пов'язаний із використанням спеціальних засобів захисту інформації ПК від несанкціонованого доступу.

Спеціальне програмне забезпечення по захисту інформації ПК Для захисту персональних комп'ютерів використовуються різноманітні програмні методи, що значно розширюють можливості по забезпеченню безпеки інформації, що зберігається. Серед стандартних захисних засобів персонального комп'ютера найбільше поширення одержали: 1. засоби захисту обчислювальних ресурсів, що використовують парольну ідентифікацію й обмежують доступ несанкціонованого користувача. 2. застосування різноманітних методів шифрування, що не залежать від контексту. 3. засоби захисту від копіювання комерційних програмних продуктів. 4. захист від комп'ютерних вірусів і створення архівів.

1.2 Опис систем аналогів

РGР (Рretty Good Рrivacy) - мабуть, найвідоміший і найбільш надійний шифрувальник. Автор програми, Рhiliр Zimmermann, практично все своє життя присвятив шифрування даних. Ця програма представляє цілий ряд дуже потужних утиліт. У папці Автозавантаження з'являється Р G Р tray, який завантажує РGР і відповідає за управління іншими елементами програми. Першим ділом після установки програми необхідно зайти в Р G Р keys і створити пару ключів - публічний і приватний. Ключі можна створювати за алгоритмами DSS і RSA, причому перший переважніше. Довжина ключа може перебувати в межах 1024-4096 біт. При створенні ключів вам належить ввести рядок символів, якою ви будете користуватися в подальшому при розшифровці даних. Фахівці рекомендують вводити рядок з 100-200 символів, але врахуйте, що програма не працює з буфером обміну, так що цю послідовність вам належить вводити вручну кожен раз, коли ви будете розшифровувати який-небудь файл. Якщо ви забудете цей рядок або зіпсуєте свій приватний ключ, то все, що було зашифровано попереднім ключем, буде безповоротно втрачено. Працює це все таким чином: ви обмінюєтеся публічними ключами зі своїми друзями, поле чого можна листуватися e-mail. Маючи ваш публічний ключ, одержувач зможе відкрити лист, але вже своїм приватним кодом. При створенні закодованого файлу необхідно вказати тих, хто зможе відкрити цей файл. У що з'явилося віконце необхідно внести свій ключ, а так само ключі тих, хто також повинен мати доступ до шіфруемий інформації. З програми Р G Р tools можна зашифровувати (шифрування здійснюється за допомогою алгоритмів CAST, IDEA, і Triрe DES), підписувати, розшифровувати файли, викликати Р G Р keys і Wi р e. Утиліта Wi р e виконує видалення файлів без можливості відновлення.

BestCript 6.40 дана програма фінської фірми Jetico забезпечує безпеку даних за допомогою створення віртуальних контейнерів. Під контейнерами розуміється зашифрований файл, що зберігається на логічному диску, який підключається до системи як ще один диск. При роботі з програмою насамперед доведеться створити контейнер. Для цього потрібно вказати ім'я файлу, в якому буде міститися інформація, його розмір, опис і логічний диск, на якому він буде розташовуватися, а також алгоритм шифрування. Програма надає на вибір чотири алгоритму: BLOWFISH, DES, ГОСТ 28147-89, TWOFISH. Всі ключі, крім DES, мають довжину 256 біт, довжина ключа DES - 64 біта. Сьогодні цього вже відверто недостатньо для забезпечення по-справжньому високого рівня конфіденційності. Ці ключі можуть зупинити хакера, але якщо комусь дійсно знадобитися отримати доступ до вашої інформації, то він його отримає. Для відкриття диска можна встановити режим «тільки для читання», що заборонить будь-якій програмі записувати на нього інформацію. Як звичайно, можна попросити програму підключити диск кожен раз при завантаженні і відключати після закінчення якогось часу або по комбінації гарячих клавіш. При цьому віртуальний диск може обслуговуватися програмами Norton Utilites і Nuts & Bolts як звичайний логічний диск. Разом з програмою BestCryрt встановлюється freeware утиліта BCWi р e. Вона призначена для того, щоб після видалення яких-небудь файлів з жорсткого диска їх неможливо було відновити.

У програмі є ще одна чудова утиліта під назвою BestCryt р Service Manager. Вона призначена для того, щоб ви могли додавати потрібні і видаляти непотрібні алгоритми шифрування і модулі генерації ключів. Але це потрібно лише для тих, хто не довіряє алгоритму шифрування DES. Так що, якщо у вас є інший алгоритм, то можна сміливо видаляти старі алгоритми шифрування і видаляти нові.

Tor (скор. від англ. The Onion Router) - безкоштовне програмне забезпечення для реалізації другого покоління так званої «цибулевої маршрутизації». Це система, що дозволяє встановлювати анонімне мережеве з'єднання, захищене від прослуховування. Розглядається як анонімна мережу, що надає передачу даних в зашифрованому вигляді. Написаний переважно на мові програмування Сі і на кінець 2010 року має більш 100 000 рядків програмного коду. За допомогою Tor користувачі можуть зберігати анонімність при відвідуванні веб-сайтів, публікації матеріалів, надсилання повідомлень і при роботі з іншими додатками, які використовують протокол TCP. Безпека трафіку забезпечується за рахунок використання розподіленої мережі серверів (нод - «вузлів»), які називаються «багатошаровими маршрутизаторами» (onion routers). Технологія Tor також забезпечує захист від механізмів аналізу трафіку, які ставлять під загрозу не тільки анонімність користувача, але також конфіденційність бізнес-даних, ділових контактів та ін Tor оперує мережевими рівнями onion-маршрутизаторів, дозволяючи забезпечувати анонімні вихідні з'єднання та анонімні приховані служби.

Приватні особи використовують Tor для захисту недоторканності приватного життя та отримання доступу до інформації, заблокованої інтернет-цензурою.

Приховані сервіси Tor надають своїм користувачам можливість створювати власні веб-сайти та електронні ЗМІ, не розкриваючи при цьому інформацію про реальний місцезнаходження сайту. Соціальні працівники користуються Tor при спілкуванні з урахуванням тонкої соціальної специфіки: в чатах і веб-форумах для жертв насильства, конфліктів, біженців, а також для людей з фізичними або психічними відхиленнями.

Журналісти використовують Tor для безпечного спілкування з інформаторами та дисидентами. Неурядові організації використовують Tor для підключення своїх співробітників до потрібних сайтів в закордонних відрядженнях, коли є сенс не афішувати їх роботу. Громадські організації, наприклад, Indymedia, рекомендують Tor для забезпечення безпеки своїх членів. Громадські активісти, наприклад, EFF підтримують розробку Tor, оскільки бачать в ньому механізм для захисту базових громадянських прав і свобод в Інтернеті. Корпорації використовують Tor як безпечний спосіб проведення аналізу на конкурентному ринку, а також як доповнення до віртуальних приватних мереж, які все одно дозволяють отримати доступ до точної інформації про тривалість та кількість сполук . Також існують рішення, які використовують програмне забезпечення для роботи в мережі Tor, при побудові виділених анонімних мереж.Зокрема, на основі Tor побудований сервіс захищеного анонімного доступу в мережу інтернет, реалізований в кріптозащіщенних флеш-дисках Ironkey S200, створених однойменною компанією. Правоохоронні органи використовують Tor для прихованого відвідування веб-сайтів, щоб не залишати при цьому IP-адреси своїх установ в логах відповідних веб-серверів, а також для забезпечення безпеки співробітників при проведенні спецоперацій. Військові використовують Tor для збору відомостей з відкритих джерел. Зокрема, ця мережа активно використовується при проведенні військових операцій на Близькому Сході.

Користувачі мережі Tor запускають «цибулевий» проксі-сервер на своїй машині, дане програмне забезпечення підключається до серверів Tor, періодично створюючи ланцюжок крізь мережу Tor, яка використовує криптографію багаторівневим способом. Кожен пакет, що потрапляє в систему, проходить через три різних проксі-сервера (нода), які вибираються випадковим чином. Перед відправленням пакет послідовно шифрується трьома ключами: спочатку для третього вузла, потім для другого, і, врешті-решт, для першого. Коли перший вузол отримує пакет, він розшифровує «верхній» шар шифру (аналогія з тим, як чистять цибулину) і дізнається, куди відправити пакет далі. Другий і третій сервер надходять аналогічним чином. У той же час, програмне забезпечення «цибульного» проксі надає SOCKS-інтерфейс.

1.3 Постановка задачі

Основною задачею даного проекту є розробка комплексного програмного продукту, який реалізує обмін данними за допомогою ТСР серверу. У програмному продукту мають бути реалізовані функції взаємодії та обміном данними між клієнтами та сервером, шиврування вихвдних данних, генерація відкритого та закритого ключа, генерація псевдовипадкових чисел , підпис данних, перевірка на достовірність данних, передача їх між клієнтами та дешифрування. Алгоритм шифрування та перевірки данних на цілісність та достовірність не повинен вцідображатись на продуктивності программи. Програмний продукт має бути крос-платформним програмним забезпеченням для цього будуть використані мова програмування С++ з крос-платформною бібліотекою Qt SDK 1.2

2. Вибір проектних рішень

2.1 Структуна модель системи

Дана інформаційна система складається з наступних компонентів: головного віджету, ТСР серверу, класу взаємодії з ТСР сервером, класу обробки інформації що надходить від клієнта, обробника подій натискання на кнопку та функцій.

Головний віджет це клас, що відображає всі елементи графічного інтерфейсу в обраній користувачем структурі. На віджеті розташовані кнопки з функціями. Після натискання на будь яку кнопку, віджет викликає обробник подій. Обробник подій визначає на яку кнопку було натиснено і викликає функцію, яку має виконувати ця кнопка. Механізм реалізован за допомогою слотів сигналів.

У Qt використовується механізм - сигнали і слоти. Сигнал виробляється коли відбувається певна подія. Слот це функція, яка викликається у відповідь на певний сигнал. Виджеты Qt мають багато зумовлених сигналів і слотів, але ми завжди можемо зробити дочірній клас і додати наші сигнали і слоти в нім.

Механізм сигналів і слотів типобезопасен. Сигнатура сигналу повинна співпадати з сигнатурою слота-одержувача. (Фактично слот може мати коротшу сигнатуру чим сигнал який він отримує, оскільки він може ігнорувати додаткові аргументи). Оскільки сигнатури порівнянні, компілятор може допомогти нам виявити неспівпадання типів. Сигнали і слоти слабо пов'язані. Клас, який виробляє сигнал не знає і не піклується про те, які слоти його отримають. Механізм сигналів і слотів Qt гарантує, що якщо ми підключимо сигнал до слота, слот буде викликаний з параметрами сигналу в потрібний час. Сигнали і слоти можуть приймати будь-яке число аргументів будь-якого типу. Вони повністю типобезопасны. Усі класи, успадковні від QObject або його дочірніх класів(наприклад, QWidget) можуть містити сигнали і слоти. Сигнали виробляються об'єктами коли вони змінюють свій стан так, що це може зацікавити інші об'єкти. При цьому він на знає і не піклується про те що у його сигналу може не бути одержувача.

Слоти можуть бути використані для отримання сигналів, але вони так само нормальні функції-члени. Так само як об'єкт не знає нічого про одержувачів своїх сигналів, слот нічого не знає про сигнали, які до нього підключені. Це гарантує що повністю незалежні компоненти можуть бути створені за допомогою Qt.

Ми можемо підключати до одного слота стільки сигналів, скільки захочемо, також один сигнал може бути підключений до стількох слотів, скільки необхідно. Так само можливо підключати сигнал до іншого сигналу(це викличе вироблення другого сигналу негайно після появи першої).

Клас, що наслідує від QObject має той же самийвнутрішній стан і забезпечує публічні методи для доступудо цього стану, але додатково у нього є підтримка длявикористання сигналів і слотів. Цей клас можеповідомити зовнішній світ що його стан змінивсявиробивши сигнал valueChanged() і у нього є слот, в якийінші об'єкти можуть посилати сигнали.

Усі класи, що містять сигнали і слоти повинні вказувати макрос Q _ OBJECT на початку їх опису. Вони такожмають бути нащадками(прямо або побічно) QObject.

Ключове слово emit виробляє сигнал valueChanged()об'єкту з новим значенням в якості аргументу.У наступному прикладі ми створюємо два об'єкти типуCounter і сполучаємо сигнал valueChanged() першого ізслотом setValue() другого використовуючи статичнуфункцію QObject::connect().

Сигнали виробляються об'єктами коли вони змінюють свій стан так, що це може зацікавити інші об'єкти. Тільки клас, який визначає сигнал або його дки можуть виробляти сигнал. Коли сигнал виробляється, слот, до якого він підключений зазвичай виконується негайно, так само як і нормальний виклик процедури. Коли це відбувається, механізм сигналів і сигналів і слотів повністю незалежний від будь-якого циклу подій графічного інтерфейсу. Виконання коду, наступного за випуском сигналу відбудеться відразу після виходу з усіх слотів. Ситуація злегка відрізняється коли використовуються відкладені з'єднання (queued connections); в цьому випадку код після ключового слова emit продовжує виконання негайно, а слоти будуть виконані пізніше. Якщо кілька слотів підключені до одного сигналу, слоти будуть виконані один за іншим у довільному порядку після вироблення сигналу. Сигнали автоматично генеруються програмою moc і не повинні бути реалізовані у вихідному коді.

Вони можуть не повертати значення (тобто, використовуємо тип void). Зауваження з приводу аргументів: досвід показує, що сигнали і слоти легше повторно використовувати при написанні програм, якщо вони не використовують спеціальних типів. Наприклад, якби сигнал QScrollBar :: valueChanged () використав би спеціальний тип начебто гіпотетичного QScrollBar :: Range, він міг би бути підключеним тільки до слотів, спроектованим спеціально для нього.

Слот викликається коли виробляється сигнал, з яким він пов'язаний. Слот це звичайна функція в C + + і може викликатися звичайним способом; єдина його особливість, що з ним можна соедінсять сигнали. Так як слоти це нормальні функції-члени, вони слідують звичайним правилам C + + при прямому виклику. Тим не менш, як слоти, вони можуть бути викликані будь-яким компонентом, незалежно від їх рівнів доступу, через з'єднання сигнал-слот. Це означає, що сигнал, виработанностью об'єктом довільного класу може викликати захищений (private) слот об'єкта незв'язаного з ним класу.

Слоти так само можна оголошувати віртуальними, що іноді буває досить зручно. У порівнянні із зворотними викликами, сигнали і слоти злегка повільніше через збільшену гнучкості, яку вони забезпечують, хоча різниця для реальних додатків непомітна. Загалом, вироблення сигналу, який підключений до деяких слотам, в середньому в 10 разів повільніше, ніж виклик отримувача безпосередньо, при виклику не віртуальної функції. Ці накладні витрати потрібні для знаходження об'єкта, для безпечного перебору всіх його сполук (тобто перевірка що наступний одержувач не був знищений під час випуску сигналу) і передачі будь-яких параметрів у загальному вигляді. Хоча виклик десяти невіртуальний процедур може здатися дорогим, це менш затратно, ніж, наприклад, операція створення або видалення об'єкта. Поки ми створюємо рядок, вектор або список, що неявно вимагає створення об'єкта, витрати сигналів і слотів відповідають за дуже маленьку частку у витратах серед усіх викликів процедур. Те ж саме вірно робите ви системний виклик в слот або побічно викликаєте більше десяти функцій. На i586-500, ми можемо виробляти близько 2,000,000 сигналів в секунду, поєднаних з одним слотом або 1,200,000 в секунду, при з'єднанні в двома слотами. Простота і гнучкість механізму сигналів і слотів окупає додаткові витрати, які користувач програми навіть не помітить. Слід зауважити, що бібліотеки, які визначають змінні з іменами signal або slot, можуть викликати попередження або помилки компілятора при компіляції разом з програмою, написаною на Qt. Що б вирішити дану проблему, необхідно прибрати Визначенню заважають символу препроцесора за допомогою директиви # undef.

В деяких випадках може знадобитися інформація про відправника сигналу. Qtнадає функцію Qobject :: sender (), яка повертає покажчик на об'єкт, що пославсигнал. Клас QSignalMapper необхідний у ситуаціях, коли багато сигналів підключені до одного й того ж слоту, і цей слот повинен реагувати на кожен сигнал по-різному. Припустимо що у нас є три кнопки, які визначають, який файл ми хочемо відкрити:«Tax File», «Accounts File», or «Report File».

Що бвідкрити потрібний файл ми з'єднуємо їх сигнал QPushButton :: clicked () зіслотом readFilе(). Тепер використовуємо функцію класу QSignalMapper -setMapping () - для перетворення всіх сигналів в об'єкт QSignalMapper.

2.2 Вибір середовища програмування

Починаючи з версії 4.5 в комплект Qt включено середовище розробки Qt Creator, яке включає в себе редактор коду, довідку, графічні засоби Qt Designer і можливість зневадження застосунків. Qt Creator може використовувати GCC або Microsoft VC++ в якості компілятора і GDB як зневаджувач. Для Windows версій бібліотека комплектується компілятором, заголовними і об'єктними файлами MinGW. Qt Creator -- середовище розробки, призначене для створення крос-платформових застосунків з використанням бібліотеки Qt. Підтримується розробка як класичних програм мовою C++, так і використання мови QML, для визначення сценаріїв в якій використовується JavaScript, а структура і параметри елементів інтерфейсу задаються CSS-подібними блоками.

Qt комплектується візуальним середовищем розробки графічного інтерфейсу Qt Designer, що дозволяє створювати діалоги і форми« мишею (в режимі WYSIWYG). У постачанні Qt є Qt Linguist -- графічна утиліта, що дозволяє спростити локалізацію і переклад вашої програми багатьма мовами; і Qt Assistant -- довідкова система Qt, що спрощує роботу з документацією по бібліотеці, а також дозволяє створювати крос-платформену довідку для розроблюваного на основі Qt ПЗ.

В Qt 4 введений новий набір класів для перегляду елементів використовуючих архітектуру модель / представлення для управління взаємозв'язком між даними та методом їх подання користувачеві. Поділ функціональності, введений в цій архітектурі, дає розробникам більшу гнучкість в налаштуванні відображення елементів і надає стандартний інтерфейс моделі, що дозволяє широкому діапазону джерел даних використовувати існуючі представлення елементів.

Архітектура Модель-Представлення-Контроллер (Model-View-Controller, MVC) є шаблоном проектування, що беруть початок від Smalltalk, який часто використовується для створення користувацьких інтерфейсів. У Design Patterns, Gamma та інших написано: MVC складається з трьох типів об'єктів. Модель - об'єкт програми, представлення - його екранне представлення і контролер - визначає реакцію інтерфейсу на користувальницький введення. До MVC при розробці користувальницького інтерфейсу ці об'єкти змішувалися разом. MVC розділяє їх, для збільшення гнучкості і можливості повторного використання.

Якщо об'єднати об'єкти представлення і контролера, то в результаті вийде архітектура модель / представлення. Це все ще відділяє спосіб зберігання даних від способу їх подання користувачеві, але забезпечує просту структуру, засновану на тих же принципах. Даний поділ дає можливість показати користувачеві одні й ті ж дані в різних представленнях і реалізувати нові типи представлень без зміни базової структури даних. Щоб забезпечити гнучкість управління користувальницьким введенням, ми представляємо концепцію делегата (delegate). Перевага наявності делегата в цій структурі полягає в тому, що це дає можливість для налаштування представлення та редагування елементів даних.

Модель здійснює з'єднання з джерелом даних, надаючи необхідний інтерфейс іншими компонентами архітектури. Характер зв'язку залежить від типу джерела даних і способу реалізації моделі.

З моделі представлення отримує модельні індекси, які є посиланнями на елементи даних. Передаючи модельні індекси моделі, представлення може отримати елементи даних з джерела даних.

У стандартних представленнях делегат відображає елементи даних. Якщо елемент редагований, делегат зв'язується з моделлю безпосередньо використовуючи модельні індекси.

Як правило, класи модель / представлення можуть бути розділені на три описані вище групи: моделі, представлення та делегати. Кожен з цих компонентів описується абстрактним класом, що надає загальний інтерфейс і, в деяких випадках, особливості реалізації за замовчуванням. Абстрактні класи мають на увазі успадкування від них в порядку, що надає повний набір функціональності, очікуваної іншими компонентами; це дозволяє також писати спеціалізовані компоненти.

Моделі, представлення та делегати взаємодіють один з одним використовуючи сигнали і слоти:

- Сигнали від моделі інформують представлення про зміни даних у джерелі даних.

- Сигнали від представлення надають інформацію про користувальницький взаємодії з відображеними елементами.

- Сигнали від делегата використовуються під час редагування, повідомляють моделі і представлення про стан редактора.

Всі моделі елементів засновані на класі QAbstractItemModel. Цей клас визначає інтерфейс, використовуваний представленнями і делегатами для доступу до даних. Самі дані не повинні зберігатися в моделі; вони можуть зберігатися в структурі даних або сховищі, що надається окремим класом, файлі, базі даних або будь-якому іншому прикладному компоненті.

QAbstractItemModel забезпечує досить гнучкий інтерфейс до даних для обробки представлень, які представляють дані у вигляді таблиць, списків і дерев. Однак, при реалізації нових моделей у вигляді структур списків і таблиць, класи QAbstractListModel і QAbstractTableModel слугуватимуть кращою відправною точкою, так як вони надають реалізації відповідних функцій за умовчанням. На основі кожного з цих класів можна створити підкласи для надання моделей, що підтримують специфічні види списків і таблиць.

Qt надає кілька готових моделей, які можуть використовуватися для обробки елементів даних:

- QStringListModel використовується для зберігання простого списку елементів QString.

- QStandardItemModel управляє більш складними деревовидними структурами елементів, кожен з яких може містити довільні дані.

- QDirModel надає інформацію про файлах і директоріях локальної файлової системи.

- QSqlQueryModel, QSqlTableModel і QSqlRelationalTableModel використовуються для доступу до баз даних, що враховує угоди архітектури модель / подання.

Якщо ці стандартні моделі не відповідають вашим вимогам, то для створення своїх власних моделей ви можете створити підклас QAbstractItemModel, QAbstractListModel або QAbstractTableModel.

Надаються повні реалізації для різних видів представлень: QListView відображає список елементів, QTableView відображає дані моделі у вигляді таблиці, а QTreeView відображає елементи моделі у вигляді ієрархічного списку. Кожен з цих класів заснований на базовому абстрактному класі QAbstractItemView. Хоча ці класи і готові до використання, вони можуть мати підкласи, для більш точного налаштування представлення.

QAbstractItemDelegate - це абстрактний базовий клас делегата в структурі модель / представлення. Реалізація делегата за замовчуванням надається класом QItemDelegate, який використовується в якості делегата за замовчуванням в стандартних представленнях Qt.

В архітектурі модель / представлення є два підходи до сортування; який підхід вибрати - залежить від вашої базової моделі.

Якщо вашу модель можливо сортувати, тобто якщо вона заново реалізує функцію QAbstractItemModel :: sort (), то і QTableView і QTreeView надають API, що дозволяє програмно сортувати дані вашої моделі. Крім того, ви можете дозволити інтерактивне сортування (interactive sorting) (тобто дозволити користувачам сортувати дані натискаючи на заголовки представлення), з'єднавши сигнал QHeaderView :: sectionClicked () зі слотом QTableView :: sortByColumn () або ж зі слотом QTreeView :: sortByColumn (), відповідно.

Альтернативний підхід, якщо ваша модель не має необхідного інтерфейсу або ви хочете використовувати представлення списку для відображення ваших даних, полягає у використанні моделі-посередника для перетворення структури вашої моделі перед передачею даних до представлення.

Безліч допоміжних класів успадковані від класів стандартних представлень для зручності використання в додатках, що залежать від заснованих на елементах представлення Qt і класах таблиць. Вони не призначені для створення на їх основі підкласів, а існують просто як еквівалент класів Qt3, що працюють за старою схемою. Прикладами таких класів служать QListWidget, QTreeWidget і QTableWidget, що реалізують поведінку, подібне поведінки класів Qt 3 QListBox, QListView і QTable.

Ці класи менш гнучкі, ніж класи представлень і не можуть використовуватися з довільними моделями. Якщо ви не сильно потребуєте в наборі заснованих на елементах класів, ми рекомендуємо використовувати при обробці даних в представленнях елементів підхід на основі модель / представлення.

Якщо ж ви хочете скористатися перевагами розділення даних і представлення не відмовляючись від схеми явного попереднього заповнення даних, як наприклад QListView, QTableView і QTreeView з моделлю QStandardItemModel.

Qt маэ зручний механызм створення ынтервейсу программи QStyle відокремлений від віджетів, що дає можливість малювати елементи управління на будь-якому контексті малювання. Це може знадобитися, наприклад, в тих ситуаціях, коли ви розробляєте свій віджет і хочете, щоб він був успадкований від одного класу, а виглядав як інший елемент управління, доступний в Qt. Насамперед ми створюємо об'єкт класу QStylePainter, цей клас знає і про поточний стилі керування, і про об'єкт класу QPainter. Потім ми створюємо об'єкт QStyleOptionPushButton, тому що хочемо намалювати кнопку. Виклик методу initFromO справить копіювання опцій віджета, таких як: прямокутна область, палітра, шрифт, стан і т. д. Це найшвидший спосіб ініціалізації. Разом з тим, одна з опцій ініціалізується текстом "This is a label". На закінчення викликається метод drawControl () з об'єкта класу QStylePainter, який малює кнопку натискання. Використання каскадного стилю документа Реалізація власного стилю може виявитися дуже складним, копіткою і стомлюючим заняттям. Цей факт послужив поштовхом для впровадження в Qt нового способу створення стилю. За основу був узятий CSS (Cascading Sty'e Sheets, каскадний стиль документа), що використовується в HTML. В Qt цю мову був адаптований для віджетів, але концепція та синтаксис мови залишилися тими ж. Це дозволило повністю відокремити створення стилю від програми. Більш того, для створення стилю знання С + + зовсім не обов'язково, що дозволяє залучити для роботи над додатком дизайнерів, які не мають навичок програмування. Програма Qt Designer надає можливість інтеграції CSS-стилів, що спрощує можливість перегляду на прикладах різних віджетів. За своєю суттю, каскадний стиль є не що інше, як текстовий опис стилю. Цей опис може знаходитися в окремому файлі, зазвичай мають розширення qss. Його можна встановити в додатку за допомогою методу QApplication :: setStyleSheet (), або в окремому віджеті за допомогою ана-логічного методу QWidget :: setStyleSheet (). Директива називається селектором. Вміст фігурних дужок, що знаходяться праворуч від назви віджета, називається визначенням селектора. Селектор визначає, для якого з віджетів буде використовуватися визначення. Визначення складається з властивостей і значень, а якщо їх декілька, то вони відокремлюються один від одного крапкою з комою, наприклад: Якщо в різних селекторах використовуються однакові визначення, то їх можна згрупувати в єдину директиву. Каскадний стиль не чутливий до регістру, наприклад: COLOR = color, = COLOR і т. д. Виняток становлять лише імена класів. Для завдання стилю складових елементів управління необхідно отримати доступ до його піделементи, таким як, наприклад, кнопка зі стрілкою елемента списку QComboBox. QComboBox :: drop-down {image: url (dropdown.png)} Також можна вказувати стану, тобто визначення повинне застосовуватися до віджету тільки в тому випадку, якщо він знаходиться в певному (вказаному) стані. Бібліотека Qt надає можливість використання в програмах різних стилів (Look &Feel) і їх зміни в процесі роботи програми. Стиль може встановлюватися як длявсього програми, так і для кожного віджета окремо. Як правило, один стильвстановлюється відразу всім віджетів програми, для чого використовується статичний метод QApplication :: setstyle (). У кожен з методів передається ряд тпараметрів, що надають всю необхідну інформацію для відображення віджетів. Вся необхідна додаткова інформація доступна в об'єктах класу QStyleOption. Qt надає і більш простий спосіб реалізації стилів, якийбазується на каскадному стилі документа CSS. Каскадний стиль складається з тпослідовності т правил тстилю. Правило стилю задається вибором і визначенням.

2.4 Вимоги до системи

Вимоги до апаратного забезпечення: процесор Intel Pentium 3 з тактовою частотою 1000 MHz(x86) або аналогічний, оперативна пам'ять не менше 128 MB, відео адаптер VGA @ 1024x780 з відео пам'яттю не менше 64 MB, місце на жорсткому диску 300 MB.

Вимоги до програмного забезпечення: даний проект є крос-платформним програмним забезпеченням, тому для його роботи підійде будь-яка сучасна операційна система, на комп'ютері иає бути встановлений драйвер Qt.

3. ПРОЕКТУВАННЯ СИСТЕМИ

3.1 Структура алгоритму системи захисту даних

Захист даних в даній системі можна поділити на декілька етапів: шифрування вихідного, генерація відкритого ключа, генерація псевдовипадкових чисел, генерація випадкового тексту, перевірка даних за допомогою контрольних сум, підпис вихідного повідомлення та декодування.

Шифрування вихідного повідомлення полягає в представленні його як ByteArray та розбитті на блоки фіксованої довжини, кожний блок кодується за допомогою відкритого ключа, який генерується за допомогою закритого ключа.

Ключ за яким кодується повідомлення оновлюється з кожним відісланим блоком. Стійкість шифру повинна визначатися тільки секретністю ключа. Якщо для генерації ключів використовується нестійкий алгоритм, криптосистема буде нестійкою.

Розтину піддасться не сам шифр, а алгоритм генерації ключів.

Скорочені ключові простору наприкла довжина ключа в DES-алгоритмі становить 56 біт. В принципі, як ключ може бути використаний 56-бітний вектор. На практиці це правило часто не дотримується. Наприклад, широко поширена програма шифрування файлів Norton Discreet, що входить в пакет Norton Utilities (версії 8.0 або більш молодшої версії), який призначений для роботи в операційній системі DOS, пропонує користувачеві програмну реалізацію DES-алгоритму. Однак при введенні ключа дозволяється подавати на вхід програми тільки ті символи, старший біт подання яких в коді ASCII дорівнює нулю. Більш того, п'ятий біт в кожному байті введеного ключа є запереченням шостого біта, і в ньому ігнорується молодший біт. Це означає, що потужність ключового простору скорочується до якихось жалюгідних 2 40 ключів.Таким чином через погану процедури генерації ключів програма Norton Discreet реалізує алгоритм шифрування, ослаблений в десятки тисяч разів в порівнянні з цим DES-алгоритмом.

Небажані ключі - випадок коли відправник сам вибирає ключ, за допомогою якого він шифрує свої повідомлення, його вибір зазвичай буде асоціюватись наприклад з іменем або датою народження, тобто ключ являє собою набір символів та чисел що не є стійким ключем на відміну від ключа "&7)g\*". І що буде набагато ефективніший. В ході добре організованої атаки методом тотального перебору кваліфікований кріптоаналітик не буде випробувати всі ключі послідовно, один за іншим. Він спочатку перевірить ті з них, які хоч щось значать для користувача. Такий різновид атаки методом тотального перебору називається брутальною атакою, оскільки в ході її противник використовує словник найбільш ймовірних ключів. В цей словник звичайно входять: Ім'я, прізвище, по батькові, ініціали, рік народження та інша особиста інформація, що має відношення до даної людини. Хоча комп'ютерні користувачі в основному працюють з англомовними операційними системами (DOS, UNIX, Windows та іншими), існують локалізовані версії поширених операційних систем, в яких допускається використання іншої мови. Це означає, як ключ на вхід програми шифрування може бути подана будь-яка фраза рідною мовою її користувача. Слід також враховувати, що ключ може бути транслітерувати з будь-якої мови (наприклад, з російської або китайського) на англійську і потім в такому вигляді введений в програму шифрування. Пари слів. Оскільки кількість імовірних пар слів, з яких може складатися криптографічний ключ, занадто велике, на практиці криптоаналитики зазвичай обмежуються словами з трьох і чотирьох букв.

Хороший ключ являє собою випадковий бітовий вектор. До прикладу, якщо його довжина становить 56 біт, то це означає, що в процесі його генерації з однаковою ймовірністю може вийти будь-який з 2 56 можливих ключів. Джерелом випадкових ключів зазвичай служить або природний випадковий генератор (хорошою аналогією такого генератора є маленька дитина, яка тільки що навчився ходити, - тимчасові інтервали між його падіннями абсолютно випадкові). Крім того, джерелом випадкового ключа може бути криптографічно надійний генератор псевдовипадкових бітових послідовностей. Краще, щоб процес генерації ключів був автоматизований. Якщо під рукою немає комп'ютера для запуску програми, що реалізує псевдовипадковий генератор, або ваша дитина давно вже вийшов з дитячого віку, можна кидати монетку або гральну кістку. Використання хорошого генератора випадкових чисел є дуже важливим моментом при генерації криптографічних ключів, проте не слід занадто багато сперечатися про те, який з цих генераторів є більш випадковим. Важливіше застосовувати стійкі алгоритми шифрування і надійні процедури роботи з ключами. Якщо у вас з'явилися сумніви щодо випадковості при виборі ключа, можна використовувати один з методів генерації ключів, описаних нижче в цьому розділі. У всіх алгоритмах шифрування є так звані не стійкі ключі. Це означає, що деякі з ключів до шифру є менш надійними, ніж інші. Тому при генерації ключів потрібно автоматично перевіряти їх на стійкість і генерувати нові замість тих, які цю перевірку не пройшли. Приміром, в DES-алгоритмі є всього 24 нестійких ключа із загальної кількості 2 56, і отже ймовірність натрапити на нестійкий ключ пренебрежимо мала. Крім того, звідки криптоаналітика знати, що для зашифрування конкретного повідомлення або файлу був застосований саме нестійкий ключ? А свідома відмова від використання нестійких ключів дає противнику додаткову інформацію про вашу криптосистеми, що небажано. З іншого боку, перевірка ключів на нестійкість досить проста, щоб нею нехтувати. Генерація відкритих ключів набагато більш ускладнена, ніж генерація секретних ключів, оскільки відкриті ключі повинні володіти певними математичними властивостями (наприклад, повинні бути результатом добутку двох простих чисел). Користуватися випадковими ключами не завжди зручно. Іноді ключ необхідно зберігати в пам'яті, а запам'ятати 36f9 67аЗ f9cb d931 людині не так-то просто. В цьому випадку для генерації можна використовувати якесь правило, яке буде очевидно для вас, але недоступно для стороннього. Два варіанти такого правила: Складіть ключ з декількох слів, розділених знаками пунктуації. Наприклад, дуже просто і надовго запам'ятовуються ключі типу Yankee'Go home. Використовуйте в якості ключа поєднання букв, які представляють собою акронім довшого слова. Приміром, помітне назва німецького вина Liebenfraumilch дозволяє шляхом відкидання голосних букв і додавання знаку оклику згенерувати ключ Lbnfrmlch!.

Алгоритм генерації ключа в даній роботі базується на генерації псевдовипадкових чисел. Згідно принципу Керкхофа стійкість шифру має визначатись, в першу чергу, ключем. Це означає, що стійкість шифру залежить від того, в якій мірі вдалось досягти секретності використовуваного ключа. Крім того, одна із ознак абсолютно стійкого шифру, розглянутих Клодом Шенноном, вимагає використання повністю випадкового ключа. Таким чином, можна зробити висновок, що одним із факторів секретності ключа є його випадковість. Зрозуміло, що використовуючи випадкові числа, можна побудувати будь-який випадковий ключ. Крім випадкових ключів, кріптографія використовує випадкові числа також і для побудови цілої групи досить популярних шифрів заміни та перестановки. Так, у шифрах заміни, випадкові числа можуть використовуватись, як замінюючи елементи знаків відкритого тексту. У шифрах перестановки за допомогою випадкових чисел можна організувати випадковий порядок перестановки знаків відкритого тексту. Раніше вчені, яким були потрібні для роботи випадкові числа, розкладали карти, кидали гральні кості, витягали кулі з урни тощо. Одним із найпростіших механічних приладів для отримання випадкових чисел є рулетка. Саме тому, математичні методи, які використовують випадкові числа, називають “методами Монте-Карло” за найменуванням міста у князівстві Монако, де знаходяться відомі ігорні будинки. В першій половині XX століття було сконструйовано спеціальні машини, які виробляли випадкові числа механічним шляхом. Зокрема, у 1955 році компанія RAND Corporation опублікувала відомі таблиці з мільйоном випадкових цифр, отриманих такою машиною. В сучасних умовах для отримання випадкових чисел застосовують різноманітні генератори, які поділяються на дві групи - апаратні та програмні. В апаратних генераторах джерелом випадкових чисел є шум в електронних приладах. Отже, використання апаратних генераторів вимагає наявності спеціального обладнання. В зв'язку з цим більш зручним вважається застосування програмних генераторів випадкових чисел.

Програмний генератор випадкових чисел являє собою програму, яка генерує послідовність чисел за деяким алгоритмом. Завдяки алгоритму, така послідовність чисел цілком детермінована (визначена), тобто принципово не може бути випадковою. Але, оскільки така числова послідовність за своїм зовнішнім виглядом та властивостями дуже нагадує випадкову, то її називають послідовністю псевдовипадкових чисел.

В криптографії послідовність псевдовипадкових чисел називають гаммою шифру, або просто гаммою. Це пов'язано з тим, що грецька літера г досить часто використовується у математичних формулах для позначення випадкових величин. Найчастіше використовують гамми двійкових псевдовипадкових чисел. Програмний генератор послідовності псевдовипадкових чисел має задовольняти наступним вимогам: період гамми має бути досить великим;

· гамма має бути практично непередбачуваною;

· гамма має бути відтворюваною.

Період гамми - це та кількість псевдовипадкових чисел у послідовності, після якої вони починають повторюватись. Чим більший період гамми, тим для довших відкритих текстів її можна застосовувати. Чим менший період гамми, тим легше передбачувати числа в ній і зламувати ключі та шифри. Довжина періоду гамми залежить від вибраного алгоритму генерування послідовності псевдовипадкових чисел. Непередбачуваність гамми означає неможливість передбачити наступне число гамми, навіть тоді, коли відомі тип генератора і попередній фрагмент гамми. Загальних методів визначення рівня непередбачуваності гамми не існує. Але вважається, що рівень Моргун О.М. Криптографічні методи захисту інформації. Непередбачуваність буде достатнім, якщо гамма має дуже великий період. Крім того , різні комбінації сусідніх чисел гамми мають бути рівномірно розташовані вздовж неї. Інакше кажучи, властивості гамми та властивості послідовності істинно випадкових чисел мають бути подібними у відповідності з вимогами методів математичної статистики, а саме: числа гамми мають бути рівно ймовірними і статистично незалежними між собою. Відтворюваність гамми означає наявність можливості отримати ту ж саму послідовність псевдовипадкових чисел. Це потрібно для того, щоб можна було дешифрувати криптограму, отриману шляхом застосування гамми шифру. Для цього застосовують такі програмні генератори псевдовипадкових чисел, в яких та чи інша їх послідовність залежить від, так званого, ключа генератора. Це означає, що для різних значень ключа генератора мають генеруватись різні послідовності. Але при одному й тому ж значенні ключа має генеруватись одна й та ж сама послідовність.

Найпростіші методи генерування послідовностей псевдовипадкових чисел базуються на рекурентних формулах, загальний вигляд яких x n+1 = f (x n ), n = 0,1,K, з використанням операції виділення дробової частини числа, яка позначається фігурними дужками {K}.

Послідовність псевдовипадкових чисел генерується за допомогою рекурентної формули


Подобные документы

  • Аналіз системи збору первинної інформації та розробка структури керуючої ЕОМ АСУ ТП. Розробка апаратного забезпечення інформаційних каналів, структури програмного забезпечення. Алгоритми системного програмного забезпечення. Опис програмних модулів.

    дипломная работа [1,9 M], добавлен 19.08.2012

  • Криптографія – математичні методи забезпечення інформаційної безпеки та захисту конфіденційності. Огляд існуючих методів пошуку нових алгоритмів шифрування. Розробка системи оцінки ефективності криптографічних систем. Найпоширеніші методи шифрування.

    дипломная работа [1,2 M], добавлен 13.06.2015

  • Аналіз предметної області, опис проекту бази даних, моделей майбутнього програмного забезпечення гри для персонального комп'ютера "Міста". Функціональні можливості програмного забезпечення, які необхідно реалізувати. Інтерфейс програмного забезпечення.

    курсовая работа [2,3 M], добавлен 02.06.2016

  • Основи безпеки даних в комп'ютерних системах. Розробка програми для забезпечення захисту інформації від несанкціонованого доступу: шифрування та дешифрування даних за допомогою криптографічних алгоритмів RSA та DES. Проблеми і перспективи криптографії.

    дипломная работа [823,1 K], добавлен 11.01.2011

  • Аналіз задач, які вирішуються з використанням інформаційної системи. Вибір серверного вирішення, клієнтської частини, мережного вирішення, системного програмного забезпечення. Розробка підсистеми діагностики, керування, забезпечення безпеки даних.

    курсовая работа [1,5 M], добавлен 22.04.2011

  • Структура інформаційної системи КККЕіП ім. М.П. Сая. Локальна комп'ютерна мережа на підприємстві, конфігурація персональних комп’ютерів. Аналіз апаратних засобів, системного програмного та документального забезпечення структурних підрозділів коледжу.

    отчет по практике [6,4 M], добавлен 27.05.2019

  • Аналіз формування податкової звітності. Розробка проекту інтерфейсу, інформаційної, статичної та динамічної моделей програмного забезпечення. Розрахунок економічної ефективності впровадження програмного забезпечення формування податкової звітності.

    дипломная работа [3,5 M], добавлен 26.04.2012

  • Аналіз сучасних методів та технологій проектування програмного забезпечення. Вибір цільової мобільної платформи. Розробка екранних форм, діаграми класів. Вимоги до програмного продукту. Аналіз небезпечних факторів у відділі роботи з фізичними особами.

    дипломная работа [508,1 K], добавлен 02.12.2015

  • Проблеми розробки компонентного програмного забезпечення автоматизованих систем управління. Сучасні компонентні технології обробки інформації. Аналіз вибраного середовища проектування програмного забезпечення: мова програмування PHP та Apache HTTP-сервер.

    дипломная работа [2,8 M], добавлен 11.05.2012

  • Причини незаконного використання програмного забезпечення. Дослідження збитку, нанесеного комп'ютерним піратством. Ризик роботи з нелегальним програмним забезпеченням і гідності ліцензійних програм. Види захисту прав виробників програмного забезпечення.

    реферат [60,8 K], добавлен 01.06.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.