Forum: FPGA, VHDL & Co. Verschlüsselung von VHDL-Dateien


von Kest (Gast)


Lesenswert?

Gibt es eine Möglichkeit VHDL Code (oder die Netzliste) für den Nutzer 
"unsichtbar" zu machen? Es soll simulierbar und synthetisierbar sein, 
aber eben, dass der Nutzer die Sourcen nicht ändern kann? (Also 
Blackbox)

Hat das jemand schon mal gemacht? Am besten mit Altera Tools.

Dass man die Netzliste im Nachhinein ändern kann ist mir schon klar :-)


Grüße,
Kest

von Schlumpf (Gast)


Lesenswert?

So ähnlich wie ein käuflicher IP-Core?

Prinzipiell geht das, aber da muss der Hersteller mitspielen.
Kurzum brauchst du, wenn du das richtig machen willst, vom Hersteller 
(Altera) eine Art Schlüssel, mit dem du das Design verschlüsseln und der 
Anwender nach Eingabe des Schlüssels in Quartus dann bestimmte Dinge mit 
deinem Design machen oder auch nicht machen kann.
Das ist jetzt seehr bildlich formuliert.
Aber was ich damit sagen will:
Technisch möglich, aber organisatorisch quasi unmöglich, da Altera 
sicher nicht mit jedem irgendsone Übereinkunft trifft.

von Kest (Gast)


Lesenswert?

Das ist dann für mich zu viel. Eigentlich möchte ich eine Netzliste 
(Entity) haben, die ich überall einbinden kann (so wie CoreGen oder 
MegaWizard).

Das blöde ist, dass ich VHDL mit Generics erstellen möchte, damit der 
Nutzer frei alles einstellen kann aber eben nicht VHDL Code ändern darf.

Kest

von Hardwareonkel (Gast)


Lesenswert?

Ich suche ebenso nach einer Möglichkeit, Code zu vertrieben, ohne ihn zu 
publizieren. Ginge das gfs auf einer neidirgeren Ebene eines geparsten 
files, so wie beim C++ eine DLL?

von Schlumpf (Gast)


Angehängte Dateien:

Lesenswert?

Also nen EDIF-Netzlsite kannst als "Black Box" hinzufügen.
Dazu einfach ne bestehende EDIF Netzliste als File hinzufügen, ein 
Symbol draus generieren und das dann in Schematic hinzufügen.

Wie man über Quartus ne EDIF erzeugt, weiss ich allerdings nicht. Ich 
hab zum Testen mal ein Undgatter mit Leonardo Spectrum synthetisiert und 
das dann als EDIF "Black-Box" in ein Quartus design eingebunden. Ging 
problemlos

Das EDIF (Undgatter)im Anhnang ist für einen EP1C3T100-7 synthetisiert. 
Kannst ja mal probieren, ob das so wäre, wie du dir das vorstellst.

von Hardwareonkel (Gast)


Lesenswert?

Inwiefern muss man das EDIF für eine konkrte Hardware definieren? Ich 
möchte das gerne auf einem allgemeinen RTL-Level halten. (Dass ich dabei 
nicht alles machen kann, wie z.B. Altera RAMS definieren, ist klar).

Was ich gerne hätte: Eine Instanz in VHDL mit allgemeinem HDL-Code, den 
der User verändern muss, um anzupassen, ein ebenfalls offenes SUbmodul, 
als INterface, dann die Altera-Komponenten ausdrücklich instanziiert und 
dann eben jene blackbox, die die eigentliche Logig und Mathematik 
enthält. Die muss im Dunkeln liegen, da genau das nicht veröffentlicht 
werden soll.

von Schlumpf (Gast)


Lesenswert?

Die EDIF-Netzlisten, die über ein Syntheseprogramm erzeugt werden, 
beschreiben eigentlich schon die in der Zieltechnologie vorhandenen 
Elemente und deren Verknüpfungen. Somit ist sie meines wissens, 
zumindest abhängig von der gewählten BausteinFAMILIE.
Sicher gibt es auch EDIF-Netzlisten, die unabhängig von der Technologie 
eine Funktion beschreiben können, aber wie man die aus VHDL erzeugt, das 
weiss ich nicht.
Aber diese Netzlisten sind dann sicher ähnlich zu bewerten, wie VHDL 
Netzlisten.
Ob Generics in so eine Liste einfach übergeben werden können, das weiss 
ich leider nicht. Wäre aber ein interessantes Thema.

von Klaus F. (kfalser)


Lesenswert?

Eine Möglichkeit ist es den VHDL-Code zu verschleiern (obfuscate).
Dabei werden alle Kommentare und Formattierungen entfernt, sowie alle 
Bezeichner durch sinnlose Namen ersetzt.
Wirkt sicher nur bei größeren Programmen, wo der Aufwand alles wieder zu 
formatieren und in eine lesbare Form zu bringen beträchtlich ist.
Ob es freie Verschleierungsprogramme für VHDL gibt, weis ich nicht.

von mss (Gast)


Lesenswert?

nur zur info: aus edif-netzlisten kann man auch wieder äquivalenten 
vhdl-code generieren, das wird schon standardmäßig im ise von xilinx 
(edif2ngd dann ngd2vhdl) und in den fpga-advantage tools (precision) von 
mentor graphics für boards von xilinx, altera, lattice usw. unterstützt. 
für altera geht das sicherlich auch noch irgendwie direkt im quartus.

bye
mss

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.