HRP20040044A2 - Method for protecting a software using a so-called elementary functions principle against its unauthorised use - Google Patents

Method for protecting a software using a so-called elementary functions principle against its unauthorised use

Info

Publication number
HRP20040044A2
HRP20040044A2 HR20040044A HRP20040044A HRP20040044A2 HR P20040044 A2 HRP20040044 A2 HR P20040044A2 HR 20040044 A HR20040044 A HR 20040044A HR P20040044 A HRP20040044 A HR P20040044A HR P20040044 A2 HRP20040044 A2 HR P20040044A2
Authority
HR
Croatia
Prior art keywords
unit
program
execution
protected program
during
Prior art date
Application number
HR20040044A
Other languages
Croatian (hr)
Inventor
Cuenod Jean-Christophe
Sgro Gilles
Original Assignee
Validy
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 filed Critical Validy
Publication of HRP20040044A2 publication Critical patent/HRP20040044A2/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/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • 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/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices

Description

Ovaj se izum odnosi na tehničku domenu sustava za obradu podataka u općem smislu, a preciznije rečeno, namijenjen je zaštiti programa koji se koriste na navedenim sustavima od neovlaštene uporabe. This invention relates to the technical domain of data processing systems in a general sense, and more precisely, it is intended to protect programs used on said systems from unauthorized use.

Predmet izuma je posebno zaštita programa od neovlaštene uporabe, uporabom jedinica za procesiranje i pohranjivanje, koje mogu biti izvedene u obliku "chip" kartice ili sklopovskog ključa na USB priključku. The subject of the invention is especially the protection of the program from unauthorized use, using units for processing and storage, which can be implemented in the form of a "chip" card or a circuit key on a USB port.

U gore navedenom tehničkoj domeni, glavni problem se odnosi na neovlaštenu uporabu programa od strane korisnika koji nisu platili licencu. Ova nedopuštena uporaba programa izaziva očigledan gubitak za autore programa, distributere programa, te sve one osobe koje integriraju takve programe u svoje proizvode. Kako bi se izbjegle ovakve neovlaštene kopije, predlažu se različita rješenja, ovisno o stanju tehnologije. In the technical domain mentioned above, the main problem is related to the unauthorized use of the program by users who have not paid for the license. This unauthorized use of the program causes an obvious loss for the program authors, program distributors, and all those who integrate such programs into their products. In order to avoid such unauthorized copies, different solutions are proposed, depending on the state of technology.

Takvo rješenje za zaštitu koje koristi sustav za sklopovsku zaštitu poznato je pod nazivom ključ ili "dongle". Ovaj ključ za zaštitu treba osigurati da se program izvodi isključivo u prisustvu ključa. Ipak, mora se priznati da ovo rješenje nije djelotvorno, zato što ga lako moguće zaobići. Zlonamjerna osoba ili haker mogu, uz pomoć posebnih alata kao što su disasembleri, obrisati kontrolne instrukcije zaštitnog ključa. Tako se mogu izraditi ilegalne kopije koje odgovaraju modificiranim verzijama programa, koje se mogu izvoditi bez zaštite. Nadalje, ovo rješenje se ne može koristiti za sve programe, budući da je teško priključiti više od dva zaštitna ključa na jedan sustav. Such a protection solution used by the circuit protection system is known as a key or "dongle". This protection key should ensure that the program is run only in the presence of the key. However, it must be admitted that this solution is not effective, because it can easily be bypassed. A malicious person or hacker can, with the help of special tools such as disassemblers, erase the control instructions of the security key. Thus, illegal copies can be made that correspond to modified versions of the program, which can be run without protection. Furthermore, this solution cannot be used for all programs, since it is difficult to attach more than two protection keys to one system.

Predmet izuma je nalaženje rješenja za gore navedene probleme predlaganjem postupaka zaštite programa protiv neovlaštene uporabe, korištenjem "ad hoc" jedinice za procesiranje i pohranjivanje, jer je postojanje takve jedinice neophodno da bi program bio potpuno funkcionalan. The object of the invention is to find a solution to the above-mentioned problems by proposing procedures to protect the program against unauthorized use, using an "ad hoc" unit for processing and storage, because the existence of such a unit is necessary for the program to be fully functional.

U postizanju ovog cilja, predmet izuma se odnosi na postupak za zaštitu nezaštićenog programa protiv neovlaštene uporabe, uporabom najmanje jedne prazne jedinice koja uključuje najmanje postupke procesiranja i pohranjivanja, gdje je navedeni nezaštićeni program proizveden iz izvornog koda i radi na sustavu za obradu podataka. Postupak u skladu s izumom uključuje: In achieving this goal, the subject of the invention relates to a method for protecting an unprotected program against unauthorized use, using at least one empty unit that includes at least processing and storage procedures, where said unprotected program is produced from source code and runs on a data processing system. The method according to the invention includes:

→ tijekom faze zaštite: → during the protection phase:

• definiranje: • defining:

- skupa elementarnih funkcija predodređenih za izvođenje u jedinici - a set of elementary functions destined to be performed in the unit

- skupa elementarnih naredbi za navedene elementarne funkcije, koje se izvode u sustavu za obradu podataka, te aktiviraju izvođenje elementarnih funkcija u jedinici - a set of elementary commands for the specified elementary functions, which are executed in the data processing system, and activate the execution of elementary functions in the unit

• izradu postupka eksploatacije koji omogućava transformaciju prazne jedinice u jedinicu sposobnu za izvođenje elementarnih funkcija iz navedenog skupa gdje izvođenje navedenih elementarnih funkcija aktivira izvođenje elementarnih naredbi u sustavu za obradu podataka, • creating an exploitation procedure that enables the transformation of an empty unit into a unit capable of performing elementary functions from the specified set, where the execution of the specified elementary functions activates the execution of elementary commands in the data processing system,

• kreiranje zaštićenog programa: • creating a protected program:

- odabirom najmanje jednog algoritma koji, tijekom izvođenja nezaštićenog programa, koristi najmanje jedan operand i vraća najmanje jedan rezultat, - by selecting at least one algorithm which, during the execution of an unprotected program, uses at least one operand and returns at least one result,

- odabirom najmanje jednog odsječka u izvornom kodu nezaštićenog program koji sadrži najmanje jedan odabrani algoritam, - by selecting at least one section in the source code of an unprotected program that contains at least one selected algorithm,

- proizvodnjom izvornog koda zaštićenog programa iz izvornog koda nezaštićenog programa, modifikacijom najmanje jednog odabranog odsječka izvornog koda nezaštićenog programa sa ciljem dobivanja najmanje jednog modificiranog odsječka izvornog koda zaštićenog programa, gdje je modifikacija takva da: - by producing the source code of the protected program from the source code of the unprotected program, by modifying at least one selected section of the source code of the unprotected program with the aim of obtaining at least one modified section of the source code of the protected program, where the modification is such that:

▸ se tijekom izvođenja zaštićenog programa prvi izvršni dio izvodi u sustavu za obradu podataka, a drugi izvršni dio se izvodi u jedinici koja je dobivena iz prazne jedinice nakon učitavanja informacija, ▸ during the execution of the protected program, the first executable part is executed in the data processing system, and the second executable part is executed in the unit obtained from the empty unit after loading the information,

▸ drugi izvršni dio izvodi najmanje funkcionalnost odabranog algoritma, ▸ the second executable part performs at least the functionality of the selected algorithm,

▸ se najmanje odabrani algoritam dijeli tako da se tijekom izvođenja zaštićenog programa navedeni algoritam izvodi pomoću drugog izvršnog dijela, korištenjem elementarnih funkcija, ▸ the least selected algorithm is divided so that during the execution of the protected program the specified algorithm is executed by means of another executable part, using elementary functions,

▸ su za najmanje jedan odabrani algoritam, elementarne naredbe integrirane u izvorni kod zaštićenog programa, tako da se tijekom izvođenja zaštićenog programa svaka naredba izvodi od strane prvog izvršnog dijela i aktivira, u jedinici, izvođenje elementarne funkcije pomoću drugog izvršnog dijela, ▸ for at least one selected algorithm, the elementary commands are integrated into the source code of the protected program, so that during the execution of the protected program each command is executed by the first executable part and activates, in unit, the execution of the elementary function by the second executable part,

▸ se odabire sekvenca elementarnih naredbi između skupa sekvenci koje dozvoljavaju izvođenje zaštićenog programa, ▸ a sequence of elementary commands is selected from a set of sequences that allow the execution of the protected program,

- i proizvodnjom: - and production:

▸ prvog objektnog dijela programa, koji je takav da se tijekom izvođenje zaštićenog programa, pojavljuje prvi izvršni dio koji se izvodi u sustavu za obradu podataka i čiji barem jedan odsječak uzima u obzir da se elementarne naredbe izvode u skladu s izabranom sekvencom, ▸ of the first object part of the program, which is such that during the execution of the protected program, the first executable part that is executed in the data processing system appears and at least one section of which takes into account that the elementary commands are executed in accordance with the selected sequence,

▸ i drugog objektnog dijela zaštićenog programa koji sadrži postupak za eksploataciju, a koji je takav da se, nakon učitavanja u praznu jedinicu i tijekom izvođenja zaštićenog programa, pojavljuje drugi izvršni dio pomoću kojeg se izvode elementarne funkcije aktivirane od prvog izvršnog dijela, ▸ and the second object part of the protected program that contains the procedure for exploitation, which is such that, after loading into the empty unit and during the execution of the protected program, a second executable part appears, by means of which the elementary functions activated by the first executable part are performed,

• i učitavanje drugog objektnog dijela u jedinicu sa ciljem dobivanja jedinice, • and loading another object part into the unit with the aim of obtaining the unit,

→ i tijekom faze uporabe koda se zaštićeni program izvodi: → and during the code usage phase, the protected program is executed:

• u prisutnosti jedinice, svaki puta kada odsječak prvog izvršnog dijela to nametne, izvođenje odgovarajuće elementarne funkcije u jedinici, tako da se navedeni odsječak izvodi ispravno te da je, posljedično, zaštićeni program potpuno funkcionalan, • in the presence of the unit, every time the segment of the first executable part imposes it, the execution of the corresponding elementary function in the unit, so that the specified segment is executed correctly and, consequently, the protected program is fully functional,

• te u nedostatku jedinice, nemogućnost ispravnog ispunjavanja zahtjeva odsječaka prvog izvršnog dijela za izvođenjem odgovarajuće elementarne funkcije u jedinici te da, posljedično, zaštićeni program nije potpuno funkcionalan. • and in the absence of a unit, the impossibility of correctly fulfilling the requirements of the sections of the first executable part to perform the appropriate elementary function in the unit and, consequently, the protected program is not fully functional.

U skladu s preferiranom izvedbom, proces u skladu s izumom uključuje: According to a preferred embodiment, the process according to the invention includes:

→ tijekom faze zaštite: → during the protection phase:

• modifikaciju zaštićenog programa: • modification of the protected program:

- odabirom najmanje jedne varijable koja se koristi u najmanje jednom odabranom algoritmu, a koja tijekom izvođenja zaštićenog programa djelomično definira stanje zaštićenog programa, - by selecting at least one variable that is used in at least one selected algorithm, and which partially defines the state of the protected program during the execution of the protected program,

- modifikacijom najmanje jednog odabranog odsječka izvornog koda zaštićenog programa koja je takva da se tijekom izvođenja zaštićenog programa najmanje jedna varijabla ili kopija varijable smješta u jedinici, - by modifying at least one selected section of the source code of the protected program in such a way that during the execution of the protected program at least one variable or a copy of the variable is placed in the unit,

- i proizvodnjom: - and production:

▸ prvog objektnog dijela zaštićenog programa iz izvornog koda zaštićenog programa, gdje je prvi objektni dio takav da tijekom izvođenja zaštićenog programa, najmanje jedan odsječak prvog izvršnog dijela uzima u obzir da se najmanje jedna varijabla ili kopija varijable nalazi u jedinici, ▸ of the first object part of the protected program from the source code of the protected program, where the first object part is such that during the execution of the protected program, at least one section of the first executable part takes into account that at least one variable or copy of the variable is located in the unit,

▸ drugog objektnog dijela zaštićenog programa, koji je takav da se nakon učitavanja u jedinicu i tijekom izvođenja zaštićenog programa pojavljuje drugi izvršni dio pomoću kojeg se najmanje jedna varijabla ili kopija varijable također smještaju u jedinicu, ▸ of the second object part of the protected program, which is such that after loading into the unit and during the execution of the protected program, another executable part appears, by means of which at least one variable or a copy of the variable is also placed in the unit,

→ i tijekom faze uporabe: → and during the use phase:

• u prisutnosti jedinice, svaki puta kada odsječak prvog izvršnog dijela to nametne, uporabu varijable ili kopije varijable koja se nalazi u jedinici, tako da se navedeni odsječak izvodi ispravno te da je, posljedično, zaštićeni program potpuno funkcionalan, • in the presence of a unit, every time a segment of the first executable part imposes it, the use of a variable or a copy of a variable located in the unit, so that the specified segment is executed correctly and, consequently, the protected program is fully functional,

• te u nedostatku jedinice, nemogućnost ispravnog ispunjavanja zahtjeva odsječaka prvog izvršnog dijela za korištenjem varijable ili kopije varijable koja se nalazi u jedinici te da, posljedično, zaštićeni program nije potpuno funkcionalan. • and in the absence of a unit, the impossibility of correctly fulfilling the requirements of sections of the first executable part to use a variable or a copy of a variable located in the unit, and that, consequently, the protected program is not fully functional.

U skladu s drugom preferiranom izvedbom, postupak u skladu s izumom uključuje: According to another preferred embodiment, the method according to the invention includes:

→ tijekom faze zaštite: → during the protection phase:

• definiranje: • defining:

- najmanje jedne karakteristike izvođenja programa, koja se može barem djelomično pratiti u jedinici, - at least one characteristic of program execution, which can be at least partially monitored in the unit,

- najmanje jednog kriterija koji treba ispunit za barem jednu karakteristiku izvođenja programa, - at least one criterion that needs to be met for at least one characteristic of program execution,

- postupka detekcije koji se implementira u jedinici, a omogućava detektiranje da barem jedna karakteristika izvođenja programa nije ispunjena za najmanje jedan pridruženi kriterij, - the detection procedure that is implemented in the unit, and enables the detection that at least one characteristic of the program execution is not met for at least one associated criterion,

- i postupka prisile koji se implementira u jedinici i omogućava informiranje sustava za obradu podataka i/ili modifikaciju izvođenja programa, kada najmanje jedan kriterij nije ispunjen, - and the coercion procedure that is implemented in the unit and enables informing the data processing system and/or modifying the program execution, when at least one criterion is not met,

• izradu postupka eksploatacije koji omogućava jedinici, da također implementira postupak detekcije i postupak prisile, • creation of an exploitation procedure that enables the unit to also implement a detection procedure and a coercion procedure,

• i modifikaciju zaštićenog programa: • and modification of the protected program:

- odabirom za praćenje najmanje jedne karakteristike izvođenja programa, između karakteristika izvođenja programa predodređenih za praćenje, - by selecting for monitoring at least one characteristic of program execution, among the characteristics of program execution destined for monitoring,

- odabirom najmanje jednog kriterija koji treba ispuniti za najmanje jednu odabranu karakteristiku izvođenja programa, - by selecting at least one criterion that needs to be fulfilled for at least one selected characteristic of program execution,

- odabirom u izvornom kodu zaštićenog programa, elementarnih funkcija za koje će biti praćena najmanje jedna karakteristika izvođenja programa, - by selecting in the source code of the protected program, elementary functions for which at least one characteristic of program execution will be monitored,

- modifikacijom najmanje jednog izabranog odsječka izvornog koda zaštićenog programa, koja je takva da se tijekom izvođenja zaštićenog programa, prati najmanje jedna izabrana karakteristika pomoću drugog izvršnog dijela, a činjenica da kriterij nije ispunjen vodi tome da se informira sustav za obradu podataka i/ili se modificira izvođenje zaštićenog programa, - by modifying at least one selected section of the source code of the protected program, which is such that during the execution of the protected program, at least one selected characteristic is monitored using another executable part, and the fact that the criterion is not met leads to informing the data processing system and/or modifies the execution of the protected program,

- i proizvodnjom drugog objektnog dijela zaštićenog programa koji sadrži postupak za eksploataciju koji također implementira postupak detekcije i postupak prisile, gdje je navedeni drugi objektni dio takav da se nakon učitavanja u jedinicu i tijekom izvođenja zaštićenog programa, prati najmanje jedna karakteristika izvođenja, a činjenica da kriterij nije ispunjen vodi tome da se informira sustav za obradu podataka i/ili se modificira izvođenje zaštićenog programa, - and by the production of another object part of the protected program that contains a procedure for exploitation that also implements a detection procedure and a coercion procedure, where the said second object part is such that after loading into the unit and during the execution of the protected program, at least one performance characteristic is monitored, and the fact that the criterion not being met leads to the fact that the data processing system is informed and/or the execution of the protected program is modified,

→ te tijekom faze uporabe: → and during the use phase:

• u prisutnosti jedinice: • in the presence of the unit:

- tako dugo dok su ispunjeni svi kriteriji koji odgovaraju svim praćenim karakteristikama izvođenja svih modificiranih odsječaka zaštićenog programa, omogućeno je da navedeni odsječak zaštićenog programa radi ispravno te da, posljedično, zaštićeni program radi ispravno, - as long as all criteria corresponding to all monitored performance characteristics of all modified sections of the protected program are met, it is possible for the said section of the protected program to work correctly and, consequently, for the protected program to work correctly,

- te ako nije ispunjen barem jedan kriterij koji odgovara praćenoj karakteristici izvođenja odsječka zaštićenog programa, informira se sustav za obradu podataka i/ili se modificira funkcioniranje odsječka zaštićenog programa, tako da je funkcioniranje zaštićenog programa modificirano. - and if at least one criterion corresponding to the monitored characteristic of the execution of the section of the protected program is not met, the data processing system is informed and/or the functioning of the section of the protected program is modified, so that the functioning of the protected program is modified.

U skladu s različitim izvedbama, postupak u skladu s izumom obuhvaća: In accordance with various embodiments, the method according to the invention includes:

→ tijekom faze zaštite: → during the protection phase:

• definiranje: • defining:

- kao karakteristike izvođenja koja će se pratiti, varijable koja mjeri uporabu funkcionalnosti programa, - as performance characteristics to be monitored, a variable that measures the use of the program's functionality,

- kao kriterija koji treba ispuniti, najmanje jednog prag pridruženog svakoj mjernoj varijabli, - as a criterion to be met, at least one threshold associated with each measurement variable,

- postupak aktualizacije koji omogućava osvježavanje najmanje jedne mjerne varijable, - the actualization procedure that enables at least one measurement variable to be refreshed,

• izrade postupka za eksploataciju koji omogućava jedinici da također upotrijebi postupak aktualizacije, • creation of an exploitation procedure that enables the unit to also use the actualization procedure,

• modifikaciju zaštićenog programa: • modification of the protected program:

- odabirom, kao karakteristike izvođenja programa koja se prati, najmanje jedne varijable koja mjeri uporabu najmanje jedne funkcionalnosti programa, - by selecting, as a characteristic of the program execution to be monitored, at least one variable that measures the use of at least one functionality of the program,

- odabirom: - by choosing:

▸ najmanje jedne funkcionalnosti zaštićenog programa čija se uporaba prati pomoću mjerne varijable, ▸ at least one functionality of the protected program whose use is monitored using a measurement variable,

▸ najmanje jedne mjerne varijable koja se koristi za kvantifikaciju uporabe navedene funkcionalnosti ▸ at least one measurement variable used to quantify the use of the specified functionality

▸ najmanje jednog praga pridruženog izabranoj mjernoj varijabli koji odgovara ograničenju uporabe navedene funkcionalnosti, ▸ at least one threshold associated with the selected measurement variable that corresponds to the restriction of the use of the specified functionality,

▸ te najmanje jednu metodu osvježivanja odabrane mjerne varijable ovisno o uporabi navedene funkcionalnosti, ▸ and at least one method of refreshing the selected measurement variable depending on the use of the specified functionality,

- te modifikacijom najmanje jednog izabranog odsječka izvornog koda zaštićenog programa, koja je takva da se, tijekom izvođenja zaštićenog programa, mjerna varijabla aktualizira pomoću drugog izvršnog dijela ovisno uporabi navedene funkcionalnosti, pri čemu se najmanje jedan prijelaz praga uzima u obzir, - and by modifying at least one selected section of the source code of the protected program, which is such that, during the execution of the protected program, the measurement variable is updated using another executable part depending on the use of the specified functionality, whereby at least one threshold crossing is taken into account,

→ i tijekom faze upotrebe, u prisutnosti jedinice, i slučaju gdje je detektiran najmanje jedan prijelaz praga što odgovara najmanje jednom ograničenju upotrebe, o tome se informira se sustav za obradu podataka i/ili se modificira funkcioniranje odsječka zaštićenog programa, tako da je funkcioniranje zaštićenog programa modificirano. → and during the use phase, in the presence of the unit, and in the case where at least one threshold crossing corresponding to at least one use restriction is detected, the data processing system is informed about this and/or the functioning of the section of the protected program is modified, so that the functioning of the protected program modified.

U skladu s različitim izvedbama, postupak u skladu s izumom obuhvaća: In accordance with various embodiments, the method according to the invention includes:

→ tijekom faze zaštite: → during the protection phase:

• definiranje: • defining:

- za najmanje jednu mjernu varijable, nekoliko pripadajućih pragova, - for at least one measurement variable, several associated thresholds,

- i različitih postupaka prisile koji odgovaraju svakom navedenom pragu, - and different coercion procedures corresponding to each specified threshold,

• modifikaciju zaštićenog programa: • modification of the protected program:

- odabirom u izvornom kodu zaštićenog programa najmanje jedne odabrane mjerne varijable kojoj moraju biti pridruženi različiti pragovi u skladu s različitim ograničenjima u upotrebama funkcionalnosti, - by selecting in the source code of the protected program at least one selected measurement variable to which different thresholds must be associated in accordance with different limitations in the use of functionality,

- odabirom najmanje dva praga pridružena izabranoj mjernoj varijabli, - by selecting at least two thresholds associated with the selected measurement variable,

- te modifikacijom najmanje jednog izabranog odsječka izvornog koda zaštićenog programa, koja je takva da se, tijekom izvođenja zaštićenog programa, prijelaz različitih pragova uzima odvojeno, pomoću drugog izvršnog dijela, - and by modifying at least one selected section of the source code of the protected program, which is such that, during the execution of the protected program, the crossing of different thresholds is taken separately, using another executable part,

→ tijekom faze uporabe: → during the use phase:

• u prisutnosti jedinice: • in the presence of the unit:

- u slučaju gdje je detektiran prijelaz prvog praga, zabranu dalju uporabe odgovarajuće funkcionalnosti zaštićenom programu, - in the case where the crossing of the first threshold is detected, a ban on further use of the corresponding functionality of the protected program,

- te u slučaju kada je detektiran prijelaz drugog praga, deaktiviranje odgovarajuće funkcionalnosti i/ili najmanje jednog odsječka zaštićenog programa. - and in the case when crossing the second threshold is detected, deactivation of the corresponding functionality and/or at least one section of the protected program.

U skladu s različitim izvedbama, postupak u skladu s izumom obuhvaća: In accordance with various embodiments, the method according to the invention includes:

→ tijekom faze zaštite: → during the protection phase:

• definiranje postupka ponovnog učitavanja koji omogućava kreditiranje najmanje jedne funkcionalnosti programa koja se prati mjernom varijablom, s najmanje jednom dodatnom upotrebom, • defining a reloading procedure that allows crediting at least one functionality of the program that is monitored by a measurement variable, with at least one additional use,

• izradu postupka eksploatacije koji također dozvoljava jedinici implementaciju postupka ponovnog učitavanja, • creating an exploitation procedure that also allows the unit to implement a reloading procedure,

• i modifikaciju zaštićenog programa: • and modification of the protected program:

- odabirom u izvornom kodu u zaštićenog programa najmanje jedne odabrane mjerne varijable koja omogućavajući ograničenje uporabe funkcionalnosti i kojoj mora se moći kreditirati s najmanje jednom dodatnom uporabom, - by selecting in the source code of the protected program at least one selected measurement variable that enables limitation of the use of functionality and which must be credited with at least one additional use,

- i modifikacijom najmanje jednog izabranog odsječka, koja je takva da se tijekom faze poziva ponovnog učitavanja, može kreditirati najmanje jedna dodatna uporaba najmanje jedne funkcionalnosti koja odgovara izabranoj mjernoj varijabli, - and by modifying at least one selected segment, which is such that during the reloading call phase, at least one additional use of at least one functionality corresponding to the selected measurement variable can be credited,

→ i tijekom faze ponovnog učitavanja: → and during the reload phase:

• ponovnu aktualizaciju najmanje jedne odabrane mjerne varijable i/ili najmanje jednog pridruženog praga, tako da se dozvoljava najmanje jedna dodatna uporaba funkcionalnosti. • re-actualization of at least one selected measurement variable and/or at least one associated threshold, so that at least one additional use of the functionality is allowed.

U skladu s različitim izvedbama, postupak u skladu s izumom obuhvaća: In accordance with various embodiments, the method according to the invention includes:

→ tijekom faze zaštite: → during the protection phase:

• definiranje: • defining:

- profila uporabe programa kao karakteristike izvođenja programa predodređene za praćenje, - program usage profile as a characteristic of program execution intended for monitoring,

- i kao kriterija koji treba ispuniti, najmanje jedne značajke izvođenja programa, - and as a criterion to be met, at least one feature of program execution,

• i modifikaciju zaštićenog programa: • and modification of the protected program:

- odabirom najmanje jednog profila uporabe programa kao karakteristike izvođenja programa koja se prati - by selecting at least one program usage profile as a monitored program performance characteristic

- odabirom najmanje jedne značajke izvođenja za koju se mora bit ispunjen najmanje jedan izabrani profil uporabe, - by selecting at least one performance feature for which at least one selected usage profile must be fulfilled,

- i modifikacijom najmanje jednog izabranog odsječka izvornog koda zaštićenog programa, koja je takva da tijekom izvođenja zaštićenog programa, prvi izvršni dio zadržava se kod svih izabranih osobina izvođenja, - and by modifying at least one selected section of the source code of the protected program, which is such that during the execution of the protected program, the first executable part is retained for all selected features of the execution,

→ i tijekom faze uporabe, u prisutnosti jedinice, i u slučaju gdje je detektirano da najmanje jedna značajka izvođenja nije ispunjana, informiranje sustava za obradu podataka i/ili modifikaciju funkcioniranja odsječka zaštićenog programa, tako da je funkcioniranje zaštićenog programa modificirano: → and during the use phase, in the presence of the unit, and in the case where it is detected that at least one performance feature is not fulfilled, informing the data processing system and/or modifying the functioning of the section of the protected program, so that the functioning of the protected program is modified:

U skladu s različitim izvedbama, postupak u skladu s izumom obuhvaća: In accordance with various embodiments, the method according to the invention includes:

→ tijekom faze izvođenja: → during the execution phase:

• definiranje: • defining:

- skupa instrukcija koje su podložne izvođenju u jedinici, - a set of instructions that are subject to execution in the unit,

- skup naredbi za navedeni skup instrukcija, gdje su naredbe podložne izvođenju u sustavu za obradu podataka te aktiviraju izvođenje instrukcija u jedinici, - a set of commands for the specified set of instructions, where the commands are subject to execution in the data processing system and activate the execution of instructions in the unit,

- kao profila uporabe, ulančavanja instrukcija, - as a usage profile, chaining of instructions,

- kao značajke izvođenja, očekivanog ulančavanja za izvođenje instrukcija, - as execution features, expected chaining for execution of instructions,

- kao postupka detekcije, postupka koji omogućava detekciju da ulančavanje instrukcija ne odgovara očekivanom, - as a detection procedure, a procedure that enables the detection that the chaining of instructions does not correspond to the expected,

- kao postupka prisile, postupka koji omogućava informiranje sustava za obradu podataka i/ili modifikaciju funkcioniranja odsječka zaštićenog programa kada ulančavanje instrukcija ne odgovara očekivanom, - as a coercion procedure, a procedure that enables informing the data processing system and/or modifying the functioning of a section of the protected program when the chaining of instructions does not correspond to the expected,

• izradu postupka za eksploataciju koji također omogućava jedinici izvođenje instrukcija iz skupa instrukcija, gdje se izvođenje navedenih instrukcija aktivira izvođenjem naredbi u sustavu za obradu podataka, • creation of a procedure for exploitation that also enables the unit to execute instructions from a set of instructions, where the execution of said instructions is activated by executing commands in the data processing system,

• modifikaciju zaštićenog programa: • modification of the protected program:

- modifikacijom najmanje jednog izabranog odsječka izvornog koda zaštićenog programa: - by modifying at least one selected section of the source code of the protected program:

▸ transformacijom elementarnih funkcija u instrukcije, ▸ by transforming elementary functions into instructions,

▸ specificiranjem ulančavanja kod kojeg moraju postojati najmanje neke od instrukcija tijekom njihova izvođenja u jedinici, ▸ by specifying chaining where at least some of the instructions must exist during their execution in the unit,

▸ te transformacijom elementarnih naredbi u instrukcije koje odgovaraju korištenim instrukcijama, ▸ and by transforming elementary commands into instructions that correspond to the used instructions,

→ i tijekom faze upotrebe, u prisutnosti jedinice, u slučaju gdje detektirano ulančavanje instrukcija izvršenih u jedinici ne odgovara očekivanom, informiranje sustav za obradu podataka i/ili modifikaciju funkcioniranja odsječka zaštićenog programa, tako da se funkcioniranje zaštićenog programa modificira. → and during the use phase, in the presence of the unit, in the case where the detected chaining of instructions executed in the unit does not correspond to the expected, informing the data processing system and/or modifying the functioning of the section of the protected program, so that the functioning of the protected program is modified.

U skladu s različitim izvedbama, postupak u skladu s izumom obuhvaća: In accordance with various embodiments, the method according to the invention includes:

→ tijekom faze zaštite: → during the protection phase:

• definiranje: • defining:

- kao skupa instrukcija, skup instrukcija u kome najmanje neke instrukcije rade s registrima i koriste najmanje jedan operand s namjerom vraćanja rezultata, - as a set of instructions, a set of instructions in which at least some instructions work with registers and use at least one operand with the intention of returning a result,

- za najmanje neke od instrukcija koje rade se registrima: - for at least some of the instructions that are done with registers:

▸ dijela koji definira funkcionalnost instrukcije, ▸ part that defines the functionality of the instruction,

▸ i dijela koji definira ulančavanje izvođenja instrukcija i uključuje bitove za: ▸ and a part that defines the chaining of instruction execution and includes bits for:

◊ identifikaciju polja instrukcije, ◊ identification of the instruction field,

◊ i za svaki operand instrukcije: ◊ and for each instruction operand:

* zastavicu, * flag,

* i očekivano polje identifikacije operanda, * and expected operand identification field,

- za svaki registar koji pripada postupku za eksploataciju a korišten je od skupa instrukcija, generiranje identifikacijskog polja u kojem se automatski pohranjuje identifikacija zadnje instrukcije koja je vratila rezultat u navedeni registar, - for each register that belongs to the exploitation procedure and was used from a set of instructions, the generation of an identification field in which the identification of the last instruction that returned the result to the specified register is automatically stored,

- kao postupka detekcije, postupka koji omogućava, tijekom izvođenja instrukcije, za svaki operand, kada zastavica to nameće, provjere jednakosti generiranog identifikacijskog polja koji odgovara registru korištenom od navedenog operanda i očekivanog identifikacijsko polja u izvornom kodu navedenog operanda, - as a detection procedure, a procedure that enables, during the execution of the instruction, for each operand, when the flag imposes it, to check the equality of the generated identification field corresponding to the register used by the specified operand and the expected identification field in the source code of the specified operand,

- kao postupka prisile, postupka koji omogućava modifikaciju rezultata instrukcije, ako je barem jedna od provjerenih jednakosti neistinita. - as a coercion procedure, a procedure that enables the modification of the result of the instruction, if at least one of the checked equalities is false.

U skladu s drugim preferiranim izvedbama, postupak u skladu s izumom obuhvaća: In accordance with other preferred embodiments, the method according to the invention includes:

→ tijekom faze zaštite: → during the protection phase:

• definiranje: • defining:

- kao aktivirane naredbe, elementarne naredbe ili instrukcije - as activated commands, elementary commands or instructions

- kao zavisne funkcije, elementarne funkcije ili instrukcije, - as dependent functions, elementary functions or instructions,

- kao naloga, najmanje jednog argumenta za aktiviranje naredbe, koji odgovara najmanje djelomično informaciji prenesenoj iz sustava za obradu podataka u jedinicu, tako da se aktivira izvođenje odgovarajuće zavisne funkcije, - as a command, at least one argument for activating the command, which corresponds at least partially to the information transferred from the data processing system to the unit, so that the execution of the corresponding dependent function is activated,

- postupka za preimenovanje naloga koji omogućuje preimenovanje naloga tako se dobije aktivirana naredba s preimenovanim nalogom, - a procedure for renaming an order that enables renaming an order, thus obtaining an activated order with a renamed order,

- postupka obnavljanja dizajniranog za uporabu u jedinci tijekom faze upotrebe, koji omogućava obnavljanje zavisne funkcije koja se izvodi od preimenovanog naloga, - a recovery procedure designed for use in the unit during the use phase, which enables the recovery of a dependent function that is performed from a renamed order,

• izradu postupka za eksploataciju koji omogućava jedinici primjenu postupka obnavljanja. • creating a procedure for exploitation that enables the unit to apply the recovery procedure.

• modifikaciju zaštićenog programa: • modification of the protected program:

- odabirom naredbe za aktiviranje u izvornom kodu zaštićenog programa, - by selecting the activation command in the source code of the protected program,

- modifikacijom najmanje jednog izabranog odsječka u izvornom kodu zaštićenog programa preimenovanjem naloga odabrane naredbe za aktiviranje, vezano sa skrivanjem identiteta odgovarajuće zavisne funkcije, - by modifying at least one selected section in the source code of the protected program by renaming the order of the selected activation command, related to hiding the identity of the corresponding dependent function,

- i proizvodnjom: - and production:

▸ prvog objektnog dijela zaštićenog programa, koji je takav da se tijekom faze izvođenja zaštićenog programa izvodi naredba za aktiviranje s preimenovanim nalogom, ▸ of the first object part of the protected program, which is such that during the execution phase of the protected program, an activation command is executed with a renamed order,

▸ i drugog objektnog dijela zaštićenog programa koji sadrži postupak za eksploataciju, gdje je navedeni drugi objektni dio takav da se, nakon učitavanja u jedinicu i tijekom izvođenja zaštićenog programa, obnavlja, pomoću drugog izvršnog dijela, jednakost zavisne funkcije čije je izvođenje aktivirano od prvog izvršnog dijela, a zavisna funkcija se izvodi pomoću drugog izvršnog dijela, ▸ and the second object part of the protected program containing the procedure for exploitation, where the specified second object part is such that, after loading into the unit and during the execution of the protected program, the equality of the dependent function whose execution was activated by the first executable is restored, using the second executable part part, and the dependent function is performed using another executable part,

→ i tijekom faze korištenja: → and during the use phase:

• u prisutnosti jedinice i svaki puta kad naredba za aktiviranje s promijenjenim nalogom, sadržanim u odsječku prvog izvršnog dijela, to nametne, obnavlja se u jedinici jednakost odgovarajuće zavisne funkcije i njenog izvođenja, tako da se navedeni odsječak izvodi ispravno i da je, posljedično, zaštićeni program je potpuno funkcionalan, • in the presence of the unit and every time the activation command with the changed order, contained in the section of the first executable part, imposes it, the equality of the corresponding dependent function and its execution is restored in the unit, so that the specified section is executed correctly and that, consequently, the protected program is fully functional,

• u odsutnosti jedinice, a u duhu zahtjeva odsječka prvog izvršnog dijela, za aktiviranjem izvođenja zavisne funkcije u jedinici, nije moguće izvršiti navedeni zahtjev ispravno, tako da najmanje navedeni odsječak nije izveden ispravno te da, posljedično, zaštićeni program nije potpuno funkcionalan. • in the absence of the unit, and in the spirit of the request of the section of the first executable part, to activate the execution of the dependent function in the unit, it is not possible to execute the specified request correctly, so that at least the specified section is not executed correctly and, consequently, the protected program is not fully functional.

U skladu s različitim izvedbama, postupak u skladu s izumom obuhvaća: In accordance with various embodiments, the method according to the invention includes:

→ tijekom faze zaštite: → during the protection phase:

• definiranje za najmanje jednu zavisnu funkciju, familije zavisnih funkcija koje su algoritamski ekvivalentne, ali se aktiviraju naredbama čiji su preimenovani nalozi različiti, • defining for at least one dependent function, families of dependent functions that are algorithmically equivalent, but are activated by commands whose renamed orders are different,

• i modifikaciju zaštićenog programa: • and modification of the protected program:

- odabirom, u izvornom kodu zaštićenog programa najmanje jedne naredbe za aktiviranje s preimenovanim nalogom, - by selecting, in the source code of the protected program, at least one activation command with a renamed command,

- modifikaciju najmanje jednog odsječka izvornog koda zaštićenog programa zamjenom najmanje jednog preimenovanog naloga odabrane naredbe za aktiviranje s drugim preimenovanim nalogom, aktiviranjem zavisne funkcije iste familije. - modification of at least one section of the source code of the protected program by replacing at least one renamed command of the selected activation command with another renamed command, activating a dependent function of the same family.

U skladu s različitim izvedbama, postupak u skladu s izumom obuhvaća: In accordance with various embodiments, the method according to the invention includes:

→ tijekom faze zaštite, definiranje, za najmanje jednu zavisnu funkciju, familije algoritamski ekvivalentnih zavisnih funkcija: → during the protection phase, defining, for at least one dependent function, a family of algorithmically equivalent dependent functions:

- dodavanjem polja šuma u informaciju definirajući funkcionalni dio zavisne funkcije koja se izvodi u jedinci, - by adding a noise field to the information defining the functional part of the dependent function that is performed in the unit,

- ili upotrebom identifikacijskog polja instrukcije i očekivanih identifikacijskih polja operanada. - or by using the identification field of the instruction and the expected identification fields of the operands.

U skladu s različitim izvedbama, postupak u skladu s izumom obuhvaća: In accordance with various embodiments, the method according to the invention includes:

→ tijekom faze zaštite: → during the protection phase:

• definiranje: • defining:

- postupka za šifriranje naloga, kao postupka preimenovanja naloga, - order encryption procedure, such as order renaming procedure,

- i kao postupka obnavljanja, postupka koji implementira metodu za dešifriranje preimenovanog naloga te tako obnavlja identitet zavisne funkcije koja se izvodi u jedinici. - and as a recovery procedure, a procedure that implements a method for decrypting the renamed command and thus restores the identity of the dependent function that is performed in the unit.

U skladu s drugim preferiranim izvedbama, postupak u skladu s izumom obuhvaća: In accordance with other preferred embodiments, the method according to the invention includes:

→ tijekom faze zaštite: → during the protection phase:

• modifikaciju zaštićenog programa: • modification of the protected program:

- odabirom , u izvornom kodu zaštićenog programa, najmanje jednog uvjetnog grananja koje se obavlja u najmanje jednom izabranom algoritmu, - by selecting, in the source code of the protected program, at least one conditional branching that is performed in at least one selected algorithm,

- modifikacijom najmanje jednog odabranog odsječka izvornog koda zaštićenog programa, koja je takva da se tijekom izvođenja zaštićenog programa, izvodi funkcionalnost od najmanje jednog izabranog uvjetnog grananja pomoću drugog izvršnog dijela, u jedinici, - by modifying at least one selected section of the source code of the protected program, which is such that during the execution of the protected program, the functionality of at least one selected conditional branching is performed using another executable part, in the unit,

- i proizvodnjom: - and production:

▸ prvog objektnog dijela zaštićenog programa, takvog da se tijekom izvođenja programa, funkcionalnost najmanje jednog izabranog uvjetnog grananja izvodi u jedinici, ▸ of the first object part of the protected program, such that during the execution of the program, the functionality of at least one selected conditional branch is performed in the unit,

▸ i drugog objektnog dijela zaštićenog programa, koji je takav da se, nakon učitavanje u jedinicu i tijekom izvođenja zaštićenog programa, pojavljuje drugi izvršni dio pomoću koga se izvodi funkcionalnost najmanje jednog izabranog uvjetnog grananja, ▸ and the second object part of the protected program, which is such that, after loading into the unit and during the execution of the protected program, another executable part appears by which the functionality of at least one selected conditional branching is performed,

→ i tijekom faze upotrebe: → and during the use phase:

• u prisutnosti jedinice i svaki puta kada odsječak prvog zaštićenog dijela to zahtjeva, izvođenje funkcionalnosti najmanje jednog uvjetnog grananja u jedinici, tako da se navedeni odsječak izvodi ispravno te da je, posljedično, zaštićeni program potpuno funkcionalan, • in the presence of the unit and every time the segment of the first protected part requires it, the execution of the functionality of at least one conditional branch in the unit, so that the specified segment is executed correctly and, consequently, the protected program is fully functional,

• i u odsutnosti jedinice i u duhu zahtjeva odsječka prvog izvršnog dijela za izvođenjem uvjetnog grananja u jedinici, nemogućnost ispunjavanja navedenog zahtjeva ispravno, tako da se najmanje navedeni odsječak ne izvodi ispravno te da, posljedično, zaštićeni program nije potpuno funkcionalan. • both in the absence of the unit and in the spirit of the request of the section of the first executable part to perform conditional branching in the unit, the inability to fulfill the specified request correctly, so that at least the specified section is not executed correctly and, consequently, the protected program is not fully functional.

U skladu s različitim izvedbama, postupak u skladu s izumom obuhvaća, tijekom faze zaštite, modifikaciju zaštićenog programa: In accordance with various embodiments, the method according to the invention includes, during the protection phase, the modification of the protected program:

- odabirom , u izvornom kodu zaštićenog programa, najmanje jednog niza odabranih uvjetnih grananja, - by selecting, in the source code of the protected program, at least one set of selected conditional branches,

- modifikacijom najmanje jednog izabranog odsječka izvornog koda zaštićenog programa, koja je takva da se tijekom faze izvođenja zaštićenog programa izvodi ukupna funkcionalnost najmanje jednog izabranog niza uvjetnih grananja pomoću drugog izvršnog dijela, u jedinici, - by modifying at least one selected section of the source code of the protected program, which is such that during the execution phase of the protected program, the overall functionality of at least one selected series of conditional branches is performed using another executable part, in the unit,

- i proizvodnjom: - and production:

▸ prvog objektnog dijela zaštićenog programa, koji je takav da se tijekom izvođenja zaštićenog programa, funkcionalnost najmanje jednog izabranog niza uvjetnih grananja izvodi u jedinici, ▸ of the first object part of the protected program, which is such that during the execution of the protected program, the functionality of at least one selected sequence of conditional branches is performed in the unit,

▸ drugog objektnog dijela zaštićenog programa, koji takav da se, nakon učitavanje ' u jedinicu i tijekom izvođenja zaštićenog programa, pojavljuje drugi izvršeni dio pomoću kojeg se izvodi ukupna funkcionalnost najmanje jednog izabranog niza uvjetnih grananja. ▸ of the second object part of the protected program, which is such that, after loading ' into the unit and during the execution of the protected program, another executed part appears, by means of which the overall functionality of at least one selected series of conditional branches is performed.

Postupak u skladu s izumom tako omogućava zaštitu korištenja programa upotrebom jedinice za procesiranje i pohranjivanje koja predstavlja karakteristiku sadržanu u dijela programa koji se izvodi. Slijedi da svaka izvedena verzija programa koja se pokuša izvoditi bez jedinice za procesiranje i pohranjivanje nameće ponovo kreiranje dijela programa koji se nalazi u jedinice za procesiranje i pohranjivanje tijekom izvođenja, inače navedena izvedena verzija programa neće biti potpuno funkcionalna. The method according to the invention thus enables the protection of the use of the program by using a processing and storage unit that represents a characteristic contained in the part of the program being executed. It follows that any derived version of a program that is attempted without a processing and storage unit forces the part of the program located in the processing and storage units to be recreated at runtime, otherwise said derived version of the program will not be fully functional.

Različite druge karakteristike koje se vide iz opisa prikazane su u dijagramima u prilogu, a pokazuju, kao nelimitirajući primjeri, izvedbe i implementacije predmeta izuma. Various other characteristics that can be seen from the description are shown in the attached diagrams, and show, as non-limiting examples, embodiments and implementations of the subject of the invention.

Slike 10 i 11 su funkcionalni blok dijagrami koji prikazuju različite primjere programa koji nisu zaštićeni, te koji su zaštićeni postupkom u skladu s izumom. Figures 10 and 11 are functional block diagrams showing various examples of programs that are not protected, and which are protected by the method according to the invention.

Slike 20 i 22 prikazuju primjere različitih izvedbi uređaja za implementaciju postupka u skladu s izumom. Figures 20 and 22 show examples of different embodiments of the device for implementing the method according to the invention.

Slike 30 i 31 su funkcijski blok dijagrami koji objašnjavaju opći princip postupka u skladu s izumom. Figures 30 and 31 are functional block diagrams explaining the general principle of the method according to the invention.

Slike 40 i 43 su dijagrami koji prikazuju postupak zaštite u skladu s izumom primjenom principa zaštite varijablom. Figures 40 and 43 are diagrams showing the protection procedure according to the invention by applying the variable protection principle.

Slike 50 i 54 su dijagrami koji prikazuju postupak zaštite u skladu s izumom primjenom principa zaštite privremenim odvajanjem. Figures 50 and 54 are diagrams showing the protection procedure in accordance with the invention by applying the principle of protection by temporary separation.

Slike 60 i 64 su dijagrami koji prikazuju postupak zaštite u skladu s izumom primjenom principa zaštite pomoću elementarnih funkcija. Figures 60 and 64 are diagrams showing the protection procedure in accordance with the invention by applying the principle of protection using elementary functions.

Slike 70 i 74 su dijagrami koji prikazuju postupak zaštite u skladu s izumom primjenom principa zaštite detekcijom i prisilom Figures 70 and 74 are diagrams showing the protection procedure in accordance with the invention by applying the principle of protection by detection and coercion

Slike 80 i 85 su dijagrami koji prikazuju postupak zaštite u skladu s izumom primjenom principa zaštite preimenovanjem. Figures 80 and 85 are diagrams showing the protection procedure in accordance with the invention by applying the principle of protection by renaming.

Slike 90 i 92 su dijagrami koji prikazuju postupak zaštite u skladu s izumom primjenom principa zaštite uvjetnim grananjem. Figures 90 and 92 are diagrams showing the protection procedure in accordance with the invention by applying the principle of protection by conditional branching.

Slika 100 je dijagram koji prikazuje različite faze implementacije predmeta izuma. Figure 100 is a diagram showing various stages of implementation of the subject invention.

Slika 110 prikazuje izvedbu sustava koji dozvoljava implementaciju stupnja stadija izrade u fazi zaštite u skladu s izumom. Fig. 110 shows the implementation of a system that allows the implementation of the stage of the manufacturing stage in the protection stage in accordance with the invention.

Slika 120 prikazuje izvedbu pred-prilagođene jedinice koja se koristi u procesu zaštite u skladu s izumom. Fig. 120 shows an embodiment of a pre-adapted unit used in a protection process according to the invention.

Slika 130 prikazuje izvedbu sustava koji dozvoljava implementaciju alata iz stadija izrade u fazi zaštite u skladu s izumom. Figure 130 shows the implementation of a system that allows the implementation of tools from the production stage to the protection stage in accordance with the invention.

Slika 140 prikazuje izvedbu sustava koji dozvoljava implementaciju procesa zaštite u skladu s izumom. Figure 140 shows the implementation of the system that allows the implementation of the protection process in accordance with the invention.

Slika 150 prikazuje izvedbu jedinice za prilagođavanje koja se koristi procesu zaštite u skladu s izumom. Figure 150 shows an embodiment of the adaptation unit used in the protection process according to the invention.

U nastavku opisa, koristiti će se slijedeće definicije: In the following description, the following definitions will be used:

• Sustav za obradu podataka 3 je sustav sposoban izvoditi program. • Data processing system 3 is a system capable of executing a program.

• Jedinica za procesiranje i pohranjivanje je sposobna: • The processing and storage unit is capable of:

- prihvatiti podatke dobivene od sustava za obradu podataka 3, - accept the data received from the data processing system 3,

- vratiti podatke sustavu za obradu podataka 3, - return the data to the data processing system 3,

- spremiti podatke najmanje djelomično skrivene i sačuvati barem dio navedenih podataka čak i ako je jedinica isključena s napajanja, - save data at least partially hidden and save at least part of said data even if the unit is disconnected from the power supply,

- i provoditi algoritam obrade podataka, gdje su skriveni jedan dio ili svi podaci. - and implement a data processing algorithm, where a part or all of the data is hidden.

• Jedinica 6 je jedinica za procesiranje i pohranjivanje koja implementira proces u skladu s izumom. • Unit 6 is a processing and storage unit that implements the process according to the invention.

• Prazna jedinica 60 je jedinica koja ne implementira proces u skladu s izumom, ali koja može primati podatke transformirajući ih u jedinicu 6. • An empty unit 60 is a unit that does not implement a process according to the invention, but which can receive data by transforming it into a unit 6.

• Pred-prilagođena jedinica 66 je prazna jedinica 60 koja prima dio podataka omogućavajući, nakon prijema dodatnih podataka, transformaciju u jedinicu 6. • Pre-adjusted unit 66 is an empty unit 60 that receives part of the data allowing, after receiving additional data, to transform into unit 6.

• Učitavanje informacija u praznu jedinicu 60 ili pred-prilagođenu jedinicu 66 odgovara prijenosu informacija u praznu jedinicu 60 ili pred-prilagođenu jedinicu 66, i spremanje navedenih prenesenih informacija. Prijenos može eventualno uključivati promjenu formata informacije. • Loading information into blank unit 60 or pre-adapted unit 66 corresponds to transferring information to blank unit 60 or pre-adapted unit 66, and storing said transferred information. Transmission may eventually involve changing the format of the information.

• Varijabla, funkcija ili podaci sadržani u sustavu za obradu podataka 3 će biti označeni velikim slovom, dok će varijable, funkcije i podaci sadržani u jedinici 6 biti označeni malim slovom. • The variable, function or data contained in the data processing system 3 will be marked with an uppercase letter, while the variables, functions and data contained in the unit 6 will be marked with a lowercase letter.

• "Zaštićeni program" je program koji je zaštićen najmanje jednim principom zaštite implementiranim procesom u skladu s izumom. • "Protected program" is a program that is protected by at least one principle of protection by a process implemented in accordance with the invention.

• "Nezaštićeni program" je program koji nije zaštićen niti jednim principom zaštite implementiranim procesom u skladu s izumom. • "Unprotected program" is a program that is not protected by any principle of protection by the process implemented in accordance with the invention.

• U slučaju gdje razlikovanje nezaštićenog i zaštićenog programa nije bitno koristi se izraz "program". • In the case where the distinction between an unprotected and a protected program is not important, the term "program" is used.

• Program ima različite oblike koji ovise o promatranom trenutku u njegovom životnom ciklusu: • The program has different forms that depend on the observed moment in its life cycle:

- izvorni oblik - original form

- objektni oblik - object form

- distribuciju - distribution

- dinamički oblik. - dynamic form.

• Izvorni oblik je oblik za koji se podrazumijeva da nakon transformacije postaje objektni oblik. Izvorni oblik može pružiti različite oblike, od koncepcijske apstraktne razine do razine koja se izvodi direktno u sustavu za obradu podataka ili u jedinici za obradu i pohranjivanje. • The original form is a form that is understood to become an object form after transformation. The source form can provide various forms, from the conceptual abstract level to the level that is implemented directly in the data processing system or in the processing and storage unit.

• Objektni oblik programa odgovara razini prikaza na kojoj, nakon prijenosa u distribucijski oblik i učitavanja u sustav za obradu podataka ili jedinicu za procesiranje i pohranjivanje, može biti izveden. Takav oblik može biti npr. binarni kod, interpreterski kod i sl. • The object form of a program corresponds to the level of representation at which, after being transferred to a distribution form and loaded into a data processing system or processing and storage unit, it can be executed. Such a form can be, for example, binary code, interpreter code, etc.

• Distribucija je fizička ili virtualna podrška koja sadrži objektni oblik, koja se obavlja na zahtjev korisnika što mu omogućava korištenje programa. • Distribution is a physical or virtual support that contains an object form, which is performed at the request of the user, which enables him to use the program.

• Dinamički oblik odgovara izvođenju programa od strane distribucije. • The dynamic form corresponds to the execution of the program by the distribution.

• Odsječak programa odgovara nekom dijelu programa kao na primjer jednoj ili više instrukcija koje mogu, ali ne moraju biti u nizu, jednom ili više funkcijskih blokova koje mogu, ali ne moraju biti u nizu, jednoj ili više funkcija koje mogu, ali ne moraju biti u nizu jednoj ili više potprograma koje mogu, ali ne moraju biti u nizu. Odsječak programa također može sadržavati i sve navedeno. • A program section corresponds to a part of the program, such as one or more instructions that may or may not be in sequence, one or more function blocks that may or may not be in sequence, one or more functions that may or may not be in sequence one or more subroutines that may or may not be in sequence. A section of the program can also contain all of the above.

Slike 10 i 11 prikazuju različite oblike redom, nezaštićenog programa 2v u općem smislu, i zaštićenog programa 2p zaštićenog u skladu s procesom u skladu s izumom. Figures 10 and 11 show different forms, respectively, of an unprotected program 2v in the general sense, and a protected program 2p protected in accordance with the process according to the invention.

Slika 10 prikazuje različite oblike nezaštićenog programa 2v koji se pojavljuju tijekom njegovog životnog ciklusa. Nezaštićeni program 2v se prema tome pojavljuje u bilo kojem od slijedećih oblika: Figure 10 shows the various forms of an unprotected 2v program that appear during its life cycle. An unprotected 2v program therefore appears in any of the following forms:

• izvorni oblik 2vs • original form of 2vs

• objektni oblik 2vo • object form 2vo

• distribucija 2vd. Navedena distribucija može imati oblik medija za fizičku distribuciju kao što je CDROM ili datoteka distribuiranih putem mreže (GSM, Internet i dr.), • distribution 2vd. Said distribution may take the form of physical distribution media such as CDROM or files distributed via a network (GSM, Internet, etc.),

• ili dinamički oblik 2ve koji odgovara izvršenju nezaštićenog programa 2v na sustavu za obradu podataka bilo koje poznatog vrste, koji u pravilu uključuje barem jedan procesor 4. • or a dynamic form of 2ve corresponding to the execution of an unprotected program 2v on a data processing system of any known type, which as a rule includes at least one processor 4.

Slika 11 prikazuje različite izvedbe zaštićenog programa 2p koje se pojavljuju tijekom životnog ciklusa. Zaštićeni program 2p se može pojaviti u bilo kojem od slijedećih oblika: Figure 11 shows the different versions of the protected program 2p that appear during the life cycle. The protected program 2p can appear in any of the following forms:

• izvorni oblik 2ps koji uključuje prvi izvorni dio namijenjen za sustav za obradu podataka 3 i drugi izvorni dio namijenjen za jedinicu 6, gdje dio navedenih izvornih dijelova mogu biti sadržani u istoj datoteci, • the original form 2ps which includes the first original part intended for the data processing system 3 and the second original part intended for the unit 6, where part of the mentioned original parts can be contained in the same file,

• objektni oblik 2po koji uključuje prvi objektni dio 2pos namijenjen za sustav za obradu podataka 3 i drugi objektni dio 2pou namijenjen za jedinicu 6, • the object form 2po which includes the first object part 2pos intended for the data processing system 3 and the second object part 2pou intended for the unit 6,

• Distribucija 2pd uključuje: • 2pd distribution includes:

- prvi distribucijski dio 2pds koji sadrži prvi objektni dio 2pos, gdje je navedeni prvi distribucijski dio 2pds namijenjen za sustav za obradu podataka 3 i može imati oblik medija za fizičku distribuciju kao što je CDROM ili biti u formi datoteka distribuiranih putem mreže (GSM, Internet i dr.), - the first distribution part 2pds which contains the first object part 2pos, where said first distribution part 2pds is intended for the data processing system 3 and can take the form of a medium for physical distribution such as a CDROM or be in the form of files distributed via a network (GSM, Internet etc.),

- i drugi distribucijski dio 2pdu koji ima oblik: - and the second distribution part 2pdu which has the form:

▸ najmanje jedne pred-prilagođene jedinice 66 u koju se učitava drugi objektni dio 2pou i gdje korisnik završava prilagodbu učitavanjem dodatnih podataka tako da se dobiva jedinica 6, gdje se dodatni podaci mogu, na primjer, učitati preko mreže, ▸ at least one pre-customized unit 66 into which the second object part 2pou is loaded and where the user completes the customization by loading additional data so that the unit 6 is obtained, where the additional data can, for example, be loaded over the network,

▸ ili najmanje jedne jedinice 6 u koju se učitava drugi objektni dio 2pou, ▸ or at least one unit 6 into which the second object part 2pou is loaded,

• ili dinamička reprezentacija 2pe koja odgovara izvođenju zaštićenog programa 2p. Navedena dinamička reprezentacija 2pe uključuje prvi izvršni dio 2pes koji se izvodi u sustavu za obradu podataka 3 i drugi izvršni dio 2peu koji se izvodi u jedinici 6. • or a dynamic representation of 2pe corresponding to the execution of the protected program 2p. Said dynamic representation 2pe includes a first executable part 2pes which is executed in the data processing system 3 and a second executable part 2peu which is executed in the unit 6.

U slučaju gdje razlikovanje različitih oblika zaštićenog program 2p nije bitno, trebaju se koristiti izrazi prvi dio zaštićenog programa i drugi dio zaštićenog programa. In the case where the distinction between different forms of the protected program 2p is not important, the expressions first part of the protected program and second part of the protected program should be used.

Implementacija procesa u skladu s izumom i u skladu s dinamičkim oblikom na slici 11, koristi uređaj 1p koji sadrži sustav za obradu podataka 3, a koji je povezan vezom 5, sa jedinicom 6. Sustav za obradu podataka 3 može biti bilo koje vrste, a uobičajeno uključuje, najmanje jedan procesor 4. Sustav za obradu podataka 3 može biti računalo ili dio, na primjer, različitih strojeva, uređaja, fiksnih ili mobilnih proizvoda, ili posrednika u općem smislu. Veza 5 se može realizirati na bilo koji način, kao što je serijska veza, USB sabirnica, radio veza, optička veza, mrežna veza ili direktno električno spajanje na krug sustava za obradu podataka 3, i dr. Treba uočiti da jedinica 6 može fizički biti smještena unutar integriranog kruga procesora 4 sustava za obradu podataka 3. U tom slučaju, jedinicu 6 se može promatrati kao ko-procesor u odnosu na procesor 4 sustava za obradu podataka 3, a veza 5 je interna na integriranom krugu. The implementation of the process in accordance with the invention and in accordance with the dynamic form in Figure 11, uses a device 1p that contains a data processing system 3, which is connected by a connection 5, to a unit 6. The data processing system 3 can be of any type, and usually includes at least one processor 4. The data processing system 3 can be a computer or part of, for example, different machines, devices, fixed or mobile products, or intermediaries in a general sense. The connection 5 can be realized in any way, such as a serial connection, a USB bus, a radio connection, an optical connection, a network connection or a direct electrical connection to the circuit of the data processing system 3, etc. It should be noted that the unit 6 can be physically located within the integrated circuit of the processor 4 of the data processing system 3. In this case, the unit 6 can be seen as a co-processor in relation to the processor 4 of the data processing system 3, and the connection 5 is internal to the integrated circuit.

Slike 20 i 22 prikazuju, ilustrativno i u neograničavajućem značenju, različite izvedbe uređaja 1p koji dozvoljava implementaciju procesa zaštite u skladu s izumom. Figures 20 and 22 show, illustratively and in a non-limiting sense, different embodiments of the device 1p which allows the implementation of the protection process in accordance with the invention.

U izvedbi prikazanoj na slici 20, zaštitni uređaj 1p uključuje kao sustav za obradu podataka 3 u obliku računala, i jedinicu 6 sa chip karticom 7 i međusklopom 8 koji se uobičajeno naziva čitač kartice. Računalo 3 je povezano s jedinicom 6 preko veze 5. Tijekom izvođenja zaštićenog programa 2p, i prvi izvršni dio 2pes koji se izvodi u računalu 3 i drugi izvršni dio 2peu koji se izvodi u "chip" kartici 7 i njenom međusklopu 8, moraju biti funkcionalni da bi zaštićeni program 2p bio potpuno funkcionalan. In the embodiment shown in Figure 20, the protective device 1p includes as a data processing system 3 in the form of a computer, and a unit 6 with a chip card 7 and an interface 8, which is commonly called a card reader. The computer 3 is connected to the unit 6 via the connection 5. During the execution of the protected program 2p, both the first executable part 2pes which is executed in the computer 3 and the second executable part 2peu which is executed in the "chip" card 7 and its interface 8 must be functional for the protected program 2p to be fully functional.

U izvedbi prikazanoj na slici 21, uređaj za zaštitu 1p opskrbljuje proizvod 9 u općem smislu, uključujući različite komponente 10 prilagođene funkciji(ama) za koje se pretpostavlja da ima proizvod 9. Uređaj za zaštitu 1p uključuje, s jedne strane, jedinicu 6 povezanu s proizvodom 9. Ako je proizvod 9 potpuno funkcionalan, zaštićen program 2p mora biti potpuno funkcionalan. Prema tome, tijekom izvođenja zaštićenog programa 2p, i prvi izvršni dio 2pes koji je izvršen u sustavu za obradu podataka 3 i drugi izvršni dio 2peu koji se izvodi u jedinici 6 moraju biti funkcionalni. navedeni zaštićeni program 2p omogućava tako indirektno, zaštitu protiv neovlaštene uporabe, proizvoda 9 ili jedne od njegovih funkcionalnosti. Proizvod 9 može biti, na primjer, instalacija, sustav , stroj, igračka, kućanski aparat, telefon i sl. In the embodiment shown in Figure 21, the protection device 1p supplies the product 9 in a general sense, including various components 10 adapted to the function(s) assumed to have the product 9. The protection device 1p includes, on the one hand, a unit 6 connected to by product 9. If product 9 is fully functional, protected program 2p must be fully functional. Therefore, during the execution of the protected program 2p, both the first executable part 2pes which is executed in the data processing system 3 and the second executable part 2peu which is executed in the unit 6 must be functional. the mentioned protected program 2p thus indirectly provides protection against unauthorized use of product 9 or one of its functionalities. Product 9 can be, for example, an installation, system, machine, toy, household appliance, telephone, etc.

U izvedbi prikazanoj na slici 22, zaštitna aparatura 1p uključuje više računala, kao i dio komunikacijske mreže. Sustav za obradu podataka 3 je prvo računalo povezano vezom 5 mrežnog tipa na jedinicu 6 ustrojenu putem drugog računala. Za implementaciju izuma, drugo računalo 6 se koristi kao licenčni server za zaštićeni program 2p. Tijekom izvođenja zaštićenog programa 2p, i prvi izvršni dio 2pes koji se izvodi u prvom računalu 3 i drugi izvršni dio 2peu koji se izvodi na drugom računalu, moraju biti funkcionalni tako da je zaštićeni program 2p potpuno funkcionalan. In the embodiment shown in Figure 22, the protective apparatus 1p includes several computers, as well as part of the communication network. The data processing system 3 is the first computer connected by a network-type connection 5 to the unit 6 arranged via the second computer. To implement the invention, the second computer 6 is used as a license server for the protected program 2p. During the execution of the protected program 2p, both the first executable part 2pes which is executed in the first computer 3 and the second executable part 2peu which is executed in the second computer must be functional so that the protected program 2p is fully functional.

Slika 30 omogućava preciznije objašnjenje procesa zaštite u skladu s izumom. Može se uočiti da se za nezaštićeni program 2v, smatra da se izvodi u potpunosti u sustavu za obradu podataka 3. S druge strane, u slučaju implementacije zaštićenog programa 2p, sustav za obradu podataka 3 uključuje sredstvo za prijenos 12 povezano preko veze 5, na sredstvo za prijenos 13 koje je dio jedinice 6, omogućavajući uspostavljanje komunikacije između prvog izvršnog dijela 2pes i drugog izvršnog dijela 2peu zaštićenog programa 2p. Figure 30 provides a more precise explanation of the protection process according to the invention. It can be seen that for the unprotected program 2v, it is considered to be executed entirely in the data processing system 3. On the other hand, in the case of the implementation of the protected program 2p, the data processing system 3 includes a transmission means 12 connected via link 5, to the transmission means 13 which is part of the unit 6, enabling communication to be established between the first executable part 2pes and the second executable part 2peu of the protected program 2p.

Treba se uzeti u obzir da su sredstva za prijenos 12 i 13 programske i/ili sklopovske prirode i da su sposobna osigurati i eventualno optimirati razmjenu podatka između sustava za obradu podataka 3 i jedinice 6. Navedena sredstva prijenosa 12, 13 su adaptirana da omoguće raspoloživost zaštićenog programa 2p koji je , poželjno, neovisan od korištene vrste veze 5. Navedena sredstva prijenosa 12, 13 nisu dio izuma i nisu posebno opisana jer se smatra da su poznata stručnjacima. Prvi dio zaštićenog programa 2p uključuje naredbe. Tijekom izvođenja zaštićenog programa 2p, izvođenje navedenih naredbi od strane prvog izvršnog dijela 2pes omogućava komunikaciju između prvog izvršnog dijela 2pes i drugog izvršnog dijela 2peu. U ostatku opisa izuma, navedene naredbe su prikazana s IN, OUT i TRIG. It should be taken into account that the transmission means 12 and 13 are of a programming and/or circuit nature and are capable of ensuring and possibly optimizing the exchange of data between the data processing system 3 and the unit 6. The said transmission means 12, 13 are adapted to enable the availability of the protected program 2p which is, preferably, independent of the used type of connection 5. The mentioned transmission means 12, 13 are not part of the invention and are not specifically described because they are considered to be known to experts. The first part of the protected program 2p includes commands. During the execution of the protected program 2p, the execution of said commands by the first executable part 2pes enables communication between the first executable part 2pes and the second executable part 2peu. In the rest of the description of the invention, the mentioned commands are indicated by IN, OUT and TRIG.

Kako je prikazano na slici 31, da bi se dozvolila implementacija drugog izvršnog dijela 2peu zaštićenog programa 2p, jedinica 6 uključuje postupak zaštite 14. Postupak zaštite 14 uključuje postupak memoriranja 15 i postupak procesiranja 16. As shown in Fig. 31, in order to allow the implementation of the second executable part 2peu of the protected program 2p, the unit 6 includes a protection process 14. The protection process 14 includes a storing process 15 and a processing process 16.

Zbog pojednostavljenja ostatka opisa izuma, u razmatranje je uzeto prisustvo ili odsustvo jedinice 6 tijekom izvođenja zaštićenog programa 2p. U stvarnosti, slučaj kada jedinica 6 koja osigurava postupak zaštite 14 nije adaptirana za izvođenje drugog izvršnog dijela 2peu zaštićenog programa 2p također se smatra greškom, te izvođenje zaštićenog programa 2p nije ispravno. Drugim riječima: In order to simplify the rest of the description of the invention, the presence or absence of unit 6 during the execution of the protected program 2p was taken into consideration. In reality, the case when the unit 6 providing the protection process 14 is not adapted to execute the second executable part 2peu of the protected program 2p is also considered as an error, and the execution of the protected program 2p is not correct. In other words:

• kada je jedinica 6 fizički prisutna i uključuje postupak zaštite 14 prilagođen za izvođenje u drugom izvršnom dijelu 2peu zaštićenog programa 2p, uvijek se smatra da je prisutna, • when the unit 6 is physically present and includes the protection procedure 14 adapted for execution in the second executable part 2peu of the protected program 2p, it is always considered to be present,

• kada je jedinica 6 fizički prisutna, ali uključuje postupak zaštite 14 koji nije prilagođen, tj. ne dozvoljava ispravnu implementaciju drugog izvršnog dijela 2peu zaštićenog programa 2p, smatra se da je prisutna kada program radi ispravno, odnosno da nedostaje kada ne radi ispravno, • when unit 6 is physically present, but includes a protection procedure 14 that is not adapted, i.e. it does not allow the correct implementation of the second executable part 2peu of the protected program 2p, it is considered to be present when the program is working correctly, i.e. it is missing when it is not working correctly,

• i kada jedinica 6 fizički nedostaje uvijek se smatra da nedostaje. • even when unit 6 is physically missing, it is always considered missing.

U slučaju gdje je jedinica 6 izvedena kao "chip" kartica 7 i njen međusklop 8, postupak prijenosa je podijeljen u dva dijela, od kojih je jedan u međusklopu 8, a drugi u "chip" kartici 7. U ovoj izvedbi, odsustvo "chip" kartice 7 jednako je odsustvu jedinice 6. Drugim riječima, u odsustvu "chip" kartice 7 i/ili njenog međusklopa 8, postupak zaštite 14 nije dostupan pa nije moguće izvođenje drugog dijela 2peu zaštićenog programa 2p, tako da zaštićeni program 2p nije potpuno funkcionalan. In the case where the unit 6 is implemented as a "chip" card 7 and its interface 8, the transfer process is divided into two parts, one of which is in the interface 8 and the other in the "chip" card 7. In this embodiment, the absence of a "chip " of the card 7 is equal to the absence of the unit 6. In other words, in the absence of the "chip" card 7 and/or its interface 8, the protection procedure 14 is not available, so it is not possible to execute the second part 2peu of the protected program 2p, so that the protected program 2p is not fully functional .

U skladu s izumom, cilj procesa zaštite je implementacija principa zaštite "elementarnim funkcijama" čiji je opis prikazan na slikama 60 do 64. In accordance with the invention, the goal of the protection process is the implementation of the principle of protection by "elementary functions", the description of which is shown in Figures 60 to 64.

Za implementaciju principa zaštite elementarnim funkcijama, definira se: To implement the principle of protection with elementary functions, the following is defined:

• skup elementarnih funkcija koje se obavezno izvode u jedinici 6, pomoću drugog izvršnog dijela 2peu, te eventualno prenose podatke između sustava za obradu podataka 3 i jedinici 6, • a set of elementary functions that must be performed in unit 6, using the second executable part 2peu, and possibly transfer data between the data processing system 3 and unit 6,

• skup elementarnih naredbi za navedeni skup elementarnih funkcija, gdje su navedene elementarne naredbe predodređene za izvođenje u sustavu za obradu podataka 3 i za aktiviranje izvođenja odgovarajućih elementarnih funkcija u jedinici 6. • a set of elementary commands for the specified set of elementary functions, where the specified elementary commands are destined for execution in the data processing system 3 and for activating the execution of the corresponding elementary functions in the unit 6.

Za implementaciju principa zaštite pomoću elementarnih funkcija, također se konstruira postupak za eksploataciju koji omogućuje transformaciju prazne jedinice 60 u jedinicu 6 sposobnu za izvođenje elementarnih funkcija, gdje se izvođenje navedenih elementarnih funkcija aktivira izvođenjem elementarnih naredbi u sustavu za obradu podataka 3. To implement the principle of protection using elementary functions, an exploitation procedure is also constructed that enables the transformation of the empty unit 60 into a unit 6 capable of performing elementary functions, where the execution of said elementary functions is activated by executing elementary commands in the data processing system 3.

Za implementaciju principa zaštite pomoću elementarnih funkcija, također se odabire, u izvornom kodu nezaštićenog programa 2vs, najmanje jedan algoritam koji koristi najmanje jedan operand i vraća najmanje jedan rezultat. Također se odabire najmanje jedan odsječak u izvornom kodu nezaštićenog programa 2vs koji sadrži najmanje jedan algoritam. To implement the protection principle using elementary functions, at least one algorithm that uses at least one operand and returns at least one result is also selected, in the source code of the unprotected program 2vs. At least one section in the source code of the unprotected 2vs program containing at least one algorithm is also selected.

Tada je modificiran najmanje jedan izabrani odsječak izvornog koda nezaštićenog programa 2vs tako da se dobiva izvorni kod zaštićenog programa 2ps. Ova modifikacija je takva da, između ostalog: Then at least one selected section of the source code of the unprotected program 2vs was modified so that the source code of the protected program 2ps was obtained. This modification is such that, among other things:

• tijekom izvođenja zaštićenog programa 2p, najmanje jedan odsječak prvog izvršnog dijela 2pes koji se izvodi u sustavu za obradu podataka 3, uzima u obzir da se funkcionalnost najmanje jedne odabranog algoritma izvodi u jedinici 6, • during the execution of the protected program 2p, at least one section of the first executable part 2pes which is executed in the data processing system 3, takes into account that the functionality of at least one selected algorithm is executed in the unit 6,

• tijekom izvođenja zaštićenog programa 2p, drugi izvršni dio koji se izvodi u jedinici 6, izvodi najmanje jednu funkcionalnost najmanje jednog odabranog algoritma, • during the execution of the protected program 2p, the second executable part which is executed in unit 6, executes at least one functionality of at least one selected algorithm,

• svaki odabrani algoritam se dijeli tako da se tijekom izvođenja zaštićenog programa 2p, svaki izabrani algoritam izvodi korištenjem elementarnih funkcija pomoću drugog izvršnog dijela 2peu. Poželjno, svaki se izabrani algoritam dijeli u elementarne funkcije fen (gdje se n mijenja od 1 do N), poimence: • each selected algorithm is split so that during the execution of the protected program 2p, each selected algorithm is executed using elementary functions by the second executable part 2peu. Preferably, each chosen algorithm is divided into elementary functions fen (where n varies from 1 to N), namely:

- eventualno jednu ili više elementarnih funkcija koje omogućavaju smještanje jednog ili više operanada na raspolaganje jedinici 6, - possibly one or more elementary functions that enable placing one or more operands at the disposal of unit 6,

- elementarnih funkcija, gdje neke koriste operande i u kombinaciji izvode funkcionalnosti izabranih algoritama, koristeći navedene operande, - elementary functions, where some use operands and in combination perform the functionality of selected algorithms, using the specified operands,

- i eventualno jednu ili više elementarnih funkcija koje omogućavaju smještanje rezultata izabranih algoritama na raspolaganje sustavu za obradu podataka 3 preko jedinice 6, - and possibly one or more elementary functions that make it possible to place the results of the selected algorithms at the disposal of the data processing system 3 via the unit 6,

• je odbrana sekvenca elementarnih naredbi izbranih između skupa sekvenci koje dozvoljavaju izvođenje zaštićenog programa 2p. • is a selected sequence of elementary commands selected from a set of sequences that allow the execution of the protected program 2p.

Prvi izvršni dio 2pes zaštićenog programa 2p koji se izvodi u sustavu za obradu podataka 3, izvodi elementarne naredbe CFEn (gdje se n mijenja od 1 do N) koje aktiviraju, u jedinici 6, izvođenje svake od prije definiranih elementarnih funkcija fen pomoću drugog izvršnog dijela 2peu. The first executable part 2pes of the protected program 2p executed in the data processing system 3 executes elementary commands CFEn (where n changes from 1 to N) which activate, in unit 6, the execution of each of the previously defined elementary functions fen by the second executable part 2 peu.

Slika 60 prikazuje primjer izvođenja nezaštićenog programa 2v. U ovom primjeru, u sustavu za obradu podataka 3 tijekom izvršavanja nezaštićenog programa 2v dolazi do, u određenom trenutku, izračunavanja Z←F(X, Y) koje odgovara pridruživanju rezultata algoritma prikazanog funkcijom F koja koristi operande X i Y varijabli Z. Figure 60 shows an example of the execution of an unprotected program 2v. In this example, in the data processing system 3 during the execution of the unprotected program 2v there occurs, at a certain time, the calculation Z←F(X, Y) corresponding to the association of the result of the algorithm represented by the function F using the operands X and Y of the variable Z.

Slika 61 prikazuje primjer implementacije izuma za koji je odabrani algoritam sa slike 60 izdvojen u jedinicu 6. U ovom primjeru, tijekom izvođenja prvog izvršnog dijela 2pes zaštićenog programa 2p u sustavu za obradu podataka 3 i u prisutnosti jedinice 6, dolazi do: Figure 61 shows an example of the implementation of the invention for which the selected algorithm from Figure 60 is separated into unit 6. In this example, during the execution of the first executable part 2pes of the protected program 2p in the data processing system 3 and in the presence of unit 6, occurs:

• u trenucima t1, t2, izvođenja elementarnih naredbi CFE1, CFE2 aktivirajući u jedinici 6 izvođenje odgovarajućih elementarnih funkcija fe1, fe2 pomoću drugog izvršnog dijela 2peu, čime se osigurava prijenos podataka X, Y iz sustava za obradu podataka 3 u memorijska područja redom x, y locirana u memoriji 15 jedinice 6, a gdje se navedene elementarne naredbe CFE1, CFE2 prikazane redom s OUT(x, X), OUT(y, Y), • at times t1, t2, execution of elementary commands CFE1, CFE2 activating in unit 6 the execution of corresponding elementary functions fe1, fe2 by means of the second executive part 2peu, which ensures the transfer of data X, Y from the data processing system 3 to the memory areas in order x, y located in the memory 15 of the unit 6, and where the mentioned elementary commands CFE1, CFE2 are displayed respectively with OUT(x, X), OUT(y, Y),

• u trenutcima t3 do tN-1 izvođenje elementarnih naredbi CFE3 do CFEN-1 aktivira izvođenje odgovarajućih funkcija fe3 do feN-1 u jedinici 6 pomoću drugog izvršnog dijela 2peu, gdje su navedene elementarne naredbe CFE3 do CFEN-1 prikazane, redom, s TRIG(fe3) do TRIG(feN-1). Niz elementarnih funkcija fe3 do feN-1 izvršenih u kombinaciji algoritamski je ekvivalent funkcije F. Preciznije, izvođenje navedenih elementarnih naredbi vodi izvođenju, u jedinici 6, elementarnih funkcija fe3 do feN-1 koje koriste sadržaj memorijskih područja x, y i vraćaju rezultat u memorijsko područje z jedinice 6, • at times t3 to tN-1, the execution of elementary commands CFE3 to CFEN-1 activates the execution of the corresponding functions fe3 to feN-1 in unit 6 by means of the second executable part 2peu, where the specified elementary commands CFE3 to CFEN-1 are displayed, respectively, with TRIG (fe3) to TRIG(feN-1). A series of elementary functions fe3 to feN-1 executed in combination is the algorithmic equivalent of function F. More precisely, the execution of the mentioned elementary commands leads to the execution, in unit 6, of elementary functions fe3 to feN-1 that use the contents of memory areas x, y and return the result to the memory area from unit 6,

• u trenutku tN, izvođenje elementarne naredbe CFEN aktivira, u jedinici 6, izvođenje elementarne funkcije feN pomoću drugog izvršnog dijela 2peu, osiguravajući prijenos rezultata algoritma, sadržanog u memorijskoj zoni z jedinice 6 u sustav za obradu podataka 3, tako da je pridruži varijabli Z, gdje se navedena elementarna naredba CFEN prikazuje s IN(z). • at the moment tN, the execution of the elementary command CFEN activates, in unit 6, the execution of the elementary function feN by means of the second executable part 2peu, ensuring the transfer of the result of the algorithm, contained in the memory zone z of unit 6 to the data processing system 3, by attaching it to the variable Z , where the specified elementary command CFEN is represented by IN(z).

U prikazanom primjeru, elementarne naredbe 1 do N se izvode slijedno. Treba se uočiti da se mogu postići dva unapređenja: In the shown example, elementary commands 1 to N are executed sequentially. It should be noted that two improvements can be achieved:

• Prvo unapređenje se odnosi na slučaj gdje je više algoritama izdvojeno u jedinicu 6 i najmanje rezultat jednog algoritma se koristi u drugom algoritmu. U tome slučaju mogu se eventualno ukloniti neke elementarne naredbe koje se koriste za prijenos. • The first improvement refers to the case where several algorithms are separated into unit 6 and at least the result of one algorithm is used in another algorithm. In this case, some elementary commands used for transmission can possibly be removed.

• Drugo unapređenje se odnosi na odlučivanje za prikladnu sekvencu elementarnih naredbi između skupa sekvenci koje dozvoljavaju izvođenje zaštićenog programa 2p. S obzirom na to, poželjno je izabrati sekvencu elementarnih naredbi koje privremeno odvajaju izvođenje elementarnih funkcija, ubacujući između njih, odsječke koda koji se izvodi u sustavu za obradu podataka 3 i može ali ne mora uključivati elementarne naredbe koje se koriste za određivanje drugih podataka. Slike 62 i 63 prikazuju princip takve izvedbe. • The second improvement refers to deciding on a suitable sequence of elementary commands from among the set of sequences that allow the execution of the protected program 2p. In view of this, it is desirable to choose a sequence of elementary commands that temporarily separate the execution of elementary functions, inserting between them, sections of code executed in the data processing system 3 and may or may not include elementary commands used to determine other data. Figures 62 and 63 show the principle of such a design.

Slika 62 prikazuje primjer izvođenja nezaštićenog programa 2v. U ovom primjeru, tijekom izvođenja nezaštićenog programa 2v dolazi, u sustavu za obradu podataka 3, do izvođenja dvaju algoritma koji vode određivanju Z i Z', takvih da je Z←F(X, Y) i Z'←F'(X', Y'). Figure 62 shows an example of the execution of an unprotected program 2v. In this example, during the execution of the unprotected program 2v, in the data processing system 3, the execution of two algorithms leading to the determination of Z and Z' occurs, such that Z←F(X, Y) and Z'←F'(X' , Y').

Slika 63 prikazuje primjer implementacije procesa u skladu s izumom za koji su dva odabrana algoritma odabrana sa slike 62 izdvojena u jedinicu 6. U skladu s ovim primjerom, tijekom izvođenja prvog izvršnog dijela 2pes zaštićenog programa 2p u sustavu za obradu podataka 3 i u prisutnosti jedinice 6, dolazi do, kako je prije objašnjeno, izvođenja elementarnih naredbi CFE1 do CEFN što odgovara određivanju Z i izvođenja elementarnih naredbi CFE'1 do CEF'M što odgovara određivanju Z'. Kako je prikazano, elementarne naredbe CFE1 do CFEN se ne izvode u nizu, jer su umetnute elementarne naredbe CFE'1 do CFE'M kao i drugi odsječci koda. U primjeru, izvodi se dakle slijedeća sekvenca: CFE1, odsječak umetnutog koda, CFE'1, CFE2, odsječak umetnutog koda, CFE'2, CFE'3, odsječak umetnutog koda, CFE'4, CFE3, CFE4,..., CFEN, CFE'M. Fig. 63 shows an example of the implementation of the process according to the invention for which the two selected algorithms selected from Fig. 62 are separated into the unit 6. According to this example, during the execution of the first executable part 2pes of the protected program 2p in the data processing system 3 and in the presence of the unit 6 , there is, as previously explained, the execution of elementary commands CFE1 to CEFN corresponding to the determination of Z and the execution of elementary commands CFE'1 to CEF'M corresponding to the determination of Z'. As shown, elementary statements CFE1 through CFEN are not executed in sequence, because elementary statements CFE'1 through CFE'M are inserted as well as other code segments. In the example, the following sequence is performed: CFE1, embedded code segment, CFE'1, CFE2, embedded code segment, CFE'2, CFE'3, embedded code segment, CFE'4, CFE3, CFE4,..., CFEN , CFE'M.

Treba uočiti da se tijekom izvođenja zaštićenog programa 2p, u prisutnosti jedinice 6, svaki puta kada elementarna naredba sadržana u odsječku prvog izvršnog dijela 2pes zaštićenog programa 2p to nametne, izvodi odgovarajuća elementarna funkcija u jedinici 6. Dakle, dešava se da u prisutnosti jedinice 6, navedeni dio izvodi ispravno te da je, posljedično, zaštićeni program 2p potpuno funkcionalan. It should be noted that during the execution of the protected program 2p, in the presence of unit 6, every time the elementary command contained in the section of the first executable part 2pes of the protected program 2p imposes it, the corresponding elementary function is executed in unit 6. So, it happens that in the presence of unit 6 , the specified part executes correctly and that, consequently, the protected program 2p is fully functional.

Slika 64 prikazuje primjer pokušaja izvođenja zaštićenog programa 2p, kada jedinica 6 nedostaje. U ovom primjeru, tijekom izvođenja prvog izvršnog dijela 2pes zaštićenog programa 2p u sustavu za obradu podataka 3, u bilo kojem trenutku izvođenje elementarne naredbe ne može aktivirati izvođenje odgovarajuće elementarne funkcije zbog nedostatka jedinice 6. Vrijednost koja se pridružuje varijabli Z ne može se ispravo odrediti. Figure 64 shows an example of an attempt to execute the protected program 2p, when unit 6 is missing. In this example, during the execution of the first executable part 2pes of the protected program 2p in the data processing system 3, at any time the execution of the elementary command cannot activate the execution of the corresponding elementary function due to the lack of unit 6. The value attached to the variable Z cannot be determined correctly .

Zato dolazi do toga, da u odsutnosti jedinice 6, ne može biti ispunjen ispravno najmanje jedan zahtjev od odsječka prvog izvršnog dijela 2pes zaštićenog programa 2p za aktiviranjem izvođenja elementarne funkcije u jedinici 6, tako da najmanje navedeni odsječak ne može biti izveden ispravno te da, posljedično, zaštićeni program 2p nije potpuno funkcionalan. That is why it happens that in the absence of unit 6, at least one request from the section of the first executable part 2pes of the protected program 2p to activate the execution of the elementary function in unit 6 cannot be fulfilled correctly, so that the section mentioned at least cannot be executed correctly and that, consequently, the protected program 2p is not fully functional.

U skladu s drugom naprednom karakteristikom izuma, cilj procesa zaštite je implementacija principa zaštite "varijablom" čiji je opis prikazan na slikama 40 do 43. In accordance with another advanced feature of the invention, the goal of the protection process is to implement the "variable" protection principle, the description of which is shown in Figures 40 to 43.

Za implementaciju principa zaštite varijablom, u izvornom kodu nezaštićenog programa 2vs se odabire barem jedna varijabla 2vs koja, tijekom izvođenja nezaštićenog programa 2v, djelomično definira njegovo stanje. Pod stanjem programa treba se podrazumijevati skup dijelova informacija koje su u danom trenutku neophodne za ispravno izvođenje navedenog programa, tako da odsustvo ovako odabranih varijabli ometa potpuno izvođenje navedenog programa. Također se odabire najmanje jedan dio izvornog koda nezaštićenog programa 2vs koji sadrži najmanje jednu odabranu varijablu. To implement the variable protection principle, at least one 2vs variable is selected in the source code of the unprotected program 2vs, which, during the execution of the unprotected program 2v, partially defines its state. The state of the program should be understood as a set of pieces of information that are necessary at a given moment for the correct execution of the specified program, so that the absence of variables selected in this way hinders the complete execution of the specified program. At least one part of the source code of the unprotected 2vs program containing at least one selected variable is also selected.

Najmanje jedan odabrani odsječak izvornog koda nezaštićenog programa 2vs se tada modificira, tako da se dobije izvorni kod zaštićenog programa 2ps. Ova modifikacija je takva da tijekom izvođenja zaštićenog programa 2p, najmanje jedan odsječak prvog izvršnog dijela 2pes koji se izvodi u sustavu za obradu podataka 3, uzima u obzir da najmanje jedna izabrana varijabla ili najmanje jedna kopija odabrane varijable ostaje u jedinici 6. At least one selected portion of the source code of the unprotected program 2vs is then modified, so that the source code of the protected program 2ps is obtained. This modification is such that during the execution of the protected program 2p, at least one segment of the first executable 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 the selected variable remains in the unit 6.

Slika 40 prikazuje primjer izvođenja nezaštićenog programa 2v. U ovom primjeru, tijekom izvođenja nezaštićenog programa 2v u sustavu za obradu podataka 3, dolazi do: Figure 40 shows an example of the execution of an unprotected program 2v. In this example, during the execution of unprotected program 2v in data processing system 3, the following occurs:

• u trenutku t1, prijenosa podatka X na varijablu V1, prikazan s V1←X • at time t1, data X is transferred to variable V1, represented by V1←X

• u trenutku t2, prijenosa vrijednosti V1 na varijablu Y, prikazan s Y←V1 • at time t2, the value of V1 is transferred to the variable Y, represented by Y←V1

• u trenutku t2, prijenosa vrijednosti V1 na varijablu Z, prikazan s Z←V1 • at time t2, the value of V1 is transferred to the variable Z, represented by Z←V1

Slika 41 prikazuje primjer prvog načina implementacije izuma kod kojeg varijabla ostaje u jedinici 6. U ovom primjeru, tijekom izvođenja prvog izvršnog dijela 2pes zaštićenog programa 2p u sustavu za obradu podataka 3, i u prisutnosti jedinice 6, dolazi do: Figure 41 shows an example of the first way of implementing the invention where the variable remains in the unit 6. In this example, during the execution of the first executable part 2pes of the protected program 2p in the data processing system 3, and in the presence of the unit 6, occurs:

• u trenutku t1, izvođenja naredbe za aktiviranje prijenosa podataka aktivira prijenos podatka X iz sustava za obradu podataka 3 u varijablu v1 smještenu u memoriji 15 jedinice 6, a navedena naredba prijenosa se prikazuju s OUT(v1, X) i odgovara završetku pridruživanja podatka X varijabli v1, • at time t1, the execution of the command to activate the data transfer activates the transfer of data X from the data processing system 3 to the variable v1 located in the memory 15 of the unit 6, and the specified transfer command is displayed with OUT(v1, X) and corresponds to the completion of the association of data X variables v1,

• u trenutku t2, izvođenja naredbe za aktiviranje prijenosa varijable v1 pohranjene u jedinici 6 u sustav za obradu podataka 3 tako da je pridruži varijabli Y, a navedeni prijenos se prikazuju s IN(v1) i odgovara završetku pridruživanja vrijednosti varijable v1 varijabli Y, • at time t2, execution of the command to activate the transfer of the variable v1 stored in the unit 6 to the data processing system 3 so as to associate it with the variable Y, and said transfer is indicated by IN(v1) and corresponds to the completion of the association of the value of the variable v1 with the variable Y,

• u trenutku t3, izvođenje naredbe za aktiviranje prijenosa v1 pohranjene u jedinici 6 u sustav za obradu podataka 3 tako da je pridruži varijabli Z, a navedeni prijenos se prikazuju s IN(v1) i odgovara završetku pridruživanja vrijednosti varijable v1 varijabli Z. • at time t3, executing a command to activate the transfer v1 stored in the unit 6 to the data processing system 3 by associating it with the variable Z, and said transfer is represented by IN(v1) and corresponds to the completion of associating the value of the variable v1 with the variable Z.

Može se zapaziti da se tijekom izvođenja zaštićenog programa 2p, najmanje jedna varijabla nalazi u jedinici 6. Dakle, kada odsječak prvog izvršnog dijela 2pes zaštićenog programa 2p to nametne, i u prisutnosti jedinice 6, vrijednost varijable smještene u jedinici 6 se prenosi u sustav za obradu podataka 3 kako bi se upotrijebila od strane prvog izvršnog dijela 2pes zaštićenog programa 2p, tako da se navedeni odsječak izvodi ispravno te da je, posljedično, zaštićeni program 2p potpuno funkcionalan. It can be observed that during the execution of the protected program 2p, at least one variable is located in the unit 6. Thus, when the segment of the first executable part 2pes of the protected program 2p imposes it, and in the presence of the unit 6, the value of the variable located in the unit 6 is transferred to the processing system data 3 to be used by the first executable part 2pes of the protected program 2p, so that said section is executed correctly and, consequently, the protected program 2p is fully functional.

Slika 42 prikazuje primjer drugog oblika implementacije izuma kod kojeg se kopija varijable nalazi u jedinici 6. U ovom primjeru tijekom izvođenja prvog izvršnog dijela 2pes zaštićenog programa 2p u sustavu za obradu podataka 3, i u prisustvu jedinice 6, dolazi do: Figure 42 shows an example of another form of implementation of the invention in which a copy of the variable is located in the unit 6. In this example, during the execution of the first executable part 2pes of the protected program 2p in the data processing system 3, and in the presence of the unit 6, occurs:

• u trenutku t1, pridruživanja varijable x varijabli V1 lociranoj u sustavu za obradu podataka 3, kao i izvođenje naredbe aktiviranja prijenosa podatka X u sustavu za obradu podataka 3 varijabli v1 lociranoj u memoriji 15 jedinice 6, a navedeni prijenos se prikazuje u obliku OUT(v1, X), • at time t1, associating the variable x to the variable V1 located in the data processing system 3, as well as executing the command to activate the transfer of data X in the data processing system 3 to the variable v1 located in the memory 15 of the unit 6, and the specified transfer is displayed in the form of OUT( v1, X),

• u trenutku t2, pridruživanja vrijednosti varijable V1 varijabli X, • at the moment t2, when the value of the variable V1 is associated with the variable X,

• i u trenutku t3, izvođenja naredbe za aktiviranje prijenosa vrijednosti varijable v1 koja se nalazi u jedinici 6 u sustav za obradu podataka 6 tako da je pridrži varijabli Z, a navedena naredba prijenosa se prikazuje kao IN(v1). • and at time t3, executing a command to activate the transfer of the value of the variable v1 located in the unit 6 to the data processing system 6 by holding it to the variable Z, and said transfer command is displayed as IN(v1).

Treba uočiti da je tijekom izvođenja zaštićenog programa 2p, najmanje jedna kopija varijable pohranjena u jedinici 6. Dakle, kada odsječak prvog izvršnog dijela 2pes zaštićenog programa 2p to nalaže, i u prisutnosti jedinice 6, vrijednost navedene kopije varijable koja se nalazi u jedinici 6 prijenosi se u sustav za obradu podataka 3 da bi je upotrijebio prvi izvršni dio 2pes zaštićenog programa 2p, tako da se navedeni odsječak izvodi ispravno te da je, posljedično, zaštićeni program 2p potpuno funkcionalan. It should be noted that during the execution of the protected program 2p, at least one copy of the variable is stored in the unit 6. Thus, when the section of the first executable part 2pes of the protected program 2p so requires, and in the presence of the unit 6, the value of the specified copy of the variable located in the unit 6 is transferred to the data processing system 3 to be used by the first executable part 2pes of the protected program 2p, so that said section is executed correctly and, consequently, the protected program 2p is fully functional.

Slika 43 prikazuje primjer pokušaja izvođenja zaštićenog programa 2p kada nedostaje jedinica 6. U ovom primjeru, tijekom izvođenja prvog izvršnog dijela 2pes zaštićenog programa 2p u sustavu za obradu podataka 3: Figure 43 shows an example of an attempt to execute the protected program 2p when unit 6 is missing. In this example, during the execution of the first executable part 2pes of the protected program 2p in data processing system 3:

• u trenutku t1 izvođenje naredbe prijenosa OUT(v1, X) ne može aktivirati prijenos podataka X varijabli v1, s obzirom da nedostaje jedinica 6, • at time t1 the execution of the transfer command OUT(v1, X) cannot activate the transfer of data X to the variable v1, given that unit 6 is missing,

• u trenutku t2, izvođenje naredbe prijenosa IN(v1) ne može aktivirati prijenos vrijednosti varijable v1 u sustav za obradu podataka 3, s obzirom da nedostaje jedinica 6, • at time t2, the execution of the transfer command IN(v1) cannot activate the transfer of the value of the variable v1 to the data processing system 3, given that the unit 6 is missing,

• i u trenutku t3, izvođenje naredbe prijenosa IN(v1) ne može aktivirati prijenos vrijednosti varijable v1 u sustav za obradu podataka 3, s obzirom da nedostaje jedinica 6. • and at time t3, the execution of the transfer instruction IN(v1) cannot activate the transfer of the value of the variable v1 to the data processing system 3, given that the unit 6 is missing.

Vidljivo je dakle da u odsutnosti jedinice 6 najmanje jedan zahtjev odsječka prvog izvršnog dijela 2pes za upotrebom varijable ili kopije varijable koja se nalazi u jedinici 6 ne može biti ispravno ispunjen tako da se najmanje navedeni odsječak ne izvodi ispravno te da, posljedično, zaštićeni program 2p nije potpuno funkcionalan. It is therefore visible that in the absence of unit 6, at least one request of the section of the first executable part 2pes for the use of a variable or a copy of the variable located in unit 6 cannot be correctly fulfilled, so that the section mentioned at least is not executed correctly and, consequently, the protected program 2p not fully functional.

Treba uočiti da prijenos podataka između sustava za obradu podataka 3 i jedinice 6 prikazan u prethodnom primjeru koristi samo jednostavno pridruživanje, ali stručnjaci je poznato kako ih se može kombinirati s drugim operacijama da se dobiju složene operacije kao što je na primjer OUT(v1,2*X+3) ili Z←(5*v1+v2). It should be noted that the data transfer between the data processing system 3 and the unit 6 shown in the previous example uses only a simple join, but it is known to those skilled in the art that it can be combined with other operations to obtain complex operations such as for example OUT(v1,2 *X+3) or Z←(5*v1+v2).

U skladu s drugom prednosti izuma, proces zaštite ima za cilj implementaciju principa zaštite nazvanog "detekcije i prisile" , čiji je opis iznese u odnosu na slike 70 do 74. In accordance with the second advantage of the invention, the protection process aims to implement the protection principle called "detection and coercion", the description of which is presented in relation to figures 70 to 74.

Za implementaciju principa zaštite detekcijom i prisilom definirani su: To implement the principles of protection by detection and coercion, the following are defined:

• najmanje jedna karakteristika izvođenja podložna najmanje djelomičnom praćenju u jedinici 6, • at least one performance characteristic subject to at least partial monitoring in unit 6,

• najmanje jedan kriterij koji treba ispuniti za najmanje jednu karakteristiku izvođenja programa, • at least one criterion that needs to be met for at least one characteristic of program execution,

• postupak detekcije 17 koji se implementira u jedinici 6 a omogućava da se detektira da najmanje jedna karakteristika izvođenja programa nije ispunjena za najmanje jedan pridruženi kriterij, • the detection procedure 17 which is implemented in unit 6 a allows to detect that at least one characteristic of the program execution is not fulfilled for at least one associated criterion,

• postupak prisile 18 koji se implementira u jedinici 6 i omogućava informiranje sustav za obradu podataka 3 i/ili modifikaciju izvođenja programa, kada nije ispunjen najmanje jedan kriterij. • the coercion procedure 18, which is implemented in unit 6 and enables the data processing system 3 to be informed and/or program execution modified, when at least one criterion is not met.

Za implementaciju principa zaštite detekcijom i prisilom, također se izrađuje postupak za eksploataciju koji omogućava transformaciju prazne jedinice 60 u jedinicu 6 implementacijom najmanje postupka detekcije 17 i postupka prisile 18. To implement the principle of protection by detection and coercion, an exploitation procedure is also created that enables the transformation of the empty unit 60 into unit 6 by implementing at least the detection procedure 17 and the coercion procedure 18.

Slika 70 prikazuje postupke neophodne za implementaciju principa zaštite detekcijom i prisilom. Jedinica 6 uključuje postupak detekcije 17 i postupak prisile 18 koji pripadaju dijelu za procesiranje 16. Postupak prisile 18 se informira od strane postupka detekcije 17 da kriteriji nisu ispunjeni. Figure 70 shows the procedures necessary to implement the principles of protection by detection and coercion. Unit 6 includes a detection procedure 17 and a forcing procedure 18 belonging to the processing part 16. The forcing procedure 18 is informed by the detection procedure 17 that the criteria are not met.

Preciznije, postupak detekcije 17 koristi informacije koje dolaze od postupka prijenosa 13 i/ili memorije 15 i/ili dijela za procesiranje 16, tako da se prati jedna ili više karakteristika izvođenja programa. Za svaku karakteristiku izvođenja programa postavlja se najmanje jedan kriterij koji treba ispuniti. More precisely, the detection process 17 uses the information coming from the transmission process 13 and/or the memory 15 and/or the processing part 16, so that one or more characteristics of the program execution are monitored. For each characteristic of program execution, at least one criterion is set that must be fulfilled.

U slučaju kada je detektirana najmanje jedna karakteristika izvođenja programa koja nije ispunjena kod najmanje jednog kriterija, postupak detekcije 17 informira postupak prisile 18 o tome. Navedeni postupak prisile 18 se adaptira da modificira, na odgovarajući način, stanje jedinice 6. In the case when at least one characteristic of the program execution is detected that is not fulfilled in at least one criterion, the detection process 17 informs the forcing process 18 about it. Said forcing procedure 18 is adapted to modify, in an appropriate manner, the state of unit 6.

Za implementaciju principa zaštite detekcijom i prisilom, također se odabiru: To implement the principle of protection by detection and coercion, the following are also selected:

• najmanje jedna karakteristika programa za praćenje, između karakteristika izvođenja programa koje se mogu pratiti, • at least one characteristic of the program to monitor, among the characteristics of program execution that can be monitored,

• najmanje jedan kriterij koji treba ispuniti za najmanje jednu odabranu karakteristiku izvođenja programa, • at least one criterion that needs to be met for at least one selected characteristic of program execution,

• u izvornom kodu nezaštićenog programa 2vs, najmanje jedan algoritam za koji se prati karakteristika izvođenja programa, • in the source code of the unprotected 2vs program, at least one algorithm for which the program execution characteristic is monitored,

• i u izvornom kodu nezaštićenog programa 2vs, najmanje jedan odsječak najmanje jednog algoritma. • and in the source code of the unprotected 2vs program, at least one segment of at least one algorithm.

Najmanje jedan izabrani odsječak izvornog koda nezaštićenog programa 2vs se modificira, tako da se dobiva izvorni kod zaštićenog programa 2ps. Ova modifikacije je takva da, tijekom izvođenja zaštićenog programa 2p, između ostalog: At least one selected section of the source code of the unprotected program 2vs is modified, so that the source code of the protected program 2ps is obtained. This modification is such that, during the execution of the protected program 2p, among other things:

• najmanje jedan odsječak prvog izvršnog dijela 2pes, koji se izvodi u sustavu za obradu podataka 3, uzima u obzir da se prati najmanje jedna izabrana karakteristika izvođenja programa, najmanje djelomično, u jedinici 6, • at least one segment of the first executable part 2pes, which is executed in the data processing system 3, takes into account that at least one selected characteristic of the execution of the program is monitored, at least partially, in the unit 6,

• i drugi izvršni dio 2peu, koji se izvodi u jedinici 6, prati najmanje djelomično odabranu karakteristiku izvođenja programa. • and the second executable part 2peu, which is executed in unit 6, follows at least a partially selected characteristic of program execution.

Tijekom izvođenja zaštićenog programa 2p, zaštitom ovim principom zaštite detekcijom i prisile, u prisutnosti jedinice 6: During the execution of the protected program 2p, protected by this principle of protection by detection and coercion, in the presence of unit 6:

• tako dugo dok su ispunjeni svi kriteriji koji odgovaraju praćenim karakteristikama izvođenja svih modificiranih odsječaka zaštićenog programa 2p, navedeni odsječak zaštićenog programa 2p radi ispravno, tako da navedeni zaštićeni program 2p radi ispravno, • as long as all the criteria corresponding to the monitored performance characteristics of all modified sections of the protected program 2p are met, the said section of the protected program 2p works correctly, so that the said protected program 2p works correctly,

• i ako najmanje jedan od kriterija koji odgovaraju praćenim karakteristikama izvođenja odsječka zaštićenog programa 2p nije ispunjen, sustav za obradu podataka 3 se informira o tome i/ili je funkcioniranju odsječka zaštićenog programa 2p modificirano, tako da je funkcioniranje zaštićenog programa 2p modificirano. • and if at least one of the criteria corresponding to the monitored performance characteristics of the segment of the protected program 2p is not met, the data processing system 3 is informed about this and/or the functioning of the segment of the protected program 2p is modified, so that the functioning of the protected program 2p is modified.

Prirodno, u odsutnosti jedinice 6, najmanje jedan zahtjev odsječka prvog izvršnog dijela 2pes zaštićenog programa 2p za korištenjem jedinice 6 ne može biti ispunjen ispravno tako da se najmanje navedeni odsječak ne izvodi ispravno te da, posljedično, zaštićeni program 2p nije potpuno funkcionalan. Naturally, in the absence of unit 6, at least one request of the section of the first executable part 2pes of the protected program 2p to use unit 6 cannot be fulfilled correctly so that the at least said section is not executed correctly and, consequently, the protected program 2p is not fully functional.

Za implementaciju principa zaštite detekcijom i prisilom, preferiraju se dva tipa karakteristika izvođenja programa. To implement the principles of protection by detection and coercion, two types of program execution characteristics are preferred.

Prvi tip karakteristike izvođenja programa odgovara mjerenju izvođenja programa, a drugi odgovara profilu korištenja programa. Navedena dva tipa karakteristika mogu biti korišteni nezavisno ili u kombinaciji. The first type of program performance characteristic corresponds to the measurement of program performance, and the second corresponds to the program usage profile. The mentioned two types of characteristics can be used independently or in combination.

Za implementaciju principa zaštite detekcijom i prisilom korištenjem, kao karakteristike izvođenja, varijable koja mjeri izvođenje programa, definirani su: To implement the principle of protection by detection and coercion using, as a performance characteristic, a variable that measures the performance of the program, the following are defined:

• u memoriji 15, mogućnost pohranjivanja najmanje jedne varijable kojom se mjeri korištenje najmanje jedne funkcionalnosti programa, • in memory 15, the possibility of storing at least one variable that measures the use of at least one functionality of the program,

• u postupku detekcije 17, mogućnost praćenja najmanje jednog praga pridruženog svakoj mjernoj varijabli, • in the detection procedure 17, the possibility of monitoring at least one threshold associated with each measurement variable,

• i postupka aktualizacije koji omogućava osvježivanje svake mjerne varijable ovisno o korištenju funkcionalnosti koja joj je pridružena. • and the actualization procedure that enables each measurement variable to be refreshed depending on the use of the functionality associated with it.

Također je konstruiran postupak za eksploataciju koji implementira postupak aktualizacije u dodatku postupku detekcije 17 i postupku prisile 18. An exploitation procedure is also constructed that implements the actualization procedure in addition to the detection procedure 17 and the forcing procedure 18 .

Također se odabire, u izvornom kodu zaštićenog programa 2vs: It is also selected, in the source code of the protected program 2vs:

• najmanje jedna karakteristika izvođenja programa 2p čije korištenje se prati korištenjem mjerne varijable, • at least one characteristic of program execution 2p, the use of which is monitored using a measurement variable,

• najmanje jedna varijabla kojom se mjeri korištenje navedene funkcionalnosti, • at least one variable that measures the use of the specified functionality,

• najmanje jedan prag pridružen mjernoj varijabli što odgovara granici korištenja navedene funkcionalnosti, • at least one threshold associated with the measurement variable that corresponds to the limit of use of the specified functionality,

• i najmanje jedna metoda osvježivanja mjerne varijable u zavisnosti o korištenju navedene funkcionalnosti. • and at least one method of refreshing the measurement variable depending on the use of the mentioned functionality.

Izvorni kod nezaštićenog programa 2vs tada se modificira, tako da se dobiva izvorni kod zaštićenog programa 2ps, s time da je modifikacija takva da tijekom izvođenja zaštićenog programa 2p, drugi izvršni dio 2peu: The source code of the unprotected program 2vs is then modified, so that the source code of the protected program 2ps is obtained, with the modification being such that during the execution of the protected program 2p, the second executable part 2peu:

• aktualizira mjernu varijablu koja mjeri korištenje navedene funkcionalnosti, • updates the measurement variable that measures the use of the specified functionality,

• i također uzima u obzir najmanje jedan prijelaz praga. • and also takes into account at least one threshold crossing.

Drugim riječima, tijekom izvođenja zaštićenog programa 2p, mjerna varijabla se osvježava ovisno o korištenju navedene funkcionalnosti, i kada je pređen prag, postupak detekcije 17 informira o tome postupak prisile 18 koji donosi prilagođenu odluku o informiranju sustava za obradu podataka 3 i/ili o modifikaciji procesiranja koje izvodi dio za procesiranje 16, čime se omogućava modifikacija funkcioniranja odsječka zaštićenog programa 2p, tako da je i funkcioniranje zaštićenog programa 2p modificirano. In other words, during the execution of the protected program 2p, the measurement variable is refreshed depending on the use of the specified functionality, and when the threshold is exceeded, the detection process 17 informs the enforcement process 18 about it, which makes a customized decision to inform the data processing system 3 and/or about the modification processing performed by the processing part 16, which enables the modification of the functioning of the section of the protected program 2p, so that the functioning of the protected program 2p is also modified.

Za implementaciju prve preferirane varijante izuma principa zaštite detekcijom i prisilom korištenjem, kao karakteristike, mjerne varijable, definirani su: To implement the first preferred variant of the invention of the principle of protection by detection and coercion using, as characteristics, measurement variables, the following are defined:

• za najmanje jednu mjernu varijablu, nekoliko pridruženih pragova, • for at least one measurement variable, several associated thresholds,

• i različiti postupci prisile koji odgovaraju svakom od navedenih pragova. • and different coercive procedures corresponding to each of the mentioned thresholds.

Također se odabire, u izvornom kodu nezaštićenog programa 2vs: It is also selected, in the source code of the unprotected 2vs program:

• najmanje jedna varijabla koja mjeri korištenje najmanje jedne funkcionalnosti programa i kojoj mora biti pridruženo više pragova što odgovara različitim granicama korištenja navedenih funkcionalnosti, • at least one variable that measures the use of at least one functionality of the program and which must be associated with several thresholds that correspond to different limits of the use of the mentioned functionalities,

• i najmanje dva praga pridružena mjernoj varijabli. • and at least two thresholds associated with the measurement variable.

Izvorni kod nezaštićenog programa 2vs tada se modificira, tako da se dobiva izvorni kod zaštićenog programa 2ps, a ta modifikacija je takva da, tijekom izvođenja zaštićenog programa 2p, drugi izvršni dio 2peu: The source code of the unprotected program 2vs is then modified, so that the source code of the protected program 2ps is obtained, and this modification is such that, during the execution of the protected program 2p, the second executable part 2peu:

• aktualizira mjernu varijablu ovisno o korištenju navedene funkcionalnosti, • updates the measurement variable depending on the use of the specified functionality,

• i uzima u obzir, odvojeno, prijelaze različitih pragova. • and takes into account, separately, the transitions of different thresholds.

Drugim riječima, uobičajeno, tijekom izvođenja zaštićenog programa 2p, kada je pređen prvi prag, jedinica 6 informira sustav za obradu podataka 3 da zaštićeni program 2p više ne koristi navedenu funkcionalnost. Ako zaštićeni program 2p nastavi koristiti navedenu funkcionalnost, potencijalno se može prijeći drugi prag. U slučaju kada se prijeđe drugi prag, postupak prisile 18 može neutralizirati izabranu funkcionalnost i/ili neutralizirati zaštićeni program 2p. In other words, normally, during the execution of the protected program 2p, when the first threshold is crossed, the unit 6 informs the data processing system 3 that the protected program 2p no longer uses the specified functionality. If the protected program 2p continues to use the specified functionality, the second threshold can potentially be crossed. In case the second threshold is crossed, the forcing procedure 18 can neutralize the selected functionality and/or neutralize the protected program 2p.

Za implementaciju druge preferirane različite izvedbe principa zaštite detekcijom i prisilom korištenjem, kao karakteristike, mjerne varijable, definira se način ponovnog učitavanja koji omogućava kreditiranje najmanje jedne funkcionalnosti programa praćene mjernom varijablom s najmanje jednom dodatnom uporabom. To implement the second preferred different embodiment of the principle of protection by detection and coercion using, as a characteristic, a measurement variable, a reloading method is defined that enables the crediting of at least one functionality of the program followed by the measurement variable with at least one additional use.

Također se izrađuje postupak za eksploataciju koji implementira postupak aktualizacije uz postupak detekcije 17 i postupak prisile 18. An exploitation procedure is also created that implements the actualization procedure in addition to the detection procedure 17 and the coercion procedure 18.

Također se odabire, u izvornom kodu nezaštićenog programa 2vs, najmanje jedna mjerna varijabla koja se koristi za ograničavanje uporabe najmanje jedne funkcionalnosti programa i koja mora biti sposobna za kreditiranje s najmanje jednom dodatnom uporabom. There is also selected, in the source code of the unprotected 2vs program, at least one measurement variable that is used to limit the use of at least one functionality of the program and which must be capable of being credited with at least one additional use.

Izvorni kod nezaštićenog programa 2vs se tada modificira, tako da se dobiva izvorni kod zaštićenog programa 2ps, a ta je modifikacija takva da, tijekom faze nazvane ponovno punjenje, može biti kreditirana najmanje jedna dodatna uporaba najmanje jedne funkcionalnosti koja odgovara izabranoj varijabli mjerenja. The source code of the unprotected program 2vs is then modified, so that the source code of the protected program 2ps is obtained, and this modification is such that, during a phase called reloading, at least one additional use of at least one functionality corresponding to the selected measurement variable can be credited.

Izvršena je, tijekom faze ponovnog punjenja, reaktualizacija najmanje jedne odabrane mjerne varijable i/ili najmanje jednog pridruženog praga, tako da se dozvoljava dodatna uporaba odgovarajuće funkcionalnosti. Drugim riječima, tijekom faze ponovnog punjenja moguće je kreditira dodatnu uporabu najmanje jedne funkcionalnosti zaštićenog programa 2p. During the reloading phase, reactualization of at least one selected measurement variable and/or at least one associated threshold is performed, so that additional use of the corresponding functionality is allowed. In other words, during the recharge phase, it is possible to credit additional use of at least one functionality of the protected program 2p.

Za implementaciju principa zaštite detekcijom i prisilom korištenjem, kao karakteristike, profila uporabe programa, definira se kao kriterij koji treba ispuniti za navedeni profil uporabe, najmanje jedna značajka izvođenja programa. To implement the principle of protection by detection and coercion using, as a characteristic, the profile of the use of the program, at least one feature of the program's execution is defined as a criterion that must be met for the specified profile of use.

Također se odabire u izvornom kodu nezaštićenog programa 2vs: It is also selected in the source code of the unprotected 2vs program:

• najmanje jedan profil uporabe za praćenje • at least one usage profile for monitoring

• i najmanje jedna značajka izvođenja za koju mora biti ispunjen najmanje jedan izabrani profil uporabe • and at least one performance feature for which at least one selected usage profile must be met

Tada se modificira izvorni kod nezaštićenog programa 2vs, tako da se dobiva izvorni kod zaštićenog programa 2ps, gdje je modifikacija takva da, tijekom izvođenja zaštićenog programa 2p, drugi izvršni dio 2peu treba ispunjavati sve izabrane značajke izvođenja. Drugim riječima, jedinica 6 sama prati način izvođenja drugog izvršnog dijela 2peu te po potrebi informira sustav za obradu podataka 3 i/ili modificira funkcioniranje zaštićenog programa 2p, u slučaju kada nije ispunjena najmanje jedna značajka izvođenja. Then the source code of the unprotected program 2vs is modified, so that the source code of the protected program 2ps is obtained, where the modification is such that, during the execution of the protected program 2p, the second executable part 2peu should fulfill all the selected execution features. In other words, the unit 6 itself monitors the execution mode of the second executable part 2peu and, if necessary, informs the data processing system 3 and/or modifies the functioning of the protected program 2p, in the event that at least one execution feature is not fulfilled.

Tijekom izvođenja zaštićenog programa 2p, zaštićenog ovim principom, u prisutnosti jedinice 6: During the execution of the protected program 2p, protected by this principle, in the presence of unit 6:

• tako dugo dok su prisutne sve značajke izvođenja modificiranog odsječka zaštićenog programa 2p, navedeni modificirani odsječak zaštićenog programa 2p radi ispravno, tako da zaštićeni program 2p radi ispravno, • as long as all the performance features of the modified section of the protected program 2p are present, said modified section of the protected program 2p works correctly, so that the protected program 2p works correctly,

• te ako nije prisutna najmanje jedna značajka izvođenja odsječka zaštićenog programa 2p, informira se sustav za obradu podataka 3 i/ili se modificira funkcioniranje odsječka zaštićenog programa 2p, tako da je funkcioniranje zaštićenog programa 2p modificirano. • and if at least one execution feature of the section of the protected program 2p is not present, the data processing system 3 is informed and/or the functioning of the section of the protected program 2p is modified, so that the functioning of the protected program 2p is modified.

Može se razmatrati praćenje različitih značajki izvođenja, kao na primjer praćenje prisutnosti instrukcija koje uključuje markere za praćenje izmjene izvođenja za najmanje jedan dio instrukcija. Monitoring of various features of execution may be contemplated, such as instruction presence monitoring that includes markers to monitor execution modification for at least one portion of the instructions.

Za implementaciju principa zaštite detekcijom i prisilom korištenjem značajki izvođenja koje trebaju biti prisutne, praćenjem izmjena izvođenja za najmanje jedan dio instrukcija, definira se: To implement the principle of protection by detection and coercion using execution features that should be present, by monitoring execution changes for at least one part of the instructions, the following is defined:

• skup instrukcija određenih za izvođenje u jedinici 6, • a set of instructions specified for execution in unit 6,

• skup naredbi za navedeni skup instrukcija, gdje su navedene naredbe predviđene za izvođenje u sustavu za obradu podataka 3. Izvođenje svake od navedenih naredbi u sustavu za obradu podataka 3 aktivira izvođenje odgovarajućih instrukcija u jedinici 6, • a set of commands for the specified set of instructions, where the specified commands are intended for execution in the data processing system 3. The execution of each of the specified commands in the data processing system 3 activates the execution of the corresponding instructions in the unit 6,

• postupak detekcije 17 koji omogućava utvrđivanje da izmjena instrukcija ne odgovara očekivanoj, • detection procedure 17, which allows determining that the change of instructions does not correspond to the expected one,

• i postupak prisile 18 koji omogućava informiranje sustava za obradu podataka 3 i/ili modifikaciju izvođenja programa kada izmjena instrukcija ne odgovara očekivanoj. • and the coercion procedure 18, which enables informing the data processing system 3 and/or modifying the execution of the program when the change of instructions does not correspond to the expected one.

Također se konstruira postupak za eksploataciju koji omogućava jedinici 6 da također izvodi instrukcije iz skupa instrukcija, gdje se izvođenje navedenih instrukcija aktivira izvođenjem naredbi u sustavu za obradu podataka 3. An exploitation procedure is also constructed which enables the unit 6 to also execute instructions from the set of instructions, where the execution of said instructions is activated by the execution of commands in the data processing system 3.

Također se odabire, u izvornom kodu nezaštićenog program 2vs, najmanje jedan algoritam koja se mora izdvojiti u jedinicu 6 i za koju se prati izmjena najmanje jednog dijela instrukcija. Also, in the source code of the unprotected program 2vs, at least one algorithm is selected, which must be separated into unit 6 and for which the modification of at least one part of the instructions is monitored.

Izvorni kod nezaštićenog program 2vs tada se modificira, tako da se dobiva izvorni kod zaštićenog program 2ps, koji je modificiran tako da tijekom izvođenja zaštićenog programa 2p: The source code of the unprotected program 2vs is then modified, so that the source code of the protected program 2ps is obtained, which is modified so that during the execution of the protected program 2p:

• drugi izvršni dio 2peu izvodi najmanje jednu funkcionalnost odabranog algoritma, • the second executable part of 2peu performs at least one functionality of the selected algorithm,

• izabrani algoritam se dijeli na instrukcije, • the selected algorithm is divided into instructions,

• specificira se ulančavanje kod kojeg moraju biti prisutne najmanje neke instrukcije tijekom njihova izvođenja u jedinici 6, • chaining is specified, where at least some instructions must be present during their execution in unit 6,

• a prvi izvršni dio 2pes zaštićenog programa 2p izvodi naredbe koje aktiviraju izvođenje instrukcija u jedinici 6. • and the first executable part 2pes of the protected program 2p executes commands that activate the execution of instructions in unit 6.

Tijekom izvođenja zaštićenog programa 2p, koji je zaštićen ovim principom, u prisutnosti jedinice 6: During the execution of the protected program 2p, which is protected by this principle, in the presence of unit 6:

• tako dugo dok ulančavanje instrukcija svih modificiranih odsječaka zaštićenog program 2p koji se izvode u jedinici 6 odgovaraju očekivanim, navedeni modificirani odsječak zaštićenog programa 2p radi ispravno, tako da i navedeni zaštićeni program 2p radi ispravno, • as long as the chaining of instructions of all modified sections of the protected program 2p executed in unit 6 are as expected, the said modified section of the protected program 2p works correctly, so that the said protected program 2p also works correctly,

• te ako izmjene instrukcija u odsječku zaštićenog programa 2p koji se izvodi u jedinici 6 ne odgovaraju očekivanim, informira se sustav za obradu podataka 3 i/ili se modificira funkcioniranje odsječka zaštićenog programa 2p, tako da je funkcioniranje zaštićenog programa 2p modificirano. • and if the instruction changes in the section of the protected program 2p executed in unit 6 do not correspond to the expectations, the data processing system 3 is informed and/or the functioning of the section of the protected program 2p is modified, so that the functioning of the protected program 2p is modified.

Slika 71 prikazuje primjer implementacije principa zaštite detekcijom i prisilom korištenjem, kao značajke izvođenja koja treba biti ispunjena, praćenje ulančavanja izvođenja najmanje jednog dijela instrukcija, u slučaju kada su ispunjena očekivana ulančavanja. Figure 71 shows an example of the implementation of the principle of protection by detection and coercion using, as a performance feature to be fulfilled, the monitoring of the chaining of the execution of at least one part of the instructions, in the case when the expected chains are met.

Prvi izvršni dio 2pes zaštićenog programa 2p koji se izvodi u sustavu za obradu podataka 3, izvodi naredbe CIi aktiviranjem, u jedinici 6, izvođenja instrukcija ii koje pripadaju skupu instrukcija. U navedenom skupu instrukcija, najmanje neke od instrukcija uključuju dio koji definira funkcionalnost instrukcije i dio koji omogućava verifikaciju očekivane izmjene izvođenja instrukcija. U ovom primjeru, naredba CIi je prikazana s TRIG(ii), a očekivane izmjene izvođenja instrukcija su in, in+1 i in+2. Izvođenje instrukcije in u jedinici 6 daje rezultat a, a izvođenje instrukcije in+1 daje rezultat b. Instrukcija in+2 se koristi kao operand, a rezultati a i b instrukcija in i in+1 i njihova izvođenja daju rezultat c. The first executable part 2pes of the protected program 2p which is executed in the data processing system 3, executes the commands CIi by activating, in the unit 6, the execution of the instructions ii belonging to the set of instructions. In the specified set of instructions, at least some of the instructions include a part that defines the functionality of the instruction and a part that enables the verification of the expected change in the execution of the instructions. In this example, the CIi instruction is represented by TRIG(ii), and the expected instruction execution changes are in, in+1, and in+2. The execution of the instruction in in unit 6 gives the result a, and the execution of the instruction in+1 gives the result b. The instruction in+2 is used as an operand, and the results a and b of the instructions in and in+1 and their executions give the result c.

Uzimajući u obzir da navedene izmjene instrukcija koje se izvode u jedinici 6 odgovaraju očekivanim, ovo rezultira ispravnim ili nazivnim funkcioniranjem zaštićenog programa 2p. Considering that the specified changes to the instructions performed in unit 6 are as expected, this results in the correct or nominal functioning of the protected program 2p.

Slika 72 prikazuje primjer implementacije principa zaštite detekcijom i prisilom korištenjem, kao značajke izvođenja koja treba biti prisutna, praćenje ulančavanja izvođenja najmanje dijela instrukcija, u slučaju gdje nije prisutno očekivano ulančavanje. Figure 72 shows an example of the implementation of the principle of protection by detection and coercion using, as a performance feature that should be present, the monitoring of the chaining of the execution of at least part of the instructions, in the case where the expected chaining is not present.

U skladu s ovim principom, očekivano ulančavanje za izvođenje instrukcija je isto in, in+1 i in+2. Međutim, ulančavanje izvođenja se modificira zamjenom instrukcije in s instrukcijom i'n, tako da je stvarno ulančavanje izvođenja i'n, in+1 i in+2. Izvođenje instrukcije i'n daje rezultat a, tj. isti rezultat kao izvođenje instrukcije in. Međutim, kod zadnjeg izvođenja instrukcije in+2, postupak detekcije 17 detektira da instrukcija i'n ne odgovara očekivanoj instrukciji koja generira rezultat a, a koji se koristi kao operand instrukcije in+2. Postupak detekcije 17 informira o tome postupak prisile 18 koji u skladu s tim modificira funkcioniranje instrukcije in+2, tako da izvođenje instrukcije in+2 daje rezultat c' koji može biti različit od c. Prirodno, ako izvođenje instrukcije i'n daje rezultat a' koji je različit od rezultata a instrukcije in, jasno je da rezultat instrukcije in+2 također može biti različit od c. According to this principle, the expected chaining for executing instructions is the same as in, in+1 and in+2. However, the execution chaining is modified by replacing the in instruction with the i'n instruction, so that the actual execution chaining is i'n, in+1, and in+2. The execution of the instruction i'n gives the result a, i.e. the same result as the execution of the instruction in. However, at the last execution of the instruction in+2, the detection procedure 17 detects that the instruction i'n does not correspond to the expected instruction that generates the result a, which is used as the operand of the instruction in+2. The detection process 17 informs the forcing process 18 about it, which accordingly modifies the functioning of the instruction in+2, so that the execution of the instruction in+2 gives a result c' that can be different from c. Naturally, if the execution of the instruction i'n produces a result a' that is different from the result a of the instruction in, it is clear that the result of the instruction in+2 can also be different from c.

Budući da ulančavanje izvođenja instrukcija koje se izvode u jedinici 6 ne odgovara očekivanom, dolazi do modifikacije funkcioniranja zaštićenog programa 2p. Since the chaining of instructions executed in unit 6 does not correspond to the expected, the functioning of the protected program 2p is modified.

Slike 73 i 74 prikazuju preferiranu izvedbu principa zaštite korištenjem detekcije i prisile koja, kao značajku izvođenja koja treba biti prisutna, prati ulančavanje izvođenja najmanje jednog dijela instrukcija. U skladu s preferiranom varijantom, definira se skup instrukcija od kojih barem neke instrukcije rade s registrima i koriste najmanje jedan operand s namjerom vraćanja rezultata. Figures 73 and 74 show a preferred embodiment of the protection principle using detection and coercion which, as an execution feature to be present, follows the chaining of the execution of at least one part of the instructions. According to a preferred embodiment, a set of instructions is defined, of which at least some instructions work with registers and use at least one operand with the intention of returning a result.

Kako je prikazano na slici 73, definirano je da barem neke instrukcije rade s registrima, gdje dio PF definira funkcionalnosti instrukcija, a dio PE definira očekivano ulančavanje izvođenja instrukcija. Dio PF odgovara operacijskom kodu koji je poznat stručnjacima. Dio PE definira očekivano ulančavanje koje uključuje bitove koji odgovaraju: As shown in Figure 73, at least some instructions are defined to work with registers, where the PF part defines the functionality of the instructions, and the PE part defines the expected chaining of instruction execution. The PF portion corresponds to an operation code known to those skilled in the art. The PE part defines the expected chaining which includes the bits corresponding to:

• identifikacijskom polju instrukcije CII • the identification field of the CII instruction

• i za svaki operand k instrukcije, gdje se k mijenja od 1 do K, i brojem operanada instrukcije K: • and for each operand k of the instruction, where k changes from 1 to K, and by the number of operands of the instruction K:

- zastavici CDk koja označava da li je ili nije prikladno verificirati izvor operanda k, - flag CDk indicating whether or not it is appropriate to verify the source of operand k,

- polju očekivane identifikacije operanda CIPk, koje indicira očekivani identitet instrukcije koja generira sadržaj operanda k. - field of the expected identification of the operand CIPk, which indicates the expected identity of the instruction that generates the content of the operand k.

Kako je prikazano na slici 74, skup instrukcija uključuje V registara koji pripadaju postupku procesiranja 16, svaki registar se naziva Rv, gdje se v mijenja od 1 do V. Za svaki registar Rv definiraju se dva polja, poimence: As shown in Figure 74, the instruction set includes V registers belonging to the processing procedure 16, each register is called Rv, where v varies from 1 to V. For each register Rv, two fields are defined, namely:

• funkcijsko polje CFv, poznato stručnjacima, koje služi za spremanje rezultata izvođenja instrukcija, • function field CFv, known to experts, which is used to store the results of executing instructions,

• i generirano identifikacijsko polje CIGv koje omogućava pohranjivanje identiteta instrukcije koja generira sadržaj funkcijskog polja CFv. Navedeno generirano identifikacijsko polje CIGv se automatski osvježava sa sadržajem identifikacijskog polja instrukcije CII koja generira funkcijsko polje CFv. Navedeno generirano identifikacijsko polje CIGv nakon toga nije dostupno niti izmjenjivo od bilo koje instrukcije i koristi ga jedino postupak detekcije 17. • and the generated identification field CIGv, which enables the identity of the instruction that generates the content of the function field CFv to be stored. Said generated identification field CIGv is automatically updated with the content of the identification field of the instruction CII that generates the function field CFv. Said generated identification field CIGv is thereafter not accessible or modifiable by any instruction and is used only by the detection procedure 17.

Tijekom izvođenja instrukcije, postupak detekcije 17 obavlja za svakog operanda slijedeće funkcije: During the execution of the instruction, the detection procedure 17 performs the following functions for each operand:

• zastavica CDk je pročitana • the CDk flag has been read

• ako zastavica CDk to nameće, čitaju se polje očekivane identifikacije CIPk i polje generirane identifikacije CIGv koja odgovaraju korištenom registru, • if the flag CDk imposes it, the field of the expected identification CIPk and the field of the generated identification CIGv corresponding to the used register are read,

• provjeravanje jednakosti polja CIPk i CIGv, • checking the equality of fields CIPk and CIGv,

• te ako polja nisu jednaka, postupak detekcije 17 smatra da ulančavanje izvođenja nije prisutno • and if the fields are not equal, the detection procedure 17 considers that execution chaining is not present

Postupak prisile 18 omogućava modifikaciju rezultata instrukcija kada ga postupak detekcije 17 informira da ulančavanje instrukcija nije prisutno. Poželjna izvedba se ostvaruje modifikacijom funkcijskog dijela PF instrukcije koja se trenutno izvodi ili funkcijskog dijela PF slijedeće instrukcije. The forcing procedure 18 enables modification of the instruction result when the detection procedure 17 informs it that instruction chaining is not present. The desired performance is achieved by modifying the functional part of the PF instruction currently being executed or the functional part of the PF next instruction.

U skladu sa slijedećom naprednom karakteristikom izuma, proces zaštite je usmjeren na implementaciju principa zaštite zvanog "preimenovanje" čiji je opis iznesen u odnosu na slike 80 do 85. In accordance with the following advanced characteristic of the invention, the protection process is directed to the implementation of the protection principle called "renaming", the description of which is presented in relation to Figures 80 to 85.

Za implementaciju principa zaštite preimenovanjem, definirani su: To implement the principle of protection by renaming, the following are defined:

• skup zavisnih funkcija, predodređenih za izvođenje pomoću drugog izvršnog dijela 2peu, u jedinici 6, te eventualno namijenjenih za prijenos podataka između sustava za obradu podataka 3 i jedinice 6, gdje navedeni skup funkcija može biti konačan ili beskonačan, • a set of dependent functions, destined to be performed by the second executable part 2peu, in unit 6, and possibly intended for data transfer between the data processing system 3 and unit 6, where the specified set of functions can be finite or infinite,

• skup naredbi za aktiviranje navedenih zavisnih funkcija, gdje su navedene naredbe za aktiviranje predodređene za izvođenje u sustavu za obradu podataka 3, te aktiviraju izvođenje odgovarajućih zavisnih funkcija u jedinici 6, • a set of commands for activating the specified dependent functions, where the specified activation commands are destined for execution in the data processing system 3, and activate the execution of the corresponding dependent functions in the unit 6,

• za svaku naredbu za aktiviranje, nalog koji barem djelomično odgovara informaciji prenesenoj od prvog izvršnog dijela 2pes, u drugi izvršni dio 2peu, tako da aktiviranje izvođenja odgovarajuće zavisne funkcije, navedeni nalog ima oblik najmanje jednog argumenta naredbe za aktiviranje, • for each activation command, an order that at least partially corresponds to the information transferred from the first executable part 2pes, to the second executable part 2peu, so that the activation of the execution of the corresponding dependent function, the specified order takes the form of at least one argument of the activation command,

• postupak preimenovanja naloga dizajniran za korištenje tijekom modifikacije nezaštićenog programa 2v, koja omogućava preimenovanje naloga tako da se dobije naredba za aktiviranje s preimenovanim nalogom koja omogućava prikrivanje identiteta odgovarajuće zavisne funkcije, • a command renaming procedure designed for use during modification of an unprotected 2v program, which allows command renaming so that an activation command is obtained with a renamed command that allows concealing the identity of the corresponding dependent function,

• postupak obnavljanja 20 oblikovan za korištenje u jedinici 6 tijekom faze korištenja, a koji omogućava obnavljanje početnog naloga iz preimenovanog naloga tako da obnavlja zavisnu funkciju za izvođenje. • a recovery procedure 20 designed for use in unit 6 during the use phase, which enables recovery of the initial order from the renamed order by restoring the dependent function for execution.

Za implementaciju principa zaštite preimenovanjem, kreira se postupak eksploatacije koja omogućava transformaciju prazne jedinice 60 u jedinicu 6 implementirajući najmanje postupak obnavljanja 20. To implement the principle of protection by renaming, an exploitation procedure is created that enables the transformation of the empty unit 60 into unit 6 by implementing at least the recovery procedure 20.

Za implementaciju principa zaštite preimenovanjem, također se odabire, u izvornom kodu nezaštićenog programa 2vs: To implement the principle of protection by renaming, it is also selected, in the source code of the unprotected program 2vs:

• najmanje jedan algoritam koji koristi najmanje jedan operand i vraća najmanje jedan rezultat, • at least one algorithm that uses at least one operand and returns at least one result,

• i najmanje jedan odsječak izvornog koda nezaštićenog programa 2vs, koji sadrži najmanje jedan odabrani algoritam. • and at least one fragment of the source code of the unprotected 2vs program, which contains at least one selected algorithm.

Tada se modificira izvorni kod nezaštićenog programa 2vs, tako da se dobiva izvorni kod zaštićenog programa 2ps. Ova modifikacija je takva da između ostalog: Then the source code of the unprotected program 2vs is modified, so that the source code of the protected program 2ps is obtained. This modification is such that, among other things:

• tijekom izvođenja zaštićenog programa 2p, najmanje jedan odsječak prvog izvršnog dijela 2pes, koji se izvodi u sustavu za obradu podataka 3, uzima u obzir da se funkcionalnost najmanje jednog odabranog algoritma izvodi u jedinici 6, • during the execution of the protected program 2p, at least one segment of the first executable part 2pes, which is executed in the data processing system 3, takes into account that the functionality of at least one selected algorithm is executed in the unit 6,

• tijekom izvođenja zaštićenog programa 2p, drugi izvršni dio 2peu, koji se izvodi u jedinici 6, izvodi najmanje jednu funkcionalnost najmanje jednog odabranog algoritma, • during the execution of the protected program 2p, the second executable part 2peu, which is executed in unit 6, performs at least one functionality of at least one selected algorithm,

• svaki odabrani algoritam se dijeli tako da se tijekom izvođenja zaštićenog programa 2p izvodi svaki izabrani algoritam pomoću drugog izvršnog dijela 2peu, koristeći zavisne funkcije. Poželjno, svaki algoritam se dijeli na zavisne funkcije fdn (n se mijenja od 1 do N), poimence: • each selected algorithm is split so that during the execution of the protected program 2p, each selected algorithm is executed by another executable part 2peu, using dependent functions. Preferably, each algorithm is divided into dependent functions fdn (n varies from 1 to N), namely:

- eventualno jednu ili više zavisnih funkcija koje omogućavaju smještanje jednog ili više operanada na raspolaganje jedinici 6, - possibly one or more dependent functions that make it possible to place one or more operands at the disposal of unit 6,

- zavisne funkcije, od kojih neke koriste operand(e) i izvode se u kombinaciji s funkcionalnosti odabrane algoritma, koristeći navedeni operand(e), - dependent functions, some of which use operand(s) and are performed in combination with the functionality of the selected algorithm, using the specified operand(s),

- i eventualno, jedne ili više zavisnih funkcija koje omogućuju, pomoću jedinice 6, stavljanje na raspolaganje sustavu za obradu podataka 3 rezultata algoritma, - and possibly, one or more dependent functions that enable, by means of unit 6, making the results of the algorithm available to the data processing system 3,

• tijekom izvođenja zaštićenog programa 2p, drugi izvršni dio 2peu izvodi zavisnu funkciju fdn, • during the execution of the protected program 2p, the second executable part 2peu executes the dependent function fdn,

• tijekom izvođenja zaštićenog programa 2p, zavisna funkcija se aktivira naredbama za aktiviranje s preimenovanim nalozima, • during the execution of the protected program 2p, the dependent function is activated by activation commands with renamed commands,

• se odabire sekvenca naredbi za aktiviranje između skupa sekvenci koje dozvoljavaju izvođenje zaštićenog programa 2p. • a sequence of commands for activation is selected from a set of sequences that allow the execution of the protected program 2p.

Prvi izvršni dio 2pes zaštićenog programa 2p, koji se izvodi u sustavu za obradu podatka 3, izvodi naredbe za aktiviranje s preimenovanim nalozima prijenosom naloga u jedinicu 6, te aktivira, u jedinici 6, obnavljanje naloga pomoću postupka za obnavljanje 20, te zatim izvođenje, pomoću drugog izvršnog dijela 2peu, svih prije definiranih funkcija fdn. The first executable part 2pes of the protected program 2p, which is executed in the data processing system 3, executes the activation commands with the renamed orders by transferring the order to the unit 6, and activates, in the unit 6, the renewal of the order using the renewal process 20, and then executing, using the second executive part 2peu, all previously defined functions fdn.

Drugim riječima, princip zaštite preimenovanjem obavlja se preimenovanjem naloga naredbi za aktiviranje, tako da dobivene naredbe za aktiviranje s preimenovanim nalozima, čije se izvođenje u sustavu za obradu podataka 3 aktivira, u jedinici 6, izvođenje zavisnih funkcija, koje mogu biti aktivirane naredbama za aktiviranje s ne-preimenovanim nalozima, međutim, bez ispitivanja zaštićenog programa 2p koje omogućava određivanje identiteta izvršenih zavisnih funkcija. In other words, the principle of protection by renaming is carried out by renaming the orders of activation commands, so that the received activation commands with renamed orders, the execution of which in the data processing system 3 is activated, in the unit 6, the execution of dependent functions, which can be activated by the activation commands with non-renamed orders, however, without examining the protected program 2p which allows determining the identity of executed dependent functions.

Slika 80 prikazuje primjer izvođenja nezaštićenog programa 2v. U ovom primjeru, tijekom izvođenja nezaštićenog programa 2v u sustavu za obradu podataka 3 dolazi, u određenom trenutku, do izračunavanja Z←F(X, Y) što odgovara pridruživanju varijabli Z rezultata algoritma prikazanog funkcijom F i korištenjem operanada X i Y. Figure 80 shows an example of the execution of an unprotected program 2v. In this example, during the execution of the unprotected program 2v in the data processing system 3, the calculation of Z←F(X, Y) occurs, at a certain moment, which corresponds to the association of the variables Z with the result of the algorithm represented by the function F and using the operands X and Y.

Slike 81 i 82 prikazuje primjer implementacije izuma. Figures 81 and 82 show an example of the implementation of the invention.

Slika 81 prikazuje djelomičnu implementaciju izuma. U ovom primjeru, tijekom izvođenja prvog izvršnog dijela 2pes zaštićenog programa 2p u sustavu za obradu podataka 3 i u prisutnosti jedinice 6, dolazi do: Figure 81 shows a partial implementation of the invention. In this example, during the execution of the first executable part 2pes of the protected program 2p in the data processing system 3 and in the presence of the unit 6, occurs:

• u trenucima t1, t2, izvođenja naredbi za aktiviranje CD1, CD2 koje aktiviraju, u jedinici 6, izvođenje odgovarajućih zavisnih funkcija fd1, fd2 pomoću drugog izvršnog dijela 2peu, čime se osigurava prijenos podataka X, Y iz sustava za obradu podataka 3 u područja za pohranjivanje redom x, y locirana u postupku za pohranjivanje 15 u jedinici 6, a gdje su navedene naredbe za aktiviranje CD1, CD2 prikazane redom s OUT(x, X), OUT(y, Y), • at times t1, t2, the execution of activation commands CD1, CD2 which activate, in unit 6, the execution of the corresponding dependent functions fd1, fd2 by means of the second executive part 2peu, thereby ensuring the transfer of data X, Y from the data processing system 3 to the areas to store in the order x, y located in the store procedure 15 in unit 6, and where the commands to activate CD1, CD2 are indicated respectively by OUT(x, X), OUT(y, Y),

• u trenucima t3 do tN-1 izvođenje naredbi za aktiviranje CD3 do CDN-1 koje aktiviraju, u jedinici 6, izvođenje odgovarajućih zavisnih funkcija fd3 do fdN-1 pomoću drugog izvršnog dijela 2peu, a gdje su navedene naredbe za aktiviranje CD3 do CdN-1 prikazane redom, s TRIG(fd3) do TRIG(fdN-1). Niz zavisnih funkcija fd3 do fdN-1, izvedenih u kombinaciji, algoritamski su ekvivalent funkciji F. Preciznije, izvođenje navedenih naredbi za aktiviranje vodi izvođenju zavisnih funkcija fd3 do fdN-1, u jedinici 6, koji koriste sadržaj područja za pohranjivanje x, y i vraćaju rezultat u područje pohranjivanja z jedinice 6, • at times t3 to tN-1 the execution of activation commands CD3 to CDN-1 which activate, in unit 6, the execution of the corresponding dependent functions fd3 to fdN-1 by means of the second executable part 2peu, where the activation commands CD3 to CdN- 1 shown in order, from TRIG(fd3) to TRIG(fdN-1). A series of dependent functions fd3 to fdN-1, executed in combination, are algorithmically equivalent to function F. More precisely, execution of the above activation commands leads to the execution of dependent functions fd3 to fdN-1, in unit 6, which use the contents of the storage area x, y and return the result to storage area z unit 6,

• i u trenutku tN, izvođenje naredbe za aktiviranje CDN koja aktivira, u jedinici 6, izvođenje zavisne funkcije fdN pomoću drugog izvršnog dijela 2peu, čime se osigurava prijenos rezultata algoritma sadržanog u području za pohranjivanje z jedinice 6 u sustav za obradu podataka 3, tako da je pridruži varijabli Z, gdje je navedena naredba je prikazana s IN(z). • and at time tN, execution of the CDN activation command which activates, in the unit 6, the execution of the dependent function fdN by means of the second executable part 2peu, thus ensuring the transfer of the result of the algorithm contained in the storage area z of the unit 6 to the data processing system 3, so that is appended to the variable Z, where the specified command is represented by IN(z).

U ovom primjeru, za potpunu implementaciju izuma, kao nalozi su odabrani prvi argument naredbe za aktiviranje OUT i argument naredbi za aktiviranje TRIG i IN. Nalozi odabrani na ovaj način se preimenuju koristeći postupak za preimenovanje naloga. U ovom značenju, nalozi za aktiviranje naredbi CD1 do CDN tj. x, y, fd3, fdN-1, z preimenovani su tako da se dobivaju redom R(x), R(y), R(fd3),...., R(fdN-1), R(z). In this example, for the full implementation of the invention, the first argument of the activation command OUT and the argument of the activation commands TRIG and IN were selected as commands. Accounts selected in this way are renamed using the order renaming process. In this sense, the orders for activating the commands CD1 to CDN i.e. x, y, fd3, fdN-1, z are renamed so that they are obtained in order R(x), R(y), R(fd3),... , R(fdN-1), R(z).

Slika 82 prikazuje potpunu implementaciju izuma. U ovom primjeru, tijekom izvođenja prvog izvršnog dijela 2pes zaštićenog programa 2p u sustavu za obradu podataka 3, i u prisutnosti jedinice 6, dolazi do: Figure 82 shows a complete implementation of the invention. In this example, during the execution of the first executable part 2pes of the protected program 2p in the data processing system 3, and in the presence of the unit 6, occurs:

• u trenucima t1, t2, izvođenja naredbi za aktiviranje s preimenovanim nalozima CDCR1, CDCR2, prijenosa preimenovanih naloga R(x), R(y) kao i podataka X, Y u jedinicu 6, aktiviranja u jedinici 6 obnavljanja preimenovanih naloga pomoću postupka za obnavljanje 20, čime se obnavljaju nalozi tj. istovjetnost područja pohranjivanja x, y, te zatim izvođenja odgovarajućih zavisnih funkcija fd1, fd2 pomoću drugog izvršnog dijela 2peu, čime se osigurava prijenos podataka X, Y iz sustava za obradu podataka 3 u područje za pohranjivanje redom x, y locirano u postupku za pohranjivanje 15 jedinice 6, a gdje su navedene aktivirane naredbe s preimenovanim nalozima CDCR1, CDCR2, prikazane redom s OUT(R(x), X), OUT(R(y), Y), • at moments t1, t2, execution of activation commands with renamed orders CDCR1, CDCR2, transfer of renamed orders R(x), R(y) as well as data X, Y to unit 6, activation in unit 6 of renewal of renamed orders using the procedure for recovery 20, which restores the orders, i.e. the identity of the storage areas x, y, and then the execution of the corresponding dependent functions fd1, fd2 by means of the second executive part 2peu, which ensures the transfer of data X, Y from the data processing system 3 to the storage area in turn x, y located in the storage procedure 15 of unit 6, and where the activated commands with the renamed orders CDCR1, CDCR2 are listed, shown respectively by OUT(R(x), X), OUT(R(y), Y),

• u trenucima t3 do tN-1, izvođenja naredbi za aktiviranje s preimenovanim nalozima CDCR3 do CDCRN-1, prijenosa preimenovanih naloga R(fd3) do R(fdN-1) u jedinicu 6, aktiviranja, u jedinici 6, obnavljanja naloga, tj. fd3 do fdN-1 pomoću postupka za obnavljanje 20, te zatim izvođenja zavisnih funkcija fd3 do fdN-1 pomoću drugog izvršnog dijela 2peu, gdje su navedene aktivirane naredbe s preimenovanim nalozima CDCR3 do CDCRN-1 prikazane redom s TRIG(R(fd3)) do TRIG(R(fdN-1)), • at times t3 to tN-1, execution of activation commands with renamed orders CDCR3 to CDCRN-1, transfer of renamed orders R(fd3) to R(fdN-1) to unit 6, activation, in unit 6, of renewing orders, i.e. .fd3 to fdN-1 using the restore procedure 20, and then executing the dependent functions fd3 to fdN-1 using the second executable 2peu, where the activated commands with renamed orders CDCR3 to CDCRN-1 are listed in order with TRIG(R(fd3) ) to TRIG(R(fdN-1)),

• i u trenutku tN, izvođenja naredbe za aktiviranje s preimenovanim nalogom CDCRN prijenosom u jedinicu 6, preimenovani nalog R(z) aktivira u jedinici 6 obnavljanje naloga tj. istovjetnost područja pohranjivanja z pomoću postupka za obnavljanje 20, te zatim izvođenja zavisne funkcije fdN pomoću drugog izvršnog dijela 2peu, čime se osigurava prijenos rezultata algoritma sadržanog u području pohranjivanja jedinice 6 u sustav za obradu podataka 3, tako da je pridruži varijabli Z, gdje se navedena aktivirana naredba s preimenovanim nalogom CDCRN prikazuje s IN(R(z)). • and at the moment tN, executing the activation command with the renamed order CDCRN by transferring it to unit 6, the renamed order R(z) activates in unit 6 the restoration of the order, i.e. the identity of the storage area z using the restoration procedure 20, and then the execution of the dependent function fdN using another of the executable part 2peu, thereby ensuring the transfer of the result of the algorithm contained in the storage area of the unit 6 to the data processing system 3, by associating it with the variable Z, where the indicated activated command with the renamed command CDCRN is displayed with IN(R(z)).

U prikazanom primjeru, aktivirane naredbe s preimenovanim nalozima 1 do N izvode se sukcesivno. Treba uočiti da se mogu postići dva poboljšanja: In the example shown, activated commands with renamed commands 1 to N are executed successively. It should be noted that two improvements can be achieved:

• Prvo poboljšanje se odnosi na slučaj gdje je više algoritama izdvojeno u jedinicu 6, a rezultat najmanje jednog algoritma se koristi za drugu algoritam. U ovom slučaju mogu se eventualno ukloniti neke aktivirane naredbe s preimenovanim nalozima koje se koriste za prijenos. • The first improvement refers to the case where multiple algorithms are separated into unit 6, and the result of at least one algorithm is used for another algorithm. In this case, some activated orders with renamed orders used for transfer may be removed.

• Drugo poboljšanje se odnosi na izbor prikladne sekvence aktiviranih naredbi s preimenovanim nalozima između skupa sekvenci dozvoljavajući izvođenje zaštićenog programa 2p. S obzirom na to, poželjno je odabrati sekvencu aktiviranih naredbi s preimenovanim nalozima koji privremeno prekidaju izvođenje zavisnih funkcija, umetanjem između njih odsječaka koda koji se izvodi u sustavu za obradu podataka 3 i uključuje ili ne aktivirane naredbe s preimenovanim nalozima korištene za određivanje ostalih podataka. Slike 83 i 84 prikazuju princip takve izvedbe. • Another improvement relates to the selection of a suitable sequence of activated commands with renamed commands from among a set of sequences allowing the execution of the protected program 2p. In view of this, it is desirable to select a sequence of activated commands with renamed commands that temporarily interrupts the execution of dependent functions, by inserting between them segments of code executed in the data processing system 3 and including or not activated commands with renamed commands used to determine other data. Figures 83 and 84 show the principle of such a design.

Slika 83 prikazuje primjer izvođenja nezaštićenog programa 2v. U ovom primjeru, tijekom izvođenja nezaštićenog programa 2v u sustavu za obradu podataka 3, dolazi do izvođenja dva algoritma koji vode određivanju Z i Z', tako da su Z←F(X, Y) i Z'←F'(X', Y'). Figure 83 shows an example of the execution of an unprotected program 2v. In this example, during the execution of the unprotected program 2v in the data processing system 3, two algorithms are executed that lead to the determination of Z and Z', so that Z←F(X, Y) and Z'←F'(X', Y').

Slika 84 prikazuje primjer implementacije procesa u skladu s izumom za koji su dva odabrana algoritma sa slike 83 izdvojena u jedinicu 6. U skladu s takvim primjerom, tijekom izvođenja prvog izvršnog dijela 2pes zaštićenog programa 2p u sustavu za obradu podataka 3 i u prisutnosti jedinice 6, dolazi do kako je prije objašnjeno, izvođenja naredbi za aktiviranje s preimenovanim nalozima CDCR1 do CDCRN što odgovara određivanju Z i izvođenja naredbi za aktiviranje s preimenovanim nalozima CDCR'1 do CDCR'M što odgovara određivanju Z'. Kako je prikazano, naredbe za aktiviranje s preimenovanim nalozima CDCR1 do CDCRN se ne izvode u nizu, budući da su umetnute naredbe za aktiviranje s preimenovanim nalozima CDCR'1 do CDCR'M kao i drugi odsječci koda. U primjeru se izvodi slijedeća sekvenca: CDCR1, odsječak umetnutog koda, CDCR'1, CDCR2, odsječak umetnutog koda, CDCR'2, CDCR'3, odsječak umetnutog koda, CDCR'4, CDCR3, CDCR4,..., CDCRN, CDCR'M. Fig. 84 shows an example of the implementation of the process according to the invention for which the two selected algorithms from Fig. 83 are separated into a unit 6. According to such an example, during the execution of the first executable part 2pes of the protected program 2p in the data processing system 3 and in the presence of the unit 6, there occurs as previously explained, the execution of the activation commands with the renamed orders CDCR1 to CDCRN corresponding to the determination of Z and the execution of the activation commands with the renamed orders CDCR'1 to CDCR'M corresponding to the determination of Z'. As shown, the CDCR1 to CDCRN command-rename activation commands are not executed in sequence, since the CDCR'1 to CDCR'M command-rename activation commands are inserted as well as the other code snippets. In the example, the following sequence is executed: CDCR1, inline code segment, CDCR'1, CDCR2, inline code segment, CDCR'2, CDCR'3, inline code segment, CDCR'4, CDCR3, CDCR4,..., CDCRN, CDCR 'M.

Treba uočiti da tijekom izvođenja odsječka prvog izvršnog dijela 2pes zaštićenog programa 2p, naredba za aktiviranje s preimenovanim nalogom koja se izvodi u sustavu za obradu podataka 3, aktivira u jedinici 6 obnavljanje jednakosti odgovarajuće zavisnih funkcija i njihovih izvođenja. Dakle, dolazi do toga da se u prisutnosti jedinice 6 navedeni odsječak izvodi ispravno te da je, posljedično, zaštićeni program 2p potpuno funkcionalan. It should be noted that during the execution of the section of the first executable part 2pes of the protected program 2p, the command to activate with the renamed command which is executed in the data processing system 3, activates in the unit 6 the restoration of the equality of the correspondingly dependent functions and their executions. Thus, it happens that in the presence of the unit 6, the specified segment is performed correctly and, consequently, the protected program 2p is fully functional.

Slika 85 prikazuje primjer pokušaja izvođenja zaštićenog programa 2p kada jedinica 6 nedostaje. U ovom primjeru, tijekom izvođenja prvog izvršnog dijela 2pes zaštićenog programa 2p u sustavu za obradu podataka 3, izvođenje aktiviranih naredbi s preimenovanim nalogom ne može aktivirati niti obnavljanje naloga niti izvođenje odgovarajuće zavisne funkcije ni u kojem trenutku, zbog odsutnosti jedinice 6. Vrijednost koja se pridružuje varijabli Z zato se ne može ispravno odrediti. Figure 85 shows an example of an attempt to execute a protected program 2p when unit 6 is missing. In this example, during the execution of the first executable part of the 2pes protected program 2p in the data processing system 3, the execution of the activated orders with the renamed order cannot activate either the renewal of the order or the execution of the corresponding dependent function at any time, due to the absence of unit 6. The value to be joins the variable Z, so it cannot be determined correctly.

Zato dolazi do toga, da u odsutnosti jedinice 6, najmanje jedan zahtjev odsječka prvog izvršnog dijela 2pes zaštićenog programa 2p za aktiviranjem obnavljanja naloga i izvođenjem zavisne funkcije u jedinici 6 ne može biti ispunjen ispravno, tako da se barem navedeni odsječak ne izvodi ispravno te da, posljedično, zaštićeni program 2p nije potpuno funkcionalan. That is why, in the absence of unit 6, at least one request of the section of the first executable part of the 2pes protected program 2p for activating the renewal of the order and executing the dependent function in unit 6 cannot be fulfilled correctly, so that at least the specified section is not executed correctly and that , consequently, the protected program 2p is not fully functional.

Zahvaljujući principu zaštite preimenovanjem, ispitivanje aktiviranih naredbi s preimenovanim nalozima u zaštićenom programu 2p ne omogućava određivanje identiteta zavisne funkcije koja se izvodi u jedinici 6. Treba uočiti da se preimenovanje naloga izvodi tijekom modifikacije nezaštićenog programa 2v u zaštićeni program 2p. Thanks to the principle of protection by renaming, the examination of activated commands with renamed commands in the protected program 2p does not allow determining the identity of the dependent function performed in unit 6. It should be noted that the renaming of commands is performed during the modification of the unprotected program 2v into the protected program 2p.

U skladu s varijacijama principa zaštite preimenovanjem, za najmanje jednu zavisnu funkciju se definira familija zavisnih funkcija koje su algoritamski ekvivalentne, ali se aktiviraju različitim naredbama za aktiviranje s preimenovanim nalozima. U skladu s ovom varijacijom, za najmanje jedan algoritam koji koristi zavisne funkcije, dolazi do dijeljenja navedenog algoritam u zavisne funkcije, gdje je najmanje jedna od njih zamijenjena sa zavisnom funkcijom iste familije umjesto da se održava više pojava iste zavisne funkcije. Na kraju, naredbe za aktiviranje s preimenovanim nalozima se modificiraju uzimajući u obzir zamjenu zavisnih funkcija sa zavisnim funkcijama iste familije. Drugim riječima, dvije zavisne funkcije iste familije imaju različite naloge, te nije moguće, ispitivanjem zaštićenog programa 2p, otkriti da su pozvane zavisne funkcije algoritamski ekvivalentne. In accordance with variations of the renaming protection principle, a family of dependent functions is defined for at least one dependent function that are algorithmically equivalent, but are activated by different activation commands with renamed commands. In accordance with this variation, for at least one algorithm that uses dependent functions, there is a division of said algorithm into dependent functions, where at least one of them is replaced with a dependent function of the same family instead of maintaining multiple occurrences of the same dependent function. Finally, the activation commands with renamed commands are modified to account for the replacement of dependent functions with dependent functions of the same family. In other words, two dependent functions of the same family have different orders, and it is not possible, by examining the protected program 2p, to discover that the called dependent functions are algorithmically equivalent.

U skladu s prvom preferiranom izvedbom varijacije principa zaštite preimenovanjem, definira se za najmanje jednu zavisnu funkciju familija algoritamski ekvivalentnih zavisnih funkcija dodavanjem polja smetnje informaciji koja definira funkcionalni dio zavisne funkcije izvršen u jedinici 6. In accordance with the first preferred embodiment of the variation of the protection principle by renaming, a family of algorithmically equivalent dependent functions is defined for at least one dependent function by adding an interference field to the information that defines the functional part of the dependent function executed in unit 6.

U skladu s drugom preferiranom izvedbom varijacije principa zaštite preimenovanjem, za najmanje jednu zavisnu funkciju se definira familija algoritamski ekvivalentnih zavisnih funkcija korištenjem identifikacijskih polja. According to another preferred embodiment of the variation of the renaming protection principle, a family of algorithmically equivalent dependent functions is defined for at least one dependent function using identification fields.

U skladu s preferiranom varijacijom izvedbe principa zaštite preimenovanjem, kao metoda preimenovanja naloga se definira metoda šifriranja koja omogućava šifriranje naloga njihovim transformiranjem u preimenovane naloge. Treba zapaziti da se preimenovanje naloga izvodi tijekom faze zaštite P. Za ovu preferiranu varijaciju, postupak obnavljanja 20 znači implementaciju metode dešifriranja koja omogućava dešifriranje preimenovanih naloga, te tako obnavljanje istovjetnosti zavisnih funkcija koje se izvode u jedinici 6. Navedeni postupak obnavljanja koji se implementira u jedinici 6 može biti programske ili sklopovske prirode. Navedeni postupak obnavljanja 20 poziva se tijekom faze uporabe U svaki puta kada se naredba za aktiviranje s preimenovanim nalogom izvodi u sustavu za obradu podataka 3, s namjerom aktiviranja izvođenja zavisne funkcije u jedinici 6. In accordance with the preferred variation of the implementation of the principle of protection by renaming, an encryption method is defined as a method of renaming orders, which enables the encryption of orders by transforming them into renamed orders. It should be noted that the renaming of orders is performed during the protection phase P. For this preferred variation, the recovery process 20 means implementing a decryption method that enables decryption of the renamed orders, thus restoring the identity of the dependent functions performed in unit 6. Said recovery process implemented in unit 6 can be program or circuit nature. Said recovery procedure 20 is called during the use phase U each time an activation command with a renamed order is executed in the data processing system 3, with the intention of activating the execution of the dependent function in the unit 6.

U skladu s drugom prednosti izuma, proces zaštite se odnosi na implementiranje principa zaštite zvanog "uvjetno grananje" koji je prikazan na slikama 90 do 92. In accordance with another advantage of the invention, the protection process refers to the implementation of the protection principle called "conditional branching" which is shown in Figures 90 to 92.

Za implementaciju principa zaštite uvjetnim grananjem odabire se najmanje jedno uvjetno grananje u izvornom kodu nezaštićenog programa 2v. Također se odabire najmanje jedan odsječak izvornog koda zaštićenog programa 2vs koji sadrži najmanje jedno odabrano uvjetno grananje BC. To implement the principle of protection by conditional branching, at least one conditional branch is selected in the source code of the unprotected program 2v. At least one segment of the source code of the protected program 2vs containing at least one selected conditional branch BC is also selected.

Najmanje jedan odabrani odsječak izvornog koda nezaštićenog programa 2vs se tada modificira, tako da se dobiva izvorni kod zaštićenog programa 2ps. Ova modifikacija je takva da tijekom izvođenja zaštićenog programa 2p, između ostalog: At least one selected portion of the source code of the unprotected program 2vs is then modified, so that the source code of the protected program 2ps is obtained. This modification is such that during the execution of the protected program 2p, among other things:

• najmanje jedan odsječak prvog izvršnog dijela 2pes, koji se izvodi u sustavu za obradu podataka 3, uzima u obzir da se funkcionalnost najmanje jednog uvjetnog grananja BC izvodi u jedinici 6, • at least one segment of the first executable part 2pes, which is executed in the data processing system 3, takes into account that the functionality of at least one conditional branching BC is executed in the unit 6,

• i drugi izvršni dio 2peu, koji se izvodi u jedinici 6, a izvodi najmanje jednu funkcionalnost najmanje jednog odabranog uvjetnog grananja BC te stavlja na raspolaganje sustavu za obradu podatka 3 dio informacije koji omogućava da prvi izvršni dio 2pes nastavi izvođenje u odabranoj točki. • and the second executable part 2peu, which is executed in unit 6, and performs at least one functionality of at least one selected conditional branch BC and makes available to the data processing system 3 a piece of information that enables the first executable part 2pes to continue execution at the selected point.

Prvi izvršni dio 2pes zaštićenog programa 2p, koji se izvodi u sustavu za obradu podataka 3, izvodi naredbe uvjetnog grananja, aktivirajući u jedinici 6 izvođenje pomoću drugog izvršnog dijela 2peu izdvojenih uvjetnih grananja bc čija je funkcionalnost ekvivalentna funkcionalnosti odabranih uvjetnih grananja BC. The first executable part 2pes of the protected program 2p, which is executed in the data processing system 3, executes the conditional branch commands, activating in the unit 6 the execution by means of the second executable part 2peu of the extracted conditional branches bc whose functionality is equivalent to the functionality of the selected conditional branches BC.

Slika 90 prikazuje primjer izvođenja nezaštićenog programa 2v. U ovom primjeru, tijekom izvođenja nezaštićenog programa 2v u sustavu za obradu podataka 3 u određenom trenutku dolazi do uvjetnog grananja BC koje pokazuje nezaštićenom programu 2v točku gdje se nastavlja izvođenje, tj. jednu od tri moguće točke B1, B2, B3. Podrazumijeva se da uvjetno grananje BC donosi odluku o nastavku izvođenja programa u točkama B1, B2 ili B3. Figure 90 shows an example of the execution of an unprotected program 2v. In this example, during the execution of the unprotected program 2v in the data processing system 3, at a certain moment a conditional branch BC occurs which shows the unprotected program 2v the point where the execution continues, i.e. one of the three possible points B1, B2, B3. It is understood that conditional branching BC makes a decision to continue program execution at points B1, B2 or B3.

Slika 91 prikazuje primjer implementacije izuma za koje uvjetno grananje odabrano za izdvajanje u jedinicu 6 odgovara uvjetnom grananju BC. U ovom primjeru, tijekom izvođenja prvog izvršnog dijela 2pes zaštićenog programa 2p u sustavu za obradu podataka 3 i prisutnosti jedinice 6, dolazi do: Figure 91 shows an example implementation of the invention for which the conditional branch selected for allocation to unit 6 corresponds to the conditional branch BC. In this example, during the execution of the first executable part 2pes of the protected program 2p in the data processing system 3 and the presence of the unit 6, occurs:

• u trenutku t1, izvođenja naredbe uvjetnog grananja CBC1 koja aktivira izvođenje, u jedinici 6 i pomoću drugog izvršnog dijela 2peu, izdvojenog uvjetnog grananja bc koje je algoritamski ekvivalentno uvjetnom grananju BC, a gdje je navedena naredba uvjetnog grananja CBC1 prikazana s TRIG(bc), • at time t1, the execution of the conditional branch command CBC1 which activates the execution, in unit 6 and by means of the second executable part 2peu, of the extracted conditional branch bc which is algorithmically equivalent to the conditional branch BC, and where the specified conditional branch command CBC1 is represented by TRIG(bc) ,

• u trenutku t2, prijenos informacije koja omogućava prvom izvršnom dijelu 2pes nastavljanje izvođenja u odabranoj točki B1, B2 ili B3,iz jedinice 6 u sustav za obradu podataka 3. • at time t2, transfer of information that enables the first executive part 2pes to continue execution at the selected point B1, B2 or B3, from unit 6 to data processing system 3.

Treba uočiti da tijekom izvođenja odsječka prvog izvršnog dijela 2pes zaštićenog programa 2p naredba uvjetnog grananja koja se izvodi u sustavu za obradu podataka 3 aktivira izvođenja odgovarajućih izdvojenih uvjetnih grananja u jedinici 6. Dakle, dolazi do toga da se, u prisutnosti jedinice 6, navedeni odsječak izvodi ispravno te da je, posljedično, zaštićeni program 2p potpuno funkcionalan. It should be noted that during the execution of the segment of the first executable part 2pes of the protected program 2p, the conditional branch command executed in the data processing system 3 activates the execution of the corresponding isolated conditional branches in the unit 6. Thus, it happens that, in the presence of the unit 6, the specified segment executes correctly and that, consequently, the protected program 2p is fully functional.

Slika 92 prikazuje primjer pokušaja izvođenja zaštićenog programa 2p kada nedostaje jedinica 6. U ovom primjeru, tijekom izvođenja prvog izvršnog dijela 2pes zaštićenog programa 2p u sustavu za obradu podataka 3: Figure 92 shows an example of an attempt to execute the protected program 2p when unit 6 is missing. In this example, during the execution of the first executable part 2pes of the protected program 2p in the data processing system 3:

• u trenutku t1, izvođenje naredbe uvjetnog grananja CBC1 ne može aktivirati izvođenje izdvojenog uvjetnog grananja bc, uzimajući u obzir odsutnost jedinice 6, • at time t1, the execution of the conditional branch command CBC1 cannot activate the execution of the isolated conditional branch bc, taking into account the absence of unit 6,

• u trenutku t2, prijenos dijela informacije koji omogućava prvom izvršnom dijelu 2pes nastavljanje u odabranoj točki nije izvediv uzimajući u obzir odsustvo jedinice 6. • at time t2, the transfer of a piece of information that allows the first executive part 2pes to continue at the selected point is not feasible taking into account the absence of unit 6.

Zato dolazi do toga da u odsutnosti jedinice 6, ne može biti ispravno ispunjen najmanje jedan zahtjev odsječka prvog izvršnog dijela 2pes za aktiviranjem izvođenja izdvojenog uvjetnog grananja u jedinici 6, tako da najmanje navedeni odsječak nije izvršen ispravno te da, posljedično, zaštićeni program 2p nije potpuno funkcionalan. That's why it happens that in the absence of unit 6, at least one request of the section of the first executable part 2pes to activate the execution of the isolated conditional branching in unit 6 cannot be correctly fulfilled, so that the at least specified section is not executed correctly and, consequently, the protected program 2p is not fully functional.

U prethodnom opisu prikazanom na slikama 90 do 92, sadržaj izuma se odnosi na izdvajanje uvjetnog grananja u jedinicu 6. Prirodno, preferirana izvedba izuma može biti izvršena izdvajanjem, u jedinicu 6, niza uvjetnih grananja čija je ukupna funkcionalnost ekvivalent svim funkcionalnostima uvjetnih grananja koji se izdvajaju. Izvođenje ukupne funkcionalnosti navedenih nizova odvojenih uvjetnih grananja vodi smještanju na raspolaganje sustavu za obradu podataka 3 dijela informacija koje omogućavaju prvom izvršnom dijelu 2pes zaštićenog programa 2p da nastavi izvođenje u odabranoj točki. In the previous description shown in Figures 90 to 92, the content of the invention refers to the allocation of conditional branching to unit 6. Naturally, the preferred embodiment of the invention can be carried out by the allocation, to unit 6, of a series of conditional branches whose overall functionality is equivalent to all the functionalities of conditional branches that separate. The execution of the overall functionality of the specified series of separate conditional branches leads to making available to the data processing system 3 pieces of information that enable the first executable part 2pes of the protected program 2p to continue execution at the selected point.

U prethodnom opisu u vezi sa slikama 40 do 92, izneseno je pet različitih principa zaštite programa koji su, općenito govoreći, međusobno različiti. Proces zaštite u skladu s izumom je implementiran uporabom principa zaštite elementarnim funkcijama, eventualno kombiniranim s jednim ili više drugih principa zaštite. U slučaju gdje je princip zaštite elementarnim funkcijama dopunjen implementacijom barem još jednog principa zaštite, gdje je princip zaštite elementarnim funkcijama unaprijeđen principom zaštite varijablom i/ili principom zaštite detekcijom i prisilom i/ili principom zaštite preimenovanjem i/ili principom zaštite uvjetnim grananjem. In the preceding description in connection with Figures 40 to 92, five different principles of program protection have been set forth which, generally speaking, are mutually exclusive. The protection process in accordance with the invention is implemented using the principle of protection by elementary functions, possibly combined with one or more other protection principles. In the case where the principle of protection by elementary functions is supplemented by the implementation of at least one more principle of protection, where the principle of protection by elementary functions is improved by the principle of protection by variable and/or the principle of protection by detection and coercion and/or the principle of protection by renaming and/or the principle of protection by conditional branching.

I kada je princip zaštite detekcijom i prisilom implementiran, može biti dopunjeni uzastopnim principom zaštite preimenovanjem i/ili principom zaštite uvjetnim grananjem. And when the principle of protection by detection and coercion is implemented, it can be supplemented by the principle of protection by sequential renaming and/or the principle of protection by conditional branching.

I kada je nadalje princip zaštite preimenovanjem implementiran, može biti dopunjen uzastopnim principom zaštite uvjetnim grananjem. And when the principle of protection by renaming is implemented, it can be supplemented by the successive principle of protection by conditional branching.

U skladu s preferiranom varijantom izvedbe, princip zaštite elementarnim funkcijama se dopunjava s principom zaštite varijablom, dopunjenim principom zaštite detekcijom i prisilom, dopunjenim s principom zaštite preimenovanjem, te dopunjenim s principom zaštite uvjetnim grananjem. In accordance with the preferred embodiment, the principle of protection by elementary functions is supplemented with the principle of protection by variable, supplemented by the principle of protection by detection and coercion, supplemented by the principle of protection by renaming, and supplemented by the principle of protection by conditional branching.

U slučaju gdje je primijenjen princip zaštite, kao dopuna principu zaštite elementarnim funkcijama, prije izneseni opis mora uključivati, uzimajući u obzir kombiniranu implementaciju, slijedeće modifikacije: In the case where the protection principle is applied, as a supplement to the protection principle with elementary functions, the above description must include, taking into account the combined implementation, the following modifications:

• pojam nezaštićeni program treba razumjeti kao program nezaštićen prema opisanom principu zaštite. Dakle, u slučaju gdje je princip zaštite već primijenjen na nezaštićeni program, izraz "nezaštićeni program" treba biti interpretiran od čitatelja kao izraz "program zaštićen principom zaštite koji je već primijenjen"; • the term unprotected program should be understood as a program unprotected according to the described protection principle. Thus, in the case where the principle of protection has already been applied to an unprotected program, the term "unprotected program" should be interpreted by the reader as the term "program protected by the principle of protection that has already been applied";

• predodžba zaštićenog programa treba razumjeti kao program koji je zaštićen prema opisanom principu zaštite. Dakle, u slučaju gdje je princip zaštite već primijenjen, izraz "zaštićeni program" treba interpretirati od čitatelja kao izraz "nova verzija zaštićenog programa"; • the notion of a protected program should be understood as a program that is protected according to the described protection principle. So, in the case where the principle of protection has already been applied, the term "protected program" should be interpreted by the reader as the term "new version of the protected program";

• učinjeni izbor za implementaciju opisanog principa zaštite treba uzeti u obzir učinjeni izbor za implementaciju već primijenjenog principa zaštite. • the choice made to implement the described protection principle should take into account the choice made to implement the already applied protection principle.

Ostatak opisa omogućava bolje razumijevanje implementacije procesa zaštite u skladu s izumom. Ovaj proces zaštite u skladu s izumom je sastavljen, kako je preciznije prikazano na slici 100: The remainder of the description provides a better understanding of the implementation of the protection process in accordance with the invention. This protection process in accordance with the invention is composed, as shown more precisely in Figure 100:

• prvo, od faze zaštite P tijekom koje se nezaštićeni program 2v modificira u zaštićeni program 2p, • first, from the protection phase P during which the unprotected program 2v is modified into the protected program 2p,

• zatim, od faze uporabe U tijekom koje se zaštićeni program 2p koristi. • then, from the use phase U during which the protected program 2p is used.

Tijekom ove faze uporabe U: During this phase of use In:

- u prisutnosti jedinice 6 i svaki puta kada odsječak prvog izvršnog dijela 2pes koji se izvodi u sustavu za obradu podataka 3 to zahtjeva, zahtijevana funkcionalnost se izvodi u jedinici 6, tako da se navedeni odsječak izvodi ispravno te da je, posljedično, zaštićeni program 2p potpuno funkcionalan, - in the presence of the unit 6 and every time the segment of the first executable part 2pes which is executed in the data processing system 3 requests it, the required functionality is performed in the unit 6, so that the said segment is executed correctly and that, consequently, the protected program 2p fully functional,

- u odsutnosti jedinice 6 i u duhu zahtjeva odsječka prvog izvršnog dijela 2pes za izvođenjem u jedinici 6, navedeni zahtjev ne može biti ispunjen ispravno, tako da najmanje navedeni odsječak nije izvršen ispravno te da, posljedično, zaštićeni program 2p nije potpuno funkcionalan, - in the absence of unit 6 and in the spirit of the request of the section of the first executable part 2pes to be performed in unit 6, the specified request cannot be fulfilled correctly, so that at least the specified section is not executed correctly and, consequently, the protected program 2p is not fully functional,

• i eventualno od faze ponovnog učitavanja R tijekom koje se kreditira najmanje jedna dodatna uporaba funkcionalnosti zaštićene implementacijom druge preferirane varijante izvedbe principa zaštite detekcijom i prisilom koristeći kao karakteristiku, mjernu varijablu. • and possibly from the reloading phase R during which at least one additional use of the functionality protected by the implementation of the second preferred variant of the implementation of the principle of protection by detection and coercion is credited using, as a characteristic, a measurement variable.

Faza zaštite P može se podijeliti u dvije pod-faze zaštite P1 i P2. Prva, nazvana pod-faza prethodne zaštite P1, odvija se neovisno od nezaštićenog programa koji se štiti. Druga, nazvana pod-faza naknadne zaštite P2 ovisi o nezaštićenom programu 2v koji se štiti. Treba uočiti da pod-fazu prethodne zaštite P1 i pod-fazu naknadne zaštite P2 mogu prikladno obaviti dvije različite osobe ili dva različita tima. Na primjer, pod-fazu prethodne zaštite P1 može obaviti osoba ili firma koja obavlja razvoj sustava za zaštitu programa, dok pod-faza naknadne zaštite P2 može obaviti osoba ili firma koja obavlja razvoj programa koji treba zaštiti. Prirodno, jasno je da pod-fazu prethodne zaštite P1 i pod-fazu naknadne zaštite P2 može obaviti ista osoba ili tim. Protection phase P can be divided into two sub-phases of protection P1 and P2. The first, called the pre-protection sub-phase P1, takes place independently of the unprotected program being protected. The second, called sub-stage of post-protection P2 depends on the unprotected program 2v being protected. It should be noted that the pre-protection sub-phase P1 and the post-protection sub-phase P2 can be conveniently performed by two different people or two different teams. For example, the pre-protection sub-phase P1 can be performed by the person or firm developing the system to protect the program, while the post-protection sub-phase P2 can be performed by the person or firm developing the program to be protected. Naturally, it is clear that the pre-protection sub-phase P1 and the post-protection sub-phase P2 can be performed by the same person or team.

Pod-faza prethodne zaštite P1 se sastoji od više stupnjeva S11,..., S1i za svaki od različitih zadataka ili poslova koje treba obaviti. The sub-phase of the previous protection P1 consists of multiple stages S11,...,S1i for each of the different tasks or jobs to be performed.

Prvi stupanj pod-faze prethodne zaštite P1 se naziva "stupanj određivanja S11". Tijekom toga stupnja određivanja S11: The first stage of the sub-stage of the previous protection P1 is called "determination stage S11". During this determination step S11:

• odabiru se: • are selected:

- vrsta jedinice 6. Za ilustraciju, mogu se za jedinicu 6 odabrati čitač "chip" kartice 8 i "chip" kartica 7 koja je pridružena čitaču, - type of unit 6. For illustration, the "chip" card reader 8 and the "chip" card 7 associated with the reader can be selected for unit 6,

- i postupak prijenosa 12, 13 dizajniran za primjenu tijekom faze korištenja U redom u sustavu za obradu podataka 3 i jedinici 6, te sposoban za osiguravanje prijenosa podataka između sustava za obradu podatka 3 i jedinice 6, - and the transfer procedure 12, 13 designed to be applied during the phase of use in the data processing system 3 and the unit 6 respectively, and capable of providing data transfer between the data processing system 3 and the unit 6,

• definiraju se: • are defined:

- skup elementarnih funkcija koje su predodređene za izvođenje u jedinici 6, - a set of elementary functions that are destined to be performed in unit 6,

- i skup elementarnih naredbi za navedene elementarne funkcije, gdje su navedene elementarne naredbe određene za izvođenje u sustavu za obradu podataka 3 i za aktiviranje izvođenja elementarnih funkcija u jedinici 6, - and a set of elementary commands for the specified elementary functions, where the specified elementary commands are specified for execution in the data processing system 3 and for activating the execution of elementary functions in the unit 6,

• i u slučaju gdje proces zaštite u skladu s izumom implementira princip zaštite detekcijom i prisilom, također se definiraju: • and in the case where the protection process in accordance with the invention implements the principle of protection by detection and coercion, the following are also defined:

- najmanje jedna karakteristika izvođenja programa, određena za barem djelomično praćenje u jedinici 6, - at least one characteristic of program execution, determined for at least partial monitoring in unit 6,

- najmanje jedan kriterij koji treba ispuniti za barem jednu karakteristiku izvođenja programa, - at least one criterion that needs to be met for at least one characteristic of program execution,

- postupak detekcije 17 koji se implementira u jedinici 6 te koji omogućava detekciju najmanje jedne karakteristike izvođenja za koju nije ispunjen barem jedan pridruženi kriterij, - detection procedure 17 which is implemented in unit 6 and which enables the detection of at least one performance characteristic for which at least one associated criterion is not met,

- postupak prisile 18 koji se implementira u jedinici 6 i omogućava informiranje sustava za obradu podataka 3 i/ili modifikaciju izvođenja programa, kada barem jedan kriterij nije ispunjen, - the coercion procedure 18, which is implemented in unit 6 and enables informing the data processing system 3 and/or modifying the execution of the program, when at least one criterion is not met,

• i u slučaju gdje proces zaštite u skladu s izumom implementira princip zaštite detekcijom i prisilom koristeći kao karakteristiku mjernu varijablu koja mjeri izvođenje programa, također se definira: • and in the case where the protection process in accordance with the invention implements the principle of protection by detection and coercion using as a characteristic a measurement variable that measures the execution of the program, it is also defined:

- varijabla koja mjeri korištenje funkcionalnosti programa kao karakteristika programa određena za praćenje, - a variable that measures the use of the program's functionality as a characteristic of the program determined for monitoring,

- najmanje jedan prag pridružen svakoj mjernoj varijabli kao kriterij koji treba ispuniti, - at least one threshold associated with each measurement variable as a criterion to be fulfilled,

- i postupka aktualizacije koji omogućava osvježivanje najmanje jedne mjerne varijable, - and the actualization procedure that enables the refreshing of at least one measurement variable,

• i u slučaju kada proces zaštite prema izumu također implementira prvu preferiranu izvedbu principa zaštite detekcijom i prisilom koristeći kao karakteristiku varijablu koja mjeri izvođenje programa, također se definira: • and in the case where the protection process according to the invention also implements the first preferred embodiment of the protection principle by detection and coercion using as a characteristic a variable that measures the execution of the program, it is also defined:

- više pridruženih pragova za najmanje jednu mjernu varijablu, - several associated thresholds for at least one measurement variable,

- različite postupke prisila koji odgovaraju svakom od navedenih pragova, - different coercion procedures corresponding to each of the mentioned thresholds,

• i u slučaju gdje proces zaštite u skladu s izumom implementira drugu preferiranu varijantu izvedbe principa zaštite detekcijom i prisilom koristeći kao karakteristiku varijablu koja mjeri izvođenje programa, također se definira postupak ponovnog učitavanja koji omogućava dodavanje najmanje jedne dodatne uporabe najmanje jedne funkcionalnosti koja se prati mjernom varijablom, • and in the case where the protection process in accordance with the invention implements another preferred variant of the implementation of the protection principle by detection and coercion using as a characteristic a variable that measures the execution of the program, a reloading procedure is also defined that enables the addition of at least one additional use of at least one functionality that is monitored by a measurement variable ,

• i u slučaju gdje proces zaštite u skladu s izumom implementira princip zaštite detekcijom i prisilom koristeći kao karakteristiku profil uporabe programa, također se definira: • and in the case where the protection process in accordance with the invention implements the principle of protection by detection and coercion using the program usage profile as a characteristic, it is also defined:

- kao karakteristiku izvođenja programa predviđenu za praćenje, profil uporabe programa, - as a characteristic of program execution intended for monitoring, program usage profile,

- najmanje jedna značajka izvođenja programa kao kriterij koji treba ispuniti, - at least one feature of program execution as a criterion to be fulfilled,

• i u slučaju kada proces zaštite prema izumu implementira princip zaštite detekcijom i prisilom koristeći praćenje ulančavanja izvođenja kao značajku izvođenja koju treba ispuniti, također se definira: • and in the case where the protection process according to the invention implements the principle of protection by detection and enforcement using execution chaining monitoring as a performance feature to be fulfilled, it is also defined:

- skup instrukcija koje su predviđene za izvođenje u jedinici 6, - a set of instructions that are intended for execution in unit 6,

- skup naredbi za navedeni skup instrukcija, gdje su navedene instrukcije predviđene za izvođenje u sustavu za obradu podataka 3 i za aktiviranje izvođenja instrukcija u jedinici 6, - a set of commands for the specified set of instructions, where the specified instructions are intended for execution in the data processing system 3 and for activating the execution of instructions in the unit 6,

- ulančavanje instrukcija kao profila uporabe, - chaining of instructions as a usage profile,

- očekivanog ulančavanja izvođenja instrukcija kao značajke izvođenja, - expected chaining of execution of instructions as a feature of execution,

- kao postupak detekcije 17, postupka koji omogućava detektiranje da ulančavanje instrukcija ne odgovara očekivanom, - as a detection procedure 17, a procedure that enables detection that the chaining of instructions does not correspond to the expected,

- kao postupak prisile 18, postupka koji omogućava informiranje sustava za obradu podataka 3 i/ili modifikaciju funkcioniranja odsječka zaštićenog programa 2p kada ulančavanje instrukcija ne odgovara očekivanom, - as a coercion procedure 18, a procedure that enables informing the data processing system 3 and/or modifying the functioning of the section of the protected program 2p when the chaining of instructions does not correspond to the expected,

• i u slučaju gdje proces zaštite u skladu s izumom implementira preferiranu varijantu izvedbe principa zaštite detekcijom i prisilom koristeći praćenje ulančavanja izvođenja kao značajku izvođenja koju treba ispuniti, također se definira: • and in the case where the protection process in accordance with the invention implements a preferred embodiment variant of the protection principle by detection and enforcement using execution chaining monitoring as an execution feature to be fulfilled, it is also defined:

- skup instrukcija, gdje barem neke instrukcije rade s registrima i koriste najmanje jedan operand s namjerom vraćanja rezultata, - a set of instructions, where at least some instructions work with registers and use at least one operand with the intention of returning a result,

- za barem neke instrukcije koje rade s registrima: - for at least some instructions that work with registers:

▸ dio PF koji definira funkcionalnost instrukcija, ▸ part PF that defines the functionality of the instructions,

▸ i dio koji definira očekivano ulančavanje izvođenja instrukcija i uključuje zastavice koje odgovaraju: ▸ and a section that defines the expected chaining of instruction execution and includes flags corresponding to:

◊ polju za identifikaciju instrukcije CII, ◊ to the CII instruction identification field,

◊ i za svaki operand instrukcije: ◊ and for each instruction operand:

* polje zastavice CDk, * flag field CDk,

* očekivano polje identifikacije CIPk operanda, * expected CIPk operand identification field,

- za svaki registar koji pripada postupku za eksploataciju i koji koristi skup instrukcija, generirano polje za identifikaciju CIGv u kojem se automatski pohranjuje identifikacija instrukcije koja je zadnja vratila rezultat u registar, - for each register that belongs to the exploitation procedure and that uses a set of instructions, a generated CIGv identification field in which the identification of the instruction that last returned the result to the register is automatically stored,

- postupak detekcije 17, koji omogućava, tijekom izvođenja instrukcije, za svaki operand, kada zastavica CDk to dozvoljava, provjeru istovjetnosti generiranog polja za identifikaciju CIGv koji odgovara registru koji koristi navedeni operand, i očekivanog polja za identifikaciju CIPk u izvornom kodu navedenog operanda, - the detection procedure 17, which enables, during the execution of the instruction, for each operand, when the flag CDk allows it, to check the identity of the generated identification field CIGv corresponding to the register used by the specified operand, and the expected identification field CIPk in the source code of the specified operand,

• i u slučaju gdje proces zaštite u skladu s izumom implementira princip zaštite preimenovanjem, također se definira: • and in the case where the protection process in accordance with the invention implements the principle of protection by renaming, it is also defined:

- kao naredba za aktiviranje, elementarna naredba ili instrukcijska naredba, - as an activation command, elementary command or instructional command,

- kao zavisna funkcija, elementarna funkcija ili instrukcija, - as a dependent function, elementary function or instruction,

- kao nalog, najmanje jedan argument za naredbu za aktiviranje koji barem djelomično odgovara informaciji prenesenoj iz sustava za obradu podataka 3 u jedinicu 6, tako da aktivira izvođenje odgovarajuće zavisne funkcije, - as an order, at least one argument for the activation command that at least partially corresponds to the information transferred from the data processing system 3 to the unit 6, so that it activates the execution of the corresponding dependent function,

- postupak preimenovanja naloga koji omogućava preimenovanje naloga tako da se dobiju naredbe za aktiviranje s preimenovanim nalozima, - order renaming procedure that enables order renaming so that activation orders are received with renamed orders,

- i postupak obnavljanja 20 dizajniran za korištenje u jedinici 6 tijekom faze korištenja U koji omogućava obnavljanje zavisne funkcije za izvođenje od strane preimenovanog naloga, - and a recovery procedure 20 designed for use in unit 6 during the utilization phase U which enables recovery of the dependent function for execution by the renamed order,

• i u slučaju gdje proces zaštite u skladu s izumom implementira varijante principa zaštite preimenovanjem, također se definira, za najmanje jednu zavisnu funkciju, familija algoritamski ekvivalentnih zavisnih funkcija, ali koje aktiviraju naredbama za aktiviranje čiji su preimenovani nalozi različiti, • and in the case where the protection process in accordance with the invention implements variants of the principle of protection by renaming, a family of algorithmically equivalent dependent functions is also defined, for at least one dependent function, but which are activated by activation commands whose renamed orders are different,

• i u slučaju gdje proces zaštite u skladu s izumom implementira jednu od preferiranih izvedbi varijanti principa zaštite preimenovanjem, također se definira, za najmanje jednu zavisnu funkciju, familija algoritamski ekvivalentnih zavisnih funkcija: • and in the case where the protection process in accordance with the invention implements one of the preferred embodiments of variants of the protection principle by renaming, a family of algorithmically equivalent dependent functions is also defined for at least one dependent function:

- dodavanjem polja smetnje u informaciju koja definira funkcionalni dio zavisne funkcije koja se izvodi u jedinici 6, - by adding the interference field to the information that defines the functional part of the dependent function performed in unit 6,

- ili korištenjem polja za identifikaciju instrukcija CII i očekivanog polja za identifikaciju operanda CIPk. - or using the instruction identification field CII and the expected operand identification field CIPk.

• i u slučaju gdje proces zaštite u skladu s izumom implementira preferiranu varijantu principa zaštite preimenovanjem, također se definira: • and in the case where the process of protection in accordance with the invention implements the preferred variant of the principle of protection by renaming, it is also defined:

- kao postupak preimenovanja naloga, postupak šifriranja za šifriranje naloga, - as an order renaming procedure, an encryption procedure for order encryption,

- i kao postupak za obnavljanje 20, postupak koji implementira postupak šifriranja za dešifriranje preimenovanih naloga kojim se obnavlja jednakost zavisnih funkcija koje se izvode u jedinici 6. - and as a recovery procedure 20, a procedure that implements an encryption procedure for decrypting the renamed orders by which the equality of the dependent functions performed in the unit 6 is restored.

Tijekom pod-faze prethodne zaštite P1, iza stupnja definiranja S11 slijedi stupanj nazvan "stupanj konstruiranja S12". Tijekom ovog stupnja S12 konstruira se postupak prijenosa 12, 13 i eventualno postupak eksploatacije koji odgovara stupnju definiranja S11. During the pre-protection sub-phase P1, the defining step S11 is followed by a step called "constructing step S12". During this step S12, the transfer procedure 12, 13 and possibly the exploitation procedure corresponding to the definition step S11 are constructed.

Tijekom ovog stupnja konstruiranja S12, obavlja se dakle: During this stage of constructing S12, the following is done:

• konstrukcija postupka prijenosa 12, 13 koji omogućavaju, tijekom faze korištenja U, prijenos podataka između sustava za obradu podataka 3 i jedinice 6, • the construction of the transfer procedure 12, 13 which enable, during the use phase U, the transfer of data between the data processing system 3 and the unit 6,

• konstrukcija postupka eksploatacije koji također omogućava jedinici 6 da tijekom faze korištenja U izvodi elementarne funkcije iz skupa elementarnih funkcija, • the construction of the exploitation procedure, which also enables unit 6 to perform elementary functions from the set of elementary functions during the use phase U,

• i kada je princip zaštite detekcijom i prisilom također implementiran, konstrukcija: • and when the principle of protection by detection and coercion is also implemented, the construction:

- postupka eksploatacije koji omogućava jedinici 6, tijekom faze korištenja U, da također implementira postupak detekcije 17 i prisile 18, - the exploitation procedure which enables the unit 6, during the use phase U, to also implement the detection procedure 17 and coercion 18,

- i eventualno postupka eksploatacije koji omogućava jedinici 6, tijekom faze korištenja U, da također implementira postupak aktualizacije, - and possibly the exploitation procedure that enables unit 6, during the use phase U, to also implement the actualization procedure,

- i eventualno postupka eksploatacije koji omogućava jedinici 6, tijekom faze korištenja U, da također implementira postupak ponovnog učitavanja, - and possibly an exploitation procedure that enables unit 6, during the use phase U, to also implement a reloading procedure,

- i eventualno postupka eksploatacije koji omogućava jedinici 6, tijekom faze korištenja U, da izvodi instrukcije iz skupa instrukcija, - and possibly an exploitation procedure that enables unit 6, during the use phase U, to execute instructions from a set of instructions,

• i kada je princip zaštite preimenovanjem također implementiran, konstrukcija postupka eksploatacije omogućava jedinici 6, da tijekom faze korištenja U, također implementira postupak obnavljanja. • and when the principle of protection by renaming is also implemented, the construction of the exploitation procedure enables unit 6, during the use phase U, to also implement the restoration procedure.

Konstrukcija postupka eksploatacije se obavlja klasično, razvijenom programskom jedinicom i uzimajući u obzir definicije koje su se pojavile u stupnju definiranja S11. Ova jedinica je definirana u ostatku opisa na slici 110. The construction of the exploitation procedure is performed classically, with a developed program unit and taking into account the definitions that appeared in the definition stage S11. This unit is defined in the rest of the description in Figure 110.

Tijekom pod-faza prethodne zaštite P1, stupanj konstrukcije S12 može biti praćen stupnjem nazvanim "stupanj pred-prilagodbe S13". Tijekom ovog stupnja pred-prilagodbe S13, barem dio postupka prijenosa 13 i/ili postupka eksploatacije se učitava u najmanje jednu praznu jedinicu 60 s namjerom dobivanja najmanje jedne pred-prilagođene jedinice 66. Treba uočiti da dio postupka eksploatacije, kada se jednom prenese u pred-prilagođenu jedinicu 66, nije dalje direktno dostupan izvan navedene pred-prilagođene jedinice 66. Prijenos postupka eksploatacije u jedinicu 60 može biti obavljen kroz adaptiranu pred-prilagođenu jedinicu, što je opisano u ostatku opisa na slici 120. U slučaju pred-prilagođene jedinice 66, konstituirane u obliku "chip" kartice 7 i njenog čitača 8, pred-prilagodba se odnosi samo na "chip" karticu 7. During the pre-protection sub-phases P1, the construction step S12 may be followed by a step called "pre-adjustment step S13". During this pre-adaptation step S13, at least part of the transfer process 13 and/or the exploitation process is loaded into at least one blank unit 60 with the intention of obtaining at least one pre-adapted unit 66. It should be noted that the exploitation process part, once transferred to the pre -adapted unit 66, is no longer directly accessible outside the specified pre-adapted unit 66. The transfer of the exploitation procedure to the unit 60 can be done through the adapted pre-adapted unit, which is described in the rest of the description in Figure 120. In the case of the pre-adapted unit 66 , constituted in the form of a "chip" card 7 and its reader 8, the pre-adjustment applies only to the "chip" card 7.

Tijekom pod-faze prethodne zaštite P1, nakon stupnja definiranja S11 i eventualno nakon stupnja konstruiranja S12, može doći do stupnja nazvanog "stupanj izrade alata S14". Tijekom ovog stupnja izrade alata S14 izrađeni alati omogućavaju pomoć u generiranju zaštićenog programa ili automatizaciju zaštićenog programa. Ovi alati omogućavaju: During the pre-protection sub-phase P1, after the defining stage S11 and possibly after the designing stage S12, a stage called "tool making stage S14" can occur. During this stage of creating the S14 tools, the created tools enable assistance in the generation of the protected program or the automation of the protected program. These tools enable:

• pomoć u odabiru ili automatski odabir u nezaštićenom programu 2v za zaštitu: • assistance in selection or automatic selection in unprotected program 2v for protection:

- algoritama određenih za dijeljenje u elementarne funkcije koje se izdvajaju u jedinicu 6, - algorithms determined for division into elementary functions that are allocated to unit 6,

- odsječka određenog za modifikaciju, - section designated for modification,

- i kada je princip zaštite varijablom također implementira, algoritam(e) određenih da budu podijeljeni u korake odvojene u jedinicu 6, - and when the variable protection principle is also implemented, the algorithm(s) determined to be divided into steps separated into unit 6,

- i kada je princip zaštite detekcijom i prisilom također implementiran, karakteristika(e) izvođenje za praćenje, i eventualno algoritam određen da bude podijeljen u instrukcije odvojene u jedinicu 6, - and when the principle of protection by detection and coercion is also implemented, the characteristic(s) of execution for monitoring, and possibly the algorithm determined to be divided into instructions separated in unit 6,

- i kada je princip zaštite preimenovanjem također implementiran, algoritam određen da se podijeli u zavisne funkcije odvojene u jedinicu 6 i za koje su preimenovani nalozi naredbi za aktiviranje, - and when the principle of protection by renaming is also implemented, the algorithm is determined to be divided into dependent functions separated into unit 6 and for which the orders of the activation commands are renamed,

- i kada je princip zaštite uvjetnim grananjem također primijenjen, uvjetno grananje(a) čije su funkcionalnosti određene za izdvajanje u jedinicu 6, - and when the principle of protection by conditional branching is also applied, conditional branching(s) whose functionalities are determined to be allocated to unit 6,

• i, eventualno, pomoć u generiranju zaštićenog programa ili automatiziranju zaštite programa. • and, possibly, help in generating a protected program or automating program protection.

Ovi različiti alati mogu se obaviti nezavisno ili u kombinaciji, a svaki alat može imati različite oblike, kao što su pred-procesor, asembler, kompajler i sl. These different tools can be done independently or in combination, and each tool can take different forms, such as pre-processor, assembler, compiler, etc.

Pod-faza prethodne zaštite P1 je praćena s pod-fazom naknadne zaštite P2 koja ovisi o nezaštićenom programu 2v koji se zaštićuje. Ova pod-faza naknadne zaštite P2 se pored toga sastoji od više stupnjeva. Prvi stupanj koji odgovara implementaciji principa zaštite elementarnim funkcijama se naziva "stupanj kreiranja S21". Tijekom ovog stupnja kreiranja S21, koriste se odabiri napravljeni tijekom faze definiranja S11. S pomoći navedenih odabira i eventualno alata konstruiranih tijekom stupnja izrade alata S14, kreira se zaštićeni program 2vs: The pre-protection sub-phase P1 is followed by the post-protection sub-phase P2 which depends on the unprotected program 2v being protected. This sub-phase of subsequent protection P2 also consists of several stages. The first stage corresponding to the implementation of the principle of protection by elementary functions is called "creation stage S21". During this creation stage S21, the selections made during the definition stage S11 are used. With the help of the above selections and possibly the tools constructed during the tool creation stage S14, a protected program 2vs is created:

• odabirom najmanje jednog algoritma koji, tijekom izvođenja nezaštićenog programa 2v, koristi najmanje jedan operand i omogućava dobivanje najmanje jednog rezultata, • by selecting at least one algorithm which, during the execution of the unprotected program 2v, uses at least one operand and allows obtaining at least one result,

• odabirom, u izvornom kodu nezaštićenog programa 2vs, najmanje jednog odsječka koji sadrži najmanje jedan odabrani algoritam, • by selecting, in the source code of the unprotected 2vs program, at least one section containing at least one selected algorithm,

• proizvodnjom izvornog koda zaštićenog programa 2ps iz izvornog koda nezaštićenog programa 2vs, modifikacijom najmanje jednog odabranog odsječka izvornog koda nezaštićenog programa 2vs u izvornog koda zaštićenog programa 2ps, koja je takva da: • by producing the source code of the protected program 2ps from the source code of the unprotected program 2vs, by modifying at least one selected section of the source code of the unprotected program 2ps into the source code of the protected program 2ps, which is such that:

- se tijekom izvođenja zaštićenog programa 2p prvi izvršni dio 2pes izvodi u sustavu za obradu podataka 3, a drugi izvršni dio 2peu se izvodi u jedinici 6 koja se dobiva iz prazne jedinice 60 nakon učitavanja podataka, - during the execution of the protected program 2p, the first executable part 2pes is executed in the data processing system 3, and the second executable part 2peu is executed in the unit 6 which is obtained from the empty unit 60 after loading the data,

- drugi izvršni dio 2peu izvodi funkcionalnost najmanje jednog odabranog algoritma, - the second executable part of 2peu performs the functionality of at least one selected algorithm,

- se najmanje jedan odabrani algoritam dijeli tako da se tijekom izvođenja zaštićenog programa 2p navedeni algoritam izvodi pomoću drugog izvršnog dijela 2peu korištenjem elementarnih funkcija, - at least one selected algorithm is divided so that during the execution of the protected program 2p, the specified algorithm is executed using the second executable part 2peu using elementary functions,

- su za najmanje jedan odabrani algoritam elementarne naredbe integrirane u izvorni kod zaštićenog programa 2p, tako da se tijekom izvođenja zaštićenog programa 2p svaka elementarna naredba izvršava od strane prvog izvršnog dijela 2pes te aktivira, u jedinici 6, izvođenja elementarne funkcije pomoću drugog izvršnog dijela 2peu, - are for at least one selected algorithm elementary commands integrated into the source code of the protected program 2p, so that during the execution of the protected program 2p each elementary command is executed by the first executable part 2pes and activates, in unit 6, the execution of the elementary function by the second executable part 2peu ,

- se odabire sekvenca elementarnih naredbi iz skupa sekvenci koje dozvoljavaju izvođenje zaštićenog programa 2p, - a sequence of elementary commands is selected from the set of sequences that allow the execution of the protected program 2p,

• i proizvodnjom: • and production:

- prvog objektnog dijela 2pos zaštićenog programa 2p iz izvornog koda zaštićenog programa 2ps, gdje je navedeni prvi objektni dio 2pos takav da se tijekom izvođenja zaštićenog programa 2p, pojavljuje prvi izvršni dio 2pes koji se izvodi u sustavu za obradu podataka 3 čiji najmanje jedan odsječak uzima u obzir da se elementarna naredba izvodi u skladu s odabranom sekvencom, - of the first object part 2pos of the protected program 2p from the source code of the protected program 2ps, where the first object part 2pos is specified such that during the execution of the protected program 2p, the first executable part 2pes appears which is executed in the data processing system 3, at least one section of which takes considering that the elementary command is executed in accordance with the selected sequence,

- i drugog objektnog dijela 2pou zaštićenog programa 2p, koji sadrži postupak za eksploataciju i koji je takav da se nakon učitavanja u praznu jedinicu 60 i tijekom izvođenja zaštićenog programa 2p pojavljuje drugi izvršni dio 2peu pomoću kojeg se izvode elementarne funkcije aktivirane od strane prvog izvršnog dijela 2pes. - and the second object part 2pou of the protected program 2p, which contains the procedure for exploitation and which is such that after loading into the empty unit 60 and during the execution of the protected program 2p, the second executable part 2peu appears by means of which the elementary functions activated by the first executable part are performed 2 pes.

Prirodno, princip zaštite varijablom u skladu s izumom može biti primijenjen tijekom razvoja novog programa bez zahtjeva za prethodnom realizacijom nezaštićenog programa 2v. Na ovaj način, zaštićeni program 2p se dobiva direktno. Naturally, the principle of variable protection in accordance with the invention can be applied during the development of a new program without requiring the prior implementation of an unprotected program 2v. In this way, the protected program 2p is obtained directly.

Tijekom pod-faza slijedeće zaštite P2, te kada je najmanje još jedan princip zaštite primijenjen u dodatku na princip zaštite elementarnim funkcijama, dolazi do "stupnja modifikacije S22". Tijekom stupnja modifikacije S22, koriste se definicije koje su se pojavile tijekom stupanja definiranja S11. S pomoći navedenih definicija i eventualno alata konstruiranih tijekom stupnja izrade alata S14, zaštićeni program 2p se modificira tako da dozvoljava implementaciju principa zaštite u skladu s jednom od prije definiranih podjela. During the sub-phases of the following protection P2, and when at least one more protection principle is applied in addition to the protection principle by elementary functions, the "modification stage S22" occurs. During the modification step S22, the definitions that appeared during the definition step S11 are used. With the help of the above definitions and possibly the tools constructed during the tool creation stage S14, the protected program 2p is modified so as to allow the implementation of the protection principle in accordance with one of the previously defined divisions.

Kada je primijenjen princip zaštite varijablom, zaštićeni program 2p se modificira: When the variable protection principle is applied, the protected program 2p is modified:

• odabirom najmanje jedne varijable koja se koristi u najmanje jednom odabranom algoritmu, a koja tijekom izvođenja zaštićenog programa 2p, djelomično definira stanje zaštićenog programa 2p, • by selecting at least one variable that is used in at least one selected algorithm, and which, during the execution of the protected program 2p, partially defines the state of the protected program 2p,

• modifikacijom najmanje jednog odabranog odsječka izvornog koda zaštićenog programa 2ps koja je takva da se tijekom izvođenja zaštićenog programa 2p najmanje jedna varijabla ili kopija varijable nalazi u jedinici 6, • by modifying at least one selected section of the source code of the protected program 2ps, which is such that during the execution of the protected program 2p, at least one variable or a copy of the variable is located in unit 6,

• i proizvodnjom: • and production:

- prvog objektnog dijela 2pos zaštićenog programa 2p, gdje je navedeni prvi objektni dio 2pos takav da se tijekom izvođenja zaštićenog programa 2p najmanje jedan odsječak prvog izvršnog dijela 2pes uzima u obzir da se najmanje jedna varijabla ili kopija varijable nalazi u jedinici 6, - of the first object part 2pos of the protected program 2p, where the specified first object part 2pos is such that during the execution of the protected program 2p at least one section of the first executable part 2pes takes into account that at least one variable or a copy of the variable is located in unit 6,

- i drugog objektnog dijela 2pou zaštićenog programa 2p, gdje je navedeni objektni dio 2pou takav da se, nakon učitavanja u jedinicu 6 i tijekom izvođenja zaštićenog programa 2p, pojavljuje drugi izvršni dio 2peu pomoću kojeg se barem odabrana varijabla ili kopija varijable također smješta u jedinicu 6. - and the second object part 2pou of the protected program 2p, where said object part 2pou is such that, after loading into the unit 6 and during the execution of the protected program 2p, another executable part 2peu appears, by means of which at least the selected variable or a copy of the variable is also placed in the unit 6.

Kada su implementirani principi zaštite detekcijom i prisilom, zaštićeni program 2p se modificira: When the principles of protection by detection and coercion are implemented, the protected program 2p is modified:

• odabirom za praćenje najmanje jedne karakteristike izvođenja programa, između karakteristika izvođenja programa predviđenih za praćenje, • by selecting for monitoring at least one program execution characteristic, among the program execution characteristics provided for monitoring,

• odabirom najmanje jednog kriterija koji treba biti ispunjen za najmanje jednu odabranu karakteristiku izvođenja programa, • by selecting at least one criterion that must be met for at least one selected characteristic of program execution,

• odabirom, u izvornom kodu zaštićenog programa 2ps, elementarnih funkcija za koje se prati najmanje jedna karakteristika izvođenja programa, • by selecting, in the source code of the protected program 2ps, elementary functions for which at least one characteristic of program execution is monitored,

• modifikacijom najmanje jednog odabranog odsječka izvornog koda zaštićenog programa 2ps, koja je takva da se tijekom izvođenja zaštićenog programa 2p, prati najmanje jedna odabrana karakteristika izvođenja pomoću drugog izvršnog dijela 2peu, te činjenica da kriterij nije ispunjen vodi na to da se informira sustav za obradu podataka 3 i/ili se modificira izvođenje zaštićenog programa 2p, • by modifying at least one selected section of the source code of the protected program 2ps, which is such that during the execution of the protected program 2p, at least one selected performance characteristic is monitored by means of another executable part 2peu, and the fact that the criterion is not met leads to informing the processing system data 3 and/or the execution of the protected program 2p is modified,

• proizvodnjom drugog objektnog dijela 2pou zaštićenog programa 2p koji sadrži postupak eksploatacije koji također implementira postupak detekcije 17 i postupak prisile 18, a gdje je navedeni drugi objektni dio 2pou takav da se nakon učitavanja u jedinicu 6 i tijekom izvođenja zaštićenog programa 2p, prati najmanje jedna karakteristika izvođenja programa te činjenica da kriterij nije ispunjen vodi tome da se informira sustav za obradu podataka 3 i/ili se modificira izvođenje zaštićenog programa 2p. • by the production of the second object part 2pou of the protected program 2p, which contains an exploitation procedure that also implements the detection procedure 17 and the coercion procedure 18, and where the second object part 2pou is such that after loading into unit 6 and during the execution of the protected program 2p, at least one the characteristic of the program execution and the fact that the criterion is not met leads to informing the data processing system 3 and/or modifying the execution of the protected program 2p.

Za implementaciju principa zaštite detekcijom i prisilom korištenjem karakteristike varijable koja mjeri izvođenje programa, zaštićeni program 2p se modificira: To implement the principle of protection by detection and coercion using the characteristic of the variable that measures the execution of the program, the protected program 2p is modified:

• odabirom kao karakteristike izvođenja programa koja se prati, najmanje jedne varijable koja mjeri uporabu najmanje jedne funkcionalnosti programa, • by selecting at least one variable that measures the use of at least one functionality of the program as a characteristic of the program execution to be monitored,

• odabirom: • by choosing:

- najmanje jedne funkcionalnosti zaštićenog programa 2p čija je uporaba podložna praćenju korištenjem mjernih varijabli, - at least one functionality of the protected program 2p, the use of which is subject to monitoring using measurement variables,

- najmanje jedne mjerne varijable koja se koristi za kvantifikaciju uporabe navedene funkcionalnosti, - at least one measurement variable used to quantify the use of the specified functionality,

- najmanje jednog praga pridruženog mjernoj varijabli koja odgovara granici uporabe navedene funkcionalnosti, - at least one threshold associated with the measurement variable that corresponds to the limit of use of the specified functionality,

- najmanje jednog postupka osvježivanja odabrane mjerne varijable koja zavisi o uporabi navedene funkcionalnosti, - at least one procedure for refreshing the selected measurement variable, which depends on the use of the specified functionality,

• i modifikacijom najmanje jednog odabranog odsječka izvornog koda zaštićenog programa 2ps, koja je takva da je, tijekom izvođenja zaštićenog programa 2p, mjerna varijabla aktualizirana pomoću drugog izvršnog dijela 2peu zavisno o uporabi navedene funkcionalnosti, te da se uzima u obzir najmanje jedan prijelaz praga. • and by modifying at least one selected section of the source code of the protected program 2ps, which is such that, during the execution of the protected program 2p, the measurement variable is updated using another executable part 2peu depending on the use of the mentioned functionality, and that at least one threshold crossing is taken into account.

Za implementaciju prve preferirane varijante izvedbe principa zaštite detekcijom i prisilom korištenjem, kao karakteristike, mjerne varijable, zaštićeni program 2p se modificira: To implement the first preferred variant of the implementation of the principle of protection by detection and coercion using, as a characteristic, a measurement variable, the protected program 2p is modified:

• odabirom, u izvornom kodu zaštićenog programa 2ps, najmanje jedne odabrane mjerne varijable za kojoj treba pridružiti više pragova koji odgovaraju različitim granicama korištenja funkcionalnosti, • by selecting, in the source code of the protected program 2ps, at least one selected measurement variable for which several thresholds corresponding to different limits of functionality use should be associated,

• odabirom najmanje dva praga pridružena odabranoj mjernoj varijabli, • by selecting at least two thresholds associated with the selected measurement variable,

• modifikacijom najmanje jednog odabranog odsječka izvornog koda zaštićenog programa 2ps, koja je takva da se, tijekom izvođenja zaštićenog programa 2p, prijelazi različitih pragova pomoću drugog izvršnog dijela 2peu uzimajući u obzir odvojeno. • by modifying at least one selected section of the source code of the protected program 2ps, which is such that, during the execution of the protected program 2p, transitions of different thresholds using the second executable part 2pe are taken into account separately.

Za implementaciju druge preferirane varijante izvedbe principa zaštite detekcijom i prisilom korištenjem kao karakteristike mjerne varijable zaštićenog program 2p se modificira: To implement the second preferred variant of the implementation of the principle of protection by detection and coercion using the protected measurement variable as a characteristic, program 2p is modified:

• odabirom, u izvornom kodu zaštićenog programa 2ps, najmanje jedne odabrane mjerne varijable koja omogućava ograničavanje uporabe funkcionalnosti te koja treba omogućiti da bude kreditirana s najmanje jednom dodatnom uporabom, • by selecting, in the source code of the protected program 2ps, at least one selected measurement variable that allows limiting the use of the functionality and that should be allowed to be credited with at least one additional use,

• i modifikacijom najmanje jednog odabranog odsječka, koja je takva da tijekom faze nazvane ponovno učitavanje, može biti kreditirana najmanje jedna dodatna uporaba najmanje jedne funkcionalnosti koja odgovara odabranoj mjernoj varijabli. • and by modifying at least one selected segment, which is such that during the phase called reloading, at least one additional use of at least one functionality corresponding to the selected measurement variable can be credited.

Za implementaciju principa zaštite detekcijom i prisilom korištenjem, kao karakteristike, profila uporabe programa, zaštićeni program 2p se modificira: To implement the principle of protection by detection and coercion using, as a characteristic, the program usage profile, the protected program 2p is modified:

• odabirom najmanje jednog profila uporabe programa kao karakteristike izvođenja programa koja se prati, • by selecting at least one program usage profile as a monitored program performance characteristic,

• odabirom najmanje jedne značajke izvođenja za koju najmanje jedan odabrani profil uporabe koja mora biti ispunjena, • by selecting at least one performance feature for which at least one selected usage profile must be fulfilled,

• i modifikacijom najmanje jednog odabranog odsječka izvornog koda zaštićenog programa 2ps, koja je takva da, tijekom izvođenja zaštićenog programa 2p, drugi izvršni dio 2peu ispunjava sve odabrane značajke izvođenja. • and by modifying at least one selected section of the source code of the protected program 2ps, which is such that, during the execution of the protected program 2p, the second executable part 2peu fulfills all the selected execution features.

Za implementaciju principa zaštite detekcijom i prisilom, kao značajke izvođenja koju treba ispuniti, praćenja ulančavanjem izvođenja, zaštićeni program 2p se modificira: To implement the principle of protection by detection and coercion, as a feature of execution to be fulfilled, monitoring by execution chaining, the protected program 2p is modified:

• modifikacijom najmanje jednog odabranog odsječak izvornog koda zaštićenog programa 2ps: • by modifying at least one selected section of the source code of the protected program 2ps:

- transformiranjem elementarnih funkcija u instrukcije, - by transforming elementary functions into instructions,

- specificiranjem ulančavanja kod kojeg treba ispuniti barem neke instrukcije tijekom njihova izvođenja u jedinici 6, - by specifying chaining in which at least some instructions should be completed during their execution in unit 6,

- i transformiranjem elementarnih naredbi u naredbe koje odgovaraju korištenim instrukcijama. - and by transforming elementary commands into commands that correspond to the instructions used.

Kada je implementiran princip zaštite preimenovanjem, zaštićeni program 2p se modificira: When the principle of protection by renaming is implemented, the protected program 2p is modified:

• odabirom u izvornom kodu zaštićenog programa 2ps naredbi za aktiviranje, • by selecting the 2ps activation command in the source code of the protected program,

• modifikacijom najmanje jednog odabranog odsječka izvornog koda zaštićenog programa 2ps preimenovanjem naloga odabranih naredbi za aktiviranje, tako da je skrivena istoznačnost odgovarajućih zavisnih funkcija, • by modifying at least one selected section of the source code of the protected 2ps program by renaming the order of the selected activation commands, so that the identity of the corresponding dependent functions is hidden,

• i proizvodnjom: • and production:

- prvog objektnog dijela 2pos zaštićenog programa 2p, gdje je navedeni prvi objektni dio 2pos takav se tijekom izvođenja zaštićenog programa 2p izvodi naredba za aktiviranje s preimenovanim nalogom, - of the first object part 2pos of the protected program 2p, where the specified first object part 2pos is such that during the execution of the protected program 2p the activation command is executed with a renamed order,

- i drugog objektnog dijela 2pou zaštićenog programa 2p koji sadrži postupak eksploatacije te također implementira postupak obnavljanja 20, a gdje je navedeni drugi objektni dio 2pou takav da se, nakon učitavanja u jedinicu 6 i tijekom izvođenja zaštićenog programa 2p, obnavlja pomoću drugog izvršnog dijela 2peu jednakost zavisne funkcije koju aktivira izvođenje prvog izvršnog dijela 2pes i zavisne funkcije koja se izvodi pomoću drugog izvršnog dijela 2peu. - and the second object part 2pou of the protected program 2p, which contains the exploitation procedure and also implements the restoration procedure 20, and where the second object part 2pou is such that, after loading into unit 6 and during the execution of the protected program 2p, it is restored using the second executable part 2peu the equality of the dependent function activated by the execution of the first executable part 2pes and the dependent function executed by the second executable part 2peu.

Za implementaciju varijante principa zaštite preimenovanjem, zaštićeni program 2p se modificira: To implement a variant of the protection principle by renaming, the protected program 2p is modified:

• odabirom, u izvornom kodu zaštićenog programa 2ps najmanje jedne naredbe za aktiviranje s preimenovanim nalozima. • by selecting, in the source code of the protected program 2ps, at least one activation command with renamed accounts.

• i modifikacijom najmanje jednog odabranog odsječka izvornog koda zaštićenog programa 2ps zamjenom najmanje jednog preimenovanog naloga jedne odabrane naredbe za aktiviranje s preimenovanim nalogom, s drugim preimenovanim nalogom, aktiviranjem zavisne funkcije iste familije. • and by modifying at least one selected section of the source code of the protected program 2ps by replacing at least one renamed command of one selected activation command with a renamed command, with another renamed command, activating a dependent function of the same family.

Kada je implementiran princip zaštite uvjetnim grananjem. zaštićeni program 2p se modificira: When the principle of protection by conditional branching is implemented. the protected program 2p is modified:

• odabirom, u izvornom kodu zaštićenog programa 2p, najmanje jednog uvjetnog grananja koje se obavlja u najmanje jednom algoritmu, • by selecting, in the source code of the protected program 2p, at least one conditional branching that is performed in at least one algorithm,

• te modifikacijom najmanje jednog odabranog odsječka izvornog koda zaštićenog programa 2ps, koja je takva da se tijekom izvođenja zaštićenog programa 2p, izvodi funkcionalnost najmanje jednog uvjetnog grananja u jedinici 6, pomoću drugog izvršnog dijela 2peu, • and by modifying at least one selected section of the source code of the protected program 2ps, which is such that during the execution of the protected program 2p, the functionality of at least one conditional branching in unit 6 is performed, using the second executable part 2peu,

• i proizvodnjom: • and production:

- prvog objektnog dijela 2pos zaštićenog programa 2p, gdje je navedeni prvi objektni dio 2pos takav da se tijekom izvođenja zaštićenog programa 2p funkcionalnost najmanje jednog odabranog uvjetnog grananja izvodi u jedinici 6, - of the first object part 2pos of the protected program 2p, where the specified first object part 2pos is such that during the execution of the protected program 2p the functionality of at least one selected conditional branch is performed in unit 6,

- i drugog objektnog dijela 2pou zaštićenog programa 2p, gdje je navedeni drugi objektni dio 2pou takav da se, nakon učitavanja u jedinicu 6 i tijekom izvođenja zaštićenog programa 2p, pojavljuje drugi izvršni dio 2peu pomoću kojeg se izvodi funkcionalnost najmanje jednog uvjetnog grananja. - and the second object part 2pou of the protected program 2p, where the specified second object part 2pou is such that, after loading into unit 6 and during the execution of the protected program 2p, the second executable part 2peu appears, by means of which the functionality of at least one conditional branching is performed.

Za implementaciju preferirane izvedbe principa zaštite uvjetnim grananjem, zaštićeni program se modificira: To implement the preferred implementation of the conditional branching protection principle, the protected program is modified:

• odabirom, u izvornom kodu zaštićenog programa 2ps, najmanje jednog niza odabranih uvjetnih grananja, • by selecting, in the source code of the protected program 2ps, at least one set of selected conditional branches,

• modifikacijom najmanje jednog odabranog odsječka izvornog koda zaštićenog programa 2ps, koja je takva da se, tijekom izvođenja zaštićenog programa 2p, izvodi ukupna funkcionalnost najmanje jednog niza pomoću drugog izvršnog dijela 2peu u jedinici 6, • by modifying at least one selected section of the source code of the protected program 2ps, which is such that, during the execution of the protected program 2p, the overall functionality of at least one sequence is performed using the second executable part 2peu in unit 6,

• i proizvodnjom: • and production:

- prvog objektnog dijela 2pos zaštićenog programa 2p, gdje je navedeni prvi objektni dio 2pos takav da se tijekom izvođenja zaštićenog programa 2p funkcionalnost najmanje jednog niza uvjetnih grananja izvodi u jedinici 6, - of the first object part 2pos of the protected program 2p, where the specified first object part 2pos is such that during the execution of the protected program 2p the functionality of at least one sequence of conditional branches is performed in unit 6,

- i drugog objektnog dijela 2pou zaštićenog programa 2p, gdje je navedeni drugi objektni dio 2pou takav da se, nakon učitavanja u jedinicu 6 i tijekom izvođenja zaštićenog programa 2p, pojavljuje drugi izvršni dio 2peu pomoću kojeg se izvodi ukupna funkcionalnost najmanje jednog niza uvjetnih grananja. - and the second object part 2pou of the protected program 2p, where the specified second object part 2pou is such that, after loading into unit 6 and during the execution of the protected program 2p, the second executable part 2peu appears, by means of which the overall functionality of at least one sequence of conditional branches is performed.

Prirodno, princip zaštite u skladu s izumom može biti primijenjen direktno tijekom razvoja novog programa bez zahtjeva za prethodnim obavljanjem zaštite intermedijarnih dijelova programa. Na ovaj način, stupanj kreacije S21 i stupanj modifikacije S22 se mogu obaviti popratno tako da se direktno dobije zaštićeni program 2p. Naturally, the principle of protection in accordance with the invention can be applied directly during the development of a new program without the requirement for prior protection of intermediate parts of the program. In this way, the creation step S21 and the modification step S22 can be performed simultaneously so that the protected program 2p is obtained directly.

Tijekom pod-faza naknadne zaštite P2, nakon stupnja kreacije S21 zaštićenog programa 2p, te eventualno nakon stupnja modifikacije S22, dolazi do stupnja nazvanog "stupanj prilagodbe S23". Tijekom ovog stupnja prilagodbe S23, drugi objektni dio 2pou koji sadrži postupak eksploatacije se učitava u najmanje jednu praznu jedinicu 60, s namjerom dobivanja najmanje jedne jedinice 6, ili se dio drugog objektnog dijela 2pou koji eventualno sadrži postupak eksploatacije učitava u najmanje jednu pred-prilagođenu jedinicu 66, s namjerom dobivanja najmanje jedne jedinice 6. Učitavanjem ove prilagođene informacije najmanje jedna jedinica 6 postaje operativna. Treba uočiti da se dijelu navedene informacije, jednom prenesene u jedinicu 6, ne može direktno pristupiti izvan jedinice 6. Prijenos prilagođenih informacija u praznu jedinicu 60 ili pred-prilagođenu jedinicu 66 može se obaviti kroz adaptiranu jedinicu za prilagodbu koja je opisana u ostatku opisa na slici 150. U slučaju jedinice 6, konstituirane od "chip" kartice 7 i čitača 8, prilagodba se odnosi samo na "chip" karticu 7. During the sub-phase of subsequent protection P2, after the creation stage S21 of the protected program 2p, and possibly after the modification stage S22, a stage called "adaptation stage S23" occurs. During this adjustment step S23, the second object part 2pou containing the exploitation procedure is loaded into at least one empty unit 60, with the intention of obtaining at least one unit 6, or the part of the second object part 2pou possibly containing the exploitation procedure is loaded into at least one pre-adjusted unit 66, with the intention of obtaining at least one unit 6. By loading this customized information, at least one unit 6 becomes operational. It should be noted that a portion of said information, once transferred to unit 6, cannot be directly accessed outside of unit 6. The transfer of adapted information to blank unit 60 or pre-adapted unit 66 can be done through the adapted adaptation unit described in the remainder of the description at Figure 150. In the case of unit 6, consisting of "chip" card 7 and reader 8, the adjustment applies only to "chip" card 7.

Za implementaciju faze zaštite P, različiti tehnički postupci su detaljnije opisani na slikama 110, 120, 130, 140 i 150. To implement the protection phase P, the various technical procedures are described in more detail in Figures 110, 120, 130, 140 and 150.

Slika 110 prikazuje izvedbu sustava 25 koji omogućava implementaciju stupnja konstrukcije S12 koji uzima u obzir definicije nastale tijekom stupnja definiranja S11 tijekom kojeg su konstruirani postupci prijenosa 12, 13 te eventualno, postupak eksploatacije namijenjen za jedinicu 6. Tako sustav 25 uključuje jedinicu za razvoj programa ili radnu stanicu koja standardno ima oblik računala koje se sastoji od sistemske jedinice, ekrana, periferije kao što su tipkovnica-miš, te uključuje, između ostalog, slijedeće programe: editor, asembler, pred-procesor, kompajler, interpreter, debuger i link editor. Figure 110 shows the performance of the system 25 which enables the implementation of the construction stage S12 which takes into account the definitions created during the definition stage S11 during which the transfer procedures 12, 13 and possibly the exploitation procedure intended for the unit 6 are constructed. Thus, the system 25 includes a program development unit or a workstation that has the standard form of a computer consisting of a system unit, a screen, peripherals such as a keyboard-mouse, and includes, among others, the following programs: editor, assembler, pre-processor, compiler, interpreter, debugger and link editor.

Slika 120 prikazuje izvedbu pred-prilagođene jedinice 30 koja omogućava učitavanje najmanje dijela postupka prijenosa 13 i/ili postupka eksploatacije u najmanje jednu praznu jedinicu 60 s namjerom dobivanja pred-prilagođene jedinice 66. Navedena pred-prilagođena jedinica 30 uključuje postupak čitanja i pisanja 31 koji omogućava električnu pred-prilagodbu prazne jedinice 60 tako da se dobiva pred-prilagođena jedinica 66 u koju se učitavanje vrši pomoću postupka prijenosa 13 i/ili postupka eksploatacije. Pred-prilagođena jedinica 30 može također uključivati fizički postupak prilagodbe 32 prazne jedinice 60 koji npr. ima oblik pisača. U slučaju gdje se jedinica 6 sastoji od "chip" kartice 7 njenog čitača 8, pred-prilagodba se općenito odnosi samo na "chip" karticu 7. Fig. 120 shows an embodiment of a pre-adapted unit 30 that allows loading at least part of the transfer process 13 and/or the exploitation process into at least one empty unit 60 with the intention of obtaining a pre-adapted unit 66. Said pre-adapted unit 30 includes a read and write process 31 which enables the electrical pre-adjustment of the empty unit 60 so that a pre-adjusted unit 66 is obtained into which the loading is carried out by means of the transfer process 13 and/or the exploitation process. The pre-adapted unit 30 may also include a physical adaptation process 32 of the blank unit 60 which is, for example, in the form of a printer. In the case where the unit 6 consists of a "chip" card 7 of its reader 8, the pre-adaptation generally applies only to the "chip" card 7.

Slika 130 prikazuje izvedbu sustava 35 koji omogućava izradu alata koji pomažu u generiranju zaštićenog programa ili automatiziraju zaštitu programa. Tako sustav 35 uključuje jedinicu za razvoj programa ili radnu stanicu koja standardno ima oblik računala koje se sastoji od sistemske jedinice, ekrana, periferije kao što su tipkovnica-miš, a uključuje između ostalog, slijedeće programe: editor, asembler, preprocesor, kompajler, interpreter, debuger i link editor. Figure 130 shows an embodiment of a system 35 that enables the creation of tools that assist in the generation of a protected program or automate the protection of a program. Thus, system 35 includes a unit for program development or a workstation which, as a standard, has the form of a computer consisting of a system unit, a screen, peripherals such as a keyboard-mouse, and includes, among other things, the following programs: editor, assembler, preprocessor, compiler, interpreter , debugger and link editor.

Slika 140 prikazuje izvedbu sustava 40 koji omogućava direktno kreiranje zaštićenog programa 2p ili modifikaciju nezaštićenog programa 2v sa ciljem dobivanja zaštićenog programa 2p. Tako sustav 40 uključuje jedinicu za razvoj programa ili radnu stanicu koja standardno ima oblik računala koje se sastoji od sistemske jedinice, ekrana, periferije kao što su tipkovnica-miš, a uključuje između ostalog, slijedeće programe: editor, asembler, preprocesor, kompajler, interpreter, debuger i link editor, kao i alate koji pomažu u generiranju zaštićenog programa ili automatizaciji zaštite programa. Figure 140 shows the implementation of the system 40, which enables the direct creation of a protected program 2p or the modification of an unprotected program 2v with the aim of obtaining a protected program 2p. Thus, the system 40 includes a program development unit or a workstation which, as a standard, has the form of a computer consisting of a system unit, a screen, peripherals such as a keyboard-mouse, and includes, among other things, the following programs: editor, assembler, preprocessor, compiler, interpreter , debugger and link editor, as well as tools that help generate a protected program or automate program protection.

Slika 150 prikazuje izvedbu jedinice za prilagodbu 45 koja omogućava učitavanje drugog objektnog dijela 2pou u barem jednu praznu jedinicu 60 sa ciljem dobivanja najmanje jedne jedinice 6 ili učitavanje dijela drugog objektnog dijela 2pou u barem jednu pred-prilagođenu jedinicu 66 sa ciljem dobivanja barem jedne jedinice 6. Navedena jedinica za prilagodbu 45 uključuje postupak pisanja i čitanja 46 koji omogućava električnu prilagodbu najmanje jedne prazne jedinice 60 ili najmanje jedne pred-prilagođene jedinice 66, tako da se dobije barem jedna jedinica 6. Na kraju ove prilagodbe, jedinica 6 uključuje informacije neophodne za izvođenje zaštićenog programa 2p. Jedinica za prilagodbu 45 također uključuje postupak fizičke prilagodbe 47 za najmanje jednu jedinicu 6 koja može imati, na primjer, oblik pisača. U slučaju gdje se jedinica 6 sastoji od "chip" kartice 7 i njenog čitača 8, prilagodba se općenito odnosi samo na "chip" karticu 7. Fig. 150 shows an embodiment of the adjustment unit 45 which enables loading of the second object part 2pou into at least one empty unit 60 with the aim of obtaining at least one unit 6 or loading of a part of the second object part 2pou into at least one pre-adjusted unit 66 with the aim of obtaining at least one unit 6 Said adaptation unit 45 includes a write and read process 46 that enables the electrical adaptation of at least one blank unit 60 or at least one pre-adapted unit 66, so as to obtain at least one unit 6. At the end of this adaptation, the unit 6 includes the information necessary for execution of the protected program 2p. The adaptation unit 45 also includes a physical adaptation procedure 47 for at least one unit 6 which may have, for example, the form of a printer. In the case where the unit 6 consists of a "chip" card 7 and its reader 8, the adjustment generally refers only to the "chip" card 7.

Proces zaštite u skladu s izumom može biti implementira sa slijedećim poboljšanjima: The protection process according to the invention can be implemented with the following improvements:

• Može se planirati zajednička uporaba više jedinica za pohranjivanje i procesiranje između koje zajedno koriste drugi objektni dio 2pou zaštićenog programa 2p tako da njihova zajedničko korištenje omogućava da se u slučaju odsustva barem jedne navedene jedinice za pohranjivanje i procesiranje sprječava uporaba zaštićenog programa 2p. • It is possible to plan the joint use of several storage and processing units between which they jointly use another object part 2pou of the protected program 2p so that their joint use enables the use of the protected program 2p to be prevented in the absence of at least one specified storage and processing unit.

• Na isti način, nakon stupnja pred-prilagodbe S13 i tijekom stupnja prilagodbe S23, dio drugog objektnog dijela 2pou neophodan za transformaciju pred-prilagođene jedinice 66 u jedinicu 6 može biti sadržan u jedinici za procesiranje i memoriranje koju koristi jedinica za prilagodbu 45, tako da se ograničava pristup navedenom dijelu drugog objektnog dijela 2pou. Prirodno, navedeni drugi objektni dio 2pou može koristiti više jedinica za pohranjivanje i procesiranje tako da je navedeni drugi objektni dio 2pou pristupačan samo tijekom zajedničke uporabe od strane navedenih jedinica za procesiranje i memoriranje. • In the same way, after the pre-adaptation step S13 and during the adaptation step S23, a part of the second object part 2pou necessary to transform the pre-adaptation unit 66 into the unit 6 may be contained in the processing and storage unit used by the adaptation unit 45, thus to restrict access to the specified part of the second object part 2pou. Naturally, said second object part 2pou can be used by multiple storage and processing units so that said second object part 2pou is accessible only during joint use by said processing and storage units.

Claims (35)

1. Proces zaštite nezaštićenog programa (2v) koji se izvodi na sustavu za obradu podatka (3), protiv neovlaštenog korištenja, uporabom najmanje jedne prazne jedinice (60) s uključenim najmanje postupkom za pohranjivanje (15) i postupkom za procesiranje (16), naznačen time, da uključuje: • tijekom faze zaštite (P): - definiranje: ▸ skupa elementarnih funkcija koje su predodređene za izvođenje u jedinici (6), ▸ i skupa elementarnih naredbi za navedeni skup elementarnih funkcija, gdje su navedene elementarne naredbe predodređene za izvođenje u sustavu za obradu podataka (3) i za aktiviranje izvođenja elementarnih funkcija u jedinici (6), - izradu postupka za eksploataciju koji omogućava transformaciju prazne jedinice (60) u jedinicu (6) sposobnu za izvođenje elementarnih funkcija navedenog skupa, gdje se izvođenje navedenih elementarnih funkcija aktivira izvođenjem elementarnih naredbi u sustavu za obradu podataka (3), - kreiranje zaštićenog programa (2p): ▸ odabirom najmanje jednog algoritma koji, tijekom izvođenja nezaštićenog programa (2v), koristi najmanje jedan operand i omogućava dobivanje najmanje jednog rezultata, ▸ odabirom najmanje jednog odsječka u izvornom kodu nezaštićenog programa (2v) koji sadrži najmanje jedan odabrani algoritam, ▸ proizvodnjom izvornog koda zaštićenog programa (2ps) iz izvornog koda nezaštićenog programa (2vs), modifikacijom najmanje jednog odabranog odsječka izvornog koda nezaštićenog programa (2vs), sa ciljem dobivanja najmanje jednog odsječka izvornog koda zaštićenog programa (2ps), gdje je navedena modifikacija takva da: � se tijekom izvođenja zaštićenog programa (2p) prvi izvršni dio (2pes) izvodi u sustavu za obradu podataka (3), a drugi izvršni dio (2peu) izvodi u jedinici (6) dobivenoj iz prazne jedinice (60) nakon učitavanja informacija, � drugi izvršni dio (2peu) izvodi funkcionalnost barem jednog odabranog algoritma, � se najmanje jedan algoritam dijeli tako da se tijekom izvođenja zaštićenog programa (2p) navedeni algoritam izvodi pomoću drugog izvršnog dijela (2peu) korištenjem elementarnih funkcija, � su za najmanje jedan algoritam, elementarne naredbe integrirane u izvorni kod zaštićenog programa (2ps), tako da tijekom izvođenja zaštićenog programa (2p) svaku elementarnu naredbu izvodi prvi izvršni dio (2pes), čime se aktivira izvođenje drugog izvršnog dijela (2peu) elementarne funkcije u jedinici (6), � se odabire sekvenca elementarnih naredbi između skupa sekvenci koje dozvoljavaju izvođenje zaštićenog programa (2p), ▸ i proizvodnjom: � prvog objektnog dijela (2pos) zaštićenog programa (2p) iz izvornog koda nezaštićenog programa (2ps), gdje je navedeni prvi objektni dio (2pos) takav da se, tijekom izvođenja zaštićenog programa (2p), pojavljuje prvi izvršni dio (2pes) koji se izvodi u sustavu za obradu podatka (3), a čiji barem jedan dio uzima u obzir da se elementarne naredbe izvode u skladu s odabranom sekvencom, � i drugog objektnog dijela (2pou) zaštićenog programa (2p) koji sadrži postupak za eksploataciju, a koji je takav da se, nakon učitavanja u praznu jedinicu (60) i tijekom izvođenja zaštićenog programa (2p), pojavljuje drugi izvršni dio (2peu) pomoću kojeg se izvode elementarne funkcije aktivirane od strane prvog izvršnog dijela (2pes), - i učitavanje drugog objektnog dijela (2pos) u praznu jedinicu (60), sa ciljem dobivanja jedinice (6), • i tijekom faze uporabe (U), kada se izvodi zaštićeni program (2p): - u prisutnosti jedinice (6), svaki puta kada odsječak prvog izvršnog dijela (2pes) to zahtjeva, izvođenje odgovarajuće elementarne funkcije u jedinici (6), tako da se navedeni odsječak izvodi ispravno te da je, posljedično, zaštićeni program (2p) potpuno funkcionalan, - i u odsutnosti jedinice (6), a u duhu zahtjeva odsječka prvog izvršnog dijela (2pes) za izvođenjem elementarne funkcije u jedinici (6), nemogućnost ispravnog ispunjavanja zahtjeva, tako se barem navedeni odsječak ne izvodi ispravno te da, posljedično, zaštićeni program nije potpuno funkcionalan.1. The process of protecting an unprotected program (2v) performed on a data processing system (3) against unauthorized use, using at least one empty unit (60) with at least a storage method (15) and a processing method (16) included, characterized by the fact that it includes: • during the protection phase (P): - defining: ▸ set of elementary functions that are destined to be performed in unit (6), ▸ and a set of elementary commands for the specified set of elementary functions, where the specified elementary commands are destined for execution in the data processing system (3) and for activating the execution of elementary functions in the unit (6), - creating a procedure for exploitation that enables the transformation of an empty unit (60) into a unit (6) capable of performing the elementary functions of the specified set, where the execution of the specified elementary functions is activated by the execution of elementary commands in the data processing system (3), - creating a protected program (2p): ▸ by selecting at least one algorithm which, during the execution of the unprotected program (2v), uses at least one operand and allows obtaining at least one result, ▸ by selecting at least one section in the source code of the unprotected program (2v) that contains at least one selected algorithm, ▸ by producing the source code of the protected program (2ps) from the source code of the unprotected program (2vs), by modifying at least one selected section of the source code of the unprotected program (2vs), with the aim of obtaining at least one section of the source code of the protected program (2ps), where the specified modification is such that: � during the execution of the protected program (2p), the first executable part (2pes) is executed in the data processing system (3), and the second executable part (2peu) is executed in the unit (6) obtained from the empty unit (60) after loading the information, � the second executable part (2peu) performs the functionality of at least one selected algorithm, � at least one algorithm is divided so that during the execution of the protected program (2p) the specified algorithm is executed by means of another executable part (2peu) using elementary functions, � for at least one algorithm, the elementary commands are integrated into the source code of the protected program (2ps), so that during the execution of the protected program (2p), each elementary command is executed by the first executable part (2pes), which activates the execution of the second executable part (2peu) of the elementary functions in unit (6), � a sequence of elementary commands is selected from a set of sequences that allow the execution of the protected program (2p), ▸ and production: � of the first object part (2pos) of the protected program (2p) from the source code of the unprotected program (2ps), where the specified first object part (2pos) is such that, during the execution of the protected program (2p), the first executable part (2pes) appears which is performed in the data processing system (3), and at least one part of which takes into account that elementary commands are performed in accordance with the selected sequence, � and the second object part (2pou) of the protected program (2p) which contains the procedure for exploitation, which is such that, after loading into the empty unit (60) and during the execution of the protected program (2p), the second executable part (2peu) appears by means of which the elementary functions activated by the first executive part (2pes) are performed, - and loading the second object part (2pos) into the empty unit (60), with the aim of obtaining the unit (6), • and during the use phase (U), when the protected program (2p) is running: - in the presence of the unit (6), every time the segment of the first executable part (2pes) requires it, the execution of the corresponding elementary function in the unit (6), so that the specified segment is executed correctly and, consequently, the protected program (2p) is completely functional, - and in the absence of unit (6), and in the spirit of the requirement of the section of the first executive part (2pes) for the performance of the elementary function in unit (6), the impossibility of correctly fulfilling the requirements, so at least the specified section is not performed correctly and, consequently, the protected program is not completely functional. 2. Proces u skladu sa zahtjevom 1, naznačen time, da uključuje: • tijekom faze zaštite (P): - modifikaciju zaštićenog programa (2p): ▸ odabirom najmanje jedne varijable koja se koristi u odabranom algoritmu, a koja tijekom izvođenja zaštićenog programa (2p), djelomično definira kasnije stanje zaštićenog programa (2p), ▸ modifikacijom najmanje jednog odabranog odsječka izvornog koda zaštićenog programa (2ps) koja je takva da se tijekom izvođenja zaštićenog programa (2p) barem jedna varijabla ili kopija varijable nalazi u jedinicu (6), ▸ i proizvodnjom: � prvog objektnog dijela (2pos) zaštićenog programa (2p) iz izvornog koda nezaštićenog programa (2ps), gdje je navedeni prvi objektni dio (2pos) takav da se, tijekom izvođenja zaštićenog programa (2p), pojavljuje prvi izvršni dio (2pes) koji uzima u obzir da se barem jedna varijabla ili kopija varijable nalazi u jedinici (6), � i drugog objektnog dijela (2pou) zaštićenog programa (2p), gdje je navedeni drugi objektni dio (2pou) takav da se, nakon učitavanja u praznu jedinicu (60) i tijekom izvođenja zaštićenog programa (2p), pojavljuje drugi izvršni dio (2peu) pomoću kojeg se barem jedna odabrana varijabla ili kopija varijable također smješta u jedinicu (6), • i tijekom faze uporabe (U): - u prisutnosti jedinice (6), svaki puta kada odsječak prvog izvršnog dijela (2pes) to zahtjeva, uporabu varijable ili kopije varijable pohranjene u jedinici (6), tako da se navedeni odsječak izvodi ispravno te da je, posljedično, zaštićeni program (2p) potpuno funkcionalan, - i u odsutnosti jedinice (6), a u duhu zahtjeva odsječka prvog izvršnog dijela (2pes) za uporabom varijable ili kopije varijable pohranjene u jedinici (6), nemogućnost ispravnog ispunjavanja zahtjeva, tako se barem navedeni odsječak ne izvodi ispravno te da, posljedično, zaštićeni program nije potpuno funkcionalan.2. The process according to claim 1, characterized in that it includes: • during the protection phase (P): - modification of the protected program (2p): ▸ by selecting at least one variable used in the selected algorithm, which during the execution of the protected program (2p), partially defines the later state of the protected program (2p), ▸ by modifying at least one selected section of the source code of the protected program (2ps), which is such that during the execution of the protected program (2p), at least one variable or a copy of the variable is located in the unit (6), ▸ and production: � of the first object part (2pos) of the protected program (2p) from the source code of the unprotected program (2ps), where the specified first object part (2pos) is such that, during the execution of the protected program (2p), the first executable part (2pes) appears which takes into account that at least one variable or a copy of the variable is in the unit (6), � and the second object part (2pou) of the protected program (2p), where said second object part (2pou) is such that, after loading into the empty unit (60) and during the execution of the protected program (2p), the second executable part (2peu ) by means of which at least one selected variable or copy of the variable is also placed in unit (6), • and during the use phase (U): - in the presence of the unit (6), every time the segment of the first executable part (2pes) requires it, the use of a variable or a copy of the variable stored in the unit (6), so that the specified segment is executed correctly and, consequently, the protected program (2p ) fully functional, - and in the absence of unit (6), and in the spirit of the request of the section of the first executive part (2pes) for the use of a variable or a copy of the variable stored in unit (6), the impossibility of correctly fulfilling the request, so at least the said section is not performed correctly and that, consequently, protected the program is not fully functional. 3. Proces u skladu sa zahtjevom 1, naznačen time, da uključuje: • tijekom faze zaštite (P): - definiranje: ▸ najmanje jedne karakteristike izvođenja programa, predodređene za barem djelomično praćenje u jedinici (6), ▸ najmanje jednog kriterija koji treba ispuniti za barem jednu karakteristiku izvođenja programa, ▸ postupka detekcije (17) koji se implementira u jedinici (6) a omogućava detekciju da za barem jednu karakteristika izvođenja programa nije ispunjen najmanje jedan pridruženi kriterij, ▸ i postupka prisile (18) koji se implementira u jedinici (6) i omogućava informiranje sustava za obradu podataka (3) i/ili modifikaciju izvođenja programa kada barem jedan kriterij ne postoji, - izradu postupka za eksploataciju koji omogućava jedinici (6) također implementaciju postupka detekcije (17) i postupka prisile (18), - modifikaciju zaštićenog programa (2p): ▸ odabirom najmanje jedne karakteristike izvođenja programa za praćenje, između karakteristika izvođenja programa predodređenih za praćenje, ▸ odabirom najmanje jednog kriterija koji treba ispuniti za najmanje jednu odabranu karakteristiku programa, ▸ odabirom, u izvornom kodu zaštićenog programa (2ps), elementarnih funkcija za koje se prati barem jedna karakteristika izvođenja programa, ▸ izmjenom najmanje jednog odabranog odsječka izvornog koda zaštićenog programa (2p) koja je takva da se tijekom izvođenja zaštićenog programa (2p) prati najmanje jedna karakteristika izvođenja programa pomoću drugog izvršnog dijela (2peu) a činjenica da kriterij nije ispunjen vodi tome da se informira sustav za obradu podataka (3) i/ili se modificira izvođenje zaštićenog programa (2p), ▸ i proizvodnjom drugog objektnog dijela (2pou) zaštićenog programa (2p) koji sadrži postupak za eksploataciju, a koji također implementira postupak detekcije (17) i postupak prisile (18), gdje je navedeni drugi objektni dio (2pou) takav da se, nakon učitavanja u jedinicu (6) i tijekom izvođenja zaštićenog programa (2p), prati najmanje jedna karakteristika izvođenja programa, a činjenica da kriterij nije ispunjen vodi tome da se informira sustav za obradu podatka (3) i/ili se modificira izvođenje zaštićenog programa (2p), • i tijekom faze uporabe (U): - u prisutnosti jedinice (6): ▸ tako dugo dok su ispunjeni svi kriteriji koji odgovaraju praćenim karakteristikama izvođenja svih modificiranih odsječaka zaštićenog programa (2p), navedeni odsječak zaštićenog programa (2p) radi ispravno i posljedično omogućavajući zaštićenom programu (2p) da radi nominalno, ▸ te ako najmanje jedan od kriterija koji odgovaraju praćenim karakteristikama izvođenja odsječka zaštićenog programa (2p) nije ispunjen, o tome informira se sustav za obradu podataka (3) i/ili se modificira funkcioniranje odsječka zaštićenog programa (2p), tako da se funkcioniranje zaštićenog programa (2p) modificira.3. The process according to claim 1, characterized in that it includes: • during the protection phase (P): - defining: ▸ at least one characteristic of program execution, destined for at least partial monitoring in unit (6), ▸ at least one criterion that needs to be met for at least one characteristic of program execution, ▸ of the detection procedure (17) which is implemented in unit (6) and enables the detection that at least one associated criterion is not met for at least one characteristic of the program execution, ▸ and the coercion procedure (18) which is implemented in the unit (6) and enables informing the data processing system (3) and/or modifying the execution of the program when at least one criterion does not exist, - creating a procedure for exploitation that enables the unit (6) to also implement a detection procedure (17) and a coercion procedure (18), - modification of the protected program (2p): ▸ by selecting at least one characteristic of the execution of the program for monitoring, among the characteristics of the execution of the programs destined for monitoring, ▸ by selecting at least one criterion to be fulfilled for at least one selected characteristic of the program, ▸ by selecting, in the source code of the protected program (2ps), elementary functions for which at least one characteristic of program execution is monitored, ▸ by changing at least one selected section of the source code of the protected program (2p), which is such that during the execution of the protected program (2p), at least one characteristic of the program's execution is monitored using another executable part (2peu), and the fact that the criterion is not met leads to informing the system for data processing (3) and/or the execution of the protected program (2p) is modified, ▸ and by producing the second object part (2pou) of the protected program (2p) which contains the procedure for exploitation, and which also implements the detection procedure (17) and the coercion procedure (18), where the second object part (2pou) is such that, after loading into the unit (6) and during the execution of the protected program (2p), at least one characteristic of the execution of the program is monitored, and the fact that the criterion is not met leads to the fact that the data processing system (3) is informed and/or the execution of the protected program is modified (2p ), • and during the use phase (U): - in the presence of unit (6): ▸ as long as all the criteria corresponding to the monitored performance characteristics of all modified sections of the protected program (2p) are met, said section of the protected program (2p) operates correctly and consequently enabling the protected program (2p) to operate nominally, ▸ and if at least one of the criteria corresponding to the monitored performance characteristics of the section of the protected program (2p) is not met, the data processing system (3) is informed about this and/or the functioning of the section of the protected program (2p) is modified, so that the functioning of the protected program (2p) modifies. 4. Proces u skladu sa zahtjevom 3, naznačen time, da ograničava uporabu zaštićenog programa (2p), uključujući: • tijekom faze zaštite (P): - definiranje: ▸ kao karakteristike izvođenja programa predodređenu za praćenje, mjerne varijable koja mjeri uporabu funkcionalnosti programa, ▸ kao kriterija koji treba ispuniti, najmanje jedan prag pridružen svakoj mjernoj varijabli, ▸ i postupka aktualizacije koji omogućava osvježavanje barem jedne mjerne varijable, - izradu postupka za eksploataciju koji omogućava jedinici (6) da također implementira postupak aktualizacije, - i modifikaciju zaštićenog programa (2p): ▸ odabirom, kao karakteristike izvođenja programa koja se prati, najmanje jedne varijable koja mjeri uporabu najmanje jedne funkcionalnosti programa, ▸ odabirom: � najmanje jedne funkcionalnosti zaštićenog programa (2p) čija je uporaba podložna praćenju korištenjem mjerne varijable, � najmanje jedne mjerne varijable korištene za kvantifikaciju uporabe navedene funkcionalnosti, � najmanje jednog praga pridruženog odabranoj mjernoj varijabli koji odgovara granici uporabe navedene funkcionalnosti, � i najmanje jedne metode osvježivanja odabrane mjerne varijable koja ovisi o uporabi navedene funkcionalnosti, ▸ i izmjenom najmanje jednog odabranog odsječka izvornog koda zaštićenog programa (2ps) koja je takva da se tijekom izvođenja zaštićenog programa (2p), mjerna varijabla aktualizira pomoću drugog izvršnog dijela (2peu) ovisno u uporabi navedene funkcionalnosti, te da se uzima u obzir barem jedan prijelaz praga, • i tijekom faze uporabe (U), u prisutnosti jedinice (6) i u slučaju gdje je detektiran barem jedan prijelaz praga koji odgovara barem jednoj granici uporabe, o tome se informira sustav za obradu podataka (3) i/ili se modificira funkcioniranje odsječka zaštićenog programa (2p) tako da je funkcioniranje zaštićenog programa (2p) modificirano.4. A process according to claim 3, characterized in that it limits the use of the protected program (2p), including: • during the protection phase (P): - defining: ▸ as characteristics of program execution destined for monitoring, measurement variables that measure the use of program functionality, ▸ as criteria to be met, at least one threshold associated with each measurement variable, ▸ and the actualization procedure that enables updating at least one measurement variable, - creation of an exploitation procedure that enables the unit (6) to also implement the actualization procedure, - and modification of the protected program (2p): ▸ by selecting, as a characteristic of the program execution to be monitored, at least one variable that measures the use of at least one functionality of the program, ▸ by selecting: � at least one functionality of the protected program (2p) whose use is subject to monitoring using a measurement variable, � at least one measurement variable used to quantify the use of the specified functionality, � at least one threshold associated with the selected measurement variable that corresponds to the limit of use of the specified functionality, � and at least one method of refreshing the selected measurement variable that depends on the use of the specified functionality, ▸ and by changing at least one selected section of the source code of the protected program (2ps), which is such that during the execution of the protected program (2p), the measurement variable is updated using another executable part (2peu) depending on the use of the specified functionality, and that it takes into account at least one threshold crossing, • and during the use phase (U), in the presence of the unit (6) and in the case where at least one threshold crossing corresponding to at least one use limit is detected, the data processing system (3) is informed about this and/or the functioning of the protected section is modified program (2p) so that the functioning of the protected program (2p) is modified. 5. Proces u skladu sa zahtjevom 4, naznačen time, da uključuje: • tijekom faze zaštite (P): - definiranje: ▸ za najmanje jednu mjernu varijablu, više pridruženih pragova, ▸ i različitih postupke prisile koji odgovaraju svakom od navedenih pragova, - i modifikaciju zaštićenog programa (2p): ▸ odabirom, u izvornom kodu zaštićenog programa (2p), najmanje jedne mjerne varijable koji moraju biti pridruženi pojedi pragovi koji odgovaraju različitim granicama uporabe funkcionalnosti, ▸ odabirom najmanje dva praga pridružena odabranoj mjernoj varijabli, ▸ izmjenom najmanje jednog odabranog odsječka izvornog koda zaštićenog programa (2ps) koja je takva da se, tijekom izvođenja zaštićenog programa (2p) prijelazi različitih pragova uzimaju u obzir odvojeno, pomoću drugog izvršnog dijela (2peu), • i tijekom faze uporabe (U): - u prisutnosti jedinice (6): ▸ u slučaju kada je detektiran prijelaz prvog praga, zabranu daljeg korištenja odgovarajuće funkcionalnosti zaštićenom programu (2p), ▸ i u slučaju kada je detektiran prijelaz drugog praga, blokiranje odgovarajuće funkcionalnosti i/ili barem jednog odsječka zaštićenog programa (2p).5. The process according to claim 4, characterized in that it includes: • during the protection phase (P): - defining: ▸ for at least one measurement variable, several associated thresholds, ▸ and different coercion procedures corresponding to each of the mentioned thresholds, - and modification of the protected program (2p): ▸ by selecting, in the source code of the protected program (2p), at least one measurement variable that must be associated with individual thresholds that correspond to different limits of functionality use, ▸ by selecting at least two thresholds associated with the selected measurement variable, ▸ by changing at least one selected section of the source code of the protected program (2ps), which is such that, during the execution of the protected program (2p), transitions of different thresholds are taken into account separately, by means of another executable part (2peu), • and during the use phase (U): - in the presence of unit (6): ▸ in the event that the crossing of the first threshold is detected, the prohibition of further use of the corresponding functionality of the protected program (2p), ▸ and in the case when crossing the second threshold is detected, blocking the corresponding functionality and/or at least one section of the protected program (2p). 6. Proces u skladu sa zahtjevima 4 ili 5, naznačen time, da uključuje: • tijekom faze zaštite (P): - definiranje postupka ponovnog učitavanja koji omogućava kreditiranje najmanje jedne funkcionalnosti programa praćenoj mjernom varijablom s barem jednom dodatnom uporabom, - izradu postupka za eksploataciju koji također dozvoljava jedinici (6) implementaciju postupka ponovnog učitavanja, - i modifikaciju zaštićenog programa (2p): ▸ odabirom u izvornom kodu zaštićenog programa (2p) najmanje jedne odabrane mjerne varijable koja omogućava ograničavanje uporabe funkcionalnosti i koja se mora moći kreditirati s najmanje jednom dodatnom uporabom, ▸ i izmjenom najmanje jednog odabranog odsječka, koja je takva da tijekom faze pozivanja ponovnog učitavanja, najmanje jedna dodatna uporaba najmanje jedne funkcionalnosti odgovara odabranoj mjernoj varijabli koja se kreditira, • i tijekom faze ponovnog učitavanja: - reaktulizaciju najmanje jedne odabrane mjerne varijable i/ili najmanje jednog pridruženog praga, tako da dozvoljava najmanje jednu dodatnu uporabu funkcionalnosti.6. A process according to claims 4 or 5, characterized in that it includes: • during the protection phase (P): - defining a reloading procedure that enables crediting of at least one functionality of the program followed by a measurement variable with at least one additional use, - creation of an exploitation procedure that also allows unit (6) to implement a reloading procedure, - and modification of the protected program (2p): ▸ by selecting in the source code of the protected program (2p) at least one selected measurement variable that allows limiting the use of the functionality and that must be able to be credited with at least one additional use, ▸ and by modifying at least one selected segment, which is such that during the invocation phase of the reload, at least one additional use of at least one functionality corresponds to the selected measurement variable being credited, • and during the reload phase: - reactivation of at least one selected measurement variable and/or at least one associated threshold, so that it allows at least one additional use of the functionality. 7. Proces u skladu sa zahtjevom 3, naznačen time da uključuje: • tijekom faze zaštite (P): - definiranje: ▸ profila uporabe programa kao karakteristike programa podložne praćenju, ▸ najmanje jedne značajke izvođenja programa kao kriterija koji treba ispuniti, - i modifikaciju zaštićenog programa (2p): ▸ odabirom karakteristike izvođenja programa za praćenje najmanje jednog profila uporabe programa, ▸ odabirom najmanje jedne značajke izvođenja za koju mora postojati najmanje jedan odabrani profil, ▸ izmjenom najmanje jednog odsječka izvornog koda zaštićenog programa (2p), koja je takva da tijekom izvođenja zaštićenog programa (2p) drugi izvršni dio (2peu) ispunjava sve odabrane značajke izvođenja, • i tijekom faze uporabe (U) u prisutnosti jedinice (6) i u slučaju kad je detektirano da najmanje jedna značajka izvođenja nije ispunjena, informiranje o tome sustava za obradu podataka (3) i/ili modifikaciju funkcioniranja odsječka zaštićenog programa (2p), tako da je funkcioniranje zaštićenog programa (2p) modificirano.7. The process according to claim 3, characterized in that it includes: • during the protection phase (P): - defining: ▸ program usage profile as a characteristic of the program subject to monitoring, ▸ at least one feature of the program execution as a criterion to be met, - and modification of the protected program (2p): ▸ by selecting a program execution characteristic to monitor at least one program usage profile, ▸ by selecting at least one performance feature for which there must be at least one selected profile, ▸ by changing at least one section of the source code of the protected program (2p), which is such that during the execution of the protected program (2p) the second executable part (2peu) fulfills all the selected execution features, • and during the use phase (U) in the presence of the unit (6) and in the case when it is detected that at least one performance feature is not fulfilled, informing the data processing system (3) and/or modifying the functioning of the section of the protected program (2p), so that the functioning of the protected program (2p) has been modified. 8. Proces u skladu sa zahtjevom 7, naznačen time, da uključuje: • tijekom faze zaštite (P): - definiranje: ▸ skupa instrukcija predodređenih za izvođenje u jedinici (6), ▸ skup naredbi za navedeni skup instrukcija koje su predodređene za izvođenje u sustavu za obradu podataka (3) i za aktiviranje izvođenja instrukcija u jedinici (6), ▸ kao profila uporabe, ulančavanje instrukcija, ▸ kao značajke izvođenja, očekivanog ulančavanja izvođenja instrukcija, ▸ kao postupka detekcije (17), postupka koji omogućava detektiranje da ulančavanje instrukcija ne odgovara očekivanom, ▸ kao postupka prisile (18), postupak koji omogućava da se informira sustav za obradu podataka (3) i/ili da se modificira funkcioniranje odsječka zaštićenog programa (2p) kada ulančavanje instrukcija ne odgovara očekivanom, - izradu postupka za eksploataciju koji omogućava jedinici (6) izvođenje instrukcija iz skupa instrukcija koje je aktivirano izvođenjem naredbi u sustavu za obradu podataka (3), - modifikaciju zaštićenog programa (2p): ▸ izmjenom najmanje jednog odabranog odsječka u izvornom kodu zaštićenog programa (2ps): � transformacijom elementarnih funkcija u instrukcije, � specificiranjem ulančavanja kod kojeg moraju postojati barem neke instrukcije tijekom njihovog izvođenja u jedinici (6), � i transformacijom elementarnih naredbi u instrukcije koje odgovaraju uporabljenim instrukcijama, • i tijekom faze uporabe (U), u prisutnosti jedinice (6), u slučaju kada se detektira da ulančavanje instrukcija koje se izvode u jedinici (6) ne odgovara očekivanom, informiranje sustava za obradu podataka (3) o tome i/ili modifikaciju funkcioniranje odsječka zaštićenog programa (2p), tako da je funkcioniranje zaštićenog programa (2p) modificirano.8. The process according to claim 7, characterized in that it includes: • during the protection phase (P): - defining: ▸ a set of instructions destined for execution in the unit (6), ▸ a set of commands for the specified set of instructions that are destined for execution in the data processing system (3) and for activating the execution of instructions in the unit (6), ▸ as a usage profile, chaining of instructions, ▸ as performance features, expected chaining of instruction execution, ▸ as a detection procedure (17), a procedure that enables detection that the chaining of instructions does not correspond to the expected, ▸ as a coercion procedure (18), a procedure that allows to inform the data processing system (3) and/or to modify the functioning of the section of the protected program (2p) when the chaining of instructions does not correspond to the expected, - creating a procedure for exploitation that enables the unit (6) to execute instructions from a set of instructions that is activated by executing commands in the data processing system (3), - modification of the protected program (2p): ▸ by changing at least one selected section in the source code of the protected program (2ps): by transforming elementary functions into instructions, � by specifying chaining where at least some instructions must exist during their execution in unit (6), � and by transforming elementary commands into instructions that correspond to the used instructions, • and during the use phase (U), in the presence of the unit (6), in the event that it is detected that the chaining of instructions executed in the unit (6) does not correspond to the expected, informing the data processing system (3) about it and/or modification the functioning of the section of the protected program (2p), so that the functioning of the protected program (2p) is modified. 9. Proces u skladu sa zahtjevom 8, naznačen time, da uključuje: ̧ • tijekom faze zaštite (P): - definiranje: ▸ skupa instrukcija kod kojeg barem neke instrukcije rade s registrima i koriste najmanje jedan operand s namjerom vraćanja rezultata, ▸ za barem neke instrukcije koje rade s registrima: � dijela (PF) koji definira funkcionalnost instrukcija, � i dijela koji definira očekivano ulančavanje izvođenja instrukcija, a uključuje polja bitova koja odgovaraju: * identifikacijskom polju instrukcije (CII), * i za svakog operanda instrukcije: a. zastavici (CDk), b. i očekivanom identifikacijskom polju (CIPk) operanda, ▸ za svaki registar koji pripada postupku za eksploataciju, a kojeg koristi skup instrukcija, generiranog identifikacijskog polja (CIGv) u koje se automatski pohranjuje identifikacija zadnje instrukcije koja je vratila rezultat u navedeni registar, ▸ kao postupka detekcije (17), postupka koji omogućava da se tijekom izvođenja instrukcije, za svaki operand, a kada zastavica (CDk) to nametne, provjeri jednakost generiranog identifikacijskog polja (CIGv) koje odgovara registru kojeg koristi navedeni operand i očekivanog identifikacijskog polja (CIPk) u izvornom kodu navedenog operanda, ▸ i kao postupka prisile (18), postupka koji omogućava modifikaciju rezultata instrukcije, ako je najmanje jedna od provjeravanih jednakosti neistinita.9. The process according to claim 8, characterized in that it includes: ̧ • during the protection phase (P): - defining: ▸ set of instructions where at least some instructions work with registers and use at least one operand with the intention of returning a result, ▸ for at least some instructions that work with registers: � part (PF) that defines the functionality of the instructions, � and the part that defines the expected chaining of instruction execution, and includes bit fields corresponding to: * instruction identification field (CII), * and for each instruction operand: a. flags (CDk), b. and the expected identification field (CIPk) of the operand, ▸ for each register belonging to the exploitation procedure, which is used by the set of instructions, a generated identification field (CIGv) in which the identification of the last instruction that returned a result to the specified register is automatically stored, ▸ as a detection procedure (17), a procedure that enables the equality of the generated identification field (CIGv) corresponding to the register used by the specified operand and the expected identification field ( CIPk) in the source code of the specified operand, ▸ and as a coercion procedure (18), a procedure that enables modification of the result of the instruction, if at least one of the checked equalities is false. 10. Proces u skladu sa zahtjevima 1 ili 8, naznačen time, da uključuje: • tijekom faze zaštite (P): - definiranje: ▸ kao naredbe za aktiviranje, naredbe ili elementarne naredbe, ▸ kao zavisne funkcije, elementarne funkcije ili instrukcije, ▸ kao naloga, najmanje jednog naloga naredbe za aktiviranje koji barem djelomično odgovara informaciji prenesenoj iz sustavu za obradu podataka (3) u jedinicu (6) tako da aktivira izvođenje odgovarajuće zavisne funkcije, ▸ postupka preimenovanja naloga koji omogućava preimenovanje naloga tako da se dobije naredba za aktiviranje s preimenovanim nalozima, ▸ i postupka obnavljanja (20) dizajniranog za uporabu u jedinici (6) tijekom faze uporabe (U) i koji omogućava obnavljanje nezavisne funkcije za izvođenje od strane preimenovanog naloga, - izradu postupka eksploatacije koji omogućava jedinici (6) da također implementira postupak za obnavljanje, - i modifikaciju zaštićenog programa (2p): ▸ odabirom naredbi za aktiviranje u izvornom kodu zaštićenog programa (2ps), ▸ izmjenom najmanje jednog odabranog odsječka izvornog koda zaštićenog programa (2ps) preimenovanjem naloga odabranih naredbi za aktiviranje, tako da se sakrije identitet odgovarajuće zavisne funkcije, ▸ i proizvodnjom: � prvog objektnog dijela (2pos) zaštićenog programa (2p) koji je takav da se tijekom izvođenja zaštićenog programa (2p) izvode naredbe za aktiviranje s preimenovanim nalozima, � i drugog objektnog dijela (2pou) zaštićenog programa (2p) koji sadrži postupak za eksploataciju i također implementira postupak obnavljanja (20), te koji je takav da se nakon učitavanja u jedinicu (6) i tijekom izvođenja zaštićenog programa (2p) obnavlja identitet zavisne funkcije čije je izvođenje aktivirao prvi izvršni dio (2pes), i to pomoću drugog izvršnog dijela (2peu), a zavisna funkcija se izvodi pomoću drugog izvršnog dijela (2peu), • i tijekom faze uporabe (U) - u prisutnosti jedinice (6) i svaki puta kada naredba za aktiviranje s preimenovanim nalogom sadržana u prvom izvršnom dijelu (2pes) to nameće, obnavlja se u jedinici (6) identitet odgovarajuće zavisne funkcije te se ona izvodi, tako se navedeni odsječak izvodi ispravno te da je, posljedično, zaštićeni program (2p) potpuno funkcionalan, - i u odsutnosti jedinice (6), u duhu zahtjeva odsječka prvog izvršnog dijela (2pes) za aktiviranjem izvođenja zavisne funkcije u jedinici (6), navedeni zahtjev nije moguće ispuniti ispravno, tako da se najmanje navedeni odsječak ne može izvesti ispravno te da, posljedično, zaštićeni program (2p) nije potpuno funkcionalan.10. The process according to claims 1 or 8, characterized in that it includes: • during the protection phase (P): - defining: ▸ as activation commands, commands or elementary commands, ▸ as dependent functions, elementary functions or instructions, ▸ as an order, at least one activation command order that at least partially corresponds to the information transferred from the data processing system (3) to the unit (6) so as to activate the execution of the corresponding dependent function, ▸ order renaming procedure, which enables order renaming by obtaining an activation order with renamed orders, ▸ and a recovery procedure (20) designed for use in the unit (6) during the use phase (U) and which enables the recovery of an independent function to be performed by the renamed order, - creating an exploitation procedure that enables the unit (6) to also implement a recovery procedure, - and modification of the protected program (2p): ▸ by selecting activation commands in the source code of the protected program (2ps), ▸ by modifying at least one selected section of the source code of the protected program (2ps) by renaming the order of the selected activation commands, so as to hide the identity of the corresponding dependent function, ▸ and production: � of the first object part (2pos) of the protected program (2p) which is such that during the execution of the protected program (2p) activation commands with renamed orders are executed, � and the second object part (2pou) of the protected program (2p) which contains the procedure for exploitation and also implements the recovery procedure (20), and which is such that after loading into the unit (6) and during the execution of the protected program (2p) the identity is restored dependent functions, the execution of which was activated by the first executable part (2pes), by means of the second executable part (2peu), and the dependent function is executed by means of the second executable part (2peu), • and during the use phase (U) - in the presence of unit (6) and every time the command to activate with a renamed order contained in the first executable part (2pes) imposes it, the identity of the corresponding dependent function is restored in unit (6) and it is executed, thus the specified section is executed correctly and that, consequently, the protected program (2p) is fully functional, - and in the absence of unit (6), in the spirit of the request of the section of the first executive part (2pes) to activate the execution of the dependent function in unit (6), the specified request cannot be fulfilled correctly, so that at least the specified section cannot be performed correctly and that, consequently , the protected program (2p) is not fully functional. 11. Proces u skladu sa zahtjevom 10, naznačen time, da uključuje: • tijekom faze zaštite (P): - definiranje za najmanje jednu zavisnu funkciju, familije zavisnih funkcija koje su algoritamski ekvivalentne, ali koje se aktiviraju naredbama za aktiviranje čiji su preimenovani nalozi različiti, - i modifikaciju zaštićenog programa (2p): ▸ odabirom, u izvornom kodu zaštićenog programa (2ps), najmanje jedne naredbe za aktiviranje s preimenovanim nalogom, ▸ te izmjenom u najmanje jednom odabranom odsječku izvornog koda zaštićenog programa (2ps) tako da se najmanje jedan preimenovani nalog odabrane naredbe za aktiviranje zamjeni s preimenovanim nalogom s drugim preimenovanim nalogom, što aktivira zavisnu funkciju iz iste familije.11. The process according to claim 10, characterized in that it includes: • during the protection phase (P): - defining for at least one dependent function, a family of dependent functions that are algorithmically equivalent, but which are activated by activation commands whose renamed orders are different, - and modification of the protected program (2p): ▸ by selecting, in the source code of the protected program (2ps), at least one activation command with a renamed command, ▸ and by changing at least one selected section of the source code of the protected program (2ps) so that at least one renamed command of the selected activation command is replaced with a renamed command by another renamed command, which activates a dependent function from the same family. 12. Proces u skladu sa zahtjevom 11, naznačen time, da uključuje: • tijekom faze zaštite (P), definiranje, za najmanje jednu zavisnu funkciju, skupine algoritamski ekvivalentnih zavisnih funkcija: - dodavanjem polja smetnje informaciji koja definira funkcijski dio zavisne funkcije koja se izvodi u jedinici (6), - ili uporabom identifikacijskog polja instrukcije (CII) i očekivanog identifikacijskog polja (CIPk) operanda.12. The process according to claim 11, characterized in that it includes: • during the protection phase (P), defining, for at least one dependent function, a group of algorithmically equivalent dependent functions: - by adding the interference field to the information that defines the functional part of the dependent function performed in unit (6), - or by using the identification field of the instruction (CII) and the expected identification field (CIPk) of the operand. 13. Proces u skladu sa zahtjevima 10, 11 ili 12, naznačen time, da uključuje: • tijekom faze zaštite (P): - definiranje: ▸ kao postupka preimenovanja naloga postupak šifriranja naloga, ▸ i kao postupka obnavljanja (20), postupka koji implementira metodu dešifriranja naloga i tako obnavlja identitet zavisne funkcije koja se izvodi u jedinici (6).13. The process according to claims 10, 11 or 12, characterized in that it includes: • during the protection phase (P): - defining: ▸ as a procedure for renaming the order, the procedure for encrypting the order, ▸ and as a recovery procedure (20), a procedure that implements the order decryption method and thus restores the identity of the dependent function performed in unit (6). 14. Proces u skladu s jednim od zahtjeva 1 do 13, naznačen time da uključuje: • tijekom faze zaštite (P): - modifikaciju zaštićenog programa (2p): ▸ odabirom, u izvornom kodu zaštićenog programa (2ps), najmanje jednog uvjetnog grananja koje se obavlja kod najmanje jednog algoritma, ▸ izmjenom najmanje jednog odabranog odsječka izvornog koda zaštićenog programa (2ps), koja je takva da se tijekom izvođenja zaštićenog programa (2p) izvodi najmanje jedna funkcionalnost odabranog uvjetnog grananja pomoću drugog izvršnog dijela (2peu), u jedinici (6), ▸ i proizvodnjom: � prvog objektnog dijela (2pos) zaštićenog programa (2p) koji je takav da se tijekom izvođenja zaštićenog programa (2p) funkcionalnost najmanje jednog odabranog uvjetnog grananja izvodi u jedinici (6), � i drugog objektnog dijela (2pou) zaštićenog programa (2p) koji je takav da se nakon učitavanja u jedinicu (6) i tijekom izvođenja zaštićenog programa (2p) pojavljuje drugi izvršni dio (2peu) pomoću kojeg se izvodi funkcionalnost najmanje jednog uvjetnog grananja, • i tijekom faze uporabe (U): - u prisutnosti jedinice (6) i svaki puta kada odsječak prvog izvršnog dijela (2pes) to zahtjeva, izvođenje funkcionalnosti najmanje jednog uvjetnog grananja u jedinici (6), tako da se navedeni odsječak izvodi ispravno te da je, posljedično, zaštićeni program (2p) potpuno funkcionalan, - i u odsutnosti jedinice (6) i u duhu zahtjeva odsječka prvog izvršnog dijela (2pes) za izvođenjem funkcionalnosti uvjetnog grananja u jedinici (6), nemogućnost ispravnog ispunjavanja navedenog zahtjeva, tako da se najmanje navedeni odsječak ne izvodi ispravno i da, posljedično, zaštićeni program (2p) nije potpuno funkcionalan.14. A process according to one of claims 1 to 13, characterized in that it includes: • during the protection phase (P): - modification of the protected program (2p): ▸ by selecting, in the source code of the protected program (2ps), at least one conditional branching that is performed with at least one algorithm, ▸ by changing at least one selected section of the source code of the protected program (2ps), which is such that during the execution of the protected program (2p) at least one functionality of the selected conditional branching is performed using the second executable part (2peu), in unit (6), ▸ and production: � of the first object part (2pos) of the protected program (2p) which is such that during the execution of the protected program (2p) the functionality of at least one selected conditional branch is performed in unit (6), � and the second object part (2pou) of the protected program (2p), which is such that after loading into the unit (6) and during the execution of the protected program (2p), the second executable part (2peu) appears, by means of which the functionality of at least one conditional branching is performed, • and during the use phase (U): - in the presence of the unit (6) and every time the segment of the first executable part (2pes) requires it, the execution of the functionality of at least one conditional branch in the unit (6), so that the specified segment is executed correctly and that, consequently, it is a protected program (2p ) fully functional, - both in the absence of unit (6) and in the spirit of the requirement of the section of the first executive part (2pes) to perform the functionality of conditional branching in unit (6), the impossibility of correctly fulfilling the specified requirement, so that at least the specified section is not performed correctly and, consequently, the protected program (2p) is not fully functional. 15. Proces u skladu sa zahtjevom 14, naznačen time da uključuje tijekom faze zaštite (P) modifikaciju zaštićenog programa (2p): ▸ odabirom, u izvornom kodu zaštićenog programa (2ps) najmanje jednog niza odabranih uvjetnih grananja, ▸ izmjenom najmanje jednog odabranog odsječka izvornog koda zaštićenog programa (2p), koja je takva da se tijekom izvođenja zaštićenog programa (2p), u jedinici (6) izvode ukupne funkcionalnosti najmanje jednog niza odabranih uvjetnih grananja pomoću drugog izvršnog dijela (2peu), , ▸ i proizvodnjom: � prvog objektnog dijela (2pos) zaštićenog programa (2p), koji je takav da se tijekom izvođenja zaštićenog programa (2p) u jedinici (6) izvode funkcionalnosti najmanje jednog odabranog niza uvjetnih grananja, � i drugog objektnog dijela (2pou) zaštićenog programa (2p), koji je takav da se nakon učitavanja u jedinicu (6) i tijekom izvođenja zaštićenog programa (2p) pojavljuje drugi izvršni dio (2peu) pomoću kojeg se izvode sve funkcionalnosti najmanje jednog odabranog niza uvjetnih grananja.15. The process according to claim 14, characterized in that it includes during the protection phase (P) the modification of the protected program (2p): ▸ by selecting, in the source code of the protected program (2ps), at least one set of selected conditional branches, ▸ by changing at least one selected section of the source code of the protected program (2p), which is such that during the execution of the protected program (2p), in unit (6) the overall functionalities of at least one set of selected conditional branches are performed using the second executable part (2peu), , ▸ and production: � of the first object part (2pos) of the protected program (2p), which is such that during the execution of the protected program (2p) in unit (6) the functionalities of at least one selected series of conditional branches are performed, � and the second object part (2pou) of the protected program (2p), which is such that after loading into the unit (6) and during the execution of the protected program (2p), the second executable part (2peu) appears, by means of which all the functionalities of at least one selected a series of conditional branches. 16. Proces u skladu s jednim od zahtjeva 1 do 15, naznačen time da uključuje podjelu faze zaštite (P) u pod-fazu prethodne zaštite (P1) koja ne ovisi o programu koji se zaštićuje i pod-fazu naknadne zaštite (P2) koja ovisi o programu koji se zaštićuje.16. The process according to one of claims 1 to 15, characterized in that it includes the division of the protection phase (P) into a sub-phase of prior protection (P1) which does not depend on the program to be protected and a sub-phase of subsequent protection (P2) which it depends on the program being protected. 17. Proces u skladu sa zahtjevom 16, naznačen time da uključuje, da se tijekom pod-faze prethodne zaštite pojavljuje stadij definiranja (S11) tijekom kojeg se obavljaju sva definiranja.17. The process according to claim 16, characterized in that it includes, that during the sub-phase of the previous protection, a definition stage (S11) appears, during which all definitions are performed. 18. Proces u skladu sa zahtjevom 17, naznačen time da uključuje, da se nakon stadija definiranja (S11) pojavljivanje stadija izrade (S12) tijekom kojeg se izrađuje postupak za eksploataciju.18. The process according to claim 17, characterized in that it includes, that after the definition stage (S11) the creation stage (S12) appears, during which the exploitation procedure is created. 19. Proces u skladu sa zahtjevom 18, naznačen time da uključuje da se nakon stadija izrade (S12) pojavljuje stadij pred-prilagodbe (S13) koji uključuje učitavanje najmanje dijela postupka za eksploataciju u praznu jedinicu (60) sa ciljem dobivanja pred-prilagođene jedinice (66).19. The process according to claim 18, characterized in that it includes that after the production stage (S12) a pre-adjustment stage (S13) appears, which includes loading at least part of the exploitation procedure into the empty unit (60) with the aim of obtaining a pre-adjusted unit (66). 20. Proces u skladu sa zahtjevima 17 ili 18 naznačen time da uključuje, tijekom pod-faze prethodne zaštite (P1) pojavljuje stadij izrade alata (S14) tijekom kojeg se izrađuju alati koji omogućavaju generiranje programa ili automatizaciju zaštite programa.20. The process according to claims 17 or 18 characterized by the fact that it includes, during the sub-phase of the previous protection (P1), a tool creation stage (S14) appears, during which tools are created that enable program generation or program protection automation. 21. Proces u skladu sa zahtjevima 16 i 19, naznačen time da uključuje podjelu pod-faze naknadne zaštite (P2) u: - stadij kreiranja (S21) tijekom kojeg se kreira zaštićeni program (2p) iz nezaštićenog programa (2v), - eventualno, stadij modifikacije (S22) tijekom kojeg se zaštićeni program (2p) modificira, - te eventualno, stadij prilagodbe (S23) tijekom kojeg se: ▸ drugi objektni dio (2pou) zaštićenog programa (2p), koji sadrži postupak za eksploataciju, učitava u najmanje jednu praznu jedinicu (60) sa ciljem dobivanja najmanje jedne jedinice (6), ▸ ili dio drugog objektno dijela (2pou) zaštićenog programa (2p), koji eventualno sadrži postupak za eksploataciju, učitava se u najmanje jednu pred-prilagođenu jedinicu (66), sa ciljem dobivanja najmanje jedne jedinice (6).21. The process according to claims 16 and 19, characterized in that it includes the division of the sub-phase of subsequent protection (P2) into: - creation stage (S21) during which a protected program (2p) is created from an unprotected program (2v), - eventually, the modification stage (S22) during which the protected program (2p) is modified, - and eventually, the adaptation stage (S23) during which: ▸ the second object part (2pou) of the protected program (2p), which contains the procedure for exploitation, is loaded into at least one empty unit (60) with the aim of obtaining at least one unit (6), ▸ or a part of another object part (2pou) of the protected program (2p), which possibly contains a procedure for exploitation, is loaded into at least one pre-adapted unit (66), with the aim of obtaining at least one unit (6). 22. Proces u skladu sa zahtjevima 20 i 21, naznačen time da uključuje tijekom stadija kreiranja (S21), te eventualno tijekom stadija modifikacije (S22), uporabu najmanje jednog alata koji pomaže u generiranju zaštićenog programa ili u automatizaciji zaštite programa.22. The process according to claims 20 and 21, characterized in that it includes during the stage of creation (S21), and possibly during the stage of modification (S22), the use of at least one tool that helps in generating the protected program or in automating the protection of the program. 23. Sustav za implementaciju procesa zaštite u skladu sa zahtjevom 18, naznačen time da uključuje najmanje jednu jedinicu za razvoj programa koja se tijekom stadija izrade (S12) koristi za konstrukciju postupka eksploatacije namijenjenog jedinici (6), uzimajući u obzir definicije koje su se pojavile tijekom stadija definiranja (S11).23. A system for implementing the protection process in accordance with claim 18, characterized by the fact that it includes at least one program development unit which during the development stage (S12) is used for the construction of the exploitation procedure intended for the unit (6), taking into account the definitions that have appeared during the definition stage (S11). 24. Sustav za implementaciju procesa u skladu sa zahtjevom 19, naznačen time da uključuje pred-prilagođenu jedinicu (30) koja omogućava učitavanje najmanje dijela postupka za eksploataciju u najmanje jednu praznu jedinicu (60) sa ciljem dobivanja najmanje jedne pred-prilagođene jedinice (66).24. Process implementation system according to claim 19, characterized in that it includes a pre-adjusted unit (30) which allows loading at least part of the exploitation procedure into at least one empty unit (60) with the aim of obtaining at least one pre-adjusted unit (66 ). 25. Sustav za implementaciju procesa u skladu sa zahtjevom 20, naznačen time da uključuje jedinicu za razvoj programa, koja se koristi tijekom stadija izrade alata (S14) pomoću kojih se generira zaštićeni program ili se automatizira zaštita programa.25. A process implementation system according to claim 20, characterized in that it includes a program development unit, which is used during the stage of creating tools (S14) by means of which the protected program is generated or program protection is automated. 26. Sustav za implementaciju procesa u skladu sa zahtjevom 21 ili 22, naznačen time da uključuje jedinicu za razvoj programa koja se koristi za kreiranje ili modifikaciju zaštićenog programa (2p).26. A process implementation system according to claim 21 or 22, characterized in that it includes a program development unit used to create or modify a protected program (2p). 27. Sustav za implementaciju procesa u skladu sa zahtjevom 21, naznačen time da uključuje jedinicu za prilagodbu (45) koja omogućava učitavanje: - drugog objektnog dijela u najmanje jednu praznu jedinicu (60) sa ciljem dobivanja najmanje jedne jedinice (6), - ili drugog objektnog dijela (2pou) u najmanje jednu pred-prilagođenu jedinicu (66) sa ciljem dobivanja najmanje jedne jedinice (6).27. A process implementation system according to claim 21, characterized in that it includes an adaptation unit (45) that enables loading: - of another object part into at least one empty unit (60) with the aim of obtaining at least one unit (6), - or another object part (2pou) into at least one pre-adjusted unit (66) with the aim of obtaining at least one unit (6). 28. Pred-prilagođenu jedinicu (66), naznačenu time da je dobivena pomoću sustava u skladu sa zahtjevom 24.28. A pre-adapted unit (66), characterized in that it is obtained by the system according to claim 24. 29. Jedinicu (6), naznačenu time, da omogućava izvođenje zaštićenog programa (2p) te da sprječava njegovu neovlaštenu uporabu, okarakteriziran s time da sadrži drugi objektni dio (2pou) zaštićenog programa (2p) koji se učitava pomoću jedinice za prilagodbu (45) u skladu sa zahtjevom 27.29. The unit (6), characterized by the fact that it enables the execution of the protected program (2p) and prevents its unauthorized use, characterized by the fact that it contains the second object part (2pou) of the protected program (2p) which is loaded using the adaptation unit (45 ) in accordance with requirement 27. 30. Skup jedinica (6), naznačen time da je učitavanje drugim objektnim dijelom (2pou) zaštićenog programa (2p), pomoću jedinice za prilagodbu (45) u skladu sa zahtjevom 27, podijeljeno između više jedinica za procesiranje i pohranjivanje tako da njihova zajednička uporaba omogućava izvođenje zaštićenog programa (2p),30. A set of units (6), characterized by the fact that the loading of the protected program (2p) by the second object part (2pou), using the adaptation unit (45) in accordance with claim 27, is divided between several processing and storage units so that their common use enables the execution of a protected program (2p), 31. Distribucijski skup (2pd) zaštićenog programa (2p), naznačen time da uključuje: - prvi distribucijski dio (2pds) koji sadrži prvi objektni dio (2pos) i koji je dizajniran za izvođenje na sustavu za obradu podataka (3), - i drugi distribucijski dio (2pdu) koji ima oblik: ▸ prazne jedinice (60), ▸ ili pred-prilagođene jedinice (66) u skladu za zahtjevom 28, sposoban da se, nakon učitavanja u informacijama o prilagodbi, transformira u jedinicu (6), ▸ ili jedinice (6) u skladu sa zahtjevom 29.31. Distribution set (2pd) of the protected program (2p), characterized in that it includes: - the first distribution part (2pds) which contains the first object part (2pos) and which is designed for execution on the data processing system (3), - and the second distribution part (2pdu) which has the form: ▸ empty units (60), ▸ or a pre-adapted unit (66) according to claim 28, capable of being transformed into a unit (6) after loading in the adaptation information, ▸ or units (6) in accordance with requirement 29. 32. Distribucijski skup (2pd) zaštićenog programa (2p) u skladu sa zahtjevom 31, naznačen time da prvi distribucijski dio (2pds) ima oblik medija za fizički distribuciju, CDROM-a na primjer, ili oblik datoteka koje se distribuiraju preko mreže.32. Distribution set (2pd) of the protected program (2p) according to claim 31, characterized in that the first distribution part (2pds) has the form of a medium for physical distribution, CDROM for example, or the form of files that are distributed over the network. 33. Distribucijski skup (2pd) zaštićenog programa (2p) u skladu sa zahtjevom 31, naznačen time da drugi distribucijski dio (2pdu) ima oblik prazne jedinice (60), pred-prilagođene jedinice (66) ili jedinice (6), uključujući najmanje jednu "chip" karticu (7).33. The distribution set (2pd) of the protected program (2p) according to claim 31, characterized in that the second distribution part (2pdu) has the form of an empty unit (60), a pre-adapted unit (66) or a unit (6), including at least one "chip" card (7). 34. Jedinica za procesiranje i pohranjivanje, naznačena time da sadrži dio drugog objektnog dijela (2pou) neophodan za transformaciju pred-prilagođene jedinice (66), u skladu sa zahtjevom 28, u jedinicu (6) u skladu sa zahtjevom 29.34. A processing and storage unit, characterized in that it contains a part of the second object part (2pou) necessary for the transformation of the pre-adapted unit (66), in accordance with claim 28, into a unit (6) in accordance with claim 29. 35. Skup jedinica za procesiranje i pohranjivanje naznačen time da ih koristi zajedno i da sadrži dio drugog objektnog dijela (2pou) neophodan za transformaciju pred-prilagođene jedinice (66), u skladu sa zahtjevom 28, u jedinicu (6) u skladu sa zahtjevom 29.35. A set of processing and storage units characterized by using them together and containing a part of the second object part (2pou) necessary to transform the pre-adapted unit (66) according to claim 28 into a unit (6) according to claim 29.
HR20040044A 2001-07-31 2004-01-19 Method for protecting a software using a so-called elementary functions principle against its unauthorised use HRP20040044A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0110241A FR2828300B1 (en) 2001-07-31 2001-07-31 METHOD FOR PROTECTING SOFTWARE USING A PRINCIPLE OF "ELEMENTARY FUNCTIONS" AGAINST ITS UNAUTHORIZED USE
PCT/FR2002/002344 WO2003012605A2 (en) 2001-07-31 2002-07-04 Method for protecting a software using a so-called elementary functions principle against its unauthorised use

Publications (1)

Publication Number Publication Date
HRP20040044A2 true HRP20040044A2 (en) 2005-02-28

Family

ID=8866116

Family Applications (1)

Application Number Title Priority Date Filing Date
HR20040044A HRP20040044A2 (en) 2001-07-31 2004-01-19 Method for protecting a software using a so-called elementary functions principle against its unauthorised use

Country Status (19)

Country Link
EP (1) EP1412839A2 (en)
JP (1) JP3949106B2 (en)
KR (1) KR20040032860A (en)
CN (1) CN1275115C (en)
BR (1) BR0211372A (en)
CA (1) CA2454096A1 (en)
FR (1) FR2828300B1 (en)
HK (1) HK1070958A1 (en)
HR (1) HRP20040044A2 (en)
HU (1) HUP0400239A2 (en)
IL (1) IL159956A0 (en)
MA (1) MA26123A1 (en)
MX (1) MXPA04000595A (en)
NO (1) NO20040230L (en)
PL (1) PL367486A1 (en)
TN (1) TNSN04009A1 (en)
WO (1) WO2003012605A2 (en)
YU (1) YU5804A (en)
ZA (1) ZA200400353B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109102436B (en) * 2018-06-22 2020-10-27 芯启源(上海)半导体科技有限公司 IP soft core property protection and infringement identification method based on USB3.0 protocol TS1 training sequence

Family Cites Families (4)

* 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
US5754646A (en) * 1995-07-19 1998-05-19 Cable Television Laboratories, Inc. Method for protecting publicly distributed software
WO1999066387A1 (en) * 1998-06-12 1999-12-23 Gemplus Method for verifying the execution of a software product
CN1260055A (en) * 1997-06-09 2000-07-12 联信公司 Obfuscation techniques for enhancing software security

Also Published As

Publication number Publication date
FR2828300A1 (en) 2003-02-07
NO20040230L (en) 2004-03-30
WO2003012605A2 (en) 2003-02-13
KR20040032860A (en) 2004-04-17
PL367486A1 (en) 2005-02-21
FR2828300B1 (en) 2010-09-03
YU5804A (en) 2006-05-25
CN1535409A (en) 2004-10-06
JP2004537801A (en) 2004-12-16
ZA200400353B (en) 2005-03-30
IL159956A0 (en) 2004-06-20
HUP0400239A2 (en) 2004-09-28
WO2003012605A3 (en) 2003-12-24
MA26123A1 (en) 2004-04-01
CA2454096A1 (en) 2003-02-13
EP1412839A2 (en) 2004-04-28
JP3949106B2 (en) 2007-07-25
TNSN04009A1 (en) 2006-06-01
CN1275115C (en) 2006-09-13
HK1070958A1 (en) 2005-06-30
MXPA04000595A (en) 2005-02-17
BR0211372A (en) 2004-09-14

Similar Documents

Publication Publication Date Title
EP1410150B1 (en) Protecting software applications against software piracy
US8176473B2 (en) Transformations for software obfuscation and individualization
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
US20070283437A1 (en) Method to Protect Software Against Unwanted Use with a "Temporal Dissociation" Principle
US20070277239A1 (en) Method to Protect Software Against Unwanted Use with a "Renaming" Principle
HRP20040046A2 (en) Method for protecting a software using a so-called conditional jump principle against its unauthorised use
HRP20040044A2 (en) Method for protecting a software using a so-called elementary functions principle against its unauthorised use
HRP20040049A2 (en) Method for protecting a software using a so-called variable principle against its unauthorised use
HRP20040045A2 (en) Method for protecting a software using a so-called detection and coercion principle against its unauthorised use
JP3949105B2 (en) How to protect the software against its unauthorized use using the "Rename" 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

Legal Events

Date Code Title Description
A1OB Publication of a patent application
ARAI Request for the grant of a patent on the basis of the submitted results of a substantive examination of a patent application
ODRP Renewal fee for the maintenance of a patent

Payment date: 20070619

Year of fee payment: 6

OBST Application withdrawn