×

Method to protect software against unwanted use with a " elementary functions " principle

  • US 20030028788A1
  • Filed: 06/25/2002
  • Published: 02/06/2003
  • Est. Priority Date: 08/01/2001
  • Status: Active Grant
First Claim
Patent Images

1. - Process to protect, using at least one blank unit (60) including at least memorization means (15) and processing means (16), a vulnerable software (2v) against its unauthorized usage, said vulnerable software (2v) being produced from a source (2vs) and working on a data processing system (3), said protection process comprising:

  • during a protection phase (P);

    defining;

    a set of elementary functions whose elementary functions are liable to be executed in a unit (6), and a set of elementary commands for said set of elementary functions, said elementary commands being liable to be executed in the data processing system (3) and to trigger the execution in a unit (6), of the elementary functions, constructing exploitation means enabling to transform the blank unit (60) into a unit (6) able to execute the elementary functions of said set, the execution of said elementary functions being triggered by the execution in the data processing system (3), of the elementary commands, creating a protected software (2p);

    by choosing, at least one algorithmic processing which, during the execution of the vulnerable software (2v), uses at least one operand and enables to obtain at least one result, by choosing at least one portion of the source of the vulnerable software (2vs) containing at least one chosen algorithmic processing, by producing a source of the protected software (2ps) from the source of the vulnerable software (2vs), by modifying at least one chosen portion of the source of the vulnerable software (2vs) to obtain at least one modified portion of the source of the protected software (2ps), this modification being such that;

    during the execution of the protected software (2p) a first execution part (2pes) is executed in the data processing system (3) and a second execution part (2peu) is executed in a unit (6), obtained from the blank unit (60) after upload of information, the second execution part (2peu) executes at least the functionality of at least one chosen algorithmic processing, at least one chosen algorithmic processing is split so that during the execution of the protected software (2p), said algorithmic processing is executed by means of the second execution part (2peu), using elementary functions, for at least one chosen algorithmic processing, elementary commands are integrated to the source of the protected software (2ps), so that during the execution of the protected software (2p), each elementary command is executed by the first execution part (2pes) and triggers in the unit (6), the execution by means of the second execution part (2peu), of an elementary function, and a sequence of the elementary commands is chosen among the set of sequences allowing the execution of the protected software (2p), and by producing;

    a first object part (2pos) of the protected software (2p), from the source of the protected software (2ps), said first object part (2pos) being such that during the execution of the protected software (2p), appears a first execution part (2pes) which is executed in the data processing system (3) and whose at least a portion takes into account that the elementary commands are executed according to the chosen sequence, and a second object part (2pou) of the protected software (2p), containing the exploitation means, said second object part (2pou) being such that, after upload to the blank unit (60) and during the execution of the protected software (2p), appears the second execution part (2peu) by means of which are executed the elementary functions triggered by the first execution part (2pes), and uploading the second object part (2pou) to the blank unit (60), with the intention of obtaining the unit (6), and during a usage phase (U) during which the protected software (2p) is executed;

    in the presence of the unit (6) and each time an elementary command contained in a portion of the first execution part (2pes) imposes it, executing the corresponding elementary function in the unit (6), so that said portion is executed correctly and that, consequently, the protected software (2p) is completely functional, and in the absence of the unit (6), in spite of the request by a portion of the first execution part (2pes) to trigger the execution of an elementary function in the unit (6), not being able to fulfill said request correctly, so that at least said portion is not executed correctly and that, consequently, the protected software (2p) is not completely functional.

View all claims
  • 5 Assignments
Timeline View
Assignment View
    ×
    ×