Тестирование шифрования текстовых сообщений
Попытаемся зашифровать сообщение, введя неправильное подтверждение парольной фразы. Программа выведет сообщение об ошибке. Эти действия продемонстрированы на рисунках 3.1 и 3.2.
Рис. 3.1. Неверное подтверждение парольной фразы.
Рис. 3.2. Сообщение об ошибке.
Зашифруем текстовое сообщение и сохраним полученный шифротекст в текстовый файл.Эти действия изображены на рисунках 3.3, 3.4,3.5.
Рис. 3.3. Шифрование текстового сообщения.
Рис. 3.4. Сохранение шифротекста в текстовый файл.
Рис. 3.5. Содержимое текстового файла, в который был сохранен шифротекст.
Тестирование дешифрации текстовых сообщений
Попробуем расшифровать зашифрованное сообщение с помощью парольной фразы, отлично от той, что была использована при шифровании. Программа выдаст сообщение об ошибке. То же самое будет, если попытаться расшифровать сообщение с помощью ключа, длина которого отличается от длины ключа, использованного при шифровании. Результаты этих двух ситуаций изображены на рисунках 3.6 и 3.7.
Рис. 3.6 Попытка дешифрации сообщения с помощью неверной парольной фразы.
Рис. 3.7. Попытка дешифрации сообщения с помощью верной парольной фразы, но длинной ключа отличной от той, что была использована при шифровании.
Тестирование шифрования бинарных файлов
Зашифруем бинарный файл небольшого объема и посмотрим на результат. Это действие отражено на рисунках 3.8, 3.9, 3.10.
Рис. 3.8. Выбор бинарного файла для шифрования.
Рис. 3.9 Процесс шифрования.
Рис. 3.10. Исходный и зашифрованный файлы.
Зашифруем еще раз уже зашифрованный файл, используя опцию удаления шифруемого файла. Посмотрим на результат (Рисунки 3.11 и 3.12).
Рис. 3.11. Шифрование файла со включенной опцией удаления шифруемого файла.
Рис. 3.12. Исходный файл и файл, зашифрованный дважды. Файл, зашифрованный единожды, отсутствует.
Попробуем зашифровать большой бинарный файл (объем более 6 Мб). Действия отражены на рисунках 3.13, 3.14.
Рис. 3.13. Выбор большого бинарного файла.
Рис.3.14. Процесс шифрования большого бинарного файла.
Процесс шифрования файлов такого размера занимает длительное время (более нескольких минут), но в итоге завершается успешно (Рис. 3.15).
Рис. 3.15. Исходный и зашифрованный большой бинарный файл.
Причина затрат большого количества временных ресурсов в том, что реализация класса алгебры поля GF(28) далека от совершенства. Выполнение некоторых алгебраических операций реализовано через циклы, что замедляет и без того трудоемкий процесс шифрования. Данный изъян может быть устранен, если использовать побитовые операции вместо циклов там, где это возможно. Так же следует отказаться от встроенных контейнеров C#, таких как List. Потому как выделение памяти в таких контейнерах происходит неоправданно долго. Это так же ускорит работу алгоритма.