NO333768B1 - Procedure for Protecting a Software, Using a Sacred Detection and Enforcement Principle, against Unauthorized Use of it - Google Patents

Procedure for Protecting a Software, Using a Sacred Detection and Enforcement Principle, against Unauthorized Use of it Download PDF

Info

Publication number
NO333768B1
NO333768B1 NO20040229A NO20040229A NO333768B1 NO 333768 B1 NO333768 B1 NO 333768B1 NO 20040229 A NO20040229 A NO 20040229A NO 20040229 A NO20040229 A NO 20040229A NO 333768 B1 NO333768 B1 NO 333768B1
Authority
NO
Norway
Prior art keywords
execution
protected software
software
during
unit
Prior art date
Application number
NO20040229A
Other languages
Norwegian (no)
Other versions
NO20040229L (en
Inventor
Jean Christophe Cuenod
Gilles Sgro
Original Assignee
Validy Sa
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 Validy Sa filed Critical Validy Sa
Publication of NO20040229L publication Critical patent/NO20040229L/en
Publication of NO333768B1 publication Critical patent/NO333768B1/en

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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • 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/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Preparing Plates And Mask In Photomechanical Process (AREA)

Abstract

Oppfinnelsen vedrører en fremgangsmåte for å beskytte, fra en enhet, en sårbar programvare mot uautorisert bruk av den, idet nevnte sårbare programvare kjører i et databehandlingssystem. Fremgangsmåten omfatter det å definere minst én eksekveringsegenskap ved programvaren som kan overvåkes i hvert fall delvis i en enhet, minst ett kriterium å rette seg etter for minst én programeksekveringsegenskap, en deteksjonsanordning for utførelse i en enhet som gjør det mulig å detektere hvorvidt minst én programeksekveringsegenskap unnlater å rette seg etter minst ett assosiert kriterium, samt en tvangsanordning for utførelse i en enhet for å informere databehandlingssystemet og/eller endre virkemåten til en programvare når minst ett kriterium ikke respekteres.The invention relates to a method for protecting, from a device, a vulnerable software against unauthorized use thereof, said vulnerable software running in a data processing system. The method comprises defining at least one execution property of the software which can be monitored at least partially in one unit, at least one criterion to comply with for at least one program execution property, a detection device for execution in a unit which makes it possible to detect whether at least one program execution property fails to comply with at least one associated criterion, as well as a coercive device for execution in a device to inform the data processing system and / or change the operation of a software when at least one criterion is not respected.

Description

Foreliggende oppfinnelse vedrører det tekniske området databehandlings-systemer i generell forstand, og er mer spesifikt rettet mot midler for å beskytte programvare som kjører på disse databehandlingssystemene mot uautorisert bruk. The present invention relates to the technical area of data processing systems in a general sense, and is more specifically aimed at means for protecting software running on these data processing systems against unauthorized use.

Oppfinnelsens tema er spesielt rettet mot midler for å beskytte programvare mot uautorisert bruk ved anvendelse av en prosesserings- og minneenhet, idet en slik enhet i alminnelighet er realisert i form av et chipkort eller en fysisk nøkkel for en USB-port. The subject of the invention is particularly directed to means for protecting software against unauthorized use when using a processing and memory unit, such a unit being generally realized in the form of a chip card or a physical key for a USB port.

I det ovennevnte tekniske området vedrører hovedproblemet uautorisert bruk av programvare av brukere som ikke har betalt for lisensrettighetene. Denne ulovlige bruken av programvare forårsaker et åpenbart tap for programvareutviklere, programvaredistributører og/eller enhver person som integrerer slik programvare i produkter. For å unngå slike ulovlige kopier, har forskjellige løsninger vært foreslått for å beskytte programvare. In the above technical area, the main problem concerns the unauthorized use of software by users who have not paid for the license rights. This illegal use of software causes an obvious loss to software developers, software distributors and/or any person who integrates such software into products. To avoid such illegal copies, various solutions have been proposed to protect software.

US 5,754,646 vedrører en metode for beskyttelse av en offentlig distribuert programvare. US 5,754,646 relates to a method for protecting a publicly distributed software.

WO 99/66387 A1 angir en fremgangsmåte for å verifisere utførelsen av et dataprogram. WO 99/66387 A1 discloses a method for verifying the execution of a computer program.

FR 2 634 917 beskriver en metode og en anordning for beskyttelse og generalisering av en programvare. FR 2 634 917 describes a method and a device for the protection and generalization of a software.

En beskyttelsesløsning er således kjent som anvender et hardware-implementert beskyttelsessystem, kalt en beskyttelsesnøkkel eller "sikkerhetsplugg". En slik beskyttelsesnøkkel skal garantere at programvaren kun kjører dersom nøkkelen er til stede. Det må imidlertid erkjennes at denne løsningen er virkningsløs, fordi den har den ulempe at den er lett å omgå. En person med forbryterske hensikter eller en hacker kan, med hjelp av spesialverktøy så som disassemblere, fjerne instruksjonene som styrer beskyttelsesnøkkelen. Det er da mulig å generere ulovlige kopier svarende til modifiserte versjoner av programvaren som er i stand til å kjøre uten beskyttelsen. Videre kan ikke denne løsningen generaliseres til all programvare, ettersom det er vanskelig å kople mer enn to beskyttelsesnøkler til samme system. A protection solution is thus known which uses a hardware-implemented protection system, called a protection key or "security plug". Such a protection key must guarantee that the software only runs if the key is present. However, it must be recognized that this solution is ineffective, because it has the disadvantage that it is easily bypassed. A person with criminal intent or a hacker can, with the help of special tools such as disassemblers, remove the instructions that control the protection key. It is then possible to generate illegal copies corresponding to modified versions of the software capable of running without the protection. Furthermore, this solution cannot be generalized to all software, as it is difficult to connect more than two protection keys to the same system.

Oppfinnelsen har spesifikt som formål å tilveiebringe en løsning på de ovennevnte problemer ved å foreslå en fremgangsmåte for å beskytte en programvare mot uautorisert bruk, ved anvendelse av en ad hoc prosesserings- og minneenhet, idet nærvær av en slik enhet er nødvendig for at programvaren skal være fullstendig funksjonell. The invention specifically aims to provide a solution to the above-mentioned problems by proposing a method for protecting a software against unauthorized use, using an ad hoc processing and memory unit, the presence of such a unit being necessary for the software to be fully functional.

Hovedtrekkene ved oppfinnelsen er angitt i fremgangsåten ifølge det selv-stendige krav 1. Ytterligere trekk ved oppfinnelsen fremgår av de uselvstendige krav. The main features of the invention are indicated in the method according to the independent claim 1. Further features of the invention appear from the non-independent claims.

For å nå et slikt mål vedrører oppfinnelsen en fremgangsmåte for å beskytte, ved anvendelse av minst én blankenhet som i hvert fall omfatter en prosesseringsanordning og en minneanordning, en sårbar programvare mot uautorisert bruk av den, idet nevnte sårbare programvare genereres fra en kilde og kjører i et databehandlingssystem. Fremgangsmåten ifølge oppfinnelsen omfatter det å: In order to achieve such an objective, the invention relates to a method for protecting, by using at least one blank unit which at least includes a processing device and a memory device, a vulnerable software against its unauthorized use, said vulnerable software being generated from a source and running in a data processing system. The method according to the invention includes:

under en beskyttelsesfase: during a protection phase:

• definere: • defining:

- minst én programeksekveringsegenskap som er tilbøyelig til å bli overvåket i hvert fall delvis i en enhet, - minst ett kriterium å rette seg etter for minst én programeksekveringsegenskap, - en deteksjonsanordning for implementering i en enhet, som gjør det mulig å detektere at minst én programeksekveringsegenskap ikke overholder minst ett assosiert kriterium, - og en tvangsanordning for implementering i en enhet, som gjør det mulig å informere databehandlingssystemet og/eller endre virkemåten til en programvare når minst ett kriterium ikke overholdes, • frembringe et eksploateringsmiddel som gjør det mulig å transformere blankenheten til en enhet som er i stand til å implementere deteksjonsanordningen og tvangsanordningen, - at least one program execution characteristic that is prone to be monitored at least partially in a device, - at least one criterion to comply with for at least one program execution characteristic, - a detection device for implementation in a device, which makes it possible to detect that at least one program execution property does not comply with at least one associated criterion, - and a coercive device for implementation in a device, which makes it possible to inform the data processing system and/or change the behavior of a software when at least one criterion is not complied with, • produce an exploitation means which makes it possible to transform the blank unit of a unit capable of implementing the detection device and the coercion device,

• generere en beskyttet programvare ved å: • generate a protected software by:

- velge minst én programeksekveringsegenskap å overvåke blant de programeksekveringsegenskapene som er tilbøyelige til å bli overvåket, - velge minst ett kriterium å rette seg etter for minst én valgt programeksekveringsegenskap, - velge minst én algoritmisk prosessering som, under eksekvering av den sårbare programvaren, anvender minst én operand og gjør det mulig å oppnå minst ett resultat, og i forbindelse med hvilken minst én valgt - selecting at least one program execution characteristic to monitor among the program execution characteristics that are prone to be monitored, - selecting at least one criterion to comply with for at least one selected program execution characteristic, - selecting at least one algorithmic processing which, during execution of the vulnerable software, applies at least one operand and makes it possible to obtain at least one result, and in connection with which at least one selected

programeksekveringsegenskap skal overvåkes, program execution properties must be monitored,

- velge minst én andel av kilden for den sårbare programvaren som inneholder minst én valgt algoritmisk prosessering, - generere kilden for den beskyttede programvaren fra kilden for den sårbare programvaren ved å modifisere minst én valgt andel av kilden for den sårbare programvaren for å frembringe minst én modifisert andel av kilden for den beskyttede programvaren, idet denne modifikasjonen er slik at: > under eksekvering av den beskyttede programvaren, en første eksekveringsdel kjører i databehandlingssystemet og en andre eksekveringsdel kjører i en enhet, oppnådd fra blankenheten etter opplasting av informasjon, - selecting at least one portion of the source of the vulnerable software containing at least one selected algorithmic processing, - generating the source of the protected software from the source of the vulnerable software by modifying at least one selected portion of the source of the vulnerable software to generate at least one modified part of the source of the protected software, this modification being such that: > during execution of the protected software, a first execution part runs in the data processing system and a second execution part runs in a device, obtained from the blank device after uploading information,

> den andre eksekveringsdelen utfører i hvert fall funksjonaliteten til > the second execution part at least performs the functionality of

minst én valgt algoritmisk prosessering, at least one selected algorithmic processing,

> og at under eksekvering av den beskyttede programvaren, minst én valgt programeksekveringsegenskap overvåkes ved hjelp av den andre eksekveringsdelen, og det faktum at et kriterium ikke overholdes fører til en endring av virkemåten til den beskyttede programvaren, > and that during execution of the protected software, at least one selected program execution property is monitored by the second execution part, and the fact that a criterion is not met leads to a change in the behavior of the protected software,

- og generere: - and generate:

> en første objektdel av den beskyttede programvaren fra kilden for den beskyttede programvaren, idet nevnte første objektdel er slik at under eksekvering av den beskyttede programvaren, en første eksekveringsdel fremkommer, som eksekveres i databehandlingssystemet og av hvilken i hvert fall en andel tar hensyn til at minst én valgt programeksekveringsegenskap overvåkes, > a first object part of the protected software from the source of the protected software, said first object part being such that during execution of the protected software, a first execution part appears, which is executed in the data processing system and of which at least a part takes into account that at least one selected program execution property is monitored,

> og en andre objektdel av den beskyttede programvaren, som inneholder eksploateringsmiddelet som implementerer deteksjonsanordningen og tvangsanordningen, idet nevnte andre objektdel er slik at, etter opplasting til blankenheten og under eksekvering av den beskyttede programvaren, den andre eksekveringsdelen fremkommer, ved hjelp av hvilken minst én valgt programeksekveringsegenskap > and a second object part of the protected software, which contains the exploitation means that implements the detection device and the coercion device, said second object part being such that, after uploading to the blank device and during execution of the protected software, the second execution part appears, by means of which at least one selected program execution property

overvåkes og ved hjelp av hvilken det faktum at et kriterium ikke over- monitored and by means of which the fact that a criterion is not exceeded

holdes fører til en endring av virkemåten til den beskyttede programvaren, held leads to a change in the operation of the protected software,

og laste opp den andre objektdelen til blankenheten, for det formål å frembringe enheten, and uploading the second object part to the blank entity, for the purpose of generating the entity,

og under en bruksfase under hvilken den beskyttede programvaren blir eksekvert: and during a use phase during which the Protected Software is executed:

• i nærvær av enheten, og: • in the presence of the unit, and:

- så lenge alle kriterier svarende til alle de overvåkede eksekveringsegenskapene til alle de modifiserte andelene av den beskyttede programvaren overholdes, gjøre at nevnte andeler av den beskyttede programvaren kan fungere nominelt og følgelig at den beskyttede programvaren kan fungere nominelt, - dersom minst ett av kriteriene svarende til en overvåket eksekveringsegenskap ved en andel av den beskyttede programvaren ikke overholdes, informere databehandlingssystemet om dette og/eller endre virkemåten til andelen av den beskyttede programvaren, slik at virkemåten til den beskyttede programvaren endres, • og i fravær av enheten, til tross for forespørselen fra en andel av den første eksekveringsdelen om å trigge utførelse, i enheten, av funksjonaliteten til minst én valgt algoritmisk prosessering, ikke være i stand til å etterkomme nevnte forespørsel på korrekt måte, slik at i hvert fall nevnte andel ikke eksekveres korrekt og at følgelig den beskyttede programvaren ikke er fullstendig funksjonell. - as long as all criteria corresponding to all the monitored execution properties of all the modified parts of the protected software are met, make said parts of the protected software able to function nominally and consequently that the protected software can function nominally, - if at least one of the criteria corresponding to a monitored execution property of a portion of the protected software is not observed, inform the data processing system about this and/or change the behavior of the portion of the protected software, so that the behavior of the protected software is changed, • and in the absence of the device, despite the request from a part of the first execution part to trigger execution, in the unit, of the functionality of at least one selected algorithmic processing, not being able to comply with said request in a correct way, so that in any case said part is not executed correctly and that consequently the protected software is not complete g functional.

I henhold til en alternativ utførelsesform omfatter fremgangsmåten ifølge oppfinnelsen det å: According to an alternative embodiment, the method according to the invention comprises:

under beskyttelsesfasen: during the protection phase:

definere: defining:

- som programeksekveringsegenskap tilbøyelig til å bli overvåket, en variabel for å måle bruken av en funksjonalitet i en programvare, - som kriterium å rette seg etter, minst én terskel assosiert med hver målevariabel, - og en aktualiseringsanordning som gjør det mulig å oppdatere minst én målevariabel, • frembringe eksploateringsmiddelet som gjør det mulig for enheten også å implementere aktualiseringsanordningen, - as a program execution property prone to be monitored, a variable for measuring the use of a functionality in a software, - as a criterion to comply with, at least one threshold associated with each measurement variable, - and an actualization device that makes it possible to update at least one measurement variable, • produce the means of exploitation which enables the unit to also implement the actualization device,

• og modifisere den beskyttede programvaren ved å: • and modify the Protected Software by:

- velge som programeksekveringsegenskap å overvåke, minst én variabel for å måle bruken av minst én funksjonalitet i en programvare, - select as program execution property to monitor, at least one variable to measure the use of at least one functionality in a software,

- velge: - choose:

> minst én funksjonalitet i den beskyttede programvaren hvis bruk er > at least one functionality in the protected software whose use is

tilbøyelig til å bli overvåket ved anvendelse av en målevariabel, tend to be monitored using a measurement variable,

> minst én målevariabel anvendt for å kvantifisere bruken av nevnte > at least one measurement variable used to quantify the use of the aforementioned

funksjonalitet, functionality,

> minst én terskel assosiert med en valgt målevariabel som svarer til en > at least one threshold associated with a selected measurement variable that corresponds to one

begrensning på bruk av nevnte funksjonalitet, restriction on the use of said functionality,

> og minst én metode for å oppdatere en valgt målevariabel avhengig av bruken av nevnte funksjonalitet, > and at least one method for updating a selected measurement variable depending on the use of said functionality,

- og modifisere minst én valgt andel av kilden for den beskyttede programvaren, idet denne modifikasjonen er slik at, under eksekvering av den beskyttede programvaren, målevariabelen oppdateres ved hjelp av den andre eksekveringsdelen avhengig av bruken av nevnte funksjonalitet, og - and modifying at least one selected part of the source of the protected software, this modification being such that, during execution of the protected software, the measurement variable is updated by means of the second execution part depending on the use of said functionality, and

at minst én terskelkryssing tas hensyn til, that at least one threshold crossing is taken into account,

og under bruksfasen, i nærvær av enheten, og dersom minst én kryssing av en terskel som svarer til minst én begrensning på bruk detekteres, informere databehandlingssystemet om dette og/eller endre virkemåten til nevnte andel av den beskyttede programvaren, slik at virkemåten til den beskyttede programvaren endres. and during the use phase, in the presence of the device, and if at least one crossing of a threshold corresponding to at least one restriction on use is detected, inform the data processing system of this and/or change the behavior of said part of the protected software, so that the behavior of the protected the software changes.

I henhold til en alternativ utførelsesform omfatter fremgangsmåten ifølge oppfinnelsen det å: According to an alternative embodiment, the method according to the invention comprises:

under beskyttelsesfasen: during the protection phase:

• definere: • defining:

- for minst én målevariabel, flere assosierte terskeler, - for at least one measurement variable, several associated thresholds,

- og forskjellige tvangsanordninger svarende til hver av nevnte terskeler, - and various coercive devices corresponding to each of the mentioned thresholds,

• og modifisere den beskyttede programvaren ved å: • and modify the Protected Software by:

- velge, i kilden for den beskyttede programvaren, minst én valgt målevariabel med hvilken det må assosieres flere terskeler svarende til forskjellige begrensninger på bruk av funksjonaliteten, - select, in the source of the protected software, at least one selected measurement variable with which several thresholds must be associated corresponding to different restrictions on the use of the functionality,

- velge minst to terskeler assosiert med den valgte målevariabelen, - select at least two thresholds associated with the selected measurement variable,

- og modifisere minst én valgt andel av kilden for den beskyttede programvaren, idet denne modifikasjonen er slik at, under eksekvering av den beskyttede programvaren, kryssingene av de forskjellige terskelene tas - and modifying at least one selected portion of the source of the protected software, this modification being such that, during execution of the protected software, the crossings of the various thresholds are taken

hensyn til på forskjellig måte, ved hjelp av den andre eksekveringsdelen, og under bruksfasen: taken into account in different ways, by means of the second execution part, and during the use phase:

i nærvær av enheten: in the presence of the device:

- dersom kryssing av en første terskel detekteres, pålegge den beskyttede programvaren ikke å anvende den motsvarende funksjonaliteten mer, - og dersom kryssing av en andre terskel detekteres, gjøre uvirksom den motsvarende funksjonaliteten og/eller minst én andel av den beskyttede programvaren. - if crossing a first threshold is detected, instruct the protected software not to use the corresponding functionality any more, - and if crossing a second threshold is detected, disable the corresponding functionality and/or at least one part of the protected software.

I henhold til en alternativ utførelsesform omfatter fremgangsmåten ifølge oppfinnelsen det å: According to an alternative embodiment, the method according to the invention comprises:

under beskyttelsesfasen: during the protection phase:

• definere refill-anordninger som gjør det mulig å kreditere minst én programfunksjonalitet som overvåkes av en målevariabel med minst én ytterligere bruk, • frembringe eksploateringsmiddelet som også gjør det mulig for enheten å implementere refill-anordningen, • define refill devices that make it possible to credit at least one program functionality monitored by a measurement variable with at least one additional use, • create the exploitation means that also make it possible for the entity to implement the refill device,

• og modifisere den beskyttede programvaren ved å: • and modify the Protected Software by:

- velge, i kilden for den beskyttede programvaren, minst én valgt målevariabel som gjør det mulig å begrense bruken av en funksjonalitet og som må være i stand til å bli kreditert med minst én ytterligere bruk, - og modifisere minst én valgt andel, idet denne modifikasjonen er slik at under en fase kalt refill-fase, minst én ytterligere bruk av minst én - select, in the source of the protected software, at least one selected measurement variable which makes it possible to limit the use of a functionality and which must be able to be credited with at least one further use, - and modify at least one selected share, as this the modification is such that during a phase called refill phase, at least one further use of at least one

funksjonalitet svarende til en valgt målevariabel kan bli kreditert, functionality corresponding to a selected measurement variable can be credited,

og under refill-fasen: and during the refill phase:

oppdatere minst én valgt målevariabel og/eller minst én assosiert terskel for å tillate minst én ytterligere bruk av funksjonaliteten. update at least one selected measurement variable and/or at least one associated threshold for to allow at least one further use of the functionality.

I henhold til en alternativ utførelsesform omfatter fremgangsmåten ifølge oppfinnelsen det å: According to an alternative embodiment, the method according to the invention comprises:

under beskyttelsesfasen: during the protection phase:

• definere: • defining:

- som programeksekveringsegenskap tilbøyelig til å bli overvåket, en programbruksprofil, - og som kriterium å rette seg etter, minst én programeksekveringsegenskap, - as program execution property prone to be monitored, a program usage profile, - and as criterion to comply with, at least one program execution property,

• og modifisere den beskyttede programvaren ved å: • and modify the Protected Software by:

- velge som programeksekveringsegenskap å overvåke, minst én programbruksprofil, - velge minst én programeksekveringsegenskap som minst én valgt bruksprofil må følge, - og modifisere minst én valgt andel av kilden for den beskyttede programvaren, idet denne modifikasjonen er slik at, under eksekvering av den beskyttede programvaren, den andre eksekveringsdelen overholder alle - select as a program execution characteristic to monitor, at least one program usage profile, - select at least one program execution characteristic that at least one selected usage profile must follow, - and modify at least one selected portion of the source of the protected software, this modification being such that, during execution of the protected the software, the other execution part complies with all

de valgte eksekveringsegenskaper, the selected execution properties,

og under bruksfasen, i nærvær av enheten, og dersom det detekteres at minst én eksekveringsegenskap ikke overholdes, informere databehandlingssystemet om dette og/eller endre virkemåten til andelen av den beskyttede programvaren, slik at virkemåten til den beskyttede programvaren endres. and during the use phase, in the presence of the device, and if it is detected that at least one execution characteristic is not observed, inform the data processing system about this and/or change the behavior of the portion of the protected software, so that the behavior of the protected software is changed.

I henhold til en alternativ utførelsesform omfatter fremgangsmåten ifølge oppfinnelsen det å: According to an alternative embodiment, the method according to the invention comprises:

under beskyttelsesfasen: during the protection phase:

definere: defining:

- et instruksjonssett hvis instruksjoner er tilbøyelige til å bli eksekvert i enheten, - et sett av instruksjonskommandoer for nevnte instruksjonssett, idet nevnte instruksjonskommandoer er tilbøyelige til å bli eksekvert i databehandlingssystemet og til å trigge eksekvering av instruksjonene i enheten, - an instruction set whose instructions are likely to be executed in the device, - a set of instruction commands for said instruction set, said instruction commands being likely to be executed in the data processing system and to trigger execution of the instructions in the device,

- som bruksprofil, kjedingen av instruksjonene, - as a usage profile, the chain of instructions,

- som eksekveringsegenskap, en forventet kjeding for eksekvering av instruksjonene, - som deteksjonsanordning, midler som gjør det mulig å detektere at kjedingen av instruksjonene ikke svarer til den forventede, - og som tvangsanordning, midler som gjør det mulig å informere databehandlingssystemet og/eller endre virkemåten til andelen av den beskyttede programvaren når kjedingen av instruksjonene ikke svarer til den forventede, • frembringe eksploateringsmiddelet som også gjør det mulig for enheten å eksekvere instruksjonene i instruksjonssettet, idet eksekveringen av nevnte instruksjoner trigges av eksekvering, i databehandlingssystemet, av instruksjonskommandoene, - as an execution property, an expected chain for executing the instructions, - as a detection device, means that make it possible to detect that the chain of instructions does not correspond to the expected one, - and as a coercion device, means that make it possible to inform the data processing system and/or change the behavior of the part of the protected software when the chaining of the instructions does not correspond to the expected one, • produce the exploitation means which also enables the device to execute the instructions in the instruction set, the execution of said instructions being triggered by the execution, in the data processing system, of the instruction commands,

• og modifisere den beskyttede programvaren ved å: • and modify the Protected Software by:

- modifisere minst én valgt andel av kilden for den beskyttede programvaren, idet denne modifikasjonen er slik at: > minst én valgt algoritmisk prosessering deles opp på en slik måte at under eksekvering av den beskyttede programvaren, nevnte algoritmiske prosessering blir utført, ved hjelp av den andre eksekveringsdelen, med bruk av instruksjoner, - modify at least one selected part of the source for the protected software, this modification being such that: > at least one selected algorithmic processing is divided in such a way that during the execution of the protected software, said algorithmic processing is carried out, using the second execution part, using instructions,

> for minst én valgt algoritmisk prosessering, instruksjonskommandoer integreres i kilden for den beskyttede programvaren på en slik måte at under eksekvering av den beskyttede programvaren, hver instruksjonskommando blir eksekvert av den første eksekveringsdelen og trigger, i enheten, eksekvering, ved hjelp av den andre eksekveringsdelen, av en instruksjon, > for at least one selected algorithmic processing, instruction commands are integrated into the source of the protected software in such a way that during execution of the protected software, each instruction command is executed by the first execution part and triggers, in the device, execution, by means of the second execution part , of an instruction,

> en sekvens av instruksjonskommandoene velges fra det settet av sekvenser som muliggjør eksekvering av den beskyttede programvaren, > a sequence of instruction commands is selected from the set of sequences that enable execution of the protected software,

> og at den kjedingen som i hvert fall noen av instruksjonene må følge under sin eksekvering i enheten spesifiseres, > and that the chain that at least some of the instructions must follow during their execution in the unit is specified,

og under bruksfasen, i nærvær av enheten, dersom det detekteres at kjedingen av instruksjonene som blir eksekvert i enheten ikke svarer til den forventede, informere databehandlingssystemet om dette og/eller endre virkemåten til andelen and during the use phase, in the presence of the device, if it is detected that the chain of instructions executed in the device does not correspond to the expected one, inform the data processing system about this and/or change the operation of the share

av den beskyttede programvaren, slik at virkemåten til den beskyttede programvaren endres. of the Protected Software, so that the behavior of the Protected Software is changed.

I henhold til en alternativ utførelsesform omfatter fremgangsmåten ifølge oppfinnelsen det å: According to an alternative embodiment, the method according to the invention comprises:

under beskyttelsesfasen: during the protection phase:

definere: defining:

- som instruksjonssett, et instruksjonssett i hvilket i hvert fall noen instruksjoner jobber med registre og anvender minst én operand for det formål å returnere et resultat, - as instruction set, an instruction set in which at least some instructions work with registers and use at least one operand for the purpose of returning a result,

- for i hvert fall noen av instruksjonene som jobber med registre: - for at least some of the instructions that work with registers:

> en del som definerer instruksjonens funksjonalitet, > a part that defines the functionality of the instruction,

> og en del som definerer den forventede kjedingen for eksekvering av instruksjonene og som omfatter bit-felter svarende til: > and a part that defines the expected chain for executing the instructions and that includes bit fields corresponding to:

o et identifikasjonsfelt av instruksjonen, o an identification field of the instruction,

o og for hver operand i instruksjonen: o and for each operand in the instruction:

■ et flagg-felt, ■ a flag field,

■ og et forventet identifikasjonsfelt for operanden, ■ and an expected identification field for the operand,

- for hvert register tilhørende eksploateringsmiddelet og som anvendes av instruksjonssettet, et generert identifikasjonsfelt i hvilket identiteten til den siste instruksjonen som har returnert sitt resultat til nevnte register automatisk lagres, - som deteksjonsanordning, midler som gjør det mulig, under eksekvering av en instruksjon, for hver operand, når flagg-feltet pålegger det, å sjekke for likhet mellom det genererte identifikasjonsfeltet svarende til registeret som anvendes av nevnte operand og det forventede identifikasjonsfeltet for opprinnelsen til nevnte operand, - og som tvangsanordning, midler som gjør det mulig å modifisere resultatet av instruksjonene dersom minst én av de sjekkede likheter er usann. - for each register belonging to the exploitation means and which is used by the instruction set, a generated identification field in which the identity of the last instruction that has returned its result to said register is automatically stored, - as a detection device, means which make it possible, during the execution of an instruction, for each operand, when the flag field requires it, to check for equality between the generated identification field corresponding to the register used by said operand and the expected identification field for the origin of said operand, - and as a coercive device, means that make it possible to modify the result of the instructions if at least one of the checked similarities is false.

I henhold til en foretrukket utførelsesform omfatter fremgangsmåten ifølge oppfinnelsen det å: According to a preferred embodiment, the method according to the invention comprises:

under beskyttelsesfasen: during the protection phase:

• modifisere den beskyttede programvaren ved å: • modify the protected software by:

- velge minst én variabel, anvendt i minst én valgt algoritmisk prosessering, som under eksekvering av den beskyttede programvaren delvis definerer tilstanden til den beskyttede programvaren, - modifisere minst én valgt andel av kilden for den beskyttede programvaren, idet denne modifikasjonen er slik at under eksekvering av den beskyttede programvaren, minst én valgt variabel eller minst én kopi av en valgt variabel befinner seg i enheten, - selecting at least one variable, used in at least one selected algorithmic processing, which during execution of the protected software partially defines the state of the protected software, - modifying at least one selected part of the source of the protected software, this modification being such that during execution of the protected software, at least one selected variable or at least one copy of a selected variable resides in the device,

- og generere: - and generate:

> den første objektdelen av den beskyttede programvaren, idet nevnte første objektdel er slik at under eksekvering av den beskyttede programvaren, minst én andel av den første eksekveringsdelen også tar hensyn til at minst én variabel eller minst én kopi av en variabel befinner seg i enheten, > the first object part of the protected software, said first object part being such that during execution of the protected software, at least one part of the first execution part also takes into account that at least one variable or at least one copy of a variable is located in the device,

> og den andre objektdelen av den beskyttede programvaren, idet nevnte andre objektdel er slik at, etter opplasting til enheten og under eksekvering av den beskyttede programvaren, den andre eksekveringsdelen fremkommer, ved hjelp av hvilken minst én valgt variabel, eller minst én kopi av en valgt variabel også befinner seg i > and the second object part of the protected software, said second object part being such that, after uploading to the device and during execution of the protected software, the second execution part appears, by means of which at least one selected variable, or at least one copy of a selected variable is also located in

enheten, the unit,

og under bruksfasen: and during the use phase:

• i nærvær av enheten, hver gang en andel av den første eksekveringsdelen pålegger det, anvende en variabel eller en kopi av en variabel som befinner seg i enheten, slik at nevnte andel eksekveres korrekt og at følgelig den beskyttede programvaren er fullstendig funksjonell, • og i fravær av enheten, til tross for forespørselen fra en andel av den første eksekveringsdelen om å anvende en variabel eller en kopi av en variabel som befinner seg i enheten, ikke være i stand til å etterkomme nevnte fore-spørsel på korrekt måte, slik at i hvert fall nevnte andel ikke blir eksekvert korrekt og at følgelig den beskyttede programvaren ikke er fullstendig funksjonell. • in the presence of the device, whenever a part of the first execution part so requires, apply a variable or a copy of a variable located in the device, so that said part is executed correctly and that consequently the protected software is fully functional, • and in the absence of the entity, despite the request from a portion of the first execution part to use a variable or a copy of a variable located in the entity, not be able to comply with said request in a correct manner, so that in any case, said portion is not executed correctly and that consequently the protected software is not fully functional.

I henhold til en annen foretrukket utførelsesform omfatter fremgangsmåten ifølge oppfinnelsen det å: According to another preferred embodiment, the method according to the invention comprises:

-» under beskyttelsesfasen: -» during the protection phase:

definere: defining:

- som en triggerkommando, en instruksjonskommando, - as a trigger command, an instruction command,

- som en avhengig funksjon, en instruksjon, - as a dependent function, an instruction,

- som en instruksjon, minst ett argument for en triggerkommando, svarende i hvert fall delvis til informasjonen som sendes av databehandlingssystemet til enheten for å trigge eksekvering av den motsvarende avhengige funksjonen, - en fremgangsmåte for omnavning av instruksjonene som gjør det mulig å omnavne instruksjonene for å oppnå triggerkommandoer med omnavnede instruksjoner, - og en tilbakeføringsanordning som er innrettet for å bli anvendt i enheten under bruksfasen og som muliggjør gjenoppretting av den avhengige - as an instruction, at least one argument for a trigger command, corresponding at least in part to the information sent by the data processing system to the device to trigger execution of the corresponding dependent function, - a procedure for renaming the instructions that makes it possible to rename the instructions for to obtain trigger commands with renamed instructions, - and a feedback device which is arranged to be applied in the device during the use phase and which enables the recovery of the dependent

funksjonen å eksekvere fra den omnavnede instruksjonen, frembringe et eksploateringsmiddel som gjør det mulig for enheten også å function to execute from the renamed instruction, produce an exploit that enables the device to also

implementere tilbakeføringsanordningen, implement the return device,

og modifisere den beskyttede programvaren ved å: and modify the Protected Software by:

- velge, i kilden forden beskyttede programvaren, triggerkommandoer, - modifisere minst én valgt andel av kilden for den beskyttede programvaren ved å omnavne instruksjonene i de valgte triggerkommandoene for å skjule identiteten til de motsvarende avhengige funksjonene, - selecting, in the source of the protected software, trigger commands, - modifying at least one selected portion of the source of the protected software by renaming the instructions in the selected trigger commands to hide the identity of the corresponding dependent functions,

- og generere: - and generate:

> den første objektdelen av den beskyttede programvaren, idet nevnte første objektdel er slik at under eksekvering av den beskyttede programvaren, triggerkommandoene med omnavnet instruksjon blir eksekvert, > the first object part of the protected software, said first object part being such that during execution of the protected software, the trigger commands renamed instruction are executed,

> og den andre objektdelen av den beskyttede programvaren som inneholder eksploateringsmiddelet som også implementerer tilbake-føringsanordningen, idet nevnte andre objektdel er slik at, etter opplasting til enheten og under eksekvering av den beskyttede programvaren, identiteten til de avhengige funksjonene hvis eksekvering trigges av den første eksekveringsdelen gjenopprettes ved hjelp av den andre eksekveringsdelen, og de avhengige funksjonene eksekveres ved hjelp av den andre eksekveringsdelen, > and the second object part of the protected software containing the exploitation means which also implements the rollback device, said second object part being such that, after uploading to the device and during execution of the protected software, the identity of the dependent functions whose execution is triggered by the first the execution part is restored using the second execution part, and the dependent functions are executed using the second execution part,

og under bruksfasen: and during the use phase:

• i nærvær av enheten og hver gang en triggerkommando med omnavnet instruksjon, inneholdt i en andel av den første eksekveringsdelen, pålegger det, gjenopprette, i enheten, identiteten til den motsvarende avhengige funksjonen og eksekvere den, slik at nevnte andel eksekveres korrekt og at følgelig den beskyttede programvaren er fullstendig funksjonell, • i fravær av enheten, til tross for forespørselen fra en andel av den første eksekveringsdelen om å trigge eksekvering av en avhengig funksjon i enheten, ikke være i stand til å etterkomme nevnte forespørsel på korrekt måte, slik at i hvert fall nevnte andel ikke eksekveres korrekt og at følgelig den beskyttede programvaren ikke er fullstendig funksjonell. • in the presence of the unit and each time a trigger command with the name instruction, contained in a share of the first execution part, it imposes, restore, in the unit, the identity of the corresponding dependent function and execute it, so that said part is executed correctly and that consequently the protected software is fully functional, • in the absence of the device, despite the request by a part of the first execution part to trigger the execution of a dependent function in the device, not be able to comply with said request in a correct manner, so that in any case, said portion is not executed correctly and that, consequently, the protected software is not fully functional.

I henhold til en alternativ utførelsesform omfatter fremgangsmåten ifølge oppfinnelsen det å: According to an alternative embodiment, the method according to the invention comprises:

under beskyttelsesfasen: during the protection phase:

• definere, for minst én avhengig funksjon, en familie av avhengige funksjoner som er algoritmisk ekvivalente, men som trigges av triggerkommandoer hvis omnavnede instruksjoner er forskjellige, • define, for at least one dependent function, a family of dependent functions that are algorithmically equivalent but are triggered by trigger commands whose renamed instructions are different,

• og modifisere den beskyttede programvaren ved å: • and modify the Protected Software by:

- velge, i kilden for den beskyttede programvaren, minst én triggerkommando med omnavnet instruksjon, - og modifisere minst én valgt andel av kilden for den beskyttede programvaren ved å erstatte i hvert fall den omnavnede instruksjonen til én valgt triggerkommando med omnavnet instruksjon med en annen omnavnet instruksjon, som trigger en avhengig funksjon fra den samme familien. - select, in the source of the protected software, at least one trigger command renamed instruction, - and modify at least one selected portion of the source of the protected software by replacing at least the renamed instruction of one selected trigger command renamed instruction with another renamed instruction, which triggers a dependent function from the same family.

I henhold til en alternativ utførelsesform omfatter fremgangsmåten ifølge oppfinnelsen det å: -» under beskyttelsesfasen, definere, for minst én avhengig funksjon, en familie av algoritmisk ekvivalente avhengige funksjoner ved å: - legge til et støyfelt i den informasjonen som definerer den funksjonelle delen av den avhengige funksjonen som skal eksekveres i enheten, - eller anvende instruksjonens identifikasjonsfelt og operandenes forventede identifikasjonsfelter. According to an alternative embodiment, the method according to the invention comprises: -» during the protection phase, defining, for at least one dependent function, a family of algorithmically equivalent dependent functions by: - adding a noise field to the information that defines the functional part of the dependent function to be executed in the unit, - or use the instruction's identification field and the expected identification fields of the operands.

I henhold til en alternativ utførelsesform omfatter fremgangsmåten ifølge oppfinnelsen det å: According to an alternative embodiment, the method according to the invention comprises:

under beskyttelsesfasen: during the protection phase:

definere: defining:

- som fremgangsmåte for omnavning av instruksjonene, en krypteringsmetode for å kryptere instruksjonene, - og som tilbakeføringsanordning, midler som implementerer en dekrypteringsmetode for å dekryptere de omnavnede instruksjonene og således gjenopprette identiteten til de avhengige funksjoner å eksekvere i enheten. - as a method for renaming the instructions, an encryption method for encrypting the instructions, - and as a recovery device, means implementing a decryption method for decrypting the renamed instructions and thus restoring the identity of the dependent functions to execute in the device.

I henhold til en alternativ utførelsesform omfatter fremgangsmåten ifølge oppfinnelsen det å: According to an alternative embodiment, the method according to the invention comprises:

under beskyttelsesfasen: during the protection phase:

modifisere den beskyttede programvaren ved å: modify the Protected Software by:

- velge, i kilden for den beskyttede programvaren, minst ett betinget sprang som utføres i minst én valgt algoritmisk prosessering, - modifisere minst én valgt andel av kilden for den beskyttede programvaren, idet denne modifikasjonen er slik at under eksekvering av den beskyttede programvaren, funksjonaliteten i minst ett valgt betinget sprang blir utført i enheten, ved hjelp av den andre eksekveringsdelen, - selecting, in the source of the protected software, at least one conditional jump which is performed in at least one selected algorithmic processing, - modifying at least one selected portion of the source of the protected software, this modification being such that during execution of the protected software, the functionality in at least one selected conditional jump is executed in the unit, by means of the second execution part,

- og generere: - and generate:

> den første objektdelen av den beskyttede programvaren, idet nevnte første objektdel er slik at under eksekvering av den beskyttede programvaren, funksjonaliteten i minst ett valgt betinget sprang blir eksekvert i enheten, > the first object part of the protected software, said first object part being such that during execution of the protected software, the functionality in at least one selected conditional jump is executed in the device,

> og den andre objektdelen av den beskyttede programvaren, idet nevnte andre objektdel er slik at, etter opplasting til enheten og under eksekvering av den beskyttede programvaren, den andre eksekveringsdelen fremkommer, ved hjelp av hvilken funksjonaliteten i > and the second object part of the protected software, said second object part being such that, after uploading to the device and during execution of the protected software, the second execution part appears, by means of which the functionality in

minst ett valgt betinget spranget blir eksekvert, at least one selected conditional jump is executed,

og under bruksfasen: and during the use phase:

i nærvær av enheten og hver gang en andel av den første eksekveringsdelen pålegger det, eksekvere funksjonaliteten i minst ett betinget sprang i enheten, slik at nevnte andel eksekveres korrekt og at følgelig den beskyttede programvaren er fullstendig funksjonell, in the presence of the unit and each time a share of the first execution part imposes it, execute the functionality in at least one conditional leap in the device, so that said part is executed correctly and that consequently the protected software is fully functional,

og i fravær av enheten, og til tross for forespørselen fra en andel av den første eksekveringsdelen om å utføre funksjonaliteten i et betinget sprang i enheten, ikke være i stand til å etterkomme nevnte forespørsel på korrekt måte, slik at i hvert fall nevnte andel ikke eksekveres korrekt og at følgelig den beskyttede programvaren ikke er fullstendig funksjonell. and in the absence of the unit, and despite the request from a portion of the first execution part to perform the functionality in a conditional jump in the unit, not be able to comply with said request in a correct manner, so that at least said portion does not is executed correctly and that, consequently, the protected software is not fully functional.

I henhold til en alternativ utførelsesform omfatter fremgangsmåten ifølge oppfinnelsen det å, under beskyttelsesfasen, modifisere den beskyttede programvaren ved å: - velge, i kilden for den beskyttede programvaren, minst én serie av valgte betingede sprang, - modifisere minst én valgt andel av kilden for den beskyttede programvaren, idet denne modifikasjonen er slik at under eksekvering av den beskyttede programvaren, den samlede funksjonaliteten til den minst ene valgte serien av betingede sprang eksekveres i enheten, ved hjelp av den andre eksekveringsdelen, According to an alternative embodiment, the method according to the invention comprises, during the protection phase, modifying the protected software by: - selecting, in the source for the protected software, at least one series of selected conditional jumps, - modifying at least one selected portion of the source for the protected software, this modification being such that during execution of the protected software, the aggregate functionality of the at least one selected series of conditional jumps is executed in the device, by means of the second execution part,

- og ved å generere: - and by generating:

> den første objektdelen av den beskyttede programvaren, idet nevnte første objektdel er slik at under eksekvering av den beskyttede programvaren, funksjonaliteten i minst én valgt serie av betingede sprang blir eksekvert i enheten, > the first object part of the protected software, said first object part being such that during execution of the protected software, the functionality in at least one selected series of conditional jumps is executed in the device,

> og den andre objektdelen av den beskyttede programvaren, idet nevnte andre objektdel er slik at, etter opplasting til enheten og under eksekvering av den beskyttede programvaren, den andre eksekveringsdelen fremkommer, ved hjelp av hvilken den samlede funksjonaliteten i minst én valgt serie av betingede sprang blir eksekvert. > and the second object part of the protected software, said second object part being such that, after uploading to the device and during execution of the protected software, the second execution part appears, by means of which the overall functionality of at least one selected series of conditional jumps will be executed.

Fremgangsmåten ifølge oppfinnelsen gjør det således mulig å beskytte bruk av en programvare ved å anvende en prosesserings- og minneenhet som kjenne-tegnes ved at den inneholder en del av den programvaren som blir eksekvert. Det følger at enhver avledet versjon av programvaren som forsøker å kjøre uten prosesserings- og minneenheten er nødt til å gjenskape den delen av programvaren som er inneholdt i prosesserings- og minneenheten under eksekvering, for ellers vil ikke nevnte avledede versjon av programvaren være fullstendig funksjonell. The method according to the invention thus makes it possible to protect the use of a software by using a processing and memory unit which is characterized by the fact that it contains a part of the software being executed. It follows that any derivative version of the software that attempts to run without the processing and memory unit will have to recreate the part of the software contained in the processing and memory unit during execution, otherwise said derivative version of the software will not be fully functional.

En rekke andre særtrekk vil fremgå av beskrivelsen gitt nedenfor med henvisning til de vedlagte figurene, som viser, i form av ikke-begrensende eksempler, utførelsesformer og realiseringer av oppfinnelsens tema. Figurene 10 og 11 er funksjonelle blokkdiagrammer som illustrerer de forskjellige representasjoner av en programvare henholdsvis ikke beskyttet og beskyttet ved hjelp av fremgangsmåten ifølge oppfinnelsen. Figurene 20 til 22 illustrerer, som eksempler, forskjellige utførelsesformer av et apparat som implementerer fremgangsmåten ifølge oppfinnelsen. Figurene 30 og 31 er funksjonelle blokkdiagrammer som viser det generelle prinsippet ved fremgangsmåten ifølge oppfinnelsen. Figurene 40 til 43 er diagrammer som illustrerer beskyttelsesprosessen ifølge oppfinnelsen, idet den implementerer prinsippet for beskyttelse med variabel. Figurene 70 til 74 er diagrammer som illustrerer beskyttelsesprosessen ifølge oppfinnelsen, idet den implementerer prinsippet for beskyttelse ved deteksjon og tvang. Figurene 80 til 85 er diagrammer som illustrerer beskyttelsesprosessen ifølge oppfinnelsen, idet den implementerer prinsippet for beskyttelse ved omnavning. Figurene 90 til 92 er diagrammer som illustrerer beskyttelsesprosessen ifølge oppfinnelsen, idet den implementerer prinsippet for beskyttelse ved betingede sprang. Figur 100 er et diagram som illustrerer de forskjellige faser ved utførelse av oppfinnelsen. Figur 110 illustrerer en utførelsesform av et system som muliggjør ufførelse av konstruksjonstrinnet i beskyttelsesfasen i henhold til oppfinnelsen. Figur 120 illustrerer en utførelsesform av en prekustomiseringsenhet som anvendes i beskyttelsesprosessen ifølge oppfinnelsen. Figur 130 illustrerer en utførelsesform av et system som muliggjør utførelse av verktøykonstruksjonstrinnet i beskyttelsesfasen ifølge oppfinnelsen. Figur 140 illustrerer en utførelsesform av et system som muliggjør utførelse av beskyttelsesprosessen ifølge oppfinnelsen. Figur 150 illustrerer en utførelsesform av en kustomiseringsenhet som anvendes i beskyttelsesprosessen ifølge oppfinnelsen. A number of other distinctive features will be apparent from the description given below with reference to the attached figures, which show, in the form of non-limiting examples, embodiments and realizations of the subject of the invention. Figures 10 and 11 are functional block diagrams illustrating the different representations of a software respectively not protected and protected by means of the method according to the invention. Figures 20 to 22 illustrate, as examples, different embodiments of an apparatus that implements the method according to the invention. Figures 30 and 31 are functional block diagrams showing the general principle of the method according to the invention. Figures 40 to 43 are diagrams illustrating the protection process according to the invention, as it implements the principle of variable protection. Figures 70 to 74 are diagrams illustrating the protection process according to the invention, as it implements the principle of protection by detection and coercion. Figures 80 to 85 are diagrams illustrating the protection process according to the invention, as it implements the principle of protection by renaming. Figures 90 to 92 are diagrams illustrating the protection process according to the invention, implementing the principle of conditional jump protection. Figure 100 is a diagram that illustrates the different phases in carrying out the invention. Figure 110 illustrates an embodiment of a system which enables execution of the construction step in the protection phase according to the invention. Figure 120 illustrates an embodiment of a pre-customization unit used in the protection process according to the invention. Figure 130 illustrates an embodiment of a system which enables execution of the tool construction step in the protection phase according to the invention. Figure 140 illustrates an embodiment of a system which enables the protection process according to the invention to be carried out. Figure 150 illustrates an embodiment of a customization unit used in the protection process according to the invention.

I resten av beskrivelsen vil følgende definisjoner gjelde: In the rest of the description, the following definitions will apply:

• Et databehandlingssystem 3 er et system som er i stand til å eksekvere et program. • A data processing system 3 is a system capable of executing a program.

• En prosesserings- og minneenhet er en enhet som er i stand til å: • A processing and memory unit is a device capable of:

- ta imot data levert av et databehandlingssystem 3, - receive data provided by a data processing system 3,

- returnere data til databehandlingssystemet 3, - return data to the data processing system 3,

- lagre data i hvert fall delvis hemmelig og huske i hvert fall en del av nevnte data også når enheten blir skrudd av, - og utføre algoritmisk prosessering på data, idet deler av eller hele resultatet holdes hemmelig. • En enhet 6 er en prosesserings- og minneenhet som implementerer fremgangsmåten ifølge oppfinnelsen. • En blankenhet 60 er en enhet som ikke implementerer fremgangsmåten ifølge oppfinnelsen, men som kan motta data som omformer den til en enhet 6. - store data at least partially secretly and remember at least part of said data also when the device is switched off, - and perform algorithmic processing on data, with parts of or all of the result being kept secret. • A unit 6 is a processing and memory unit that implements the method according to the invention. • A blank unit 60 is a unit which does not implement the method according to the invention, but which can receive data which transforms it into a unit 6.

• En prekustomisert enhet 66 er en blankenhet 60 som har mottatt deler av data som gjør at den, etter mottak av supplerende data, kan bli omformet til • A pre-customised unit 66 is a blank unit 60 which has received parts of data which means that, after receiving supplementary data, it can be transformed into

en enhet 6. a unit 6.

• Opplasting av informasjon til en blankenhet 60 eller en prekustomisert enhet 66 svarer til overføring av informasjon til blankenheten 60 eller den • Uploading information to a blank unit 60 or a pre-customized unit 66 corresponds to the transfer of information to the blank unit 60 or the

prekustomiserte enheten 66 samt lagring av nevnte overførte informasjon. pre-customized unit 66 as well as storage of said transmitted information.

Overføringen kan eventuelt omfatte en endring av informasjonsformatet. The transfer may possibly include a change to the information format.

• En variabel, en funksjon eller data inneholdt i databehandlingssystemet 3 vil bli angitt med store bokstaver, mens en variabel, en funksjon eller data inneholdt i enheten 6 vil bli angitt med små bokstaver. • En "beskyttet programvare" er en programvare som er beskyttet med minst ett av beskyttelsesprinsippene implementert av fremgangsmåten ifølge oppfinnelsen. • En "sårbar programvare" er en programvare som ikke er beskyttet med noen av beskyttelsesprinsippene implementert av fremgangsmåten ifølge oppfinnelsen. • Der hvor det å skille mellom en sårbar programvare og en beskyttet programvare ikke er viktig, vil betegnelsen "programvare" bli anvendt. • En programvare har forskjellige representasjoner avhengig av hvor i livs-syklusen den betraktes: • A variable, a function or data contained in the data processing system 3 will be indicated in uppercase letters, while a variable, a function or data contained in the unit 6 will be indicated in lowercase letters. • A "protected software" is a software that is protected by at least one of the protection principles implemented by the method according to the invention. • A "vulnerable software" is a software that is not protected by any of the protection principles implemented by the method according to the invention. • Where distinguishing between vulnerable software and protected software is not important, the term "software" will be used. • A software has different representations depending on where in the life cycle it is considered:

- en kilderepresentasjon, - a source representation,

- en objektrepresentasjon, - an object representation,

- en distrubusjon, - a distribution,

- eller en dynamisk representasjon. - or a dynamic representation.

• En kilderepresntasjon av en programvare er underforstått som en representasjon som etter omforming resulterer i en objektrepresentasjon. En kilderepresentasjon kan tilby forskjellige nivåer, fra et konseptuelt, abstrakt nivå til et nivå kan eksekveres direkte av et databehandlingssystem eller en prosesserings- og minneenhet. • En objektrepresentasjon av en programvare svarer til et representasjonsnivå som etter omforming til en distribusjon og opplasting til et databehandlingssystem eller en prosesserings- og minneenhet kan eksekveres. Den kan for eksempel være binærkode, en interpretert kode, etc. • En distribusjon er en fysisk eller virtuell bærer som inneholder objekt-representasjonen, idet nevnte distribusjon må stilles til brukernes disposisjon for å gjøre det mulig for dem å anvende programvaren. • En dynamisk representasjon svarer til eksekvering av programvaren fra dens distribusjon. • En andel av en programvare svarer til en hvilken som helst del av programvaren, og kan for eksempel svare til én eller flere instruksjoner, konsekutive eller ikke, og/eller én eller flere funksjonelle blokker, konsekutive eller ikke, og/eller én eller flere funksjoner, og/eller én eller flere delprogrammer og/eller én eller flere moduler. En andel av en programvare kan også svare til hele nevnte programvare. Figurene 10 og 11 illustrerer de forskjellige representasjonene henholdsvis av en sårbar programvare 2v i generell forstand og av en beskyttet programvare 2p beskyttet i henhold til fremgangsmåten ifølge oppfinnelsen. Figur 10 illustrerer forskjellige representasjoner av en sårbar programvare 2v som forekommer under dens livssyklus. Den sårbare programvaren 2v kan således fremtre i en hvilken som helst av følgende representasjoner: • A source representation of a software is understood as a representation which, after transformation, results in an object representation. A source representation can offer different levels, from a conceptual, abstract level to a level directly executable by a computing system or a processing and memory device. • An object representation of a software corresponds to a level of representation which, after transformation into a distribution and uploading to a data processing system or a processing and memory unit, can be executed. It can, for example, be binary code, an interpreted code, etc. • A distribution is a physical or virtual carrier that contains the object representation, as said distribution must be made available to the users to enable them to use the software. • A dynamic representation corresponds to the execution of the software from its distribution. • A portion of a piece of software corresponds to any part of the software, and may for example correspond to one or more instructions, consecutive or not, and/or one or more functional blocks, consecutive or not, and/or one or more functions, and/or one or more subprograms and/or one or more modules. A part of a piece of software can also correspond to the whole of said software. Figures 10 and 11 illustrate the different representations respectively of a vulnerable software 2v in a general sense and of a protected software 2p protected according to the method according to the invention. Figure 10 illustrates different representations of a vulnerable software 2v occurring during its life cycle. The vulnerable software 2v can thus appear in any of the following representations:

• en kilderepresentasjon 2vs, • a source representation 2vs,

• en objektrepresentasjon 2vo, • an object representation 2vo,

• en distribusjon 2vd. Denne distribusjonen kan vanligvis være i form av et fysisk distribusjonsmedium, så som et CDROM, eller i form av filer distribuert over et nettverk (GSM, Internett, etc), • eller en dynamisk representasjon 2ve svarende til eksekvering av den sårbare programvaren 2v i et databehandlingssystem 3 av en hvilken som helst kjent type, som generelt omfatter minst én prosessor 4. Figur 11 illustrerer de forskjellige representasjonene av en beskyttet programvare 2p som forekommer under dens livssyklus. Den beskyttede programvaren 2p kan således fremtre i en hvilken som helst av de følgende representasjoner: • en kilderepresentasjon 2ps som omfatter en første kildedel tiltenkt for databehandlingssystemet 3 og en andre kildedel tiltenkt for enheten 6, idet deler av nevnte kildedeler ofte kan være inneholdt i felles filer, • en objektrepresentasjon 2po som omfatter en første objektdel 2pos tiltenkt for databehandlingssystemet 3 og en andre objektdel 2pou tiltenkt for enheten 6, • a distribution 2vd. This distribution can usually be in the form of a physical distribution medium, such as a CDROM, or in the form of files distributed over a network (GSM, Internet, etc), • or a dynamic representation 2ve corresponding to the execution of the vulnerable software 2v in a data processing system 3 of any known type, which generally comprises at least one processor 4. Figure 11 illustrates the different representations of a protected software 2p occurring during its life cycle. The protected software 2p can thus appear in any of the following representations: • a source representation 2ps which comprises a first source part intended for the data processing system 3 and a second source part intended for the unit 6, as parts of said source parts can often be contained in common files, • an object representation 2po which comprises a first object part 2pos intended for the data processing system 3 and a second object part 2pou intended for the device 6,

• en distribusjon 2vd, som omfatter: • a distribution 2vd, which includes:

- en første distribusjonsdel 2pds som inneholder den første objektdelen 2pos, idet nevnte første distribusjonsdel 2pds er tiltenkt for databehandlingssystemet 3 og vanligvis kan være i form av et fysisk distribusjonsmedium, så som et CDROM, eller i form av filer distribuert over et nettverk (GSM, Internett, etc), - a first distribution part 2pds which contains the first object part 2pos, said first distribution part 2pds being intended for the data processing system 3 and can usually be in the form of a physical distribution medium, such as a CDROM, or in the form of files distributed over a network (GSM, Internet, etc.),

- en andre distribusjonsdel 2pdu i form av: - a second distribution part 2pdu in the form of:

> minst én prekustomisert enhet 66 til hvilken en del av den andre objektdelen 2pou har blitt lastet og av hvilken brukeren er nødt til å gjøre ferdig kustomiseringen ved å laste opp supplerende data for å frembringe en enhet 6, idet nevnte supplerende data for eksempel oppnås ved nedlasting over et nettverk, > at least one pre-customized unit 66 to which a part of the second object part 2pou has been loaded and of which the user has to complete the customization by uploading supplementary data to produce a unit 6, said supplementary data being obtained for example by download over a network,

> eller minst én enhet 6 til hvilken den andre objektdelen 2pou har blitt lastet, > or at least one unit 6 to which the second object part 2pou has been loaded,

• eller en dynamisk representasjon 2pe svarende til eksekvering av den beskyttede programvaren 2p. Nevnte dynamiske representasjon 2pe omfatter en første eksekveringsdel 2pes som blir eksekvert i data- • or a dynamic representation 2pe corresponding to execution of the protected software 2p. Said dynamic representation 2pe comprises a first execution part 2pes which is executed in computer

behandlingssystemet 3 og en andre eksekveringsdel 2peu som blir eksekvert i enheten 6. the processing system 3 and a second execution part 2peu which is executed in the unit 6.

I tilfeller der skillet mellom de forskjellige representasjonene av den beskyttede programvaren 2p ikke er viktig, vil uttrykkene første del av den beskyttede programvaren og andre del av den beskyttede programvaren bli anvendt. In cases where the distinction between the different representations of the protected software 2p is not important, the expressions first part of the protected software and second part of the protected software will be used.

Utførelsen av fremgangsmåten ifølge oppfinnelsen i henhold til den dynamiske representasjonen i figur 11 anvender et apparat 1 p som omfatter et databehandlingssystem 3 forbundet via en forbindelse 5 til en enhet 6. Databehandlingssystemet 3 er av en hvilken som helst type, og omfatter generelt minst én prosessor 4. Databehandlingssystemet 3 kan være en datamaskin eller for eksempel være en del av forskjellige maskiner, anordninger, stasjonære eller mobile produkter, eller redskaper i generell forstand. Forbindelsen 5 kan være realisert på en hvilken som helst mulig måte, for eksempel i form av en serieport-forbindelse, en USB-buss, en radiolink, en optisk link, en nettverksforbindelse eller en direkte elektrisk forbindelse til en krets i databehandlingssystemet 3, etc. En skal merke seg at enheten 6 eventuelt fysisk kan befinne seg inne i den samme integrerte kretsen som prosessoren 4 i databehandlingssystemet 3.1 så fall kan enheten 6 betraktes som en koprosessor tilknyttet prosessoren 4 i databehandlingssystemet 3, og forbindelsen 5 er intern i den integrerte kretsen. The embodiment of the method according to the invention according to the dynamic representation in figure 11 uses an apparatus 1 p which comprises a data processing system 3 connected via a connection 5 to a unit 6. The data processing system 3 is of any type, and generally comprises at least one processor 4. The data processing system 3 can be a computer or, for example, be part of various machines, devices, stationary or mobile products, or tools in a general sense. The connection 5 can be realized in any possible way, for example in the form of a serial port connection, a USB bus, a radio link, an optical link, a network connection or a direct electrical connection to a circuit in the data processing system 3, etc. It should be noted that the device 6 can possibly physically be inside the same integrated circuit as the processor 4 in the data processing system 3.1 in which case the device 6 can be considered a coprocessor associated with the processor 4 in the data processing system 3, and the connection 5 is internal to the integrated circuit .

Figurene 20 til 22 viser, på en illustrerende og ikke-begrensende måte, forskjellige utførelsesformer av apparatet 1 p som muliggjør utførelse av beskyttelsesprosessen ifølge oppfinnelsen. Figures 20 to 22 show, in an illustrative and non-limiting manner, different embodiments of the apparatus 1 p which enable the protection process according to the invention to be carried out.

I den utførelsesformen som er illustrert i figur 20, omfatter beskyttelsesapparatet 1p, som databehandlingssystem 3, en datamaskin, og, som enhet 6, et chipkort 7 og dets grensesnitt 8, vanligvis kalt en kortleser. Datamaskinen 3 er forbundet med enheten 6 via en forbindelse 5. Under eksekvering av den beskyttede programvaren 2p må den første eksekveringsdelen 2pes som eksekveres i datamaskinen 3 og den andre eksekveringsdelen 2peu som eksekveres i chipkortet 7 og dets grensesnitt 8 begge være funksjonelle, slik at den beskyttede programvaren 2p er fullstendig funksjonell. In the embodiment illustrated in figure 20, the protection apparatus 1p comprises, as data processing system 3, a computer, and, as unit 6, a chip card 7 and its interface 8, usually called a card reader. The computer 3 is connected to the device 6 via a connection 5. During execution of the protected software 2p, the first execution part 2pes which is executed in the computer 3 and the second execution part 2peu which is executed in the chip card 7 and its interface 8 must both be functional, so that the the protected software 2p is fully functional.

I den utførelsesformen som er illustrert i figur 21, utstyrer beskyttelsesapparatet 1p et produkt 9, i generell forstand, som omfatter forskjellige komponenter 10 som er anpasset for funksjonen(e) som utføres av dette produktet 9. Beskyttelsesapparatet 1 p omfatter, på den ene side, et databehandlingssystem 3 innbygget i produktet 9 og, på den annen side, en enhet 6 tilknyttet produktet 9. For at produktet 9 skal være fullstendig funksjonelt, må den beskyttede programvaren 2p være fullstendig funksjonell. Under eksekvering av den beskyttede programvaren 2p må således den første eksekveringsdelen 2pes som eksekveres i databehandlingssystemet 3 og den andre eksekveringsdelen 2peu som eksekveres i enheten 6 begge være funksjonelle. Nevnte beskyttede programvare 2p gjør det derfor mulig indirekte å beskytte produktet 9 eller en av dets funksjonaliteter mot uautorisert bruk. For eksempel kan produktet 9 være en installasjon, et system, en maskin, et leketøy, et husholdningsapparat, en telefon, etc. In the embodiment illustrated in Figure 21, the protective device 1p equips a product 9, in a general sense, which comprises various components 10 adapted for the function(s) performed by this product 9. The protective device 1p comprises, on the one hand , a data processing system 3 built into the product 9 and, on the other hand, a device 6 associated with the product 9. For the product 9 to be fully functional, the protected software 2p must be fully functional. During execution of the protected software 2p, the first execution part 2pes which is executed in the data processing system 3 and the second execution part 2peu which is executed in the device 6 must both be functional. Said protected software 2p therefore makes it possible to indirectly protect the product 9 or one of its functionalities against unauthorized use. For example, the product 9 can be an installation, a system, a machine, a toy, a household appliance, a telephone, etc.

I den utførelsesformen som er illustrert i figur 22 omfatter beskyttelsesapparatet 1 p flere datamaskiner, så vel som deler av et kommunikasjonsnett. Databehandlingssystemet 3 er en første datamaskin, som via en nettverk-type forbindelse 5 er forbundet med en enhet 6 omfattet av en annen datamaskin. I denne utførelsen av oppfinnelsen anvendes den andre datamaskinen 6 som lisenstjener for en beskyttet programvare 2p. Under eksekvering av den beskyttede programvaren 2p må den første eksekveringsdelen 2pes, som eksekveres i den første datamaskinen 3, og den andre eksekveringsdelen 2peu som eksekveres i den andre datamaskinen 6, begge være funksjonelle, slik at den beskyttede programvaren 2p er fullstendig funksjonell. In the embodiment illustrated in Figure 22, the protection device 1 p comprises several computers, as well as parts of a communication network. The data processing system 3 is a first computer, which is connected via a network-type connection 5 to a unit 6 comprised by another computer. In this embodiment of the invention, the second computer 6 is used as a license server for a protected software 2p. During execution of the protected software 2p, the first execution part 2pes, which is executed in the first computer 3, and the second execution part 2peu, which is executed in the second computer 6, must both be functional, so that the protected software 2p is fully functional.

Figur 30 gjør det mulig å forklare mer detaljert beskyttelsesprosessen ifølge oppfinnelsen. En skal merke seg at en sårbar programvare 2v antas å bli kjørt i sin helhet i et databehandlingssystem 3. På den annen side, ved implementasjon av en beskyttet programvare 2p, omfatter databehandlingssystemet 3 overførings-anordninger 12 som via forbindelsen 5 er forbundet med overføringsanordninger 13 som er en del av enheten 6, hvilket gjør det mulig å etablere kommunikasjon mellom den første eksekveringsdelen 2pes og den andre eksekveringsdelen 2peu av den beskyttede programvaren 2p. Figure 30 makes it possible to explain in more detail the protection process according to the invention. It should be noted that a vulnerable software 2v is assumed to be run in its entirety in a data processing system 3. On the other hand, when implementing a protected software 2p, the data processing system 3 comprises transmission devices 12 which are connected via connection 5 to transmission devices 13 which is part of the device 6, which makes it possible to establish communication between the first execution part 2pes and the second execution part 2peu of the protected software 2p.

Det må tas i betraktning at overføringsanordningene 12,13 er realisert i programvare og/eller hardware, og er i stand til å besørge, og eventuelt optimere, kommunikasjonen av data mellom databehandlingssystemet 3 og enheten 6. Nevnte overføringsanordninger 12, 13 er innrettet for å gjøre det mulig å frembringe en beskyttet programvare 2p som fortrinnsvis er uavhengig av typen forbindelse 5 som anvendes. Nevnte overføringsanordninger 12,13 er ikke en del av oppfinnelsens tema, og er ikke beskrevet mer i detalj ettersom de er velkjente for fag mannen. Den første delen av den beskyttede programvaren 2p omfatter kommandoer. Under eksekvering av den beskyttede programvaren 2p muliggjør eksekvering av nevnte kommandoer av den første eksekveringsdelen 2pes kommunikasjonen mellom den første eksekveringsdelen 2pes og den andre eksekveringsdelen 2peu. I resten av beskrivelsen er nevnte kommandoer representert ved IN, OUT eller TRIG. It must be taken into account that the transmission devices 12, 13 are realized in software and/or hardware, and are capable of ensuring, and possibly optimizing, the communication of data between the data processing system 3 and the unit 6. Said transmission devices 12, 13 are designed to make it possible to produce a protected software 2p which is preferably independent of the type of connection 5 used. Said transfer devices 12,13 are not part of the subject of the invention, and are not described in more detail as they are well known to the person skilled in the art. The first part of the protected software 2p comprises commands. During execution of the protected software 2p, execution of said commands by the first execution part 2pes enables the communication between the first execution part 2pes and the second execution part 2peu. In the rest of the description, said commands are represented by IN, OUT or TRIG.

Som illustrert i figur 31, for å muliggjøre implementering av den andre eksekveringsdelen 2peu av den beskyttede programvaren 2p, omfatter enheten 6 en beskyttelsesanordning 14. Beskyttelsesanordningen 14 omfatter minne-anordninger 15 og prosesseringsanordninger 16. As illustrated in Figure 31, to enable the implementation of the second execution part 2peu of the protected software 2p, the device 6 includes a protection device 14. The protection device 14 includes memory devices 15 and processing devices 16.

For enkelhets skyld er det i resten av beskrivelsen valgt å betrakte, ved eksekvering av den beskyttede programvaren 2p, nærvær av enheten 6 eller fravær av enheten 6.1 realiteten er en enhet 6 som tilveiebringer beskyttelsesanordninger 14 som ikke er innrettet for eksekvering av den andre eksekveringsdelen 2peu av den beskyttede programvaren 2p også å anse som fraværende hver gang eksekveringen av den beskyttede programvaren 2p ikke er korrekt. Med andre ord: • en enhet 6 som er fysisk til stede og som omfatter beskyttelsesanordninger 14 som er innrettet for eksekvering av den andre eksekveringsdelen 2peu av den beskyttede programvaren 2p betraktes alltid som tilstedeværende, • en enhet 6 som er fysisk til stede, men som omfatter beskyttelsesanordninger 14 som ikke er tilpasset, det vil si ikke muliggjør korrekt implementering av den andre eksekveringsdelen 2peu av den beskyttede programvaren 2p, betraktes som tilstedeværende når den fungerer korrekt og som fraværende når den ikke fungerer korrekt, For the sake of simplicity, in the rest of the description it has been chosen to consider, when executing the protected software 2p, the presence of the device 6 or the absence of the device 6.1 the reality is a device 6 that provides protection devices 14 which is not arranged for the execution of the second execution part 2peu of the protected software 2p also to be considered absent whenever the execution of the protected software 2p is not correct. In other words: • a device 6 which is physically present and which includes protection devices 14 which are arranged for the execution of the second execution part 2peu of the protected software 2p is always considered to be present, • a device 6 which is physically present, but which includes protection devices 14 that are not adapted, i.e. do not enable the correct implementation of the second execution part 2peu of the protected software 2p, are considered present when they function correctly and as absent when they do not function correctly,

• og en enhet 6 som fysisk er fraværende betraktes alltid som fraværende. • and a unit 6 that is physically absent is always considered absent.

I tilfellet hvor enheten 6 utgjøres av et chipkort 7 og dets grensesnitt 8, er over-føringsanordningene 13 delt i to deler, hvorav én befinner seg i grensesnittet 8 og den andre befinner seg i chipkortet 7.1 denne utførelsesformen betraktes fravær av chipkortet 7 som ekvivalent med fravær av enheten 6. Med andre ord, i fravær av chipkortet 7 og/eller dettes grensesnitt 8, er ikke beskyttelsesanordningen 14 aksesserbar og muliggjør ikke eksekvering av den andre eksekveringsdelen 2peu av den beskyttede programvaren, slik at den beskyttede programvaren 2p ikke er fullstendig funksjonell. In the case where the unit 6 consists of a chip card 7 and its interface 8, the transmission devices 13 are divided into two parts, one of which is located in the interface 8 and the other is located in the chip card 7.1 this embodiment, the absence of the chip card 7 is considered equivalent to absence of the device 6. In other words, in the absence of the chip card 7 and/or its interface 8, the protection device 14 is not accessible and does not enable the execution of the second execution part 2peu of the protected software, so that the protected software 2p is not fully functional .

I henhold til oppfinnelsen har beskyttelsesprosessen som formål å implementere et beskyttelsesprinsipp kalt ved "deteksjon og tvang", en beskrivelse av hvilket er gitt i forbindelse med figurene 70 til 74. According to the invention, the purpose of the protection process is to implement a protection principle called by "detection and coercion", a description of which is given in connection with figures 70 to 74.

For implementering av prinsippet for beskyttelse ved deteksjon og tvang defineres: • minst én programeksekveringsegenskap som er tilbøyelig til å bli overvåket i hvert fall delvis i enheten 6, • minst ett kriterium å rette seg etter for minst én programeksekveringsegenskap, • en deteksjonsanordning 17 for implementering i enheten 6 og som gjør det mulig å detektere at minst én programeksekveringsegenskap ikke overholder minst ett assosiert kriterium, • og en tvangsanordning 18 for implementering i enheten 6 og som gjør det mulig å informere databehandlingssystemet 3 og/eller endre virkemåten til en programvare når minst ett kriterium ikke overholdes. For the implementation of the principle of protection by detection and coercion is defined: • at least one program execution property that is prone to be monitored at least partially in the unit 6, • at least one criterion to comply with for at least one program execution property, • a detection device 17 for implementation in the unit 6 and which makes it possible to detect that at least one program execution property does not comply with at least one associated criterion, • and a forcing device 18 for implementation in the unit 6 and which makes it possible to inform the data processing system 3 and/or change the behavior of a software when at least one criterion is not met.

For implementering av prinsippet for beskyttelse ved deteksjon og tvang tilveiebringes også eksploateringsmidler som gjør det mulig å transformere en blankenhet 60 til en enhet 6 som i hvert fall implementerer deteksjonsanordningen 17 og tvangsanordningen 18. For implementation of the principle of protection by detection and coercion, exploitation means are also provided which make it possible to transform a blank unit 60 into a unit 6 which at least implements the detection device 17 and the coercive device 18.

Figur 70 illustrerer anordningene som er nødvendige for implementering av prinsippet for beskyttelse ved deteksjon og tvang. Enheten 6 omfatter deteksjonsanordningen 17 og tvangsanordningen 18 hørende til prosesseringsanordningen 16. Tvangsanordningen 18 blir informert av deteksjonsanordningen 17 om at et kriterium ikke er overholdt. Figure 70 illustrates the devices necessary to implement the principle of protection by detection and coercion. The unit 6 comprises the detection device 17 and the enforcement device 18 belonging to the processing device 16. The enforcement device 18 is informed by the detection device 17 that a criterion has not been met.

Mer presist anvender deteksjonsanordningen 17 informasjon fra overførings-anordningen 13 og/eller fra minneanordningen 15 og/eller fra prosesseringsanordningen 16 for å overvåke én eller flere programeksekveringsegenskaper. For hver programeksekveringsegenskap er det satt minst ett kriterium å rette seg etter. More precisely, the detection device 17 uses information from the transmission device 13 and/or from the memory device 15 and/or from the processing device 16 to monitor one or more program execution properties. For each program execution property, at least one criterion is set to comply with.

Dersom det detekteres at minst én programeksekveringsegenskap ikke overholder minst ett kriterium, informerer deteksjonsanordningen 17 tvangsanordningen 18 om dette. Nevnte tvangsanordning 18 er innrettet for på passende måte å modifisere tilstanden til enheten 6. If it is detected that at least one program execution property does not comply with at least one criterion, the detection device 17 informs the enforcement device 18 about this. Said forcing device 18 is arranged to suitably modify the state of the unit 6.

For implementering av prinsippet for beskyttelse ved deteksjon og tvang velges også: For the implementation of the principle of protection by detection and coercion, the following are also selected:

• minst én programeksekveringsegenskap å overvåke, fra de programeksekveringsegenskapene som er tilbøyelige til å bli overvåket, • minst ett kriterium å rette seg etter for minst én valgt eksekveringsegenskap, • i kilden for den sårbare programvaren 2vs, minst én algoritmisk prosessering i forbindelse med hvilken minst én programeksekveringsegenskap skal overvåkes, • og i kilden for den sårbare programvaren 2vs, minst én andel som inneholder minst én valgt algoritmisk prosessering. • at least one program execution property to monitor, from the program execution properties that are prone to be monitored, • at least one criterion to comply with for at least one selected execution property, • in the source of the vulnerable software 2vs, at least one algorithmic processing in connection with which at least one program execution property must be monitored, • and in the source of the vulnerable software 2vs, at least one share containing at least one selected algorithmic processing.

Minst én valgt andel av kilden for den sårbare programvaren 2vs blir deretter modifisert for å frembringe kilden for den beskyttede programvaren 2ps. Denne modifikasjonen er slik at, under eksekvering av den beskyttede programvaren 2p, blant annet: • minst én andel av den første eksekveringsdelen 2pes, som eksekveres i databehandlingssystemet 3, tar i betraktning at minst én valgt programeksekveringsegenskap skal overvåkes, i hvert fall delvis i enheten 6, • og den andre eksekveringsdelen 2peu, som eksekveres i enheten 6, i hvert fall delvis overvåker en valgt programeksekveringsegenskap. At least one selected portion of the source of the vulnerable software 2vs is then modified to produce the source of the protected software 2ps. This modification is such that, during execution of the protected software 2p, among other things: • at least one portion of the first execution part 2pes, which is executed in the data processing system 3, takes into account that at least one selected program execution property is to be monitored, at least partially in the device 6, • and the second execution part 2peu, which is executed in the unit 6, at least partially monitors a selected program execution property.

Under eksekvering av den beskyttede programvaren 2p, beskyttet ved hjelp av prinsippet for beskyttelse ved deteksjon og tvang, i nærvær av enheten 6: • så lenge alle kriterier svarende til alle de overvåkede programeksekveringsegenskaper til alle de modifiserte andeler av den beskyttede programvaren 2p overholdes, fungerer nevnte modifiserte andeler i den beskyttede programvaren 2p nominelt, slik at nevnte beskyttede programvare 2p fungerer nominelt, • og dersom minst ett av kriteriene svarende til en overvåket eksekveringsegenskap til en andel av den beskyttede programvaren 2p ikke overholdes, blir databehandlingssystemet 3 informert om dette og/eller virkemåten til andelen av den beskyttede programvaren 2p blir modifisert, slik at virkemåten til den beskyttede programvaren 2p endres. During the execution of the protected software 2p, protected by means of the principle of protection by detection and coercion, in the presence of the device 6: • as long as all criteria corresponding to all the monitored program execution characteristics of all the modified portions of the protected software 2p are met, working said modified portions of the protected software 2p nominally, so that said protected software 2p functions nominally, • and if at least one of the criteria corresponding to a monitored execution property of a portion of the protected software 2p is not met, the data processing system 3 is informed of this and/ or the operation of the portion of the protected software 2p is modified, so that the operation of the protected software 2p is changed.

Naturligvis, i fravær av enheten 6, vil minst én forespørsel fra en andel av den første eksekveringsdelen 2pes av den beskyttede programvaren 2p om å envende enheten 6 ikke kunne etterkommes korrekt, slik at i hvert fall nevnte andel ikke blir eksekvert korrekt og at følgelig den beskyttede programvaren 2p ikke er fullstendig funksjonell. Naturally, in the absence of the device 6, at least one request from a part of the first execution part 2pes of the protected software 2p to use the device 6 will not be able to be correctly complied with, so that at least said part is not executed correctly and that consequently the protected software 2p is not fully functional.

For implementering av prinsippet for beskyttelse ved deteksjon og tvang anvendes fortrinnsvis to typer programeksekveringsegenskaper. For implementation of the principle of protection by detection and coercion, two types of program execution properties are preferably used.

Den første typen programeksekveringsegenskap er en målevariabel for eksekvering av en programvare, og den andre typen er en programbruksprofil. Nevnte to typer av egenskaper kan anvendes uavhengig av hverandre eller i kombinasjon. The first type of program execution property is a measurement variable for the execution of a software, and the second type is a program usage profile. The aforementioned two types of properties can be used independently or in combination.

For implementering av prinsippet for beskyttelse ved deteksjon og tvang med bruk av, som eksekveringsegenskap, en målevariabel for programeksekvering defineres: • i minneanordningen 15, mulighet for å lagre minst én målevariabel anvendt for å kvantifisere bruken av minst én funksjonalitet i en programvare, • i deteksjonsanordningen 17, mulighet for å overvåke minst én terskel assosiert med hver målevariabel, • og en aktualiseringsanordning som gjør det mulig å oppdatere hver målevariabel avhengig av bruken av den funksjonaliteten med hvilken den er assosiert. For the implementation of the principle of protection by detection and coercion using, as an execution property, a measurement variable for program execution is defined: • in the memory device 15, possibility to store at least one measurement variable used to quantify the use of at least one functionality in a software, • in the detection device 17, possibility of monitoring at least one threshold associated with each measurement variable, • and an actualization device that makes it possible to update each measurement variable depending on the use of the functionality with which it is associated.

Det frembringes også et eksploateringsmiddel som implementerer, i tillegg til deteksjonsanordningen 17 og tvangsanordningen 18, aktualiseringsanordningen. An exploitation means is also produced which implements, in addition to the detection device 17 and the forcing device 18, the actualization device.

Det velges også, i kilden for den sårbare programvaren 2vs: It is also selected, in the source of the vulnerable software 2vs:

• minst én funksjonalitet i den sårbare programvaren 2v hvis bruk er tilbøyelig til å bli overvåket ved anvendelse av en målevariabel, • minst én målevariabel anvendt for å kvantifisere bruken av nevnte funksjonalitet, • minst én terskel assosiert med målevariabelen svarende til en begrensning på bruk av nevnte funksjonalitet, • og minst én metode for oppdatering av målevariabelen avhengig av bruken av nevnte funksjonalitet. • at least one functionality in the vulnerable software 2v whose use is likely to be monitored using a measurement variable, • at least one measurement variable used to quantify the use of said functionality, • at least one threshold associated with the measurement variable corresponding to a restriction on the use of said functionality, • and at least one method for updating the measurement variable depending on the use of said functionality.

Kilden for den sårbare programvaren 2vs blir deretter modifisert for å frembringe kilden for den beskyttede programvaren 2ps, idet denne modifikasjonen er slik at, under eksekvering av den beskyttede programvaren 2p, den andre eksekveringsdelen 2peu: The source of the vulnerable software 2vs is then modified to produce the source of the protected software 2ps, this modification being such that, during execution of the protected software 2p, the second execution part 2peu:

• oppdaterer målevariabelen avhengig av bruken av nevnte funksjonalitet, • updates the measurement variable depending on the use of said functionality,

• og tar hensyn til minst én terskelverdi-kryssing. • and takes into account at least one threshold crossing.

Med andre ord, under eksekvering av den beskyttede programvaren 2p, blir målevariabelen oppdatert avhengig av bruken av nevnte funksjonalitet, og når terskelen krysses, informerer deteksjonsanordningen 17 tvangsanordningen 18 om dette, som tar en anpasset avgjørelse om å informere databehandlingssystemet 3 og/eller endre prosesseringen utført av prosesseringsanordningen 16 for å bevirke endring av virkemåten til andelen av den beskyttede programvaren 2p, slik at virkemåten til den beskyttede programvaren 2p endres. In other words, during the execution of the protected software 2p, the measurement variable is updated depending on the use of said functionality, and when the threshold is crossed, the detection device 17 informs the enforcement device 18 about this, which makes a customized decision to inform the data processing system 3 and/or change the processing performed by the processing device 16 to cause the change of the operation of the portion of the protected software 2p so that the operation of the protected software 2p is changed.

For utførelse av en første foretrukket alternativ utførelsesform av prinsippet for beskyttelse ved deteksjon og tvang med bruk av, som egenskap, en målevariabel, defineres: For the execution of a first preferred alternative embodiment of the principle of protection by detection and coercion using, as a characteristic, a measurement variable, is defined:

• for minst én målevariabel, flere assosierte terskeler, • for at least one measurement variable, several associated thresholds,

• og forskjellige tvangsmidler svarende til hver av nevnte terskeler. • and different coercive measures corresponding to each of the mentioned thresholds.

Det velges også, i kilden for den sårbare programvaren 2vs: It is also selected, in the source of the vulnerable software 2vs:

• minst én målevariabel anvendt for å kvantifisere bruken av minst én funksjonalitet i programvaren, og med hvilken det må assosieres flere terskeler svarende til forskjellige begrensninger på bruk av nevnte funksjonaliteten • at least one measurement variable used to quantify the use of at least one functionality in the software, and with which several thresholds corresponding to different restrictions on the use of said functionality must be associated

• og minst to terskeler assosiert med målevariabelen. • and at least two thresholds associated with the measurement variable.

Kilden for den sårbare programvaren 2vs blir deretter modifisert for å frembringe kilden for den beskyttede programvaren 2ps, idet denne modifikasjonen er slik at, under eksekvering av den beskyttede programvaren 2p, den andre eksekveringsdelen 2peu: The source of the vulnerable software 2vs is then modified to produce the source of the protected software 2ps, this modification being such that, during execution of the protected software 2p, the second execution part 2peu:

• oppdaterer målevariabelen avhengig av bruken av nevnte funksjonalitet, • updates the measurement variable depending on the use of said functionality,

• og tar hensyn til, på forskjellig måte, kryssing av de forskjellige terskeler. • and takes into account, in different ways, the crossing of the different thresholds.

Med andre ord, under eksekvering av den beskyttede programvaren 2p, når den første terskelen blir krysset, informerer enheten 6 klassisk databehandlingssystemet 3, som pålegger den beskyttede programvaren 2p ikke å anvende nevnte funksjonalitet mer. Dersom den beskyttede programvaren 2p fortsetter å anvende nevnte funksjonalitet, vil den andre terskelen potensielt kunne bli krysset. Dersom den andre terskelen krysses, kan tvangsanordningen 18 gjøre den valgte funksjonaliteten uvirksom og/eller gjøre den beskyttede programvaren 2p uvirksom. In other words, during the execution of the protected software 2p, when the first threshold is crossed, the device 6 classically informs the data processing system 3, which instructs the protected software 2p not to use said functionality anymore. If the protected software 2p continues to use said functionality, the second threshold could potentially be crossed. If the second threshold is crossed, the enforcement device 18 can disable the selected functionality and/or disable the protected software 2p.

For implementering av en andre foretrukket alternativ utførelsesform av prinsippet for beskyttelse ved deteksjon og tvang med bruk av, som egenskap, en målevariabel, defineres en refill-anordning som gjør det mulig å kreditere minst én programfunksjonalitet overvåket av en målevariabel minst én ytterligere bruk. For the implementation of a second preferred alternative embodiment of the principle of protection by detection and coercion using, as a characteristic, a measurement variable, a refill device is defined which makes it possible to credit at least one program functionality monitored by a measurement variable at least one further use.

Det tilveiebringes også et eksploateringsmiddel som implementerer, i tillegg til deteksjonsanordningen 17, tvangsanordningen 18 og aktualiseringsanordningen, refill-anordningen. An exploitation means is also provided which implements, in addition to the detection device 17, the forcing device 18 and the actualization device, the refill device.

Det velges også, i kilden for den sårbare programvaren 2vs, minst en målevariabel som anvendes for å begrense bruken av minst en funksjonalitet i programvaren og som må kunne krediteres med minst én ytterligere bruk. At least one measurement variable is also selected, in the source for the vulnerable software 2vs, which is used to limit the use of at least one functionality in the software and which must be able to be credited with at least one further use.

Kilden for den sårbare programvaren 2vs blir deretter modifisert for å frembringe kilden for den beskyttede programvaren 2ps, idet denne modifikasjonen er slik at, under en fase kalt refill-fase, minst én ytterligere bruk av minst én funksjonalitet svarende til en valgt målevariabel kan bli kreditert. The source of the vulnerable software 2vs is then modified to produce the source of the protected software 2ps, this modification being such that, during a phase called refill phase, at least one additional use of at least one functionality corresponding to a selected measurement variable can be credited .

Det utføres, under refill-fasen, oppdatering av minst én valgt målevariabel og/eller av minst én assosiert terskel for å tillate minst én ytterligere bruk av den til-hørende funksjonaliteten. Med andre ord er det mulig, under refill-fasen, å kreditere ytterligere bruk av minst én funksjonalitet i den beskyttede programvaren 2p. During the refill phase, updating of at least one selected measurement variable and/or of at least one associated threshold is performed to allow at least one further use of the associated functionality. In other words, it is possible, during the refill phase, to credit additional use of at least one functionality of the protected software 2p.

For implementering av prinsippet for beskyttelse ved deteksjon og tvang med bruk av, som egenskap, en programbruksprofil, defineres som kriterium å rette seg etterfor nevnte bruksprofil, minst én programeksekveringsegenskap. For the implementation of the principle of protection by detection and coercion with the use of, as a property, a program usage profile, at least one program execution property is defined as the criterion to comply with said usage profile.

Det velges også, i kilden for den sårbare programvaren 2vs: It is also selected, in the source of the vulnerable software 2vs:

• minst ett bruksprofil å overvåke, • at least one usage profile to monitor,

• og minst én eksekveringsegenskap som minst ett valgt bruksprofil må rette seg etter. • and at least one execution property that at least one selected usage profile must comply with.

Kilden for den sårbare programvaren 2vs blir deretter modifisert for å frembringe kilden for den beskyttede programvaren 2ps, idet denne modifikasjonen er slik at, under eksekvering av den beskyttede programvaren 2p, den andre eksekveringsdelen 2peu overholder alle de valgte programeksekveringsegenskaper. Med andre ord overvåker enheten 6 selv måten på hvilken den andre eksekveringsdelen 2peu blir eksekvert, og kan informere databehandlingssystemet 3 og/eller endre virkemåten til den beskyttede programvaren 2p dersom minst én eksekveringsegenskap ikke blir overholdt. The source of the vulnerable software 2vs is then modified to produce the source of the protected software 2ps, this modification being such that, during execution of the protected software 2p, the second execution part 2peu complies with all the selected program execution characteristics. In other words, the device 6 itself monitors the way in which the second execution part 2peu is executed, and can inform the data processing system 3 and/or change the behavior of the protected software 2p if at least one execution characteristic is not observed.

Under eksekvering av den beskyttede programvaren 2p, beskyttet ved hjelp av dette prinsippet, i nærvær av enheten 6: • så lenge alle eksekveringsegenskaper til alle de modifiserte andeler av den beskyttede programvaren 2p overholdes, fungerer nevnte modifiserte andeler av den beskyttede programvaren 2p nominelt, slik at nevnte beskyttede programvare 2p fungerer nominelt, • og dersom minst én eksekveringsegenskap ved en andel av den beskyttede programvaren 2p ikke overholdes, informeres databehandlingssystemet 3 om dette og/eller virkemåten til andelen av den beskyttede programvaren 2p blir modifisert, slik at virkemåten til den beskyttede programvaren 2p endres. During the execution of the protected software 2p, protected by means of this principle, in the presence of the device 6: • as long as all the execution characteristics of all the modified portions of the protected software 2p are observed, said modified portions of the protected software 2p operate nominally, as that said protected software 2p works nominally, • and if at least one execution characteristic of a part of the protected software 2p is not observed, the data processing system 3 is informed about this and/or the operation of the part of the protected software 2p is modified, so that the operation of the protected the software 2p changes.

Overvåking av forskjellige eksekveringsegenskaper kan vurderes, som for eksempel overvåking av tilstedeværelse av instruksjoner som omfatter en markør eller overvåking av eksekveringskjedingen for minst én del av instruksjonene. Monitoring various execution characteristics can be considered, such as monitoring the presence of instructions that include a pointer or monitoring the execution chain of at least one part of the instructions.

For implementering av prinsippet for beskyttelse ved deteksjon og tvang med bruk som eksekveringsegenskap å overholde overvåkning av eksekveringskjedingen for i hvert fall én del av instruksjonene, defineres: • et instruksjonssett, hvis instruksjoner er tilbøyelige til å bli eksekvert i enheten 6, • et sett av instruksjonskommandoer for nevnte instruksjonssett, idet nevnte instruksjonskommandoer er tilbøyelige til å bli eksekvert i databehandlingssystemet 3. Eksekvering av hver av nevnte instruksjonskommandoer i databehandlingssystemet 3 trigger eksekvering av den motsvarende instruksjonen i enheten 6, • en deteksjonsanordning 17 som gjør det mulig å detektere at kjedingen av instruksjonene ikke svarer til den forventede, • og en tvangsanordning 18 som gjør det mulig å informere databehandlingssystemet 3 og/eller endre virkemåten til en programvare når kjedingen av instruksjonene ikke svarer til den forventede. For the implementation of the principle of protection by detection and coercion using as an execution property to observe monitoring of the execution chain for at least one part of the instructions, define: • an instruction set, whose instructions are likely to be executed in the device 6, • a set of instruction commands for said instruction set, said instruction commands tending to be executed in the data processing system 3. Execution of each of said instruction commands in the data processing system 3 triggers execution of the corresponding instruction in the unit 6, • a detection device 17 which makes it possible to detect that the chain of the instructions do not correspond to the expected, • and a coercive device 18 which makes it possible to inform the data processing system 3 and/or change the operation of a software when the chain of instructions does not correspond to the expected.

Det tilveiebringes også et eksploateringsmiddel som gjør det mulig for enheten 6 også å eksekvere instruksjonene i instruksjonssettet, idet eksekvering av nevnte instruksjoner trigges av eksekvering i databehandlingssystemet 3 av instruksjonskommandoene. An exploitation means is also provided which enables the unit 6 to also execute the instructions in the instruction set, execution of said instructions being triggered by execution in the data processing system 3 of the instruction commands.

Det velges også, i kilden for den sårbare programvaren 2vs, minst én algoritmisk prosessering som må fjern-utføres i enheten 6 og i forbindelse med hvilken kjedingen av i hvert fall én del av instruksjonene skal overvåkes. There is also selected, in the source for the vulnerable software 2vs, at least one algorithmic processing which must be carried out remotely in the unit 6 and in connection with which the chaining of at least one part of the instructions must be monitored.

Kilden for den sårbare programvaren 2vs blir deretter modifisert for å frembringe kilden for den beskyttede programvaren 2ps, idet denne modifikasjonen er slik at, under eksekvering av den beskyttede programvaren 2p: • den andre eksekveringsdelen 2peu i hvert fall utfører funksjonaliteten til den valgte algoritmiske prosesseringen, The source of the vulnerable software 2vs is then modified to produce the source of the protected software 2ps, this modification being such that, during execution of the protected software 2p: • the second execution part 2peu at least performs the functionality of the selected algorithmic processing,

• den valgte algoritmiske prosesseringen deles inn i instruksjoner, • the selected algorithmic processing is divided into instructions,

• kjedingen som hvilken i hvert fall noen av instruksjonene må følge under sin eksekvering i enheten 6 spesifiseres, • og den første eksekveringsdelen 2pes av den beskyttede programvaren 2p eksekverer instruksjonskommandoer som trigger eksekvering av instruksjonene i enheten 6. • the chain which at least some of the instructions must follow during its execution in the device 6 is specified, • and the first execution part 2pes of the protected software 2p executes instruction commands that trigger execution of the instructions in the device 6.

Under eksekvering av den beskyttede programvaren 2p, beskyttet ved hjelp av dette prinsippet, i nærvær av enheten 6: • så lenge kjedingen av instruksjonene i alle de modifiserte andeler av den beskyttede programvaren 2p som eksekveres i enheten 6 svarer til den forventede, fungerer nevnte modifiserte andeler av den beskyttede programvaren 2p nominelt, slik at nevnte beskyttede programvare 2p fungerer nominelt, • og dersom kjedingen av instruksjonene i en andel av den beskyttede programvaren 2p som eksekveres i enheten 6 ikke svarer til den forventede, informeres databehandlingssystemet 3 om dette og/eller virkemåten til andelen av den beskyttede programvaren 2p blir modifisert, slik at virkemåten til den beskyttede programvaren 2p endres. During the execution of the protected software 2p, protected by means of this principle, in the presence of the device 6: • as long as the chaining of the instructions in all the modified portions of the protected software 2p executed in the device 6 corresponds to the expected one, said modified works portions of the protected software 2p nominally, so that said protected software 2p functions nominally, • and if the chaining of the instructions in a portion of the protected software 2p executed in the device 6 does not correspond to the expected one, the data processing system 3 is informed of this and/or the operation of the portion of the protected software 2p is modified, so that the operation of the protected software 2p is changed.

Figur 71 illustrerer et eksempel på utførelse av prinsippet for beskyttelse ved deteksjon og tvang med bruk av, som eksekveringsegenskap å overholde, overvåkning av eksekveringskjedingen til i hvert fall én del av instruksjonene, i et tilfelle der den forventede kjedingen er overholdt. Figure 71 illustrates an example of the implementation of the principle of protection by detection and coercion using, as an execution property to comply, monitoring of the execution chain of at least one part of the instructions, in a case where the expected chain is complied with.

Den første eksekveringsdelen 2pes av den beskyttede programvaren 2p, som eksekveres i databehandlingssystemet 3, eksekverer instruksjonskommandoer Ol; som trigger, i enheten 6, eksekvering av instruksjonene i; tilhørende instruksjons settet. I nevnte instruksjonssett omfatter i hvert fall noen av instruksjonene hver en del som definerer instruksjonens funksjonalitet og en del som gjør det mulig å verifisere den forventede kjedingen for eksekvering av instruksjonene. I dette eksempelet er instruksjonskommandoene Ol; representert ved TRIG(ii), og den forventede kjedingen for eksekvering av instruksjonene er in, in+iog in+2- Eksekvering i enheten 6 av instruksjonen in gir resultatet a, og eksekvering av instruksjonen in+igir resultatet b. Instruksjonen in+2anvender som operand resultatene a og b fra instruksjonene in og in+i, og eksekveringen av denne gir resultatet c. The first execution part 2pes of the protected software 2p, which is executed in the data processing system 3, executes instruction commands Ol; which triggers, in the unit 6, execution of the instructions in; associated instruction set. In said instruction set, at least some of the instructions each comprise a part that defines the functionality of the instruction and a part that makes it possible to verify the expected chain for executing the instructions. In this example, the instruction commands are Ol; represented by TRIG(ii), and the expected chain of execution of the instructions is in, in+i and in+2- Execution in unit 6 of the instruction in gives the result a, and execution of the instruction in+ig gives the result b. The instruction in+2 uses as operand the results a and b from the instructions in and in+i, and the execution of this gives the result c.

Ettersom nevnte kjeding av instruksjonene eksekvert i enheten 6 svarer til den forventede, resulterer dette i normal eller nominell funksjon av den beskyttede programvaren 2p. Since said chaining of the instructions executed in the unit 6 corresponds to the expected one, this results in normal or nominal functioning of the protected software 2p.

Figur 72 illustrerer et eksempel på utførelse av prinsippet for beskyttelse ved deteksjon og tvang med bruk av, som eksekveringsegenskap å overholde, overvåkning av eksekveringskjedingen for minst én del av instruksjonene, i et tilfelle der den forventede kjedingen ikke er overholdt. Figure 72 illustrates an example of the implementation of the principle of protection by detection and coercion using, as an execution property to comply, monitoring of the execution chain for at least one part of the instructions, in a case where the expected chain is not complied with.

I dette eksempelet er den forventede kjedingen for eksekvering av instruksjonene fortsatt in, in+i og in+2- Eksekveringskjedingen har imidlertid blitt endret ved å bytte ut instruksjonen in med instruksjonen i'n, slik at den kjeden som faktisk blir eksekvert er i'n, in+iog in+2- Eksekvering av instruksjonen i'n gir resultatet a, dvs. det samme resultatet som eksekvering av instruksjonen in. Senest ved eksekvering av instruksjonen in+2detekterer imidlertid deteksjonsanordningen 17 at instruksjonen i'n ikke svarer til den forventede instruksjonen for å generere resultatet a anvendt som operand i instruksjonen in+2- Deteksjonsanordningen 17 informerer tvangsanordningen 18 om dette, som modifiserer virkemåten til instruksjonen in+2i henhold til dette, slik at eksekvering av instruksjonen in+2gir resultatet c', som kan være forskjellig fra c. Naturligvis, dersom eksekvering av instruksjonen i'n gir et resultat a' som er forskjellig fra resultatet a fra instruksjonen in, er det klart at resultatet fra instruksjonen in+2også vil kunne være forskjellig fra c. In this example, the expected chain of execution of the instructions is still in, in+i and in+2- However, the execution chain has been changed by replacing the instruction in with the instruction i'n, so that the chain that is actually executed is i' n, in+iog in+2- Execution of the instruction i'n gives the result a, i.e. the same result as execution of the instruction in. At the latest upon execution of the instruction in+2, however, the detection device 17 detects that the instruction i'n does not correspond to the expected instruction to generate the result a used as an operand in the instruction in+2 - The detection device 17 informs the forcing device 18 about this, which modifies the operation of the instruction in +2accordingly, so that execution of the instruction in+2 gives the result c', which may be different from c. Naturally, if execution of the instruction i'n gives a result a' that is different from the result a of the instruction in, it is clear that the result from the instruction in+2 will also be different from c.

Ettersom eksekveringskjedingen av instruksjonene eksekvert i enheten 6 ikke svarer til den forventede, kan derfor en endring av virkemåten til den beskyttede programvaren 2p forekomme. As the execution chain of the instructions executed in the device 6 does not correspond to the expected one, therefore a change of the operation of the protected software 2p may occur.

Figurene 73 og 74 illustrerer en foretrukket alternativ utførelsesform av prinsippet for beskyttelse ved deteksjon og tvang med bruk av, som eksekveringsegenskap å overholde, overvåkning av eksekveringskjedingen for minst én del av instruksjonene. I henhold til denne foretrukkede varianten defineres et instruksjonssett i hvilket i hvert fall noen instruksjoner jobber med registere og anvender minst én operand med den hensikt å returnere et resultat. Figures 73 and 74 illustrate a preferred alternative embodiment of the principle of protection by detection and coercion using, as execution property to comply, monitoring of the execution chain for at least one part of the instructions. According to this preferred variant, an instruction set is defined in which at least some instructions work with registers and use at least one operand with the intention of returning a result.

Som illustrert i figur 73, defineres for i hvert fall noen av funksjonene som jobber med registere en del PF som definerer funksjonens funksjonalitet og en del PE som definerer den forventede kjedingen for eksekvering av instruksjonene. Delen PF svarer til operasjonskoden, som er kjent for fagmannen. Delen PE som definerer den forventede kjedingen, omfatter bit-felter svarende til: As illustrated in Figure 73, for at least some of the functions that work with registers, a part PF that defines the function's functionality and a part PE that defines the expected chain for executing the instructions are defined. The part PF corresponds to the operation code, which is known to the person skilled in the art. The part PE that defines the expected chain comprises bit fields corresponding to:

• et identifikasjonsfelt for instruksjonen CM, • an identification field for the instruction CM,

• og for hver operand k i instruksjonen, der k varierer fra 1 til K og K er antallet operander i instruksjonen: - et flagg-felt CDk, som angir hvorvidt det er ønskelig å verifisere opprinnelsen til operand k, - og et forventet identifikasjonsfelt ClPkfor operanden, som angir den forventede identiteten til instruksjonen som har generert innholdet i operanden k. • and for each operand k in the instruction, where k varies from 1 to K and K is the number of operands in the instruction: - a flag field CDk, which indicates whether it is desirable to verify the origin of operand k, - and an expected identification field ClPk for the operand , which indicates the expected identity of the instruction that generated the contents of operand k.

Som illustrert i figur 74, omfatter instruksjonssettet V registere tilhørende prosesseringsenheten 16, idet hvert register er navnet Rv, der v varierer fra 1 til V. For hvert register Rv er det definert to felter, nemlig: • et funksjonsfelt CFVsom er kjent for fagmannen og som muliggjør lagring av resultatet fra eksekveringen av instruksjonene, • og et generert identifikasjonsfelt CIGVsom muliggjør lagring av identiteten til den instruksjonen som har generert innholdet i funksjonsfeltet CFV. Nevnte genererte identifikasjonsfelt CIGVblir automatisk oppdatert med innholdet i identifikasjonsfeltet til den instruksjonen CM som har generert funksjonsfeltet CFV. Nevnte genererte identifikasjonefelt CIGVer hverken aksesserbart eller modifiserbart for noen av instruksjonene, og anvendes kun for deteksjonsanordningen 17. As illustrated in Figure 74, the instruction set V comprises registers belonging to the processing unit 16, each register being named Rv, where v varies from 1 to V. For each register Rv, two fields are defined, namely: • a function field CFV which is known to the person skilled in the art and which makes it possible to save the result from the execution of the instructions, • and a generated identification field CIGV which makes it possible to save the identity of the instruction which has generated the content of the function field CFV. Said generated identification field CIGV is automatically updated with the contents of the identification field of the instruction CM that generated the function field CFV. Said generated identification field CIGVs neither accessible nor modifiable for any of the instructions, and is used only for the detection device 17.

Under eksekvering av en funksjon utfører deteksjonsanordningen 17 for hver operand k følgende operasjoner: During the execution of a function, the detection device 17 performs the following operations for each operand k:

• leser flagg-feltet CDk, • reads the flag field CDk,

• dersom flagg-feltet CDk pålegger det, leser både det forventede identifikasjonsfeltet ClPkog det genererte identifikasjonsfeltet CIGVsvarende til det registeret som anvendes av operanden k, • if the flag field CDk imposes it, both the expected identification field ClPk and the generated identification field CIGV are read corresponding to the register used by the operand k,

• sjekker om de to feltene ClPkog CIGVer like, • checks whether the two fields ClP and CIGV are equal,

• og dersom de ikke er like antar deteksjonsanordningen 17 at eksekveringskjedingen for instruksjonene ikke er fulgt. • and if they are not the same, the detection device 17 assumes that the execution chain for the instructions has not been followed.

Tvangsanordningen 18 gjør det mulig å modifisere resultatet fra instruksjonene når deteksjonsanordningen 17 har informert den om at en instruksjonsrekkefølge ikke er fulgt. En foretrukket utførelsesform utføres ved å modifisere den funksjonelle delen PF til den instruksjonen som eksekveres eller den funksjonelle delen PF til etterfølgende instruksjoner. The forcing device 18 makes it possible to modify the result from the instructions when the detection device 17 has informed it that an instruction sequence has not been followed. A preferred embodiment is performed by modifying the functional part PF of the instruction being executed or the functional part PF of subsequent instructions.

I henhold til et annet fordelaktig særtrekk ved oppfinnelsen har beskyttelsesprosessen som formål å implementere et beskyttelsesprinsipp kalt med "variabel", en beskrivelse av hvilket er gitt i forbindelse med figurene 40 til 43. According to another advantageous feature of the invention, the purpose of the protection process is to implement a protection principle called "variable", a description of which is given in connection with Figures 40 to 43.

For implementering av prinsippet for beskyttelse med variabel velges, i kilden for den sårbare programvaren 2vs, minst én variabel som, under eksekvering av den sårbare programvaren 2v, delvis definerer dens tilstand. Med tilstanden til en programvare skal forstås det sett av informasjonselementer som på et gitt tidspunkt er nødvendig for fullstendig eksekvering av nevnte programvare, idet fravær av en slik valgt variabel hindrer fullstendig eksekvering av nevnte programvare. Det velges også minst én andel av kilden for den sårbare programvaren 2vs som inneholder minst én valgt variabel. For the implementation of the principle of protection by variable, in the source of the vulnerable software 2vs, at least one variable is selected which, during the execution of the vulnerable software 2v, partially defines its state. The state of a software is to be understood as the set of information elements which at a given time are necessary for the complete execution of said software, as the absence of such a selected variable prevents the complete execution of said software. At least one portion of the source for the vulnerable software 2vs that contains at least one selected variable is also selected.

Minst én valgt andel av kilden for den sårbare programvaren 2vs blir deretter modifisert for å frembringe kilden for den beskyttede programvaren 2ps. Denne modifikasjonen er slik at under eksekvering av den beskyttede programvaren 2p, minst én andel av den første eksekveringsdelen 2pes, som eksekveres i databehandlingssystemet 3, tar i betraktning at minst én valgt variabel eller minst én kopi av en valgt variabel befinner seg i enheten 6. At least one selected portion of the source of the vulnerable software 2vs is then modified to produce the source of the protected software 2ps. This modification is such that during execution of the protected software 2p, at least one part of the first execution part 2pes, which is executed in the data processing system 3, takes into account that at least one selected variable or at least one copy of a selected variable is located in the device 6.

Figur 40 illustrerer et eksempel på eksekvering av en sårbar programvare 2v. I dette eksempelet, under eksekvering av den sårbare programvaren 2v i databehandlingssystemet 3, forekommer: Figure 40 illustrates an example of execution of a vulnerable software 2v. In this example, during the execution of the vulnerable software 2v in the computing system 3, occurs:

ved tiden ti, tilordning av dataene X til variabelen Vi, representert ved Vi <-X, • ved tiden t.2, tilordning av verdien til variabelen Vi til variabelen Y, representert ved Y <- V-i, • og ved tiden t3, tilordning av verdien til variabelen Vi til variabelen Z, representert ved Z <- V-i. Figur 41 illustrerer et eksempel på en første utførelse av oppfinnelsen hvor variabelen befinner seg i enheten 6.1 dette eksempelet, under eksekvering i databehandlingssystemet 3 av den første eksekveringsdelen 2pes av den beskyttede programvaren 2p, og ved nærvær av enheten 6, forekommer: • ved tiden ti, eksekvering av en overføringskommando som trigger overføring av dataene X fra databehandlingssystemet 3 til variabelen v-i som befinner seg i minneanordningen 15 i enheten 6, idet nevnte overføringskommando er representert ved OUT(vi, X) og svarer til tilordning av dataene X til variabelen vi, • ved tiden t.2, eksekvering av en overføringskommando som trigger overføring av verdien til variabelen v-i som befinner seg i enheten 6 til databehandlingssystemet 3 for å tilordne den til variabelen Y, idet nevnte overførings-kommando er representert ved IN(vi) og svarer til tilordning av verdien til variabelen vi til variabelen Y, • og ved tiden t.3, eksekvering av en overføringskommando som trigger over-føring av verdien til variabelen v-i som befinner seg i enheten 6 til databehandlingssystemet 3 for å tilordne den til variabelen Z, idet nevnte over-føringskommando er representert ved IN(vi) og svarer til tilordning av verdien til variabelen vi til variabelen Z. at time ti, assignment of the data X to the variable Vi, represented by Vi <-X, • at time t.2, assignment of the value of the variable Vi to the variable Y, represented by Y <- V-i, • and at time t3, assignment of the value of the variable Vi to the variable Z, represented by Z <- V-i. Figure 41 illustrates an example of a first embodiment of the invention where the variable is located in the unit 6.1 this example, during execution in the data processing system 3 of the first execution part 2pes of the protected software 2p, and in the presence of the unit 6, occurs: • at time ten , execution of a transfer command which triggers the transfer of the data X from the data processing system 3 to the variable v-i located in the memory device 15 in the unit 6, said transfer command being represented by OUT(vi, X) and corresponding to the assignment of the data X to the variable vi, • at time t.2, execution of a transfer command which triggers the transfer of the value of the variable v-i located in the unit 6 to the data processing system 3 in order to assign it to the variable Y, said transfer command being represented by IN(vi) and responding to the assignment of the value of the variable vi to the variable Y, • and at time t.3, execution of a transfer command which triggers transfer of the value of the variable v-i located in the unit 6 to the data processing system 3 in order to assign it to the variable Z, said transfer command being represented by IN(vi) and corresponding to the assignment of the value of the variable vi to the variable Z .

En skal merke seg at under eksekvering av den beskyttede programvaren 2p, minst én variabel befinner seg i enheten 6. Når en andel av den første eksekveringsdelen 2pes av den beskyttede programvaren 2p pålegger det, og ved nærvær av enheten 6, blir således verdien til nevnte variabel som befinner seg i enheten 6 overført til databehandlingssystemet 3 for bruk av den første eksekveringsdelen 2pes av den beskyttede programvaren 2p, slik at nevnte andel blir eksekvert korrekt og at følgelig den beskyttede programvaren 2p er fullstendig funksjonell. It should be noted that during the execution of the protected software 2p, at least one variable is located in the device 6. When a portion of the first execution part 2pes of the protected software 2p imposes it, and in the presence of the device 6, the value of said variable located in the device 6 transferred to the data processing system 3 for use by the first execution part 2pes of the protected software 2p, so that said part is executed correctly and that consequently the protected software 2p is fully functional.

Figur 42 illustrerer et eksempel på en annen utførelse av oppfinnelsen hvor en kopi av variabelen befinner seg i enheten 6.1 dette eksempelet, under eksekvering i databehandlingssystemet 3 av den første eksekveringsdelen 2pes av den beskyttede programvaren 2p, og ved nærvær av enheten 6, forekommer: ved tiden ti, tilordning av dataene X til variabelen V1;som befinner seg databehandlingssystemet 3, så vel som eksekvering av en overføringskommando som trigger overføring av dataene X fra databehandlingssystemet 3 til variabelen Vi som befinner seg i minnaanordningen 15 i enheten 6, idet nevnte overføringskommando er representert ved OUT(vi, X), Figure 42 illustrates an example of another embodiment of the invention where a copy of the variable is located in the unit 6.1 this example, during execution in the data processing system 3 of the first execution part 2pes of the protected software 2p, and in the presence of the unit 6, occurs: at time ten, assigning the data X to the variable V1; which is located in the data processing system 3, as well as executing a transfer command that triggers the transfer of the data X from the data processing system 3 to the variable Vi which is located in the memory device 15 in the unit 6, said transfer command being represented by OUT(vi, X),

ved tiden t.2, tilordning av verdien til variabelen Vi til variabelen Y, at time t.2, assignment of the value of the variable Vi to the variable Y,

og ved tiden t.3, eksekvering av en overføringskommando som trigger over-føring av verdien til variabelen vi som befinner seg i enheten 6 til databehandlingssystemet 3 for å tilordne den til variabelen Z, idet nevnte over-føringskommando er representert ved IN(vi). and at time t.3, execution of a transfer command which triggers transfer of the value of the variable vi located in the unit 6 to the data processing system 3 to assign it to the variable Z, said transfer command being represented by IN(vi) .

En skal merke seg at under eksekvering av den beskyttede programvaren 2p, minst én kopi av en variabel befinner seg i enheten 6. Når en andel av den første eksekveringsdelen 2pes av den beskyttede programvaren 2p pålegger det, og ved nærvær av enheten 6, blir således verdien til nevnte kopi av en variabel som befinner seg i enheten 6 overført til databehandlingssystemet 3 for bruk av den første eksekveringsdelen 2pes av den beskyttede programvaren 2p, slik at nevnte andel blir eksekvert korrekt og at følgelig den beskyttede programvaren 2p er fullstendig funksjonell. It should be noted that during the execution of the protected software 2p, at least one copy of a variable is located in the device 6. Thus, when a portion of the first execution part 2pes of the protected software 2p imposes it, and in the presence of the device 6, the value of said copy of a variable located in the device 6 transferred to the data processing system 3 for use by the first execution part 2pes of the protected software 2p, so that said part is executed correctly and that consequently the protected software 2p is fully functional.

Figur 43 illustrerer et eksempel på et førsøk på eksekvering av den beskyttede programvaren 2p når enheten 6 er fraværende. I dette eksempelet, ved eksekvering i databehandlingssystemet 3 av den første eksekveringsdelen 2pes av den beskyttede programvaren 2p: • ved tiden ti kan ikke eksekvering av overføringskommandoen OUT(vi, X) trigge overføring av dataene X til variabelen v-i, som følge av fraværet av enheten 6, • ved tiden t.2 kan ikke eksekvering av overføringskommandoen IN(vi) trigge overføring verdien til variabelen v-i til databehandlingssystemet 3, som følge av fraværet av enheten 6, Figure 43 illustrates an example of a preliminary search for execution of the protected software 2p when the device 6 is absent. In this example, upon execution in the data processing system 3 of the first execution part 2pes of the protected software 2p: • at time ten, execution of the transfer command OUT(vi, X) cannot trigger the transfer of the data X to the variable v-i, due to the absence of the device 6, • at time t.2 execution of the transfer command IN(vi) cannot trigger the transfer of the value of the variable v-i to the data processing system 3, as a result of the absence of the unit 6,

og ved tiden t.3 kan ikke eksekvering av overføringskommandoen IN(vi) trigge overføring verdien til variabelen vi til databehandlingssystemet 3, som følge av fraværet av enheten 6. and at time t.3, execution of the transfer command IN(vi) cannot trigger the transfer of the value of the variable vi to the data processing system 3, due to the absence of the device 6.

Det er således slik at i fravær av enheten 6, minst én forespørsel fra en andel av den første eksekveringsdelen 2pes om å anvende en variabel eller en kopi av en variabel som befinner seg i enheten 6 ikke kan etterkommes på korrekt måte, slik at i hvert fall nevnte andel ikke eksekverer korrekt og at følgelig den beskyttede programvaren 2p ikke er fullstendig funksjonell. It is thus the case that in the absence of the unit 6, at least one request from a part of the first execution part 2pes to use a variable or a copy of a variable located in the unit 6 cannot be complied with correctly, so that in each if the said share does not execute correctly and that consequently the protected software 2p is not fully functional.

En skal merke seg at dataoverføringene mellom databehandlingssystemet 3 og enheten 6 illustrert i de tidligere eksemplene kun anvender enkle tilordninger, men fagmannen vil vite hvordan å kombinere dem med andre operasjoner for å oppnå sammensatte funksjoner, så som for eksempel OUT(v1,2<*>X + 3) eller Z <-(5<*>v1 + v2). It should be noted that the data transfers between the data processing system 3 and the device 6 illustrated in the previous examples only use simple assignments, but the person skilled in the art will know how to combine them with other operations to achieve complex functions, such as for example OUT(v1,2<* >X + 3) or Z <-(5<*>v1 + v2).

Ifølge et annet fordelaktig særtrekk ved oppfinnelsen har beskyttelsesprosessen som formål å implementere et beskyttelsesprinsipp kalt med "omnavning", en beskrivelse av hvilket er gitt i forbindelse med figurene 80 til 85. According to another advantageous feature of the invention, the purpose of the protection process is to implement a protection principle called "renaming", a description of which is given in connection with figures 80 to 85.

For implementering av prinsippet for beskyttelse ved omnavning defineres: For the implementation of the principle of protection by renaming, the following is defined:

• et sett av avhengige funksjoner, hvilke avhengige funksjoner er tilbøyelige til å bli eksekvert, ved hjelp av den andre eksekveringsdelen 2peu, i enheten 6, og eventuelt til å overføre data mellom databehandlingssystemet 3 og enheten 6, idet nevnte sett av avhengige funksjoner kan være endelig eller uendelig, • et sett av triggerkommandoer for nevnte avhengige funksjoner, idet nevnte triggerkommandoer er tilbøyelige til å bli eksekvert i databehandlingssystemet 3 og trigge eksekvering i enheten 6 av motsvarende avhengige funksjoner, • for hver triggerkommando, en instruksjon svarende i hvert fall delvis til informasjonen overført fra den første eksekveringsdelen 2pes til den andre eksekveringsdelen 2peu for å trigge eksekvering av den motsvarende avhengige funksjoner, idet nevnte instruksjon er i form av minst ett argument i triggerkommandoen, • en fremgangsmåte for omnavning av instruksjonene tilveiebragt for å bli anvendt ved modifisering av den sårbare programvaren 2v, idet en slik frem- • a set of dependent functions, which dependent functions are likely to be executed, by means of the second execution part 2peu, in the device 6, and possibly to transfer data between the data processing system 3 and the device 6, said set of dependent functions can be finite or infinite, • a set of trigger commands for said dependent functions, said trigger commands tending to be executed in the data processing system 3 and trigger execution in the unit 6 of corresponding dependent functions, • for each trigger command, an instruction corresponding at least partially to the information transferred from the first execution part 2pes to the second execution part 2peu to trigger execution of the corresponding dependent functions, said instruction being in the form of at least one argument in the trigger command, • a method for renaming the instructions provided to be used when modifying the vulnerable software 2v, as a sli k forward

gangsmåte gjør det mulig å omnavne instruksjonene for å frembringe triggerkommandoer med omnavnede instruksjoner som gjør det mulig å skjule identiteten til de motsvarende avhengige funksjonene, procedure allows the instructions to be renamed to produce trigger commands with renamed instructions that allow the identity of the corresponding dependent functions to be hidden,

• og en tilbakeføringsanordning 20 som er innrettet for å bli anvendt i enheten 6 under bruksfasen og som gjør det mulig å gjenopprette den opprinnelige • and a return device 20 which is designed to be used in the unit 6 during the use phase and which makes it possible to restore the original

instruksjonen fra den omnavnede instruksjonen for å finne ut hvilken avhengige funksjon å eksekvere. instruction from the renamed instruction to determine which dependent function to execute.

For implementering av prinsippet for beskyttelse ved omnavning tilveiebringes også et eksploateringsmiddel som gjør det mulig å transformere en blankenhet 60 til en enhet 6 som i hvert fall implementerer tilbakeføringsanordningen 20. For implementation of the principle of protection by renaming, an exploitation means is also provided which makes it possible to transform a blank unit 60 into a unit 6 which at least implements the return device 20.

For implementering av prinsippet for beskyttelse ved omnavning velges også, i kilden forden sårbare programvaren 2vs: • minst én algoritmisk prosessering som anvender minst én operand og returnerer minst ett resultat, • og minst én andel av kilden for den sårbare programvaren 2vs som inneholder minst én valgt algoritmisk prosessering. For the implementation of the principle of protection by renaming, in the source of the vulnerable software 2vs: • at least one algorithmic processing that uses at least one operand and returns at least one result is also selected, • and at least one part of the source of the vulnerable software 2vs that contains at least one selected algorithmic processing.

Kilden for den sårbare programvaren 2vs blir deretter modifisert for å frembringe kilden for den beskyttede programvaren 2ps. Denne modifikasjonen er slik at, blant annet: • under eksekvering av den beskyttede programvaren 2p, minst én andel av den første eksekveringsdelen 2pes, som eksekveres i databehandlingssystemet 3, tar i betraktning at funksjonaliteten til minst én valgt algoritmisk prosessering blir utført i enheten 6, • under eksekvering av den beskyttede programvaren 2p, den andre eksekveringsdelen 2peu, som eksekveres i enheten 6, utfører i hvert fall funksjonaliteten til minst én valgt algoritmisk prosessering, • hver valgte algoritmiske prosessering deles opp slik at under eksekvering av den beskyttede programvaren 2p, hver valgte algoritmiske prosessering blir utført, ved hjelp av den andre eksekveringsdelen 2peu, med bruk av avhengige funksjoner. Fortrinnsvis blir hver valgte algoritmiske prosessering delt inn i elementærfunksjoner fdn(med n variabel fra 1 til N), det vil si: - eventuelt én eller flere avhengige funksjoner som gjør det mulig å stille én eller flere operander til enheten 6 sin disposisjon, - avhengige funksjoner, noen av hvilke anvender operanden(e) og i kombinasjon utfører funksjonaliteten til den valgte algoritmiske prosesseringen, med bruk av nevnte operand(er), - og eventuelt én eller flere avhengige funksjoner som gjør det mulig, for enheten 6, å stille resultatet av den valgte algoritmiske prosesseringen til databehandlingssystemet 3 sin disposisjon, • under eksekvering av den beskyttede programvaren 2p, den andre eksekveringsdelen 2peu eksekverer de avhengige funksjonene fdn, • under eksekvering av den beskyttede programvaren 2p, de avhengige funksjonene trigges av triggerkommandoer med omnavnede instruksjoner, • og at en sekvens av triggerkommandoene velges fra det settet av sekvenser som muliggjør eksekvering av den beskyttede programvaren 2p. The source of the vulnerable software 2vs is then modified to produce the source of the protected software 2ps. This modification is such that, among other things: • during execution of the protected software 2p, at least one part of the first execution part 2pes, which is executed in the data processing system 3, takes into account that the functionality of at least one selected algorithmic processing is performed in the device 6, • during execution of the protected software 2p, the second execution part 2peu, which is executed in the unit 6, performs at least the functionality of at least one selected algorithmic processing, • each selected algorithmic processing is divided so that during the execution of the protected software 2p, each selected algorithmic processing is performed, by means of the second execution part 2peu, using dependent functions. Preferably, each selected algorithmic processing is divided into elementary functions fdn (with n variable from 1 to N), that is to say: - possibly one or more dependent functions which make it possible to place one or more operands at the unit 6's disposal, - dependent functions, some of which use the operand(s) and in combination perform the functionality of the selected algorithmic processing, using said operand(s), - and optionally one or more dependent functions that make it possible, for the unit 6, to set the result of the selected algorithmic processing at the disposal of the data processing system 3, • during execution of the protected software 2p, the second execution part 2peu executes the dependent functions fdn, • during execution of the protected software 2p, the dependent functions are triggered by trigger commands with renamed instructions, • and that a sequence of the trigger commands is selected from the set of sequences that enable execution vation of the protected software 2p.

Den første eksekveringsdelen 2pes av den beskyttede programvaren 2p, som eksekveres i databehandlingssystemet 3, eksekverer triggerkommandoer med omnavnede instruksjoner som overfører omnavnede instruksjoner til enheten 6 og trigger, i enheten 6, gjenoppretting, ved hjelp av tilbakeføringsanordningen 20, av instruksjonene og deretter eksekvering, ved hjelp av den andre eksekveringsdelen 2peu, av hver av de tidligere definerte avhengige funksjonene fdn. The first execution part 2pes of the protected software 2p, which is executed in the data processing system 3, executes trigger commands with renamed instructions that transfer renamed instructions to the device 6 and trigger, in the device 6, recovery, by means of the return device 20, of the instructions and then execution, by using the second execution part 2peu, of each of the previously defined dependent functions fdn.

Med andre ord blir prinsippet for beskyttelse ved omnavning utført ved omnavning av instruksjonene i triggerkommandoene for å oppnå triggerkommandoer med omnavnede instruksjoner hvis eksekvering i databehandlingssystemet 3 trigger, i enheten 6, eksekvering av de avhengige funksjonene som ville ha blitt trigget av triggerkommandoene med ikke-omnavnede instruksjoner, imidlertid uten at det å granske den beskyttede programvaren 2p gjør det mulig å bestemme identiteten til de eksekverte avhengige funksjonene. Figur 80 illustrerer et eksempel på eksekvering av en sårbar programvare 2v. I dette eksempelet utføres, under eksekvering av den sårbare programvaren 2v i databehandlingssystemet 3, ved et gitt tidspunkt, beregning av Z <- F(X,Y) svarende til det å tilordne til en variabel Z resultatet av en algoritmisk prosessering representert ved en funksjon F og bruk av operander X og Y. In other words, the principle of protection by renaming is carried out by renaming the instructions in the trigger commands to obtain trigger commands with renamed instructions whose execution in the data processing system 3 triggers, in the device 6, the execution of the dependent functions that would have been triggered by the unrenamed trigger commands instructions, however, without examining the protected software 2p making it possible to determine the identity of the executed dependent functions. Figure 80 illustrates an example of the execution of a vulnerable software 2v. In this example, during execution of the vulnerable software 2v in the data processing system 3, at a given point in time, calculation of Z <- F(X,Y) corresponding to assigning to a variable Z the result of an algorithmic processing represented by a function is performed F and use of operands X and Y.

Figurene 81 og 82 illustrerer et eksempel på utførelse av oppfinnelsen. Figures 81 and 82 illustrate an example of the embodiment of the invention.

Figur 81 illustrerer delvis utførelse av oppfinnelsen. I dette eksempelet forekommer, under eksekvering i databehandlingssystemet 3 av den første eksekveringsdelen 2pes av den beskyttede programvaren 2p, og ved nærvær av enheten 6: • ved tider ti,t.2, eksekvering av triggerkommandoene CDi, CD2som trigger, i enheten 6, eksekvering, ved hjelp av den andre eksekveringsdelen 2peu, av de motsvarende avhengige funksjonene fdi, fd2som besørger overføring av data X, Y fra databehandlingssystemet 3 henholdsvis til minneområdene x og y i minneanordningen 15 for enheten 6, idet nevnte triggerkommandoer CDi, CD2henholdsvis er representert ved OUT(x,X), OUT(y,Y), • ved tider t.3 til t.N-1, eksekvering av triggerkommandoene CD3til CDN-i som trigger, i enheten 6, eksekvering, ved hjelp av den andre eksekveringsdelen 2peu, av de motsvarende avhengige funksjonene fd3til fdN-1, idet nevnte triggerkommandoer CD3til CDn-i henholdsvis er representert ved TRIG(fd3) til TRIG(fdN-i). Rekken av avhengige funksjoner fd3til fdN-1som blir eksekvert i kombinasjon er algoritmisk ekvivalent med funksjonen F. Mer presist fører eksekvering av nevnte triggerkommandoer til eksekvering i enheten 6 av de avhengige funksjonene fd3til fdN-i, som anvender innholdet i minneområdene x, y og returnerer resultatet til et minneområde z i enheten 6, • og ved tiden tN, eksekvering av en triggerkommando CDNsom trigger, i enheten 6, eksekvering, ved hjelp av den andre eksekveringsdelen 2peu, av den avhengige funksjonen fdNsom besørger overføring av resultatet fra den algoritmiske prosesseringen inneholdt i minneområdet z i enheten 6 til databehandlingssystemet 3, for å tilordne det til variabelen Z, idet nevnte triggerkommando CDner representert ved IN(z). Figure 81 illustrates a partial embodiment of the invention. In this example, during execution in the data processing system 3 of the first execution part 2pes of the protected software 2p, and in the presence of the unit 6, occurs: • at times ti,t.2, execution of the trigger commands CDi, CD2as a trigger, in the unit 6, execution , by means of the second execution part 2peu, of the corresponding dependent functions fdi, fd2 which ensure the transfer of data X, Y from the data processing system 3 respectively to the memory areas x and y in the memory device 15 of the unit 6, said trigger commands CDi, CD2 being respectively represented by OUT( x,X), OUT(y,Y), • at times t.3 to t.N-1, execution of the trigger commands CD3 to CDN-i as a trigger, in unit 6, execution, by means of the second execution part 2peu, of the corresponding dependent functions fd3 to fdN-1, said trigger commands CD3 to CDn-i respectively being represented by TRIG(fd3) to TRIG(fdN-i). The series of dependent functions fd3 to fdN-1 which are executed in combination is algorithmically equivalent to the function F. More precisely, the execution of said trigger commands leads to the execution in unit 6 of the dependent functions fd3 to fdN-i, which apply the contents of the memory areas x, y and return the result of a memory area z in the unit 6, • and at the time tN, execution of a trigger command CDNwhich triggers, in the unit 6, execution, by means of the second execution part 2peu, of the dependent function fdNwhich ensures the transfer of the result of the algorithmic processing contained in the memory area z in the unit 6 of the data processing system 3, to assign it to the variable Z, said trigger command CDner being represented by IN(z).

I dette eksempelet, for å fullføre oppfinnelsen, velges som instruksjoner det første argumentet til triggerkommandoen OUT og argumentet til triggerkommandoene TRIG og IN. Instruksjonene valgt på denne måten blir omnavnet med bruk av fremgangsmåten for omnavning av instruksjonene. På denne måten blir instruksjonene i kommandoene CDitil CDn, dvs. x, y, fd3, fdN-1, z omnavnet for henholdsvis å frembringe R(x), R(y), R(fd3)..., R(fdN-i), R(z). In this example, to complete the invention, the first argument of the trigger command OUT and the argument of the trigger commands TRIG and IN are selected as instructions. The instructions selected in this way are renamed using the procedure for renaming the instructions. In this way, the instructions in the commands CDito CDn, i.e. x, y, fd3, fdN-1, z are renamed to produce R(x), R(y), R(fd3)..., R(fdN- i), R(z).

Figur 82 illustrerer den komplette utførelse av oppfinnelsen. I dette eksempelet forekommer, under eksekvering i databehandlingssystemet 3 av den første eksekveringsdelen 2pes av den beskyttede programvaren 2p, og ved nærvær av enheten 6: Figure 82 illustrates the complete embodiment of the invention. In this example, during execution in the data processing system 3 of the first execution part 2pes of the protected software 2p, and in the presence of the device 6, occurs:

• ved tider ti, t.2, eksekvering av triggerkommandoene med omnavnet instruksjon CDCRi, CDCR2som overfører de omnavnede instruksjonene R(x), R(y) så vel som dataene X, Y til enheten 6, hvilket trigger, i enheten 6, gjenoppretting, ved hjelp av tilbakeføringsanordningen 20, av de omnavnede instruksjonene for å gjenopprette instruksjonene, dvs. identiteten til minne-sonene x, y, og deretter eksekvering, ved hjelp av den andre eksekveringsdelen 2peu, av de motsvarende avhengige funksjonene fdi, fd2som besørger overføring av data X, Y fra databehandlingssystemet 3 henholdsvis til minneområdene x og y i minneanordningen 15 for enheten 6, idet nevnte triggerkommandoer med omnavnede instruksjoner CDCR1, CDCR2henholdsvis er representert ved OUT(R(x),X), OUT(R(y),Y), • ved tider t.3 til t.N-1, eksekvering av triggerkommandoene med omnavnede instruksjoner CDCR3til CDCRn-i som overfører de omnavnede instruksjonene R(fd3) til R(fdN-i) til enheten 6, hvilket trigger, i enheten 6, gjenoppretting, ved hjelp av tilbakeføringsanordningen 20, av instruksjonene, dvs. fd3til fdN-1, og deretter eksekvering, ved hjelp av den andre eksekveringsdelen 2peu, av de avhengige funksjonene fd3til fdN-1, idet nevnte triggerkommandoer med omnavnede instruksjoner CDCR3til CDCRn-1henholdsvis er representert ved TRIG(R(fd3)) til TRIG(R(fdN-i)), • og ved tiden t.N, eksekvering av triggerkommandoen med omnavnet instruksjon CDCRnsom overfører den omnavnede instruksjonen R(z) til enheten 6, hvilket trigger, i enheten 6, gjenopretting, ved hjelp av tilbakeførings-anordningen 20, av instruksjonen, dvs. identiteten til minneområdet z, og deretter eksekvering, ved hjelp av den andre eksekveringsdelen 2peu, av den avhengige funksjonen fdNsom besørger overføring av resultatet fra den algoritmiske prosesseringen inneholdt i minneområdet z i enheten 6 til databehandlingssystemet 3 for å tilordne det til variabelen Z, idet nevnte triggerkommando med omnavnet instruksjon CDCRner representert ved IN(R(z)). • at times ti, t.2, execution of the trigger commands with the renamed instruction CDCRi, CDCR2 which transfers the renamed instructions R(x), R(y) as well as the data X, Y to the device 6, which triggers, in the device 6, recovery , by means of the return device 20, of the renamed instructions to restore the instructions, i.e. the identity of the memory zones x, y, and then execution, by means of the second execution part 2peu, of the corresponding dependent functions fdi, fd2 which ensure the transfer of data X, Y from the data processing system 3 respectively to the memory areas x and y in the memory device 15 of the unit 6, said trigger commands with renamed instructions CDCR1, CDCR2 respectively being represented by OUT(R(x),X), OUT(R(y),Y) , • at times t.3 to t.N-1, execution of the trigger commands with renamed instructions CDCR3 to CDCRn-i which transfer the renamed instructions R(fd3) to R(fdN-i) to unit 6, which triggers, in unit 6, recovery , wood by means of the feedback device 20, of the instructions, i.e. fd3 to fdN-1, and then execution, by means of the second execution part 2peu, of the dependent functions fd3 to fdN-1, said trigger commands with renamed instructions CDCR3 to CDCRn-1 respectively being represented by TRIG (R(fd3)) to TRIG(R(fdN-i)), • and at time t.N, execution of the trigger command with the renamed instruction CDCRnwhich transfers the renamed instruction R(z) to unit 6, which triggers, in unit 6, recovery , by means of the feedback device 20, of the instruction, i.e. the identity of the memory area z, and then execution, by means of the second execution part 2peu, of the dependent function fdN which ensures the transfer of the result of the algorithmic processing contained in the memory area z in the unit 6 to the data processing system 3 to assign it to the variable Z, said trigger command with the renamed instruction CDCRner represented by IN(R(z)).

I det illustrerte eksempelet blir triggerkommandoene med omnavnede instruksjoner 1 til N eksekvert suksessivt. En skal merke seg to mulige forbedringer: Den første forbedringen vedrører tilfellet der flere algoritmiske prosesseringer blir fjerneksekvert i enheten 6 og i hvert fall resultatet av én algoritmisk prosessering blir anvendt av en annen algoritmisk prosessering. I dette tilfellet vil visse triggerkommandoer med omnavnede instruksjoner anvendt for overføringen muligvis kunne fjernes. In the illustrated example, the trigger commands with renamed instructions 1 through N are executed successively. One should note two possible improvements: The first improvement concerns the case where several algorithmic processings is remotely executed in unit 6 and in any case the result of one algorithmic processing is used by another algorithmic processing. In this case, certain trigger commands with renamed instructions applied to the transfer may be able to be removed.

Den andre forbedringen tar sikte på å velge en passende sekvens av triggerkommandoene med omnavnede instruksjoner fra det settet av sekvenser som muliggjør eksekvering av den beskyttede programvaren 2p. I denne henseende er det foretrukket å velge en sekvens av triggerkommandoene med omnavnede instruksjoner som tidsmessig atskiller eksekveringen av de avhengige funksjonene ved å sette inn andeler av kode mellom dem som blir eksekvert i databehandlingssystemet 3 og som inkluderer eller ikke triggerkommandoer med omnavnede instruksjoner anvendt for bestemmelse av andre data. Figurene 83 og 84 illustrerer prinsippet ved en slik utførelses-form. Figur 83 viser et eksempel på eksekvering av en sårbar programvare 2v. I dette eksempelet forekommer, under eksekvering av den sårbare programvaren 2v, i databehandlingssystemet 3, eksekvering av to algoritmiske prosesseringer som resulterer i bestemmelse av Z og Z' slik at Z <- F(X,Y) og Z' <- F(X',Y'). Figur 84 illustrerer et eksempel på utførelse av prosessen ifølge oppfinnelsen der de to algoritmiske prosesseringene valgt i figur 83 blir fjern-utført i enheten 6.1 henhold dette eksempelet, under eksekvering i databehandlingssystemet 3 av den første eksekveringsdelen 2pes av den beskyttede programvaren 2p og ved nærvær av enheten 6, forekommer, som forklart ovenfor, eksekvering av triggerkommandoene med omnavnede instruksjoner CDCRitil CDCRnsvarende til bestemmelse av Z samt eksekvering av triggerkommandoene med omnavnede instruksjoner CDCR'itil CDCR'msvarende til bestemmelse av Z'. Som illustrert blir ikke triggerkommandoene med omnavnede instruksjoner CDCRi, til CDCRneksekvert konsekutivt, ettersom triggerkommandoene med omnavnede instruksjoner CDCR'itil CDCR'm, så vel som andre kodeandeler, er innskutt. I dette eksempelet utføres således følgende sekvens: CDCRi, deler av innskutt kode, CDCR'i, CDCR2, deler av innskutt kode, CDCR'2, CDCR'3, deler av innskutt kode, CDCR'4lCDCR3, CDCR4 CDCRn, CDCR'm. The second improvement aims to select an appropriate sequence of the trigger commands with renamed instructions from the set of sequences that enable the execution of the protected software 2p. In this regard, it is preferred to select a sequence of the trigger commands with renamed instructions that temporally separates the execution of the dependent functions by inserting portions of code between them that are executed in the data processing system 3 and which include or not trigger commands with renamed instructions used for determination of other data. Figures 83 and 84 illustrate the principle of such an embodiment. Figure 83 shows an example of the execution of a vulnerable software 2v. In this example, during the execution of the vulnerable software 2v, in the data processing system 3, the execution of two algorithmic processes occurs which results in the determination of Z and Z' such that Z <- F(X,Y) and Z' <- F(X ',Y'). Figure 84 illustrates an example of execution of the process according to the invention where the two algorithmic processings selected in Figure 83 are carried out remotely in the unit 6.1 according to this example, during execution in the data processing system 3 of the first execution part 2pes of the protected software 2p and in the presence of unit 6, as explained above, execution of the trigger commands with renamed instructions CDCR to CDCRn corresponding to determination of Z and execution of the trigger commands with renamed instructions CDCR' to CDCR'm corresponding to determination of Z' occurs. As illustrated, the trigger commands with renamed instructions CDCRi, to CDCR are not consecutively executed, as the trigger commands with renamed instructions CDCR'i to CDCR'm, as well as other portions of code, are interleaved. In this example, the following sequence is thus executed: CDCRi, parts of interpolated code, CDCR'i, CDCR2, parts of interpolated code, CDCR'2, CDCR'3, parts of interpolated code, CDCR'4lCDCR3, CDCR4 CDCRn, CDCR'm.

En skal merke seg at under eksekvering av en andel av den første eksekveringsdelen 2pes av den beskyttede programvaren 2p, triggerkommandoene med omnavnede instruksjoner som blir eksekvert i databehandlingssystemet 3, trigger, i enheten 6, gjenoppretting av identiteten til de motsvarende avhengige funksjonene og deretter eksekvering av disse. Det er således slik at i nærvær av enheten 6, nevnte andel blir eksekvert korrekt og at følgelig den beskyttede programvaren 2p er fullstendig funksjonell. It should be noted that during the execution of a portion of the first execution part 2pes of the protected software 2p, the trigger commands with renamed instructions which are executed in the data processing system 3 trigger, in the device 6, the recovery of the identity of the corresponding dependent functions and then the execution of these. It is thus the case that in the presence of the unit 6, said portion is executed correctly and that consequently the protected software 2p is fully functional.

Figur 85 illustrerer et eksempel på et forsøk på eksekvering av den beskyttede programvaren 2p når enheten 6 er fraværende. I dette eksempelet, under eksekvering i databehandlingssystemet 3 av den første eksekveringsdelen 2pes av den beskyttede programvaren 2p, kan ikke ved noe tidspunkt eksekvering av en triggerkommando med omnavnet instruksjon trigge hverken gjenoppretting av instruksjonen eller eksekvering av den motsvarende avhengige funksjonen, som følge av fraværet av enheten 6. Verdien å tilordne variabelen Z kan derfor ikke bestemmes korrekt. Figure 85 illustrates an example of an attempt to execute the protected software 2p when the device 6 is absent. In this example, during execution in the data processing system 3 of the first execution part 2pes of the protected software 2p, at no time the execution of a trigger command with the renamed instruction can trigger neither the recovery of the instruction nor the execution of the corresponding dependent function, due to the absence of the unit 6. The value to assign to the variable Z cannot therefore be determined correctly.

Det er derfor slik at i fravær av enheten 6, minst én forespørsel fra en andel av den første eksekveringsdelen 2pes av den beskyttede programvaren 2p om å trigge gjenoppretting av en instruksjon og eksekvering av en avhengig funksjon i enheten 6 ikke kan etterkommes på korrekt måte, slik at i hvert fall nevnte andel ikke blir eksekvert korrekt og at følgelig den beskyttede programvaren 2p ikke er fullstendig funksjonell. It is therefore the case that in the absence of the unit 6, at least one request from a portion of the first execution part 2pes by the protected software 2p to trigger the recovery of an instruction and the execution of a dependent function in the unit 6 cannot be correctly complied with, so that in any case said portion is not executed correctly and that consequently the protected software 2p is not fully functional.

Takket være dette prinsippet for beskyttelse ved omnavning gjør ikke granskning i den beskyttede programvaren 2p av triggerkommandoene med omnavnede instruksjoner det mulig å bestemme identiteten til de avhengige funksjonene som må bli eksekvert i enheten 6. En skal merke seg at omnavningen av instruksjonene blir utført under modifisering av den sårbare programvaren 2v til en beskyttet programvare 2p. Thanks to this principle of protection by renaming, examination in the protected software 2p of the trigger commands with renamed instructions does not make it possible to determine the identity of the dependent functions that must be executed in the device 6. It should be noted that the renaming of the instructions is carried out during modification of the vulnerable software 2v to a protected software 2p.

I henhold til en variant av prinsippet for beskyttelse ved omnavning defineres, for minst én avhengig funksjon, en familie av avhengige funksjoner som er algoritmisk ekvivalente, men som trigges av forskjellige triggerkommandoer med omnavnede instruksjoner. I henhold til denne varianten, for minst én algoritmisk prosessering som anvender avhengige funksjoner, deles nevnte algoritmiske prosessering inn i avhengige funksjoner av hvilke minst én blir byttet ut med en avhengig funksjon fra den samme familien i stedet for at det beholdes flere instanser av den samme avhengige funksjonen. For dette formål blir triggerkommandoer med omnavnede instruksjoner modifisert slik at de tar hensyn til utskiftningen av avhengige funksjoner med avhengige funksjoner fra den samme familien. Med andre ord har to avhengige funksjoner fra den samme familien forskjellige instruksjoner og følgelig forskjellige triggerkommandoer med omnavnede instruksjoner, og det er ikke mulig, ved å granske den beskyttede programvaren 2p, å oppdage at de avhengige funksjonene som blir kalt er algoritmisk ekvivalente. According to a variant of the principle of protection by renaming, for at least one dependent function, a family of dependent functions that are algorithmically equivalent but triggered by different trigger commands with renamed instructions are defined. According to this variant, for at least one algorithmic processing that uses dependent functions, said algorithmic processing is divided into dependent functions of which at least one is replaced by a dependent function from the same family instead of keeping multiple instances of the same dependent function. To this end, trigger commands with renamed instructions are modified to take into account the replacement of dependent functions with dependent functions from the same family. In other words, two dependent functions from the same family have different instructions and consequently different trigger commands with renamed instructions, and it is not possible, by examining the proprietary software 2p, to detect that the dependent functions being called are algorithmically equivalent.

I henhold til en første foretrukket utførelsesform av varianten av prinsippet for beskyttelse ved omnavning defineres for minst én avhengig funksjon en familie av algoritmisk ekvivalente avhengige funksjoner ved å legge til et støyfelt i informasjonen som definerer den funksjonelle delen av den avhengige funksjonen som skal eksekveres i enheten 6. According to a first preferred embodiment of the variant of the principle of protection by renaming, for at least one dependent function, a family of algorithmically equivalent dependent functions is defined by adding a noise field to the information defining the functional part of the dependent function to be executed in the device 6.

I henhold til en andre foretrukket utførelsesform av varianten av prinsippet for beskyttelse ved omnavning defineres for minst én avhengig funksjon en familie av algoritmisk ekvivalente avhengige funksjoner med bruk av identifikasjonsfelter. According to a second preferred embodiment of the variant of the principle of protection by renaming, a family of algorithmically equivalent dependent functions is defined for at least one dependent function using identification fields.

I henhold til en alternativ foretrukket utførelsesform av prinsippet for beskyttelse ved omnavning defineres som fremgangsmåte for å omnavne instruksjonene en krypteringsmetode som gjør det mulig å kryptere instruksjonene for å konvertere dem til omnavnede instruksjoner. Husk at omnavningen av instruksjonene blir utført under beskyttelsesfasen P. I denne foretrukne utførelsesformen er tilbakeførings-anordningen 20 en anordning for å implementere en dekrypteringsmetode som gjør det mulig å dekryptere de omnavnede instruksjonene og således gjenopprette identiteten til de avhengige funksjonene å eksekvere i enheten 6. Nevnte tilbake-føringsanordning er implementert i enheten 6, og kan være i form av programvare eller maskinvare. Nevnte tilbakeføringsanordning 20 påkalles under bruksfasen U hver gang en triggerkommando med omnavnet instruksjon blir eksekvert i databehandlingssystemet 3 i den hensikt å trigge eksevering av en avhengig funksjon i enheten 6. According to an alternative preferred embodiment of the principle of protection by renaming, the method for renaming the instructions is defined as an encryption method which makes it possible to encrypt the instructions to convert them into renamed instructions. Remember that the renaming of the instructions is performed during the protection phase P. In this preferred embodiment, the return device 20 is a device for implementing a decryption method that makes it possible to decrypt the renamed instructions and thus restore the identity of the dependent functions to execute in the device 6. Said feedback device is implemented in the unit 6, and can be in the form of software or hardware. Said return device 20 is invoked during the use phase U every time a trigger command renamed instruction is executed in the data processing system 3 with the intention of triggering the execution of a dependent function in the unit 6.

I henhold til et annet fordelaktig særtrekk ved oppfinnelsen har beskyttelsesprosessen som formål å implementere et beskyttelsesprinsipp kalt ved "betinget sprang", en beskrivelse av hvilket er gitt i forbindelse med figurene 90 til 92. According to another advantageous feature of the invention, the purpose of the protection process is to implement a protection principle called "conditional jump", a description of which is given in connection with figures 90 to 92.

For implementering av prinsippet for beskyttelse ved betinget sprang velges i kilden for den sårbare programvaren 2vs minst ett betinget sprang BC. Det velges også minst én andel av kilden for den sårbare programvaren 2vs som inneholder minst ett valgt betinget sprang. For the implementation of the principle of protection by conditional jump, in the source of the vulnerable software 2vs at least one conditional jump BC is selected. At least one portion of the source for the vulnerable software 2vs is also selected that contains at least one selected conditional jump.

Minst én valgt andel av kilden for den sårbare programvaren 2vs blir deretter modifisert for å frembringe kilden for den beskyttede programvaren 2ps. Denne modifikasjonen er slik at, under eksekveting av den beskyttede programvaren 2p, blant annet: • minst én andel av den første eksekveringsdelen 2pes, som eksekveres i databehandlingssystemet 3, tar i betraktning at funksjonaliteten i minst ett betinget sprang BC blir utført i enheten 6, • og at den andre eksekveringsdelen 2peu, som eksekveres i enheten 6, i hvert fall utfører funksjonaliteten til minst ett valgt betinget sprang BC og stiller til databehandlingssystemet 3 sin disposisjon informasjon som gjør det mulig for den første eksekveringsdelen 2pes å fortsette sin eksekvering ved det valgte stedet. At least one selected portion of the source of the vulnerable software 2vs is then modified to produce the source of the protected software 2ps. This modification is such that, during execution of the protected software 2p, among other things: • at least one part of the first execution part 2pes, which is executed in the data processing system 3, takes into account that the functionality in at least one conditional jump BC is executed in the device 6, • and that the second execution part 2peu, which is executed in the unit 6, at least performs the functionality of at least one selected conditional jump BC and makes available to the data processing system 3 information that enables the first execution part 2pes to continue its execution at the selected the place.

Den første eksekveringsdelen 2pes av den beskyttede programvaren 2p, som eksekveres i databehandlingssystemet 3, eksekverer betinget sprang-kommandoer som trigger, i enheten 6, eksekvering ved hjelp av den andre eksekveringsdelen 2peu fjern-utførte betingede sprang bc hvis funksjonalitet er ekvivalent med funksjonaliteten til de valgte betingede sprangene BC. Figur 90 illustrerer et eksempel på eksekvering av en sårbar programvare 2v. I dette eksempelet utføres, under eksekvering av den sårbare programvaren 2v i databehandlingssystemet 3, ved et gitt tidspunkt, et betinget sprang BC som angir for den sårbare programvaren 2v hvor den skal fortsette sin eksekvering, dvs. ett av de tre mulige steder Bi, B2eller B3. Det må forstås at det betingede spranget BC tar avgjørelsen om å fortsatte eksekveringen av programvaren ved Bi, B2eller B3. Figur 91 illustrerer et eksempel på implementering av oppfinnelsen der det betingede spranget valgt for fjerneksekvering i enheten 6 svarer til det betingede spranget BC. I dette eksempelet utføres, under eksekvering i databehandlingssystemet 3 av den første eksekveringsdelen 2pes av den beskyttede programvaren 2p og ved nærvær av enheten 6: • ved tiden ti, eksekvering av betinget sprang-kommandoen CBCisom trigger, i enheten 6, eksekvering, ved hjelp av den andre eksekveringsdelen 2peu, av det fjerneksekverte betingede spranget bc som er algoritmisk ekvivalent med det betingede spranget BC, idet nevnte betinget sprang-kommando CBCier representert ved TRIG(bc), • og ved tiden t2, overføring fra enheten 6 til databehandlingssystemet 3 av den informasjonen som gjør det mulig for den første eksekveringsdelen 2pes å utføre sin eksekvering ved det valgte stedet, dvs. stedet Bi, B2eller B3. The first execution part 2pes of the protected software 2p, which is executed in the data processing system 3, executes conditional jump commands which trigger, in the unit 6, execution by means of the second execution part 2peu remotely executed conditional jumps bc whose functionality is equivalent to the functionality of the selected conditional jumps BC. Figure 90 illustrates an example of execution of a vulnerable software 2v. In this example, during the execution of the vulnerable software 2v in the data processing system 3, at a given point in time, a conditional jump BC is performed which indicates for the vulnerable software 2v where it should continue its execution, i.e. one of the three possible locations Bi, B2or B3. It must be understood that the conditional jump BC makes the decision to continue execution of the software at Bi, B2, or B3. Figure 91 illustrates an example of implementation of the invention where the conditional jump selected for remote execution in unit 6 corresponds to the conditional jump BC. In this example, during the execution in the data processing system 3 of the first execution part 2pes of the protected software 2p and in the presence of the device 6 is performed: • at time ten, execution of the conditional jump command CBCisom trigger, in the device 6, execution, by means of the second execution part 2peu, of the remote executed conditional jump bc which is algorithmically equivalent to the conditional jump BC, said conditional jump command CBCier represented by TRIG(bc), • and at time t2, transfer from the unit 6 to the data processing system 3 of the the information which enables the first execution part 2pes to perform its execution at the selected location, i.e. location Bi, B2 or B3.

En skal merke seg at under eksekvering av en andel av den første eksekveringsdelen 2pes av den beskyttede programvaren 2p, betinget sprang-kommandoene eksekvert i databehandlingssystemet 3 trigger eksekvering av de motsvarende fjerneksekverte betingede sprangene i enheten 6. Det er således slik at, i nærvær av enheten 6, nevnte andel eksekveres korrekt og at følgelig den beskyttede programvaren 2p er fullstendig funksjonell. It should be noted that during the execution of a portion of the first execution part 2pes of the protected software 2p, the conditional jump commands executed in the data processing system 3 trigger the execution of the corresponding remotely executed conditional jumps in the device 6. Thus, in the presence of the device 6, said portion is executed correctly and that consequently the protected software 2p is fully functional.

Figur 92 illustrerer et eksempel på et forsøk på eksekvering av den beskyttede programvaren 2p når enheten 6 er fraværende. I dette eksempelet, under eksekvering i databehandlingssystemet 3 av den første eksekveringsdelen 2pes av den beskyttede programvaren 2p: • ved tiden ti kan ikke eksekvering av betinget sprang-kommandoen CBCitrigge eksekvering av det fjerneksekverte betingede spranget bc, som følge av fraværet av enheten 6, • og ved tiden t.2 feiler overføringen av den informasjonen som gjør det mulig for den første eksekveringsdelen 2pes å fortsette ved det valgte stedet, som følge av fraværet av enheten 6. Figure 92 illustrates an example of an attempt to execute the protected software 2p when the device 6 is absent. In this example, during execution in the data processing system 3 of the first execution part 2pes of the protected software 2p: • at time ten, execution of the conditional jump command CBC cannot trigger execution of the remote executed conditional jump bc, due to the absence of the device 6, • and at time t.2, the transmission of the information which enables the first execution part 2pes to continue at the selected location, due to the absence of the device 6, fails.

Det er derfor slik at, ved fravær av enheten 6, minst én forespørsel fra en andel av den første eksekveringsdelen 2pes om å trigge eksekvering av et fjerneksekvert betinget sprang i enheten 6 ikke kan etterkommes på korrekt måte, slik at i hvert fall nevnte andel ikke blir eksekvert korrekt og at følgelig den beskyttede programvaren 2p ikke er fullstendig funksjonell. It is therefore the case that, in the absence of the unit 6, at least one request from a part of the first execution part 2pes to trigger the execution of a remotely executed conditional jump in the unit 6 cannot be complied with correctly, so that at least the said part does not is executed correctly and that consequently the protected software 2p is not fully functional.

I beskrivelsen over i forbindelse med figurene 90 og 92 tar oppfinnelsen sikte på å fjerneksekvere, i enheten 6, et betinget sprang. Selvfølgelig kan en foretrukket utførelsesform av oppfinnelsen realiseres ved å fjerneksekvere, i enheten 6, en serie av betingede sprang hvis samlede funksjonalitet er ekvivalent med hele funksjonaliteten i de betingede sprangene som har blitt fjerneksekvert. Eksekvering av den samlede funksjonaliteten til nevnte serie av fjerneksekverte betingede sprang bevirker at det til databehandlingssystemet 3 sin disposisjon stilles informasjon som gjør det mulig for den første eksekveringsdelen 2pes av den beskyttede programvaren 2p å fortsette sin eksekvering ved det valgte stedet. In the description above in connection with figures 90 and 92, the invention aims to remove, in unit 6, a conditional jump. Of course, a preferred embodiment of the invention can be realized by removing, in unit 6, a series of conditional jumps whose overall functionality is equivalent to the entire functionality of the conditional jumps that have been removed. Execution of the overall functionality of said series of remotely executed conditional jumps results in information being made available to the data processing system 3 which enables the first execution part 2pes of the protected software 2p to continue its execution at the selected location.

I beskrivelsen over i forbindelse med figurene 40 til 92 har fire forskjellige prinsipper for programbeskyttelse blitt beskrevet stort sett uavhengig av hverandre. Beskyttelsesprosessen ifølge oppfinnelsen blir utført ved anvendelse av prinsippet for beskyttelse ved deteksjon og tvang, eventuelt i kombinasjon med ett eller flere andre beskyttelsesprinsipper. Dersom prinsippet for beskyttelse ved deteksjon og tvang er supplert med minst ett annet beskyttelsesprinsipp, er prinsippet for beskyttelse ved deteksjon og tvang fortrinnsvis supplert med prinsippet for beskyttelse med variabel og/eller prinsippet for beskyttelse ved omnavning og/eller prinsippet for beskyttelse ved betinget sprang. In the description above in connection with figures 40 to 92, four different principles for program protection have been described largely independently of each other. The protection process according to the invention is carried out using the principle of protection by detection and coercion, possibly in combination with one or more other protection principles. If the principle of protection by detection and coercion is supplemented by at least one other protection principle, the principle of protection by detection and coercion is preferably supplemented by the principle of protection by variable and/or the principle of protection by renaming and/or the principle of protection by conditional jump.

Når prinsippet for beskyttelse ved omnavning også er implementert, kan det i sin tur være supplert med prinsippet for beskyttelse ved betinget sprang. When the principle of protection by renaming is also implemented, it can in turn be supplemented by the principle of protection by conditional jump.

I henhold til den foretrukne utførelsesform-varianten er prinsippet for beskyttelse ved deteksjon og tvang supplert med prinsippet for beskyttelse med variabel og med prinsippet for beskyttelse ved omnavning, supplert med prinsippet for beskyttelse ved betinget sprang. According to the preferred embodiment variant, the principle of protection by detection and coercion is supplemented by the principle of protection by variable and by the principle by protection by renaming, supplemented by the principle by protection by conditional jump.

I tilfeller hvor et beskyttelsesprinsipp blir anvendt som supplement til prinsippet for beskyttelse ved deteksjon og tvang, må den ovenfor gitte beskrivelsen av dette omfatte, for å ta hensyn til den kombinerte implementasjonen, følgende endringer: • begrepet sårbar programvare må forstås som programvare som er sårbar henimot det beskyttelsesprinsippet som beskrives. I tilfellet hvor et beskyttelsesprinsipp allerede har blitt anvendt på den sårbare programvaren, skal således uttrykket "sårbar programvare" tolkes av leseren som"programvare beskyttet av det eller de beskyttelsesprinsipp som allerede har blitt anvendt"; • begrepet beskyttet programvare må forstås som programvare som er beskyttet henimot det beskyttelsesprinsippet som beskrives. I tilfellet hvor et beskyttelsesprinsipp allerede har blitt anvendt, skal således uttrykket "beskyttet programvare" tolkes av leseren som "ny versjon av den beskyttede programvaren"; • og det eller de valg som er gjort for implementering av beskyttelsesprinsippet som beskrives må ta hensyn til det eller de valg som er gjort for implementering av det eller de beskyttelsesprinsipp som allerede har blitt anvendt. In cases where a protection principle is applied as a supplement to the principle of protection by detection and coercion, the description given above must include, in order to take account of the combined implementation, the following changes: • the term vulnerable software must be understood as software that is vulnerable towards the protection principle described. In the case where a protection principle has already been applied to the vulnerable software, the expression "vulnerable software" shall thus be interpreted by the reader as "software protected by the protection principle or principles that have already been applied"; • the term protected software must be understood as software that is protected against the protection principle described. Thus, in the case where a protection principle has already been applied, the expression "protected software" shall be interpreted by the reader as "new version of the protected software"; • and the choice(s) made for the implementation of the protection principle described must take into account the choice(s) made for the implementation of the protection principle(s) that have already been applied.

Resten av beskrivelsen skal gi en bedre forståelse av utførelsen av beskyttelsesprosessen ifølge oppfinnelsen. Denne beskyttelsesprosessen ifølge oppfinnelsen omfatter, som vist mer presist i figur 100: først en beskytteIsesfase P under hvilken en sårbar programvare 2v blir modifisert for å bli en beskyttet programvare 2p, • deretter, en bruksfase U under hvilken den beskyttede programvaren 2p blir anvendt. Under denne bruksfasen U: - i nærvær av enheten 6 og hver gang en andel av den første eksekveringsdelen 2pes eksekvert i databehandlingssystemet 3 pålegger det, blir en pålagt funksjonalitet eksekvert i enheten 6, slik at nevnte andel blir eksekvert korrekt og at følgelig den beskyttede programvaren 2p er fullstendig funksjonell, - i fravær av enheten 6 og til tross for forespørselen fra en andel av den første eksekveringsdelen 2pes om å utføre en funksjonalitet i enheten 6, kan ikke nevnte forespørsel etterkommes på korrekt måte, slik at i hvert fall nevnte andel ikke eksekveres korrekt og at følgelig den beskyttede programvaren 2p ikke er fullstendig funksjonell, • og eventuelt en refill-fase R under hvilken det blir kreditert minst én ytterligere bruk av en funksjonalitet beskyttet ved implementasjon av den andre alternative foretrukne utførelsesformen av prinsippet for beskyttelse ved deteksjon og tvang med bruk av en målevariabel som egenskap. The remainder of the description shall provide a better understanding of the execution of the protection process according to the invention. This protection process according to the invention comprises, as shown more precisely in Figure 100: first a protection phase P during which a vulnerable software 2v is modified to become a protected software 2p, • then, a use phase U during which the protected software 2p is used. During this use phase U: - in the presence of the device 6 and every time a part of the first execution part 2 is executed in the data processing system 3 imposes it, an imposed functionality is executed in the device 6, so that said part is executed correctly and that consequently the protected software 2p is fully functional, - in the absence of the unit 6 and despite the request from a part of the first execution part 2pes to perform a functionality in the unit 6, said request cannot be complied with correctly, so that at least said part does not is executed correctly and that consequently the protected software 2p is not fully functional, • and possibly a refill phase R during which at least one further use of a functionality protected by implementation of the second alternative preferred embodiment of the principle of protection by detection and coercion with the use of a measurement variable as a characteristic.

Beskyttelsesfasen P kan deles inn i to delfaser, Pi og P2. Den første, kalt før-beskyttelse-delfasen Pi, finner sted uavhengig av den sårbare programvaren 2v som skal beskyttes. Den andre fasen, kalt etter-beskyttelse-delfasen P2, avhenger av den sårbare programvaren 2v som skal beskyttes. En skal merke seg at før-beskyttelse-delfasen Pi og etter-beskyttelse-delfasen P2fortrinnsvis kan bli utført av to forskjellige personer eller to forskjellige grupper. For eksempel kan før-beskyttelse-delfasen Pi bli utført av en person eller en bedrift som utvikler program-beskyttelsessystemer, mens etter-beskyttelse-delfasen P2kan bli utført av en person eller en bedrift som utvikler programvare som krever beskyttelse. Det er selvfølgelig klart at før-beskyttelse-delfasen Pi og etter-beskyttelse-delfasen P2også kan bli utført av samme person eller gruppe. The protection phase P can be divided into two sub-phases, Pi and P2. The first, called the pre-protection sub-phase Pi, takes place independently of the vulnerable software 2v to be protected. The second phase, called the post-protection subphase P2, depends on the vulnerable software 2v to be protected. It should be noted that the pre-protection sub-phase Pi and the post-protection sub-phase P2 can preferably be carried out by two different people or two different groups. For example, the pre-protection sub-phase Pi can be performed by a person or a company that develops software protection systems, while the post-protection sub-phase P2 can be performed by a person or a company that develops software that requires protection. It is of course clear that the pre-protection sub-phase Pi and the post-protection sub-phase P2 can also be carried out by the same person or group.

Før-beskyttelse-delfasen Pi omfatter flere trinn Sn ..., Su, i hvert av hvilke forskjellige oppgaver eller jobber skal utføres. The pre-protection sub-phase Pi comprises several steps Sn ..., Su, in each of which different tasks or jobs are to be performed.

Det første trinnet av før-beskyttelse-delfasen Pi er kalt "definisjonstrinn Sn". Under dette trinnet Sn: The first step of the pre-protection sub-phase Pi is called "definition step Sn". During this step Sn:

• velges: • selected:

- typen enhet 6. Som et illustrerende eksempel kan som enhet 6 velges en chipkort-leser 8 og chipkortet 7 assosiert med leseren, - og overføringsanordningene 12, 13, henholdsvis innrettet for å bli implementert i databehandlingssystemet 3 og i enheten 6 under bruksfasen U, og i stand til å besørge overføring av data mellom databehandlingssystemet 3 og enheten 6, - the type of unit 6. As an illustrative example, a chip card reader 8 and the chip card 7 associated with the reader can be selected as unit 6, - and the transmission devices 12, 13, respectively arranged to be implemented in the data processing system 3 and in the unit 6 during the use phase U, and capable of providing the transfer of data between the data processing system 3 and the device 6,

defineres: defined:

- minst én programeksekveringsegenskap som er tilbøyelig til å bli overvåket i hvert fall delvis i enheten 6, - minst ett kriterium å rette seg etter for minst én programeksekveringsegenskap, - en deteksjonsanordning 17 for implementering i enheten 6, som gjør det mulig å detektere at minst én programeksekveringsegenskap ikke overholder minst ett assosiert kriterium, - og en tvangsanordning 18 for implementering i enheten 6, som gjør det mulig å informere databehandlingssystemet 3 og/eller endre virkemåten - at least one program execution property that is prone to be monitored at least partially in the unit 6, - at least one criterion to comply with for at least one program execution property, - a detection device 17 for implementation in the unit 6, which makes it possible to detect that at least one program execution property does not comply with at least one associated criterion, - and a coercive device 18 for implementation in the unit 6, which makes it possible to inform the data processing system 3 and/or change the operation

til en programvare når minst ett kriterium ikke blir overholdt, to a software when at least one criterion is not met,

og i tilfellet hvor beskyttelsesprosessen ifølge oppfinnelsen implementerer prinsippet for beskyttelse ved deteksjon og tvang med bruk som egenskap en målevariabel for programeksekveringen, defineres også: and in the case where the protection process according to the invention implements the principle of protection by detection and coercion using as a property a measurement variable for the program execution, is also defined:

- som programeksekveringsegenskap tilbøyelig til å bli overvåket, en variabel for måling av bruken av en funksjonalitet i en programvare, - som kriterium å overholde, minst én terskel assosiert med hver målevariabel, - og en aktualiseringsanordning som gjør det mulig å oppdatere minst én målevariabel, - as a program execution characteristic prone to be monitored, a variable for measuring the use of a functionality in a software, - as a criterion to comply with, at least one threshold associated with each measurement variable, - and an actualization device that makes it possible to update at least one measurement variable,

og i tilfellet hvor beskyttelsesprosessen ifølge oppfinnelsen også implementerer en første foretrukket alternativ utførelsesform av prinsippet for beskyttelse ved deteksjon og tvang med bruk som egenskap en variabel for måling av programeksekveringen, defineres også: and in the case where the protection process according to the invention also implements a first preferred alternative embodiment of the principle of protection by detection and coercion using as a property a variable for measuring the program execution, is also defined:

- for minst én målevariabel, flere assosierte terskeler, - for at least one measurement variable, several associated thresholds,

- og forskjellige tvangsanordninger svarende til hver av nevnte terskeler, • og i tilfellet hvor beskyttelsesprosessen ifølge oppfinnelsen også implementerer en andre foretrukket alternativ utførelsesform av prinsippet for beskyttelse ved deteksjon og tvang med bruk som trekk en variabel for måling av programeksekveringen, defineres også en refill-anordning som gjør det mulig å legge til minst én ytterligere bruk av minst én programfunksjonalitet som overvåkes av en målevariabel, • og i tilfellet hvor beskyttelsesprosessen ifølge oppfinnelsen implementerer prinsippet for beskyttelse ved deteksjon og tvang med bruk som egenskap en programbruksprofil, defineres også: - som programeksekveringsegenskap tilbøyelig til å bli overvåket, en programbruksprofil, - og som kriterium å rette seg etter, minst én programeksekveringsegenskap, • og i tilfellet hvor beskyttelsesprosessen ifølge oppfinnelsen implementerer prinsippet for beskyttelse ved deteksjon og tvang med bruk som eksekveringsegenskap å overholde overvåkning av eksekveringskjedingen, defineres også: - et instruksjonssett hvis instruksjoner er tilbøyelige til å bli eksekvert i enheten 6, - et sett av instruksjonskommandoer for nevnte instruksjonssett, idet nevnte instruksjonskommandoer er tilbøyelige til å bli eksekvert i databehandlingssystemet 3 og til å trigge eksekvering av instruksjonene i enheten 6, - and different coercive devices corresponding to each of the mentioned thresholds, • and in the case where the protection process according to the invention also implements a second preferred alternative embodiment of the principle of protection by detection and coercion using as a feature a variable for measuring the program execution, a refill is also defined device that makes it possible to add at least one additional use of at least one program functionality that is monitored by a measurement variable, • and in the case where the protection process according to the invention implements the principle of protection by detection and coercion with use as a feature a program use profile, also defined: - as program execution property prone to be monitored, a program usage profile, - and as a criterion to comply with, at least one program execution property, • and in the case where the protection process according to the invention implements the principle of protection by detection and coercion with use as an execution property to comply with monitoring of the execution chain, is also defined: - an instruction set whose instructions are likely to be executed in the unit 6, - a set of instruction commands for said instruction set, said instruction commands being likely to be executed in the data processing system 3 and to trigger execution of the instructions in unit 6,

- som bruksprofil, kjedingen av instruksjonene, - as a usage profile, the chain of instructions,

- som eksekveringsegenskap, en forventet kjeding for eksekvering av instruksjonene, - som deteksjonsanordning 17, midler som gjør det mulig å detektere at kjedingen av instruksjonene ikke svarer til den forventede, - og som tvangsanordning 18, midler som gjør det mulig å informere databehandlingssystemet 3 og/eller modifisere virkemåten til andelen av den beskyttede programvaren 2p når kjedingen av instruksjonene ikke svarer til den forventede, og i tilfellet hvor beskyttelsesprosessen ifølge oppfinnelsen også implemen terer en foretrukket alternativ utførelsesform av prinsippet for beskyttelse ved deteksjon og tvang med bruk som eksekveringsegenskap å overholde overvåkning av eksekveringskjedingen, defineres også: - as an execution property, an expected sequence for executing the instructions, - as a detection device 17, means that make it possible to detect that the sequence of instructions does not correspond to the expected one, - and as a forcing device 18, means that make it possible to inform the data processing system 3 and /or modify the behavior of the portion of the protected software 2p when the chaining of the instructions does not correspond to the expected one, and in the case where the protection process according to the invention also implements ter a preferred alternative embodiment of the principle of protection by detection and coercion using as an execution property to comply with monitoring of the execution chain, is also defined:

- som instruksjonssett, et instruksjonssett der i hvert fall noen instruksjoner jobber med registre og anvender minst én operand med det formål å returnere et resultat, - as an instruction set, an instruction set in which at least some instructions work with registers and use at least one operand for the purpose of returning a result,

- for i hvert fall noen av instruksjonene som jobber med registre: - for at least some of the instructions that work with registers:

> en del PF som definerer instruksjonens funksjonalitet, > some PF that defines the functionality of the instruction,

> og en del som definerer den forventede kjedingen for eksekvering av instruksjonene og som omfatter bit-felter svarende til: > and a part that defines the expected chain for executing the instructions and that includes bit fields corresponding to:

o et identifikasjonsfelt av instruksjonen CM, o an identification field of the instruction CM,

o og for hver operand i instruksjonen: o and for each operand in the instruction:

■ et flagg-felt CDk, ■ a flag field CDk,

■ og en forventet identifikasjonsfelt CIPk for operanden, ■ and an expected identification field CIPk for the operand,

- for hvert register som tilhører eksploateringsmiddelet og som anvendes av instruksjonssettet, et generert identifikasjonsfelt CIGVi hvilket identiteten til den siste instruksjonen som har returnert sitt resultat i nevnte nevnte register automatisk blir lagret, - som deteksjonsanordning 17, midler som gjør det mulig, under eksekvering av en instruksjon, for hver operand, når flagg-feltet CDk pålegger det, å sjekke for likhet mellom det genererte identifikasjonsfeltet CIGvsvarende til registeret anvendt av nevnte operand og det forventede identifikasjonsfeltet CIPkfor opprinnelsen til nevnte operand, - og som tvangsanordning 18, midler som gjør det mulig å modifisere resul tatet av instruksjonene dersom minst én av de sjekkede likheter er usann, og i tilfellet hvor beskyttelsesprosessen ifølge oppfinnelsen implementerer prinsippet for beskyttelse ved omnavning, defineres også: - for each register belonging to the exploitation means and used by the instruction set, a generated identification field CIGVi in which the identity of the last instruction that has returned its result in said said register is automatically stored, - as detection device 17, means that make it possible, during the execution of an instruction, for each operand, when the flag field CDk requires it, to check for equality between the generated identification field CIGcorresponding to the register used by said operand and the expected identification field CIPkfor the origin of said operand, - and as enforcement device 18, means that do so possible to modify resul tated by the instructions if at least one of the checked similarities is false, and in the case where the protection process according to the invention implements the principle of protection by renaming is also defined:

- som en triggerkommando, en instruksjonskommando, - as a trigger command, an instruction command,

- som en avhengig funksjon, en instruksjon, - as a dependent function, an instruction,

- som en instruksjon, minst ett argument i en triggerkommando, svarende i hvert fall delvis til informasjonen sendt fra databehandlingssystemet 3 til enheten 6 for å trigge eksekvering av den motsvarende avhengige funksjonen, - en fremgangsmåte for å omnavne instruksjonene som gjør det mulig å omnavne instruksjonene for å oppnå triggerkommandoer med omnavnede instruksjoner, - og en tilbakeføringsanordning 20 som er innrettet for å bli anvendt i enheten 6 under bruksfasen U og som gjør det mulig å gjenopprette den avhengige funksjonen å eksekvere fra den omnavnede instruksjonen, • og i tilfellet hvor beskyttelsesprosessen ifølge oppfinnelsen implementerer en variant av prinsippet for beskyttelse ved omnavning defineres også, for minst én avhengig funksjon, en familie av avhengige funksjoner som er algoritmisk ekvivalente, men som trigges av triggerkommandoer hvis omnavnede - as an instruction, at least one argument in a trigger command, corresponding at least in part to the information sent from the data processing system 3 to the unit 6 to trigger execution of the corresponding dependent function, - a method for renaming the instructions that makes it possible to rename the instructions to obtain trigger commands with renamed instructions, - and a return device 20 which is arranged to be used in the unit 6 during the use phase U and which makes it possible to recover the dependent function to execute from the renamed instruction, • and in the case where the protection process according to the invention implements a variant of the principle of protection by renaming also defines, for at least one dependent function, a family of dependent functions that are algorithmically equivalent but are triggered by trigger commands if renamed

instruksjoner er forskjellige, instructions are different,

• og i tilfellet hvor beskyttelsesprosessen ifølge oppfinnelsen implementerer én av de foretrukne utførelsesformene av varianten av prinsippet for beskyttelse ved omnavning defineres også, for minst én avhengig funksjon, en familie av algoritmisk ekvivalente avhengige funksjoner ved å: - legge til et støyfelt i informasjonen som definerer den funksjonelle delen av den avhengige funksjonen å eksekvere i enheten 6, - eller anvende identifikasjonsfeltet til instruksjonen CM og de forventede identifikasjonsfeltene ClPktil operandene, • og i tilfellet hvor beskyttelsesprosessen ifølge oppfinnelsen implementerer en foretrukket variant av prinsippet for beskyttelse ved omnavning, defineres også: - som fremgangsmåte for å omnavne kommandoene, en krypteringsmetode for å kryptere kommandoene, - og som tilbakeføringsanordning 20, midler som implementerer en dekrypteringsmetode for å dekryptere de omnavnede instruksjonene og med det gjenopprette identiteten til de avhengige funksjonene som skal eksekveres i enheten 6. • and in the case where the protection process according to the invention implements one of the preferred embodiments of the variant of the principle of protection by renaming is also defined, for at least one dependent function, a family of algorithmically equivalent dependent functions by: - adding a noise field to the information that defines the functional part of the dependent function to execute in the unit 6, - or use the identification field of the instruction CM and the expected identification fields ClPktil the operands, • and in the case where the protection process according to the invention implements a preferred variant of the principle of protection by renaming, is also defined: - as method for renaming the commands, an encryption method for encrypting the commands, - and as return device 20, means implementing a decryption method for decrypting the renamed instructions and thereby restoring the identity of the dependent functions to be executed secured in unit 6.

Under før-beskyttelse-delfasen Pi etterfølges definisjonstrinnet Sn av et trinn kalt "konstruksjonstrinn S12". Under dette trinnet S12frembringes overførings- anordningene 12, 13 samt eksploateringsmidlene svarende til definisjonene fra definisjonstrinnet Sn- During the pre-protection sub-phase Pi, the definition step Sn is followed by a step called "construction step S12". During this step S12, the transfer devices 12, 13 and the means of exploitation corresponding to the definitions from the definition step Sn-

Under dette konstruksjonstrinnet S12utføres derfor: During this construction step S12, therefore:

• konstruksjon av overføringsanordningene 12, 13 som muliggjør, under bruksfasen U, overføring av data mellom databehandlingssystemet 3 og enheten 6, • construction of the transfer devices 12, 13 which enable, during the use phase U, the transfer of data between the data processing system 3 and the unit 6,

• konstruksjon: • construction:

- av eksploateringsmidlene som gjør det mulig for enheten 6, under bruksfasen U, også å implementere deteksjonsanordningen 17 og tvangsanordningen 18, - og eventuelt av eksploateringsmiddelet som gjør det mulig for enheten 6, under bruksfasen U, også å implementere aktualiseringsanordningen, - og eventuelt av eksploateringsmiddelet som gjør det mulig for enheten 6, under bruksfasen U, også å implementere refill-anordningen, - og eventuelt av eksploateringsmiddelet som også gjør det mulig for enheten 6, under bruksfasen U, å eksekvere instruksjonene i instruksjonssettet, • og når prinsippet for beskyttelse ved omnavning også implementeres, konstruksjon av det eksploateringsmiddelet som gjør det mulig for enheten 6, under bruksfasen U, også å implementere tilbakeføringsanordningen. - of the means of exploitation which make it possible for the unit 6, during the use phase U, also to implement the detection device 17 and the forcing device 18, - and optionally of the means of exploitation which make it possible for the unit 6, during the use phase U, also to implement the actualization device, - and optionally of the means of exploitation which makes it possible for the device 6, during the use phase U, to also implement the refill device, - and possibly of the means of exploitation which also makes it possible for the device 6, during the use phase U, to execute the instructions in the instruction set, • and when the principle of protection by renaming is also implemented, construction of the means of exploitation which makes it possible for the unit 6, during the use phase U, to also implement the return device.

Konstruksjonen av eksploateringsmidlene blir utført på tradisjonelt vis ved hjelp av en programutviklingsenhet og tatt i betraktning definisjonene frembragt i definisjonstrinnet Sn. En slik enhet er beskrevet senere i beskrivelsen i forbindelse med figur 110. The construction of the exploitation means is carried out in the traditional way with the help of a program development unit and taking into account the definitions produced in the definition step Sn. Such a unit is described later in the description in connection with figure 110.

Under før-beskyttelse-delfasen Pi kan konstruksjonstrinnet S12etterfølges av et trinn kalt "prekustomiseringstrinn S13". Under dette trinnet S13blir i hvert fall en del av overføringsanordningen 13 og/eller eksploateringsmiddelet lastet opp til minst én blankenhet 60 i den hensikt å oppnå minst én prekustomisert enhet 66. En skal merke seg at deler av eksploateringsmiddelet, når den er overført til en prekustomisert enhet 66, ikke lenger er direkte aksesserbar utenfor nevnte prekustomiserte enhet 66. Overføringen av eksploateringsmiddelet til en blankenhet 60 kan bli utført ved hjelp av en tilpasset prekustomiseringsenhet, som er beskrevet senere i beskrivelsen i forbindelse med figur 120. I tilfellet med en prekustomisert enhet 66 som utgjøres av et chipkort 7 og dets leser 8, vedrører prekustomiseringen kun chipkortet 7. During the pre-protection sub-phase Pi, the construction step S12 may be followed by a step called "pre-customization step S13". During this step S13, at least part of the transfer device 13 and/or the exploitation means is loaded onto at least one blank unit 60 in order to obtain at least one pre-customized unit 66. It should be noted that parts of the exploitation means, when it has been transferred to a pre-customized unit 66, is no longer directly accessible outside said pre-customized unit 66. The transfer of the exploitation means to a blank unit 60 can be carried out by means of an adapted pre-customization unit, which is described later in the description in connection with figure 120. In the case of a pre-customized unit 66 which consists of a chip card 7 and its reader 8, the pre-customization only concerns the chip card 7.

Under før-beskyttelse-delfasen Pi, etter definisjonstrinnet Sn og eventuelt etter konstruksjonstrinnet S12, kan et trinn kalt verktøykonstruksjonstrinn SW bli utført. Under dette trinnet S14frembringes verktøy som kan hjelpe til å generere beskyttet programvare eller automatisere beskyttelse av programvare. Disse verktøyene gjør det mulig å: • hjelpe til med å velge eller automatisk velge i den sårbare programvaren 2v som skal beskyttes: - den eller de eksekveringsegenskapene å overvåke, og eventuelt den eller de algoritmiske prosesseringene som er tilbøyelige til å bli delt opp i instruksjoner som kan fjerneksekveres i enheten 6, During the pre-protection sub-phase Pi, after the definition step Sn and optionally after the construction step S12, a step called tool construction step SW can be performed. During this step S14, tools are provided that can help generate protected software or automate the protection of software. These tools make it possible to: • help select or automatically select in the vulnerable software 2v to be protected: - the execution property(s) to monitor, and possibly the algorithmic processing(s) that are prone to being split into instructions which can be remotely executed in the device 6,

- den eller de andelene som er tilbøyelige til å bli modifisert, - the share or shares which are prone to be modified,

- og når prinsippet for beskyttelse med variabel også blir implementert, den eller de variablene som er tilbøyelige til å bli flyttet til enheten 6, - og når prinsippet for beskyttelse ved omnavning også blir implementert, den eller de algoritmiske prosesseringene som er tilbøyelige til å bli delt opp i avhengige funksjoner som kan fjerneksekveres i enheten 6 og i forbindelse med hvilke instruksjonene i triggerkommandoene kan være omnavnet, - og når prinsippet for beskyttelse ved betinget sprang også blir implementert, det eller de betingede sprangene hvis funksjonalitet er tilbøyelig til å bli fjern-utført i enheten 6, • og, eventuelt, hjelpe til å generere beskyttet programvare eller automatisere beskyttelse av programvare. - and when the principle of protection by variable is also implemented, the variable(s) that are prone to be moved to unit 6, - and when the principle of protection by renaming is also implemented, the algorithmic processing(s) that are prone to be divided into dependent functions that can be remotely executed in the device 6 and in connection with which the instructions in the trigger commands can be renamed, - and when the principle of protection by conditional jump is also implemented, the conditional jump(s) whose functionality is prone to be remote- performed in the device 6, • and, optionally, help to generate protected software or automate the protection of software.

Disse forskjellige verktøyene kan frembringes eller anvendes uavhengig av hverandre eller i kombinasjon, og hvert verktøy kan være i forskjellige former, så som for eksempel en preprosessor, en assembler, en kompilator, etc. These different tools can be produced or used independently of each other or in combination, and each tool can take different forms, such as, for example, a preprocessor, an assembler, a compiler, etc.

Før-beskyttelse-delfasen Pi etterfølges av en etter-beskyttelse-delfase P2som avhenger av den sårbare programvaren 2v som skal beskyttes. Denne etter-beskyttelse-delfasen P2omfatter også flere trinn. Det første trinnet, svarende til implementering av prinsippet for beskyttelse ved deteksjon og tvang, er kalt "opprettelsestrinn S21". Under dette trinnet S21benyttes valgene gjort under definisjons trinn Sn. Ved hjelp av nevnte valg, og eventuelt av verktøy frembragt under verk-tøykonstruksjonstrinnet S14, frembringes den beskyttede programvaren 2p ved å: • velge minst en programeksekveringsegenskap å overvåke, blant de programeksekveringsegenskapene som er tilbøyelige til å bli overvåket, • velge minst ett kriterium å rette seg etter for minst én valgt programeksekveringsegenskap, • velge minst én algoritmisk prosessering som, under eksekvering av den sårbare programvaren 2v, anvender minst én operand og gjør det mulig å oppnå minst ett resultat, og i forbindelse med hvilken minst én valgt programeksekveringsegenskap skal overvåkes, • velge minst én andel av kilden for den sårbare programvaren 2vs som inneholder minst én valgt algoritmisk prosessering, • generere kilden for den beskyttede programvaren 2ps fra kilden for den sårbare programvaren 2vs ved å modifisere minst én valgt andel av kilden for den sårbare programvaren 2vs for å oppnå minst én modifisert andel av kilden for den beskyttede programvaren 2ps, idet denne modifikasjonen er slik at: - under eksekvering av den beskyttede programvaren 2p, en første eksekveringsdel 2pes kjører i databehandlingssystemet 3 og en andre eksekveringsdel 2peu kjører i en enhet 6, oppnådd fra blankenheten 60 etter opplasting av informasjon, - den andre eksekveringsdelen 2peu i hvert fall utfører funksjonaliteten til minst én valgt algoritmisk prosessering, - og under eksekvering av den beskyttede programvaren 2p, minst én valgt eksekveringsegenskap overvåkes ved hjelp av den andre eksekveringsdelen 2peu, og det faktum at et kriterium ikke overholdes fører til en endring av virkemåten til den beskyttede programvaren 2p, The pre-protection sub-phase Pi is followed by a post-protection sub-phase P2 which depends on the vulnerable software 2v to be protected. This post-protection sub-phase P2 also includes several steps. The first step, corresponding to the implementation of the principle of protection by detection and coercion, is called "creation step S21". During this step S21, the choices made during definition step Sn are used. By means of said selection, and optionally by tools produced during the tool construction step S14, the protected software 2p is produced by: • choosing at least one program execution property to monitor, among the program execution properties that are prone to be monitored, • choosing at least one criterion to conforming to at least one selected program execution characteristic, • selecting at least one algorithmic processing which, during execution of the vulnerable software 2v, uses at least one operand and makes it possible to obtain at least one result, and in connection with which at least one selected program execution characteristic is to be monitored , • selecting at least one portion of the source of the vulnerable software 2vs containing at least one selected algorithmic processing, • generating the source of the protected software 2ps from the source of the vulnerable software 2vs by modifying at least one selected portion of the source of the vulnerable software 2vs to obtain at least one modified share of the source for that cloud the protected software 2ps, this modification being such that: - during execution of the protected software 2p, a first execution part 2pes runs in the data processing system 3 and a second execution part 2peu runs in a unit 6, obtained from the blank unit 60 after uploading information, - the the second execution part 2peu at least performs the functionality of at least one selected algorithmic processing, - and during execution of the protected software 2p, at least one selected execution characteristic is monitored by means of the second execution part 2peu, and the fact that a criterion is not met leads to a change of the operation of the protected software 2p,

• og generere: • and generate:

- en første objektdel 2pos av den beskyttede programvaren 2p fra kilden for den beskyttede programvaren 2ps, idet nevnte første objektdel 2pos er slik at det under eksekvering av den beskyttede programvaren 2p fremkommer en første eksekveringsdel 2pes som blir eksekvert i data behandlingssystemet 3 og av hvilken i hvert fall en andel tar hensyn til at minst én valgt programeksekveringsegenskap overvåkes, - a first object part 2pos of the protected software 2p from the source of the protected software 2ps, said first object part 2pos being such that during execution of the protected software 2p a first execution part 2pes appears which is executed in the data processing system 3 and of which in at least one proportion takes into account that at least one selected program execution property is monitored,

- og en andre objektdel 2pou av den beskyttede programvaren 2p som inneholder eksploateringsmiddelet som implementerer deteksjonsanordningen 17 og tvangsanordningen 18, idet nevnte andre objektdel 2pou er slik at, etter oplasting til blankenheten 60 og under eksekvering av den beskyttede programvaren 2p, den andre eksekveringsdelen 2peu fremkommer, ved hjelp av hvilken minst én valgt programeksekveringsegenskap overvåkes og ved hjelp av hvilken det faktum at et kriterium ikke overholdes fører til en endring av virkemåten til den beskyttede programvaren 2p. - and a second object part 2pou of the protected software 2p which contains the exploitation means implementing the detection device 17 and the coercion device 18, said second object part 2pou being such that, after uploading to the blank unit 60 and during execution of the protected software 2p, the second execution part 2peu appears , by means of which at least one selected program execution characteristic is monitored and by means of which the fact that a criterion is not met leads to a change in the behavior of the protected software 2p.

Selvfølgelig kan prinsippet for beskyttelse ved deteksjon og tvang ifølge oppfinnelsen anvendes direkte under utvikling av ny programvare uten at det er nød-vendig å først frembringe en sårbar programvare 2v. På denne måten oppnås en beskyttet programvare 2p direkte. Of course, the principle of protection by detection and coercion according to the invention can be applied directly during the development of new software without it being necessary to first produce a vulnerable software 2v. In this way, a protected software 2p is obtained directly.

For implementering av prinsippet for beskyttelse ved deteksjon og tvang med bruk som egenskap en målevariabel for programeksekveringen, blir den beskyttede programvaren 2p modifisert ved å: • velge som programeksekveringsegenskap å overvåke, minst én variabel som måler bruken av minst én funksjonalitet i en programvare, For the implementation of the principle of protection by detection and coercion using as a property a measurement variable for the program execution, the protected software 2p is modified by: • choosing as a program execution property to monitor, at least one variable that measures the use of at least one functionality in a software,

• velge: • choose:

- minst én funksjonalitet i den beskyttede programvaren 2p hvis bruk er til-bøyelig til å bli overvåket ved anvendelse av en målevariabel, - minst én målevariabel anvendt for å kvantifisere bruken av nevnte funksjonalitet, - minst én terskel assosiert med en valgt målevariabel svarende til en begrensning på bruk av nevnte funksjonalitet, - og minst én metode for å oppdatere en valgt målevariabel avhengig av bruken av nevnte funksjonalitet, • og modifisere minst én valgt andel av kilden for den beskyttede programvaren 2ps, idet denne modifikasjonen er slik at, under eksekvering av den beskyttede programvaren 2p, målevariabelen blir oppdatert ved hjelp av den - at least one functionality in the protected software 2p whose use is likely to be monitored using a measurement variable, - at least one measurement variable used to quantify the use of said functionality, - at least one threshold associated with a selected measurement variable corresponding to a restriction on the use of said functionality, - and at least one method for updating a selected measurement variable depending on the use of said functionality, • and modifying at least one selected portion of the source of the protected software 2ps, this modification being such that, during execution of the protected software 2p, the measurement variable is updated using it

andre eksekveringsdelen 2peu avhengig av bruken av nevnte funksjonalitet, og at kryssing av minst én terskel tas hensyn til. second execution part 2peu depending on the use of said functionality, and that the crossing of at least one threshold is taken into account.

For implementering av en første foretrukket alternativ utførelsesform av prinsippet for beskyttelse ved deteksjon og tvang med bruk av, som egenskap, en målevariabel, blir den beskyttede programvaren 2p modifisert ved å: velge, i kilden for den beskyttede programvaren 2ps, minst én valgt måle variabel med hvilken det må assosieres flere terskeler svarende til forskjellige begrensninger på bruk av funksjonaliteten, For the implementation of a first preferred alternative embodiment of the principle of protection by detection and coercion using, as a characteristic, a measurement variable, the protected software 2p is modified by: selecting, in the source of the protected software 2ps, at least one selected measurement variable with which several thresholds must be associated corresponding to different restrictions on the use of the functionality,

velge minst to terskeler assosiert med den valgte målevariabelen, select at least two thresholds associated with the selected measurement variable,

og modifisere minst én valgt andel av kilden for den beskyttede programvaren 2ps, idet denne modifiseringen er slik at, under eksekvering av den beskyttede programvaren 2p, kryssing av de forskjellige terskelene tas hensyn til på forskjellig måte, ved hjelp av den andre eksekveringsdelen 2peu. and modifying at least one selected part of the source of the protected software 2ps, this modification being such that, during execution of the protected software 2p, crossing of the different thresholds is taken into account in a different way, by means of the second execution part 2peu.

For implementering av en andre foretrukket alternativ utførelsesform av prinsippet for beskyttelse ved deteksjon og tvang med bruk av, som egenskap, en målevariabel, blir den beskyttede programvaren 2p modifisert ved å: • velge, i kilden for den beskyttede programvaren 2ps, minst én valgt målevariabel som gjør det mulig å begrense bruken av en funksjonalitet og som må være i stand til å bli kreditert med minst én ytterligere bruk, • og modifisere minst én valgt andel, idet denne modifikasjonen er slik at under en fase kalt refill-fase, minst én ytterligere bruk av minst én funksjonalitet svarende til en valgt målevariabel kan bli kreditert. For the implementation of a second preferred alternative embodiment of the principle of protection by detection and coercion using, as a characteristic, a measurement variable, the protected software 2p is modified by: • selecting, in the source of the protected software 2ps, at least one selected measurement variable which makes it possible to limit the use of a functionality and which must be able to be credited with at least one further use, • and modify at least one selected share, this modification being such that during a phase called the refill phase, at least one additional use of at least one functionality corresponding to a selected measurement variable can be credited.

For implementering av prinsippet for beskyttelse ved deteksjon og tvang med bruk av, som egenskap, en programbruksprofil, blir den beskyttede programvaren 2p modifisert ved å: • velge som programeksekveringsegenskap å overvåke, en programbruksprofil, • velge minst én programeksekveringsegenskap som minst ett valgt bruksprofil må overholde, • og modifisere minst én valgt andel av kilden for den beskyttede programvaren 2ps, idet denne modifikasjonen er slik at, under eksekvering av den beskyttede programvaren 2p, den andre eksekveringsdelen 2peu overholder alle de valgte programeksekveringsegenskaper. For the implementation of the principle of protection by detection and coercion using, as a property, a program usage profile, the protected software 2p is modified by: • selecting as a program execution property to monitor, a program usage profile, • selecting at least one program execution property that at least one selected usage profile must conforming, • and modifying at least one selected portion of the source of the protected software 2ps, this modification being such that, during execution of the protected software 2p, the second execution portion 2peu conforms to all of the selected program execution properties.

For implementering av prinsippet for beskyttelse ved deteksjon og tvang med bruk av, som eksekveringsegenskap å overholde, overvåking av eksekveringskjedingen, blir den beskyttede programvaren 2p modifisert ved å: modifisere minst én valgt andel av kilden for den beskyttede programvaren 2ps, idet denne modifikasjonen er slik at: - minst én valgt algoritmisk prosessering deles opp på en slik måte at under eksekvering av den beskyttede programvaren 2p, nevnte algoritmiske prosessering utføres ved hjelp av den andre eksekveringsdelen 2peu, med bruk av instruksjoner, - for minst én valgt algoritmisk prosessering, instruksjonskommandoer integreres i kilden for den beskyttede programvaren 2ps på en slik måte at under eksekvering av den beskyttede programvaren 2p, hver instruksjonskommando blir eksekvert av den første eksekveringsdelen 2pes og trigger, i enheten 6, eksekvering, ved hjelp av den andre eksekveringsdelen 2peu, av en instruksjon, - en sekvens av instruksjonskommandoene velges fra det settet av sekvenser som muliggjør eksekvering av den beskyttede programvaren 2p, - og den kjedingen som i hvert fall noen av instruksjonene må følge under sin eksekvering i enheten 6 spesifiseres. For the implementation of the principle of protection by detection and coercion using, as an execution property to comply with, the monitoring of the execution chain, the protected software 2p is modified by: modifying at least one selected part of the source of the protected software 2ps, this modification being such that: - at least one selected algorithmic processing is divided in such a way that during execution of the protected software 2p, said algorithmic processing is carried out by means of the second execution part 2peu, using instructions, - for at least one selected algorithmic processing, instruction commands are integrated into the source of the protected software 2ps in such a way that during execution of the protected software 2p, each instruction command is executed by the first execution part 2pes and triggers, in the unit 6, execution, by means of the second the execution part 2peu, of an instruction, - a sequence of the instruction commands is selected from the set of sequences that enable the execution of the protected software 2p, - and the chain that at least some of the instructions must follow during their execution in the unit 6 is specified.

Under etter-beskyttelse-delfasen P2, og når minst ett annet beskyttelsesprinsipp blir anvendt i tillegg til prinsippet for beskyttelse ved deteksjon og tvang, utføres et "modifikasjonstrinn 822"- Under dette trinnet S22anvendes definisjonene frembragt under definisjonstrinnet Sn. Ved hjelp av nevnte definisjoner, og eventuelt av verktøy frembragt under verktøykonstruksjonstrinnet S14, blir den beskyttede programvaren 2p modifisert for å muliggjøre implementering av beskyttelsesprinsippene i henhold til ett av arrangementene definert over. During the post-protection sub-phase P2, and when at least one other protection principle is applied in addition to the principle of protection by detection and coercion, a "modification step 822" is performed - During this step S22, the definitions produced during the definition step Sn are used. By means of said definitions, and optionally by tools produced during the tool construction step S14, the protected software 2p is modified to enable the implementation of the protection principles according to one of the arrangements defined above.

Når prinsippet for beskyttelse med variabel implementeres, blir den beskyttede programvaren 2p modifisert ved å: velge minst én variabel, anvendt i minst én valgt algoritmisk prosessering, som under eksekvering av den beskyttede programvaren 2p delvis definerer tilstanden til den beskyttede programvaren 2p, • modifisere minst én valgt andel av kilden for den beskyttede programvaren 2ps, idet denne modifikasjonen er slik at under eksekvering av den beskyttede programvaren 2p, minst én valgt variabel eller minst én kopi av en valgt variabel befinner seg i enheten 6, When the principle of protection by variable is implemented, the protected software 2p is modified by: selecting at least one variable, used in at least one selected algorithmic processing, which during execution of the protected software 2p partially defines the state of the protected software 2p, • modify at least one selected part of the source of the protected software 2ps, this modification being such that during the execution of the protected software 2p, at least one selected variable or at least one copy of a selected variable is located in unit 6,

• og generere: • and generate:

- den første objektdelen 2pos av den beskyttede programvaren 2p, idet nevnte første objektdel 2pos er slik at under eksekvering av den beskyttede programvaren 2p, minst én andel av den første eksekveringsdelen 2pes også tar hensyn til at minst én variabel eller minst én kopi av en variabel befinner seg i enheten 6, - og den andre objektdelen 2pou av den beskyttede programvaren 2p, idet nevnte andre objektdel 2pou er slik at, etter opplasting til enheten 6 og under eksekvering av den beskyttede programvaren 2p, den andre eksekveringsdelen 2peu fremkommer, ved hjelp av hvilken minst én valgt variabel eller minst én kopi av en valgt variabel også befinner seg i enheten 6. - the first object part 2pos of the protected software 2p, said first object part 2pos being such that during execution of the protected software 2p, at least one part of the first execution part 2pes also takes into account that at least one variable or at least one copy of a variable is located in the device 6, - and the second object part 2pou of the protected software 2p, said second object part 2pou being such that, after uploading to the device 6 and during execution of the protected software 2p, the second execution part 2peu appears, by means of which at least one selected variable or at least one copy of a selected variable is also located in unit 6.

Når prinsippet for beskyttelse ved omnavning implementeres, blir den beskyttede programvaren 2p modifisert ved å: velge, i kilden for den beskyttede programvaren 2ps, triggerkommandoer, modifisere minst én valgt andel av kilden for den beskyttede programvaren 2ps ved å omnavne instruksjonene i de valgte triggerkommandoene for å skjule identiteten til de motsvarende avhengige funksjonene, When the principle of protection by renaming is implemented, the protected software 2p is modified by: selecting, in the source of the protected software 2ps, trigger commands, modifying at least one selected part of the source of the protected software 2ps by renaming the instructions in the selected trigger commands to hide the identity of the corresponding dependent functions,

og generere: and generate:

- den første objektdelen 2pos av den beskyttede programvaren 2p, idet nevnte første objektdel 2pos er slik at under eksekvering av den beskyttede programvaren 2p, triggerkommandoene med omnavnede instruksjoner blir eksekvert, - og den andre objektdelen 2pou av den beskyttede programvaren 2p som inneholder eksploateringsmiddelet som også implementerer tilbake-føringsanordningen 20, idet nevnte andre objektdel 2pou er slik at, etter opplasting til enheten 6 og under eksekvering av den beskyttede - the first object part 2pos of the protected software 2p, said first object part 2pos being such that during execution of the protected software 2p, the trigger commands with renamed instructions are executed, - and the second object part 2pou of the protected software 2p which contains the exploitation means which also implements the feedback device 20, the said second object part 2pou being such that, after uploading to the unit 6 and during execution of the protected

programvaren 2p, identiteten til de avhengige funksjoner hvis eksekvering trigges av den første eksekveringsdelen 2pos blir gjenopprettet ved hjelp the software 2p, the identity of the dependent functions whose execution is triggered by the first execution part 2pos is recovered using

av den andre eksekveringsdelen 2peu, og de avhengige funksjonene blir eksekvert ved hjelp av den andre eksekveringsdelen 2peu. of the second execution part 2peu, and the dependent functions are executed by means of the second execution part 2peu.

For implementering av en variant av prinsippet for beskyttelse ved omnavning, blir den beskyttede programvaren 2p modifisert ved å: • velge, i kilden for den beskyttede programvaren 2ps, minst én triggerkommando med omnavnet instruksjon, • og modifisere minst én valgt andel av kilden for den beskyttede programvaren 2ps ved å erstatte i hvert fall den omnavnede instruksjonen til én valgt triggerkommando med omnavnet instruksjon med en annen omnavnet instruksjon, som trigger en avhengig funksjon fra den samme familien. For the implementation of a variant of the principle of protection by renaming, the protected software 2p is modified by: • selecting, in the source of the protected software 2ps, at least one trigger command with the renamed instruction, • and modifying at least one selected portion of the source for the protected the software 2ps by replacing at least the renamed instruction of one selected trigger command with the renamed instruction with another renamed instruction, which triggers a dependent function from the same family.

Når prinsippet for beskyttelse ved betinget sprang implementeres, blir den beskyttede programvaren 2p modifisert ved å: • velge, i kilden for den beskyttede programvaren 2ps, minst et betinget sprang som blir utført i minst én valgt algoritmisk prosessering, • modifisere minst én valgt andel av kilden for den beskyttede programvaren 2ps, idet denne modifikasjonen er slik at, under eksekvering av den beskyttede programvaren 2p, funksjonaliteten i minst ett valgt betinget sprang blir eksekvert, ved hjelp av den andre eksekveringsdelen 2peu, i enheten 6, When the principle of protection by conditional jump is implemented, the protected software 2p is modified by: • selecting, in the source of the protected software 2ps, at least one conditional jump that is performed in at least one selected algorithmic processing, • modifying at least one selected portion of the source of the protected software 2ps, this modification being such that, during the execution of the protected software 2p, the functionality of at least one selected conditional jump is executed, by means of the second execution part 2peu, in the unit 6,

• og generere: • and generate:

- den første objektdelen 2pos av den beskyttede programvaren 2p, idet nevnte første objektdel 2pos er slik at under eksekvering av den beskyttede programvaren 2p, funksjonaliteten til minst ett valgt betinget sprang blir eksekvert i enheten 6, - og den andre objektdelen 2pou av den beskyttede programvaren 2p, idet nevnte andre objektdel 2pou er slik at, etter opplasting til enheten 6 og under eksekvering av den beskyttede programvaren 2p, den andre eksekveringsdelen 2peu fremkommer, ved hjelp av hvilken funksjonaliteten i minst ett valgt betinget sprang blir eksekvert. - the first object part 2pos of the protected software 2p, said first object part 2pos being such that during execution of the protected software 2p, the functionality of at least one selected conditional jump is executed in the unit 6, - and the second object part 2pou of the protected software 2p, in that said second object part 2pou is such that, after uploading to the device 6 and during execution of the protected software 2p, the second execution part 2peu appears, by means of which the functionality in at least one selected conditional jump is executed.

For implementering av en foretrukket utførelsesform av prinsippet for beskyttelse ved betinget sprang, blir den beskyttede programvaren 2p modifisert ved å: velge, i kilden for den beskyttede programvaren 2ps, minst én serie av valgte betingede sprang, • modifisere minst én valgt andel av kilden for den beskyttede programvaren 2ps, idet denne modifikasjonen er slik at under eksekvering av den beskyttede programvaren 2p, den samlede funksjonaliteten i minst én valgt serie av betingede sprang blir eksekvert, ved hjelp av den andre eksekveringsdelen 2peu, i enheten 6, For the implementation of a preferred embodiment of the principle of conditional jump protection, the protected software 2p is modified by: selecting, in the source of the protected software 2ps, at least one series of selected conditional jumps, • modifying at least one selected portion of the source of the protected software 2ps, this modification being such that during execution of the protected software 2p, the overall functionality of at least one selected series of conditional jumps is executed, by means of the other the execution part 2peu, in the unit 6,

• og generere: • and generate:

- den første objektdelen 2pos av den beskyttede programvaren 2p, idet nevnte første objektdel 2pos er slik at, under eksekvering av den beskyttede programvaren 2p, funksjonaliteten i minst én valgt serie av betingede sprang blir eksekvert i enheten 6, - og den andre objektdelen 2pou av den beskyttede programvaren 2p, idet nevnte andre objektdel 2pou er slik at, etter opplasting til enheten 6 og under eksekvering av den beskyttede programvaren 2p, den andre eksekveringsdelen 2peu fremkommer, ved hjelp av hvilken den samlede funksjonaliteten i minst én valgt serie av betingede sprang blir eksekvert. - the first object part 2pos of the protected software 2p, said first object part 2pos being such that, during execution of the protected software 2p, the functionality in at least one selected series of conditional jumps is executed in the unit 6, - and the second object part 2pou of the protected software 2p, said second object part 2pou being such that, after uploading to the device 6 and during execution of the protected software 2p, the second execution part 2peu appears, by means of which the overall functionality of at least one selected series of conditional jumps becomes exactly.

Selvfølgelig kan beskyttelsesprinsippene ifølge oppfinnelsen anvendes direkte under utvikling av ny programvare uten at det er nødvendig å først frembringe mellomstadier av beskyttet programvare. På denne måten kan opprettelsestrinnet S21og modifiseringstrinnet S22utføres samtidig for direkte å frembringe den beskyttede programvaren 2p. Of course, the protection principles according to the invention can be applied directly during the development of new software without it being necessary to first produce intermediate stages of protected software. In this way, the creation step S21 and the modification step S22 can be performed simultaneously to directly produce the protected software 2p.

Under etter-beskyttelse-delfasen P2, etter opprettelsestrinnet S21for den beskyttede programvaren 2p, og eventuelt etter modifikasjonstrinnet S22, utføres et trinn kalt "kustomiseringstrinn S23". Under dette trinnet S23blir den andre objektdelen 2pou, inneholdende eksploateringsmidlene, lastet opp til minst én blankenhet 60 for det formål å frembringe minst én enhet 6, eller en del av den andre objektdelen 2pou, eventuelt inneholdende eksploateringsmidlene, blir lastet opp til minst én prekustomisert enhet 66 for det formål å frembringe minst én enhet 6. Opp-lastingen av denne kustomiseringsinformasjonen gjør det mulig å gjøre minst én enhet 6 operativ. En skal merke seg at deler av nevnte informasjon, når den er overført til en enhet 6, ikke er direkte aksesserbar utenfor nevnte enhet 6. Over-føringen av kustomiseringsinformasjonen til en blankenhet 60 eller en prekustomisert enhet 66 kan bli utført ved hjelp av en for dette innrettet kustomiseringsenhet, som er beskrevet senere i beskrivelsen i forbindelse med figur 150.1 tilfellet med en enhet 6 som utgjøres av et chipkort 7 og dets leser 8, vedrører prekustomiseringen kun chipkortet 7. During the post-protection sub-phase P2, after the creation step S21 of the protected software 2p, and optionally after the modification step S22, a step called "customization step S23" is performed. During this step S23, the second object part 2pou, containing the exploitation means, is uploaded to at least one blank unit 60 for the purpose of producing at least one unit 6, or a part of the second object part 2pou, possibly containing the exploitation means, is uploaded to at least one pre-customized unit 66 for the purpose of producing at least one unit 6. The uploading of this customization information makes it possible to make at least one unit 6 operational. It should be noted that parts of said information, once it has been transferred to a unit 6, are not directly accessible outside said unit 6. The transfer of the customization information to a blank unit 60 or a pre-customized unit 66 can be carried out by means of a this fitted customization unit, which is described later in the description in connection with figure 150.1 the case of a unit 6 which consists of a chip card 7 and its reader 8, the pre-customization concerns only the chip card 7.

For gjennomføring av beskyttelsesfasen P er forskjellige tekniske innretninger beskrevet mer i detalj i forbindelse med figurene 110, 120, 130, 140 og 150. Figur 110 illustrerer en utførelsesform av et system 25 som muliggjør utførelse av konstruksjonstrinnet S12som tar hensyn til definisjonene frembragt under definisjonstrinnet Sn og under hvilket overføringsanordningene 12, 13, og eventuelt eksploateringsmiddelet tiltenkt for enheten 6, frembringes. Et slikt system 25 omfatter en programutviklingsenhet eller arbeidsstasjon som tradisjonelt er i form av en datamaskin som omfatter en systemenhet, en skjermenhet, periferien hete r, så som tastatur og mus, og som blant annet omfatter følgende programmer: fil-editorer, assemblere, preprosessorer, kompilatorer, interpreteringsanordninger, debuggere og link-editorer. Figur 120 illustrerer en utførelsesform av en prekustomiseringsenhet 30 som gjør det mulig å laste opp i hvert fall delvis overføringsanordningen 13 og/eller eksploateringsmiddelet til minst én blankenhet 60 for det formål å oppnå en prekustomisert enhet 66. Nevnte prekustomiseringsenhet 30 omfatter en lese- og skriveanordning 31 som gjør det mulig elektrisk å prekustomisere en blankenhet 60 for å oppnå en prekustomisert enhet 66 til hvilken overføringsanordningen 13 og/eller eksploateringsmiddelet har blitt lastet. Prekustomiseringsenheten 30 kan også omfatte en fysisk kustomiseringsanordning 32 for blankenheten 60, som for eksempel kan være i form av en skriver. I tilfellet hvor enheten 6 utgjøres av et chipkort 7 og dets leser 8, vedrører prekustomiseringen i alminnelighet kun chipkortet 7. Figur 130 illustrerer en utførelsesform av et system 35 som muliggjør tilveie-bringelse av verktøyene som kan hjelpe til med å generere beskyttet programvare eller å automatisere programbeskyttelse. Et slikt system 35 omfatter en programutviklingsenhet eller arbeidsstasjon som tradisjonelt er i form av en datamaskin som omfatter en systemenhet, en skjermenhet, periferienheter, så som tastatur og mus, og som blant annet omfatter følgende programmer: fil-editorer, assemblere, preprosessorer, kompilatorer, interpreteringsanordninger, debuggere og link-editorer. Figur 140 illustrerer en utførelsesform av et system 40 som gjør det mulig direkte å generere en beskyttet programvare 2p eller å modifisere en sårbar programvare 2v for det formål å frembringe en beskyttet programvare 2p. Et slikt For carrying out the protection phase P, various technical devices are described in more detail in connection with figures 110, 120, 130, 140 and 150. Figure 110 illustrates an embodiment of a system 25 which enables the execution of the construction step S12 which takes into account the definitions produced during the definition step Sn and during which the transfer devices 12, 13, and possibly the exploitation means intended for the unit 6, are produced. Such a system 25 comprises a program development unit or workstation which is traditionally in the form of a computer which comprises a system unit, a display unit, peripherals such as a keyboard and mouse, and which includes the following programs: file editors, assemblers, preprocessors , compilers, interpreters, debuggers and link editors. Figure 120 illustrates an embodiment of a pre-customization unit 30 which makes it possible to upload at least partially the transfer device 13 and/or the exploitation means to at least one blank unit 60 for the purpose of obtaining a pre-customized unit 66. Said pre-customization unit 30 comprises a reading and writing device 31 which makes it possible to electrically precustomize a blank unit 60 to obtain a precustomized unit 66 into which the transfer device 13 and/or the exploitation means have been loaded. The pre-customization unit 30 can also comprise a physical customization device 32 for the blank unit 60, which can for example be in the form of a printer. In the case where the device 6 is constituted by a chip card 7 and its reader 8, the pre-customization generally concerns only the chip card 7. Figure 130 illustrates an embodiment of a system 35 that enables the provision of the tools that can help to generate protected software or to automate program protection. Such a system 35 comprises a program development unit or workstation which is traditionally in the form of a computer which comprises a system unit, a display unit, peripheral units, such as a keyboard and mouse, and which includes, among other things, the following programs: file editors, assemblers, preprocessors, compilers , interpreters, debuggers and link editors. Figure 140 illustrates an embodiment of a system 40 which makes it possible to directly generate a protected software 2p or to modify a vulnerable software 2v for the purpose of generating a protected software 2p. Such a thing

system 40 omfatter en programutviklingsenhet eller arbeidsstasjon som tradisjonelt er i form av en datamaskin som omfatter en systemenhet, en skjermenhet, periferienheter, så som tastatur og mus, og som blant annet omfatter følgende programmer: fil-editorer, assemblere, preprosessorer, kompilatorer, interpreteringsanordninger, debuggere og link-editorer, så vel som verktøy som kan bidra til å generere beskyttet programvare eller å automatisere programbeskyttelse. system 40 comprises a program development unit or workstation which is traditionally in the form of a computer which comprises a system unit, a display unit, peripheral units, such as a keyboard and mouse, and which includes, among other things, the following programs: file editors, assemblers, preprocessors, compilers, interpretation devices , debuggers and link editors, as well as tools that can help generate protected software or automate program protection.

Figur 150 illustrerer en utførelsesform av en kustomiseringsenhet 45 som gjør det mulig å laste opp den andre objektdelen 2pou til minst én blankenhet 60 for det formål å frembringe minst én enhet 6 eller å laste opp en del av den andre objektdelen 2pou til minst én prekustomisert enhet 66 for det formål å frembringe minst én enhet 6. Nevnte kustomiseringsenhet 45 omfatter en lese- og skriveanordning 46 som gjør det mulig elektrisk å kustomisere minst én blankenhet 60 eller minst én prekustomisert enhet 66 for å frembringe minst én enhet 6. Når denne kustomiseringen er fullendt, omfatter en enhet 6 den informasjonen som er nødvendig for eksekvering av den beskyttede programvaren 2p. Kustomiseringsenheten 45 kan også omfatte en fysisk kustomiseringsanordning 47 for minst én enhet 6, som for eksempel kan være i form av en skriver. I tilfellet hvor en enhet 6 utgjøres av et chipkort 7 og dets leser 8, vedrører kustomiseringen i alminnelighet kun chipkortet 7. Figure 150 illustrates an embodiment of a customization unit 45 which makes it possible to upload the second object part 2pou to at least one blank unit 60 for the purpose of producing at least one unit 6 or to upload a part of the second object part 2pou to at least one pre-customized unit 66 for the purpose of producing at least one unit 6. Said customization unit 45 comprises a reading and writing device 46 which makes it possible to electrically customize at least one blank unit 60 or at least one pre-customized unit 66 to produce at least one unit 6. When this customization is completed, a device 6 includes the information necessary for the execution of the protected software 2p. The customization unit 45 can also comprise a physical customization device 47 for at least one unit 6, which can for example be in the form of a printer. In the case where a unit 6 consists of a chip card 7 and its reader 8, the customization generally only concerns the chip card 7.

Beskyttelsesprosessen ifølge oppfinnelsen bli utført med følgende forbedringer: • Det kan planlegges å anvende i fellesskap flere prosesserings- og minneenheter mellom hvilke den andre objektdelen 2pou av den beskyttede programvaren 2p distribueres, slik at samtidig bruk av disse muliggjør eksekvering av den beskyttede programvaren 2p og fravær av minst én av nevnte prosesserings- og minneenheter hindrer bruk av den beskyttede programvaren 2p. • På samme måte, etter prekustomiseringstrinnet S13og under kustomi-seringstrinnet S23, kan den delen av den andre objektdelen 2pou som er nødvendig for å konvertere den prekustomiserte enheten 66 til en enhet 6 være inneholdt i en prosesserings- og minneenhet anvendt av kustomiseringsenheten 45 for å begrense tilgangen til nevnte del av den andre objektdelen 2pou. Selvfølgelig kan nevnte del av den andre objektdelen 2pou distribueres mellom flere prosesserings- og minneenheter, slik at nevnte del av den andre objektdelen 2pou er aksesserbar kun under samtidig bruk av nevnte prosesserings- og minneenheter. The protection process according to the invention be carried out with the following improvements: • It can be planned to jointly use several processing and memory units between which the second object part 2pou of the protected software 2p is distributed, so that their simultaneous use enables the execution of the protected software 2p and absence of at least one of said processing and memory units prevents use of the protected software 2p. • Similarly, after the pre-customization step S13 and during the customization step S23, the part of the second object part 2pou which is necessary to convert the pre-customized unit 66 into a unit 6 may be contained in a processing and memory unit used by the customization unit 45 to restrict access to said part of the second object part 2pou. Of course, said part of the second object part 2pou can be distributed between several processing and memory units, so that said part of the second object part 2pou is accessible only during the simultaneous use of said processing and memory units.

Claims (21)

1. Fremgangsmåte for å beskytte, ved anvendelse av minst én blankenhet (60) som i hvert fall omfatteren minneanordning (15) og en prosesseringsanordning (16), en sårbar programvare (2v) mot uautorisert bruk av den, idet nevnte sårbare programvare (2v) kjører i et databehandlingssystem (3), hvor fremgangsmåten omfatter trinn med å: under en beskyttelsesfase (P): • definere: - minst én programeksekveringsegenskap som er tilbøyelig til å bli overvåket i hvert fall delvis i en enhet (6), - minst ett kriterium å rette seg etter for minst én programeksekveringsegenskap, - en deteksjonsanordning (17) for implementering i en enhet (6), som gjør det mulig å detektere at minst én programeksekveringsegenskap ikke overholder minst ett assosiert kriterium, - og en tvangsanordning (18) for implementering i en enhet (6), som gjør det mulig å informere databehandlingssystemet (3) og/eller endre virkemåten til en programvare når minst ett kriterium ikke overholdes, • frembringe eksploateringsmidler som gjør det mulig å transformere blankenheten (60) til en enhet (6) som er i stand til å implementere deteksjonsanordningen (17) og tvangsanordningen (18), • og generere en beskyttet programvare (2p) ved å: - velge minst én programeksekveringsegenskap å overvåke blant de programeksekveringsegenskapene som er tilbøyelige til å bli overvåket, - velge minst ett kriterium å rette seg etter for minst én valgt programeksekveringsegenskap, - velge minst én algoritmisk prosessering som, under eksekvering av den sårbare programvaren (2v), anvender minst én operand og gjør det mulig å oppnå minst ett resultat, og i forbindelse med hvilken minst én valgt programeksekveringsegenskap skal overvåkes, - velge minst én andel av kilden for den sårbare programvaren (2vs) som inneholder minst én valgt algoritmisk prosessering, - generere kilden for den beskyttede programvaren (2ps) fra kilden for den sårbare programvaren (2vs) ved å modifisere minst én valgt andel av kilden for den sårbare programvaren (2vs) for å frembringe minst én modifisert andel av kilden for den beskyttede programvaren (2ps), idet denne modifikasjonen er slik at: > under eksekvering av den beskyttede programvaren (2p), en første eksekveringsdel (2pes) kjører i databehandlingssystemet (3) og en andre eksekveringsdel (2peu) kjører i en enhet (6), oppnådd fra blankenheten (60) etter opplasting av informasjon, > den andre eksekveringsdelen (2peu) utfører i hvert fall funksjonaliteten til minst én valgt algoritmisk prosessering, > og under eksekvering av den beskyttede programvaren (2p), minst én valgt programeksekveringsegenskap overvåkes ved hjelp av den andre eksekveringsdelen (2peu), og det faktum at et kriterium ikke overholdes fører til en endring av virkemåten til den beskyttede programvaren (2p), - og generere: > en første objektdel (2pos) av den beskyttede programvaren (2p) fra kilden for den beskyttede programvaren (2ps), idet nevnte første objektdel (2pos) er slik at under eksekvering av den beskyttede programvaren (2p), en første eksekveringsdel (2pes) fremkommer, som blir eksekvert i databehandlingssystemet (3) og av hvilken i hvert fall en andel tar hensyn til at minst én valgt programeksekveringsegenskap overvåkes, > og en andre objektdel (2pou) av den beskyttede programvaren (2p), som inneholder eksploateringsmidlene som implementerer deteksjonsanordningen (17) og tvangsanordningen (18), idet nevnte andre objektdel (2pou) er slik at, etter opplasting til blankenheten (60) og under eksekvering av den beskyttede programvaren (2p), den andre eksekveringsdelen (2peu) fremkommer, ved hjelp av hvilken minst én valgt programeksekveringsegenskap overvåkes og ved hjelp av hvilken det faktum at et kriterium ikke overholdes fører til en endring av virkemåten til den beskyttede programvaren (2p), og laste opp den andre objektdelen (2pou) til blankenheten (60), for det for mål å frembringe enheten (6), og under en bruksfase (U) under hvilken den beskyttede programvaren (2p) blir eksekvert: • i nærvær av enheten (6), og: - så lenge alle kriterier svarende til alle de overvåkede eksekveringsegenskapene til alle de modifiserte andelene av den beskyttede programvaren (2p) overholdes, gjøre at nevnte andeler av den beskyttede programvaren (2p) kan fungere nominelt og følgelig at den beskyttede programvaren (2p) kan fungere nominelt, - dersom minst ett av kriteriene svarende til en overvåket eksekveringsegenskap ved en andel av den beskyttede programvaren (2p) ikke overholdes, informere databehandlingssystemet (3) om dette og/eller endre virkemåten til andelen av den beskyttede programvaren (2p), slik at virkemåten til den beskyttede programvaren (2p) endres, • og i fravær av enheten (6), til tross for forespørselen fra en andel av den første eksekveringsdelen (2pes) om å trigge utførelse, i enheten (6), av funksjonaliteten til minst én valgt algoritmisk prosessering, ikke være i stand til å etterkomme nevnte forespørsel på korrekt måte, slik at i hvert fall nevnte andel ikke eksekveres korrekt og at følgelig den beskyttede programvaren (2p) ikke er fullstendig funksjonell.1. Method for protecting, by using at least one blank unit (60) which at least includes a memory device (15) and a processing device (16), a vulnerable software (2v) against unauthorized use of it, said vulnerable software (2v ) runs in a data processing system (3), where the method comprises the steps of: during a protection phase (P): • defining: - at least one program execution property that is prone to be monitored at least partially in a device (6), - at least one criterion to comply with for at least one program execution property, - a detection device (17) for implementation in a device (6), which makes it possible to detect that at least one program execution property does not comply with at least one associated criterion, - and an enforcement device (18) for implementation in a device (6), which makes it possible to inform the data processing system (3) and/or change the behavior of a software when at least one criterion is not observed, • produce means of exploitation which makes it possible to transform the blank device (60) into a device (6) capable of implementing the detection device (17) and the enforcement device (18), • and generating a protected software (2p) by: - choosing at least one program execution property to monitor among the program execution characteristics that are prone to be monitored, - select at least one criterion to comply with for at least one selected program execution characteristic, - select at least one algorithmic processing which, during execution of the vulnerable software (2v), applies at least one operand and makes it possible to achieve at least one result, and in connection with which at least one selected program execution property is to be monitored, - select at least one portion of the source of the vulnerable software (2vs) containing at least one selected algorithmic processing, - generate the source of the protected software (2ps) from the source of the vulnerable software (2vs) by modifying at least one selected portion of the source of the vulnerable software (2v s) to produce at least one modified part of the source for the protected software (2ps), this modification being such that: > during execution of the protected software (2p), a first execution part (2pes) runs in the data processing system (3) and a second execution part (2peu) runs in a unit (6), obtained from the blank unit (60) after uploading information, > the second execution part (2peu) performs at least the functionality of at least one selected algorithmic processing, > and during execution of the the protected software (2p), at least one selected program execution property is monitored by means of the second execution part (2peu), and the fact that a criterion is not met leads to a change in the behavior of the protected software (2p), - and generate: > a first object part (2pos) of the protected software (2p) from the source of the protected software (2ps), said first object part (2pos) being such that during execution of the protected progr the amware (2p), a first execution part (2pes) appears, which is executed in the data processing system (3) and of which at least a part takes into account that at least one selected program execution property is monitored, > and a second object part (2pou) of the protected the software (2p), which contains the exploitation means implementing the detection device (17) and the coercion device (18), said second object part (2pou) being such that, after uploading to the blank unit (60) and during execution of the protected software (2p), the the second execution part (2peu) appears, by means of which at least one selected program execution property is monitored and by means of which the fact that a criterion is not met leads to a change in the behavior of the protected software (2p), and upload the second object part (2pou) to the blank unit (60), for that for aim to produce the device (6), and during a use phase (U) during which the protected software (2p) is executed: • in the presence of the device (6), and: - as long as all criteria corresponding to all the monitored execution characteristics of all the modified parts of the protected software (2p) are complied with, make said parts of the protected software (2p) able to function nominally and consequently that the protected software (2p) can function nominally, - if at least one of the criteria corresponding to a monitored execution property if part of the protected software (2p) is not complied with, inform the data processing system (3) about this and/or change the operation of the part of the protected software (2p), so that the operation of the protected software (2p) is changed, • and in absence of the unit (6), despite the request from a part of the first execution part (2pes) to trigger execution, in the unit (6), of the functionality of at least one selected algorithmic process ssing, not be able to comply with said request in a correct manner, so that in any case said portion is not executed correctly and that consequently the protected software (2p) is not fully functional. 2. Fremgangsmåte ifølge krav 1, for å begrense bruk av en beskyttet programvare (2p), omfattende trinn med å: under beskyttelsesfasen (P): definere: - som programeksekveringsegenskap tilbøyelig til å bli overvåket, en variabel som måler bruken av en funksjonalitet i en programvare, - som kriterium å rette seg etter, minst én terskel assosiert med hver målevariabel, - og en aktualiseringsanordning som gjør det mulig å oppdatere minst én målevariabel, • frembringe eksploateringsmiddelet som gjør det mulig for enheten (6) også å implementere aktualiseringsanordningen, • og modifisere den beskyttede programvaren (2p) ved å: - velge som programeksekveringsegenskap å overvåke, minst én variabel for måling av bruken av minst én funksjonalitet i en programvare, - velge: > minst én funksjonalitet i den beskyttede programvaren (2p) hvis bruk er tilbøyelig til å bli overvåket ved anvendelse av en målevariabel, > minst én målevariabel som anvendes for å kvantifisere bruken av nevnte funksjonalitet, > minst én terskel assosiert med en valgt målevariabel som svarer til en begrensning på bruk av nevnte funksjonalitet, > og minst én metode for å oppdatere en valgt målevariabel avhengig av bruken av nevnte funksjonalitet, - og modifisere minst én valgt andel av kilden for den beskyttede programvaren (2ps), idet denne modifikasjonen er slik at, under eksekvering av den beskyttede programvaren (2p), målevariabelen oppdateres ved hjelp av den andre eksekveringsdelen (2peu) avhengig av bruken av nevnte funksjonalitet, og at minst én terskelkryssing tas hensyn til, og under bruksfasen (U), i nærvær av enheten (6), og dersom minst én kryssing av en terskel som svarer til minst én begrensning på bruk detekteres, informere databehandlingssystemet (3) om dette og/eller endre virkemåten til nevnte andel av den beskyttede programvaren (2p), slik at virkemåten til den beskyttede programvaren (2p) endres.2. Method according to claim 1, for limiting the use of a protected software (2p), comprising the step of: during the protection phase (P): defining: - as program execution characteristic prone to be monitored, a variable that measures the use of a functionality in a software, - as criterion to comply with, at least one threshold associated with each measurement variable, - and an actualization device that makes it possible to update at least one measurement variable, • produce the exploitation means that makes it possible for the device (6) to also implement the actualization device, • and modify the protected software (2p) by: - choosing as a program execution property to monitor, at least one variable for measuring the use of at least one functionality in a software, - choosing: > at least one functionality in the protected software (2p) whose use is likely to be monitored using a measurement variable, > at least one measurement variable used to quantify the use of said functionality , > at least one threshold associated with a selected measurement variable that corresponds to a restriction on the use of said functionality, > and at least one method for updating a selected measurement variable depending on the use of said functionality, - and modifying at least one selected portion of the source for the the protected software (2ps), this modification being such that, during execution of the protected software (2p), the measurement variable is updated by means of the second execution part (2peu) depending on the use of said functionality, and that at least one threshold crossing is taken into account, and during the use phase (U), in the presence of the device (6), and if at least one crossing of a threshold corresponding to at least one restriction on use is detected, inform the data processing system (3) about this and/or change the operation of said part of the the protected software (2p), so that the behavior of the protected software (2p) is changed. 3. Fremgangsmåte ifølge krav 2, omfattende trinn med å: under beskyttelsesfasen (P): • definere: - for minst én målevariabel, flere assosierte terskeler, - og forskjellige tvangsanordninger (18) svarende til hver av nevnte terskeler, • og modifisere den beskyttede programvaren (2p) ved å: - velge, i kilden for den beskyttede programvaren (2ps), minst én valgt målevariabel med hvilken det må assosieres flere terskeler svarende til forskjellige begrensninger på bruk av funksjonaliteten, - velge minst to terskeler assosiert med den valgte målevariabelen, - og modifisere minst én valgt andel av kilden for den beskyttede programvaren (2ps), idet denne modifikasjonen er slik at, under eksekvering av den beskyttede programvaren (2p), kryssingene av de forskjellige terskelene tas hensyn til på forskjellig måte, ved hjelp av den andre eksekveringsdelen (2peu), og under bruksfasen (U): i nærvær av enheten (6): - dersom kryssing av en første terskel detekteres, pålegge den beskyttede programvaren (2p) ikke å anvende den motsvarende funksjonaliteten mer, - og dersom kryssing av en andre terskel detekteres, gjøre uvirksom den motsvarende funksjonaliteten og/eller minst én andel av den beskyttede programvaren (2p).3. Method according to claim 2, comprising steps of: during the protection phase (P): • defining: - for at least one measurement variable, several associated thresholds, - and different forcing devices (18) corresponding to each of said thresholds, • and modifying the protected the software (2p) by: - selecting, in the source of the protected software (2ps), at least one selected measurement variable with which several thresholds must be associated corresponding to different restrictions on the use of the functionality, - selecting at least two thresholds associated with the selected measurement variable , - and modifying at least one selected part of the source of the protected software (2ps), this modification being such that, during the execution of the protected software (2p), the crossings of the different thresholds are taken into account in different ways, by means of the second execution part (2peu), and during the use phase (U): in the presence of the device (6): - if the crossing of a first threshold is detected, impose the protected software (2p) not to use the corresponding functionality any more, - and if crossing a second threshold is detected, disable the corresponding functionality and/or at least one part of the protected software (2p). 4. Fremgangsmåte ifølge krav 2 eller 3, omfattende trinn med å: under beskyttelsesfasen (P): • definere refill-anordninger som gjør det mulig å kreditere minst én programfunksjonalitet som overvåkes av en målevariabel med minst én ytterligere bruk, • frembringe eksploateringsmiddelet som også gjør det mulig for enheten (6) å implementere refill-anordningen, • og modifisere den beskyttede programvaren (2p) ved å: - velge, i kilden for den beskyttede programvaren (2ps), minst én valgt målevariabel som gjør det mulig å begrense bruken av en funksjonalitet og som må være i stand til å bli kreditert minst én ytterligere bruk, - og modifisere minst én valgt andel, idet denne modifikasjonen er slik at under en fase kalt refill-fase, minst én ytterligere bruk av minst én funksjonalitet svarende til en valgt målevariabel kan bli kreditert, og under refill-fasen: oppdatere minst én valgt målevariabel og/eller minst én assosiert terskel for å tillate minst én ytterligere bruk av funksjonaliteten.4. Method according to claim 2 or 3, comprising steps of: during the protection phase (P): • defining refill devices that make it possible to credit at least one program functionality monitored by a measurement variable with at least one further use, • producing the exploitation means which also enables the device (6) to implement the refill device, • and to modify the protected software (2p) by: - choosing, in the source of the protected software (2ps), at least one selected measurement variable that makes it possible to limit its use of a functionality and which must be able to be credited with at least one further use, - and modify at least one selected share, this modification being such that during a phase called the refill phase, at least one further use of at least one functionality corresponding to a selected measurement variable may be credited, and during the refill phase: update at least one selected measurement variable and/or at least one associated threshold for to allow at least one further use of the functionality. 5. Fremgangsmåte ifølge krav 1, omfattende trinn med å: under beskyttelsesfasen (P): • definere: - som programeksekveringsegenskap tilbøyelig til å bli overvåket, en programbruksprofil, - og som kriterium å rette seg etter, minst én programeksekveringsegenskap, • og modifisere den beskyttede programvaren (2p) ved å: - velge som programeksekveringsegenskap å overvåke, minst én programbruksprofil, - velge minst én programeksekveringsegenskap som minst én valgt bruksprofil må følge, - og modifisere minst én valgt andel av kilden for den beskyttede programvaren (2ps), idet denne modifikasjonen er slik at, under eksekvering av den beskyttede programvaren (2p), den andre eksekveringsdelen (2peu) overholder alle de valgte eksekveringsegenskaper, og under bruksfasen (U), i nærvær av enheten (6), og dersom det detekteres at minst én eksekveringsegenskap ikke overholdes, informere databehandlingssystemet (3) om dette og/eller endre virkemåten til andelen av den beskyttede programvaren (2p), slik at virkemåten til den beskyttede programvaren (2p) endres.5. Method according to claim 1, comprising steps of: during the protection phase (P): • defining: - as program execution property prone to be monitored, a program usage profile, - and as criterion to comply with, at least one program execution property, • and modifying it the protected software (2p) by: - choosing as a program execution property to monitor, at least one program usage profile, - choosing at least one program execution property that at least one selected usage profile must follow, - and modifying at least one selected portion of the source of the protected software (2ps), this modification is such that, during execution of the protected software (2p), the second execution part (2peu) complies with all the selected execution characteristics, and during the use phase (U), in the presence of the device (6), and if it is detected that at least one execution property is not observed, inform the data processing system (3) about this and/or change the operation of the portion of the protected software (2p), such that the behavior of the protected software (2p) is changed. 6. Fremgangsmåte ifølge krav 5, omfattende trinn med å: under beskyttelsesfasen (P): definere: - et instruksjonssett hvis instruksjoner er tilbøyelige til å bli eksekvert i enheten (6), - et sett av instruksjonskommandoer for nevnte instruksjonssett, idet nevnte instruksjonskommandoer er tilbøyelige til å bli eksekvert i databehandlingssystemet (3) og til å trigge eksekvering av instruksjonene i enheten (6), - som bruksprofil, kjedingen av instruksjonene, - som eksekveringsegenskap, en forventet kjeding for eksekvering av instruksjonene, - som deteksjonsanordning (17), midler som gjør det mulig å detektere at kjedingen av instruksjonene ikke svarer til den forventede, - og som tvangsanordning (18), midler som gjør det mulig å informere databehandlingssystemet (3) og/eller endre virkemåten til andelen av den beskyttede programvaren (2p) når kjedingen av instruksjonene ikke svarer til den forventede, • frembringe eksploateringsmiddelet som også gjør det mulig for enheten (6) å eksekvere instruksjonene i instruksjonssettet, idet eksekveringen av nevnte instruksjoner trigges av eksekvering, i databehandlingssystemet (3), av instruksjonskommandoene, • og modifisere den beskyttede programvaren (2p) ved å: - modifisere minst én valgt andel av kilden for den beskyttede programvaren (2ps), idet denne modifikasjonen er slik at: > minst én valgt algoritmisk prosessering deles opp på en slik måte at under eksekvering av den beskyttede programvaren (2p), nevnte algoritmiske prosessering blir utført, ved hjelp av den andre eksekveringsdelen (2peu), med bruk av instruksjoner, > for minst én valgt algoritmisk prosessering, instruksjonskommandoer integreres i kilden for den beskyttede programvaren (2p) på en slik måte at under eksekvering av den beskyttede programvaren (2p), hver instruksjonskommando blir eksekvert av den første eksekveringsdelen (2pes) og trigger, i enheten (6), eksekvering, ved hjelp av den andre eksekveringsdelen (2peu), av en instruksjon, > en sekvens av instruksjonskommandoene velges fra det settet av sekvenser som muliggjør eksekvering av den beskyttede programvaren (2p), > og at den kjedingen som i hvert fall noen av instruksjonene må følge under sin eksekvering i enheten (6) spesifiseres, og under bruksfasen (U), i nærvær av enheten (6), dersom det detekteres at kjedingen av instruksjonene som eksekveres i enheten (6) ikke svarer til den for ventede, informere databehandlingssystemet (3) om dette og/eller endre virkemåten til andelen av den beskyttede programvaren (2p), slik at virkemåten til den beskyttede programvaren (2p) endres.6. Method according to claim 5, comprising steps of: during the protection phase (P): defining: - an instruction set whose instructions are likely to be executed in the device (6), - a set of instruction commands for said instruction set, said instruction commands being prone to be executed in the data processing system (3) and to trigger the execution of the instructions in the device (6), - as a usage profile, the chaining of the instructions, - as an execution characteristic, an expected chain for the execution of the instructions, - as a detection device (17), means that make it possible to detect that the chain of instructions does not correspond to the expected one, - and as a coercive device (18), means that make it possible to inform the data processing system (3) and/or change the operation of the part of the protected software (2p) when the chain of instructions does not correspond to the expected one, • produce the means of exploitation which also enable the device (6) to execute the instructions in the instruction set, the execution of said instructions being triggered by the execution, in the data processing system (3), of the instruction commands, • and modifying the protected software (2p) by: - modifying at least one selected part of the source of the protected software (2ps), this modification being such that: > at least one selected algorithmic processing is divided in such a way that during execution of the protected software (2p), said algorithmic processing is performed, by means of the second execution part (2peu), using instructions , > for at least one selected algorithmic processing, instruction commands are integrated into the source of the protected software (2p) in such a way that during execution of the protected software (2p), each instruction command is executed by the first execution part (2pes) and triggers, in the unit (6), execution, by means of the second execution part (2peu), of an instruction, > a sequence of instructions the operation commands are selected from the set of sequences that enable the execution of the protected software (2p), > and that the chain that at least some of the instructions must follow during its execution in the unit (6) is specified, and during the use phase (U), in the presence of the unit (6), if it is detected that the chain of instructions executed in the unit (6) does not correspond to the expected one, inform the data processing system (3 ) about this and/or change the behavior of the portion of the protected software (2p), so that the behavior of the protected software (2p) is changed. 7. Fremgangsmåte ifølge krav 6, omfattende trinn med å: under beskyttelsesfasen (P): definere: - som instruksjonssett, et instruksjonssett i hvilket i hvert fall noen instruksjoner jobber med registre og anvender minst én operand for det formål å returnere et resultat, - for i hvert fall noen av instruksjonene som jobber med registre: > en del (PF) som definerer instruksjonens funksjonalitet, > og en del som definerer den forventede kjedingen for eksekvering av instruksjonene og som omfatter bit-felter svarende til: o et identifikasjonsfelt av instruksjonen (CM), o og for hver operand i instruksjonen: ■ et flagg-felt (CDk), ■ og et forventet identifikasjonsfelt (ClPk) for operanden, - for hvert register tilhørende eksploateringsmiddelet og som anvendes av instruksjonssettet, et generert identifikasjonsfelt (CIGV) i hvilket identiteten til den siste instruksjonen som har returnert sitt resultat til nevnte register automatisk lagres, - som deteksjonsanordning (17), midler som gjør det mulig, under eksekvering av en instruksjon, for hver operand, når flagg-feltet (CDk) pålegger det, å sjekke for likhet mellom det genererte identifikasjonsfeltet (CIGv) svarende til registeret som anvendes av nevnte operand og det forventede identifikasjonsfeltet (ClPk) for opprinnelsen til nevnte operand, - og som tvangsanordning (18), midler som gjør det mulig å modifisere resultatet av instruksjonene dersom minst én av de sjekkede likheter er usann.7. Method according to claim 6, comprising steps of: during the protection phase (P): defining: - as instruction set, an instruction set in which at least some instructions work with registers and use at least one operand for the purpose of returning a result, - for at least some of the instructions that work with registers: > a part (PF) that defines the functionality of the instruction, > and a part that defines the expected chain for executing the instructions and that includes bit fields corresponding to: o an identification field of the instruction (CM), o and for each operand in the instruction: ■ a flag field (CDk), ■ and an expected identification field (ClPk) for the operand, - for each register belonging to the exploitation tool and used by the instruction set, a generated identification field (CIGV) in which the identity of the last instruction that has returned its result to said register is automatically stored, - as detection device (17), means which make it mu lig, during the execution of an instruction, for each operand, when the flag field (CDk) requires it, to check for equality between the generated identification field (CIGv) corresponding to the register used by said operand and the expected identification field (ClPk) of the origin to said operand, - and as a coercive device (18), means which make it possible to modify the result of the instructions if at least one of the checked similarities is false. 8. Fremgangsmåte ifølge ett av kravene 1 til 7, omfattende trinn med å: -» under beskyttelsesfasen (P): modifisere den beskyttede programvaren (2p) ved å: - velge minst én variabel, anvendt i minst én valgt algoritmisk prosessering, som under eksekvering av den beskyttede programvaren (2p) delvis definerer tilstanden til den beskyttede programvaren (2p), - modifisere minst én valgt andel av kilden for den beskyttede programvaren (2ps), idet denne modifikasjonen er slik at under eksekvering av den beskyttede programvaren (2p), minst én valgt variabel eller minst én kopi av en valgt variabel befinner seg i enheten (6), - og generere: > den første objektdelen (2pos) av den beskyttede programvaren (2p), idet nevnte første objektdel (2pos) er slik at under eksekvering av den beskyttede programvaren (2p), minst én andel av den første eksekveringsdelen (2pes) også tar hensyn til at minst én variabel eller minst én kopi av en variabel befinner seg i enheten (6), > og den andre objektdelen (2pou) av den beskyttede programvaren (2p), idet nevnte andre objektdel (2pou) er slik at, etter opplasting til enheten (6) og under eksekvering av den beskyttede programvaren (2p), den andre eksekveringsdelen (2peu) fremkommer, ved hjelp av hvilken minst én valgt variabel, eller minst én kopi av en valgt variabel også befinner seg i enheten (6), og under bruksfasen (U): • i nærvær av enheten (6), hver gang en andel av den første eksekveringsdelen (2pes) pålegger det, anvende en variabel eller en kopi av en variabel som befinner seg i enheten (6) på en slik måte at nevnte andel eksekveres korrekt og at følgelig den beskyttede programvaren (2p) er fullstendig funksjonell, • og i fravær av enheten (6), til tross for forespørselen fra en andel av den første eksekveringsdelen (2pes) om å anvende en variabel eller en kopi av en variabel som befinner seg i enheten (6), ikke være i stand til å etterkomme nevnte forespørsel på korrekt måte, slik at i hvert fall nevnte andel ikke blir eksekvert korrekt og at følgelig den beskyttede programvaren (2p) ikke er fullstendig funksjonell.8. Method according to one of claims 1 to 7, comprising steps of: -» during the protection phase (P): modifying the protected software (2p) by: - selecting at least one variable, used in at least one selected algorithmic processing, as under execution of the protected software (2p) partially defines the state of the protected software (2p), - modifying at least one selected portion of the source of the protected software (2ps), this modification being such that during execution of the protected software (2p) , at least one selected variable or at least one copy of a selected variable is located in the unit (6), - and generate: > the first object part (2pos) of the protected software (2p), said first object part (2pos) being such that during execution of the protected software (2p), at least one part of the first execution part (2pes) also takes into account that at least one variable or at least one copy of a variable is located in the unit (6), > and the second object part (2po u) of the protected software (2p), said second object part (2pou) being such that, after uploading to the device (6) and during execution of the protected software (2p), the second execution part (2peu) appears, by means of which at least one selected variable, or at least one copy of a selected variable is also located in the unit (6), and during the use phase (U): • in the presence of the unit (6), whenever a part of the first execution part (2pes) imposes it, apply a variable or a copy of a variable located in the unit (6) to such way that said part is executed correctly and that consequently the protected software (2p) is fully functional, • and in the absence of the device (6), despite the request from a part of the first execution part (2pes) to use a variable or a copy of a variable located in the unit (6), not be able to comply with said request in a correct manner, so that in any case said portion is not executed correctly and that consequently the protected software (2p) is not fully functional . 9. Fremgangsmåte ifølge krav 6, omfattende trinn med å: under beskyttelsesfasen (P): • definere: - som en triggerkommando, en instruksjonskommando, - som en avhengig funksjon, en instruksjon, - som en instruksjon, minst ett argument for en triggerkommando, svarende i hvert fall delvis til informasjonen som sendes av databehandlingssystemet (3) til enheten (6) for å trigge eksekvering av den motsvarende avhengige funksjonen, - en fremgangsmåte for omnavning av instruksjonene som gjør det mulig å omnavne instruksjonene for å oppnå triggerkommandoer med omnavnede instruksjoner, - og en tilbakeføringsanordning (20) som er innrettet for å bli anvendt i enheten (6) under bruksfasen (U) og som muliggjør gjenoppretting av den avhengige funksjonen å eksekvere fra den omnavnede instruksjonen, • frembringe eksploateringsmidler som gjør det mulig for enheten (6) også å implementere tilbakeføringsanordningen, • og modifisere den beskyttede programvaren (2p) ved å: - velge, i kilden for den beskyttede programvaren (2ps), triggerkommandoer, - modifisere minst én valgt andel av kilden for den beskyttede programvaren (2ps) ved å omnavne instruksjonene i de valgte triggerkommandoene for å skjule identiteten til de motsvarende avhengige funksjonene, - og generere: > den første objektdelen (2pos) av den beskyttede programvaren (2p), idet nevnte første objektdel (2pos) er slik at under eksekvering av den beskyttede programvaren (2p), triggerkommandoene med omnavnet instruksjon blir eksekvert, > og den andre objektdelen (2pou) av den beskyttede programvaren (2p) som inneholder eksploateringsmiddelet som også implementerer tilbakeføringsanordningen (20), idet nevnte andre objektdel (2pou) er slik at, etter opplasting til enheten (6) og under eksekvering av den beskyttede programvaren (2p), identiteten til de avhengige funksjonene hvis eksekvering trigges av den første eksekveringsdelen (2pes) gjenopprettes ved hjelp av den andre eksekveringsdelen (2peu), og de avhengige funksjonene eksekveres ved hjelp av den andre eksekveringsdelen (2peu), og under bruksfasen (U): • i nærvær av enheten (6) og hver gang en triggerkommando med omnavnet instruksjon, inneholdt i en andel av den første eksekveringsdelen (2pes), pålegger det, gjenopprette, i enheten (6), identiteten til den motsvarende avhengige funksjonen og eksekvere den, slik at nevnte andel eksekveres korrekt og at følgelig den beskyttede programvaren (2p) er fullstendig funksjonell, • og i fravær av enheten (6), til tross for forespørselen fra en andel av den første eksekveringsdelen (2pes) om å trigge eksekvering av en avhengig funksjon i enheten (6), ikke være i stand til å etterkomme nevnte forespørsel på korrekt måte, slik at i hvert fall nevnte andel ikke eksekveres korrekt og at følgelig den beskyttede programvaren (2p) ikke er fullstendig funksjonell.9. Method according to claim 6, comprising steps of: during the protection phase (P): • defining: - as a trigger command, an instruction command, - as a dependent function, an instruction, - as an instruction, at least one argument for a trigger command, corresponding at least in part to the information sent by the data processing system (3) to the device (6) to trigger execution of the corresponding dependent function, - a method of renaming the instructions which makes it possible to rename the instructions to obtain trigger commands with renamed instructions , - and a return device (20) which is arranged to be used in the unit (6) during the use phase (U) and which enables the recovery of the dependent function to execute from the renamed instruction, • produce exploitation means which enable the unit ( 6) also implementing the rollback device, • and modifying the protected software (2p) by: - selecting, in the source for the protected the software (2ps), trigger commands, - modify at least one selected part of the source of the protected software (2ps) by renaming the instructions in the selected trigger commands to hide the identity of the corresponding dependent functions, - and generate: > the first object part ( 2pos) of the protected software (2p), said first object part (2pos) being such that during execution of the protected software (2p), the trigger commands with the renamed instruction are executed, > and the second object part (2pou) of the protected software ( 2p) which contains the exploitation means which also implements the return device (20), said second object part (2pou) being such that, after uploading to the device (6) and during execution of the protected software (2p), the identity of the dependent functions whose execution is triggered of the first execution part (2pes) is restored by means of the second execution part (2peu), and the dependent functions execu eres by means of the second execution part (2peu), and during the use phase (U): • in the presence of the unit (6) and every time a trigger command with the renamed instruction, contained in a share of the first execution part (2pes), it imposes, restore, in the entity (6), the identity of the corresponding dependent function and execute it, so that said portion is executed correctly and that consequently the protected software (2p) is fully functional, • and in the absence of the entity (6), despite the request from a part of the first execution part (2pes) to trigger the execution of a dependent function in the unit (6), not be able to comply with said request correctly, so that in any case said part is not executed correctly and that consequently the protected software (2p) is not fully functional. 10. Fremgangsmåte ifølge krav 9, omfattende trinn med å: under beskyttelsesfasen (P): • definere, for minst én avhengig funksjon, en familie av avhengige funksjoner som er algoritmisk ekvivalente, men som trigges av triggerkommandoer hvis omnavnede instruksjoner er forskjellige, • og modifisere den beskyttede programvaren (2p) ved å: - velge, i kilden for den beskyttede programvaren (2ps), minst én triggerkommando med omnavnet instruksjon, - og modifisere minst én valgt andel av kilden for den beskyttede programvaren (2ps) ved å erstatte i hvert fall den omnavnede instruksjonen til én valgt triggerkommando med omnavnet instruksjon med en annen omnavnet instruksjon, som trigger en avhengig funksjon fra den samme familien.10. Method according to claim 9, comprising steps of: during the protection phase (P): • defining, for at least one dependent function, a family of dependent functions which are algorithmically equivalent but which are triggered by trigger commands whose renamed instructions are different, • and modify the protected software (2p) by: - selecting, in the source of the protected software (2ps), at least one trigger command renamed instruction, - and modifying at least one selected part of the source of the protected software (2ps) by replacing in at least the renamed instruction of one selected trigger command with the renamed instruction with another renamed instruction, which triggers a dependent function from the same family. 11. Fremgangsmåte ifølge krav 10, omfattende trinn med å: -» under beskyttelsesfasen (P), definere, for minst én avhengig funksjon, en familie av algoritmisk ekvivalente avhengige funksjoner ved å: - legge til et støyfelt i den informasjonen som definerer den funksjonelle delen av den avhengige funksjonen som skal eksekveres i enheten (6), - eller anvende identifikasjonsfeltet til instruksjonen (ClI) og de forventede identifikasjonsfeltene (ClPk) til operandene.11. Method according to claim 10, comprising the step of: -» during the protection phase (P), defining, for at least one dependent function, a family of algorithmically equivalent dependent functions by: - adding a noise field to the information that defines the functional the part of the dependent function to be executed in the unit (6), - or use the identification field of the instruction (ClI) and the expected identification fields (ClPk) of the operands. 12. Fremgangsmåte ifølge krav 9, 10 eller 11, omfattende trinn med å: under beskyttelsesfasen (P): definere: - som fremgangsmåte for omnavning av instruksjonene, en krypteringsmetode for å kryptere instruksjonene, - og som tilbakeføringsanordning (20), midler som implementerer en dekrypteringsmetode for å dekryptere de omnavnede instruksjonene og således gjenopprette identiteten til de avhengige funksjoner å eksekvere i enheten (6).12. Method according to claim 9, 10 or 11, comprising steps of: during the protection phase (P): defining: - as a method for renaming the instructions, an encryption method for encrypting the instructions, - and as a return device (20), means that implement a decryption method to decrypt the renamed instructions and thus restore the identity of the dependent functions to execute in the device (6). 13. Fremgangsmåte ifølge ett av kravene 1 til 12, omfattende trinn med å: under beskyttelsesfasen (P): modifisere den beskyttede programvaren (2p) ved å: - velge, i kilden for den beskyttede programvaren (2ps), minst ett betinget sprang som utføres i minst én valgt algoritmisk prosessering, - modifisere minst én valgt andel av kilden for den beskyttede programvaren (2ps), idet denne modifikasjonen er slik at under eksekvering av den beskyttede programvaren (2p), funksjonaliteten i minst ett valgt betinget sprang blir eksekvert i enheten (6), ved hjelp av den andre eksekveringsdelen (2peu), - og generere: > den første objektdelen (2pos) av den beskyttede programvaren (2p), idet nevnte første objektdel (2pos) er slik at under eksekvering av den beskyttede programvaren (2p), funksjonaliteten i minst ett valgt betinget sprang blir eksekvert i enheten (6), > og den andre objektdelen (2pou) av den beskyttede programvaren (2p), idet nevnte andre objektdel (2pou) er slik at, etter opplasting til enheten (6) og under eksekvering av den beskyttede programvaren (2p), den andre eksekveringsdelen (2peu) fremkommer, ved hjelp av hvilken funksjonaliteten i minst ett valgt betinget spranget blir eksekvert, og under bruksfasen (U): • i nærvær av enheten (6) og hver gang en andel av den første eksekveringsdelen (2pes) pålegger det, eksekvere funksjonaliteten i minst ett betinget sprang i enheten (6), slik at nevnte andel eksekveres korrekt og at følgelig den beskyttede programvaren (2p) er fullstendig funksjonell, • og i fravær av enheten (6), og til tross for forespørselen fra en andel av den første eksekveringsdelen (2pes) om å utføre funksjonaliteten i et betinget sprang i enheten (6), ikke være i stand til å etterkomme nevnte forespørsel på korrekt måte, slik at i hvert fall nevnte andel ikke eksekveres korrekt og at følgelig den beskyttede programvaren (2p) ikke er fullstendig funksjonell.13. Method according to one of claims 1 to 12, comprising the step of: during the protection phase (P): modifying the protected software (2p) by: - selecting, in the source of the protected software (2ps), at least one conditional jump which is performed in at least one selected algorithmic processing, - modifying at least one selected part of the source for the protected software (2ps), this modification being such that during execution of the protected software (2p), the functionality in at least one selected conditional jump is executed in the device (6), using the second execution part (2peu), - and generate: > the first object part (2pos) of the protected software (2p), said first object part (2pos) being such that during execution of the protected software (2p), the functionality in at least one selected conditional jump is executed in the unit (6), > and the second object part (2pou) of the protected software (2p), said second object part (2pou) being such that, after uploading t il the device (6) and during execution of the protected software (2p), the second execution part (2peu) appears, by means of which the functionality in at least one selected conditional jump is executed, and during the use phase (U): • in the presence of the device (6) and each time a part of the first execution part (2pes) imposes it, execute the functionality in at least one conditional jump in the unit (6), so that said part is executed correctly and that consequently the protected software (2p) is fully functional, • and in the absence of the unit (6), and despite the request from a part of the first execution part (2pes) to perform the functionality in a conditional jump in the unit (6), not be able to comply with said request correctly way, so that at least the said part is not executed correctly and that consequently the protected software (2p) is not fully functional. 14. Fremgangsmåte ifølge krav 13, omfattende trinn med å, under beskyttelsesfasen (P), modifisere den beskyttede programvaren (2p) ved å: - velge, i kilden for den beskyttede programvaren (2ps), minst én serie av valgte betingede sprang, - modifisere minst én valgt andel av kilden for den beskyttede programvaren (2ps), idet denne modifikasjonen er slik at under eksekvering av den beskyttede programvaren (2p), den samlede funksjonaliteten til den minst ene valgte serien av betingede sprang eksekveres i enheten (6), ved hjelp av den andre eksekveringsdelen (2peu), - og ved å generere: > den første objektdelen (2pos) av den beskyttede programvaren (2p), idet nevnte første objektdel (2pos) er slik at under eksekvering av den beskyttede programvaren (2p), funksjonaliteten i minst én valgt serie av betingede sprang blir eksekvert i enheten (6), > og den andre objektdelen (2pou) av den beskyttede programvaren (2p), idet nevnte andre objektdel (2pou) er slik at, etter opplasting til enheten (6) og under eksekvering av den beskyttede programvaren (2p), den andre eksekveringsdelen (2peu) fremkommer, ved hjelp av hvilken den samlede funksjonaliteten i minst én valgt serie av betingede sprang blir eksekvert.14. Method according to claim 13, comprising the step of, during the protection phase (P), modifying the protected software (2p) by: - selecting, in the source of the protected software (2ps), at least one series of selected conditional jumps, - modifying at least one selected portion of the source of the protected software (2ps), this modification being such that during execution of the protected software (2p), the overall functionality of the at least one selected series of conditional jumps is executed in the device (6), by means of the second execution part (2peu), - and by generating: > the first object part (2pos) of the protected software (2p), said first object part (2pos) being such that during execution of the protected software (2p) , the functionality of at least one selected series of conditional jumps is executed in the device (6), > and the second object part (2pou) of the protected software (2p), said second object part (2pou) being such that, after uploading to the device ( 6 ) and during execution of the protected software (2p), the second execution part (2peu) appears, by means of which the overall functionality of at least one selected series of conditional jumps is executed. 15. Fremgangsmåte ifølge ett av kravene 1 til 14, omfattende trinn med å dele opp beskyttelsesfasen (P) i en før-beskyttelse-delfase (P1) som er uavhengig av programvaren som skal beskyttes, og en etter-beskyttelse-delfase (P2) som er avhengig av programvaren som skal beskyttes.15. Method according to one of claims 1 to 14, comprising the step of dividing the protection phase (P) into a pre-protection sub-phase (P1) which is independent of the software to be protected, and a post-protection sub-phase (P2) which depends on the software to be protected. 16. Fremgangsmåte ifølge krav 15, omfattende trinn med å, under før-beskyttelse-delfasen (P1), gjennomføre et definisjonstrinn (S11) under hvilket alle definisjonene uføres.16. Method according to claim 15, comprising the step of, during the pre-protection sub-phase (P1), carrying out a definition step (S11) during which all the definitions are entered. 17. Fremgangsmåte ifølge krav 16, omfattende trinn med å, etter definisjonstrinnet (S11), gjennomføre et konstruksjonstrinn (S12) under hvilket eksploateringsmiddelet frembringes.17. Method according to claim 16, comprising the step of, after the definition step (S11), carrying out a construction step (S12) during which the exploitation means is produced. 18. Fremgangsmåte ifølge krav 17, omfattende trinn med å, etter konstruksjonstrinnet (S12), gjennomføre et prekustomiseringstrinn (S13) som omfatter trinn med å laste opp, til en blankenhet (60), i hvert fall en del av eksploateringsmiddelet for det formål å frembringe en prekustomisert enhet (66).18. Method according to claim 17, comprising the step of, after the construction step (S12), carrying out a pre-customization step (S13) which includes the step of uploading, to a blank unit (60), at least a part of the exploitation means for the purpose of producing a pre-customized device (66). 19. Fremgangsmåte ifølge krav 16 eller 17, omfattende trinn med å, under før-beskyttelse-delfasen (P1), gjennomføre et verktøykonstruksjonstrinn (S14) under hvilket det frembringes verktøy som hjelper til med å generere beskyttet programvare eller å automatisere programvarebeskyttelse.19. Method according to claim 16 or 17, comprising the step of, during the pre-protection sub-phase (P1), carrying out a tool construction step (S14) during which tools are generated which help to generate protected software or to automate software protection. 20. Fremgangsmåte ifølge kravene 15 og 18, omfattende trinn med å dele opp etter-beskyttelse-delfasen (P2) i: • et opprettelsestrinn (S21) under hvilket den beskyttede programvaren (2p) frembringes fra den sårbare programvaren (2v), • eventuelt, et modifiseringstrinn (S22) under hvilket den beskyttede program varen (2p) modifiseres, og et kustomiseringstrinn (S23) under hvilket: - den andre objektdelen (2pou) av den beskyttede programvaren (2p), som inneholder eksploateringsmidlene, lastes opp til minst én blankenhet (60) for det formål å frembringe minst én enhet (6), - eller en del av den andre objektdelen (2pou) av den beskyttede programvaren (2p), eventuelt inneholdende eksploateringsmidlene, lastes opp til minst én prekustomisert enhet (66) for det formål å frembringe minst én enhet (6).20. Method according to claims 15 and 18, comprising the step of dividing the post-protection sub-phase (P2) into: • a creation step (S21) during which the protected software (2p) is generated from the vulnerable software (2v), • optionally , a modification step (S22) during which the protected program the item (2p) is modified, and a customization step (S23) during which: - the second object part (2pou) of the protected software (2p), which contains the exploitation means, is uploaded to at least one blank unit (60) for the purpose of producing at least one unit (6), - or part of the second object part (2pou) of the protected software (2p), possibly containing the exploitation means, is uploaded to at least one pre-customized unit (66) for the purpose of producing at least one unit (6). 21. Fremgangsmåte ifølge kravene 19 og 20, omfattende trinn med å, under opprettelsestrinnet (S21) og eventuelt under modifiseringstrinnet (S22), anvende minst ett verktøy som hjelper med å generere beskyttet programvare eller som automatiserer programvarebeskyttelse.21. Method according to claims 19 and 20, comprising the step of, during the creation step (S21) and optionally during the modification step (S22), using at least one tool which helps to generate protected software or which automates software protection.
NO20040229A 2001-07-31 2004-01-19 Procedure for Protecting a Software, Using a Sacred Detection and Enforcement Principle, against Unauthorized Use of it NO333768B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0110244A FR2828301B1 (en) 2001-07-31 2001-07-31 METHOD FOR PROTECTING SOFTWARE USING A PRINCIPLE OF "DETECTION AND COERCITION" AGAINST ITS UNAUTHORIZED USE
PCT/FR2002/002343 WO2003012571A2 (en) 2001-07-31 2002-07-04 Method for protecting a software using a so-called detection and coercion principle against its unauthorised use

Publications (2)

Publication Number Publication Date
NO20040229L NO20040229L (en) 2004-03-30
NO333768B1 true NO333768B1 (en) 2013-09-16

Family

ID=8866119

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20040229A NO333768B1 (en) 2001-07-31 2004-01-19 Procedure for Protecting a Software, Using a Sacred Detection and Enforcement Principle, against Unauthorized Use of it

Country Status (29)

Country Link
EP (1) EP1412838B1 (en)
JP (1) JP3949104B2 (en)
KR (1) KR100881733B1 (en)
CN (1) CN100339778C (en)
AP (1) AP2055A (en)
AU (1) AU2002328377B2 (en)
BR (1) BR0211373A (en)
CA (1) CA2455626A1 (en)
CO (1) CO5550507A2 (en)
EA (1) EA005466B1 (en)
EC (1) ECSP044952A (en)
ES (1) ES2529426T3 (en)
FR (1) FR2828301B1 (en)
GE (1) GEP20053648B (en)
HK (1) HK1078363A1 (en)
HR (1) HRP20040045A2 (en)
HU (1) HUP0400234A2 (en)
IL (1) IL159955A0 (en)
IS (1) IS7120A (en)
MA (1) MA26122A1 (en)
MX (1) MXPA04000489A (en)
NO (1) NO333768B1 (en)
OA (1) OA12700A (en)
PL (1) PL371096A1 (en)
RS (1) RS50234B (en)
TN (1) TNSN04011A1 (en)
UA (1) UA77187C2 (en)
WO (1) WO2003012571A2 (en)
ZA (1) ZA200400352B (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2634917A1 (en) * 1988-08-01 1990-02-02 Pionchon Philippe METHOD AND DEVICE FOR PROTECTING SOFTWARE, ESPECIALLY AGAINST UNAUTHORIZED COPIES
US4932054A (en) * 1988-09-16 1990-06-05 Chou Wayne W Method and apparatus for protecting computer software utilizing coded filter network in conjunction with an active coded hardware device
US5754646A (en) * 1995-07-19 1998-05-19 Cable Television Laboratories, Inc. Method for protecting publicly distributed software
US5706426A (en) * 1996-02-07 1998-01-06 United Microelectronics Corporation Software protection method and apparatus
US6523119B2 (en) * 1996-12-04 2003-02-18 Rainbow Technologies, Inc. Software protection device and method
JP2002518727A (en) * 1998-06-12 2002-06-25 ジェムプリュス How to control the execution of software products

Also Published As

Publication number Publication date
HRP20040045A2 (en) 2005-02-28
ECSP044952A (en) 2004-04-28
EA005466B1 (en) 2005-02-24
RS50234B (en) 2009-07-15
IS7120A (en) 2004-01-20
AP2055A (en) 2009-10-15
ZA200400352B (en) 2005-03-30
MXPA04000489A (en) 2005-03-07
KR100881733B1 (en) 2009-02-06
KR20040026685A (en) 2004-03-31
WO2003012571A2 (en) 2003-02-13
BR0211373A (en) 2005-05-10
PL371096A1 (en) 2005-06-13
AU2002328377B2 (en) 2008-10-02
HK1078363A1 (en) 2006-03-10
EA200400058A1 (en) 2004-06-24
CA2455626A1 (en) 2003-02-13
JP3949104B2 (en) 2007-07-25
CN1620640A (en) 2005-05-25
FR2828301A1 (en) 2003-02-07
CO5550507A2 (en) 2005-08-31
YU5704A (en) 2006-05-25
OA12700A (en) 2006-06-23
UA77187C2 (en) 2006-11-15
EP1412838B1 (en) 2014-11-19
TNSN04011A1 (en) 2006-06-01
GEP20053648B (en) 2005-10-25
NO20040229L (en) 2004-03-30
JP2004537796A (en) 2004-12-16
CN100339778C (en) 2007-09-26
MA26122A1 (en) 2004-04-01
EP1412838A2 (en) 2004-04-28
ES2529426T3 (en) 2015-02-20
FR2828301B1 (en) 2010-09-03
WO2003012571A3 (en) 2004-01-22
AP2004002959A0 (en) 2004-03-31
HUP0400234A2 (en) 2004-09-28
IL159955A0 (en) 2004-06-20

Similar Documents

Publication Publication Date Title
CN102598017B (en) Improve the system and method for its tamper-proof capabilities of Java bytecode
EP3188063A1 (en) A build system
US20070294770A1 (en) Method to Protect Software Against Unwanted Use with a Variable Principle
US20070136816A1 (en) Method to protect software against unwanted use with a detection and coercion principle
US20070277239A1 (en) Method to Protect Software Against Unwanted Use with a &#34;Renaming&#34; Principle
US20070283437A1 (en) Method to Protect Software Against Unwanted Use with a &#34;Temporal Dissociation&#34; Principle
NO333768B1 (en) Procedure for Protecting a Software, Using a Sacred Detection and Enforcement Principle, against Unauthorized Use of it
JP3949105B2 (en) How to protect the software against its unauthorized use using the &#34;Rename&#34; principle
US7434064B2 (en) Method to protect software against unwanted use with a “elementary functions” principle
US7502940B2 (en) Method to protect software against unwanted use with a “conditional branch” principle
JP3949108B2 (en) How to protect software against unauthorized use with the “temporary separation” principle
AU2002325998B2 (en) Method for protecting a software using a so-called variable principle against its unauthorised use
JP3949103B2 (en) How to protect software against unauthorized use with the &#34;conditional branching&#34; principle
JP3949106B2 (en) How to protect software against fraudulent use by &#34;fundamental function&#34; principle
EP3398103B1 (en) A build system with plugins for encryption of application components

Legal Events

Date Code Title Description
MK1K Patent expired