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 stageInfo
- 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
Links
- 238000004590 computer program Methods 0.000 title 1
- 230000006870 function Effects 0.000 claims abstract description 28
- 230000007246 mechanism Effects 0.000 claims description 3
- 230000002123 temporal effect Effects 0.000 claims description 3
- 230000008878 coupling Effects 0.000 abstract 2
- 238000010168 coupling process Methods 0.000 abstract 2
- 238000005859 coupling reaction Methods 0.000 abstract 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000010921 in-depth analysis Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 229940036310 program Drugs 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
-
- Y—GENERAL 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
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS 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/00—Systems 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/20—Information 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.
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)
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)
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 |
-
1989
- 1989-04-29 DE DE3914233A patent/DE3914233C1/de not_active Expired - Lifetime
Patent Citations (2)
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)
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 |