UA77186C2 - Method for protecting software against unauthorized use by a controlled variable - Google Patents

Method for protecting software against unauthorized use by a controlled variable Download PDF

Info

Publication number
UA77186C2
UA77186C2 UA2004010469A UA2004010469A UA77186C2 UA 77186 C2 UA77186 C2 UA 77186C2 UA 2004010469 A UA2004010469 A UA 2004010469A UA 2004010469 A UA2004010469 A UA 2004010469A UA 77186 C2 UA77186 C2 UA 77186C2
Authority
UA
Ukraine
Prior art keywords
protected program
execution
program
protected
fragment
Prior art date
Application number
UA2004010469A
Other languages
Ukrainian (uk)
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 filed Critical
Publication of UA77186C2 publication Critical patent/UA77186C2/en

Links

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Storage Device Security (AREA)

Abstract

The invention concerns a method for protecting, from at least a unit, a vulnerable software against its unauthorised use, said vulnerable software operating on a data processing system. The method consists in creating a protected software: by selecting in the source of the vulnerable software at least a variable; by producing the source of the protected software by modifying the source of the vulnerable software, so that the selected variable becomes resident in a unit.

Description

Опис винаходуDescription of the invention

Даний винахід належить до галузі систем обробки даних у широкому сенсі цього слова, а точніше кажучи, 2 винахід стосується засобів захисту від неавторизованого використання програми, що функціонує у згаданих системах обробки даних.This invention belongs to the field of data processing systems in the broadest sense of the word, and more precisely, the 2nd invention relates to means of protection against unauthorized use of the program operating in the mentioned data processing systems.

Предмет даного винаходу відноситься, більш конкретно, до способів захисту програм від неавторизованого використання на основі запам'ятовуючого пристрою або пристрою обробки і зберігання, причому цей пристрій звичайно реалізується у вигляді карти з мікрочипом або апаратним ключем на порту ОВ.The subject of this invention refers, more specifically, to methods of protecting programs from unauthorized use based on a memory device or a processing and storage device, and this device is usually implemented in the form of a card with a microchip or a hardware key on the OB port.

У вказаній галузі техніки основна проблема пов'язана з неавторизованим використанням програм користувачами, що не набули права на їхнє використання (ліцензію). Таке незаконне використання програм завдає явних збитків виробникам і продавцям програм, і/або будь-яким іншим особам, що використовують такі програми у своїх виробах. Щоб уникнути створення таких незаконних копій для захисту подібних програм було запропоновано ряд рішень на основі наявних технічних можливостей. 12 Так, відомий спосіб захисту, що полягає у використанні апаратного захисного елемента - фізичного пристрою, названого електронним захисним ключем-заглушкою ("допдіе"). Такий захисний ключ має гарантувати виконання програми тільки за наявності ключа. Мусимо, проте, констатувати, що це вирішення неефективне, бо його можна легко обійти. Зловмисник може за допомогою спеціальних прийомів, наприклад дизасемблювання, вилучити команди контролю захисного ключа. При цьому стає можливим виготовити незаконні копії модифікованих версій програми, що не мають жодного захисту. Крім того, це вирішення не можна поширити на всі програми з огляду на складність підключення більш ніж двох захисних ключів до однієї системи.In this field of technology, the main problem is related to the unauthorized use of programs by users who have not acquired the right to use them (license). Such illegal use of the programs causes clear damage to the manufacturers and sellers of the programs, and/or any other persons using such programs in their products. In order to avoid the creation of such illegal copies, a number of solutions have been proposed based on the available technical capabilities to protect such programs. 12 Yes, there is a known method of protection, which consists in the use of a hardware protective element - a physical device called an electronic protective key-plug ("add-on"). Such a security key should guarantee the execution of the program only in the presence of the key. However, we must state that this solution is ineffective, because it can be easily bypassed. An attacker can use special techniques, such as disassembly, to remove the security key control commands. At the same time, it becomes possible to make illegal copies of modified versions of the program that do not have any protection. Also, this solution cannot be extended to all applications due to the complexity of connecting more than two security keys to the same system.

Відповідно, задача, розв'язувана даним винаходом, полягає в усуненні зазначених недоліків шляхом створення способу захисту програми від неавторизованого доступу, що використовує запам'ятовуючий пристрій або пристрій обробки і зберігання, спеціально створений з цією метою, в тій мірі, в якій наявність такого с пристрою необхідна для повноцінної роботи програми. Ге)Accordingly, the problem solved by the present invention is to eliminate the mentioned disadvantages by creating a method of protecting the program from unauthorized access, which uses a memory device or a processing and storage device specially created for this purpose, to the extent that the presence of such with the device is necessary for the full operation of the program. Gee)

Розв'язання даної задачі досягнуте відповідно до винаходу створенням способу захисту (на основі щонайменше одного незадіяного пристрою, що має принаймні засоби запам'ятовування) від неавторизованого використання вразливої програми, що функціонує в системі обробки даних. Спосіб згідно з винаходом полягає в тому, що: о - У фазі захисту: с - створюють захищену програму: - за допомогою вибору у вихідному коді вразливої програми: -- - щонайменше однієї змінної, що в ході виконання вразливої програми частково визначає її стан, ча - ї щонайменше одного фрагмента, що містить щонайменше одну вибрану змінну, 3о - за допомогою створення вихідного коду захищеної програми на основі вихідного коду вразливої програми в модифікацією щонайменше одного вибраного фрагмента коду вразливої програми, причому ця модифікація така, що в ході виконання захищеної програми щонайменше одна вибрана змінна або одна копія вибраної змінної знаходиться в незадіяному пристрої, який тим самим перетворюється на пристрій, « - і за допомогою створення першої частини об'єктного коду захищеної програми на основі вихідного коду З 70 захищеної програми, причому перша частина об'єктного коду така, що в ході виконання захищеної програми с реалізується перша виконувана частина, що виконується в системі обробки даних, і щонайменше один фрагментThe solution to this problem is achieved according to the invention by creating a method of protection (on the basis of at least one idle device having at least storage means) against unauthorized use of a vulnerable program operating in a data processing system. The method according to the invention is that: o - In the protection phase: c - a protected program is created: - by selecting in the source code of the vulnerable program: -- - at least one variable that partially determines its state during the execution of the vulnerable program, parts of at least one fragment containing at least one selected variable, 3o - by creating the source code of a protected program based on the source code of a vulnerable program in the modification of at least one selected fragment of the code of a vulnerable program, and this modification is such that during the execution of the protected program at least one selected variable or one copy of the selected variable resides in an idle device, which thereby becomes a device, "- and by generating a first object code portion of the protected program based on the source code C 70 of the protected program, wherein the first portion of the object code code such that during the execution of the protected program c, the first executable part executed in c is implemented data processing system, and at least one fragment

Із» якої враховує, що принаймні одна змінна або одна копія змінної знаходиться у пристрої, - а у фазі використання, в ході якої виконується захищена програма: - у присутності пристрою, кожного разу, коли цього вимагає фрагмент першої виконуваної частини, використовують змінну або копію змінної, що знаходиться у пристрої таким чином, щоб указаний фрагмент 7 виконувався коректно й, отже, захищена програма була повнофункціональною; -І - тоді як за відсутності пристрою, незважаючи на запит одного фрагменту першої виконуваної частини, використовувати змінну або копію змінної, що знаходиться у пристрої, не забезпечується можливість коректної - відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена о 20 програма не є повнофункціональною.Of" which takes into account that at least one variable or one copy of the variable resides in the device - and in the use phase during which the protected program is executed: - in the presence of the device, whenever a fragment of the first executable part requires it, the variable or copy is used variable located in the device in such a way that the specified fragment 7 is executed correctly and, therefore, the protected program is fully functional; - And - while in the absence of the device, despite the request of one fragment of the first executable part, to use a variable or a copy of the variable located in the device, the possibility of a correct - response to the specified request is not ensured, so that at least the specified fragment is not executed correctly and, therefore , protected by 20, the program is not fully functional.

Відповідно до кращої форми реалізації способу за винаходом: щи - У фазі захисту: - модифікують захищену програму: - за допомогою вибору у вихідному коді захищеної програми: 25 - щонайменше одного алгоритму, що в ході виконання захищеної програми використовує щонайменше однуAccording to the best form of implementation of the method according to the invention: - In the protection phase: - modify the protected program: - by selecting in the source code of the protected program: 25 - at least one algorithm that during the execution of the protected program uses at least one

ГФ) вибрану змінну і дозволяє одержати щонайменше одну результуючу змінну, - ї щонайменше одного фрагмента, що містить принаймні один вибраний алгоритм, о - за допомогою модифікації принаймні одного вибраного фрагмента коду захищеної програми, причому ця модифікація така, що: 60 - в ході виконання захищеної програми перша виконувана частина виконується в системі обробки даних, а друга виконувана частина виконується у пристрої, що містить також засоби обробки, - щонайменше функціональна можливість принаймні одного вибраного алгоритму виконується за допомогою другої виконуваної частини, - щонайменше один вибраний алгоритм розкладається таким чином, що в ході виконання захищеної бо програми реалізуються за допомогою другої виконуваної частини декілька різноманітних етапів, як-от:GF) selected variable and allows obtaining at least one resulting variable, - and at least one fragment containing at least one selected algorithm, o - by means of modification of at least one selected fragment of the code of the protected program, and this modification is such that: 60 - during execution of the protected program, the first executable part is executed in a data processing system, and the second executable part is executed in a device that also contains processing means, - at least one functional possibility of at least one selected algorithm is executed with the help of the second executable part, - at least one selected algorithm is decomposed in such a way that during the execution of the protected program, several different stages are implemented with the help of the second executable part, such as:

- надання щонайменше однієї змінної для пристрою, - реалізація у пристрої функціональних можливостей алгоритму, виконуваного щонайменше над цією змінною, - ), можливо, надання щонайменше однієї результуючої змінної пристроєм для системи обробки даних, - щонайменше для одного вибраного алгоритму команди етапів визначені таким чином, що в ході виконання захищеної програми кожна команда етапу виконується за допомогою першої виконуваної частини і викликає у пристрої виконання етапу за допомогою другої виконуваної частини, - причому впорядкування команд етапів вибране серед ансамблю впорядкувань, що дозволяють виконання /о захищеної програми, - і за допомогою створення: - першої частини об'єктного коду захищеної програми, причому перша частина об'єктного коду така, що в ході виконання захищеної програми команди етапів виконуються відповідно до вибраного впорядкування, - і другої частини об'єктного коду захищеної програми, причому друга частина об'єктного коду така, що /5 Після завантаження у незадіяний пристрій, у ході виконання захищеної програми реалізується друга виконувана частина, за допомогою якої виконуються етапи, запуск яких було викликано першою виконуваною частиною; - і завантажують другу частину об'єктного коду в незадіяний пристрій з одержанням пристрою, - а у фазі використання: - у присутності пристрою, кожного разу, коли цього вимагає команда етапу, що є у фрагменті першої ВиИконуваної частини, виконують відповідний етап у пристрої таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма була повнофункціональною; - тоді як за відсутності пристрою, незважаючи на запит одного фрагмента першої виконуваної частини на запуск виконання етапу у пристрої, не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма не є повнофункціональною. с- provision of at least one variable for the device, - implementation in the device of the functionality of the algorithm executed on at least this variable, - ), possibly provision of at least one resulting variable by the device for the data processing system, - for at least one selected algorithm, stage commands are defined as follows, that during the execution of the protected program, each stage command is executed by means of the first executable part and causes the device to execute the stage by means of the second executable part, - and the ordering of the stage commands is selected from among the ensemble of orders that allow the execution /o of the protected program, - and by creating : - of the first part of the object code of the protected program, and the first part of the object code is such that during the execution of the protected program, stage commands are executed in accordance with the selected order, - and of the second part of the object code of the protected program, and the second part of the object object code such that /5 After loading in an idle device, during the execution of the protected program, a second executable part is implemented, with the help of which the stages, the launch of which was caused by the first executable part, are executed; - and load the second part of the object code into the idle device with the receipt of the device - and in the use phase: - in the presence of the device, whenever the stage command contained in the fragment of the first Executable part requires it, perform the corresponding stage in the device as follows so that the specified fragment is executed correctly and, therefore, the protected program is fully functional; - while in the absence of the device, despite the request of one fragment of the first executable part to start the execution of the stage in the device, the possibility of a correct response to the specified request is not ensured, so that at least the specified fragment is not executed correctly and, therefore, the protected program is not fully functional. with

Відповідно до іншої кращої форми реалізації способу згідно з винаходом: - У фазі захисту: і) - визначають: - набір елементарних функцій, що його елементарні функції можуть бути виконані у пристрої, який має також засоби обробки, «о зо - і набір елементарних команд для зазначеного набору елементарних функцій, причому вказані елементарні команди можуть бути виконані в системі обробки даних, викликаючи виконання у пристрої елементарних со функцій; «- - конструюють засоби експлуатації, що дозволяють перетворити незадіяний пристрій на пристрій, здатний виконувати елементарні функції зі згаданого набору, причому виконання зазначених елементарних функцій ї- з5 Викликається виконанням елементарних команд у системі обробки даних; ча - модифікують захищену програму: - за допомогою вибору у вихідному коді захищеної програми: - щонайменше одного алгоритму, який у ході виконання захищеної програми використовує принаймні одну вибрану змінну і дозволяє одержати щонайменше одну результуючу змінну, « - ї щонайменше одного фрагмента, що містить принаймні один вибраний алгоритм, в с - за допомогою модифікації щонайменше одного вибраного фрагмента коду захищеної програми, причому . зазначена модифікація така, що: а - в ході виконання захищеної програми перша виконувана частина виконується в системі обробки даних, а друга виконувана частина виконується у пристрої, - щонайменше функціональна можливість щонайменше одного вибраного алгоритму виконується за -І допомогою другої виконуваної частини, - щонайменше один вибраний алгоритм розкладається таким чином, що в ході виконання захищеноїAccording to another better form of implementation of the method according to the invention: - In the protection phase: i) - determine: - a set of elementary functions, that its elementary functions can be performed in a device that also has means of processing, "o zo - and a set of elementary commands for the specified set of elementary functions, and the specified elementary commands can be executed in the data processing system, causing the execution of elementary functions in the device; "- - construct means of operation that allow turning an idle device into a device capable of performing elementary functions from the mentioned set, and the execution of the specified elementary functions is caused by the execution of elementary commands in the data processing system; cha - modify the protected program: - by selecting in the source code of the protected program: - at least one algorithm that, during the execution of the protected program, uses at least one selected variable and allows to receive at least one resulting variable, "- at least one fragment containing at least one selected algorithm, in c - by means of modification of at least one selected fragment of the code of the protected program, and . the specified modification is such that: a - during the execution of the protected program, the first executable part is executed in the data processing system, and the second executable part is executed in the device, - at least the functional possibility of at least one selected algorithm is executed with the help of the second executable part, - at least one the selected algorithm is decomposed in such a way that during the execution of the protected

Ш- програми вказаний алгоритм виконується за допомогою другої виконуваної частини із застосуванням - елементарних функцій, - щонайменше для одного вибраного алгоритму елементарні команди інтегруються у вихідний код захищеної со програми таким чином, що в ході виконання захищеної програми кожна елементарна команда виконується заШ- program, the specified algorithm is executed with the help of the second executable part using - elementary functions, - for at least one selected algorithm, elementary commands are integrated into the source code of the protected program in such a way that during the execution of the protected program, each elementary command is executed according

Ф допомогою першої виконуваної частини і викликає у пристрої виконання, за допомогою другої виконуваної частини, елементарної функції, - причому впорядкування елементарних команд вибирається серед ансамблю впорядкувань, що дозволяють ВИиКОНання захищеної програми, - і за допомогою створення: - першої частини об'єктного коду захищеної програми, причому перша частина об'єктного коду така, що в (Ф, ході виконання захищеної програми елементарні команди виконуються відповідно до вибраного впорядкування, ка - і другої частини об'єктного коду захищеної програми, що містить засоби експлуатації, причому друга частина об'єктного коду така, що після завантаження в незадіяний пристрій, у ході виконання захищеної бо програми реалізується друга виконувана частина, за допомогою якої виконуються елементарні функції, запуск яких було викликано першою виконуваною частиною; - і завантажують другу частину об'єктного коду в незадіяний пристрій з одержанням пристрою, - а у фазі використання: - у присутності пристрою, кожного разу, коли цього вимагає елементарна команда, що міститься у фрагменті 65 першої виконуваної частини, виконують відповідну елементарну функцію у пристрої таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма була повнофункціональною;Ф with the help of the first executable part and causes the device to execute, with the help of the second executable part, an elementary function, - and the arrangement of elementary commands is selected from among the ensemble of arrangements that allow EXECUTION of the protected program, - and by creating: - the first part of the object code of the protected program, and the first part of the object code is such that in (F, during the execution of the protected program, the elementary commands are executed in accordance with the selected arrangement, and the second part of the object code of the protected program, which contains means of operation, and the second part of the program object code in such a way that after loading it into an idle device, during the execution of the protected program, a second executable part is implemented, with the help of which elementary functions are performed, the launch of which was caused by the first executable part; - and the second part of the object code is loaded into the idle device with upon receipt of the device, - and in the phase of use: - in the presence of the device, whenever required by the elementary command contained in the fragment 65 of the first executable part, perform the corresponding elementary function in the device in such a way that the specified fragment is executed correctly and, therefore, the protected program is fully functional;

- тоді як за відсутності пристрою, незважаючи на запит фрагмента першої виконуваної частини на запуск виконання у пристрої елементарної функції, не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма не є повнофункціональною.- while in the absence of the device, despite the request of the fragment of the first executable part to start the execution of the elementary function in the device, the possibility of a correct response to the specified request is not ensured, so that at least the specified fragment is not executed correctly and, therefore, the protected program is not fully functional.

Відповідно до ще однієї кращої форми реалізації способу згідно з винаходом: - У фазі захисту: - визначають: - набір елементарних функцій, елементарні функції якого можуть бути виконані у пристрої, 70 -ї набір елементарних команд для згаданого набору елементарних функцій, причому зазначені елементарні команди можуть бути виконані в системі обробки даних, викликаючи виконання у пристрої елементарних функцій; - конструюють засоби експлуатації, що дозволяють пристрою виконувати елементарні функції з указаного набору, причому виконання зазначених елементарних функцій викликається виконанням елементарних команд у системі обробки даних; - і модифікують захищену програму: - за допомогою вибору у вихідному коді захищеної програми щонайменше одного етапу, що в ході виконання захищеної програми здійснює функціональну можливість алгоритму, - за допомогою модифікації щонайменше одного вибраного фрагмента коду захищеної програми, причому 2о зазначена модифікація така, що: - щонайменше один вибраний етап розкладається таким чином, що в ході виконання захищеної програми вказаний етап виконується за допомогою другої виконуваної частини із застосуванням елементарних функцій, - щонайменше для одного вибраного етапу елементарні команди інтегруються у вихідний код захищеної програми таким чином, що в ході виконання захищеної програми кожна елементарна команда виконується за с допомогою першої виконуваної частини і викликає у пристрої виконання, за допомогою другої виконуваної частини, елементарної функції, і) - й упорядкування елементарних команд вибирається в ансамблі впорядкувань, що дозволяють виконання захищеної програми, - і за допомогою створення: - першої частини об'єктного коду захищеної програми, причому перша частина об'єктного коду така що в (о зо Ході виконання захищеної програми елементарні команди виконуються відповідно до вибраного впорядкування, - І другої частини об'єктного коду захищеної програми, що містить також засоби експлуатації, причому со друга частина об'єктного коду така, що після завантаження у пристрій, у ході виконання захищеної програми «- реалізується друга виконувана частина, за допомогою якої виконуються елементарні функції, запуск яких було викликано першою виконуваною частиною, - - а у фазі використання: ї- - у присутності пристрою, кожного разу, коли цього вимагає елементарна команда, що міститься в частині першої виконуваної частини, виконують відповідну елементарну функцію у пристрої таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма була повнофункціональною; - тоді як за відсутності пристрою, незважаючи на запит одного фрагмента першої виконуваної частини на «According to another better form of implementation of the method according to the invention: - In the protection phase: - determine: - a set of elementary functions, the elementary functions of which can be performed in the device, the 70th set of elementary commands for the mentioned set of elementary functions, and the specified elementary commands can be performed in the data processing system, causing elementary functions to be performed in the device; - construct means of operation that allow the device to perform elementary functions from the specified set, and the execution of the specified elementary functions is caused by the execution of elementary commands in the data processing system; - and modify the protected program: - by selecting at least one stage in the source code of the protected program, which during the execution of the protected program implements the functional capability of the algorithm, - by modifying at least one selected fragment of the code of the protected program, and 2o the specified modification is such that: - at least one selected stage is decomposed in such a way that during the execution of the protected program, the specified stage is executed with the help of the second executable part using elementary functions, - for at least one selected stage, elementary commands are integrated into the source code of the protected program in such a way that during the execution of the protected of the program, each elementary command is executed with the help of the first executable part and causes the device to execute, with the help of the second executable part, an elementary function, i) - and the arrangement of the elementary commands is selected in the ensemble of arrangements that allow the execution of the protected program, - and with and by creating: - the first part of the object code of the protected program, and the first part of the object code is such that during the execution of the protected program, the elementary commands are executed according to the selected arrangement, which also contains means of operation, and the second part of the object code is such that after loading into the device, during the execution of the protected program "- the second executable part is implemented, with the help of which elementary functions are performed, the launch of which was caused by the first executable part, - - and in the use phase: і- - in the presence of the device, whenever required by the elementary command contained in the part of the first executable part, perform the corresponding elementary function in the device in such a way that the specified fragment is executed correctly and, therefore, the protected program was fully functional; - while in the absence of the device, despite the request of one fragment of the first executable part on "

Запуск виконання у пристрої елементарної функції, не забезпечується можливість коректної відповіді на з с вказаний запит, так що принаймні вказаний фрагмент не виконується коректно, й, отже, захищена програма не є повнофункціональною. ;» Відповідно до наступної кращої форми реалізації способу згідно з винаходом у фазі захисту визначають: - щонайменше одну характеристику виконання програми, яка може бути проконтрольована принаймні частково у пристрої, -І - щонайменше один критерій, який має виконуватися щонайменше для однієї характеристики виконання програми,Starting the execution of an elementary function in the device does not ensure the possibility of a correct response to the specified request, so that at least the specified fragment is not executed correctly, and, therefore, the protected program is not fully functional. ;" According to the next best form of implementation of the method according to the invention in the protection phase, the following are determined: - at least one characteristic of the program execution, which can be controlled at least partially in the device, - AND - at least one criterion that must be fulfilled for at least one characteristic of the program execution,

Ш- - засоби детектування, що їх слід застосовувати у пристрої та які дозволяють виявити, що принаймні одна - характеристика виконання програми не відповідає щонайменше одному відповідному критерію, - і засоби примусу, що їх слід застосовувати у пристрої та які дозволяють проінформувати систему обробки со даних і/або модифікувати виконання програми, поки не дотримується хоча б один критерій;Ш- - means of detection, which should be applied in the device and which allow to detect that at least one - characteristic of the program execution does not meet at least one relevant criterion, - and means of coercion, which should be applied in the device and which allow to inform the data processing system and/or modify program execution until at least one criterion is met;

Ф - конструюють засоби експлуатації, що дозволяють пристрою задіяти засоби детектування й засоби примусу; - і модифікують захищену програму: - за допомогою вибору щонайменше однієї характеристики виконання контрольованої програми серед характеристик виконання, які можуть бути проконтрольовані, - за допомогою вибору щонайменше одного критерію, який має виконуватися принаймні для однієї вибраної (Ф, характеристики виконання програми, ка - за допомогою вибору у вихідному коді захищеної програми елементарних функцій, для яких варто контролювати щонайменше одну характеристику виконання контрольованої програми, во - за допомогою модифікації щонайменше одного вибраного фрагмента коду захищеної програми, причому вказана модифікація така, що в ході виконання захищеної програми щонайменше одна вибрана характеристика виконання контролюється за допомогою другої виконуваної частини і недотримання критерію призводить до інформування системи обробки даних і/або до модифікації виконання захищеної програми, - ії за допомогою створення другої частини об'єктного коду захищеної програми, що містить засоби 65 експлуатації, що задіюють також засоби детектування й засоби примусу, причому друга частина об'єктного коду така, що після завантаження у пристрій, у ході виконання захищеної програми принаймні одна характеристика виконання програми контролюється і недотримання критерію призводить до інформування системи обробки даних і/або до модифікації виконання захищеної програми, - а у фазі використання: - у присутності пристрою: - якщо всіх критеріїв, що відповідають усім контрольованим характеристикам виконання всіх модифікованих фрагментів захищеної програми, дотримано, припускають номінальне функціонування зазначених фрагментів захищеної програми й, отже, номінальне функціонування захищеної програми, - а якщо принаймні одного з критеріїв, що відповідають характеристиці контрольованого виконання одного 7/0 фрагмента захищеної програми, не дотримано, інформують систему обробки даних про зазначене недотримання і/або модифікують функціонування фрагмента захищеної програми таким чином, щоб функціонування захищеної програми було змінене.F - design means of operation, which allow the device to use detection means and means of coercion; - and modify the protected program: - by selecting at least one performance characteristic of the controlled program among the performance characteristics that can be controlled, - by selecting at least one criterion that must be fulfilled for at least one selected (F, program performance characteristics, ka - by by selecting elementary functions in the source code of the protected program for which it is worth monitoring at least one characteristic of the execution of the controlled program, i.e. by modifying at least one selected fragment of the code of the protected program, and the specified modification is such that during the execution of the protected program at least one selected characteristic of the execution is controlled by means of the second executable part and non-compliance with the criterion leads to informing the data processing system and/or to modifying the execution of the protected program, i.e. by creating the second part of the object code of the protected program, which contains means 65 operation, which also involve means of detection and means of coercion, and the second part of the object code is such that after loading into the device, during the execution of the protected program, at least one characteristic of the execution of the program is controlled and non-compliance with the criterion leads to informing the data processing system and/or to modifications of the execution of the protected program - and in the use phase: - in the presence of the device: - if all the criteria corresponding to all the controlled characteristics of the execution of all modified fragments of the protected program are met, the nominal functioning of the specified fragments of the protected program and, therefore, the nominal functioning of the protected program are assumed , - and if at least one of the criteria corresponding to the characteristic of the controlled execution of one 7/0 fragment of the protected program is not observed, inform the data processing system about the specified non-compliance and/or modify the functioning of the fragment of the protected program in such a way that the function the protection of a protected program has been changed.

Відповідно до варіанта здійснення способу згідно з винаходом: - У фазі захисту: - визначають: - як характеристику виконання програми, яка може бути проконтрольована, - змінну для кількісного контролю використання однієї функціональної можливості програми, - як критерій, що його слід дотримуватися, - щонайменше одне порогове значення, пов'язане з кожною змінною для кількісного контролю, - ії засоби поновлення, що дозволяють поновити принаймні одну змінну для кількісного контролю; - конструюють засоби експлуатації, що дозволяють пристрою застосовувати засоби поновлення; - і модифікують захищену програму: - за допомогою вибору як характеристики виконання контрольованої програми щонайменше однієї змінної для кількісного контролю використання однієї функціональної можливості програми, сч - за допомогою вибору: - щонайменше однієї функціональної можливості захищеної програми, використання якої можна і) проконтролювати з використанням змінної для кількісного контролю, - щонайменше однієї змінної для кількісного контролю, яка служить для кількісної характеристики використання згаданої функціональної можливості, Ге зо - щонайменше одного порогового значення, пов'язаного з вибраною змінною для кількісного контролю і відповідного межі використання згаданої функціональної можливості, со - Ї щонайменше одного методу поновлення значення вказаної змінної для кількісного контролю залежно від «- використання згаданої функціональної можливості, - ії за допомогою модифікації принаймні одного вибраного фрагмента коду захищеної програми, причому ї-According to an embodiment of the method according to the invention: - In the protection phase: - defined: - as a characteristic of the program execution that can be controlled, - a variable for quantitative control of the use of one functionality of the program, - as a criterion that should be followed, - at least one threshold value associated with each variable for quantitative control, and means of renewal, allowing to renew at least one variable for quantitative control; - design means of operation that allow the device to use means of renewal; - and modify the protected program: - by selecting as a characteristic of the controlled program execution at least one variable for quantitative control of the use of one functionality of the program, sch - by selecting: - at least one functionality of the protected program, the use of which can be i) controlled using a variable for quantitative control, - at least one variable for quantitative control, which serves to quantitatively characterize the use of the mentioned functionality, Gezo - at least one threshold value associated with the selected variable for quantitative control and the corresponding limit of the use of the mentioned functionality, so - Y at least one method of updating the value of the specified variable for quantitative control depending on "- the use of the mentioned functionality, - and by means of the modification of at least one selected fragment of the code of the protected program, and

Зз5 Вказана модифікація така, що в ході виконання захищеної програми змінна для кількісного контролю ї- поновлюється за допомогою другої виконуваної частини, залежно від використання зазначеної функціональної можливості, і враховується щонайменше одне перевищення порогового значення, - а у фазі використання, в присутності пристрою, в разі, коли виявлено принаймні одне перевищення порогового значення, що відповідає щонайменше одній межі використання, інформують про це систему обробки « даних або модифікують функціонування фрагмента захищеної програми, таким чином, щоб функціонування з с захищеної програми було змінене.Зз5 The specified modification is such that during the execution of the protected program, the variable for quantitative control i- is updated with the help of the second executable part, depending on the use of the specified functionality, and at least one exceeding of the threshold value is taken into account - and in the use phase, in the presence of the device, in in the event that at least one exceeding of the threshold value corresponding to at least one limit of use is detected, the data processing system is informed about it or the functioning of the fragment of the protected program is modified in such a way that the functioning of the protected program is changed.

Відповідно до іншого варіанта здійснення способу згідно з винаходом: ;» - у фазі захисту: - визначають: - декілька відповідних порогових значень принаймні для однієї змінної для кількісного контролю, -І - Ї різноманітні засоби примусу, що відповідають кожному зі вказаних порогів; - і модифікують захищену програму:According to another variant of the implementation of the method according to the invention: - in the protection phase: - determine: - several corresponding threshold values for at least one variable for quantitative control, - AND - І various means of coercion corresponding to each of the indicated thresholds; - and modify the protected program:

Ш- - за допомогою вибору у вихідному коді захищеної програми щонайменше однієї змінної для кількісного - контролю, з якою мають бути пов'язані декілька порогових значень, що відповідають різноманітним межам 5р Використання функціональної можливості, со - за допомогою вибору принаймні двох порогових значень, пов'язаних з вибраною змінною для кількісногоШ- - by selecting in the source code of the protected program at least one variable for quantitative - control, with which several threshold values corresponding to various limits must be associated 5r Use of functionality, со - by selecting at least two threshold values, associated with the selected variable for quantitative

Ф контролю, - ії за допомогою модифікації принаймні одного вибраного фрагмента коду захищеної програми, причому вказана модифікація така, що в ході виконання захищеної програми перевищення різноманітних порогових ов значень враховуються за допомогою другої виконуваної частини різноманітними способами, - а у фазі використання: (Ф, - у присутності пристрою: ка - в разі, коли виявлене перевищення першого порогового значення, дають команду захищеній програмі не використовувати надалі відповідну функціональну можливість, 60 - а в разі, коли виявлене перевищення другого порогового значення, роблять нездійсненною відповідну функціональну можливість і/або щонайменше частину захищеної програми.F control, - by means of modification of at least one selected fragment of the code of the protected program, and the specified modification is such that during the execution of the protected program, exceeding various threshold values are taken into account with the help of the second executable part in various ways, - and in the use phase: (F, - in the presence of the device: ka - in the event that the first threshold value is exceeded, command the protected program not to use the corresponding functional option in the future, 60 - and in the case that the second threshold value is exceeded, make the corresponding functional option impossible and/or at least part of a protected program.

Відповідно до подальшого варіанту здійснення способу згідно з винаходом: - У фазі захисту: - визначають засоби перезавантаження, що дозволяють принаймні одне додаткове використання 65 щонайменше однієї функціональної можливості програми, контрольованої за допомогою змінної для кількісного контролю;According to a further embodiment of the method according to the invention: - In the protection phase: - reset means are defined, allowing at least one additional use 65 of at least one functionality of the program controlled by means of a variable for quantitative control;

- конструюють засоби експлуатації, що дозволяють також пристрою задіяти засоби перезавантаження; - і модифікують захищену програму: - за допомогою вибору у вихідному коді захищеної програми принаймні однієї змінної для кількісного- design the means of operation, which also allow the device to use the means of rebooting; - and modify the protected program: - by selecting in the source code of the protected program at least one variable for quantitative

Контролю, яка дозволяє обмежити використання однієї функціональної можливості, для якої існує можливість дозволу щонайменше на одне додаткове використання, - і за допомогою модифікації принаймні одного вибраного фрагмента, причому вказана модифікація така, що у фазі перезавантаження щонайменше одне додаткове використання щонайменше однієї функціональної можливості, що відповідає одній вибраній змінній для кількісного контролю, може бути дозволено, 70 - а у фазі перезавантаження: - поновлюють принаймні одну вибрану змінну для кількісного контролю і принаймні одне відповідне порогове значення так, щоб дозволити щонайменше одне додаткове використання функціональної можливості. Відповідно до варіанта здійснення способу згідно з винаходом: - У фазі захисту: - визначають: - як характеристику виконання програми, яка може бути проконтрольована, - профіль використання програми, - і як критерій, що його слід дотримуватися, - щонайменше одну ознаку виконання програми; - і модифікують захищену програму: - за допомогою вибору як характеристики виконання контрольованої програми принаймні одного профілюA control that allows limiting the use of one functionality for which there is a possibility of allowing at least one additional use - and by modifying at least one selected fragment, and said modification is such that in the restart phase at least one additional use of at least one functionality that corresponds to one selected variable for quantitative control, may be allowed, 70 - and in the restart phase: - renew at least one selected variable for quantitative control and at least one corresponding threshold value so as to allow at least one additional use of the functionality. According to the embodiment of the method according to the invention: - In the protection phase: - determine: - as a characteristic of the program execution that can be controlled, - a profile of the use of the program, - and as a criterion that should be followed, - at least one feature of the program execution; - and modify the protected program: - by selecting at least one profile as the performance characteristics of the controlled program

Використання програми, - за допомогою вибору принаймні однієї ознаки виконання програми, що її має дотримуватися щонайменше один профіль використання, - ії за допомогою модифікації принаймні одного вибраного фрагмента коду захищеної програми, причому зазначена модифікація така, що в ході виконання захищеної програми друга виконувана частина дотримується сUsing the program, - by selecting at least one feature of program execution that at least one usage profile must comply with, - and by modifying at least one selected piece of code of the protected program, and said modification is such that during the execution of the protected program, the second executable part complies with

Всіх вибраних ознак виконання, - а у фазі використання, в присутності пристрою в разі, якщо виявлено, що не дотримується хоча б одна і) ознака виконання, інформують про це систему обробки даних і/або модифікують функціонування частини захищеної програми так, щоб функціонування захищеної програми було змінено.All selected features of performance - and in the use phase, in the presence of the device, if it is found that at least one i) feature of performance is not observed, the data processing system is informed about this and/or the functioning of a part of the protected program is modified so that the functioning of the protected program has been changed.

Відповідно до подальшого варіанта здійснення способу згідно з винаходом Ге зо - У фазі захисту: - визначають: со - набір інструкцій, інструкції зі складу якого можуть бути виконані у пристрої, «- - набір команд інструкцій для вказаного набору інструкцій, причому команди інструкцій можуть бути виконані в системі обробки даних, викликаючи у пристрої виконання інструкцій, ї- - як профіль використання - зчеплення інструкцій, ї- - якознаку виконання - бажане зчеплення для виконання інструкцій, - як засоби детектування - засоби, що дозволяють виявити, що зчеплення інструкцій не відповідає бажаному, - як засоби примусу - засоби, що дозволяють проінформувати систему обробки даних і/або модифікувати функціонування фрагмента захищеної програми, якщо зчеплення інструкцій не відповідає бажаному; « - конструюють засоби експлуатації що дозволяють пристрою виконувати інструкції з набору інструкцій, з с причому виконання вказаних інструкцій викликається виконанням команд інструкцій у системі обробки даних; - Ї модифікують захищену програму: і ;» - за допомогою модифікації щонайменше одного вибраного фрагмента коду захищеної програми: - за допомогою перетворення елементарних функцій у інструкції, - за допомогою завдання зчеплення, що його мають дотримуватися щонайменше деякі з інструкцій під час -І їхнього виконання у пристрої, - ії за допомогою перетворення елементарних команд на команди інструкцій, що відповідаютьAccording to a further variant of the implementation of the method according to Gezo's invention - In the protection phase: - define: co - a set of instructions, the instructions of which can be executed in the device, "- - a set of instruction commands for the indicated set of instructions, and the instruction commands can be executed in the data processing system, causing the device to execute instructions, і- - as a usage profile - instruction coupling, і- - as an execution feature - the desired coupling for the execution of instructions, - as means of detection - means that allow you to detect that the coupling of instructions does not match desired, - as means of coercion - means that make it possible to inform the data processing system and/or modify the functioning of a fragment of the protected program, if the coupling of instructions does not correspond to the desired; "- construct means of operation that allow the device to execute instructions from a set of instructions, with the execution of the specified instructions being triggered by the execution of instruction commands in the data processing system; - It is modified by a protected program: and ;" - by modifying at least one selected fragment of the code of the protected program: - by converting elementary functions into instructions, - by means of a coupling task that must be followed by at least some of the instructions during their execution in the device, - and by converting elementary functions commands to corresponding instruction commands

Ш- використовуваним інструкціям, - - а у фазі використання, в присутності пристрою, в разі, якщо виявлено, що зчеплення виконуваних у 5р пристрої інструкцій не відповідає бажаному, інформують про це систему обробки даних і/або модифікують со функціонування фрагмента захищеної програми так, щоб функціонування захищеної програми було змінено.Ш- used instructions, - - and in the use phase, in the presence of the device, if it is found that the coupling of the instructions executed in the 5r device does not correspond to the desired one, the data processing system is informed about this and/or the functioning of the protected program fragment is modified so that so that the functioning of the protected program is changed.

Ф Відповідно до іншої кращої форми реалізації способу згідно з винаходом: - У фазі захисту: - визначають: - як набір інструкцій - набір інструкцій, у якому принаймні деякі інструкції працюють на регістрах і використовують щонайменше один операнд для видачі результату, (Ф, - щонайменше для частини інструкцій, що працюють на регістрах: ка - частину, що задає функціональну можливість інструкції, - їчастину, що задає бажане зчеплення для виконання інструкцій і містить бітові поля, які відповідають: во - полю ідентифікації інструкції, - і для кожного операнда інструкції: - полю прапора, - полю ідентифікації, передбаченої для операнда, - для кожного регістра, що належить до засобів експлуатації і використовуваного набору інструкцій, - поле 65 передбаченої ідентифікації, в якому автоматично запам'ятовується ідентифікація останньої інструкції, що повернула свій результат у вказаний регістр,Ф According to another better form of implementation of the method according to the invention: - In the protection phase: - defined: - as a set of instructions - a set of instructions in which at least some instructions work on registers and use at least one operand to issue a result, (Ф, - at least for the part of the instructions that work on registers: ka - the part that specifies the functional possibility of the instruction, - the part that specifies the desired coupling for the execution of the instructions and contains bit fields that correspond to: in - the identification field of the instruction, - and for each operand of the instruction: - the field of the flag, - the field of identification provided for the operand, - for each register belonging to the means of operation and the set of instructions used, - field 65 of the provided identification, in which the identification of the last instruction that returned its result to the specified register is automatically remembered ,

- як засоби детектування - засоби, що дозволяють під час виконання інструкції для кожного операнда, коли цього вимагає поле прапора, контролювати рівність між полем генерованої ідентифікації, що відповідає регістру, використовуваному згаданим операндом, і полем передбаченої ідентифікації початкової адреси цього операнда, - Її як засоби примусу - засоби, що дозволяють модифікувати результат виконання інструкцій, якщо принаймні одна з контрольованих рівностей хибна.- as means of detection - means that allow, during the execution of the instruction for each operand, when the flag field requires it, to control the equality between the field of the generated identification corresponding to the register used by the mentioned operand and the field of the predicted identification of the starting address of this operand, - Its as means of coercion - means that allow you to modify the result of the execution of instructions if at least one of the controlled equalities is false.

Відповідно до ще однієї кращої форми реалізації способу згідно з винаходом: - У фазі захисту: 70 - визначають: - як команду запуску - елементарну команду або команду інструкції, - як залежну функцію - елементарну функцію або інструкцію, - як настановний параметр, - щонайменше один аргумент для команди запуску, який відповідає, щонайменше частково, інформації, переданій системою обробки даних на пристрій, щоб викликати запуск відповідної /5 залежної функції - метод перейменування настановних параметрів, що дозволяє перейменувати настановні параметри, щоб одержати команди запуску з перейменованими настановними параметрами, - і засоби відновлення, призначені для застосування у пристрої у фазі використання і які дозволяють знайти залежну функцію, що її необхідно виконати, виходячи з перейменованого настановного параметра; - конструюють засоби експлуатації, що дозволяють пристрою задіяти засоби відновлення; - і модифікують захищену програму: - за допомогою вибору у вихідному коді захищеної програми команди запуску, - за допомогою модифікації принаймні одного вибраного фрагменту коду захищеної програми шляхом перейменування настановних параметрів вибраних команд запуску, щоб приховати ідентичність відповідних с г Залежних функцій, о - і за допомогою створення: - першої частини об'єктного коду захищеної програми, причому перша частина об'єктного коду така, що в ході виконання захищеної програми виконуються команди запуску з перейменованими настановними параметрами, «о зо - і другої частини об'єктного коду захищеної програми, що містить засоби експлуатації, які використовують також засоби відновлення, причому друга частина об'єктного коду така, що після завантаження у пристрій, у со ході виконання захищеної програми ідентичність залежних функцій, виконання яких викликано першою «- виконуваною частиною, відновляються за допомогою другої виконуваної частини, а залежні функції виконуються за допомогою другої виконуваної частини, в. - а у фазі використання: ї- - у присутності пристрою, кожного разу, коли цього вимагає команда запуску з перейменованими настановними параметрами, що міститься у фрагменті першої виконуваної частини, відновлюють у пристрої ідентичність відповідної залежної функції і виконують її так, щоб указаний фрагмент виконувався коректно й, отже, захищена програма була повнофункціональною; « - тоді як за відсутності пристрою, незважаючи на запит фрагмента першої виконуваної частини на запуск ета) с виконання у пристрої залежної функції, не забезпечується можливість коректної відповіді на вказаний запит,According to another better form of implementation of the method according to the invention: - In the protection phase: 70 - are defined: - as a start command - an elementary command or an instruction command - as a dependent function - an elementary function or an instruction - as a setting parameter - at least one an argument to the run command that corresponds, at least in part, to the information passed by the data processing system to the device to cause the corresponding /5 dependent function to run - a method of renaming the settable parameters that allows the settable parameters to be renamed to produce run commands with renamed settable parameters, - and recovery means intended to be applied to the device in the use phase and which allow finding a dependent function that needs to be performed based on the renamed configuration parameter; - construct means of operation that allow the device to use recovery means; - and modify the protected program: - by selecting in the source code of the protected program the launch command, - by modifying at least one selected fragment of the code of the protected program by renaming the configuration parameters of the selected launch commands to hide the identity of the corresponding c h Dependent Functions, o - and by by creating: - the first part of the object code of the protected program, and the first part of the object code is such that during the execution of the protected program, launch commands with renamed setting parameters are executed, "o zo - and the second part of the object code of the protected program, containing means of operation, which also use means of recovery, and the second part of the object code is such that after loading into the device, during the execution of the protected program, the identity of the dependent functions, the execution of which is caused by the first "- executable part, are restored with the help of the second executable parts, and dependent functions are performed according to with the help of the second executable part, c. - and in the use phase: і- - in the presence of the device, whenever it is required by the run command with renamed configuration parameters contained in the fragment of the first executable part, restore the identity of the corresponding dependent function in the device and execute it so that the specified fragment is executed correctly and, therefore, the protected program was fully functional; " - while in the absence of the device, despite the request of the fragment of the first executable part to start eta) with the execution of the dependent function in the device, the possibility of a correct response to the specified request is not ensured,

Й так що принаймні вказаний фрагмент не виконується коректно, й, отже, захищена програма не є и?» повнофункціональною.And so that at least the specified fragment is not executed correctly, and, therefore, the protected program is not and? fully functional.

Відповідно до одного з варіантів реалізації способу згідно з винаходом: - У фазі захисту: -І - визначають принаймні для однієї залежної функції сімейство алгоритмічно еквівалентних залежних функцій, які викликаються командами запуску, що їхні перейменовані настановні параметри є різноманітними;According to one of the variants of the implementation of the method according to the invention: - In the protection phase: - AND - define for at least one dependent function a family of algorithmically equivalent dependent functions, which are called by the launch commands, that their renamed setting parameters are different;

Ш- - і модифікують захищену програму: - - за допомогою вибору у вихідному коді захищеної програми щонайменше однієї команди запуску з перейменованими настановними параметрами, со - ії за допомогою модифікації принаймні одного вибраного фрагмента коду захищеної програми шляхомШ- - and modify the protected program: - - by selecting in the source code of the protected program at least one launch command with renamed configuration parameters, so - and by modifying at least one selected fragment of the code of the protected program by

Ф заміни щонайменше перейменованих настановних параметрів команди запуску з вибраним набором настановних параметрів на інші перейменовані настановні параметри, що викликає запуск залежної функції, з того ж сімейства.Ф replacing at least the renamed set parameters of the launch command with the selected set of set parameters with other renamed set parameters that causes the dependent function to run, from the same family.

Відповідно до варіанта реалізації спосіб згідно з винаходом включає: - у фазі захисту визначення, щонайменше для однієї залежної функції, сімейства алгоритмічно еквівалентнихAccording to the implementation variant, the method according to the invention includes: - in the protection phase, the determination, for at least one dependent function, of a family of algorithmically equivalent

Ф) залежних функцій ка - шляхом зчеплення поля шумів з інформацією, що визначає ту функціональну частину залежної функції, яка виконується у пристрої, во - або шляхом використання поля ідентифікації інструкції й поля ідентифікації, передбаченої для операнда.Ф) dependent functions ka - by combining the noise field with information that defines the functional part of the dependent function that is performed in the device, or by using the identification field of the instruction and the identification field provided for the operand.

Відповідно до варіанта реалізації способу згідно з винаходом: - у фазі захисту визначають: - як метод перейменування настановних параметрів - метод кодування для кодування настановних параметрів, 65 - і як засоби відновлення - засоби, що застосовують метод декодування для декодування перейменованих настановних параметрів і відновлення ідентичності залежних функцій, що їх слід виконати у пристрої.According to the implementation variant of the method according to the invention: - in the protection phase, the following are defined: - as a method of renaming the set parameters - an encoding method for encoding the set parameters, 65 - and as recovery means - means that apply a decoding method to decode the renamed set parameters and restore the identity dependent functions that should be performed in the device.

Відповідно до іншої кращої форми реалізації способу згідно з винаходом: - У фазі захисту: - модифікують захищену програму: - за допомогою вибору у вихідному коді захищеної програми принаймні одного умовного переходу, виконуваного щонайменше в одному вибраному алгоритмі, - за допомогою модифікації принаймні одного вибраного фрагмента коду захищеної програми, причому вказана модифікація така, що в ході виконання захищеної програми функціональна можливість щонайменше одного вибраного умовного переходу виконується, за допомогою другої виконуваної частини, у пристрої, 70 - і за допомогою створення: - першої частини об'єктного коду захищеної програми, причому перша частина об'єктного коду така, що в ході виконання захищеної програми функціональна можливість принаймні одного вибраного умовного переходу виконується у пристрої, - і другої частини об'єктного коду захищеної програми, причому друга частина об'єктного коду така, що /5 Після завантаження у пристрій, у ході виконання захищеної програми реалізується друга виконувана частина, за допомогою якої виконується функціональна можливість принаймні одного вибраного умовного переходу, - а у фазі використання: - у присутності пристрою, кожного разу, коли цього вимагає фрагмент першої виконуваної частини, виконують у пристрої функції принаймні одного вибраного умовного переходу таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма була повнофункціональною; - а за відсутності пристрою, незважаючи на запит фрагмента першої виконуваної частини на виконання функцій умовного переходу у пристрої, не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма не є повнофункціональною. счAccording to another better form of implementation of the method according to the invention: - In the protection phase: - the protected program is modified: - by selecting in the source code of the protected program at least one conditional transition performed in at least one selected algorithm, - by modifying at least one selected fragment code of the protected program, and the specified modification is such that during the execution of the protected program, the functional possibility of at least one selected conditional transition is performed, with the help of the second executable part, in the device, 70 - and by creating: - the first part of the object code of the protected program, and the first part of the object code is such that during the execution of the protected program, the functional possibility of at least one selected conditional transition is executed in the device, and the second part of the object code of the protected program, and the second part of the object code is such that /5 After downloading to the device during the execution of a protected game we implement a second executable part, with the help of which the functionality of at least one selected conditional transition is performed - and in the use phase: - in the presence of the device, whenever a fragment of the first executable part requires it, perform the functions of at least one selected conditional transition in the device as follows so that the specified fragment is executed correctly and, therefore, the protected program is fully functional; - and in the absence of the device, despite the request of the fragment of the first executable part to perform conditional transition functions in the device, the possibility of a correct response to the specified request is not ensured, so that at least the specified fragment is not executed correctly and, therefore, the protected program is not fully functional. high school

Відповідно до наступного варіанту здійснення способу згідно з винаходом у фазі захисту модифікують о захищену програму: - за допомогою вибору у вихідному коді захищеної програми принаймні однієї серії вибраних умовних переходів, - за допомогою модифікації принаймні одного вибраного фрагмента коду захищеної програми, причому Ге зо Згадана модифікація така, що в ході виконання захищеної програми глобальна функціональна можливість щонайменше однієї вибраної серії умовних переходів виконується у пристрої за допомогою другої виконуваної со частини, «- - і за допомогою створення: - першої частини об'єктного коду захищеної програми, причому перша частина об'єктного коду така, що в - ході виконання захищеної програми функціональна можливість принаймні однієї вибраної серії умовних ї- переходів виконується у пристрої, - і другої частини об'єктного коду захищеної програми, причому друга частина об'єктного коду така, що після завантаження у пристрій, у ході виконання захищеної програми реалізується друга виконувана частина, за допомогою якої виконується глобальна функціональна можливість принаймні однієї вибраної серії умовних « переходів. з с Спосіб згідно з винаходом дозволяє також захистити використання програми шляхом застосування пристрою . зберігання, особливістю якого є здатність містити частину виконуваної програми. Звідси випливає, що будь-яка а похідна версія програми, яка спробує функціонувати без пристрою зберігання, зажадає відтворення частини програми, що міститься у пристрої зберігання в ході виконання. Як наслідок ця похідна версія програми не буде повнофункціональною. -І Інші різноманітні властивості винаходу стануть ясні з нижченаведеного опису, що надається з посиланням на додані креслення, на яких показані, як необмежувальні приклади, можливі варіанти і форми реалізації та ш- використання винаходу. - Фіг.10 ії 11 являють собою функціональні блок-схеми, що ілюструють різноманітні представлення програми, відповідно не захищеної і захищеної способом згідно з винаходом. со На Фіг.20-22 наведені як приклади різноманітні форми виконання пристрою для здійснення способу заAccording to the following variant of the implementation of the method according to the invention, in the protection phase, the protected program is modified: - by selecting at least one series of selected conditional transitions in the source code of the protected program, - by modifying at least one selected fragment of the code of the protected program, and the aforementioned modification such that during the execution of the protected program, the global functionality of at least one selected series of conditional transitions is performed in the device by means of the second executable part, "- - and by creating: - the first part of the object code of the protected program, and the first part of the object" object code such that - during the execution of the protected program, the functional possibility of at least one selected series of conditional transitions is executed in the device, - and the second part of the object code of the protected program, and the second part of the object code is such that after loading into the device , during the execution of the protected program implements a second executable portion that executes the global functionality of at least one selected series of conditional transitions. The method according to the invention also allows to protect the use of the program by using the device. storage, the feature of which is the ability to contain part of the executable program. It follows that any derivative version of the program that attempts to function without the storage device will require the part of the program contained in the storage device to be reproduced during execution. As a result, this derivative version of the program will not be fully functional. Other various properties of the invention will become clear from the following description, which is provided with reference to the attached drawings, which show, as non-limiting examples, possible variants and forms of implementation and use of the invention. - Figures 10 and 11 are functional block diagrams illustrating various representations of the program, respectively unprotected and protected by the method according to the invention. 20-22 are shown as examples of various forms of the device for implementing the method according to

Ф винаходом.F invention.

Фіг.30 і 31 являють собою функціональні блок-схеми, що пояснюють загальний принцип способу згідно з винаходом.Figures 30 and 31 are functional block diagrams explaining the general principle of the method according to the invention.

Фіг.40-43 являють собою схеми, що ілюструють спосіб захисту згідно з винаходом, що реалізує принцип захисту за допомогою змінної.Fig.40-43 are diagrams illustrating the method of protection according to the invention, which implements the principle of protection by means of a variable.

Ф) Фіг.50-54 являють собою схеми, що ілюструють спосіб захисту згідно з винаходом, що реалізує принцип ка захисту за допомогою розділення в чавсі.F) Fig. 50-54 are diagrams illustrating the method of protection according to the invention, which implements the principle of protection by means of separation in chavsa.

Фіг.60-64 являють собою схеми, що ілюструють спосіб захисту згідно з винаходом, що реалізує принцип бор Захисту за допомогою елементарних функцій.Fig. 60-64 are diagrams illustrating the method of protection according to the invention, which implements the principle of Protection by means of elementary functions.

Фіг.70-74 являють собою схеми, що ілюструють спосіб захисту згідно з винаходом, що реалізує принцип захисту за допомогою детектування й примусу.Fig.70-74 are diagrams illustrating a method of protection according to the invention, which implements the principle of protection by means of detection and coercion.

Фіг.80-85 являють собою схеми, що ілюструють спосіб захисту згідно з винаходом, що реалізує принцип захисту за допомогою перейменування. 65 Фіг.90-92 являють собою схеми, що ілюструють спосіб захисту згідно з винаходом, що реалізує принцип захисту за допомогою умовного переходу.Fig.80-85 are diagrams illustrating a method of protection according to the invention, which implements the principle of protection by renaming. 65 Fig.90-92 are diagrams illustrating the method of protection according to the invention, which implements the principle of protection by means of a conditional transition.

Фіг.100 являє собою схему, що ілюструє різноманітні фази здійснення винаходу.Fig. 100 is a diagram illustrating various phases of the implementation of the invention.

На Фіг.110 наведений приклад реалізації системи, що дозволяє реалізувати стадію побудови фази захисту згідно з винаходом.Fig. 110 shows an example of the implementation of the system, which allows to implement the stage of construction of the protection phase according to the invention.

На Фіг.120 наведений приклад реалізації пристрою передперсоналізації, використовуваного у способі захисту згідно з винаходом.Fig. 120 shows an example of the implementation of the pre-personalization device used in the protection method according to the invention.

На Фіг.130 наведений приклад реалізації системи, що дозволяє здійснити стадію виготовлення засобів для фази захисту згідно з винаходом.Fig. 130 shows an example of the implementation of the system, which allows to implement the stage of manufacturing means for the protection phase according to the invention.

На Фіг.140 наведений приклад реалізації системи, що дозволяє застосувати спосіб захисту згідно з /о винаходом.Fig. 140 shows an example of the implementation of the system, which allows applying the method of protection according to the invention.

На Фіг.150 наведений приклад реалізації пристрою персоналізації, використовуваного у способі захисту згідно з винаходом.Fig. 150 shows an example of the implementation of the personalization device used in the protection method according to the invention.

Надалі в описі використовуються такі визначення: - Системою З обробки даних є система, здатна виконувати програму. - Пристроєм зберігання є пристрій, здатний одержувати дані, передані системою З обробки даних, розміщувати дані й повертати їх згідно із запитом системи З обробки даних. - Пристроєм обробки і зберігання є пристрій, здатний: - одержувати дані, передані системою З обробки даних, - повертати дані системі З обробки даних, - зберігати дані в таємниці, щонайменше частково, і зберігати щонайменше їхню частину навіть у випадку, коли пристрій відключений від живлення, - і здійснювати алгоритмічну обробку даних, причому ця обробка частково або цілком є секретною. - Пристроєм 6 є пристрій зберігання або пристрій обробки і зберігання, що реалізує спосіб згідно з винаходом. - Незадіяним пристроєм 60 є пристрій, який не використовує спосіб згідно з винаходом, але який може сч ов одержати інформацію, що перетворює його на пристрій 6. - Незадіяний пристрій 60 може стати пристроєм 6 під час виконання програми, захищеної способом згідно з і) винаходом, і після виконання знову стати незадіяним пристроєм 60. - Передперсоналізований пристрій 66 являє собою незадіяний пристрій 60, що одержав частину інформації, яка дозволяє йому, після одержання додаткової інформації, бути перетвореним на пристрій 6. Ге зо - Завантаження даних у незадіяний пристрій 60 або в передперсоналізований пристрій 66 відповідає передачі інформації в незадіяний пристрій 60 або в передперсоналізований пристрій 66 і збіганню зазначених переданих со даних. Передача інформації може включати зміну її формату. «- - Змінна, величина або функція, що містяться в системі З обробки даних, позначаються надалі заголовними буквами, а змінна, величина або функція, що містяться в пристрої 6, позначаються надалі малими літерами. ї- - "Захищеною програмою" є програма, що була захищена щонайменше на основі одного принципу захисту, р. реалізованого у способі згідно з винаходом. - "Уразливою програмою" є програма, що не була захищена жодним з принципів захисту, реалізованих у способі згідно з винаходом. - У випадку, коли розходження між уразливою і захищеною програмою несуттєве, застосовується термін « "програма". з с - Програма може бути подана в різноманітній формі відповідно до моменту її життєвого циклу, тобто як: - вихідний код, з - об'єктний код, - дистрибутив, - динамічне представлення. -І - Представлення програми у вигляді вихідного коду розуміється як представлення, що дає після перетворення представлення у вигляді об'єктного коду. Представлення у вигляді вихідного коду може ш- подаватися на різноманітних рівнях, від абстрактного концептуального рівня до рівня, безпосередньо - виконуваного системою обробки даних або пристроєм обробки і зберігання. - Об'єктне представлення програми (представлення на рівні об'єктного коду) відповідає рівню со представлення, на якому програма, після переносу в дистрибутив і наступного завантаження в систему обробкиThe following definitions are used in the description: - A data processing system is a system capable of executing a program. - A storage device is a device capable of receiving data transmitted by the data processing system, storing the data, and returning it as requested by the data processing system. - A processing and storage device is a device capable of: - receiving data transmitted by the data processing system, - returning data to the data processing system, - keeping data secret, at least partially, and storing at least part of it even when the device is disconnected from power, - and carry out algorithmic processing of data, and this processing is partially or completely secret. - Device 6 is a storage device or a processing and storage device that implements the method according to the invention. - An idle device 60 is a device that does not use the method according to the invention, but which can receive information that turns it into a device 6. - An idle device 60 can become a device 6 during the execution of a program protected by the method according to i) the invention , and after execution again become an idle device 60. - Pre-personalized device 66 is an idle device 60 that has received some information that allows it, after receiving additional information, to be transformed into a device 6. Gezo - Loading data into an idle device 60 or in the pre-personalized device 66 corresponds to the transfer of information to the idle device 60 or to the pre-personalized device 66 and the coincidence of the specified transmitted data. Transmission of information may include changing its format. "- - The variable, value or function contained in the Z data processing system are hereinafter referred to as capital letters, and the variable, value or function contained in the device 6 are hereinafter referred to as lowercase letters. - "Protected program" is a program that has been protected on the basis of at least one protection principle implemented in the method according to the invention. - "Vulnerable program" is a program that was not protected by any of the protection principles implemented in the method according to the invention. - In the case when the difference between a vulnerable and a protected program is insignificant, the term ""program" is used. c - The program can be presented in a variety of forms according to the moment of its life cycle, i.e. as: - source code, c - object code, - distribution, - dynamic representation. - AND - Representation of the program in the form of source code is understood as a representation that gives, after transformation, a representation in the form of object code. Representation in the form of source code can be applied at various levels, from the abstract conceptual level to the level directly executed by a data processing system or a processing and storage device. - The object representation of the program (object code level representation) corresponds to the representation level at which the program, after transfer to the distribution and subsequent loading into the processing system

Ф даних або пристрій обробки і зберігання, може бути виконана. Це може бути, наприклад, двійковий код, інтерпретований код тощо. - Дистрибутивом є фізичний або віртуальний носій, що містить об'єктне представлення, причому цей дистрибутив має бути наданий у розпорядження користувача, щоб дозволити йому використовувати програму. - Динамічне представлення відповідає виконанню програми з дистрибутива. (Ф) - Фрагмент програми відповідає певній її частині й може, наприклад, відповідати одній або декільком ка інструкціям (послідовним або ні) і/або одному або декільком функціональним блокам (послідовним або ні), і/або одній або декільком функціям, і/або одній або декільком підпрограмам, і/або одному або декільком модулям. бо Фрагмент програми може відповідати і всій програмі цілком.F data or processing and storage device, can be performed. It can be, for example, binary code, interpreted code, etc. - A distribution is a physical or virtual medium containing an object representation, and this distribution must be made available to the user to allow him to use the program. - Dynamic presentation corresponds to the execution of the program from the distribution. (F) - A program fragment corresponds to a certain part of it and can, for example, correspond to one or more instructions (sequential or not) and/or one or more function blocks (sequential or not), and/or one or more functions, and/ or one or more routines, and/or one or more modules. because a fragment of the program can correspond to the entire program as a whole.

На Фіг.10 і 11 наведені різноманітні представлення відповідно вразливої програми 2у у загальному вигляді і програми 2р, захищеної згідно з винаходом.Figures 10 and 11 show various views of the generally vulnerable program 2y and the program 2p protected according to the invention, respectively.

На Фіг.10 наведені різноманітні представлення вразливої програми 2у, що з'являються в ході її життєвого циклу. Вразлива програма 2М може з'являтися в одному з різноманітних виглядів, тобто як: 65 - вихідний код 25; - об'єктний код 2мо;Figure 10 shows various representations of the vulnerable program 2y that appear during its life cycle. Vulnerable 2M program can appear in one of various forms, i.e. as: 65 - source code 25; - object code 2mo;

- дистрибутив 2уд, який може надаватися звичайно на фізичному носії, наприклад, на компакт-диску, або у вигляді файлів, переданих по мережі (по стандарті ОЗМ, по мережі Інтернет тощо); - у вигляді динамічного представлення 2ме, що відповідає виконанню вразливої програми 2м у системі З обробки даних будь-яких відомих типів, які в класичному випадку містять принаймні один процесор 4.- 2ud distribution, which can usually be provided on a physical medium, for example, on a CD, or in the form of files transferred over the network (according to the OZM standard, over the Internet, etc.); - in the form of a dynamic representation of 2m, which corresponds to the execution of a vulnerable program 2m in a data processing system Z of any known types, which in the classic case contain at least one processor 4.

Фіг.11 ілюструє різноманітні представлення захищеної програми 2р, що з'являються в ході її життєвого циклу. Захищена програма 2р може також з'являтися у вигляді: - вихідного коду (представлення) 2рз, що містить першу частину вихідного коду, призначену для системи З обробки даних, і, можливо, другу частину вихідного коду, призначену для пристрою 6, причому частина цих 7/о частин вихідного коду може звичайно міститися в загальних файлах; - об'єктного представлення 2ро, що містить першу частину 2роз об'єктного коду, призначену для системи З обробки даних, і, можливо, другу частину 2рои об'єктного коду, призначену для пристрою 6; - дистрибутива 2ра, що містить: -першу частину 2раз дистрибутива, що містить першу частину 2роз об'єктного коду, причому ця перша /5 частина 2раз дистрибутива призначена для системи З обробки даних і може бути представлена звичайно у формі дистрибутива на фізичному носії, наприклад на компакт-диску, або у вигляді файлів, переданих по мережі (по стандарті О5М, по мережі Інтернет тощо), - її, другу частину 2рди дистрибутива, поданого у вигляді: - щонайменше одного незадіяного пристрою 60, - або щонайменше одного передперсоналізованого пристрою 66, у який була завантажена частина другої частини 2рои об'єктного коду і для якого користувач має завершити персоналізацію шляхом завантаження додаткової інформації, щоб одержати пристрій 6, причому ця додаткова інформація може надходити, наприклад, шляхом завантаження або передачі по мережі,Fig. 11 illustrates various representations of the protected program 2p that appear during its life cycle. The protected program 2r may also appear in the form of: - source code (representation) 2rz, containing the first part of the source code intended for the data processing system C, and possibly the second part of the source code intended for the device 6, and part of these 7/0 parts of the source code can usually be contained in common files; - object representation 2ro, containing the first part of the 2roz object code intended for the data processing system Z, and possibly the second part of the 2roi object code intended for the device 6; - the 2nd distribution, containing: - the first part of the 2rd distribution, which contains the first part of the 2rd object code, and this first / 5th part of the 2rd distribution is intended for the Z data processing system and can be presented normally in the form of a distribution on a physical medium, for example on a CD, or in the form of files transferred over the network (according to the O5M standard, over the Internet, etc.), - it, the second part of the 2rd distribution, presented in the form of: - at least one idle device 60, - or at least one pre-personalized device 66 , into which a part of the second part 2 of the object code has been downloaded and for which the user must complete the personalization by downloading additional information in order to receive the device 6, and this additional information can come, for example, by downloading or transmitting over a network,

У або щонайменше одного пристрою 6, у який була завантажена друга частина 2рои об'єктного коду; с - або у вигляді динамічного представлення 2ре, що відповідає виконанню захищеної програми 2р. Це динамічне представлення 2ре містить першу виконувану частину 2рез, яка виконується в системі З обробки і) даних, і другу виконувану частину 2реи, яка виконується у пристрої 6.In or at least one device 6 into which the second part of the object code was loaded; c - or in the form of a dynamic representation of 2r, which corresponds to the execution of a protected program 2r. This dynamic representation of 2re contains the first executable part of 2rez, which is executed in the system C of data processing i) and the second executable part of 2rez, which is executed in the device 6.

У випадку, коли розходження між різноманітними представленнями захищеної програми 2р несуттєве, використовуються вирази "перша частина захищеної програми" і "друга частина захищеної програми". Ге зо Реалізація способу згідно з винаходом відповідно до динамічного представлення, проілюстрованого наIn the case when the difference between various representations of the protected program 2p is insignificant, the expressions "the first part of the protected program" and "the second part of the protected program" are used. Fig. 1. An implementation of the method according to the invention according to the dynamic representation illustrated in FIG

Фіг.11, використовує пристрій тр захисту, що містить систему З обробки даних, зв'язану лінією 5 зв'язку з со пристроєм 6. Система З обробки даних може бути будь-якого типу і містить у звичайному варіанті принаймні «- один процесор 4. Система З обробки даних може бути комп'ютером або бути частиною, наприклад, різноманітних машин, пристроїв, стаціонарних або рухливих виробів, у тому числі будь-яких транспортних ї- засобів. Лінія 5 зв'язку може бути здійснена будь-яким можливим способом, наприклад, по лінії послідовної ї- передачі, по шині ОВ, по радіо, по оптичному каналу, по мережі або через пряме електричне з'єднання зі схемою системи З обробки даних тощо. Слід зазначити, що пристрій 6 може фізично знаходитися всередині тієї ж інтегральної схеми, що й процесор 4 системи З обробки даних. У цьому випадку пристрій 6 може розглядатися як співпроцесор стосовно до процесора 4 системи обробки даних, а лінія 5 зв'язку є внутрішньою лінією зв'язку « 70 В інтегральній схемі. з с На Фіг.20-22 наведені як приклади, що не вичерпують можливі варіанти, різноманітні форми реалізації пристрою р захисту, що дозволяє реалізувати спосіб захисту згідно з винаходом. ;» У прикладі реалізації за Фіг.20 пристрій Тр захисту містить, як систему З обробки даних, комп'ютер і, як пристрій 6, карту 7 з мікрочипом та її інтерфейс 8, звичайно називаний пристроєм читання карт. Комп'ютер З сполучений з пристроєм б за допомогою лінії 5 зв'язку. В ході виконання захищеної програми 2р перша -І виконувана частина 2рез, що виконується в системі З обробки даних, і друга виконувана частина 2рецй, що виконується в карті 7 з мікрочипом і у її інтерфейсі 8, мають бути функціональними, щоб захищена програма 2рFig. 11 uses a protection device containing a data processing system connected by a communication line 5 to a device 6. The data processing system can be of any type and typically contains at least one processor 4 A data processing system can be a computer or be part of, for example, various machines, devices, stationary or mobile products, including any vehicles. The communication line 5 can be implemented in any possible way, for example, by a serial transmission line, by an OV bus, by radio, by an optical channel, by a network, or through a direct electrical connection to the circuitry of the data processing system, etc. . It should be noted that the device 6 can be physically located inside the same integrated circuit as the processor 4 of the data processing system. In this case, the device 6 can be considered as a co-processor in relation to the processor 4 of the data processing system, and the communication line 5 is an internal communication line « 70 V integrated circuit. from c Fig. 20-22 show as examples, which do not exhaust the possible options, various forms of implementation of the protection device, which allows to implement the method of protection according to the invention. ;" In the implementation example of Fig. 20, the protection device Tr contains, as a data processing system, a computer and, as a device 6, a card 7 with a microchip and its interface 8, usually called a card reader. Computer Z is connected to device b using line 5 of communication. During the execution of the protected program 2r, the first -I executable part 2rez, which is executed in the data processing system C, and the second executable part 2rec, executed in the card 7 with a microchip and in its interface 8, must be functional in order for the protected program 2r

Ш- була повнофункціональною. - У прикладі реалізації за Фіг.21 пристрій Тр захисту міститься у виробі У загального виду, що містить 5ор різноманітні органи 10, адаптовані до функції або до функцій, реалізованих таким виробом 9. Пристрій Тр со захисту містить, з одного боку, систему З обробки даних, умонтовану у виріб 9, і, з іншого боку, пристрій 6,Sh- was fully functional. - In the implementation example of Fig. 21, the protection device Tr is contained in a product of a general type, which contains 5 or various organs 10, adapted to the function or to the functions implemented by such a product 9. The protection device Tr so contains, on the one hand, a processing system data, mounted in the product 9, and, on the other hand, the device 6,

Ф зв'язаний з виробом 9. Щоб виріб 9 був повнофункціональним, захищена програма 2р має бути повністю функціональною. Так, у ході виконання захищеної програми 2р і перша виконувана частина 2рез, яка виконується в системі З обробки даних, і друга виконувана частина 2реиц, яка виконується у пристрої 6, мають бути працездатні. Ця захищена програма 2р дозволяє, отже, непрямим чином захистити від неавторизованого використання виріб 9 або одну з його функціональних можливостей. Виріб 9 може бути, наприклад, установкою, (Ф, системою, машиною, іграшкою, електропобутовим приладом, телефоном. ка У прикладі реалізації за Фіг.22 пристрій тр захисту містить множину комп'ютерів, а також частину комунікаційної мережі. Система З обробки даних являє собою перший комп'ютер, зв'язаний за допомогою лінії 5 бо Зв'язку мережного типу з пристроєм 6, який являє собою другий комп'ютер. Для реалізації винаходу другий комп'ютер б використовується як сервер ліцензій для захищеної програми 2р. У ході виконання захищеної програми 2р і перша виконувана частина 2рез, яка виконується в першому комп'ютері З, і друга виконувана частина 2реи, яка виконується в другому комп'ютері 6, мають бути функціональними, щоб захищена програма 2р була повнофункціональною. 65 Фіг.30 дозволяє пояснити точніше спосіб захисту згідно з винаходом. Слід зазначити, що вразлива програма 2м розглядається як виконувана цілком у системі З обробки даних. Навпаки, в разі реалізації захищеної програми 2р система З обробки даних містить засоби 12 передачі, зв'язані лінією 5 зв'язку із засобами 13 передачі, що складають частину пристрою 6, що дозволяє сполучатися між собою першій виконуваній частині 2рез і другій виконуваній частині 2реи захищеної програми 2р.Ф is associated with product 9. For product 9 to be fully functional, the protected program 2p must be fully functional. Thus, during the execution of the protected program 2p, both the first executable part 2rez, which is executed in the data processing system C, and the second executable part 2reits, which is executed in the device 6, must be operational. This protected program 2p therefore allows you to indirectly protect the product 9 or one of its functions from unauthorized use. Product 9 can be, for example, an installation, a system, a machine, a toy, an electrical household appliance, a telephone. In the implementation example of Fig. 22, the protection device contains a set of computers, as well as a part of the communication network. The data processing system is the first computer connected by means of the line 5 of Network-type communication with the device 6, which is the second computer. To implement the invention, the second computer is used as a license server for the protected program 2r. during the execution of the protected program 2p, both the first executable part 2rez, which is executed in the first computer Z, and the second executable part 2rea, which is executed in the second computer 6, must be functional so that the protected program 2p is fully functional. 65 Fig.30 allows to explain more precisely the method of protection according to the invention. It should be noted that the vulnerable program 2m is considered as being executed entirely in the data processing system Z. On the contrary, in the case of the implementation of the protected program 2r, the system Z o the data block contains transmission means 12 connected by a communication line 5 with transmission means 13, which make up part of the device 6, which allows the first executable part 2rez and the second executable part 2rey of the protected program 2r to communicate with each other.

Слід мати на увазі, що засоби 12, 13 передачі реалізовані програмно або матеріально і здатні забезпечити й, можливо, оптимізувати передачу даних між системою З обробки даних і пристроєм 6. Ці засоби 12, 13 передачі пристосовані для того, щоб дозволити скористатися захищеною програмою 2р, яка є краще незалежною від типу застосовуваної лінії 5 зв'язку. Ці засоби 12, 13 передачі не стосуються предмета винаходу й не описуються детальніше, оскільки вони добре відомі фахівцям. Перша частина захищеної програми 2р 7/о Містить команди. В ході виконання захищеної програми 2р виконання цих команд першою виконуваною частиною 2рез дозволяє здійснити зв'язок між першою виконуваною частиною 2рез і другою виконуваною частиною 2реи.It should be borne in mind that the transmission means 12, 13 are implemented in software or hardware and are able to ensure and possibly optimize the data transfer between the data processing system and the device 6. These transmission means 12, 13 are adapted to allow the use of the protected program 2r , which is better independent of the type of communication line 5 used. These transmission means 12, 13 do not relate to the subject of the invention and are not described in detail, as they are well known to those skilled in the art. The first part of the protected program 2p 7/o Contains commands. During the execution of the protected program 2r, the execution of these commands by the first executable part of 2rez allows communication between the first executable part of 2rez and the second executable part of 2rez.

Надалі в описі ці команди подані у вигляді ІМ, ОТ або ТК.Further in the description, these commands are presented as IM, OT or TC.

Як показано на Фіг.31, щоб дозволити реалізацію другої виконуваної частини 2реи захищеної програми 2р, пристрій 6 містить засоби 14 захисту. В разі, якщо пристрій 6 є запам'ятовуючим пристроєм, засоби 14 захисту /5 Містять засоби 15 запам'ятовування. В разі, якщо пристрій б є пристроєм обробки і зберігання, засоби 14 захисту містять засоби 15 запам'ятовування і засоби 16 обробки.As shown in Fig.31, in order to allow the implementation of the second executable part 2rey of the protected program 2p, the device 6 contains means 14 of protection. If the device 6 is a memory device, the means of protection 14/5 contain the means of memory 15. If the device is a processing and storage device, the means of protection 14 include means of memory 15 and means of processing 16.

Для спрощення подальшого опису будемо вважати, що в ході виконання захищеної програми 2р пристрій 6 є наявним або пристрій 6 відсутній. У дійсності, пристрій 6 у тому випадку, коли містить засоби 14 захисту, не пристосований до виконання другої виконуваної частини 2реи захищеної програми 2р, також розглядається як відсутній щоразу, коли виконання захищеної програми 2р не є коректним. Іншими словами: - пристрій б, що фізично присутній і містить засоби 14 захисту, пристосовані до виконання другої виконуваної частини 2реи захищеної програми 2р, завжди розглядається як присутній; - пристрій 6, фізично присутній, але що містить непридатні засоби 14 захисту, тобто що не дозволяють здійснити коректну реалізацію другої виконуваної частини 2реи захищеної програми 2р, розглядається як сч присутній, якщо функціонує коректно, і як відсутній, якщо не функціонує коректно; пристрій 6, фізично відсутній, завжди розглядається як відсутній. (8)To simplify the further description, we will assume that during the execution of the protected program 2, the device 6 is available or the device 6 is absent. In fact, the device 6 in the event that it contains the means of protection 14 is not adapted to the execution of the second executable part 2rey of the protected program 2r, it is also considered as missing whenever the execution of the protected program 2r is not correct. In other words: - the device b, which is physically present and contains means of protection 14 adapted to the execution of the second executable part 2rey of the protected program 2p, is always considered as present; - device 6, physically present, but containing unsuitable means of protection 14, that is, which do not allow the correct implementation of the second executable part 2rey of the protected program 2r, is considered as present if it functions correctly, and as absent if it does not function correctly; device 6, physically absent, is always treated as absent. (8)

У випадку якщо пристрій б складається з карти 7 з мікрочипом та її інтерфейсом 8, засоби 13 передачі розділяються на дві частини, з яких одна знаходиться на інтерфейсі 8, а інша - на карті 7 з мікрочипом. У цьому прикладі реалізації відсутність карти 7 з мікрочипом розглядається як еквівалент відсутності пристрою Ге 6. Іншими словами, за відсутності карти 7 з мікрочипом і/або її інтерфейсу 8 засоби 14 захисту недоступні й, отже, не дозволяють здійснити виконання другої виконуваної частини 2реи захищеної програми, так що со захищена програма 2р не є повнофункціональною. «-If the device b consists of a card 7 with a microchip and its interface 8, means 13 of transmission are divided into two parts, one of which is on the interface 8, and the other - on the card 7 with a microchip. In this implementation example, the absence of the microchip card 7 is considered equivalent to the absence of the Ge device 6. In other words, in the absence of the microchip card 7 and/or its interface 8, the protection means 14 are unavailable and, therefore, do not allow the execution of the second executable part 2 of the protected program , so that the protected program 2p is not fully functional. "-

Згідно з винаходом, спосіб захисту спрямований на реалізацію так званого принципу захисту за допомогою змінної, опис якого подано з посиланням на Фіг.40-43. в.According to the invention, the method of protection is aimed at implementing the so-called principle of protection using a variable, the description of which is given with reference to Fig.40-43. in.

Для реалізації принципу захисту за допомогою змінної у вихідному коді 2уз уразливої програми вибирається ї- принаймні одна змінна, яка в ході виконання вразливої програми 2у частково визначає її стан. Під станом програми розуміється сукупність інформації, на даний момент необхідної для повного виконання цієї програми.To implement the principle of protection using a variable in the source code 2uz of a vulnerable program, at least one variable is selected, which partially determines its state during the execution of the vulnerable program 2y. The state of the program is understood as the totality of information currently necessary for the full execution of this program.

Таким чином, відсутність зазначеної вибраної змінної перешкоджає повному виконанню цієї програми.Therefore, the absence of the specified selected variable prevents the complete execution of this program.

Вибирається також принаймні один фрагмент вихідного коду 2у8з уразливої програми, що містить « щонайменше одну вибрану змінну. в с Щонайменше один вибраний фрагмент коду 2уз уразливої програми в цьому випадку модифікується, щоб . одержати вихідний код 2рз захищеної програми. Ця модифікація така, що в ході виконання захищеної програми и?» 2р принаймні один фрагмент першої виконуваної частини 2рев5, який виконується в системі З обробки даних, враховує, що принаймні одна вибрана змінна або щонайменше одна копія вибраної змінної знаходиться у пристрої 6. Для реалізації принципу захисту за допомогою змінної пристрій 6 містить щонайменше засоби 15 -І запам'ятовування.At least one fragment of the source code of the vulnerable program containing at least one selected variable is also selected. at least one selected piece of code 2uz of the vulnerable program in this case is modified to . get the source code of the 2rz protected program. This modification is such that during the execution of the protected program, 2r, at least one fragment of the first executable part 2rev5, which is executed in the data processing system, takes into account that at least one selected variable or at least one copy of the selected variable is located in the device 6. To implement the principle of protection using a variable, the device 6 contains at least means 15 -I memorization

На Фіг.40 наведений приклад представлення уразливої програми 2у. У цьому прикладі в ході виконанняFig. 40 shows an example of the representation of a vulnerable program 2y. In this example, during execution

Ш- уразливої програми 2у у системі З обробки даних мають місце: - - у момент і присвоєння значення Х змінній М, що подано як М.--Х; - у момент Її присвоєння значення змінної М. змінній М, що подано як У Му;Sh- of the vulnerable program 2y in the data processing system Z take place: - - at the time of assigning the value X to the variable M, which is given as M.--X; - at the time of its assignment of the value of the variable M to the variable M, which is given as U Mu;

Ме - у момент із присвоєння значення змінної М. змінній 7, що подано як 74.М.. 4) На Фіг.А4А1 наведений приклад першої форми реалізації винаходу, для якої змінна знаходиться у пристрої 6. У цьому прикладі в ході виконання у системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р у присутності пристрою 6 здійснюються: - у момент Її виконання команди передачі, що викликає передачу даного Х від системи З обробки даних до змінної м, розташованої в засобах 15 запам'ятовування пристрою 6, причому ця команда передачі подана як і) ОШТм., Х) і відповідає по завершенні присвоєнню значення Х змінній м; ко - у момент їй виконання команди передачі, що викликає передачу значення змінної м 4, що знаходиться у пристрої 6, системі З обробки даних, щоб присвоїти її значення змінній У, причому ця команда передачі подана, 6о як ІМ(м4,) і відповідає по завершенні присвоєнню значення м. змінній У; - у момент їз виконання команди передачі, що викликає передачу значення змінної м 4, що знаходиться у пристрої 6, системі З обробки даних, щоб присвоїти її значення змінній 7, причому ця команда передачі подана як ІМ(м4) і відповідає по завершенні присвоєнню значення м. змінній 7.Me - at the moment of assigning the value of variable M to variable 7, which is given as 74.M.. 4) Fig. A4A1 shows an example of the first form of implementation of the invention, for which the variable is located in device 6. In this example, during execution in the system From the data processing of the first executable part 2rez of the protected program 2r in the presence of the device 6, the following are carried out: - at the time of its execution of the transfer command, which causes the transfer of data X from the data processing system C to the variable m located in the means 15 of the device 6's memory, and this the transfer command is given as i) OSHtm., X) and corresponds to the assignment of the value X to the variable m upon completion; ko - at the time of its execution of the transfer command, which causes the transfer of the value of the variable m 4, located in the device 6, to the data processing system Z in order to assign its value to the variable U, and this transfer command is given, 6o as IM(m4,) and corresponds to upon completion of assigning a value to the variable Y; - at the moment of execution of the transfer command, which causes the transfer of the value of the variable m 4, located in the device 6, to the data processing system Z in order to assign its value to the variable 7, and this transfer command is given as IM(m4) and corresponds to the assignment of the value upon completion m. variable 7.

Слід зазначити, що в ході виконання захищеної програми 2р принаймні одна змінна знаходиться у пристрої 6. 65 Так, коли цього вимагає частина першої виконуваної частини 2рез захищеної програми 2р, у присутності пристрою 6, значення цієї змінної, що знаходиться у пристрої 6, передається системі З обробки даних, щоб бути використаною першою виконуваною частиною 2рез захищеної програми 2р таким чином, щоб ця частина виконувалася коректно, й, отже, захищена програма 2р була повнофункціональною.It should be noted that during the execution of the protected program 2p, at least one variable is located in the device 6. 65 Thus, when the first executable part 2rez of the protected program 2p requires it, in the presence of the device 6, the value of this variable located in the device 6 is transferred to the system From data processing to be used by the first executable part 2rez of the protected program 2r in such a way that this part is executed correctly, and therefore the protected program 2r is fully functional.

На Фіг.42 наведений приклад другої форми реалізації винаходу, для якої копія змінної знаходиться у пристрої 6. У цьому прикладі в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р у присутності пристрою 6 здійснюються: - у момент ( присвоєння значення Х змінній М 4, що знаходиться в системі З обробки даних, а також виконання команди передачі що викликає передачу даного Х від системи З обробки даних до змінної мі, розташованої у засобах 15 запам'ятовування пристрою 6, причому ця команда передачі подана як ОШТ(м 4, Х); 70 - у момент ї5 - присвоєння значення змінної М, змінній У; - у момент їз - виконання команди передачі, що викликає передачу значення змінної М. що знаходиться у пристрої 6, системі З обробки даних, щоб присвоїти її значення змінній 7, причому ця команда передачі подана як ІМ(м4).Fig. 42 shows an example of the second form of implementation of the invention, for which a copy of the variable is located in the device 6. In this example, during the execution of the data processing of the first executable part 2 of the protected program 2 in the presence of the device 6 in the Z system, the following actions are performed: - at the moment ( assignment of the value X variable M 4 located in the data processing system Z, as well as the execution of the transfer command that causes the transfer of data X from the data processing system Z to the variable mi located in the storage means 15 of the device 6, and this transfer command is presented as ОШТ( m 4, X); 70 - at the moment y5 - assignment of the value of the variable M to the variable Y; - at the moment iz - execution of the transfer command, which causes the transfer of the value of the variable M, located in the device 6, the data processing system Z, in order to assign it the value of the variable is 7, and this transfer command is given as IM(m4).

Слід зазначити, що в ході виконання захищеної програми 2р щонайменше одна копія однієї змінної /5 знаходиться у пристрої 6.It should be noted that during the execution of the protected program 2p, at least one copy of one variable /5 is located in the device 6.

Так, коли цього вимагає частина першої виконуваної частини 2рез захищеної програми 2р, у присутності пристрою 6, значення цієї копії змінної, що знаходиться у пристрої 6, передається системі З обробки даних, щоб бути використаною першою виконуваною частиною 2рез захищеної програми 2р таким чином, щоб ця частина виконувалася коректно й, отже, захищена програма 2р була повнофункціональною.Thus, when required by the first executable part 2rez of the protected program 2p, in the presence of the device 6, the value of this copy of the variable located in the device 6 is transferred to the data processing system C to be used by the first executable part 2rez of the protected program 2p in such a way that this part was performed correctly and, therefore, the protected program 2p was fully functional.

На Фіг.43 наведений приклад спроби виконання захищеної програми 2р за відсутності пристрою 6. У цьому прикладі в ході виконання у системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р: - у момент Її виконання команди передачі ОШТ(м4, Х) не може викликати передачу даного Х змінній м, з огляду на відсутність пристрою 6; "у момент Її виконання команди передачі ІМ(м4) не може викликати передачу значення змінної мі системі З сч обробки даних, з огляду на відсутність пристрою 6; "у момент ї5 виконання команди передачі ГМ(м4) не може викликати передачу значення змінної м системі З і) обробки даних, з огляду на відсутність пристрою 6.Fig. 43 shows an example of an attempt to execute the protected program 2r in the absence of device 6. In this example, during the execution of the data processing system Z of the first executable part 2rez of the protected program 2r: - at the time of its execution, the transmission command OSHT(m4, X) cannot cause the transfer of data X to variable m, given the absence of device 6; "at the moment of execution of the transfer command IM(m4) cannot cause the transfer of the value of the variable m to the system of data processing, due to the absence of device 6; "at the moment of execution of the transfer command GM(m4) cannot cause the transfer of the value of the variable m to the system With i) data processing, given the absence of device 6.

Таким чином, представляється, що за відсутності пристрою 6 принаймні один запит одного фрагмента першої виконуваної частини 2рез на використання змінної або копії змінної, що знаходиться у пристрої 6, не може бути Ге зо Коректно виконаний, так що принаймні ця частина не виконується коректно, й, отже, захищена програма 2р не є повнофункціональною. соThus, it appears that in the absence of device 6, at least one request of one fragment of the first executable part 2rez to use a variable or a copy of a variable located in device 6 cannot be executed correctly, so that at least this part is not executed correctly, and , therefore, the protected program 2p is not fully functional. co

Слід зазначити, що процеси передачі даних між системою З обробки даних і пристроєм б використовують - п тільки прості присвоєння (що проілюстровано на вищенаведених прикладах). Проте спеціаліст зможе скомбінувати їх з іншими операціями, щоб одержати складні операції, наприклад ОШТ(м 4, 2"Х3) або ї- 2--(5'Мувмо). ч-It should be noted that data transfer processes between data processing system C and device b use only simple assignments (which is illustrated in the above examples). However, a specialist will be able to combine them with other operations to obtain complex operations, for example ОШТ(m 4, 2"Х3) or и- 2--(5'Muvmo). h-

Відповідно до іншої кращої характеристики винаходу спосіб захисту орієнтований на реалізацію принципу захисту, названого "розділення в часі", опис якого виконано з посиланням на Фіг.50-54.According to another best feature of the invention, the protection method is oriented to the implementation of the protection principle called "time division", the description of which is made with reference to Fig.50-54.

Для реалізації принципу захисту шляхом розділення в часі у вихідному коді 2у5 уразливої програми « вибирається принаймні один алгоритм, що використовує щонайменше один операнд і видає щонайменше один результат. Вибирається також щонайменше один фрагмент вихідного коду 2у5 уразливої програми, який містить й с щонайменше один вибраний алгоритм. ц Принаймні один вибраний фрагмент коду 2уз уразливої програми в цьому випадку модифікується, щоб "» одержати вихідний код 2рз захищеної програми. Ця модифікація така, що: - в ході виконання захищеної програми 2р щонайменше один фрагмент першої виконуваної частини 2рев, який виконується в системі З обробки даних, враховує, що функціональна можливість принаймні одного -І вибраного алгоритму виконується у пристрої 6; - в ході виконання захищеної програми 2р друга виконувана частина 2реи, яка виконується у пристрої 6, - виконує щонайменше функціональну можливість щонайменше одного вибраного алгоритму; - - в ході виконання захищеної програми 2р кожний вибраний алгоритм розкладається на декілька різноманітних етапів, як-от:To implement the principle of protection by time division in the source code of the vulnerable program "at least one algorithm is selected that uses at least one operand and produces at least one result. At least one fragment of the source code 2u5 of the vulnerable program is also selected, which also contains at least one selected algorithm. In this case, at least one selected fragment of the code 2uz of the vulnerable program is modified to "» receive the source code 2rz of the protected program. This modification is such that: - during the execution of the protected program 2r, at least one fragment of the first executable part 2rev, which is executed in the system C data processing, takes into account that the functional possibility of at least one selected algorithm is performed in the device 6; - during the execution of the protected program 2r, the second executable part of the 2rea, which is executed in the device 6, - performs at least the functional possibility of at least one selected algorithm; - - in during the execution of the protected program 2r, each selected algorithm is divided into several different stages, such as:

Ме - етап 1: надання щонайменше одного операнду для пристрою 6, 4) - етап 2: виконання у пристрої 6 функціональної можливості вибраного алгоритму з використанням цього або цих операндів, - етап 3: можливе надання пристроєм 6 системі З обробки даних результату виконання вибраного алгоритму; - команди етапів визначаються таким чином, щоб викликати виконання етапів, причому - впорядкування команд етапів вибрано серед ансамблю впорядкувань, що дозволяють виконання захищеної о програми 2р. ко Перша виконувана частина 2рез захищеної програми гр, яка виконується в системі З обробки даних, виконує команди етапів, що викликає у пристрої б виконання, за допомогою другої виконуваної частини 2реи, кожного з бо наведених етапів. Для реалізації принципу захисту шляхом розділення в часі пристрій б містить засоби 15 запам'ятовування і засоби 16 обробки.Me - stage 1: provision of at least one operand for the device 6, 4) - stage 2: execution in the device 6 of the functionality of the selected algorithm using this or these operands, - stage 3: possible provision by the device 6 to the data processing system of the result of the execution of the selected algorithm ; - stage commands are defined in such a way as to trigger the execution of stages, and - the arrangement of stage commands is selected from among the ensemble of arrangements that allow the execution of the protected program 2r. The first executable part 2rez of the protected program r, which is executed in the data processing system Z, executes stage commands, which causes the device b to execute, with the help of the second executable part 2rey, each of the given stages. To implement the principle of protection by time division, the device b contains storage means 15 and processing means 16.

На Фіг.50 наведений приклад виконання вразливої програми 2у. У цьому прикладі в ході виконання вразливої програми 2у у системі З обробки даних у даний момент часу провадиться розрахунок 2.-К(Х, У), що відповідає присвоєнню змінній 7 результату виконання алгоритму, поданого функцією Е і що використовує операнди Х і У. 6Е На Фіг.51 наведений приклад реалізації винаходу, в якому обробку вибраного алгоритму (Фіг.50) перенесено у пристрій 6. У цьому прикладі, в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р в присутності пристрою 6, мають місце: - у момент і. - етап 1, як-от виконання команди СЕ 4 етапу, яке викликає передачу даних Х і У з системи З обробки даних у області пам'яті відповідно х і у, розташовані в засобах 15 запам'ятовування пристрою 6, причому ця команда СЕ); етапу подана як ОШТХх, Х), ОШТУ, ХМ); - у момент іо - етап 2, як-от виконання команди СЕ» етапу, що викликає у пристрої 6 виконання, за допомогою другої виконуваної частини 2реиц, функції ї, причому ця функція Її алгоритмічно еквівалентна функції Р. Ця команда СЕ» етапу подана як ТКІС(Ї). Точніше кажучи, виконання команди СЕ » етапу приводить до виконання функції Її, яка використовує вміст областей пам'яті х і у і повертає свій результат у область пам'яті 2 пристрою 6; 70 - у момент б - етап 3, а саме виконання команди СЕ»з етапу, яке викликає передачу результату функції Її, що міститься в області пам'яті 27 пристрою 6, системі З обробки даних, щоб присвоїти її значення змінній 7. Ця команда СЕ» етапу подана як ІМ(7).Fig. 50 shows an example of the execution of the vulnerable program 2y. In this example, during the execution of the vulnerable program 2y in the data processing system Z, at this moment in time, the calculation 2.-K(X, Y) is performed, which corresponds to the assignment to variable 7 of the result of the execution of the algorithm given by the function E and using the operands X and Y. 6E Fig. 51 shows an example of the implementation of the invention, in which the processing of the selected algorithm (Fig. 50) is transferred to the device 6. In this example, during the execution in the system C of data processing of the first executable part 2rez of the protected program 2p in the presence of the device 6, have place: - at the moment and. - stage 1, such as the execution of the CE command of stage 4, which causes the transfer of X and Y data from the data processing system Z in the memory area x and y, respectively, located in the means 15 of the device 6, and this CE command) ; stage is presented as ОШТХx, Х), ОШТХ, ХМ); - at the moment io - stage 2, such as the execution of the command CE" of the stage, which causes the device 6 to execute, with the help of the second executable part of 2reits, the function y, and this function Her is algorithmically equivalent to the function P. This command of the CE" stage is given as TKIS(Y). More precisely, the execution of the SE » stage command leads to the execution of the Her function, which uses the contents of the memory areas x and y and returns its result to the memory area 2 of the device 6; 70 - at moment b - stage 3, namely the execution of the command SE"from the stage, which causes the transfer of the result of the Her function, which is contained in the memory area 27 of the device 6, to the data processing system Z, in order to assign its value to the variable 7. This command SE" of the stage is presented as IM(7).

У наведеному прикладі етапи з 1 до З виконуються послідовно. Слід відзначити, що можна зробити два такі вдосконалення. - Перше вдосконалення стосується випадку, коли декілька алгоритмів винесені у пристрій 6 і щонайменше результат виконання одного алгоритму використовується іншим алгоритмом. У цьому випадку деякі етапи передачі можуть бути вилучені. - Друге вдосконалення має на меті належне впорядкування команд етапів у ансамблі впорядкувань, що дозволяють виконати захищену програму 2р. У цьому відношенні краще вибрати таке впорядкування команд етапів, що розділяє в часі виконання етапів, уставляючи між ними ділянки коду, виконуваного в системі З обробки даних, і що містить (або ні) команди етапів, що служать для визначення інших даних. Фіг.52 і 53 ілюструють принцип такої реалізації.In the given example, steps 1 to 3 are performed sequentially. It should be noted that two such improvements can be made. - The first improvement concerns the case when several algorithms are carried out in the device 6 and at least the result of the execution of one algorithm is used by another algorithm. In this case, some transfer steps may be removed. - The second improvement is aimed at the proper ordering of stage commands in the ensemble of orders that allow the execution of the protected program 2y. In this regard, it is better to choose such an arrangement of stage commands that separates the execution time of the stages, inserting between them sections of code executed in the Z data processing system, and which contains (or not) stage commands that serve to define other data. Figures 52 and 53 illustrate the principle of such an implementation.

На Фіг.52 наведений приклад виконання вразливої програми 2у. У цьому прикладі в ході виконання вразливої програми 2у у системі З обробки даних, провадиться виконання двох алгоритмів, що приводять до визначення 7 і с ов Є, таких, що 2--НК(Х, Хі 2. (Х, М).Fig. 52 shows an example of the execution of the vulnerable program 2y. In this example, during the execution of the vulnerable program 2y in the data processing system Z, the execution of two algorithms is carried out, which lead to the determination of 7 and s ov E, such that 2--НК(Х, Хи 2. (Х, M).

На Фіг.53 наведений приклад реалізації способу згідно з винаходом, у якому обидва вибраних на Фіг.52 о алгоритми винесені в пристрій 6. Відповідно до цього приклада в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р у присутності пристрою 6 має місце, як пояснено вище, виконання команд СЕ 4, СЕ», СЕз етапів, що відповідають визначенню 7, і команд СЕ/, СЕ» СЕ етапів, що «оFig. 53 shows an example of the implementation of the method according to the invention, in which both of the algorithms selected in Fig. 52 are placed in the device 6. According to this example, during the execution of the data processing system C of the first executable part 2 of the protected program 2 in the presence of the device 6 takes place, as explained above, the execution of commands CE 4, CE", CE of stages corresponding to definition 7, and commands CE/, CE" CE of stages that "about

Відповідають визначенню 2. Як показано на прикладі, команди етапів з СЕ; до СЕ» не виконуються послідовно, оскільки з ними чергуються команди етапів з СЕ. до СЕу, а також інші ділянки коду. В цьому прикладі, таким со чином, реалізоване таке впорядкування: СЕ у вставлений фрагмент коду, СЕ», вставлений фрагмент коду, -пееCorrespond to definition 2. As shown in the example, teams of stages with CE; to SE" are not performed sequentially, since the stage commands from SE alternate with them. to SEu, as well as other sections of the code. In this example, in this way, the following ordering is implemented: SE in inserted code fragment, SE", inserted code fragment, -pee

СЕУ, вставлений фрагмент коду, СЕ»", вставлений фрагмент коду, СЕз, вставлений фрагмент коду, СЕз.SEU, inserted code fragment, SE"", inserted code fragment, SEz, inserted code fragment, SEz.

Слід зазначити, що в ході виконання захищеної програми 2р у присутності пристрою 6 щоразу, коли цього - вимагає команда етапу, що міститься в частині першої виконуваної частини 2рез захищеної програми 2р, ї- відповідний етап виконується в пристрої 6. Таким чином, у присутності пристрою 6 ця частина виконується коректно й, отже, захищена програма 2р є повнофункціональною.It should be noted that during the execution of the protected program 2p in the presence of the device 6, whenever this is required by the stage command contained in the first part of the executable part 2rez of the protected program 2p, the corresponding stage is executed in the device 6. Thus, in the presence of the device 6, this part is performed correctly and, therefore, the protected program 2p is fully functional.

На Фіг.54 наведений приклад спроби виконання захищеної програми 2р за відсутності пристрою 6. У цьому прикладі в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р: « - у момент ї/ - виконання команди етапу ОШТ(х, Х), ОШТ(У, У) не може викликати передачу даних Хі в шщ с області пам'яті відповідно х і у, з огляду на відсутність пристрою 6; й - у момент їй - виконання команди етапу ТКІС(Ї) не може викликати виконання функції ї, з огляду на «» відсутність пристрою 6; - Її в момент їз - виконання команди етапу ІМ(7) не може викликати передачу результату функції Її, з оглядуFig. 54 shows an example of an attempt to execute the protected program 2r in the absence of device 6. In this example, during the execution of the data processing system Z of the first executable part 2rez of the protected program 2r: « - at the moment y/ - execution of the command of the stage OSHT(x, X ), OSHT(U, U) cannot cause the transfer of data Хі to ХХ s memory area, respectively х and у, due to the absence of device 6; y - at the moment y - the execution of the command of the TKIS(Y) stage cannot cause the execution of function y, given the "" absence of device 6; - Her at the time of departure - the execution of the IM(7) stage command cannot cause the transfer of the result of the Her function, in view of

На відсутність пристрою 6. -і Таким чином, вважається, що за відсутності пристрою б щонайменше один запит одного фрагмента першої виконуваної частини 2рез на запуск виконання етапу у пристрої б не може бути коректно виконаний, так що і принаймні ця частина не виконується коректно, й, отже, захищена програма 2р не є повнофункціональною. - Відповідно до іншої кращої характеристики винаходу спосіб захисту націлений на реалізацію принципу захисту, названого "елементарні функції", опис якого проілюстровано Фіг.60 - 64. бо Для реалізації принципу захисту за допомогою елементарних функцій визначають:In the absence of device 6. -and Thus, it is considered that in the absence of device b at least one request of one fragment of the first executable part 2rez to start the execution of the stage in device b cannot be correctly executed, so that at least this part is not executed correctly, and , therefore, the protected program 2p is not fully functional. - According to another better characteristic of the invention, the protection method is aimed at implementing the protection principle called "elementary functions", the description of which is illustrated in Fig. 60 - 64. Because to implement the protection principle by means of elementary functions, the following are defined:

Ф - набір елементарних функцій, елементарні функції якого можуть бути виконані за допомогою другої виконуваної частини 2реи, у пристрої 6, можливо, з наступною передачею даних між системою З обробки даних і пристроєм 6; - Ї набір елементарних команд для цього набору елементарних функцій, причому ці елементарні команди можуть бути виконані в системі З обробки даних, викликаючи виконання у пристрої 6 відповідних елементарних іФ) функцій. ко Для реалізації принципу захисту за допомогою елементарних функцій мають бути реалізовані також засоби експлуатації, що дозволяють перетворити незадіяний пристрій 60, що містить засоби 15 запам'ятовування і бо засоби 16 обробки, на пристрій б, здатний виконувати елементарні функції. При цьому виконання цих елементарних функцій викликається виконанням елементарних команд у системі З обробки даних.F - a set of elementary functions, the elementary functions of which can be performed with the help of the second executable part of the 2ray, in the device 6, possibly with subsequent data transfer between the data processing system C and the device 6; - A set of elementary commands for this set of elementary functions, and these elementary commands can be executed in the data processing system, causing the device 6 to perform the corresponding elementary iF) functions. In order to implement the principle of protection with the help of elementary functions, means of operation must also be implemented, which allow converting the idle device 60, which contains the means of memory 15 and the means of processing 16, into a device b capable of performing elementary functions. At the same time, the execution of these elementary functions is called by the execution of elementary commands in the Z data processing system.

Для реалізації принципу захисту за допомогою елементарних функцій у вихідному коді 2у8 уразливої програми вибирається також принаймні один алгоритм, що використовує щонайменше один операнд і видає щонайменше один результат. Вибирається також щонайменше один фрагмент вихідного коду 2у5 уразливої 65 програми, що містить щонайменше один вибраний алгоритм.To implement the principle of protection with the help of elementary functions, at least one algorithm that uses at least one operand and produces at least one result is also selected in the source code of the 2u8 vulnerable program. At least one fragment of the source code of the vulnerable 65 program containing at least one selected algorithm is also selected.

Принаймні один вибраний фрагмент коду 2уз уразливої програми в цьому випадку модифікується таким чином, щоб одержати вихідний код 2рз захищеної програми. Ця модифікація така, що: - в ході виконання захищеної програми 2р принаймні один фрагмент першої виконуваної частини 2рев, що виконується в системі З обробки даних, враховує, що функціональна можливість щонайменше одного вибраного алгоритму виконується у пристрої 6; - в Ході виконання захищеної програми 2р друга виконувана частина 2реи, що виконується у пристрої 6, реалізує щонайменше функціональну можливість щонайменше одного вибраного алгоритму; - кожний вибраний алгоритм розкладається таким чином, що в ході виконання захищеної програми 2р кожний вибраний алгоритм виконується за допомогою другої виконуваної частини 2реи із застосуванням елементарних 70 функцій. Кожний вибраний алгоритм краще розкладається на елементарні функції Те, (де п пробігає значення від 1 до М), як-от: - можливо, на одну або декілька елементарних функцій, що дозволяють надати один або декілька операндів для пристрою 6, - на елементарні функції, деякі з яких використовують один або декілька операндів і які у поєднанні 7/5 Здійснюють функціональну можливість вибраного алгоритму, що використовує ці операнди, - ї, можливо, на одну або декілька елементарних функцій, що дозволяють за допомогою пристрою 6 надати системі З обробки даних результат виконання вибраного алгоритму; - причому впорядкування елементарних команд вибирається в ансамблі впорядкувань, що дозволяють виконати захищену програму 2р. Перша виконувана частина 2рез захищеної програми 2р, яка виконується в системі З обробки даних, виконує елементарні команди СЕЕ, (де п пробігає значення від 1 до М), що викликає у пристрої 6 виконання, за допомогою другої виконуваної частини 2реи, кожної з вищезгаданих елементарних функцій Те,.In this case, at least one selected fragment of the code of the vulnerable program is modified in such a way as to obtain the source code of the protected program. This modification is such that: - during the execution of the protected program 2p, at least one fragment of the first executable part 2rev, executed in the data processing system C, takes into account that the functionality of at least one selected algorithm is executed in the device 6; - during the execution of the protected program 2r, the second executable part of the 2rea, which is executed in the device 6, implements at least one functional possibility of at least one selected algorithm; - each selected algorithm is decomposed in such a way that during the execution of the protected program 2r, each selected algorithm is executed with the help of the second executable part of the 2rea using elementary 70 functions. Each selected algorithm is better decomposed into elementary functions Te, (where n ranges from 1 to M), such as: - possibly into one or more elementary functions that allow providing one or more operands for device 6, - into elementary functions , some of which use one or more operands and which in combination 7/5 Implement the functional possibility of the selected algorithm using these operands, - and, possibly, to one or more elementary functions that allow using the device 6 to provide the system with data processing result of execution of the selected algorithm; - and the arrangement of elementary commands is selected from the ensemble of arrangements that allow to execute the protected program 2r. The first executable part 2rez of the protected program 2p, which is executed in the data processing system Z, executes elementary commands CEE, (where n ranges from 1 to M), which causes the device 6 to execute, with the help of the second executable part 2rey, each of the above-mentioned elementary commands functions Te,.

На Фіг.60 наведений приклад виконання вразливої програми 2у. У цьому прикладі в ході виконання вразливої програми 2у у системі З обробки даних у даний момент часу провадиться розрахунок 2.-К(Х, У), що відповідає сч присвоєнню змінній 7 результату виконання алгоритму, поданого функцією Е і що використовує операнди Х і У.Fig. 60 shows an example of the execution of the vulnerable program 2y. In this example, during the execution of the vulnerable program 2y in the data processing system Z, at this moment in time, the calculation 2.-K(X, Y) is carried out, which corresponds to the assignment to variable 7 of the result of the execution of the algorithm given by the function E and using the operands X and Y .

На Фіг.61 наведений приклад реалізації винаходу, в якому виконання вибраного алгоритму, що відповідає оFig. 61 shows an example of the implementation of the invention, in which the execution of the selected algorithm corresponding to

Фіг.60, винесено у пристрій 6. У цьому прикладі в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р, у присутності пристрою 6, мають місце: - у моменти Її, й - виконання елементарних команд СЕРЕ, СЕРЕ», що викликає у пристрої 6 виконання, за Ге) зо допомогою другої виконуваної частини 2рец, відповідних елементарних функцій Те, Тео, які забезпечують передачу даних Х, ХУ з системи З обробки даних в області пам'яті відповідно х і у, розташовані в засобах 15 со запам'ятовування пристрою б, причому ці елементарні команди СЕРЕ 4, СЕРЕ» подані відповідно як ОШТХ, Х), «--Fig. 60, displayed in the device 6. In this example, during the execution of the data processing of the first executable part 2rez of the protected program 2p in the system Z, in the presence of the device 6, the following occur: - at the moments of Her, and - the execution of the elementary commands SERE, SERE" , which causes the device 6 to execute, according to Ge) with the help of the second executable part 2rets, the corresponding elementary functions Te, Teo, which ensure the transfer of data X, XU from the data processing system Z in the memory area, respectively, x and y, located in the means 15 with device memory b, and these elementary commands SERE 4, SERE" are presented respectively as ОШХХ, Х), "--

ОЦТУ, Х; - у моменти з Б до (04 - виконання елементарних команд з СЕРЕз до СЕРЕмМ., що викликає у пристрої 6 вOTSTU, X; - at moments from B to (04 - execution of elementary commands from SEREz to SEREmM., which causes the device 6 in

Зз5 Виконання, за допомогою другої виконуваної частини 2реи, відповідних елементарних функцій з Те з до Тем, ї- причому ці елементарні команди з СРЕз до СЕРЕ. 4 подані відповідно як ТКІС(Те 3)- ТКІС(Тем.4). Послідовність елементарних функцій з Тез до Тем, виконуваних у поєднанні, алгоритмічно еквівалентна функції Р. Точніше кажучи, виконання цих елементарних команд приводить до виконання у пристрої б елементарних функційЗз5 Execution, with the help of the second executable part of the 2rey, of the corresponding elementary functions from Те with to Тем, and these elementary commands from СРЕз to СЕРЕ. 4 are submitted, respectively, as TKIS (Tem. 3) - TKIS (Tem. 4). The sequence of elementary functions from Thes to Thems, executed in combination, is algorithmically equivalent to the function R. More precisely, the execution of these elementary commands leads to the execution of elementary functions in the device b

Тез-Тем.л, які використовують уміст областей пам'яті х, у і повертають результат у область пам'яті 2 пристрою 6; « - у момент їх - виконання елементарної команди СЕРЕ, що викликає у пристрої б виконання, за допомогою (пе) с другої виконуваної частини 2реи, елементарної функції Тем, що забезпечує передачу результату виконання й алгоритму, що міститься в області пам'яті 72 пристрою 6, системі З обробки даних, щоб присвоїти цей результат «» змінній 7, причому ця елементарна команда СЕРЕу| подана як ІМ(2).Tez-Tem.l, which use the contents of memory areas x, y and return the result to memory area 2 of device 6; " - at the moment of them - the execution of the elementary command SERE, which causes the device b to execute, with the help of (pe) from the second executable part of the 2rey, the elementary function Tem, which ensures the transfer of the execution result and the algorithm contained in the memory area 72 of the device 6, to the Z data processing system to assign this result "" to variable 7, and this elementary command SEREu| given as IM(2).

У наведеному прикладі елементарні команди з 1 до М виконуються послідовно. Слід зазначити, що можнаIn the given example, elementary commands from 1 to M are executed sequentially. It should be noted that it is possible

Зробити два такі вдосконалення. -і - Перше вдосконалення стосується випадку, коли декілька алгоритмів винесені у пристрій 6 і щонайменше результат виконання одного алгоритму використовується іншим алгоритмом. У цьому випадку деякі елементарні і команди, що служать для передачі, можуть бути вилучені. - - Друге вдосконалення має на меті належне впорядкування елементарних команд у ансамблі впорядкувань, 5р що дозволяють виконати захищену програму 2р. бо У цьому відношенні краще вибрати таке впорядкування елементарних команд, що розділяє в часі виконанняMake two such improvements. -and - The first improvement refers to the case when several algorithms are assigned to the device 6 and at least the result of the execution of one algorithm is used by another algorithm. In this case, some basic and transmission commands can be removed. - - The second improvement is aimed at the proper arrangement of elementary commands in the ensemble of arrangements, 5p, which allow to execute the protected program 2p. because In this regard, it is better to choose such an arrangement of elementary commands that separates in execution time

Ф елементарних функцій, вставляючи між ними ділянки коду, виконуваного в системі З обробки даних, і містить (або не містить) елементарні команди, що служать для визначення інших даних. Фіг.62 і 63 ілюструють принцип такої реалізації.Ф of elementary functions, inserting between them sections of the code executed in the data processing system Z, and contains (or does not contain) elementary commands that serve to define other data. Figures 62 and 63 illustrate the principle of such an implementation.

На Фіг.62 наведений приклад виконання вразливої програми 2у. У цьому прикладі в ході виконання вразливої програми 2му у системі З обробки даних здійснюється виконання двох алгоритмів, що приводять до визначення 7 і іФ) 7, таких, що 2. К(Х, Хі 2-Х, ХУ. ко На Фіг.63 наведений приклад реалізації способу згідно з винаходом, у якому виконання обох вибраних алгоритмів, що відповідають Фіг.62, винесено в пристрій 6. Відповідно до цього приклада в ході виконання в бо системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р, у присутності пристрою 6, має місце, як було пояснено вище, виконання елементарних команд з СЕРЕ 4 до СЕРЕм, що відповідає визначенню 7, виконання елементарних команд з СЕРЕ до СЕЕу", що відповідає визначенню 7. Як показано на даній фігурі, елементарні команди з СЕРЕ до СЕРЕу не виконуються послідовно, тобто елементарні команди з СЕРЕ / доFig. 62 shows an example of the execution of the vulnerable program 2y. In this example, during the execution of the vulnerable program 2 in the data processing system Z, two algorithms are executed that lead to the determination of 7 and iF) 7, such that 2. given an example of the implementation of the method according to the invention, in which the execution of both selected algorithms corresponding to Fig. 62 is carried out in the device 6. According to this example, during the execution of the first executable part 2rez of the protected program 2p in the system Z of data processing, in the presence of the device 6, there is, as explained above, the execution of elementary commands from SERE 4 to SEREm, which corresponds to definition 7, the execution of elementary commands from SERE to SEREu", which corresponds to definition 7. As shown in this figure, the elementary commands from SERE to SEREu are not executed sequentially, i.e. elementary commands from SERE / to

СЕЕу/, а також інші ділянки коду чергуються. В цьому прикладі, таким чином, реалізоване таке впорядкування: 65 СЕБЕ, вставлений фрагмент коду, СРЕ/, СЕРЕ», вставлений фрагмент коду, СЕРЕ», СЕЕуз, вставлений фрагмент коду, СЕРЕ, СЕЕз, СЕЕ,,..., СРЕМ, СЕРЕ у.CEEu/, as well as other sections of the code alternate. In this example, thus, the following ordering is implemented: 65 SEBE, inserted code fragment, CREP/, CERE", inserted code fragment, CERE", CEEuz, inserted code fragment, CERE, CEEz, CEE,,..., CEREM, SULFUR in.

Слід зазначити, що в ході виконання захищеної програми 2р у присутності пристрою б кожного разу, коли цього вимагає елементарна команда, що міститься в частині першої виконуваної частини 2рез захищеної програми 2р, відповідна елементарна функція виконується у пристрої 6. Таким чином, вважається, що в присутності пристрою б ця частина виконується коректно й, отже, захищена програма 2р є повнофункціональною.It should be noted that during the execution of the protected program 2p in the presence of the device b every time the elementary command contained in the part of the first executable part 2rez of the protected program 2p requires it, the corresponding elementary function is executed in the device 6. Thus, it is considered that in presence of the device b, this part is performed correctly and, therefore, the protected program 2p is fully functional.

На Фіг.64 наведений приклад спроби виконання захищеної програми 2р за відсутності пристрою 6. У цьому прикладі, в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р, виконання елементарної команди в жодний момент не може викликати запуск відповідної елементарної функції /о через відсутність пристрою 6. Величина, що її необхідно присвоїти змінній 7, не може, отже, бути визначена коректно.Fig. 64 shows an example of an attempt to execute the protected program 2p in the absence of device 6. In this example, during the execution of the data processing system Z of the first executable part 2rez of the protected program 2p, the execution of an elementary command cannot at any time trigger the launch of the corresponding elementary function / o due to the absence of device 6. The value that must be assigned to variable 7 cannot, therefore, be determined correctly.

Таким чином, вважається, що за відсутності пристрою 6 принаймні один запит одного фрагмента першої виконуваної частини 2рез захищеної програми 2р на запуск виконання елементарної функції у пристрої 6 не може бути коректно виконаний, так що принаймні ця частина не виконується коректно, й, отже, захищена 7/5 програма 2р не є повнофункціональною.Thus, it is considered that in the absence of device 6, at least one request of one fragment of the first executable part 2 of the protected program 2p to start the execution of an elementary function in device 6 cannot be correctly executed, so that at least this part is not executed correctly and, therefore, is protected 7/5 the 2nd program is not fully functional.

Відповідно до іншої кращої характеристики винаходу, спосіб захисту спрямований на реалізацію принципу захисту, названого "детектування й примус", опис якого виконано з посиланням на Фіг.70-74.According to another preferred feature of the invention, the method of protection is aimed at implementing the principle of protection called "detection and coercion", the description of which is made with reference to Fig.70-74.

Для реалізації принципу захисту за допомогою детектування й примусу визначаються: - щонайменше одна характеристика виконання програми, яка може бути проконтрольована, щонайменше 2о частково, у пристрої 6; - щонайменше один критерій, що його слід дотримуватися щонайменше для однієї характеристики виконання програми; - засоби 17 детектування, що їх необхідно застосовувати у пристрої б і які дозволяють виявити, що принаймні одна характеристика виконання програми не відповідає щонайменше одному відповідному критерію; с - засоби 18 примусу, що їх необхідно застосовувати у пристрої 6 і які дозволяють проінформувати систему З обробки даних і/або модифікувати виконання програми, поки не дотримано хоча б одного критерію. і)To implement the principle of protection by means of detection and coercion, the following are defined: - at least one characteristic of program execution, which can be controlled, at least partially, in device 6; - at least one criterion that should be observed for at least one characteristic of program execution; - detection means 17, which must be used in the device b and which allow to detect that at least one characteristic of the program execution does not meet at least one relevant criterion; c - means 18 of coercion, which must be used in the device 6 and which allow to inform the data processing system and/or modify the execution of the program until at least one criterion is met. and)

Для реалізації принципу захисту за допомогою детектування й примусу конструюють також засоби експлуатації, що дозволяють перетворити незадіяний пристрій 60, що містить засоби 15 запам'ятовування і засоби 16 обробки, на пристрій 6, який щонайменше реалізує засоби 17 детектування й засоби 18 примусу. «о зо На Фіг.70 показані засоби, необхідні для реалізації принципу захисту за допомогою детектування й примусу.To implement the principle of protection by means of detection and coercion, means of operation are also designed, which allow to transform the inactive device 60, which contains means 15 of memory and means 16 of processing, into a device 6, which at least implements means 17 of detection and means 18 of coercion. Fig. 70 shows the means necessary to implement the principle of protection by means of detection and coercion.

Пристрій 6 містить засоби 17 детектування й засоби 18 примусу, що належать засобам 16 обробки. Засоби 18 со примусу одержують інформацію про недотримання критерію від засобів 17 детектування. «-Device 6 contains detection means 17 and forcing means 18 belonging to processing means 16. Means 18 of coercion receive information about non-compliance with the criterion from means 17 of detection. "-

Точніше кажучи, засоби 17 детектування використовують інформацію, що виходить від засобів 13 передачі і/або від засобів 15 запам'ятовування і засобів 16 обробки, щоб дотримувалася одна або декілька характеристик ї- з5 Виконання програми. Кожній характеристиці виконання програми зіставляється щонайменше один критерій, що ча його слід дотримуватися.More precisely, the detection means 17 use the information coming from the transmission means 13 and/or from the storage means 15 and the processing means 16 so that one or more characteristics of the execution of the program are observed. Each characteristic of program execution is assigned at least one criterion that should be followed.

У випадку якщо виявлено, що принаймні одна характеристика виконання програми не задовольняє щонайменше одному критерію, засоби 17 детектування інформують про це засоби 18 примусу. Ці засоби 18 примусу адаптовані для зміни відповідним чином стану пристрою 6. «In the event that it is found that at least one characteristic of the program execution does not satisfy at least one criterion, the detection means 17 inform the enforcement means 18 about it. These forcing means 18 are adapted to change the state of the device 6 accordingly.

Для реалізації принципу захисту шляхом детектування й примусу мають бути вибрані також: з с - щонайменше одна характеристика виконання контрольованої програми, серед характеристик виконання, якіTo implement the principle of protection by means of detection and coercion, the following must also be selected: c - at least one characteristic of the execution of the controlled program, among the characteristics of the execution, which

Й можуть бути проконтрольовані; и?» щонайменше один критерій, що його слід дотримуватися щонайменше для однієї вибраної характеристики виконання програми; - у вихідному коді 2уз уразливої програми, - щонайменше один алгоритм, для якого потрібно контролювати -І щонайменше одну характеристику виконання програми; - у вихідному коді 2уз уразливої програми, - щонайменше один фрагмент, що містить щонайменше одинAnd can be controlled; and?" at least one criterion that must be met for at least one selected performance characteristic of the program; - in the source code 2uz of the vulnerable program, - at least one algorithm for which it is necessary to control - AND at least one characteristic of the program execution; - in the source code of the 2uz vulnerable program, - at least one fragment containing at least one

Ш- вибраний алгоритм. - За виконання цих умов щонайменше один вибраний фрагмент коду 2уз уразливої програми модифікується, щоб одержати вихідний код 2рз захищеної програми. Ця модифікація така, що саме в ході виконання захищеної со програми 2р:Ш is the selected algorithm. - If these conditions are fulfilled, at least one selected fragment of the code of the vulnerable program is modified to obtain the source code of the protected program. This modification is such that precisely during the execution of the protected program 2r:

Ф - щонайменше один фрагмент першої виконуваної частини 2рез, яка виконується в системі З обробки даних, враховує, що принаймні одна характеристика виконання вибраної програми має бути проконтрольована, щонайменше частково, у пристрої 6; 5Б - друга виконувана частина 2рец, яка виконується у пристрої 6, контролює, щонайменше частково, одну характеристику виконання вибраної програми. (Ф, В ході виконання програми 2р, захищеної за допомогою принципу детектування й примусу, в присутності ка пристрою 6 має місце така ситуація: - якщо всі критерії, що відповідають усім контрольованим характеристикам виконання всіх модифікованих бо фрагментів захищеної програми 2р, дотримані, ці модифіковані фрагменти захищеної програми 2р функціонують належним чином і, отже, захищена програма 2р функціонує належним чином; - якщо ж щонайменше одного з критеріїв, що відповідає характеристиці контрольованого виконання одного фрагмента захищеної програми 2р, не дотримано, система З обробки даних інформується про це і/або функціонування фрагмента захищеної програми 2р модифікується таким чином, щоб функціонування захищеної 65 програми 2р було змінено.F - at least one fragment of the first executable part 2rez, which is executed in the data processing system Z, takes into account that at least one characteristic of the execution of the selected program must be controlled, at least partially, in the device 6; 5B - the second executable part 2rec, which is executed in the device 6, controls, at least partially, one characteristic of the execution of the selected program. (F, During the execution of the program 2p, protected using the principle of detection and coercion, in the presence of device 6, the following situation occurs: - if all the criteria corresponding to all the controlled characteristics of the execution of all modified fragments of the protected program 2p are met, these modified fragments of the protected program 2r function properly and, therefore, the protected program 2r functions properly; - if at least one of the criteria corresponding to the characteristic of the controlled execution of one fragment of the protected program 2r is not met, the Z data processing system is informed about this and/or the functioning of the fragment of the protected program 2r is modified in such a way that the functioning of the protected 65 program 2r is changed.

Природно, що за відсутності пристрою 6 принаймні один запит одного фрагмента першої виконуваної частиниNaturally, in the absence of device 6, at least one request of one fragment of the first executable part

2рез захищеної програми 2р на використання пристрою 6 не може бути коректно виконаний, так що щонайменше ця частина не виконується коректно, й, отже, захищена програма 2р не є повнофункціональною.2rez of the protected program 2r for the use of the device 6 cannot be performed correctly, so at least this part is not performed correctly, and therefore, the protected program 2r is not fully functional.

Для реалізації принципу захисту шляхом детектування й примусу краще використовувати два типи характеристики виконання програми.To implement the principle of protection by detection and enforcement, it is better to use two types of program execution characteristics.

Перший тип характеристики виконання програми відповідає змінній контролю виконання програми, а другий тип відповідає профілю використання програми. Ці обидва типи характеристик можуть використовуватися незалежно або в поєднанні.The first type of program execution characteristic corresponds to the program execution control variable, and the second type corresponds to the application usage profile. These two types of characteristics can be used independently or in combination.

Для реалізації принципу захисту шляхом детектування й примусу, що використовує як характеристику 7/0 Виконання програми змінну контролю виконання програми, мають бути визначені: - у засобах 15 запам'ятовування - можливість запам'ятати принаймні одну змінну контролю, що служить як кількісна характеристика використання щонайменше однієї функціональної можливості програми; - у засобах 17 детектування - можливість спостерігати принаймні одне порогове значення, зв'язане з кожною змінною контролю; - засоби поновлення, що дозволяють поновити кожну змінну контролю залежно від використання функціональної можливості, з якою вона зв'язана.To implement the principle of protection by detection and coercion, which uses as a characteristic 7/0 Program execution a program execution control variable, the following must be defined: - in the means 15 of memory - the ability to remember at least one control variable, which serves as a quantitative characteristic of use at least one functionality of the program; - in detection means 17 - the ability to observe at least one threshold value associated with each control variable; - means of renewal, allowing to renew each control variable depending on the use of the functionality with which it is connected.

Конструюють також засоби експлуатації, які задіюють, окрім засобів 17 детектування і засобів 18 примусу, також засоби поновлення.They also construct means of operation, which use, in addition to means of detection 17 and means of coercion 18, also means of renewal.

Крім того, у вихідному коді 2уз уразливої програми вибираються: - щонайменше одна функціональна можливість уразливої програми 2Уу, використання якої можна проконтролювати за допомогою змінної для кількісного контролю; - щонайменше одна змінна для кількісного контролю, що служить як кількісна характеристика зазначеної функціональної можливості; - щонайменше одне порогове значення, зв'язане зі змінною для кількісного контролю і відповідне межі сч ов Використання зазначеної функціональної можливості; о - Її щонайменше один метод поновлення змінної для кількісного контролю відповідно до використання зазначеної функціональної можливості.In addition, the following are selected in the source code of the vulnerable program: - at least one functional possibility of the vulnerable program 2Uu, the use of which can be controlled using a variable for quantitative control; - at least one variable for quantitative control, which serves as a quantitative characteristic of the specified functionality; - at least one threshold value associated with a variable for quantitative control and corresponding to the limit of the use of the specified functionality; o - Its at least one method of updating the variable for quantitative control according to the use of the specified functionality.

Вихідний код 2уз уразливої програми потім модифікується, щоб одержати вихідний код 2рз захищеної програми, причому ця модифікація така, що в ході виконання захищеної програми 2р друга виконувана частина Ге зо 2реи: - поновлює значення змінної для кількісного контролю відповідно до використання зазначеної функціональної со можливості; «- - і бере до уваги щонайменше одне перевищення порогового значення.The source code 2z of the vulnerable program is then modified to obtain the source code 2rz of the protected program, and this modification is such that during the execution of the protected program 2r, the second executable part of Gezo 2rey: - renews the value of the variable for quantitative control according to the use of the specified functionality; "- - and takes into account at least one exceedance of the threshold value.

Іншими словами, в ході виконання захищеної програми 2р значення змінної для кількісного контролю ї-In other words, during the execution of the protected program 2r, the value of the variable for quantitative control

Зб Поновлюється відповідно до використання зазначеної функціональної можливості, й у разі перевищення ї- порогового значення засобу 17 детектування інформують про це засоби 18 примусу, які приймають рішення, пристосоване до того, щоб проінформувати систему З обробки даних і/або модифікувати обробку, здійснювану засобами 16 обробки. Це дозволяє модифікувати функціонування фрагмента захищеної програми 2р таким чином, щоб функціонування захищеної програми 2р було змінене. «Зб It is renewed according to the use of the specified functionality, and in case of exceeding the threshold value of the detection means 17, the enforcement means 18 are informed about it, which make a decision adapted to inform the data processing system and/or modify the processing carried out by the means 16 processing This allows you to modify the functioning of a fragment of the protected program 2r in such a way that the functioning of the protected program 2r is changed. "

Для реалізації першого кращого варіанта реалізації принципу захисту за допомогою детектування й примусу, з с що використовує як характеристику змінну для кількісного контролю, визначають: - щонайменше для однієї змінної для кількісного контролю - декілька відповідних порогових значень; ;» - Ї різноманітні засоби примусу, що відповідають кожному з цих порогових значень.To implement the first best variant of the implementation of the principle of protection by means of detection and coercion, with c that uses a variable for quantitative control as a characteristic, determine: - for at least one variable for quantitative control - several corresponding threshold values; ;" - There are various means of coercion corresponding to each of these thresholds.

У вихідному коді 2уз уразливої програми вибираються також: - щонайменше одна змінна для кількісного контролю, що служить як кількісна характеристика використання -І щонайменше однієї функціональної можливості програми, з якою мають бути зв'язані декілька порогових значень, що відповідають різноманітним межам використання зазначеної функціональної можливості; - - Ї щонайменше два порогових значення, зв'язані зі змінною для кількісного контролю. - Вихідний код 2уз уразливої програми потім модифікується, щоб одержати вихідний код 2рз захищеної 5р програми. Ця модифікація така, що в ході виконання захищеної програми 2р друга виконувана частина 2реи: со - поновлює значення змінної для кількісного контролю відповідно до використання зазначеної функціональноїIn the source code 2uz of the vulnerable program, the following are also selected: - at least one variable for quantitative control, which serves as a quantitative characteristic of the use - AND at least one functionality of the program, with which several threshold values should be associated, corresponding to various limits of the use of the specified functionality ; - - There are at least two threshold values associated with the variable for quantitative control. - The 2uz source code of the vulnerable program is then modified to produce the 2rz source code of the protected 5r program. This modification is such that during the execution of the protected program 2r, the second executable part of the 2rei: co - renews the value of the variable for quantitative control in accordance with the use of the specified functional

Ф можливості; - і по-різному враховує перевищення різноманітних порогових значень.F possibilities; - and takes different account of exceeding various threshold values.

Іншими словами, у звичайному випадку в ході виконання захищеної програми 2р при перевищенні першого в порогового значення пристрій б інформує систему З обробки даних, даючи команду захищеній програмі 2р більше не використовувати цю функціональну можливість. Якщо ж захищена програма 2р продовжує (Ф, використовувати цю функціональну можливість, то може бути перевищене друге порогове значення. В разі ка перевищення другого порогового значення засоби 18 примусу можуть зробити непрацездатною вибрану функціональну можливість і/або зробити непрацездатною захищену програму 2р. 60 Для реалізації другого кращого варіанта принципу захисту шляхом детектування й примусу, що використовує як характеристику змінну для кількісного контролю, визначають засоби перезавантаження, що дозволяють щонайменше одне додаткове використання щонайменше однієї функціональної можливості програми, контрольованої за допомогою змінної для кількісного контролю.In other words, in the usual case, during the execution of the protected program 2p, when the first threshold value is exceeded, the device b informs the data processing system Z, giving the command to the protected program 2p not to use this functionality anymore. If the protected program 2r continues (F) to use this functionality, then the second threshold value may be exceeded. If the second threshold value is exceeded, the coercion means 18 can disable the selected functionality and/or disable the protected program 2r. 60 To implement of the second preferred variant of the principle of protection by detection and enforcement, which uses as a characteristic a variable for quantitative control, defines a reset means that allows at least one additional use of at least one functionality of the program controlled by means of a variable for quantitative control.

Конструюють також засоби експлуатації, де застосовані, крім засобів 17 детектування, засобів 18 примусу й 65 засобів поновлення, також і засоби перезавантаження.They also design means of operation, where applied, in addition to means of detection 17, means of coercion 18 and means of renewal 65, as well as means of rebooting.

Крім того, у вихідному коді 2уз уразливої програми вибирається щонайменше одна змінна для кількісного контролю, що служить для обмеження використання щонайменше однієї функціональної можливості програми, для якої існує можливість дозволу на щонайменше одне додаткове використання.In addition, in the source code 2uz of the vulnerable program, at least one variable is selected for quantitative control, which serves to limit the use of at least one functionality of the program, for which there is a possibility of allowing at least one additional use.

Вихідний код 2уз уразливої програми потім модифікується, щоб одержати вихідний код 2рз захищеної програми, причому ця модифікація така, що у фазі, названій фазою перезавантаження, принаймні одне додаткове використання щонайменше однієї функціональної можливості, що відповідає одній вибраній змінній для кількісного контролю, може бути дозволене.The source code 2z of the vulnerable program is then modified to obtain the source code 2rz of the protected program, the modification being such that in a phase called the reload phase, at least one additional use of at least one functionality corresponding to one selected variable for quantitative control may be allowed .

У фазі перезавантаження відбувається поновлення щонайменше однієї вибраної змінної для кількісного контролю і/або щонайменше одного пов'язаного порогового значення, щоб дозволити щонайменше одне 7/0 додаткове використання відповідної функціональної можливості. Іншими словами, у фазі перезавантаження забезпечується можливість дозволити додаткові використання щонайменше однієї функціональної можливості захищеної програми 2р.In the restart phase, at least one selected variable for quantitative control and/or at least one associated threshold value is updated to allow at least one 7/0 additional use of the corresponding functionality. In other words, in the restart phase, an opportunity is provided to allow additional use of at least one functionality of the protected program 2r.

Для реалізації принципу захисту шляхом детектування й примусу, що використовує як характеристику профіль використання програми, як критерій, що його слід дотримуватися для цього профілю використання, має /5 бути визначена щонайменше одна ознака виконання програми.In order to implement the principle of protection by detection and enforcement, which uses as a characteristic the profile of the use of the application, as a criterion to be observed for this profile of use, at least one characteristic of the execution of the application must /5 be defined.

Крім того, у вихідному коді 2уз уразливої програми вибирають: - щонайменше один профіль використання, що його слід контролювати; - Її щонайменше одну ознаку виконання, що її слід дотримуватися щонайменше в одному профілі використання.In addition, in the source code 2uz of the vulnerable program, select: - at least one usage profile that should be controlled; - Its at least one performance characteristic that must be observed in at least one usage profile.

Вихідний код 2уз уразливої програми потім модифікується, щоб одержати вихідний код 2рз захищеної програми, причому ця модифікація така, що в ході виконання захищеної програми 2р друга виконувана частина 2реим дотримується всіх вибраних ознак виконання.The source code 2z of the vulnerable program is then modified to produce the source code 2rz of the protected program, and this modification is such that during the execution of the protected program 2r, the second executable part 2reim observes all the selected execution features.

Іншими словами, пристрій 6 сам контролює той спосіб, яким виконується друга виконувана частина 2рем, і може інформувати систему З обробки даних і/або модифікувати функціонування захищеної програми 2р в разі, сч г якщо не дотримується хоча б одна ознака виконання.In other words, the device 6 itself controls the way in which the second executable part 2rem is executed and can inform the data processing system Z and/or modify the functioning of the protected program 2r in the event that at least one execution feature is not observed.

В ході виконання програми 2р, захищеної на основі даного принципу, в присутності пристрою б має місце і) така ситуація: - якщо всіх ознак виконання всіх модифікованих фрагментів захищеної програми 2р, дотримано, то ці модифіковані фрагменти захищеної програми 2р функціонують належним чином і, отже, захищена програма 20;.ЙК(О0 зо функціонує належним чином; - якщо ж хоча б однієї ознаки виконання одного фрагмента захищеної програми 2р не дотримано, про це со інформується система З обробки даних і/або функціонування фрагмента захищеної програми 2р модифікується «- таким чином, щоб функціонування захищеної програми 2р було змінено.During the execution of the 2p program, protected on the basis of this principle, in the presence of the device b) the following situation occurs: - if all the signs of the execution of all modified fragments of the protected 2p program are observed, then these modified fragments of the protected 2p program function properly and, therefore , the protected program 20;.YK(O0 zo functions properly; - if at least one sign of the execution of one fragment of the protected program 2r is not observed, the system of data processing and/or the functioning of the fragment of the protected program 2r is informed about this, it is modified "- so in such a way that the functioning of the protected program 2r was changed.

Можна передбачити контроль різноманітних ознак виконання, наприклад, контроль наявності інструкцій, що - містять генератор міток, або контроль зчеплення виконання щонайменше однієї частини інструкцій. ї-It is possible to provide control of various features of execution, for example, control of the presence of instructions containing a label generator, or control of the coupling of the execution of at least one part of the instructions. uh-

Для реалізації принципу захисту шляхом детектування й примусу, де як ознака виконання, що її слід дотримуватися, використовується контроль зчеплення виконання щонайменше частини інструкцій, визначають: - набір інструкцій, інструкції зі складу якого можуть бути виконані у пристрої 6; - набір команд інструкцій для цього набору інструкцій, причому ці команди інструкцій можуть бути виконані «To implement the principle of protection by means of detection and coercion, where as a sign of execution, which should be followed, clutch control of the execution of at least part of the instructions is used, determine: - a set of instructions, the instructions from which can be executed in the device 6; - a set of instruction commands for this instruction set, and these instruction commands can be executed "

В системі З обробки даних. Виконання кожної з цих команд інструкцій у системі З обробки даних викликає у пт») с пристрої 6 виконання відповідної інструкції; . - засоби 17 детектування, що дозволяють виявити, що зчеплення інструкцій не відповідає бажаному; и?» - засоби 18 примусу, що дозволяють проінформувати систему З обробки даних і/або модифікувати виконання програми, якщо зчеплення інструкцій не відповідає бажаному.In the Z data processing system. Execution of each of these instruction commands in the Z data processing system causes execution of the corresponding instruction in the pt») c device 6; . - detection means 17, which make it possible to detect that the coupling of instructions does not correspond to the desired one; and?" - means 18 of coercion, which make it possible to inform the data processing system and/or modify the execution of the program, if the coupling of the instructions does not correspond to the desired one.

Конструюють також засоби експлуатації що дозволяють пристрою б виконувати інструкції з набору -І інструкцій, причому виконання цих інструкцій викликається виконанням команд інструкцій у системі З обробки даних.They also design operating tools that allow the device b to execute instructions from a set of -I instructions, and the execution of these instructions is triggered by the execution of instruction commands in the Z data processing system.

Ш- Крім того, у вихідному коді 2у5 уразливої програми вибирається щонайменше один алгоритм, що має бути - винесений у пристрій 6 і для якого варто контролювати зчеплення щонайменше частини інструкцій.Ш- In addition, in the source code 2 and 5 of the vulnerable program, at least one algorithm is selected, which should be carried out in the device 6 and for which it is worth controlling the coupling of at least part of the instructions.

Вихідний код 2уз уразливої програми потім модифікується, щоб одержати вихідний код 2рз захищеної со програми. Ця модифікація така, що в ході виконання захищеної програми 2р:The source code of the vulnerable program is then modified to produce the source code of the protected program. This modification is such that during the execution of the protected program 2r:

Ф - друга виконувана частина 2реи виконує щонайменше функціональну можливість вибраного алгоритму; - вибраний алгоритм розкладається на інструкції; - задане зчеплення, що його мають дотримуватися щонайменше деякі з інструкцій у ході їхнього виконання у ов пристрої 6; - перша виконувана частина 2рез захищеної програми 2р виконує команди інструкцій, які запускаютьF - the second executable part of the 2rey performs at least the functional possibility of the selected algorithm; - the selected algorithm is divided into instructions; - given coupling, which must be followed by at least some of the instructions in the course of their execution in this device 6; - the first executable part 2rez of the protected program 2r executes the instruction commands that start

Ф) виконання інструкцій у пристрої 6. ка В ході виконання програми гр, захищеної на основі цього принципу, в присутності пристрою 6 має місце така ситуація: во - якщо зчеплення інструкцій усіх модифікованих фрагментів захищеної програми 2р відповідає бажаному, ці модифіковані фрагменти захищеної програми 2р функціонують належним чином і, отже, захищена програма 2р функціонує належним чином; - якщо ж зчеплення інструкцій фрагмента захищеної програми 2р, виконуваних у пристрої 6, не відповідає бажаному, то система З обробки даних інформується про це і/або функціонування фрагмента захищеної 65 програми 2р модифікується таким чином, щоб функціонування захищеної програми 2р було змінене.Ф) execution of instructions in device 6. ka During the execution of program r protected on the basis of this principle, in the presence of device 6, the following situation occurs: v - if the coupling of instructions of all modified fragments of protected program 2r corresponds to the desired, these modified fragments of protected program 2r function properly and, therefore, the protected program 2p functions properly; - if the coupling of the instructions of the fragment of the protected program 2r executed in the device 6 does not correspond to the desired one, the data processing system Z is informed about this and/or the functioning of the fragment of the protected program 2r is modified in such a way that the functioning of the protected program 2r is changed.

На Фіг.71 наведений приклад реалізації принципу захисту за допомогою детектування й примусу, де як ознака виконання, що її слід дотримуватися, використовується контроль зчеплення виконання щонайменше частини інструкцій у випадку, якщо бажаного зчеплення дотримано.Fig. 71 shows an example of the implementation of the principle of protection by means of detection and coercion, where as a sign of execution that it should be followed, control of the coupling of the execution of at least part of the instructions is used in the event that the desired coupling is observed.

Перша виконувана частина 2рез захищеної програми 2р, виконувана в системі З обробки даних, виконуєThe first executable part 2rez of the protected program 2r, executed in the Z data processing system, executes

Команди СІ; інструкцій, що викликає у пристрої 6 виконання інструкцій і;, що належать до набору інструкцій. У наборі інструкцій щонайменше деякі з інструкцій містять частину, що задає функціональну можливість інструкції, ії частину, що дозволяє перевіряти бажане зчеплення для виконання інструкцій. У цьому прикладі команди Сі; інструкцій подані як ТКІС(і)), а бажане зчеплення для виконання інструкцій є і, дні і іп». Виконання у пристрої 6 інструкції і, дає результат а, а виконання інструкції ід-4 дає результат Б. Інструкція ідо використовує 7/0 як операнд результатиаіїр інструкцій і, і ід-я, а її виконання дає результат с.SI teams; of instructions, which causes the device 6 to execute instructions and; belonging to the set of instructions. In a set of instructions, at least some of the instructions include a part that specifies the functionality of the instruction and a part that allows checking the desired coupling to execute the instructions. In this example, the C team; of instructions are given as TKIS(i)), and the desired clutch for executing the instructions is i, dni, and ip". The execution of the i instruction in device 6 gives the result a, and the execution of the id-4 instruction gives the result B. The ido instruction uses 7/0 as the operand of the results of the i and id-i instructions, and its execution gives the result c.

З урахуванням того, що це зчеплення інструкцій, виконуваних у пристрої 6, відповідає бажаному, функціонування захищеної програми 2р відповідає нормальному, або номінальному режиму.Taking into account the fact that this coupling of the instructions executed in the device 6 corresponds to the desired, the functioning of the protected program 2r corresponds to the normal or nominal mode.

На Фіг.72 наведений приклад реалізації принципу захисту за допомогою детектування й примусу, де як ознака виконання, що її слід дотримуватися, використовується контроль зчеплення виконання щонайменше /5 частини інструкцій у випадку, якщо бажаного зчеплення не дотримано.Fig. 72 shows an example of the implementation of the principle of protection by means of detection and coercion, where as a sign of execution that it should be followed, control of the coupling of the execution of at least /5 part of the instructions is used in the event that the desired coupling is not observed.

Відповідно до цього приклада бажане зчеплення для виконання інструкцій є завжди і дл, ід і іл. Проте зчеплення виконання інструкцій модифікується заміною інструкції і 4 на інструкцію Її таким чином, що насправді виконуваним зчепленням є Її", ідч4 і іп». Виконання інструкції ії дає результат а, тобто той самий результат, що й виконання інструкції ід. Проте не пізніше, ніж при виконанні інструкції ід-», засоби 17 детектування виявляють, що інструкція Ї у не відповідає бажаній інструкції для вироблення результату а, використовуваного як операнд для інструкції ідо. Засоби 17 детектування інформують про це засоби 18 примусу, які модифікують, як наслідок, функціонування інструкції і дю, таким чином, що виконання інструкції і дя» дає результат с, який може відрізнятися від с.According to this example, the preferred clutch for executing instructions is always both dl, id, and il. However, the coupling of the execution of the instructions is modified by replacing the instruction and 4 with the instruction It so that the actual coupling being executed is It", idch4 and ip". The execution of the instruction ii gives the result a, that is, the same result as the execution of the instruction id. However, no later than than when executing the instruction id-", the detection means 17 detect that the instruction Y does not correspond to the desired instruction to produce the result a used as an operand for the instruction ido. The detection means 17 inform the enforcement means 18 about this, which modify, as a result, the functioning instructions and du, in such a way that the execution of instructions and du" gives a result c, which may differ from c.

Зрозуміло, якщо виконання інструкції ї 4 дає результат а", відмінний від результату а інструкції ід, ясно, Що сч г результат виконання інструкції ідо може також відрізнятися від с.It is clear that if the execution of the instruction 4 gives a result a" different from the result a of the instruction id, it is clear that the result of the execution of the instruction id may also differ from p.

Отже, якщо зчеплення виконання інструкцій, виконуваних у пристрої 6, не відповідає бажаному, можна і) одержати модифікацію функціонування захищеної програми 2р.Therefore, if the coupling of the execution of the instructions executed in the device 6 does not correspond to the desired one, it is possible i) to obtain a modification of the functioning of the protected program 2r.

На Фіг.73 і 74 показаний кращий варіант реалізації принципу захисту за допомогою детектування й примусу, де як ознака виконання, що її слід дотримуватися, використовується контроль зчеплення виконання «о зо щонайменше частини інструкцій. Відповідно до цього кращого варіанта визначається набір інструкцій, у якому щонайменше деякі інструкції працюють на регістрах і використовують щонайменше один операнд для видачі со результату. «-Fig. 73 and 74 show a better version of the implementation of the principle of protection by means of detection and coercion, where as a sign of execution, which should be observed, control of the coupling of the execution of at least part of the instructions is used. According to this preferred embodiment, a set of instructions is defined in which at least some instructions operate on registers and use at least one operand to produce a result. "-

Як показано на Фіг.73, щонайменше для частини інструкцій, що працюють на регістрах, визначена частинаAs shown in Fig.73, at least for some of the instructions operating on the registers, a part is defined

РЕ, що задає функціональну можливість інструкції, й частина РЕ, що задає бажане зчеплення для виконання ї- інструкцій. Частина РЕ відповідає коду операцій, відомому фахівцеві. Частина РЕ, що визначає бажане ї- зчеплення, містить бітові поля, що відповідають: - полю СП ідентифікації інструкції; - ї для кожного операнда К інструкції, де К пробігає значення від 1 до К, К - число операндів інструкції: - полю СО, прапора, що вказує, чи варто перевіряти походження операнда К, « - Її полю СІР,; ідентифікації, передбаченої для операнда й що вказує на очікувану ідентичність інструкції, з с яка згенерувала вміст операнда К.RE, which sets the functional possibility of the instruction, and part of the RE, which sets the desired coupling for the execution of the instructions. The RE part corresponds to the operation code known to a specialist. The PE part that defines the desired coupling contains bit fields corresponding to: - the SP field of the instruction identification; - th for each operand K of the instruction, where K runs the value from 1 to K, K - the number of operands of the instruction: - the SO field, a flag indicating whether it is worth checking the origin of the operand K, « - its CIP field; identification provided for the operand and indicating the expected identity of the instruction that generated the contents of the operand K.

Як показано на Фіг.74, набір інструкцій містить М регістрів, що належать засобам 16 обробки, де кожний ;» регістр названий К., (м пробігає значення від 1 до М). Для кожного регістра Ку визначаються два поля, як-от: - функціональне поле СК, відоме фахівцеві й яке дозволяє зберігати результат виконання інструкцій; - і поле Сібу, генерованої ідентифікації, в якому автоматично запам'ятовується ідентифікація останньої -І інструкції, що повернула свій результат у вказаний регістр, тобто такої, що згенерувала вміст функціонального поля СЕ, Це поле Сібу генерованої ідентифікації поновлюється автоматично разом із вмістом поля СІЇAs shown in Fig. 74, the set of instructions contains M registers belonging to the means of processing 16, where each ;" the register is named K., (m ranges from 1 to M). For each Ku register, two fields are defined, such as: - functional field SK, known to a specialist and which allows to save the result of the execution of instructions; - and the Sibu field of the generated identification, in which the identification of the last instruction that returned its result to the specified register is automatically remembered, i.e. the one that generated the content of the SE functional field. This Sibu field of the generated identification is automatically updated together with the contents of the SII field

Ш- ідентифікації інструкції, зеенерувавши функціональне поле СЕу/. Поле Сіб,, генерованої ідентифікації не є ані - доступним, ані таким, що модифікується, для будь-якої іншої інструкції й служить винятково для засобів 17 детектування. со В ході виконання інструкції засоби 17 детектування виконують для кожного операнда к такі операції:Ш- identification of the instruction, having generated the functional field СЕу/. The Sib field of the generated identification is neither accessible nor modifiable by any other instruction and is used exclusively by detection means 17 . During the execution of the instruction, the detection means 17 perform the following operations for each operand k:

Ф - зчитується поле СО, прапора; - якщо цього вимагає поле СО, прапора, то зчитуються обидва поля: поле СІР,, передбаченої ідентифікації і поле СіІС,, генерованої ідентифікації, відповідне регістрам, використовуваним операндом К; - перевіряється рівність обох полів СІР, і СІб,; - Її, якщо рівність хибна, то засоби 17 детектування вважають, що зчеплення виконання інструкцій не (Ф, дотримано. ка Засоби 18 примусу мають дозволяти модифікувати результат виконання інструкцій, коли засоби 17 детектування проінформують їх про недотримання зчеплення інструкцій. Краща реалізація полягає в тому, щоб бо модифікувати функціональну частину РЕ виконуваної інструкції або функціональну частину РЕ наступних інструкцій.Ф - readable field CO, flag; - if this is required by the CO field, the flag, then both fields are read: the CIP field of the provided identification and the SiIS field of the generated identification corresponding to the registers used by the K operand; - the equality of both SIR and SIb fields is checked; - Its, if the equality is false, then the means of detection 17 consider that the coupling of the execution of instructions is not (F, observed). The means of coercion 18 should allow modifying the result of the execution of instructions, when the means of detection 17 inform them about the non-compliance of the coupling of instructions. The best implementation is , in order to modify the functional part of the RE of the executed instruction or the functional part of the RE of the following instructions.

Відповідно до іншої кращої характеристики винаходу спосіб захисту націлений на реалізацію принципу захисту, названого "перейменування", опис якого виконано з посиланням на Фіг.80-85.According to another best feature of the invention, the protection method is aimed at implementing the protection principle called "renaming", the description of which is made with reference to Fig.80-85.

Для реалізації принципу захисту перейменуванням мають бути визначені: 65 - ансамбль залежних функцій, залежні функції якого можуть бути виконані за допомогою другої виконуваної частини 2реи у пристрої 6, можливо, з наступною передачею даних між системою З обробки даних і пристроєм 6To implement the principle of protection by renaming, the following must be defined: 65 - an ensemble of dependent functions, the dependent functions of which can be performed with the help of the second executable part of the 2ray in the device 6, possibly with the subsequent transfer of data between the Z data processing system and the device 6

(причому цей ансамбль залежних функцій може бути кінцевим чи ні); - ансамбль команд запуску для цих залежних функцій, причому ці команди запуску можуть виконуватися в системі З обробки даних і викликати у пристрої 6 виконання відповідних залежних функцій; - для кожної команди запуску - настановний параметр, що відповідає, щонайменше частково, інформації, переданій першою виконуваною частиною 2рез другої виконуваної частини 2реи, щоб викликати запуск відповідної залежної функції причому цей настановний параметр представляється в формі щонайменше аргументу команди запуску; - метод перейменування настановних параметрів, призначений для застосування в ході модифікації /о вразливої програми і що дозволяє перейменувати настановні параметри таким чином, щоб одержати команди запуску з перейменованими параметрами, дозволяючи приховати ідентичність відповідних залежних функцій; - засоби 20 відновлення, призначені для застосування у пристрої 6 у фазі використання і що дозволяють відновити початкові настановні параметри виходячи з перейменованих настановних параметрів, щоб знайти залежну функцію, що її необхідно виконати.(and this ensemble of dependent functions may or may not be finite); - an ensemble of launch commands for these dependent functions, and these launch commands can be executed in the Z data processing system and cause the device 6 to execute the corresponding dependent functions; - for each launch command - a setting parameter that corresponds, at least in part, to the information transmitted by the first executable part 2rez of the second executable part 2rey to trigger the launch of the corresponding dependent function, and this setting parameter is presented in the form of at least an argument of the launch command; - a method of renaming configuration parameters, intended for use during the modification /o of a vulnerable program and which allows renaming configuration parameters in such a way as to receive launch commands with renamed parameters, allowing to hide the identity of the corresponding dependent functions; - recovery means 20 intended for use in the device 6 in the use phase and allowing to restore the initial setting parameters based on the renamed setting parameters in order to find the dependent function that needs to be performed.

Для реалізації принципу захисту перейменуванням конструюють також засоби експлуатації, що дозволяють перетворити незадіяний пристрій 60, що містить засоби 15 запам'ятовування і засоби 16 обробки, на пристрій 6, що застосовує щонайменше засоби 20 відновлення.To implement the principle of protection by renaming, the means of operation are also designed, which allow converting the idle device 60, which contains means 15 of memory and means 16 of processing, to the device 6, which uses at least means 20 of recovery.

Для реалізації принципу захисту перейменуванням у вихідному коді 2у5 уразливої програми мають бути також вибрані: - щонайменше один алгоритм обробки, що використовує щонайменше один операнд і що видає щонайменше один результат; - Ї щонайменше один фрагмент вихідного коду 2уз уразливої програми, що містить щонайменше один вибраний алгоритм.To implement the principle of protection by renaming, the following must also be selected in the source code of the vulnerable program: - at least one processing algorithm that uses at least one operand and that produces at least one result; - At least one fragment of the source code of the vulnerable program containing at least one selected algorithm.

Вихідний код 2уз уразливої програми потім модифікується, щоб одержати вихідний код 2рз захищеної сч ов програми. Ця модифікація така, що: - в ході виконання захищеної програми 2р щонайменше один фрагмент першої виконуваної частини 2рев, і) виконуваної в системі З обробки даних, враховує, що функціональна можливість щонайменше одного вибраного алгоритму виконується у пристрої 6; - в ході виконання захищеної програми 2р друга виконувана частина 2реи, яка виконується у пристрої 6, Ге зо виконує щонайменше функціональну можливість щонайменше одного вибраного алгоритму; - кожний вибраний алгоритм розкладається таким чином, що в ході виконання захищеної програми 2р кожний со вибраний алгоритм виконується за допомогою другої виконуваної частини 2реим, використовуючи залежні функції. пThe source code of the vulnerable program is then modified to produce the source code of the protected program. This modification is such that: - during the execution of the protected program 2p, at least one fragment of the first executable part 2rev, i) executed in the data processing system Z, takes into account that the functionality of at least one selected algorithm is executed in the device 6; - during the execution of the protected program 2r, the second executable part of the 2rea, which is executed in the device 6, Gezo performs at least one functional possibility of at least one selected algorithm; - each selected algorithm is decomposed in such a way that during the execution of the protected program 2r, each co-selected algorithm is executed with the help of the second executable part 2reim, using dependent functions. p

Кожний вибраний алгоритм краще розкладається на залежні функції Та, (де п пробігає значення від 1 до М), як-от: - можливо, на одну або декілька залежних функцій, що дозволяють надати один або декілька операндів для - зв пристрою б, ї- - на залежні функції, деякі з яких використовують один або декілька операндів і які в поєднанні здійснюють функціональну можливість вибраного алгоритму, що використовує ці операнди, - і, можливо, на одну або декілька залежних функцій, що дозволяють за допомогою пристрою 6 надати системі З обробки даних результат виконання вибраного алгоритму; « - в ході виконання захищеної програми 2р друга виконувана частина 2реи виконує залежні функції та; з с - в ході виконання захищеної програми 2р ці залежні функції запускаються командами запуску з перейменованими настановними параметрами; ;» - Її впорядкування команд запуску вибрано серед ансамблю впорядкувань, що дозволяють виконання захищеної програми 2р.Each selected algorithm is better decomposed into dependent functions T, (where n ranges from 1 to M), such as: - possibly into one or more dependent functions that allow providing one or more operands for - z device b, i- - on dependent functions, some of which use one or more operands and which in combination implement the functionality of the selected algorithm that uses these operands, - and, possibly, on one or more dependent functions that allow using the device 6 to provide the system with processing given the result of execution of the selected algorithm; "- during the execution of the protected program 2r, the second executable part of the 2rei performs dependent functions and; with c - during the execution of the protected program 2p, these dependent functions are launched by launch commands with renamed configuration parameters; ;" - Its sequence of launch commands is selected from the ensemble of sequences that allow the execution of the protected program 2r.

Перша виконувана частина 2рез захищеної програми 2р, виконувана в системі З обробки даних, виконує -І команди запуску з перейменованими настановними параметрами, що передають у пристрій 6 перейменовані настановні параметри. Це викликає у пристрої 6 відновлення за допомогою засобів 20 відновлення настановнихThe first executable part 2rez of the protected program 2r, executed in the Z data processing system, executes -I launch commands with renamed configuration parameters, which transfer the renamed configuration parameters to the device 6. This causes the device 6 to restore using the recovery tools 20 of the instructions

Ш- параметрів, а потім виконання, за допомогою другої виконуваної частини 2реи, кожної з вищезгаданих залежних - функцій та.Ш- parameters, and then execution, with the help of the second executable part of 2reya, of each of the above-mentioned dependent - functions and.

Іншими словами, принцип захисту за допомогою перейменування полягає в тому, щоб перейменувати со настановні параметри команд запуску, щоб одержати команди запуску з перейменованими настановнимиIn other words, the principle of protection by renaming is to rename co-configurations of the launch commands to obtain launch commands with renamed directives

Ф параметрами, виконання яких у системі З обробки даних викликає у пристрої б виконання залежних функцій, що запускалися б командами запуску з не перейменованими настановними параметрами, проте без того, щоб вивчення захищеної програми 2р дозволило визначити ідентичність виконуваних залежних функцій.Ф parameters, the execution of which in the З data processing system causes the execution of dependent functions in device b, which would be launched by launch commands with unrenamed setting parameters, but without the fact that studying the protected program 2р allows to determine the identity of the executed dependent functions.

На Фіг.80 наведений приклад виконання вразливої програми 2у. У цьому прикладі в ході виконання вразливої програми 2м у системі З обробки даних у даний момент часу має місце розрахунок 2--К(Х, У), що відповідає іФ) присвоєнню змінній 7 результату виконання алгоритму, поданого функцією Е і що використовує операнди Х і У. ко На Фіг.81 ії 82 наведений приклад реалізації винаходу. На Фіг.81 наведений приклад часткової реалізації винаходу. Відповідно до цього приклада в ході виконання в системі З обробки даних першої виконуваної частини бо 2рез захищеної програми 2р у присутності пристрою 6 здійснюються: - у моменти ї, й - виконання елементарних команд СО., СО», що викликає у пристрої б виконання, за допомогою другої виконуваної частини 2реи, відповідних залежних функцій та;, та», які забезпечують передачу даних Х, М з системи З обробки даних у області пам'яті відповідно х і у, розташовані в засобах 15 запам'ятовування пристрою 6, причому ці команди СО, СО» запуску подані відповідно як ОШТх, Х), ОТ (у, ХУ); 65 - у моменти з 5 до їм.4 - виконання команд запуску з СОз до СОМ, що викликає у пристрої б виконання за допомогою другої виконуваної частини 2реи відповідних залежних функцій з їт4з до Так, причому ці команди запуску з СЮОз до СОк.4 подані відповідно як ТКІС(Таз) -ТКІС(Так 1), причому послідовність залежних функцій з Таз до їТак.я, виконуваних у поєднанні, алгоритмічно еквівалентна функції Е (точніше кажучи, виконання цих команд запуску призводить до виконання у пристрої б залежних функцій з Таз до їду, які використовують уміст областей пам'яті х, у і повертають результат у область пам'яті 72 пристрою 6); - а у момент їх здійснюється виконання команди СО у запуску, що викликає у пристрої б виконання, за допомогою другої виконуваної частини 2рец, залежної функції їТЯу, що забезпечує передачу результату виконання алгоритму, що міститься в області пам'яті 2 пристрою 6, системі З обробки даних, щоб присвоїти його змінній 7. Ця команда подана як ІМ(2). 70 У даному прикладі, щоб цілком реалізувати винахід, як настановний параметр вибраний перший аргумент команд ОТ запуску й аргумент команд ТКС і ІМ запуску. Вибрані таким чином настановні параметри перейменовуються за методом перейменування настановних параметрів. Таким чином, настановні параметри команд запуску з СО і до СОум, як-от х, у, Таз, Т4к.я, 2 перейменовуються так, щоб одержати відповідно К(х), ККУ), (аз)... (Там), (г).Fig. 80 shows an example of the execution of the vulnerable program 2y. In this example, during the execution of the vulnerable program 2m in the data processing system Z, at this moment in time, the calculation 2--K(X, Y) takes place, which corresponds to the assignment to variable 7 of the result of the execution of the algorithm given by the function E and using the operands X and U. ko Fig. 81 and 82 show an example of the implementation of the invention. Fig. 81 shows an example of a partial implementation of the invention. According to this example, during the execution of the data processing of the first executable part of the protected program 2r in the system Z in the presence of the device 6, the following are carried out: - at moments y and y - the execution of elementary commands СО., СО", which causes the device b to execute, according to with the help of the second executable part of 2reya, the corresponding dependent functions and;, and" that ensure the transmission of data X, M from the data processing system Z in the memory area, respectively, x and y, are located in the storage means 15 of the device 6, and these commands СО, СО» of the launch are given respectively as ОШТх, Х), ОТ (у, ХУ); 65 - at moments from 5 to iM.4 - execution of launch commands from СОз to СОМ, which causes the device b to execute with the help of the second executable part of 2rey the corresponding dependent functions from ЯТ4з to Yes, and these launch commands from СХОз to СОк.4 are submitted respectively as TKIS(Taz) -TKIS(Tak 1), and the sequence of dependent functions from Taz to iTak.i, performed in combination, is algorithmically equivalent to the function E (more precisely, the execution of these start commands leads to the execution of dependent functions from Taz in device b to food, which use the contents of the memory areas x, y and return the result to the memory area 72 of the device 6); - and at their moment, the CO command is executed in the start-up, which causes execution in the device b, with the help of the second executable part 2rec, the dependent function уТЯу, which ensures the transfer of the result of the execution of the algorithm contained in the memory area 2 of the device 6, to the system З data processing to assign it to variable 7. This command is given as IM(2). 70 In this example, in order to fully implement the invention, the first argument of the OT launch commands and the argument of the TCS and IM launch commands are selected as a setting parameter. The setting parameters selected in this way are renamed according to the setting parameter renaming method. Thus, the setting parameters of the launch commands from СО and to СОum, such as x, y, Taz, T4k.ya, 2 are renamed to obtain respectively K(x), KKU), (az)... (Tam) , (g).

На Фіг.82 наведений приклад повної реалізації винаходу. Відповідно до цього приклада в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р, у присутності пристрою 6, здійснюються: - у моменти ї/, й - виконання команд СОСКУ, СОСК» запуску з перейменованими настановними параметрами, що передають у пристрій 6 перейменовані настановні параметри К(х), К(У), а також дані Х, У, що викликає у пристрої 6 відновлення (за допомогою засобів 20 відновлення) перейменованих настановних параметрів, щоб відновити настановні параметри, як-от ідентичність областей пам'яті х, у, а потім виконання, за допомогою другої виконуваної частини 2реи, відповідних залежних функцій 14.4, тд», що забезпечують передачу даних Х, У від системи З обробки даних до областей пам'яті відповідно х, у, розташованих у засобах 15 запам'ятовування пристрою б (ці команди СОСК., СОСК»о запуску з перейменованими настановними параметрами подані сч ов Відповідно як ООТ (Р), Х), ОТ (КУ), Х); - у моменти з із до Її - виконання команд СОСК»з до СОСКУ 1 запуску з перейменованими настановними і) параметрами, що передають у пристрій 6 перейменовані настановні параметри з К(Тд4з) до К(Так.4), що викликає у пристрої 6 відновлення за допомогою засобів 20 відновлення настановних параметрів, як-от з їй з до Гак, а потім виконання, за допомогою другої виконуваної частини 2реи, залежних функцій з Таз до Так, причому ці Ге зо Команди (з СОСКз до СОСКМ. 1) запуску з перейменованими настановними параметрами подані відповідно командами ТКІС (К(аз)) до ТКІС (Как); со - у момент Її - виконання команди СОСК у запуску з перейменованими настановними параметрами, що "(чл передає у пристрій 6 перейменовані настановні параметри К(7). Це викликає у пристрої 6 відновлення, за допомогою засобів 20 відновлення, настановних параметрів, а саме ідентичності області пам'яті 7, а потім в.Fig. 82 shows an example of a complete implementation of the invention. According to this example, during the execution in the Z system of the data processing of the first executable part 2rez of the protected program 2r, in the presence of the device 6, the following are performed: - at moments y/, y - execution of the SOSKU, SOSK" start-up commands with renamed setting parameters that are transferred to device 6 renamed set parameters K(x), K(Y), as well as data X, Y, which causes device 6 to restore (with the help of recovery means 20) the renamed set parameters to restore set parameters, such as the identity of memory areas yati x, y, and then execution, with the help of the second executable part of the 2ray, of the corresponding dependent functions 14.4, etc., which ensure the transfer of data X, Y from the data processing system Z to the memory areas, respectively, x, y, located in the means 15 memorizing the device b (these commands SOSK., SOSK»o start-up with renamed setting parameters are presented as OOT (P), X), OT (KU), X); - at moments from z to Her - execution of commands SOSK»z to SOSKU 1 start with renamed setting parameters i) that transfer to device 6 the renamed setting parameters from K(Td4z) to K(Tak.4), which causes device 6 restoration by means of 20 restoration of setting parameters, such as with it from to Hak, and then execution, with the help of the second executable part of 2rei, dependent functions from Taz to So, and these Gezo Commands (from SOSKz to SOSKM. 1) of the launch with the renamed setting parameters are submitted, respectively, by the commands TKIS (K(az)) to TKIS (Kak); so - at the time of Her - the execution of the SOSK command in the startup with renamed setting parameters, which "(cl) transfers to the device 6 the renamed setting parameters K(7). This causes the device 6 to restore, with the help of the means of restoration 20, the setting parameters, namely identity of memory area 7, and then in.

Зв Виконання, за допомогою другої виконуваної частини 2рец, залежної функції ТЯ ху, що забезпечує передачу ї- результату виконання алгоритму, що міститься в області пам'яті 2 пристрою 6, системі З обробки даних, щоб присвоїти його змінній 7. Ця команда СОСКУ запуску з перейменованими настановними параметрами подана якExecution, with the help of the second executable part 2rets, the dependent function TЯ ху, which ensures the transmission of the result of the execution of the algorithm contained in the memory area 2 of the device 6, to the data processing system Z to assign it to the variable 7. This command of the SOSKU launch with the renamed parameters is given as

ІЖ(Р(2)).IZH(P(2)).

У наведеному прикладі команди запуску з перейменованими настановними параметрами з 1 до М «In the given example, the launch command with renamed configuration parameters from 1 to M "

Виконуються послідовно. Слід зазначити, що можна зробити два такі вдосконалення. в с - Перше вдосконалення стосується випадку, коли декілька алгоритмів винесені у пристрій 6 і щонайменше результат виконання одного алгоритму використовується іншим алгоритмом (у цьому випадку деякі команди ;» запуску з перейменованими настановними параметрами, що служать для передачі, можуть бути вилучені). - Друге вдосконалення має на меті належне впорядкування команд запуску з перейменованими настановними параметрами серед ансамблю впорядкувань, що дозволяють виконання захищеної програми 2р. -І У цьому відношенні краще вибрати таке впорядкування команд запуску з перейменованими настановними параметрами, яке розділяє в часі виконання залежних функцій, вставляючи між ними ділянки коду, виконуваногоThey are performed sequentially. It should be noted that two such improvements can be made. in c - The first improvement refers to the case when several algorithms are assigned to the device 6 and at least the result of the execution of one algorithm is used by another algorithm (in this case, some commands ;" of the start with renamed configuration parameters serving for transfer can be removed). - The second improvement aims to properly order the launch commands with renamed configuration parameters among the ensemble of orders that allow the execution of the protected program 2r. -And In this regard, it is better to choose such an arrangement of startup commands with renamed configuration parameters, which separates the execution time of dependent functions, inserting between them sections of the code that is executed

Ш- в системі З обробки даних, і що містить (або що не містить) при цьому команди запуску з перейменованими - настановними параметрами, що служать для визначення інших даних. Фіг.83 і 84 ілюструють принцип такої реалізації. со На Фіг.83 наведений приклад виконання уразливої програми 2у. У цьому прикладі в системі З обробки данихШ- in the Z data processing system, and which contains (or does not contain) startup commands with renamed - setting parameters that serve to define other data. Figures 83 and 84 illustrate the principle of such an implementation. so Fig. 83 shows an example of the execution of the vulnerable program 2y. In this example, in the Z data processing system

Ф у ході виконання вразливої програми 2у відбувається виконання двох алгоритмів, що приводять до визначення 7 і 7 таких, що 7--Е(Х, Хі 2-Х, У.Ф during the execution of the vulnerable program 2y, two algorithms are executed, which lead to the determination of 7 and 7 such that 7--Е(Х, Хи 2-Х, У.

На Фіг.84 наведений приклад реалізації способу згідно з винаходом, у якому обидва вибраних на Фіг.83 алгоритми винесені у пристрій 6. Відповідно до цього прикладу в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р, у присутності пристрою 6, має місце, як пояснюється іФ) вище, виконання команд (з СОСКУ до СОСКУ) запуску з перейменованими настановними параметрами, що ко відповідає визначенню 7, і виконання команд (з СОСК. до СОСКу) запуску з перейменованими настановними параметрами, що відповідає визначенню 7. Як показано, команди запуску з СОСК; до СОСКУ; не виконуються бо послідовно, оскільки з ними чергуються команди запуску з СОСКУ до СОСКУ, а також інші фрагменти коду. В цьому прикладі, таким чином, реалізоване таке впорядкування: СОСК 4, вставлений фрагмент коду, СОСКУ,Fig. 84 shows an example of the implementation of the method according to the invention, in which both algorithms selected in Fig. 83 are transferred to the device 6. According to this example, during the execution of the data processing system Z of the first executable part 2rez of the protected program 2p, in the presence of the device 6 , there is, as explained iF) above, the execution of commands (from SOSC to SOSC) of startup with renamed configuration parameters, which corresponds to definition 7, and the execution of commands (from SOSC. to SOSC) of startup with renamed configuration parameters, which corresponds to definition 7 As shown, the launch commands from SOSK; to SOSK; are not executed sequentially, since launch commands from SOSC to SOSC, as well as other code fragments, alternate with them. In this example, thus, the following ordering is implemented: SOSK 4, inserted code fragment, SOSKU,

СОС», вставлений фрагмент коду, СОСК», СОСКУ, вставлений фрагмент коду, СОСК/, СОСК»з, СОСК,,..., сосСскМ СОСКУ.SOS", inserted code fragment, SOSK", SOSKU, inserted code fragment, SOSK/, SOSK»z, SOSK,,..., sosSskM SOSKU.

Слід зазначити, що в ході виконання фрагмента першої виконуваної частини 2рез захищеної програми 2р 65 Команди запуску з перейменованими настановними параметрами, що виконуються в системі З обробки даних, викликають у пристрої 6 відновлення ідентичності відповідних залежних функцій, а потім їхнє виконання. Таким чином, у присутності пристрою б цей фрагмент виконується коректно й, отже, захищена програма 2р є повнофункціональною.It should be noted that during the execution of the fragment of the first executable part 2rez of the protected program 2r 65 Start commands with renamed configuration parameters executed in the data processing system Z cause the device 6 to restore the identity of the corresponding dependent functions, and then their execution. Thus, in the presence of device b, this fragment is executed correctly and, therefore, the protected program 2p is fully functional.

На Фіг.85 наведений приклад спроби виконання захищеної програми 2р за відсутності пристрою 6. У цьому прикладі в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р виконання команди запуску з перейменованими настановними параметрами жодного моменту не може викликати ні відновлення настановних параметрів, ані виконання відповідної залежної функції через відсутність пристрою 6. Значення, що його необхідно присвоїти змінній 7, отже, не може бути визначене коректно.Fig. 85 shows an example of an attempt to execute the protected program 2p in the absence of device 6. In this example, during the execution in the system of data processing of the first executable part 2 of the protected program 2p, the execution of the start command with renamed configuration parameters cannot at any time trigger the restoration of the configuration parameters , nor the execution of the corresponding dependent function due to the absence of device 6. The value that must be assigned to variable 7, therefore, cannot be determined correctly.

Таким чином, вважається, що за відсутності пристрою б щонайменше один запит одного фрагмента першої 7/0 виконуваної частини 2рез захищеної програми 2р на запуск відновлення настановних параметрів і виконання у пристрої залежної функції у пристрої б не може бути коректно виконаний, так що щонайменше ця частина не виконується коректно, й, отже, захищена програма 2р не є повнофункціональною.Thus, it is considered that in the absence of the device b, at least one request of one fragment of the first 7/0 executable part 2rez of the protected program 2r to start the restoration of the set parameters and the execution of the dependent function in the device in the device b cannot be correctly performed, so that at least this part is not executed correctly, and therefore the protected program 2r is not fully functional.

Завдяки цьому принципу захисту за допомогою перейменування вивчення в захищеній програмі 2р команд запуску з перейменованими настановними параметрами не дозволяє визначити ідентичність залежних функцій, /5 що мали бути виконані у пристрої 6. Слід зазначити, що перейменування настановних параметрів здійснюється в ході перетворення вразливої програми 2м на захищену програму 2р.Thanks to this principle of protection by means of renaming, studying in the protected program 2r the launch commands with renamed configuration parameters does not allow to determine the identity of the dependent functions /5 that should have been performed in the device 6. It should be noted that the renaming of the configuration parameters is carried out during the conversion of the vulnerable program 2m to protected program 2 years

Відповідно до варіанта принципу захисту за допомогою перейменування мало бути визначено щонайменше для однієї залежної функції, сімейство алгоритмічно еквівалентних залежних функцій, що викликаються командами запуску з різноманітними перейменованими настановними параметрами. В цьому варіанті принаймні один алгоритм, що використовує залежні функції, розкладається на залежні функції так, що принаймні одна з них замінюється залежною функцією того ж сімейства, замість того, щоб зберігати декілька входжень тієї самої залежної функції. З цією метою команди запуску з перейменованими настановними параметрами модифікуються, щоб урахувати заміну залежних функцій на залежні функції того ж сімейства.According to a variant of the renaming protection principle, at least one dependent function had to be defined, a family of algorithmically equivalent dependent functions called by run commands with various renamed parameters. In this embodiment, at least one algorithm using dependent functions is decomposed into dependent functions such that at least one of them is replaced by a dependent function of the same family, instead of storing multiple occurrences of the same dependent function. To this end, startup commands with renamed options are modified to account for the replacement of dependent functions with dependent functions of the same family.

Іншими словами, дві залежні функції з одного сімейства мають різноманітні настановні параметри, й, отже, счIn other words, two dependent functions from the same family have different setting parameters, and, therefore,

Команди запуску з різноманітними перейменованими настановними параметрами. Тому при вивченні захищеної програми 2р неможливо виявити, що викликані залежні функції алгоритмічно еквівалентні. і)Run commands with various renamed options. Therefore, when studying the protected program 2p, it is impossible to find that the called dependent functions are algorithmically equivalent. and)

Відповідно до першої кращої реалізації варіанта принципу захисту за допомогою перейменування визначається щонайменше для однієї залежної функції алгоритмічно еквівалентне сімейство залежних функцій шляхом зчеплення поля шумів з інформацією, що визначає ту функціональну частину залежної функції, що Ге зо Виконується у пристрої 6.According to the first best implementation of the variant of the protection principle by renaming, an algorithmically equivalent family of dependent functions is determined for at least one dependent function by combining the noise field with information that determines the functional part of the dependent function that is executed in the device 6.

У відповідності з другою кращою реалізацією варіанта принципу захисту за допомогою перейменування со щонайменше для однієї залежної функції визначається алгоритмічно еквівалентне сімейство залежних функцій 3 п використанням полів ідентифікації.In accordance with the second best implementation of the version of the principle of protection by renaming, for at least one dependent function, an algorithmically equivalent family of dependent functions 3 n is determined using identification fields.

Відповідно до кращого варіанта реалізації принципу захисту за допомогою перейменування як метод ї- з5 перейменування настановних параметрів задається метод кодування, що дозволяє кодувати настановні ча параметри для їхнього перетворення на перейменовані настановні параметри. Варто нагадати, що перейменування настановних параметрів здійснюється у фазі Р захисту. Для цього кращого варіанта засоби 20 відновлення являють собою засоби, що застосовують метод декодування, що дозволяє декодувати перейменовані настановні параметри і відновити таким чином ідентичність залежних функцій, що їх потрібно «In accordance with the best version of the implementation of the principle of protection by renaming, as a method of renaming setting parameters, a coding method is specified, which allows encoding setting parameters for their transformation into renamed setting parameters. It is worth reminding that the renaming of the setting parameters is carried out in the P phase of protection. For this preferred option, the recovery means 20 are means using a decoding method that allows decoding the renamed set parameters and thus restoring the identity of the dependent functions that they need.

Виконати у пристрої 6. Ці засоби відновлення застосовуються у пристрої 6 і можуть бути як програмними, так і з с апаратними. Засоби 20 відновлення запитуються у фазі Ю використання щоразу, коли команда запуску з перейменованими настановними параметрами виконується в системі З обробки даних з метою викликати у ;» пристрої б виконання залежної функції.Run in device 6. These recovery tools are applied in device 6 and can be both software and hardware. The recovery means 20 are requested in the use phase Y whenever a start command with renamed configuration parameters is executed in the data processing system Z in order to call the ;" devices would perform a dependent function.

Відповідно до іншої кращої характеристики винаходу спосіб захисту спрямований на реалізацію принципуAccording to another best characteristic of the invention, the method of protection is aimed at implementing the principle

Захисту, названого "умовним переходом", опис якого проілюстровано Фіг.90-92. -І Для реалізації принципу захисту за допомогою умовного переходу у вихідному коді 2у85 уразливої програми вибирається щонайменше один умовний перехід ВС. Вибирається також щонайменше один фрагмент вихідногоThe protection called "conditional transition", the description of which is illustrated in Fig. 90-92. -I To implement the principle of protection using a conditional transition in the source code 2u85 of the vulnerable program, at least one conditional transition of the VS is selected. At least one fragment of the source is also selected

Ш- коду 2уз уразливої програми, що містить щонайменше один вибраний умовний перехід ВС. - У даному варіанті щонайменше один вибраний фрагмент коду 2уз уразливої програми модифікується, щоб 5р одержати вихідний код 2рз захищеної програми. Ця модифікація така, що в ході виконання захищеної програми со 2р:Sh-code 2uz of the vulnerable program containing at least one selected conditional transition of the VS. - In this variant, at least one selected fragment of the code of the vulnerable program is modified to obtain the source code of the protected program. This modification is such that during the execution of the protected program of 2r:

Ф - щонайменше один фрагмент першої виконуваної частини 2рез, який виконується в системі З обробки даних, враховує те, що функціональна можливість принаймні одного вибраного умовного переходу ВС виконується у пристрої 6; - друга виконувана частина 2реш, що виконується у пристрої б, виконує щонайменше функціональну можливість щонайменше одного вибраного умовного переходу ВС і надає системі З обробки даних інформацію,F - at least one fragment of the first executable part 2rez, which is executed in the data processing system C, takes into account the fact that the functional possibility of at least one selected conditional transition BC is executed in the device 6; - the second executable part of 2resh, which is executed in device b, performs at least one functional possibility of at least one selected conditional transition of VS and provides information to data processing system C,

Ф) що дозволяє першій виконуваній частині 2рез продовжити своє виконання у вибраному місці. ка Перша виконувана частина 2рез захищеної програми 2р, виконувана в системі З обробки даних, виконує команди умовних переходів, що викликає у пристрої б виконання, за допомогою другої виконуваної частини бо греч, винесених умовних переходів бБс, функціональні можливості яких еквівалентні функціональним можливостям вибраних умовних переходів ВС. Для реалізації принципу захисту за допомогою умовного переходу пристрій 6 містить засоби 15 запам'ятовування і засоби 16 обробки.F) which allows the first executable part of 2rez to continue its execution in the selected location. ka The first executable part 2rez of the protected program 2p, executed in the Z data processing system, executes the conditional transition commands, which causes the device b to execute, with the help of the second executable part bo Greek, the conditional transitions bBs, the functionality of which is equivalent to the functionality of the selected conditional transitions Sun. To implement the principle of protection using a conditional transition, the device 6 contains means 15 of memory and means 16 of processing.

На Фіг.90 наведений приклад виконання вразливої програми 2у. У цьому прикладі в ході виконання вразливої програми 2у у системі З обробки даних у даний момент часу має місце умовний перехід ВС, що вказує вразливій 65 програмі 2у місце, де варто продовжити її виконання, як-от одне з трьох можливих місць В 4, Во або Вз. Варто розуміти, що умовний перехід ВС приймає рішення продовжити виконання програми в місці В., Во або Вз.Fig. 90 shows an example of the execution of the vulnerable program 2y. In this example, during the execution of the vulnerable program 2y in the Z data processing system, at this moment in time, a conditional transition BC occurs, which indicates to the vulnerable 65 program 2y a place where it should continue its execution, such as one of the three possible places B 4, Vo or Vz. It should be understood that the conditional transfer of the VS makes a decision to continue the execution of the program in the place of V., Vo or Vz.

На Фіг.91 наведений приклад реалізації винаходу, в якому умовний перехід, відібраний для переносу у пристрій 6, відповідає умовному переходові ВС.Fig. 91 shows an example of the implementation of the invention, in which the conditional transition selected for transfer to the device 6 corresponds to the conditional transition of the VS.

У цьому прикладі в ході виконання у системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р у присутності пристрою 6 мають місце: - у момент Її - виконання команди СВС 3 умовного переходу, що викликає у пристрої б виконання, за допомогою другої виконуваної частини 2реш, винесеного умовного переходу рс, алгоритмічно еквівалентного умовному переходові ВС, причому ця команда СВО. умовного переходу подана як ТКІС(БЬс); - І у момент ї5 - передача пристроєм 6 системі З обробки даних інформації, що дозволяє першій виконуваній /о частині 2рез продовжити своє виконання у вибраному місці, як-от, В, Во або В».In this example, during data processing in system C of the first executable part 2rez of the protected program 2r in the presence of device 6, the following occur: - at the moment of It - the execution of the command SVS 3 of a conditional transition, which causes execution in device b, with the help of the second executable part 2resh , of the conditional transition RS, which is algorithmically equivalent to the conditional transition VS, and this command is SVO. conditional transition is presented as TKIS(Bbs); - And at the moment y5 - transmission by the device 6 to the data processing system Z of information that allows the first executed /o part 2rez to continue its execution in the selected place, such as B, Vo or B».

Слід зазначити, що в ході виконання фрагмента першої виконуваної частини 2рез захищеної програми 2р команди умовних переходів, які виконуються в системі З обробки даних, запускають виконання відповідних винесених умовних переходів у пристрої 6. Таким чином, вважається, що в присутності пристрою б ця частина виконується коректно й, отже, захищена програма 2р є повнофункціональною.It should be noted that during the execution of the fragment of the first executable part 2rez of the protected program 2r, the conditional transition commands executed in the data processing system Z trigger the execution of the corresponding conditional transitions in the device 6. Thus, it is considered that this part is executed in the presence of the device b correctly and, therefore, the protected program 2p is fully functional.

На Фіг.92 наведений приклад спроби виконання захищеної програми 2р за відсутності пристрою 6. У цьому прикладі, в ході виконання в системі З обробки даних першої виконуваної частини 2рез захищеної програми 2р: - у момент і виконання команди СВС. умовного переходу не може викликати виконання винесеного умовного переходу Ббс, з огляду на відсутність пристрою 6; - і у момент їй спроба передачі інформації, що дозволяє першій виконуваній частині 2рез продовжити 2о виконання у вибраному місці, не може бути успішною у зв'язку з відсутністю пристрою 6.Fig. 92 shows an example of an attempt to execute the protected program 2r in the absence of device 6. In this example, during the execution of the first executable part 2rez of the protected program 2r in the Z system of data processing: - at the time of execution of the SWS command. the conditional transition cannot cause the execution of the issued conditional transition Bbs, given the absence of device 6; - and at the moment, an attempt to transmit information to her, which allows the first executable part of 2rez to continue 2o execution at the selected location, cannot be successful due to the absence of device 6.

Таким чином, за відсутності пристрою б щонайменше один запит одного фрагмента першої виконуваної частини 2рез на запуск виконання винесеного умовного переходу у пристрої 6 не може бути коректно виконаний.Thus, in the absence of device b, at least one request of one fragment of the first executable part 2rez to start execution of the conditional transition in device 6 cannot be correctly executed.

Тому щонайменше ця частина не виконується коректно, й, отже, захищена програма 2р не є повнофункціональною. счTherefore, at least this part is not performed correctly, and therefore the protected program 2r is not fully functional. high school

У попередньому описі, проілюстрованому на Фіг.90-92, даний винахід спрямований на винос у пристрій 6 одного умовного переходу. Зрозуміло, кращий варіант здійснення винаходу може полягати в передачі у пристрій і) 6 серії умовних переходів, глобальні функціональні можливості яких еквівалентні ансамблю функціональних можливостей винесених умовних переходів. Виконання глобальних функціональних можливостей цієї серії винесених умовних переходів призводить до того, що системі З обробки даних дається інформація, що дозволяє (ду зо першій виконуваній частині 2рез захищеної програми 2р продовжити своє виконання у вибраному місці.In the previous description, illustrated in Fig.90-92, this invention is aimed at bringing to the device 6 one conditional transition. Of course, the best variant of the invention may consist in transferring to the device i) 6 series of conditional transitions, the global functionality of which is equivalent to the ensemble of functionality of the transferred conditional transitions. Execution of the global functionality of this series of conditional transitions results in the fact that the data processing system is given information that allows the first executable part of the protected program to continue its execution at the selected location.

У попередньому описі, проілюстрованому Фіг.40-92, шість різноманітних принципів захисту програми були со пояснені в загальному вигляді незалежно один від іншого. Спосіб захисту згідно з винаходом може бути «- реалізований із застосуванням принципу захисту за допомогою змінної, до якого можна додати один або декілька інших принципів захисту. В разі, коли принцип захисту за допомогою змінної доповнюється реалізацією ї- з5 Щонайменше одного іншого принципу захисту, принцип захисту за допомогою змінної краще доповнити (М принципом захисту за допомогою розділення в часі і/або принципом захисту за допомогою елементарних функцій.In the previous description, illustrated in Fig. 40-92, six different principles of program protection were explained in a general way independently of each other. The method of protection according to the invention can be "- implemented using the principle of protection using a variable, to which one or more other protection principles can be added. In the case when the principle of protection using a variable is supplemented by the implementation of at least one other principle of protection, the principle of protection using a variable is better supplemented (M by the principle of protection by means of time division and/or the principle of protection by means of elementary functions.

Якщо таким чином застосовується принцип захисту за допомогою розділення в часі, то він може бути доповнений, у свою чергу, принципом захисту за допомогою елементарних функцій і/або принципом захисту за « допомогою умовного переходу. в с Якщо таким чином застосовується принцип захисту за допомогою елементарних функцій, то він може бутиIf the principle of protection with the help of time division is applied in this way, then it can be supplemented, in turn, with the principle of protection with the help of elementary functions and/or the principle of protection with the help of a conditional transition. в с If the principle of protection using elementary functions is applied in this way, then it can be

Й доповнений, у свою чергу, принципом захисту за допомогою детектування й примусу і/або принципом захисту за а допомогою перейменування, і/або принципом захисту за допомогою умовного переходу.And supplemented, in turn, by the principle of protection by means of detection and coercion and/or the principle of protection by means of renaming, and/or the principle of protection by means of conditional transition.

Якщо таким чином застосовується принцип захисту за допомогою детектування й примусу, то він може бути доповнений, у свою чергу, принципом захисту за допомогою перейменування і/або принципом захисту за -І допомогою умовного переходу. І якщо також застосовується принцип захисту за допомогою перейменування, то він може бути доповнений, у свою чергу, принципом захисту за допомогою умовного переходу.If the principle of protection by means of detection and coercion is applied in this way, then it can be supplemented, in turn, by the principle of protection by means of renaming and/or the principle of protection by -AND by means of a conditional transition. And if the principle of protection by renaming is also applied, then it can be supplemented, in turn, by the principle of protection by conditional transition.

Ш- Відповідно до кращого варіанта реалізації принцип захисту за допомогою змінної доповнюється принципом - захисту за допомогою розділення в часі, доповненим принципом захисту за допомогою елементарних функцій, доповненим принципом захисту за допомогою детектування й примусу, доповненим принципом захисту за со допомогою перейменування, доповненим принципом захисту за допомогою умовного переходу.Ш- According to the best variant of implementation, the principle of protection using a variable is supplemented by the principle of protection by means of time division, supplemented by the principle of protection by means of elementary functions, supplemented by the principle of protection by means of detection and coercion, supplemented by the principle of protection by means of renaming, supplemented by the principle of protection using a conditional transition.

Ф У випадку, коли на додаток до принципу захисту за допомогою змінної застосований якийсь інший принцип захисту, щоб врахувати таку комбіновану реалізацію винаходу, наведений вище опис має містити такі модифікації: 5Б - поняття вразливої програми має розумітися в сенсі вразливості програми відносно до описуваного принципу захисту. Так, у випадку, коли принцип захисту вже був застосований до вразливої програми, вираз "уУразлива (Ф, програма" має інтерпретуватися як вираз "програма, захищена за допомогою одного або декількох уже ка застосованих принципів захисту"; - поняття захищеної програми має розумітися в сенсі захищеності програми відносно до описуваного бр принципу захисту. Так, у випадку, коли принцип захисту вже був застосований, вираз "захищена програма" має інтерпретуватися читачем як вираз "нова версія захищеної програми"; - один або декілька виборів, зроблений (зроблених) для реалізації описуваного принципу захисту, має (мають) враховувати вибір(и), зроблений (зроблені) для реалізації вже застосованого (застосованих) одного або декількох принципів захисту. 65 Подальший опис дозволяє краще зрозуміти реалізацію способу захисту згідно з винаходом. У цьому способі захисту згідно з винаходом здійснюють, як це уточнюється на Фіг.100:Ф In the case when, in addition to the variable protection principle, some other protection principle is applied to take into account such a combined implementation of the invention, the above description must contain the following modifications: 5B - the concept of a vulnerable program must be understood in the sense of the vulnerability of the program relative to the described protection principle . Thus, in the case when the protection principle has already been applied to a vulnerable program, the expression "vVulnerable (F, program)" should be interpreted as the expression "a program protected by one or more recently applied protection principles"; - the concept of a protected program should be understood in sense of program security relative to the described protection principle. Thus, in the case where the protection principle has already been applied, the expression "protected program" should be interpreted by the reader as the expression "new version of the protected program"; - one or more choices made (made) for implementation of the described protection principle, must take into account the choice(s) made for the implementation of one or more protection principles already applied. 65 The following description allows a better understanding of the implementation of the protection method according to the invention. In this protection method according to with the invention, as specified in Fig. 100:

- спочатку фазу Р захисту, в ході якої вразлива програма 2М перетворюється на захищену програму 2р; - потім фазу ОО використання, в ході якої захищена програма 2р використовується, причому в фазі використання: - за присутності пристрою б кожного разу, коли цього вимагає фрагмент першої виконуваної частини 2рев, виконуваної в системі З обробки даних, належна функціональна можливість виконується у пристрої 6 таким чином, що ця частина виконується коректно, й, отже, захищена програма 2р є повнофункціональною, - за відсутності пристрою 6, незважаючи на запит фрагмента першої виконуваної частини 2рез, на виконання функціональної можливості у пристрої б, цей запит не може бути коректно задоволений, так що принаймні ця /о частина не виконується коректно, й, отже, захищена програма 2р не є повнофункціональною; - , можливо, фазу К перезавантаження, в ході якої дозволяється щонайменше одне додаткове використання функціональної можливості, захищеної шляхом реалізації другого кращого варіанта реалізації принципу захисту за допомогою детектування й примусу, що використовує як характеристику змінну для кількісного контролю.- first phase P of protection, during which the vulnerable program 2M is transformed into a protected program 2p; - then the OO phase of use, during which the protected program 2p is used, and in the use phase: - in the presence of device b, every time when a fragment of the first executable part 2rev executed in the data processing system requires it, the appropriate functionality is performed in device 6 in such a way that this part is executed correctly, and, therefore, the protected program 2p is fully functional, - in the absence of device 6, despite the request of a fragment of the first executable part 2rez, to perform the functionality in device b, this request cannot be correctly satisfied, so that at least this /o part is not executed correctly, and therefore the protected program 2r is not fully functional; - possibly a restart phase K, during which at least one additional use of the functionality protected by the implementation of the second best implementation of the principle of detection and enforcement is allowed, which uses a variable for quantitative control as a characteristic.

Фаза Р захисту може бути розкладена на дві підфази Р. і Ро захисту. Перша, названа вхідною, підфаза Рі /5 захисту реалізується незалежно від підлягаючої захисту вразливої програми 2М. Друга, названа вихідною, підфаза Ро захисту залежить від підлягаючої захисту вразливої програми 2М. Слід зазначити, що вхідна і вихідна підфази Р. і Ро захисту можуть бути реалізовані двома різноманітними особами або групами. Наприклад, вхідна підфаза Р. захисту може бути реалізована співробітником або організацією, що здійснюють розробку систем захисту програм, тоді як вихідна підфаза Р 5» захисту може бути реалізована співробітником абоThe P phase of protection can be divided into two subphases of P. and Po protection. The first, called the input, subphase Ri /5 protection is implemented independently of the subject protection of the vulnerable program 2M. The second, called the initial, sub-phase Po of protection depends on the subject of protection of the vulnerable program 2M. It should be noted that the input and output sub-phases of R. and Po protection can be implemented by two different individuals or groups. For example, the input subphase P. of protection can be implemented by an employee or an organization engaged in the development of software protection systems, while the output subphase P5" of protection can be implemented by an employee or

Організацією, що здійснюють розробку програм, що їх слід захистити. Зрозуміло, ясно, що вхідна і вихідна підфази Р. і Ро захисту можуть бути реалізовані й одним співробітником або однією організацією.Organizations developing programs that should be protected. Of course, it is clear that the input and output sub-phases of R. and Ro protection can be implemented by one employee or one organization.

Вхідна підфаза Р. захисту задіює декілька стадій 544, ... Зі), для Кожної з яких необхідно виконати декілька задач або завдань.The input subphase of R. protection involves several stages 544, ... Z), for each of which several tasks or tasks must be performed.

Перша стадія цієї вхідної підфази Р. захисту називається "стадією 544 визначень". У ході цієї стадії 5414 сч г визначень: - вибираються: і) - тип пристрою 6, як-от - пристрій зберігання або пристрій обробки і зберігання. Для приклада можна як пристрій 6 вибрати пристрій 8 читання карт з мікрочипом і карту з мікрочипом, зв'язану з пристроєм 8 читання, - і засоби 12, 13 передачі, призначені для застосування відповідно в системі З обробки даних і у пристрої Ге зо 5 У фазі О використання і здатні забезпечувати передачу даних між системою З обробки даних і пристроєм 6; - причому в разі, коли спосіб захисту згідно з винаходом задіює принцип захисту за допомогою елементарних со функцій, визначаються також: «- - набір елементарних функцій, елементарні функції якого можуть бути виконані у пристрої 6, - Ї набір елементарних команд для цього набору елементарних функцій, причому ці елементарні команди ї- зв Можуть бути виконані в системі З обробки даних, викликаючи виконання у пристрої б елементарних функцій; ї- - причому в разі, коли спосіб захисту згідно з винаходом задіює принцип захисту за допомогою детектування й примусу, мають бути передбачені також: - щонайменше одна характеристика виконання програми, яка може бути проконтрольована, щонайменше частково, у пристрої 6, « - щонайменше один критерій, що його слід дотримуватися щонайменше для однієї характеристики виконання -птш) с програми, . - засоби 17 детектування, що їх необхідно застосовувати у пристрої б і які дозволяють виявити, що а принаймні одна характеристика виконання програми не відповідає щонайменше одному відповідному критерію, - і засоби 18 примусу, що їх необхідно застосовувати у пристрої 6 і які дозволяють проінформувати систему 45. 3 обробки даних і/або модифікувати хід виконання програми, якщо хоча б одного критерію не дотримано; -І - причому в разі, коли спосіб захисту згідно з винаходом задіює принцип захисту за допомогою детектування й примусу, що використовує як характеристику змінну для кількісного контролю виконання програми, мають бути ш- визначені також: - - як характеристика виконання програми, яка може бути проконтрольована, - змінна для кількісного контролю 5р Використання однієї функціональної можливості програми, со - як критерій, що його слід дотримуватися, - щонайменше одне порогове значення, зв'язане з кожною змінноюThe first stage of this entry sub-phase of R. protection is called "stage 544 determinations". In the course of this stage 5414 ch g of definitions: - are selected: i) - type of device 6, such as - a storage device or a processing and storage device. For example, it is possible to choose as device 6 a device 8 for reading cards with a microchip and a card with a microchip connected to the device 8 for reading - and the means 12, 13 of transmission, intended for use, respectively, in the Z data processing system and in the Gezo 5 U device phase O of use and are able to provide data transfer between the data processing system C and the device 6; - moreover, in the case when the method of protection according to the invention uses the principle of protection with the help of elementary functions, the following are also defined: "- - a set of elementary functions, the elementary functions of which can be performed in the device 6, - a set of elementary commands for this set of elementary functions , and these elementary commands can be executed in the Z data processing system, causing elementary functions to be performed in the device b; - and in the event that the method of protection according to the invention uses the principle of protection by means of detection and coercion, the following must also be provided: - at least one characteristic of the program execution, which can be controlled, at least partially, in the device 6, " - at least one the criterion that it should be observed for at least one performance characteristic - ptsh) of the program, . - detection means 17, which must be used in device b and which allow to detect that at least one characteristic of the program execution does not meet at least one relevant criterion, - and enforcement means 18, which must be used in device 6 and which allow to inform the system 45 3 data processing and/or modify the course of program execution if at least one criterion is not met; - And - moreover, in the case when the method of protection according to the invention uses the principle of protection by means of detection and coercion, which uses a variable as a characteristic for quantitative control of program execution, the following should also be defined: - - as a characteristic of program execution, which can be controlled, - a variable for quantitative control 5r Use of one functionality of the program, co - as a criterion that should be followed - at least one threshold value associated with each variable

Ф для кількісного контролю, - і засоби поновлення, що дозволяють поновити щонайменше одну змінну для кількісного контролю; - причому в разі, коли спосіб захисту згідно з винаходом задіює перший кращий варіант реалізації принципуФ for quantitative control, - and means of renewal, allowing to renew at least one variable for quantitative control; - and in the case when the method of protection according to the invention uses the first best variant of the implementation of the principle

Захисту шляхом детектування й примусу, що використовує як характеристику змінну для кількісного контролю виконання програми, мають бути передбачені також: (Ф) - щонайменше для однієї змінної для кількісного контролю - декілька відповідних порогових значень, ка - Ї різноманітні засоби примусу, що відповідають кожному з цих порогових значень; - причому в разі, коли спосіб захисту згідно з винаходом задіює другий кращий варіант реалізації принципу бо Захисту шляхом детектування й примусу, що використовує як характеристику змінну для кількісного контролю виконання програми, передбачаються також засоби перезавантаження, що дозволяють щонайменше одне додаткове використання щонайменше однієї функціональної можливості програми, контрольованої за допомогою змінної для кількісного контролю; - причому в разі, коли спосіб захисту згідно з винаходом задіює принцип захисту за допомогою детектування 65 й примусу, що використовує як характеристику профіль використання програми, мають бути передбачені також: - як характеристика виконання програми, яка може бути проконтрольована, - профіль використання програми, - і як критерій, що його слід дотримуватися, - щонайменше одна ознака виконання програми; - причому в разі, коли спосіб захисту згідно з винаходом задіює принцип захисту за допомогою детектування й примусу, де як ознака виконання, що її слід дотримуватися, використовується контроль зчеплення виконання, мають передбачатися також: - набір інструкцій, інструкції зі складу якого можуть бути виконані у пристрої 6, - набір команд інструкцій для зазначеного набору інструкцій, причому ці команди інструкцій можуть бути виконані в системі З обробки даних, викликаючи у пристрої 6 виконання інструкцій, 70 - як профіль використання - зчеплення інструкцій, - якознака виконання - бажане зчеплення для виконання інструкцій, - як засоби 17 детектування - засоби, що дозволяють виявити, що зчеплення інструкцій не відповідає бажаному, - і як засоби 18 примусу - засоби, що дозволяють інформувати систему З обробки даних і/або модифікувати 7/5 функціонування фрагмента захищеної програми 2р, якщо зчеплення інструкцій не відповідає бажаному; - а у випадку, коли спосіб захисту згідно з винаходом задіює кращий варіант реалізації принципу захисту шляхом детектування й примусу, де як ознака виконання, що її слід дотримуватися, використовується контроль зчеплення виконання, мають передбачатися також: - як набір інструкцій - набір інструкцій, з якого щонайменше деякі інструкції працюють на регістрах іProtection by detection and coercion, which uses as a characteristic a variable for quantitative control of program execution, must also be provided: (Ф) - for at least one variable for quantitative control - several corresponding threshold values, ka - І various means of coercion corresponding to each of these threshold values; - moreover, in the case when the method of protection according to the invention uses the second best variant of the implementation of the principle of Protection by detection and coercion, which uses a variable as a characteristic for quantitative control of program execution, restart means are also provided, which allow at least one additional use of at least one functionality a program controlled by a variable for quantitative control; - moreover, in the case when the method of protection according to the invention uses the principle of protection by means of detection 65 and coercion, which uses the program usage profile as a characteristic, the following should also be provided: - as a characteristic of the program execution that can be controlled, - the program usage profile, - and as a criterion that should be followed - at least one sign of program execution; - moreover, in the case when the method of protection according to the invention uses the principle of protection by means of detection and coercion, where as a sign of execution, which should be observed, control of execution clutch is used, the following should also be provided: - a set of instructions, the instructions of which can be executed in device 6, - a set of instruction commands for the indicated set of instructions, and these instruction commands can be executed in the Z data processing system, causing the device 6 to execute the instructions, 70 - as a usage profile - an instruction coupling, - as an execution feature - a desired execution coupling of instructions, - as means of detection 17 - means of detecting that the coupling of instructions does not correspond to the desired one, - and as means of 18 coercion - means of informing the data processing system and/or modifying the 7/5 functioning of a fragment of the protected program 2r, if the coupling of the instructions does not correspond to the desired; - and in the case when the method of protection according to the invention uses a better variant of the implementation of the principle of protection by means of detection and coercion, where as a sign of execution that should be observed, control of execution coupling is used, the following should also be provided: - as a set of instructions - a set of instructions, with of which at least some instructions operate on registers and

Використовують щонайменше один операнд для видачі результату, - щонайменше для однієї частини інструкцій, що працюють на регістрах: - частина РЕ, що задає функціональну можливість інструкції, - їчастина, що задає бажане зчеплення для виконання інструкцій і що містить бітові поля, що відповідають: - полю СП ідентифікації інструкції, сч - і для кожного операнда інструкції: - полю СО, прапора, і) - і полю СІР,; ідентифікації, передбаченої для операнда, - для кожного регістра, що належить до засобів експлуатації і використовуваного набором інструкцій, - поле СіІб, генерованої ідентифікації в якому автоматично запам'ятовується ідентифікація останньої Ге зо інструкції, що повернула свій результат у цей регістр, - як засоби 17 детектування - засоби, що дозволяють у ході виконання інструкції для кожного операнда, со якщо цього вимагає поле СО прапора, контролювати рівність між полем Сібу генерованої ідентифікації, що "де відповідає регістру, використовуваному цим операндом, і полем СІР,, передбаченої ідентифікації початкової адреси цього операнда, - - і як засоби 18 примусу - засоби, що дозволяють модифікувати результат інструкції, якщо принаймні одна з ї- контрольованих рівностей хибна; - причому в разі, коли спосіб захисту згідно з винаходом задіює принцип захисту за допомогою перейменування, мають передбачатися також: - як команда запуску - елементарна команда або команда інструкції, « - як залежна функція - елементарна функція або інструкція, з с - як настановний параметр, - щонайменше один аргумент для команди запуску, що відповідає щонайменше . частково інформації, переданій системою З обробки даних на пристрій 6, щоб викликати запуск відповідної и?» залежної функції, - метод перейменування настановних параметрів, що дозволяє перейменувати настановні параметри, щоб одержати команди запуску з перейменованими параметрами, -І - і засоби 20 відновлення, призначені для застосування у пристрої 6 у фазі О використання і що дозволяють знову знайти залежну функцію, що її слід виконати, виходячи з перейменованого настановного параметра, ш- - причому в разі, коли спосіб захисту згідно з винаходом задіює варіант принципу захисту за допомогою - перейменування, визначається також, щонайменше для однієї залежної функції, сімейство алгоритмічно еквівалентних залежних функцій, що викликаються командами запуску, перейменовані настановні параметри бо яких є різноманітними,At least one operand is used for outputting a result, - for at least one part of the instructions operating on registers: - the RE part, which specifies the functional possibility of the instruction, - the part, which specifies the desired coupling for the execution of the instructions and which contains the bit fields corresponding to: - the SP field of the identification of the instruction, sch - and for each operand of the instruction: - the SO field, the flag, and) - and the SIR field; of the identification provided for the operand, - for each register belonging to the means of operation and used by the set of instructions, - the CIB field of the generated identification, in which the identification of the last Gezo instruction that returned its result to this register is automatically remembered, - as means 17 detection - means that allow, during the execution of the instruction for each operand, if required by the CO field of the flag, to control the equality between the SIBU field of the generated identification, which corresponds to the register used by this operand, and the CIP field of the intended identification of the initial address of this operand, - - and as means 18 of coercion - means allowing to modify the result of the instruction, if at least one of the controlled equalities is false; - and in the case when the method of protection according to the invention uses the principle of protection by means of renaming, should also be provided : - as a start-up command - an elementary command or an instruction command, « - as a hall each function - an elementary function or instruction, with c - as an optional parameter, - at least one argument for the launch command, corresponding to at least . part of the information transmitted by the data processing system to the device 6 to cause the corresponding i? of the dependent function, - a method of renaming the configuration parameters, which allows renaming the configuration parameters in order to receive launch commands with renamed parameters, - AND - and recovery means 20 intended for use in the device 6 in the O phase of use and which allow to find again the dependent function, which it should be performed based on the renamed setting parameter, and in the case when the method of protection according to the invention uses a variant of the principle of protection by renaming, a family of algorithmically equivalent dependent functions called by commands is also defined for at least one dependent function startup, renamed configuration parameters because of which there are various,

Ф - а у випадку, коли спосіб захисту згідно з винаходом задіює ту чи іншу кращу реалізацію варіанта принципу захисту за допомогою перейменування, визначається також, щонайменше для однієї залежної функції, сімейство алгоритмічно еквівалентних залежних функцій: - шляхом зчеплення поля шумів з інформацією, що визначає ту функціональну частину залежної функції, яка виконується в пристрої 6,F - and in the case when the method of protection according to the invention uses one or another better implementation of the variant of the protection principle by means of renaming, a family of algorithmically equivalent dependent functions is also determined, for at least one dependent function: - by combining the noise field with the information that determines that functional part of the dependent function that is performed in the device 6,

Ф) - або шляхом використання поля СІЇ ідентифікації інструкції та поля СІР у передбаченої ідентифікації ка операндів; - причому в разі, коли спосіб захисту згідно з винаходом задіює кращий варіант принципу захисту за бо допомогою перейменування, мають передбачатися також: - як метод перейменування настановних параметрів - метод кодування для кодування настановних параметрів, - і як засоби 20 відновлення - засоби, що застосовують метод декодування для декодування перейменованих настановних параметрів і відновлення ідентичності залежних функцій, що їх слід виконати у пристрої 6. 65 В ході вхідної під фази захисту за стадією 5.4; і визначення йде стадія, названа "стадією 5425 конструювання".Ф) - or by using the SI field of the instruction identification and the CIP field in the provided identification of the operands; - moreover, in the case when the method of protection according to the invention uses a better variant of the principle of protection by means of renaming, the following should also be provided: - as a method of renaming the set parameters - a coding method for encoding the set parameters, - and as means of recovery - means that apply a decoding method for decoding the renamed configuration parameters and restoring the identity of the dependent functions to be performed in the device 6. 65 During the entry phase of the protection according to stage 5.4; and the definition follows a stage called "stage 5425 construction".

В ході такої стадії 542 конструюються засоби 12, 13 передачі і, можливо, засоби експлуатації, що відповідають визначенням стадії 544 визначення.In the course of such a stage 542, means 12, 13 of transmission and possibly means of operation corresponding to the definition of stage 544 of definition are constructed.

В ході цієї стадії 542 конструювання здійснюють, отже: - конструювання засобів 12, 13 передачі, що дозволяють, у ході фази І використання здійснювати передачу даних між системою З обробки даних і пристроєм 6; - якщо також застосовується принцип захисту за допомогою елементарних функцій, - побудову засобів експлуатації, що дозволяють пристрою б у фазі ОО використання виконувати елементарні функції з набору елементарних функцій; - м, якщо також застосовується принцип захисту за допомогою детектування й примусу, - конструювання: 70 - засобів експлуатації, що дозволяють пристрою б у фазі ОО використання також залучити засоби 17 детектування і засоби 18 примусу, - і, можливо, засобів експлуатації, що дозволяють пристрою 6 у фазі О використання також залучити засоби поновлення, - а також, можливо, засобів експлуатації, що дозволяють пристрою 6 у фазі перезавантаження задіяти також /5 засоби перезавантаження, - а також, можливо, засобів експлуатації, що дозволяють пристрою б у фазі ОО використання виконувати інструкції з набору інструкцій; - ії, якщо також застосовується принцип захисту за допомогою перейменування, - конструювання засобів експлуатації, що дозволяють пристрою 6 у фазі ) використання задіяти також засоби відновлення.During this stage 542 construction is carried out, therefore: - construction of transmission means 12, 13, which allow, during phase I of use, to transfer data between the data processing system C and the device 6; - if the principle of protection with the help of elementary functions is also applied, - construction of means of operation that allow the device to perform elementary functions from a set of elementary functions in the OO phase of use; - m, if the principle of protection by means of detection and coercion is also applied, - construction: 70 - means of operation, which allow the device b in the OO phase of use to also attract means of detection 17 and means of coercion 18, - and, possibly, means of operation, which allow device 6 in the О phase of use also involve the means of renewal - as well as, possibly, the means of operation that allow the device 6 in the reset phase to engage also /5 the reset means - and also, possibly, the means of operation that allow the device b in the ОO phase use to execute instructions from an instruction set; - ii, if the principle of protection by renaming is also applied, - construction of means of operation, which allow the device 6 in the phase ) of use to use recovery means as well.

Конструювання засобів експлуатації здійснюють звичайним чином, за допомогою пристрою розробки програм з урахуванням визначень, уведених на стадії 544 визначень. Подібний пристрій описаний далі і проїілюстрованийThe construction of means of operation is carried out in the usual way, with the help of a program development device, taking into account the definitions entered at stage 544 definitions. A similar device is described below and illustrated

Фіг.110.Fig. 110.

В ході вхідної підфази Р. захисту за стадією 5412 конструювання може йти стадія, названа "стадією з 13 передперсоналізації". В ході цієї стадії 513 передперсоналізації щонайменше засоби 13 передачі й засоби сч ов експлуатації завантажуються щонайменше в один незадіяний пристрій 60, щоб одержати щонайменше один передперсоналізований пристрій 66. Слід зазначити, що частина засобів експлуатації, бувши перенесена у і) передперсоналізований пристрій 66, більше не є досяжною безпосередньо ззовні цього передперсоналізованого пристрою 66. Передача засобів експлуатації у незадіяний пристрій 60 може бути реалізована за допомогою адаптованого пристрою передперсоналізації описаного далі і опроіїлюстрованого Фіг120. У випадку «о зо передперсоналізованого пристрою 66, що складається з карти 7 з мікрочипом і пристрою 8 її читання, передперсоналізація стосується тільки карти 7 з мікрочипом. соDuring the initial subphase of R. protection, the stage 5412 of the design can be followed by a stage called "stage 13 of pre-personalization". During this stage 513 of pre-personalization, at least transfer means 13 and means of operation are loaded into at least one idle device 60 to obtain at least one pre-personalized device 66. It should be noted that part of the means of operation, having been transferred to i) pre-personalized device 66, no longer is accessible directly from the outside of this pre-personalized device 66. The transfer of means of operation to the idle device 60 can be implemented with the help of an adapted pre-personalization device described further and illustrated in Fig. 120. In the case of a pre-personalized device 66 consisting of a card 7 with a microchip and a device 8 for reading it, pre-personalization applies only to the card 7 with a microchip. co

В ході вхідної підфази Р. захисту, після стадії 544 визначень і, можливо, після стадії 542 конструювання, може «- бути здійснена також стадія, названа "стадією З 44 виготовлення засобів". У ході цієї стадії 544 виготовлення засобів виробляються засоби, що дозволяють допомогти створенню захищених програм або автоматизувати - з5 Захист програм. Такі засоби дозволяють: ча - допомогти вибрати або автоматично вибрати у вразливій програмі 2у, що її потрібно захистити: - одну або декілька змінних, що можуть бути винесені у пристрій 6, - фрагменти, які можуть бути змінені, - якщо також застосовується принцип захисту за допомогою розділення в часі, - один або декілька « алгоритмів, що можуть бути розкладені на етапи, що їх можна винести у пристрій 6, з с - якщо також застосовується принцип захисту за допомогою елементарних функцій, - один або декілька . алгоритмів, що можуть бути розкладені на елементарні функції, що їх можна винести у пристрій 6, а - Її, якщо також застосовується принцип захисту за допомогою детектування й примусу, - одну або декілька характеристик виконання, що їх необхідно проконтролювати, і, можливо, один або декілька алгоритмів, якіDuring the initial subphase of R. protection, after stage 544 of determinations and possibly after stage 542 of construction, a stage called "stage C 44 of manufacturing means" can also be carried out. In the course of this stage 544 of production of tools, tools are produced that allow to help create protected programs or to automate - c5 Protection of programs. Such means allow: - to help select or automatically select in a vulnerable program 2y that it needs to be protected: - one or more variables that can be exported to device 6, - fragments that can be changed, - if the principle of protection by using time division, - one or more "algorithms that can be divided into stages, which can be transferred to the device 6, with - if the principle of protection using elementary functions is also applied, - one or more . algorithms that can be decomposed into elementary functions that can be transferred to the device 6, and - Her, if the principle of protection by means of detection and coercion is also applied, - one or more performance characteristics that must be controlled, and possibly one or several algorithms which

Можуть бути розкладені на інструкції, що їх можна винести у пристрій 6, -І - якщо також застосовується принцип захисту за допомогою перейменування, - один або декілька алгоритмів, які можуть бути розкладені на залежні функції, що їх можна винести у пристрій б і для яких настановні ш- параметри команд запуску можуть бути перейменовані, - - ії, якщо також застосовується принцип захисту за допомогою умовного переходу, - один або декілька 5р умовних переходів, функціональна можливість яких може бути винесена у пристрій 6; со - , можливо, допомогти створити захищені програми або автоматизуватиCan be decomposed into instructions that can be exported to device 6, - AND - if the principle of protection by renaming is also applied - one or more algorithms that can be decomposed into dependent functions that can be exported to device b and for which set parameters of the launch commands can be renamed, - - ii, if the principle of protection using a conditional transition is also applied, - one or more 5r conditional transitions, the functionality of which can be transferred to the device 6; so - maybe help create secure programs or automate

Ф захист програм.F program protection.

Ці різноманітні засоби можуть бути реалізовані незалежно або в поєднанні, причому кожний засіб може набувати різноманітних форм, наприклад, являти собою передпроцесор, асемблер, компілятор тощо. За вхідною ов Підфазою Р. захисту йде вихідна підфаза Ро захисту, що залежить від підлягаючої захисту вразливої програми 2м. Ця вихідна підфаза Ро захисту також передбачає декілька стадій. Перша стадія, що відповідає реалізаціїThese various tools can be implemented independently or in combination, and each tool can take various forms, for example, be a preprocessor, an assembler, a compiler, etc. After the input sub-phase R of protection, there is an output sub-phase Po of protection, which depends on the subject of protection of the vulnerable program 2m. This initial sub-phase of Po protection also involves several stages. The first stage, corresponding to implementation

Ф) принципу захисту за допомогою змінної, називається "стадія 5 24 створення". В ході цієї стадії 524 створення ка використовується вибір, зроблений на стадії 54414 визначень. За допомогою цього вибору і, можливо, засобів, сконструйованих на стадії 544 виготовлення засобів, захищена програма 2р створюється: во - за допомогою вибору у вихідному коді 2уз уразливої програми: - щонайменше однієї змінної, яка, в ході виконання вразливої програми 2у, частково визначає її стан, - ї щонайменше одного фрагмента, що містить щонайменше одну вибрану змінну; - за допомогою створення вихідного коду 2рз захищеної програми на основі вихідного коду 2уз уразливої програми модифікацією щонайменше одного вибраного фрагмента коду 2уз уразливої програми, причому ця 65 модифікація така, що в ході виконання захищеної програми 2р щонайменше одна вибрана змінна або одна копія вибраної змінної знаходиться у незадіяному пристрої 60, який тим самим перетворюється на пристрій 6;F) the principle of protection using a variable, called "stage 5 24 creation". During this stage 524 of creating ka, the choice made in the stage 54414 of determination is used. With the help of this selection and, possibly, the means constructed in the stage 544 of making the means, the protected program 2p is created: in - by means of the selection in the source code 2uz of the vulnerable program: - at least one variable, which, during the execution of the vulnerable program 2y, partially determines its state, - th of at least one fragment containing at least one selected variable; - by creating the source code 2rz of the protected program based on the source code 2z of the vulnerable program by modifying at least one selected fragment of the code 2z of the vulnerable program, and this modification is such that during the execution of the protected program 2r at least one selected variable or one copy of the selected variable is in idle device 60, which thereby turns into device 6;

- і за допомогою створення першої частини 2роз об'єктного коду захищеної програми 2р на основі вихідного коду 2рз захищеної програми, причому ця перша частина 2роз об'єктного коду така, що в ході виконання захищеної програми 2р реалізується перша виконувана частина 2рез, яка виконується в системі З обробки даних, і щонайменше в одній частині якої враховується, що принаймні одна змінна або одна копія змінної знаходиться у пристрої 6.- and by creating the first part of the 2rz object code of the protected program 2r based on the source code of the 2rz protected program, and this first part of the 2rz object code is such that during the execution of the protected program 2r the first executable part of the 2rz is implemented, which is executed in to the data processing system, and at least one part of which takes into account that at least one variable or one copy of the variable is in the device 6.

Зрозуміло, принцип захисту за допомогою змінної згідно з винаходом може бути застосований безпосередньо в ході розробки нової програми без необхідності попередньої реалізації вразливої програми 2у. Таким чином, захищена програма 2р безпосередньо утворюється в ході вихідної підфази Р» захисту. При цьому в разі, коли /о застосований щонайменше один інший принцип захисту, на додаток до принципу захисту за допомогою змінної, реалізується "стадія 52 моДИФІКації". В ході цієї стадії Зао модифікації використовуються визначення, введені на стадії 544 визначень. З використанням цих визначень і, можливо, засобів, сконструйованих на стадії 5 414 виготовлення засобів, захищена програма 2р модифікується таким чином, щоб дозволити реалізувати принципи захисту відповідно до одного з компонувань, визначених вище.Of course, the principle of protection using a variable according to the invention can be applied directly during the development of a new program without the need for prior implementation of a vulnerable program 2y. Thus, the protected program 2p is directly formed during the initial subphase P" of protection. At the same time, in the case when at least one other protection principle is applied, in addition to the variable protection principle, "MODIFICATION stage 52" is implemented. During this stage of the ZAO modification, the definitions entered in the stage 544 definitions are used. Using these definitions and possibly the means constructed in step 5 414 of making the means, the protected program 2p is modified to allow implementation of the protection principles according to one of the arrangements defined above.

Коли застосовується принцип розділення в часі, захищена програма 2р модифікується в такий спосіб: - за допомогою вибору у вихідному коді 2рз захищеної програми: - щонайменше одного алгоритму, який у ході виконання захищеної програми 2р використовує щонайменше одну вибрану змінну і дозволяє одержати щонайменше одну результуючу змінну, - ї щонайменше одного фрагмента, що містить щонайменше один вибраний алгоритм; - за допомогою модифікації принаймні одного вибраного фрагмента коду 2рз захищеної програми, причому ця модифікація така, що: - в ході виконання захищеної програми 2р перша виконувана частина 2рез виконується в системі З обробки даних, а друга виконувана частина 2реи виконується у пристрої 6, який також містить засоби 16 обробки, - щонайменше функціональна можливість принаймні одного вибраного алгоритму виконується за допомогою с ов другої виконуваної частини 2реи, - щонайменше один вибраний алгоритм розкладається таким чином, що в ході виконання захищеної і) програми 2р реалізуються, за допомогою другої виконуваної частини 2реи, декілька різноманітних етапів, як-от: - надання щонайменше однієї змінної для пристрою 6, - реалізація у пристрої 6 функціональної можливості алгоритму, виконуваної щонайменше над цією змінною, Ге зо - ), можливо, надання щонайменше однієї результуючої змінної пристроєм 6 для системи З обробки даних, - щонайменше для одного вибраного алгоритму команди етапів визначені таким чином, що в ході виконання со захищеної програми 2р кожна команда етапу виконується за допомогою першої виконуваної частини 2рез і «- викликає у пристрої 6 виконання етапу за допомогою другої виконуваної частини 2реи, - причому впорядкування команд етапів вибране серед ансамблю впорядкувань, що дозволяють виконання - захищеної програми 2р; ї- - і за допомогою створення: - першої частини 2роз об'єктного коду захищеної програми 2р, причому перша частина 2роз об'єктного коду така, що в ході виконання захищеної програми 2р команди етапів виконуються відповідно до вибраного впорядкування, « - і другої частини 2рои об'єктного коду захищеної програми 2р, причому друга частина 2роід об'єктного -птв) с коду така, що після завантаження у незадіяний пристрій 60, у ході виконання захищеної програми 2р реалізується друга виконувана частина 2рецй, за допомогою якої виконуються етапи, запуск виконання яких був ;» викликаний першою виконуваною частиною 2рез.When the principle of time division is applied, the protected program 2r is modified in the following way: - by selecting in the source code of the protected program 2rz: - at least one algorithm which, during the execution of the protected program 2r, uses at least one selected variable and allows obtaining at least one resulting variable , - th of at least one fragment containing at least one selected algorithm; - by means of modification of at least one selected fragment of code 2rz of the protected program, and this modification is such that: - during the execution of the protected program 2r, the first executable part of 2rez is executed in the data processing system C, and the second executable part of 2rea is executed in the device 6, which is also contains processing means 16, - at least one functional possibility of at least one selected algorithm is implemented with the help of the second executable part of 2rey, - at least one selected algorithm is decomposed in such a way that during the execution of the protected i) program 2r is implemented, with the help of the second executable part of 2rey, several different stages, such as: - provision of at least one variable to the device 6, - implementation in the device 6 of the functionality of the algorithm performed on at least this variable, Ge zo - ), possibly provision of at least one resulting variable by the device 6 to the processing system data, - for at least one selected algorithm of the team of stages c are defined in such a way that during the execution of the protected program 2r, each step command is executed using the first executable part 2rez and "- causes the device 6 to execute the step using the second executable part 2rey - and the ordering of the stage commands is selected from among the ensemble of orders that allow execution of a protected program 2 years; - and by creating: - the first part of the 2rd object code of the protected program 2r, and the first part of the 2rd object code is such that during the execution of the protected program 2r the stage commands are executed in accordance with the selected order, " - and the second part The 2nd part of the object code of the protected program 2p, and the second part of the 2nd object code -ptv) with the code is such that after downloading to the idle device 60, during the execution of the protected program 2p, the second executable part of 2retsy is implemented, with the help of which the stages, start the execution of which was;" caused by the first executable part 2res.

Коли застосовується принцип захисту за допомогою елементарних функцій, тоді як принцип захисту заWhen the principle of protection by means of elementary functions is applied, while the principle of protection by

Допомогою розділення в часі не застосовується, захищена програма 2р модифікується: -І - за допомогою вибору у вихідному коді 2рз захищеної програми: - щонайменше одного алгоритму, який у ході виконання захищеної програми 2р використовує принаймні одну ш- вибрану змінну і дозволяє одержати щонайменше одну результуючу змінну, - - ї щонайменше одного фрагмента, що містить принаймні один вибраний алгоритм; - за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми, со причому ця модифікація така, що:With the help of time division is not applied, the protected program 2r is modified: - AND - by selecting in the source code of the protected program 2r: - at least one algorithm, which during the execution of the protected program 2r uses at least one selected variable and allows to receive at least one resulting variable, - - th of at least one fragment containing at least one selected algorithm; - by means of modification of at least one selected fragment of the code of the protected program, and this modification is such that:

Ф - в ході виконання захищеної програми 2р перша виконувана частина 2рез виконується в системі З обробки даних, а друга виконувана частина 2реи виконується у пристрої 6, - щонайменше функціональна можливість принаймні одного вибраного алгоритму виконується за допомогою в другої виконуваної частини 2реи, - щонайменше один вибраний алгоритм розкладається таким чином, що в ході виконання захищеноїF - during the execution of the protected program 2r, the first executable part 2rez is executed in the data processing system Z, and the second executable part 2rez is executed in the device 6, - at least the functional possibility of at least one selected algorithm is performed with the help of the second executable part 2rez, - at least one selected the algorithm is decomposed in such a way that during the execution of the protected

Ф) програми 2р цей алгоритм виконується за допомогою другої виконуваної частини 2рец із застосуванням ка елементарних функцій, - щонайменше для одного вибраного алгоритму елементарні команди інтегруються у вихідний код 2рз бо захищеної програми таким чином, що в ході виконання захищеної програми 2р кожна елементарна команда виконується за допомогою першої виконуваної частини 2рез і викликає у пристрої 6 виконання, за допомогою другої виконуваної частини 2реи, елементарної функції, - причому впорядкування елементарних команд вибирається в ансамблі впорядкувань, що дозволяють виконання захищеної програми 2р; 65 - і за допомогою створення: - першої частини 2роз об'єктного коду захищеної програми 2р, причому ця перша частина 2роз об'єктного коду така що в ході виконання захищеної програми 2р елементарні команди виконуються відповідно до вибраного впорядкування, - і другої частини 2рои об'єктного коду захищеної програми 2р, що містить засоби експлуатації, причому ця друга частина 2рои об'єктного коду така, що після завантаження в незадіяний пристрій 60, у ході виконання захищеної програми 2р реалізується друга виконувана частина 2ре, за допомогою якої виконуються елементарні функції, запуск яких був викликаний першою виконуваною частиною 2резв.F) program 2r, this algorithm is executed with the help of the second executable part of 2rets with the use of elementary functions, - for at least one selected algorithm, elementary commands are integrated into the source code of the 2rbo protected program in such a way that during the execution of the protected program 2r, each elementary command is executed according to with the help of the first executable part 2rez and causes the device 6 to execute, with the help of the second executable part 2rey, an elementary function, and the arrangement of the elementary commands is selected from the ensemble of arrangements that allow the execution of the protected program 2p; 65 - and by creating: - the first part of the 2rd part of the object code of the protected program 2p, and this first part of the 2rd part of the object code is such that during the execution of the protected program 2p elementary commands are executed according to the selected order, - and the second part of the 2nd part of the object code of the object code of the protected program 2p, which contains means of operation, and this second part of the object code 2p is such that after loading into the idle device 60, during the execution of the protected program 2p, the second executable part of the 2p is implemented, with the help of which elementary functions are performed, the launch of which was caused by the first executable part of 2rezv.

Коли принципи захисту за допомогою розділення в часі й за допомогою елементарних функцій застосовані разом, захищена програма 2р модифікується: 70 - за допомогою вибору у вихідному коді 2рз захищеної програми щонайменше одного етапу, який у ході виконання захищеної програми 2р здійснює функціональну можливість алгоритму; - за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми, причому ця модифікація така, що: - щонайменше один вибраний етап розкладається таким чином, що в ході виконання захищеної програми 2р цей етап виконується за допомогою другої виконуваної частини 2реи із застосуванням елементарних функцій, - щонайменше для одного вибраного етапу елементарні команди інтегруються у вихідний код 2рз захищеної програми таким чином, що в ході виконання захищеної програми 2р кожна елементарна команда виконується за допомогою першої виконуваної частини 2рез і викликає у пристрої б виконання, за допомогою другої виконуваної частини 2реи, елементарної функції, - і впорядкування елементарних команд вибирається в ансамблі впорядкувань, що дозволяють виконати захищену програму 2р; - і за допомогою створення: - першої частини 2роз об'єктного коду захищеної програми 2р, причому ця перша частина 2роз об'єктного коду така що в ході виконання захищеної програми 2р елементарні команди виконуються відповідно до сч вибраного впорядкування, - і другої частини 2рои об'єктного коду захищеної програми 2р, що містить також засоби експлуатації, і) причому ця друга частина 2роци об'єктного коду така, що після завантаження у пристрій 6, у ході виконання захищеної програми 2р реалізується друга виконувана частина 2ре, за допомогою якої виконуються елементарні функції, запуск яких був викликаний першою виконуваною частиною 2рев5. Коли застосовується Ге зо принцип захисту за допомогою детектування й примусу, то захищена програма 2р модифікується: - за допомогою вибору серед характеристик виконання, які можуть бути проконтрольовані щонайменше однієї со характеристики виконання контрольованої програми; «- - за допомогою вибору щонайменше одного критерію, який має виконуватися щонайменше для однієї вибраної характеристики виконання програми; - - за допомогою вибору у вихідному коді 2рз захищеної програми елементарних функцій, для яких слід ї- контролювати щонайменше одну характеристику виконання контрольованої програми; - за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми, причому ця модифікація така, що в ході виконання захищеної програми 2р щонайменше одна характеристика виконання програми контролюється за допомогою другої виконуваної частини 2реи і недотримання критерію « призводить до інформування системи З обробки даних і/або до модифікації виконання захищеної програми 2р; з с - Її за допомогою створення другої частини 2рои об'єктного коду захищеної програми 2р, що містить засоби . експлуатації, що задіюють також засоби 17 детектування і засоби 18 примусу, причому ця друга частина 2рои и?» об'єктного коду така, що після завантаження у пристрій 6, у ході виконання захищеної програми 2р щонайменше одна характеристика виконання програми контролюється і недотримання критерію призводить до інформування бистеми З обробки даних і/або до модифікації виконання захищеної програми 2р. -І Для реалізації принципу захисту шляхом детектування й примусу, що використовує як характеристику змінну для кількісного контролю виконання програми, захищена програма 2р модифікується:When the principles of protection by time division and elementary functions are applied together, the protected program 2r is modified: 70 - by selecting at least one step in the source code of the protected program 2r, which during the execution of the protected program 2r implements the functional capability of the algorithm; - by means of modification of at least one selected fragment of the code 2rz of the protected program, and this modification is such that: - at least one selected stage is decomposed in such a way that during the execution of the protected program 2r this stage is performed with the help of the second executable part of the 2rea using elementary functions, - for at least one selected stage, the elementary commands are integrated into the source code 2rz of the protected program in such a way that during the execution of the protected program 2r, each elementary command is executed with the help of the first executable part of 2rez and causes the device b to execute, with the help of the second executable part of 2rey, the elementary functions, - and the arrangement of elementary commands is selected from the ensemble of arrangements that allow the execution of the protected program 2p; - and by creating: - the first part of the 2nd object code of the protected program 2p, and this first part of the 2nd object code is such that during the execution of the protected program 2nd, elementary commands are executed in accordance with the selected ordering, - and the second part of the 2nd object code the object code of the protected program 2p, which also contains means of operation, and) and this second part of the object code 2r of the object code is such that after downloading to the device 6, during the execution of the protected program 2p, the second executable part of the 2re is implemented, with the help of which elementary functions that were triggered by the first 2rev5 executable. When the principle of protection by means of detection and coercion is applied, the protected program 2r is modified: - by means of a choice among the execution characteristics that can be controlled by at least one of the execution characteristics of the controlled program; "- - by selecting at least one criterion that must be met for at least one selected performance characteristic of the program; - - by means of selection in the source code of the protected program of elementary functions for which at least one characteristic of the execution of the controlled program should be monitored; - by means of modification of at least one selected fragment of the 2rz code of the protected program, and this modification is such that during the execution of the protected program 2r at least one characteristic of the program execution is controlled with the help of the second executable part of the 2rea and non-compliance with the criterion "leads to informing the data processing system and/ or to the modification of the execution of the protected program 2r; with c - Her by creating the second part of the 2nd part of the object code of the protected program 2nd, which contains means. operation, which also involve means of detection 17 and means of coercion 18, and this second part of 2roi and? of the object code such that after downloading to the device 6, during the execution of the protected program 2r, at least one characteristic of the program execution is controlled and non-compliance with the criterion leads to the notification of the bistem from data processing and/or to the modification of the execution of the protected program 2r. -I To implement the principle of protection by means of detection and coercion, which uses a variable as a characteristic for quantitative control of program execution, the protected program 2p is modified:

Ш- - за допомогою вибору як характеристики виконання контрольованої програми щонайменше однієї змінної - для кількісного контролю використання однієї функціональної можливості програми; - за допомогою вибору: со - щонайменше однієї функціональної можливості захищеної програми 2р, використання якої можнаSh- - by selecting at least one variable as a characteristic of the controlled program execution - for quantitative control of the use of one functionality of the program; - by selecting: co - at least one functionality of the protected program 2p, which can be used

Ф проконтролювати з використанням змінної для кількісного контролю, - щонайменше однієї змінної для кількісного контролю, яка служить як кількісна характеристика використання згаданої функціональної можливості, 5Б - щонайменше одного порогового значення, пов'язаного з вибраною змінною для кількісного контролю і відповідної межі використання згаданої функціональної можливості, (Ф) - Її щонайменше одного методу поновлення значення змінної для кількісного контролю відповідно до ка використання згаданої функціональної можливості; - Її за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми, бо причому ця модифікація така, що в ході виконання захищеної програми 2р змінна для кількісного контролю поновлюється за допомогою другої виконуваної частини грец, залежно від використання зазначеної функціональної можливості, і враховується щонайменше одне перевищення порогового значення.Ф to control using a variable for quantitative control, - at least one variable for quantitative control, which serves as a quantitative characteristic of the use of the mentioned functionality, 5B - at least one threshold value associated with the selected variable for quantitative control and the corresponding limit of the use of the mentioned functionality , (F) - Its at least one method of updating the variable value for quantitative control in accordance with the use of the mentioned functionality; - Its by means of modification of at least one selected fragment of code 2rz of the protected program, because this modification is such that during the execution of the protected program 2r, the variable for quantitative control is renewed with the help of the second executable part of the Greeks, depending on the use of the specified functionality, and at least one is taken into account exceeding the threshold value.

Для реалізації першого кращого варіанта принципу захисту шляхом детектування й примусу, що використовує як характеристику змінну для кількісного контролю, захищена програма 2р модифікується: 65 - за допомогою вибору у вихідному коді 2рз захищеної програми щонайменше однієї змінної для кількісного контролю, з якою мають зв'язуватися декілька порогових значень, що відповідають різноманітним межам використання функціональної можливості; - за допомогою вибору щонайменше двох порогових значень, зв'язаних з вибраною змінною для кількісного контролю; - Її за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми, причому ця модифікація така, що в ході виконання захищеної програми 2р перевищення різноманітних порогових значень враховуються за допомогою другої виконуваної частини 2реи різноманітним способом.To implement the first best variant of the principle of protection by detection and coercion, which uses a variable for quantitative control as a characteristic, the protected program 2r is modified: 65 - by selecting in the source code of the protected program 2rz at least one variable for quantitative control, which should be connected several threshold values corresponding to various limits of the use of functionality; - by selecting at least two threshold values associated with the selected variable for quantitative control; - It by means of modification of at least one selected fragment of code 2rz of the protected program, and this modification is such that during the execution of the protected program 2r, exceeding various threshold values are taken into account by means of the second executable part of 2rey in a different way.

Для реалізації другого кращого варіанта принципу захисту шляхом детектування й примусу, що використовує як характеристику змінну для кількісного контролю, захищена програма 2р модифікується: 70 - за допомогою вибору у вихідному коді 2рз захищеної програми щонайменше однієї змінної для кількісного контролю, що дозволяє обмежити використання функціональної можливості, для якої має існувати можливість дозволити щонайменше одне додаткове використання; - і за допомогою модифікації щонайменше одного вибраного фрагмента, причому ця модифікація така, що в фазі, названій фазою перезавантаження, щонайменше одне додаткове використання щонайменше однієї 7/5 функціональної можливості, що відповідає одній вибраній змінній для кількісного контролю, може бути дозволене.To implement the second best version of the principle of protection by detection and coercion, which uses a variable for quantitative control as a characteristic, the protected program 2r is modified: 70 - by selecting in the source code of the protected program 2rz at least one variable for quantitative control, which allows limiting the use of functionality , for which it must be possible to allow at least one additional use; - and by modifying at least one selected fragment, and this modification is such that in a phase called the reload phase, at least one additional use of at least one 7/5 functionality corresponding to one selected variable for quantitative control may be allowed.

Для реалізації принципу захисту шляхом детектування й примусу, що використовує як характеристику профіль використання програми, захищена програма 2р модифікується: - за допомогою вибору як характеристики виконання контрольованої програми щонайменше профілюTo implement the principle of protection by means of detection and coercion, which uses the program usage profile as a characteristic, the protected program 2p is modified: - by selecting at least a profile as a characteristic of the controlled program execution

Використання програми; - за допомогою вибору щонайменше однієї ознаки виконання програми, що її має дотримуватися щонайменше один профіль використання; - Її за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми, причому ця модифікація така, що в ході виконання захищеної програми 2р друга виконувана частина 2реи сч дотримується всіх вибраних ознак виконання.Using the program; - by selecting at least one feature of program execution that must be followed by at least one usage profile; - Its by means of modification of at least one selected fragment of code 2rz of the protected program, and this modification is such that during the execution of the protected program 2r, the second executable part of the 2rei sc observes all the selected features of execution.

Для реалізації принципу захисту шляхом детектування й примусу, де як ознака виконання, що її слід і) дотримуватися, використовується контроль зчеплення виконання, захищена програма 2р модифікується: - за допомогою модифікації принаймні одного вибраного фрагмента коду 2рз захищеної програми: - за допомогою перетворення елементарних функцій на інструкції, Ге зо - за допомогою завдання зчеплення, що його мають дотримуватися щонайменше деякі з інструкцій під час їхнього виконання у пристрої 6, со - ії за допомогою перетворення елементарних команд на команди інструкцій, що відповідають «- використовуваним інструкціям.To implement the principle of protection by means of detection and enforcement, where the control of execution coupling is used as a sign of execution that should be observed i) the protected program 2r is modified: - by modifying at least one selected fragment of the code 2rz of the protected program: - by transforming elementary functions on the instructions, Gezo - by means of the coupling task, which must be followed by at least some of the instructions during their execution in the device 6, so - by means of the transformation of elementary commands into command commands corresponding to "- the used instructions.

Коли застосовується принцип захисту за допомогою перейменування, захищена програма 2р модифікується: - - за допомогою вибору у вихідному коді 2рз захищеної програми команди запуску; ї- - за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми шляхом перейменування настановних параметрів вибраних команд запуску, щоб приховати ідентичність відповідних залежних функцій; - і за допомогою створення: « - першої частини 2роз об'єктного коду захищеної програми 2р, причому ця перша частина 2роз об'єктного -птв) с коду така, що в ході виконання захищеної програми 2р виконуються команди запуску з перейменованими настановними параметрами, ;» - Її другої частини 2роїд об'єктного коду захищеної програми 2р, що містить засоби експлуатації, що використовують також засоби 20 відновлення, причому ця друга частина 2рои об'єктного коду така, що після завантаження у пристрій 6, у ході виконання захищеної програми 2р ідентичність залежних функцій, виконання -І яких запускається першою виконуваною частиною 2рез, відновлюється за допомогою другої виконуваної частини 2реи, а залежні функції виконуються за допомогою другої виконуваної частини 2реи.When the principle of protection by renaming is applied, the protected program 2r is modified: - - by selecting in the source code of the protected program 2rz the launch command; - by modifying at least one selected code fragment of the protected program by renaming the configuration parameters of the selected launch commands to hide the identity of the corresponding dependent functions; - and by creating: "- the first part of the 2nd object code of the protected program 2p, and this first part of the 2nd object -ptv) code is such that during the execution of the protected program 2p, launch commands with renamed configuration parameters are executed; » - Its second part 2roid of the object code of the protected program 2r, which contains the means of operation, which also use means of recovery 20, and this second part 2roid of the object code is such that after loading into the device 6, during the execution of the protected program 2r identity dependent functions, the execution of which is started by the first executable part of 2rez, is resumed with the help of the second executable part of 2rey, and the dependent functions are performed with the help of the second executable part of 2rey.

Ш- Для реалізації варіанта принципу захисту перейменуванням захищена програма 2р модифікується: - - за допомогою вибору у вихідному коді 2рз захищеної програми щонайменше однієї команди запуску з перейменованими настановними параметрами; со - Її за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програмиШ- To implement the version of the protection principle by renaming, the protected program 2r is modified: - - by selecting in the source code of the protected program 2rz at least one launch command with renamed configuration parameters; co - Its by means of modification of at least one selected fragment of code 2rz of the protected program

Ф шляхом заміни щонайменше перейменованих настановних параметрів команди запуску з вибраним набором настановних параметрів на інші перейменовані настановні параметри, що викликає запуск залежної функції з того ж сімейств. 5Б Коли застосовується принцип захисту за допомогою умовного переходу, захищена програма 2р модифікується: (Ф, - за допомогою вибору у вихідному коді 2рх захищеної програми щонайменше одного умовного переходу, ка виконуваного щонайменше в одному вибраному алгоритмі; - за допомогою модифікації принаймні одного вибраного фрагмента коду 2рз захищеної програми, причому бо ця модифікація така, що в ході виконання захищеної програми 2р функціональна можливість щонайменше одного вибраного умовного переходу виконується за допомогою другої виконуваної частини 2рец у пристрої 6; - і за допомогою створення: - першої частини 2роз об'єктного коду захищеної програми 2р, причому ця перша частина 2роз об'єктного коду така, що в ході виконання захищеної програми 2р функціональна можливість щонайменше одного 65 вибраного умовного переходу виконується у пристрої 6, - І другої частини 2рои об'єктного коду захищеної програми 2р, причому ця друга частина 2рои об'єктного коду така, що після завантаження у пристрій 6, у ході виконання захищеної програми 2р реалізується друга виконувана частина 2реш, за допомогою якої виконується функціональна можливість щонайменше одного вибраного умовного переходу.Ф by replacing at least the renamed configuration parameters of the launch command with the selected configuration parameter set with other renamed configuration parameters, which causes the dependent function from the same family to be launched. 5B When the principle of protection using a conditional transition is applied, the protected program 2p is modified: (Ф, - by selecting in the source code of the 2p protected program at least one conditional transition performed in at least one selected algorithm; - by modifying at least one selected fragment of the code 2rz of the protected program, and because this modification is such that during the execution of the protected program 2r, the functional possibility of at least one selected conditional transition is performed with the help of the second executable part of the 2rec in the device 6; - and by creating: - the first part of the 2rz object code of the protected program 2r, and this first part 2roz of the object code is such that during the execution of the protected program 2r, the functional possibility of at least one 65 selected conditional transition is executed in the device 6, - And the second part 2roz of the object code of the protected program 2r, and this second part 2 of the object code is such that after loading in device 6, during the execution of the protected program 2p, the second executable part 2resh is implemented, with the help of which the functional possibility of at least one selected conditional transition is implemented.

Для кращої реалізації принципу захисту за допомогою умовного переходу захищена програма 2р модифікується: - за допомогою вибору у вихідному коді 2рз захищеної програми щонайменше однієї серії вибраних умовних переходів; - за допомогою модифікації щонайменше одного вибраного фрагмента коду 2рз захищеної програми, 7/0 причому ця модифікація така, що в ході виконання захищеної програми 2р глобальна функціональна можливість щонайменше однієї вибраної серії умовних переходів виконується за допомогою другої виконуваної частини 2реи у пристрої 6; - і за допомогою створення: - першої частини 2роз об'єктного коду захищеної програми 2р, причому ця перша частина 2роз об'єктного /5 Коду така, що в ході виконання захищеної програми 2р функціональна можливість щонайменше однієї вибраної серії умовних переходів виконується у пристрої 6, - І другої частини 2рои об'єктного коду захищеної програми 2р, причому ця друга частина 2рои об'єктного коду така, що після завантаження у пристрій 6, у ході виконання захищеної програми 2р реалізується друга виконувана частина 2рец, за допомогою якої виконується глобальна функціональна можливість щонайменшеIn order to better implement the principle of protection using a conditional transition, the protected program 2r is modified: - by selecting at least one series of selected conditional transitions in the source code of the protected program 2rz; - by means of modification of at least one selected fragment of code 2rz of the protected program, 7/0 and this modification is such that during the execution of the protected program 2r, the global functional possibility of at least one selected series of conditional transitions is performed using the second executable part of 2rey in the device 6; - and by creating: - the first part 2roz object code of the protected program 2r, and this first part 2roz object /5 Code is such that during the execution of the protected program 2r, the functional possibility of at least one selected series of conditional transitions is performed in the device 6 , - And of the second part of the object code of the protected program 2r, and this second part of the object code of the protected program 2r is such that after downloading to the device 6, during the execution of the protected program 2r, the second executable part of the 2rec is implemented, with the help of which the global functional possibility at least

ОДНІЄЇ вибраної серії умовних переходів.ONE selected series of conditional transitions.

Зрозуміло, принципи захисту згідно з винаходом можуть бути застосовані безпосередньо в ході розробки нової програми без попередньої реалізації проміжних уразливих програм. Таким чином, стадії 524 створення і 522 модифікації можуть бути здійснені одночасно, щоб відразу одержати захищену програму 2р.Of course, the principles of protection according to the invention can be applied directly during the development of a new program without the preliminary implementation of intermediate vulnerable programs. Thus, stages 524 creation and 522 modification can be carried out simultaneously to immediately obtain a protected program 2r.

В ході вихідної підфази Ро захисту в разі, коли застосований щонайменше один інший принцип захисту, на сч ов додаток до принципу захисту за допомогою змінної, після стадії З 2і створення захищеної програми 2р і, можливо, після стадії З 2» модифікації реалізується стадія, названа "стадією З 23 персоналізації". В ході цієї (8) стадії 5оз персоналізації друга частина 2рои об'єктного коду, що, можливо, містить засоби експлуатації, завантажується щонайменше в один незадіяний пристрій 60, щоб одержати щонайменше один пристрій 6.In the course of the initial sub-phase Po of protection in the case when at least one other protection principle is applied, in addition to the protection principle by means of a variable, after stage C 2 and the creation of the protected program 2p and possibly after stage C 2" modification, a stage called "stage C 23 of personalization". In the course of this (8) stage 5oz of personalization, the second part 2roy of the object code, possibly containing means of operation, is loaded into at least one idle device 60 to obtain at least one device 6.

Альтернативно, частина другої частини 2рои об'єктного коду, що, можливо, містить засоби експлуатації, Ге зо завантажується щонайменше в один передперсоналізований пристрій 66, щоб одержати щонайменше один пристрій 6. Завантаження цієї персоналізуючої інформації дозволяє зробити працездатним щонайменше один со пристрій б. Слід зазначити, що частина цієї інформації, бувши перенесеною в пристрій б, недоступна -д безпосередньо ззовні цього пристрою 6. Передача інформації персоналізації в незадіяний пристрій 60 або у передперсоналізований пристрій 6б може бути реалізована за допомогою адаптованого пристрою - персоналізації, що описано далі і проілюстровано Фіг.150. ї-Alternatively, a portion of the second part of the object code 2, possibly containing the means of operation, is loaded into at least one pre-personalized device 66 to produce at least one device 6. The loading of this personalization information enables at least one pre-personalized device b to be made operational. It should be noted that part of this information, having been transferred to the device b, is not accessible directly from the outside of this device 6. The transfer of personalization information to the inactive device 60 or to the pre-personalized device 6b can be implemented with the help of an adapted personalization device, which is described further and illustrated Fig. 150. uh-

У випадку пристрою б, що складається з карти 7 з мікрочипом і пристрою 8 її читання, персоналізація стосується тільки карти 7 з мікрочипом.In the case of a device b consisting of a card 7 with a microchip and a device 8 reading it, the personalization applies only to the card 7 with a microchip.

Різноманітні технічні засоби для реалізації фази Р захисту, які далі будуть описані докладніше, проілюстровані Фіг.110, 120, 130, 140 і 150. «Various technical means for implementing phase P protection, which will be described in more detail later, are illustrated in Fig. 110, 120, 130, 140 and 150.

На Фіг.110 наведений приклад реалізації системи 25, що дозволяє реалізувати стадію 542 конструювання з з с урахуванням визначень, уведених на стадії 544 визначень, і в ході якої конструюються засоби 12, 13 передачі . і, можливо, засоби експлуатації, призначені для пристрою 6. Подібна система 25 містить пристрій розробки и?» програм або робочу станцію, що звичайно представляє собою комп'ютер, який містить системний блок, монітор, периферійні пристрої типу клавіатури і миші і на якому встановлені такі програми: файлові редактори, асемблери, передпроцесори, компілятори, інтерпретатори, налагоджувачі й редактори зв'язків. -І На Фіг.120 наведений приклад реалізації пристрою 30 перед-персоналізації, що дозволяє завантажити щонайменше частково засоби 13 передачі і/або засоби експлуатації щонайменше в один незадіяний пристрій 60,Fig. 110 shows an example of the implementation of the system 25, which allows you to implement the stage 542 of the design with the consideration of the definitions entered at the stage 544 of the definitions, and during which the transmission means 12, 13 are designed. and possibly means of operation intended for the device 6. A similar system 25 includes a development device and? programs or a workstation, which is usually a computer that contains a system unit, a monitor, peripheral devices such as a keyboard and mouse, and on which the following programs are installed: file editors, assemblers, preprocessors, compilers, interpreters, debuggers and connection editors . - And Fig. 120 shows an example of the implementation of the pre-personalization device 30, which allows at least partially loading the transmission means 13 and/or the means of operation into at least one idle device 60,

Ш- щоб одержати щонайменше передперсоналізований пристрій 66. Пристрій ЗО передперсоналізації містить засіб - 31 читання-запису, що дозволяє електрично передперсоналізувати незадіяний пристрій 60, щоб одержати передперсоналізований пристрій 66, у який завантажені засоби 13 передачі і/або засоби експлуатації. Пристрій со ЗО передперсоналізації може також містити фізичні засоби 32 передперсоналізації незадіяного пристрою 60, щоSh- in order to obtain at least a pre-personalized device 66. The pre-personalization device ZO contains a read-write device 31, which allows electrically pre-personalizing the inactive device 60 to obtain a pre-personalized device 66, in which the transmission means 13 and/or the means of operation are loaded. The pre-personalization SOA device may also contain physical means 32 of pre-personalization of the idle device 60, which

Ф представляють собою, наприклад, принтер. У випадку якщо пристрій 6 складається з карти 7 з мікрочипом і пристрою 8 її читання, передперсоналізація має відношення звичайно тільки до карти 7 з мікрочипом.F represent, for example, a printer. If the device 6 consists of a card 7 with a microchip and a device 8 for its reading, pre-personalization is usually related only to the card 7 with a microchip.

На Фіг.130 наведений приклад реалізації системи 35, що дозволяє здійснити виготовлення засобів, призначених для використання при створенні захищених програм або автоматизації захисту програм. Подібна система 35 включає пристрій розробки програм або робочу станцію, що звичайно представляє собою комп'ютер,Fig. 130 shows an example of the implementation of the system 35, which allows the production of tools intended for use in creating protected programs or automating the protection of programs. Such a system 35 includes a software development device or workstation, which is usually a computer,

Ф) який містить системний блок, монітор, периферійні пристрої типу клавіатури і миші і на якому є такі програми: ка файлові редактори, асемблери, передпроцесори, компілятори, інтерпретатори, налагоджувачі й редактори зв'язків. во На Фіг.140 наведений приклад реалізації системи 40, що дозволяє прямо одержати захищену програму 2р або модифікувати вразливу програму 2у з метою одержати захищену програму 2р. Подібна система 40 включає пристрій розробки програми або робочу станцію, що звичайно представляє собою комп'ютер, який містить системний блок, монітор, периферійні пристрої типу клавіатури і миші і на якому встановлені такі програми: файлові редактори, асемблери, передпроцесори, компілятори, інтерпретатори, налагоджувачі й редактори 65 ЗВ'язків, а також засоби, що допомагають при створенні захищених програм або автоматизації захисту програм.Ф) which contains a system unit, a monitor, peripheral devices such as a keyboard and a mouse, and on which the following programs are installed: file editors, assemblers, preprocessors, compilers, interpreters, debuggers and connection editors. In Fig. 140, an example of the implementation of the system 40 is shown, which allows directly obtaining a protected program 2p or modifying a vulnerable program 2y in order to obtain a protected program 2p. Such a system 40 includes a program development device or workstation, which is usually a computer that includes a system unit, a monitor, peripheral devices such as a keyboard and mouse, and on which the following programs are installed: file editors, assemblers, preprocessors, compilers, interpreters, debuggers and editors of 65 CONNECTIONS, as well as tools that help in creating protected programs or automating the protection of programs.

На Фіг.150 наведений приклад реалізації пристрою 45 персоналізації що дозволяє завантажити другу частину 2рои об'єктного коду щонайменше в один незадіяний пристрій 60, щоб одержати щонайменше один пристрій б, або частину другої частини 2рои об'єктного коду щонайменше в один передперсоналізований пристрій 66, щоб одержати щонайменше один пристрій 6. Цей пристрій 45 персоналізації містить засіб 46Fig. 150 shows an example of the implementation of the personalization device 45, which allows loading the second part of the 2nd object code into at least one idle device 60 to obtain at least one device b, or a part of the second part of the 2nd object code into at least one pre-personalized device 66, to obtain at least one device 6. This personalization device 45 includes means 46

Читання-запису, що дозволяє електрично персоналізувати щонайменше один незадіяний пристрій 60 або щонайменше один передперсоналізований пристрій 66, щоб одержати щонайменше один пристрій 6. По завершенні цієї персоналізації пристрій 6 містить інформацію, необхідну для виконання захищеної програми 2р.Read-write, which allows electrically personalizing at least one idle device 60 or at least one pre-personalized device 66 to obtain at least one device 6. Upon completion of this personalization, the device 6 contains the information necessary to execute the protected program 2r.

Пристрій 45 персоналізації може також містити фізичні засоби 47 персоналізації щонайменше для одного пристрою 6, що представляє собою, наприклад, принтер. У випадку якщо пристрій 6 складається з карти 7 з 7/0 Мікрочипом і пристрою 8 її читання, персоналізація стосується звичайно тільки карти 7 з мікрочипом.The personalization device 45 may also contain physical personalization means 47 for at least one device 6, which is, for example, a printer. If the device 6 consists of a card 7 with a 7/0 Microchip and a device 8 for reading it, the personalization usually applies only to the card 7 with a microchip.

Спосіб захисту згідно з винаходом може бути реалізований з додатковими удосконаленнями. - Можна передбачити спільне використання множини пристроїв обробки і зберігання, між якими розподілена друга частина 2рои об'єктного коду захищеної програми 2р таким чином, що їхнє спільне виконання дозволяє виконати захищену програму 2р, відсутність же щонайменше одного з цих пристроїв обробки і зберігання /5 перешкоджає використанню захищеної програми 2р. - Аналогічно, після стадії 543 передперсоналізації й у ході стадії Зоз персоналізації частина другої частини 2рои об'єктного коду, необхідна для перетворення передперсоналізованого пристрою 66 на пристрій 6, може міститися в пристрої обробки і зберігання, використовуваному пристроєм 45 персоналізації, щоб обмежити доступ до цієї частини другої частини 2рои об'єктного коду. Зрозуміло, ця частина другої частини 2рои 2о об'єктного коду може бути розподілена між декількома пристроями обробки і зберігання таким чином, щоб ця частина другої частини 2рои об'єктного коду була доступною тільки в ході спільного використання цих пристроїв обробки і зберігання.The method of protection according to the invention can be implemented with additional improvements. - It is possible to envisage the joint use of a set of processing and storage devices, between which the second part of the object code of the protected program 2p is distributed in such a way that their joint execution allows the execution of the protected program 2p, while the absence of at least one of these processing and storage devices /5 prevents use of the protected program 2 years. - Similarly, after the pre-personalization stage 543 and during the personalization stage Z3, the part of the second part of the 2nd object code necessary to convert the pre-personalized device 66 to the device 6 can be contained in the processing and storage device used by the personalization device 45 to limit access to this parts of the second part of the 2nd part of the object code. Of course, this part of the second part of the object code can be distributed among several processing and storage devices in such a way that this part of the second part of the object code is available only during the joint use of these processing and storage devices.

Claims (24)

Формула винаходу с 25 оThe formula of the invention with 25 o 1. Спосіб захисту, на основі щонайменше одного незадіяного пристрою (60), що містить щонайменше засоби (15) запам'ятовування, від неавторизованого використання уразливої програми (2у), яка функціонує на системі (3) обробки даних, який полягає в тому, що: «со зо а у фазі (Р) захисту: « створюють захищену програму (2р): со - за допомогою вибору у вихідному коді (2у5) уразливої програми: «- Ш щонайменше однієї змінної, яка в ході виконання уразливої програми (2у) частково визначає її стан, Ш ї щонайменше одного фрагмента, що містить щонайменше одну вибрану змінну, в. 35 - за допомогою створення вихідного коду (2рз) захищеної програми на основі вихідного коду (2у5) уразливої чн програми модифікацією щонайменше одного вибраного фрагмента коду (2у5) уразливої програми, причому ця модифікація така, що в ході виконання захищеної програми (2р) щонайменше одна вибрана змінна або одна копія вибраної змінної знаходиться в незадіяному пристрої (60), який тим самим перетворюється на пристрій (6), - ії за допомогою створення першої частини (2ров) об'єктного коду захищеної програми (2р) на основі « вихідного коду (2рз) захищеної програми, причому перша частина (2роз) об'єктного коду така, що в ході з с виконання захищеної програми (2р) реалізується перша виконувана частина (2рев), яка виконується в системі (3) обробки даних і щонайменше один фрагмент якої враховує, що принаймні одна змінна або одна копія змінної :з» знаходиться у пристрої (б), а а у фазі ()) використання, в ході якої виконується захищена програма (2р): н- за наявності пристрою (б), кожного разу, коли цього вимагає фрагмент першої виконуваної частини (2рез), -І використовують змінну або копію змінної, що знаходиться у пристрої (6) таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма (2р) була повнофункціональною; - н- тоді як за відсутності пристрою (6), незважаючи на запит одного фрагмента першої виконуваної частини - (2ревз) використовувати змінну або копію змінної, що знаходиться у пристрої (6), не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, (ее) захищена програма (2р) не є повнофункціональною.1. A method of protection, based on at least one idle device (60) containing at least storage means (15), against unauthorized use of a vulnerable program (2y) that functions on a data processing system (3), which consists in that: "so zo a in the phase (P) of protection: " create a protected program (2p): so - by means of a selection in the source code (2y5) of a vulnerable program: "- Ш of at least one variable, which during the execution of a vulnerable program (2y ) partially determines its state, Ш and at least one fragment containing at least one selected variable, c. 35 - by creating the source code (2rz) of the protected program based on the source code (2u5) of the vulnerable chn program by modifying at least one selected fragment of the code (2u5) of the vulnerable program, and this modification is such that during the execution of the protected program (2r) at least one the selected variable or one copy of the selected variable is located in an idle device (60), which is thereby transformed into a device (6), - and by creating the first part (2rov) of the object code of the protected program (2p) based on the "source code ( 2rz) of the protected program, and the first part (2rz) of the object code is such that during the execution of the protected program (2r) the first executable part (2rev) is implemented, which is executed in the data processing system (3) and at least one fragment of which takes into account that at least one variable or one copy of the variable "z" is in the device (b), and a is in the phase ()) of use, during which the protected program (2p) is executed: n- in the presence of the device (b), every time , when the fragment of the first executable part (2rez) requires it, -And use a variable or a copy of the variable located in the device (6) in such a way that the specified fragment is executed correctly and, therefore, the protected program (2p) is fully functional; - n- while in the absence of device (6), despite the request of one fragment of the first executable part - (2revz) to use a variable or a copy of the variable located in device (6), the possibility of a correct answer to the specified request is not ensured, so that at least the specified fragment is not executed correctly and, therefore, (ee) the protected program (2p) is not fully functional. Ф F 2. Спосіб за п. 1, який відрізняється тим, що: а у фазі (Р) захисту: - модифікують захищену програму (2р): - за допомогою вибору у вихідному коді (2рз) захищеної програми: Ш щонайменше одного алгоритму, який у ході виконання захищеної програми (2р) використовує щонайменше (Ф) одну вибрану змінну і дозволяє одержати щонайменше одну результуючу змінну, ГІ Ш ї щонайменше одного фрагмента, що містить щонайменше один вибраний алгоритм, - за допомогою модифікації принаймні одного вибраного фрагмента коду (2рз) захищеної програми, причому во чя модифікація така, що: Ш в ході виконання захищеної програми (2р) перша виконувана частина (2рез) виконується в системі (3) обробки даних, а друга виконувана частина (2рей) виконується у пристрої (6), що містить також засоби (16) обробки, Ш щонайменше функціональна можливість принаймні одного вибраного алгоритму виконується за б5 / Допомогою другої виконуваної частини (2рец), Ш щонайменше один вибраний алгоритм розкладається таким чином, що в ході виконання захищеної програми (2р) реалізуються, за допомогою другої виконуваної частини (2рец), декілька різноманітних етапів, як-от: - надання щонайменше однієї змінної для пристрою (б), - реалізація у пристрої (6) функціональних можливостей алгоритму, виконуваного щонайменше над цією змінною, - , можливо, надання принаймні однієї результуючої змінної пристроєм (6) для системи (3) обробки даних, Ш щонайменше для одного вибраного алгоритму команди етапів визначені таким чином, що в ході виконання захищеної програми (2р) кожна команда етапу виконується за допомогою першої виконуваної частини (2рез) і /о Викликає у пристрої (6) виконання етапу за допомогою другої виконуваної частини (2рец), Ш причому впорядкування команд етапів вибрано з масиву впорядкувань, що дозволяють виконання захищеної програми (2р), - і за допомогою створення: Ш першої частини (2роз) об'єктного коду захищеної програми (2р), причому перша частина (2ровз) об'єктного /5 Коду така, що в ході виконання захищеної програми (2р) команди етапів виконуються відповідно до вибраного впорядкування, Ш її другої частини (2рой) об'єктного коду захищеної програми (2р), причому друга частина (2рои) об'єктного коду така, що після завантаження у незадіяний пристрій (60), в ході виконання захищеної програми (2р) реалізується друга виконувана частина (2рец), за допомогою якої виконуються етапи, запуск яких було викликано першою виконуваною частиною (2рез); "« ії завантажують другу частину (2роц) об'єктного коду в незадіяний пристрій (60) з одержанням пристрою (б), а а у фазі (3) використання: - за наявності пристрою (6), кожного разу, коли цього вимагає команда етапу, що міститься у фрагменті першої виконуваної частини (2ревз), виконують відповідний етап у пристрої (б) таким чином, щоб указаний сч об фрагмент виконувався коректно й, отже, захищена програма (2р) була повнофункціональною; н- тоді як за відсутності пристрою (6), незважаючи на запит одного фрагмента першої виконуваної частини і) (2ревз) на запуск виконання етапу у пристрої (6), не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма (2р) не є повнофункціональною.2. The method according to claim 1, which differs in that: and in the phase (P) of protection: - the protected program (2r) is modified: - by means of a selection in the source code (2rz) of the protected program: Ш of at least one algorithm, which during the execution of the protected program (2r) uses at least (Ф) one selected variable and allows to receive at least one resulting variable, GI Ш and at least one fragment containing at least one selected algorithm - by means of modification of at least one selected code fragment (2rz) of the protected program , and its modification is such that: During the execution of the protected program (2p), the first executable part (2rez) is executed in the data processing system (3), and the second executable part (2rey) is executed in the device (6), which also contains means (16) of processing, Ш at least the functional possibility of at least one selected algorithm is performed according to b5 / With the help of the second executable part (2rec), Ш at least one selected algorithm is decomposed in such a way that in the course of at the end of the protected program (2r), several different stages are implemented with the help of the second executable part (2rec), such as: - provision of at least one variable for the device (b), - implementation in the device (6) of the functional capabilities of the algorithm executed at least over by this variable, - it is possible to provide at least one resulting variable by the device (6) for the data processing system (3), Ш for at least one selected algorithm stage commands are defined in such a way that during the execution of the protected program (2p) each stage command is executed according to using the first executable part (2rez) and /o Causes the device (6) to execute the stage using the second executable part (2rec), Ш and the ordering of the stage commands is selected from the array of orders that allow the execution of the protected program (2r), - and using creation: Ш of the first part (2 roz) of the object code of the protected program (2r), and the first part (2 roz) of the object /5 Code is such that during the execution of the protected program (2r) stage commands are executed in accordance with the selected order, Ш of its second part (2рой) of the object code of the protected program (2р), and the second part (2рой) of the object code is such that after loading into the idle device (60), during the execution of the protected program (2p), the second executable part (2rec) is implemented, with the help of which the stages whose launch was caused by the first executable part (2rez) are executed; "« they load the second part (2roc) of the object code into the idle device (60) with the receipt of the device (b), and in the phase (3) of use: - in the presence of the device (6), every time the command requires it of the stage contained in the fragment of the first executable part (2revz), perform the corresponding stage in the device (b) in such a way that the indicated fragment is executed correctly and, therefore, the protected program (2p) is fully functional; n- while in the absence of the device (6), despite the request of one fragment of the first executable part i) (2revz) to start the execution of the stage in the device (6), the possibility of a correct response to the specified request is not provided, so that at least the specified fragment is not executed correctly and, therefore, the protected program (2p) is not fully functional. Ге зо Ge zo 3. Спосіб за п. 1, який відрізняється тим, що: а у фазі (Р) захисту: со "- визначають: «- - набір елементарних функцій, елементарні функції якого можуть бути виконані у пристрої (6), який містить також засоби (16) обробки, ї- - 1 набір елементарних команд для зазначеного набору елементарних функцій, причому зазначені ча елементарні команди можуть бути виконані в системі (3) обробки даних, викликаючи виконання у пристрої (6) елементарних функцій; - конструюють засоби експлуатації, що дозволяють перетворити незадіяний пристрій (60) на пристрій (6), здатний виконувати елементарні функції зі вказаного набору, причому виконання зазначених елементарних « функцій викликається виконанням елементарних команд у системі (3) обробки даних; з с - модифікують захищену програму (2р): - за допомогою вибору у вихідному коді (2рз) захищеної програми:3. The method according to claim 1, which differs in that: and in the phase (P) of protection: so "- define: "- - a set of elementary functions, the elementary functions of which can be performed in the device (6), which also contains means ( 16) processing, i- - 1 set of elementary commands for the indicated set of elementary functions, and the indicated elementary commands can be executed in the system (3) of data processing, causing the execution of elementary functions in the device (6); - design means of operation that allow convert an idle device (60) into a device (6) capable of performing elementary functions from the specified set, and the execution of the specified elementary "functions is caused by the execution of elementary commands in the data processing system (3); with c - modify the protected program (2p): - by using a selection in the source code (2rz) of the protected program: ;» Ш щонайменше одного алгоритму, який у ході виконання захищеної програми (2р) використовує щонайменше одну вибрану змінну і дозволяє одержати щонайменше одну результуючу змінну,;" Ш of at least one algorithm, which during the execution of the protected program (2p) uses at least one selected variable and allows obtaining at least one resulting variable, Ш ї щонайменше одного фрагмента, що містить принаймні один вибраний алгоритм,The length of at least one fragment containing at least one selected algorithm, -І - за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, причому зазначена модифікація така, що:-And - by means of modification of at least one selected code fragment (2rz) of the protected program, and the specified modification is such that: Ш- Ш в ході виконання захищеної програми (2р) перша виконувана частина (2рез) виконується в системі (3)Sh- Sh during the execution of the protected program (2p), the first executable part (2rez) is executed in the system (3) - обробки даних, а друга виконувана частина (2рец) виконується у пристрої (6),- data processing, and the second executable part (2rec) is executed in the device (6), Ш щонайменше функціональна можливість принаймні одного вибраного алгоритму виконується за со допомогою другої виконуваної частини (2рец),Ш at least the functional possibility of at least one selected algorithm is performed with the help of the second executable part (2rec), Ф Ш щонайменше один вибраний алгоритм розкладається таким чином, що в ході виконання захищеної програми (2р) вказаний алгоритм виконується за допомогою другої виконуваної частини (2рец) із застосуванням елементарних функцій,Ф Ш at least one selected algorithm is decomposed in such a way that during the execution of the protected program (2r), the specified algorithm is executed with the help of the second executable part (2rec) using elementary functions, Ш щонайменше для одного вибраного алгоритму елементарні команди інтегруються у вихідний код (2рз) захищеної програми таким чином, що в ході виконання захищеної програми (2р) кожна елементарна командаFor at least one selected algorithm, the elementary commands are integrated into the source code (2rz) of the protected program in such a way that during the execution of the protected program (2r), each elementary command Ф) виконується за допомогою першої виконуваної частини (2рез) і викликає у пристрої (6) виконання, за допомогою ка другої виконуваної частини (2реиц), елементарної функції,Ф) is executed with the help of the first executable part (2rez) and causes the device (6) to execute, with the help of the second executable part (2reits), an elementary function, Ш причому впорядкування елементарних команд вибирається з масиву впорядкувань, що дозволяють бо виконання захищеної програми (2р),And the arrangement of elementary commands is selected from the array of arrangements that allow the execution of the protected program (2p), - і за допомогою створення:- and by creating: Ш першої частини (2роз) об'єктного коду захищеної програми (2р), причому перша частина (2ровз) об'єктного коду така, що в ході виконання захищеної програми (2р) елементарні команди виконуються відповідно до вибраного впорядкування,Ш of the first part (2roz) of the object code of the protected program (2r), and the first part (2rovz) of the object code is such that during the execution of the protected program (2r) elementary commands are executed in accordance with the selected arrangement, 65 Ш ії другої частини (2рои) об'єктного коду захищеної програми (2р), що містить засоби експлуатації, причому друга частина (2роиц) об'єктного коду така, що після завантаження в незадіяний пристрій (60), в ході виконання захищеної програми (2р) реалізується друга виконувана частина (2реш), за допомогою якої виконуються елементарні функції, запуск яких був викликаний першою виконуваною частиною (2резв); "« ії завантажують другу частину (2роц) об'єктного коду в незадіяний пристрій (60) з одержанням пристрою (б), а а у фазі (3) використання: "- за наявності пристрою (6), кожного разу, коли цього вимагає елементарна команда, що міститься у фрагменті першої виконуваної частини (2рез), виконують відповідну елементарну функцію у пристрої (6) таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма (2р) була повнофункціональною; 70 н- тоді як за відсутності пристрою (6), незважаючи на запит фрагмента першої виконуваної частини (2рев) на запуск виконання у пристрої (6) елементарної функції, не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма (2р) не є повнофункціональною.65 Sections of the second part (2roy) of the object code of the protected program (2r) containing means of operation, and the second part (2roys) of the object code is such that after loading into the idle device (60), during the execution of the protected program (2r) the second executable part (2resh) is implemented, with the help of which elementary functions are performed, the launch of which was caused by the first executable part (2rezv); "" they load the second part (2roc) of the object code into the idle device (60) with the receipt of the device (b), and in the phase (3) of use: "- in the presence of the device (6), whenever it requires the elementary command contained in the fragment of the first executable part (2rez) performs the corresponding elementary function in the device (6) in such a way that the specified fragment is executed correctly and, therefore, the protected program (2p) is fully functional; 70 n- while in the absence of the device (6), despite the request of the fragment of the first executable part (2rev) to start the execution of the elementary function in the device (6), the possibility of a correct response to the specified request is not provided, so that at least the specified fragment is not executed correctly and, therefore, the protected program (2p) is not fully functional. 4. Спосіб за п. 2, який відрізняється тим, що: а у фазі (Р) захисту: "- визначають: - набір елементарних функцій, елементарні функції якого можуть бути виконані у пристрої (6), - і набір елементарних команд для згаданого набору елементарних функцій, причому зазначені елементарні команди можуть бути виконані в системі (3) обробки даних, викликаючи виконання у пристрої (6) елементарних функцій; н« конструюють засоби експлуатації, що дозволяють пристрою (6) виконувати елементарні функції з указаного набору, причому виконання зазначених елементарних функцій викликається виконанням елементарних команд у системі (3) обробки даних; "і модифікують захищену програму (2р): сч - за допомогою вибору у вихідному коді (2рз) захищеної програми щонайменше одного етапу, який у ході виконання захищеної програми (2р) здійснює функціональну можливість алгоритму, і) - за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, причому згадана модифікація така, що: Ш щонайменше один вибраний етап розкладається таким чином, що в ході виконання захищеної програми «о зо (р) вказаний етап виконується за допомогою другої виконуваної частини (2рец) із застосуванням елементарних функцій, со Ш щонайменше для одного вибраного етапу елементарні команди інтегруються у вихідний код (2рз) «- захищеної програми таким чином, що в ході виконання захищеної програми (2р) кожна елементарна команда виконується за допомогою першої виконуваної частини (2рез) і викликає у пристрої (6) виконання, за допомогою ї- другої виконуваної частини (2реиц), елементарної функції, ї- Ш ії впорядкування елементарних команд вибирається в масиві впорядкувань, що дозволяють виконання захищеної програми (2р), - і за допомогою створення: Ш першої частини (2роз) об'єктного коду захищеної програми (2р), причому перша частина (2ровз) об'єктного « Коду така, що в ході виконання захищеної програми (2р) елементарні команди виконуються відповідно до з с вибраного впорядкування,4. The method according to claim 2, which differs in that: and in the phase (P) of protection: "- define: - a set of elementary functions, the elementary functions of which can be performed in the device (6), - and a set of elementary commands for the mentioned set elementary functions, and the specified elementary commands can be performed in the data processing system (3), causing the device (6) to perform elementary functions; n" construct means of operation that allow the device (6) to perform elementary functions from the specified set, and the execution of the specified elementary functions are called by the execution of elementary commands in the data processing system (3); "and modify the protected program (2r): сч - by selecting at least one step in the source code (2rz) of the protected program, which during the execution of the protected program (2r) the functional possibility of the algorithm, and) - by means of modification of at least one selected code fragment (2rz) of the protected program, and the said modification is such that: at least one selected stage is decomposed in such a way that during the execution of the protected program "о зо (р) the specified stage is executed with the help of the second executable part (2rec) using elementary functions, со Ш for at least one selected stage, elementary commands are integrated into the source code ( 2rz) "- a protected program in such a way that during the execution of the protected program (2p), each elementary command is executed with the help of the first executable part (2rez) and causes the device (6) to be executed with the help of the second executable part (2reits), of an elementary function, the ordering of elementary commands is selected from the array of orderings that allow the execution of the protected program (2r), and by creating: the first part (2roz) of the object code of the protected program (2r), and the first part ( 2rovz) of the object "Code such that during the execution of the protected program (2r) elementary commands are executed in accordance with the order selected from c, . Ш Її другої частини (2роц) об'єктного коду захищеної програми (2р), що містить також засоби експлуатації, и?» причому друга частина (2рои) об'єктного коду така, що після завантаження у пристрій (6), у ході виконання захищеної програми (2р) реалізується друга виконувана частина (2реш), за допомогою якої виконуються елементарні функції, запуск яких був викликаний першою виконуваною частиною (2рез), -І а а у фазі (3) використання: н- за наявності пристрою (6), кожного разу, коли цього вимагає елементарна команда, що міститься в частині Ш- першої виконуваної частини (2ревз), виконують відповідну елементарну функцію у пристрої (6) таким чином, щоб - указаний фрагмент виконувався коректно й, отже, захищена програма (2р) була повнофункціональною; н- тоді як за відсутності пристрою (6), незважаючи на запит одного фрагмента першої виконуваної частини со (2рез) на запуск виконання у пристрої (б) елементарної функції, не забезпечується можливість коректної Ф відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма (2р) не є повнофункціональною.. Ш Its second part (2rots) of the object code of the protected program (2r), which also contains means of operation, and? and the second part (2roy) of the object code is such that after downloading to the device (6), during the execution of the protected program (2r), the second executable part (2resh) is implemented, with the help of which elementary functions are performed, the launch of which was caused by the first executable by part (2rez), -I a a in phase (3) of use: n- in the presence of device (6), every time it is required by the elementary command contained in part Ш- of the first executed part (2revz), perform the corresponding elementary the function in the device (6) in such a way that - the specified fragment is executed correctly and, therefore, the protected program (2p) is fully functional; n- while in the absence of the device (6), despite the request of one fragment of the first executable part of the co (2rez) to start the execution of the elementary function in the device (b), the possibility of a correct Ф response to the specified request is not ensured, so that at least the specified fragment is not is executed correctly and, therefore, the protected program (2p) is not fully functional. 5. Спосіб за п. З або 4, який відрізняється тим, що: а у фазі (Р) захисту: "- визначають: (Ф, - щонайменше одну характеристику виконання програми, що може бути проконтрольована, щонайменше ка частково, у пристрої (б), - щонайменше один критерій, що має виконуватися щонайменше для однієї характеристики виконання бо програми, - засоби (17) детектування, що їх слід застосовувати у пристрої (б) і які дозволяють виявити, що принаймні одна характеристика виконання програми не відповідає щонайменше одному відповідному критерію, - і засоби (18) примусу, що їх слід застосовувати у пристрої (6) і які дозволяють проінформувати систему (3) обробки даних і/або модифікувати виконання програми, поки не дотримано хоча б одного критерію; 65 « конструюють засоби експлуатації, що дозволяють пристрою (б) задіяти засоби (17) детектування й засоби (18) примусу;5. The method according to item C or 4, which differs in that: and in the phase (P) of protection: "- determine: (Ф, - at least one characteristic of program execution that can be controlled, at least partially, in the device ( b), - at least one criterion that must be fulfilled for at least one performance characteristic of the program, - detection means (17), which should be used in the device (b) and which allow to detect that at least one program performance characteristic does not correspond to at least one the corresponding criterion, - and means (18) of coercion, which should be applied in the device (6) and which allow to inform the system (3) of data processing and/or modify the execution of the program until at least one criterion is met; 65 "design means of operation , which allow the device (b) to engage means (17) of detection and means (18) of coercion; "і модифікують захищену програму (2р): - за допомогою вибору щонайменше однієї характеристики виконання контрольованої програми з характеристик виконання, які можуть бути проконтрольовані, - за допомогою вибору щонайменше одного критерію, який має виконуватися щонайменше для однієї вибраної характеристики виконання програми, - за допомогою вибору у вихідному коді (2рз) захищеної програми елементарних функцій, для яких варто контролювати щонайменше одну характеристику виконання контрольованої програми, - за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, 7/0 причому вказана модифікація така, що в ході виконання захищеної програми (2р) принаймні одна вибрана характеристика виконання контролюється за допомогою другої виконуваної частини, (2рец) і недотримання критерію приводить до інформування системи (3) обробки даних і/або до модифікації виконання захищеної програми (2р), - Її за допомогою створення другої частини (2роц) об'єктного коду захищеної програми (2р), що містить засоби експлуатації, що задіюють також засоби (17) детектування й засоби (18) примусу, причому друга частина (2роц) об'єктного коду така, що після завантаження у пристрій (6), у ході виконання захищеної програми (2р) щонайменше одна характеристика виконання програми контролюється, і недотримання критерію приводить до інформування системи (3) обробки даних і/або до модифікації виконання захищеної програми (2р), а а у фазі (3) використання: н- за наявності пристрою (6): - якщо всіх критеріїв, що відповідають усім контрольованим характеристикам виконання всіх модифікованих фрагментів захищеної програми (2р), дотримано, допускають номінальне функціонування згаданих фрагментів захищеної програми (2р) й, отже, номінальне функціонування захищеної програми (2р), - а якщо принаймні одного з критеріїв, що відповідають характеристиці контрольованого виконання одного сч ов фрагмента захищеної програми (2р), не дотримано, інформують систему (3) обробки даних про зазначене недотримання і/або модифікують функціонування фрагмента захищеної програми (2р) таким чином, щоб і) функціонування захищеної програми (2р) було змінене."and modify the protected program (2p): - by selecting at least one performance characteristic of the controlled program from the performance characteristics that can be controlled, - by selecting at least one criterion that must be fulfilled for at least one selected performance characteristic of the program, - by selection in the source code (2rz) of the protected program of elementary functions for which it is worth monitoring at least one characteristic of the execution of the controlled program, - by means of modification of at least one selected fragment of the code (2rz) of the protected program, 7/0 and the specified modification is such that during execution of the protected program (2r) at least one selected performance characteristic is controlled using the second executable part, (2rec) and non-compliance with the criterion leads to informing the data processing system (3) and/or modifying the execution of the protected program (2r), - It by creating a second parts (2 years) of the object code are protected of the program (2r), containing means of operation, which also use means (17) of detection and means (18) of coercion, and the second part (2r) of the object code is such that after loading into the device (6), during execution of the protected program (2p) at least one characteristic of the program execution is monitored, and non-compliance with the criterion leads to informing the system (3) of data processing and/or to modifying the execution of the protected program (2p), and in phase (3) of use: n- if the device is available (6): - if all the criteria corresponding to all the controlled characteristics of the execution of all modified fragments of the protected program (2r) are met, allowing the nominal functioning of the mentioned fragments of the protected program (2r) and, therefore, the nominal functioning of the protected program (2r), - and if at least one of the criteria corresponding to the characteristics of the controlled execution of one text fragment of the protected program (2p) is not met, the data processing system (3) is informed about the non-compliance and/or modify the functioning of a fragment of the protected program (2p) in such a way that i) the functioning of the protected program (2p) was changed. 6. Спосіб за п. 5, який відрізняється тим, що: щоб обмежити використання захищеної програми (2р), Ге зо а у фазі (Р) захисту: "- визначають: со - як характеристику виконання програми, яка може бути проконтрольована, - змінну для кількісного контролю «- використання однієї функціональної можливості програми, - як критерій, що його слід дотримуватися, - щонайменше одне порогове значення, зв'язане з кожною - змінною для кількісного контролю, ї- - і засоби поновлення, що дозволяють поновити щонайменше одну змінну для кількісного контролю; « конструюють засоби експлуатації, що дозволяють пристрою (б) застосовувати засоби поновлення; "і модифікують захищену програму (2р): - за допомогою вибору як характеристики виконання контрольованої програми щонайменше однієї змінної « для кількісного контролю використання однієї функціональної можливості програми, з с - за допомогою вибору: . Ш щонайменше однієї функціональної можливості захищеної програми (2р), використання якої можна и?» проконтролювати з використанням змінної для кількісного контролю, Ш щонайменше однієї змінної для кількісного контролю, яка служить для кількісної характеристики Використання згаданої функціональної можливості, -І Ш щонайменше одного порогового значення, пов'язаного з вибраною змінною для кількісного контролю і відповідного межі використання зазначеної функціональної можливості, - Ш ї щонайменше одного методу поновлення значення згаданої змінної для кількісного контролю залежно від - використання зазначеної функціональної можливості, - Її за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, со причому зазначена модифікація така, що в ході виконання захищеної програми (2р) змінна для кількісного Ф контролю поновлюється за допомогою другої виконуваної частини (2реи), залежно від використання зазначеної функціональної можливості, і враховується щонайменше одне перевищення порогового значення, а а у фазі ()) використання, за наявності пристрою (б), у разі, коли виявлено щонайменше одне перевищення в порогового значення, що відповідає щонайменше одній межі використання, інформують про це систему (3) обробки даних і/або модифікують функціонування фрагмента захищеної програми (2р) таким чином, щоб Ф) функціонування захищеної програми (2р) було змінене. ка 7. Спосіб за п. 6, який відрізняється тим, що: а у фазі (Р) захисту: 60 "- визначають: - декілька відповідних порогових значень щонайменше для однієї змінної для кількісного контролю, - і різноманітні засоби примусу, що відповідають кожному зі згаданих порогів; "і модифікують захищену програму (2р): - за допомогою вибору у вихідному коді (2рз) захищеної програми щонайменше однієї змінної для кількісного б5 Контролю, з якою мають бути зв'язані декілька порогових значень, що відповідають різноманітним межам використання функціональної можливості,6. The method according to claim 5, which differs in that: in order to limit the use of the protected program (2p), Gezo and in the phase (P) of protection: "- define: so - as a characteristic of the execution of the program that can be controlled, - a variable for quantitative control "- the use of one functionality of the program, - as a criterion to be followed, - at least one threshold value associated with each - variable for quantitative control, and - and means of renewal, allowing to renew at least one variable for quantitative control; "construct means of operation that allow the device (b) to apply update means; "and modify the protected program (2r): - by selecting at least one variable as a characteristic of the controlled program's execution "for quantitative control of the use of one functionality of the program, with c - by choosing: . At least one functionality of the protected program (2p), the use of which can be used? control using a variable for quantitative control, Ш at least one variable for quantitative control, which serves to quantitatively characterize the use of the mentioned functionality, - Ш at least one threshold value associated with the selected variable for quantitative control and the corresponding limit of the use of the specified functionality , - The use of at least one method of updating the value of the mentioned variable for quantitative control depending on - the use of the specified functionality, - It by means of the modification of at least one selected code fragment (2rz) of the protected program, and the specified modification is such that during the execution of the protected program (2r) the variable for the quantitative Ф control is renewed with the help of the second executable part (2rey), depending on the use of the specified functionality, and at least one exceeding of the threshold value is taken into account in the phase ()) of use, if the device (b) is present, in the event that at least one exceedance of the threshold value corresponding to at least one limit of use is detected, the data processing system (3) is informed about this and/or the functioning of the fragment of the protected program (2r) is modified in such a way that Ф) the functioning of the protected program (2r) ) was changed. ka 7. The method according to claim 6, which differs in that: and in the phase (P) of protection: 60 "- determine: - several corresponding threshold values for at least one variable for quantitative control, - and various means of coercion corresponding to each of mentioned thresholds; "and modify the protected program (2r): - by selecting in the source code (2rz) of the protected program at least one variable for quantitative b5 Control, with which several threshold values corresponding to various limits of the use of functionality must be associated , - за допомогою вибору щонайменше двох порогових значень, зв'язаних з вибраною змінною для кількісного контролю, - Її за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, причому вказана модифікація така, що в ході виконання захищеної програми (2р) перевищення різноманітних порогових значень враховуються за допомогою другої виконуваної частини (2рец) різноманітними способами, а а у фазі (3) використання: н- за наявності пристрою (6): - у випадку, коли виявлено перевищення першого порогового значення, дають команду захищеній програмі 7/0 гр) не використовувати надалі відповідну функціональну можливість, - а у разі, коли виявлено перевищення другого порогового значення, роблять нездійсненною відповідну функціональну можливість і/або щонайменше частину захищеної програми (2р).- by selecting at least two threshold values associated with the selected variable for quantitative control, - It by modifying at least one selected code fragment (2rz) of the protected program, and the specified modification is such that during the execution of the protected program (2r) exceeding various threshold values are taken into account with the help of the second executable part (2rec) in various ways, and in phase (3) of use: n- in the presence of the device (6): - in the case when the first threshold value is exceeded, a command is given to the protected program 7/ 0 g) not to use the corresponding functional possibility in the future - and in the event that the second threshold value is exceeded, the corresponding functional possibility and/or at least part of the protected program are made impossible (2p). 8. Спосіб за п. 6 або 7, який відрізняється тим, що: а у фазі (Р) захисту: " визначають засоби перезавантаження, що дозволяють щонайменше одне додаткове використання щонайменше однієї функціональної можливості програми, контрольованої за допомогою змінної для кількісного контролю; « конструюють засоби експлуатації, що дозволяють також пристрою (6) задіяти засоби перезавантаження; "і модифікують захищену програму (2р): - за допомогою вибору у вихідному коді (2рз) захищеної програми щонайменше однієї змінної для кількісного контролю, що дозволяє обмежити використання однієї функціональної можливості, для якої існує можливість дозволу щонайменше на одне додаткове використання, - і за допомогою модифікації щонайменше одного вибраного фрагмента, причому згадана модифікація така, що у фазі перезавантаження щонайменше одне додаткове використання щонайменше однієї функціональної сч можливості, що відповідає одній вибраній змінній для кількісного контролю, може бути дозволене, а а у фазі перезавантаження: і) «- поновлюють щонайменше одну вибрану змінну для кількісного контролю і щонайменше одне відповідне порогове значення так, щоб дозволити щонайменше одне додаткове використання функціональної можливості.8. The method according to claim 6 or 7, which is characterized by the fact that: and in the phase (P) of the protection: "reset means are determined, allowing at least one additional use of at least one functionality of the program, controlled by means of a variable for quantitative control; " means of operation, which also allow the device (6) to use the means of restarting; "and modify the protected program (2r): - by selecting in the source code (2rz) of the protected program at least one variable for quantitative control, which allows limiting the use of one functionality, for which there is a possibility of allowing at least one additional use, and by modifying at least one selected fragment, said modification being such that in the restart phase at least one additional use of at least one functionality corresponding to one selected variable for quantitative control can be allowed, and a in the transition phase e-loading: i) "- update at least one selected variable for quantitative control and at least one corresponding threshold value so as to allow at least one additional use of the functionality. 9. Спосіб за п. 5, який відрізняється тим, що: Ге зо а у фазі (Р) захисту: "- визначають: со - як характеристику виконання програми, яка може бути проконтрольована, - профіль використання «- програми, - і як критерій, що його слід дотримуватися, - щонайменше одну ознаку виконання програми; - "і модифікують захищену програму (2р): ї- - за допомогою вибору як характеристики виконання контрольованої програми щонайменше одного профілю використання програми, - за допомогою вибору щонайменше однієї ознаки виконання програми, що її має дотримуватися щонайменше один профіль використання, « - ії за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, пев) с причому зазначена модифікація така, що в ході виконання захищеної програми (2р) друга виконувана частина . (2рец) дотримується всіх вибраних ознак виконання, и?» а а у фазі (3) використання, за наявності пристрою (6) у випадку, якщо виявлено, що не дотримується хоча б одна ознака виконання, інформують про це систему (3) обробки даних і/або модифікують функціонування частини захищеної програми (2р) так, щоб функціонування захищеної програми (2р) було змінено. -І 10. Спосіб за п. 9, який відрізняється тим, що: а у фазі (Р) захисту: ш- "- визначають: - - набір інструкцій, інструкції зі складу якого можуть бути виконані у пристрої (б), - набір команд інструкцій для зазначеного набору інструкцій, причому команди інструкцій можуть бути со виконані в системі (3) обробки даних, викликаючи у пристрої (6) виконання інструкцій, Ф - як профіль використання -- зчеплення інструкцій, - як ознаку виконання - бажане зчеплення для виконання інструкцій, - як засоби (17) детектування - засоби, що дозволяють виявити, що зчеплення інструкцій не відповідає 5Б бажаному, - як засоби (18) примусу - засоби, що дозволяють проінформувати систему (3) обробки даних і/або Ф) модифікувати функціонування фрагмента захищеної програми (2р), якщо зчеплення інструкцій не відповідає ка бажаному; «- конструюють засоби експлуатації, що дозволяють пристрою (6) виконувати інструкції з набору інструкцій, бо причому виконання зазначених інструкцій викликається виконанням команд інструкцій у системі (3) обробки даних; "і модифікують захищену програму (2р): - за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми: Ш за допомогою перетворення елементарних функцій на інструкції, 65 Ш за допомогою завдання зчеплення, що його мають дотримуватися щонайменше деякі з інструкцій під час їхнього виконання у пристрої (б),9. The method according to claim 5, which differs in that: Gezo a in the phase (P) of protection: "- defined: so - as a characteristic of the execution of the program that can be controlled, - the profile of use "- the program, - and as a criterion , that it should be observed, - at least one sign of program execution; - "and modify the protected program (2p): і- - by selecting as a characteristic of the execution of the controlled program at least one profile of the use of the program, - by selecting at least one sign of program execution, that it must be followed by at least one usage profile, i.e. by modifying at least one selected fragment of the code (2rz) of the protected program, specified) and the specified modification is such that during the execution of the protected program (2r) the second executable part . (2rets) complies with all the selected features of performance, and? and and in the phase (3) of use, in the presence of the device (6), in the event that it is found that at least one performance feature is not observed, the data processing system (3) is informed about this and/or the functioning of the part of the protected program (2p) is modified so that the functioning of the protected program (2p) was changed. -And 10. The method according to claim 9, which differs in that: and in the phase (P) of protection: ш- "- determine: - - a set of instructions, the instructions of which can be executed in the device (b), - a set of commands of instructions for the specified set of instructions, and the instruction commands can be executed in the data processing system (3), causing the device (6) to execute the instructions, Ф - as a usage profile - instruction coupling, - as a sign of execution - the desired coupling for the execution of instructions , - as means of (17) detection - means of detecting that the coupling of instructions does not correspond to the 5B desired, - as means of (18) coercion - means of informing the system of (3) data processing and/or Ф) modifying the functioning of a fragment of the protected program (2p), if the coupling of the instructions does not correspond to the desired; "- construct means of operation that allow the device (6) to execute instructions from a set of instructions, because the execution of the specified instructions is caused by the execution of other commands instructions in the data processing system (3); "and modify the protected program (2r): - by modifying at least one selected fragment of the code (2rz) of the protected program: Ш by converting elementary functions into instructions, 65 Ш by means of a coupling task that must be followed by at least some of the instructions during their implementation in the device (b), Ш ії за допомогою перетворення елементарних команд на команди інструкцій, що відповідають використовуваним інструкціям, а а у фазі (ОО) використання, в присутності пристрою (6), у випадку, якщо виявлено, що зчеплення Виконуваних у пристрої (6) інструкцій не відповідає бажаному, інформують про це систему (3) обробки даних мабо модифікують функціонування фрагмента захищеної програми (2р) так, щоб функціонування захищеної програми (2р) було змінене.By converting elementary commands into instruction commands corresponding to the instructions used, and in the phase (OO) of use, in the presence of the device (6), in the event that it is found that the coupling of the instructions executed in the device (6) does not correspond to the desired , inform the data processing system (3) about this, or modify the functioning of the fragment of the protected program (2p) so that the functioning of the protected program (2p) is changed. 11. Спосіб за п. 10, який відрізняється тим, що: а у фазі (Р) захисту: 70 "- визначають: - як набір інструкцій - набір інструкцій, у якому щонайменше деякі інструкції працюють на регістрах і використовують щонайменше один операнд для видачі результату, - щонайменше для частини інструкцій, що працюють на регістрах: Ш частину (РЕ), що задає функціональну можливість інструкції, Ш їі частину, що задає бажане зчеплення для виконання інструкцій і містить бітові поля, що відповідають: - полю (СІЇ) ідентифікації інструкції, - Ї для кожного операнда інструкції: х полю (СО) прапора, хі полю (СІР,) ідентифікації, передбаченої для операнда, - для кожного регістра, що належить до засобів експлуатації і використовується набором інструкцій, - поле (СІбу) передбаченої ідентифікації, в якому автоматично запам'ятовується ідентифікація останньої інструкції, що повернула свій результат у вказаний регістр, - як засоби (17) детектування - засоби, що дозволяють під час виконання інструкції для кожного операнда, коли цього вимагає поле (СО) прапора, контролювати рівність між полем (Сібу) генерованої ідентифікації, сч ов Відповідним регістру, використовуваному згаданим операндом, і полем (СІРК) передбаченої ідентифікації о початкової адреси цього операнда, - і як засоби (18) примусу - засоби, що дозволяють модифікувати результат виконання інструкцій, якщо принаймні одна з контрольованих рівностей хибна.11. The method according to claim 10, which differs in that: and in the protection phase (P): 70 "- defined: - as a set of instructions - a set of instructions in which at least some instructions operate on registers and use at least one operand to produce a result , - at least for a part of the instructions operating on registers: Ш part (РЭ), which specifies the functional possibility of the instruction, Ш part, which specifies the desired coupling for the execution of instructions and contains bit fields corresponding to: - the field (СИИ) of the instruction identification , - І for each operand of the instruction: x field (СО) of the flag, x field (СИР,) of the identification provided for the operand, - for each register belonging to the means of operation and used by the set of instructions, - field (СИБУ) of the provided identification, in which the identification of the last instruction that returned its result to the specified register is automatically remembered - as means (17) of detection - means that allow during the execution of the instruction for each op rand, when required by the field (CO) of the flag, to control the equality between the field (Sibu) of the generated identification, according to the corresponding register used by the mentioned operand, and the field (SIRK) of the predicted identification about the starting address of this operand, - and as means (18) coercion - means that allow you to modify the result of the execution of instructions, if at least one of the controlled equalities is false. 12. Спосіб по п. 3, 4 або 10, який відрізняється тим, що: «о зо а у фазі (Р) захисту: "- визначають: со - як команду запуску - елементарну команду або команду інструкції, «- - як залежну функцію - елементарну функцію або інструкцію, - як установний параметр - щонайменше один аргумент для команди запуску, що відповідає щонайменше - Зв частково інформації, переданій системою (3) обробки даних на пристрій (6), щоб викликати запуск відповідної ї- залежної функції, - метод перейменування установних параметрів, що дозволяє перейменувати установні параметри, щоб одержати команди запуску з перейменованими установними параметрами, - і засоби (20) відновлення, які призначені для застосування у пристрої (6) у фазі (3) використання і які « дозволяють знайти залежну функцію, що її необхідно виконати, виходячи з перейменованого установного в с параметра;12. The method according to claim 3, 4 or 10, which differs in that: "o zo a in the phase (P) of protection: "- define: so - as a start command - an elementary command or an instruction command, "- - as a dependent function - an elementary function or an instruction, - as a setting parameter - at least one argument for the launch command, corresponding at least - to a part of the information transferred by the data processing system (3) to the device (6) to cause the launch of the corresponding dependent function, - a method renaming the setup parameters, which allows the setup parameters to be renamed to obtain launch commands with the renamed setup parameters, - and recovery means (20) which are intended to be applied to the device (6) in the phase (3) of use and which "allow the dependent function to be found, that it must be performed on the basis of the parameter renamed in s; . « конструюють засоби експлуатації, що дозволяють пристрою (б) задіяти засоби відновлення; и?» "і модифікують захищену програму (2р): - за допомогою вибору у вихідному коді (2рз) захищеної програми команди запуску, - за допомогою модифікації принаймні одного вибраного фрагмента коду (2рз) захищеної програми шляхом -І перейменування установних параметрів вибраних команд запуску, щоб приховати ідентичність відповідних залежних функцій, ш- - і за допомогою створення: - Ш першої частини (2роз) об'єктного коду захищеної програми (2р), причому перша частина (2ровз) об'єктного коду така, що в ході виконання захищеної програми (2р) виконуються команди запуску з перейменованими со установними параметрами, Ф Ш Її другої частини (2роц) об'єктного коду захищеної програми (2р), що містить засоби експлуатації, які використовують також засоби (20) відновлення, причому друга частина (2роци) об'єктного коду така, що після завантаження у пристрій (6), у ході виконання захищеної програми (2р) ідентичність залежних функцій, ов Виконання яких викликано першою виконуваною частиною (2рез), відновлюється за допомогою другої виконуваної частини (2рец), а залежні функції виконуються за допомогою другої виконуваної частини (2рец), Ф) а а у фазі (3) використання: ка "- за наявності пристрою (6), кожного разу, коли цього вимагає команда запуску з перейменованими установними параметрами, що міститься у фрагменті першої виконуваної частини (2рев), відновлюють у бо пристрої (6) ідентичність відповідної залежної функції, і виконують її так, щоб указаний фрагмент виконувався коректно й, отже, захищена програма (2р) була повнофункціональною; н- тоді як за відсутності пристрою (6), незважаючи на запит фрагмента першої виконуваної частини (2рев) на запуск виконання у пристрої (б) залежної функції, не забезпечується можливість коректної відповіді на вказаний запит, так що щонайменше вказаний фрагмент не виконується коректно й, отже, захищена програма 65 (2р) не є повнофункціональною.. "design the means of operation, which allow the device (b) to use the means of recovery; and?" "and modify the protected program (2r): - by selecting in the source code (2rz) of the protected program the launch command, - by modifying at least one selected fragment of the code (2rz) of the protected program by - AND renaming the configuration parameters of the selected launch commands to hide the identity of the corresponding dependent functions, w- - and by creating: - W the first part (2roz) of the object code of the protected program (2r), and the first part (2rovz) of the object code is such that during the execution of the protected program (2r ) the launch commands are executed with renamed installation parameters, F Ш of its second part (2 years) of the object code of the protected program (2 years), which contains the means of operation, which also use the means (20) of recovery, and the second part (2 years) of the object object code is such that after downloading to the device (6), during the execution of the protected program (2p), the identity of the dependent functions, whose execution is caused by the first executable part (2rez), restores sya with the help of the second executable part (2rec), and the dependent functions are performed with the help of the second executable part (2rec), Ф) a and in the phase (3) of use: ka "- in the presence of the device (6), every time it is required the launch command with renamed installation parameters contained in the fragment of the first executable part (2rev), restore the identity of the corresponding dependent function in the bo device (6) and execute it so that the specified fragment is executed correctly and, therefore, the program (2p) is protected fully functional; n- while in the absence of the device (6), despite the request of the fragment of the first executable part (2rev) to start the execution of the dependent function in the device (b), the possibility of a correct response to the specified request is not ensured, so that at least the specified fragment is not executed correctly and , therefore, the protected program 65 (2p) is not fully functional. 13. Спосіб за п. 12, який відрізняється тим, що:13. The method according to claim 12, which differs in that: а у фазі (Р) захисту: - визначають, щонайменше для однієї залежної функції, сімейство алгоритмічно еквівалентних залежних функцій, що викликаються командами запуску, перейменовані установні параметри яких є різними; "і модифікують захищену програму (2р): - за допомогою вибору у вихідному коді (2рз) захищеної програми щонайменше однієї команди запуску з перейменованими установними параметрами, - і за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми шляхом заміни щонайменше перейменованих установних параметрів команди запуску з вибраним набором /о установних параметрів на інші перейменовані установні параметри, що викликає запуск залежної функції з того ж сімейства.and in the phase (P) of protection: - define, for at least one dependent function, a family of algorithmically equivalent dependent functions, which are called by launch commands, the renamed setting parameters of which are different; "and modify the protected program (2r): - by selecting in the source code (2rz) of the protected program at least one launch command with renamed installation parameters, - and by modifying at least one selected code fragment (2rz) of the protected program by replacing at least renamed installation parameters parameters of the launch command with the selected set of /o configuration parameters to other renamed configuration parameters, which causes the dependent function from the same family to run. 14. Спосіб за п. 13, який відрізняється тим, що включає: а у фазі (Р) захисту визначення, щонайменше для однієї залежної функції, сімейства алгоритмічно еквівалентних залежних функцій - шляхом зчеплення поля шумів з інформацією, що визначає ту функціональну частину залежної функції, що виконується у пристрої (6), - або шляхом використання поля (СІЇ) ідентифікації інструкції і поля (СІР ) ідентифікації, передбаченої для операнда.14. The method according to claim 13, which is characterized by the fact that it includes: and in the phase (P) of the protection of the determination, for at least one dependent function, of a family of algorithmically equivalent dependent functions - by combining the noise field with the information that defines that functional part of the dependent function, which is performed in the device (6), - or by using the instruction identification field (SI) and the identification field (SIP) provided for the operand. 15. Спосіб за п. 12, 13 або 14, який відрізняється тим, що: а у фазі (Р) захисту визначають: - як метод перейменування установних параметрів - метод кодування для кодування установних параметрів, - і як засоби (20) відновлення - засоби, що застосовують метод декодування для декодування перейменованих установних параметрів і відновлення ідентичності залежних функцій, що їх слід виконати у пристрої (6). сч15. The method according to claim 12, 13 or 14, which differs in that: and in the phase (P) of the protection, the following are defined: - as a method of renaming the setting parameters - a coding method for encoding the setting parameters, - and as means (20) of recovery - means , which apply a decoding method to decode the renamed configuration parameters and restore the identity of the dependent functions to be performed in the device (6). high school 16. Спосіб за будь-яким з пп. 2-15, який відрізняється тим, що: а у фазі (Р) захисту: і) - модифікують захищену програму (2р): - за допомогою вибору у вихідному коді (2рз) захищеної програми щонайменше одного умовного переходу, виконуваного щонайменше в одному вибраному алгоритмі обробки, «о зо - за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, причому вказана модифікація така, що в ході виконання захищеної програми (2р) функціональна можливість со принаймні одного вибраного умовного переходу виконується за допомогою другої виконуваної частини (2реш), У "пе пристрої (б), - і за допомогою створення: - Ш першої частини (2роз) об'єктного коду захищеної програми (2р), причому перша частина (2ровз) об'єктного ї- коду така, що в ході виконання захищеної програми (2р) функціональна можливість щонайменше одного вибраного умовного переходу виконується у пристрої (б), Ш її другої частини (2рой) об'єктного коду захищеної програми (2р), причому друга частина (2рои) об'єктного коду така, що після завантаження у пристрій (6), у ході виконання захищеної програми (2р) « реалізується друга виконувана частина (2рем), за допомогою якої виконується функціональна можливість з с щонайменше одного вибраного умовного переходу, а а у фазі (3) використання: ;» н- за наявності пристрою (б), кожного разу, коли цього вимагає фрагмент першої виконуваної частини (2рез), виконують у пристрої (6) функції щонайменше одного вибраного умовного переходу таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма (2р) була повнофункціональною; -І "- а за відсутності пристрою (б), незважаючи на запит фрагмента першої виконуваної частини (2рев) на виконання функцій умовного переходу у пристрої (6), не забезпечується можливість коректної відповіді на ш- вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма (2р) - не є повнофункціональною.16. The method according to any one of claims 2-15, which differs in that: and in the phase (P) of protection: i) - modify the protected program (2p): - by means of selection in the source code (2rz) of the protected program at least one conditional transition, performed in at least one selected processing algorithm, "o zo - by means of modification of at least one selected code fragment (2rz) of the protected program, and the specified modification is such that during the execution of the protected program (2r) the functional possibility of at least one selected conditional transition is performed with the help of the second executable part (2resh), In the "th device (b), - and with the help of creating: - Ш the first part (2roz) of the object code of the protected program (2r), and the first part (2rovz) about of the object code is such that during the execution of the protected program (2p), the functional possibility of at least one selected conditional transition is executed in the device (b) of its second part (2roy) of the object code of the protected program (2p), and the second the part (2roy) of the object code is such that after loading into the device (6), during the execution of the protected program (2p), the second executable part (2rem) is implemented, with the help of which the functional possibility of at least one selected conditional transition is performed, and and in phase (3) of use: ;" n- in the presence of device (b), whenever a fragment of the first executable part (2rez) requires it, the functions of at least one selected conditional transition are performed in device (6) in such a way that the specified fragment is executed correctly and, therefore, the protected program ( 2r) was fully functional; -And "- and in the absence of device (b), despite the request of the fragment of the first executable part (2rev) to perform the conditional transition functions in device (6), the possibility of correct response to the specified request is not ensured, so that at least the specified fragment is not executed correctly and, therefore, the protected program (2p) is not fully functional. 17. Спосіб за п. 16, який відрізняється тим, що у фазі (Р) захисту модифікують захищену програму (2р): со - за допомогою вибору у вихідному коді (2рз) захищеної програми щонайменше однієї серії вибраних Ф умовних переходів, - за допомогою модифікації щонайменше одного вибраного фрагмента коду (2рз) захищеної програми, причому вказана модифікація така, що в ході виконання захищеної програми (2р) глобальна функціональна дв Можливість щонайменше однієї вибраної серії умовних переходів виконується у пристрої (6) за допомогою другої виконуваної частини (2рец), (Ф, - і за допомогою створення: ка Ш першої частини (2роз) об'єктного коду захищеної програми (2р), причому перша частина (2ровз) об'єктного коду така, що в ході виконання захищеної програми (2р) функціональна можливість принаймні однієї вибраної бо серії умовних переходів виконується у пристрої (6), Ш її другої частини (2рой) об'єктного коду захищеної програми (2р), причому друга частина (2рои) об'єктного коду така, що після завантаження у пристрій (6), у ході виконання захищеної програми (2р) реалізується друга виконувана частина (2рецш), за допомогою якої виконується глобальна функціональна можливість щонайменше однієї вибраної серії умовних переходів. 65 17. The method according to claim 16, which is characterized by the fact that in the phase (P) of protection, the protected program (2r) is modified: c - by selecting in the source code (2rz) of the protected program at least one series of selected Ф conditional transitions, - by means of modification at least one selected piece of code (2rz) of the protected program, and the specified modification is such that during the execution of the protected program (2r), the global functional dv The possibility of at least one selected series of conditional transitions is performed in the device (6) by means of the second executable part (2rec), (Ф, - and by creating: ka Ш the first part (2roz) of the object code of the protected program (2r), and the first part (2rovz) of the object code is such that during the execution of the protected program (2r) the functional possibility at least one selected series of conditional transitions is executed in the device (6), Ш of its second part (2рой) of the object code of the protected program (2р), and the second part (2рой) of the object code is such that after the entering the device (6), during the execution of the protected program (2p), the second executable part (2retsh) is implemented, with the help of which the global functionality of at least one selected series of conditional transitions is implemented. 65 18. Спосіб за будь-яким з пп. 1-17, який відрізняється тим, що розкладають фазу (Р) захисту на вхідну підфазу (Р.) захисту, не залежну від програми, що захищається, і на вихідну підфазу (Р) захисту, залежну від програми, що захищається.18. The method according to any one of claims 1-17, which is characterized by the fact that the protection phase (P) is divided into an input sub-phase (P.) of protection, independent of the protected program, and an output sub-phase (P) of protection, depending on the program being protected. 19. Спосіб за п. 18, який відрізняється тим, що в ході вхідної підфази (Р.) захисту задіюють стадію (544) визначень, на якій виконуються всі визначення.19. The method according to claim 18, which is characterized by the fact that during the input subphase (R.) of protection, a stage (544) of determinations is used, at which all determinations are performed. 20. Спосіб за п. 19, який відрізняється тим, що після стадії (544) визначень задіюють стадію конструювання (542), на якій створюються засоби експлуатації.20. The method according to claim 19, which differs in that after the stage (544) of determinations, the stage of construction (542) is used, in which means of operation are created. 21. Спосіб за п. 20, який відрізняється тим, що після стадії (542) конструювання задіюють стадію (з 45) передперсоналізації, яка полягає в тому, що завантажують у незадіяний пристрій (60) принаймні частину засобів експлуатації, щоб одержати передперсоналізований пристрій (66). 70 21. The method according to claim 20, which is characterized in that after the stage (542) of construction, a stage (of 45) of pre-personalization is used, which consists in loading into the idle device (60) at least part of the means of operation in order to obtain a pre-personalized device (66 ). 70 22. Спосіб за п. 19 або 20, який відрізняється тим, що в ході вхідної підфази (Рі) захисту задіюють стадію (544) виготовлення засобів, на якій виготовляються засоби, що допомагають при створенні захищених програм або автоматизації захисту програм.22. The method according to claim 19 or 20, which is characterized by the fact that during the input subphase (Pi) of the protection, the stage (544) of the production of means is used, in which the means are manufactured, which help in creating protected programs or automating the protection of programs. 23. Спосіб за п. 18 або 21, який відрізняється тим, що вихідну підфазу (Ро) захисту розкладають на: « стадію (524) створення, на якій на основі уразливої програми (2у) створюється захищена програма (2р); " можливо, стадію (522) модифікації, на якій модифікується захищена програма (2р); " і, можливо, стадію (З»2з) персоналізації, на якій: - друга частина (2роц) об'єктного коду захищеної програми (2р), що, можливо, містить засоби експлуатації, завантажується щонайменше в один незадіяний пристрій (60), щоб одержати щонайменше один пристрій (б), - або частина другої частини (2роц) об'єктного коду захищеної програми (2р), що, можливо, містить засоби 2о експлуатації, завантажується щонайменше в один передперсоналізований пристрій (66), щоб одержати щонайменше один пристрій (6).23. The method according to claim 18 or 21, which differs in that the initial subphase (Po) of protection is divided into: "stage (524) of creation, at which a protected program (2r) is created on the basis of a vulnerable program (2y); " perhaps the stage (522) of modification, in which the protected program (2r) is modified; " and, perhaps, the stage (Z»2z) of personalization, in which: - the second part (2roc) of the object code of the protected program (2r), which may contain exploits, is loaded into at least one idle device (60) to obtain at least one device (b), - or part of the second part (2r) of the object code of the protected program (2r), which may contain means of operation is loaded into at least one pre-personalized device (66) to obtain at least one device (6). 24. Спосіб за п. 22 або 23, який відрізняється тим, що в ході стадії (524) створення і, можливо, стадії (5 22) модифікації використовують принаймні один із засобів, призначених для використання при створенні захищених програм або автоматизації захисту програм. сч щі 6) (Се) (ее) «- ча - -24. The method according to claim 22 or 23, which is characterized by the fact that during the stage (524) of creation and possibly the stage (5 22) of modification, at least one of the means intended for use in creating protected programs or automating the protection of programs is used. sch shchi 6) (Se) (ee) "- cha - - с . и? -І -І - (ее) 4) іме) 60 б5with . and? -I -I - (ee) 4) ime) 60 b5
UA2004010469A 2001-07-31 2002-04-07 Method for protecting software against unauthorized use by a controlled variable UA77186C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0110250A FR2828305B1 (en) 2001-07-31 2001-07-31 METHOD FOR PROTECTING SOFTWARE USING A PRINCIPLE SAID "VARIABLE" AGAINST ITS UNAUTHORIZED USE
PCT/FR2002/002338 WO2003012649A2 (en) 2001-07-31 2002-07-04 Method for protecting a software using a so-called variable principle against its unauthorised use

Publications (1)

Publication Number Publication Date
UA77186C2 true UA77186C2 (en) 2006-11-15

Family

ID=8866125

Family Applications (1)

Application Number Title Priority Date Filing Date
UA2004010469A UA77186C2 (en) 2001-07-31 2002-04-07 Method for protecting software against unauthorized use by a controlled variable

Country Status (29)

Country Link
EP (1) EP1412861A2 (en)
JP (1) JP3949107B2 (en)
KR (1) KR100940347B1 (en)
CN (1) CN1288525C (en)
AP (1) AP2004002958A0 (en)
AU (1) AU2002325998B2 (en)
BR (1) BR0211374A (en)
CA (1) CA2454090A1 (en)
CO (1) CO5550508A2 (en)
CR (1) CR7231A (en)
EA (1) EA005465B1 (en)
EC (1) ECSP044951A (en)
FR (1) FR2828305B1 (en)
GE (1) GEP20053647B (en)
HK (1) HK1070155A1 (en)
HR (1) HRP20040049A2 (en)
HU (1) HUP0400228A2 (en)
IL (1) IL159953A0 (en)
IS (1) IS7121A (en)
MA (1) MA26126A1 (en)
MX (1) MXPA04000488A (en)
NO (1) NO20040232L (en)
OA (1) OA12699A (en)
PL (1) PL367366A1 (en)
TN (1) TNSN04012A1 (en)
UA (1) UA77186C2 (en)
WO (1) WO2003012649A2 (en)
YU (1) YU5404A (en)
ZA (1) ZA200400348B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2852415B1 (en) * 2003-03-11 2005-06-24 Actikey KEY TYPE MEDIUM, CONTROL OF ACCESS TO DATA AND / OR SOFTWARE, AND CORRESPONDING METHOD
CN107194212B (en) * 2017-06-21 2020-04-17 株洲中车时代电气股份有限公司 Method for protecting protocol content in source code of display

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2634917A1 (en) * 1988-08-01 1990-02-02 Pionchon Philippe METHOD AND DEVICE FOR PROTECTING SOFTWARE, ESPECIALLY AGAINST UNAUTHORIZED COPIES
US5754646A (en) * 1995-07-19 1998-05-19 Cable Television Laboratories, Inc. Method for protecting publicly distributed software
AU7957998A (en) * 1997-06-09 1999-01-25 Intertrust, Incorporated Obfuscation techniques for enhancing software security
JP2002518727A (en) * 1998-06-12 2002-06-25 ジェムプリュス How to control the execution of software products

Also Published As

Publication number Publication date
HRP20040049A2 (en) 2004-06-30
CA2454090A1 (en) 2003-02-13
IS7121A (en) 2004-01-20
MA26126A1 (en) 2004-04-01
OA12699A (en) 2006-06-23
EA005465B1 (en) 2005-02-24
TNSN04012A1 (en) 2006-06-01
FR2828305A1 (en) 2003-02-07
BR0211374A (en) 2004-07-20
HK1070155A1 (en) 2005-06-10
FR2828305B1 (en) 2010-09-03
ECSP044951A (en) 2004-04-28
AU2002325998B2 (en) 2008-10-30
ZA200400348B (en) 2005-03-30
CN1535410A (en) 2004-10-06
HUP0400228A2 (en) 2004-09-28
IL159953A0 (en) 2004-06-20
WO2003012649A3 (en) 2003-12-24
JP2004537806A (en) 2004-12-16
GEP20053647B (en) 2005-10-25
MXPA04000488A (en) 2005-03-07
PL367366A1 (en) 2005-02-21
CN1288525C (en) 2006-12-06
AP2004002958A0 (en) 2004-03-31
WO2003012649A2 (en) 2003-02-13
NO20040232L (en) 2004-03-30
CO5550508A2 (en) 2005-08-31
EP1412861A2 (en) 2004-04-28
KR100940347B1 (en) 2010-02-04
KR20040027881A (en) 2004-04-01
JP3949107B2 (en) 2007-07-25
EA200400057A1 (en) 2004-06-24
CR7231A (en) 2005-07-21
YU5404A (en) 2006-08-17

Similar Documents

Publication Publication Date Title
EP1975784B1 (en) Method of obfuscating computer instruction streams
KR101187554B1 (en) Securing software
US6880149B2 (en) Method for runtime code integrity validation using code block checksums
EP2486482B1 (en) A system and method for aggressive self-modification in dynamic function call systems
KR101676326B1 (en) Interlocked binary protection using whitebox cryptography
CN107026728B (en) Method and terminal for dynamically pre-starting storage encryption key management
CN101681410B (en) Apparatus for controlling processor execution in a secure environment
US8179227B2 (en) Employing external storage devices as media for access control panel control information
US7162735B2 (en) Digital data protection arrangement
KR101331032B1 (en) Method for executing application associated with virtualized environment
CN101315608A (en) Memory-protection method and apparatus
US8463708B2 (en) System and method for using digital strings to provide secure distribution of digital content
US7458100B2 (en) Adding copy protection to a computer program
UA77186C2 (en) Method for protecting software against unauthorized use by a controlled variable
US20220357944A1 (en) Method for executing a machine code by means of a microprocessor
JP2001256118A (en) Method for protecting microcomputer system, memory device and microcomputer system
US20140366149A1 (en) System and method for using digital strings to provide secure distribution of digital content
US20070283437A1 (en) Method to Protect Software Against Unwanted Use with a "Temporal Dissociation" Principle
UA77187C2 (en) Method for protecting software against unauthorized use by controlling the correspondence with a specified criterion
CN110659079B (en) Balanced type safety processor
WO2023002635A1 (en) Information processing device, information processing method, and information processing program
WO2023156571A1 (en) Protecting software
WO2016056120A1 (en) Information processing device and information processing method
CN110659073A (en) Arbitration type safety processor
HRP20040046A2 (en) Method for protecting a software using a so-called conditional jump principle against its unauthorised use