Метод, который я собираюсь реализовать, будет заключаться в потоковой дешифровке, так что единственная часть, которая находится в памяти, - это часть, которая дешифруется во время чтения при использовании данных. Вот схема трубопровода:
Это будет потоковая реализация, поэтому единственные данные в памяти - это данные, которые я использую в приложении в любой заданный момент. Это усложняет некоторые вещи - учитывая, что многие традиционные файловые приемы больше не доступны, но поскольку реализация будет основываться на потоке, я все равно буду иметь возможность искать различные точки файла, которые будут транслироваться в поток крипт для расшифровки разные разделы.
По сути, он будет зашифровывать блоки файла одновременно, поэтому, если я попытаюсь найти определенную точку, он расшифрует этот блок для чтения. Когда я читаю за блоком, он дешифрует следующий блок и освобождает предыдущий (в потоке crypt).
Эта реализация не требует от меня расшифровки в файл или в память и совместима с другими потребителями и поставщиками потоков (fstream).
Это мой «план». Я не работал с fstream такого рода раньше, и я, скорее всего, опубликую вопрос, как только буду готов работать над этим.
Спасибо за все остальные ответы - это было очень информативно.