На концептуальном уровне SecureString выглядит как специализация ProtectedMemory.
Разумеется, его основная функция заключается в сокращении времени жизни (неизменяемых) строк внутри оперативной памяти, подкачки и аварийных дампов.Однако он также использует DPAPI для защиты данных, кроме точек входа и выхода.DPAPI использует криптографию для своей работы.Так почему SecureString был помещен в System.Security, а не в System.Security.Cryptography?
На мой взгляд, если бы криптография не использовалась в реализации, то SecureString обеспечил бы только минимальное преимущество удобства вышесуществовавший ранее StringBuilder.
В именах классов SecureString и ProtectedMemory также есть контраст между «Secure» и «Protected», я не уверен, как это может быть мотивировано.