Цель — предоставить инструменты для шифрования и дешифрования текста и файлов
Приложение предоставляет следующие методы для шифрования и дешифрования: аффинная криптосистема для латинского текста (26 букв), аффинная криптосистема для кириллического текста (30 букв), криптосистема RSA и криптосистема AES. Для шифрования кириллического текста и файлов используется a=7 и ā=13, а Z30 = {0,1,2...29}. Параметр b также выбирается из списка. Криптосистема RSA является криптосистемой с открытым ключом, одной из старейших и широко используемых для безопасной передачи данных. В криптосистеме с открытым ключом шифрующий ключ является общедоступным и отличается от расшифровывающего ключа, который хранится в секрете (приватно). Пользователь RSA создает и публикует открытый ключ на основе двух больших простых чисел вместе с вспомогательным значением. Простые числа хранятся в секрете. Сообщения могут быть зашифрованы кем угодно с помощью открытого ключа, но могут быть расшифрованы только тем, кто знает приватный ключ. Безопасность RSA основывается на практической сложности разложения на множители произведения двух больших простых чисел, так называемой «задаче факторизации». Взлом шифрования RSA известен как «проблема RSA». Не существует опубликованных методов взлома системы при использовании достаточно длинного ключа. При шифровании с помощью RSA приложение генерирует пару ключей длиной 2048 и шифрует данные блоками максимальной длиной 245, а затем расшифровывает зашифрованные данные блоками максимальной длиной 256. Стандарт расширенного шифрования (AES), также известный под своим оригинальным названием Rijndael, является спецификацией шифрования электронных данных, установленной Национальным институтом стандартов и технологий США (NIST) в 2001 году.. В приложении используется длина ключа 256 бит. В приложении используется AES/CBC/PKCS5Padding, который является криптографическим режимом работы, используемым для безопасного шифрования и расшифровки данных. CBC (Cipher Block Chaining): это режим работы, при котором каждый блок данных комбинируется с предыдущим блоком с использованием операции XOR до его шифрования. PKCS5Padding: это схема дополнения данных, которая обеспечивает, чтобы входные данные имели длину, кратную размеру блока (в данном случае 128 бит). С помощью всех методов шифрования в приложении можно хранить зашифрованные файлы в выбранном каталоге устройства, где происходит шифрование файла, в именах которых есть текст „Encrypted...”, плюс имя шифруемого файла, плюс в скобках его расширение и метод шифрования, например AES. Зашифрованный текст можно сохранять в виде файлов в папке загрузки устройства. Вместе с зашифрованными файлами ключи хранятся в отдельных файлах, имена которых составлены, как указано выше. В приложении приватный ключ для AES для сохранения шифруется методом RSA и сохраняется как отдельный файл. Таким образом, при шифровании AES сохраняются четыре файла с именами: EncryptedAes_xxx(.txt).bin – зашифрованный файл xxx.txt; EncryptedAesRSAPrivateKey_xxx.bin – приватный RSA-ключ для шифрования приватного AES-ключа для того же файла xxx.txt; EncryptedAesKey_xxx.bin – приватный AES-ключ, зашифрованный приватным RSA-ключом для того же файла xxx.txt; ivBin_xxx.bin – вектор инициализации для того же файла xxx.txt; Эти четыре файла используются при расшифровке файла, зашифрованного AES. Таким образом, при шифровании RSA сохраняются три файла с именами: EncryptedRSA_xxx(.txt).bin – зашифрованный файл xxx.txt; EncryptedRSAPrivateKey_xxx.bin – приватный RSA-ключ; EncryptedRSAPublicKey_xxx.bin – публичный RSA-ключ; При шифровании Affine Latin сохраняются два файла с именами: EncryptedAffineLatin_xxx(.txt).bin – зашифрованный файл xxx.txt; EncryptedAffineLatinKeyB_xxx.bin – параметр сдвига b; Латинские буквы заменяются на кириллические в зашифрованных файлах Affine Cyrillic. При расшифровке все файлы для соответствующего метода шифрования и соответствующего зашифрованного файла (файл с зашифрованными данными и соответствующие ключи) должны находиться в одной папке.