В настоящее время я выполняю большое количество шифрования/дешифрования текста в c # с помощью AES.
При использовании чисто программной системы для обработки большого количества наборов данных, которые необходимо расшифровать, может потребоваться достаточно много времени процессора. Я знаю, что Intel выпустила свой набор инструкций AES-NI, а AMD - аналогичное.
Я использую .NET 4.0, я знаю, что Windows CNG Framework использует эти наборы инструкций, но не похоже, что AesManaged
в мире .NET делает то же самое.
Существует фантастический проект "CLR Security", который делает шлюз из .NET 3.5 в Windows CNG, однако он не поддерживается уже год, и я бы не стал (если это возможно) переходить на него умирающий проект.
В .NET 4 есть класс CNGProvider, но, по-видимому, нет достаточной документации для объединения рабочего дешифрования из него для AES.
Кто-нибудь имеет опыт работы с темой, которую он мог бы указать мне в правильном направлении о том, как реализовать AES-NI в чистой среде .NET, используя готовые классы, без необходимости выполнять p/invoke непосредственно из c #? (Было бы хорошо, если бы это делал класс-обёртка, если он поддерживается).