Донецкий национальный технический университет г.Донецк
Факультет комп’ютерних наук і технологій
E-mail: calipso.kate@mail.ru
Захист баз даних є надзвичайно актуальним питанням. Захист баз даних це захист самих даних та їх належне використання на робочих станціях ЕОМ мережі, а також захист будь-якої додаткової інформації, яка може буди отримана з цих даних або отримана шляхом перехресних посилань.
Серед способів захисту баз даних можна виділити декілька категорій. До першої категорії відноситься захист баз даних з використанням паролів, до другої категорії можна віднести способи, пов’язані з модифікацією вихідного файлу, зміна версії бази даних, до третьої категорії захисту відноситься шифрування значень таблиць, також відокремлюється адміністративний захист.
Розроблений авторський алгоритм захисту буде засновано на модифікації декількох способів захисту. Кодованих файл буде замасковано під графічний файл PCX, до того ж перш ніж зберегти закодований файл, він буде закодовано за допомогою симетричного алгоритму шифрування – перестановочного шифру. Ключ для шифрування генерується випадковим чином, з використанням даних введених користувачем. Ключ зберігається у згенерованому файлі і не відображається користувачу, щоб уникнути можливості його розголошення.
Весь процес кодування можна поділити на 5 етапів. Перший етап – читання вибраного для модифікації файлу бази даних Access, який має розширення MDB у файловий потік. Другий етап – розділення файлу на кількість частин, заданих користувачем. Третій етап – генерація ключа криптосистеми (випадкової послідовності) для запису блоків. Четвертий етап – створення стандартного заголовку для файлу формату PCX, як значення вертикального та горизонтального розміру зображення записуємо ключ криптосистеми. П’ятий етап – встановлення у якості значення для палітри зображення коду, що позначає довжину ключа криптосистеми. Збереження файлу у форматі PCX.
При декодуванні здійсняється наступна послідовність дій. Перший етап – із вихідного файлу, формату PCX, отримуємо значення палітри і розмірів зображення. На другому етапі з цих даних формуємо ключ для декодування файлу. Третій етап – читання з файлу записаної під виглядом зображення бази даних. Четвертий етап – відновлення вірної послідовності частин бази даних і збереження їх у файлі з розширенням MDB.
Загальну структура файлу PCX можна умовно розділити на частини: заголовок файлу (128 байт), само зображення, байт, що відокремлює зображення від палітри, палітра зображення (768 байт). Поля з заголовка використовуються ля збереження інформації про ключ, за допомогою якого проводилось шифрування файлу бази даних. Сам файл кодованої бази даних буде записано у частину файлу PCX, що несе саме зображення. Палітра зображення формується із найбільш використовуваних кольорів.
У таблиці 1 наведена інформація про структуру файлу PCX з поясненням призначень полів їх довжини і зміщення відносно початку файлу. Це задокументована (стандартна) структура файлу.
зміщення | назва | розмір | додаткова інформація | |
0 | 00h | ID | byte | Виробник |
1 | 01h | Vers | byte | Інформація о версії |
2 | 02h | Encode | byte | Спосіб кодування |
3 | 03h | BitPerPix | byte | Кількість біт на піксель |
4 | 04h | X start | word | Ліва межа |
5 | 06h | Y start | word | Верхня межа |
6 | 08h | X end | word | Права межа |
7 | 0Ah | Y end | word | Нижня межа |
8 | 0Ch | HorRez | word | Розширення дисплею по горизонталі |
9 | 0Eh | VerRez | word | Розширення дисплею по вертикалі |
10 | 0Fh | EGAPal | 48 bytes | Палітра EGA |
11 | 40h | Res 1 | byte | {-} |
12 | 41h | NumPl | byte | Кількість бітових площин |
13 | 42h | BytePerLine | word | Байтів на рядок розгортки |
14 | 44h | PallType | word | Тип палітри |
15 | 46h | HorScSize | word | Розрішення сканера по горизонталі |
16 | 48h | VerScSize | word | Розрішення сканера по вертикалі |
17 | 4Ah | Res2 | 54 bytes | Зазвичай не використовуються |
Опис полів формату, що використовуються для зберігання даних о шифруванні бази даних:
PallType – поле має значення 1, якщо ключ кріптосхеми коротше 5 символів, інакше значення даного поля встановлюється в 0.
X end – ключ кріптосхеми, якщо його довжина менша за 5 символів або перші 5 символів ключа, якщо обраний ключ довший.
Y end – ключ кріптосхеми, якщо його довжина менша за 5 символів або його залишок, якщо обраний ключ довший.
Перелік посилань: