I have never heard of multithreaded CryptoStream in .NET, however, I think it depends on your encryption mode. If the ECB encryption mode, of course, you can easily make it multithreaded manually using Parallel.For or ForEach. With CBC or any other closed-loop encryption mode, it is unlikely that you can make it parallel if you do not use multiple initialization vectors. For ECB mode:
- Divide your data in arrays with several bytes (let's say you encrypt 1280 bytes with 10 streams that divide the data into 10 byte arrays that contain 0..127 bytes, 128..255 bytes, etc., each array should contain an integer number of blocks).
- Parallel.For ForEach 10- (, List < byte [] > , Parallel.ForEach ).
- 10 / Rijndael SymmetricAlgorithm.CreateEncryptor/SymmetricAlgorithm.CreateDecryptor
- .
- 1000 .
, - CryptoStream, API .