DE3914233C1 - Computer program protection device - has generator data output connected with consisting testing stage - Google Patents

Computer program protection device - has generator data output connected with consisting testing stage

Info

Publication number
DE3914233C1
DE3914233C1 DE3914233A DE3914233A DE3914233C1 DE 3914233 C1 DE3914233 C1 DE 3914233C1 DE 3914233 A DE3914233 A DE 3914233A DE 3914233 A DE3914233 A DE 3914233A DE 3914233 C1 DE3914233 C1 DE 3914233C1
Authority
DE
Germany
Prior art keywords
data
function
data generator
computing system
calculation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE3914233A
Other languages
English (en)
Inventor
Wulf 2054 Geesthacht De Harder
Bernd 2000 Hamburg De Peeters
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Syncrosoft SIA
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to DE3914233A priority Critical patent/DE3914233C1/de
Application granted granted Critical
Publication of DE3914233C1 publication Critical patent/DE3914233C1/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Description

Die Erfindung bezieht sich auf eine Vorrichtung zum Schutz gegen unautorisierte Benutzung eines Programms in einem Rechensystem nach dem Oberbegriff des Patentanspruchs 1.
Die Hersteller von Programmen (Software) für Rechensysteme sind naturgemäß bestrebt, die unautorisierte Benutzung des Programms zu unterbinden. Programme können jedoch normaler­ weise kopiert werden, so daß Anwender in den Genuß von Pro­ grammen gelangen, für die sie einen Gegenwert nicht ent­ richtet haben. Es ist daher bereits bekanntgeworden, mit der Erstellung eines Programms ein Hardwarebauteil zu lie­ fern, das, zum Beispiel in Form eines Steckerbauteils oder dergleichen mit dem Rechensystem verbunden werden muß, um das Programm nutzen zu können bzw. ablauffähig zu machen. Bevor oder während das Programm abläuft, fragt der Rechner ab, ob das Hardwarebauteil vorhanden ist. Falls nicht, wird der Programmablauf gestört, beispielsweise durch An­ halten des Taktzählers (EP 01 83 608 A2).
Der Nachteil der bekannten Schutzvorkehrung besteht darin, daß durch relativ einfache Modifikation im Programm die Abfrage des Hardwarebauteils entfernt oder umgangen werden kann.
Eine weitere Vorrichtung ist in der US-PS 45 62 306 offen­ bart. Aus dieser Schrift ist bekannt, zwei externe Daten­ generatoren vorzusehen, die in vorher festgelegter Takt­ folge Daten an das Rechensystem abgeben. Die Daten werden zunächst über eine UND-Schaltung geleitet, die bereits bei nicht gleichzeitigem Eintreffen ein Fehlersignal erzeugt. Die schaltungsgemäße Anordnung bedingt, daß die Zeitspan­ ne, in der ein Zugriff auf die Daten der Generatoren zur unautorisierten Decodierung, äußerst kurz ist.
Der Erfindung liegt die Aufgabe zugrunde, eine Vorrichtung zum Schutz gegen eine unautorisierte Benutzung eines Pro­ gramms in einem Rechensystem zu schaffen, die selbst bei Kenntnis der Daten des externen Datengenerators eine Umge­ hung des Kopierschutzes äußerst schwierig macht.
Diese Aufgabe wird durch die Merkmale des Kennzeichnungs­ teils des Patentanspruchs 1 gelöst.
Bei der erfindungsgemäßen Vorrichtung wird dem Rechen­ system, wie auch bereits aus dem Stand der Technik bekannt, ein erster externer Datengenerator zugeordnet, der mit ei­ nem Signalausgang des Rechensystems verbindbar ist. Der externe Datengenerator kann von beliebigem Aufbau sein. Im einfachsten Fall erzeugt er bei Ansteuerung durch ein Be­ fehlssignal des Rechensystems einen einzigen Wert. Vor­ zugsweise erzeugt er jedoch in Synchronisation mit Takt­ impulsen vom Rechensystem eine Folge von Werten oder Da­ ten, wobei diese ggf. abhängig sind von den Eingabedaten des Rechners. Der Ausgang des Datengenerators ist mit ei­ ner Konsistenzprüfstufe verbindbar. In dieser wird mit den Daten des ersten Datengenerators eine Verknüpfungsfunk­ tion gebildet. Zu diesem Zweck werden die Daten mit einer vorgegebenen Rechengröße des Programms, die beliebig aus­ gewählt werden kann, verknüpft. Beispielsweise wird ein Wert des ersten Datengenerators von der Rechengröße sub­ trahiert oder dieser zuaddiert. Im anderen einfachen Fall erfolgt eine Multiplikation oder Division. Die Vorrichtung sieht jedoch mindestens einen weiteren Datengenerator vor, der ebenfalls mit einem Signalausgang des Rechners verbun­ den ist und der ebenfalls mindestens einen Wert entspre­ chend der Ansteuerung durch das Rechensystem auf die Kon­ sistenzprüfstufe gibt. In dieser erfolgt ebenfalls eine Verknüpfung mit der vorgegebenen Rechengröße, wobei die Verknüpfungsfunktion eine Umkehrfunktion der ersten Funk­ tion ist. Im einfachsten Fall simuliert der zweite Daten­ generator die Daten des ersten Datengenerators. Dies ist jedoch keine notwendige Bedingung. Vielmehr können die vom zweiten Datengenerator an die Konsistenzprüfstufe gelie­ ferten Daten von dem des ersten Datengenerators signifi­ kant abweichen. Erfindungswesentlich ist schließlich, daß in der Konsistenzprüfstufe beide Verknüpfungsfunktionen in Beziehung gesetzt werden, beispielsweise durch Bildung einer dritten Funktion, deren Ergebnis wieder die bestimm­ te Rechengröße des Programms ist, jedoch nur bei ordnungs­ gemäßer Funktion bzw. Vorhandensein des ersten externen Datengenerators. Kommt indessen in der Konsistenzprüfstufe als Ergebnis die Rechengröße des Programms nicht heraus, wird ein Stör- oder Stoppsignal oder eine von der Rechen­ größe abweichende Größe für das Rechensystem erzeugt zwecks Unterbrechung oder Störung des Programmablaufs.
Es ist zwar denkbar, die Daten aus erstem und zweitem Datengenerator zeitlich synchron auszugeben, eine notwen­ dige Voraussetzung ist dies nicht. Die Bildung von Ver­ knüpfungsfunktionen sowie die Bildung einer dritten Funk­ tion aus den beiden Verknüpfungsfunktionen ist an das zeitgleiche Auftreten der Daten nicht gebunden. Erfindungs­ wesentlich ist lediglich, daß die Daten, welche der erste und der zweite Datengenerator liefern, konsistent sind.
Die erfindungsgemäße Vorrichtung erfordert eine verhält­ nismäßig eingehende Analyse des Programms und entsprechende Programmierarbeiten, um die erfindungsgemäße Schutzvor­ richtung zu umgehen. Dieser Aufwand ist normalerweise relativ höher als der für den Erwerb eines Programms mit externem Datengenerator. Mithin bietet die erfindungsgemäße Vorrichtung einen wirksamen Schutz gegen eine unautori­ sierte Benutzung eines Programms in einem Rechensystem.
Es versteht sich, daß eine Vielzahl von zweiten Datengene­ ratoren verwendet werden kann, welche gleiche Daten wie der erste der zweiten Datengeneratoren ausgeben oder von diesen verschiedene, wobei eine zeitgleiche Verknüpfung mit der Rechengröße des Programms oder eine zeitlich ge­ staffelte Verknüpfung erfolgen kann.
In jedem Fall wird durch eine Mehrzahl von zweiten Daten­ generatoren der Schutz gegen unautorisierte Benutzung des Programms erhöht.
Ein Ausführungsbeispiel der Erfindung wird nachfolgen kurz beschrieben.
Die einzige Figur zeigt ein Blockschaltbild einer Vorrich­ tung nach der Erfindung.
10 bezeichnet ein Rechensystem mit einem geladenen Pro­ gramm. Ein erster Datengenerator 11, beispielsweise in Form eines externen Schaltwerks, ist über eine Leitung 12 an einen Signalausgang des Rechensystems 10 angeschlossen. Im Rechensystem 10 befinden sich mehrere zweite Datengene­ ratoren 14 bis 14 n, die ebenfalls an die Leitung 12 ange­ schlossen sind. Es versteht sich, daß die Datengeneratoren 14 bis 14 n über getrennte Leitungen mit dem Rechensystem verbunden sein können. Die Ausgänge der Datengeneratoren 11, 14 bis 14 n sind mit einer Konsistenzprüfstufe 15 ver­ bunden, die außerdem mit Speicherelementen 16 des Rechen­ systems 10 verbunden ist. Der Ausgang der Stufe 15 ist etwa mit einem Befehlszähler 17 oder mit Speicherelementen 16 verbunden.
Im Betrieb erhält der Datengenerator 11 Eingaben vom Re­ chensystem 10 und erzeugt nach definierten Taktimpulsen Ausgaben an das Rechensystem 10 bzw. die Konsistenzprüf­ stufe 15. Vorzugsweise sind dabei die aus dem Datengenera­ tor 11 ausgegebenen Datenfolgen nicht gleich. Sie können daher nicht ohne weiteres durch Hardware simuliert werden. Entsprechendes gilt für die zweiten Datengeneratoren 14 bis 14 n. Die Datengeneratoren 14 bis 14 n simulieren zum Beispiel den Datengenerator 11. Die zeitliche Ausgabe der Daten aus den Datengeneratoren 14 bis 14 n braucht jedoch nicht mit der aus dem Datengenerator 11 übereinstimmen.
Ein beliebiger, jedoch vorgegebener Wert (Rechengröße), der in den Speicherelementen 16 gespeichert ist, wird in der Konsistenzprüfstufe mit den Daten der Datengeneratoren 11 über beliebige Funktionen verknüpft. Die Datengeneratoren 14 bis 14 n dienen zusammen mit der Rechengröße zur Bildung von Umkehrfunktionen derjenigen Funktionen, welche mit den Daten des ersten Datengenerators 11 und der Rechengröße gebildet werden. Funktionen und Umkehrfunktionen werden ihrerseits in der Stufe 15 miteinander verknüpft derart, daß bei vorgegebener Folge von Eingabedaten aus dem Daten­ generator 11 wieder die Rechengröße unverändert erscheint. Damit ist ein ordnungsgemäßer Ablauf des Programms gewähr­ leistet. Ist dies indessen nicht der Fall, erzeugt die Konsistenzprüfstufe 15 zum Beispiel ein Stoppsignal für den Befehlszähler 17. Alternativ kann auch ein Eingriff in den Programmspeicher erfolgen zwecks Zerstörung des Pro­ gramms. Im einfachsten Fall tritt die von der Rechengröße abweichende Größe an die Stelle der Rechengröße im Pro­ gramm, so daß das Rechensystem sich im Fehlerzustand be­ findet.

Claims (7)

1. Vorrichtung zum Schutz gegen unautorisierte Benutzung ei­ nes Programmes in einem Rechensystem (10) bei dem minde­ stens ein mit einem Signalausgang (12) des Rechensystemes (10) verbindbarer, erster externer Datengenerator (11) vorgesehen ist, sowie mindestens ein weiterer zweiter Datengenerator (14 bis 14 n), die in festgelegter Folge Daten erzeugen und deren Datenausgang mit einer Konsistenzprüfstufe (15) verbunden ist, wobei die Konsistenzprüfstufe (15) das Rechensystem (10) in einen Fehlerzustand bringt oder ein Stopp- oder Störsignal für das Rechensystem (10) oder eine von der Re­ chengröße abweichende Größe erzeugt wenn die Daten der Da­ tengeneratoren (11) nicht in der vorgegebenen Größe und/ oder zeitlichen Folge im Rechensystem (10) erscheinen, da­ durch gekennzeichnet, daß die Konsistenzprüfstufe (15) je­ weils mit einer Rechengröße des im Rechensystem (10) ab­ laufenden Programms und der Daten des externen Datengene­ rators (11) eine erste Verknüpfungsfunktion bildet, die Konsistenzstufe (15) mindestens eine Verknüpfungsfunktion aus den Daten des zweiten Datengenerators (14 bis 14 n) und der Rechengröße bildet, wobei die zweite Funktion eine Um­ kehrfunktion der ersten Funktion ist, und in der Konsistenz­ prüfstufe (15) beide Funktionen über eine dritte Funktion verknüpft sind und das Ergebnis der dritten Funktion mit der ursprünglich zugrunde gelegten Rechengröße verglichen wird und wobei das Rechensystem (10) in einen Fehlerzustand gebracht oder ein Stopp- oder Störsignal oder eine von der Rechengröße abweichende Größe erzeugt wird, um das gerade ablaufende Programm zu unterbrechen, wenn der dritte Funk­ tionswert ungleich der Rechengröße ist.
2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der zweite Datengenerator (14 bis 14 n) die Daten des ersten Datengenerators (11) simuliert.
3. Vorrichtung nach Anspruch 1 oder 2, dadurch gekennzeich­ net, daß erster und zweiter Datengenerator (11, 14 bis 14 n) nach frei definierbaren Taktimpulsen vom Rechen­ system (10) Daten an die Konsistenzprüfstufe (15) ab­ geben.
4. Vorrichtung nach Anspruch 3, dadurch gekennzeichnet, daß Art der Daten und ihre zeitliche Folge des ersten und zweiten Datengenerators von vom Rechensystem (10) kom­ menden Eingaben abhängig sind.
5. Vorrichtung nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß der erste Datengenerator (11) von einem Netz von Schaltwerken gebildet ist.
6. Vorrichtung nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß der zweite Datengenerator (14 bis 14 n) von einem Netz von Schaltwerken gebildet ist.
7. Vorrichtung nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß der zweite Datengenerator von einem oder mehreren Bestandteilen des Programms gebildet ist.
DE3914233A 1989-04-29 1989-04-29 Computer program protection device - has generator data output connected with consisting testing stage Expired - Lifetime DE3914233C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE3914233A DE3914233C1 (en) 1989-04-29 1989-04-29 Computer program protection device - has generator data output connected with consisting testing stage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE3914233A DE3914233C1 (en) 1989-04-29 1989-04-29 Computer program protection device - has generator data output connected with consisting testing stage

Publications (1)

Publication Number Publication Date
DE3914233C1 true DE3914233C1 (en) 1990-07-26

Family

ID=6379771

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3914233A Expired - Lifetime DE3914233C1 (en) 1989-04-29 1989-04-29 Computer program protection device - has generator data output connected with consisting testing stage

Country Status (1)

Country Link
DE (1) DE3914233C1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4103173A1 (de) * 1991-02-02 1992-08-13 Wulf Harder Vorrichtung zum schutz gegen unautorisierte benutzung von software
US9275202B2 (en) 2003-04-25 2016-03-01 Whitecryption Corporation Data processing method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4562306A (en) * 1983-09-14 1985-12-31 Chou Wayne W Method and apparatus for protecting computer software utilizing an active coded hardware device
EP0183608A2 (de) * 1984-11-19 1986-06-04 Schlumberger Technology Corporation Softwaresicherheitssystem

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4562306A (en) * 1983-09-14 1985-12-31 Chou Wayne W Method and apparatus for protecting computer software utilizing an active coded hardware device
EP0183608A2 (de) * 1984-11-19 1986-06-04 Schlumberger Technology Corporation Softwaresicherheitssystem

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4103173A1 (de) * 1991-02-02 1992-08-13 Wulf Harder Vorrichtung zum schutz gegen unautorisierte benutzung von software
DE4103173C4 (de) * 1991-02-02 2017-03-16 SIA Soft Activation Vorrichtung zum Schutz gegen unautorisierte Benutzung von Software
DE4103173C5 (de) * 1991-02-02 2017-07-20 SIA Soft Activation Vorrichtung zum Schutz gegen unautorisierte Benutzung von Software
US9275202B2 (en) 2003-04-25 2016-03-01 Whitecryption Corporation Data processing method

Similar Documents

Publication Publication Date Title
DE69722897T2 (de) Automatische Adressenzuweisung für Plattenlaufwerke enthaltende Gestelle sowie Fehlererkennungsverfahren und Gerät
DE3702408C2 (de)
DE10039538B4 (de) Vorrichtung und Verfahren zum Analysieren der Leistung eines Computerprogramms
DE2312707A1 (de) Pruefanordnung fuer einen computer
DE3903835A1 (de) Verfahren und vorrichtung zum pruefen von mikroprozessorsystemen unter verwendung von speicheremulationstechniken
DE3625462A1 (de) Rechnerunterstuetzte fehlerisolation beim pruefen von gedruckten schaltungen
DE102019203251B3 (de) Verfahren und System zur sicheren Signalmanipulation für den Test integrierter Sicherheitsfunktionalitäten
DE102006062555A1 (de) Verfahren zur Beobachtung eines Steuergeräts
EP3058425B1 (de) Vorrichtung und verfahren zur änderung von betriebseinstellungen einer technischen anlage
DE3223584C2 (de)
DE3225712C2 (de) Verfahren und Vorrichtung zur Funktionsprüfung von digitalen Rechnern
EP0708936B1 (de) Anordnung zur modellierung eines nichtlinearen prozesses
DE3914233C1 (en) Computer program protection device - has generator data output connected with consisting testing stage
EP0248269B1 (de) Verfahren zur Simulation eines Unterbrechungsfehlers in einer Logikschaltung mit Feldeffekttransistoren und Anordnungen zur Durchführung des Verfahrens
DE2005884A1 (de) Vorrichtung und Verfahren zur Feststellung von Fehlern in elektronischen Datenverarbeitungsanlagen
EP1283472A2 (de) Programmgesteuerte Einheit
DE4103173C5 (de) Vorrichtung zum Schutz gegen unautorisierte Benutzung von Software
DE60219551T2 (de) Verfahren zum prüfen der Steuersoftware eines Telekommunikationsgerätes mit einer verteilten Steuerung
DE60114416T2 (de) Vorrichtung und verfahren zur bewertung von algorithmen
DE4122415C1 (en) In-circuit test method for application specific programmable logic components - using all freely programmable connections as inputs and one application specific output as test output for evaluation of test signal
DE3241175A1 (de) Pruefsystem fuer das pruefen von prozessoren enthaltenden steuerwerksbaugruppen und/oder von periphere ergaenzungen solcher steuerwerksbaugruppen bildenden speicherbaugruppen
DE2505475C3 (de) Verfahren und Vorrichtung zur Fehlerprüfung bei einem programmierbaren Logikwerk für die Ausführung logischer Operationen
DE1287131B (de) Elektronische Impulszaehleranordnung zur Anzeige der Verschiebung eines beweglichen Teils bezueglich einer vorgegebenen Stellung
DE1958747B2 (de) Einrichtung zur mikroprogrammgesteuerten Fehlerprüfung
WO1989003088A1 (en) Electronic assembly with self-test circuit

Legal Events

Date Code Title Description
8100 Publication of patent without earlier publication of application
D1 Grant (no unexamined application published) patent law 81
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: SIA SYNCROSOFT, RIGA, LT

8328 Change in the person/name/address of the agent

Representative=s name: PATENTANWAELTE HAUCK, GRAALFS, WEHNERT, DOERING, SIE

8381 Inventor (new situation)

Inventor name: HARDER, WULF, 21502 GEESTHACHT, DE

Inventor name: PEETERS, BERND, 20097 HAMBURG, DE