Спосіб захисту програми від її неавторизованого використання за допомогою так званого принципу змінної

Номер патенту: 77186

Опубліковано: 15.11.2006

Автори: Сгро Жиль, Кено Жан-Крістоф

Є ще 31 сторінка.

Дивитися все сторінки або завантажити PDF файл.

Формула / Реферат

1. Спосіб захисту, на основі щонайменше одного незадіяного пристрою (60), що містить щонайменше засоби (15) запам’ятовування, від неавторизованого використання уразливої програми (2v), яка функціонує на системі (3) обробки даних, який полягає в тому, що:

à у фазі (P) захисту:

• створюють захищену програму (2p):

– за допомогою вибору у вихідному коді (2vs) уразливої програми:

Ø щонайменше однієї змінної, яка в ході виконання уразливої програми (2v) частково визначає її стан,

Ø і щонайменше одного фрагмента, що містить щонайменше одну вибрану змінну,

– за допомогою створення вихідного коду (2ps) захищеної програми на основі вихідного коду (2vs) уразливої програми модифікацією щонайменше одного вибраного фрагмента коду (2vs) уразливої програми, причому ця модифікація така, що в ході виконання захищеної програми (2p) щонайменше одна вибрана змінна або одна копія вибраної змінної знаходиться в незадіяному пристрої (60), який тим самим перетворюється на пристрій (6),

– і за допомогою створення першої частини (2pos) об’єктного коду захищеної програми (2p) на основі вихідного коду (2ps) захищеної програми, причому перша частина (2pos) об’єктного коду така, що в ході виконання захищеної програми (2p) реалізується перша виконувана частина (2pes), яка виконується в системі (3) обробки даних і щонайменше один фрагмент якої враховує, що принаймні одна змінна або одна копія змінної знаходиться у пристрої (6),

à а у фазі (U) використання, в ході якої виконується захищена програма (2p):

• за наявності пристрою (6), кожного разу, коли цього вимагає фрагмент першої виконуваної частини (2pes), використовують змінну або копію змінної, що знаходиться у пристрої (6) таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма (2p) була повнофункціональною;

• тоді як за відсутності пристрою (6), незважаючи на запит одного фрагмента першої виконуваної частини (2pes) використовувати змінну або копію змінної, що знаходиться у пристрої (6), не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма (2p) не є повнофункціональною.

2. Спосіб за п. 1, який відрізняється тим, що:

à у фазі (P) захисту:

• модифікують захищену програму (2p):

– за допомогою вибору у вихідному коді (2ps) захищеної програми:

Ø щонайменше одного алгоритму, який у ході виконання захищеної програми (2p) використовує щонайменше одну вибрану змінну і дозволяє одержати щонайменше одну результуючу змінну,

Ø і щонайменше одного фрагмента, що містить щонайменше один вибраний алгоритм,

– за допомогою модифікації принаймні одного вибраного фрагмента коду (2ps) захищеної програми, причому ця модифікація така, що:

Ø в ході виконання захищеної програми (2p) перша виконувана частина (2pes) виконується в системі (3) обробки даних, а друга виконувана частина (2peu) виконується у пристрої (6), що містить також засоби (16) обробки,

Ø щонайменше функціональна можливість принаймні одного вибраного алгоритму виконується за допомогою другої виконуваної частини (2peu),

Ø щонайменше один вибраний алгоритм розкладається таким чином, що в ході виконання захищеної програми (2p) реалізуються, за допомогою другої виконуваної частини (2peu), декілька різноманітних етапів, як-от:

q       надання щонайменше однієї змінної для пристрою (6), 

q       реалізація у пристрої (6) функціональних можливостей алгоритму, виконуваного щонайменше над цією змінною, 

q       і, можливо, надання принаймні однієї результуючої змінної пристроєм (6) для системи (3) обробки даних,

Ø щонайменше для одного вибраного алгоритму команди етапів визначені таким чином, що в ході виконання захищеної програми (2p) кожна команда етапу виконується за допомогою першої виконуваної частини (2pes) і викликає у пристрої (6) виконання етапу за допомогою другої виконуваної частини (2peu),

Ø причому впорядкування команд етапів вибрано з масиву впорядкувань, що дозволяють виконання захищеної програми (2p),

– і за допомогою створення:

Ø першої частини (2pos) об’єктного коду захищеної програми (2p), причому перша частина (2pos) об’єктного коду така, що в ході виконання захищеної програми (2p) команди етапів виконуються відповідно до вибраного впорядкування,

Ø і другої частини (2pou) об’єктного коду захищеної програми (2p), причому друга частина (2pou) об’єктного коду така, що після завантаження у незадіяний пристрій (60), в ході виконання захищеної програми (2p) реалізується друга виконувана частина (2peu), за допомогою якої виконуються етапи, запуск яких було викликано першою виконуваною частиною (2pes);

• і завантажують другу частину (2pou) об’єктного коду в незадіяний пристрій (60) з одержанням пристрою (6),

à а у фазі (U) використання:

• за наявності пристрою (6), кожного разу, коли цього вимагає команда етапу, що міститься у фрагменті першої виконуваної частини (2pes), виконують відповідний етап у пристрої (6) таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма (2p) була повнофункціональною;

• тоді як за відсутності пристрою (6), незважаючи на запит одного фрагмента першої виконуваної частини (2pes) на запуск виконання етапу у пристрої (6), не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма (2p) не є повнофункціональною.

3. Спосіб за п. 1, який відрізняється тим, що:

à у фазі (P) захисту:

• визначають:

– набір елементарних функцій, елементарні функції якого можуть бути виконані у пристрої (6), який містить також засоби (16) обробки,

– і набір елементарних команд для зазначеного набору елементарних функцій, причому зазначені елементарні команди можуть бути виконані в системі (3) обробки даних, викликаючи виконання у пристрої (6) елементарних функцій;

• конструюють засоби експлуатації, що дозволяють перетворити незадіяний пристрій (60) на пристрій (6), здатний виконувати елементарні функції зі вказаного набору, причому виконання зазначених елементарних функцій викликається виконанням елементарних команд у системі (3) обробки даних;

• модифікують захищену програму (2p):

– за допомогою вибору у вихідному коді (2ps) захищеної програми:

Ø щонайменше одного алгоритму, який у ході виконання захищеної програми (2p) використовує щонайменше одну вибрану змінну і дозволяє одержати щонайменше одну результуючу змінну,

Ø і щонайменше одного фрагмента, що містить принаймні один вибраний алгоритм,

– за допомогою модифікації щонайменше одного вибраного фрагмента коду (2ps) захищеної програми, причому зазначена модифікація така, що:

Ø в ході виконання захищеної програми (2p) перша виконувана частина (2pes) виконується в системі (3) обробки даних, а друга виконувана частина (2peu) виконується у пристрої (6),

Ø щонайменше функціональна можливість принаймні одного вибраного алгоритму виконується за допомогою другої виконуваної частини (2peu),

Ø щонайменше один вибраний алгоритм розкладається таким чином, що в ході виконання захищеної програми (2p) вказаний алгоритм виконується за допомогою другої виконуваної частини (2peu) із застосуванням елементарних функцій,

Ø щонайменше для одного вибраного алгоритму елементарні команди інтегруються у вихідний код (2ps) захищеної програми таким чином, що в ході виконання захищеної програми (2p) кожна елементарна команда виконується за допомогою першої виконуваної частини (2pes) і викликає у пристрої (6) виконання, за допомогою другої виконуваної частини (2peu), елементарної функції,

Ø причому впорядкування елементарних команд вибирається з масиву впорядкувань, що дозволяють виконання захищеної програми (2p),

– і за допомогою створення:

Ø першої частини (2pos) об’єктного коду захищеної програми (2p), причому перша частина (2pos) об’єктного коду така, що в ході виконання захищеної програми (2p) елементарні команди виконуються відповідно до вибраного впорядкування,

Ø і другої частини (2pou) об’єктного коду захищеної програми (2p), що містить засоби експлуатації, причому друга частина (2pou) об’єктного коду така, що після завантаження в незадіяний пристрій (60), в ході виконання захищеної програми (2p) реалізується друга виконувана частина (2peu), за допомогою якої виконуються елементарні функції, запуск яких був викликаний першою виконуваною частиною (2pes);

• і завантажують другу частину (2pou) об’єктного коду в незадіяний пристрій (60) з одержанням пристрою (6),

à а у фазі (U) використання:

• за наявності пристрою (6), кожного разу, коли цього вимагає елементарна команда, що міститься у фрагменті першої виконуваної частини (2pes), виконують відповідну елементарну функцію у пристрої (6) таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма (2p) була повнофункціональною;

• тоді як за відсутності пристрою (6), незважаючи на запит фрагмента першої виконуваної частини (2pes) на запуск виконання у пристрої (6) елементарної функції, не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма (2p) не є повнофункціональною.

4. Спосіб за п. 2, який відрізняється тим, що:

à у фазі (P) захисту:

• визначають:

– набір елементарних функцій, елементарні функції якого можуть бути виконані у пристрої (6),

– і набір елементарних команд для згаданого набору елементарних функцій, причому зазначені елементарні команди можуть бути виконані в системі (3) обробки даних, викликаючи виконання у пристрої (6) елементарних функцій;

• конструюють засоби експлуатації, що дозволяють пристрою (6) виконувати елементарні функції з указаного набору, причому виконання зазначених елементарних функцій викликається виконанням елементарних команд у системі (3) обробки даних;

• і модифікують захищену програму (2p):

– за допомогою вибору у вихідному коді (2ps) захищеної програми щонайменше одного етапу, який у ході виконання захищеної програми (2p) здійснює функціональну можливість алгоритму,

– за допомогою модифікації щонайменше одного вибраного фрагмента коду (2ps) захищеної програми, причому згадана модифікація така, що:

Ø щонайменше один вибраний етап розкладається таким чином, що в ході виконання захищеної програми (2p) вказаний етап виконується за допомогою другої виконуваної частини (2peu) із застосуванням елементарних функцій,

Ø щонайменше для одного вибраного етапу елементарні команди інтегруються у вихідний код (2ps) захищеної програми таким чином, що в ході виконання захищеної програми (2p) кожна елементарна команда виконується за допомогою першої виконуваної частини (2pes) і викликає у пристрої (6) виконання, за допомогою другої виконуваної частини (2peu), елементарної функції,

Ø і впорядкування елементарних команд вибирається в масиві впорядкувань, що дозволяють виконання захищеної програми (2p),

– і за допомогою створення:

Ø першої частини (2pos) об’єктного коду захищеної програми (2p), причому перша частина (2pos) об’єктного коду така, що в ході виконання захищеної програми (2p) елементарні команди виконуються відповідно до  вибраного впорядкування,

Ø і другої частини (2pou) об’єктного коду захищеної програми (2p), що містить також засоби експлуатації, причому друга частина (2pou) об’єктного коду така, що після завантаження у пристрій (6), у ході виконання захищеної програми (2p) реалізується друга виконувана частина (2peu), за допомогою якої виконуються елементарні функції, запуск яких був викликаний першою виконуваною частиною (2pes),

à а у фазі (U) використання:

• за наявності пристрою (6), кожного разу, коли цього вимагає елементарна команда, що міститься в частині першої виконуваної частини (2pes), виконують відповідну елементарну функцію у пристрої (6) таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма (2p) була повнофункціональною;

• тоді як за відсутності пристрою (6), незважаючи на запит одного фрагмента першої виконуваної частини (2pes) на запуск виконання у пристрої (6) елементарної функції, не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма (2p) не є повнофункціональною.

5. Спосіб за п. 3 або 4, який відрізняється тим, що:

à у фазі (P) захисту:

• визначають:

– щонайменше одну характеристику виконання програми, що може бути проконтрольована, щонайменше частково, у пристрої (6),

– щонайменше один критерій, що має виконуватися щонайменше для однієї характеристики виконання програми,

– засоби (17) детектування, що їх слід застосовувати у пристрої (6) і які дозволяють виявити, що принаймні одна характеристика виконання програми не відповідає щонайменше одному відповідному критерію,

– і засоби (18) примусу, що їх слід застосовувати у пристрої (6) і які дозволяють проінформувати систему (3) обробки даних і/або модифікувати виконання програми, поки не дотримано хоча б одного критерію;

• конструюють засоби експлуатації, що дозволяють пристрою (6) задіяти засоби (17) детектування й засоби (18) примусу;

• і модифікують захищену програму (2p):

– за допомогою вибору щонайменше однієї характеристики виконання контрольованої програми з характеристик виконання, які можуть бути проконтрольовані,

– за допомогою вибору щонайменше одного критерію, який має виконуватися щонайменше для однієї вибраної характеристики виконання програми,

– за допомогою вибору у вихідному коді (2ps) захищеної програми елементарних функцій, для яких варто контролювати щонайменше одну характеристику виконання контрольованої програми,

– за допомогою модифікації щонайменше одного вибраного фрагмента коду (2ps) захищеної програми, причому вказана модифікація така, що в ході виконання захищеної програми (2p) принаймні одна вибрана характеристика виконання контролюється за допомогою другої виконуваної частини, (2peu) і недотримання критерію приводить до інформування системи (3) обробки даних і/або до модифікації виконання захищеної програми (2p),

– і за допомогою створення другої частини (2pou) об’єктного коду захищеної програми (2p), що містить засоби експлуатації, що задіюють також засоби (17) детектування й засоби (18) примусу, причому друга частина (2pou) об’єктного коду така, що після завантаження у пристрій (6), у ході виконання захищеної програми (2p) щонайменше одна характеристика виконання програми контролюється, і недотримання критерію приводить до інформування системи (3) обробки даних і/або до модифікації виконання захищеної програми (2p),

à а у фазі (U) використання:

• за наявності пристрою (6):

– якщо всіх критеріїв, що відповідають усім контрольованим характеристикам виконання всіх модифікованих фрагментів захищеної програми (2p), дотримано, допускають номінальне функціонування згаданих фрагментів захищеної програми (2p) й, отже, номінальне функціонування захищеної програми (2p),

– а якщо принаймні одного з критеріїв, що відповідають характеристиці контрольованого виконання одного фрагмента захищеної програми (2p), не дотримано, інформують систему (3) обробки даних про зазначене недотримання і/або модифікують функціонування фрагмента захищеної програми (2p) таким чином, щоб функціонування захищеної програми (2p) було змінене.

6. Спосіб за п. 5, який відрізняється тим, що:

щоб обмежити використання захищеної програми (2p),

à у фазі (P) захисту:

• визначають:

– як характеристику виконання програми, яка може бути проконтрольована, - змінну для кількісного контролю використання однієї функціональної можливості програми,

– як критерій, що його слід дотримуватися, - щонайменше одне порогове значення, зв’язане з кожною змінною для кількісного контролю,

– і засоби поновлення, що дозволяють поновити щонайменше одну змінну для кількісного контролю;

• конструюють засоби експлуатації, що дозволяють пристрою (6) застосовувати засоби поновлення;

• і модифікують захищену програму (2p):

– за допомогою вибору як характеристики виконання контрольованої програми щонайменше однієї змінної для кількісного контролю використання однієї функціональної можливості програми,

– за допомогою вибору:

Ø щонайменше однієї функціональної можливості захищеної програми (2p), використання якої можна проконтролювати з використанням змінної для кількісного контролю,

Ø щонайменше однієї змінної для кількісного контролю, яка служить для кількісної характеристики використання згаданої функціональної можливості,

Ø щонайменше одного порогового значення, пов’язаного з вибраною змінною для кількісного контролю і відповідного межі використання зазначеної функціональної можливості,

Ø і щонайменше одного методу поновлення значення згаданої змінної для кількісного контролю залежно від використання зазначеної функціональної можливості,

– і за допомогою модифікації щонайменше одного вибраного фрагмента коду (2ps) захищеної програми, причому зазначена модифікація така, що в ході виконання захищеної програми (2p) змінна для кількісного контролю поновлюється за допомогою другої виконуваної частини (2peu), залежно від використання зазначеної функціональної можливості, і враховується щонайменше одне перевищення порогового значення,

à а у фазі (U) використання, за наявності пристрою (6), у разі, коли виявлено щонайменше одне перевищення порогового значення, що відповідає щонайменше одній межі використання, інформують про це систему (3) обробки даних і/або модифікують функціонування фрагмента захищеної програми (2p) таким чином, щоб функціонування захищеної програми (2p) було змінене.

7. Спосіб за п. 6, який відрізняється тим, що:

à у фазі (P) захисту:

• визначають:

– декілька відповідних порогових значень щонайменше для однієї змінної для кількісного контролю,

– і різноманітні засоби примусу, що відповідають кожному зі згаданих порогів;

• і модифікують захищену програму (2p):

– за допомогою вибору у вихідному коді (2ps) захищеної програми щонайменше однієї змінної для кількісного контролю, з якою мають бути зв’язані декілька порогових значень, що відповідають різноманітним межам використання функціональної можливості,

– за допомогою вибору щонайменше двох порогових значень, зв’язаних з вибраною змінною для кількісного контролю,

– і за допомогою модифікації щонайменше одного вибраного фрагмента коду (2ps) захищеної програми, причому вказана модифікація така, що в ході виконання захищеної програми (2p) перевищення різноманітних порогових значень враховуються за допомогою другої виконуваної частини (2peu) різноманітними способами,

à а у фазі (U) використання:

• за наявності пристрою (6):

– у випадку, коли виявлено перевищення першого порогового значення, дають команду захищеній програмі (2p) не використовувати надалі відповідну функціональну можливість,

– а у разі, коли виявлено перевищення другого порогового значення, роблять нездійсненною відповідну функціональну можливість і/або щонайменше частину захищеної програми (2p).

8. Спосіб за п. 6 або 7, який відрізняється тим, що:

à у фазі (P) захисту:

• визначають засоби перезавантаження, що дозволяють щонайменше одне додаткове використання щонайменше однієї функціональної можливості програми, контрольованої за допомогою змінної для кількісного контролю;

• конструюють засоби експлуатації, що дозволяють також пристрою (6) задіяти засоби перезавантаження;

• і модифікують захищену програму (2p):

– за допомогою вибору у вихідному коді (2ps) захищеної програми щонайменше однієї змінної для кількісного контролю, що дозволяє обмежити використання однієї функціональної можливості, для якої існує можливість дозволу щонайменше на одне додаткове використання,

– і за допомогою модифікації щонайменше одного вибраного фрагмента, причому згадана модифікація така, що у фазі перезавантаження щонайменше одне додаткове використання щонайменше однієї функціональної можливості, що відповідає одній вибраній змінній для кількісного контролю, може бути дозволене,

à а у фазі перезавантаження:      

• поновлюють щонайменше одну вибрану змінну для кількісного контролю і щонайменше одне відповідне порогове значення так, щоб дозволити щонайменше одне додаткове використання функціональної можливості.

9. Спосіб за п. 5, який відрізняється тим, що:

à у фазі (P) захисту:

• визначають:

– як характеристику виконання програми, яка може бути проконтрольована, - профіль використання програми,

– і як критерій, що його слід дотримуватися, - щонайменше одну ознаку виконання програми;

• і модифікують захищену програму (2p):

– за допомогою вибору як характеристики виконання контрольованої програми щонайменше одного профілю використання програми,

– за допомогою вибору щонайменше однієї ознаки виконання програми, що її має дотримуватися щонайменше один профіль використання,

– і за допомогою модифікації щонайменше одного вибраного фрагмента коду (2ps) захищеної програми, причому зазначена модифікація така, що в ході виконання захищеної програми (2p) друга виконувана частина (2peu) дотримується всіх вибраних ознак виконання,

à а у фазі (U) використання, за наявності пристрою (6) у випадку, якщо виявлено, що не дотримується хоча б одна ознака виконання, інформують про це систему (3) обробки даних і/або модифікують функціонування частини захищеної програми (2p) так, щоб функціонування захищеної програми (2p) було змінено.

10. Спосіб за п. 9, який відрізняється тим, що:

à у фазі (P) захисту:

• визначають:

– набір інструкцій, інструкції зі складу якого можуть бути виконані у пристрої (6),

– набір команд інструкцій для зазначеного набору інструкцій, причому команди інструкцій можуть бути виконані в системі (3) обробки даних, викликаючи у пристрої (6) виконання інструкцій,

– як профіль використання – зчеплення інструкцій,

– як ознаку виконання – бажане зчеплення для виконання інструкцій,

– як засоби (17) детектування – засоби, що дозволяють виявити, що зчеплення інструкцій не відповідає бажаному,

– як засоби (18) примусу – засоби, що дозволяють проінформувати систему (3) обробки даних і/або модифікувати функціонування фрагмента захищеної програми (2p), якщо зчеплення інструкцій не відповідає бажаному;

• конструюють засоби експлуатації, що дозволяють пристрою (6) виконувати інструкції з набору інструкцій, причому виконання зазначених інструкцій викликається виконанням команд інструкцій у системі (3) обробки даних;

• і модифікують захищену програму (2p):

– за допомогою модифікації щонайменше одного вибраного фрагмента коду (2ps) захищеної програми:

Ø за допомогою перетворення елементарних функцій на інструкції,

Ø за допомогою завдання зчеплення, що його мають дотримуватися щонайменше деякі з інструкцій під час їхнього виконання у пристрої (6),

Ø і за допомогою перетворення елементарних команд на команди інструкцій, що відповідають використовуваним інструкціям,

à а у фазі (U) використання, в присутності пристрою (6), у випадку, якщо виявлено, що зчеплення виконуваних у пристрої (6) інструкцій не відповідає бажаному, інформують про це систему (3) обробки даних і/або модифікують функціонування фрагмента захищеної програми (2p) так, щоб функціонування захищеної програми (2p) було змінене.

11. Спосіб за п. 10, який відрізняється тим, що:

à у фазі (P) захисту:

• визначають:

– як набір інструкцій – набір інструкцій, у якому щонайменше деякі інструкції працюють на регістрах і використовують щонайменше один операнд для видачі результату,

– щонайменше для частини інструкцій, що працюють на регістрах:

Ø частину (PF), що задає функціональну можливість інструкції,

Ø і частину, що задає бажане зчеплення для виконання інструкцій і містить бітові поля, що відповідають:

q       полю (CII) ідентифікації інструкції, 

q       і для кожного операнда інструкції:

* полю (CDk) прапора,

* і полю (CIPk) ідентифікації, передбаченої для операнда,

– для кожного регістра, що належить до засобів експлуатації і використовується набором інструкцій, - поле (CIGv) передбаченої ідентифікації, в якому автоматично запам’ятовується ідентифікація останньої інструкції, що повернула свій результат у вказаний регістр,

– як засоби (17) детектування – засоби, що дозволяють під час виконання інструкції для кожного операнда, коли цього вимагає поле (CDk) прапора, контролювати рівність між полем (CIGv) генерованої ідентифікації, відповідним регістру, використовуваному згаданим операндом, і полем (CIPk) передбаченої ідентифікації початкової адреси цього операнда,

– і як засоби (18) примусу - засоби, що дозволяють модифікувати результат виконання інструкцій, якщо принаймні одна з контрольованих рівностей хибна.

12. Спосіб по п. 3, 4 або 10, який відрізняється тим, що:

à у фазі (P) захисту:

• визначають:

– як команду запуску – елементарну команду або команду інструкції,

– як залежну функцію – елементарну функцію або інструкцію,

– як установний параметр - щонайменше один аргумент для команди запуску, що відповідає щонайменше частково інформації, переданій системою (3) обробки даних на пристрій (6), щоб викликати запуск відповідної залежної функції,

– метод перейменування установних параметрів, що дозволяє перейменувати установні параметри, щоб одержати команди запуску з перейменованими установними параметрами,

– і засоби (20) відновлення, які призначені для застосування у пристрої (6) у фазі (U) використання і які дозволяють знайти залежну функцію, що її необхідно виконати, виходячи з перейменованого установного параметра;

• конструюють засоби експлуатації, що дозволяють пристрою (6) задіяти засоби відновлення;

• і модифікують захищену програму (2p):

– за допомогою вибору у вихідному коді (2ps) захищеної програми команди запуску,

– за допомогою модифікації принаймні одного вибраного фрагмента коду (2ps) захищеної програми шляхом перейменування установних параметрів вибраних команд запуску, щоб приховати ідентичність відповідних залежних функцій,

– і за допомогою створення:

Ø першої частини (2pos) об’єктного коду захищеної програми (2p), причому перша частина (2pos) об’єктного коду така, що в ході виконання захищеної програми (2p) виконуються команди запуску з перейменованими установними параметрами,

Ø і другої частини (2pou) об’єктного коду захищеної програми (2p), що містить засоби експлуатації, які використовують також засоби (20) відновлення, причому друга частина (2pou) об’єктного коду така, що після завантаження у пристрій (6), у ході виконання захищеної програми (2p) ідентичність залежних функцій, виконання яких викликано першою виконуваною частиною (2pes), відновлюється за допомогою другої виконуваної частини (2peu), а залежні функції виконуються за допомогою другої виконуваної частини (2peu),

à а у фазі (U) використання:

• за наявності пристрою (6), кожного разу, коли цього вимагає команда запуску з перейменованими установними параметрами, що міститься у фрагменті першої виконуваної частини (2pes), відновлюють у пристрої (6) ідентичність відповідної залежної функції, і виконують її так, щоб указаний фрагмент виконувався коректно й, отже, захищена програма (2p) була повнофункціональною;

• тоді як за відсутності пристрою (6), незважаючи на запит фрагмента першої виконуваної частини (2pes) на запуск виконання у пристрої (6) залежної функції, не забезпечується можливість коректної відповіді на вказаний запит, так що щонайменше вказаний фрагмент не виконується коректно й, отже, захищена програма (2p) не є повнофункціональною.

13. Спосіб за п. 12, який відрізняється тим, що:

à у фазі (P) захисту:

• визначають, щонайменше для однієї залежної функції, сімейство алгоритмічно еквівалентних залежних функцій, що викликаються командами запуску, перейменовані установні параметри яких є різними;

• і модифікують захищену програму (2p):

– за допомогою вибору у вихідному коді (2ps) захищеної програми щонайменше однієї команди запуску з перейменованими установними параметрами,

– і за допомогою модифікації щонайменше одного вибраного фрагмента коду (2ps) захищеної програми шляхом заміни щонайменше перейменованих установних параметрів команди запуску з вибраним набором установних параметрів на інші перейменовані установні параметри, що викликає запуск залежної функції з того ж сімейства.

14. Спосіб за п. 13, який відрізняється тим, що включає:

à у фазі (P) захисту визначення, щонайменше для однієї залежної функції, сімейства алгоритмічно еквівалентних залежних функцій

– шляхом зчеплення поля шумів з інформацією, що визначає ту функціональну частину залежної функції, що виконується у пристрої (6),

– або шляхом використання поля (CII) ідентифікації інструкції і поля (CIPk) ідентифікації, передбаченої для операнда.

15. Спосіб за п. 12, 13 або 14, який відрізняється тим, що:

à у фазі (P) захисту визначають:

– як метод перейменування установних параметрів – метод кодування для кодування установних параметрів,

– і як засоби (20) відновлення – засоби, що застосовують метод декодування для декодування перейменованих установних параметрів і відновлення ідентичності залежних функцій, що їх слід виконати у пристрої (6).

16. Спосіб за будь-яким з пп. 2-15, який відрізняється тим, що:

à у фазі (P) захисту:

• модифікують захищену програму (2p):

– за допомогою вибору у вихідному коді (2ps) захищеної програми щонайменше одного умовного переходу, виконуваного щонайменше в одному вибраному алгоритмі обробки,

– за допомогою модифікації щонайменше одного вибраного фрагмента коду (2ps) захищеної програми, причому вказана модифікація така, що в ході виконання захищеної програми (2p) функціональна можливість принаймні одного вибраного умовного переходу виконується за допомогою другої виконуваної частини (2peu), у пристрої (6),

– і за допомогою створення:

Ø першої частини (2pos) об’єктного коду захищеної програми (2p), причому перша частина (2pos) об’єктного коду така, що в ході виконання захищеної програми (2p) функціональна можливість щонайменше одного вибраного умовного переходу виконується у пристрої (6),

Ø і другої частини (2pou) об’єктного коду захищеної програми (2p), причому друга частина (2pou) об’єктного коду така, що після завантаження у пристрій (6), у ході виконання захищеної програми (2p) реалізується друга виконувана частина (2peu), за допомогою якої виконується функціональна можливість щонайменше одного вибраного умовного переходу,

à а у фазі (U) використання:

• за наявності пристрою (6), кожного разу, коли цього вимагає фрагмент першої виконуваної частини (2pes), виконують у пристрої (6) функції щонайменше одного вибраного умовного переходу таким чином, щоб указаний фрагмент виконувався коректно й, отже, захищена програма (2p) була повнофункціональною;

• а за відсутності пристрою (6), незважаючи на запит фрагмента першої виконуваної частини (2pes) на виконання функцій умовного переходу у пристрої (6), не забезпечується можливість коректної відповіді на вказаний запит, так що принаймні вказаний фрагмент не виконується коректно й, отже, захищена програма (2p) не є повнофункціональною.

17. Спосіб за п. 16, який відрізняється тим, що у фазі (P) захисту модифікують захищену програму (2p):

– за допомогою вибору у вихідному коді (2ps) захищеної програми щонайменше однієї серії вибраних умовних переходів,

– за допомогою модифікації щонайменше одного вибраного фрагмента коду (2ps) захищеної програми, причому вказана модифікація така, що в ході виконання захищеної програми (2p) глобальна функціональна можливість щонайменше однієї вибраної серії умовних переходів виконується у пристрої (6) за допомогою другої виконуваної частини (2peu),

– і за допомогою створення:

Ø першої частини (2pos) об’єктного коду захищеної програми (2p), причому перша частина (2pos) об’єктного коду така, що в ході виконання захищеної програми (2p) функціональна можливість принаймні однієї вибраної серії умовних переходів виконується у пристрої (6),

Ø і другої частини (2pou) об’єктного коду захищеної програми (2p), причому друга частина (2pou) об’єктного коду така, що після завантаження у пристрій (6), у ході виконання захищеної програми (2p) реалізується друга виконувана частина (2peu), за допомогою якої виконується глобальна функціональна можливість щонайменше однієї вибраної серії умовних переходів.

18. Спосіб за будь-яким з пп. 1-17, який відрізняється тим, що розкладають фазу (P) захисту на вхідну підфазу (P1) захисту, не залежну від програми, що захищається, і на вихідну підфазу (P2) захисту, залежну від програми, що захищається.

19. Спосіб за п. 18, який відрізняється тим, що в ході вхідної підфази (P1) захисту задіюють стадію (S11) визначень, на якій виконуються всі визначення.

20. Спосіб за п. 19, який відрізняється тим, що після стадії (S11) визначень задіюють стадію конструювання (S12), на якій створюються засоби експлуатації.

21. Спосіб за п. 20, який відрізняється тим, що після стадії (S12) конструювання задіюють стадію (S13) передперсоналізації, яка полягає в тому, що завантажують у незадіяний пристрій (60) принаймні частину засобів експлуатації, щоб одержати передперсоналізований пристрій (66).

22. Спосіб за п. 19 або 20, який відрізняється тим, що в ході вхідної підфази (P1) захисту задіюють стадію (S14) виготовлення засобів, на якій виготовляються засоби, що допомагають при створенні захищених програм або автоматизації захисту програм.

23. Спосіб за п. 18 або 21, який відрізняється тим, що вихідну підфазу (P2) захисту розкладають на:

• стадію (S21) створення, на якій на основі уразливої програми (2v) створюється захищена програма (2p);

• можливо, стадію (S22) модифікації, на якій модифікується захищена програма (2p);

• і, можливо, стадію (S23) персоналізації, на якій:

– друга частина (2pou) об’єктного коду захищеної програми (2p), що, можливо, містить засоби експлуатації, завантажується щонайменше в один незадіяний пристрій (60), щоб одержати щонайменше один пристрій (6),

– або частина другої частини (2pou) об’єктного коду захищеної програми (2p), що, можливо, містить засоби експлуатації, завантажується щонайменше в один передперсоналізований пристрій (66), щоб одержати щонайменше один пристрій (6).

24. Спосіб за п. 22 або 23, який відрізняється тим, що в ході стадії (S21) створення і, можливо, стадії (S22) модифікації використовують принаймні один із засобів, призначених для використання при створенні захищених програм або автоматизації захисту програм.

Текст

1. Спосіб захисту, на основі щонайменше одного незадіяного пристрою (60), що містить щонайменше засоби (15) запам’ятовування, від неавторизованого використання уразливої програми (2v), яка функціонує на системі (3) обробки даних, який полягає в тому, що:  у фазі (P) захисту: • створюють захищену програму (2p): – за допомогою вибору у вихідному коді (2vs) уразливої програми:  щонайменше однієї змінної, яка в ході виконання уразливої програми (2v) частково визначає її стан,  і щонайменше одного фрагмента, що містить щонайменше одну вибрану змінну, – за допомогою створення вихідного коду (2ps) захищеної програми на основі вихідного коду (2vs) уразливої програми модифікацією щонайменше одного вибраного фрагмента коду (2vs) уразливої програми, причому ця модифікація така, що в ході виконання захищеної програми (2p) щонайменше одна вибрана змінна або одна копія вибраної змінної знаходиться в незадіяному пристрої (60), який тим самим перетворюється на пристрій (6), – і за допомогою створення першої частини (2pos) об’єктного коду захищеної програми (2p) на основі вихідного коду (2ps) захищеної програми, причому перша частина (2pos) об’єктного коду така, що в ході виконання захищеної програми (2p) реалізу 2 (19) 1 3 77186 4  щонайменше функціональна можливість при– і набір елементарних команд для зазначеного наймні одного вибраного алгоритму виконується набору елементарних функцій, причому зазначені за допомогою другої виконуваної частини (2peu), елементарні команди можуть бути виконані в сис щонайменше один вибраний алгоритм розклатемі (3) обробки даних, викликаючи виконання у дається таким чином, що в ході виконання захипристрої (6) елементарних функцій; щеної програми (2p) реалізуються, за допомогою • конструюють засоби експлуатації, що дозволядругої виконуваної частини (2peu), декілька різноють перетворити незадіяний пристрій (60) на приманітних етапів, як-от: стрій (6), здатний виконувати елементарні функції  надання щонайменше однієї змінної зі вказаного набору, причому виконання зазначедля пристрою (6), них елементарних функцій викликається виконан реалізація у пристрої (6) функціонаням елементарних команд у системі (3) обробки льних можливостей алгоритму, виконуваного щоданих; найменше над цією змінною, • модифікують захищену програму (2p):  і, можливо, надання принаймні однієї – за допомогою вибору у вихідному коді (2ps) зарезультуючої змінної пристроєм (6) для системи хищеної програми: (3) обробки даних,  щонайменше одного алгоритму, який у ході ви щонайменше для одного вибраного алгоритму конання захищеної програми (2p) використовує команди етапів визначені таким чином, що в ході щонайменше одну вибрану змінну і дозволяє одевиконання захищеної програми (2p) кожна команда ржати щонайменше одну результуючу змінну, етапу виконується за допомогою першої виконува і щонайменше одного фрагмента, що містить ної частини (2pes) і викликає у пристрої (6) викопринаймні один вибраний алгоритм, нання етапу за допомогою другої виконуваної час– за допомогою модифікації щонайменше одного тини (2peu), вибраного фрагмента коду (2ps) захищеної про причому впорядкування команд етапів вибрано грами, причому зазначена модифікація така, що: з масиву впорядкувань, що дозволяють виконання  в ході виконання захищеної програми (2p) перзахищеної програми (2p), ша виконувана частина (2pes) виконується в сис– і за допомогою створення: темі (3) обробки даних, а друга виконувана части першої частини (2pos) об’єктного коду захищена (2peu) виконується у пристрої (6), ної програми (2p), причому перша частина (2pos)  щонайменше функціональна можливість приоб’єктного коду така, що в ході виконання захищенаймні одного вибраного алгоритму виконується ної програми (2p) команди етапів виконуються відза допомогою другої виконуваної частини (2peu), повідно до вибраного впорядкування,  щонайменше один вибраний алгоритм розкла і другої частини (2pou) об’єктного коду захищедається таким чином, що в ході виконання захиної програми (2p), причому друга частина (2pou) щеної програми (2p) вказаний алгоритм виконуоб’єктного коду така, що після завантаження у неється за допомогою другої виконуваної частини задіяний пристрій (60), в ході виконання захищеної (2peu) із застосуванням елементарних функцій, програми (2p) реалізується друга виконувана час щонайменше для одного вибраного алгоритму тина (2peu), за допомогою якої виконуються етапи, елементарні команди інтегруються у вихідний код запуск яких було викликано першою виконуваною (2ps) захищеної програми таким чином, що в ході частиною(2pes); виконання захищеної програми (2p) кожна елеме• і завантажують другу частину (2pou) об’єктного нтарна команда виконується за допомогою першої коду в незадіяний пристрій (60) з одержанням привиконуваної частини (2pes) і викликає у пристрої строю (6), (6) виконання, за допомогою другої виконуваної  а у фазі (U) використання: частини (2peu), елементарної функції, • за наявності пристрою (6), кожного разу, коли  причому впорядкування елементарних команд вицього вимагає команда етапу, що міститься у фрабирається з масиву впорядкувань, що дозволяють гменті першої виконуваної частини (2pes), виконувиконання захищеної програми (2p), ють відповідний етап у пристрої (6) таким чином, – і за допомогою створення: щоб указаний фрагмент виконувався коректно й,  першої частини (2pos) об’єктного коду захищеотже, захищена програма (2p) була повнофункціоної програми (2p), причому перша частина (2pos) нальною; об’єктного коду така, що в ході виконання захище• тоді як за відсутності пристрою (6), незважаючи ної програми (2p) елементарні команди виконуна запит одного фрагмента першої виконуваної ються відповідно до вибраного впорядкування, частини (2pes) на запуск виконання етапу у при і другої частини (2pou) об’єктного коду захищестрої (6), не забезпечується можливість коректної ної програми (2p), що містить засоби експлуатації, відповіді на вказаний запит, так що принаймні вкапричому друга частина (2pou) об’єктного коду така, заний фрагмент не виконується коректно й, отже, що після завантаження в незадіяний пристрій (60), захищена програма (2p) не є повнофункціональв ході виконання захищеної програми (2p) реалізуною. ється друга виконувана частина (2peu), за допомо3. Спосіб за п. 1, який відрізняється тим, що: гою якої виконуються елементарні функції, запуск  у фазі (P) захисту: яких був викликаний першою виконуваною части• визначають: ною (2pes); – набір елементарних функцій, елементарні функ• і завантажують другу частину (2pou) об’єктного ції якого можуть бути виконані у пристрої (6), який коду в незадіяний пристрій (60) з одержанням примістить також засоби (16) обробки, строю (6),  а у фазі (U) використання: 5 77186 6 • за наявності пристрою (6), кожного разу, коли ється друга виконувана частина (2peu), за допомоцього вимагає елементарна команда, що міститься гою якої виконуються елементарні функції, запуск у фрагменті першої виконуваної частини (2pes), яких був викликаний першою виконуваною частивиконують відповідну елементарну функцію у приною (2pes), строї (6) таким чином, щоб указаний фрагмент  а у фазі (U) використання: виконувався коректно й, отже, захищена програма • за наявності пристрою (6), кожного разу, коли (2p) була повнофункціональною; цього вимагає елементарна команда, що міститься • тоді як за відсутності пристрою (6), незважаючи в частині першої виконуваної частини (2pes), викона запит фрагмента першої виконуваної частини нують відповідну елементарну функцію у пристрої (2pes) на запуск виконання у пристрої (6) елемен(6) таким чином, щоб указаний фрагмент виконутарної функції, не забезпечується можливість ковався коректно й, отже, захищена програма (2p) ректної відповіді на вказаний запит, так що прибула повнофункціональною; наймні вказаний фрагмент не виконується • тоді як за відсутності пристрою (6), незважаючи коректно й, отже, захищена програма (2p) не є на запит одного фрагмента першої виконуваної повнофункціональною. частини (2pes) на запуск виконання у пристрої (6) 4. Спосіб за п. 2, який відрізняється тим, що: елементарної функції, не забезпечується можли у фазі (P) захисту: вість коректної відповіді на вказаний запит, так що • визначають: принаймні вказаний фрагмент не виконується ко– набір елементарних функцій, елементарні функректно й, отже, захищена програма (2p) не є повції якого можуть бути виконані у пристрої (6), нофункціональною. 5. Спосіб за п. 3 або 4, який відрізняється тим, – і набір елементарних команд для згаданого набору елементарних функцій, причому зазначені що: елементарні команди можуть бути виконані в сис у фазі (P) захисту: темі (3) обробки даних, викликаючи виконання у • визначають: пристрої (6) елементарних функцій; – щонайменше одну характеристику виконання • конструюють засоби експлуатації, що дозволяпрограми, що може бути проконтрольована, щоють пристрою (6) виконувати елементарні функції найменше частково, у пристрої (6), з указаного набору, причому виконання зазначе– щонайменше один критерій, що має виконуватиних елементарних функцій викликається виконанся щонайменше для однієї характеристики виконям елементарних команд у системі (3) обробки нанняпрограми, даних; – засоби (17) детектування, що їх слід застосову• і модифікують захищену програму (2p): вати у пристрої (6) і які дозволяють виявити, що – за допомогою вибору у вихідному коді (2ps) запринаймні одна характеристика виконання прохищеної програми щонайменше одного етапу, грами не відповідає щонайменше одному відповіякий у ході виконання захищеної програми (2p) дному критерію, здійснює функціональну можливість алгоритму, – і засоби (18) примусу, що їх слід застосовувати у – за допомогою модифікації щонайменше одного пристрої (6) і які дозволяють проінформувати сисвибраного фрагмента коду (2ps) захищеної протему (3) обробки даних і/або модифікувати викограми, причому згадана модифікація така, що: нання програми, поки не дотримано хоча б одного  щонайменше один вибраний етап розкладаєтькритерію; ся таким чином, що в ході виконання захищеної • конструюють засоби експлуатації, що дозволяпрограми (2p) вказаний етап виконується за допоють пристрою (6) задіяти засоби (17) детектування могою другої виконуваної частини (2peu) із застой засоби (18) примусу; суванням елементарних функцій, • і модифікують захищену програму (2p):  щонайменше для одного вибраного етапу еле– за допомогою вибору щонайменше однієї харакментарні команди інтегруються у вихідний код теристики виконання контрольованої програми з (2ps) захищеної програми таким чином, що в ході характеристик виконання, які можуть бути проконвиконання захищеної програми (2p) кожна елеметрольовані, нтарна команда виконується за допомогою першої – за допомогою вибору щонайменше одного кривиконуваної частини (2pes) і викликає у пристрої терію, який має виконуватися щонайменше для (6) виконання, за допомогою другої виконуваної однієї вибраної характеристики виконання програчастини (2peu), елементарної функції, ми,  і впорядкування елементарних команд вибира– за допомогою вибору у вихідному коді (2ps) зається в масиві впорядкувань, що дозволяють вихищеної програми елементарних функцій, для конання захищеної програми (2p), яких варто контролювати щонайменше одну хара– і за допомогою створення: ктеристику виконання контрольованої програми,  першої частини (2pos) об’єктного коду захище– за допомогою модифікації щонайменше одного ної програми (2p), причому перша частина (2pos) вибраного фрагмента коду (2ps) захищеної прооб’єктного коду така, що в ході виконання захищеграми, причому вказана модифікація така, що в ної програми (2p) елементарні команди виконуході виконання захищеної програми (2p) принаймні ються відповідно до вибраного впорядкування, одна вибрана характеристика виконання контро і другої частини (2pou) об’єктного коду захищелюється за допомогою другої виконуваної частини, ної програми (2p), що містить також засоби екс(2peu) і недотримання критерію приводить до інплуатації, причому друга частина (2pou) об’єктного формування системи (3) обробки даних і/або до коду така, що після завантаження у пристрій (6), у модифікації виконання захищеної програми (2p), ході виконання захищеної програми (2p) реалізу 7 77186 8 – і за допомогою створення другої частини (2pou) залежно від використання зазначеної функціонаоб’єктного коду захищеної програми (2p), що місльної можливості, тить засоби експлуатації, що задіюють також засо– і за допомогою модифікації щонайменше одного би (17) детектування й засоби (18) примусу, привибраного фрагмента коду (2ps) захищеної прочому друга частина (2pou) об’єктного коду така, що грами, причому зазначена модифікація така, що в після завантаження у пристрій (6), у ході виконанході виконання захищеної програми (2p) змінна ня захищеної програми (2p) щонайменше одна для кількісного контролю поновлюється за допохарактеристика виконання програми контролюєтьмогою другої виконуваної частини (2peu), залежно ся, і недотримання критерію приводить до інфорвід використання зазначеної функціональної можмування системи (3) обробки даних і/або до моливості, і враховується щонайменше одне передифікації виконання захищеної програми (2p), вищення порогового значення,  а у фазі (U) використання:  а у фазі (U) використання, за наявності при• за наявності пристрою (6): строю (6), у разі, коли виявлено щонайменше одне – якщо всіх критеріїв, що відповідають усім контперевищення порогового значення, що відповідає рольованим характеристикам виконання всіх мощонайменше одній межі використання, інформудифікованих фрагментів захищеної програми (2p), ють про це систему (3) обробки даних і/або модидотримано, допускають номінальне функціонуванфікують функціонування фрагмента захищеної ня згаданих фрагментів захищеної програми (2p) програми (2p) таким чином, щоб функціонування й, отже, номінальне функціонування захищеної захищеної програми (2p) було змінене. 7. Спосіб за п. 6, який відрізняється тим, що: програми (2p), – а якщо принаймні одного з критеріїв, що відпові у фазі (P) захисту: дають характеристиці контрольованого виконання • визначають: одного фрагмента захищеної програми (2p), не – декілька відповідних порогових значень щонайдотримано, інформують систему (3) обробки даних менше для однієї змінної для кількісного контролю, про зазначене недотримання і/або модифікують – і різноманітні засоби примусу, що відповідають функціонування фрагмента захищеної програми кожному зі згаданих порогів; (2p) таким чином, щоб функціонування захищеної • і модифікують захищену програму (2p): програми (2p) було змінене. – за допомогою вибору у вихідному коді (2ps) за6. Спосіб за п. 5, який відрізняється тим, що: хищеної програми щонайменше однієї змінної для щоб обмежити використання захищеної програми кількісного контролю, з якою мають бути зв’язані (2p), декілька порогових значень, що відповідають різ у фазі (P) захисту: номанітним межам використання функціональної • визначають: можливості, – як характеристику виконання програми, яка може – за допомогою вибору щонайменше двох порогобути проконтрольована, - змінну для кількісного вих значень, зв’язаних з вибраною змінною для контролю використання однієї функціональної мокількісного контролю, жливості програми, – і за допомогою модифікації щонайменше одного – як критерій, що його слід дотримуватися, - щовибраного фрагмента коду (2ps) захищеної пронайменше одне порогове значення, зв’язане з кограми, причому вказана модифікація така, що в жною змінною для кількісного контролю, ході виконання захищеної програми (2p) переви– і засоби поновлення, що дозволяють поновити щення різноманітних порогових значень враховущонайменше одну змінну для кількісного контроються за допомогою другої виконуваної частини лю; (2peu) різноманітними способами, • конструюють засоби експлуатації, що дозволя а у фазі (U) використання: ють пристрою (6) застосовувати засоби поновлен• за наявності пристрою (6): ня; – у випадку, коли виявлено перевищення першого • і модифікують захищену програму (2p): порогового значення, дають команду захищеній – за допомогою вибору як характеристики викопрограмі (2p) не використовувати надалі відповіднання контрольованої програми щонайменше одну функціональну можливість, нієї змінної для кількісного контролю використання – а у разі, коли виявлено перевищення другого однієї функціональної можливості програми, порогового значення, роблять нездійсненною від– за допомогою вибору: повідну функціональну можливість і/або щонайме щонайменше однієї функціональної можливості нше частину захищеної програми (2p). 8. Спосіб за п. 6 або 7, який відрізняється тим, захищеної програми (2p), використання якої можна проконтролювати з використанням змінної для що: кількісного контролю,  у фазі (P) захисту:  щонайменше однієї змінної для кількісного конт• визначають засоби перезавантаження, що доролю, яка служить для кількісної характеристики зволяють щонайменше одне додаткове викорисвикористання згаданої функціональної можливостання щонайменше однієї функціональної можлиті, вості програми, контрольованої за допомогою  щонайменше одного порогового значення, змінної для кількісного контролю; пов’язаного з вибраною змінною для кількісного • конструюють засоби експлуатації, що дозволяконтролю і відповідного межі використання зазнають також пристрою (6) задіяти засоби перезаванченої функціональної можливості, таження;  і щонайменше одного методу поновлення зна• і модифікують захищену програму (2p): чення згаданої змінної для кількісного контролю 9 77186 10 – за допомогою вибору у вихідному коді (2ps) заної програми (2p), якщо зчеплення інструкцій не хищеної програми щонайменше однієї змінної для відповідає бажаному; кількісного контролю, що дозволяє обмежити ви• конструюють засоби експлуатації, що дозволякористання однієї функціональної можливості, для ють пристрою (6) виконувати інструкції з набору якої існує можливість дозволу щонайменше на інструкцій, причому виконання зазначених інструкодне додаткове використання, цій викликається виконанням команд інструкцій у – і за допомогою модифікації щонайменше одного системі (3) обробки даних; вибраного фрагмента, причому згадана модифіка• і модифікують захищену програму (2p): ція така, що у фазі перезавантаження щонаймен– за допомогою модифікації щонайменше одного ше одне додаткове використання щонайменше вибраного фрагмента коду (2ps) захищеної прооднієї функціональної можливості, що відповідає грами: одній вибраній змінній для кількісного контролю,  за допомогою перетворення елементарних фунможе бути дозволене, кцій на інструкції,  а у фазі перезавантаження:  за допомогою завдання зчеплення, що його ма• поновлюють щонайменше одну вибрану змінну ють дотримуватися щонайменше деякі з інструкцій для кількісного контролю і щонайменше одне відпід час їхнього виконання у пристрої (6), повідне порогове значення так, щоб дозволити  і за допомогою перетворення елементарних щонайменше одне додаткове використання функкоманд на команди інструкцій, що відповідають ціональної можливості. використовуваним інструкціям, 9. Спосіб за п. 5, який відрізняється тим, що:  а у фазі (U) використання, в присутності при у фазі (P) захисту: строю (6), у випадку, якщо виявлено, що зчеплен• визначають: ня виконуваних у пристрої (6) інструкцій не відпо– як характеристику виконання програми, яка може відає бажаному, інформують про це систему (3) бути проконтрольована, - профіль використання обробки даних і/або модифікують функціонування програми, фрагмента захищеної програми (2p) так, щоб фун– і як критерій, що його слід дотримуватися, - щокціонування захищеної програми (2p) було зміненайменше одну ознаку виконання програми; не. 11. Спосіб за п. 10, який відрізняється тим, що: • і модифікують захищену програму (2p): – за допомогою вибору як характеристики вико у фазі (P) захисту: нання контрольованої програми щонайменше од• визначають: ного профілю використання програми, – як набір інструкцій – набір інструкцій, у якому – за допомогою вибору щонайменше однієї ознаки щонайменше деякі інструкції працюють на регіствиконання програми, що її має дотримуватися щорах і використовують щонайменше один операнд найменше один профіль використання, для видачі результату, – і за допомогою модифікації щонайменше одного – щонайменше для частини інструкцій, що працювибраного фрагмента коду (2ps) захищеної проють на регістрах: грами, причому зазначена модифікація така, що в  частину (PF), що задає функціональну можлиході виконання захищеної програми (2p) друга вивість інструкції, конувана частина (2peu) дотримується всіх вибра і частину, що задає бажане зчеплення для виконих ознак виконання, нання інструкцій і містить бітові поля, що відпові а у фазі (U) використання, за наявності придають: строю (6) у випадку, якщо виявлено, що не дотри полю (CII) ідентифікації інструкції, мується хоча б одна ознака виконання, інформу і для кожного операнда інструкції: ють про це систему (3) обробки даних і/або * полю (CDk) прапора, модифікують функціонування частини захищеної * і полю (CIPk) ідентифікації, передбаченої для програми (2p) так, щоб функціонування захищеної операнда, програми (2p) було змінено. – для кожного регістра, що належить до засобів 10. Спосіб за п. 9, який відрізняється тим, що: експлуатації і використовується набором інструк у фазі (P) захисту: цій, - поле (CIGv) передбаченої ідентифікації, в • визначають: якому автоматично запам’ятовується ідентифіка– набір інструкцій, інструкції зі складу якого можуть ція останньої інструкції, що повернула свій резульбути виконані у пристрої (6), тат у вказаний регістр, – набір команд інструкцій для зазначеного набору – як засоби (17) детектування – засоби, що дозвоінструкцій, причому команди інструкцій можуть ляють під час виконання інструкції для кожного бути виконані в системі (3) обробки даних, виклиоперанда, коли цього вимагає поле (CDk) прапора, каючи у пристрої (6) виконання інструкцій, контролювати рівність між полем (CIGv) генерова– як профіль використання – зчеплення інструкцій, ної ідентифікації, відповідним регістру, використо– як ознаку виконання – бажане зчеплення для вуваному згаданим операндом, і полем (CIPk) певиконання інструкцій, редбаченої ідентифікації початкової адреси цього – як засоби (17) детектування – засоби, що дозвооперанда, ляють виявити, що зчеплення інструкцій не відпо– і як засоби (18) примусу - засоби, що дозволяють відає бажаному, модифікувати результат виконання інструкцій, як– як засоби (18) примусу – засоби, що дозволяють що принаймні одна з контрольованих рівностей проінформувати систему (3) обробки даних і/або хибна. 12. Спосіб по п. 3, 4 або 10, який відрізняється модифікувати функціонування фрагмента захищетим, що: 11 77186 12  у фазі (P) захисту: • визначають, щонайменше для однієї залежної • визначають: функції, сімейство алгоритмічно еквівалентних – як команду запуску – елементарну команду або залежних функцій, що викликаються командами команду інструкції, запуску, перейменовані установні параметри яких – як залежну функцію – елементарну функцію або є різними; інструкцію, • і модифікують захищену програму (2p): – як установний параметр - щонайменше один – за допомогою вибору у вихідному коді (2ps) зааргумент для команди запуску, що відповідає щохищеної програми щонайменше однієї команди найменше частково інформації, переданій систезапуску з перейменованими установними парамемою (3) обробки даних на пристрій (6), щоб виклитрами, кати запуск відповідної залежної функції, – і за допомогою модифікації щонайменше одного – метод перейменування установних параметрів, вибраного фрагмента коду (2ps) захищеної прощо дозволяє перейменувати установні параметри, грами шляхом заміни щонайменше перейменоващоб одержати команди запуску з перейменованиних установних параметрів команди запуску з вибми установними параметрами, раним набором установних параметрів на інші – і засоби (20) відновлення, які призначені для перейменовані установні параметри, що викликає застосування у пристрої (6) у фазі (U) використанзапуск залежної функції з того ж сімейства. 14. Спосіб за п. 13, який відрізняється тим, що ня і які дозволяють знайти залежну функцію, що її необхідно виконати, виходячи з перейменованого включає: установного параметра;  у фазі (P) захисту визначення, щонайменше для • конструюють засоби експлуатації, що дозволяоднієї залежної функції, сімейства алгоритмічно ють пристрою (6) задіяти засоби відновлення; еквівалентних залежних функцій • і модифікують захищену програму (2p): – шляхом зчеплення поля шумів з інформацією, – за допомогою вибору у вихідному коді (2ps) защо визначає ту функціональну частину залежної хищеної програми команди запуску, функції, що виконується у пристрої (6), – за допомогою модифікації принаймні одного ви– або шляхом використання поля (CII) ідентифікабраного фрагмента коду (2ps) захищеної програми ції інструкції і поля (CIPk) ідентифікації, передбашляхом перейменування установних параметрів ченої для операнда. 15. Спосіб за п. 12, 13 або 14, який відрізняється вибраних команд запуску, щоб приховати ідентичність відповідних залежних функцій, тим, що: – і за допомогою створення:  у фазі (P) захисту визначають:  першої частини (2pos) об’єктного коду захище– як метод перейменування установних параметної програми (2p), причому перша частина (2pos) рів – метод кодування для кодування установних об’єктного коду така, що в ході виконання захищепараметрів, ної програми (2p) виконуються команди запуску з – і як засоби (20) відновлення – засоби, що застоперейменованими установними параметрами, совують метод декодування для декодування пе і другої частини (2pou) об’єктного коду захищерейменованих установних параметрів і відновленної програми (2p), що містить засоби експлуатації, ня ідентичності залежних функцій, що їх слід які використовують також засоби (20) відновлення, виконати у пристрої (6). 16. Спосіб за будь-яким з пп. 2-15, який відрізняпричому друга частина (2pou) об’єктного коду така, ється тим, що: що після завантаження у пристрій (6), у ході виконання захищеної програми (2p) ідентичність зале у фазі (P) захисту: жних функцій, виконання яких викликано першою • модифікують захищену програму (2p): виконуваною частиною (2pes), відновлюється за – за допомогою вибору у вихідному коді (2ps) задопомогою другої виконуваної частини (2peu), а хищеної програми щонайменше одного умовного залежні функції виконуються за допомогою другої переходу, виконуваного щонайменше в одному виконуваної частини (2peu), вибраному алгоритмі обробки,  а у фазі (U) використання: – за допомогою модифікації щонайменше одного • за наявності пристрою (6), кожного разу, коли вибраного фрагмента коду (2ps) захищеної процього вимагає команда запуску з перейменованиграми, причому вказана модифікація така, що в ми установними параметрами, що міститься у ході виконання захищеної програми (2p) функціофрагменті першої виконуваної частини (2pes), віднальна можливість принаймні одного вибраного новлюють у пристрої (6) ідентичність відповідної умовного переходу виконується за допомогою друзалежної функції, і виконують її так, щоб указаний гої виконуваної частини (2peu), у пристрої (6), фрагмент виконувався коректно й, отже, захищена – і за допомогою створення: програма (2p) була повнофункціональною;  першої частини (2pos) об’єктного коду захище• тоді як за відсутності пристрою (6), незважаючи ної програми (2p), причому перша частина (2pos) на запит фрагмента першої виконуваної частини об’єктного коду така, що в ході виконання захище(2pes) на запуск виконання у пристрої (6) залежної ної програми (2p) функціональна можливість щофункції, не забезпечується можливість коректної найменше одного вибраного умовного переходу відповіді на вказаний запит, так що щонайменше виконується у пристрої (6), вказаний фрагмент не виконується коректно й,  і другої частини (2pou) об’єктного коду захищеотже, захищена програма (2p) не є повнофункціоної програми (2p), причому друга частина (2pou) нальною. об’єктного коду така, що після завантаження у 13. Спосіб за п. 12, який відрізняється тим, що: пристрій (6), у ході виконання захищеної програми  у фазі (P) захисту: (2p) реалізується друга виконувана частина (2peu), 13 77186 14 за допомогою якої виконується функціональна вхідну підфазу (P1) захисту, не залежну від проможливість щонайменше одного вибраного умовграми, що захищається, і на вихідну підфазу (P2) ного переходу, захисту, залежну від програми, що захищається. 19. Спосіб за п. 18, який відрізняється тим, що в  а у фазі (U) використання: • за наявності пристрою (6), кожного разу, коли ході вхідної підфази (P1) захисту задіюють стадію цього вимагає фрагмент першої виконуваної час(S11) визначень, на якій виконуються всі визначентини (2pes), виконують у пристрої (6) функції щоня. 20. Спосіб за п. 19, який відрізняється тим, що найменше одного вибраного умовного переходу таким чином, щоб указаний фрагмент виконувався після стадії (S11) визначень задіюють стадію конскоректно й, отже, захищена програма (2p) була труювання (S12), на якій створюються засоби експовнофункціональною; плуатації. 21. Спосіб за п. 20, який відрізняється тим, що • а за відсутності пристрою (6), незважаючи на запит фрагмента першої виконуваної частини після стадії (S12) конструювання задіюють стадію (2pes) на виконання функцій умовного переходу у (S13) передперсоналізації, яка полягає в тому, що пристрої (6), не забезпечується можливість корекзавантажують у незадіяний пристрій (60) принаймтної відповіді на вказаний запит, так що принаймні ні частину засобів експлуатації, щоб одержати вказаний фрагмент не виконується коректно й, передперсоналізований пристрій (66). 22. Спосіб за п. 19 або 20, який відрізняється отже, захищена програма (2p) не є повнофункціональною. тим, що в ході вхідної підфази (P1) захисту задію17. Спосіб за п. 16, який відрізняється тим, що у ють стадію (S14) виготовлення засобів, на якій вифазі (P) захисту модифікують захищену програму готовляються засоби, що допомагають при ство(2p): ренні захищених програм або автоматизації – за допомогою вибору у вихідному коді (2ps) зазахисту програм. 23. Спосіб за п. 18 або 21, який відрізняється хищеної програми щонайменше однієї серії вибраних умовних переходів, тим, що вихідну підфазу (P2) захисту розкладають – за допомогою модифікації щонайменше одного на: вибраного фрагмента коду (2ps) захищеної про• стадію (S21) створення, на якій на основі уразлиграми, причому вказана модифікація така, що в вої програми (2v) створюється захищена програма ході виконання захищеної програми (2p) глобальна (2p); функціональна можливість щонайменше однієї • можливо, стадію (S22) модифікації, на якій модивибраної серії умовних переходів виконується у фікується захищена програма (2p); пристрої (6) за допомогою другої виконуваної час• і, можливо, стадію (S23) персоналізації, на якій: тини (2peu), – друга частина (2pou) об’єктного коду захищеної – і за допомогою створення: програми (2p), що, можливо, містить засоби екс першої частини (2pos) об’єктного коду захищеплуатації, завантажується щонайменше в один ної програми (2p), причому перша частина (2pos) незадіяний пристрій (60), щоб одержати щонаймеоб’єктного коду така, що в ході виконання захищенше один пристрій (6), ної програми (2p) функціональна можливість при– або частина другої частини (2pou) об’єктного наймні однієї вибраної серії умовних переходів коду захищеної програми (2p), що, можливо, місвиконується у пристрої (6), тить засоби експлуатації, завантажується щонай і другої частини (2pou) об’єктного коду захищеменше в один передперсоналізований пристрій ної програми (2p), причому друга частина (2pou) (66), щоб одержати щонайменше один приоб’єктного коду така, що після завантаження у стрій (6). 24. Спосіб за п. 22 або 23, який відрізняється пристрій (6), у ході виконання захищеної програми (2p) реалізується друга виконувана частина (2peu), тим, що в ході стадії (S21) створення і, можливо, за допомогою якої виконується глобальна функцістадії (S22) модифікації використовують принаймні ональна можливість щонайменше однієї вибраної один із засобів, призначених для використання при серії умовних переходів. створенні захищених програм або автоматизації 18. Спосіб за будь-яким з пп. 1-17, який відрізнязахисту програм. ється тим, що розкладають фазу (P) захисту на Даний винахід належить до галузі систем обробки даних у широкому сенсі цього слова, а точніше кажучи, винахід стосується засобів захисту від неавторизованого використання програми, що функціонує у згаданих системах обробки даних. Предмет даного винаходу відноситься, більш конкретно, до способів захисту програм від неавторизованого використання на основі запам'ятовуючого пристрою або пристрою обробки і зберігання, причому цей пристрій звичайно реалізується у вигляді карти з мікрочипом або апаратним ключем на порту USB. У вказаній галузі техніки основна проблема пов'язана з неавторизованим використанням програм користувачами, що не набули права на їхнє використання (ліцензію). Таке незаконне використання програм завдає явних збитків виробникам і продавцям програм, і/або будь-яким іншим особам, що використовують такі програми у своїх виробах. Щоб уникнути створення таких незаконних копій для захисту подібних програм було запропоновано ряд рішень на основі наявних технічних 15 77186 16 можливостей. хищена програма була повнофункціональною; Так, відомий спосіб захисту, що полягає у ви- тоді як за відсутності пристрою, незважаючи користанні апаратного захисного елемента - фізина запит одного фрагменту першої виконуваної чного пристрою, названого електронним захисним частини, використовувати змінну або копію змінключем-заглушкою ("dongle"). Такий захисний ключ ної, що знаходиться у пристрої, не забезпечується має гарантувати виконання програми тільки за можливість коректної відповіді на вказаний запит, наявності ключа. Мусимо, проте, констатувати, що так що принаймні вказаний фрагмент не виконуце вирішення неефективне, бо його можна легко ється коректно й, отже, захищена програма не є обійти. Зловмисник може за допомогою спеціальповнофункціональною. них прийомів, наприклад дизасемблювання, вилуВідповідно до кращої форми реалізації спосочити команди контролю захисного ключа. При бу за винаходом: цьому стає можливим виготовити незаконні копії - у фазі захисту: модифікованих версій програми, що не мають жо- модифікують захищену програму: дного захисту. Крім того, це вирішення не можна - за допомогою вибору у вихідному коді захипоширити на всі програми з огляду на складність щеної програми: підключення більш ніж двох захисних ключів до - щонайменше одного алгоритму, що в ході однієї системи. виконання захищеної програми використовує щоВідповідно, задача, розв'язувана даним винанайменше одну вибрану змінну і дозволяє одерходом, полягає в усуненні зазначених недоліків жати щонайменше одну результуючу змінну, шляхом створення способу захисту програми від - і щонайменше одного фрагмента, що містить неавторизованого доступу, що використовує запапринаймні один вибраний алгоритм, м'ятовуючий пристрій або пристрій обробки і збері- за допомогою модифікації принаймні одного гання, спеціально створений з цією метою, в тій вибраного фрагмента коду захищеної програми, мірі, в якій наявність такого пристрою необхідна причому ця модифікація така, що: для повноцінної роботи програми. - в ході виконання захищеної програми перша Розв'язання даної задачі досягнуте відповідно виконувана частина виконується в системі обробки до винаходу створенням способу захисту (на осданих, а друга виконувана частина виконується у нові щонайменше одного незадіяного пристрою, пристрої, що містить також засоби обробки, що має принаймні засоби запам'ятовування) від - щонайменше функціональна можливість неавторизованого використання вразливої пропринаймні одного вибраного алгоритму виконуєтьграми, що функціонує в системі обробки даних. ся за допомогою другої виконуваної частини, Спосіб згідно з винаходом полягає в тому, що: - щонайменше один вибраний алгоритм розк- у фазі захисту: ладається таким чином, що в ході виконання за- створюють захищену програму: хищеної програми реалізуються за допомогою - за допомогою вибору у вихідному коді враздругої виконуваної частини декілька різноманітних ливої програми: етапів, як-от: - щонайменше однієї змінної, що в ході вико- надання щонайменше однієї змінної для принання вразливої програми частково визначає її строю, стан, - реалізація у пристрої функціональних мож- і щонайменше одного фрагмента, що містить ливостей алгоритму, виконуваного щонайменше щонайменше одну вибрану змінну, над цією змінною, - за допомогою створення вихідного коду за- і, можливо, надання щонайменше однієї рехищеної програми на основі вихідного коду враззультуючої змінної пристроєм для системи обробливої програми модифікацією щонайменше одного ки даних, вибраного фрагмента коду вразливої програми, - щонайменше для одного вибраного алгоритпричому ця модифікація така, що в ході виконання му команди етапів визначені таким чином, що в захищеної програми щонайменше одна вибрана ході виконання захищеної програми кожна команзмінна або одна копія вибраної змінної знаходитьда етапу виконується за допомогою першої викося в незадіяному пристрої, який тим самим перетнуваної частини і викликає у пристрої виконання ворюється на пристрій, етапу за допомогою другої виконуваної частини, - і за допомогою створення першої частини - причому впорядкування команд етапів вибоб'єктного коду захищеної програми на основі виране серед ансамблю впорядкувань, що дозволяхідного коду захищеної програми, причому перша ють виконання захищеної програми, частина об'єктного коду така, що в ході виконання - і за допомогою створення: захищеної програми реалізується перша викону- першої частини об'єктного коду захищеної вана частина, що виконується в системі обробки програми, причому перша частина об'єктного коду даних, і щонайменше один фрагмент якої врахотака, що в ході виконання захищеної програми вує, що принаймні одна змінна або одна копія команди етапів виконуються відповідно до вибразмінної знаходиться у пристрої, ного впорядкування, - а у фазі використання, в ході якої виконуєть- і другої частини об'єктного коду захищеної ся захищена програма: програми, причому друга частина об'єктного коду - у присутності пристрою, кожного разу, коли така, що після завантаження у незадіяний прицього вимагає фрагмент першої виконуваної часстрій, у ході виконання захищеної програми реалітини, використовують змінну або копію змінної, що зується друга виконувана частина, за допомогою знаходиться у пристрої таким чином, щоб указаякої виконуються етапи, запуск яких було викликаний фрагмент виконувався коректно й, отже, зано першою виконуваною частиною; 17 77186 18 - і завантажують другу частину об'єктного коду - причому впорядкування елементарних ков незадіяний пристрій з одержанням пристрою, манд вибирається серед ансамблю впорядкувань, - а у фазі використання: що дозволяють виконання захищеної програми, - і - у присутності пристрою, кожного разу, коли за допомогою створення: цього вимагає команда етапу, що є у фрагменті - першої частини об'єктного коду захищеної першої виконуваної частини, виконують відповідпрограми, причому перша частина об'єктного коду ний етап у пристрої таким чином, щоб указаний така, що в ході виконання захищеної програми фрагмент виконувався коректно й, отже, захищена елементарні команди виконуються відповідно до програма була повнофункціональною; вибраного впорядкування, - тоді як за відсутності пристрою, незважаючи - і другої частини об'єктного коду захищеної на запит одного фрагмента першої виконуваної програми, що містить засоби експлуатації, причочастини на запуск виконання етапу у пристрої, не му друга частина об'єктного коду така, що після забезпечується можливість коректної відповіді на завантаження в незадіяний пристрій, у ході виковказаний запит, так що принаймні вказаний фрагнання захищеної програми реалізується друга вимент не виконується коректно й, отже, захищена конувана частина, за допомогою якої виконуються програма не є повнофункціональною. елементарні функції, запуск яких було викликано Відповідно до іншої кращої форми реалізації першою виконуваною частиною; способу згідно з винаходом: - і завантажують другу частину об'єктного коду - у фазі захисту: в незадіяний пристрій з одержанням пристрою, - визначають: - а у фазі використання: - набір елементарних функцій, що його елеме- у присутності пристрою, кожного разу, коли нтарні функції можуть бути виконані у пристрої, цього вимагає елементарна команда, що міститься який має також засоби обробки, у фрагменті першої виконуваної частини, викону- і набір елементарних команд для зазначеноють відповідну елементарну функцію у пристрої го набору елементарних функцій, причому вказані таким чином, щоб указаний фрагмент виконувався елементарні команди можуть бути виконані в сискоректно й, отже, захищена програма була повнотемі обробки даних, викликаючи виконання у прифункціональною; строї елементарних функцій; - тоді як за відсутності пристрою, незважаючи - конструюють засоби експлуатації, що дозвона запит фрагмента першої виконуваної частини ляють перетворити незадіяний пристрій на прина запуск виконання у пристрої елементарної фунстрій, здатний виконувати елементарні функції зі кції, не забезпечується можливість коректної відзгаданого набору, причому виконання зазначених повіді на вказаний запит, так що принаймні вказаелементарних функцій викликається виконанням ний фрагмент не виконується коректно й, отже, елементарних команд у системі обробки даних; захищена програма не є повнофункціональною. - модифікують захищену програму: Відповідно до ще однієї кращої форми реалі- за допомогою вибору у вихідному коді захизації способу згідно з винаходом: щеної програми: - у фазі захисту: - щонайменше одного алгоритму, який у ході - визначають: виконання захищеної програми використовує при- набір елементарних функцій, елементарні наймні одну вибрану змінну і дозволяє одержати функції якого можуть бути виконані у пристрої, щонайменше одну результуючу змінну, -і набір елементарних команд для згаданого - і щонайменше одного фрагмента, що містить набору елементарних функцій, причому зазначені принаймні один вибраний алгоритм, елементарні команди можуть бути виконані в сис- за допомогою модифікації щонайменше одтемі обробки даних, викликаючи виконання у приного вибраного фрагмента коду захищеної прострої елементарних функцій; грами, причому зазначена модифікація така, що: - конструюють засоби експлуатації, що дозво- в ході виконання захищеної програми перша ляють пристрою виконувати елементарні функції з виконувана частина виконується в системі обробки указаного набору, причому виконання зазначених даних, а друга виконувана частина виконується у елементарних функцій викликається виконанням пристрої, елементарних команд у системі обробки даних; - щонайменше функціональна можливість що- і модифікують захищену програму: найменше одного вибраного алгоритму виконуєть- за допомогою вибору у вихідному коді захися за допомогою другої виконуваної частини, щеної програми щонайменше одного етапу, що в - щонайменше один вибраний алгоритм розкході виконання захищеної програми здійснює фунладається таким чином, що в ході виконання закціональну можливість алгоритму, хищеної програми вказаний алгоритм виконується - за допомогою модифікації щонайменше одза допомогою другої виконуваної частини із застоного вибраного фрагмента коду захищеної просуванням елементарних функцій, грами, причому зазначена модифікація така, що: - щонайменше для одного вибраного алгорит- щонайменше один вибраний етап розкладаму елементарні команди інтегруються у вихідний ється таким чином, що в ході виконання захищеної код захищеної програми таким чином, що в ході програми вказаний етап виконується за допомогою виконання захищеної програми кожна елементардругої виконуваної частини із застосуванням елена команда виконується за допомогою першої виментарних функцій, конуваної частини і викликає у пристрої виконання, - щонайменше для одного вибраного етапу за допомогою другої виконуваної частини, елемеелементарні команди інтегруються у вихідний код нтарної функції, захищеної програми таким чином, що в ході вико 19 77186 20 нання захищеної програми кожна елементарна критерію, який має виконуватися принаймні для команда виконується за допомогою першої викооднієї вибраної характеристики виконання програнуваної частини і викликає у пристрої виконання, ми, за допомогою другої виконуваної частини, елеме- за допомогою вибору у вихідному коді захинтарної функції, щеної програми елементарних функцій, для яких - й упорядкування елементарних команд виварто контролювати щонайменше одну характебирається в ансамблі впорядкувань, що дозволяристику виконання контрольованої програми, ють виконання захищеної програми, - і за допомо- за допомогою модифікації щонайменше одгою створення: ного вибраного фрагмента коду захищеної про- першої частини об'єктного коду захищеної грами, причому вказана модифікація така, що в програми, причому перша частина об'єктного коду ході виконання захищеної програми щонайменше така, що в ході виконання захищеної програми одна вибрана характеристика виконання контроелементарні команди виконуються відповідно до люється за допомогою другої виконуваної частини вибраного впорядкування, і недотримання критерію призводить до інформу- і другої частини об'єктного коду захищеної вання системи обробки даних і/або до модифікації програми, що містить також засоби експлуатації, виконання захищеної програми, причому друга частина об'єктного коду така, що - і за допомогою створення другої частини після завантаження у пристрій, у ході виконання об'єктного коду захищеної програми, що містить захищеної програми реалізується друга виконувазасоби експлуатації, що задіюють також засоби на частина, за допомогою якої виконуються еледетектування й засоби примусу, причому друга ментарні функції, запуск яких було викликано частина об'єктного коду така, що після завантапершою виконуваною частиною, ження у пристрій, у ході виконання захищеної про- а у фазі використання: грами принаймні одна характеристика виконання - у присутності пристрою, кожного разу, коли програми контролюється і недотримання критерію цього вимагає елементарна команда, що міститься призводить до інформування системи обробки в частині першої виконуваної частини, виконують даних і/або до модифікації виконання захищеної відповідну елементарну функцію у пристрої таким програми, чином, щоб указаний фрагмент виконувався коре- а у фазі використання: ктно й, отже, захищена програма була повнофунк- у присутності пристрою: ціональною; - якщо всіх критеріїв, що відповідають усім ко- тоді як за відсутності пристрою, незважаючи нтрольованим характеристикам виконання всіх на запит одного фрагмента першої виконуваної модифікованих фрагментів захищеної програми, частини на запуск виконання у пристрої елементадотримано, припускають номінальне функціонурної функції, не забезпечується можливість кореквання зазначених фрагментів захищеної програми тної відповіді на вказаний запит, так що принаймні й, отже, номінальне функціонування захищеної вказаний фрагмент не виконується коректно, й, програми, отже, захищена програма не є повнофункціональ- а якщо принаймні одного з критеріїв, що відною. повідають характеристиці контрольованого викоВідповідно до наступної кращої форми реалінання одного фрагмента захищеної програми, не зації способу згідно з винаходом у фазі захисту дотримано, інформують систему обробки даних визначають: про зазначене недотримання і/або модифікують - щонайменше одну характеристику виконання функціонування фрагмента захищеної програми програми, яка може бути проконтрольована притаким чином, щоб функціонування захищеної пронаймні частково у пристрої, грами було змінене. - щонайменше один критерій, який має викоВідповідно до варіанта здійснення способу згінуватися щонайменше для однієї характеристики дно з винаходом: виконання програми, - у фазі захисту: - засоби детектування, що їх слід застосовува- визначають: ти у пристрої та які дозволяють виявити, що при- як характеристику виконання програми, яка наймні одна характеристика виконання програми може бути проконтрольована, - змінну для кількісне відповідає щонайменше одному відповідному ного контролю використання однієї функціональної критерію, можливості програми, - і засоби примусу, що їх слід застосовувати у - як критерій, що його слід дотримуватися, пристрої та які дозволяють проінформувати сисщонайменше одне порогове значення, пов'язане з тему обробки даних і/або модифікувати виконання кожною змінною для кількісного контролю, програми, поки не дотримується хоча б один кри- і засоби поновлення, що дозволяють поновитерій; ти принаймні одну змінну для кількісного конт- конструюють засоби експлуатації, що дозворолю; ляють пристрою задіяти засоби детектування й - конструюють засоби експлуатації, що дозвозасоби примусу; ляють пристрою застосовувати засоби понов- і модифікують захищену програму: лення; - за допомогою вибору щонайменше однієї ха- і модифікують захищену програму: рактеристики виконання контрольованої програми - за допомогою вибору як характеристики висеред характеристик виконання, які можуть бути конання контрольованої програми щонайменше проконтрольовані, однієї змінної для кількісного контролю викорис- за допомогою вибору щонайменше одного тання однієї функціональної можливості програми, 21 77186 22 - за допомогою вибору: порогового значення, роблять нездійсненною від- щонайменше однієї функціональної можлиповідну функціональну можливість і/або щонаймевості захищеної програми, використання якої можнше частину захищеної програми. на проконтролювати з використанням змінної для Відповідно до подальшого варіанту здійснення кількісного контролю, способу згідно з винаходом: - щонайменше однієї змінної для кількісного - у фазі захисту: контролю, яка служить для кількісної характерис- визначають засоби перезавантаження, що тики використання згаданої функціональної мождозволяють принаймні одне додаткове викорисливості, тання щонайменше однієї функціональної можли- щонайменше одного порогового значення, вості програми, контрольованої за допомогою пов'язаного з вибраною змінною для кількісного змінної для кількісного контролю; контролю і відповідного межі використання згада- конструюють засоби експлуатації, що дозвоної функціональної можливості, ляють також пристрою задіяти засоби перезаван- і щонайменше одного методу поновлення таження; значення вказаної змінної для кількісного контро- і модифікують захищену програму: лю залежно від використання згаданої функціона- за допомогою вибору у вихідному коді захильної можливості, щеної програми принаймні однієї змінної для кіль- і за допомогою модифікації принаймні одного кісного контролю, яка дозволяє обмежити викоривибраного фрагмента коду захищеної програми, стання однієї функціональної можливості, для якої причому вказана модифікація така, що в ході виіснує можливість дозволу щонайменше на одне конання захищеної програми змінна для кількіснододаткове використання, го контролю поновлюється за допомогою другої - і за допомогою модифікації принаймні одного виконуваної частини, залежно від використання вибраного фрагмента, причому вказана модифіказазначеної функціональної можливості, і враховуція така, що у фазі перезавантаження щонайменється щонайменше одне перевищення порогового ше одне додаткове використання щонайменше значення, однієї функціональної можливості, що відповідає - а у фазі використання, в присутності приодній вибраній змінній для кількісного контролю, строю, в разі, коли виявлено принаймні одне пеможе бути дозволено, ревищення порогового значення, що відповідає - а у фазі перезавантаження: щонайменше одній межі використання, інформу- поновлюють принаймні одну вибрану змінну ють про це систему обробки даних і/або модифідля кількісного контролю і принаймні одне відповікують функціонування фрагмента захищеної продне порогове значення так, щоб дозволити щограми, таким чином, щоб функціонування найменше одне додаткове використання функціозахищеної програми було змінене. нальної можливості. Відповідно до варіанта Відповідно до іншого варіанта здійснення споздійснення способу згідно з винаходом: собу згідно з винаходом: - у фазі захисту: - у фазі захисту: - визначають: - визначають: - як характеристику виконання програми, яка - декілька відповідних порогових значень приможе бути проконтрольована, - профіль викориснаймні для однієї змінної для кількісного контролю, тання програми, - і різноманітні засоби примусу, що відповіда- і як критерій, що його слід дотримуватися, ють кожному зі вказаних порогів; щонайменше одну ознаку виконання програми; - і модифікують захищену програму: - і модифікують захищену програму: - за допомогою вибору у вихідному коді захи- за допомогою вибору як характеристики вищеної програми щонайменше однієї змінної для конання контрольованої програми принаймні однокількісного контролю, з якою мають бути пов'язані го профілю використання програми, декілька порогових значень, що відповідають різ- за допомогою вибору принаймні однієї ознаноманітним межам використання функціональної ки виконання програми, що її має дотримуватися можливості, щонайменше один профіль використання, - за допомогою вибору принаймні двох поро- і за допомогою модифікації принаймні одного гових значень, пов'язаних з вибраною змінною для вибраного фрагмента коду захищеної програми, кількісного контролю, причому зазначена модифікація така, що в ході - і за допомогою модифікації принаймні одного виконання захищеної програми друга виконувана вибраного фрагмента коду захищеної програми, частина дотримується всіх вибраних ознак викопричому вказана модифікація така, що в ході винання, конання захищеної програми перевищення різно- а у фазі використання, в присутності приманітних порогових значень враховуються за дострою в разі, якщо виявлено, що не дотримується помогою другої виконуваної частини хоча б одна ознака виконання, інформують про це різноманітними способами, систему обробки даних і/або модифікують функці- а у фазі використання: онування частини захищеної програми так, щоб - у присутності пристрою: функціонування захищеної програми було змінено. - в разі, коли виявлене перевищення першого Відповідно до подальшого варіанта здійснення порогового значення, дають команду захищеній способу згідно з винаходом програмі не використовувати надалі відповідну - у фазі захисту: функціональну можливість, - визначають: - а в разі, коли виявлене перевищення другого - набір інструкцій, інструкції зі складу якого 23 77186 24 можуть бути виконані у пристрої, у вказаний регістр, - набір команд інструкцій для вказаного набору - як засоби детектування - засоби, що дозвоінструкцій, причому команди інструкцій можуть ляють під час виконання інструкції для кожного бути виконані в системі обробки даних, викликаюоперанда, коли цього вимагає поле прапора, контчи у пристрої виконання інструкцій, ролювати рівність між полем генерованої іденти- як профіль використання - зчеплення інструфікації, що відповідає регістру, використовуваному кцій, згаданим операндом, і полем передбаченої іден- як ознаку виконання - бажане зчеплення для тифікації початкової адреси цього операнда, виконання інструкцій, - і як засоби примусу - засоби, що дозволяють - як засоби детектування - засоби, що дозвомодифікувати результат виконання інструкцій, якляють виявити, що зчеплення інструкцій не відпощо принаймні одна з контрольованих рівностей відає бажаному, хибна. - як засоби примусу - засоби, що дозволяють Відповідно до ще однієї кращої форми реаліпроінформувати систему обробки даних і/або мозації способу згідно з винаходом: дифікувати функціонування фрагмента захищеної - у фазі захисту: програми, якщо зчеплення інструкцій не відповідає - визначають: бажаному; - як команду запуску - елементарну команду - конструюють засоби експлуатації, що дозвоабо команду інструкції, ляють пристрою виконувати інструкції з набору - як залежну функцію - елементарну функцію інструкцій, причому виконання вказаних інструкцій або інструкцію, викликається виконанням команд інструкцій у сис- як настановний параметр, - щонайменше темі обробки даних; один аргумент для команди запуску, який відпові- і модифікують захищену програму: і дає, щонайменше частково, інформації, переданій - за допомогою модифікації щонайменше одсистемою обробки даних на пристрій, щоб виклиного вибраного фрагмента коду захищеної прокати запуск відповідної залежної функції грами: - метод перейменування настановних параме- за допомогою перетворення елементарних трів, що дозволяє перейменувати настановні пафункцій у інструкції, раметри, щоб одержати команди запуску з перей- за допомогою завдання зчеплення, що його менованими настановними параметрами, мають дотримуватися щонайменше деякі з інстру- і засоби відновлення, призначені для застокцій під час їхнього виконання у пристрої, сування у пристрої у фазі використання і які до- і за допомогою перетворення елементарних зволяють знайти залежну функцію, що її необхідно команд на команди інструкцій, що відповідають виконати, виходячи з перейменованого настановвикористовуваним інструкціям, ного параметра; - а у фазі використання, в присутності при- конструюють засоби експлуатації, що дозвострою, в разі, якщо виявлено, що зчеплення виколяють пристрою задіяти засоби відновлення; нуваних у пристрої інструкцій не відповідає бажа- і модифікують захищену програму: ному, інформують про це систему обробки даних - за допомогою вибору у вихідному коді захиі/або модифікують функціонування фрагмента щеної програми команди запуску, захищеної програми так, щоб функціонування за- за допомогою модифікації принаймні одного хищеної програми було змінено. вибраного фрагменту коду захищеної програми Відповідно до іншої кращої форми реалізації шляхом перейменування настановних параметрів способу згідно з винаходом: вибраних команд запуску, щоб приховати ідентич- у фазі захисту: ність відповідних залежних функцій, - визначають: - і за допомогою створення: - як набір інструкцій - набір інструкцій, у якому - першої частини об'єктного коду захищеної принаймні деякі інструкції працюють на регістрах і програми, причому перша частина об'єктного коду використовують щонайменше один операнд для така, що в ході виконання захищеної програми видачі результату, виконуються команди запуску з перейменованими - щонайменше для частини інструкцій, що настановними параметрами, працюють на регістрах: - і другої частини об'єктного коду захищеної - частину, що задає функціональну можливість програми, що містить засоби експлуатації, які виінструкції, користовують також засоби відновлення, причому - і частину, що задає бажане зчеплення для друга частина об'єктного коду така, що після зававиконання інструкцій і містить бітові поля, які віднтаження у пристрій, у ході виконання захищеної повідають: програми ідентичність залежних функцій, виконан- полю ідентифікації інструкції, ня яких викликано першою виконуваною частиною, - і для кожного операнда інструкції: відновляються за допомогою другої виконуваної - полю прапора, частини, а залежні функції виконуються за допо- і полю ідентифікації, передбаченої для опемогою другої виконуваної частини, ранда, - а у фазі використання: - для кожного регістра, що належить до засо- у присутності пристрою, кожного разу, коли бів експлуатації і використовуваного набору інцього вимагає команда запуску з перейменованиструкцій, - поле передбаченої ідентифікації, в якоми настановними параметрами, що міститься у му автоматично запам'ятовується ідентифікація фрагменті першої виконуваної частини, відновлюостанньої інструкції, що повернула свій результат ють у пристрої ідентичність відповідної залежної 25 77186 26 функції і виконують її так, щоб указаний фрагмент нуваної частини, у пристрої, виконувався коректно й, отже, захищена програма - і за допомогою створення: була повнофункціональною; - першої частини об'єктного коду захищеної - тоді як за відсутності пристрою, незважаючи програми, причому перша частина об'єктного коду на запит фрагмента першої виконуваної частини така, що в ході виконання захищеної програми на запуск виконання у пристрої залежної функції, функціональна можливість принаймні одного вибне забезпечується можливість коректної відповіді раного умовного переходу виконується у пристрої, на вказаний запит, так що принаймні вказаний - і другої частини об'єктного коду захищеної фрагмент не виконується коректно, й, отже, захипрограми, причому друга частина об'єктного коду щена програма не є повнофункціональною. така, що після завантаження у пристрій, у ході виВідповідно до одного з варіантів реалізації конання захищеної програми реалізується друга способу згідно з винаходом: виконувана частина, за допомогою якої виконуєть- у фазі захисту: ся функціональна можливість принаймні одного - визначають принаймні для однієї залежної вибраного умовного переходу, функції сімейство алгоритмічно еквівалентних за- а у фазі використання: лежних функцій, які викликаються командами за- у присутності пристрою, кожного разу, коли пуску, що їхні перейменовані настановні параметцього вимагає фрагмент першої виконуваної часри є різноманітними; тини, виконують у пристрої функції принаймні од- і модифікують захищену програму: ного вибраного умовного переходу таким чином, - за допомогою вибору у вихідному коді захищоб указаний фрагмент виконувався коректно й, щеної програми щонайменше однієї команди запуотже, захищена програма була повнофункціонаску з перейменованими настановними параметльною; рами, - а за відсутності пристрою, незважаючи на - і за допомогою модифікації принаймні одного запит фрагмента першої виконуваної частини на вибраного фрагмента коду захищеної програми виконання функцій умовного переходу у пристрої, шляхом заміни щонайменше перейменованих нане забезпечується можливість коректної відповіді становних параметрів команди запуску з вибраним на вказаний запит, так що принаймні вказаний набором настановних параметрів на інші перейфрагмент не виконується коректно й, отже, захименовані настановні параметри, що викликає защена програма не є повнофункціональною. пуск залежної функції, з того ж сімейства. Відповідно до наступного варіанту здійснення Відповідно до варіанта реалізації спосіб згідно способу згідно з винаходом у фазі захисту модифіз винаходом включає: кують захищену програму: - у фазі захисту визначення, щонайменше для - за допомогою вибору у вихідному коді захиоднієї залежної функції, сімейства алгоритмічно щеної програми принаймні однієї серії вибраних еквівалентних залежних функцій умовних переходів, - шляхом зчеплення поля шумів з інформаці- за допомогою модифікації принаймні одного єю, що визначає ту функціональну частину залежвибраного фрагмента коду захищеної програми, ної функції, яка виконується у пристрої, причому згадана модифікація така, що в ході ви- або шляхом використання поля ідентифікації конання захищеної програми глобальна функціоінструкції й поля ідентифікації, передбаченої для нальна можливість щонайменше однієї вибраної операнда. серії умовних переходів виконується у пристрої за Відповідно до варіанта реалізації способу згіддопомогою другої виконуваної частини, но з винаходом: - і за допомогою створення: - у фазі захисту визначають: - першої частини об'єктного коду захищеної - як метод перейменування настановних папрограми, причому перша частина об'єктного коду раметрів - метод кодування для кодування настатака, що в ході виконання захищеної програми новних параметрів, функціональна можливість принаймні однієї виб- і як засоби відновлення - засоби, що застосораної серії умовних переходів виконується у привують метод декодування для декодування пестрої, рейменованих настановних параметрів і віднов- і другої частини об'єктного коду захищеної лення ідентичності залежних функцій, що їх слід програми, причому друга частина об'єктного коду виконати у пристрої. така, що після завантаження у пристрій, у ході виВідповідно до іншої кращої форми реалізації конання захищеної програми реалізується друга способу згідно з винаходом: виконувана частина, за допомогою якої виконуєть- у фазі захисту: ся глобальна функціональна можливість принайм- модифікують захищену програму: ні однієї вибраної серії умовних переходів. - за допомогою вибору у вихідному коді захиСпосіб згідно з винаходом дозволяє також защеної програми принаймні одного умовного перехистити використання програми шляхом застосуходу, виконуваного щонайменше в одному вибравання пристрою зберігання, особливістю якого є ному алгоритмі, здатність містити частину виконуваної програми. - за допомогою модифікації принаймні одного Звідси випливає, що будь-яка похідна версія провибраного фрагмента коду захищеної програми, грами, яка спробує функціонувати без пристрою причому вказана модифікація така, що в ході визберігання, зажадає відтворення частини програконання захищеної програми функціональна можми, що міститься у пристрої зберігання в ході виливість щонайменше одного вибраного умовного конання. Як наслідок ця похідна версія програми переходу виконується, за допомогою другої виконе буде повнофункціональною. 27 77186 28 Інші різноманітні властивості винаходу стануть бки даних, ясні з нижченаведеного опису, що надається з - повертати дані системі 3 обробки даних, посиланням на додані креслення, на яких показані, - зберігати дані в таємниці, щонайменше частяк необмежувальні приклади, можливі варіанти і ково, і зберігати щонайменше їхню частину навіть форми реалізації та використання винаходу. у випадку, коли пристрій відключений від живленФіг.10 і 11 являють собою функціональні блокня, схеми, що ілюструють різноманітні представлення - і здійснювати алгоритмічну обробку даних, програми, відповідно не захищеної і захищеної причому ця обробка частково або цілком є секретспособом згідно з винаходом. ною. На Фіг.20-22 наведені як приклади різноманітні - Пристроєм 6 є пристрій зберігання або приформи виконання пристрою для здійснення спосострій обробки і зберігання, що реалізує спосіб згідбу за винаходом. но з винаходом. Фіг.30 і 31 являють собою функціональні блок- Незадіяним пристроєм 60 є пристрій, який не схеми, що пояснюють загальний принцип способу використовує спосіб згідно з винаходом, але який згідно з винаходом. може одержати інформацію, що перетворює його Фіг.40-43 являють собою схеми, що ілюструна пристрій 6. ють спосіб захисту згідно з винаходом, що реалі- Незадіяний пристрій 60 може стати пристрозує принцип захисту за допомогою змінної. єм 6 під час виконання програми, захищеної споФіг.50-54 являють собою схеми, що ілюструсобом згідно з винаходом, і після виконання знову ють спосіб захисту згідно з винаходом, що реалістати незадіяним пристроєм 60. зує принцип захисту за допомогою розділення в - Передперсоналізований пристрій 66 являє часі. собою незадіяний пристрій 60, що одержав частиФіг.60-64 являють собою схеми, що ілюструну інформації, яка дозволяє йому, після одержанють спосіб захисту згідно з винаходом, що реаліня додаткової інформації, бути перетвореним на зує принцип захисту за допомогою елементарних пристрій 6. функцій. - Завантаження даних у незадіяний пристрій Фіг.70-74 являють собою схеми, що ілюстру60 або в передперсоналізований пристрій 66 відють спосіб захисту згідно з винаходом, що реаліповідає передачі інформації в незадіяний пристрій зує принцип захисту за допомогою детектування й 60 або в передперсоналізований пристрій 66 і збіпримусу. ганню зазначених переданих даних. Передача Фіг.80-85 являють собою схеми, що ілюструінформації може включати зміну її формату. ють спосіб захисту згідно з винаходом, що реалі- Змінна, величина або функція, що містяться зує принцип захисту за допомогою перейменув системі З обробки даних, позначаються надалі вання. заголовними буквами, а змінна, величина або фуФіг.90-92 являють собою схеми, що ілюстрункція, що містяться в пристрої 6, позначаються ють спосіб захисту згідно з винаходом, що реалінадалі малими літерами. зує принцип захисту за допомогою умовного пере- "Захищеною програмою" є програма, що була ходу. захищена щонайменше на основі одного принципу Фіг.100 являє собою схему, що ілюструє різзахисту, реалізованого у способі згідно з винахономанітні фази здійснення винаходу. дом. На Фіг.110 наведений приклад реалізації сис- "Уразливою програмою" є програма, що не теми, що дозволяє реалізувати стадію побудови була захищена жодним з принципів захисту, реаліфази захисту згідно з винаходом. зованих у способі згідно з винаходом. На Фіг.120 наведений приклад реалізації при- У випадку, коли розходження між уразливою і строю передперсоналізації, використовуваного у захищеною програмою несуттєве, застосовується способі захисту згідно з винаходом. термін "програма". На Фіг.130 наведений приклад реалізації сис- Програма може бути подана в різноманітній теми, що дозволяє здійснити стадію виготовлення формі відповідно до моменту її життєвого циклу, засобів для фази захисту згідно з винаходом. тобто як: На Фіг.140 наведений приклад реалізації сис- вихідний код, теми, що дозволяє застосувати спосіб захисту - об'єктний код, згідно з винаходом. - дистрибутив, На Фіг.150 наведений приклад реалізації при- динамічне представлення. строю персоналізації, використовуваного у способі - Представлення програми у вигляді вихідного захисту згідно з винаходом. коду розуміється як представлення, що дає після Надалі в описі використовуються такі визнаперетворення представлення у вигляді об'єктного чення: коду. Представлення у вигляді вихідного коду мо- Системою 3 обробки даних є система, здатна же подаватися на різноманітних рівнях, від абствиконувати програму. рактного концептуального рівня до рівня, безпосе- Пристроєм зберігання є пристрій, здатний редньо виконуваного системою обробки даних або одержувати дані, передані системою 3 обробки пристроєм обробки і зберігання. даних, розміщувати дані й повертати їх згідно із - Об'єктне представлення програми (предстазапитом системи 3 обробки даних. влення на рівні об'єктного коду) відповідає рівню - Пристроєм обробки і зберігання є пристрій, представлення, на якому програма, після переносу здатний: в дистрибутив і наступного завантаження в систе- одержувати дані, передані системою 3 оброму обробки даних або пристрій обробки і зберіган 29 77186 30 ня, може бути виконана. Це може бути, наприклад, ваного пристрою 66, у який була завантажена часдвійковий код, інтерпретований код тощо. тина другої частини 2pou об'єктного коду і для яко- Дистрибутивом є фізичний або віртуальний го користувач має завершити персоналізацію шляносій, що містить об'єктне представлення, причохом завантаження додаткової інформації, щоб му цей дистрибутив має бути наданий у розпоряодержати пристрій 6, причому ця додаткова інфодження користувача, щоб дозволити йому викорирмація може надходити, наприклад, шляхом завастовувати програму. нтаження або передачі по мережі, - Динамічне представлення відповідає викоУ або щонайменше одного пристрою 6, у який нанню програми з дистрибутива. була завантажена друга частина 2pou об'єктного - Фрагмент програми відповідає певній її часкоду; тині й може, наприклад, відповідати одній або де- або у вигляді динамічного представлення кільком інструкціям (послідовним або ні) і/або од2ре, що відповідає виконанню захищеної програми ному або декільком функціональним блокам 2р. Це динамічне представлення 2ре містить пер(послідовним або ні), і/або одній або декільком шу виконувану частину 2pes, яка виконується в функціям, і/або одній або декільком підпрограмам, системі 3 обробки даних, і другу виконувану часі/або одному або декільком модулям. Фрагмент тину 2peu, яка виконується у пристрої 6. програми може відповідати і всій програмі цілком. У випадку, коли розходження між різноманітНа Фіг.10 і 11 наведені різноманітні представними представленнями захищеної програми 2р лення відповідно вразливої програми 2v у загальнесуттєве, використовуються вирази "перша часному вигляді і програми 2р, захищеної згідно з витина захищеної програми" і "друга частина захинаходом. щеної програми". На Фіг.10 наведені різноманітні представлення Реалізація способу згідно з винаходом відповразливої програми 2v, що з'являються в ході її відно до динамічного представлення, проілюстрожиттєвого циклу. Вразлива програма 2ν може з'явваного на Фіг.11, використовує пристрій 1р захислятися в одному з різноманітних виглядів, тобту, що містить систему 3 обробки даних, зв'язану то як: лінією 5 зв'язку з пристроєм 6. Система 3 обробки - вихідний код 2vs; даних може бути будь-якого типу і містить у зви- об'єктний код 2vo; чайному варіанті принаймні один процесор 4. Сис- дистрибутив 2vd, який може надаватися звитема 3 обробки даних може бути комп'ютером або чайно на фізичному носії, наприклад, на компактбути частиною, наприклад, різноманітних машин, диску, або у вигляді файлів, переданих по мережі пристроїв, стаціонарних або рухливих виробів, у (по стандарті GSM, по мережі Інтернет тощо); тому числі будь-яких транспортних засобів. Лінія 5 - у вигляді динамічного представлення 2ve, що зв'язку може бути здійснена будь-яким можливим відповідає виконанню вразливої програми 2v у способом, наприклад, по лінії послідовної передасистемі 3 обробки даних будь-яких відомих типів, чі, по шині USB, по радіо, по оптичному каналу, по які в класичному випадку містять принаймні один мережі або через пряме електричне з'єднання зі процесор 4. схемою системи 3 обробки даних тощо. Слід заФіг.11 ілюструє різноманітні представлення значити, що пристрій 6 може фізично знаходитися захищеної програми 2р, що з'являються в ході її всередині тієї ж інтегральної схеми, що й процесор життєвого циклу. Захищена програма 2р може та4 системи 3 обробки даних. У цьому випадку прикож з'являтися у вигляді: стрій 6 може розглядатися як співпроцесор стосо- вихідного коду (представлення) 2ps, що місвно до процесора 4 системи обробки даних, а лінія тить першу частину вихідного коду, призначену 5 зв'язку є внутрішньою лінією зв'язку в інтегральдля системи 3 обробки даних, і, можливо, другу ній схемі. частину вихідного коду, призначену для пристрою На Фіг.20-22 наведені як приклади, що не ви6, причому частина цих частин вихідного коду мочерпують можливі варіанти, різноманітні форми же звичайно міститися в загальних файлах; реалізації пристрою 1р захисту, що дозволяє реа- об'єктного представлення 2ро, що містить лізувати спосіб захисту згідно з винаходом. першу частину 2pos об'єктного коду, призначену У прикладі реалізації за Фіг.20 пристрій 1р задля системи 3 обробки даних, і, можливо, другу хисту містить, як систему 3 обробки даних, комп'ючастину 2pou об'єктного коду, призначену для притер і, як пристрій 6, карту 7 з мікрочипом та її інтестрою 6; рфейс 8, звичайно називаний пристроєм читання - дистрибутива 2pd, що містить: карт. Комп'ютер 3 сполучений з пристроєм 6 за -першу частину 2pds дистрибутива, що містить допомогою лінії 5 зв'язку. В ході виконання захипершу частину 2pos об'єктного коду, причому ця щеної програми 2р перша виконувана частина перша частина 2pds дистрибутива призначена для 2pes, що виконується в системі 3 обробки даних, і системи 3 обробки даних і може бути представледруга виконувана частина 2peu, що виконується в на звичайно у формі дистрибутива на фізичному карті 7 з мікрочипом і у її інтерфейсі 8, мають бути носії, наприклад на компакт-диску, або у вигляді функціональними, щоб захищена програма 2р буфайлів, переданих по мережі (по стандарті GSM, ла повнофункціональною. по мережі Інтернет тощо), У прикладі реалізації за Фіг.21 пристрій 1р за- і другу частину 2pdu дистрибутива, поданого хисту міститься у виробі 9 загального виду, що у вигляді: містить різноманітні органи 10, адаптовані до фун- щонайменше одного незадіяного пристрою кції або до функцій, реалізованих таким виробом 60, 9. Пристрій 1р захисту містить, з одного боку, сис- або щонайменше одного передперсоналізотему 3 обробки даних, умонтовану у виріб 9, і, з 31 77186 32 іншого боку, пристрій 6, зв'язаний з виробом 9. дійсності, пристрій 6 у тому випадку, коли містить Щоб виріб 9 був повнофункціональним, захищена засоби 14 захисту, не пристосований до виконання програма 2р має бути повністю функціональною. другої виконуваної частини 2peu захищеної проТак, у ході виконання захищеної програми 2р і пеграми 2р, також розглядається як відсутній щорарша виконувана частина 2pes, яка виконується в зу, коли виконання захищеної програми 2р не є системі 3 обробки даних, і друга виконувана часкоректним. Іншими словами: тина 2peu, яка виконується у пристрої 6, мають - пристрій 6, що фізично присутній і містить забути працездатні. Ця захищена програма 2р дособи 14 захисту, пристосовані до виконання другої зволяє, отже, непрямим чином захистити від неаввиконуваної частини 2peu захищеної програми 2р, торизованого використання виріб 9 або одну з його завжди розглядається як присутній; функціональних можливостей. Виріб 9 може бути, - пристрій 6, фізично присутній, але що містить наприклад, установкою, системою, машиною, ігнепридатні засоби 14 захисту, тобто що не дозворашкою, електропобутовим приладом, телефоляють здійснити коректну реалізацію другої виконом. нуваної частини 2peu захищеної програми 2р, розУ прикладі реалізації за Фіг.22 пристрій 1р заглядається як присутній, якщо функціонує хисту містить множину комп'ютерів, а також частикоректно, і як відсутній, якщо не функціонує корекну комунікаційної мережі. Система 3 обробки датно; них являє собою перший комп'ютер, зв'язаний за пристрій 6, фізично відсутній, завжди розглядопомогою лінії 5 зв'язку мережного типу з придається як відсутній. строєм 6, який являє собою другий комп'ютер. Для У випадку якщо пристрій 6 складається з карти реалізації винаходу другий комп'ютер 6 викорис7 з мікрочипом та її інтерфейсом 8, засоби 13 петовується як сервер ліцензій для захищеної проредачі розділяються на дві частини, з яких одна грами 2р. У ході виконання захищеної програми 2р знаходиться на інтерфейсі 8, а інша - на карті 7 з і перша виконувана частина 2pes, яка виконується мікрочипом. У цьому прикладі реалізації відсутв першому комп'ютері 3, і друга виконувана частиність карти 7 з мікрочипом розглядається як еквіна 2peu, яка виконується в другому комп'ютері 6, валент відсутності пристрою 6. Іншими словами, мають бути функціональними, щоб захищена проза відсутності карти 7 з мікрочипом і/або її інтерграма 2р була повнофункціональною. фейсу 8 засоби 14 захисту недоступні й, отже, не Фіг.30 дозволяє пояснити точніше спосіб захидозволяють здійснити виконання другої виконувасту згідно з винаходом. Слід зазначити, що вразної частини 2peu захищеної програми, так що залива програма 2v розглядається як виконувана хищена програма 2р не є повнофункціональною. цілком у системі 3 обробки даних. Навпаки, в разі Згідно з винаходом, спосіб захисту спрямовареалізації захищеної програми 2р система 3 оброний на реалізацію так званого принципу захисту за бки даних містить засоби 12 передачі, зв'язані лідопомогою змінної, опис якого подано з посиланнією 5 зв'язку із засобами 13 передачі, що складаням на Фіг.40-43. ють частину пристрою 6, що дозволяє сполучатися Для реалізації принципу захисту за допомогою між собою першій виконуваній частині 2pes і другій змінної у вихідному коді 2vs уразливої програми виконуваній частині 2peu захищеної програми 2р. вибирається принаймні одна змінна, яка в ході Слід мати на увазі, що засоби 12, 13 передачі виконання вразливої програми 2v частково визнареалізовані програмно або матеріально і здатні чає її стан. Під станом програми розуміється сукузабезпечити й, можливо, оптимізувати передачу пність інформації, на даний момент необхідної для даних між системою 3 обробки даних і пристроєм повного виконання цієї програми. Таким чином, 6. Ці засоби 12, 13 передачі пристосовані для того, відсутність зазначеної вибраної змінної перешкощоб дозволити скористатися захищеною програджає повному виконанню цієї програми. мою 2р, яка є краще незалежною від типу застосоВибирається також принаймні один фрагмент вуваної лінії 5 зв'язку. Ці засоби 12, 13 передачі не вихідного коду 2vs уразливої програми, що містить стосуються предмета винаходу й не описуються щонайменше одну вибрану змінну. детальніше, оскільки вони добре відомі фахівцям. Щонайменше один вибраний фрагмент коду Перша частина захищеної програми 2р містить 2vs уразливої програми в цьому випадку модифікоманди. В ході виконання захищеної програми 2р кується, щоб одержати вихідний код 2ps захищевиконання цих команд першою виконуваною часної програми. Ця модифікація така, що в ході витиною 2pes дозволяє здійснити зв'язок між перконання захищеної програми 2р принаймні один шою виконуваною частиною 2pes і другою виконуфрагмент першої виконуваної частини 2pes, який ваною частиною 2peu. Надалі в описі ці команди виконується в системі 3 обробки даних, враховує, подані у вигляді IN, OUT або TRIG. що принаймні одна вибрана змінна або щонаймеЯк показано на Фіг.31, щоб дозволити реалізанше одна копія вибраної змінної знаходиться у цію другої виконуваної частини 2peu захищеної пристрої 6. Для реалізації принципу захисту за програми 2р, пристрій 6 містить засоби 14 захисту. допомогою змінної пристрій 6 містить щонайменВ разі, якщо пристрій 6 є запам'ятовуючим прише засоби 15 запам'ятовування. строєм, засоби 14 захисту містять засоби 15 запаНа Фіг.40 наведений приклад представлення м'ятовування. В разі, якщо пристрій 6 є пристроєм уразливої програми 2v. У цьому прикладі в ході обробки і зберігання, засоби 14 захисту містять виконання уразливої програми 2v у системі 3 обзасоби 15 запам'ятовування і засоби 16 обробки. робки даних мають місце: Для спрощення подальшого опису будемо - у момент t1 присвоєння значення X змінній вважати, що в ході виконання захищеної програми V1, що подано як V1 X; 2р пристрій 6 є наявним або пристрій 6 відсутній. У - у момент t2 присвоєння значення змінної V1 33 77186 34 виконуваною частиною 2pes захищеної програми змінній Y, що подано як Y V1; 2р таким чином, щоб ця частина виконувалася - у момент t3 присвоєння значення змінної V1 коректно й, отже, захищена програма 2р була повзмінній Z, що подано як Z V1. нофункціональною. На Фіг.41 наведений приклад першої форми На Фіг.43 наведений приклад спроби виконанреалізації винаходу, для якої змінна знаходиться у ня захищеної програми 2р за відсутності пристрою пристрої 6. У цьому прикладі в ході виконання у 6. У цьому прикладі в ході виконання у системі З системі 3 обробки даних першої виконуваної часобробки даних першої виконуваної частини 2pes тини 2pes захищеної програми 2р у присутності захищеної програми 2р: пристрою 6 здійснюються: - у момент t1 виконання команди передачі - у момент t1 виконання команди передачі, що OUT(v1, X) не може викликати передачу даного X викликає передачу даного X від системи 3 обробки змінній v1, з огляду на відсутність пристрою 6; даних до змінної v1, розташованої в засобах 15 • у момент t2 виконання команди передачі запам'ятовування пристрою 6, причому ця команIN(v1) не може викликати передачу значення змінда передачі подана як OUT(v1, X) і відповідає по ної v1 системі 3 обробки даних, з огляду на відсутзавершенні присвоєнню значення X змінній v1; ність пристрою 6; - у момент t2 виконання команди передачі, що • у момент t3 виконання команди передачі викликає передачу значення змінної v1, що знахоΓΝ(v1) не може викликати передачу значення зміндиться у пристрої 6, системі 3 обробки даних, щоб ної v1 системі 3 обробки даних, з огляду на відсутприсвоїти її значення змінній Y, причому ця коність пристрою 6. манда передачі подана, як IN(v1,) і відповідає по Таким чином, представляється, що за відсутзавершенні присвоєнню значення v1 змінній Y; ності пристрою 6 принаймні один запит одного - у момент t3 виконання команди передачі, що фрагмента першої виконуваної частини 2pes на викликає передачу значення змінної v1, що знаховикористання змінної або копії змінної, що знаходиться у пристрої 6, системі 3 обробки даних, щоб диться у пристрої 6, не може бути коректно викоприсвоїти її значення змінній Z, причому ця команнаний, так що принаймні ця частина не виконуєтьда передачі подана як IN(v1) і відповідає по завеся коректно, й, отже, захищена програма 2р не є ршенні присвоєнню значення v1 змінній Z. повнофункціональною. Слід зазначити, що в ході виконання захищеСлід зазначити, що процеси передачі даних ної програми 2р принаймні одна змінна знаходитьміж системою 3 обробки даних і пристроєм 6 викося у пристрої 6. Так, коли цього вимагає частина ристовують тільки прості присвоєння (що проілюспершої виконуваної частини 2pes захищеної протровано на вищенаведених прикладах). Проте грами 2р, у присутності пристрою 6, значення цієї спеціаліст зможе скомбінувати їх з іншими операзмінної, що знаходиться у пристрої 6, передається ціями, щоб одержати складні операції, наприклад системі 3 обробки даних, щоб бути використаною OUT(v1, 2*Х+3) або Ζ (5*ν1+v2). першою виконуваною частиною 2pes захищеної Відповідно до іншої кращої характеристики програми 2р таким чином, щоб ця частина виконувинаходу спосіб захисту орієнтований на реалізавалася коректно, й, отже, захищена програма 2р цію принципу захисту, названого "розділення в була повнофункціональною. часі", опис якого виконано з посиланням на На Фіг.42 наведений приклад другої форми Фіг.50-54. реалізації винаходу, для якої копія змінної знахоДля реалізації принципу захисту шляхом роздиться у пристрої 6. У цьому прикладі в ході викоділення в часі у вихідному коді 2vs уразливої пронання в системі 3 обробки даних першої виконуваграми вибирається принаймні один алгоритм, що ної частини 2pes захищеної програми 2р у використовує щонайменше один операнд і видає присутності пристрою 6 здійснюються: щонайменше один результат. Вибирається також - у момент t1 присвоєння значення X змінній щонайменше один фрагмент вихідного коду 2vs V1, що знаходиться в системі З обробки даних, а уразливої програми, який містить щонайменше також виконання команди передачі, що викликає один вибраний алгоритм. передачу даного X від системи 3 обробки даних до Принаймні один вибраний фрагмент коду 2vs змінної v1, розташованої у засобах 15 запам'ятовууразливої програми в цьому випадку модифікуєтьвання пристрою 6, причому ця команда передачі ся, щоб одержати вихідний код 2ps захищеної проподана як OUT(v1, X); грами. Ця модифікація така, що: - у момент t2 - присвоєння значення змінної V1, - в ході виконання захищеної програми 2р щозмінній Y; найменше один фрагмент першої виконуваної ча- у момент t3 - виконання команди передачі, стини 2pes, який виконується в системі 3 обробки що викликає передачу значення змінної V1 що даних, враховує, що функціональна можливість знаходиться у пристрої 6, системі 3 обробки дапринаймні одного вибраного алгоритму виконуєтьних, щоб присвоїти її значення змінній Z, причому ся у пристрої 6; ця команда передачі подана як IN(v1). - в ході виконання захищеної програми 2р друСлід зазначити, що в ході виконання захищега виконувана частина 2peu, яка виконується у ної програми 2р щонайменше одна копія однієї пристрої 6, виконує щонайменше функціональну змінної знаходиться у пристрої 6. можливість щонайменше одного вибраного алгоТак, коли цього вимагає частина першої викоритму; нуваної частини 2pes захищеної програми 2р, у - в ході виконання захищеної програми 2р коприсутності пристрою 6, значення цієї копії змінної, жний вибраний алгоритм розкладається на декільщо знаходиться у пристрої 6, передається системі ка різноманітних етапів, як-от: 3 обробки даних, щоб бути використаною першою 35 77186 36 - етап 1: надання щонайменше одного операкувань, що дозволяють виконати захищену пронду для пристрою 6, граму 2р. У цьому відношенні краще вибрати таке - етап 2: виконання у пристрої 6 функціональвпорядкування команд етапів, що розділяє в часі ної можливості вибраного алгоритму з викорисвиконання етапів, уставляючи між ними ділянки танням цього або цих операндів, коду, виконуваного в системі 3 обробки даних, і що - етап 3: можливе надання пристроєм 6 системістить (або ні) команди етапів, що служать для мі 3 обробки даних результату виконання вибрановизначення інших даних. Фіг.52 і 53 ілюструють го алгоритму; принцип такої реалізації. - команди етапів визначаються таким чином, На Фіг.52 наведений приклад виконання вразщоб викликати виконання етапів, причому ливої програми 2v. У цьому прикладі в ході вико- впорядкування команд етапів вибрано серед нання вразливої програми 2v у системі 3 обробки ансамблю впорядкувань, що дозволяють виконанданих, провадиться виконання двох алгоритмів, ня захищеної програми 2р. що приводять до визначення Ζ і Z', таких, що Перша виконувана частина 2pes захищеної Ζ F(X, Y) і Ζ' F'(X', Y'). програми 2р, яка виконується в системі 3 обробки На Фіг.53 наведений приклад реалізації спосоданих, виконує команди етапів, що викликає у прибу згідно з винаходом, у якому обидва вибраних на строї 6 виконання, за допомогою другої виконуваФіг.52 алгоритми винесені в пристрій 6. Відповідно ної частини 2peu, кожного з наведених етапів. Для до цього приклада в ході виконання в системі 3 реалізації принципу захисту шляхом розділення в обробки даних першої виконуваної частини 2pes часі пристрій 6 містить засоби 15 запам'ятовуванзахищеної програми 2р у присутності пристрою 6 ня і засоби 16 обробки. має місце, як пояснено вище, виконання команд На Фіг.50 наведений приклад виконання вразСЕ1, СЕ2, СЕ3 етапів, що відповідають визначенню ливої програми 2v. У цьому прикладі в ході викоZ, і команд СЕ1', СЕ2' СЕ3' етапів, що відповідають нання вразливої програми 2v у системі 3 обробки визначенню Z'. Як показано на прикладі, команди даних у даний момент часу провадиться розрахуетапів з СЕ1 до СЕ3 не виконуються послідовно, нок Ζ F(X, Y), що відповідає присвоєнню змінній оскільки з ними чергуються команди етапів з СЕ1' Ζ результату виконання алгоритму, поданого фундо СЕ3', а також інші ділянки коду. В цьому приккцією F і що використовує операнди X і Υ. ладі, таким чином, реалізоване таке впорядкуванНа Фіг.51 наведений приклад реалізації винаня: СЕЬ вставлений фрагмент коду, СЕ2, вставлеходу, в якому обробку вибраного алгоритму ний фрагмент коду, СЕ1', вставлений фрагмент (Фіг.50) перенесено у пристрій 6. У цьому прикладі, коду, СЕ2', вставлений фрагмент коду, СЕ3', встав ході виконання в системі 3 обробки даних першої влений фрагмент коду, СЕ3. виконуваної частини 2pes захищеної програми 2р Слід зазначити, що в ході виконання захищев присутності пристрою 6, мають місце: ної програми 2р у присутності пристрою 6 щоразу, - у момент t1 - етап 1, як-от виконання команди коли цього вимагає команда етапу, що міститься в СЕ1 етапу, яке викликає передачу даних X і Υ з частині першої виконуваної частини 2pes захищесистеми 3 обробки даних у області пам'яті відповіної програми 2р, відповідний етап виконується в дно x і у, розташовані в засобах 15 запам'ятовупристрої 6. Таким чином, у присутності пристрою 6 вання пристрою 6, причому ця команда СЕ1 етапу ця частина виконується коректно й, отже, захищеподана як OUT(x, X), OUT(y, Y); на програма 2р є повнофункціональною. - у момент t2 - етап 2, як-от виконання команди На Фіг.54 наведений приклад спроби виконанСЕ2 етапу, що викликає у пристрої 6 виконання, за ня захищеної програми 2р за відсутності пристрою допомогою другої виконуваної частини 2peu, фун6. У цьому прикладі в ході виконання в системі З кції f, причому ця функція f алгоритмічно еквівалеобробки даних першої виконуваної частини 2pes нтна функції F. Ця команда СЕ2 етапу подана як захищеної програми 2р: TRIG(f). Точніше кажучи, виконання команди СЕ2 - у момент t1 - виконання команди етапу етапу приводить до виконання функції f, яка викоOUT(x, X), OUT(y, Y) не може викликати передачу ристовує вміст областей пам'яті x і у і повертає даних X і Υ в області пам'яті відповідно x і у, з свій результат у область пам'яті z пристрою 6; огляду на відсутність пристрою 6; - у момент t3 - етап 3, а саме виконання ко- у момент t2 - виконання команди етапу манди СЕ3 етапу, яке викликає передачу резульTRIG(f) не може викликати виконання функції f, з тату функції f, що міститься в області пам'яті z огляду на відсутність пристрою 6; пристрою 6, системі 3 обробки даних, щоб присво- і в момент t3 - виконання команди етапу IN(z) їти її значення змінній Z. Ця команда СЕ3 етапу не може викликати передачу результату функції f, подана як IN(z). з огляду на відсутність пристрою 6. У наведеному прикладі етапи з 1 до 3 виконуТаким чином, вважається, що за відсутності ються послідовно. Слід відзначити, що можна зропристрою 6 щонайменше один запит одного фрагбити два такі вдосконалення. мента першої виконуваної частини 2pes на запуск - Перше вдосконалення стосується випадку, виконання етапу у пристрої 6 не може бути корекколи декілька алгоритмів винесені у пристрій 6 і тно виконаний, так що принаймні ця частина не щонайменше результат виконання одного алгоривиконується коректно, й, отже, захищена програма тму використовується іншим алгоритмом. У цьому 2р не є повнофункціональною. випадку деякі етапи передачі можуть бути вилуВідповідно до іншої кращої характеристики чені. винаходу спосіб захисту націлений на реалізацію - Друге вдосконалення має на меті належне принципу захисту, названого "елементарні функвпорядкування команд етапів у ансамблі впорядції", опис якого проілюстровано Фіг.60 - 64. 37 77186 38 Для реалізації принципу захисту за допомогою рша виконувана частина 2pes захищеної програми елементарних функцій визначають: 2р, яка виконується в системі 3 обробки даних, - набір елементарних функцій, елементарні виконує елементарні команди CFEn (де n пробігає функції якого можуть бути виконані за допомогою значення від 1 до Ν), що викликає у пристрої 6 другої виконуваної частини 2peu, у пристрої 6, виконання, за допомогою другої виконуваної часможливо, з наступною передачею даних між систини 2peu, кожної з вищезгаданих елементарних темою 3 обробки даних і пристроєм 6; функцій fen. - і набір елементарних команд для цього наНа Фіг.60 наведений приклад виконання вразбору елементарних функцій, причому ці елеменливої програми 2v. У цьому прикладі в ході викотарні команди можуть бути виконані в системі 3 нання вразливої програми 2v у системі 3 обробки обробки даних, викликаючи виконання у пристрої 6 даних у даний момент часу провадиться розрахувідповідних елементарних функцій. нок Ζ F(X, Y), що відповідає присвоєнню змінній Для реалізації принципу захисту за допомогою Ζ результату виконання алгоритму, поданого фунелементарних функцій мають бути реалізовані кцією F і що використовує операнди X і Υ. також засоби експлуатації, що дозволяють перетНа Фіг.61 наведений приклад реалізації винаворити незадіяний пристрій 60, що містить засоби ходу, в якому виконання вибраного алгоритму, що 15 запам'ятовування і засоби 16 обробки, на привідповідає Фіг.60, винесено у пристрій 6. У цьому стрій 6, здатний виконувати елементарні функції. прикладі в ході виконання в системі 3 обробки даПри цьому виконання цих елементарних функцій них першої виконуваної частини 2pes захищеної викликається виконанням елементарних команд у програми 2р, у присутності пристрою 6, мають системі 3 обробки даних. місце: Для реалізації принципу захисту за допомогою - у моменти t1, t2 - виконання елементарних елементарних функцій у вихідному коді 2vs уразкоманд CFE1, CFE2, що викликає у пристрої 6 виливої програми вибирається також принаймні один конання, за допомогою другої виконуваної частини алгоритм, що використовує щонайменше один 2peu, відповідних елементарних функцій fe1, fe2, операнд і видає щонайменше один результат. Виякі забезпечують передачу даних Χ, Υ з системи 3 бирається також щонайменше один фрагмент виобробки даних в області пам'яті відповідно x і у, хідного коду 2vs уразливої програми, що містить розташовані в засобах 15 запам'ятовування прищонайменше один вибраний алгоритм. строю 6, причому ці елементарні команди CFE1, Принаймні один вибраний фрагмент коду 2vs CFE2 подані відповідно як OUT(x, X), OUT(y, Y); уразливої програми в цьому випадку модифікуєть- у моменти з t3 до tN-1 - виконання елементарся таким чином, щоб одержати вихідний код 2ps них команд з CFE3 до CFEN-1, що викликає у призахищеної програми. Ця модифікація така, що: строї 6 виконання, за допомогою другої виконува- в ході виконання захищеної програми 2р ної частини 2peu, відповідних елементарних принаймні один фрагмент першої виконуваної часфункцій з fe3 до feN-1, причому ці елементарні котини 2pes, що виконується в системі 3 обробки манди з CFE3 до CFEN-1 подані відповідно як даних, враховує, що функціональна можливість TRIG(fe3)-TRIG(feN-1). Послідовність елементарних щонайменше одного вибраного алгоритму виконуфункцій з fe3 до feN-1, виконуваних у поєднанні, ється у пристрої 6; алгоритмічно еквівалентна функції F. Точніше ка- в ході виконання захищеної програми 2р дружучи, виконання цих елементарних команд привога виконувана частина 2peu, що виконується у дить до виконання у пристрої 6 елементарних фупристрої 6, реалізує щонайменше функціональну нкцій fe3-feN-1, які використовують уміст областей можливість щонайменше одного вибраного алгопам'яті х, у і повертають результат у область паритму; м'яті z пристрою 6; - кожний вибраний алгоритм розкладається - у момент tN - виконання елементарної комантаким чином, що в ході виконання захищеної проди CFEN, що викликає у пристрої 6 виконання, за грами 2р кожний вибраний алгоритм виконується допомогою другої виконуваної частини 2peu, елеза допомогою другої виконуваної частини 2peu із ментарної функції feN, що забезпечує передачу застосуванням елементарних функцій. Кожний результату виконання алгоритму, що міститься в вибраний алгоритм краще розкладається на елеобласті пам'яті z пристрою 6, системі 3 обробки ментарні функції fen (де n пробігає значення від 1 даних, щоб присвоїти цей результат змінній Ζ, до Ν), як-от: причому ця елементарна команда CFEN подана як - можливо, на одну або декілька елементарних IN(z). функцій, що дозволяють надати один або декілька У наведеному прикладі елементарні команди з операндів для пристрою 6, 1 до N виконуються послідовно. Слід зазначити, - на елементарні функції, деякі з яких викорисщо можна зробити два такі вдосконалення. товують один або декілька операндів і які у поєд- Перше вдосконалення стосується випадку, нанні здійснюють функціональну можливість вибколи декілька алгоритмів винесені у пристрій 6 і раного алгоритму, що використовує ці операнди, щонайменше результат виконання одного алгори- і, можливо, на одну або декілька елементартму використовується іншим алгоритмом. У цьому них функцій, що дозволяють за допомогою привипадку деякі елементарні команди, що служать строю 6 надати системі 3 обробки даних результат для передачі, можуть бути вилучені. виконання вибраного алгоритму; - Друге вдосконалення має на меті належне - причому впорядкування елементарних ковпорядкування елементарних команд у ансамблі манд вибирається в ансамблі впорядкувань, що впорядкувань, що дозволяють виконати захищену дозволяють виконати захищену програму 2р. Пепрограму 2р. 39 77186 40 У цьому відношенні краще вибрати таке вподетектування й примусу визначаються: рядкування елементарних команд, що розділяє в - щонайменше одна характеристика виконання часі виконання елементарних функцій, вставляючи програми, яка може бути проконтрольована, щоміж ними ділянки коду, виконуваного в системі 3 найменше частково, у пристрої 6; обробки даних, і містить (або не містить) елемен- щонайменше один критерій, що його слід дотарні команди, що служать для визначення інших тримуватися щонайменше для однієї характерисданих. Фіг.62 і 63 ілюструють принцип такої реалітики виконання програми; зації. - засоби 17 детектування, що їх необхідно заНа Фіг.62 наведений приклад виконання вразстосовувати у пристрої 6 і які дозволяють виявити, ливої програми 2v. У цьому прикладі в ході викощо принаймні одна характеристика виконання пронання вразливої програми 2v у системі 3 обробки грами не відповідає щонайменше одному відповіданих здійснюється виконання двох алгоритмів, дному критерію; що приводять до визначення Ζ і Z', таких, що - засоби 18 примусу, що їх необхідно застосовувати у пристрої 6 і які дозволяють проінформуΖ F(X, Y) і Ζ' F'(X', Y'). вати систему 3 обробки даних і/або модифікувати На Фіг.63 наведений приклад реалізації спосовиконання програми, поки не дотримано хоча б бу згідно з винаходом, у якому виконання обох одного критерію. вибраних алгоритмів, що відповідають Фіг.62, виДля реалізації принципу захисту за допомогою несено в пристрій 6. Відповідно до цього приклада детектування й примусу конструюють також засов ході виконання в системі 3 обробки даних першої би експлуатації, що дозволяють перетворити невиконуваної частини 2pes захищеної програми 2р, задіяний пристрій 60, що містить засоби 15 запау присутності пристрою 6, має місце, як було поясм'ятовування і засоби 16 обробки, на пристрій 6, нено вище, виконання елементарних команд з який щонайменше реалізує засоби 17 детектуванCFE1 до CFEN, що відповідає визначенню Z, і виня й засоби 18 примусу. конання елементарних команд з CFE1' до CFEM', На Фіг.70 показані засоби, необхідні для реаліщо відповідає визначенню Z'. Як показано на даній зації принципу захисту за допомогою детектування фігурі, елементарні команди з CFE1 до CFEN не й примусу. Пристрій 6 містить засоби 17 детектувиконуються послідовно, тобто елементарні ковання й засоби 18 примусу, що належать засобам манди з CFE1' до CFEM', а також інші ділянки коду 16 обробки. Засоби 18 примусу одержують інфорчергуються. В цьому прикладі, таким чином, реалімацію про недотримання критерію від засобів 17 зоване таке впорядкування: CFE1, вставлений детектування. фрагмент коду, СРЕ1', CFE2, вставлений фрагмент Точніше кажучи, засоби 17 детектування викокоду, CFE2', CFE3', вставлений фрагмент коду, ристовують інформацію, що виходить від засобів CFE4', CFE3, CFE4,... , CFEN, CFEM'. 13 передачі і/або від засобів 15 запам'ятовування і Слід зазначити, що в ході виконання захищезасобів 16 обробки, щоб дотримувалася одна або ної програми 2р у присутності пристрою 6 кожного декілька характеристик виконання програми. Кожразу, коли цього вимагає елементарна команда, ній характеристиці виконання програми зіставлящо міститься в частині першої виконуваної частиється щонайменше один критерій, що його слід ни 2pes захищеної програми 2р, відповідна елемедотримуватися. нтарна функція виконується у пристрої 6. Таким У випадку якщо виявлено, що принаймні одна чином, вважається, що в присутності пристрою 6 характеристика виконання програми не задовольця частина виконується коректно й, отже, захищеняє щонайменше одному критерію, засоби 17 дена програма 2р є повнофункціональною. тектування інформують про це засоби 18 примусу. На Фіг.64 наведений приклад спроби виконанЦі засоби 18 примусу адаптовані для зміни відпоня захищеної програми 2р за відсутності пристрою відним чином стану пристрою 6. 6. У цьому прикладі, в ході виконання в системі З Для реалізації принципу захисту шляхом детеобробки даних першої виконуваної частини 2pes ктування й примусу мають бути вибрані також: захищеної програми 2р, виконання елементарної - щонайменше одна характеристика виконання команди в жодний момент не може викликати законтрольованої програми, серед характеристик пуск відповідної елементарної функції через відсувиконання, які можуть бути проконтрольовані; тність пристрою 6. Величина, що її необхідно прищонайменше один критерій, що його слід досвоїти змінній Z, не може, отже, бути визначена тримуватися щонайменше для однієї вибраної коректно. характеристики виконання програми; Таким чином, вважається, що за відсутності - у вихідному коді 2vs уразливої програми, пристрою 6 принаймні один запит одного фрагмещонайменше один алгоритм, для якого потрібно нта першої виконуваної частини 2pes захищеної контролювати щонайменше одну характеристику програми 2р на запуск виконання елементарної виконання програми; функції у пристрої 6 не може бути коректно вико- у вихідному коді 2vs уразливої програми, наний, так що принаймні ця частина не виконуєтьщонайменше один фрагмент, що містить щонайся коректно, й, отже, захищена програма 2р не є менше один вибраний алгоритм. повнофункціональною. За виконання цих умов щонайменше один виВідповідно до іншої кращої характеристики браний фрагмент коду 2vs уразливої програми винаходу, спосіб захисту спрямований на реалізамодифікується, щоб одержати вихідний код 2ps цію принципу захисту, названого "детектування й захищеної програми. Ця модифікація така, що сапримус", опис якого виконано з посиланням на ме в ході виконання захищеної програми 2р: Фіг.70-74. - щонайменше один фрагмент першої виконуДля реалізації принципу захисту за допомогою 41 77186 42 ваної частини 2pes, яка виконується в системі 3 кількісного контролю; обробки даних, враховує, що принаймні одна ха- щонайменше одна змінна для кількісного корактеристика виконання вибраної програми має нтролю, що служить як кількісна характеристика бути проконтрольована, щонайменше частково, у зазначеної функціональної можливості; пристрої 6; - щонайменше одне порогове значення, зв'я- друга виконувана частина 2peu, яка виконузане зі змінною для кількісного контролю і відповіється у пристрої 6, контролює, щонайменше частдне межі використання зазначеної функціональної ково, одну характеристику виконання вибраної можливості; програми. - і щонайменше один метод поновлення змінВ ході виконання програми 2р, захищеної за ної для кількісного контролю відповідно до викоридопомогою принципу детектування й примусу, в стання зазначеної функціональної можливості. присутності пристрою 6 має місце така ситуація: Вихідний код 2vs уразливої програми потім - якщо всі критерії, що відповідають усім контмодифікується, щоб одержати вихідний код 2ps рольованим характеристикам виконання всіх мозахищеної програми, причому ця модифікація тадифікованих фрагментів захищеної програми 2р, ка, що в ході виконання захищеної програми 2р дотримані, ці модифіковані фрагменти захищеної друга виконувана частина 2peu: програми 2р функціонують належним чином і, от- поновлює значення змінної для кількісного же, захищена програма 2р функціонує належним контролю відповідно до використання зазначеної чином; функціональної можливості; - якщо ж щонайменше одного з критеріїв, що - і бере до уваги щонайменше одне перевивідповідає характеристиці контрольованого викощення порогового значення. нання одного фрагмента захищеної програми 2р, Іншими словами, в ході виконання захищеної не дотримано, система 3 обробки даних інформупрограми 2р значення змінної для кількісного конється про це і/або функціонування фрагмента затролю поновлюється відповідно до використання хищеної програми 2р модифікується таким чином, зазначеної функціональної можливості, й у разі щоб функціонування захищеної програми 2р було перевищення порогового значення засобу 17 дезмінено. тектування інформують про це засоби 18 примусу, Природно, що за відсутності пристрою 6 приякі приймають рішення, пристосоване до того, щоб наймні один запит одного фрагмента першої викопроінформувати систему 3 обробки даних і/або нуваної частини 2pes захищеної програми 2р на модифікувати обробку, здійснювану засобами 16 використання пристрою 6 не може бути коректно обробки. Це дозволяє модифікувати функціонувиконаний, так що щонайменше ця частина не вання фрагмента захищеної програми 2р таким виконується коректно, й, отже, захищена програма чином, щоб функціонування захищеної програми 2р не є повнофункціональною. 2р було змінене. Для реалізації принципу захисту шляхом детеДля реалізації першого кращого варіанта реактування й примусу краще використовувати два лізації принципу захисту за допомогою детектутипи характеристики виконання програми. вання й примусу, що використовує як характерисПерший тип характеристики виконання протику змінну для кількісного контролю, визначають: грами відповідає змінній контролю виконання про- щонайменше для однієї змінної для кількіснограми, а другий тип відповідає профілю викорисго контролю - декілька відповідних порогових знатання програми. Ці обидва типи характеристик чень; можуть використовуватися незалежно або в поєд- і різноманітні засоби примусу, що відповідананні. ють кожному з цих порогових значень. Для реалізації принципу захисту шляхом детеУ вихідному коді 2vs уразливої програми виктування й примусу, що використовує як характебираються також: ристику виконання програми змінну контролю ви- щонайменше одна змінна для кількісного коконання програми, мають бути визначені: нтролю, що служить як кількісна характеристика - у засобах 15 запам'ятовування - можливість використання щонайменше однієї функціональної запам'ятати принаймні одну змінну контролю, що можливості програми, з якою мають бути зв'язані служить як кількісна характеристика використання декілька порогових значень, що відповідають різщонайменше однієї функціональної можливості номанітним межам використання зазначеної фунпрограми; кціональної можливості; - у засобах 17 детектування - можливість спо- і щонайменше два порогових значення, зв'ястерігати принаймні одне порогове значення, зв'язані зі змінною для кількісного контролю. зане з кожною змінною контролю; Вихідний код 2vs уразливої програми потім - засоби поновлення, що дозволяють поновити модифікується, щоб одержати вихідний код 2ps кожну змінну контролю залежно від використання захищеної програми. Ця модифікація така, що в функціональної можливості, з якою вона зв'язана. ході виконання захищеної програми 2р друга викоКонструюють також засоби експлуатації, які нувана частина 2peu: задіюють, окрім засобів 17 детектування і засобів - поновлює значення змінної для кількісного 18 примусу, також засоби поновлення. контролю відповідно до використання зазначеної Крім того, у вихідному коді 2vs уразливої профункціональної можливості; грами вибираються: - і по-різному враховує перевищення різнома- щонайменше одна функціональна можлинітних порогових значень. вість уразливої програми 2v, використання якої Іншими словами, у звичайному випадку в ході можна проконтролювати за допомогою змінної для виконання захищеної програми 2р при переви 43 77186 44 щенні першого порогового значення пристрій 6 друга виконувана частина 2peu дотримується всіх інформує систему 3 обробки даних, даючи команвибраних ознак виконання. ду захищеній програмі 2р більше не використовуІншими словами, пристрій 6 сам контролює вати цю функціональну можливість. Якщо ж захитой спосіб, яким виконується друга виконувана щена програма 2р продовжує використовувати цю частина 2peu, і може інформувати систему 3 обфункціональну можливість, то може бути перевиробки даних і/або модифікувати функціонування щене друге порогове значення. В разі перевищензахищеної програми 2р в разі, якщо не дотримуня другого порогового значення засоби 18 примусу ється хоча б одна ознака виконання. можуть зробити непрацездатною вибрану функціВ ході виконання програми 2р, захищеної на ональну можливість і/або зробити непрацездатною основі даного принципу, в присутності пристрою 6 захищену програму 2р. має місце така ситуація: Для реалізації другого кращого варіанта прин- якщо всіх ознак виконання всіх модифіковаципу захисту шляхом детектування й примусу, що них фрагментів захищеної програми 2р, дотримавикористовує як характеристику змінну для кількіно, то ці модифіковані фрагменти захищеної просного контролю, визначають засоби перезавантаграми 2р функціонують належним чином і, отже, ження, що дозволяють щонайменше одне додатзахищена програма 2р функціонує належним чикове використання щонайменше однієї ном; функціональної можливості програми, контрольо- якщо ж хоча б однієї ознаки виконання однованої за допомогою змінної для кількісного контго фрагмента захищеної програми 2р не дотримаролю. но, про це інформується система 3 обробки даних Конструюють також засоби експлуатації, де і/або функціонування фрагмента захищеної прозастосовані, крім засобів 17 детектування, засобів грами 2р модифікується таким чином, щоб функці18 примусу й засобів поновлення, також і засоби онування захищеної програми 2р було змінено. перезавантаження. Можна передбачити контроль різноманітних Крім того, у вихідному коді 2vs уразливої проознак виконання, наприклад, контроль наявності грами вибирається щонайменше одна змінна для інструкцій, що містять генератор міток, або конткількісного контролю, що служить для обмеження роль зчеплення виконання щонайменше однієї використання щонайменше однієї функціональної частини інструкцій. можливості програми, для якої існує можливість Для реалізації принципу захисту шляхом детедозволу на щонайменше одне додаткове викорисктування й примусу, де як ознака виконання, що її тання. слід дотримуватися, використовується контроль Вихідний код 2vs уразливої програми потім зчеплення виконання щонайменше частини інмодифікується, щоб одержати вихідний код 2ps струкцій, визначають: захищеної програми, причому ця модифікація та- набір інструкцій, інструкції зі складу якого ка, що у фазі, названій фазою перезавантаження, можуть бути виконані у пристрої 6; принаймні одне додаткове використання щонай- набір команд інструкцій для цього набору інменше однієї функціональної можливості, що відструкцій, причому ці команди інструкцій можуть повідає одній вибраній змінній для кількісного конбути виконані в системі 3 обробки даних. Виконантролю, може бути дозволене. ня кожної з цих команд інструкцій у системі 3 обУ фазі перезавантаження відбувається поновробки даних викликає у пристрої 6 виконання відлення щонайменше однієї вибраної змінної для повідної інструкції; кількісного контролю і/або щонайменше одного - засоби 17 детектування, що дозволяють випов'язаного порогового значення, щоб дозволити явити, що зчеплення інструкцій не відповідає бащонайменше одне додаткове використання відпожаному; відної функціональної можливості. Іншими слова- засоби 18 примусу, що дозволяють проінфоми, у фазі перезавантаження забезпечується мормувати систему 3 обробки даних і/або модифікужливість дозволити додаткові використання вати виконання програми, якщо зчеплення інструщонайменше однієї функціональної можливості кцій не відповідає бажаному. захищеної програми 2р. Конструюють також засоби експлуатації, що Для реалізації принципу захисту шляхом детедозволяють пристрою 6 виконувати інструкції з ктування й примусу, що використовує як характенабору інструкцій, причому виконання цих інструкристику профіль використання програми, як критецій викликається виконанням команд інструкцій у рій, що його слід дотримуватися для цього системі 3 обробки даних. профілю використання, має бути визначена щоКрім того, у вихідному коді 2vs уразливої пронайменше одна ознака виконання програми. грами вибирається щонайменше один алгоритм, Крім того, у вихідному коді 2vs уразливої прощо має бути винесений у пристрій 6 і для якого грами вибирають: варто контролювати зчеплення щонайменше час- щонайменше один профіль використання, що тини інструкцій. його слід контролювати; Вихідний код 2vs уразливої програми потім - і щонайменше одну ознаку виконання, що її модифікується, щоб одержати вихідний код 2ps слід дотримуватися щонайменше в одному профізахищеної програми. Ця модифікація така, що в лі використання. ході виконання захищеної програми 2р: Вихідний код 2vs уразливої програми потім - друга виконувана частина 2peu виконує щомодифікується, щоб одержати вихідний код 2ps найменше функціональну можливість вибраного захищеної програми, причому ця модифікація таалгоритму; ка, що в ході виконання захищеної програми 2р - вибраний алгоритм розкладається на інстру 45 77186 46 вання інформують про це засоби 18 примусу, які - задане зчеплення, що його мають дотримумодифікують, як наслідок, функціонування інструватися щонайменше деякі з інструкцій у ході їхньокції іn+2, таким чином, що виконання інструкції іn+2 го виконання у пристрої 6; дає результат с', який може відрізнятися від с. - перша виконувана частина 2pes захищеної Зрозуміло, якщо виконання інструкції і'n дає програми 2р виконує команди інструкцій, які запусрезультат а', відмінний від результату а інструкції кають виконання інструкцій у пристрої 6. іn, ясно, що результат виконання інструкції іn+2 моВ ході виконання програми 2р, захищеної на же також відрізнятися від с. основі цього принципу, в присутності пристрою 6 Отже, якщо зчеплення виконання інструкцій, має місце така ситуація: виконуваних у пристрої 6, не відповідає бажаному, - якщо зчеплення інструкцій усіх модифіковаможна одержати модифікацію функціонування них фрагментів захищеної програми 2р відповідає захищеної програми 2р. бажаному, ці модифіковані фрагменти захищеної На Фіг.73 і 74 показаний кращий варіант реаліпрограми 2р функціонують належним чином і, отзації принципу захисту за допомогою детектування же, захищена програма 2р функціонує належним й примусу, де як ознака виконання, що її слід дочином; тримуватися, використовується контроль зчеплен- якщо ж зчеплення інструкцій фрагмента заня виконання щонайменше частини інструкцій. хищеної програми 2р, виконуваних у пристрої 6, не Відповідно до цього кращого варіанта визначаєтьвідповідає бажаному, то система 3 обробки даних ся набір інструкцій, у якому щонайменше деякі інформується про це і/або функціонування фрагінструкції працюють на регістрах і використовують мента захищеної програми 2р модифікується тащонайменше один операнд для видачі результату. ким чином, щоб функціонування захищеної проЯк показано на Фіг.73, щонайменше для часграми 2р було змінене. тини інструкцій, що працюють на регістрах, визнаНа Фіг.71 наведений приклад реалізації принчена частина PF, що задає функціональну можлиципу захисту за допомогою детектування й примувість інструкції, й частина РЕ, що задає бажане су, де як ознака виконання, що її слід дотримувазчеплення для виконання інструкцій. Частина PF тися, використовується контроль зчеплення відповідає коду операцій, відомому фахівцеві. Чавиконання щонайменше частини інструкцій у вистина РЕ, що визначає бажане зчеплення, містить падку, якщо бажаного зчеплення дотримано. бітові поля, що відповідають: Перша виконувана частина 2pes захищеної - полю СП ідентифікації інструкції; програми 2р, виконувана в системі 3 обробки да- і для кожного операнда k інструкції, де k проних, виконує команди CIi інструкцій, що викликає у бігає значення від 1 до K, K - число операндів інпристрої 6 виконання інструкцій іi, що належать до струкції: набору інструкцій. У наборі інструкцій щонаймен- полю CDk прапора, що вказує, чи варто переше деякі з інструкцій містять частину, що задає віряти походження операнда k, функціональну можливість інструкції, і частину, що - і полю СІРk ідентифікації, передбаченої для дозволяє перевіряти бажане зчеплення для викооперанда й що вказує на очікувану ідентичність нання інструкцій. У цьому прикладі команди Cli інструкції, яка згенерувала вміст операнда k. інструкцій подані як TRIG(ii), а бажане зчеплення Як показано на Фіг.74, набір інструкцій містить для виконання інструкцій є іn, іn+1 і іn+2. Виконання у V регістрів, що належать засобам 16 обробки, де пристрої 6 інструкції іn дає результат а, а виконанкожний регістр названий Rv (v пробігає значення ня інструкції іn+1 дає результат b. Інструкція іn+2 від 1 до V). Для кожного регістра Rv визначаються використовує як операнд результати а і b інструкдва поля, як-от: цій іn і іn+1, а її виконання дає результат с. - функціональне поле CFv, відоме фахівцеві й З урахуванням того, що це зчеплення інструкяке дозволяє зберігати результат виконання інцій, виконуваних у пристрої 6, відповідає бажанострукцій; му, функціонування захищеної програми 2р відпо- і поле СIGv генерованої ідентифікації, в якому відає нормальному, або номінальному режиму. автоматично запам'ятовується ідентифікація На Фіг.72 наведений приклад реалізації приностанньої інструкції, що повернула свій результат ципу захисту за допомогою детектування й примуу вказаний регістр, тобто такої, що згенерувала су, де як ознака виконання, що її слід дотримувавміст функціонального поля CFv. Це поле CIGv тися, використовується контроль зчеплення генерованої ідентифікації поновлюється автомавиконання щонайменше частини інструкцій у витично разом із вмістом поля Сll ідентифікації інпадку, якщо бажаного зчеплення не дотримано. струкції, згенерувавши функціональне поле CFv. Відповідно до цього приклада бажане зчепПоле CIGv генерованої ідентифікації не є ані дослення для виконання інструкцій є завжди іn, іn+1 і тупним, ані таким, що модифікується, для будьіn+2. Проте зчеплення виконання інструкцій модиякої іншої інструкції й служить винятково для засофікується заміною інструкції іn на інструкцію і'n табів 17 детектування. ким чином, що насправді виконуваним зчепленням В ході виконання інструкції засоби 17 детектує і'n, іn+1 і іn+2. Виконання інструкції і'n дає результат вання виконують для кожного операнда к такі опеа, тобто той самий результат, що й виконання інрації: струкції іn. Проте не пізніше, ніж при виконанні ін- зчитується поле CDk прапора; струкції іn+2, засоби 17 детектування виявляють, - якщо цього вимагає поле CDk прапора, то що інструкція і'n не відповідає бажаній інструкції зчитуються обидва поля: поле СІРk передбаченої для вироблення результату а, використовуваного ідентифікації і поле CIGv генерованої ідентифікаяк операнд для інструкції іn+2. Засоби 17 детектуції, відповідне регістрам, використовуваним опекції; 47 77186 48 рандом k; модифікується, щоб одержати вихідний код 2ps - перевіряється рівність обох полів СІРk і CIGv; захищеної програми. Ця модифікація така, що: - і, якщо рівність хибна, то засоби 17 детекту- в ході виконання захищеної програми 2р щовання вважають, що зчеплення виконання інструкнайменше один фрагмент першої виконуваної чацій не дотримано. стини 2pes, виконуваної в системі 3 обробки даЗасоби 18 примусу мають дозволяти модифіних, враховує, що функціональна можливість кувати результат виконання інструкцій, коли засощонайменше одного вибраного алгоритму виконуби 17 детектування проінформують їх про недоється у пристрої 6; тримання зчеплення інструкцій. Краща реалізація - в ході виконання захищеної програми 2р друполягає в тому, щоб модифікувати функціональну га виконувана частина 2peu, яка виконується у частину PF виконуваної інструкції або функціонапристрої 6, виконує щонайменше функціональну льну частину PF наступних інструкцій. можливість щонайменше одного вибраного алгоВідповідно до іншої кращої характеристики ритму; винаходу спосіб захисту націлений на реалізацію - кожний вибраний алгоритм розкладається принципу захисту, названого "перейменування", таким чином, що в ході виконання захищеної проопис якого виконано з посиланням на Фіг.80-85. грами 2р кожний вибраний алгоритм виконується Для реалізації принципу захисту перейменуза допомогою другої виконуваної частини 2peu, ванням мають бути визначені: використовуючи залежні функції. Кожний вибраний - ансамбль залежних функцій, залежні функції алгоритм краще розкладається на залежні функції якого можуть бути виконані за допомогою другої fdn (де n пробігає значення від 1 до Ν), як-от: виконуваної частини 2peu у пристрої 6, можливо, з - можливо, на одну або декілька залежних фунаступною передачею даних між системою 3 обнкцій, що дозволяють надати один або декілька робки даних і пристроєм 6 (причому цей ансамбль операндів для пристрою 6, залежних функцій може бути кінцевим чи ні); - на залежні функції, деякі з яких використову- ансамбль команд запуску для цих залежних ють один або декілька операндів і які в поєднанні функцій, причому ці команди запуску можуть викоздійснюють функціональну можливість вибраного нуватися в системі 3 обробки даних і викликати у алгоритму, що використовує ці операнди, пристрої 6 виконання відповідних залежних функ- і, можливо, на одну або декілька залежних цій; функцій, що дозволяють за допомогою пристрою 6 - для кожної команди запуску - настановний надати системі 3 обробки даних результат викопараметр, що відповідає, щонайменше частково, нання вибраного алгоритму; інформації, переданій першою виконуваною час- в ході виконання захищеної програми 2р друтиною 2pes другої виконуваної частини 2peu, щоб га виконувана частина 2peu виконує залежні фунвикликати запуск відповідної залежної функції кції fdn; причому цей настановний параметр представля- в ході виконання захищеної програми 2р ці ється в формі щонайменше аргументу команди залежні функції запускаються командами запуску з запуску; перейменованими настановними параметрами; - метод перейменування настановних параме- і впорядкування команд запуску вибрано сетрів, призначений для застосування в ході модифіред ансамблю впорядкувань, що дозволяють викації вразливої програми і що дозволяє переймеконання захищеної програми 2р. нувати настановні параметри таким чином, щоб Перша виконувана частина 2pes захищеної одержати команди запуску з перейменованими програми 2р, виконувана в системі 3 обробки дапараметрами, дозволяючи приховати ідентичність них, виконує команди запуску з перейменованими відповідних залежних функцій; настановними параметрами, що передають у при- засоби 20 відновлення, призначені для застрій 6 перейменовані настановні параметри. Це стосування у пристрої 6 у фазі використання і що викликає у пристрої 6 відновлення за допомогою дозволяють відновити початкові настановні паразасобів 20 відновлення настановних параметрів, а метри виходячи з перейменованих настановних потім виконання, за допомогою другої виконуваної параметрів, щоб знайти залежну функцію, що її частини 2peu, кожної з вищезгаданих залежних необхідно виконати. функцій fdn. Для реалізації принципу захисту перейменуІншими словами, принцип захисту за допомованням конструюють також засоби експлуатації, гою перейменування полягає в тому, щоб перейщо дозволяють перетворити незадіяний пристрій менувати настановні параметри команд запуску, 60, що містить засоби 15 запам'ятовування і засощоб одержати команди запуску з перейменованиби 16 обробки, на пристрій 6, що застосовує щоми настановними параметрами, виконання яких у найменше засоби 20 відновлення. системі 3 обробки даних викликає у пристрої 6 Для реалізації принципу захисту перейменувиконання залежних функцій, що запускалися б ванням у вихідному коді 2vs уразливої програми командами запуску з не перейменованими настамають бути також вибрані: новними параметрами, проте без того, щоб ви- щонайменше один алгоритм обробки, що вивчення захищеної програми 2р дозволило визнакористовує щонайменше один операнд і що видає чити ідентичність виконуваних залежних функцій. щонайменше один результат; На Фіг.80 наведений приклад виконання враз- і щонайменше один фрагмент вихідного коду ливої програми 2v. У цьому прикладі в ході вико2vs уразливої програми, що містить щонайменше нання вразливої програми 2v у системі 3 обробки один вибраний алгоритм. даних у даний момент часу має місце розрахунок Вихідний код 2vs уразливої програми потім Ζ F(X, Y), що відповідає присвоєнню змінній Ζ 49 77186 50 результату виконання алгоритму, поданого функбах 15 запам'ятовування пристрою 6 (ці команди цією F і що використовує операнди X і Υ. CDCR1, CDCR2 запуску з перейменованими настаНа Фіг.81 і 82 наведений приклад реалізації новними параметрами подані відповідно як OUT винаходу. На Фіг.81 наведений приклад часткової (R(x), X), OUT (R(y), Υ); реалізації винаходу. Відповідно до цього приклада - у моменти з t3 до tN-1 - виконання команд в ході виконання в системі 3 обробки даних першої CDCR3 до CDCRN-1 запуску з перейменованими виконуваної частини 2pes захищеної програми 2р настановними параметрами, що передають у приу присутності пристрою 6 здійснюються: стрій 6 перейменовані настановні параметри з - у моменти t1, t2 - виконання елементарних R(fd3) до R(fdN-1), що викликає у пристрої 6 відновкоманд CD1, CD2, що викликає у пристрої 6 виколення за допомогою засобів 20 відновлення нанання, за допомогою другої виконуваної частини становних параметрів, як-от з fd3 до fdN-1, а потім 2peu, відповідних залежних функцій fd1, fd2, які виконання, за допомогою другої виконуваної часзабезпечують передачу даних Χ, Υ з системи 3 тини 2peu, залежних функцій з fd3 до fdN-1, причому обробки даних у області пам'яті відповідно x і у, ці команди (з CDCR3 до CDCRN-1) запуску з перейрозташовані в засобах 15 запам'ятовування применованими настановними параметрами подані строю 6, причому ці команди CD1, CD2 запуску повідповідно командами TRIG (R(fd3)) до TRIG дані відповідно як OUT(x, X), OUT (у, Υ); (R(fdN-1)); - у моменти з t3 до tΝ-1 - виконання команд за- у момент tN - виконання команди CDCRN запуску з CD3 до CDN-1, що викликає у пристрої 6 пуску з перейменованими настановними параметвиконання за допомогою другої виконуваної часрами, що передає у пристрій 6 перейменовані натини 2peu відповідних залежних функцій з fd3 до становні параметри R(z). Це викликає у пристрої 6 fdN-1, причому ці команди запуску з CD3 до CDN-1 відновлення, за допомогою засобів 20 відновленподані відповідно як TRIG(fd3) -TRIG(fdN-1), причоня, настановних параметрів, а саме ідентичності му послідовність залежних функцій з fd3 до fdN-1, області пам'яті z, а потім виконання, за допомогою виконуваних у поєднанні, алгоритмічно еквівалендругої виконуваної частини 2peu, залежної функції тна функції F (точніше кажучи, виконання цих коfdN, що забезпечує передачу результату виконанманд запуску призводить до виконання у пристрої ня алгоритму, що міститься в області пам'яті z 6 залежних функцій з fd3 до fdN-1, які використовупристрою 6, системі 3 обробки даних, щоб присвоють уміст областей пам'яті х, у і повертають реїти його змінній Ζ. Ця команда CDCRN запуску з зультат у область пам'яті z пристрою 6); перейменованими настановними параметрами - а у момент tN здійснюється виконання команподана як IN(R(z)). ди CDN запуску, що викликає у пристрої 6 викоУ наведеному прикладі команди запуску з пенання, за допомогою другої виконуваної частини рейменованими настановними параметрами з 1 до 2peu, залежної функції fdN, що забезпечує передаN виконуються послідовно. Слід зазначити, що чу результату виконання алгоритму, що міститься можна зробити два такі вдосконалення. в області пам'яті z пристрою 6, системі 3 обробки - Перше вдосконалення стосується випадку, даних, щоб присвоїти його змінній Ζ. Ця команда коли декілька алгоритмів винесені у пристрій 6 і подана як IN(z). щонайменше результат виконання одного алгориУ даному прикладі, щоб цілком реалізувати тму використовується іншим алгоритмом (у цьому винахід, як настановний параметр вибраний первипадку деякі команди запуску з перейменованими ший аргумент команд OUT запуску й аргумент конастановними параметрами, що служать для пеманд TRIG і IN запуску. Вибрані таким чином наредачі, можуть бути вилучені). становні параметри перейменовуються за - Друге вдосконалення має на меті належне методом перейменування настановних параметвпорядкування команд запуску з перейменованирів. Таким чином, настановні параметри команд ми настановними параметрами серед ансамблю запуску з CD і до CDN, як-от х, у, fd3, fdN-1, z перейвпорядкувань, що дозволяють виконання захищеменовуються так, щоб одержати відповідно R(x), ної програми 2р. R(y), R(fd3)... , R(fdN-1), R(z). У цьому відношенні краще вибрати таке впоНа Фіг.82 наведений приклад повної реалізації рядкування команд запуску з перейменованими винаходу. Відповідно до цього приклада в ході настановними параметрами, яке розділяє в часі виконання в системі 3 обробки даних першої виковиконання залежних функцій, вставляючи між нинуваної частини 2pes захищеної програми 2р, у ми ділянки коду, виконуваного в системі 3 обробки присутності пристрою 6, здійснюються: даних, і що містить (або що не містить) при цьому - у моменти t1, t2 - виконання команд CDCR1, команди запуску з перейменованими настановниCDCR2 запуску з перейменованими настановними ми параметрами, що служать для визначення інпараметрами, що передають у пристрій 6 перейших даних. Фіг.83 і 84 ілюструють принцип такої меновані настановні параметри R(x), R(y), а також реалізації. дані Χ, Υ, що викликає у пристрої 6 відновлення На Фіг.83 наведений приклад виконання ураз(за допомогою засобів 20 відновлення) переймеливої програми 2v. У цьому прикладі в системі 3 нованих настановних параметрів, щоб відновити обробки даних у ході виконання вразливої програнастановні параметри, як-от ідентичність областей ми 2v відбувається виконання двох алгоритмів, що пам'яті х, у, а потім виконання, за допомогою друприводять до визначення Ζ і Z' таких, що Ζ F(X, гої виконуваної частини 2peu, відповідних залежY) і Ζ' F'(X', Y')· них функцій fd1, fd2, що забезпечують передачу На Фіг.84 наведений приклад реалізації спосоданих Χ, Υ від системи 3 обробки даних до обласбу згідно з винаходом, у якому обидва вибраних на тей пам'яті відповідно х, у, розташованих у засоФіг.83 алгоритми винесені у пристрій 6. Відповідно 51 77186 52 до цього прикладу в ході виконання в системі 3 на залежні функції так, що принаймні одна з них обробки даних першої виконуваної частини 2pes замінюється залежною функцією того ж сімейства, захищеної програми 2р, у присутності пристрою 6, замість того, щоб зберігати декілька входжень тієї має місце, як пояснюється вище, виконання косамої залежної функції. З цією метою команди манд (з CDCR1 до CDCRN) запуску з перейменовазапуску з перейменованими настановними параними настановними параметрами, що відповідає метрами модифікуються, щоб урахувати заміну визначенню Z, і виконання команд (з CDCR1' до залежних функцій на залежні функції того ж сімейCDCRM') запуску з перейменованими настановниства. ми параметрами, що відповідає визначенню Z'. Як Іншими словами, дві залежні функції з одного показано, команди запуску з CDCR1 до CDCRN не сімейства мають різноманітні настановні параметвиконуються послідовно, оскільки з ними чергури, й, отже, команди запуску з різноманітними пеються команди запуску з CDCR1' до CDCRM', а рейменованими настановними параметрами. Тому також інші фрагменти коду. В цьому прикладі, тапри вивченні захищеної програми 2р неможливо ким чином, реалізоване таке впорядкування: виявити, що викликані залежні функції алгоритмічCDCR1, вставлений фрагмент коду, CDCR1', но еквівалентні. CDCR2, вставлений фрагмент коду, CDCR2', Відповідно до першої кращої реалізації варіанCDCR3', вставлений фрагмент коду, CDCR4', та принципу захисту за допомогою перейменуванCDCR3, CDCR4,..., CDCRN, CDCRM'. ня визначається щонайменше для однієї залежної Слід зазначити, що в ході виконання фрагменфункції алгоритмічно еквівалентне сімейство зата першої виконуваної частини 2pes захищеної лежних функцій шляхом зчеплення поля шумів з програми 2р команди запуску з перейменованими інформацією, що визначає ту функціональну часнастановними параметрами, що виконуються в тину залежної функції, що виконується у пристрої системі 3 обробки даних, викликають у пристрої 6 6. відновлення ідентичності відповідних залежних У відповідності з другою кращою реалізацією функцій, а потім їхнє виконання. Таким чином, у варіанта принципу захисту за допомогою перейприсутності пристрою 6 цей фрагмент виконується менування щонайменше для однієї залежної функоректно й, отже, захищена програма 2р є повнокції визначається алгоритмічно еквівалентне сіфункціональною. мейство залежних функцій з використанням полів На Фіг.85 наведений приклад спроби виконанідентифікації. ня захищеної програми 2р за відсутності пристрою Відповідно до кращого варіанта реалізації 6. У цьому прикладі в ході виконання в системі З принципу захисту за допомогою перейменування обробки даних першої виконуваної частини 2pes як метод перейменування настановних параметрів захищеної програми 2р виконання команди запусзадається метод кодування, що дозволяє кодувати ку з перейменованими настановними параметранастановні параметри для їхнього перетворення ми жодного моменту не може викликати ні відновна перейменовані настановні параметри. Варто лення настановних параметрів, ані виконання нагадати, що перейменування настановних паравідповідної залежної функції через відсутність метрів здійснюється у фазі Ρ захисту. Для цього пристрою 6. Значення, що його необхідно присвоїкращого варіанта засоби 20 відновлення являють ти змінній Z, отже, не може бути визначене корексобою засоби, що застосовують метод декодувантно. ня, що дозволяє декодувати перейменовані наТаким чином, вважається, що за відсутності становні параметри і відновити таким чином іденпристрою 6 щонайменше один запит одного фрагтичність залежних функцій, що їх потрібно мента першої виконуваної частини 2pes захищеної виконати у пристрої 6. Ці засоби відновлення запрограми 2р на запуск відновлення настановних стосовуються у пристрої 6 і можуть бути як пропараметрів і виконання у пристрої залежної функграмними, так і апаратними. Засоби 20 відновленції у пристрої 6 не може бути коректно виконаний, ня запитуються у фазі U використання щоразу, так що щонайменше ця частина не виконується коли команда запуску з перейменованими настакоректно, й, отже, захищена програма 2р не є повновними параметрами виконується в системі З нофункціональною. обробки даних з метою викликати у пристрої 6 Завдяки цьому принципу захисту за допомовиконання залежної функції. гою перейменування вивчення в захищеній проВідповідно до іншої кращої характеристики грамі 2р команд запуску з перейменованими навинаходу спосіб захисту спрямований на реалізастановними параметрами не дозволяє визначити цію принципу захисту, названого "умовним переідентичність залежних функцій, що мали бути виходом", опис якого проілюстровано Фіг.90-92. конані у пристрої 6. Слід зазначити, що переймеДля реалізації принципу захисту за допомогою нування настановних параметрів здійснюється в умовного переходу у вихідному коді 2vs уразливої ході перетворення вразливої програми 2v на запрограми вибирається щонайменше один умовний хищену програму 2р. перехід ВС. Вибирається також щонайменше один Відповідно до варіанта принципу захисту за фрагмент вихідного коду 2vs уразливої програми, допомогою перейменування мало бути визначено що містить щонайменше один вибраний умовний щонайменше для однієї залежної функції, сімейстперехід ВС. во алгоритмічно еквівалентних залежних функцій, У даному варіанті щонайменше один вибраний що викликаються командами запуску з різноманітфрагмент коду 2vs уразливої програми модифікуними перейменованими настановними параметється, щоб одержати вихідний код 2ps захищеної рами. В цьому варіанті принаймні один алгоритм, програми. Ця модифікація така, що в ході викощо використовує залежні функції, розкладається нання захищеної програми 2р: 53 77186 54 - щонайменше один фрагмент першої виконуго переходу не може викликати виконання винесеваної частини 2pes, який виконується в системі 3 ного умовного переходу bc, з огляду на відсутність обробки даних, враховує те, що функціональна пристрою 6; можливість принаймні одного вибраного умовного - і у момент t2 спроба передачі інформації, що переходу ВС виконується у пристрої 6; дозволяє першій виконуваній частині 2pes продо- друга виконувана частина 2peu, що виконувжити виконання у вибраному місці, не може бути ється у пристрої 6, виконує щонайменше функціоуспішною у зв'язку з відсутністю пристрою 6. нальну можливість щонайменше одного вибраного Таким чином, за відсутності пристрою 6 щоумовного переходу ВС і надає системі 3 обробки найменше один запит одного фрагмента першої даних інформацію, що дозволяє першій виконувавиконуваної частини 2pes на запуск виконання ній частині 2pes продовжити своє виконання у вивинесеного умовного переходу у пристрої 6 не браному місці. може бути коректно виконаний. Тому щонайменше Перша виконувана частина 2pes захищеної ця частина не виконується коректно, й, отже, запрограми 2р, виконувана в системі 3 обробки дахищена програма 2р не є повнофункціональною. них, виконує команди умовних переходів, що виУ попередньому описі, проілюстрованому на кликає у пристрої 6 виконання, за допомогою друФіг.90-92, даний винахід спрямований на винос у гої виконуваної частини 2peu, винесених умовних пристрій 6 одного умовного переходу. Зрозуміло, переходів bc, функціональні можливості яких еквікращий варіант здійснення винаходу може полягавалентні функціональним можливостям вибраних ти в передачі у пристрій 6 серії умовних переходів, умовних переходів ВС. Для реалізації принципу глобальні функціональні можливості яких еквівазахисту за допомогою умовного переходу пристрій лентні ансамблю функціональних можливостей 6 містить засоби 15 запам'ятовування і засоби 16 винесених умовних переходів. Виконання глобаобробки. льних функціональних можливостей цієї серії виНа Фіг.90 наведений приклад виконання вразнесених умовних переходів призводить до того, ливої програми 2v. У цьому прикладі в ході викощо системі 3 обробки даних дається інформація, нання вразливої програми 2v у системі 3 обробки що дозволяє першій виконуваній частині 2pes заданих у даний момент часу має місце умовний хищеної програми 2р продовжити своє виконання перехід ВС, що вказує вразливій програмі 2v місу вибраному місці. це, де варто продовжити її виконання, як-от одне з У попередньому описі, проілюстрованому трьох можливих місць В1, В2 або В3. Варто розуміФіг.40-92, шість різноманітних принципів захисту ти, що умовний перехід ВС приймає рішення пропрограми були пояснені в загальному вигляді недовжити виконання програми в місці В1, В2 або В3. залежно один від іншого. Спосіб захисту згідно з На Фіг.91 наведений приклад реалізації винавинаходом може бути реалізований із застосуванходу, в якому умовний перехід, відібраний для ням принципу захисту за допомогою змінної, до переносу у пристрій 6, відповідає умовному переякого можна додати один або декілька інших ходові ВС. принципів захисту. В разі, коли принцип захисту за У цьому прикладі в ході виконання у системі 3 допомогою змінної доповнюється реалізацією щообробки даних першої виконуваної частини 2pes найменше одного іншого принципу захисту, принзахищеної програми 2р у присутності пристрою 6 цип захисту за допомогою змінної краще доповнимають місце: ти принципом захисту за допомогою розділення в - у момент t1 - виконання команди CBC1 умовчасі і/або принципом захисту за допомогою еленого переходу, що викликає у пристрої 6 виконанментарних функцій. ня, за допомогою другої виконуваної частини 2peu, Якщо таким чином застосовується принцип завинесеного умовного переходу bc, алгоритмічно хисту за допомогою розділення в часі, то він може еквівалентного умовному переходові ВС, причому бути доповнений, у свою чергу, принципом захисту ця команда СВС1 умовного переходу подана як за допомогою елементарних функцій і/або принTRIG(bc); ципом захисту за допомогою умовного переходу. - і у момент t2 - передача пристроєм 6 системі Якщо таким чином застосовується принцип за3 обробки даних інформації, що дозволяє першій хисту за допомогою елементарних функцій, то він виконуваній частині 2pes продовжити своє викоможе бути доповнений, у свою чергу, принципом нання у вибраному місці, як-от, В1, В2 або В3. захисту за допомогою детектування й примусу Слід зазначити, що в ході виконання фрагмені/або принципом захисту за допомогою переймета першої виконуваної частини 2pes захищеної нування, і/або принципом захисту за допомогою програми 2р команди умовних переходів, які викоумовного переходу. нуються в системі 3 обробки даних, запускають Якщо таким чином застосовується принцип завиконання відповідних винесених умовних перехохисту за допомогою детектування й примусу, то він дів у пристрої 6. Таким чином, вважається, що в може бути доповнений, у свою чергу, принципом присутності пристрою 6 ця частина виконується захисту за допомогою перейменування і/або принкоректно й, отже, захищена програма 2р є повноципом захисту за допомогою умовного переходу. І функціональною. якщо також застосовується принцип захисту за На Фіг.92 наведений приклад спроби виконандопомогою перейменування, то він може бути доня захищеної програми 2р за відсутності пристрою повнений, у свою чергу, принципом захисту за до6. У цьому прикладі, в ході виконання в системі З помогою умовного переходу. обробки даних першої виконуваної частини 2pes Відповідно до кращого варіанта реалізації захищеної програми 2р: принцип захисту за допомогою змінної доповню- у момент t1 виконання команди СВС1 умовноється принципом захисту за допомогою розділення 55 77186 56 в часі, доповненим принципом захисту за допомоназвана вихідною, підфаза Р2 захисту залежить гою елементарних функцій, доповненим принцивід підлягаючої захисту вразливої програми 2ν. пом захисту за допомогою детектування й примуСлід зазначити, що вхідна і вихідна підфази Р1 і Р2 су, доповненим принципом захисту за допомогою захисту можуть бути реалізовані двома різноманіперейменування, доповненим принципом захисту тними особами або групами. Наприклад, вхідна за допомогою умовного переходу. підфаза Р1 захисту може бути реалізована співроУ випадку, коли на додаток до принципу захибітником або організацією, що здійснюють розробсту за допомогою змінної застосований якийсь ку систем захисту програм, тоді як вихідна підфаза інший принцип захисту, щоб врахувати таку комбіР2 захисту може бути реалізована співробітником новану реалізацію винаходу, наведений вище опис або організацією, що здійснюють розробку промає містити такі модифікації: грам, що їх слід захистити. Зрозуміло, ясно, що - поняття вразливої програми має розумітися в вхідна і вихідна підфази Ρ1 і Р2 захисту можуть сенсі вразливості програми відносно до описувабути реалізовані й одним співробітником або одніного принципу захисту. Так, у випадку, коли принєю організацією. цип захисту вже був застосований до вразливої Вхідна підфаза Р1 захисту задіює декілька програми, вираз "уразлива програма" має інтерпстадій S11, ... S1i, для кожної з яких необхідно викоретуватися як вираз "програма, захищена за донати декілька задач або завдань. помогою одного або декількох уже застосованих Перша стадія цієї вхідної підфази Р1 захисту принципів захисту"; називається "стадією S11 визначень". У ході цієї - поняття захищеної програми має розумітися стадії S11 визначень: в сенсі захищеності програми відносно до опису- вибираються: ваного принципу захисту. Так, у випадку, коли - тип пристрою 6, як-от - пристрій зберігання принцип захисту вже був застосований, вираз "заабо пристрій обробки і зберігання. Для приклада хищена програма" має інтерпретуватися читачем можна як пристрій 6 вибрати пристрій 8 читання як вираз "нова версія захищеної програми"; карт з мікрочипом і карту з мікрочипом, зв'язану з - один або декілька виборів, зроблений (зробпристроєм 8 читання, лених) для реалізації описуваного принципу захис- і засоби 12, 13 передачі, призначені для зату, має (мають) враховувати вибір(и), зроблений стосування відповідно в системі 3 обробки даних і (зроблені) для реалізації вже застосованого (зау пристрої 6 у фазі U використання і здатні забезстосованих) одного або декількох принципів запечувати передачу даних між системою 3 обробки хисту. даних і пристроєм 6; Подальший опис дозволяє краще зрозуміти - причому в разі, коли спосіб захисту згідно з реалізацію способу захисту згідно з винаходом. У винаходом задіює принцип захисту за допомогою цьому способі захисту згідно з винаходом здійселементарних функцій, визначаються також: нюють, як це уточнюється на Фіг.100: - набір елементарних функцій, елементарні - спочатку фазу Ρ захисту, в ході якої вразлива функції якого можуть бути виконані у пристрої 6, програма 2ν перетворюється на захищену програ- і набір елементарних команд для цього наму 2р; бору елементарних функцій, причому ці елемен- потім фазу U використання, в ході якої захитарні команди можуть бути виконані в системі З щена програма 2р використовується, причому в обробки даних, викликаючи виконання у пристрої 6 фазі U використання: елементарних функцій; - за присутності пристрою 6 кожного разу, коли - причому в разі, коли спосіб захисту згідно з цього вимагає фрагмент першої виконуваної часвинаходом задіює принцип захисту за допомогою тини 2pes, виконуваної в системі 3 обробки даних, детектування й примусу, мають бути передбачені належна функціональна можливість виконується у також: пристрої 6 таким чином, що ця частина виконуєть- щонайменше одна характеристика виконання ся коректно, й, отже, захищена програма 2р є повпрограми, яка може бути проконтрольована, щонофункціональною, найменше частково, у пристрої 6, - за відсутності пристрою 6, незважаючи на - щонайменше один критерій, що його слід дозапит фрагмента першої виконуваної частини тримуватися щонайменше для однієї характерис2pes, на виконання функціональної можливості у тики виконання програми, пристрої 6, цей запит не може бути коректно задо- засоби 17 детектування, що їх необхідно заволений, так що принаймні ця частина не виконустосовувати у пристрої 6 і які дозволяють виявити, ється коректно, й, отже, захищена програма 2р не що принаймні одна характеристика виконання проє повнофункціональною; грами не відповідає щонайменше одному відпові- і, можливо, фазу R перезавантаження, в ході дному критерію, якої дозволяється щонайменше одне додаткове - і засоби 18 примусу, що їх необхідно застовикористання функціональної можливості, захисовувати у пристрої 6 і які дозволяють проінфорщеної шляхом реалізації другого кращого варіанта мувати систему 3 обробки даних і/або модифікуреалізації принципу захисту за допомогою детеквати хід виконання програми, якщо хоча б одного тування й примусу, що використовує як характерикритерію не дотримано; стику змінну для кількісного контролю. - причому в разі, коли спосіб захисту згідно з Фаза Ρ захисту може бути розкладена на дві винаходом задіює принцип захисту за допомогою підфази Ρ1 і Р2 захисту. Перша, названа вхідною, детектування й примусу, що використовує як харапідфаза Ρ1 захисту реалізується незалежно від ктеристику змінну для кількісного контролю викопідлягаючої захисту вразливої програми 2ν. Друга, нання програми, мають бути визначені також: 57 77186 58 - як характеристика виконання програми, яка находом задіює кращий варіант реалізації принциможе бути проконтрольована, - змінна для кількіспу захисту шляхом детектування й примусу, де як ного контролю використання однієї функціональної ознака виконання, що її слід дотримуватися, викоможливості програми, ристовується контроль зчеплення виконання, ма- як критерій, що його слід дотримуватися, ють передбачатися також: щонайменше одне порогове значення, зв'язане з - як набір інструкцій - набір інструкцій, з якого кожною змінною для кількісного контролю, щонайменше деякі інструкції працюють на регіст- і засоби поновлення, що дозволяють поновирах і використовують щонайменше один операнд ти щонайменше одну змінну для кількісного контдля видачі результату, ролю; - щонайменше для однієї частини інструкцій, - причому в разі, коли спосіб захисту згідно з що працюють на регістрах: винаходом задіює перший кращий варіант реалі- частина PF, що задає функціональну можлизації принципу захисту шляхом детектування й вість інструкції, примусу, що використовує як характеристику змін- і частина, що задає бажане зчеплення для ну для кількісного контролю виконання програми, виконання інструкцій і що містить бітові поля, що мають бути передбачені також: відповідають: - щонайменше для однієї змінної для кількісно- полю СП ідентифікації інструкції, го контролю - декілька відповідних порогових зна- і для кожного операнда інструкції: чень, - полю CDk прапора, - і різноманітні засоби примусу, що відповіда- і полю СІРk ідентифікації, передбаченої для ють кожному з цих порогових значень; операнда, - причому в разі, коли спосіб захисту згідно з - для кожного регістра, що належить до засовинаходом задіює другий кращий варіант реалізабів експлуатації і використовуваного набором інції принципу захисту шляхом детектування й приструкцій, - поле CIGv генерованої ідентифікації, в мусу, що використовує як характеристику змінну якому автоматично запам'ятовується ідентифікадля кількісного контролю виконання програми, ція останньої інструкції, що повернула свій резульпередбачаються також засоби перезавантаження, тат у цей регістр, що дозволяють щонайменше одне додаткове ви- як засоби 17 детектування - засоби, що докористання щонайменше однієї функціональної зволяють у ході виконання інструкції для кожного можливості програми, контрольованої за допомооперанда, якщо цього вимагає поле CDk прапора, гою змінної для кількісного контролю; контролювати рівність між полем CIGV генерованої - причому в разі, коли спосіб захисту згідно з ідентифікації, що відповідає регістру, використовувинаходом задіює принцип захисту за допомогою ваному цим операндом, і полем СІРk передбаченої детектування й примусу, що використовує як хараідентифікації початкової адреси цього операнда, ктеристику профіль використання програми, мають - і як засоби 18 примусу - засоби, що дозволябути передбачені також: ють модифікувати результат інструкції, якщо при- як характеристика виконання програми, яка наймні одна з контрольованих рівностей хибна; може бути проконтрольована, - профіль викорис- причому в разі, коли спосіб захисту згідно з тання програми, винаходом задіює принцип захисту за допомогою - і як критерій, що його слід дотримуватися, перейменування, мають передбачатися також: щонайменше одна ознака виконання програми; - як команда запуску - елементарна команда - причому в разі, коли спосіб захисту згідно з або команда інструкції, винаходом задіює принцип захисту за допомогою - як залежна функція - елементарна функція детектування й примусу, де як ознака виконання, або інструкція, що її слід дотримуватися, використовується конт- як настановний параметр, - щонайменше роль зчеплення виконання, мають передбачатися один аргумент для команди запуску, що відповідає також: щонайменше частково інформації, переданій сис- набір інструкцій, інструкції зі складу якого темою 3 обробки даних на пристрій 6, щоб виклиможуть бути виконані у пристрої 6, кати запуск відповідної залежної функції, - набір команд інструкцій для зазначеного на- метод перейменування настановних парамебору інструкцій, причому ці команди інструкцій трів, що дозволяє перейменувати настановні паможуть бути виконані в системі 3 обробки даних, раметри, щоб одержати команди запуску з перейвикликаючи у пристрої 6 виконання інструкцій, менованими параметрами, - як профіль використання - зчеплення інстру- і засоби 20 відновлення, призначені для закцій, стосування у пристрої 6 у фазі U використання і - як ознака виконання - бажане зчеплення для що дозволяють знову знайти залежну функцію, що виконання інструкцій, її слід виконати, виходячи з перейменованого на- як засоби 17 детектування - засоби, що достановного параметра, зволяють виявити, що зчеплення інструкцій не - причому в разі, коли спосіб захисту згідно з відповідає бажаному, винаходом задіює варіант принципу захисту за - і як засоби 18 примусу - засоби, що дозволядопомогою перейменування, визначається також, ють інформувати систему З обробки даних і/або щонайменше для однієї залежної функції, сімейстмодифікувати функціонування фрагмента захищево алгоритмічно еквівалентних залежних функцій, ної програми 2р, якщо зчеплення інструкцій не що викликаються командами запуску, перейменовідповідає бажаному; вані настановні параметри яких є різноманітними, - а у випадку, коли спосіб захисту згідно з ви- а у випадку, коли спосіб захисту згідно з ви 59 77186 60 находом задіює ту чи іншу кращу реалізацію варіS12 конструювання може йти стадія, названа "стаанта принципу захисту за допомогою перейменудією S13 передперсоналізації". В ході цієї стадії S13 вання, визначається також, щонайменше для одпередперсоналізації щонайменше засоби 13 перенієї залежної функції, сімейство алгоритмічно дачі й засоби експлуатації завантажуються щоеквівалентних залежних функцій: найменше в один незадіяний пристрій 60, щоб - шляхом зчеплення поля шумів з інформаціодержати щонайменше один передперсоналізоваєю, що визначає ту функціональну частину залежний пристрій 66. Слід зазначити, що частина засоної функції, яка виконується в пристрої 6, бів експлуатації, бувши перенесена у передперсо- або шляхом використання поля Сll ідентифіналізований пристрій 66, більше не є досяжною кації інструкції та поля СІРk передбаченої ідентибезпосередньо ззовні цього передперсоналізовафікації операндів; ного пристрою 66. Передача засобів експлуатації у - причому в разі, коли спосіб захисту згідно з незадіяний пристрій 60 може бути реалізована за винаходом задіює кращий варіант принципу захисдопомогою адаптованого пристрою передперсоту за допомогою перейменування, мають передналізації, описаного далі і проілюстрованого бачатися також: Фіг.120. У випадку передперсоналізованого при- як метод перейменування настановних пастрою 66, що складається з карти 7 з мікрочипом і раметрів - метод кодування для кодування настапристрою 8 її читання, передперсоналізація стосуновних параметрів, ється тільки карти 7 з мікрочипом. - і як засоби 20 відновлення - засоби, що заВ ході вхідної підфази Р1 захисту, після стадії стосовують метод декодування для декодування S11 визначень і, можливо, після стадії S12 конструперейменованих настановних параметрів і відновювання, може бути здійснена також стадія, назвалення ідентичності залежних функцій, що їх слід на "стадією S14 виготовлення засобів". У ході цієї виконати у пристрої 6. стадії S14 виготовлення засобів виробляються заВ ході вхідної під фази захисту за стадією S11 і соби, що дозволяють допомогти створенню захивизначення йде стадія, названа "стадією S12 консщених програм або автоматизувати захист протруювання". В ході такої стадії S12 конструюються грам. Такі засоби дозволяють: засоби 12, 13 передачі і, можливо, засоби експлу- допомогти вибрати або автоматично вибрати атації, що відповідають визначенням стадії S11 у вразливій програмі 2v, що її потрібно захистити: визначення. - одну або декілька змінних, що можуть бути В ході цієї стадії S12 конструювання здійснювинесені у пристрій 6, ють, отже: - фрагменти, які можуть бути змінені, - конструювання засобів 12, 13 передачі, що - якщо також застосовується принцип захисту дозволяють, у ході фази U використання здійснюза допомогою розділення в часі, - один або декільвати передачу даних між системою 3 обробки дака алгоритмів, що можуть бути розкладені на етаних і пристроєм 6; пи, що їх можна винести у пристрій 6, - якщо також застосовується принцип захисту - якщо також застосовується принцип захисту за допомогою елементарних функцій, - побудову за допомогою елементарних функцій, - один або засобів експлуатації, що дозволяють пристрою 6 у декілька алгоритмів, що можуть бути розкладені фазі U використання виконувати елементарні фунна елементарні функції, що їх можна винести у кції з набору елементарних функцій; пристрій 6, - і, якщо також застосовується принцип захис- і, якщо також застосовується принцип захисту за допомогою детектування й примусу, - консту за допомогою детектування й примусу, - одну труювання: або декілька характеристик виконання, що їх не- засобів експлуатації, що дозволяють приобхідно проконтролювати, і, можливо, один або строю 6 у фазі U використання також залучити декілька алгоритмів, які можуть бути розкладені на засоби 17 детектування і засоби 18 примусу, інструкції, що їх можна винести у пристрій 6, - і, можливо, засобів експлуатації, що дозво- якщо також застосовується принцип захисту ляють пристрою 6 у фазі U використання також за допомогою перейменування, - один або декільзалучити засоби поновлення, ка алгоритмів, які можуть бути розкладені на за- а також, можливо, засобів експлуатації, що лежні функції, що їх можна винести у пристрій 6 і дозволяють пристрою 6 у фазі перезавантаження для яких настановні параметри команд запуску задіяти також засоби перезавантаження, можуть бути перейменовані, - а також, можливо, засобів експлуатації, що - і, якщо також застосовується принцип захисдозволяють пристрою 6 у фазі U використання ту за допомогою умовного переходу, - один або виконувати інструкції з набору інструкцій; декілька умовних переходів, функціональна мож- і, якщо також застосовується принцип захисливість яких може бути винесена у пристрій 6; ту за допомогою перейменування, - конструюван- і, можливо, допомогти створити захищені ня засобів експлуатації, що дозволяють пристрою програми або автоматизувати 6 у фазі U використання задіяти також засоби відзахист програм. новлення. Ці різноманітні засоби можуть бути реалізовані Конструювання засобів експлуатації здійснюнезалежно або в поєднанні, причому кожний засіб ють звичайним чином, за допомогою пристрою може набувати різноманітних форм, наприклад, розробки програм з урахуванням визначень, увеявляти собою передпроцесор, асемблер, компілядених на стадії S11 визначень. Подібний пристрій тор тощо. За вхідною підфазою Р1 захисту йде описаний далі і проілюстрований Фіг.110. вихідна підфаза Р2 захисту, що залежить від підВ ході вхідної підфази Ρ1 захисту за стадією лягаючої захисту вразливої програми 2v. Ця вихід

Дивитися

Додаткова інформація

Назва патенту англійською

Method for protecting software against unauthorized use by a controlled variable

Назва патенту російською

Способ защиты программы от неразрешенного доступа с помощью контролируемого переменного параметра

МПК / Мітки

МПК: G06F 12/14, G06F 1/00, G06F 21/00

Мітки: змінної, допомогою, захисту, принципу, програми, неавторизованого, званого, використання, спосіб

Код посилання

<a href="https://ua.patents.su/39-77186-sposib-zakhistu-programi-vid-neavtorizovanogo-vikoristannya-za-dopomogoyu-tak-zvanogo-principu-zminno.html" target="_blank" rel="follow" title="База патентів України">Спосіб захисту програми від її неавторизованого використання за допомогою так званого принципу змінної</a>

Подібні патенти