Забезпечення конфіденційності та цілісності інформації на основі легковісної криптографії

Додаток для операційної системи Android, призначений для забезпечення конфіденційності. Робота з текстовими файлами та захист інформації за допомогою легковісного криптоалгоритму. Мова об’єктно-орієнтованого програмування Java, візуалізація.

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

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

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

NetBeans IDE також підтримує інтеграцію Android SDK через плагін, який розроблено третіми особами. Деяка функціональність плагіна стає доступною лише після оформлення платної підписки. Через це NetBeans IDE використовувати недоцільно.

Порівняємо деякі характеристики даних IDE:

Табл. 2.1Порівняння IDE.

Eclipse

NetBeans

Android Studio

BuidSystem

Ant

Ant

Gradle

NDK Support

+

-

-

WYSIWYG редактор

+

-

+

Apk signing

+

-

+

Code complition

+

-

+

Для розробки додатку бакалаврської роботи буде використане середовище Android Studio. Адже воно має всі необхідні інструменти для комфортної розробки і тестування. Відсутність низькорівневої розробки NDK Support не є суттєвою, а нова система складання проекту Gradle є більш ефективною.

  • 2.3 Реляційні бази даних для Android
    • Для забезпечення кращого захисту інформації до додатку буде додана функція автентифікації користувача, для цього необхідно використати реляційні бази даних для Android.
    • SQLite
    • SQLite -- полегшена реляційна система керування базами даних для Android. Втілена у вигляді бібліотеки, де реалізовано багато зі стандарту SQL-92. Сирцевий код SQLite поширюється як суспільне надбання, тобто може використовуватися без обмежень та безоплатно з будь-якою метою. Фінансову підтримку розробників SQLite здійснює спеціально створений консорціум, до якого входять такі компанії, як Adobe, Oracle, Mozilla, Nokia, Bentley і Bloomberg.
    • Особливістю SQLite є те, що вона не використовує парадигму клієнт-сервер, тобто рушій SQLite не є окремим процесом, з яким взаємодіє застосунок, а надає бібліотеку, з якою програма компілюється і рушій стає складовою частиною програми. Таким чином, як протокол обміну використовуються виклики функцій (API) бібліотеки SQLite. Такий підхід зменшує накладні витрати, час відгуку і спрощує програму. SQLite зберігає всю базу даних (включаючи визначення, таблиці, індекси і дані) в єдиному стандартному файлі на тому комп'ютері, на якому виконується застосунок. Простота реалізації досягається за рахунок того, що перед початком виконання транзакції весь файл, що зберігає базу даних, блокується; ACID-функції досягаються зокрема за рахунок створення файлу-журналу.
    • SQLite підтримує типи даних TEXT (схожий з String в Java), INTEGER (схожий з long в Java) і REAL (схожий з double в Java). Всі інші типи даних повинні бути сконвертовані в один з цих перед збереженням в базу даних. SQLite сам по собі не перевіряє, чи відповідають записані дані типом даних відповідного стовпця [27].
    • На сьогоднішній день також є досить велика кількість рішень, які значною мірою спрощують роботу з базами даних. Це ORM-фреймворки. Їхньою особливістю є те, що вони дозволяють перетворювати конкретні об'єкти у відповідні SQL-запити та навпаки. При цьому відкривається можливість працювати з базами даних як зі звичайними об'єктами. Основним недоліком такого підходу є те, що ORM-бібліотека може мати складну та неефективну реалізацію роботи з базою даних.
    • Основні ORM-фреймворки для Android.
    • Sugar ORM
    • Sugar ORM є одним з ORM-фрейморків, що спеціально розроблений для платформи Android. Для його налаштування потрібна мінімальна кількість дій. Треба лише задати чотири параметри в маніфесті проекту [28]. Всі персистентні класи необхідно успадкувати від SugarRecord. Всі рутинні операції зі створення таблиць виконуються автоматично. Для виконання CRUD операцій є заздалегідь реалізовані функції. Підтримується побудова власних запитів до бази даних. Для цього використовується підхід Query Builder, який дозволяє гнучко будувати необхідні запити з використанням об'єктно-орієнтованого стилю.
    • ORM Lite
    • OrmLite Популярний фреймворк для Java, що має версію, адаптовану під ОС Android. Перевагами даного рішення є:

· Використання анотацій в класах;

· Підтримка різних БД, у тому числі й SQLite;

· Архітектура, що відповідає принципу KISS.

За допомогою анотацій помічається кожен клас, який потрібно помістити до бази даних. При цьому в класі повинен бути присутній конструктор без аргументів. Особливістю даного фреймворку є те, що можливе автоматичне керування сполученням з базою даних. Для цього потрібно наслідувати кожну activity додатку від класу ORMLiteBaseActivity. Це допоможе запобігти можливим витокам пам'яті через незакрите сполучення [28].

Realm for Android

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

Сьогодні Realm Android можна інтегрувати лише до Android Studio [30].

Проаналізувавши різні ORM-бібліотеки, можна зробити висновок, що через складну та неефективну реалізацію роботи з базою даних, програма буде працювати повільніше та споживати більше оперативної пам'яті, ніж програми, де всі транзакції реалізовані програмістом самостійно. Тому для розробки додатку буде використана система керування базами даних Android SQLite.

    • Висновки до розділу
    • У першому підрозділі було зроблено огляд найпопулярніших в наш час мобільних програмних платформ, проведено детальний аналіз кожної з них. У другому розглянуто особливості сучасних технологій для розробки мобільних додатків під Android. Було обране середовище Android Studio для розробки додатку . У третьому було зроблено огляд реляційних баз даних для Android.
    • Із наведеного матеріалу в розділі можна зробити такі висновки:

· OS Android є однією із найбільш популярних мобільних операційних систем, вона є відкритою і це дозволяє розробнику реалізувати на ній більше функцій в порівнянні з іншими операційними системами;

· сьогодні існує широкий вибір технологій та інструментів для розробки Android додатків;

· SQLite - найкраще рішення для створення реляційних баз даних на мобільних платформах.

  • Розділ 3. Розробка програмного продукту
    • 3.1 Засоби розробки
    • В даній бакалаврській роботі розробляється додаток для забезпечення захисту персональних документів для мобільних пристроїв. В якості засобу розробки на Java під Android було обрано IDE Android Studio 1.1.0, а також система керування базами даних SQLite, обґрунтування вибору надано в розділі 2.
    • Під час розробки додатку були використані такі компоненти Android Studio:
    • Activity (Активність, Діяльність) - являє собою екран для користувача інтерфейсу, який представлений класом Activity і розміткою у вигляді XML-файла (розмітку можна створювати і програмно). Розроблюваний додаток складається з декількох форм (Activity) і може перемикатися під час роботи додатку.
    • Intents (Наміри) - асинхронні повідомлення, які дозволяють додатку запросити функції з інших служб чи Activity. Додаток може робити прямі запити службі або Activity або запитати у Android зареєстрованої служби. Для прикладу, додаток може запитати через Intent вбудований додаток. Контакти для отримання даних або запустити браузер при натисканні посилання в тексті програми. Розроблюваний додаток використовує Intents для переходу на іншу Activity з отриманням результату та без.
    • Views (Представлення, Вид, Елемент управління, Компонент) - користувацький інтерфейс, створюваний віджетами класів. Елементи управління: кнопки, текстові поля, прапорці, перемикачі і т.д. Звичайно додаток для Android використовує дані елементи управління для зручної навігації.
    • Services (Служби) - виконують фонові завдання без надання користувальницького інтерфейсу (наприклад, програвання музики). Вони можуть повідомляти користувача через систему повідомлень Android [31].
    • Android Studio надає новий інструментарій для розробки Gradle.
    • Gradle - система автоматичного складання, побудована на принципах Apache Ant і Apache Maven. В Eclipse використовувалася система Ant. В основному можливості системи використовувалися в конторах для автоматизації різних завдань. Gradle супроводжує під час розробки постійно [32].
    • Gradle не є винаходом для Android Studio, система була розроблена раніше і використовувалася в додатках для Java, Scala та іншими мовами.
    • Система збірки Gradle дуже потужна і складна. Самі команди в Gradle являють собою звичайний текст з використанням синтаксису Groove для конфігурації.
    • 3.2 Архітектура програмного забезпечення

Діаграма класів (пакет texteditor)

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

Діаграма містить сім класів, а саме:

· "Activity" - один із найважливіших класів, з якого будується Android додаток, відповідає за створення віконних форм;

· "MainActivity" - головний клас програми, відповідає за взаємодію користувача з файловими даними та містить основні функції роботи програми, забезпечує шифрування та розшифровування файлів;

· "PickFileActivity" - клас, що відповідає за роботу з файлами, а саме викладення повного списку файлів користувача, видалення непотрібних файлів, а також огляду інформації про файл;

· "SettingsActivity" - клас, функції якого забезпечують налаштування шрифтів для текстового редактору;

· "RegistrationActivity" - клас, що відповідає за реєстрацію нових користувачів додатку;

· "LoginActivity" - клас, призначенням якого є перевірка на наявність користувача в базі даних при автентифікації;

· "DBUserAdapter" - клас для роботи з базами даних, функції класу забезпечують відкриття та закриття БД, додавання нового користувача до БД, а також перебірку елементів таблиці для автентифікації користувача;

· "MD5CheckSum" - клас, що містить функції для хешування текстових файлів на основі алгоритму MD5.

Діаграма має зв'язки наслідування та асоціації.

Рис 3.1. Діаграма класів додатку (пакет texteditor)

Діаграма послідовності

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

Взагалі діаграма послідовності - діаграма UML, що відображає взаємодії об'єктів впорядкованих за часом.

Рис. 3.2. Діаграма послідовності дій

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

Діаграма компонентів

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

Рис. 3.3. Діаграма компонентів

Специфікація функцій

Функції класів (пакет texteditor) програмного забезпечення наведені в таблиці 3.1.

Функції класів пакету texteditor. Табл 3.1

Клас

Функція

Опис функції

"MainActivity" - головний клас програми, відповідає за взаємодію користувача з файловими даними та містить основні функції роботи програми, забезпечує шифрування та розшифровування файлів;

public void onCreate(Bundle savedInstanceState)

Реалізує запуск віконної форми з усіма елементами управління.

public boolean onCreateOptionsMenu(Menu menu)

Запускає меню користувача у віконній формі.

public boolean onOptionsItemSelected(MenuItem item)

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

public void onClick(View arg0)

Викликається при нажатті на кнопку "Покинуть профиль".

public void openFile(String fileName)

Виконує відкриття файлу, що має вказане ім'я для його подальшого редагування.

private void createFile(String fileName)

Створює новий файл із іменем вказаним користувачем.

private void saveFile(String fileName)

Застосовується для збереження файлу в зашифрованому вигляді.

public void onResume()

Викликається після застосування налаштувань користувача.

protected void onActivityResult(int requestCode, int resultCode, Intent data)

Викликається після повернення із іншої віконної форми.

public String getFileName(String path)

Застосовується для отримання імені файлу із його повного імені.

"PickFileActivity" - клас, що відповідає за роботу з файлами, а саме викладення повного списку файлів користувача, видалення непотрібних файлів, а також огляду інформації про файл;

public void onCreate(Bundle savedInstanceState)

Реалізує запуск віконної форми з усіма елементами управління.

onClick(View arg0)

Викликається при натисненні на одну із кнопок.

public void listFilesFromFolder(final File folder)

Застосовується для отримання списку файлів з директорії.

public File getPath(Context context)

Застосовується для отримання шляху до директорії додатку з файлами.

public String getFileName(String path)

Використовується для отримання імені файлу із його повного імені.

public void getInfo(String filename)

Використовується для отримання інформації про обраний файл.

"SettingsActivity" - клас для керування налаштуваннями шрифтів;

public void onCreate(Bundle savedInstanceState)

Використовується для отримання налаштувань із файлу ресурсів.

"LoginActivity" - клас, призначенням якого є перевірка на наявність користувача в базі даних;

protected void onCreate(Bundle savedInstanceState)

Використовується для загрузки віконної форми автентифікації, а також перевірки наявності введених інформації (логін, пароль) в базі даних.

"RegistrationActivity" - клас, що відповідає за реєстрацію нових користувачів додатку;

protected void onCreate(Bundle savedInstanceState)

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

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

public void open()

Використовується для відкриття бази даних.

public void close()

Використовується для закриття бази після сеансу роботи.

public long AddUser(String username, String password, String passcur)

Використовується для додавання нового користувача до бази даних.

public boolean Login(String username, String password)

Використовується для перевірки на наявність користувача в базі даних.

"MD5CheckSum" - клас, що містить функції для хешування текстових файлів на основі алгоритму MD5.

public static byte[] createChecksum(String filename)

Використовується для створення хешу для заданого файлу.

public static String getMD5Checksum(String filename)

Використовується для отримання хешу з конкретного файлу для подальшої його перевірки.

  • 3.3 Реалізація криптоалгоритму Curupira
    • Для шифрування та розшифровування файлів при роботі з додатком був обраний легковісний криптографічний алгоритм Curupira.
    • Даний алгоритм шифрує дані 96-бітовими блоками з використанням ключа одного з наступних фіксованих розмірів: 96, 144 і 192 біта. Для шифрування файлів додатку був обраний ключ розміром 96 біт.
    • Блок даних представляється у вигляді байтового масиву розміром 3 X 4 (це і є внутрішній стан алгоритму), над яким у кожному раунді виконується наступна послідовність операцій:

1) таблична заміна кожного байту стану;

2) байтова перестановка в межах рядків масиву стану;

3) розсіююче перетворення, що виконується шляхом множення фіксованої матриці на стан алгоритму;

4) накладення операцією XOR ключа шифрування на стан певного

фрагменту.

Для програмної реалізації даного алгоритму був створений окремий пакет класів curupira. Діаграма класів пакету приведена на рисунку 3.4.

Рис. 3.3. Діаграма класів (пакет curupira)

Функції класів (пакет curupira) наведені в таблиці 3.2.

Функції класів пакету curupira. Табл. 3.2

Клас

Функція

Опис функції

"Curupira" - головний клас, що відповідає за шифрування тексту, реалізує інтерфейс BlockCipher.

public int blockBits()

Повертає блок бітів.

public int keyBits()

Повертає біти ключа.

public void makeKey(byte[] cipherKey, int keyBits)

Використовується для формування ключа шифрування.

public void encrypt(byte[] mBlock, byte[] cBlock)

Використовується для шифрування текстового файлу.

public void decrypt(byte[] cBlock, byte[] mBlock)

Використовується для розшифровування текстового файлу.

public void sct(byte[] cBlock, byte[] mBlock)

Застосовується для Гамма, Пі і Тета перетворень над матрицею.

private void nonLinearLayerGama (byte[][] textMatrix)

Використовується для реалізації нелінійного Гамма перетворення.

public void permutationLayerPi(byte[][] textMatrix)

Використовується для реалізації Пі перестановки.

private void linearDiffusionLayerTheta(byte[][] textMatrix)

Використовується для реалізації нелінійного Тета перетворення.

private void keyAdditionLayerSigma(byte[][] textMatrix, byte[][] key)

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

private void roundFunctions(byte[][] textMatrix, byte[][] key, boolean encrypt)

Функція, що виконує Гамма, Пі і Тета перетворення над матрицею, якщо вона вже зашифрована.

private void keyEvolutionPsi(byte[][] key, int round, boolean invert)

Функція для зміни ключа на одному із циклів.

private void evolveKey()

Функція для ускладнення ключа.

private void constantAdditionLayerSigma(byte[][] key, int round)

Функція для зміни константи.

"Utilidades" - допоміжний клас для реалізації різних перетворень;

public static void blockToMatrix(byte[] block, byte[][] matrix, boolean columnMapping)

Перетворює блок (масив байт) в матрицю.

public static void matrixToBlock(byte[] block, byte[][] matrix, boolean columnMapping)

Перетворює матрицю в блок (масив байт).

public static void copyMatrix(byte[][] in, byte[][] out)

Використовується для копіювання матриць.

public static byte[] convertStringToVector(String plainText)

Перетворює рядок в вектор.

public static byte stringToByte(String sByte)

Перетворює рядок в байти.

public static String byteToHex(byte b)

Перетворює байт в 16-ову систему.

public static String byteToHex(byte[] b)

Перетворює масив байт в 16-ову систему.

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

  • 3.4 Налаштування баз даних SQLite
    • Найкращим рішенням для роботи з базами даних на Android на сьогоднішній день є система управління базами даних SQLite.
    • Для повноцінної роботи з даною системою потрібні 2 класи:
    • SQLiteOpenHelper - клас для створення та оновлення бази даних.
    • У додатку було створено клас-спадкоємець DatabaseHelper від SQLiteOpenHelper і описано в ньому два методи:

· onCreate (SQLiteDatabase db) - викликається лише один раз при створенні бази даних.

· onUpgrade (SQLiteDatabase db, int oldVersion, int newVersion) - викликається коли необхідно оновити БД (в даному випадку під оновленням мається на увазі не оновлення записів, а оновлення структури бази даних).

SQLiteDatabase - клас, який надає методи для додавання, оновлення, видалення і вибірки даних з БД. В розроблюваному додатку були описані такі методи:

· open() - викликається перед початком роботи для відкриття доступу до таблиць бази даних.

· close() - викликається в кінці сесії для правильного закінчення роботи з базами даних.

Мною також був описаний метод для додавання нового користувача до бази AddUser(String username, String password, String passcur).

Всі ці методи були завернуті в клас DBUserAdapter для зручності їх подальшого використання в тілі програми.

SQLite використовує звичайні SQL запити для керування базами даних. При написанні функцій були використані такі SQL запити:

· CREATE TABLE - для створення таблиці із заданням імені та її полів. ("create table users (_id integer primary key autoincrement, " + "username text not null, " + "password text not null, " + "passcur text not null);" );

· DROP TABLE - для видалення таблиці, якщо таблиця з таким іменем вже наявна.( "DROP TABLE IF EXISTS users");

· SELECT * FROM - для вибірки записів із таблиці для подальшого їх порівняння із введеними користувачем даними. ("SELECT * FROM " + DATABASE_TABLE + " WHERE username=? AND password=?" );

· UPGRADING DATABASE - для оновлення БД до новішої версії. ("Upgrading database from version " + "to version");

    • Висновки до розділу
    • У першому підрозділі було обрано всі необхідні інструменти для розробки додатку. У другому - описано архітектуру ПЗ, а саме побудовано діаграму класів, послідовності та компонентів. Також приведено специфікації функцій для кожного з класів обох пакетів (texteditor, curupira).
    • Описано принцип роботи легковісного криптографічного алгоритму Curupira, а також його реалізацію на мові Java.
    • В останньому підрозділі наведені кроки налаштування бази даних SQLite, описано специфіку роботи з SQLite.
  • Розділ 4. Тестування програмного продукту
    • 4.1 Інструкція користувача

Виконаємо запуск додатку. Згідно ієрархії Activities завантажиться LoginActivity для автентифікації користувача, де потрібно ввести логін і пароль, які перевірятимуться на наявність в базі даних.

Рис. 4.1. LoginActivity (форма автентифікації)

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

Рис. 4.2. RegistrationActivity (реєстраційна форма)

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

Рис. 4.3. MainActivity (основне вікно програми)

Також користувач має можливість налаштувати шрифти (розмір, стиль), обрати режим відкриття та шифрування.

Рис. 4.4. SettingsActivity (вікно налаштувань)

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

Рис. 4.5. PickFileActivity (файловий менеджер)

Навігація по додатку працює коректно, збоїв не помічено. Це говорить про коректну реалізацію ієрархії activities.

  • 4.2 Тестування роботи додатку
    • Додаток тестується на планшетному комп'ютері ASUS ME7 із встановленою ОС Android 4.4 та об'ємом оперативної пам'яті - 1 ГБ. До уваги буде братися робота додатку у фоновому режимі та при шифруванні файлу відносно великого розміру.

Рис. 4.6. Графік залежності зайнятої оперативної пам'яті від часу

За допомогою спеціальних додатків було відсліджено використання оперативної пам'яті протягом періоду роботи даного додатку.

З графіку можна зробити висновки, що додаток у фоновому режимі споживає достатньо мало оперативної пам'яті (10 - 50 МБ), що є хорошим показником продуктивності. Проте під час шифрування або розшифровування кількість використовуваної оперативної пам'яті додатком стрімко зростає (до 600 МБ). Через використання легковісного криптоалгоритму час шифрування відносно невеликий.

Для чистоти експерименту при тестуванні всі інші фонові програми пристрою були вимкнені.

При середніх налаштуваннях яскравості екрану, при ємності батареї 3910 mAh енерговитрати при роботі додатку становили 1 відсоток за 10 хвилини, тобто 6 відсотків за 1 годину роботи, що є чудовим показником енергоефективності.

Отже, даний додаток без проблем можна використовувати на всіх мобільних пристроях з ОС Android з оперативною пам'яттю більше 64 МБ. Чим більші ресурси матиме пристрій, тим швидше виконуватиметься процес шифрування та розшифровування.

  • 4.3 Тестування криптоалгоритму Curupira
    • Для тестування криптоалгоритму Curupira створимо файл, що складатиметься із 10 000 символів. Шифруватимемо його за допомогою різних конфігурацій, а саме:

· Розмір ключа - 96 біт, раундів - 10;

· Розмір ключа - 144 біт, раундів - 14;

· Розмір ключа - 192 біт, раундів - 18.

Для кращої наглядності експерименту створимо ще кілька конфігурацій (змінюємо кількість раундів для тих самих розмірів ключів):

· Розмір ключа - 96 біт, раундів - 10;

· Розмір ключа - 144 біт, раундів - 12;

· Розмір ключа - 192 біт, раундів - 14.

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

Рис. 4.7. Графік залежності довжини ключа від часу шифрування

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

Рис. 4.8. Графік залежності кількості раундів від часу шифрування

Залежність кількості раундів від швидкості шифрування носить експоненціальний характер.

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

    • Висновки до розділу
    • У розділі було проведено тестування програмного продукту. Створена інструкція користувача із скріншотами. Під час випробувань, виявилось, що додаток не потребує великого об'єму оперативної пам'яті, яка найбільше споживається саме при шифруванні та розшифровуванні файлів. Показники енерговитрат теж виявились ефективними.
    • Було проведено ще кілька тестів алгоритму шифрування, встановлено залежність довжини ключа та кількості раундів від часу шифрування.
    • Час шифрування відносно інших алгоритмів мінімальний. Тривалість шифрування у RSA у 10-ки разів перевищує тривалість шифрування Curupira.
  • Розділ 5. Охорона праці
  • В даній бакалаврській роботі було розроблено додаток для забезпечення конфіденційності та цілісності інформації на мобільних пристроях. Тому метою цього розділу є врахування факторів, при яких виникає небезпека ураження організму при розробці даного алгоритму.
  • Перелік потенційних небезпек, що виникають при виконанні даної роботи:

· негативна дія мікроклімату в робочій зоні приміщення;

· недостатнє освітлення приміщення;

· вплив шуму, пилу;

· недостатня вентиляція приміщення;

· ймовірність виникнення пожеж в офісному приміщенні;

· ймовірність ураження електричним струмом.

  • 5.1 Аналіз небезпечних та шкідливих чинників при виконанні роботи
    • Згідно НПАОП 0.00-1.28-10 "Правил охорони праці під час експлуатації електронно-обчислювальних машин" неприпустиме розміщення приміщень для роботи з ЕОМ у підвалах або на цокольних поверхах.

Тому приміщення, що буде розглядатися, знаходиться на третьому поверсі п'ятиповерхового будинку. Два вікна (1,5х1,5) кімнати орієнтовані на схід. Спрощений план приміщення зображений на рис. 5.1.

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

Табл. 5.1Характеристики приміщення.

Найменування

Позначення

Значення

Довжина

A

6,5 м

Ширина

B

5,0 м

Висота

H

3,5 м

Площа

S

32,5 м2

Об'єм

V

113,75 м3

Оскільки у приміщенні працює 4 робітника. Порахуємо площу та об'єм приміщення на кожного з них. Обраховані значення наведені в таблиці 5.2.

Табл 5.2 Площа та об'єм на одного працівника.

Геометрична характеристика

Нормативне Значення

Фактичне значення

Площа, S

не менш 6.0

8,125

Обсяг, V

не менш 19.5

28,438

За даними, приведеним у таблиці 5.2, можна зробити висновок, що геометричні розміри приміщення відповідають нормативним вимогам.

Рис 5.1. План приміщення

Аналіз метеорологічних умов і забруднення повітряного середовища

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

Табл 5.3 Оптимальні і фактичні значення параметрів мікроклімату.

Оптимальні для Iа

Фактичні

Пора року

Температура, оС

Воло гість, %

Швидкість повітря, м/с

Температура, оС

Вологість %

Швидкість повітря, м/с

Тепла

23-28

50-70

0,1

26-29

45-50

0,12

Холодна

22-24

40-60

0,1

19-22

45-50

0,1

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

В холодну пору року для підтримання оптимальної температури потрібно використовувати водяне опалення.

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

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

Аналіз виробничого шуму

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

Тому основним джерелом шуму є комп'ютерна техніка.

Джерелами шуму при роботі ЕОМ є механічні частини принтера, що рухаються, і вентилятори( Lпк = 30 дБА, , Lпр = 45 дБА.) При роботі вентиляційної системи, що забезпечує оптимальний температурний режим електронних блоків ЕОМ і вмонтована в задню панель, створюється аеродинамічний шум. Час роботи ПЕОМ - 8 год. за добу; принтери працюють не більш 1,5-2 год. за добу.

Згідно ДСН 3.3.6-037-99 "Санітарних норм виробничого шуму, ультразвуку та інфразвуку" рівень шуму не повинен переважати 50 дБА.

При наявності великої кількості джерел шуму еквівалентне значення шуму LЭКВ, дБА розраховують по наступній формулі:

, де

· Li - рівень шуму i-го джерела (пристрою),

· ti - час роботи i-го джерела (пристрою),

· Т - загальний час роботи,

· n - кількість джерел шуму даного типу;

Для даного приміщення необхідні змінні складають:

Загальний час роботи, тобто Т=8 годин.

Для фонового шуму (вентиляторів):

· L1 = 30 дБА,

· T1 = 8 годин,

· n1=4;

Для лазерного принтера Samsung SCX-4100:

· L2 = 45дБА,

· Т2 = 2 години,

· n2=1;

Підставляємо отримані значення у формулу вказану вище:

дБА

Таким чином, еквівалентний рівень шуму в приміщенні за робочий день Lэкв = 40,8 дБА , тобто не перевищує норму 50 дБА.

Аналіз природнього та штучного освітлення

Природне освітлення в розглянутому приміщенні представлено системою однобічного бічного освітлення з двома вікнами з загальної шириною 3,0 м. Висота вікна складає 1,5 м. Загальна площа вікон - 4,5 м2.

Щодо штучного освітлення, то у даному приміщенні використовується система загального рівномірного освітлення. У приміщенні наявні чотири стельових світильника, у кожному з яких знаходиться по дві люмінесцентні лампи ЛБ-80 (потужність 80 Вт) з світловим потоком 5220 лм кожна. Для розрахунку фактичної освітленості робочої поверхні використовується

формула :

· Е - фактична освітленість робочої поверхні, лк;

· Ф - світловий потік лампи. У даному випадку це сумарний світловий потік ламп, що входять у світильник. Він дорівнює 2*5220 = 10440 лм;

· N-кількість світильників в приміщенні;

· - коефіцієнт використання світлового потоку;

· S - площа приміщення, м2;

· К- коефіцієнт запасу. К = 1,4;

· Z- коефіцієнт нерівномірності освітлення, Z = 1,1.

Коефіцієнт використання світлового потоку визначають в залежності від індексу приміщення i= (А*B)/(Н*(А+B)), де А -довжина приміщення, м; B - ширина приміщення, м; Н- висота, м; для даного приміщення і = 0,81. Тому = 0,45.

Таким чином, підставляючи знайдені значення у формулу , одержуємо, що фактична освітленість Е дорівнює 376 люкс. Відповідно до ДБН В.2.5-28-2006 "Природне і штучне освітлення" норма освітлення повинна складати 300 люкс, отримане значення Е задовольняє норму.

  • 5.2 Аналіз електробезпеки

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

Дане приміщення не є приміщенням підвищеної електричної небезпеки. Споживачами електроенергії є 4 ПЕОМ, 4 дисплея, принтер та джерела освітлення.

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

Для цього в ПЕОМ застосовується спеціальна мережна вилка с трьома контактами (два контакти служать для підключення живлення, а третій для підключення до занулюючого проводу).

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

Крім того, сучасні ПЕОМ розробляються відповідно до вимог по електробезпеці для побутових приладів, тому які-небудь додаткові засоби захисту від ураження електричним струмом не вимагаються.

Таким чином, норми електробезпеки згідно ДНАОП 0.00-1.31-99 "Правил охорони праці під час експлуатації електронно-обчислювальних машин" виконані.

  • 5.3 Аналіз пожежної безпеки
    • Дане приміщення відноситься до категорії В. Згідно з НАПБ Б.03.002-2007 "Норм визначення категорій приміщень, будинків за вибухопожежною та пожежною небезпекою", приміщення, що містять ЕОМ, відносяться до категорії В, через легку займистість матеріалів, що входять до складу ЕОМ.

Для гасіння пожежі в коридорі розташовані пінні вогнегасники, а безпосередньо в робочій кімнаті, де встановлені комп'ютери, додатково знаходяться вуглекислотно-брометилові вогнегасники (3 шт.). Дана кількість є найбільш оптимальною, адже на 10 м2 повинен бути 1 вогнегасник, а площа робочої кімнати 32,5 м2.

Така кількість, розташування та умови зберігання первинних засобів пожежогасіння відповідають вимогам ISO 3941-77 "Пожежі. Класифікація".

Будинок має два виходи: через головний хід і спеціальний евакуаційний вихід. Шляхи евакуації відповідають установленим нормам. Двері відкриваються назовні. Усі співробітники ознайомлені з планом евакуації.

Таким чином, усі вимоги ДБН В.1.1-7-2002 "Пожежна безпека будівель", щодо евакуаційних виходів задовольняються.

Для попередження пожежі в приміщенні, згідно вимогам ДБН, передбачена система пожежної сигналізації.

Як сигналізатори виникнення пожеж застосовані теплові оповіщувачі типу ІП-105, димові оповіщувачі типу ДІП-3 .

Таким чином усі фактори пожежної безпеки задовольняють вимогам встановлених норм, згідно НАПБ А.01.001-2004 "Правил пожежної безпеки в Україні".

  • 5.4 Загальна інструкція з техніки безпеки
    • Перед початком роботи на ПК користувач повинен:
    • - пересвідчитися у цілості корпусів і блоків (обладнання) ПК;
    • - перевірити наявність заземлення, справність і цілість кабелів живлення, місця їх підключення.
    • Під час роботи, пересвідчившись у справності обладнання, увімкнути електроживлення ПК, розпочати роботу, дотримуючись умов інструкції з її експлуатації.
    • Забороняється:
    • - замінювати і знімні елементи або вузли та проводити перемонтаж при ввімкненому ПК;
    • - з'єднувати і роз'єднувати вилки та розетки первинних мереж електроживлення, які знаходяться під напругою;
    • - знімати кришки, які закривають доступ до струмопровідних частин мережі первинного електроживлення при ввімкненому обладнанні;
    • - користуватися паяльником з незаземленим корпусом;
    • - замінювати запобіжники під напругою;
    • - залишати ПК у ввімкненому стані без нагляду.
    • Висновки до розділу
    • У даному розділі було досліджено умови приміщення, в якому розробляється даний додаток для мобільних пристроїв. В ході досліджень був проведений аналіз метеорологічних умов і забруднення повітряного середовища, аналіз виробничого шуму, природнього та штучного освітлення. Встановлено, що всі вищеперераховані фактори відповідають нормам.
    • Також аналізувалась електрична та пожежна безпеки. Усі фактори пожежної та електричної безпеки задовольняють вимогам встановлених норм.
    • В кінці розділу була описана загальна інструкція з техніки безпеки.
  • Висновки
  • Метою даної роботи була розробка додатку для забезпечення цілісності та конфіденційності інформації на основі легковісної криптографії. Додаток потрібно було розробити для ОС Android з використанням актуальних технологій з імплементацією одного із легковісних алгоритмів.
  • У першому розділі було виконано огляд існуючих засобів для забезпечення захисту інформації на мобільних пристроях. Розглянуто та наведено порівняльну характеристику сучасних легковісних алгоритмів шифрування. Після огляду існуючих програмних рішень зроблено висновок, що жоден з додатків не використовує легковісні алгоритми для шифрування, що відбивається на швидкодії шифрування великих файлів. Тому розробка додатку для забезпечення конфіденційності та цілісності інформації за допомогою легковісної криптографії на Android є актуальною.
  • У другому розділі було обґрунтовано, що для розробки додатків для ОС Android найкраще підходить середовище розробки Android Studio. З'ясовано, що для Android існує велика кількість інструментів, які дозволяють розробляти як нативні, так і кроссплатформенні додатки. Були розглянуті рішення для роботи з SQLite на платформі Android та наявні фреймворки для роботи з базами даних.
  • У третьому розділі описаний процес розробки додатку. В даному розділі була описана програмна архітектура, а саме побудовані діаграми класів, послідовностей та компонентів, наведена специфікація функцій кожного із класів. Було імплементовано легковісний алгоритм Curupira для шифрування та розшифровування текстових файлів.
  • У четвертому розділі було проведено тестування програмного продукту. Створена інструкція користувача із скріншотами. Було проведено ще кілька тестів алгоритму шифрування, встановлено залежність довжини ключа та кількості раундів від часу шифрування. Встановлено, що час шифрування відносно інших алгоритмів мінімальний.
  • У п'ятому розділі було досліджено умови приміщення, в якому розроблявся даний додаток для мобільних пристроїв. В ході досліджень був проведений аналіз метеорологічних умов і забруднення повітряного середовища, аналіз виробничого шуму, природнього та штучного освітлення. В кінці розділу була описана загальна інструкція з техніки безпеки.
  • Література

1. Верховна Рада України // Rada -- Режим доступу: http://www.zakon.rada.gov.ua/ -- Дата доступу: 01.02.15 -- Закон України "Про інформацію".

2. Богуш В. М., Кривуца В. Г., Кудін А. М., "Інформаційна безпека: Термінологічний навчальний довідник" За ред. Кривуци В. Г. -- Київ. 2004. -- 508 с.

3. Журавель М. М. // Кафедра інформатики та інформаційно-комунікаційних технологій -- Режим доступу: http://informatika.udpu.org.ua/page_id=1173 -- Дата доступу: 12.02.15 -- Проблеми захисту інформації.

4. AT ITT // Захист інформації -- Режим доступу: http://www.iit.com.ua/ -- Дата доступу: 10.02.15 -- Комплекси та засоби захисту інформації.

5. Oded Goldreich, "Foundations of Cryptography, Volume 1: Basic Tools", Cambridge University Press, 2001.

6. Назаренко Д. // BYTE Россия -- Режим доступу: http://www.bytemag.ru/articles/detail.phpID=9058 -- Дата доступу: 10.02.15 -- Криптоалгоритмы. Справочник.

7. Google inc. // Сучасні криптосистеми -- Режим доступу: https://sites.google.com/site/sucasnikriptosistemik/home -- Дата доступу: 11.02.15 -- Сучасні криптосистеми. Блочні шифри.

8. Куриляк Т. Т. // Wiki TNDU -- Режим доступу: http://wiki.tntu.edu.ua/ -- Дата доступу: 15.02.15 -- Класифікація криптоалгоритмів.

9. Панасенко С., Смагин С. // Мир ПК -- Режим доступу: http://www.osp.ru/pcworld/2011/07/13009487/ -- Дата доступу: 20.02.15 -- Облегчённые алгоритмы шифрования.

10. Admin // Store.ho.ua -- Режим доступу: http://store.ho.ua/base-of-c/heshuvannya.html -- Дата доступу: 20.02.15 -- Хешування.

11. Коржик Р. // Компьютерная газета -- Режим доступу: http://www.nestor.minsk.by/kg/2006/18/kg61802.html -- Дата доступу: 21.02.15 -- MD5.

12. Admin // Kriptografea Narod -- Режим доступу: http://kriptografea.narod.ru/Sha.html -- Дата доступу: 21.02.15 -- SHA-1.

13. Стюарт Б. // Windows IT Pro -- Режим доступу: http://www.osp.ru/win2000/2011/12/13014370/ -- Дата доступу: 21.02.15 -- MD5 и SHA-1.

14. Admin // Vsegost -- Режим доступу: http://vsegost.com/Catalog/96/9658.shtml -- Дата доступу: 21.02.15 -- ГОСТ Р 34.11-94.

15. Шнайер Б. 14.1 ГОСТ // Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. -- М.: Триумф, 2002-- 816 с.

16. CyberSafe inc. // CyberSafeSoft -- Режим доступу: http://cybersafesoft.com/rus/products/files-encryption/ -- Дата доступу: 22.02.15 -- Шифрование файлов.

17. Acronis inc. // Habrahabr -- Режим доступу: http://habrahabr.ru/company/acronis/blog/195756/ -- Дата доступу: 25.02.15 -- Защита информации на мобильных устройствах и mobilEcho 4.5.

18. Acronis inc. // Acronis Access Advanced -- Режим доступу: http://www.acronis.com/ru-ru/mobility/access-advanced/ -- Дата доступу: 03.03.15 -- Acronis Access Advanced.

19. Freesoftware Android -- Режим доступу: http://freesoftware.com.ua/android.html -- Дата доступу: 08.03.15 -- Android.

20. Admin // UaAndroid -- Режим доступу: http://uandroid.in.ua/167-arhtektura-os-android.html -- Дата доступу: 13.03.15 -- Архітектура OS Android.

21. Admin ItTechnology // It-Technolog -- Режим доступу: http://it-tehnolog.com/statti/apple-ios -- Дата доступу: 14.03.15 -- Apple IOS.

22. Мишко Є. // Wiki KDPU -- Режим доступу: http://wiki.kspu.kr.ua/index.php/ -- Дата доступу: 18.03.15 -- Операційні системи мобільних пристроїв.

23. Admin Applicature // Applicature -- Режим доступу: http://applicature.com/uk/applications-for-android-ua/ -- Дата доступу: 21.03.15 -- Переваги Android.

24. Чувашов А. П. // RAE-- Режим доступу: http://www.rae.ru/forum2012/pdf/2727.pdf -- Дата доступу: 28.03.15 -- Java 2 Micro Edition.

25. IBM developer Works // IBM -- Режим доступу: http://www.ibm.com/developerworks/ru/library/l-qt_1/ -- Дата доступу: 01.04.15 -- Программирование с Qt.

26. Вулсон Д. // Lektsii.net , Розробка застосувань Android -- Режим доступу: http://lektsii.net/2-50017.html -- Дата доступу: 04.04.15 -- Методика розробки застосувань для ОС Android.

27. Всеукраїнський студентський архів -- Режим доступу: http://antibotan.com/file.html?work_id=526938 -- Дата доступу: 05.04.15 -- Управління даними в ОС Android за допомогою СУБД SQLite.

28. Satya Narayan // GitHub -- Режим доступу: http://satyan.github.io/sugar/index.html -- Дата доступу: 05.04.15 -- Sugar ORM - Insanely easy way to work with Android database.

29. Nekdenis // Habrahabr -- Режим доступу: http://habrahabr.ru/post/143431/ -- Дата доступу: 06.04.15 -- ORM в Android c помощью ORMLite / Хабрахабр.

30. Realm -- Режим доступу: http://realm.io/docs/java/0.75.0/ --Дата доступу: 08.04.15-- Java Docs -- Realm: a mobile database that replaces Core Data & SQLite.

31. Сайт Александра Климова -- Режим доступу: http://developer.alexanderklimov.ru/android/android1.php --Дата доступу: 10.04.15-- Основные компоненты Android.

32. Gradle inc. // Open Source Build Automation -- Режим доступу: http://gradle.org/ --Дата доступу: 10.04.15-- Gradle.

Додаток 1

Зміст

MAINACTIVITY

PICKFILEACTIVITY

LOGINACTIVITY

REGISTRATIONACTIVITY

SETINGSACTIVITY

DBUSERADAPTER

BLOCKCIPHER

UTILIDADES

CURUPIRA

Додаток 2

Размещено на Allbest.ru

...

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

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