В Stackoverflow много публикаций с жалобами на медленные операции ввода-вывода на Android.Очень часто проблема заключается в неправильном размере блока для выполнения операций записи.
Флэш-память, используемая в смартфонах, организована в больших блоках по несколько килобайт - поэтому для оптимальной скорости записи вы должны записывать только блоки по 4 КБ или несколько.
Шифры, такие как рабочий блок AES-в случае блоков по 8 байт - это может привести к значительному снижению производительности.
Я бы рекомендовал отправлять выходные данные CipherOutputStream через BufferedOutputStream с размером буфера 4 или 16 КБ.Это должно значительно ускорить процесс.
Кроме того, вы должны учитывать, что запись во флэш-память всегда медленнее, чем чтение.