Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND DEVICE FOR PROTECTING A COMPUTER PROGRAM AGAINST UNAUTHORISED USE
Document Type and Number:
WIPO Patent Application WO/2013/083224
Kind Code:
A1
Abstract:
The invention relates to a method, to a device (20), and to a system (1) for protecting a computer program (2) against unauthorised use. The method comprises the steps of: storing (S1) a computer program (3), which is encrypted by an external device (10) by means of a key (12), in a computer program storage unit (23); storing (S2) a key (12) provided for decrypting the encrypted computer program (3) in a SRAM region (25) of a working storage unit (24); and decrypting (S3) the encrypted computer program (3) by means of the key (12), wherein the decrypted computer program (4) or decrypted computer program parts (4) are stored in a RAM region (26) of the working storage unit (24).

Inventors:
ZETEK BERNDT (DE)
Application Number:
PCT/EP2012/004658
Publication Date:
June 13, 2013
Filing Date:
November 09, 2012
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BOSCH GMBH ROBERT (DE)
International Classes:
G06F21/12
Foreign References:
US20070150755A12007-06-28
US4670857A1987-06-02
EP1056015A12000-11-29
US20060059368A12006-03-16
US7092783B22006-08-15
EP1556743B12011-08-10
Attorney, Agent or Firm:
THÜRER, Andreas (DE)
Download PDF:
Claims:
Patentansprüche

1 . Verfahren zum Schutz eines Computerprogramms (2) gegen unberechtigte Benutzung, mit den Schritten

Speichern (S 1 ) eines von einer externen Vorrichtung ( 10) mit einem Schlüssel (1 2) verschlüsselten Computerprogramms (3) in einer Computerprogramm-Speichereinrichtung (23),

Speichern (S2) eines zum Entschlüsseln des verschlüsselten Computerprogramms (3) bereitgestellten Schlüssels (12) in einem SRAM-Bereich (25) einer Arbeitsspeichereinrichtung (24), und

Entschlüsseln (S3) des verschlüsselten Computerprogramms (3) m it dem Schlüssel ( 12), wobei das entschlüsselte

Computerprogramm (4) oder entschlüsselte

Computerprogrammteile (4) in einem RAM-Bereich (26) der

Arbeitsspeichereinrichtung (24) gespeichert werden.

2. Verfahren nach Anspruch 1 , wobei der Schritt des Speicherns (S2) des Schlüssels (12) umfasst, dass der von der externen

Vorrichtung (10) erzeugte und auf ihr gespeicherte Schlüssel ( 12) von der externen Vorrichtung (10) mittels einer Vorrichtu ng (20) heruntergeladen wird, welche das Verfahren ausführt.

3. Verfahren nach Anspruch 1 oder 2 , zudem mit dem Schritt des Verhinderns eines Coredump, wenn das entschlüsselte

Computerprogramm (4) oder entschlüsselte

Computerprogrammteile (4) in dem RAM-Bereich (26) der

Arbeitsspeichereinrichtung (24) stehen .

4. Verfahren nach einem der vorangehenden Ansprüche, zudem mit dem Schritt des Verhinderns (S5) einer Simulation mit dem verschlüsselten Computerprogramm (3), wenn das entschlüsselte Computerprogramm (4) oder entschlüsselte

Computerprogrammteile (4) in dem RAM-Bereich (26) der

Arbeitsspeichereinrichtung (24) stehen .

5. Verfahren nach einem der vorangehenden Ansprüche, zudem mit dem Schritt des Verhinderns (S5) einer Anzeige des

verschlüsselten Computerprogramms (4) mittels einer

Anzeigeeinrichtung (21 ) und Ausgebens einer Fehlermeldung, wenn das verschlüsselte Computerprogramm (4) zur Anzeige auf der Anzeigeeinrichtung (21 ) geöffnet werden soll.

6. Verfahren nach einem der vorangehenden Ansprüche, zudem mit dem Schritt des Verhinderns (S5) einer Anzeige des von der Entschlüsselu ngseinrichtung (27) entschlüsselten

Computerprogramms (4) oder von der Entschlüsselungseinrichtung ( 27) entschlüsselter Computerprogrammteile (4) mittels einer Anzeigeeinrichtung (21 ).

7. Verfahren nach einem der vorangehenden Ansprüche, wobei bei dem Computerprogramm (2) verwendete Tabellendaten nicht verschlüsselt sind .

8. Vorrichtung (20) zum Schutz eines Computerprogramms (2) gegen unberechtigte Benutzung, mit

einer Herunterladeeinrichtung (22) zum Herunterladen eines von einer externen Vorrichtung (10) bereitgestellten Schlüssels (12) zum Entschlüsseln eines von der externen Vorrichtung ( 10) m it dem Schlüssel verschlüsselten Computerprogramms (3),

einer Entschlüsselungseinrichtung (27) zur Entschlüsselung des verschlüsselten Computerprogramms (3), und

einer Speicherplatzverwaltungseinrichtung (22) zur Verwaltung von Speicherplatz derart, dass

das verschlüsselte Computerprogramm (3) in einer

Computerprogramm-Speichereinrichtung (23) gespeichert wird , der von der Herunterladeeinrichtung (22) heruntergeladene

Schlüssel in einem SRAM-Bereich (25) einer

Arbeitsspeichereinrichtung (24) gespeichert wird , und

das von der Entschlüsselungseinrichtung (27) entschlüsselte

Computerprogramm (4) oder von der Entschlüsselungseinrichtung (27) entschlüsselte Computerprogrammteile (4) in einem SRAM- Bereich (25) der Arbeitsspeichereinrichtung (24) gespeichert wird/werden.

9. Vorrichtung (20) nach Anspruch 8, wobei die Vorrichtung (20) eine Steuervorrichtung zur Steuerung einer numerisch gesteuerten Werkzeugmaschine ist, das Computerprogramm (2) das

Steuerprogramm der numerisch gesteuerten Werkzeugmaschine ist, und die Computerprogramm-Speichereinrichtung (23) ein

Netzwerkdateisystem der numerisch gesteuerten

Werkzeugmaschine ist.

10. System ( 1 ) zum Schutz eines Computerprogramms (2) gegen unberechtigte Benutzung, mit

einer Vorrichtung (20) nach Anspruch 8 oder 9, und

einer externen Vorrichtung (10) zum Erzeugen, Speichern und Bereitstellen eines Schlüssels (12) zum Verschlüsseln des Computerprogramms (2) und/oder zum Entschlüsseln des

verschlüsselten Computerprogramms (3).

Description:
VERFAHREN U ND VORRICHTUNG ZUM SCHUTZ EINES

COMPUTERPROG RAMMS GEGEN UNBERECHTIGTE

BENUTZUNG

Besch rei bung

Die vorliegende Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung zum Schutz eines Computerprogramms gegen

unberechtigte Benutzung. Das Verfahren und die Vorrichtung können insbesondere bei einer Steuervorrichtung zur Steuerung einer Werkzeugmaschine Verwendung finden.

US 7,092,783 B2 offenbart ein Verfahren zur Programmierung und Ausführung eines Steuerprogramms einer Industriesteuerung. Eine ausführbare Steuersequenz des Steuerprogramms wird mit einem Benutzer- oder Individualisierungspasswort verschlüsselt. Das bedeutet, dass die ausführbare Steuersequenz des

Steuerprogramms selbst nicht verschlüsselt ist.

EP 1 556 743 B2 offenbart ein Verfahren zur Vermeidung einer fehlerhaften Maschinenansteuerung durch

Maschlnensteuerparameter einer Werkzeugmaschine. Hier werden die Maschlnensteuerparameter mittels eines Chiffrierverfahrens verschlüsselt. Anschließend werden die Maschlnensteuerparameter auf der Werkzeugmaschine dechiffriert und geprüft.

Bei den genannten Verfahren werden jedoch das verwendete

Computerprogramm und/oder Teile davon nicht verschlüsselt. Das bedeutet, dass die genannten Verfahren die verwendeten

Com puterprogramme nicht vollständig vor unberechtigter Benutzung oder Einsicht schützen können. Beispielsweise können während des Ablaufs des Computerprogramms Programmteile eingesehen werden. Damit ist ein Kopieren des

Computerprogramms oder zumindest von Programmteilen möglich. Demzufolge können die genannten Verfahren ein Geheim halten von technologischem Wissen durch Verschlüsselung nicht

unumschränkt gewährleisten. Demzufolge kann ein unberechtigtes Nutzen von OEM-Zyklen (OEM = Original Equipment Manufacturer = Originalausrüstu ngshersteller) nicht verhindert werden. Aufgrund dessen ist ein ausreichender Schutz in Bezug auf

Investitionskosten nicht gegeben .

Es ist daher Aufgabe der vorliegenden Erfindung, ein Verfahren und eine Vorrichtung zum Schutz eines Computerprogramms gegen unberechtigte Benutzung bereitzustellen, mit welchen die zuvor genannten Probleme gelöst werden können. Insbesondere soll ein Verfahren und eine Vorrichtung zum Schutz eines

Computerprogramms gegen unberechtigte Benutzung bereitgestellt werden, bei welchen insbesondere Unterprogramme vor

unberechtigter Einsicht und/oder Nutzung geschützt werden können.

Diese Aufgabe wird durch ein Verfahren zum Schutz eines

Computerprogramms gegen unberechtigte Benutzung nach

Patentanspruch 1 gelöst.

Die Aufgabe wird außerdem durch eine Vorrichtung zum Schutz eines Computerprogramms gegen unberechtigte Benutzung nach Patentanspruch 8 gelöst. Die Aufgabe wird darü ber hinaus durch ein System zum Schutz eines Computerprogramms gegen unberechtigte Benutzu ng nach Patentanspruch 10 gelöst.

Vorteilhafte weitere Ausgestaltungen des Verfahrens und der Vorrichtung sind in den abhängigen Patentansprüchen angegeben.

Das beschriebene Verfahren und die beschriebene Vorrichtung sowie das System stellen sicher, dass auch beim Ablauf des

Verfahrens keine Programminhalte auf einer Anzeigeeinrichtung angezeigt werden können, welche einen Hinweis auf den Inhalt des Programms geben. Es werden nur programmierte Hinweise und/oder Diagnosemeldungen ausgegeben .

Mit dem beschriebenen Verfahren und der beschriebenen

Vorrichtung sowie dem System kann sichergestellt werden, dass nur ein Originalausrüstungshersteller (OEM) und/oder von ihm autorisierte Personen und/oder Institutionen die verschlüsselten Inhalte des Computerprogramms entschlüsseln kann . Somit ist eine (ungewollte) Weitergabe an Dritte seitens des Herstellers oder Betreibers einer Werkzeugmaschine, auf welcher das Verfahren und die Vorrichtung angewendet werden kann, ausgeschlossen.

Weitere mögliche Implementierungen der Erfindung umfassen auch nicht explizit genannte Kombinationen von zuvor oder im

Folgenden bezüglich der Ausführungsbeispiele beschriebenen Merkmale oder Ausführungsformen. Dabei wird der Fachmann auch Einzelaspekte als Verbesserungen oder Ergänzungen zu der jeweiligen Grundform der Erfindung hinzufügen .

Nachfolgend ist die Erfindung unter Bezugnahme auf die

beiliegende Zeichnung und anhand eines Ausführungsbeispiels näher beschrieben. Es zeigen: Fig. 1 ein Übersichtsbild eines Systems gemäß einem Ausführungsbeispiel; und

Fig. 2 ein Flussdiagramm eines Verfahrens gemäß einem

Ausführungsbeispiel.

In den Figuren sind gleiche oder funktionsgleiche Elemente, sofern nichts anderes angegeben ist, mit denselben Bezugszeichen versehen.

Fig. 1 zeigt ein System 1 zum Schutz eines Computerprogramms 2 gegen unberechtigte Benutzu ng. Das System 1 hat eine externe Vorrichtung 10, welche ein Personalcomputer (PC) sein kann , der bei einem Originalausrüstungshersteller (OEM) oder einem

sonstigen Anwender bereitgestellt ist. Zudem hat das System 1 eine Vorrichtung 20 zum Schutz des Computerprogramms 2 gegen unberechtigte Benutzung. Die Vorrichtung 20 kann eine numerisch gesteuerte Werkzeugmaschine (NC-Maschine) sein , welche

Gegenstände in einer vorbestimmten Form, Werkstücke, fertigt.

Die externe Vorrichtung 10 hat eine

Schlüsselerzeugungseinrichtung 1 1 , von welcher ein Schlüssel 12 erzeugt wird, eine Anzeigeeinrichtung 13, eine

Schlüsselspeichereinrichtung 14 und eine

Dateiverschlüsselungseinrichtung 1 5. Die

Schlüsselerzeugungseinrichtung 1 1 kann einen Schlüssel zum Ver- und Entschlüsseln des Computerprogramms bereitstellen . Die Schlüsselerzeugungseinrichtung 1 1 kann jedoch auch zwei verschiedene Schlüssel , also einen Verschlüsselungsschlüssel zum Verschlüsseln u nd einen Entschlüsselungsschlüssel zum

Entschlüsseln bereitstellen . Nachfolgend ist der Einfachheit halber meist nur von dem Schlüssel 12 die Rede.

Der Schlüssel 12 kann auf der Anzeigeeinrichtung 13 angezeigt werden , und kann in der Schlüsselspeichereinrichtung 14 gespeichert werden. Der Schlüssel 12 kann über ein

Schlüsselherunterladen, beispielsweise mittels OpenSSL (= mittels frei verfügbarem Computerprogramm (Open Source) Ausführen der SSL- und TLS-Protokolle), für die Vorrichtung 20 zum

Entschlüsseln des verschlüsselten Computerprogramms 1 1 bereitgestellt werden . Darüber hinaus kann der Schlüssel 12 der Dateiverschlüsselungseinrichtung 1 5 zur Verfügung gestellt werden .

Die Dateiverschlüsselungseinrichtung 15 hat eine

Verschlüsselungseinrichtung 16 und eine

Verschlüsselungsanzeigeeinrichtu ng 17. Die

Dateiverschlüsselungseinrichtung 15 kann das unverschlüsselte

Computerprogramm 2 unter Verwendung des Schlüssels 12 mittels der Verschlüsselungseinrichtung 16 in ein verschlüsseltes

Computerprogramm 3 verschlüsseln. Die Verschlüsselung kann mittels der Verschlüsselungsanzeigeeinrichtung 17 angezeigt und überwacht werden.

Die Vorrichtung 20 hat eine Vorrichtungsanzeigeeinrichtung 21 , eine Steuereinrichtung 22, eine Computerprogramm- Speichereinrichtung 23, eine Arbeitsspeichereinrichtung 24 mit einem SRAM-Bereich 25 und einem RAM-Bereich 26, und eine Entschlüsselungseinrichtung 27. Der SRAM-Bereich ist ein statischer Speicher mit wahlfreiem Zugriff (SRAM = static Random Access Memory), der nicht periodisch aufgefrischt werden muss. Der RAM-Bereich ist ebenfalls ein Speicher mit wahlfreiem Zugriff (RAM = Random Access Memory) und ist vorzugsweise ein dynamischer Speicher mit wahlfreiem Zugriff (DRAM = dynamic Random Access Memory), der periodisch aufgefrischt werden muss, kann jedoch auch ein statischer Speicher mit wahlfreiem Zugriff sein. Die Steuereinrichtung 22 führt die Funktionen einer

Herunterladeeinrichtung zum Herunterladen des von einer externen Vorrichtung 10 bereitgestellten Schlüssels 12 und einer

Speicherplatzverwaltungseinrichtung aus. Die Steuereinrichtung 22 kann auch die Funktion der Entschlüsselungseinrichtung 27 zur Entschlüsselung des verschlüsselten Computerprogramms 3 ausführen.

Die Steuereinrichtung 22 als Speicherplatzverwaltungseinrichtung verwaltet den Speicherplatz derart, dass das verschlüsselte

Computerprogramm 3 in der Computerprogramm- Speichereinrichtung 23 gespeichert wird und ist. I n der

Computerprogramm-Speichereinrichtung 23 gespeicherte Inhalte können grundsätzl ich mit der Vorrichtungsanzeigeeinrichtung 21 angezeigt werden. Dies ist mittels des weißen Blockpfeils A angegeben. Für verschlüsselte Programmteile oder für das gesamte verschlüsselte Computerprogramm 3 gelten jedoch die nachfolgend beschriebenen Einschränkungen.

Die Steuereinrichtung 22 als Speicherplatzverwaltungseinrichtung verwaltet den Speicherplatz zudem derart, dass der Schlüssel 12, genauer gesagt der Entschlüsselungsschlüssel zur Entschlüsselung des verschlüsselten Computerprogramms 3, in dem SRAM-Bereich 25 gespeichert ist. Mit dem Schlüssel 12 kann das verschlüsselte Computerprogramm 3 unsichtbar in ein entschlüsseltes

Computerprogramm 4 entschlüsselt werden . Das mit dem

Entschlüsselungsschlüssel, dem Schlüssel 12, entschlüsselte Computerprogramm 4 oder entschlüsselte Programmteile 4 werden dagegen von der Steuereinrichtung 22 als

Speicherplatzverwaltungseinrichtung in dem RAM-Bereich 26 des Arbeitsplatzspeichers 24 gespeichert.

Bei dem System 1 sind sämtliche Stellen berücksichtigt, wo I nhalte des Computerprogram ms 2 abgelegt, also nach der Verschlüsselu ng in den Speichereinrichtungen 23 und 24

gespeichert, oder sichtbar, also der

Vorrichtungsanzeigeeinrichtung 21 , werden. H ierbei ist zu

berücksichtigen, dass in dem Computerprogramm 2 verwendete Tabellendaten nicht verschlüsselt werden.

Fig. 2 veranschaulicht ein Verfahren zum Schutz des

Computerprogramms 2 gegen unberechtigte Benutzung. Nach dem Start des Verfahrens wird bei einem Schritt S 1 ein von der externen Vorrichtung 1 0 mit dem Schlüssel 12 verschlüsseltes Computerprogramm 3 in der Computerprogramm- Speichereinrichtung 23 gespeichert. Die Computerprogramm- Speichereinrichtung 23 ist vorzugsweise ein Netzwerkdateisystem , in welchem über ein Datennetzwerk verwendbare Dateien

gespeichert sind . Die Verschlüsselung des Computerprogramms 2 erfolgt also auf der externen Vorrichtung 10. Eine

Nachverschlüsselung eines neuen Computerprogramms 2 ist offline möglich. Hierzu sind in der Schlüsselverwaltungseinrichtung 14 alle von der Schlüsselerzeugungseinrichtung 1 1 erzeugten Schlüssel 12 gespeichert. Nach dem Schritt S 1 geht der Ablauf zu dem Schritt S2 weiter.

Bei dem Schritt S2 wird ein zum Entschlüsseln des verschlüsselten Com puterprogramms 3 bereitgestellter Entschlüsselungsschlüssel, der Schlüssel 12, in dem SRAM-Bereich 25 der

Arbeitsspeichereinrichtung 24 gespeichert. Hierbei kann der von der externen Vorrichtung 10 erzeugte Schlüssel 12 mittels der Vorrichtung 20, genauer gesagt der Steuereinrichtung 22 als Herunterladeeinrichtung, von der externen Vorrichtung 10

heruntergeladen werden. Über den explizit erzeugten Schlüssel 12 wird sichergestellt, dass nur der Originalausrüstungshersteller die verschlüsselten Inhalte entschlüsseln kann . Nach dem Schritt S2 geht der Ablauf des Verfahrens zu einem Schritt S3 über. Bei dem Schritt S3 entschlüsselt die Entschlüsselungseinrichtung 27 das verschlüsselte Computerprogramm 3 mit dem

Entschlüsselu ngsschlüssel , dem Schlüssel 12. Hierbei werden das entschlüsselte Com puterprogramm 4 oder entschlüsselte

Computerprogrammteile 4 in dem RAM-Bereich 26 der

Arbeitsspeichereinrichtung 24 gespeichert. Nach dem Schritt S3 geht der Ablauf zu einem Schritt S4 weiter.

Bei dem Schritt S4 wird geprüft, ob ein Coredump des RAM- Bereichs 26 der Arbeitsspeichereinrichtung 24 ausgeführt werden soll, ob mit dem verschlüsselten Computerprogramm 3 eine

Simulation ausgeführt werden soll, ob das verschlüsselte

Computerprogramm 3 mittels der Vorrichtungsanzeigeeinrichtung 21 angezeigt werden soll , oder ob mit der

Vorrichtungsanzeigeeinrichtung 21 von der

Entschlüsselungseinrichtung 27 entschlüsselte

Computerprogrammteile 4 oder das von der

Entschlüsselungseinrichtung 27 entschlüsselte Computerprogramm 4 angezeigt werden soll. Lautet die Antwort bei dem Schritt S4 NEIN ist das Verfahren beendet. Lautet die Antwort bei dem Schritt S4 hingegen JA, geht der Fluss zu dem Schritt S5 weiter. Der Schritt S4 und der Schritt S5 werden laufend während des Ablaufs des entschlüsselten Computerprogramms 4 in der Vorrichtung 20 ausgeführt.

Bei dem Schritt S5 wird ein Coredump verhindert, wenn das entschlüsselte Com puterprogramm 4 oder entschlüsselte

Computerprogrammteile 4 in dem RAM-Bereich 26 der

Arbeitsspeichereinrichtung 27 stehen. Ein Coredump steht für den aufgezeichneten Zustand des Arbeitsspeichers eines

Computerprogramms bei einer vorbestimmten Zeit. Der Coredump zeigt an den betreffenden Stellen nur einen Hinweis auf

Dateiverschlüsselung. Im Allgemeinen ist die vorbestimmte Zeit die Zeit, wenn das Computerprogramm abnormal beendet wurde.

Zudem wird bei dem Schritt S5 eine Simulation mit dem

verschlüsselten Computerprogramm 3 verhindert, wenn das entschlüsselte Com puterprogramm 4 oder entschlüsselte

Computerprogrammteile 4 in dem RAM-Bereich 26 der

Arbeitsspeichereinrichtung 24 stehen. Ferner wird bei dem Schritt S5 eine Anzeige des verschlüsselten Computerprogramms 3 mittels der Vorrichtungsanzeigeeinrichtung 21 verhindert, wenn das verschlüsselte Computerprogramm 3 zur Anzeige auf der

Vorrichtungsanzeigeeinrichtung 21 geöffnet werden soll . In diesem Fall wird m it der Vorrichtungsanzeigeeinrichtung 21 eine

Fehlermeldung ausgegeben . Zudem wird bei dem Schritt S5 verhindert, dass das von der Entschlüsselungseinrichtung 27 entschlüsselte Computerprogramm 4 oder die von der

Entschlüsselungseinrichtung 27 entschlüsselten

Computerprogrammteile mit der Vorrichtungsanzeigeeinrichtung 21 angezeigt werden.

Nach dem Schritt S5 ist das Verfahren beendet. Durch die Verhinderung des Coredumps, wenn das entschlüsselte Computerprogramm 4 oder die entschlüsselten

Computerprogrammteile 4 im RAM-Bereich 26 stehen, wird verhindert, dass die Verschlüsselung des Computerprogramms 2 ausgehebelt wird. Dies wäre zum Beispiel der Fall, wenn sichtbare Programmteile des entschlüsselten Computerprogramms 4 in einem Coredump nicht gelöscht oder unkenntlich gemacht wären .

Zudem bewirkt der Schritt S5, dass bei einem

Simulationsprogramm, wie beispielsweise EWB (Electronics

Workbench), verschlüsselte Programme, wie das verschlüsselte Computerprogramm 3, bei einer Analyse nicht berücksichtigt werden. Bei dem zuvor beschriebenen System 1 erlauben die Funktionen VREC/I REC keine DI N-Code-Ausgaben von verschlüsselten

Computerprogrammen 3. Zudem liefern die Items NCS , OPC und SCP für das verschlüsselte Computerprogramm 3 keinen

Programmcode.

Bei dem zuvor beschriebenen System 1 ist eine zusätzliche

Verschlüsselung über eine CF-Kartennummer zum Kopierschutz nicht erforderlich, da der Schlüssel 12 auf der Steuereinrichtung 22, genauer gesagt in dem SRAM-Bereich 25, bleibt. Aufgrund der zuvor beschriebenen Fu nktionalität des Systems 1 ist eine Fremdunterstützung für das verschlüsselte

Computerprogramm 3 nicht möglich.

Mit dem zuvor beschriebenen System 1 ist es möglich, dass ein verschlüsseltes Computerprogramm 3 keinerlei Auswirkungen auf das Laufzeitverhalten der Vorrichtung 20 hat.

Wird bei dem zuvor beschriebenen System 1 ein Tausch der

Steuereinrichtung 22 vorgenommen , ist es vorteilhaft, wenn der Schlüssel 12 von der externen Vorrichtung 10 in die neue

Steuereinrichtung 22 gebracht wird . Alternativ ist es auch möglich , alle Computerprogramme 2 mit dem neuen Schlüssel 12 neu zu verschlüsseln. Die Schlüsselerzeugung bei der externen Vorrichtung 10 kann bei Bedarf über frei erhältliche Software (Freeware) erfolgen. Die Schlüsselerzeugung sollte nicht im Indraworks integriert werden .

Bei dem beschriebenen System 1 werden beim Technologieschutz sämtliche Stellen berücksichtigt, wo Inhalte des

Computerprogramms 2 abgelegt werden (Dateisystem) oder sichtbar (Bedienoberfläche bzw. Anzeigeeinrichtung 21 ) werden. Dies sind der NC-Editor (Bearbeitungseinrichtung der numerischen Steuereinrichtung), die NC-Satzanzeige, der NC-Analyzer (NC- Analyseeinrichtung), die Simulation , der

Computerprogrammnavigator und das Dateisystem.

Im NC-Editor können verschlüsselte Programme nicht geöffnet werden. Auf der Anzeigeeinrichtung 21 kommen in der Statuszeile ein Hinweis und ein leeres Anzeigefenster.

Bei der NC-Satzanzeige enthält das Satzanzeigefenster im Falle von verschlüsselten Programmteilen nur eine Hinweiszeile

„verschlüsseltes Programm".

Bei dem NC- Analyzer enthält das Programmanzeigefenster im Falle von verschlüsselten Programmteilen nur eine Hinweiszeile „verschlüsseltes Programm". Für die Simulation gilt das Gleiche.

Im Computerprogrammnavigator bekommen verschlüsselte Dateien eine besondere Kennzeichnung.

Im Dateisystem, der Computerprogramm-Speichereinrichtung 23, liegen alle zu schützenden Dateien nur in verschlüsselter Form vor.

Wird ein Archiv erstellt, werden alle verschlüsselten Dateien, welche in der Computerprogramm-Speichereinrichtung 23

gespeichert sind , mitgesichert.

Mit dem zuvor beschriebenen System 1 und dem Verfahren, die einen NC-Program mschutz bieten , können Unterprogramme bzw. Zyklen verschlüsselt und anschließend geschützt in der

Steuereinrichtung 22 abgelegt werden. Die Abarbeitung in der numerischen Steuerung (NC) ist ohne Einschränkung möglich aber jegliche Einsicht in das NC-Programm , das Computerprogramm 3, ist blockiert. Da mit wird das interne Know-how geschützt. Das NC- Programm kann aber in der verschlüsselten Form , also als Computerprogramm 3, kopiert werden. Damit ist die Nutzung auch an weiteren Maschinen möglich. Wenn auch das verhindert werden soll , kann das NC-Programm durch eine

verschlüsselu ngstechnische Ergänzung fest an eine NC- oder CNC- Hardware gebunden werden .

Bei dem zuvor beschriebenen System 1 und dem Verfahren ist es nicht möglich, dass bei Serviceeinsätzen das verschlüsselte

Computerprogramm 3 oder eine andere verschlüsselte Datei vor Ort von einem Service-Techniker entschlüsselt werden kann. Das unverschlüsselte Computerprogramm 2 oder die unverschlüsselte Datei muss der Betreiber der externen Vorrichtung 10, der OEM, bereitstellen. Daher wird bei dem zuvor beschriebenen System 1 kein Generalschlüssel verwendet. Das Verantwortungsbewusstsein liegt beim OEM.

Alle zuvor beschriebenen Ausgestaltungen des Verfahrens und der Vorrichtung können einzeln oder in allen möglichen Kombinationen Verwendung finden. Zusätzlich sind insbesondere folgende

Modifikationen denkbar.

Vorzugsweise wird für die Verschlüsselung in der externen

Vorrichtung 10 ein Algorithmus verwendet, der weder gegen

Exportbeschränkungen oder Embargovorschriften verstößt. Hierbei werden zum Ver- und Entschlüsseln zwei verschiedene Schlüssel verwendet. Müssen solche Exportbeschränkungen oder

Embargovorschriften nicht beachtet werden, ist es auch möglich, den gleichen Schlüssel zum Ver- und Entschlüsseln zu verwenden. I n diesem Fall handelt es sich um ein symmetrisches Verfahren. Die Datensicherung, Versionsverwaltung und Versionskontrolle des Computerprogramms 2 bzw. 3 kann automatisch durch erneute Verschlüsselung und Vergleich des Quelltextes erfolgen. Anstelle des Verhinderns eines Coredu mps ist es auch möglich, dass, die Auswertung des Coredump nur mit einer

Entwicklungsumgebung zur Entwicklu ng des Computerprogramms 2 sowie dem Quellcode des Computerprogramms 2 möglich ist.