Hallo,
ich verwende LV9 und habe mich mit Diffie-Hellman Schlüsselaustausch beschäftigt. Dazu habe ich erst das Ganze in LabVIEW gepackt und die langen Zahlen mit Binärarrays gerechnet. Das war sehr ineffizient. (300s pro Punktberechnung bei 224bit langen Zahlen). Da ich leider nicht viel Ahnung von C habe sind mir vorgefertigte Programme wie (Cyptopp oder OpenSSL) leider verschlossen geblieben.
Dazu habe ich selbst eine dll (Visual C++ 6) geschrieben die die langen Zahlen berechnet. Nachdem ich dann +;-;x;/, sowie y^x und die Punktinversion eingebunden hatte war ich schon bei 10s pro Punkt angekommen. Die Division wurde dan anstatt mit 8bit Arrayelementen in binär umgestellt und dann waren es nur noch 2,5s. Das ist schon brauchbar. Es ist allerding nun so, dass ich bei der Division und bei der Punktinversion Hilfsarrays (intern) brauche um zu rechnen.
Dazu verwende ich LabVIEW-Array-Handles. Als Problem hat sich nun herausgestellt das pro Slakarmultiplikation etwa 20MB Speicher belegt werden.
Dies geht dann so oft bis Windows sagt das der Speicher voll ist (ich glaube so bei 800MB). Ich habe schon einige Experimente unternommen das irgendwie hinzubekommen den Speicher nach Abschluß der Operation frei zu bekommen. Aber entweder LabVIEW stürtz ab oder die Berechnung wird falsch.
Ich hoffe bei diesem Problem kann mir von Euch jemand helfen. Denn ich weiß nicht mehr was ich am besten unternehmen kann....
Ich habe einen Teil der cpp-Datei drangehängt. Dort ist die Division drin.TD1Hdl Zahlenformat int und TD2Hdl Zahlenformat bool
Vielen Dank