×

Method to protect software against unwanted use with a “temporal dissociation” principle

  • US 7,272,725 B2
  • Filed: 06/25/2002
  • Issued: 09/18/2007
  • Est. Priority Date: 06/25/2002
  • 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:

  • in a protection phase (P);

    creating a protected software (2p);

    by choosing, a first computing operation and a second computing operation which, during the execution of the vulnerable software (2v), the first computing operation uses a first operand to obtain a first result and the second computing operating uses a second operand to obtain a second results,by choosing at least one portion of the source of the vulnerable software (2vs) containing the first and second computing operations,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 said chosen first and second computing operations,a first operand movement is performed on said first operand as required for correct execution of the protected program,a second operand movement is performed on said second operand as required for said correct execution of the protected program,a first result movement is performed on said first result as required for said correct execution of the protected program,a second result movement is performed on said second result as required for said correct execution of the protected program,each of said first and second operand movements, said first and second computing operations, and said first and second result movements constitute a step,the first operand movement, the first result movement and the first computing operation comprises a first set of steps and the second operand movement, tie second result movement and the second computing operation comprises a second set of steps,at least one step of one of the sets is interleaved with the steps of the other set in order to execute the steps in said interleaved order, andsteps commands are defined so that during the execution of the protected software (2p), the step commands are executed by the first execution part (2pes) and respectively trigger, in the unit (6), the execution by means of the second execution part (2peu), of the steps in the interleaved order,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 executes said steps commands in order to trigger execution of said steps in the interleaved order,and a second object part (2pou) of the protected software (2p), said second object part (2pou) being such that, after being uploaded to the blank unit (60) and during the execution of the protected software (2p), appears the second execution part (2peu) by means of which the steps triggered by the first execution (2pes) are executed,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 is executed the protected software (2p);

    in the presence of the unit (6) and each time a step command contained in a portion of the first execution part (2pes) imposes it, executing the corresponding step 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 a step 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
    ×
    ×