Frage

Interessantes Papier vom Trinity College Dublin:
AES-Verschlüsselung Implementierung und Analyse auf Commodity Graphics Processing Units

Die Technik nutzt openGL die GPU zu gewinnen über die numerischen Transformationen von AES erforderlich zu tun.

Wie schwierig wäre es, diese Fähigkeit zu belichten - Durchführung Stromverschlüsselung - über eine verwalteten .NET-Bibliothek?

Wie würde ich anfangen? Hinweise? Beispiele?

Bearbeiten : Jedermann hat Erfahrungen mit CUDA oder Accelerator beziehen

War es hilfreich?

Lösung

könnten Sie verwenden Microsoft Accelerator Bibliothek. Es gibt Sie auf die GPU über .NET zugreifen zu können.

Nach einem Blick in die Arbeit benötigte mehr, das ist eine ziemlich nicht-triviale Sache (es sei denn, Sie wie Umschreiben AES-Algorithmen) zu tun. Es ist jedoch möglich.

Es können auch andere C # API da draußen, aber man stieß ich auf war Hüpfburg API . Was würden Sie tun müssen, ist API Accelerator nehmen Microsoft und verwenden Sie es überall eine mathematische Operation innerhalb des Quellcodes des AES-Algorithmus durchgeführt wird.

Andere Tipps

Ich schlage vor, ein verwaltetes Wrapper um eine CUDA / (c ++ / cli) Implementierung oder mit cuda.net Schaffung alles zu tun, und die Kernel selbst in c #. Es gibt wirklich keine Möglichkeit, die tatsächliche Kernel-Implementierung in einer Hochsprache zu tun, mit CUDA Sie müssen c verwenden, mit opengl / directx Sie müssen Shadern verwenden. Um loszulegen entweder einen Blick auf cuda.net nehmen oder die CUDA SDK und Beispiele, um eine Einführung in die GPGPU-Programmierung zu erhalten.

Eine weitere Option ist Brahma (die Website scheint unten atm zu sein).

Website Zitat:

  

Was ist Brahma?

     

Brahma ist eine Open-Source-Bibliothek für den .NET 3.5 Framework geschrieben (in C # 3.0), High-Level-Zugriff auf Streaming-Berechnungen parallel auf einer Vielzahl von Prozessoren zur Verfügung zu stellen.   Bitte beachten Sie, wenn Sie zu diesem Zeitpunkt Brahma einen GPU-Provider hat (und sein Fokus GPGPU), kann es auf jede Art von Prozessor laufen angepasst werden.

     

Was kann ich tun, mit Brahma?

     

Brahma 2.0 verwendet C # 3.0 der neuen LINQ-Syntax-Streaming-Transformation von Daten zu spezifizieren. Mit Brahma, können Sie Anweisungen mischen, die auf der GPU und Anweisungen ausführen, die auf der CPU in einem einzigen Verfahren laufen! Mit absolut kein Glue-Code erforderlich, eine komplexe Multi GPU-Berechnung mit CPU-Operationen dazwischen kann mit nur wenigen Zeilen Code ausgeführt werden. Alle Kleber und Shader-Code benötigt wird automatisch von Brahma erzeugt. Alles, was Sie tun müssen, ist High-Level-.NET-Code schreiben.

Ich habe es nicht benutzt, aber ich hörte erst vor kurzem zu einem Podcast Informationen auf .NET Felsen. Es klingt wie eine gute Bibliothek zu verwenden, wenn Sie möchten, um die GPU Shader-Sprache nicht bekommen, in dem Lernen (e).

Hier ist der Source Link .

Was auch immer Sie C # auf die GPU integriert verwenden, sollten Sie eine CUDA Implementierung von AES verwenden. Sie sind die schnellsten da draußen. Die schnellste Implementierung sieht wie es aus den gleichen Jungs kommt man verknüpft - Trinity Gruppe . Schauen Sie sich den Praktischen Symmetric Key Cryptography auf Modern Graphics Hardware Papier.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top