JP3949106B2 - How to protect software against fraudulent use by "fundamental function" principle - Google Patents

How to protect software against fraudulent use by "fundamental function" principle Download PDF

Info

Publication number
JP3949106B2
JP3949106B2 JP2003517723A JP2003517723A JP3949106B2 JP 3949106 B2 JP3949106 B2 JP 3949106B2 JP 2003517723 A JP2003517723 A JP 2003517723A JP 2003517723 A JP2003517723 A JP 2003517723A JP 3949106 B2 JP3949106 B2 JP 3949106B2
Authority
JP
Japan
Prior art keywords
execution
unit
software
protected software
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003517723A
Other languages
Japanese (ja)
Other versions
JP2004537801A (en
Inventor
ジァーン−クリストフ キュノドゥ,
ギレ スグロ,
Original Assignee
バリディ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by バリディ filed Critical バリディ
Publication of JP2004537801A publication Critical patent/JP2004537801A/en
Application granted granted Critical
Publication of JP3949106B2 publication Critical patent/JP3949106B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

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

Description

発明の詳細な説明Detailed Description of the Invention

本発明は、広義にはデータ処理システムの技術分野に関し、特に、無許可使用に対して前記データ処理システム上で実行されるソフトウェアを保護する手段を目的とする。   The present invention relates generally to the technical field of data processing systems, and more particularly to means for protecting software executing on the data processing system against unauthorized use.

本発明の主題は、特に、処理/記憶ユニットを使用して無許可使用に対してソフトウェアを保護する手段の提供を特に目的とする。このようなユニットは、USBポート上のチップカードまたは実体キーによって一般的に実現されている。   The subject of the invention is in particular aimed at providing means for protecting software against unauthorized use using a processing / storage unit. Such a unit is generally realized by a chip card or a substance key on a USB port.

上記の技術分野において、主要な問題は、許諾権に対する支払をしていないユーザによるソフトウェアの無許可使用に関するものである。このソフトウェアの不法使用は、ソフトウェア編集者、ソフトウェア販売者、および/または、そのようなソフトウェアを製品にまとめるいかなる者にとっても明らかな損失を引き起こす。このような不法コピーを防止するため、最新の技術では、ソフトウェアを保護するために種々の解決法が提案されている。   In the above technical field, the main problem is related to unauthorized use of software by users who have not paid for the license. This illegal use of software causes obvious losses for software editors, software sellers, and / or anyone who bundles such software into a product. In order to prevent such illegal copying, the latest technology has proposed various solutions to protect the software.

例えば、保護キーまたは「ドングル」と称する物理コンポーネントのような、ハードウェア保護システムを利用する保護の解決法が知られている。このような保護キーは、キーの存在時にのみソフトウェアが実行されることを保証しなければならない。しかし、この解決法は、回避しやすいという不都合を生じるので有効でない。悪意者あるいはハッカーが、逆アセンブラのような特殊ツールの助けを借りて、保護キーの制御命令を削除する可能性がある。その場合、ソフトウェアの改変バージョンに対応する不法コピーを保護なしで実行可能にすることが可能となる。さらに、同一システムに2個より多くの保護キーを接続することが困難であるため、この解決法をすべてのソフトウェアに一般化することはできない。   Protection solutions are known that make use of hardware protection systems, for example physical components called protection keys or “dongles”. Such a protection key must ensure that the software is executed only in the presence of the key. However, this solution is not effective because it has the disadvantage of being easy to avoid. A Service-to-Self or a hacker may delete the protection key control command with the help of a special tool such as a disassembler. In that case, an illegal copy corresponding to a modified version of the software can be executed without protection. Furthermore, this solution cannot be generalized to all software because it is difficult to connect more than two protection keys to the same system.

本発明の主題は、正確には、処理/記憶ユニットを使用して、ソフトウェアが完全に機能するためにこのようなユニットの存在が必要であるようにして、無許可使用に対してソフトウェアを保護するプロセスを提案することにより、上記の問題点に対する解決法を見出すことを目的とする。   The subject of the present invention is precisely using a processing / storage unit to protect the software against unauthorized use, such that the presence of such a unit is necessary for the software to be fully functional. The purpose is to find a solution to the above problem by proposing a process to do.

このような目標を達成するため、本発明の主題は、少なくとも処理手段および記憶手段を含む少なくとも1つのブランクユニットを使用して、ソースから生成されてデータ処理システム上で作動するバルナラブル・ソフトウェアをその無許可使用に対して保護することに関する。本発明によるプロセスは、:
→保護フェーズの間に、
・− 基本機能がユニットにおいて実行され得る基本関数のセット、
− および、前記基本関数のセットに対する基本コマンドであり、データ処理システムで実行され、ユニットにおける実行をトリガし得る前記基本コマンドのセット、
を定義すること、
・ 前記セットの基本関数を実行することができるユニットに変換することが可能な活用手段を構築すること(前記基本関数の実行はデータ処理システムにおける実行によってトリガされる)、
・ 被保護ソフトウェアを、
− バルナラブル・ソフトウェアの実行の間に、少なくとも1つのオペランドを使用し、少なくとも1つの結果を取得することが可能な少なくとも1つのアルゴリズム処理を選択することによって、
− 少なくとも1つの選択されたアルゴリズム処理を含む、バルナラブル・ソフトウェアのソースの少なくとも1つの部分を選択することによって、
− 被保護ソフトウェアのソースの少なくとも1つの変更された部分を取得するために、バルナラブル・ソフトウェアのソースの少なくとも1つの選択された部分を変更することで、バルナラブル・ソフトウェアのソースから被保護ソフトウェアのソースを作成すること(この変更は、
>被保護ソフトウェアの実行中に、第1の実行パートがデータ処理システムで実行され、第2の実行パートが情報のアップロードの後にブランクユニットから取得されるユニットで実行され、
>少なくとも1つの選択されたアルゴリズム処理の少なくとも機能が、第2実行パートによって実行され、
>少なくとも1つの選択されたアルゴリズム処理が分割され、これにより保護されたソフトウェアの実行の間に前記アルゴリズム処理が基本関数を用いて第2実行パートによって実行され、
>少なくとも1つの選択されたアルゴリズム処理に対して、基本コマンドが被保護ソフトウェアのソースに統合され、これにより被保護ソフトウェア実行の間に、各々の基本コマンドが第1の実行パートにより実行され、ユニットにおいて基本関数の第2実行パートによる実行をトリガし、
>基本コマンドのシーケンスが被保護ソフトウェアの実行を可能にするシーケンスのセットのうちから選択される、
ような変更である)によって、
− および、
> 保護されたソフトウェアのソースからの被保護ソフトウェアの第1オブジェクトパート(前記第1オブジェクトパートは、被保護ソフトウェアの実行の間中に第1実行パートが現れるようなオブジェクトパートであり、第1実行パートはデータ処理システムで実行され、その少なくとも1つの部分は選択されたシーケンスに従って基本コマンドが実行されることを考慮する)、
> および、活用手段を含む保護ソフトウェアの第2オブジェクトパートであり、ブランクユニットへのアップロードの後、保護ソフトウェアの実行中に、第1実行パートによってトリガされた基本関数が実行されることによって、第2実行パートが現れるようなもの、
を生成することによって、
作成すること、
・ および、ユニットを得る目的で、ブランクユニットに第2オブジェクトパートをアップロードすること、を含み、
→ 保護ソフトウェアが実行される活用フェーズの間に、
・ ユニットの存在時に、第1実行パートの一部分に含まれる基本コマンドが要求するたびに、ユニットで対応する基本関数を実行することにより、該部分が正しく実行され、結果として、被保護ソフトウェアが完全に機能するようにすること、
・ および、ユニットの不存在時に、ユニットにおける基本関数の実行をトリガすることを求める第1実行パートの一部分による要求にもかかわらず、該要求を満たすことができないことにより、少なくとも該部分が正しく実行されず、結果として、被保護ソフトウェアが完全に機能しないようにすること、
を含む。
In order to achieve such a goal, the subject of the present invention is the use of at least one blank unit comprising at least processing means and storage means to enable the varnarable software to be generated from a source and run on a data processing system. It relates to protecting against unauthorized use. The process according to the invention consists of:
→ During the protection phase
A set of basic functions whose basic functions can be executed in the unit,
-And a set of basic commands that are basic commands for the set of basic functions and that can be executed in a data processing system and trigger execution in a unit;
Defining
Building a lever that can be transformed into a unit capable of executing the set of basic functions (execution of the basic functions is triggered by execution in a data processing system);
・ Protected software
By selecting at least one algorithm processing capable of using at least one operand and obtaining at least one result during the execution of the balnarable software,
-By selecting at least one part of the source of the balnarable software, including at least one selected algorithm processing;
-The source of protected software from the source of valarable software by modifying at least one selected portion of the source of valarable software to obtain at least one modified part of the source of protected software; (This change is
> During execution of the protected software, the first execution part is executed in the data processing system and the second execution part is executed in the unit obtained from the blank unit after uploading the information,
> At least one function of at least one selected algorithm processing is performed by the second execution part;
> At least one selected algorithm processing is divided, so that during the execution of the protected software, said algorithm processing is executed by the second execution part using a basic function;
> For at least one selected algorithm processing, basic commands are integrated into the protected software source so that during the protected software execution, each basic command is executed by the first execution part, Trigger the execution by the second execution part of the basic function in
> A sequence of basic commands is selected from a set of sequences that allow execution of protected software;
Change)
− And
A first object part of protected software from a source of protected software (the first object part is an object part in which the first execution part appears during execution of the protected software; Part is executed in the data processing system, at least one part of which takes into account that the basic command is executed according to the selected sequence),
> And the second object part of the protection software including the exploitation means, and after the upload to the blank unit, the basic function triggered by the first execution part is executed during the execution of the protection software. 2 Things that appear as an execution part
By generating
Creating,
And uploading the second object part to the blank unit for the purpose of obtaining the unit,
→ During the utilization phase when the protection software is executed,
-When a basic command included in a part of the first execution part is requested in the presence of the unit, the corresponding basic function is executed in the unit, so that the part is executed correctly. As a result, the protected software is completely To make it work,
And, in the absence of the unit, at least the part executes correctly because it cannot satisfy the request despite the request by the part of the first execution part that seeks to trigger the execution of the basic function in the unit. And as a result, ensure that the protected software is not fully functional,
including.

好ましい実施例によれば、本発明によるプロセスは:
→ 保護フェーズの間に、
・ 被保護ソフトウェアを、
− 被保護ソフトウェアの実行中に、被保護ソフトウェアの状態を部分的に規定する、少なくとも1つの選択されたアルゴリズム処理で使用される少なくとも1つの変数を選択することによって、
− 被保護ソフトウェアのソースの少なくとも1つの選択された部分を変更すること(この変更は、被保護ソフトウェアの実行中に、少なくとも1つの選択された変数または選択された変数の少なくとも1つのコピーがユニットに存在するような変更である)によって、
− および、
> 被保護ソフトウェアの第1オブジェクトパートであり、被保護ソフトウェアの実行中に、第1実行パートの少なくとも1つの部分が、少なくとも1つの変数または変数の少なくとも1つのコピーがユニットに存在することも考慮するようなもの、
> および、被保護ソフトウェアの第2オブジェクトパートであり、ユニットへのアップロード後、被保護ソフトウェアの実行中に、第2実行パートが現れ、それによって、少なくとも1つの選択された変数または選択された変数の少なくとも1つのコピーがユニットにも存在するようになるようなもの、
を生成することによって、
変更すること、
を含み、
→ 使用フェーズの間に、
・ ユニットの存在時に、第1実行パートの一部分が要求するたびに、ユニット内に存在する変数または変数のコピーを使用することにより、該部分が正しく実行され、結果として、被保護ソフトウェアが完全に機能するようにすること、
・ および、ユニットの不存在時に、ユニットに存在する変数または変数のコピーを使用することを求める第1実行パートの一部分による要求にもかかわらず、該要求を正しく満たすことができないことにより、少なくとも該部分が正しく実行されず、結果として、被保護ソフトウェアが完全に機能しないようにすること、
を含む。
According to a preferred embodiment, the process according to the invention is:
→ During the protection phase,
・ Protected software
-During execution of the protected software, by selecting at least one variable used in at least one selected algorithm process that partially defines the state of the protected software;
-Changing at least one selected part of the source of protected software (this change means that at least one selected variable or at least one copy of the selected variable is a unit during execution of the protected software); Is a change that exists in
− And
> Is the first object part of the protected software, and during execution of the protected software, at least one part of the first execution part also considers that at least one variable or at least one copy of the variable exists in the unit Something to do,
> And the second object part of the protected software, and after uploading to the unit, during execution of the protected software, the second execution part appears, whereby at least one selected variable or selected variable Such that at least one copy of is also present in the unit,
By generating
Changing,
Including
→ During the usage phase
Whenever a part of the first execution part requests in the presence of a unit, it uses the variable or copy of the variable that exists in the unit to execute it correctly, and as a result, the protected software is completely To make it work,
And, in the absence of the unit, despite the request by the part of the first execution part that seeks to use a variable or a copy of the variable that exists in the unit, To ensure that the protected software is not fully functional as a result,
including.

もう1つの好ましい実施形態によれば、本発明によるプロセスは:
→ 保護フェーズの間に、
・− ユニットで少なくとも部分的に監視され得る少なくとも1つのソフトウェア実行特性、
− 少なくとも1つのソフトウェア実行特性が遵守すべき少なくとも1つの基準、
− ユニットで実施され、少なくとも1つのソフトウェア実行特性が少なくとも1つの関連する基準を遵守していないことを検出することが可能な検出手段、
− および、ユニットで実施され、少なくとも1つの基準が遵守されていない時、データ処理システムに通知し、および/または、ソフトウェアの実行を変更することが可能な強制手段、
を定義すること、
・ ユニットが検出手段および強制手段を実施することも可能にする活用手段を構築すること、
・ および、被保護ソフトウェアを、
− 監視され得るソフトウェア実行特性のうちから、監視すべき少なくとも1つのソフトウェア実行特性を選択することによって、
− 少なくとも1つの選択されたソフトウェア実行特性が遵守すべき少なくとも1つの基準を選択することによって、
− 被保護ソフトウェアのソース中で、少なくとも1つの選択されたソフトウェア実行特性が監視されるべき基本関数を選択することによって、
− 被保護ソフトウェアのソースの少なくとも1つの選択された部分を変更すること(この変更は、被保護ソフトウェアの実行中に、少なくとも1つの選択された実行特性が第2実行パートによって監視され、基準が遵守されていないことが、データ処理システムへの通知、および/または、被保護ソフトウェアの実行の変更につながるような変更である)によって、
− および、検出手段および強制手段も実施する活用手段を含む被保護ソフトウェアの第2オブジェクトパートを生成すること(前記第2オブジェクトパートは、ユニットへのアップロード後、被保護ソフトウェアの実行中に、少なくとも1つの第1ソフトウェア実行特性が監視され、基準が遵守されていないことが、データ処理システムへの通知、および/または、被保護ソフトウェアの実行の変更につながるようなオブジェクトパートである)によって、
変更すること、
を含み、
→ 使用フェーズの間に、
・ ユニットの存在時に、
− 被保護ソフトウェアのすべての変更された部分のすべての監視されている実行特性に対応するすべての基準が遵守されている限り、被保護ソフトウェアの前記部分が名目通り作動し、結果として被保護ソフトウェアが名目通り作動することを可能にすること、
− および、被保護ソフトウェアの一部分の監視されている実行特性に対応する少なくとも1つの基準が遵守されていない場合、それをデータ処理システムに通知し、および/または、被保護ソフトウェアの部分の機能を変更して、被保護ソフトウェアの機能が変更されるようにすること、
を含む。
According to another preferred embodiment, the process according to the invention comprises:
→ During the protection phase,
-At least one software execution characteristic that can be at least partially monitored by the unit,
-At least one standard to be observed by at least one software execution characteristic;
A detection means implemented in the unit and capable of detecting that at least one software execution characteristic does not comply with at least one relevant criterion;
-And enforcement means that can be implemented in the unit and notify the data processing system and / or change the execution of the software when at least one criterion is not complied with;
Defining
Building a means of utilization that allows the unit to implement detection and enforcement means;
・ And the protected software
-By selecting at least one software execution characteristic to be monitored from among the software execution characteristics that can be monitored;
-By selecting at least one criterion that at least one selected software execution characteristic should comply with;
-By selecting a basic function in the source of protected software that at least one selected software execution characteristic is to be monitored;
-Changing at least one selected part of the source of protected software (this change means that during execution of the protected software, at least one selected execution characteristic is monitored by the second execution part and the criteria are Non-compliance is a change that leads to a notification to the data processing system and / or a change in the execution of protected software)
-And generating a second object part of the protected software including a utilization means that also implements the detection means and the forcing means (the second object part is at least during execution of the protected software after uploading to the unit) One primary software execution characteristic is monitored and failure to comply with standards is an object part that leads to notification to the data processing system and / or changes in the execution of protected software)
Changing,
Including
→ During the usage phase
・ When the unit exists,
-As long as all standards corresponding to all monitored execution characteristics of all modified parts of protected software are observed, said part of protected software operates nominally and as a result Enabling the to operate nominally,
And if the at least one standard corresponding to the monitored execution characteristics of a part of the protected software is not observed, this is notified to the data processing system and / or the function of the part of the protected software is To change the functionality of the protected software,
including.

変形実施形態によれば、本発明によるプロセスは:
→ 保護フェーズの間に、
・− 監視され得るソフトウェア実行特性として、ソフトウェアの機能の使用状況の計測変数、
− 遵守すべき基準として、各計測変数に関連する少なくとも1つのしきい値、
− および、少なくとも1つの計測変数を更新することが可能な有効化手段、
を定義すること、
・ ユニットが有効化手段を実施することも可能にする活用手段を構築すること、
・ および、被保護ソフトウェアを、
− 監視すべきソフトウェア実行特性として、ソフトウェアの少なくとも1つの機能の使用状況の少なくとも1つの計測変数を選択することによって、
−> 計測変数を使用して使用が監視され得る被保護ソフトウェアの少なくとも1つの機能、
> 前記機能の使用状況を定量化するために使用される少なくとも1つの計測変数、
> 前記機能の使用限度に対応する選択された計測変数に関連する少なくとも1つのしきい値、
> および、前記機能の使用状況に依存する選択された計測変数の少なくとも1つの更新方法、
を選択することによって、
− および、被保護ソフトウェアのソースの少なくとも1つの選択された部分を変更すること(この変更は、被保護ソフトウェアの実行中に、計測変数が前記機能の使用状況に依存する第2実行パートによって実現され、少なくとも1つのしきい値超過が考慮されるような変更である)によって、
を変更すること、
を含み、
→ 使用フェーズの間に、ユニットの存在時に、そして少なくとも1つの使用限度に対応する少なくとも1つのしきい値超過が検出された場合に、それをデータ処理システムに通知し、および/または、被保護ソフトウェアの部分の機能を変更して、被保護ソフトウェアの機能が変更されるようにすること、
を含む。
According to a variant embodiment, the process according to the invention is:
→ During the protection phase,
-As software execution characteristics that can be monitored, measurement variables for the usage of software functions,
-As a criterion to be observed, at least one threshold value associated with each measurement variable,
-And enabling means capable of updating at least one measurement variable,
Defining
-Building a means of use that will allow the unit to implement the enabling means;
・ And the protected software
-By selecting at least one measurement variable of usage of at least one function of the software as a software execution characteristic to be monitored;
-> At least one function of protected software whose use can be monitored using measurement variables,
> At least one measurement variable used to quantify the usage of the function,
> At least one threshold value associated with the selected measurement variable corresponding to the use limit of the function;
> And at least one method of updating the selected measurement variable depending on the usage of the function,
By selecting
-And changing at least one selected part of the source of the protected software (this change is realized by a second execution part during execution of the protected software, whose measurement variables depend on the usage of the function) Is such that at least one threshold crossing is taken into account)
Changing the
Including
→ During the usage phase, notify the data processing system and / or protect it when the unit is present and if at least one threshold excess corresponding to at least one usage limit is detected Changing the function of the software part to change the function of the protected software,
including.

変形実施形態によれば、本発明によるプロセスは:
→ 保護フェーズの間に、
・− 少なくとも1つの計測変数について、いくつかの関連するしきい値、
− および、前記しきい値のそれぞれに対応する相異なる強制手段、
を定義すること、
・ および、被保護ソフトウェアを、
− 被保護ソフトウェアのソース中で、機能の相異なる使用限度に対応するいくつかのしきい値が関連づけられなければならない少なくとも1つの選択された計測変数を選択することによって、
− 選択された計測変数に関連する少なくとも2つのしきい値を選択することによって、
− および、被保護ソフトウェアのソースの少なくとも1つの選択された部分を変更すること(この変更は、被保護ソフトウェアの実行中に、種々のしきい値の超過が第2実行パートによって別様に考慮されるような変更である)によって、
変更すること、
を含み、
→ 使用フェーズの間に、
・ ユニットの存在時に、
− 第1しきい値の超過が検出された場合、被保護ソフトウェアに対して、対応する機能をそれ以上使用しないように命じること、
− 第2しきい値の超過が検出された場合、被保護ソフトウェアの対応する機能、および/または、少なくとも一部分を無効にすること、
を含む。
According to a variant embodiment, the process according to the invention is:
→ During the protection phase,
-Several relevant thresholds for at least one measurement variable,
-And different forcing means corresponding to each of said threshold values,
Defining
・ And the protected software
-By selecting at least one selected measurement variable in the source of the protected software, to which several threshold values corresponding to different usage limits of the function must be associated,
-By selecting at least two threshold values associated with the selected measurement variable,
-And changing at least one selected part of the source of the protected software (this change is considered differently by the second execution part when various thresholds are exceeded during execution of the protected software) Change)
Changing,
Including
→ During the usage phase
・ When the unit exists,
-Commanding the protected software not to use the corresponding function any more when the first threshold is exceeded,
-Disabling a corresponding function and / or at least part of the protected software if a second threshold is exceeded,
including.

変形実施形態によれば、本発明によるプロセスは:
→ 保護フェーズの間に、
・ 計測変数によって監視される少なくとも1つのソフトウェア機能に少なくとも1つの追加使用を認めることが可能な補充手段を定義すること、
・ ユニットが補充手段を実施することも可能にする活用手段を構築すること、
・ および、被保護ソフトウェアを、
− 被保護ソフトウェアのソース中で、少なくとも1つの追加使用を認めることができなければならない機能の使用を制限することが可能な少なくとも1つの選択された計測変数を選択することによって、
− および、少なくとも1つの選択された部分を変更すること(この変更は、補充フェーズと呼ばれるフェーズの間、選択された計測変数に対応する少なくとも1つの機能の少なくとも1つの追加使用が認められるような変更である)によって、
変更すること、
を含み、
→ 補充フェーズの間に、
・機能の少なくとも1つの追加使用を可能にするために、少なくとも1つの選択された計測変数、および/または、少なくとも1つの関連するしきい値を再有効化すること、
を含む。
According to a variant embodiment, the process according to the invention is:
→ During the protection phase,
Defining replenishment means that can allow at least one additional use for at least one software function monitored by a measurement variable;
-Building a means of use that will allow the unit to implement replenishment means;
・ And the protected software
-By selecting at least one selected measurement variable that can limit the use of at least one additional function that must be allowed to be permitted in the source of the protected software;
-And changing at least one selected part (this change is such that at least one additional use of at least one function corresponding to the selected measurement variable is permitted during a phase called the replenishment phase) Change)
Changing,
Including
→ During the replenishment phase
Re-enabling at least one selected measurement variable and / or at least one associated threshold to allow at least one additional use of the function;
including.

変形実施形態によれば、本発明によるプロセスは:
→ 保護フェーズの間に、
・− 監視され得るソフトウェア実行特性として、ソフトウェア使用状況プロファイル、
− および、遵守すべき基準として、少なくとも1つのソフトウェア実行特徴、
を定義すること、
・ および、被保護ソフトウェアを、
− 少なくとも1つのソフトウェア使用状況プロファイルを監視することをソフトウェア実行特性として選択することによって、
− 少なくとも1つの選択された使用状況プロファイルが遵守しなければならない少なくとも1つの実行特徴を選択することによって、
− および、被保護ソフトウェアのソースの少なくとも1つの選択された部分を変更すること(この変更は、被保護ソフトウェアの実行中に、第2実行パートがすべての選択された実行特徴を遵守しなければならないような変更である)によって、
変更すること、
を含み、
→ 使用フェーズの間に、ユニットの存在時に、そして少なくとも1つの実行特徴が遵守されていないことが検出された場合に、それをデータ処理システムに通知し、および/または、被保護ソフトウェアの部分の機能を変更して、被保護ソフトウェアの機能が変更されるようにすること、
を含む。
According to a variant embodiment, the process according to the invention is:
→ During the protection phase,
-Software usage profiles as software execution characteristics that can be monitored,
-And at least one software execution feature as a standard to be observed,
Defining
・ And the protected software
-By selecting as a software execution characteristic to monitor at least one software usage profile;
-By selecting at least one execution feature that at least one selected usage profile must comply with;
-And changing at least one selected part of the source of protected software (if the second execution part does not comply with all selected execution features during execution of the protected software) Is a change that would not be possible)
Changing,
Including
→ during the use phase, notify the data processing system in the presence of the unit and if it is detected that at least one execution feature has not been observed and / or Changing the function to change the function of the protected software,
including.

変形実施形態によれば、本発明によるプロセスは:
→ 保護フェーズの間に、
・− ユニットで実行され得る命令のセット、
− 前記命令セットに対する命令コマンドのセットであり、データ処理システムで実行され、ユニットで命令の実行をトリガし得る前記命令コマンドのセット、
− 使用状況プロファイルとして、命令の連鎖、
− 実行特徴として、命令の実行に対して期待される連鎖、
− 検出手段として、命令の連鎖が期待されるものに対応しないことを検出することが可能な手段、
− および、強制手段として、命令の連鎖が期待されるものに対応しない場合にデータ処理システムに通知し、および/または、被保護ソフトウェアの部分の機能を変更することが可能な手段、
を定義すること、
・ ユニットが命令セットの命令を実行することも可能にする活用手段を構築すること(該命令の実行はデータ処理システムにおける命令コマンドの実行によりトリガされる)、
・ および、被保護ソフトウェアを、
− 被保護ソフトウェアのソースの少なくとも1つの選択された部分を、
> 基本関数を命令に変換することによって、
> 命令の少なくとも一部分がユニットにおけるそれらの実行中に遵守しなければならない連鎖を指定することによって、
> および、基本コマンドを、使用される命令に対応する命令コマンドに変換することによって、
変更することによって、
変更すること、
を含み、
→ 使用フェーズの間に、ユニットの存在時に、ユニットで実行される命令の連鎖が期待されるものに対応しないことが検出された場合に、それをデータ処理システムに通知し、および/または、被保護ソフトウェアの部分の機能を変更して、被保護ソフトウェアの機能が変更されるようにすること、
を含む。
According to a variant embodiment, the process according to the invention is:
→ During the protection phase,
A set of instructions that can be executed on the unit,
A set of instruction commands for said instruction set, said instruction command set being executed in a data processing system and capable of triggering execution of instructions in a unit;
-As a usage profile, a chain of instructions,
-As an execution feature, the expected chain for the execution of the instruction;
-Means capable of detecting that the chain of instructions does not correspond to what is expected, as detection means;
And, as a forcing means, means capable of notifying the data processing system when the chain of instructions does not correspond to what is expected and / or changing the function of the protected software part,
Defining
Building a lever that also allows the unit to execute instructions of the instruction set (execution of the instructions is triggered by execution of instruction commands in the data processing system);
・ And the protected software
-At least one selected part of the source of protected software,
> By converting basic functions into instructions,
> By specifying the chain at least part of the instructions must comply during their execution in the unit,
> And by converting the basic command into an instruction command corresponding to the instruction used,
By changing
Changing,
Including
→ During the usage phase, if the unit is present, if it is detected that the chain of instructions executed on the unit does not correspond to what is expected, it is notified to the data processing system and / or Changing the function of the protected software part to change the function of the protected software,
including.

変形実施形態によれば、本発明によるプロセスは:
→ 保護フェーズの間に、
・− 命令セットとして、少なくとも一部分の命令がレジスタと連携し、結果を返す目的で少なくとも1つのオペランドを使用する命令セット、
− レジスタと連携する少なくとも一部分の命令について、
> 命令の機能を定義するパート、 > および、命令の実行に対する期待される連鎖を定義するパート、
(前記パートは、
◇ 命令の識別フィールド、
◇ および、命令の各オペランドごとに、
* フラグフィールド、
* および、オペランドの期待される識別フィールド、
に対応するビットフィールドを含むパート)、
− 活用手段に属し命令セットによって使用される各レジスタごとに、該レジスタ内にその結果を返した最後の命令の識別が自動的に記憶される生成識別フィールド、
− 検出手段として、命令の実行中に、各オペランドごとに、フラグフィールドが要求する時に、該オペランドによって使用されるレジスタに対応する生成識別フィールドと、該オペランドの出所の期待される識別フィールドとの等値性をチェックすることが可能な手段、
− および、強制手段として、チェックされた等値性の少なくとも1つが偽である場合に、命令の結果を変更することが可能な手段、
を定義すること、
を含む。
According to a variant embodiment, the process according to the invention is:
→ During the protection phase,
-An instruction set in which at least a part of the instructions works with a register and uses at least one operand to return a result, as an instruction set;
-For at least some instructions that work with registers
> A part that defines the function of the instruction,> and a part that defines the expected chain for execution of the instruction,
(The part is
◇ Instruction identification field,
◇ And for each operand of the instruction,
* Flag field,
* And the expected identification field of the operand,
Part containing a bit field corresponding to
A generated identification field for each register used by the instruction set belonging to the exploitation means in which the identification of the last instruction that returned the result is automatically stored in the register;
As a means of detection, for each operand during execution of the instruction, when the flag field requires, the generated identification field corresponding to the register used by the operand and the expected identification field from which the operand originated; Means capable of checking equality,
And, as a forcing means, means capable of changing the result of the instruction if at least one of the checked equivalences is false,
Defining
including.

もう1つの好ましい実施形態によれば、本発明によるプロセスは:
→ 保護フェーズの間に、
・− トリガコマンドとして、基本コマンドまたは命令コマンド、
− 従属関数として、基本関数または命令、
− オーダーとして、データ処理システムによってユニットへ送信される情報に少なくとも部分的に対応し、対応する従属関数の実行をトリガするようなトリガコマンドに対する少なくとも1つの引数、
− リネームされたオーダーを有するトリガコマンドを取得するように、オーダーをリネームすることが可能なオーダーをリネームする方法、
− および、使用フェーズの間にユニットで使用されるように設計され、リネームされたオーダーから実行すべき従属関数を復元することが可能な復元手段、
を定義すること、
・ ユニットが復元手段を実施することも可能にする活用手段を構築すること、
・ および、被保護ソフトウェアを、
− 被保護ソフトウェアのソース中でトリガコマンドを選択することによって、
− 対応する従属関数の識別を隠蔽するように、選択されたトリガコマンドのオーダーをリネームすることによって被保護ソフトウェアのソースの少なくとも1つの選択された部分を変更することによって、
− および、
> 被保護ソフトウェアの第1オブジェクトパートであり、被保護ソフトウェアの実行中に、リネームされたオーダーを有するトリガコマンドが実行されるようなもの、
> および、復元手段も実施する活用手段を含む被保護ソフトウェアの第2オブジェクトパートであり、ユニットへのアップロード後、被保護ソフトウェアの実行中に、その実行が第1実行パートによりトリガされる従属関数の識別が第2実行パートによって復元され、従属関数が第2実行パートによって実行されるようなもの、
を生成することによって、
変更すること、
を含み、
→ 使用フェーズの間に、
・ ユニットの存在時に、第1実行パートの一部分に含まれるリネームされたオーダーを有するトリガコマンドが要求するたびに、対応する従属関数の識別をユニットで復元し、該部分が正しく実行されることにより、結果として、被保護ソフトウェアが完全に機能するようにすること、
・ および、ユニットの不存在時に、ユニットにおける従属関数の実行をトリガすることを求める第1実行パートの一部分による要求にもかかわらず、該要求を正しく満たすことができないことにより、少なくとも該部分が正しく実行されず、結果として、被保護ソフトウェアが完全に機能しないようにすること、
を含む。
According to another preferred embodiment, the process according to the invention comprises:
→ During the protection phase,
-Basic command or command command as trigger command,
-A basic function or instruction as a dependent function,
-At least one argument to a trigger command which, as an order, corresponds at least in part to the information sent to the unit by the data processing system and triggers the execution of the corresponding dependent function;
-A method of renaming an order capable of renaming an order so as to obtain a trigger command having a renamed order;
And a restoration means designed to be used in the unit during the use phase and capable of restoring dependent functions to be executed from the renamed order,
Defining
-Building a means of utilization that will allow the unit to implement the means of restoration;
・ And the protected software
-By selecting a trigger command in the source of the protected software,
By changing at least one selected part of the source of the protected software by renaming the order of the selected trigger command so as to hide the identification of the corresponding dependent function
− And
> The first object part of the protected software, such that a trigger command with the renamed order is executed during execution of the protected software;
And a dependent function whose execution is triggered by the first execution part during execution of the protected software after uploading to the unit, including a utilization means that also implements the restoration means Such that the identity is restored by the second execution part and the dependent function is executed by the second execution part,
By generating
Changing,
Including
→ During the usage phase
-Each time a trigger command with a renamed order included in a part of the first execution part requests in the presence of a unit, the corresponding dependent function identification is restored in the unit and the part is executed correctly. As a result, ensuring that the protected software is fully functional,
And in the absence of the unit, despite the request by the part of the first execution part that seeks to trigger the execution of the dependent function in the unit, the request cannot be satisfied correctly, so that at least the part is correctly Not be executed and, as a result, prevent protected software from fully functioning,
including.

変形実施形態によれば、本発明によるプロセスは:
→ 保護フェーズの間に、
・ 少なくとも1つの従属関数について、アルゴリズム的に等価であるが、そのリネームされたオーダーが異なるトリガコマンドによってトリガされる従属関数群を定義すること、
・ および、被保護ソフトウェアを、
− 被保護ソフトウェアのソース中で、リネームされたオーダーを有する少なくとも1つのトリガコマンドを選択することによって、
− および、リネームされたオーダーを有する1つの選択されたトリガコマンドの少なくともリネームされたオーダーを、同じ群の従属関数をトリガする別のリネームされたオーダーと置換することにより、被保護ソフトウェアのソースの少なくとも1つの選択された部分を変更することによって、
変更すること、
を含む。
According to a variant embodiment, the process according to the invention is:
→ During the protection phase,
Defining a set of dependent functions that are algorithmically equivalent for at least one dependent function, but whose renamed order is triggered by a different trigger command;
・ And the protected software
-By selecting at least one trigger command with the renamed order in the source of protected software;
-And by replacing at least the renamed order of one selected trigger command with the renamed order with another renamed order that triggers the same group of dependent functions, By changing at least one selected part
Changing,
including.

変形実施形態によれば、本発明によるプロセスは:
→ 保護フェーズの間に、少なくとも1つの従属関数について、アルゴリズム的に等価な従属関数群を、
− ユニットで実行すべき従属関数の機能パートを定義する情報にノイズフィールドを連結することによって、
− または、命令の識別フィールドおよびオペランドの期待される識別フィールドを使用することによって、
定義すること、
を含む。
According to a variant embodiment, the process according to the invention is:
→ During the protection phase, a group of dependent functions that are algorithmically equivalent for at least one dependent function,
-By concatenating the noise field to the information defining the functional part of the dependent function to be executed in the unit,
Or alternatively, by using the instruction's identification field and the expected identification field of the operand,
Defining,
including.

変形実施形態によれば、本発明によるプロセスは:
→ 保護フェーズの間に、
・− オーダーをリネームする方法として、オーダーを暗号化する暗号化方法、
− および、復元手段として、リネームされたオーダーを復号化することによりユニットで実行すべき従属関数の識別を復元する復号化方法を実施する手段、
を定義すること、
を含む。
According to a variant embodiment, the process according to the invention is:
→ During the protection phase,
・-As an order renaming method, an encryption method to encrypt the order,
-And means for implementing as a restoring means a decoding method for restoring the identity of the dependent function to be executed in the unit by decoding the renamed order;
Defining
including.

もう1つの好ましい実施形態によれば、本発明によるプロセスは:
→ 保護フェーズの間に、
・ 被保護ソフトウェアを、
− 被保護ソフトウェアのソース中で、少なくとも1つの選択されたアルゴリズム処理で実行される少なくとも1つの条件分岐を選択することによって、
− 被保護ソフトウェアのソースの少なくとも1つの選択された部分を変更すること(この変更は、被保護ソフトウェアの実行中に、少なくとも1つの選択された条件分岐の機能が、ユニットで、第2実行パートによって実行されるような変更である)によって、
− および、
> 被保護ソフトウェアの第1オブジェクトパートであり、被保護ソフトウェアの実行中に、少なくとも1つの選択された条件分岐の機能がユニットで実行されるようなもの、
> 被保護ソフトウェアの第2オブジェクトパートであり、ユニットへのアップロード後、被保護ソフトウェアの実行中に、第2実行パートが現れ、それによって、少なくとも1つの選択された条件分岐の機能が実行されるようなもの、
を生成することによって、
変更すること、
を含み、
→ 使用フェーズの間に、
・ ユニットの存在時に、第1実行パートの一部分が要求するたびに、ユニットで少なくとも1つの条件分岐の機能を実行することにより、該部分が正しく実行され、結果として、被保護ソフトウェアが完全に機能するようにすること、
・ および、ユニットの不存在時に、ユニットで条件分岐の機能を実行することを求める第1実行パートの一部分による要求にもかかわらず、該要求を正しく満たすことができないことにより、少なくとも該部分が正しく実行されず、結果として、被保護ソフトウェアが完全に機能しないようにすること、
を含む。
According to another preferred embodiment, the process according to the invention comprises:
→ During the protection phase,
・ Protected software
-By selecting at least one conditional branch executed in at least one selected algorithm processing in the source of protected software;
-Changing at least one selected part of the source of the protected software (this change means that during execution of the protected software, the function of at least one selected conditional branch is Is a change as performed by
− And
> The first object part of the protected software, such that at least one selected conditional branch function is executed in the unit during the execution of the protected software;
> The second object part of the protected software, after uploading to the unit, the second execution part appears during the execution of the protected software, thereby executing the function of at least one selected conditional branch Something like,
By generating
Changing,
Including
→ During the usage phase
Whenever a part of the first execution part requests in the presence of the unit, the unit executes the function of at least one conditional branch, so that the part is executed correctly and as a result, the protected software is fully functional To do,
And, in the absence of the unit, despite the request by the part of the first execution part that asks the unit to execute the function of the conditional branch, the request cannot be satisfied correctly, so that at least the part is correctly Not be executed and, as a result, prevent protected software from fully functioning,
including.

変形実施形態によれば、本発明によるプロセスは、保護フェーズの間に、被保護ソフトウェアを、
− 被保護ソフトウェアのソース中で、少なくとも1つの選択された条件分岐系列を選択することによって、
− 被保護ソフトウェアのソースの少なくとも1つの選択された部分を変更すること(この変更は、被保護ソフトウェアの実行中に、少なくとも1つの選択された条件分岐系列の全機能が、ユニットで、第2実行パートによって実行されるような変更である)によって、
− および、
> 被保護ソフトウェアの第1オブジェクトパートであり、被保護ソフトウェアの実行中に、少なくとも1つの選択された条件分岐系列の機能がユニットで実行されるようなもの、
> 被保護ソフトウェアの第2オブジェクトパートであり、ユニットへのアップロード後、被保護ソフトウェアの実行中に、第2実行パートが現れ、それによって、少なくとも1つの選択された条件分岐系列の全機能が実行されるようなもの、
を生成することによって、
変更することを含む。
According to an alternative embodiment, the process according to the present invention, during the protection phase,
-By selecting at least one selected conditional branch sequence in the source of protected software;
-Changing at least one selected part of the source of the protected software (this change means that during execution of the protected software, all functions of the at least one selected conditional branch sequence are Is a change as performed by the execution part)
− And
> The first object part of the protected software, such that at least one function of the selected conditional branching sequence is executed in the unit during the execution of the protected software;
> The second object part of the protected software, after uploading to the unit, the second execution part appears during the execution of the protected software, thereby executing all functions of at least one selected conditional branch sequence Something like
By generating
Including changing.

このように、本発明によるプロセスは、実行されるソフトウェアの一部を含むという特性を示す処理/記憶ユニットを使用することによってソフトウェアの使用を保護することを可能にする。したがって、処理/記憶ユニットなしに作動を試みるソフトウェアのいかなる派生バージョンも、実行中に記憶ユニットに含まれるソフトウェアのその部分を再作成することを要求し、さもなければソフトウェアの該派生バージョンは完全に機能しない。   In this way, the process according to the invention makes it possible to protect the use of software by using a processing / storage unit that exhibits the property of containing a portion of the software to be executed. Thus, any derivative version of software that attempts to operate without a processing / storage unit requires that that part of the software contained in the storage unit be recreated during execution, otherwise the derivative version of the software is completely Does not work.

本発明の主題の限定されない例、実施形態、および実装を示す、添付図面を参照した以下の説明において、その他の様々な特性が明らかとなる。   Various other characteristics will become apparent in the following description, which refers to the accompanying drawings, illustrating non-limiting examples, embodiments, and implementations of the subject matter of the present invention.

以降の説明では、以下の定義を使用する。   In the following description, the following definitions are used.

・ データ処理システム3とは、プログラムを実行できるシステムである。   The data processing system 3 is a system that can execute a program.

・ 処理/記憶ユニットとは、以下を実行できるユニットである。
− データ処理システム3によって提供されるデータを受け取る。
− データをデータ処理システム3に返す。
− ユニットの電源が切れていても、データを少なくとも部分的に秘密に格納し、このデータの少なくとも一部を保持する。
− データに対してアルゴリズム処理を実行し、その結果の一部またはすべてを秘密にする。
A processing / storage unit is a unit that can:
Receiving data provided by the data processing system 3;
Return the data to the data processing system 3;
-Even if the unit is turned off, store the data at least partly secretly and retain at least part of this data.
-Perform algorithmic processing on the data and keep some or all of the results secret.

・ ユニット6は、本発明によるプロセスを実施する処理/記憶ユニットである。   Unit 6 is a processing / storage unit that implements the process according to the invention.

・ ブランクユニット60とは、本発明に従うプロセスを実装しないが、データを受け取り、ユニット6に変換できるユニットである。   A blank unit 60 is a unit that does not implement a process according to the present invention, but can receive data and convert it to unit 6.

・ 事前カスタマイズ済みユニット66とは、データの一部を受け取っているため、補足データを受け取った後にユニット6に変換できるブランクユニット60である。   The pre-customized unit 66 is a blank unit 60 that can be converted to the unit 6 after receiving supplementary data because it has received a portion of the data.

・ 情報をブランクユニット60または事前カスタマイズ済みユニット66へアップロードすることは、情報をブランクユニット60または事前カスタマイズ済みユニット66へ転送し、転送された情報を格納することに相当する。この転送には、情報形式の変更を含むことができる。   -Uploading information to the blank unit 60 or the pre-customized unit 66 is equivalent to transferring the information to the blank unit 60 or the pre-customized unit 66 and storing the transferred information. This transfer can include changing the information format.

・ データ処理システム3に含まれている変数、関数、またはデータを示す場合は大文字を使用し、ユニット6に含まれている変数、関数、またはデータを示す場合は小文字を使用する。   Use capital letters to indicate variables, functions, or data included in the data processing system 3, and use lowercase letters to indicate variables, functions, or data included in the unit 6.

・ 「被保護ソフトウェア」とは、本発明に従うプロセスによって実装された保護原則の少なくとも1つによって保護されているソフトウェアである。   “Protected software” is software that is protected by at least one of the protection principles implemented by the process according to the invention.

・ 「バルナラブル・ソフトウェア」とは、本発明に従うプロセスによって実装された保護原則のいずれによっても保護されていないソフトウェアである。   “Valnarable software” is software that is not protected by any of the protection principles implemented by the process according to the invention.

・ バルナラブル・ソフトウェアと被保護ソフトウェアの違いが重要ではない場合は、「ソフトウェア」という言葉を使用する。   • Use the word “software” when the difference between balnarable software and protected software is not important.

・ ソフトウェアは、そのライフサイクルにおける検討時点(instant considered)に応じて以下の各種表現を持つ。
− ソース表現
− オブジェクト表現
− 配布
− または動的表現
-Software has the following expressions depending on the instant considered in its life cycle.
− Source representation − object representation − distribution − or dynamic representation

・ ソフトウェアのソース表現とは、変換後にオブジェクト表現となる表現である。ソース表現には、概念的な抽象レベルから、データ処理システムまたは処理/記憶ユニットによって直接実行可能なレベルに至るまで、様々なレベルがあり得る。   -Software source expression is an expression that becomes object expression after conversion. The source representation can have various levels, from a conceptual abstraction level to a level that can be directly executed by a data processing system or processing / storage unit.

・ ソフトウェアのオブジェクト表現は、配布への転送とデータ処理システムまたは処理/記憶ユニットへのアップロードの後で、実行できる表現のレベルに相当する。例えば、オブジェクト表現はバイナリコードや解釈されたコードなどであり得る。   The software object representation represents the level of representation that can be performed after transfer to distribution and upload to the data processing system or processing / storage unit. For example, the object representation can be binary code or interpreted code.

・ 配布とはオブジェクト表現を含む物理サポートまたは仮想サポートであり、ソフトウェアを使用するかどうかはユーザに任せなければならない。   Distribution is physical support or virtual support including object representation, and it is up to the user to use the software.

・ 動的表現は、ソフトウェアの配布からのソフトウェアの実行に相当する。   • Dynamic representation corresponds to software execution from software distribution.

・ ソフトウェアの部分とはソフトウェアの一部であり、例えば、1つ以上の連続した命令または連続していない命令、および/または、1つ以上の連続した機能ブロックまたは連続していない機能ブロック、および/または、1つ以上の関数、および/または、1つ以上のサブプログラム、および/または、1つ以上のモジュールであり得る。また、ソフトウェアの部分がソフトウェアすべてに相当することもある。   A software part is a part of the software, for example one or more consecutive or non-consecutive instructions and / or one or more continuous or non-contiguous functional blocks; and It may be / or one or more functions and / or one or more subprograms and / or one or more modules. The software part may correspond to all software.

図10および図11はそれぞれ、一般的な意味でのバルナラブル・ソフトウェア2vの様々な表現と、本発明に従うプロセスに従って保護された被保護ソフトウェア2pの様々な表現を示している。   FIG. 10 and FIG. 11 respectively show various representations of balableable software 2v in a general sense, and various representations of protected software 2p protected according to the process according to the present invention.

図10は、ライフサイクルにおいて現れるバルナラブル・ソフトウェア2vの様々な表現を示している。バルナラブル・ソフトウェア2vは、以下のいずれの表現でも現れることがある。
・ ソース表現2vs
・ オブジェクト表現2vo
・ 配布2vd。配布は、CDROMなどの物理配布媒体の形式またはネットワーク(GSMやインターネットなど)を介して配布されるファイルの形式をとることが多い。
・ または、一般に少なくとも1つのプロセッサ4を搭載する周知の種類のデータ処理システム3上でのバルナラブル・ソフトウェア2vの実行に相当する動的表現2ve。
FIG. 10 shows various representations of the balnarable software 2v that appear in the life cycle. Balnarable software 2v may appear in any of the following expressions:
・ Source expression 2vs
・ Object representation 2vo
-Distribution 2vd. Distribution is often in the form of a physical distribution medium such as a CDROM or a file distributed via a network (such as GSM or the Internet).
Or a dynamic representation 2ve, which generally corresponds to the execution of the valarable software 2v on a known type of data processing system 3 equipped with at least one processor 4.

図11は、ライフサイクルにおいて現れる被保護ソフトウェア2pの様々な表現を示している。被保護ソフトウェア2pは、以下のいずれの表現でも現れることがある。
・ データ処理システム3向けの第1オブジェクトパート2posと、ユニット6向けの第2オブジェクトパート2posを含むソース表現。両ソースパートの一部は、共通ファイルに含まれることが多い。
・ データ処理システム3向けの第1オブジェクトパート2posと、ユニット6向けの第2オブジェクトパート2pouとを含むオブジェクト表示2po。
・ 以下を含む配布2pd
− 第1オブジェクトパート2posを含む第1配布パート2pds。この第1配布パート2pdsはデータ処理システム3向けであり、CDROMなどの物理配布媒体の形式またはネットワーク(GSMやインターネットなど)を介して配布されるファイルの形式をとることが多い。
− および以下の形式の第2配布パート2pdu
> または、第2オブジェクトパート2pouの一部がアップロードされ、ユニット6を取得するために補足データをアップロードすることでユーザがカスタマイズを完了しなければならない、少なくとも1つの事前カスタマイズ済みユニット66。この補足データは、ネットワークを介したダウンロードなどによって取得される。
> または、第2オブジェクトパート2pouがアップロードされた少なくとも1つのユニット6
・ または、被保護ソフトウェア2pの実行に相当する動的表現2pe。この動的表現2peには、データ処理システム3で実行される第1実行パート2pesとユニット6で実行される第2実行パート2peuが含まれる。
FIG. 11 shows various representations of protected software 2p that appear in the life cycle. The protected software 2p may appear in any of the following expressions.
A source representation including a first object part 2pos for the data processing system 3 and a second object part 2pos for the unit 6. Part of both source parts are often included in a common file.
An object display 2po including a first object part 2pos for the data processing system 3 and a second object part 2pou for the unit 6;
Distribution 2 pd including:
A first distribution part 2pds including a first object part 2pos. This first distribution part 2pds is for the data processing system 3, and often takes the form of a physical distribution medium such as a CDROM or the form of a file distributed via a network (such as GSM or the Internet).
-And a second distribution part 2pdu of the form
> Or at least one pre-customized unit 66 where a part of the second object part 2 pou is uploaded and the user has to complete the customization by uploading supplemental data in order to obtain the unit 6. This supplementary data is acquired by downloading via a network.
> Or at least one unit 6 in which the second object part 2 pou is uploaded
Or dynamic expression 2pe corresponding to execution of protected software 2p. The dynamic expression 2pe includes a first execution part 2pes executed by the data processing system 3 and a second execution part 2peu executed by the unit 6.

被保護ソフトウェア2pの様々な表現間の違いが重要でない場合は、「被保護ソフトウェアの第1部分」および「被保護ソフトウェアの第2部分」という言葉を使用するものとする。   If the difference between the various representations of protected software 2p is not significant, the terms “first part of protected software” and “second part of protected software” shall be used.

図11の動的表現に従う本発明に従うプロセスの実装では、リンク5によってユニット6に接続されたデータ処理システム3を備える装置1pを使用する。データ処理システム3はどのような種類でもよいが、一般には少なくとも1つのプロセッサ4を搭載している。データ処理システム3は、コンピュータ、あるいは各種の機械、機器、固定または移動製品、または一般的な意味での車両などの一部であり得る。リンク5は、シリアルリンク、USBバス、無線リンク、光リンク、ネットワークリンク、データ処理システム3の回路への直接的電気接続など、どの方法でも実現できる。ユニット6は、データ処理システム3のプロセッサ4と同一の集積回路内に物理的に配置できることに注意すべきである。この場合、ユニット6はデータ処理システム3のプロセッサ4との関連からコプロセッサとみなすことができ、リンク5は集積回路内にある。   The implementation of the process according to the invention according to the dynamic representation of FIG. 11 uses a device 1 p comprising a data processing system 3 connected to a unit 6 by a link 5. The data processing system 3 may be of any type, but generally includes at least one processor 4. The data processing system 3 may be part of a computer or various machines, equipment, fixed or mobile products, or vehicles in a general sense. The link 5 can be realized by any method such as a serial link, a USB bus, a wireless link, an optical link, a network link, or a direct electrical connection to the data processing system 3 circuit. It should be noted that the unit 6 can be physically located in the same integrated circuit as the processor 4 of the data processing system 3. In this case, the unit 6 can be regarded as a coprocessor in relation to the processor 4 of the data processing system 3, and the link 5 is in the integrated circuit.

図20〜22は、本発明に従う保護プロセスの実装を可能にする装置1pの様々な実施形態を具体的に、しかも限定しないで示している。   FIGS. 20 to 22 show in particular and without limitation various embodiments of the device 1p that enable the implementation of the protection process according to the invention.

図20に示した実施形態では、保護装置1pには、データ処理システム3としてのコンピュータと、ユニット6としてのチップカード7およびそのインタフェース8(一般にカードリーダーと呼ばれる)が含まれる。コンピュータ3は、リンク5によってユニット6に接続される。被保護ソフトウェア2pの実行中、被保護ソフトウェア2pが完全に機能するには、コンピュータ3で実行される第1実行パート2pesとチップカード7およびそのインタフェース8で実行される第2実行パート2peuの両方が機能しなければならない。   In the embodiment shown in FIG. 20, the protection device 1p includes a computer as the data processing system 3, a chip card 7 as the unit 6, and its interface 8 (generally called a card reader). The computer 3 is connected to the unit 6 by a link 5. During the execution of the protected software 2p, in order for the protected software 2p to be fully functional, both the first execution part 2pes executed by the computer 3 and the second execution part 2peu executed by the chip card 7 and its interface 8 Must work.

図21に示した実施形態では、保護装置1pを装備する一般的な意味での製品9には、このような製品9が担う機能に適合する各種コンポーネント10が含まれる。保護装置1pには、一方で製品9に組み込まれたデータ処理システム3と、他方で製品9に関連するユニット6が含まれる。製品9が完全に機能するには、被保護ソフトウェア2pが完全に機能しなければならない。このため、被保護ソフトウェア2pの実行中には、データ処理システム3で実行される第1実行パート2pesとユニット6で実行される第2実行パート2peuの両方が機能しなければならない。したがって、被保護ソフトウェア2pによって、製品9またはその機能のいずれかの無許可の使用を間接的に防止することができる。製品9は、設備、システム、機械、玩具、屋内電気器具、電話などであり得る。   In the embodiment shown in FIG. 21, the product 9 in a general sense equipped with the protection device 1 p includes various components 10 that match the functions of the product 9. The protection device 1p includes on the one hand a data processing system 3 incorporated in the product 9 and on the other hand a unit 6 associated with the product 9. In order for the product 9 to be fully functional, the protected software 2p must be fully functional. For this reason, both the first execution part 2pes executed by the data processing system 3 and the second execution part 2peu executed by the unit 6 must function during execution of the protected software 2p. Accordingly, the protected software 2p can indirectly prevent unauthorized use of the product 9 or any of its functions. Product 9 can be equipment, systems, machines, toys, indoor appliances, telephones, and the like.

図22に示した実施形態では、保護装置1pには、複数台のコンピュータと通信ネットワークの一部が含まれる。データ処理システム3は、第2コンピュータによって構成されるユニット6にネットワーク型リンク5によって接続された第1コンピュータである。本発明の実装では、被保護ソフトウェア2pに対するライセンスサーバとして第2コンピュータ6が使用される。被保護ソフトウェア2pの実行中、被保護ソフトウェア2pが完全に機能するには、第1コンピュータ3で実行される第1実行パート2pesと第2コンピュータ6で実行される第2実行パート2peuの両方が機能しなければならない。   In the embodiment shown in FIG. 22, the protection device 1p includes a plurality of computers and a part of a communication network. The data processing system 3 is a first computer connected by a network link 5 to a unit 6 constituted by a second computer. In the implementation of the present invention, the second computer 6 is used as a license server for the protected software 2p. In order for the protected software 2p to be fully functional during the execution of the protected software 2p, both the first execution part 2pes executed on the first computer 3 and the second execution part 2peu executed on the second computer 6 Must function.

図30は、本発明に従う保護プロセスを明確に示している。バルナラブル・ソフトウェア2vがデータ処理システム3で完全に実行されていると想定されていることに注意すべきである。一方、被保護ソフトウェア2pの実装では、ユニット6の一部である転送手段13がリンク5によってデータ処理システム3に装備された転送手段12と接続されているため、被保護ソフトウェア2pの第1実行パート2pesと第2実行パート2peuとの間の通信を確立することができる。   FIG. 30 clearly shows the protection process according to the invention. It should be noted that it is assumed that the vernalable software 2v is fully running on the data processing system 3. On the other hand, in the implementation of the protected software 2p, since the transfer means 13 which is a part of the unit 6 is connected to the transfer means 12 provided in the data processing system 3 by the link 5, the first execution of the protected software 2p is performed. Communication between part 2 pes and the second execution part 2 peu can be established.

転送手段12、13がソフトウェア、および/または、ハードウェアの性質を持ち、データ処理システム3とユニット6との間のデータ通信を実現(および場合によっては最適化)できることに注意する必要がある。この転送手段12、13は、好ましくは使用されるリンク5の種類に依存しない被保護ソフトウェア2pを自由に使用できるように構成されている。この転送手段12、13は本発明の主題ではなく、当業者にとって周知であるため、これ以上詳しく説明しない。被保護ソフトウェア2pの第1部分には、コマンドが含まれる。被保護ソフトウェア2pの実行中、第1実行パート2pesによってこのコマンドを実行することで、第1実行パート2pesと第2実行パート2peuとの間の通信が可能になる。以降の説明では、このコマンドをIN、OUT、またはTRIGと表す。   It should be noted that the transfer means 12, 13 have software and / or hardware properties and can implement (and possibly optimize) data communication between the data processing system 3 and the unit 6. The transfer means 12 and 13 are preferably configured to freely use the protected software 2p that does not depend on the type of the link 5 to be used. The transfer means 12, 13 are not the subject of the present invention and are well known to those skilled in the art and will not be described in further detail. The first part of the protected software 2p includes a command. By executing this command by the first execution part 2pes during execution of the protected software 2p, communication between the first execution part 2pes and the second execution part 2peu becomes possible. In the following description, this command is expressed as IN, OUT, or TRIG.

図31に示したように、被保護ソフトウェア2pの第2実行パート2peuの実装を可能にするために、ユニット6に保護手段14が装備されている。保護手段14には記憶手段15および処理手段16が含まれる。   As shown in FIG. 31, in order to enable the implementation of the second execution part 2peu of the protected software 2p, the protection means 14 is provided in the unit 6. The protection means 14 includes a storage means 15 and a processing means 16.

以降の説明を平易にするために、被保護ソフトウェア2pの実行中における、ユニット6の有無について検討することにする。実際に、被保護ソフトウェア2pの第2実行パート2peuの実行に適していない保護手段14を備えるユニット6も、被保護ソフトウェア2pが正しく実行されない場合は常に存在しないとみなされる。ユニットの有無について、以下のことが該当する。
・ 物理的に存在し、被保護ソフトウェア2pの第2実行パート2peuの実行に適している保護手段14を備えるユニット6は、常に存在するとみなされる。
・ 物理的には存在するが、被保護ソフトウェア2pの第2実行パート2peuの正しい実装に適していない(この実装を可能にしない)保護手段14を備えるユニット6は、被保護ソフトウェア2pが正しく機能する場合は存在するとみなされ、被保護ソフトウェア2pが正しく機能しない場合は存在しないとみなされる。
・ また、物理的に存在しないユニット6は、常に存在しないとみなされる。
In order to simplify the following description, the presence or absence of the unit 6 during the execution of the protected software 2p will be examined. Actually, the unit 6 including the protection means 14 that is not suitable for the execution of the second execution part 2peu of the protected software 2p is also considered to be absent whenever the protected software 2p is not executed correctly. The following applies to the presence or absence of units.
A unit 6 that is physically present and has a protection means 14 suitable for the execution of the second execution part 2peu of the protected software 2p is always considered to be present.
The unit 6 that includes the protection means 14 that physically exists but is not suitable for the correct implementation of the second execution part 2 peu of the protected software 2p (does not allow this implementation), the protected software 2p functions correctly. If the protected software 2p does not function correctly, it is considered not to exist.
Also, units 6 that do not physically exist are always considered not to exist.

ユニット6がチップカード7とそのインタフェース8から構成されている場合、転送手段13は2つの部分に分割される。一方はインタフェース8上の部分であり、他方はチップカード7上の部分である。この実施形態では、チップカード7が存在しないことは、ユニット6が存在しないことと同じであるとみなされる。すなわち、チップカード7、および/または、そのインタフェース8が存在しない場合、保護手段14はアクセス不能であり、保護されたソフトウェア2pの第2実行パート2peuを実行できないため、被保護ソフトウェア2pは完全には機能しない。   When the unit 6 is composed of the chip card 7 and its interface 8, the transfer means 13 is divided into two parts. One is a part on the interface 8 and the other is a part on the chip card 7. In this embodiment, the absence of the chip card 7 is considered the same as the absence of the unit 6. That is, when the chip card 7 and / or its interface 8 does not exist, the protection means 14 is inaccessible and the second execution part 2 peu of the protected software 2 p cannot be executed, so that the protected software 2 p is completely Does not work.

本発明に従う保護プロセスの目的は、《基本関数》と呼ばれる保護原理を実装することである。この実装について、図60〜64を参照しながら説明する。   The purpose of the protection process according to the invention is to implement a protection principle called << basic function >>. This implementation will be described with reference to FIGS.

基本関数による保護原則の実装では、以下が定義される。
・ 基本関数セット。基本関数セットに含まれる基本関数は、ユニット6において第2実行パート2peuによって実行することが可能であり、場合によってはデータ処理システム3とユニット6との間でデータを転送することが可能である。
・ この基本関数セットに対する基本コマンドセット。この基本コマンドはデータ処理システム3で実行することが可能であり、それによってユニット6において対応する基本関数の実行がトリガされる。
The implementation of the protection principle with basic functions defines the following:
• Basic function set. The basic functions included in the basic function set can be executed by the second execution part 2 peu in the unit 6, and in some cases, data can be transferred between the data processing system 3 and the unit 6. .
• Basic command set for this basic function set. This basic command can be executed in the data processing system 3, which triggers the execution of the corresponding basic function in the unit 6.

基本機能による保護原理の実装では、ブランクユニット60を基本関数を実行できるユニット6に変換できる活用手段も構成される。この基本関数の実行は、データ処理システム3における基本コマンドの実行によってトリガされる。   The implementation of the protection principle based on the basic function also constitutes a utilization means that can convert the blank unit 60 into the unit 6 that can execute the basic function. The execution of this basic function is triggered by the execution of a basic command in the data processing system 3.

基本関数による保護原則の実装では、少なくとも1つのオペランドを使用し少なくとも1つの結果を返す少なくとも1つのアルゴリズム処理も、バルナラブル・ソフトウェアのソース2vsにおいて選択される。また、少なくとも1つの選択されたアルゴリズム処理を含む、バルナラブル・ソフトウェアのソース2vsの部分も少なくとも1つ選択される。   In the implementation of the protection principle with basic functions, at least one algorithmic processing that uses at least one operand and returns at least one result is also selected in the source 2 vs. varnarable software. Also, at least one portion of the source 2 vs. varnalable software that includes at least one selected algorithm processing is selected.

次に、被保護ソフトウェアのソース2psを取得するために、バルナラブル・ソフトウェアのソース2vsの少なくとも1つの選択された部分が変更される。この変更の結果、以下のようになる。
・ 被保護ソフトウェア2pの実行中、データ処理システム3で実行される第1実行パート2pesの少なくとも1つの部分が、少なくとも1つの選択されたアルゴリズム処理の機能がユニット6で実行されることを考慮する。
・ 被保護ソフトウェア2pの実行中、ユニット6で実行される第2実行パート2peuが、少なくとも1つの選択されたアルゴリズム処理の少なくとも1つの機能を実行する。
・ 被保護ソフトウェア2pの実行中に、選択されたアルゴリズム処理それぞれが、基本関数を使用して第2実行パート2peuによって実行されるように、選択されたアルゴリズム処理それぞれが分割される。選択されたアルゴリズム処理それぞれが、基本関数fe(nの範囲は1〜N)に分割されることが好ましい。すなわち、以下の基本関数に分割される。
− 1つ以上のオペランドの扱いをユニット6に任せることができる1つ以上の基本関数(場合による)
− 一部がオペランドを使用し、組み合わされて、このオペランドを使用する選択されたアルゴリズム処理の機能を実行するような基本関数
− 選択されたアルゴリズム処理の結果の扱いをユニット6がデータ処理システム3に任せることを可能にする1つ以上の基本関数(場合による)
・ また、基本コマンドのシーケンスが、被保護ソフトウェア2pの実行を可能にする一連のシーケンスの中から選択される。
Next, at least one selected portion of the source 2 vs. valable software is modified to obtain the source 2 ps of the protected software. As a result of this change:
During execution of the protected software 2p, at least one part of the first execution part 2pes executed in the data processing system 3 takes into account that at least one selected algorithm processing function is executed in the unit 6 .
During execution of the protected software 2p, the second execution part 2peu executed in the unit 6 performs at least one function of at least one selected algorithm processing.
During the execution of the protected software 2p, each selected algorithm process is divided so that each selected algorithm process is executed by the second execution part 2peu using the basic function. Each selected algorithm process is preferably divided into basic functions fe n (where n ranges from 1 to N). That is, it is divided into the following basic functions.
-One or more elementary functions (depending on the case) that can leave the handling of one or more operands to unit 6
A basic function, partly using operands and combined to perform the selected algorithm processing function using this operand; unit 6 handles the results of the selected algorithm processing; One or more basic functions that can be delegated to
Also, the basic command sequence is selected from a series of sequences that allow execution of the protected software 2p.

データ処理システム3で実行される、被保護ソフトウェア2pの第1実行パート2pesが基本コマンドCEF(nの範囲は1〜N)を実行する。このコマンドは、以前に定義された基本関数feそれぞれの、第2実行パート2peuによる実行をユニット6においてトリガする。 Executing within data processing system 3, the first execution part 2pes basic command CEF n of the protected software 2p (the n range 1 to N) executes. This command triggers basic function fe n of each previously defined, the execution by the second execution part 2peu in unit 6.

図60は、バルナラブル・ソフトウェア2vの実行例を示している。この例では、データ処理システム3におけるバルナラブル・ソフトウェア2vの実行中、所定の時刻に計算Z←(X,Y)が実行される。この計算は、オペランドXおよびYを使用する関数Fによって表されるアルゴリズム処理の結果を変数Zに代入することに相当する。   FIG. 60 shows an example of execution of the balnarable software 2v. In this example, the calculation Z ← (X, Y) is executed at a predetermined time during the execution of the vernal software 2v in the data processing system 3. This calculation corresponds to substituting the result of the algorithm processing represented by the function F using the operands X and Y into the variable Z.

図61は、図60で選択されたアルゴリズム処理がユニット6でリモート処理される、本発明の実装例を示している。この例では、データ処理システム3における被保護ソフトウェア2pの第1実行パート2pesの実行中に、ユニット6が存在すれば、以下のようになる。
・ 時刻t、tにおいて、基本コマンドCFE、CFEが実行される。このコマンドは、第2実行パート2peuによる対応する基本関数fe、feの実行をユニット6においてトリガする。この基本関数は、データX、Yを、データ処理システム3から、ユニット6の記憶手段15に配置された記憶ゾーンx、yへそれぞれ転送する。この基本コマンドCFE、CFEは、それぞれOUT(x,X)、OUT(y,Y)と表される。
・ 時刻t〜tN−1において、基本コマンドCFE〜CFEN−1が実行される。このコマンドは、第2実行パート2peuによる対応する基本関数fe〜feN−1の実行をユニット6においてトリガする。この基本コマンドCFE〜CFEN−1は、それぞれTRIG(fe)〜TRIG(feN−1)と表される。組み合わされて実行される一連の基本関数fe〜feN−1のアルゴリズムは、関数Fと同じである。より正確には、この基本コマンドを実行すると、記憶ゾーンx、yの内容を使用しユニット6の記憶ゾーンzに結果を返す基本関数fe〜feN−1がユニット6で実行される。
・ 時刻tにおいて、基本コマンドCFEが実行される。このコマンドは、第2実行パート2peuによる基本関数feの実行をユニット6においてトリガする。この関数は、ユニット6の記憶ゾーンzに含まれるアルゴリズム処理の結果を変数Zに代入するために、この結果をデータ処理システム3へ転送する。この基本コマンドCFEは、IN(z)と表される。
FIG. 61 shows an implementation example of the present invention in which the algorithm processing selected in FIG. In this example, if the unit 6 exists during execution of the first execution part 2 pes of the protected software 2 p in the data processing system 3, the following occurs.
The basic commands CFE 1 and CFE 2 are executed at times t 1 and t 2 . This command triggers in unit 6 the execution of the corresponding basic functions fe 1 , fe 2 by the second execution part 2 peu. This basic function transfers data X, Y from the data processing system 3 to the storage zones x, y arranged in the storage means 15 of the unit 6, respectively. The basic commands CFE 1 and CFE 2 are expressed as OUT (x, X) and OUT (y, Y), respectively.
Basic commands CFE 3 to CFE N-1 are executed at times t 3 to t N−1 . This command triggers in unit 6 the execution of the corresponding basic functions fe 3 to fe N−1 by the second execution part 2 peu. The basic commands CFE 3 to CFE N−1 are represented as TRIG (fe 3 ) to TRIG (fe N−1 ), respectively. The algorithm of the series of basic functions fe 3 to fe N−1 executed in combination is the same as the function F. More precisely, when this basic command is executed, the basic functions fe 3 to fe N−1 that use the contents of the storage zones x and y and return the result to the storage zone z of the unit 6 are executed in the unit 6.
In-time t N, the basic command CFE N is executed. This command triggers in unit 6 the execution of the basic function fe N by the second execution part 2 peu. This function transfers this result to the data processing system 3 in order to assign the result of the algorithm processing contained in the storage zone z of the unit 6 to the variable Z. This basic command CFE N is expressed as IN (z).

この例では、基本コマンド1〜Nが連続して実行される。ただし、以下の2つの改良を施すことができることに注意すべきである。
・ 第1の改良は、複数のアルゴリズム処理をユニット6でリモート処理し、1つのアルゴリズム処理の少なくとも結果を別のアルゴリズム処理で使用する場合にかかわる。このような場合、転送に使用される基本コマンドの一部を削除できる。
・ 第2の改良の目的は、被保護ソフトウェア2pの実行を可能にする一連のシーケンスの中から適切な基本コマンドシーケンスを選択することである。この点で、基本関数の実行を一時的に分離するような基本コマンドシーケンスを選択することが望ましい。分離するには、データ処理システム3で実行される、別のデータの決定に使用する基本コマンドを含む(または含まない)コード部分を基本コマンド間に挿入する。図62および図63は、このような実施形態の原則を示している。
In this example, basic commands 1 to N are executed continuously. However, it should be noted that the following two improvements can be made.
The first improvement relates to a case where a plurality of algorithm processes are processed remotely by the unit 6 and at least the result of one algorithm process is used in another algorithm process. In such a case, a part of basic commands used for transfer can be deleted.
The purpose of the second improvement is to select an appropriate basic command sequence from a sequence that allows execution of the protected software 2p. In this regard, it is desirable to select a basic command sequence that temporarily isolates execution of the basic function. For separation, a code portion that is executed by the data processing system 3 and includes (or does not include) a basic command used to determine another data is inserted between the basic commands. 62 and 63 illustrate the principle of such an embodiment.

図62は、バルナラブル・ソフトウェア2vの実行例を示している。この例では、バルナラブル・ソフトウェア2vの実行中、データ処理システム3で2つのアルゴリズム処理が実行され、ZおよびZ’が決定される。この処理は、Z←F(X,Y)およびZ’←F’(X’,Y’)と表される。   FIG. 62 shows an example of execution of the balable software 2v. In this example, during the execution of the balable software 2v, two algorithm processes are executed in the data processing system 3, and Z and Z 'are determined. This process is expressed as Z ← F (X, Y) and Z ′ ← F ′ (X ′, Y ′).

図63は、図62で選択された2つのアルゴリズム処理がユニット6でリモート処理される、本発明に従うプロセスの実装例を示している。この例では、データ処理システム3における被保護ソフトウェア2pの第1実行パート2pesの実行中に、ユニット6が存在すれば、上述のように、基本コマンドCFE〜CFEを実行することは、Zを決定することに相当し、基本コマンドCFE’〜CFE’を実行することは、Z’を決定することに相当する。図に示したように、基本コマンドCFE’〜CFE’とその他のコード部分が挿入されているため、基本コマンドCFE〜CFEは連続的には実行されない。つまり、この例では、CFE、挿入されたコード部分、CFE’、CFE、挿入されたコード部分、CFE’、CFE’、挿入されたコード部分、CFE’、CFE、CFE、...、CFE、CFE’というシーケンスが実行される。 FIG. 63 shows an example implementation of a process according to the present invention in which the two algorithm processes selected in FIG. In this example, if the unit 6 exists during the execution of the first execution part 2pes of the protected software 2p in the data processing system 3, as described above, the execution of the basic commands CFE 1 to CFE N is as follows: And executing the basic commands CFE ′ 1 to CFE ′ M corresponds to determining Z ′. As shown in the figure, since the basic commands CFE ′ 1 to CFE ′ M and other code portions are inserted, the basic commands CFE 1 to CFE N are not continuously executed. That is, in this example, CFE 1 , inserted code portion, CFE ′ 1 , CFE 2 , inserted code portion, CFE ′ 2 , CFE ′ 3 , inserted code portion, CFE ′ 4 , CFE 3 , CFE 4 ,..., CFE N , CFE ′ M are executed.

被保護ソフトウェア2pの実行中、ユニット6が存在すれば、被保護ソフトウェア2pの第1実行パート2pesの部分に含まれる基本コマンドが要求するたびに、対応する基本関数がユニット6で実行されることに注意すべきである。このため、ユニット6が存在すれば、この部分が正しく実行され、その結果、被保護ソフトウェア2pは完全に機能する。   If the unit 6 exists during execution of the protected software 2p, the corresponding basic function is executed in the unit 6 each time a basic command included in the portion of the first execution part 2pes of the protected software 2p requests. Should be noted. Therefore, if the unit 6 exists, this part is executed correctly, and as a result, the protected software 2p is fully functional.

図64は、ユニット6が存在しない場合の被保護ソフトウェア2pの実行試行例を示している。この例では、データ処理システム3における被保護ソフトウェア2pの第1実行パート2pesの実行中、各時刻に基本コマンドを実行しても、ユニット6が存在しないため、対応する基本関数の実行をトリガすることができない。このため、変数Zに代入する値を正しく決定することができない。   FIG. 64 shows an execution trial example of the protected software 2p when the unit 6 does not exist. In this example, even if the basic command is executed at each time during the execution of the first execution part 2pes of the protected software 2p in the data processing system 3, the unit 6 does not exist, so the execution of the corresponding basic function is triggered. I can't. For this reason, the value to be substituted into the variable Z cannot be determined correctly.

したがって、ユニット6が存在しない場合、ユニット6における基本関数の実行のトリガを求める、被保護ソフトウェア2pの第1実行パート2pesの部分による少なくとも1つの要求を正しく遂行することができないため、少なくともこの部分が正しく実行されず、その結果、被保護ソフトウェア2pは完全には機能しない。   Therefore, if the unit 6 does not exist, at least one part of the first execution part 2pes of the protected software 2p that requests the trigger for the execution of the basic function in the unit 6 cannot be correctly executed. Is not executed correctly, and as a result, the protected software 2p does not function completely.

本発明の別の好都合な特性に従う保護プロセスの目的は、《変数》と呼ばれる保護原理を実装することである。この実装について、図40〜43を参照しながら説明する。   The purpose of the protection process according to another advantageous characteristic of the invention is to implement a protection principle called << Variable >>. This implementation will be described with reference to FIGS.

変数による保護原則の実装では、バルナラブル・ソフトウェアのソース2vsにおいて、少なくとも1つの変数が選択され、その変数がバルナラブル・ソフトウェア2vの実行中にその状態を部分的に定義する。「ソフトウェアの状態」という言葉は、ソフトウェアの完全な実行に必要な、所定の時点における一連の情報を意味する。したがって、選択された変数が存在しないと、ソフトウェアの完全な実行が損なわれる。また、少なくとも1つの選択された変数を含む、バルナラブル・ソフトウェアのソース2vsの部分も少なくとも1つ選択される。   In the implementation of the protection principle by variable, at least one variable is selected in the source 2 vs. varnalable software, and that variable partially defines its state during the execution of valarable software 2v. The term “software state” means a set of information at a given point in time that is necessary for complete execution of the software. Thus, if the selected variable does not exist, complete execution of the software is compromised. Also, at least one portion of the source 2 vs. varnalable software that includes at least one selected variable is selected.

次に、被保護ソフトウェアのソース2psを取得するために、バルナラブル・ソフトウェアのソース2vsの少なくとも1つの選択された部分が変更される。この変更の結果、被保護ソフトウェア2pの実行中、データ処理システム3で実行される第1実行パート2pesの少なくとも1つの部分が、少なくとも1つの選択された変数または選択された変数の少なくとも1つのコピーがユニット6に存在することを考慮するようになる。   Next, at least one selected portion of the balnarable software source 2 vs is modified to obtain the protected software source 2 ps. As a result of this change, during execution of the protected software 2p, at least one part of the first execution part 2pes executed in the data processing system 3 is at least one selected variable or at least one copy of the selected variable. Is present in unit 6.

図40は、バルナラブル・ソフトウェア2vの実行例を示している。この例では、データ処理システム3におけるバルナラブル・ソフトウェア2vの実行中に、以下のようになる。
・ 時刻tにおいて、データXが変数Vに代入される(V←Xで表す)。
・ 時刻tにおいて、変数Vの値が変数Yに代入される(Y←Vで表す)。
・ 時刻tにおいて、変数Vの値が変数Zに代入される(Z←Vで表す)。
FIG. 40 shows an example of execution of the balnarable software 2v. In this example, the following occurs during execution of the balloonable software 2v in the data processing system 3.
At time t 1 , data X is substituted into variable V 1 (represented by V 1 ← X).
· At time t 2, (expressed in Y ← V 1) the value of the variable V 1 is substituted into the variable Y.
· At time t 3, (represented by Z ← V 1) the value of the variable V 1 is is assigned to the variable Z.

図41は、変数がユニット6に存在する、本発明の実装の第1形態の例を示している。この例では、データ処理システム3における被保護ソフトウェア2pの第1実行パート2pesの実行中に、ユニット6が存在すれば、以下のようになる。
・ 時刻tにおいて、データ処理システム3から、ユニット6の記憶手段15に配置された変数vへのデータXの転送をトリガする転送コマンドが実行される。この転送コマンドはOUT(v,X)と表され、最終的にデータXが変数vに代入される。
・ 時刻tにおいて、ユニット6に存在する変数vの値を変数Yに代入するために、この値のデータ処理システム3への転送をトリガする転送コマンドが実行される。この転送コマンドはIN(v)と表され、最終的に変数vの値が変数Yに代入される。
・ 時刻tにおいて、ユニット6に存在する変数vの値を変数Zに代入するために、この値のデータ処理システム3への転送をトリガする転送コマンドが実行される。この転送コマンドはIN(v)と表され、最終的に変数vの値が変数Zに代入される。
FIG. 41 shows an example of a first form of implementation of the invention in which variables are present in unit 6. In this example, if the unit 6 exists during execution of the first execution part 2 pes of the protected software 2 p in the data processing system 3, the following occurs.
At time t 1 , a transfer command that triggers transfer of data X from the data processing system 3 to the variable v 1 arranged in the storage unit 15 of the unit 6 is executed. This transfer command is expressed as OUT (v 1 , X), and finally the data X is substituted into the variable v 1 .
At time t 2 , in order to substitute the value of variable v 1 present in unit 6 for variable Y, a transfer command is executed that triggers the transfer of this value to data processing system 3. This transfer command is expressed as IN (v 1 ), and the value of the variable v 1 is finally substituted into the variable Y.
At time t 3 , in order to substitute the value of variable v 1 present in unit 6 for variable Z, a transfer command is executed that triggers the transfer of this value to data processing system 3. This transfer command is expressed as IN (v 1 ), and the value of the variable v 1 is finally substituted into the variable Z.

被保護ソフトウェア2pの実行中、少なくとも1つの変数がユニット6に存在することに注意すべきである。このため、被保護ソフトウェア2pの第1実行パート2pesの部分が要求した場合、ユニット6が存在すれば、被保護ソフトウェア2pの第1実行パート2pesで使用するために、ユニット6に存在するこの変数の値がデータ処理システム3へ転送される。これにより、この部分が正しく実行され、その結果、被保護ソフトウェア2pは完全に機能する。   It should be noted that at least one variable is present in the unit 6 during execution of the protected software 2p. For this reason, when the part of the first execution part 2pes of the protected software 2p requests, if the unit 6 exists, this variable existing in the unit 6 is used for the first execution part 2pes of the protected software 2p. Is transferred to the data processing system 3. As a result, this part is executed correctly, and as a result, the protected software 2p is fully functional.

図42は、変数のコピーがユニット6に存在する、本発明の実装の第2形態の例を示している。この例では、データ処理システム3における被保護ソフトウェア2pの第1実行パート2pesの実行中に、ユニット6が存在すれば、以下のようになる。
・ 時刻tにおいて、データXがデータ処理システム3に配置された変数Vに代入される。また、データ処理システム3から、ユニット6の記憶手段15に配置された変数vへのデータXの転送をトリガする転送コマンドも実行される。この転送コマンドはOUT(v,X)と表される。
・ 時刻tにおいて、変数Vの値が変数Yに代入される。
・ 時刻tにおいて、ユニット6に存在する変数vの値を変数Zに代入するために、この値のデータ処理システム3への転送をトリガする転送コマンドが実行される。この転送コマンドはIN(v)と表される。
FIG. 42 shows an example of a second form of implementation of the invention in which a copy of the variable exists in unit 6. In this example, if the unit 6 exists during execution of the first execution part 2 pes of the protected software 2 p in the data processing system 3, the following occurs.
At time t 1 , data X is assigned to variable V 1 arranged in data processing system 3. Also, a transfer command that triggers the transfer of data X from the data processing system 3 to the variable v 1 arranged in the storage means 15 of the unit 6 is executed. This transfer command is expressed as OUT (v 1 , X).
In-time t 2, the value of variable V 1 is substituted into the variable Y.
At time t 3 , in order to substitute the value of variable v 1 present in unit 6 for variable Z, a transfer command is executed that triggers the transfer of this value to data processing system 3. This transfer command is represented as IN (v 1 ).

被保護ソフトウェア2pの実行中、変数のコピーの少なくとも1つがユニット6に存在することに注意すべきである。このため、被保護ソフトウェア2pの第1実行パート2pesの部分が要求した場合、ユニット6が存在すれば、被保護ソフトウェア2pの第1実行パート2pesで使用するために、ユニット6に存在する変数のこのコピーの値がデータ処理システム3へ転送される。このため、この部分が正しく実行され、その結果、被保護ソフトウェア2pは完全に機能する。   It should be noted that during execution of the protected software 2p, at least one copy of the variable exists in the unit 6. For this reason, when the part of the first execution part 2pes of the protected software 2p requests, if the unit 6 exists, the variable existing in the unit 6 is used for use in the first execution part 2pes of the protected software 2p. The value of this copy is transferred to the data processing system 3. For this reason, this part is executed correctly, and as a result, the protected software 2p is fully functional.

図43は、ユニット6が存在しない場合の被保護ソフトウェア2pの実行試行例を示している。この例では、データ処理システム3における被保護ソフトウェア2pの第1実行パート2pesの実行中に、以下のようになる。
・ 時刻tにおいて、転送コマンドOUT(v,X)を実行しても、ユニット6が存在しないため、変数vへのデータXの転送をトリガすることができない。
・ 時刻tにおいて、転送コマンドIN(v)を実行しても、ユニット6が存在しないため、データ処理システム3への変数vの値の転送をトリガすることができない。
・ 時刻tにおいて、転送コマンドIN(v)を実行しても、ユニット6が存在しないため、データ処理システム3への変数vの値の転送をトリガすることができない。
FIG. 43 shows an execution trial example of the protected software 2p when the unit 6 does not exist. In this example, during the execution of the first execution part 2pes of the protected software 2p in the data processing system 3, the following occurs.
Even if the transfer command OUT (v 1 , X) is executed at time t 1 , the transfer of the data X to the variable v 1 cannot be triggered because the unit 6 does not exist.
Even if the transfer command IN (v 1 ) is executed at time t 2 , the transfer of the value of the variable v 1 to the data processing system 3 cannot be triggered because the unit 6 does not exist.
Even if the transfer command IN (v 1 ) is executed at time t 3 , the unit 6 does not exist, and therefore the transfer of the value of the variable v 1 to the data processing system 3 cannot be triggered.

したがって、ユニット6が存在しない場合、ユニット6に存在する変数または変数のコピーの使用を求める、第1実行パート2pesの部分による少なくとも1つの要求を正しく遂行することができないため、少なくともこの部分が正しく実行されず、その結果、被保護ソフトウェア2pは完全には機能しない。   Therefore, if unit 6 does not exist, at least one request by the part of the first execution part 2 pes that requires the use of a variable or a copy of the variable that exists in unit 6 cannot be correctly performed, so at least this part is correct. As a result, the protected software 2p does not function completely.

前述の例で示したデータ処理システム3とユニット6との間のデータ転送では、単純な代入のみ使用されるが、単純な代入を別の演算と組み合わせてOUT(v,2*X+3)やZ←(5*v+v)などの複雑な演算を得る方法を当業者が知ることができることに注意すべきである。 In the data transfer between the data processing system 3 and the unit 6 shown in the above example, only simple substitution is used, but OUT (v 1 , 2 * X + 3) or It should be noted that those skilled in the art can know how to obtain complex operations such as Z ← (5 * v 1 + v 2 ).

本発明の別の好都合な特性に従う保護プロセスの目的は、《検出および強制》と呼ばれる保護原則を実装することである。この実装について、図70〜74を参照しながら説明する。   The purpose of the protection process according to another advantageous characteristic of the invention is to implement a protection principle called << Detection and Enforcement >>. This implementation will be described with reference to FIGS.

検出および強制による保護原則の実装では、以下が定義される。
・ 少なくとも部分的にユニット6において監視することが可能な、少なくとも1つのソフトウェア実行特性
・ 少なくとも1つのソフトウェア実行特性について遵守すべき少なくとも1つの基準
・ 少なくとも1つのソフトウェア実行特性が少なくとも1つの関連基準を遵守していないことを検出できる、ユニット6に装備される検出手段17
・ 少なくとも1つの基準が遵守されていない場合に、データ処理システム3への通知、および/または、ソフトウェア実行の変更が可能な、ユニット6に装備される強制手段18
In the implementation of the detection and enforcement protection principle, the following are defined:
At least one software execution characteristic that can be monitored at least in part at unit 6 at least one criterion to be observed for at least one software execution characteristic at least one software execution characteristic has at least one relevant criterion Detecting means 17 provided in the unit 6 that can detect non-compliance
A forcing means 18 provided in the unit 6 capable of notifying the data processing system 3 and / or changing the software execution if at least one criterion is not observed

検出および強制による保護原則の実装では、ブランクユニット60を、少なくとも検出手段17と強制手段18を備えるユニット6へ変換できる活用手段も構築される。   In the implementation of the protection principle by detection and forcing, a utilization means that can convert the blank unit 60 into a unit 6 comprising at least the detection means 17 and the forcing means 18 is also constructed.

図70は、検出および強制によるこの保護原則の実装に必要な手段を示している。ユニット6には検出手段17と、処理手段16に属する強制手段18が装備されている。基準が遵守されなかった場合、強制手段18はその旨を検出手段17から通知される。   FIG. 70 shows the means necessary to implement this protection principle by detection and enforcement. The unit 6 is equipped with detection means 17 and forcing means 18 belonging to the processing means 16. When the standard is not observed, the forcing unit 18 is notified from the detecting unit 17 to that effect.

より正確には、検出手段17は転送手段13、および/または、記憶手段15、および/または、処理手段16から送られる情報を使用して、1つ以上のソフトウェア実行特性を監視する。各ソフトウェア実行特性について、遵守すべき基準が少なくとも1つ設定される。   More precisely, the detection means 17 uses the information sent from the transfer means 13 and / or the storage means 15 and / or the processing means 16 to monitor one or more software execution characteristics. At least one standard to be observed is set for each software execution characteristic.

少なくとも1つのソフトウェア実行特性が少なくとも1つの基準を遵守していないことを検出した場合、検出手段17はその旨を強制手段18に通知する。この強制手段18は、ユニット6の状態を適切な方法で変更できるように構成されている。   If it is detected that at least one software execution characteristic does not comply with at least one criterion, the detection means 17 notifies the forcing means 18 to that effect. The forcing means 18 is configured so that the state of the unit 6 can be changed by an appropriate method.

検出および強制による保護原則の実装では、以下も選択される。
・ 監視することが可能なソフトウェア実行特性の中から、監視するソフトウェア実行特性を少なくとも1つ選択する。
・ 少なくとも1つの選択されたソフトウェア実行特性について、遵守すべき基準を少なくとも1つ選択する。
・ バルナラブル・ソフトウェアのソース2vsにおいて、少なくとも1つのソフトウェア実行特性が監視されるアルゴリズム処理を少なくとも1つ選択する。
・ バルナラブル・ソフトウェアのソース2vsにおいて、少なくとも1つの選択されたアルゴリズム処理を含む部分を少なくとも1つ選択する。
In the implementation of the detection and enforcement protection principle, the following are also selected:
• Select at least one software execution characteristic to be monitored from among the software execution characteristics that can be monitored.
• Select at least one criterion to be observed for at least one selected software execution characteristic.
At least one algorithmic process in which at least one software execution characteristic is monitored is selected in the source 2 vs. varnarable software.
• Select at least one portion of the source 2 vs. varnalable software that contains at least one selected algorithm processing.

次に、被保護ソフトウェアのソース2psを取得するために、バルナラブル・ソフトウェアのソース2vsの少なくとも1つの選択された部分が変更される。この変更の結果、被保護ソフトウェア2pの実行中に、特に以下のようになる。
・ データ処理システム3で実行される第1実行パート2pesの少なくとも1つの部分が、少なくとも部分的にユニット6において、少なくとも1つの選択されたソフトウェア実行特性を監視する必要があることを考慮する。
・ ユニット6で実行される第2実行パート2peuが、選択されたソフトウェア実行特性を少なくとも部分的に監視する。
Next, at least one selected portion of the balnarable software source 2 vs is modified to obtain the protected software source 2 ps. As a result of this change, in particular, the following occurs during execution of the protected software 2p.
Take into account that at least one part of the first execution part 2 pes executed in the data processing system 3 needs to monitor at least one selected software execution characteristic, at least partly in the unit 6.
The second execution part 2 peu executed in the unit 6 at least partly monitors the selected software execution characteristics;

検出および強制によるこの保護原則によって保護された被保護ソフトウェア2pの実行中に、ユニット6が存在すれば、以下のようになる。
・ 被保護ソフトウェア2pの変更された部分すべての、監視される実行特性すべてに対応する基準がすべて遵守されている限り、被保護ソフトウェア2pの変更された部分は名目通り機能するため、被保護ソフトウェア2pは名目通り機能する。
・ 被保護ソフトウェア2pの部分の監視される実行特性に対応する少なくとも1つの基準が遵守されていない場合、データ処理システム3はその旨を通知され、および/または、被保護ソフトウェア2pのその部分の機能が変更され、その結果、被保護ソフトウェア2pの機能が変更される。
If the unit 6 is present during the execution of the protected software 2p protected by this protection principle by detection and enforcement, the following occurs.
As long as all standards corresponding to all monitored execution characteristics of all modified parts of protected software 2p are observed, the modified parts of protected software 2p will function nominally, so protected software 2p works as nominal.
If at least one criterion corresponding to the monitored execution characteristics of the protected software 2p part is not observed, the data processing system 3 is notified and / or of that part of the protected software 2p The function is changed, and as a result, the function of the protected software 2p is changed.

当然ながら、ユニット6が存在しなければ、ユニット6の使用を求める、被保護ソフトウェア2pの第1実行パート2pesの部分による少なくとも1つの要求を正しく遂行することができないため、少なくともこの部分が正しく実行されず、その結果、被保護ソフトウェア2pは完全には機能しない。   Of course, if unit 6 does not exist, at least one request by the first execution part 2pes of protected software 2p that requires the use of unit 6 cannot be correctly executed, so at least this part is executed correctly. As a result, the protected software 2p does not function completely.

検出および強制による保護原則の実装では、2つの種類のソフトウェア実行特性が優先的に使用される。   In implementing the detection and enforcement protection principle, two types of software execution characteristics are preferentially used.

第1の種類のソフトウェア実行特性はソフトウェア実行の計測変数に対応し、第2の種類のソフトウェア実行特性はソフトウェア使用状況プロファイルに対応する。これら2つの種類の特性は、個別に使用することも、組み合わせて使用することもできる。   The first type of software execution characteristics corresponds to software execution measurement variables, and the second type of software execution characteristics corresponds to software usage status profiles. These two types of properties can be used individually or in combination.

実行特性としてソフトウェア実行の計測変数を使用する、検出および強制による保護原則の実装では、以下が定義される。
・ 記憶手段15において、少なくとも1つのソフトウェア機能の使用状況を定量化するために使用される少なくとも1つの計測変数を記憶できること
・ 検出手段17において、各計測変数に関連付けられた少なくとも1つのしきい値を監視できること
・ 計測変数が関連付けられた機能の使用状況に応じて各計測変数を更新できる有効化手段
In the implementation of the detection and enforcement protection principle, using software-executed measurement variables as execution characteristics, the following are defined:
The storage means 15 can store at least one measurement variable used to quantify the usage of at least one software function. The detection means 17 can store at least one threshold value associated with each measurement variable.・ An enabling method that can update each measurement variable according to the usage status of the function associated with the measurement variable

検出手段17と強制手段18に加えて、有効化手段を備える活用手段も構築される。   In addition to the detection means 17 and the forcing means 18, a utilization means including an enabling means is also constructed.

また、バルナラブル・ソフトウェアのソース2vsにおいて、以下も選択される。
・ 計測変数を利用して使用状況を監視することが可能な、バルナラブル・ソフトウェア2vの少なくとも1つの機能
・ この機能の使用状況の定量化に使用される少なくとも1つの計測変数
・ この機能の使用限度に対応する計測変数に関連付けられた少なくとも1つのしきい値
・ この機能の使用状況に応じて計測変数を更新する少なくとも1つの方法
The following is also selected in the source 2 vs. varnarable software.
-At least one function of valable software 2v that can monitor the usage status using measurement variables-At least one measurement variable used to quantify the usage status of this function-Usage limit of this function At least one threshold associated with the measurement variable corresponding to the at least one method of updating the measurement variable according to the use of this function

次に、被保護ソフトウェアのソース2psを取得するために、バルナラブル・ソフトウェアのソース2vsが変更される。この変更の結果、被保護ソフトウェア2pの実行中に、第2実行パート2peuが以下を行うようになる。
・ この機能の使用状況に応じて計測変数を有効化する。
・ 少なくとも1つのしきい値超過を考慮する。
Next, in order to obtain the source 2ps of the protected software, the source 2vs of the balnarable software is changed. As a result of this change, during execution of the protected software 2p, the second execution part 2peu performs the following.
• Enable measurement variables according to the usage status of this function.
• Consider at least one threshold crossing.

すなわち、被保護ソフトウェア2pの実行中、この機能の使用状況に応じてこの計測変数が更新され、しきい値が超えられた場合、検出手段17がその旨を強制手段18に通知する。強制手段18は、データ処理システム3へ通知するか、および/または、処理手段16によって実行される処理を変更するかを適宜判断する。変更する場合、被保護ソフトウェア2pの部分の機能が変更され、その結果、被保護ソフトウェア2pの機能が変更される。   That is, during execution of the protected software 2p, when this measurement variable is updated according to the usage status of this function and the threshold value is exceeded, the detection means 17 notifies the forcing means 18 to that effect. The forcing unit 18 appropriately determines whether to notify the data processing system 3 and / or change the processing executed by the processing unit 16. When changing, the function of the protected software 2p is changed, and as a result, the function of the protected software 2p is changed.

特性として計測変数を使用する、検出および強制による保護原則の第1の好ましい変形実施形態の実装では、以下が定義される。
・ 少なくとも1つの計測変数について、複数の関連しきい値
・ このしきい値それぞれに対応する各種強制手段
In the implementation of the first preferred variant embodiment of the detection and enforcement protection principle using measurement variables as characteristics, the following is defined:
• Multiple related thresholds for at least one measurement variable • Various forcing measures corresponding to each of these thresholds

また、バルナラブル・ソフトウェアのソース2vsにおいて、以下も選択される。
・ ソフトウェアの少なくとも1つの機能の使用状況を定量化するために使用され、この機能の各種使用限度に対応する複数のしきい値を関連付ける必要がある、少なくとも1つの計測変数
・ 計測変数に関連付けられた少なくとも2つのしきい値
The following is also selected in the source 2 vs. varnarable software.
At least one measurement variable that is used to quantify the usage of at least one function of the software and needs to be associated with multiple thresholds corresponding to various usage limits of this function At least two thresholds

次に、被保護ソフトウェアのソース2psを取得するために、バルナラブル・ソフトウェアのソース2vsが変更される。この変更の結果、被保護ソフトウェア2pの実行中に、第2実行パート2peuが以下を行うようになる。
・ この機能の使用状況に応じて計測変数を有効化する。
・ 様々なしきい値の超過を個別に考慮する。
Next, in order to obtain the source 2ps of the protected software, the source 2vs of the balnarable software is changed. As a result of this change, during execution of the protected software 2p, the second execution part 2peu performs the following.
• Enable measurement variables according to the usage status of this function.
• Consider exceeding various thresholds individually.

すなわち、一般に、被保護ソフトウェア2pの実行中、第1しきい値が超えられた場合、ユニット6がその旨をデータ処理システム3に通知し、データ処理システム3が被保護ソフトウェア2pにこの機能を使用しないように命じる。被保護ソフトウェア2pがこの機能の使用を続けた場合、第2しきい値が超えられる可能性がある。第2しきい値が超えられた場合、強制手段18は、選択された機能、および/または、被保護ソフトウェア2pを無効にすることができる。   That is, generally, when the first threshold is exceeded during execution of the protected software 2p, the unit 6 notifies the data processing system 3 to that effect, and the data processing system 3 provides this function to the protected software 2p. Order not to use. If the protected software 2p continues to use this function, the second threshold may be exceeded. If the second threshold is exceeded, the forcing means 18 can disable the selected function and / or protected software 2p.

特性として計測変数を使用する、検出および強制による保護原則の第2の好ましい変形実施形態の実装では、計測変数によって監視される少なくとも1つのソフトウェア機能に少なくとも1回の追加使用を認めることができる補充手段が定義される。   In the implementation of the second preferred variant embodiment of the detection and enforcement protection principle, which uses a measurement variable as a characteristic, a supplementation that allows at least one additional use to at least one software function monitored by the measurement variable Means are defined.

また、検出手段17、強制手段18、および有効化手段に加えて補充手段を備える活用手段も構築される。   Further, in addition to the detecting means 17, the forcing means 18, and the enabling means, a utilization means including a replenishing means is also constructed.

さらに、バルナラブル・ソフトウェアのソース2vsにおいて、少なくとも1回の追加使用を認められなければならない、ソフトウェアの少なくとも1つの機能の使用を制限するために使用される計測変数が少なくとも1つ選択される。   In addition, at least one measurement variable used to limit the use of at least one function of the software, which must be allowed at least one additional use, in the source 2 vs. varnalable software is selected.

次に、被保護ソフトウェアのソース2psを取得するために、バルナラブル・ソフトウェアのソース2vsが変更される。この変更の結果、補充と呼ばれるフェーズにおいて、選択された計測変数に対応する少なくとも1つの機能の少なくとも1回の追加使用を認めることができるようになる。   Next, in order to obtain the source 2ps of the protected software, the source 2vs of the balnarable software is changed. As a result of this change, in a phase called replenishment, at least one additional use of at least one function corresponding to the selected measurement variable can be permitted.

対応する機能の少なくとも1回の追加使用を認めるために、補充のフェーズにおいて、少なくとも1つの選択された計測変数、および/または、少なくとも1つの関連しきい値が再び有効化される。すなわち、補充のフェーズにおいて、被保護ソフトウェア2pの少なくとも1つの機能の追加使用を認めることができる。   In order to allow at least one additional use of the corresponding function, at least one selected measurement variable and / or at least one associated threshold is re-enabled in the replenishment phase. That is, in the replenishment phase, additional use of at least one function of the protected software 2p can be permitted.

特性としてソフトウェア使用状況プロファイルを使用する、検出および強制による保護原則の実装では、この使用状況プロファイルについて遵守すべき基準として、少なくとも1つのソフトウェア実行特徴が定義される。   In the implementation of the detection and enforcement protection principle using a software usage profile as a characteristic, at least one software execution feature is defined as a criterion to be observed for this usage profile.

また、バルナラブル・ソフトウェアのソース2vsにおいて以下も選択される。
・ 監視される少なくとも1つの使用状況プロファイル
・ 少なくとも1つの選択された使用状況プロファイルが遵守しなければならない、少なくとも1つの実行特徴
The following is also selected in the source 2 vs. varnarable software.
At least one usage profile to be monitored at least one execution feature that at least one selected usage profile must comply with

次に、被保護ソフトウェアのソース2psを取得するために、バルナラブル・ソフトウェアのソース2vsが変更される。この変更の結果、被保護ソフトウェア2pの実行中に、第2実行パート2peuが選択された実行特徴すべてを遵守するようになる。すなわち、ユニット6自体が第2実行パート2peuの実行のされ方を監視して、少なくとも1つの実行特徴が遵守されていない場合は、データ処理システム3にその旨を通知すること、および/または、被保護ソフトウェア2pの機能を変更することができる。   Next, in order to obtain the source 2ps of the protected software, the source 2vs of the balnarable software is changed. As a result of this change, during execution of the protected software 2p, the second execution part 2peu will comply with all selected execution features. That is, the unit 6 itself monitors how the second execution part 2 peu is executed and, if at least one execution feature is not observed, notifies the data processing system 3 and / or The function of the protected software 2p can be changed.

この原則によって保護された被保護ソフトウェア2pの実行中に、ユニット6が存在すれば、以下のようになる。
・ 被保護ソフトウェア2pの変更された部分すべての実行特徴がすべて遵守されている限り、被保護ソフトウェア2pの変更された部分が名目通り機能するため、被保護ソフトウェア2pは名目通り機能する。
・ 被保護ソフトウェア2pの部分の少なくとも1つの実行特徴が遵守されていない場合、データ処理システム3にその旨が通知され、および/または、被保護ソフトウェア2pのその部分の機能が変更され、その結果、被保護ソフトウェア2pの機能が変更される。
If the unit 6 exists during the execution of the protected software 2p protected by this principle, the following occurs.
As long as all the execution features of all the changed parts of the protected software 2p are observed, the changed parts of the protected software 2p function nominally, so the protected software 2p functions nominally.
If at least one execution feature of a part of the protected software 2p is not complied with, the data processing system 3 is notified and / or the function of that part of the protected software 2p is changed and consequently The function of the protected software 2p is changed.

様々な実行特徴のモニタリングを検討することができる。例えば、マーカーを含む命令の有無や、命令の少なくとも1つの部分の実行連鎖のモニタリングが可能である。   Various monitoring of execution characteristics can be considered. For example, the presence / absence of an instruction including a marker and the execution chain of at least one part of the instruction can be monitored.

遵守すべき実行特徴として、命令の少なくとも1つの部分の実行連鎖のモニタリングを使用する、検出および強制による保護原則の実装では、以下が定義される。
・ ユニット6で実行することが可能な命令を含む命令セット
・ この命令セットに対する命令コマンドセット。この命令コマンドは、データ処理システム3で実行することが可能である。この命令コマンドそれぞれをデータ処理システム3で実行すると、ユニット6において対応する命令の実行がトリガされる。
・ 命令連鎖が期待されたものではないことを検出できる検出手段17
・ 命令連鎖が期待されたものではない場合に、データ処理システム3にその旨を通知すること、および/または、ソフトウェア実行を変更することができる強制手段18
As an implementation feature to be observed, in the implementation of the detection and enforcement protection principle using the monitoring of the execution chain of at least one part of the instruction, the following is defined:
An instruction set that includes instructions that can be executed by unit 6. An instruction command set for this instruction set. This instruction command can be executed by the data processing system 3. When each of the command commands is executed by the data processing system 3, the execution of the corresponding command is triggered in the unit 6.
Detection means 17 that can detect that the instruction chain is not expected.
If the instruction chain is not expected, a forcing means 18 can notify the data processing system 3 and / or change the software execution

また、ユニット6による命令セットの命令の実行も可能にする活用手段も構築される。この命令の実行は、データ処理システム3における命令コマンドの実行によってトリガされる。   Also, a utilization means that enables execution of instructions of the instruction set by the unit 6 is constructed. The execution of this instruction is triggered by the execution of an instruction command in the data processing system 3.

さらに、バルナラブル・ソフトウェアのソース2vsにおいて、ユニット6でリモート処理しなければならず、命令の少なくとも1つの部分の連鎖を監視する必要がある、少なくとも1つのアルゴリズム処理も選択される。   In addition, at least one algorithmic process that must be remotely processed in unit 6 and needs to monitor the chain of at least one part of the instruction in the source 2vs of the balnarable software is also selected.

次に、バルナラブル・ソフトウェアのソース2psを取得するために、バルナラブル・ソフトウェアのソース2vsが変更される。この変更の結果、被保護ソフトウェア2pの実行中に以下の処理が行われるようになる。
・ 第2実行パート2peuが、選択されたアルゴリズム処理の少なくとも機能を実行する。
・ 選択されたアルゴリズム処理が複数の命令に分割される。
・ ユニット6での実行中に少なくとも一部の命令が遵守しなければならない連鎖が指定される。
・ 被保護ソフトウェア2pの第1実行パート2pesが、ユニット6での命令の実行をトリガする命令コマンドを実行する。
Next, in order to obtain the source 2ps of the valenable software, the source 2vs of the valable software is changed. As a result of this change, the following processing is performed while the protected software 2p is being executed.
The second execution part 2 peu performs at least the function of the selected algorithm processing;
• The selected algorithm processing is divided into multiple instructions.
A chain is specified that must be complied with by at least some instructions during execution in unit 6.
The first execution part 2 pes of the protected software 2 p executes an instruction command that triggers the execution of the instruction in the unit 6.

この原則によって被保護ソフトウェア2pの実行中に、ユニット6が存在すれば、以下のようになる。
・ ユニット6で実行される被保護ソフトウェア2pの変更された部分すべての命令連鎖が期待されたものである限り、被保護ソフトウェア2pの変更された部分が名目通り機能するため、被保護ソフトウェア2pは名目通り機能する。
・ ユニット6で実行される被保護ソフトウェア2pの部分の命令連鎖が期待されたものではない場合、データ処理システム3にその旨が通知され、および/または、被保護ソフトウェア2pのその部分の機能が変更され、その結果、被保護ソフトウェア2pの機能が変更される。
If the unit 6 is present during execution of the protected software 2p according to this principle, the following occurs.
As long as the instruction chain of all modified parts of protected software 2p executed in unit 6 is expected, the modified part of protected software 2p functions nominally, so protected software 2p is Works as nominal.
If the instruction chain of the part of the protected software 2p executed in the unit 6 is not expected, the data processing system 3 is notified of this and / or the function of that part of the protected software 2p is As a result, the function of the protected software 2p is changed.

図71は、遵守すべき実行特徴として、命令の少なくとも1つの部分の実行連鎖のモニタリングを利用する、検出および強制による保護原則の実装における、期待される連鎖が遵守される場合の例を示している。   FIG. 71 shows an example where the expected chain is observed in an implementation of the detection and enforcement protection principle that utilizes the monitoring of the execution chain of at least one part of the instruction as an execution feature to be observed. Yes.

データ処理システム3で実行される被保護ソフトウェア2pの第1実行パート2pesが、ユニット6において命令セットに属する命令iの実行をトリガする命令コマンドCIを実行する。この命令セットでは、少なくとも一部の命令それぞれに、命令の機能を定義する部分と、命令の実行連鎖が期待されたものであることを確認できる部分が含まれる。この例では、命令コマンドCIはTRIG(i)と表され、命令実行の期待される連鎖はi、in+1、およびin+2である。ユニット6で命令iを実行すれば結果aがもたらされ、命令in+1を実行すれば結果bがもたらされる。命令n+2では、命令iおよびin+1の結果aおよびbがオペランドとして使用される。命令n+2の実行結果はcである。 The first execution part 2 pes of the protected software 2 p executed in the data processing system 3 executes an instruction command CI i that triggers the execution of the instruction i i belonging to the instruction set in the unit 6. In this instruction set, at least a part of each instruction includes a part for defining the function of the instruction and a part for confirming that an instruction execution chain is expected. In this example, the instruction command CI i is represented as TRIG (i i ), and the expected chain of instruction execution is i n , i n + 1 , and i n + 2 . Executing instruction i n in unit 6 yields result a and executing instruction i n + 1 yields result b. In the instruction n + 2 , the results a and b of the instructions i n and i n + 1 are used as operands. The execution result of the instruction n + 2 is c.

ユニット6で実行されるこの命令連鎖が期待されたものであるため、被保護ソフトウェア2pは正常に、すなわち名目通り機能するようになる。   Since this instruction chain executed by the unit 6 is expected, the protected software 2p functions normally, that is, nominally.

図72は、遵守すべき実行特徴として、命令の少なくとも1つの部分の実行連鎖のモニタリングを利用する、検出および強制による保護原則の実装における、期待される連鎖が遵守されない場合の例を示している。   FIG. 72 illustrates an example where an expected chain is not observed in an implementation of a detection and enforcement protection principle that utilizes execution chain monitoring of at least one part of an instruction as an execution feature to be observed. .

この例でも、命令実行の期待される連鎖はi、in+1、およびin+2である。しかし、命令iを命令i’に置き換えることで実行連鎖が変更されるため、実際に実行される連鎖はi’、in+1、およびin+2となる。命令i’を実行すれば、結果a、すなわち命令iを実行した場合と同じ結果がもたらされる。しかし、命令i’が、命令in+2のオペランドとして使用される結果aを生成するための期待される命令ではないことを、検出手段17が遅くとも命令in+2の実行中に検出する。検出手段17はその旨を強制手段18に通知し、強制手段18が命令in+2の機能を変更する。この変更により、命令in+2の実行結果c’はcと異なってもよい。当然ながら、命令i’の実行結果a’が命令iの結果aと異なる場合、命令in+2の結果もまたcと異なってもよいことは明らかである。 Again, the expected chain of instruction execution is i n , i n + 1 , and i n + 2 . However, since the execution chain is changed by replacing the instruction i n with the instruction i ′ n , the actually executed chain is i ′ n , i n + 1 , and i n + 2 . Executing instruction i ′ n yields the same result as executing result a, ie instruction i n . However, the instruction i 'n is the instruction i n + 2 operands are not instructions results used a expected to generate a detecting means 17 at the latest detected during execution of instructions i n + 2. The detection means 17 notifies the forcing means 18 to that effect, and the forcing means 18 changes the function of the instruction in + 2 . Due to this change, the execution result c ′ of the instruction i n + 2 may be different from c. Of course, if the instruction i 'n execution result a' is different from the result a of the instruction i n, it is clear that it may be different from the instruction i n + 2 of the results are also c.

したがって、ユニット6で実行される命令の実行連鎖が期待されたものでなければ、被保護ソフトウェア2pの機能の変更することができる。   Therefore, if the execution chain of instructions executed in the unit 6 is not expected, the function of the protected software 2p can be changed.

図73および図74は、遵守すべき実行特徴として、命令の少なくとも1つの部分の実行連鎖のモニタリングを利用する、検出および強制による保護原則の好ましい変形実施形態を示している。この好ましい変形では、レジスタとともに作用し、結果を返すことを目的として少なくとも1つのオペランドを使用する命令を少なくともいくつか含む命令セットが定義される。   73 and 74 show a preferred variant embodiment of the detection and enforcement protection principle, which utilizes the monitoring of the execution chain of at least one part of the instruction as an execution feature to be observed. In this preferred variation, an instruction set is defined that includes at least some instructions that work with registers and use at least one operand to return a result.

図73に示したように、レジスタとともに作用する少なくとも一部の命令について、命令の機能を定義する部分PFと、命令実行の期待される連鎖を定義する部分PEが定義される。部分PFは、当業者に周知の演算コードに相当する。期待される連鎖を定義する部分PEには、以下のビットフィールドが含まれる。
・ 命令識別フィールドCII
・ 命令の各オペランドkについて、以下のフィールド(kの範囲は1〜Kであり、Kは命令のオペランド数を示す)
− オペランドkの出所(origin)を確認することが適切であるかどうかを示すフラグフィールドCD
− オペランドkの内容を生成した命令の期待されるアイデンティティを示す、オペランドの期待される識別フィールドCIP
As shown in FIG. 73, for at least some of the instructions that operate together with the register, a part PF that defines the function of the instruction and a part PE that defines the expected chain of instruction execution are defined. The portion PF corresponds to an operation code well known to those skilled in the art. The part PE that defines the expected chain includes the following bit fields:
Instruction identification field CII
For each operand k of the instruction, the following fields (range k is 1 to K, where K indicates the number of operands of the instruction)
A flag field CD k indicating whether it is appropriate to confirm the origin of operand k
The expected identification field CIP k of the operand indicating the expected identity of the instruction that generated the contents of the operand k

図74に示したように、命令セットには、処理手段16に属するV個のレジスタが含まれる。各レジスタにはRという名前が付けられる(vの範囲は1〜V)。各レジスタRについて、以下の2つのフィールドが定義される。
・ 命令の実行結果を格納できる、当業者に周知の機能フィールドCF
・ 機能フィールドCFの内容を生成した命令のアイデンティティを記憶できる生成識別フィールドCIG。この生成識別フィールドCIGは、機能フィールドCFを生成した命令識別フィールドCIIの内容で自動的に更新される。この生成識別フィールドCIGは、命令によるアクセスも変更もできず、検出手段17でのみ使用される。
As shown in FIG. 74, the instruction set includes V registers belonging to the processing means 16. Each register is named R v (v ranges from 1 to V). For each register Rv , the following two fields are defined:
A function field CF v known to those skilled in the art that can store the execution result of the instruction.
- Capability CF v generated identification field CIG v capable of storing the identity of the instruction that generated the contents of the. The generation identification field CIG v is automatically updated with the contents of the instruction identification field CII that generated the function field CF v . This generation identification field CIG v cannot be accessed or changed by an instruction and is used only by the detection means 17.

命令の実行中、検出手段17は各オペランドkについて以下の処理を実行する。
・ フラグフィールドCDを読み取る。
・ フラグフィールドCDが要求した場合、オペランドkで使用されるレジスタに対応する、期待される識別フィールドCIPと生成識別フィールドCIGの両方を読み取る。
・ 2つのフィールドCIPとCIGが等しいかどうかチェックする。
・ 等しくない場合、検出手段17は、命令の実行連鎖が遵守されていないとみなす。
During the execution of the instruction, the detecting means 17 performs the following processing for each operand k.
Read the flag field CD k .
If flag field CD k requires, read both expected identification field CIP k and generated identification field CIG v corresponding to the register used in operand k.
Check if the two fields CIP k and CIG v are equal.
If they are not equal, the detection means 17 considers that the instruction execution chain is not observed.

命令連鎖が遵守されていないことを検出手段17から通知されると、強制手段18は命令結果を変更することができる。現在実行されている命令の機能パートPFまたは以降の命令の機能パートPFを変更することで、好ましい実施形態が実行される。   When the detection means 17 is notified that the instruction chain is not observed, the forcing means 18 can change the instruction result. The preferred embodiment is implemented by changing the functional part PF of the currently executed instruction or the functional part PF of the subsequent instruction.

本発明の別の好都合な特性に従う保護プロセスの目的は、《リネーム》と呼ばれる保護原則を実装することである。この実装について、図80〜85を参照しながら説明する。   The purpose of the protection process according to another advantageous characteristic of the present invention is to implement a protection principle called "Rename". This implementation will be described with reference to FIGS.

リネームによる保護原則の実装では、以下が定義される。
・ 従属関数セット。従属関数セットに含まれる従属関数は、ユニット6において第2実行パート2peuによって実行することが可能であり、場合によってはデータ処理システム3とユニット6との間でデータを転送することができる。この従属関数セットは、有限または無限のいずれでもよい。
・ この従属関数に対するトリガコマンドセット。このトリガコマンドはデータ処理システム3で実行され、ユニット6において対応する従属関数の実行をトリガすることが可能である。
・ 対応する従属関数の実行をトリガするために、第1実行パート2pesによって第2実行パート2peuへ転送される情報に少なくとも部分的に対応する、各トリガコマンドのオーダー。このオーダーは、トリガコマンドの少なくとも1つの引数の形式を有する。
・ バルナラブル・ソフトウェア2vの変更中に使用される、オーダーリネーム方法。この方法では、対応する従属関数のアイデンティティを隠蔽することができる、リネームされたオーダーを持つトリガコマンドを取得するためにオーダーをリネームできる。
・ 使用フェーズにおいてユニット6で使用され、実行する従属関数を復元するために、リネームされたオーダーから元のオーダーを復元することができる復元手段20。
The implementation of the rename protection principle defines the following:
Dependent function set. The dependent functions included in the dependent function set can be executed by the second execution part 2 peu in the unit 6, and in some cases, data can be transferred between the data processing system 3 and the unit 6. This dependent function set may be either finite or infinite.
• Trigger command set for this dependent function. This trigger command is executed in the data processing system 3 and can trigger the execution of the corresponding dependent function in the unit 6.
The order of each trigger command corresponding at least in part to the information transferred by the first execution part 2pes to the second execution part 2peu in order to trigger the execution of the corresponding dependent function; This order has the form of at least one argument of the trigger command.
An order renaming method used during the change of the varnarable software 2v. In this way, an order can be renamed to obtain a trigger command with a renamed order that can hide the identity of the corresponding dependent function.
A restoration means 20 that can restore the original order from the renamed order in order to restore the dependent function that is used and executed in unit 6 in the usage phase.

リネームによる保護原則の実装では、ブランクユニット60を、少なくとも検出手段17と強制手段18を備えるユニット6へ変換できる活用手段も構築される。   In the implementation of the protection principle by renaming, a utilization means that can convert the blank unit 60 into the unit 6 including at least the detection means 17 and the forcing means 18 is also constructed.

リネームによる保護原則の実装では、バルナラブル・ソフトウェアのソース2vsにおいて、以下も選択される。
・ 少なくとも1つのオペランドを使用し、少なくとも1つの結果を返す、少なくとも1つのアルゴリズム処理
・ 少なくとも1つの選択されたアルゴリズム処理を含む、バルナラブル・ソフトウェアのソース2vsの少なくとも1つの部分
In the implementation of the protection principle by renaming, the following is also selected in the source 2 vs. varnarable software.
At least one algorithm processing using at least one operand and returning at least one result at least one part of the source 2 vs. varnalable software comprising at least one selected algorithm processing

次に、被保護ソフトウェアのソース2psを取得するために、バルナラブル・ソフトウェアのソース2vsが変更される。この変更の結果、特に以下のようになる。
・ 被保護ソフトウェア2pの実行中、データ処理システム3で実行される第1実行パート2pesの少なくとも1つの部分が、少なくとも1つの選択されたアルゴリズム処理の機能がユニット6で実行されることを考慮する。
・ 被保護ソフトウェア2pの実行中、ユニット6で実行される第2実行パート2peuが、少なくとも1つの選択されたアルゴリズム処理の機能を少なくとも実行する。
・ 被保護ソフトウェア2pの実行中に、従属関数を使用して第2実行パート2peuによって実行されるように、選択された各アルゴリズム処理が分割される。選択された各アルゴリズム処理が以下の従属関数fd(nの範囲は1〜N)に分割されることが好ましい。
− 1つ以上のオペランドの扱いをユニット6に任せることができる1つ以上の従属関数(場合による)
− 一部がオペランドを使用し、組み合わされて、このオペランドを使用する選択されたアルゴリズム処理の機能を実行するような従属関数
− 選択されたアルゴリズム処理の結果の扱いをユニット6がデータ処理システム3に任せることを可能にする1つ以上の従属関数(場合による)
・ 被保護ソフトウェア2pの実行中、第2実行パート2peuが従属関数fdを実行する。
・ 被保護ソフトウェア2pの実行中、リネームされたオーダーを持つトリガコマンドによって従属関数がトリガされる。
・ また、トリガコマンドのシーケンスが、被保護ソフトウェア2pの実行を可能にする一連のシーケンスの中から選択される。
Next, in order to obtain the source 2ps of the protected software, the source 2vs of the balnarable software is changed. As a result of this change, in particular:
During execution of the protected software 2p, at least one part of the first execution part 2pes executed in the data processing system 3 takes into account that at least one selected algorithm processing function is executed in the unit 6 .
During execution of the protected software 2p, the second execution part 2peu executed in the unit 6 performs at least one function of at least one selected algorithm processing.
During the execution of the protected software 2p, each selected algorithm process is divided so that it is executed by the second execution part 2peu using a dependent function. Each selected algorithm process is preferably divided into the following dependent functions fd n (where n ranges from 1 to N).
-One or more dependent functions (depending on the case) that can be left to unit 6 to handle one or more operands
A subordinate function such that some use operands and combine to perform the selected algorithm processing function using this operand; unit 6 handles the results of the selected algorithm processing; One or more dependent functions that can be delegated to
- during the execution of the protected software 2p, the second execution part 2peu executes the dependent functions fd n.
During execution of the protected software 2p, the dependent function is triggered by a trigger command with the renamed order.
In addition, the sequence of trigger commands is selected from a sequence that allows execution of the protected software 2p.

データ処理システム3で実行される被保護ソフトウェア2pの第1実行パート2pesが、リネームされたオーダーを持つトリガコマンドを実行する。このコマンドは、リネームされたオーダーをユニット6へ転送し、復元手段20によるそのオーダーの復元をユニット6においてトリガし、次に、第2実行パート2peuによる、以前に定義された各従属関数fdの実行をトリガする。 The first execution part 2pes of the protected software 2p executed in the data processing system 3 executes a trigger command having the renamed order. This command transfers the renamed order to unit 6, triggers the restoration of that order by the restoring means 20 in unit 6, and then each previously defined dependent function fd n according to the second execution part 2peu. Trigger execution of.

すなわち、リネームによる保護原則は、リネームされたオーダーを持つトリガコマンドを取得するために、トリガコマンドのオーダーをリネームすることで実行される。リネームされたオーダーを持つトリガコマンドをデータ処理システム3で実行すると、ユニット6において従属関数の実行がトリガされる。この従属関数は、リネームされていないオーダーを持つトリガコマンドによってトリガされたであろう従属関数であるが、被保護ソフトウェア2pを調べても実行される従属関数のアイデンティティを特定できない。   That is, the protection principle by renaming is executed by renaming the order of the trigger command in order to obtain the trigger command having the renamed order. Executing a trigger command with the renamed order in data processing system 3 triggers execution of the dependent function in unit 6. This dependent function is a dependent function that would have been triggered by a trigger command having an unrenamed order, but the identity of the dependent function to be executed cannot be identified by examining the protected software 2p.

図80は、バルナラブル・ソフトウェア2vの実行例を示している。この例では、データ処理システム3でのバルナラブル・ソフトウェア2vの実行中、所定の時刻に計算Z←F(X,Y)が実行される。この計算は、オペランドXおよびYを使用する関数Fによって表されるアルゴリズム処理の結果を変数Zに代入することに相当する。   FIG. 80 shows an example of execution of the balnarable software 2v. In this example, the calculation Z ← F (X, Y) is executed at a predetermined time during the execution of the balloonable software 2v in the data processing system 3. This calculation corresponds to substituting the result of the algorithm processing represented by the function F using the operands X and Y into the variable Z.

図81および図82は、本発明の実装例を示している。   81 and 82 show an implementation example of the present invention.

図81は、本発明の部分的実装を示している。この例では、データ処理システム3における被保護ソフトウェア2pの第1実行パート2pesの実行中に、ユニット6が存在すれば、以下のようになる。
・ 時刻t、tにおいて、トリガコマンドCD、CDが実行される。このコマンドは、第2実行パート2peuによる対応する従属関数fd、fdの実行をユニット6においてトリガする。この従属関数は、データX、Yをデータ処理システム3から、ユニット6の記憶手段15に配置された記憶ゾーンx、yへそれぞれ転送する。このトリガコマンドCD、CDはそれぞれ、OUT(x,X)、OUT(y,Y)と表される。
・ 時刻t〜tN−1において、トリガコマンドCD〜CDN−1が実行される。このコマンドは、第2実行パート2peuによる対応する従属関数fd〜fdN−1の実行をユニット6においてトリガする。このトリガコマンドCD〜CDN−1は、それぞれTRIG(fd)〜TRIG(fdN−1)と表される。組み合わされて実行される一連の従属関数fd〜fdN−1のアルゴリズムは、関数Fと同じである。より正確には、このトリガコマンドを実行すると、記憶ゾーンx、yの内容を使用しユニット6の記憶ゾーンzに結果を返す従属関数fd〜fdN−1がユニット6で実行される。
・ 時刻tにおいて、トリガコマンドCDが実行される。このコマンドは、第2実行パート2peuによる従属関数fdの実行をユニット6においてトリガする。この関数は、ユニット6の記憶ゾーンzに含まれるアルゴリズム処理の結果を変数Zに代入するために、この結果をデータ処理システム3へ転送する。このコマンドは、IN(z)と表される。
FIG. 81 shows a partial implementation of the present invention. In this example, if the unit 6 exists during execution of the first execution part 2 pes of the protected software 2 p in the data processing system 3, the following occurs.
The trigger commands CD 1 and CD 2 are executed at times t 1 and t 2 . This command triggers in unit 6 the execution of the corresponding dependent functions fd 1 , fd 2 by the second execution part 2 peu. This dependent function transfers the data X, Y from the data processing system 3 to the storage zones x, y arranged in the storage means 15 of the unit 6, respectively. The trigger commands CD 1 and CD 2 are expressed as OUT (x, X) and OUT (y, Y), respectively.
In-time t 3 ~t N-1, trigger commands CD 3 ~CD N-1 is executed. This command triggers in unit 6 the execution of the corresponding dependent functions fd 3 to fd N−1 by the second execution part 2 peu. The trigger commands CD 3 to CD N-1 are represented as TRIG (fd 3 ) to TRIG (fd N-1 ), respectively. The algorithm of the series of dependent functions fd 3 to fd N−1 executed in combination is the same as the function F. More precisely, when this trigger command is executed, the dependent functions fd 3 to fd N−1 are executed in the unit 6 which use the contents of the storage zones x, y and return the result to the storage zone z of the unit 6.
In-time t N, trigger command CD N is executed. This command triggers in unit 6 the execution of the dependent function fd N by the second execution part 2 peu. This function transfers this result to the data processing system 3 in order to assign the result of the algorithm processing contained in the storage zone z of the unit 6 to the variable Z. This command is represented as IN (z).

この例では、本発明を完全に実装するために、トリガコマンドOUTの第1引数とトリガコマンドTRIGおよびINの引数がオーダーとして選択される。このように選択されたオーダーは、オーダーリネーム方法によってリネームされる。この方法では、R(x)、R(y)、R(fd)...、R(fdN−1)、R(z)をそれぞれ取得するために、トリガコマンドCD〜CDN−1のオーダー(x、y、fd、fdN−1、z)がリネームされる。 In this example, in order to fully implement the present invention, the first argument of the trigger command OUT and the arguments of the trigger commands TRIG and IN are selected as orders. The order thus selected is renamed by the order renaming method. In this method, R (x), R (y), R (fd 3 ). . . , R (fd N-1 ), R (z), the orders (x, y, fd 3 , fd N-1 , z) of the trigger commands CD 1 to CD N-1 are renamed. .

図82は、本発明の完全な実装を示している。この例では、データ処理システム3における被保護ソフトウェア2pの第1実行パート2pesの実行中に、ユニット6が存在すれば、以下のようになる。
・ 時刻t、tにおいて、リネームされたオーダーを持つトリガコマンドCDCR、CDCRが実行される。このコマンドは、リネームされたオーダーR(x)、R(y)とデータX、Yをユニット6へ転送する。これにより、復元手段20によるリネームされたオーダーの復元がユニット6においてトリガされ、オーダー(記憶ゾーンx、yのアイデンティティ)が復元される。次に、第2実行パート2peuによって対応する従属関数fd、fdが実行される。この従属関数は、データX、Yを、データ処理システム3から、ユニット6の記憶手段15に配置された記憶ゾーンx、yへそれぞれ転送する。リネームされたオーダーを持つこのトリガコマンドCDCR、CDCRは、それぞれOUT(R(x),X)、OUT(R(y),Y)と表される。
・ 時刻t〜tN−1において、リネームされたオーダーを持つトリガコマンドCDCR〜CDCRN−1が実行される。このコマンドは、リネームされたオーダーR(fd)〜R(fdN−1)をユニット6へ転送する。これにより、復元手段20によるオーダー(fd〜fdN−1)の復元がユニット6においてトリガされる。次に、第2実行パート2peuによって従属関数fd〜fdN−1が実行される。リネームされたオーダーを持つこのトリガコマンドCDCR〜CDCRN−1は、それぞれTRIG(R(fd))〜TRIG(R(fdN−1))と表される。
・ 時刻tにおいて、リネームされたオーダーを持つトリガコマンドCDCRが実行される。このコマンドは、リネームされたオーダーR(z)をユニット6へ転送する。これにより、復元手段20によるオーダー(記憶ゾーンzのアイデンティティ)の復元がユニット6においてトリガされる。次に、第2実行パート2peuによって従属関数fdが実行される。この従属関数は、ユニット6の記憶ゾーンzに含まれるアルゴリズム処理の結果を変数Zに代入するために、この結果をデータ処理システム3へ転送する。リネームされたオーダーを持つこのトリガコマンドCDCRNは、IN(R(z))と表される。
FIG. 82 shows a complete implementation of the present invention. In this example, if the unit 6 exists during execution of the first execution part 2 pes of the protected software 2 p in the data processing system 3, the following occurs.
At time t 1 and t 2 , trigger commands CDCR 1 and CDCR 2 having the renamed order are executed. This command transfers the renamed orders R (x), R (y) and data X, Y to the unit 6. Thereby, the restoration of the renamed order by the restoration means 20 is triggered in the unit 6 and the order (identities of the storage zones x, y) is restored. Next, the corresponding dependent functions fd 1 and fd 2 are executed by the second execution part 2 peu. This dependent function transfers the data X, Y from the data processing system 3 to the storage zones x, y arranged in the storage means 15 of the unit 6, respectively. The trigger commands CDCR 1 and CDCR 2 having the renamed order are expressed as OUT (R (x), X) and OUT (R (y), Y), respectively.
At time t 3 to t N−1 , trigger commands CDCR 3 to CDCR N−1 having the renamed order are executed. This command transfers the renamed orders R (fd 3 ) to R (fd N−1 ) to the unit 6. As a result, the restoration of the order (fd 3 to fd N-1 ) by the restoration means 20 is triggered in the unit 6. Next, the dependent functions fd 3 to fd N−1 are executed by the second execution part 2 peu. The trigger commands CDCR 3 to CDCR N−1 having the renamed order are expressed as TRIG (R (fd 3 )) to TRIG (R (fd N−1 )), respectively.
In and time t N, trigger command CDCR N with renamed order is executed. This command transfers the renamed order R (z) to unit 6. As a result, the restoration of the order (identity of the storage zone z) by the restoration means 20 is triggered in the unit 6. Next, the dependent function fd N is executed by the second execution part 2 peu. This dependent function transfers this result to the data processing system 3 in order to substitute the result of the algorithm processing contained in the storage zone z of the unit 6 for the variable Z. This trigger command CDCR N with the renamed order is denoted IN (R (z)).

この例では、リネームされたオーダーを持つトリガコマンド1〜Nが連続して実行される。ただし、以下の2つの改良を施すことができることに注意すべきである。
・ 第1の改良は、複数のアルゴリズム処理をユニット6でリモート処理し、1つのアルゴリズム処理の少なくとも結果を別のアルゴリズム処理で使用する場合にかかわる。このような場合、転送に使用されるリネームされたオーダーを持つトリガコマンドの一部を削除できる。
・ 第2の改良の目的は、被保護ソフトウェア2pの実行を可能にする一連のシーケンスの中から、リネームされたオーダーを持つトリガコマンドの適切なシーケンスを選択することである。この点で、従属関数の実行を一時的に分離するようなリネームされたオーダーを持つトリガコマンドのシーケンスを選択することが望ましい。分離するには、データ処理システム3で実行される、別のデータの決定に使用する、リネームされたオーダーを持つトリガコマンドを含む(または含まない)コード部分をトリガコマンド間に挿入する。。図83および図84は、このような実施形態の原則を示している。
In this example, the trigger commands 1 to N having the renamed order are executed continuously. However, it should be noted that the following two improvements can be made.
The first improvement relates to a case where a plurality of algorithm processes are processed remotely by the unit 6 and at least the result of one algorithm process is used in another algorithm process. In such a case, part of the trigger command with the renamed order used for transfer can be deleted.
The purpose of the second improvement is to select an appropriate sequence of trigger commands with renamed orders from among a sequence of sequences that allow execution of protected software 2p. In this regard, it is desirable to select a sequence of trigger commands having a renamed order that temporarily separates the execution of dependent functions. To separate, a portion of code that includes (or does not include) a trigger command with a renamed order that is used in the data processing system 3 to determine another data is inserted between the trigger commands. . 83 and 84 illustrate the principle of such an embodiment.

図83は、バルナラブル・ソフトウェア2vの実行例を示している。この例では、バルナラブル・ソフトウェア2vの実行中、データ処理システム3で2つのアルゴリズム処理が実行され、ZおよびZ’が決定される。この処理は、Z←F(X,Y)およびZ’←F’(X’,Y’)と表される。   FIG. 83 shows an example of execution of the balable software 2v. In this example, during the execution of the balable software 2v, two algorithm processes are executed in the data processing system 3, and Z and Z 'are determined. This process is expressed as Z ← F (X, Y) and Z ′ ← F ′ (X ′, Y ′).

図84は、図83で選択された2つのアルゴリズム処理がユニット6でリモート処理される、本発明に従うプロセスの実装例を示している。この例では、データ処理システム3における被保護ソフトウェア2pの第1実行パート2pesの実行中に、ユニット6が存在すれば、上述のように、リネームされたオーダーを持つトリガコマンドCDCR〜CDCRを実行することは、Zを決定することに相当し、リネームされたオーダーを持つトリガコマンドCDCR’〜CDCR’を実行することは、Z’を決定することに相当する。図に示したように、リネームされたオーダーを持つトリガコマンドCDCR’〜CDCR’とその他のコード部分が挿入されているため、リネームされたオーダーを持つトリガコマンドCDCR〜CDCRは連続的には実行されない。つまり、この例では、CDCR、挿入されたコード部分、CDCR’、CDCR、挿入されたコード部分、CDCR’、CDCR’、挿入されたコード部分、CDCR’、CDCR、CDCR、...、CDCR、CDCR’というシーケンスが実行される。 FIG. 84 shows an example implementation of a process according to the present invention in which the two algorithm processes selected in FIG. 83 are remotely processed by unit 6. In this example, if the unit 6 exists during the execution of the first execution part 2pes of the protected software 2p in the data processing system 3, as described above, the trigger commands CDCR 1 to CDCR N having the renamed order are issued. Executing corresponds to determining Z, and executing the trigger commands CDCR ′ 1 to CDCR ′ M having the renamed order corresponds to determining Z ′. As shown in the figure, since the trigger commands CDCR ′ 1 to CDCR ′ M having the renamed order and other code parts are inserted, the trigger commands CDCR 1 to CDCR N having the renamed order are consecutive. Will not be executed. That is, in this example, CDCR 1 , inserted code portion, CDCR ′ 1 , CDCR 2 , inserted code portion, CDCR ′ 2 , CDCR ′ 3 , inserted code portion, CDCR ′ 4 , CDCR 3 , CDCR 4 ,..., CDCR N , CDCR ′ M are executed.

次のことに注意すべきである。すなわち、被保護ソフトウェア2pの第1実行パート2pesの部分の実行中、データ処理システム3で実行される、リネームされたオーダーを持つトリガコマンドは、対応する従属関数のアイデンティティの復元をユニット6においてトリガし、次にこの従属関数の実行をトリガする。このため、ユニット6が存在すれば、この部分が正しく実行され、その結果、被保護ソフトウェア2pは完全に機能する。   It should be noted that: That is, during execution of the first execution part 2pes portion of the protected software 2p, the trigger command having the renamed order executed in the data processing system 3 triggers the restoration of the identity of the corresponding dependent function in the unit 6. And then trigger the execution of this dependent function. Therefore, if the unit 6 exists, this part is executed correctly, and as a result, the protected software 2p is fully functional.

図85は、ユニット6が存在しない場合の被保護ソフトウェア2pの実行試行例を示している。この例では、データ処理システム3における被保護ソフトウェア2pの第1実行パート2pesの実行中、リネームされたオーダーを持つトリガコマンドを各時刻に実行しても、ユニット6が存在しないため、オーダーの復元も対応する従属関数の実行もトリガすることができない。このため、変数Zに代入する値を正しく決定することができない。   FIG. 85 shows an execution trial example of the protected software 2p when the unit 6 does not exist. In this example, during execution of the first execution part 2pes of the protected software 2p in the data processing system 3, even if the trigger command having the renamed order is executed at each time, the unit 6 does not exist, so the order is restored. Neither can trigger the execution of the corresponding dependent function. For this reason, the value to be substituted into the variable Z cannot be determined correctly.

したがって、ユニット6が存在しない場合、オーダーの復元とユニット6における従属関数の実行のトリガを求める、被保護ソフトウェア2pの第1実行パート2pesの部分による少なくとも1つの要求を正しく遂行することができないため、少なくともこの部分が正しく実行されず、その結果、被保護ソフトウェア2pは完全には機能しない。   Therefore, when the unit 6 does not exist, at least one request by the first execution part 2pes portion of the protected software 2p for requesting the restoration of the order and the execution of the dependent function in the unit 6 cannot be correctly performed. At least this part is not executed correctly, and as a result, the protected software 2p does not function completely.

リネームによるこの保護原則では、被保護ソフトウェア2pにおいて、リネームされたオーダーを持つトリガコマンドを調べても、ユニット6で実行する必要がある従属関数のアイデンティティを特定することはできない。オーダーのリネームは、バルナラブル・ソフトウェア2vを被保護ソフトウェア2pに変更する際に実行されることに注意すべきである。   With this protection principle by renaming, it is not possible to identify the identity of the dependent function that needs to be executed in unit 6, even if the protected software 2p examines the trigger command with the renamed order. It should be noted that the order renaming is performed when changing the narulatable software 2v to the protected software 2p.

リネームによる保護原則の変形では、少なくとも1つの従属関数について、アルゴリズムの面では同じであるが、リネームされたオーダー持つ異なるトリガコマンドによってトリガされる従属関数群が定義される。この変形では、従属関数を使用する少なくとも1つのアルゴリズム処理が従属関数に分割される。同じ従属関数が複数回出現するのではなく、これらの従属関数の少なくとも1つは、同じ群の従属関数に置き換えられる。これを実現するために、リネームされたオーダーを持つトリガコマンドが、同じ群の従属関数への従属関数の置き換えを考慮するように変更される。すなわち、同じ群の2つの従属関数が異なるオーダーを持ち、その結果、リネームされたオーダーを持つ異なるトリガコマンドを持つ。また、被保護ソフトウェア2pを調べても、呼び出される従属関数のアルゴリズムが同じであることを発見することはできない。   In the modification of the protection principle by renaming, for at least one dependent function, a group of dependent functions which are the same in terms of the algorithm but are triggered by different trigger commands with the renamed order are defined. In this variant, at least one algorithmic process that uses a dependent function is divided into dependent functions. Rather than appearing the same dependent function multiple times, at least one of these dependent functions is replaced with the same group of dependent functions. To accomplish this, the trigger command with the renamed order is modified to take into account the replacement of the dependent function with the same group of dependent functions. That is, two dependent functions in the same group have different orders and, as a result, have different trigger commands with renamed orders. Further, even if the protected software 2p is examined, it cannot be found that the algorithm of the called dependent function is the same.

リネームによる保護原則の第1の好ましい変形実施形態では、少なくとも1つの従属関数について、アルゴリズムが同じである従属関数群が定義される。この定義は、ユニット6で実行される従属関数の機能パートを定義する情報とノイズフィールドを連結することで行われる。   In a first preferred variant of the rename protection principle, a group of dependent functions are defined whose algorithms are the same for at least one dependent function. This definition is performed by concatenating information defining the functional part of the dependent function executed in the unit 6 and the noise field.

リネームによる保護原則の第2の好ましい変形実施形態では、少なくとも1つの従属関数について、識別フィールドを使用することで、アルゴリズムが同じである従属関数群が定義される。   In a second preferred variant of the rename protection principle, for at least one dependent function, a group of dependent functions with the same algorithm is defined by using an identification field.

リネームによる保護原則の好ましい変形実施形態では、オーダーリネーム方法として、オーダーを暗号化してリネームされたオーダーに変換できる暗号化方法が定義される。オーダーのリネームは保護フェーズPにおいて実行されることを忘れてはならない。この好ましい変形では、復元手段20は、リネームされたオーダーを復号化し、ユニット6で実行される従属関数のアイデンティティを復元することができる復号化方法を実装する手段である。この復元手段はユニット6に実装され、ソフトウェアまたはハードウェアの性質を持つことができる。この復元手段20は、従属関数の実行をユニット6においてトリガする目的で、リネームされたオーダーを持つトリガコマンドがデータ処理システム3で実行されるたびに、使用フェーズUにおいて必要とされる。   In a preferred variant of the rename protection principle, an order renaming method is defined which is an encryption method that can encrypt an order and convert it to a renamed order. It must be remembered that order renaming is performed in the protection phase P. In this preferred variant, the restoring means 20 are means for implementing a decoding method that can decrypt the renamed order and restore the identity of the dependent function executed in unit 6. This restoring means is implemented in the unit 6 and can have software or hardware properties. This restoring means 20 is required in the use phase U each time a trigger command with a renamed order is executed in the data processing system 3 in order to trigger the execution of the dependent function in the unit 6.

本発明の別の好都合な特性に従う保護プロセスの目的は、《条件分岐》と呼ばれる保護原則を実装することである。この実装について、図90〜92を参照しながら説明する。   The purpose of the protection process according to another advantageous characteristic of the invention is to implement a protection principle called << conditional branch >>. This implementation will be described with reference to FIGS.

条件分岐による保護原則の実装では、バルナラブル・ソフトウェアのソース2vsにおいて少なくとも1つの条件分岐BCが選択される。また、少なくとも1つの選択された条件分岐BCを含む、バルナラブル・ソフトウェアのソース2vsの部分が少なくとも1つ選択される。   In the implementation of the protection principle by conditional branching, at least one conditional branch BC is selected in the source 2 vs. varnarable software. Also, at least one portion of the source 2 vs. balnarable software that includes at least one selected conditional branch BC is selected.

次に、被保護ソフトウェアのソース2psを取得するために、バルナラブル・ソフトウェアのソース2vsの少なくとも1つの選択された部分が変更される。この変更の結果、被保護ソフトウェア2pの実行中、特に以下のようになる。
・ データ処理システム3で実行される第1実行パート2pesの少なくとも1つの部分が、少なくとも1つの選択された条件分岐BCの機能がユニット6で実行されることを考慮する。
・ ユニット6で実行される第2実行パート2peuが、少なくとも1つの選択された条件分岐BCの少なくとも機能を実行し、第1実行パート2pesが選択されたスポットで実行を続行できるようにする情報の扱いをデータ処理システム(3)に任せる。
Next, at least one selected portion of the balnarable software source 2 vs is modified to obtain the protected software source 2 ps. As a result of this change, during the execution of the protected software 2p, in particular, the following occurs.
-At least one part of the first execution part 2pes executed in the data processing system 3 takes into account that the function of at least one selected conditional branch BC is executed in the unit 6.
Information of the second execution part 2 peu executed in the unit 6 that performs at least the function of at least one selected conditional branch BC and allows the first execution part 2 pes to continue execution at the selected spot Handling is left to the data processing system (3).

データ処理システム3で実行される被保護ソフトウェア2pの第1実行パート2pesが、条件分岐コマンドを実行する。このコマンドは、第2実行パート2peuによるリモート処理された条件分岐bcの実行をユニット6においてトリガする。この条件分岐の機能は、選択された条件分岐BCの機能と同じである。   The first execution part 2pes of the protected software 2p executed in the data processing system 3 executes the conditional branch command. This command triggers in unit 6 the execution of the remotely processed conditional branch bc by the second execution part 2 peu. The function of this conditional branch is the same as the function of the selected conditional branch BC.

図90は、バルナラブル・ソフトウェア2vの実行例を示している。この例では、データ処理システム3におけるバルナラブル・ソフトウェア2vの実行中、特定の時刻にバルナラブル・ソフトウェア2vの実行を続行するスポット、すなわち3つのスポットB、B、またはBのいずれか1つを条件分岐BCがバルナラブル・ソフトウェア2vに指示する。すなわち、条件分岐BCは、B、B、またはBのいずれのスポットでソフトウェアの実行を続行するかを判断する。 FIG. 90 shows an example of execution of the balnarable software 2v. In this example, during the execution of the valable software 2v in the data processing system 3, a spot that continues execution of the valable software 2v at a specific time, that is, any one of the three spots B 1 , B 2 , or B 3 The conditional branch BC instructs the varnarable software 2v. That is, the conditional branch BC determines which spot of B 1 , B 2 , or B 3 to continue execution of the software.

図91は、ユニット6でリモート処理するように選択された条件分岐が条件分岐BCであるような、本発明の実装例を示している。この例では、データ処理システム3における被保護ソフトウェア2pの第1実行パート2pesの実行中に、ユニット6が存在すれば、以下のようになる。
・ 時刻tにおいて、条件分岐コマンドCBCが実行される。このコマンドは、アルゴリズムの面で条件分岐BCと同じであるリモート処理された条件分岐bcの第2実行パート2peuによるユニット6における実行をトリガする。この条件分岐コマンドCBCは、TRIG(bc)と表される。
・ 時刻tにおいて、第1実行パート2pesが選択されたスポット、すなわちB、B、またはBで実行を続行できるようにする情報がユニット6からデータ処理システム3へ転送される。
FIG. 91 shows an implementation example of the present invention in which the conditional branch selected for remote processing by the unit 6 is a conditional branch BC. In this example, if the unit 6 exists during execution of the first execution part 2 pes of the protected software 2 p in the data processing system 3, the following occurs.
In-time t 1, the conditional branch command CBC 1 is executed. This command triggers the execution in unit 6 by the second execution part 2 peu of the remotely processed conditional branch bc which is the same in terms of the algorithm as the conditional branch BC. This conditional branch command CBC 1 is expressed as TRIG (bc).
At time t 2 , information is transferred from the unit 6 to the data processing system 3 that allows the first execution part 2 pes to continue execution at the selected spot, ie, B 1 , B 2 , or B 3 .

次のことに注意すべきである。すなわち、被保護ソフトウェア2pの第1実行パート2pesの部分の実行中、データ処理システム3で実行される条件分岐コマンドは、対応するリモート処理された条件分岐の実行をユニット6においてトリガする。このため、ユニット6が存在すれば、この部分が正しく実行され、その結果、被保護ソフトウェア2pは完全に機能する。   It should be noted that: That is, during execution of the portion of the first execution part 2 pes of the protected software 2 p, the conditional branch command executed in the data processing system 3 triggers the execution of the corresponding remote processed conditional branch in the unit 6. Therefore, if the unit 6 exists, this part is executed correctly, and as a result, the protected software 2p is fully functional.

図92は、ユニット6が存在しない場合の被保護ソフトウェア2pの実行試行例を示している。この例では、データ処理システム3における被保護ソフトウェア2pの第1実行パート2pesの実行中、以下のようになる。
・ 時刻tにおいて、条件分岐コマンドCBCを実行しても、ユニット6が存在しないため、リモート処理された条件分岐bcの実行をトリガすることができない。
・ 時刻tにおいて、ユニット6が存在しないため、第1実行パート2pesが選択されたスポットで実行を続行できるようにする情報の転送が失敗する。
FIG. 92 shows an execution trial example of the protected software 2p when the unit 6 does not exist. In this example, during execution of the first execution part 2pes of the protected software 2p in the data processing system 3, the following occurs.
Even when the conditional branch command CBC 1 is executed at time t 1 , the execution of the remotely processed conditional branch bc cannot be triggered because the unit 6 does not exist.
In-time t 2, the order unit 6 is not present, the transfer of information that allows continue execution at the spot where the first execution part 2pes is selected to fail.

このため、ユニット6が存在しない場合、ユニット6におけるリモート処理された条件分岐の実行のトリガを求める、第1実行パート2pesの部分による少なくとも1つの要求を正しく遂行することができないため、少なくともこの部分が正しく実行されず、その結果、被保護ソフトウェア2pは完全には機能しない。   For this reason, if the unit 6 does not exist, at least one part of the first execution part 2 pes for triggering the execution of the remotely processed conditional branch in the unit 6 cannot be correctly executed, so at least this part Is not executed correctly, and as a result, the protected software 2p does not function completely.

図90〜92を参照したこれまでの説明では、本発明の主題の目的は、条件分岐をユニット6においてリモート処理することである。当然ながら、リモート処理された条件分岐のすべての機能に相当する全体的機能を持つ条件分岐系列をユニット6でリモート処理すれば、本発明の好ましい実施形態を実行することができる。このリモート処理された条件分岐系列の全体的機能を実行すれば、被保護ソフトウェア2pの第1実行パート2pesが選択されたスポットで実行を続行できるようにする情報の扱いをデータ処理システム3に任せることができる。   In the above description with reference to FIGS. 90-92, the object of the present inventive subject matter is to remotely process conditional branches in unit 6. Naturally, if a conditional branch sequence having an overall function corresponding to all functions of a remotely processed conditional branch is processed remotely by the unit 6, the preferred embodiment of the present invention can be implemented. If the overall function of this remotely processed conditional branch sequence is executed, the data processing system 3 is left to handle information that allows the first execution part 2pes of the protected software 2p to continue execution at the selected spot. be able to.

図40〜92を参照したこれまでの説明では、5つの異なるソフトウェア保護原則を互いに無関係なものとして示してきた。本発明に従う保護プロセスは、基本関数による保護原則を使用して、また場合によってはこの原則を1つ以上の別の保護原則と組み合わせることで実装される。基本関数による保護原則を、別の少なくとも1つの保護原則を実装することで補完する場合、基本関数による保護原則を変数による保護原則、および/または、検出および強制による保護原則、および/または、リネームによる保護原則、および/または、条件分岐による保護原則によって補完すれば好都合である。   In the previous discussion with reference to FIGS. 40-92, five different software protection principles have been shown as unrelated to each other. The protection process according to the invention is implemented using a protection principle with a basic function and possibly combining this principle with one or more other protection principles. If a basic function protection principle is complemented by implementing another at least one protection principle, the basic function protection principle is replaced by a variable protection principle and / or a detection and enforcement protection principle and / or a rename. It is expedient to supplement with the protection principle by and / or the protection principle by conditional branching.

また、検出および強制による保護原則を実装する場合も、この保護原則をリネームによる保護原則、および/または、条件分岐による保護原則によって補完することができる。   Also, when implementing the protection principle based on detection and enforcement, this protection principle can be supplemented by a protection principle based on rename and / or a protection principle based on conditional branching.

また、リネームによる保護原則を実装する場合も、この保護原則を条件分岐による保護原則によって補完することができる。   Also, when implementing the protection principle by renaming, this protection principle can be supplemented by the protection principle by conditional branching.

好ましい変形実施形態では、基本関数による保護原則は変数による保護原則によって補完され、変数による保護原則は検出および強制による保護原則によって補完され、検出および強制による保護原則はリネームによる保護原則によって補完され、リネームによる保護原則は条件分岐による保護原則によって補完される。   In a preferred variant embodiment, the protection principle by basic function is complemented by the protection principle by variable, the protection principle by variable is supplemented by the protection principle by detection and enforcement, the protection principle by detection and enforcement is complemented by the protection principle by rename, The protection principle by renaming is supplemented by the protection principle by conditional branching.

基本関数による保護原則を補完するために別の保護原則を適用する場合、保護原則を組み合わせた実装を考慮して、これまでの説明に以下の変更点を加える必要がある。
・ バルナラブル・ソフトウェアという言葉を、これまで説明した保護原則との関連において脆弱であるソフトウェアという意味で理解する必要がある。したがって、保護原則がバルナラブル・ソフトウェアに既に適用されている場合、「バルナラブル・ソフトウェア」という表現を、「既に適用された保護原則によって保護されているソフトウェア」という意味で理解しなければならない。
・ 被保護ソフトウェアという言葉を、これまで説明した保護原則との関連において保護されているソフトウェアという意味で理解する必要がある。したがって、保護原則が既に適用されている場合、「被保護ソフトウェア」という表現を、「被保護ソフトウェアの新しいバージョン」という意味で理解しなければならない。
・ また、これまで説明した保護原則の実装を選択する場合、既に適用されている保護原則の実装の選択を考慮する必要がある。
If another protection principle is applied to complement the protection principle based on the basic function, the following changes need to be added to the above explanation in consideration of the implementation combining the protection principles.
• The word balnarable software needs to be understood in the sense of software that is vulnerable in the context of the protection principles described so far. Therefore, if the protection principle has already been applied to the valenable software, the expression “valenable software” must be understood in the sense of “software protected by the already applied protection principle”.
• The term protected software should be understood in the sense of protected software in the context of the protection principles described so far. Therefore, if the protection principle has already been applied, the expression “protected software” must be understood in the sense of “new version of protected software”.
・ Also, when selecting the implementation of the protection principle described so far, it is necessary to consider the selection of the implementation of the protection principle already applied.

以下の説明において、本発明に従う保護プロセスの実装がさらに明確に理解される。本発明に従うこの保護プロセスは、より正確には図100に示したように以下から構成される。
・ まず、バルナラブル・ソフトウェア2vが被保護ソフトウェア2pになるように変更される、保護フェーズP
・ 次に、被保護ソフトウェア2pが使用される、使用フェーズU。この使用フェーズUでは、以下のようになる。
− ユニット6が存在する場合、データ処理システム3において第1実行パート2pesの部分が要求するたびに、要求された機能がユニット6で実行されるため、この部分が正しく実行され、その結果、被保護ソフトウェア2pは完全に機能する。
− ユニット6が存在しない場合、ユニット6における機能の実行を求める、第1実行パート2pesの部分による要求があっても、この要求を正しく遂行できないため、少なくともこの部分が正しく実行されず、その結果、被保護ソフトウェア2pは完全には機能しない。
・ また場合によっては補充フェーズR。この補充フェーズRにおいては、特性として計測変数を使用する、検出および強制による保護原則の第2の好ましい変形実施形態の実装によって保護された機能の少なくとも1回の追加使用が認められる。
In the following description, the implementation of the protection process according to the present invention will be more clearly understood. This protection process according to the present invention more precisely consists of the following as shown in FIG.
First, the protection phase P is changed so that the valarable software 2v becomes the protected software 2p.
Next, the use phase U in which the protected software 2p is used. In this use phase U, the following occurs.
-When the unit 6 exists, every time the part of the first execution part 2pes requests in the data processing system 3, the requested function is executed in the unit 6, so that this part is executed correctly, and as a result, The protection software 2p is fully functional.
-If unit 6 does not exist, even if there is a request by the part of the first execution part 2pes that requests execution of the function in unit 6, this request cannot be performed correctly, so at least this part is not executed correctly, and as a result The protected software 2p does not function completely.
-In some cases, replenishment phase R. In this replenishment phase R, at least one additional use of the function protected by the implementation of the second preferred variant of the detection and enforcement protection principle using the measurement variable as a characteristic is permitted.

保護フェーズPは、2つの保護サブフェーズPおよびPに分割することができる。第1の保護サブフェーズは先行保護サブフェーズPと呼ばれ、保護すべきバルナラブル・ソフトウェア2vに依存しない。第2の保護サブフェーズは後続保護サブフェーズPと呼ばれ、保護すべきバルナラブル・ソフトウェア2vに依存する。先行保護サブフェーズPと後続保護サブフェーズPは、2人の異なる人物または2つの異なるチームによって好都合に実行できることに注意すべきである。例えば、ソフトウェア保護システムを開発する1人の人物または1つの会社が先行保護サブフェーズPを実行し、保護を必要とするソフトウェアを開発する1人の人物または1つの会社が後続保護サブフェーズPを実行することができる。当然ながら、先行保護サブフェーズPと後続保護サブフェーズPを同じ人物またはチームが実行することもできる。 Protection phase P can be split in two protection subphase P 1 and P 2. The first protection sub-phase is called the pre-protection sub-phase P 1 and does not depend on the valable software 2v to be protected. The second protection sub-phase is called the subsequent protection sub-phase P 2 and depends on the valable software 2v to be protected. Prior protection subphase P 1 and the subsequent protection subphase P 2 is to be noted that can be conveniently performed by two different persons or two different teams. For example, one person or one company that develops a software protection system performs the pre-protection subphase P 1 and one person or one company that develops software that requires protection requires a subsequent protection subphase P 2 can be executed. Of course, prior protection subphase P 1 and the subsequent protection subphase P 2 are the same person or team may also be performed.

先行保護サブフェーズPは、複数の段階S11,...,S1iから構成される。この各段階について、様々なタスクとジョブが実行される。 The preceding protection sub-phase P 1 is composed of a plurality of stages S 11 ,..., S 1i . Various tasks and jobs are executed for each stage.

この先行保護サブフェーズPの第1段階は、「定義段階S11」と呼ばれる。この定義段階S11では、以下が行われる。
・ 以下が選択される。
− ユニット6の種類。説明のための例として、ユニット6、チップカードリーダー8、およびリーダーに結合する(associated to)チップカード7を選択することができる。
− 転送手段12、13。この転送手段は、使用フェーズUにおいてデータ処理システム3とユニット6にそれぞれ装備され、データ処理システム3とユニット6との間でデータを転送する。
・ 本発明に従う保護プロセスが基本関数による保護原則を実装する場合、以下も定義される。
− ユニット6で実行することが可能な基本関数を含む基本関数セット
− この基本関数セット用の基本コマンドセット。この基本コマンドはデータ処理システム3で実行され、ユニット6において基本関数の実行をトリガすることが可能である。
・ 本発明に従う保護プロセスが検出および強制による保護原則を実装する場合、以下も定義される。
− ユニット6で少なくとも部分的に監視することが可能な、少なくとも1つのソフトウェア実行特性
− 少なくとも1つのソフトウェア実行特性について、遵守すべき少なくとも1つの基準
− ユニット6に実装され、少なくとも1つのソフトウェア実行特性が少なくとも1つの関連基準を遵守していないことを検出できる検出手段17
− ユニット6に実装され、少なくとも1つの基準が遵守されていない場合に、データ処理システム3にその旨を通知すること、および/または、ソフトウェアの実行を変更することができる強制手段18
・ 本発明に従う保護プロセスが、特性としてソフトウェア実行の計測変数を使用する、検出および強制による保護原則を実装する場合、以下も定義される。
− 監視することが可能なソフトウェア実行特性としての、ソフトウェア機能の使用状況の計測変数
− 遵守すべき基準としての、各計測変数に関連付けられた少なくとも1つのしきい値
− 少なくとも1つの計測変数を更新できる有効化手段
・ 本発明に従う保護プロセスが、特性としてソフトウェア実行の計測変数を使用する、検出および強制による保護原則の第1の好ましい変形実施形態を実装する場合、以下も定義される。
− 少なくとも1つの計測変数について、複数の関連しきい値
− このしきい値それぞれに対応する各種強制手段
・ 本発明に従う保護プロセスが、特性としてソフトウェア実行の計測変数を使用する、検出および強制による保護原則の第2の好ましい変形実施形態を実装する場合、少なくとも1回の追加使用を、計測変数によって監視される少なくとも1つのソフトウェア機能に追加することができる補充手段も定義される。
・ 本発明に従う保護プロセスが、特性としてソフトウェア使用状況プロファイルを使用する、検出および強制による保護原則を実装する場合、以下も定義される。
− 監視することが可能なソフトウェア実行特性としての、ソフトウェア使用状況プロファイル
− 遵守すべき基準としての、ソフトウェア実行の少なくとも1つの特徴
・ 本発明に従う保護プロセスが、遵守すべき実行特徴として実行連鎖のモニタリングを使用する、検出および強制による保護原則を実装する場合、以下も定義される。
− ユニット6で実行することが可能な命令を含む命令セット
− この命令セット用の命令コマンドセット。この命令コマンドはデータ処理システム3で実行され、ユニット6において命令の実行をトリガすることが可能である。
− 使用状況プロファイルとしての、命令連鎖
− 実行特徴としての、命令実行の期待される連鎖
− 命令連鎖が期待されたものではないことを検出できる検出手段17
− 命令連鎖が期待されたものではない場合に、データ処理システム3にその旨を通知すること、および/または、被保護ソフトウェア2pの部分の機能を変更できる強制手段18
・ 本発明に従う保護プロセスが、遵守すべき実行特徴として実行連鎖のモニタリングを使用する、検出および強制による保護原則の好ましい変形実施形態を実装する場合、以下も定義される。
− レジスタとともに作用し、結果を返すために少なくとも1つのオペランドを使用する命令を少なくとも一部含む命令セット
− レジスタとともに作用する命令の少なくとも一部について、以下が定義される。
> 命令の機能を定義する部分PF
> 命令実行の期待される連鎖を定義し、以下のビットフィールドを含む部分
◇ 命令識別フィールドCII
◇ 命令の各オペランド用の以下のフィールド
* フラグフィールドCD
* オペランドの期待される識別フィールドCIP
− 活用手段に搭載され命令セットで使用される各レジスタについて、生成識別フィールドCIG。このフィールドには、このレジスタに結果を返した最後の命令の識別が自動的に記憶される。
− 命令の実行中、各オペランドについて、フラグフィールドCDが要求した場合に、このオペランドで使用されるレジスタに対応する生成識別フィールドCIGが、このオペランドの出所(origin)の期待される識別フィールドCIPと等しいかどうかをチェックできる検出手段17
− チェックされた同等性の少なくとも1つが偽である場合に、命令の結果を変更できる強制手段18
・ 本発明に従う保護プロセスがリネームによる保護原則を実装する場合、以下も定義される。
− トリガコマンドとしての、基本コマンドまたは命令コマンド
− 従属関数としての、基本関数または命令
− 対応する従属関数の実行をトリガするために、データ処理システム3によってユニット6へ転送される情報に少なくとも部分的に対応する、トリガコマンドの少なくとも1つの引数(オーダーとして)
− リネームされたオーダーを持つトリガコマンドを取得するために、オーダーをリネームすることができる、オーダーリネーム方法
− 使用フェーズUにおいてユニット6で使用され、実行すべき従属関数をリネームされたオーダーから復元することができる復元手段20
・ 本発明に従う保護プロセスがリネームによる保護原則の変形を実装する場合、少なくとも1つの従属関数について、アルゴリズムの面では同じであるが、リネームされたオーダーが異なるトリガコマンドによってトリガされる従属関数群も定義される。
・ 本発明に従う保護プロセスがリネームによる保護原則の変形の好ましい実施形態の1つを実装する場合、少なくとも1つの従属関数について、アルゴリズムが同じである従属関数群も、以下によって定義される。
− ユニット6で実行すべき従属関数の機能パートを定義する情報とノイズフィールドを連結することによって
− または、命令識別フィールドCIIと、オペランドの期待される識別フィールドCIPを使用することによって
・ 本発明に従う保護プロセスがリネームによる保護原則の好ましい変形を実装する場合、以下も定義される。
− オーダーリネーム方法としての、オーダーを暗号化する暗号化方法
− リネームされたオーダーを復号化して、ユニット6で実行すべき従属関数のアイデンティティを復元する復号化方法を実装する復元手段20
The first stage of the prior protection subphase P 1 is referred to as "defining step S 11". In the definition stage S 11, the following takes place.
• The following are selected:
-The type of unit 6; As an illustrative example, the unit 6, chip card reader 8, and chip card 7 associated to the reader can be selected.
Transfer means 12, 13; This transfer means is provided in each of the data processing system 3 and the unit 6 in the use phase U, and transfers data between the data processing system 3 and the unit 6.
If the protection process according to the invention implements the protection principle with basic functions, the following is also defined:
A basic function set including basic functions that can be executed in unit 6; a basic command set for this basic function set; This basic command is executed in the data processing system 3 and can trigger the execution of the basic function in the unit 6.
If the protection process according to the invention implements the detection and enforcement protection principle, the following is also defined:
At least one software execution characteristic that can be monitored at least in part by unit 6; at least one criterion to be observed for at least one software execution characteristic; at least one software execution characteristic implemented in unit 6; Detection means 17 that can detect that the device does not comply with at least one related criterion
A forcing means 18 that can be implemented in the unit 6 and can notify the data processing system 3 and / or change the execution of the software if at least one criterion is not complied with;
If the protection process according to the invention implements a detection and enforcement protection principle that uses software-implemented measurement variables as characteristics, the following are also defined:
-Measurement variables for the usage of software functions as software execution characteristics that can be monitored-At least one threshold value associated with each measurement variable, as a criterion to be observed-Update at least one measurement variable Possible enabling means: If the protection process according to the invention implements a first preferred variant embodiment of the detection and enforcement protection principle using software-implemented measurement variables as characteristics, the following is also defined:
-A plurality of associated thresholds for at least one measurement variable-various enforcement measures corresponding to each of these thresholds-protection by detection and enforcement, where the protection process according to the invention uses software-implemented measurement variables as characteristics When implementing the second preferred variant embodiment of the principle, a supplementary means is also defined that can add at least one additional use to at least one software function monitored by a measurement variable.
If the protection process according to the present invention implements a detection and enforcement protection principle that uses a software usage profile as a characteristic, the following is also defined:
-Software usage profile as a software execution characteristic that can be monitored-At least one characteristic of software execution as a standard to be observed-Monitoring the execution chain as an execution characteristic that the protection process according to the present invention should comply with When implementing the detection and enforcement protection principle using, the following are also defined:
An instruction set containing instructions that can be executed in unit 6; an instruction command set for this instruction set; This instruction command is executed by the data processing system 3 and can trigger execution of the instruction in the unit 6.
An instruction chain as a usage status profile, an expected chain of instruction execution as an execution feature, and a detection means 17 capable of detecting that the instruction chain is not expected.
-If the instruction chain is not expected, forcing means 18 for notifying the data processing system 3 and / or changing the function of the protected software 2p part
If the protection process according to the invention implements a preferred variant embodiment of the detection and enforcement protection principle, using execution chain monitoring as an execution feature to be observed, the following is also defined:
An instruction set that includes at least a part of an instruction that works with a register and uses at least one operand to return a result; for at least a part of an instruction that works with a register, the following is defined:
> Partial PF that defines the function of the instruction
> Defines the expected chain of instruction execution and includes the following bit fields: ◇ Instruction identification field CII
◇ The following fields for each operand of the instruction
* Flag field CD k
* Operand expected identification field CIP k
A generation identification field CIG v for each register mounted on the exploitation means and used in the instruction set. This field automatically stores the identification of the last instruction that returned a result in this register.
During execution of the instruction, for each operand, if the flag field CD k requires, the generation identification field CIG v corresponding to the register used in this operand is the expected identification field of origin of this operand Detection means 17 capable of checking whether it is equal to CIP k
A forcing means 18 that can change the result of the instruction if at least one of the checked equivalences is false;
If the protection process according to the invention implements the rename protection principle, the following is also defined:
A basic command or instruction command as a trigger command; a basic function or instruction as a dependent function; at least part of the information transferred to the unit 6 by the data processing system 3 to trigger the execution of the corresponding dependent function At least one argument (as an order) of the trigger command corresponding to
An order renaming method, in which an order can be renamed to obtain a trigger command with a renamed order, and a dependent function to be used and executed in unit 6 in the use phase U is restored from the renamed order. Restoration means 20 capable of
If the protection process according to the invention implements a variant of the protection principle by renaming, there is also a group of dependent functions that are the same in terms of the algorithm for at least one dependent function, but whose renamed orders are triggered by different trigger commands Defined.
If the protection process according to the present invention implements one of the preferred embodiments of the modification of the protection principle by renaming, a set of dependent functions whose algorithms are the same for at least one dependent function is also defined by:
By concatenating the noise field with the information defining the functional part of the dependent function to be executed in unit 6 or by using the instruction identification field CII and the expected identification field CIP k of the operand If the protection process according to implements a preferred variant of the rename protection principle, the following is also defined:
An encryption method for encrypting an order as an order rename method; a restoring means 20 for implementing a decryption method for decrypting the renamed order and restoring the identity of the dependent function to be executed in the unit 6;

先行保護サブフェーズPにおいて、定義段階S11の後に「構築段階S12」と呼ばれる段階が続く。この構築段階S12において、転送手段12、13が構築され、また場合によっては定義段階S11の定義に対応する活用手段も構築される。 In the pre-protection sub-phase P 1 , the definition phase S 11 is followed by a phase called “construction phase S 12 ”. In this construction stage S 12, the transfer means 12, 13 is constructed, utilizing means corresponding to the definition of the definition phase S 11 in some cases also be constructed.

したがって、この構築段階S12において以下が実行される。
・ 使用フェーズUにおいてデータ処理システム3とユニット6との間でデータを転送することができる転送手段12、13が構築される。
・ 使用フェーズUにおけるユニット6による基本関数セットの基本関数の実行も可能にする活用手段が構築される。
・ また、検出および強制による保護原則も実装する場合、以下が構築される。
− 使用フェーズUにおいてユニット6による検出手段17と強制手段18の実装も可能にする活用手段
− 使用フェーズUにおいてユニット6による有効化手段の実装も可能にする活用手段(場合による)
− 使用フェーズUにおいてユニット6による補充手段の実装も可能にする活用手段(場合による)
− 使用フェーズUにおいてユニット6による命令セットの命令の実行も可能にする活用手段(場合による)
・ また、リネームによる保護原則も実装する場合、使用フェーズUにおいてユニット6による復元手段の実装も可能にする活用手段が構築される。
Therefore, the following is performed in this construction stage S 12.
Transfer means 12 and 13 are constructed that can transfer data between the data processing system 3 and the unit 6 in the use phase U.
A utilization means is constructed that enables the basic function of the basic function set to be executed by the unit 6 in the use phase U.
• If the detection and enforcement protection principle is also implemented, the following is established:
-Utilization means for enabling the implementation of the detection means 17 and the forcing means 18 by the unit 6 in the use phase U-Utilization means for enabling the implementation means by the unit 6 in the use phase U (depending on the case)
-Utilization means (possibly) that also allow the implementation of replenishment means by unit 6 in use phase U
-Utilization means that also allow execution of instructions in the instruction set by unit 6 in use phase U (depending on the case)
In addition, when the protection principle by renaming is also implemented, a utilization means that enables the restoration means by the unit 6 to be implemented in the use phase U is constructed.

活用手段の構築は通常、プログラム開発ユニットによって行われ、定義段階S11で挿入された(intervened)定義が考慮される。このようなユニットについて、図110を参照しながら説明する。 Construction of utilization means is usually done by a program development unit, it is inserted (intervened) defined by defining step S 11 is considered. Such a unit will be described with reference to FIG.

先行保護サブフェーズPにおいて、構築段階S12の後に「事前カスタマイズ段階S13」と呼ばれる段階が続くことがある。この事前カスタマイズ段階S13において、少なくとも1つの事前カスタマイズ済みユニット66を取得するために、転送手段13、および/または、活用手段の少なくとも一部が少なくとも1つのブランクユニット60にアップロードされる。活用手段の一部が事前カスタマイズ済みユニット66に一度転送されると、この事前カスタマイズ済みユニット66の外部からその部分に直接アクセスできなくなることに注意すべきである。ブランクユニット60への活用手段の転送は、適合する事前カスタマイズユニットによって行うことができる。事前カスタマイズユニットについて、図120を参照しながら説明する。事前カスタマイズ済みユニット66がチップカード7とそのリーダー8から構成されている場合、事前カスタマイズはチップカード7だけにかかわる。 In the prior protection subphase P 1, it may be stages that after the construction phase S 12 called "pre-customization stage S 13" is followed. In this pre-customization step S 13 , the transfer means 13 and / or at least part of the utilization means are uploaded to at least one blank unit 60 in order to obtain at least one pre-customized unit 66. It should be noted that once a part of the exploitation means is transferred to the pre-customized unit 66, it cannot be accessed directly from outside the pre-customized unit 66. Transfer of the utilization means to the blank unit 60 can be performed by a suitable pre-customization unit. The pre-customization unit will be described with reference to FIG. If the pre-customized unit 66 is composed of the chip card 7 and its reader 8, the pre-customization involves only the chip card 7.

先行保護サブフェーズPにおいて、定義段階S11の後、および場合によっては構築段階S12の後に、「ツール作成段階S14」と呼ばれる段階が続くことがある。このツール作成段階S14において、被保護ソフトウェアの生成を支援することやソフトウェア保護を自動化することを可能にするツールが作成される。このようなツールによって、以下が可能になる。
・ 保護すべきバルナラブル・ソフトウェア2vにおいて、以下の選択を補助するか、以下の選択を自動的に行う。
− ユニット6でリモート処理可能なステップに分割することが可能なアルゴリズム処理
− 変更することが可能な部分
− ユニット6でリモート処理可能な変数(変数による保護原則も実装される場合)
− 監視すべき実行特性、および場合によっては、ユニット6でリモート処理可能な命令に分割することが可能なアルゴリズム処理(検出および強制による保護原則も実装される場合)
− ユニット6でリモート処理可能な従属関数に分割することが可能であり、トリガコマンドのオーダーをリネームできるようなアルゴリズム処理(リネームによる保護原則も実装される場合)
− ユニット6でリモート処理することが可能な機能を持つ条件分岐(条件分岐による保護原則も実装される場合)
・ また場合によっては、被保護ソフトウェアの生成を支援し、またはソフトウェア保護を自動化する。
In the pre-protection sub-phase P 1 , a stage called “tool creation stage S 14 ” may follow after the definition stage S 11 and possibly the construction stage S 12 . In this tool creation stage S 14, a tool that makes it possible to automate the or software protection for supporting the generation of the protected software is created. With such tools, you can:
-The following selection is supported or automatically performed in the balableable software 2v to be protected.
-Algorithm processing that can be divided into steps that can be processed remotely by unit 6-Parts that can be changed-Variables that can be processed remotely by unit 6 (if the protection principle by variables is also implemented)
-The execution characteristics to be monitored and, in some cases, algorithmic processing that can be divided into instructions that can be remotely processed by unit 6 (if detection and enforcement protection principles are also implemented)
-Algorithmic processing that can be divided into dependent functions that can be processed remotely in unit 6 and that allows the order of trigger commands to be renamed (if the protection principle by renaming is also implemented)
-Conditional branching with a function that can be remotely processed by unit 6 (when protection principle by conditional branching is also implemented)
• In some cases, support the generation of protected software or automate software protection.

このような各種ツールは、個別に実行することも組み合わせて実行することもできる。各ツールは、プリプロセッサ、アセンブラ、コンパイラなど様々な形態をとることができる。   These various tools can be executed individually or in combination. Each tool can take various forms such as a preprocessor, an assembler, and a compiler.

先行保護サブフェーズPの後に、保護すべきバルナラブル・ソフトウェア2vに依存する後続保護サブフェーズPが続く。この後続保護サブフェーズPも複数の段階から構成される。変数による保護原則の実装に対応する第1段階は、「作成段階S21」と呼ばれる。この作成段階S21では、定義段階S11で行われた選択が使用される。この選択と、ツール作成段階S14で構築されたツール(場合による)を利用して以下の処理を実行することで、被保護ソフトウェア2pが作成される。
・ バルナラブル・ソフトウェア2vの実行の間に、少なくとも1つのオペランドを使用し、少なくとも1つの結果を取得することが可能な少なくとも1つのアルゴリズム処理を選択する。
・ 少なくとも1つの選択されたアルゴリズム処理を含む、バルナラブル・ソフトウェアのソース2vsの少なくとも1つの部分を選択する。
・ 被保護ソフトウェアのソース2psの少なくとも1つの変更された部分を取得するために、バルナラブル・ソフトウェアのソース2vsの少なくとも1つの選択された部分を変更することで、バルナラブル・ソフトウェアのソース2vsから被保護ソフトウェアのソース2psを作成する。この変更は以下の処理である。
>被保護ソフトウェア2pの実行中に、第1の実行パート2pesがデータ処理システム3で実行され、第2の実行パート2peuが情報のアップロードの後にブランクユニット60から取得されるユニット6で実行される。
>少なくとも1つの選択されたアルゴリズム処理の少なくとも機能が、第2実行パート2peuによって実行される。
>少なくとも1つの選択されたアルゴリズム処理が分割され、これにより保護されたソフトウェア2pの実行の間に前記アルゴリズム処理が基本関数を用いて第2実行パートによって実行される。
>少なくとも1つの選択されたアルゴリズム処理に対して、基本コマンドが被保護ソフトウェアのソース2psに統合され、これにより被保護ソフトウェア2p実行の間に、各々の基本コマンドが第1の実行パート2pesにより実行され、ユニット6において基本関数の第2実行パート2peuによる実行をトリガする。
>基本コマンドのシーケンスが被保護ソフトウェア2pの実行を可能にするシーケンスのセットのうちから選択される。
> 保護されたソフトウェアのソース2psからの被保護ソフトウェア2pの第1オブジェクトパート2pos。この第1オブジェクトパート2posは、被保護ソフトウェア2pの実行の間中に第1実行パート2peuが現れるようなオブジェクトパートであり、第1実行パート2peuはデータ処理システム3で実行され、その少なくとも1つの部分は選択されたシーケンスに従って基本コマンドが実行されることを考慮するようになる。
> 活用手段を含む保護ソフトウェア2pの第2オブジェクトパート2pouであり、ブランクユニット(60)へのアップロードの後、保護ソフトウェア(2p)の実行中に、第1実行パート(2pes)によってトリガされた基本関数が実行されることによって、第2実行パート(2peu)が現れるようなものである。
The pre-protection sub-phase P 1 is followed by a subsequent protection sub-phase P 2 which depends on the vernable software 2v to be protected. The subsequent protection subphase P 2 also consists of a plurality of stages. The first stage corresponding to the implementation of the protection principle with variables is called “creation stage S 21 ”. In the preparatory stage S 21, selection made by the defined step S 11 is used. And this selection, using the tools built in tool generation step S 14 (as the case) by executing the following processing, the protected software 2p is created.
At least one operand is used during the execution of the vernalable software 2v, and at least one algorithm processing capable of obtaining at least one result is selected.
• Select at least one part of the source 2 vs. varnarable software that contains at least one selected algorithm processing.
• protected from source 2 vs. balable software by modifying at least one selected part of source 2 vs. balable software to obtain at least one modified part of source 2 ps of protected software Create software source 2ps. This change is the following process.
> During execution of the protected software 2p, the first execution part 2pes is executed in the data processing system 3 and the second execution part 2peu is executed in the unit 6 obtained from the blank unit 60 after uploading information .
> At least one function of at least one selected algorithm processing is performed by the second execution part 2 peu.
> At least one selected algorithm process is divided, so that during the execution of the protected software 2p, said algorithm process is executed by the second execution part using a basic function.
> For at least one selected algorithm processing, basic commands are integrated into the protected software source 2ps, so that during execution of the protected software 2p, each basic command is executed by the first execution part 2pes. In unit 6, the execution of the basic function by the second execution part 2peu is triggered.
> The sequence of basic commands is selected from a set of sequences that allow execution of the protected software 2p.
> The first object part 2pos of the protected software 2p from the protected software source 2ps. This first object part 2 pos is an object part in which the first execution part 2 peu appears during the execution of the protected software 2 p, and the first execution part 2 peu is executed by the data processing system 3, and at least one of the first execution part 2 peu is executed. The part comes into consideration that basic commands are executed according to the selected sequence.
> The second object part 2pou of the protection software 2p including the exploitation means, which is triggered by the first execution part (2pes) during the execution of the protection software (2p) after uploading to the blank unit (60) When the function is executed, the second execution part (2 peu) appears.

当然ながら、バルナラブル・ソフトウェア2vを前もって実現しなくても、本発明に従う変数による保護原則を新しいソフトウェアの開発中に直接適用することができる。このような方法で、被保護ソフトウェア2pが直接得られる。   Of course, the variable protection principle according to the present invention can be applied directly during the development of new software, without the prior implementation of the balnarable software 2v. In this way, the protected software 2p is obtained directly.

後続保護サブフェーズPにおいて、基本関数による保護原則に加えて少なくとも1つの別の保護原則が適用される場合、「変更段階S22」が実行される。この変更段階S22では、定義段階S11で挿入された(intervened)定義が使用される。これまで定義してきた構成(arrangements)の1つに従う保護原則の実装を可能にするように、この定義とツール作成段階S14で構築されたツール(場合による)を利用して、被保護ソフトウェア2pが変更される。 In the subsequent protection sub-phase P 2 , if at least one other protection principle is applied in addition to the protection principle by the basic function, the “change stage S 22 ” is executed. In the change step S 22, it is inserted (intervened) defined by defining step S 11 is used. Previously to allow implementation of the protection principle according to one of the configurations that have been defined (Arrangements), by utilizing the definition and tools constructed in the creation step S 14 tool (as the case), the protected software 2p Is changed.

変数による保護原則を実装する場合、以下の処理によって、被保護ソフトウェア2pが変更される。
・ 被保護ソフトウェア2pの実行中に、被保護ソフトウェアの状態を部分的に規定する、少なくとも1つの選択されたアルゴリズム処理で使用される少なくとも1つの変数を選択する。
・ 被保護ソフトウェアのソース2psの少なくとも1つの選択された部分を変更する。この変更は、被保護ソフトウェア2pの実行中に、少なくとも1つの選択された変数または選択された変数の少なくとも1つのコピーがユニット6に存在するような変更である。
・ 以下を作成する。
− 被保護ソフトウェア2pの第1オブジェクトパート2posであり、被保護ソフトウェア(2p)の実行中に、第1実行パート2pesの少なくとも1つの部分が、少なくとも1つの変数または変数の少なくとも1つのコピーがユニット6に存在することも考慮するようなもの
− 被保護ソフトウェア2pの第2オブジェクトパート2pouであり、ユニット6へのアップロード後、被保護ソフトウェア2pの実行中に、第2実行パート2peuが現れ、それによって、少なくとも1つの選択された変数または選択された変数の少なくとも1つのコピーがユニット6にも存在するようになるようなもの。
When the protection principle based on variables is implemented, the protected software 2p is changed by the following processing.
• During execution of the protected software 2p, select at least one variable used in at least one selected algorithm process that partially defines the state of the protected software.
Change at least one selected part of the protected software source 2 ps. This change is such that during execution of the protected software 2p, at least one selected variable or at least one copy of the selected variable exists in the unit 6.
・ Create the following.
The first object part 2pos of the protected software 2p, and during execution of the protected software (2p), at least one part of the first execution part 2pes is a unit of at least one variable or at least one copy of the variable The second object part 2pou of the protected software 2p, after uploading to the unit 6, the second execution part 2peu appears during the execution of the protected software 2p, So that at least one selected variable or at least one copy of the selected variable is also present in the unit 6.

検出および強制による保護原則が実装されている場合、被保護ソフトウェア2pが以下の処理によって変更される。
・ 監視することが可能なソフトウェア実行特性の中から、監視すべきソフトウェア実行特性を少なくとも1つ選択する。
・ 少なくとも1つの選択されたソフトウェア実行特性について、遵守すべき基準を少なくとも1つ選択する。
・ 被保護ソフトウェアのソース2psにおいて、少なくとも1つの選択されたソフトウェア実行特性が監視される基本関数を選択する。
・ 被保護ソフトウェアのソース2psの少なくとも1つの選択された部分を変更する。この変更の結果、被保護ソフトウェア2pの実行中、少なくとも1つの選択された実行特性が第2実行パート2peuによって監視されるようになる。また、基準が遵守されなかった場合、データ処理システム3にその旨が通知され、および/または、被保護ソフトウェア2pの実行が変更される。
・ 検出手段17と強制手段18も実装する活用手段を備える被保護ソフトウェア2pの第2オブジェクトパート2pouを作成する。この第2オブジェクトパート2pouが作成された結果、ユニット6へのアップロード後、被保護ソフトウェア2pの実行中に少なくとも1つのソフトウェア実行特性が監視されるようになる。また、基準が遵守されなかった場合、データ処理システム3にその旨が通知され、および/または、被保護ソフトウェア2pの実行が変更される。
When the protection principle based on detection and enforcement is implemented, the protected software 2p is changed by the following processing.
• Select at least one software execution characteristic to be monitored from among the software execution characteristics that can be monitored.
• Select at least one criterion to be observed for at least one selected software execution characteristic.
Select a basic function at which at least one selected software execution characteristic is monitored at 2 ps of protected software source.
Change at least one selected part of the protected software source 2 ps. As a result of this change, during execution of the protected software 2p, at least one selected execution characteristic is monitored by the second execution part 2peu. If the standard is not observed, the data processing system 3 is notified of this and / or the execution of the protected software 2p is changed.
Create the second object part 2pou of the protected software 2p having utilization means that also implements the detection means 17 and the forcing means 18. As a result of the creation of the second object part 2pou, after uploading to the unit 6, at least one software execution characteristic is monitored during execution of the protected software 2p. If the standard is not observed, the data processing system 3 is notified of this, and / or the execution of the protected software 2p is changed.

特性としてソフトウェア実行の計測変数を使用する、検出および強制による保護原則の実装では、被保護ソフトウェア2pが以下の処理によって変更される。
・ 監視すべきソフトウェア実行特性として、ソフトウェアの少なくとも1つの機能の使用状況の計測変数を少なくとも1つ選択する。
・ 以下を選択する。
− 計測変数を利用して使用状況を監視することが可能な、被保護ソフトウェア2pの少なくとも1つの機能
− この機能の使用状況の定量化に使用される少なくとも1つの計測変数
− この機能の使用限度に対応する選択された計測変数に関連付けられた少なくとも1つのしきい値
− この機能の使用状況に応じて、選択された計測変数を更新する少なくとも1つの方法
・ 被保護ソフトウェアのソース2psの少なくとも1つの選択された部分を変更する。この変更の結果、被保護ソフトウェア2pの実行中、この機能の使用状況に応じて計測変数が第2実行パート2peuによって有効化され、少なくとも1つのしきい値超過が考慮されるようになる。
In the implementation of the protection principle based on detection and enforcement that uses measurement variables of software execution as characteristics, the protected software 2p is changed by the following processing.
• Select at least one measurement variable for the usage of at least one function of the software as a software execution characteristic to be monitored.
・ Select the following.
-At least one function of the protected software 2p that can monitor the usage using measurement variables-at least one measurement variable used to quantify the usage of this function-the usage limit of this function At least one threshold value associated with the selected measurement variable corresponding to-at least one method of updating the selected measurement variable according to the use of this function; at least one of the protected software sources 2ps Change one selected part. As a result of this change, during the execution of the protected software 2p, the measurement variable is enabled by the second execution part 2peu according to the usage status of this function, and at least one threshold excess is taken into account.

特性として計測変数を使用する、検出および強制による保護原則の第1の好ましい変形実施形態の実装では、被保護ソフトウェア2pが以下の処理によって変更される。
・ 被保護ソフトウェアのソース2psにおいて、機能の各種使用限度に対応する複数のしきい値を関連付ける必要がある、計測変数を少なくとも1つ選択する。
・ 選択された計測変数に関連付けられたしきい値を少なくとも2つ選択する。
・ 被保護ソフトウェアのソース2psの少なくとも1つの選択された部分を変更する。この変更の結果、被保護ソフトウェア2pの実行中、第2実行パート2peuが様々なしきい値の超過を個別に考慮するようになる。
In the implementation of the first preferred variant embodiment of the detection and enforcement protection principle using measured variables as characteristics, the protected software 2p is modified by the following process.
Select at least one measurement variable that needs to be associated with multiple thresholds corresponding to various usage limits of the function in the source of protected software 2ps.
Select at least two threshold values associated with the selected measurement variable.
Change at least one selected part of the protected software source 2 ps. As a result of this change, during execution of the protected software 2p, the second execution part 2peu individually considers exceeding various threshold values.

特性として計測変数を使用する、検出および強制による保護原則の第2の好ましい変形実施形態の実装では、被保護ソフトウェア2pが以下の処理によって変更される。
・ 被保護ソフトウェアのソース2psにおいて、機能の使用を制限でき、少なくとも1回の追加使用を認めることができなければならない、選択された計測変数を少なくとも1つ選択する。
・ 少なくとも1つの選択された部分を変更する。この変更の結果、補充と呼ばれるフェーズにおいて、選択された計測変数に対応する少なくとも1つの機能の少なくとも1回の追加使用を認めることができるようになる。
In the implementation of the second preferred variant embodiment of the detection and enforcement protection principle, using measured variables as characteristics, the protected software 2p is modified by the following process.
• Select at least one selected measurement variable that must be able to restrict the use of functions and allow at least one additional use in the protected software source 2ps.
Change at least one selected part. As a result of this change, it is possible to allow at least one additional use of at least one function corresponding to the selected measurement variable in a phase called replenishment.

特性としてソフトウェア使用状況プロファイルを使用する、検出および強制による保護原則の実装では、被保護ソフトウェア2pが以下の処理によって変更される。
・ 監視すべきソフトウェア実行特性として、ソフトウェア使用状況プロファイルを少なくとも1つ選択する。
・ 少なくとも1つの選択された使用状況プロファイルが遵守しなければならない実行特徴を少なくとも1つ選択する。
・ 被保護ソフトウェアのソース2psの少なくとも1つの選択された部分を変更する。この変更の結果、被保護ソフトウェア2pの実行中、第2実行パート2peuが選択された実行特徴をすべて遵守するようになる。
In the implementation of the detection and enforcement protection principle using the software usage profile as a characteristic, the protected software 2p is changed by the following process.
• Select at least one software usage profile as the software execution characteristics to be monitored.
Select at least one execution feature that at least one selected usage profile must comply with.
Change at least one selected part of the protected software source 2 ps. As a result of this change, during execution of the protected software 2p, the second execution part 2peu complies with all selected execution characteristics.

遵守すべき実行特徴として実行連鎖のモニタリングを使用する、検出および強制による保護原則の実装では、被保護ソフトウェア2pが以下の処理によって変更される。
・ 被保護ソフトウェアのソース2psの少なくとも1つの選択された部分を以下の処理によって変更する。
− 基本関数を命令に変換する。
− ユニット6での実行中に命令の少なくとも一部が遵守しなければならない連鎖を指定する。
− 基本コマンドを、使用される命令に対応する命令コマンドに変換する。
In the implementation of the detection and enforcement protection principle using execution chain monitoring as an execution feature to be observed, the protected software 2p is modified by the following process.
Change at least one selected part of the source 2 ps of the protected software by the following process:
− Convert basic functions into instructions.
-Specify the chain that at least some of the instructions must comply with during execution in unit 6.
-Convert basic commands into instruction commands corresponding to the instructions used.

リネームによる保護原則を実装する場合、被保護ソフトウェア2pが以下の処理によって変更される。
・ 被保護ソフトウェアのソース2psにおいて、トリガコマンドを選択する。
・ 対応する従属関数のアイデンティティを隠蔽するために、選択されたトリガコマンドのオーダーをリネームすることで、被保護ソフトウェアのソース2psの少なくとも1つの選択された部分を変更する。
・ 以下を作成する。
− 被保護ソフトウェア2pの第1オブジェクトパート2pos。この第1オブジェクトパート2posが作成された結果、被保護ソフトウェア2pの実行中、リネームされたオーダーを持つトリガコマンドが実行されるようになる。
− 復元手段20も実装する活用手段を備える被保護ソフトウェア2pの第2オブジェクトパート2pou。この第2オブジェクトパート2pouが作成された結果、ユニット6へのアップロード後、被保護ソフトウェア2pの実行中に、第1実行パート2pesによって実行がトリガされる従属関数のアイデンティティが第2実行パート2peuによって復元され、従属関数が第2実行パート2peuによって実行されるようになる。
When the protection principle by renaming is implemented, the protected software 2p is changed by the following processing.
-Select the trigger command at the source of protected software 2ps.
Modify at least one selected part of the protected software source 2ps by renaming the selected trigger command order to hide the identity of the corresponding dependent function.
・ Create the following.
The first object part 2pos of the protected software 2p. As a result of the creation of the first object part 2pos, a trigger command having the renamed order is executed during execution of the protected software 2p.
The second object part 2pou of the protected software 2p comprising a utilization means that also implements the restoration means 20; As a result of the creation of the second object part 2pou, after uploading to the unit 6, during execution of the protected software 2p, the identity of the dependent function whose execution is triggered by the first execution part 2pes is determined by the second execution part 2peu. It is restored and the dependent function is executed by the second execution part 2 peu.

リネームによる保護原則の変形の実装では、被保護ソフトウェア2pが以下の処理によって変更される。
・ 被保護ソフトウェアのソース2psにおいて、リネームされたオーダーを持つトリガコマンドを少なくとも1つ選択する。
・ リネームされたオーダーを持つ選択された1つのトリガコマンドの、リネームされたオーダーを少なくとも、リネームされた別のオーダーに置き換え、同じ群の従属関数をトリガすることで、被保護ソフトウェアのソース2psの少なくとも1つの選択された部分を変更する。
In the implementation of the modification of the protection principle by renaming, the protected software 2p is changed by the following processing.
• Select at least one trigger command with the renamed order in the protected software source 2ps.
The selected one trigger command with the renamed order replaces the renamed order with at least another renamed order and triggers the same group of dependent functions to trigger the source of protected software 2ps Change at least one selected portion.

条件分岐による保護原則を実装する場合、被保護ソフトウェア2pが以下の処理によって変更される。
・ 被保護ソフトウェアのソース2psにおいて、少なくとも1つの選択されたアルゴリズム処理で実行される条件分岐を少なくとも1つ選択する。
・ 被保護ソフトウェアのソース2psの少なくとも1つの選択された部分を変更する。この変更の結果、被保護ソフトウェア2pの実行中、少なくとも1つの選択された条件分岐の機能が、第2実行パート2peuによってユニット6で実行されるようになる。
・ 以下を作成する。
− 被保護ソフトウェア2pの第1オブジェクトパート2pos。この第1オブジェクトパート2posが作成された結果、被保護ソフトウェア2pの実行中、少なくとも1つの選択された条件分岐の機能がユニット6で実行されるようになる。
− 被保護ソフトウェア2pの第2オブジェクトパート2pou。この第2オブジェクトパート2pouが作成された結果、ユニット6へのアップロード後、被保護ソフトウェア2pの実行中に、少なくとも1つの選択された条件分岐の機能を実行する第2実行パート2peuが現れるようになる。
When the protection principle based on conditional branching is implemented, the protected software 2p is changed by the following processing.
-Select at least one conditional branch to be executed by at least one selected algorithm processing in the protected software source 2ps.
Change at least one selected part of the protected software source 2 ps. As a result of this change, during the execution of the protected software 2p, the function of at least one selected conditional branch is executed in the unit 6 by the second execution part 2peu.
・ Create the following.
The first object part 2pos of the protected software 2p. As a result of the creation of the first object part 2 pos, at least one selected conditional branch function is executed in the unit 6 during execution of the protected software 2 p.
The second object part 2pou of the protected software 2p. As a result of the creation of the second object part 2pou, after uploading to the unit 6, during execution of the protected software 2p, a second execution part 2peu that executes the function of at least one selected conditional branch appears. Become.

条件分岐による保護原則の好ましい実施形態の実装では、被保護ソフトウェア2pが以下の処理によって変更される。
・ 被保護ソフトウェアのソース2psにおいて、選択された条件分岐系列を少なくとも1つ選択する。
・ 被保護ソフトウェアのソース2psの少なくとも1つの選択された部分を変更する。この変更の結果、被保護ソフトウェア2pの実行中、少なくとも1つの選択された条件分岐系列の全体的機能が第2実行パート2peuによってユニット6で実行されるようになる。
・ 以下を作成する。
− 被保護ソフトウェア2pの第1オブジェクトパート2pos。この第1オブジェクトパート2posが作成された結果、被保護ソフトウェア2pの実行中、少なくとも1つの選択された条件分岐系列の機能がユニット6で実行されるようになる。
− 被保護ソフトウェア2pの第2オブジェクトパート2pou。この第2オブジェクトパート2pouが作成された結果、ユニット6へのアップロード後、被保護ソフトウェア2pの実行中に、少なくとも1つの選択された条件分岐系列の全体的機能を実行する第2実行パート2peuが現れるようになる。
In the implementation of the preferred embodiment of the protection principle by conditional branching, the protected software 2p is modified by the following process.
At least one selected conditional branch sequence is selected in the protected software source 2 ps.
Change at least one selected part of the protected software source 2 ps. As a result of this change, during the execution of the protected software 2p, the overall function of at least one selected conditional branch sequence is executed in the unit 6 by the second execution part 2peu.
・ Create the following.
The first object part 2pos of the protected software 2p. As a result of the creation of the first object part 2 pos, at least one selected conditional branch sequence function is executed in the unit 6 during execution of the protected software 2 p.
The second object part 2pou of the protected software 2p. As a result of the creation of the second object part 2 pou, after uploading to the unit 6, during execution of the protected software 2 p, the second execution part 2 peu that executes the overall function of at least one selected conditional branch sequence is Appears.

当然ながら、中間的な保護されたソフトウェアを前もって実行しなくても、本発明に従う保護原則を新しいソフトウェアの開発中に直接適用することができる。このような方法で、作成段階S21と変更段階S22を同時に実行して、被保護ソフトウェア2pを直接得ることができる。 Of course, the protection principle according to the invention can be applied directly during the development of new software without having to execute intermediate protected software in advance. In this way, it is possible to perform the creation phase S 21 changes step S 22 at the same time, to obtain the protected software 2p directly.

後続保護サブフェーズPにおいて、被保護ソフトウェア2pの作成段階S21の後に、また場合によっては変更段階S22の後に「カスタマイズ段階S23」と呼ばれる段階が続く。このカスタマイズ段階S23において、少なくとも1つのユニット6を取得するために、活用手段を含む第2オブジェクトパート2pouが少なくとも1つのブランクユニット60にアップロードされるか、または、少なくとも1つのユニット6を取得するために、活用手段を含む場合がある第2オブジェクトパート2pouの一部が少なくとも1つの事前カスタマイズ済みユニット66にアップロードされる。このカスタマイズ情報のアップロードによって、少なくとも1つのユニット6を作動させることができる。この情報の一部がユニット6に一度転送されると、このユニット6の外部からその部分に直接アクセスできなくなることに注意すべきである。ブランクユニット60または事前カスタマイズ済みユニット66へのカスタマイズ情報の転送は、適合するカスタマイズユニットによって行うことができる。カスタマイズユニットについては、図150を参照しながら説明する。ユニット6がチップカード7とそのリーダー8から構成されている場合、カスタマイズはチップカード7だけにかかわる。 In the subsequent protection sub-phase P 2 , a stage called “customization stage S 23 ” follows the creation stage S 21 of the protected software 2 p and possibly also the modification stage S 22 . In this customization step S 23 , in order to obtain at least one unit 6, the second object part 2 pou including the utilization means is uploaded to at least one blank unit 60, or at least one unit 6 is obtained. For this purpose, a part of the second object part 2 pou, which may contain exploitation means, is uploaded to at least one pre-customized unit 66. By uploading this customization information, at least one unit 6 can be activated. It should be noted that once a portion of this information is transferred to unit 6, it cannot be accessed directly from outside of unit 6. The transfer of customization information to the blank unit 60 or the pre-customized unit 66 can be performed by a suitable customization unit. The customization unit will be described with reference to FIG. If the unit 6 is composed of a chip card 7 and its reader 8, customization involves only the chip card 7.

保護フェーズPの実装における様々な技術手段について、図110、120、130、140、および150を参照しながらより詳しく説明する。   Various technical means in the implementation of the protection phase P will be described in more detail with reference to FIGS. 110, 120, 130, 140, and 150. FIG.

図110は、構築段階S12を実装できるシステム25の実施形態を示している。この構築段階S12では、定義段階S11で挿入された(intervened)定義が考慮され、転送手段12、13、および場合によってはユニット6用の活用手段が構築される。このようなシステム25には、システムユニット、画面、周辺機器(キーボードやマウスなど)から構成され、ファイルエディタ、アセンブラ、プリプロセッサ、コンパイラ、インタプリタ、デバッガ、リンクエディタなどのプログラムを含むコンピュータの形態を一般にとる、プログラム開発ユニットまたはワークステーションが含まれる。 Figure 110 illustrates an embodiment of a system 25 that can implement the construction stage S 12. In the construction stage S 12, the consideration inserted (intervened) defined by defining step S 11, the transfer means 12, 13 and optionally utilizing means for unit 6 is constructed. Such a system 25 is generally composed of a system unit, a screen, and peripheral devices (such as a keyboard and a mouse) and includes a computer form including programs such as a file editor, an assembler, a preprocessor, a compiler, an interpreter, a debugger, and a link editor. A program development unit or workstation.

図120は、事前カスタマイズユニット30の実施形態を示している。事前カスタマイズユニット30は、事前カスタマイズ済みユニット66を取得するために、転送手段13、および/または、活用手段を少なくとも部分的に、少なくとも1つのブランクユニット60へアップロードすることができる。この事前カスタマイズユニット30には、転送手段13、および/または、活用手段がアップロードされた事前カスタマイズ済みユニット66を取得するために、ブランクユニット60を電気的に予めカスタマイズできる読み取り/書き込み手段31が含まれている。また、例えばプリンタの形態をとることができる、ブランクユニット60の物理カスタマイズ手段32を事前カスタマイズユニット30に含めることもできる。ユニット6がチップカード7とそのリーダー8から構成されている場合、事前カスタマイズは一般に、チップカード7だけにかかわる。   FIG. 120 shows an embodiment of the pre-customization unit 30. The pre-customization unit 30 can upload the transfer means 13 and / or the utilization means at least partially to the at least one blank unit 60 in order to obtain the pre-customized unit 66. The pre-customization unit 30 includes a read / write unit 31 that can electrically pre-customize the blank unit 60 in order to obtain the transfer unit 13 and / or the pre-customized unit 66 on which the utilization unit is uploaded. It is. The pre-customization unit 30 may also include physical customization means 32 for the blank unit 60, which may take the form of a printer, for example. If the unit 6 consists of a chip card 7 and its reader 8, pre-customization generally involves only the chip card 7.

図130は、被保護ソフトウェアの生成を支援することやソフトウェア保護を自動化することを可能にするツールの作成を実行できるシステム35の実施形態を示している。このようなシステム35には、システムユニット、画面、周辺機器(キーボードやマウスなど)から構成され、ファイルエディタ、アセンブラ、プリプロセッサ、コンパイラ、インタプリタ、デバッガ、リンクエディタなどのプログラムを含むコンピュータの形態を一般にとる、プログラム開発ユニットまたはワークステーションが含まれる。   FIG. 130 illustrates an embodiment of a system 35 that can perform the creation of a tool that can assist in the generation of protected software and automate software protection. Such a system 35 is generally composed of a system unit, a screen, peripheral devices (such as a keyboard and a mouse), and includes a computer form including programs such as a file editor, an assembler, a preprocessor, a compiler, an interpreter, a debugger, and a link editor. A program development unit or workstation.

図140は、被保護ソフトウェア2pを直接作成することや、被保護ソフトウェア2pの取得を目的としてバルナラブル・ソフトウェア2vを変更することを可能にするシステム40の実施形態を示している。このようなシステム40には、システムユニット、画面、周辺機器(キーボードやマウスなど)から構成され、ファイルエディタ、アセンブラ、プリプロセッサ、コンパイラ、インタプリタ、デバッガ、リンクエディタなどのプログラムと、被保護ソフトウェアの生成を支援することやソフトウェア保護を自動化することを可能にするツールを含むコンピュータの形態を一般にとる、プログラム開発ユニットまたはワークステーションが含まれる。   FIG. 140 illustrates an embodiment of the system 40 that allows the protected software 2p to be created directly or the varnarable software 2v to be modified for the purpose of obtaining the protected software 2p. Such a system 40 includes a system unit, a screen, and peripheral devices (such as a keyboard and a mouse). A program such as a file editor, an assembler, a preprocessor, a compiler, an interpreter, a debugger, and a link editor, and generation of protected software. Included is a program development unit or workstation that typically takes the form of a computer that includes tools that can assist with automating software protection.

図150は、カスタマイズユニット45の実施形態を示している。このカスタマイズユニット45は、少なくとも1つのユニット6を取得するために第2オブジェクトパート2pouを少なくとも1つのブランクユニット60へアップロードすることや、少なくとも1つのユニット6を取得するために第2オブジェクトパート2pouの一部を少なくとも1つの事前カスタマイズ済みユニット66へアップロードすることができる。このカスタマイズユニット45には、少なくとも1つのユニット6を取得するために、少なくとも1つのブランクユニット60または少なくとも1つの事前カスタマイズ済みユニット66を電気的にカスタマイズできる読み取り/書き込み手段46が含まれる。このカスタマイズの終了時、ユニット6には被保護ソフトウェア2pの実行に必要な情報が含まれる。また、カスタマイズユニット45には、例えばプリンタの形態をとることができる、少なくとも1つのユニット6用の物理カスタマイズ手段47を含めることもできる。ユニット6がチップカード7とそのリーダー8から構成される場合、カスタマイズは一般に、チップカード7だけにかかわる。   FIG. 150 shows an embodiment of the customization unit 45. The customization unit 45 uploads the second object part 2 pou to the at least one blank unit 60 in order to obtain at least one unit 6, or the second object part 2 pou in order to obtain at least one unit 6. A portion can be uploaded to at least one pre-customized unit 66. The customization unit 45 includes read / write means 46 that can electrically customize at least one blank unit 60 or at least one pre-customized unit 66 to obtain at least one unit 6. At the end of the customization, the unit 6 contains information necessary for executing the protected software 2p. The customization unit 45 can also include physical customization means 47 for at least one unit 6, which can take the form of a printer, for example. If the unit 6 is composed of a chip card 7 and its reader 8, customization generally involves only the chip card 7.

本発明に従う保護プロセスに以下の改良を施すことができる。
・ 被保護ソフトウェア2pの第2オブジェクトパート2pouが配分された複数の処理/記憶ユニットを一緒に使用するように改良できる。これにより、一緒に使用した場合は、被保護ソフトウェア2pの実行を可能にし、この処理/記憶ユニットの少なくとも1つが存在しない場合は、被保護ソフトウェア2pの使用を防止することができる。
・ 同様に、事前カスタマイズ段階S13の後、カスタマイズ段階S23において、事前カスタマイズ済みユニット66をユニット6に変換するために必要な第2オブジェクトパート2pouの一部を、カスタマイズユニット45で使用される処理/記憶ユニットに含めることで、この第2オブジェクトパート2pouの一部へのアクセスを制限することができる。当然ながら、この第2オブジェクトパート2pouの一部を複数の処理/記憶ユニットに配分することができる。これにより、この第2オブジェクトパート2pouの一部へのアクセスを、この処理/記憶ユニットを一緒に使用している場合のみ許可することができる。
The following improvements can be made to the protection process according to the invention.
The second object part 2pou of the protected software 2p can be improved to use together a plurality of processing / storage units. Thus, when used together, the protected software 2p can be executed, and when at least one of the processing / storage units does not exist, the use of the protected software 2p can be prevented.
Similarly, after the pre-customization step S 13, a part of the second object part 2 pou necessary for converting the pre-customized unit 66 into the unit 6 is used in the customization unit 45 in the customization step S 23 . By including it in the processing / storage unit, access to a part of the second object part 2 pou can be restricted. Of course, a part of this second object part 2 pou can be distributed to a plurality of processing / storage units. Thereby, access to a part of this second object part 2 pou can be permitted only when this processing / storage unit is used together.

本発明に従うプロセスによってそれぞれ保護されない、および保護されるソフトウェアの様々な表現を示す機能ブロック図である。FIG. 3 is a functional block diagram illustrating various representations of software that are not protected and protected by processes according to the present invention, respectively. 本発明に従うプロセスによってそれぞれ保護されない、および保護されるソフトウェアの様々な表現を示す機能ブロック図である。FIG. 3 is a functional block diagram illustrating various representations of software that are not protected and protected by processes according to the present invention, respectively. 本発明に従うプロセスを実装する装置の様々な実施形態を例として示している。Fig. 3 shows by way of example various embodiments of an apparatus for implementing a process according to the present invention. 本発明に従うプロセスを実装する装置の様々な実施形態を例として示している。Fig. 3 shows by way of example various embodiments of an apparatus for implementing a process according to the present invention. 本発明に従うプロセスを実装する装置の様々な実施形態を例として示している。Fig. 3 shows by way of example various embodiments of an apparatus for implementing a process according to the present invention. 本発明に従うプロセスの一般原則を明確に示す機能ブロック図である。Figure 2 is a functional block diagram clearly illustrating the general principles of the process according to the present invention. 本発明に従うプロセスの一般原則を明確に示す機能ブロック図である。Figure 2 is a functional block diagram clearly illustrating the general principles of the process according to the present invention. 変数による保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing the protection principle by variable. 変数による保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing the protection principle by variable. 変数による保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing the protection principle by variable. 変数による保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing the protection principle by variable. 基本関数による保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing a protection principle with basic functions. 基本関数による保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing a protection principle with basic functions. 基本関数による保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing a protection principle with basic functions. 基本関数による保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing a protection principle with basic functions. 基本関数による保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing a protection principle with basic functions. 検出および強制による保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing the detection and enforcement protection principle. 検出および強制による保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing the detection and enforcement protection principle. 検出および強制による保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing the detection and enforcement protection principle. 検出および強制による保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing the detection and enforcement protection principle. 検出および強制による保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing the detection and enforcement protection principle. リネームによる保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing the protection principle by renaming. リネームによる保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing the protection principle by renaming. リネームによる保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing the protection principle by renaming. リネームによる保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing the protection principle by renaming. リネームによる保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing the protection principle by renaming. リネームによる保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing the protection principle by renaming. 条件分岐による保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing the protection principle with conditional branches. 条件分岐による保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing the protection principle with conditional branches. 条件分岐による保護原則を実装する本発明に従う保護プロセスを示す図である。FIG. 3 shows a protection process according to the invention implementing the protection principle with conditional branches. 本発明の主題の様々な実装フェーズを示す図である。FIG. 6 illustrates various implementation phases of the inventive subject matter. 本発明に従う保護フェーズの構築段階の実装を可能にするシステムの実施形態を示している。Fig. 2 shows an embodiment of a system that enables the implementation of the construction phase of the protection phase according to the present invention. 本発明に従う保護プロセスで使用される事前カスタマイズユニットの実施形態を示している。Fig. 4 shows an embodiment of a pre-customization unit used in the protection process according to the present invention. 本発明に従う保護フェーズのツール作成段階の実装を可能にするシステムの実施形態を示している。Fig. 3 shows an embodiment of a system that enables the implementation of the tool creation phase of the protection phase according to the present invention. 本発明に従う保護プロセスの実装を可能にするシステムの実施形態を示している。1 illustrates an embodiment of a system that enables implementation of a protection process in accordance with the present invention. 本発明に従う保護プロセスで使用されるカスタマイズユニットの実施形態を示している。Fig. 4 shows an embodiment of a customization unit used in the protection process according to the present invention.

Claims (22)

少なくとも記憶手段(15)と処理手段(16)とを含む少なくとも1つのブランクユニット(60)を使用して、データ処理システム(3)上で作動するバルナラブル・ソフトウェア(2v)をその無許可使用に対して保護する方法であって、:
→保護フェーズ(P)の間に、
・− 基本機能がユニット(6)において実行され得る基本関数のセット、
− および、前記基本関数のセットに対する基本コマンドであり、データ処理システム(3)で実行され、ユニット(6)における実行をトリガし得る前記基本コマンドのセット、
を定義すること、
・ 前記セットの基本関数を実行することができるユニット(6)に変換することが可能な活用手段を構築すること(前記基本関数の実行はデータ処理システム(3)における実行によってトリガされる)、
・ 被保護ソフトウェア(2p)を、
− バルナラブル・ソフトウェア(2v)の実行の間に、少なくとも1つのオペランドを使用し、少なくとも1つの結果を取得することが可能な少なくとも1つのアルゴリズム処理を選択することによって、
− 少なくとも1つの選択されたアルゴリズム処理を含む、バルナラブル・ソフトウェアのソース(2vs)の少なくとも1つの部分を選択することによって、
− 被保護ソフトウェアのソース(2ps)の少なくとも1つの変更された部分を取得するために、バルナラブル・ソフトウェアのソース(2vs)の少なくとも1つの選択された部分を変更することで、バルナラブル・ソフトウェアのソース(2vs)から被保護ソフトウェアのソース(2ps)を作成すること(この変更は、
>被保護ソフトウェア(2p)の実行中に、第1の実行パート(2pes)がデータ処理システム(3)で実行され、第2の実行パート(2peu)が情報のアップロードの後にブランクユニット(60)から取得されるユニット(6)で実行され、
>少なくとも1つの選択されたアルゴリズム処理の少なくとも機能が、第2実行パート(2peu)によって実行され、
>少なくとも1つの選択されたアルゴリズム処理が分割され、これにより保護されたソフトウェア(2p)の実行の間に前記アルゴリズム処理が基本関数を用いて第2実行パートによって実行され、
>少なくとも1つの選択されたアルゴリズム処理に対して、基本コマンドが被保護ソフトウェアのソース(2ps)に統合され、これにより被保護ソフトウェア(2p)実行の間に、各々の基本コマンドが第1の実行パート(2pes)により実行され、ユニット(6)において基本関数の第2実行パート(2peu)による実行をトリガし、
>基本コマンドのシーケンスが被保護ソフトウェア(2p)の実行を可能にするシーケンスのセットのうちから選択される、
ような変更である)によって、
− および、
> 保護されたソフトウェアのソース(2ps)からの被保護ソフトウェア(2p)の第1オブジェクトパート(2pos)(前記第1オブジェクトパート(2pos)は、被保護ソフトウェア(2p)の実行の間中に第1実行パート(2pe)が現れるようなオブジェクトパートであり、第1実行パート(2pe)はデータ処理システム(3)で実行され、その少なくとも1つの部分は選択されたシーケンスに従って基本コマンドが実行されることを考慮する)、
> および、活用手段を含む保護ソフトウェア(2p)の第2オブジェクトパート(2pou)であり、ブランクユニット(60)へのアップロードの後、保護ソフトウェア(2p)の実行中に、第1実行パート(2pes)によってトリガされた基本関数が実行されることによって、第2実行パート(2peu)が現れるようなもの、
を生成することによって、
作成すること、
・ および、ユニット(6)を得る目的で、ブランクユニット(60)に第2オブジェクトパート(2pou)をアップロードすること、を含み、
→ 保護ソフトウェア(2p)が実行される活用フェーズ(U)の間に、
・ ユニット(6)の存在時に、第1実行パート(2pes)の一部分に含まれる基本コマンドが要求するたびに、ユニット(6)で対応する基本関数を実行することにより、該部分が正しく実行され、結果として、被保護ソフトウェア(2p)が完全に機能するようにすること、
・ および、ユニット(6)の不存在時に、ユニット(6)における基本関数の実行をトリガすることを求める第1実行パート(2pes)の一部分による要求にもかかわらず、該要求を満たすことができないことにより、少なくとも該部分が正しく実行されず、結果として、被保護ソフトウェア(2p)が完全に機能しないようにすること、
を含む方法
Using at least one blank unit (60) including at least a storage means (15) and a processing means (16), the valable software (2v) running on the data processing system (3) is used for its unauthorized use. How to protect against:
→ During the protection phase (P)
A set of basic functions whose basic functions can be executed in unit (6),
And a set of basic commands, which are basic commands for the set of basic functions, which are executed in the data processing system (3) and can trigger execution in the unit (6);
Defining
Building a lever that can be transformed into a unit (6) that can execute the set of basic functions (execution of the basic functions is triggered by execution in the data processing system (3));
・ Protected software (2p)
By selecting at least one algorithm processing capable of using at least one operand and obtaining at least one result during the execution of the varnalable software (2v),
-By selecting at least one part of the source (2vs) of the balableable software that contains at least one selected algorithm processing;
-The source of valarable software by modifying at least one selected part of the source of valarable software (2vs) to obtain at least one modified part of the source of protected software (2ps); (2vs) create protected software source (2ps) (this change is
> During execution of the protected software (2p), the first execution part (2pes) is executed in the data processing system (3), and the second execution part (2peu) is blank unit (60) after uploading information. Executed in unit (6) obtained from
> At least one function of at least one selected algorithm processing is performed by the second execution part (2 peu);
> At least one selected algorithm process is divided, so that during the execution of the protected software (2p), said algorithm process is executed by the second execution part using a basic function;
> For at least one selected algorithm processing, basic commands are integrated into the protected software source (2 ps), so that during each protected software (2p) execution, each basic command is the first execution Executed by the part (2 pes), triggering the execution by the second execution part (2 peu) of the basic function in the unit (6),
> The sequence of basic commands is selected from a set of sequences that allow execution of protected software (2p).
Change)
− And
> The first object part (2pos) of the protected software (2p) from the source of protected software (2ps) (the first object part (2pos) is the first object part during the execution of the protected software (2p)) An execution part (2pe s ) is an object part, and the first execution part (2pe s ) is executed by the data processing system (3), at least one part of which is a basic command according to the selected sequence. To be executed)
> And the second object part (2pou) of the protection software (2p) including the utilization means, and after the upload to the blank unit (60), during the execution of the protection software (2p), the first execution part (2pes The second execution part (2 peu) appears by executing the basic function triggered by
By generating
Creating,
And uploading the second object part (2 pou) to the blank unit (60) for the purpose of obtaining the unit (6),
→ During the utilization phase (U) when the protection software (2p) is executed,
-When a basic command included in a part of the first execution part (2pes) is requested when the unit (6) exists, the corresponding basic function is executed in the unit (6), so that the part is executed correctly. As a result, ensure that the protected software (2p) is fully functional,
And in the absence of unit (6), the request cannot be satisfied despite the request by the part of the first execution part (2pes) that seeks to trigger the execution of the basic function in unit (6). By ensuring that at least the part does not execute correctly and as a result the protected software (2p) is not fully functional,
Including methods .
→ 保護フェーズ(P)の間に、
・ 被保護ソフトウェア(2p)を、
− 被保護ソフトウェア(2p)の実行中に、被保護ソフトウェアの状態を部分的に規定する、少なくとも1つの選択されたアルゴリズム処理で使用される少なくとも1つの変数を選択することによって、
− 被保護ソフトウェアのソース(2ps)の少なくとも1つの選択された部分を変更すること(この変更は、被保護ソフトウェア(2p)の実行中に、少なくとも1つの選択された変数または選択された変数の少なくとも1つのコピーがユニット(6)に存在するような変更である)によって、
− および、
> 被保護ソフトウェア(2p)の第1オブジェクトパート(2pos)であり、被保護ソフトウェア(2p)の実行中に、第1実行パート(2pes)の少なくとも1つの部分が、少なくとも1つの変数または変数の少なくとも1つのコピーがユニット(6)に存在することも考慮するようなもの、
> および、被保護ソフトウェア(2p)の第2オブジェクトパート(2pou)であり、ユニット(6)へのアップロード後、被保護ソフトウェア(2p)の実行中に、第2実行パート(2peu)が現れ、それによって、少なくとも1つの選択された変数または選択された変数の少なくとも1つのコピーがユニット(6)にも存在するようになるようなもの、
を生成することによって、
変更すること、
を含み、
→ 使用フェーズ(U)の間に、
・ ユニット(6)の存在時に、第1実行パート(2pes)の一部分が要求するたびに、ユニット(6)内に存在する変数または変数のコピーを使用することにより、該部分が正しく実行され、結果として、被保護ソフトウェア(2p)が完全に機能するようにすること、
・ および、ユニット(6)の不存在時に、ユニット(6)に存在する変数または変数のコピーを使用することを求める第1実行パート(2pes)の一部分による要求にもかかわらず、該要求を正しく満たすことができないことにより、少なくとも該部分が正しく実行されず、結果として、被保護ソフトウェア(2p)が完全に機能しないようにすること、
を含む請求項1に記載の方法
→ During the protection phase (P)
・ Protected software (2p)
-During execution of the protected software (2p), by selecting at least one variable used in at least one selected algorithm processing that partially defines the state of the protected software;
-Changing at least one selected part of the source of protected software (2 ps) (this change will occur during the execution of the protected software (2p) Is a change such that at least one copy exists in unit (6))
− And
> The first object part (2pos) of the protected software (2p), and during execution of the protected software (2p), at least one part of the first execution part (2pes) is at least one variable or variable Taking into account that there is at least one copy in unit (6),
> And the second object part (2pou) of the protected software (2p), and after uploading to the unit (6), the second execution part (2peu) appears during execution of the protected software (2p), Such that at least one selected variable or at least one copy of the selected variable is also present in the unit (6),
By generating
Changing,
Including
→ During the usage phase (U)
Each time a part of the first execution part (2pes) requests, in the presence of unit (6), that part is executed correctly by using a variable or a copy of the variable present in unit (6), As a result, ensure that the protected software (2p) is fully functional,
And, in the absence of unit (6), despite the request by the part of the first execution part (2 pes) that asks to use the variable or a copy of the variable that exists in unit (6) The failure to satisfy at least that part does not execute correctly and as a result the protected software (2p) is not fully functional,
The method of claim 1 comprising :
→ 保護フェーズ(P)の間に、
・− ユニット(6)で少なくとも部分的に監視され得る少なくとも1つのソフトウェア実行特性、
− 少なくとも1つのソフトウェア実行特性が遵守すべき少なくとも1つの基準、
− ユニット(6)で実施され、少なくとも1つのソフトウェア実行特性が少なくとも1つの関連する基準を遵守していないことを検出することが可能な検出手段(17)、
− および、ユニット(6)で実施され、少なくとも1つの基準が遵守されていない時、データ処理システム(3)に通知し、および/または、ソフトウェアの実行を変更することが可能な強制手段(18)、
を定義すること、
・ ユニット(6)が検出手段(17)および強制手段(18)を実施することも可能にする活用手段を構築すること、
・ および、被保護ソフトウェア(2p)を、
− 監視され得るソフトウェア実行特性のうちから、監視すべき少なくとも1つのソフトウェア実行特性を選択することによって、
− 少なくとも1つの選択されたソフトウェア実行特性が遵守すべき少なくとも1つの基準を選択することによって、
− 被保護ソフトウェアのソース(2ps)中で、少なくとも1つの選択されたソフトウェア実行特性が監視されるべき基本関数を選択することによって、
− 被保護ソフトウェアのソース(2ps)の少なくとも1つの選択された部分を変更すること(この変更は、被保護ソフトウェア(2p)の実行中に、少なくとも1つの選択された実行特性が第2実行パート(2peu)によって監視され、基準が遵守されていないことが、データ処理システム(3)への通知、および/または、被保護ソフトウェア(2p)の実行の変更につながるような変更である)によって、
− および、検出手段(17)および強制手段(18)も実施する活用手段を含む被保護ソフトウェア(2p)の第2オブジェクトパート(2pou)を生成すること(該第2オブジェクトパート(2pou)は、ユニット(6)へのアップロード後、被保護ソフトウェア(2p)の実行中に、少なくとも1つの第1ソフトウェア実行特性が監視され、基準が遵守されていないことが、データ処理システム(3)への通知、および/または、被保護ソフトウェア(2p)の実行の変更につながるようなオブジェクトパートである)によって、
変更すること、
を含み、
→ 使用フェーズ(U)の間に、
・ ユニット(6)の存在時に、
− 被保護ソフトウェア(2p)のすべての変更された部分のすべての監視されている実行特性に対応するすべての基準が遵守されている限り、被保護ソフトウェア(2p)の前記部分が名目通り作動し、結果として被保護ソフトウェア(2p)が名目通り作動することを可能にすること、
− および、被保護ソフトウェア(2p)の一部分の監視されている実行特性に対応する少なくとも1つの基準が遵守されていない場合、それをデータ処理システム(3)に通知し、および/または、被保護ソフトウェア(2p)の部分の機能を変更して、被保護ソフトウェア(2p)の機能が変更されるようにすること、
を含む請求項1に記載の方法
→ During the protection phase (P)
-At least one software execution characteristic that can be monitored at least partly in the unit (6);
-At least one standard to be observed by at least one software execution characteristic;
Detection means (17) implemented in unit (6) and capable of detecting that at least one software execution characteristic does not comply with at least one relevant criterion;
And enforcement means (18) that can be implemented in the unit (6) and notify the data processing system (3) and / or change the execution of the software when at least one criterion is not being complied with ),
Defining
Building a means of utilization that also allows the unit (6) to implement the detection means (17) and the forcing means (18);
・ And protected software (2p)
-By selecting at least one software execution characteristic to be monitored from among the software execution characteristics that can be monitored;
-By selecting at least one criterion that at least one selected software execution characteristic should comply with;
By selecting a basic function in which at least one selected software execution characteristic is to be monitored in the source of protected software (2 ps);
-Changing at least one selected part of the source of protected software (2ps) (this change means that during execution of the protected software (2p), at least one selected execution characteristic is a second execution part); (2 peu) is a change that leads to a notification to the data processing system (3) and / or a change in the execution of the protected software (2p))
And generating a second object part (2pou) of the protected software (2p) including a utilization means that also implements the detection means (17) and the forcing means (18) (the second object part (2pou) After uploading to the unit (6), during execution of the protected software (2p), at least one first software execution characteristic is monitored and notification to the data processing system (3) that the standards are not being observed And / or an object part that leads to a change in the execution of protected software (2p))
Changing,
Including
→ During the usage phase (U)
・ When unit (6) is present,
-As long as all standards corresponding to all monitored execution characteristics of all modified parts of protected software (2p) are observed, said part of protected software (2p) operates nominally. Enabling the protected software (2p) to operate nominally as a result,
And if the at least one criterion corresponding to the monitored execution characteristics of a part of the protected software (2p) is not observed, this is notified to the data processing system (3) and / or protected Changing the function of the software (2p) part so that the function of the protected software (2p) is changed;
The method of claim 1 comprising :
被保護ソフトウェア(2p)の使用を制限するために、
→ 保護フェーズ(P)の間に、
・− 監視され得るソフトウェア実行特性として、ソフトウェアの機能の使用状況の計測変数、
− 遵守すべき基準として、各計測変数に関連する少なくとも1つのしきい値、
− および、少なくとも1つの計測変数を更新することが可能な有効化手段、
を定義すること、
・ ユニット(6)が有効化手段を実施することも可能にする活用手段を構築すること、
・ および、被保護ソフトウェア(2p)を、
− 監視すべきソフトウェア実行特性として、ソフトウェアの少なくとも1つの機能の使用状況の少なくとも1つの計測変数を選択することによって、
−> 計測変数を使用して使用が監視され得る被保護ソフトウェア(2p)の少なくとも1つの機能、
> 前記機能の使用状況を定量化するために使用される少なくとも1つの計測変数、
> 前記機能の使用限度に対応する選択された計測変数に関連する少なくとも1つのしきい値、
> および、前記機能の使用状況に依存する選択された計測変数の少なくとも1つの更新方法、
を選択することによって、
− および、被保護ソフトウェアのソース(2ps)の少なくとも1つの選択された部分を変更すること(この変更は、被保護ソフトウェア(2p)の実行中に、計測変数が前記機能の使用状況に依存する第2実行パート(2peu)によって実現され、少なくとも1つのしきい値超過が考慮されるような変更である)によって、
を変更すること、
を含み、
→ 使用フェーズ(U)の間に、ユニット(6)の存在時に、そして少なくとも1つの使用限度に対応する少なくとも1つのしきい値超過が検出された場合に、それをデータ処理システム(3)に通知し、および/または、被保護ソフトウェア(2p)の部分の機能を変更して、被保護ソフトウェア(2p)の機能が変更されるようにすること、
を含む請求項3に記載の方法
To restrict the use of protected software (2p)
→ During the protection phase (P)
-As software execution characteristics that can be monitored, measurement variables for the usage of software functions,
-As a criterion to be observed, at least one threshold value associated with each measurement variable,
-And enabling means capable of updating at least one measurement variable,
Defining
-Building a means of utilization that allows the unit (6) to implement the enabling means;
・ And protected software (2p)
-By selecting at least one measurement variable of usage of at least one function of the software as a software execution characteristic to be monitored;
-> At least one function of the protected software (2p) whose use can be monitored using measurement variables,
> At least one measurement variable used to quantify the usage of the function,
> At least one threshold value associated with the selected measurement variable corresponding to the use limit of the function;
> And at least one method of updating the selected measurement variable depending on the usage of the function,
By selecting
And changing at least one selected part of the source of protected software (2 ps) (this change depends on the usage of the function during the execution of the protected software (2p) By the second execution part (2 peu), a change in which at least one threshold crossing is taken into account)
Changing the
Including
→ During the usage phase (U), in the presence of the unit (6) and if at least one threshold excess corresponding to at least one usage limit is detected, it is passed to the data processing system (3) Notifying and / or changing the function of the protected software (2p) part so that the function of the protected software (2p) is changed,
The method of claim 3 comprising :
→ 保護フェーズ(P)の間に、
・− 少なくとも1つの計測変数について、いくつかの関連するしきい値、
− および、前記しきい値のそれぞれに対応する相異なる強制手段、
を定義すること、
・ および、被保護ソフトウェア(2p)を、
− 被保護ソフトウェアのソース(2ps)中で、機能の相異なる使用限度に対応するいくつかのしきい値が関連づけられなければならない少なくとも1つの選択された計測変数を選択することによって、
− 選択された計測変数に関連する少なくとも2つのしきい値を選択することによって、
− および、被保護ソフトウェアのソース(2ps)の少なくとも1つの選択された部分を変更すること(この変更は、被保護ソフトウェア(2p)の実行中に、種々のしきい値の超過が第2実行パート(2peu)によって別様に考慮されるような変更である)によって、
変更すること、
を含み、
→ 使用フェーズ(U)の間に、
・ ユニット(6)の存在時に、
− 第1しきい値の超過が検出された場合、被保護ソフトウェア(2p)に対して、対応する機能をそれ以上使用しないように命じること、
− 第2しきい値の超過が検出された場合、被保護ソフトウェア(2p)の対応する機能、および/または、少なくとも一部分を無効にすること、
を含む請求項4に記載の方法
→ During the protection phase (P)
-Several relevant thresholds for at least one measurement variable,
-And different forcing means corresponding to each of said threshold values,
Defining
・ And protected software (2p)
By selecting at least one selected measurement variable in the source of protected software (2 ps), to which several thresholds corresponding to different usage limits of the function must be associated,
-By selecting at least two threshold values associated with the selected measurement variable,
And changing at least one selected part of the source of protected software (2 ps) (this change occurs during the execution of the protected software (2p) when the various thresholds are exceeded for the second time). Part (2 peu) is considered differently)
Changing,
Including
→ During the usage phase (U)
・ When unit (6) is present,
-If an excess of the first threshold is detected, command the protected software (2p) not to use the corresponding function any more;
-Disabling the corresponding function and / or at least part of the protected software (2p) if an excess of the second threshold is detected;
The method of claim 4 comprising :
→ 保護フェーズ(P)の間に、
・ 計測変数によって監視される少なくとも1つのソフトウェア機能に少なくとも1つの追加使用を認めることが可能な補充手段を定義すること、
・ ユニット(6)が補充手段を実施することも可能にする活用手段を構築すること、
・ および、被保護ソフトウェア(2p)を、
− 被保護ソフトウェアのソース(2ps)中で、少なくとも1つの追加使用を認めることができなければならない機能の使用を制限することが可能な少なくとも1つの選択された計測変数を選択することによって、
− および、少なくとも1つの選択された部分を変更すること(この変更は、補充フェーズと呼ばれるフェーズの間、選択された計測変数に対応する少なくとも1つの機能の少なくとも1つの追加使用が認められるような変更である)によって、
変更すること、
を含み、
→ 補充フェーズの間に、
・機能の少なくとも1つの追加使用を可能にするために、少なくとも1つの選択された計測変数、および/または、少なくとも1つの関連するしきい値を再有効化すること、
を含む請求項4または5に記載の方法
→ During the protection phase (P)
Defining replenishment means that can allow at least one additional use for at least one software function monitored by a measurement variable;
-Building a means of utilization that will allow the unit (6) to implement replenishment means;
・ And protected software (2p)
-By selecting at least one selected measurement variable that can limit the use of at least one function that must be allowed to be allowed in the source of protected software (2 ps);
-And changing at least one selected part (this change is such that at least one additional use of at least one function corresponding to the selected measurement variable is permitted during a phase called the replenishment phase) Change)
Changing,
Including
→ During the replenishment phase
Re-enabling at least one selected measurement variable and / or at least one associated threshold to allow at least one additional use of the function;
The method according to claim 4 or 5, comprising :
→ 保護フェーズ(P)の間に、
・− 監視され得るソフトウェア実行特性として、ソフトウェア使用状況プロファイル、
− および、遵守すべき基準として、少なくとも1つのソフトウェア実行特徴、
を定義すること、
・ および、被保護ソフトウェア(2p)を、
− 少なくとも1つのソフトウェア使用状況プロファイルを監視することをソフトウェア実行特性として選択することによって、
− 少なくとも1つの選択された使用状況プロファイルが遵守しなければならない少なくとも1つの実行特徴を選択することによって、
− および、被保護ソフトウェアのソース(2ps)の少なくとも1つの選択された部分を変更すること(この変更は、被保護ソフトウェア(2p)の実行中に、第2実行パート(2peu)がすべての選択された実行特徴を遵守しなければならないような変更である)によって、
変更すること、
を含み、
→ 使用フェーズ(U)の間に、ユニット(6)の存在時に、そして少なくとも1つの実行特徴が遵守されていないことが検出された場合に、それをデータ処理システム(3)に通知し、および/または、被保護ソフトウェア(2p)の部分の機能を変更して、被保護ソフトウェア(2p)の機能が変更されるようにすること、
を含む請求項3に記載の方法
→ During the protection phase (P)
-Software usage profiles as software execution characteristics that can be monitored,
-And at least one software execution feature as a standard to be observed,
Defining
・ And protected software (2p)
-By selecting as a software execution characteristic to monitor at least one software usage profile;
-By selecting at least one execution feature that at least one selected usage profile must comply with;
-And changing at least one selected part of the source of protected software (2 ps) (this change is made by the second execution part (2 peu) all selections while the protected software (2p) is running). Is a change that must comply with the execution characteristics specified)
Changing,
Including
→ during the usage phase (U), informing the data processing system (3) of the presence of the unit (6) and if it is detected that at least one execution feature is not observed, and / Or change the function of the protected software (2p) part so that the function of the protected software (2p) is changed,
The method of claim 3 comprising :
→ 保護フェーズ(P)の間に、
・− ユニット(6)で実行され得る命令のセット、
− 前記命令のセットに対する命令コマンドのセットであり、データ処理システム(3)で実行され、ユニット(6)で命令の実行をトリガし得る前記命令コマンドのセット、
− 使用状況プロファイルとして、命令の連鎖、
− 実行特徴として、命令の実行に対して期待される連鎖、
− 検出手段(17)として、命令の連鎖が期待されるものに対応しないことを検出することが可能な手段、
− および、強制手段(18)として、命令の連鎖が期待されるものに対応しない場合にデータ処理システム(3)に通知し、および/または、被保護ソフトウェア(2p)の部分の機能を変更することが可能な手段、
を定義すること、
・ ユニット(6)が命令セットの命令を実行することも可能にする活用手段を構築すること(該命令の実行はデータ処理システム(3)における命令コマンドの実行によりトリガされる)、
・ および、被保護ソフトウェア(2p)を、
− 被保護ソフトウェアのソース(2ps)の少なくとも1つの選択された部分を、
> 基本関数を命令に変換することによって、
> 命令の少なくとも一部分がユニット(6)におけるそれらの実行中に遵守しなければならない連鎖を指定することによって、
> および、基本コマンドを、使用される命令に対応する命令コマンドに変換することによって、
変更することによって、
変更すること、
を含み
→ 使用フェーズ(U)の間に、ユニット(6)の存在時に、ユニット(6)で実行される命令の連鎖が期待されるものに対応しないことが検出された場合に、それをデータ処理システム(3)に通知し、および/または、被保護ソフトウェア(2p)の部分の機能を変更して、被保護ソフトウェア(2p)の機能が変更されるようにすること、
を含む請求項7に記載の方法
→ During the protection phase (P)
-A set of instructions that can be executed in unit (6),
A set of instruction commands for said set of instructions, said instruction command set being executed in a data processing system (3) and capable of triggering execution of an instruction in unit (6);
-As a usage profile, a chain of instructions,
-As an execution feature, the expected chain for the execution of the instruction;
-Means for detecting as detection means (17) that the chain of instructions does not correspond to what is expected;
And, as forcing means (18), notify the data processing system (3) if the instruction chain does not correspond to what is expected and / or change the function of the protected software (2p) part Possible means,
Defining
Building a lever that also allows the unit (6) to execute instructions of the instruction set (execution of the instructions is triggered by execution of instruction commands in the data processing system (3));
・ And protected software (2p)
-At least one selected part of the source of protected software (2 ps),
> By converting basic functions into instructions,
> By specifying the chain at least part of the instructions must comply during their execution in the unit (6)
> And by converting the basic command into an instruction command corresponding to the instruction used,
By changing
Changing,
→ During the use phase (U), if it is detected that the chain of instructions executed in unit (6) does not correspond to what is expected when unit (6) is present, Notifying the processing system (3) and / or changing the function of the protected software (2p) part so that the function of the protected software (2p) is changed,
The method of claim 7 comprising :
→ 保護フェーズ(P)の間に、
・− 命令セットとして、少なくとも一部分の命令がレジスタと連携し、結果を返す目的で少なくとも1つのオペランドを使用する命令セット、
− レジスタと連携する少なくとも一部分の命令について、
> 命令の機能を定義するパート(PF)、
> および、命令の実行に対する期待される連鎖を定義するパート、
(前記パートは、
◇ 命令の識別フィールド(CII)、
◇ および、命令の各オペランドごとに、
* フラグフィールド(CD)、
* および、オペランドの期待される識別フィールド(CIP)、
に対応するビットフィールド
を含むパート)、
− 活用手段に属し命令セットによって使用される各レジスタごとに、該レジスタ内にその結果を返した最後の命令の識別が自動的に記憶される生成識別フィールド(CIG)、
− 検出手段(17)として、命令の実行中に、各オペランドごとに、フラグフィールド(CD)が要求する時に、該オペランドによって使用されるレジスタに対応する生成識別フィールド(CIP)と、該オペランドの出所の期待される識別フィールド(CIP)との等値性をチェックすることが可能な手段、
− および、強制手段(18)として、チェックされた等値性の少なくとも1つが偽である場合に、命令の結果を変更することが可能な手段、
を定義すること、
を含む請求項8に記載の方法
→ During the protection phase (P)
-An instruction set in which at least a part of the instructions works with a register and uses at least one operand to return a result, as an instruction set;
-For at least some instructions that work with registers
> Part (PF) that defines the function of the instruction,
> And a part that defines the expected chain for instruction execution,
(The part is
◇ Instruction identification field (CII),
◇ And for each operand of the instruction,
* Flag field (CD k ),
* And the expected identification field of the operand (CIP k ),
Part containing a bit field corresponding to
For each register used by the instruction set belonging to the exploitation means, a generation identification field (CIG v ) in which the identification of the last instruction that returned its result is automatically stored in the register;
As a detection means (17), during execution of the instruction, for each operand, when the flag field (CD k ) requires, a generation identification field (CIP k ) corresponding to the register used by the operand; Means capable of checking equivalence with the expected identification field (CIP k ) of the source of the operands;
And, as a forcing means (18), means capable of changing the result of the instruction if at least one of the checked equivalences is false,
Defining
The method of claim 8 comprising :
→ 保護フェーズ(P)の間に、
・− トリガコマンドとして、基本コマンドまたは命令コマンド、
− 従属関数として、基本関数または命令、
− オーダーとして、データ処理システム(3)によってユニット(6)へ送信される情報に少なくとも部分的に対応し、対応する従属関数の実行をトリガするようなトリガコマンドに対する少なくとも1つの引数、
− リネームされたオーダーを有するトリガコマンドを取得するように、オーダーをリネームすることが可能なオーダーをリネームする方法、
− および、使用フェーズ(U)の間にユニット(6)で使用されるように設計され、リネームされたオーダーから実行すべき従属関数を復元することが可能な復元手段(20)、
を定義すること、
・ ユニット(6)が復元手段を実施することも可能にする活用手段を構築すること、
・ および、被保護ソフトウェア(2p)を、
− 被保護ソフトウェアのソース(2ps)中でトリガコマンドを選択することによって、
− 対応する従属関数の識別を隠蔽するように、選択されたトリガコマンドのオーダーをリネームすることにより被保護ソフトウェアのソース(2ps)の少なくとも1つの選択された部分を変更することによって、
− および、
> 被保護ソフトウェア(2p)の第1オブジェクトパート(2pos)であり、被保護ソフトウェア(2p)の実行中に、リネームされたオーダーを有するトリガコマンドが実行されるようなもの、
> および復元手段(20)も実施する活用手段を含む被保護ソフトウェア(2p)の第2オブジェクトパート(2pou)であり、ユニット(6)へのアップロード後、被保護ソフトウェア(2p)の実行中に、その実行が第1実行パート(2pes)によりトリガされる従属関数の識別が第2実行パート(2peu)によって復元され、従属関数が第2実行パート(2peu)によって実行されるようなもの、
を生成することによって、
変更すること、
を含み、
→ 使用フェーズ(U)の間に、
・ ユニット(6)の存在時に、第1実行パート(2pes)の一部分に含まれるリネームされたオーダーを有するトリガコマンドが要求するたびに、対応する従属関数の識別とその実行とをユニット(6)で復元し、該部分が正しく実行されることにより、結果として、被保護ソフトウェア(2p)が完全に機能するようにすること、
・ および、ユニット(6)の不存在時に、ユニット(6)における従属関数の実行をトリガすることを求める第1実行パート(2pes)の一部分による要求にもかかわらず、該要求を正しく満たすことができないことにより、少なくとも該部分が正しく実行されず、結果として、被保護ソフトウェア(2p)が完全に機能しないようにすること、
を含む請求項1または8に記載の方法
→ During the protection phase (P)
-Basic command or command command as trigger command,
-As a dependent function, a basic function or instruction,
-At least one argument to a trigger command that, as an order, corresponds at least in part to the information sent by the data processing system (3) to the unit (6) and triggers the execution of the corresponding dependent function;
-A method of renaming an order capable of renaming an order so as to obtain a trigger command having a renamed order;
And a restoration means (20) designed to be used in the unit (6) during the use phase (U) and capable of restoring dependent functions to be executed from the renamed order,
Defining
-Building a means of utilization that allows the unit (6) to implement the means of restoration;
・ And protected software (2p)
-By selecting a trigger command in the source of protected software (2ps)
By changing at least one selected part of the protected software source (2 ps) by renaming the order of the selected trigger command so as to hide the identification of the corresponding dependent function
− And
> The first object part (2pos) of the protected software (2p), such that a trigger command with the renamed order is executed during execution of the protected software (2p);
> And the second object part (2 pou) of the protected software (2p) including the utilization means that also implements the restoration means (20), and after uploading to the unit (6), Such that the identification of the dependent function whose execution is triggered by the first execution part (2 pes) is restored by the second execution part (2 peu) and the dependent function is executed by the second execution part (2 peu),
By generating
Changing,
Including
→ During the usage phase (U)
In the presence of unit (6), each time a trigger command with a renamed order contained in a part of the first execution part (2pes) requests, the identification of the corresponding dependent function and its execution are performed in unit (6) To ensure that the protected software (2p) is fully functional as a result of the correct execution of that part,
And, in the absence of unit (6), to satisfy the request correctly despite the request by the part of the first execution part (2 pes) seeking to trigger the execution of the dependent function in unit (6). Not being able to execute at least that part correctly, as a result of which the protected software (2p) is not fully functional,
The method according to claim 1 or 8, comprising :
→ 保護フェーズ(P)の間に、
・ 少なくとも1つの従属関数について、アルゴリズム的に等価であるが、そのリネームされたオーダーが異なるトリガコマンドによってトリガされる従属関数群を定義すること、
・ および、被保護ソフトウェア(2p)を、
− 被保護ソフトウェアのソース(2ps)中で、リネームされたオーダーを有する少なくとも1つのトリガコマンドを選択することによって、
− および、リネームされたオーダーを有する1つの選択されたトリガコマンドの少なくともリネームされたオーダーを、同じ群の従属関数をトリガする別のリネームされたオーダーと置換することにより、被保護ソフトウェアのソース(2ps)の少なくとも1つの選択された部分を変更することによって、
変更すること、
を含む請求項10に記載の方法
→ During the protection phase (P)
Defining a set of dependent functions that are algorithmically equivalent for at least one dependent function, but whose renamed order is triggered by a different trigger command;
・ And protected software (2p)
-By selecting at least one trigger command with the renamed order in the source of protected software (2ps)
And the source of the protected software by replacing at least the renamed order of one selected trigger command with the renamed order with another renamed order that triggers the same group of dependent functions ( By changing at least one selected portion of 2 ps)
Changing,
The method of claim 10 comprising :
→ 保護フェーズ(P)の間に、少なくとも1つの従属関数について、アルゴリズム的に等価な従属関数群を、
− ユニット(6)で実行すべき従属関数の機能パートを定義する情報にノイズフィールドを連結することによって、
− または、命令の識別フィールド(CII)およびオペランドの期待される識別フィールド(CIP)を使用することによって、
定義すること、
を含む請求項11に記載の方法
→ During the protection phase (P), an algorithmically equivalent group of dependent functions for at least one dependent function,
-By concatenating the noise field to the information defining the functional part of the dependent function to be executed in unit (6),
Or alternatively, by using the identification field (CII) of the instruction and the expected identification field (CIP k ) of the operand,
Defining,
The method of claim 11 comprising :
→ 保護フェーズ(P)の間に、
・− オーダーをリネームする方法として、オーダーを暗号化する暗号化方法、
− および、復元手段(20)として、リネームされたオーダーを復号化することによりユニット(6)で実行すべき従属関数の識別を復元する復号化方法を実施する手段、
を定義すること、
を含む請求項10、11または12に記載の方法
→ During the protection phase (P)
・-As an order renaming method, an encryption method to encrypt the order,
And means for implementing a decoding method as decoding means (20) for restoring the identity of the dependent function to be executed in unit (6) by decoding the renamed order,
Defining
The method of claim 10, 11 or 12 including.
→ 保護フェーズ(P)の間に、
・ 被保護ソフトウェア(2p)を、
− 被保護ソフトウェアのソース(2ps)中で、少なくとも1つの選択されたアルゴリズム処理で実行される少なくとも1つの条件分岐を選択することによって、
− 被保護ソフトウェアのソース(2ps)の少なくとも1つの選択された部分を変更すること(この変更は、被保護ソフトウェア(2p)の実行中に、少なくとも1つの選択された条件分岐の機能が、ユニット(6)で、第2実行パート(2peu)によって実行されるような変更である)によって、
− および、
> 被保護ソフトウェア(2p)の第1オブジェクトパート(2pos)であり、被保護ソフトウェア(2p)の実行中に、少なくとも1つの選択された条件分岐の機能がユニット(6)で実行されるようなもの、
> 被保護ソフトウェア(2p)の第2オブジェクトパート(2pou)であり、ユニット(6)へのアップロード後、被保護ソフトウェア(2p)の実行中に、第2実行パート(2peu)が現れ、それによって、少なくとも1つの選択された条件分岐の機能が実行されるようなもの、
を生成することによって、
変更すること、
を含み、
→ 使用フェーズ(U)の間に、
・ ユニット(6)の存在時に、第1実行パート(2pes)の一部分が要求するたびに、ユニット(6)で少なくとも1つの条件分岐の機能を実行することにより、該部分が正しく実行され、結果として、被保護ソフトウェア(2p)が完全に機能するようにすること、
・ および、ユニット(6)の不存在時に、ユニット(6)で条件分岐の機能を実行することを求める第1実行パート(2pes)の一部分による要求にもかかわらず、該要求を正しく満たすことができないことにより、少なくとも該部分が正しく実行されず、結果として、被保護ソフトウェア(2p)が完全に機能しないようにすること、
を含む請求項1ないし13のいずれか1項に記載の方法
→ During the protection phase (P)
・ Protected software (2p)
-By selecting at least one conditional branch to be executed with at least one selected algorithm processing in the source of protected software (2 ps);
-Changing at least one selected part of the source of protected software (2ps) (this change means that during the execution of the protected software (2p), the function of at least one selected conditional branch is (6) is a change as executed by the second execution part (2 peu))
− And
> The first object part (2pos) of the protected software (2p), such that at least one selected conditional branch function is executed in the unit (6) during the execution of the protected software (2p) thing,
> The second object part (2pou) of the protected software (2p), after uploading to the unit (6), the second execution part (2peu) appears during the execution of the protected software (2p), thereby , Such that at least one selected conditional branch function is performed,
By generating
Changing,
Including
→ During the usage phase (U)
Whenever a part of the first execution part (2pes) requests in the presence of the unit (6), the unit (6) executes the function of at least one conditional branch, so that the part is executed correctly and the result Make sure that the protected software (2p) is fully functional,
And, in the absence of unit (6), that the request can be satisfied correctly despite the request by the part of the first execution part (2pes) that requires the unit (6) to execute the conditional branch function. Not being able to execute at least that part correctly, as a result of which the protected software (2p) is not fully functional,
14. A method according to any one of the preceding claims comprising :
保護フェーズ(P)の間に、被保護ソフトウェア(2p)を、
− 被保護ソフトウェアのソース(2ps)中で、少なくとも1つの選択された条件分岐系列を選択することによって、
− 被保護ソフトウェアのソース(2ps)の少なくとも1つの選択された部分を変更すること
(この変更は、被保護ソフトウェア(2p)の実行中に、少なくとも1つの選択された条件分岐系列の全機能が、ユニット(6)で、第2実行パート(2peu)によって実行されるような変更である)によって、
− および、
> 被保護ソフトウェア(2p)の第1オブジェクトパート(2pos)であり、被保護ソフトウェア(2p)の実行中に、少なくとも1つの選択された条件分岐系列の機能がユニット(6)で実行されるようなもの、
> 被保護ソフトウェア(2p)の第2オブジェクトパート(2pou)であり、ユニット(6)へのアップロード後、被保護ソフトウェア(2p)の実行中に、第2実行パート(2peu)が現れ、それによって、少なくとも1つの選択された条件分岐系列の全機能が実行されるようなもの、
を生成することによって、
変更することを含む請求項14に記載の方法
During the protection phase (P), the protected software (2p)
-By selecting at least one selected conditional branch sequence in the source of protected software (2 ps);
-Changing at least one selected part of the source of protected software (2 ps) (this change will cause the full functionality of at least one selected conditional branching sequence during execution of the protected software (2p)). , In unit (6), a change as performed by the second execution part (2 peu))
− And
> The first object part (2pos) of the protected software (2p) so that during the execution of the protected software (2p), at least one function of the conditional branch sequence is executed in the unit (6) What,
> The second object part (2pou) of the protected software (2p), after uploading to the unit (6), the second execution part (2peu) appears during the execution of the protected software (2p), thereby , Such that all functions of at least one selected conditional branch sequence are performed,
By generating
The method of claim 14, comprising modifying.
保護フェーズ(P)を、保護すべきソフトウェアに依存しない先行保護サブフェーズ(P1)および保護すべきソフトウェアに依存する後続保護サブフェーズ(P2)に分割することを含む請求項1ないし15のいずれか1項に記載の方法16. The protection phase (P) according to any one of claims 1 to 15, comprising dividing the protection phase (P) into a preceding protection subphase (P1) independent of the software to be protected and a subsequent protection subphase (P2) dependent on the software to be protected. 2. The method according to item 1. 先行保護サブフェーズ(P1)の間に、すべての定義が実行される定義段階(S11)を挿入することを含む請求項16に記載の方法17. Method according to claim 16, comprising inserting a definition step (S11) during which all definitions are executed during the pre-protection sub-phase (P1). 定義段階(S11)の後に、活用手段が構築される構築段階(S12)を挿入することを含む請求項17に記載の方法The method according to claim 17, comprising inserting a construction step (S12) in which the utilization means is constructed after the definition step (S11). 構築段階(S12)の後に、事前カスタマイズ済みユニット(66)を取得する目的で、活用手段の少なくとも一部分をブランクユニット(60)にアップロードすることを含む事前カスタマイズ段階(S13)を挿入することを含む請求項18に記載の方法After the construction step (S12), for the purpose of obtaining the pre-customized unit (66), including inserting a pre-customization step (S13) including uploading at least a part of the utilization means to the blank unit (60). The method of claim 18. 先行保護サブフェーズ(P1)の間に、被保護ソフトウェアの生成を支援し、または、ソフトウェア保護を自動化することを可能にするツールが作成されるツール作成段階(S14)を挿入することを含む請求項17または18に記載の方法Claims including inserting a tool creation step (S14) during the pre-protection sub-phase (P1) in which a tool is created that assists in the generation of the protected software or enables the software protection to be automated. Item 19. The method according to Item 17 or 18. 後続保護サブフェーズ(P2)を、
・ バルナラブル・ソフトウェア(2v)から被保護ソフトウェア(2p)が作成される作成段階(S21)、
・ 場合によって、被保護ソフトウェア(2p)が変更される変更段階(S22)、
・ および、
− 活用手段を含む被保護ソフトウェア(2p)の第2オブジェクトパート(2pou)が、少なくとも1つのユニット(6)を得る目的で、少なくとも1つのブランクユニット(60)にアップロードされ、
− または、活用手段を場合によって含む被保護ソフトウェア(2p)の第2オブジェクトパート(2pou)の一部分が、少なくとも1つのユニット(6)を取得する目的で、少なくとも1つの事前カスタマイズ済みユニット(66)にアップロードされるカスタマイズ段階(S23)、
に分割することを含む請求項16および19に記載の方法
Subsequent protection subphase (P2)
A creation stage (S21) in which the protected software (2p) is created from the balnarable software (2v);
A change stage (S22) in which the protected software (2p) is changed in some cases,
· and,
The second object part (2pou) of the protected software (2p) including the exploitation means is uploaded to at least one blank unit (60) for the purpose of obtaining at least one unit (6);
Or alternatively, at least one pre-customized unit (66) for the purpose of obtaining at least one unit (6) by a part of the second object part (2pou) of the protected software (2p) optionally including a means of exploitation Customization stage uploaded to (S23),
20. The method according to claim 16 and 19, comprising dividing into two.
作成段階(S21)の間に、および場合によって変更段階(S22)の間に、被保護ソフトウェアの生成を支援し、またはソフトウェア保護を自動化する少なくとも1つのツールを使用することを含む請求項20および21に記載の方法Using at least one tool that assists in the generation of protected software or automates software protection during the creation phase (S21) and optionally during the modification phase (S22) The method according to 21.
JP2003517723A 2001-07-31 2002-07-04 How to protect software against fraudulent use by "fundamental function" principle Expired - Fee Related JP3949106B2 (en)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
JP2004537801A JP2004537801A (en) 2004-12-16
JP3949106B2 true JP3949106B2 (en) 2007-07-25

Family

ID=8866116

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003517723A Expired - Fee Related JP3949106B2 (en) 2001-07-31 2002-07-04 How to protect software against fraudulent use by "fundamental function" principle

Country Status (19)

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

Families Citing this family (1)

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

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2634917A1 (en) * 1988-08-01 1990-02-02 Pionchon Philippe METHOD AND DEVICE FOR PROTECTING SOFTWARE, ESPECIALLY AGAINST UNAUTHORIZED COPIES
US5754646A (en) * 1995-07-19 1998-05-19 Cable Television Laboratories, Inc. Method for protecting publicly distributed software
WO1999066387A1 (en) * 1998-06-12 1999-12-23 Gemplus Method for verifying the execution of a software product
CN1260055A (en) * 1997-06-09 2000-07-12 联信公司 Obfuscation techniques for enhancing software security

Also Published As

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

Similar Documents

Publication Publication Date Title
US20070118763A1 (en) Storage medium, method, and apparatus for creating a protected executable program
US20070294770A1 (en) Method to Protect Software Against Unwanted Use with a Variable Principle
JP3949105B2 (en) How to protect the software against its unauthorized use using the &#34;Rename&#34; principle
US20070136816A1 (en) Method to protect software against unwanted use with a detection and coercion principle
JP3949108B2 (en) How to protect software against unauthorized use with the “temporary separation” principle
JP3949107B2 (en) How to protect software against unauthorized use by &#34;variable&#34; principle
JP3949103B2 (en) How to protect software against unauthorized use with the &#34;conditional branching&#34; principle
CN108021790B (en) File protection method and device, computing equipment and computer storage medium
US20070283437A1 (en) Method to Protect Software Against Unwanted Use with a &#34;Temporal Dissociation&#34; Principle
US20070277239A1 (en) Method to Protect Software Against Unwanted Use with a &#34;Renaming&#34; Principle
JP3949106B2 (en) How to protect software against fraudulent use by &#34;fundamental function&#34; principle
JP3949104B2 (en) How to protect software against unauthorized use with the &#34;detect and enforce&#34; principle
JP2009104589A (en) Information processor and its method, program, and recording medium
US7502940B2 (en) Method to protect software against unwanted use with a “conditional branch” principle
US7434064B2 (en) Method to protect software against unwanted use with a “elementary functions” principle
KR20200017120A (en) Method and system for protecting code using code spraying
KR20200017121A (en) Method and system for protecting code using onetime code
KR20200017122A (en) Method and system for protecting code using verifying code chain

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060822

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061122

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20061130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070222

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070320

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070417

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100427

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110427

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120427

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120427

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130427

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees