Method and device for protecting software delivered to a user by a supplier
First Claim
1. A system for protecting software programs (Pl. . . , Pi, . . . Pn) adapted to be executed on a data processing machine (1) of a user of the software programs, said machine having at least one memory (M), control and processing circuits (2), and an input/output device (3), the system comprising:
- a card (C), specific to the user, possessing at least one memory (M1) and processing circuits (4), anda card reader (LC) coupled with the input/output device (3) of the machine (1) and with the card (C) to enable data transfer therebetween;
the memory (M) of the machine (1) containing at least one program (Pi) delivered by a supplier of the software programs, the one program including an identification parameter (ai) which identifies the one program and having a scrambled portion which renders the one program non-executable on the machine, containing a main validation key code (Vi), specific to the one program, issued by the supplier, and containing a master program (SPP);
the memory (M1) of the card (C) containing at least one secret code (S) specific to the user and known only to the suppler, and identification arguments which identify the programs, at least one of said identification arguments (bi) identifying said one program, the card having means responsive to the identification parameter (ai) contained in the one program (Pi) for addressing said identification argument (bi), and the processing circuits (4) of the card having means for computing a supplementary validation key code (V'"'"'i) from the secret code (S) and the addressed identification argument (bi) of the program (Pi) and for transferring the supplementary validation key code to the machine; and
wherein the master program (SPP) is formed to combine the supplementary validation key code (V'"'"'i) and the main validation key code (Vi) for unscrambling the scrambled portion of the program (Pi) and rendering the program executable.
2 Assignments
0 Petitions
Accused Products
Abstract
The invention relates to a method and a device for protecting software delivered to a user by a supplier. The method amounts to rendering the programs non-executable in the state in which they have been delivered to the users. With each program (Pi) there is associated a validation key defined via a main validation key (Vi) delivered by the supplier and recorded in a storage area (M) of the user'"'"'s machine (1), and via a supplementary key (V'"'"'i) computed on the lever of a card (C) issued to the user via a secret code (S) and via arguments (bi) that identify each program (Pi) and are recorded in a storage area (M1) of the card (C).
454 Citations
8 Claims
-
1. A system for protecting software programs (Pl. . . , Pi, . . . Pn) adapted to be executed on a data processing machine (1) of a user of the software programs, said machine having at least one memory (M), control and processing circuits (2), and an input/output device (3), the system comprising:
-
a card (C), specific to the user, possessing at least one memory (M1) and processing circuits (4), and a card reader (LC) coupled with the input/output device (3) of the machine (1) and with the card (C) to enable data transfer therebetween;
the memory (M) of the machine (1) containing at least one program (Pi) delivered by a supplier of the software programs, the one program including an identification parameter (ai) which identifies the one program and having a scrambled portion which renders the one program non-executable on the machine, containing a main validation key code (Vi), specific to the one program, issued by the supplier, and containing a master program (SPP);
the memory (M1) of the card (C) containing at least one secret code (S) specific to the user and known only to the suppler, and identification arguments which identify the programs, at least one of said identification arguments (bi) identifying said one program, the card having means responsive to the identification parameter (ai) contained in the one program (Pi) for addressing said identification argument (bi), and the processing circuits (4) of the card having means for computing a supplementary validation key code (V'"'"'i) from the secret code (S) and the addressed identification argument (bi) of the program (Pi) and for transferring the supplementary validation key code to the machine; and
wherein the master program (SPP) is formed to combine the supplementary validation key code (V'"'"'i) and the main validation key code (Vi) for unscrambling the scrambled portion of the program (Pi) and rendering the program executable.
-
-
2. A method of protecting software programs (P1, . . . Pi, . . . Pn) delivered by a supplier to prospective users, each user possessing a data processing machine (1) on which said programs can be executed, the method comprising:
-
prior to delivery to a user rendering the programs nonexecutable in the state in which the programs are delivered, said rendering comprising scrambling a portion of each program (Pi) such that a predetermined validation key (Vi, V'"'"'i) is required for unscrambling the program (Pi) to transform it into an executable state, said predetermined validation key comprising a combination of a main validation key (Vi) and a supplementary validation key (V'"'"'i), the main validation key being defined in accordance with the program (Pi) and a secret code (S) which is unique to the user and known solely to the supplier, and the program (Pi) having an identification parameter (ai) which identifies the program; coupling to the user'"'"'s machine a portable card having processing circuits (4) and a storage area (M1) in which are recorded the user'"'"'s unique secret code and identification arguments (b1, . . . bi, . . . bn) which are associated with the identification parameters (a1, . . . ai, . . . an) of the programs (P1, . . . Pi, . . . Pn); storing in a memory (M) of the user'"'"'s machine the program (Pi) and the corresponding main validation code (Vi); transferring to the card the identification parameter (ai); producing in the processing circuits of the card the supplementary validation key (V'"'"'i) for the program (Pi) as a function of the secret code and an associated identification argument (bi) and supplying said supplementary validation key to the user'"'"'s machine; combining in the user'"'"'s machine, the main validation key and the supplementary validation key to produce the predetermined validation key; and applying the predetermined validation key to the program (Pi) to unscramble the program (Pi) and transform it into an executable state. - View Dependent Claims (3, 4, 5, 6, 7, 8)
-
Specification