HRP20040045A2 - Method for protecting a software using a so-called detection and coercion principle against its unauthorised use - Google Patents

Method for protecting a software using a so-called detection and coercion principle against its unauthorised use Download PDF

Info

Publication number
HRP20040045A2
HRP20040045A2 HR20040045A HRP20040045A HRP20040045A2 HR P20040045 A2 HRP20040045 A2 HR P20040045A2 HR 20040045 A HR20040045 A HR 20040045A HR P20040045 A HRP20040045 A HR P20040045A HR P20040045 A2 HRP20040045 A2 HR P20040045A2
Authority
HR
Croatia
Prior art keywords
unit
program
execution
protected program
during
Prior art date
Application number
HR20040045A
Other languages
English (en)
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 HRP20040045A2 publication Critical patent/HRP20040045A2/hr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code

Landscapes

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

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.
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.
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.
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.
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.
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 postupak procesiranja i postupak 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:
→ tijekom faze zaštite:
• definiranje:
- najmanje jedne karakteristike izvođenja programa, koja se može barem djelomično pratiti u jedinici,
- najmanje jednog kriterija koji treba ispunit za barem jednu karakteristiku izvođenja programa,
- 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,
- 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,
• izradu postupka eksploatacije koji omogućava transformaciju prazne jedinice u jedinicu sposobnu za implementaciju postupak detekcije i postupak prisile,
• kreiranje zaštićenog programa:
- odabirom za praćenje najmanje jedne karakteristike izvođenja programa, između karakteristika izvođenja programa predodređenih za praćenje,
- odabirom najmanje jednog kriterija koji treba ispuniti za najmanje jednu odabranu karakteristiku izvođenja programa,
- odabirom najmanje jednog algoritma koji, tijekom izvođenja nezaštićenog programa, koristi najmanje jedan operand i daje najmanje jedan rezultat, te za koji se prati najmanje jedna odabrana karakteristika izvođenja programa,
- odabirom najmanje jednog odsječka izvornog koda nezaštićenog programa koji sadrži najmanje jedan algoritam,
- 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 navedena modifikacija takva da:
▸ 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,
▸ drugi izvršni dio izvodi funkcionalnost najmanje jednog odabranog algoritma,
▸ se tijekom izvođenja zaštićenog programa prati, pomoću drugog izvršnog dijela, najmanje jedna odabrana karakteristika, te činjenica da kriterij nije ostvaren rezultira modifikacijom izvođenja zaštićenog programa,
- i proizvodnjom:
▸ prvog objektnog dijela zaštićenog programa iz izvornog koda zaštićenog programa, gdje je prvi objektni dio takav da se tijekom izvođenja zaštićenog programa, pojavljuje prvi izvršni dio koji se izvodi u sustavu za obradu podataka, a čiji najmanje jedan odsječak uzima u obzir da se prati najmanje jedna odabrana karakteristika izvođenja programa,
▸ 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 praznu 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,
• i učitavanje drugog objektnog dijela u praznu jedinicu sa ciljem dobivanja jedinice,
→ i tijekom faze uporabe kada se zaštićeni program izvodi:
• u prisutnosti jedinice:
- 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,
- 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.
• te u odsutnosti jedinice, u duhu zahtjeva odsječka prvog izvršnog dijela za aktiviranje izvođenja funkcionalnosti odabranog algoritma u jedinici, nemogućnost ispravnog ispunjavanja navedenih zahtjeva, tako da se najmanje navedeni odsječak ne izvodi ispravno te da, posljedično, zaštićeni program nije potpuno funkcionalan.
U skladu s različitim izvedbama, postupak u skladu s izumom obuhvaća:
→ tijekom faze zaštite:
• definiranje:
- kao karakteristike izvođenja koja će se pratiti, varijable koja mjeri uporabu funkcionalnosti programa,
- kao kriterija koji treba ispuniti, najmanje jednog prag pridruženog svakoj mjernoj varijabli,
- postupak aktualizacije koji omogućava osvježavanje najmanje jedne mjerne varijable,
• izrade postupka za eksploataciju koji omogućava jedinici da također upotrijebi postupak aktualizacije,
• modifikaciju zaštićenog programa:
- 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 čija se uporaba prati pomoću mjerne varijable,
▸ najmanje jedne mjerne varijable koja se koristi za kvantifikaciju uporabe navedene funkcionalnosti
▸ najmanje jednog praga pridruženog izabranoj mjernoj varijabli koji odgovara ograničenju uporabe navedene funkcionalnosti,
▸ te najmanje jednu metodu osvježivanja odabrane mjerne varijable ovisno o uporabi navedene funkcionalnosti,
- 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,
→ 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.
U skladu s različitim izvedbama, postupak u skladu s izumom obuhvaća:
→ tijekom faze zaštite:
• definiranje:
- za najmanje jednu mjernu varijable, nekoliko pripadajućih pragova,
- i različitih postupaka prisile koji odgovaraju svakom navedenom pragu,
• modifikaciju zaštićenog programa:
- 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,
- odabirom najmanje dva praga pridružena izabranoj mjernoj varijabli,
- 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,
→ tijekom faze uporabe:
• u prisutnosti jedinice:
- u slučaju gdje je detektiran prijelaz prvog praga, zabranu dalju uporabe odgovarajuće funkcionalnosti zaštićenom programu,
- te u slučaju kada je detektiran prijelaz drugog praga, deaktiviranje odgovarajuće funkcionalnosti i/ili najmanje jednog odsječka zaštićenog programa.
U skladu s različitim izvedbama, postupak u skladu s izumom obuhvaća:
→ tijekom faze zaštite:
• definiranje postupka ponovnog učitavanja koji omogućava kreditiranje najmanje jedne funkcionalnosti programa koja se prati mjernom varijablom, s najmanje jednom dodatnom upotrebom,
• izradu postupka eksploatacije koji također dozvoljava jedinici implementaciju postupka ponovnog učitavanja,
• i modifikaciju zaštićenog programa:
- 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,
- 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,
→ i tijekom faze ponovnog učitavanja:
• ponovnu aktualizaciju najmanje jedne odabrane mjerne varijable i/ili najmanje jednog pridruženog praga, tako da se dozvoljava najmanje jedna dodatna uporaba funkcionalnosti.
U skladu s različitim izvedbama, postupak u skladu s izumom obuhvaća:
→ tijekom faze zaštite:
• definiranje:
- profila uporabe programa kao karakteristike izvođenja programa predodređene za praćenje,
- i kao kriterija koji treba ispuniti, najmanje jedne značajke izvođenja programa,
• i modifikaciju zaštićenog programa:
- odabirom najmanje jednog profila uporabe programa kao karakteristike izvođenja programa koja se prati
- odabirom najmanje jedne značajke izvođenja za koju se mora bit ispunjen najmanje jedan izabrani profil uporabe,
- 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,
→ 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:
U skladu s različitim izvedbama, postupak u skladu s izumom obuhvaća:
→ tijekom faze zaštite:
• definiranje:
- skupa instrukcija koje su podložne izvođenju u jedinici,
- 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,
- kao profila uporabe, ulančavanja instrukcija,
- kao značajke izvođenja, očekivanog ulančavanja za izvođenje instrukcija,
- kao postupka detekcije, postupka koji omogućava detekciju da ulančavanje instrukcija ne odgovara očekivanom,
- 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,
• 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,
• modifikaciju zaštićenog programa:
- modifikacijom najmanje jednog izabranog odsječka izvornog koda zaštićenog programa, koja je takva da:
▸ je najmanje jedan odabrani algoritam podijeljen tako da se, tijekom izvođenja zaštićenog programa, izvodi pomoću drugog izvršnog dijela, korištenjem instrukcija,
▸ su za najmanje jedan izabrani korak, naredbe instrukcija integrirane u izvorni kod zaštićenog programa, tako da se tijekom izvođenja zaštićenog programa, svaka naredba instrukcije izvodi u prvom izvršnom dijelu te aktivira izvođenje pomoću drugog izvršnog dijela, instrukcije u jedinici,
▸ se odabire sekvenca naredbi instrukcija iz skupa sekvenci koje dozvoljavaju izvođenje zaštićenog programa,
▸ specificira se ulančavanje kod kojeg moraju biti prisutne najmanje neke instrukcije tijekom njihova izvođenja u jedinici
→ 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.
U skladu s različitim izvedbama, postupak u skladu s izumom obuhvaća:
→ tijekom faze zaštite:
• definiranje:
- kao skupa instrukcija, skup instrukcija u kome najmanje neke instrukcije rade s registrima i koriste najmanje jedan operand s namjerom vraćanja rezultata,
- za najmanje neke od instrukcija koje rade se registrima:
▸ dijela koji definira funkcionalnost instrukcije,
▸ i dijela koji definira ulančavanje izvođenja instrukcija i uključuje bitove za:
◊ identifikaciju polja instrukcije,
◊ i za svaki operand instrukcije:
* zastavicu,
* i očekivano polje identifikacije operanda,
- 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,
- 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,
- kao postupka prisile, postupka koji omogućava modifikaciju rezultata instrukcije, ako je barem jedna od provjerenih jednakosti neistinita.
U skladu s preferiranom izvedbom, proces u skladu s izumom uključuje:
→ tijekom faze zaštite:
• modifikaciju zaštićenog programa:
- odabirom najmanje jedne varijable koja se koristi u najmanje jednom odabranom algoritma, a koja tijekom faze izvođenja zaštićenog programa djelomično definira stanje zaštićenog programa,
- modifikacijom najmanje jednog odabranog dijela izvornog koda zaštićenog programa, koja je takva da se tijekom izvođenja zaštićenog programa najmanje jedna odabrana varijabla ili kopija odabrane varijable nalazi u jedinici,
- proizvodnjom:
▸ prvog objektnog dijela zaštićenog programa, koji je 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,
▸ 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 odabrana varijabla ili kopija varijable također smješta u jedinicu,
→ te tijekom faze uporabe:
• u prisustvu jedinice i svaki puta kada odsječak prvog izvršnog dijela to nameće, korištenja varijable ili kopije varijable smještene u jedinici, tako da se navedeni odsječak izvodi ispravno, i da je, posljedično, zaštićeni program potpuno funkcionalan,
• u odsutnosti jedinice, u duhu zahtjeva odsječka prvog izvršnog dijela za korištenjem varijable ili kopije varijable smještene u jedinici, nemogućnost ispravnog ispunjavanja zahtjeva te da, posljedično, zaštićeni program nije potpuno funkcionalan.
U skladu s drugom preferiranom izvedbom, postupak u skladu s izumom obuhvaća:
→ tijekom faze zaštite:
• definiranje:
- instrukcijske naredbe kao naredbe za aktiviranje,
- instrukcije kao zavisne funkcije,
- 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,
- postupka za preimenovanje naloga koji omogućuje preimenovanje naloga tako se dobije aktivirana naredba s preimenovanim nalogom,
- postupka obnavljanja dizajniranog za uporabu u jedinci tijekom faze upotrebe, koji omogućava obnavljanje zavisne funkcije koja se izvodi od preimenovanog naloga,
• izradu postupka za eksploataciju koji omogućava jedinici primjenu postupka obnavljanja.
• modifikaciju zaštićenog programa:
- odabirom naredbe za aktiviranje u izvornom kodu zaštićenog programa,
- 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,
- i proizvodnjom:
▸ 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,
▸ 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,
→ i tijekom faze korištenja:
• 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,
• 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.
U skladu s različitim izvedbama, postupak u skladu s izumom obuhvaća:
→ tijekom faze zaštite:
• definiranje za najmanje jednu zavisnu funkciju, familije zavisnih funkcija koje su algoritamski ekvivalentne, ali se aktiviraju naredbama čiji su preimenovani nalozi različiti,
• i modifikaciju zaštićenog programa:
- odabirom, u izvornom kodu zaštićenog programa najmanje jedne naredbe za aktiviranje s preimenovanim nalogom,
- 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.
U skladu s različitim izvedbama, postupak u skladu s izumom obuhvaća:
→ tijekom faze zaštite, definiranje, za najmanje jednu zavisnu funkciju, familije algoritamski ekvivalentnih zavisnih funkcija:
- dodavanjem polja šuma u informaciju definirajući funkcionalni dio zavisne funkcije koja se izvodi u jedinci,
- ili upotrebom identifikacijskog polja instrukcije i očekivanih identifikacijskih polja operanada.
U skladu s različitim izvedbama, postupak u skladu s izumom obuhvaća:
→ tijekom faze zaštite:
• definiranje:
- postupka za šifriranje naloga, kao postupka preimenovanja naloga,
- i kao postupka obnavljanja, postupka koji implementira metodu za dešifriranje preimenovanog naloga te tako obnavlja identitet zavisne funkcije koja se izvodi u jedinici.
U skladu s drugim preferiranim izvedbama, postupak u skladu s izumom obuhvaća:
→ tijekom faze zaštite:
• modifikaciju zaštićenog programa:
- odabirom , u izvornom kodu zaštićenog programa, najmanje jednog uvjetnog grananja koje se obavlja u najmanje jednom izabranom algoritmu,
- 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,
- i proizvodnjom:
▸ prvog objektnog dijela zaštićenog programa, takvog da se tijekom izvođenja programa, funkcionalnost najmanje jednog izabranog uvjetnog grananja izvodi u jedinici,
▸ 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,
→ i tijekom faze upotrebe:
• 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,
• 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.
U skladu s različitim izvedbama, postupak u skladu s izumom obuhvaća, tijekom faze zaštite, modifikaciju zaštićenog programa:
- odabirom , u izvornom kodu zaštićenog programa, najmanje jednog niza odabranih uvjetnih grananja,
- 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,
- i proizvodnjom:
▸ 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,
▸ 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.
Postupak u skladu s izumom tako omogućava zaštitu korištenja programa upotrebom jedinice za procesiranje i memoriranje 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 memoriranje nameće ponovo kreiranje dijela programa koji se nalazi u jedinici za procesiranje i memoriranje tijekom izvođenja, inače navedena izvedena verzija programa neće biti potpuno funkcionalna.
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.
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.
Slike 20 i 22 prikazuju primjere različitih izvedbi uređaja za implementaciju postupka u skladu s izumom.
Slike 30 i 31 su funkcijski blok dijagrami koji objašnjavaju opći princip postupka u skladu s izumom.
Slike 40 i 43 su dijagrami koji prikazuju postupak zaštite u skladu s izumom primjenom principa zaštite varijablom.
Slike 70 i 74 su dijagrami koji prikazuju postupak zaštite u skladu s izumom primjenom principa zaštite detekcijom i prisilom
Slike 80 i 85 su dijagrami koji prikazuju postupak zaštite u skladu s izumom primjenom principa zaštite preimenovanjem.
Slike 90 i 92 su dijagrami koji prikazuju postupak zaštite u skladu s izumom primjenom principa zaštite uvjetnim grananjem.
Slika 100 je dijagram koji prikazuje različite faze implementacije predmeta izuma.
Slika 110 prikazuje izvedbu sustava koji dozvoljava implementaciju stupnja stadija izrade u fazi zaštite u skladu s izumom.
Slika 120 prikazuje izvedbu pred-prilagođene jedinice koja se koristi u procesu zaštite u skladu s izumom.
Slika 130 prikazuje izvedbu sustava koji dozvoljava implementaciju alata iz stadija izrade u fazi zaštite u skladu s izumom.
Slika 140 prikazuje izvedbu sustava koji dozvoljava implementaciju procesa zaštite u skladu s izumom.
Slika 150 prikazuje izvedbu jedinice za prilagođavanje koja se koristi procesu zaštite u skladu s izumom.
U nastavku opisa, koristiti će se slijedeće definicije:
• Sustav za obradu podataka 3 je sustav sposoban izvoditi program.
• Jedinica za procesiranje i pohranjivanje je sposobna:
- prihvatiti podatke dobivene od sustava za obradu podataka 3,
- vratiti podatke sustavu za obradu podataka 3,
- spremiti podatke najmanje djelomično skrivene i sačuvati barem dio navedenih podataka čak i ako je jedinica isključena s napajanja,
- i provoditi algoritam obrade podataka, gdje su skriveni jedan dio ili svi podaci.
• 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.
• Pred-prilagođena jedinica 66 je prazna jedinica 60 koja prima dio podataka omogućavajući, nakon prijema dodatnih podataka, transformaciju u jedinicu 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.
• 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.
• "Zaštićeni program" je program koji je zaštićen najmanje jednim principom zaštite implementiranim procesom u skladu s izumom.
• "Nezaštićeni program" je program koji nije zaštićen niti jednim principom zaštite implementiranim procesom u skladu s izumom.
• U slučaju gdje razlikovanje nezaštićenog i zaštićenog programa nije bitno koristi se izraz "program".
• Program ima različite oblike koji ovise o promatranom trenutku u njegovom životnom ciklusu:
- izvorni oblik
- objektni oblik
- distribuciju
- dinamički oblik.
• 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.
• 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.
• 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.
• Dinamički oblik odgovara izvođenju programa od strane distribucije.
• 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.
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.
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:
• izvorni oblik 2vs
• objektni oblik 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.),
• 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.
Slika 11 prikazuje različite izvedbe zaštićenog programa 2p koje se pojavljuju tijekom životnog ciklusa. Zaštićeni program se može pojaviti u bilo kojem od slijedećih oblika:
• izvorni oblik 2ps koji uključuje prvi izvorni dio namijenjen za sustav za obradu podataka 3 i eventualno drugi izvorni dio namijenjen za jedinicu 6, gdje dio navedenih izvornih dijelova mogu biti sadržani u istoj datoteci,
• objektni oblik 2po koji uključuje prvi objektni dio 2pos namijenjen za sustav za obradu podataka 3 i eventualno drugi objektni dio 2pou namijenjen za jedinicu 6,
• Distribucija 2pd uključuje:
- 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.),
- i drugi distribucijski dio 2pdu koji ima oblik:
▸ 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,
▸ ili najmanje jedne jedinice 6 u koju se učitava drugi objektni dio 2pou,
• 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.
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.
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.
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.
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.
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.
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.
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.
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.
Kako je prikazano na slici 31, da bi se dozvolila implementacija drugog izvršnog dijela 2peu zaštićenog programa 2p, jedinica uključuje postupak zaštite 14. Postupak zaštite 14 uključuje postupak memoriranja 15 i postupak procesiranja 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:
• 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,
• 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,
• i kada jedinica 6 fizički nedostaje uvijek se smatra da nedostaje.
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.
U skladu s izumom, cilj procesa zaštite je implementacija principa zaštite "detekcijom i prisilom" čiji je opis prikazan na slikama 70 do 74.
Za implementaciju principa zaštite detekcijom i prisilom definirani su:
• najmanje jedna karakteristika izvođenja podložna najmanje djelomičnom praćenju u jedinici 6,
• najmanje jedan kriterij koji treba ispuniti za najmanje jednu karakteristiku izvođenja programa,
• 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,
• 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.
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.
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.
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.
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.
Za implementaciju principa zaštite detekcijom i prisilom, također se odabiru:
• najmanje jedna karakteristika programa za praćenje, između karakteristika izvođenja programa koje se mogu pratiti,
• najmanje jedan kriterij koji treba ispuniti za najmanje jednu odabranu karakteristiku izvođenja programa,
• u izvornom kodu nezaštićenog programa 2vs, najmanje jedan algoritam za koji se prati karakteristika izvođenja programa,
• i u izvornom kodu nezaštićenog programa 2vs, najmanje jedan odsječak najmanje jednog algoritma.
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:
• 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,
• i drugi izvršni dio 2peu, koji se izvodi u jedinici 6, prati najmanje djelomično odabranu karakteristiku izvođenja programa.
Tijekom izvođenja zaštićenog programa 2p, zaštitom ovim principom zaštite detekcijom i prisile, 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, tako da navedeni zaštićeni program 2p radi ispravno,
• 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.
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.
Za implementaciju principa zaštite detekcijom i prisilom, preferiraju se dva tipa karakteristika izvođenja programa.
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.
Za implementaciju principa zaštite detekcijom i prisilom korištenjem, kao karakteristike izvođenja, varijable koja mjeri izvođenje programa, definirani su:
• u memoriji 15, mogućnost pohranjivanja najmanje jedne varijable kojom se mjeri korištenje najmanje jedne funkcionalnosti programa,
• u postupku detekcije 17, mogućnost praćenja najmanje jednog praga pridruženog svakoj mjernoj varijabli,
• i postupka aktualizacije koji omogućava osvježivanje svake mjerne varijable ovisno o korištenju funkcionalnosti koja joj je pridružena.
Također je konstruiran postupak za eksploataciju koji implementira postupak aktualizacije u dodatku postupku detekcije 17 i postupku prisile 18.
Također se odabire, u izvornom kodu zaštićenog programa 2vs:
• najmanje jedna karakteristika izvođenja programa 2p čije korištenje se prati korištenjem mjerne varijable,
• najmanje jedna varijabla kojom se mjeri korištenje navedene funkcionalnosti,
• najmanje jedan prag pridružen mjernoj varijabli što odgovara granici korištenja navedene funkcionalnosti,
• i najmanje jedna metoda osvježivanja mjerne varijable u zavisnosti o korištenju navedene funkcionalnosti.
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:
• aktualizira mjernu varijablu koja mjeri korištenje navedene funkcionalnosti,
• i također uzima u obzir najmanje jedan prijelaz praga.
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.
Za implementaciju prve preferirane varijante izuma principa zaštite detekcijom i prisilom korištenjem, kao karakteristike, mjerne varijable, definirani su:
• za najmanje jednu mjernu varijablu, nekoliko pridruženih pragova,
• i različiti postupci prisile koji odgovaraju svakom od navedenih pragova.
Također se odabire, u izvornom kodu nezaštićenog programa 2vs:
• 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,
• i najmanje dva praga pridružena mjernoj varijabli.
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:
• aktualizira mjernu varijablu ovisno o korištenju navedene funkcionalnosti,
• i uzima u obzir, odvojeno, prijelaze različitih pragova.
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.
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.
Također se izrađuje postupak za eksploataciju koji implementira postupak aktualizacije uz postupak detekcije 17 i postupak prisile 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.
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.
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.
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.
Također se odabire u izvornom kodu nezaštićenog programa 2vs:
• najmanje jedan profil uporabe za praćenje
• i najmanje jedna značajka izvođenja za koju mora biti ispunjen najmanje jedan izabrani profil uporabe
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.
Tijekom izvođenja zaštićenog programa 2p, zaštićenog ovim principom, u prisutnosti jedinice 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,
• 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.
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.
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:
• skup instrukcija određenih za izvođenje u jedinici 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,
• postupak detekcije 17 koji omogućava utvrđivanje da izmjena instrukcija ne odgovara očekivanoj,
• 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.
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.
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.
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:
• drugi izvršni dio 2peu izvodi najmanje jednu funkcionalnost odabranog algoritma,
• izabrani algoritam se dijeli na instrukcije,
• specificira se ulančavanje kod kojeg moraju biti prisutne najmanje neke instrukcije tijekom njihova izvođenja u jedinici 6,
• a prvi izvršni dio 2pes zaštićenog programa 2p izvodi naredbe koje aktiviraju izvođenje instrukcija u jedinici 6.
Tijekom izvođenja zaštićenog programa 2p, koji je zaštićen ovim principom, u prisutnosti jedinice 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,
• 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.
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.
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.
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.
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.
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.
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.
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.
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:
• identifikacijskom polju instrukcije CII
• i za svaki operand k instrukcije, gdje se k mijenja od 1 do K, i brojem operanada instrukcije K:
- zastavici CDk koja označava da li je ili nije prikladno verificirati izvor operanda k,
- polju očekivane identifikacije operanda CIPk, koje indicira očekivani identitet instrukcije koja generira sadržaj operanda 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:
• funkcijsko polje CFv, poznato stručnjacima, koje služi za spremanje rezultata izvođenja instrukcija,
• 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.
Tijekom izvođenja instrukcije, postupak detekcije 17 obavlja za svakog operanda slijedeće funkcije:
• zastavica CDk je pročitana
• ako zastavica CDk to nameće, čitaju se polje očekivane identifikacije CIPk i polje generirane identifikacije CIGv koja odgovaraju korištenom registru,
• provjeravanje jednakosti polja CIPk i CIGv,
• te ako polja nisu jednaka, postupak detekcije 17 smatra da ulančavanje izvođenja nije prisutno
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.
U skladu s drugom prednosti izuma, cilj procesa zaštite je implementacija principa zaštite "varijablom" čiji je opis prikazan na slikama 40 do 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.
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.
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:
• u trenutku t1, prijenosa podatka X na varijablu V1, prikazan s V1←X
• u trenutku t2, prijenosa vrijednosti V1 na varijablu Y, prikazan s Y←V1
• u trenutku t2, prijenosa vrijednosti V1 na varijablu Z, prikazan s 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:
• 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,
• 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,
• 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.
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.
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:
• 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),
• u trenutku t2, pridruživanja vrijednosti varijable V1 varijabli 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).
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.
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:
• 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,
• 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,
• 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.
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.
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).
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.
Za implementaciju principa zaštite preimenovanjem, definirani su:
• 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,
• 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 izvođenje odgovarajućih zavisnih funkcija u jedinici 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,
• 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,
• 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.
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.
Za implementaciju principa zaštite preimenovanjem, 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,
• i najmanje jedan odsječak izvornog koda nezaštićenog programa 2vs, koji sadrži najmanje jedan odabrani algoritam.
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:
• 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,
• 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,
• 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:
- eventualno jednu ili više zavisnih funkcija koje omogućavaju smještanje jednog ili više operanada na raspolaganje jedinici 6,
- zavisne funkcije, od kojih neke koriste operand(e) i izvode se u kombinaciji s funkcionalnosti odabrane algoritma, koristeći navedeni operand(e),
- i eventualno, jedne ili više zavisnih funkcija koje omogućavaju stavljanje na raspolaganje sustavu za obradu podataka 3, pomoću jedinice 6, rezultata odabranog algoritma,
• tijekom izvođenja zaštićenog programa 2p, drugi izvršni dio 2peu izvodi zavisnu funkciju fdn,
• tijekom izvođenja zaštićenog programa 2p, zavisna funkcija se aktivira naredbama za aktiviranje s preimenovanim nalozima,
• se odabire sekvenca naredbi za aktiviranje između skupa sekvenci koje dozvoljavaju izvođenje zaštićenog programa 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.
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.
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.
Slike 81 i 82 prikazuje primjer implementacije izuma.
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:
• 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),
• 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,
• 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).
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).
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:
• 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),
• 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)),
• 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)).
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:
• 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.
• 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.
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').
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
• 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,
• 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.
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.
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.
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:
• 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),
• 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.
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.
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:
• 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,
• 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.
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.
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.
U prethodnom opisu u vezi sa slikama 40 do 92, iznesena su četiri različita principa zaštite programa koji su, općenito govoreći, nezavisni. Proces zaštite u skladu s izumom je implementiran uporabom principa zaštite detekcijom i prisilom, eventualno kombiniranim s jednim ili više drugih principa zaštite. U slučaju gdje je princip zaštite detekcijom i prisilom dopunjen implementacijom barem još jednog principa zaštite, gdje je princip zaštite detekcijom i prisilom unaprijeđen principom zaštite preimenovanjem i/ili principom zaštite uvjetnim grananjem.
I kada je nadalje primijenjen princip zaštite privremenim odvajanjem, može biti dopunjen uzastopnim principom zaštite uvjetnim grananjem.
U skladu s preferiranom varijantom izvedbe, princip zaštite detekcijom i prisilom se dopunjava s principom zaštite varijablom i principom zaštite preimenovanjem, dopunjenim s principom zaštite uvjetnim grananjem.
U slučaju gdje je primijenjen princip zaštite, kao dopuna principu zaštite detekcijom i prisilom, prije izneseni opis mora uključivati, uzimajući u obzir kombiniranu implementaciju, slijedeće modifikacije:
• 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";
• 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";
• učinjeni izbor za implementaciju opisanog principa zaštite treba uzeti u obzir učinjeni izbor za implementaciju već primijenjenog principa zaštite.
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:
• prvo, od faze zaštite P tijekom koje se nezaštićeni program 2v modificira u zaštićeni program 2p,
• zatim, od faze uporabe U tijekom koje se zaštićeni program 2p koristi.
Tijekom ove faze uporabe U:
- 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,
- 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,
• 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.
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.
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.
Prvi stupanj pod-faze prethodne zaštite P1 se naziva "stupanj određivanja S11". Tijekom toga stupnja određivanja S11:
• odabiru se:
- 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,
- i postupak prijenosa 12, 13 dizajniran za primjenu 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,
• definiraju se:
- najmanje jedna karakteristika izvođenja programa, određena za barem djelomično praćenje u jedinici 6,
- najmanje jedan kriterij koji treba ispuniti za barem jednu karakteristiku izvođenja programa,
- 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,
- 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,
• 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:
- varijabla koja mjeri korištenje funkcionalnosti programa kao karakteristika programa određena za praćenje,
- najmanje jedan prag pridružen svakoj mjernoj varijabli kao kriterij koji treba ispuniti,
- i postupka aktualizacije koji omogućava osvježivanje najmanje jedne mjerne varijable,
• 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:
- više pridruženih pragova za najmanje jednu mjernu varijablu,
- različite postupke prisila koji odgovaraju svakom od navedenih pragova,
• 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,
• 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:
- kao karakteristiku izvođenja programa predviđenu za praćenje, profil uporabe programa,
- najmanje jedna značajka izvođenja programa kao kriterij koji treba ispuniti,
• 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:
- skup instrukcija koje su predviđene za izvođenje u jedinici 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,
- ulančavanje instrukcija kao profila uporabe,
- očekivanog ulančavanja izvođenja instrukcija kao značajke izvođenja,
- kao postupak detekcije 17, postupka koji omogućava detektiranje da ulančavanje instrukcija ne odgovara očekivanom,
- 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,
• 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:
- skup instrukcija, gdje barem neke instrukcije rade s registrima i koriste najmanje jedan operand s namjerom vraćanja rezultata,
- za barem neke instrukcije koje rade s registrima:
▸ dio PF koji definira funkcionalnost instrukcija,
▸ i dio koji definira očekivano ulančavanje izvođenja instrukcija i uključuje zastavice koje odgovaraju:
◊ polju za identifikaciju instrukcije CII,
◊ i za svaki operand instrukcije:
* polje zastavice CDk,
* očekivano polje identifikacije CIPk operanda,
- 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,
- 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,
• i u slučaju gdje proces zaštite u skladu s izumom implementira princip zaštite preimenovanjem, također se definira:
- kao naredba za aktiviranje, instrukcijska naredba,
- kao zavisna funkcija, instrukcija,
- 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,
- postupak preimenovanja naloga koji omogućava preimenovanje naloga tako da se dobiju naredbe za aktiviranje s preimenovanim nalozima,
- 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,
• 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,
• 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:
- dodavanjem polja smetnje u informaciju koja definira funkcionalni dio zavisne funkcije koja se izvodi u jedinici 6,
- ili korištenjem polja za identifikaciju instrukcija CII i očekivanog polja za identifikaciju operanda CIPk.
• i u slučaju gdje proces zaštite u skladu s izumom implementira preferiranu varijantu principa zaštite preimenovanjem, također se definira:
- kao postupak preimenovanja naloga, postupak šifriranja za šifriranje naloga,
- 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.
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.
Tijekom ovog stupnja konstruiranja S12, obavlja se dakle:
• 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,
• konstrukcija:
- postupka eksploatacije koji omogućava jedinici 6, tijekom faze korištenja U, da također implementira postupak detekcije 17 i prisile 18,
- i eventualno postupka eksploatacije koji omogućava jedinici 6, tijekom faze korištenja U, da također implementira postupak aktualizacije,
- i eventualno postupka eksploatacije koji omogućava jedinici 6, tijekom faze korištenja U, da također implementira postupak ponovnog učitavanja,
- i eventualno postupka eksploatacije koji omogućava jedinici 6, tijekom faze korištenja U, da izvodi instrukcije iz skupa instrukcija,
• 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.
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.
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.
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:
• pomoć u odabiru ili automatski odabir u nezaštićenom programu 2v za zaštitu:
- karakteristika(e) za praćenje, i eventualno algoritam određen da bude podijeljen u instrukcije odvojene u jedinicu 6,
- odsječka određenog za modifikaciju,
- i kada je princip zaštite varijablom također primijenjen, varijable(i) određenih za izdvajanje u jedinicu 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,
- i kada je princip zaštite uvjetnim grananjem također primijenjen, uvjetno grananje(a) čije su funkcionalnosti određene za izdvajanje u jedinicu 6,
• i, eventualno, pomoć u generiranju zaštićenog programa ili automatiziranju zaštite programa.
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.
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 detekcijom i prisilom 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:
• odabirom za praćenje najmanje jedne karakteristike izvođenja programa, između karakteristika izvođenja programa predviđenih za praćenje,
• odabirom najmanje jednog kriterija koji treba biti ispunjen za najmanje jednu odabranu karakteristiku izvođenja programa,
• odabirom najmanje jednog algoritma koji tijekom izvođenja nezaštićenog programa 2v koji koristi najmanje jedan operand i omogućava vraćanje najmanje jednog rezultata, te za koji se prati najmanje jedna odabrana karakteristika izvođenja,
• odabirom najmanje jednog odsječka u izvornom kodu nezaštićenog programa 2vs 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, koja je 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 se izvodi u jedinici 6 koja se dobiva iz prazne jedinice 60 nakon učitavanja informacija,
- drugi izvršni dio 2peu izvodi najmanje funkcionalnost najmanje jednog odabranog algoritma,
- se tijekom izvođenja zaštićenog programa 2p najmanje jedna odabrana karakteristika izvođenja prati pomoću drugog izvršnog dijela 2peu i činjenica da kriterij nije ispunjen rezultira modifikacijom zaštićenog programa 2p,
• i proizvodnjom:
- 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 prati barem jedna karakteristika izvođenja programa,
- i 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 praznu jedinicu 60 i tijekom izvođenja zaštićenog programa 2p, pojavljuje drugi izvršni dio 2peu pomoću kojeg se prati najmanje jedna karakteristika izvođenja programa te činjenica da kriterij nije ispunjen vodi tome da se modificira izvođenje zaštićenog programa 2p.
Prirodno, princip zaštite detekcijom i prisilom 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.
Za implementaciju principa zaštite detekcijom i prisilom korištenjem karakteristike varijable koja mjeri izvođenje programa, zaštićeni program 2p se modificira:
• 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 mjernih varijabli,
- najmanje jedne mjerne varijable koja se koristi za kvantifikaciju uporabe navedene funkcionalnosti,
- najmanje jednog praga pridruženog mjernoj varijabli koja odgovara granici uporabe navedene funkcionalnosti,
- najmanje jednog postupka osvježivanja odabrane mjerne varijable koja zavisi o uporabi navedene funkcionalnosti,
• 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.
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:
• 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,
• odabirom najmanje dva praga pridružena odabranoj mjernoj varijabli,
• 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.
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:
• 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,
• 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.
Za implementaciju principa zaštite detekcijom i prisilom korištenjem, kao karakteristike, profila uporabe programa, zaštićeni program 2p se modificira:
• odabirom najmanje jednog profila uporabe programa kao karakteristike izvođenja programa koja se prati,
• odabirom najmanje jedne značajke izvođenja za koju najmanje jedan odabrani profil uporabe koja mora biti ispunjena,
• 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.
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:
• modifikacijom najmanje jednog odabranog odsječka izvornog koda zaštićenog programa 2ps, koja je takva da:
- 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 instrukcija,
- su za najmanje jedan odabrani algoritam, naredbe instrukcija integrirane u izvorni kod zaštićenog programa 2ps, tako da se tijekom izvođenja zaštićenog programa 2p svaka naredba instrukcije izvodi od strane prvog izvršnog dijela 2pes te aktivira, u jedinici 6, izvođenje instrukcije pomoću drugog izvršnog dijela 2peu,
- se odabire sekvenca naredbi instrukcija između skupa sekvenci koje dozvoljavaju izvođenje zaštićenog programa 2p,
- se vrši ulančavanje koje mora osigurati da su specificirane barem neke od instrukcija tijekom njihovog izvođenja u jedinici 6.
Tijekom pod-faza slijedeće zaštite P2, te kada je najmanje još jedan princip zaštite primijenjen u dodatku na princip zaštite detekcijom i prisilom, 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.
Kada je primijenjen princip zaštite varijablom, zaštićeni program 2p se modificira:
• 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,
• 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,
• i proizvodnjom:
- 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,
- 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.
Kada je implementiran princip zaštite preimenovanjem, zaštićeni program 2p se modificira:
• odabirom u izvornom kodu zaštićenog programa 2ps naredbi za aktiviranje,
• 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,
• i proizvodnjom:
- 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,
- 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.
Za implementaciju varijante principa zaštite preimenovanjem, zaštićeni program 2p se modificira:
• odabirom, u izvornom kodu zaštićenog programa 2ps najmanje jedne naredbe za aktiviranje s preimenovanim nalozima.
• 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.
Kada je implementiran princip zaštite uvjetnim grananjem. zaštićeni program 2p se modificira:
• odabirom, u izvornom kodu zaštićenog programa 2p, najmanje jednog uvjetnog grananja koje se obavlja u najmanje jednom algoritmu,
• 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,
• i proizvodnjom:
- 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,
- 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.
Za implementaciju preferirane izvedbe principa zaštite uvjetnim grananjem, zaštićeni program se modificira:
• odabirom, u izvornom kodu zaštićenog programa 2ps, najmanje jednog niza odabranih uvjetnih grananja,
• 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,
• i proizvodnjom:
- 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,
- 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.
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.
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 eventualno 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.
Za implementaciju faze zaštite P, različiti tehnički postupci su opisani detaljnije na slikama 110, 120, 130, 140 i 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.
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.
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.
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.
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.
Proces zaštite u skladu s izumom može biti implementira sa slijedećim poboljšanjima:
• 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.
• 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.

Claims (34)

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čenima najmanje postupkom za pohranjivanje (15) i postupkom za procesiranje (16), 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 transformaciju prazne jedinice (60) u jedinicu (6) sposobnu za implementaciju postupka detekcije (17) i postupka prisile (18), - kreiranje 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 najmanje jednog algoritma koji tijekom izvođenja nezaštićenog programa (2v) koristi najmanje jedan operand te omogućava dobivanje najmanje jednog rezultati za koji je odabrana najmanje jedna karakteristika izvođenja programa za praćenje ▸ odabirom najmanje jednog odsječka izvornog koda nezaštićenog programa (2vs) 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 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) koja se dobiva iz prazne jedinice (60) nakon učitavanja informacija, � drugi izvršni dio (2peu) izvodi funkcionalnost najmanje jednog odabranog algoritma, � 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 modificira 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 prati barem jedna karakteristika izvođenja programa, � i 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 praznu jedinicu (60) i tijekom izvođenja zaštićenog programa (2p), pojavljuje drugi izvršni dio (2peu) pomoću kojeg se prati najmanje jedna karakteristika izvođenja programa, a činjenica da kriterij nije ispunjen vodi tome da se modificira izvođenje zaštićenog programa (2p), - i učitavanje drugog objektnog dijela (2pou) u praznu jedinicu (60), s namjerom dobivanja jedinice (6), • i tijekom faze uporabe (U) kada se zaštićeni program (2p) izvodi: - 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. - i u odsutnosti jedinice (6) i u duhu zahtjeva odsječka prvog izvršnog dijela (2pes) za izvođenjem funkcionalnosti odabranog algoritma, 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.
2. Proces u skladu sa zahtjevom 1, 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.
3. Proces u skladu sa zahtjevom 2, 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).
4. Proces u skladu sa zahtjevima 2 ili 3, 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.
5. Proces u skladu sa zahtjevom 1, 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.
6. Proces u skladu sa zahtjevom 5, 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), - i modifikaciju zaštićenog programa (2p): ▸ modifikacijom najmanje jednog odabranog odsječka u izvornom kodu zaštićenog programa (2ps), koja je takva da: � 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 instrukcija, � su za najmanje jedan algoritam, instrukcije integrirane u izvorni kod zaštićenog programa (2ps), tako da tijekom izvođenja zaštićenog programa (2p) svaku instrukciju izvodi prvi izvršni dio (2pes), te aktivira, u jedinici (6), izvođenje instrukcije pomoću drugog izvršnog dijela (2peu), � se odabire sekvenca instrukcija između skupa sekvenci koje dozvoljavaju izvođenje zaštićenog programa (2p), � specificiranjem ulančavanja kod kojeg moraju postojati barem neke instrukcije tijekom njihovog izvođenja u jedinici (6), • 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.
7. Proces u skladu sa zahtjevom 6, 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.
8. Proces u skladu sa zahtjevima 1 do 7, 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 barem jednom algoritmu a koja tijekom izvođenja nezaštićenog programa (2v), djelomično definira kasnije stanje, ▸ modifikacijom najmanje jednog odabranog odsječka izvornog koda zaštićenog programa (2ps), na način da se tijekom izvođenja zaštićenog programa (2p) najmanje jedna odabrana varijabla ili kopija odabrane varijable smješta u jedinicu (6), ▸ i proizvodnjom: � prvog objektnog dijela (2pos) zaštićenog programa (2p), gdje je navedeni prvi objektni dio (2pos) takav da, tijekom izvođenja zaštićenog programa (2p), najmanje jedan odsječak 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 jedinicu (6) 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 (2p) nije potpuno funkcionalan.
9. Proces u skladu sa zahtjevom 6, naznačen time, da uključuje: • tijekom faze zaštite (P): - definiranje: ▸ kao naredbe za aktiviranje, instrukcijske naredbe, ▸ kao zavisne funkcije, 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. Proces u skladu sa zahtjevom 9, 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. Proces u skladu sa zahtjevom 10, 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. Proces u skladu sa zahtjevima 9, 10 ili 11, 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. Proces u skladu s jednim od zahtjeva 1 do 12, 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. Proces u skladu sa zahtjevom 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 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. Proces u skladu s jednim od zahtjeva 1 do 14, 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. Proces u skladu sa zahtjevom 15, 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. Proces u skladu sa zahtjevom 16, 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. Proces u skladu sa zahtjevom 17, 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. Proces u skladu sa zahtjevima 16 ili 17 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. Proces u skladu sa zahtjevima 15 i 18, 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. Proces u skladu sa zahtjevima 19 i 20, 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. Sustav za implementaciju procesa zaštite u skladu sa zahtjevom 17, 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. Sustav za implementaciju procesa u skladu sa zahtjevom 18, 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. Sustav za implementaciju procesa u skladu sa zahtjevom 19, 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. Sustav za implementaciju procesa u skladu sa zahtjevom 20 ili 21, naznačen time da uključuje jedinicu za razvoj programa koja se koristi za kreiranje ili modifikaciju zaštićenog programa (2p).
26. Sustav za implementaciju procesa u skladu sa zahtjevom 20, 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. Pred-prilagođenu jedinicu (66), naznačenu time da je dobivena pomoću sustava u skladu sa zahtjevom 23.
28. 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 26.
29. 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 26, 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. 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 27, sposoban da se, nakon učitavanja u informacijama o prilagodbi, transformira u jedinicu (6), ▸ ili jedinice (6) u skladu sa zahtjevom 28.
31. Distribucijski skup (2pd) zaštićenog programa (2p) u skladu sa zahtjevom 30, 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. Distribucijski skup (2pd) zaštićenog programa (2p) u skladu sa zahtjevom 30, 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. 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 27, u jedinicu (6) u skladu sa zahtjevom 28.
34. 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 27, u jedinicu (6) u skladu sa zahtjevom 28.
HR20040045A 2001-07-31 2004-01-19 Method for protecting a software using a so-called detection and coercion principle against its unauthorised use HRP20040045A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0110244A FR2828301B1 (fr) 2001-07-31 2001-07-31 Procede pour proteger un logiciel a l'aide d'un principe dit de "detection et coercition" contre son utilisation non autorisee
PCT/FR2002/002343 WO2003012571A2 (fr) 2001-07-31 2002-07-04 Procede pour proteger un logiciel a l'aide de 'detection et coercition' contre son utilisation non autorisee

Publications (1)

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

Family

ID=8866119

Family Applications (1)

Application Number Title Priority Date Filing Date
HR20040045A HRP20040045A2 (en) 2001-07-31 2004-01-19 Method for protecting a software using a so-called detection and coercion principle against its unauthorised use

Country Status (29)

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

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2634917A1 (fr) * 1988-08-01 1990-02-02 Pionchon Philippe Procede et dispositif de protection d'un logiciel, en particulier contre les copies non autorisees
US4932054A (en) * 1988-09-16 1990-06-05 Chou Wayne W Method and apparatus for protecting computer software utilizing coded filter network in conjunction with an active coded hardware device
US5754646A (en) * 1995-07-19 1998-05-19 Cable Television Laboratories, Inc. Method for protecting publicly distributed software
US5706426A (en) * 1996-02-07 1998-01-06 United Microelectronics Corporation Software protection method and apparatus
US6523119B2 (en) * 1996-12-04 2003-02-18 Rainbow Technologies, Inc. Software protection device and method
JP2002518727A (ja) * 1998-06-12 2002-06-25 ジェムプリュス ソフトウェア製品の実行の制御方法

Also Published As

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

Similar Documents

Publication Publication Date Title
US20070294770A1 (en) Method to Protect Software Against Unwanted Use with a Variable Principle
US20070136816A1 (en) Method to protect software against unwanted use with a detection and coercion principle
US20070277239A1 (en) Method to Protect Software Against Unwanted Use with a "Renaming" Principle
US20070283437A1 (en) Method to Protect Software Against Unwanted Use with a "Temporal Dissociation" Principle
HRP20040046A2 (en) Method for protecting a software using a so-called conditional jump principle against its unauthorised use
HRP20040049A2 (en) Method for protecting a software using a so-called variable principle against its unauthorised use
HRP20040044A2 (en) Method for protecting a software using a so-called elementary functions 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 (ja) 「リネーム」原理を使用してその無許可使用に対してソフトウェアを保護する方法
US7502940B2 (en) Method to protect software against unwanted use with a “conditional branch” principle
US7434064B2 (en) Method to protect software against unwanted use with a “elementary functions” principle
JP3949108B2 (ja) 「一時的分離」原理により不正使用に対してソフトウェアを保護する方法

Legal Events

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

Payment date: 20130715

Year of fee payment: 12

OBST Application withdrawn