м давши додатковий простір для запису необхідних байт на місці байт квітів. Якщо врахувати що мінімальний розмір палітри становить 2 кольори (6 байт), то максимальний розмір впроваджуваного повідомлення може бути 256 Г— 3-6 = 762 байт. Недолік - низька криптозахищені, прочитати запроваджене повідомлення можна за допомогою будь-якого текстового редактора, якщо допис не піддавалося додатковому шифруванню.
3. Практична реалізація
Всі необхідні інструменти для реалізації алгоритмів шифрування і дешифрування будуть знаходитися в пакеті com.prog.steg. Цей пакет включає в себе інтерфейс Encryptor з методами encrypt і decrypt, клас Binary, що надає можливість роботи з масивами бітів, а також класи виключень UnableToEncryptException і UnableToDecryptException, які повинні бути використані в методах інтерфейсу Encryptor у разі помилок кодування і декодування відповідно.
Основний пакет програми com.prog.steg буде включати в себе запускається клас програми зі статичним методом main, що дозволяє запускати програму; клас, який зберігає в собі параметри програми; та пакети з іншими класами.
Реалізація безпосередньо самих алгоритмів буде представлена ​​в пакеті com.prog.steg.gif класами GIFEncryptorByLSBMethod і GIFEncryptorByPaletteExtensionMethod. Обидва цих класу будуть реалізувати інтерфейс Encryptor. p align="justify"> На основі структури формату GIF можна скласти загальний алгоритм впровадження повідомлення в палітру зображення:
В
Рис. 4. Загальний алгоритм впровадження повідомлення в палітру зображення
Для визначення присутності повідомлення в зображенні необхідно в початок повідомлення додавати якусь послідовність біт, яку дешифратор зчитує в першу чергу і перевіряє на коректність. Якщо вона не збігається, то вважається, що в зображенні немає прихованого повідомлення. Далі треба вказувати довжину повідомлення. Потім сам текст повідомлення. p align="justify"> комп'ютерна стеганографія приховування інформація
3.1 Реалізація програми
Реалізацію всієї програми можна розбити на дві складові: реалізація методів шифрування і дешифрування інтерфейсу Encryptor, в класах GIFEncryptorByLSBMethod і GIFEncryptorByPaletteExtensionMethod, і реалізація інтерфейсу користувача.
Поля firstLSBit і secondLSBit містять номери бітів кожного байта зображення, в які повинно заноситися і звідки зчитуватися повідомлення. Поле checkSequence зберігає контрольну послідовність біт для забезпечення розпізнавання вбудованого повідомлення. Статичний метод getEncryptingFileParameters повертає параметри зазначеного файлу і характеристики потенційного повідомлення. p align="justify"> Код методу encrypt класу GIFEncryptorByLSBMethod:
@ Overr...