US2007277239A1PendingUtilityA1

Method to Protect Software Against Unwanted Use with a "Renaming" Principle

Assignee: SAS VALIDYPriority: Aug 1, 2001Filed: Aug 13, 2007Published: Nov 29, 2007
Est. expiryAug 1, 2021(expired)· nominal 20-yr term from priority
G06F 21/125G06F 21/123
48
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

The invention concerns a process to protect a vulnerable software working on a data processing system against its unauthorized usage using a processing and memorizing unit. The process comprises defining: 1) a set of dependent functions whose dependent functions are liable to be executed in a processing and memorizing unit 2) a set of triggering commands, said triggering commands being liable to be executed in the data processing system and to trigger the execution in a processing and memorizing unit, of the dependent functions 3) for each triggering command, an order 4) a method of renaming of the orders 5) restoring means designed to be implemented in a processing and memorizing unit during a usage phase, and enabling to restore the dependent function to execute, from the renamed order.

Claims

exact text as granted — not AI-modified
1 . A method to protect software comprising: 
 storing a first portion of the software on a first unit, the first unit comprises a memory and a processor;    storing a second portion of the software on a second unit, the second unit comprises a secure processor and a secure memory, where the second portion of the software is secret and the first and second portions of the software form a single program; and    executing the program, during which the first portion of the software executes an instruction directed to the second portion of the software comprising at least one function,    wherein the instruction comprises an identifier of a function in the second portion of the software, and    wherein the memory of the second unit stores a reference table in which the identifier of the function in the instruction is correlated to an actual identifier of the function in the second portion of the software.    
   
   
       2 . The method according to  claim 1 , wherein the second unit is a chip medium configured to attach and detach to the first unit.  
   
   
       3 . The method according to  claim 1 , wherein the processor of the second unit is a coprocessor of the processor of the first unit.  
   
   
       4 . The method according to  claim 1 , wherein the second unit is a token.  
   
   
       5 . The method according to  claim 1 , wherein, when the second unit is missing, the program cannot be executed correctly and the software is not completely functional.  
   
   
       6 . The method according to  claim 1 , wherein prior to said executing of the program, renaming the actual identifier of the function stored in the second unit into the identifier, inserting the identifier into the first portion of the program and storing a relationship between the actual identifier and the identifier into the reference table stored in the second unit.  
   
   
       7 . The method according to  claim 1 , further comprising prior to said executing of the program defining as method of renaming, a ciphering method to cipher the actual identifier of the function in the first unit and a deciphering method to decipher the renamed actual identifier of the function in the second unit.  
   
   
       8 . The method according to  claim 1 , wherein the at least one function comprises a family of functions algorithmacally equivalent, wherein actual identifiers of each of the family of functions have been renamed into pseudo identifiers, wherein the actual identifiers of the functions are stored in the second unit and the pseudo identifiers are inserted into the first portion of the program executed by the first unit.  
   
   
       9 . The method according to  claim 1 , wherein a result from executing the function in the second unit is provided to the first unit to use in execution of the program.  
   
   
       10 . The method according to  claim 1 , wherein the function utilizes at least one operand.  
   
   
       11 . A system to protect software comprising: 
 a first unit which stores a first portion of a software and which comprises a memory and a processor; and    a second unit which stores a second portion of the software and which comprises a secure processor and a secure memory, where the second portion of the software is secret and the first and second portions of the software form a single program,    wherein the first unit executes the program utilizing the second unit such that during the execution of the program, the first portion of the software executes an instruction directed to the second portion of the software comprising at least one function,    wherein the instruction comprises an identifier of a function in the second portion of the software, and    wherein the memory of the second unit stores a reference table in which the identifier of the function in the instruction is correlated to an actual identifier of the function in the second portion of the software.    
   
   
       12 . The system according to  claim 11 , wherein the second unit is a chip medium configured to attach and detach to the first unit.  
   
   
       13 . The system according to  claim 1   1 , wherein the processor of the second unit is a coprocessor of the processor of the first unit.  
   
   
       14 . The system according to  claim 11 , wherein the second unit is a token.  
   
   
       15 . The system according to  claim 1 , wherein, when the second unit is missing, the program cannot be executed correctly and the software is not completely functional.  
   
   
       16 . The system according to  claim 1   1 , wherein prior to said execution of the program, renaming the actual identifier of the function stored in the second unit into the identifier, inserting the identifier into the first portion of the program stored in the first unit and storing a relationship between the actual identifier and the identifier into the reference table stored in the second unit.  
   
   
       17 . The system according to  claim 11 , wherein the second unit stores a family of dependent functions, which are algorithmacally equivalent, wherein actual identifiers of each of the family of functions have been renamed into pseudo identifiers, and wherein the actual identifiers of the functions are stored in the second unit and the pseudo identifiers are inserted into the first portion of the program executed by the first unit.  
   
   
       18 . The system according to  claim 11 , wherein a result from executing the function in the second unit is provided to the first unit to use in the execution of the program.  
   
   
       19 . The system according to  claim 11 , wherein the function is an elementary function.

Join the waitlist — get patent alerts

Track US2007277239A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.