Это именно то, для чего предназначен CryptoStream.
Полный образец см. В Документация MSDN , в частности, метод EncryptTextToFile.
Вы просто создаете CryptoStream «поверх» любого FileStream (или любого другого потока), а затем записываете данные непосредственно в криптопоток:
FileStream fStream = File.Open(fileName, FileMode.OpenOrCreate);
// Create the CryptoStream
CryptoStream cStream = new CryptoStream(fStream, Rijndael.Create().CreateEncryptor(Key, IV), CryptoStreamMode.Write);
// Create a StreamWriter using the CryptoStream.
StreamWriter sWriter = new StreamWriter(cStream);
// Write data to be encrypted:
sWriter.WriteLine("Some text that will get encrypted");
sWriter.WriteLine("More data...");