Можно попытаться использовать Инструмент Знака Microsoft
, Вы загружаете его как часть Windows SDK для Windows Server 2008 и.NET 3.5. После того, как загруженный можно использовать его из командной строки как так:
signtool подписывают/a MyFile.exe
, Это подписывает единственный исполняемый файл, с помощью "лучшего сертификата", доступного. (Если у Вас не будет сертификата, это покажет сообщение об ошибке SignTool.)
Или можно попробовать:
signtool signwizard
Это запустит мастер, который обойдет Вас посредством подписания Вашего приложения. (Эта опция не доступна после Windows SDK 7.0.)
, Если требуется овладеть сертификатом, который можно использовать для тестирования процесса подписания исполняемого файла, можно использовать инструмент.NET Makecert.
Инструмент Создания Сертификата (Makecert.exe)
, Как только Вы создали свой собственный сертификат и использовали его для подписания исполняемого файла, необходимо будет вручную добавить его как Доверяемый Корень CA для машины для контроль учётных записей , чтобы сказать пользователю, выполняющему его, что это от надежного источника. Важный . Установка сертификата, поскольку КОРНЕВОЙ CA подвергнет опасности Вашу пользовательскую конфиденциальность. Посмотрите, что произошло с DELL. можно найти больше информации для выполнения этого и в коде и через Windows в:
вопрос о Переполнении стека сертификаты Установки в к хранилищу сертификатов Windows Local user в C#
, Устанавливающем Самоподписанный Сертификат как Доверяемый Корень CA в Windows Vista
, Надо надеяться, который предоставляет еще некоторую информацию для любого пытающегося сделать это!
Вы можете использовать библиотеку Microsoft Accelerator . Это дает вам доступ к графическому процессору через .NET.
После изучения работы, которая требуется больше, это довольно нетривиальная вещь (если вам не нравится переписывать алгоритмы AES). Однако это возможно.
Могут быть и другие API C #, но я обнаружил Bouncy Castle API . Что вам нужно сделать, так это взять Microsoft Accelerator API и использовать его везде, где в исходном коде алгоритма AES выполняется математическая операция.
Я предлагаю создать управляемую оболочку вокруг реализации CUDA / (c ++ / cli) ИЛИ с использованием cuda.net для выполнения всего , кроме самого ядра в C #. На самом деле нет способа реализовать фактическую реализацию ядра на языке высокого уровня, с CUDA вам нужно использовать c, с opengl / directx вам нужно использовать шейдеры. Для начала загляните на cuda.net или загрузите CUDA SDK и примеры, чтобы получить представление о программировании gpgpu.
Другой вариант - Брахма (кажется, что веб-сайт не работает).
Веб-сайт Цитата:
Что такое Брахма?
Брахма есть библиотека с открытым исходным кодом, написанная для платформы .NET 3.5 (на C # 3.0), чтобы обеспечить высокоуровневый доступ к параллельным потоковым вычислениям на различных процессорах. Обратите внимание: в то время как в настоящее время у Brahma есть поставщик графических процессоров (и его фокус - GPGPU), его можно адаптировать для работы на любом процессоре.
Что я могу делать с Brahma?
Brahma 2.0 использует C # 3.0. новый синтаксис LINQ для определения потокового преобразования данных. Используя Brahma, вы можете смешивать операторы, выполняемые на графическом процессоре, и операторы, выполняемые на процессоре, в одном методе! Абсолютно не требуя связующего кода, сложные многопроходные вычисления на графическом процессоре с промежуточными операциями процессора могут быть выполнены с помощью всего нескольких строк кода. Весь требуемый код клея и шейдера автоматически генерируется Брахмой. Все, что вам нужно сделать, это написать высокоуровневый код .NET.
Я не использовал его, но я только недавно слушал подкаст об этом на скалах .NET. Звучит как хорошая библиотека, если вы этого не сделаете.
Что бы вы ни использовали для интеграции C # с графическим процессором, вы должны использовать реализацию AES CUDA. Они самые быстрые. Самая быстрая реализация выглядит так, как будто она исходит от тех же ребят, с которыми вы связались - Trinity group . Посмотрите статью «Практическая криптография с симметричным ключом на современном графическом оборудовании».