Method and apparatus for protection of software in an electronic system
First Claim
1. Apparatus for protecting software recorded on storage media and adapted for use with an electronic system, at least a portion of said software being recorded on said storage media in a form that is unusable by said electronic system until it is externally modified, said apparatus comprising:
- identifying means for storing identifying data specifying at least one specific unit of said electronic system for which use of said software is authorized;
input/output means for reading said software from said storage media and for writing onto said storage media;
an electronic key generating output levels when interrogated by predetermined input levels, said output levels being in a predetermined pattern corresponding to authenticating data recorded on said storage media, the operation of said key being externally modifiable upon receipt of modifying a signal;
interrogating means for interrogating said electronic key with said predetermined input levels and for receiving said output levels; and
authentication means operatively connected to said interrogating means, said input/output means, and said identifying means, said authentication means comparing the pattern of the output levels from said interrogating means with said authenticating data and, if said pattern corresponds to said authenticating data, writing said identifying data onto said storage media to identify said storage media with said electronic system, applying said modifying signal to said authenticating means to modify the operation of said key for preventing future use of said key, and modifying the software recorded on said storage media to make said software usable by said electronic system.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for protecting software used in an electronic system. An electronic key is associated with the software, which is at least partially unreadable unless modified. The electronic system using the software to be protected receives the electronic key, and reads the software to determine that the electronic key and software are associated. The system then modifies the software to render it readable and identifies the software with the electronic system by storing an identifier of the system with the software. Finally, the system modifies the electronic key to render it useless.
138 Citations
17 Claims
-
1. Apparatus for protecting software recorded on storage media and adapted for use with an electronic system, at least a portion of said software being recorded on said storage media in a form that is unusable by said electronic system until it is externally modified, said apparatus comprising:
-
identifying means for storing identifying data specifying at least one specific unit of said electronic system for which use of said software is authorized; input/output means for reading said software from said storage media and for writing onto said storage media; an electronic key generating output levels when interrogated by predetermined input levels, said output levels being in a predetermined pattern corresponding to authenticating data recorded on said storage media, the operation of said key being externally modifiable upon receipt of modifying a signal; interrogating means for interrogating said electronic key with said predetermined input levels and for receiving said output levels; and authentication means operatively connected to said interrogating means, said input/output means, and said identifying means, said authentication means comparing the pattern of the output levels from said interrogating means with said authenticating data and, if said pattern corresponds to said authenticating data, writing said identifying data onto said storage media to identify said storage media with said electronic system, applying said modifying signal to said authenticating means to modify the operation of said key for preventing future use of said key, and modifying the software recorded on said storage media to make said software usable by said electronic system. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. Apparatus for programming an integrated circuit with data according to a private algorithm, comprising:
-
means for receiving the integrated circuit; means for storing an indicator that is distinctive for the programming apparatus; means for reading from readable storage media; an electronic key including electronic elements and having inputs and outputs connected thereto, the electronic elements being programmed according to a modifiable fusemap to produce predetermined response levels at its outputs in response to predetermined levels at its inputs; modifiable storage media associated with the electronic key for storing said data and said algorithm, at least a portion of the storage media being unreadable by the storage media reading means if an indicator in the storage media is not a predetermined function of the indicator that is distinctive for the programming apparatus; means for applying a predetermined set of test levels to the inputs of the electronic key and for receiving the corresponding output levels of the electronic key; means for comparing the output levels of the electronic key to a predetermined set of response levels; means for signifying that the output levels are properly matched with the predetermined set of response levels; means for transferring the distinctive indicator from the programming apparatus to the storage media, thereby identifying the storage media with the programming apparatus; and means for modifying the fusemap to prevent continued use of said key. - View Dependent Claims (9, 10, 11)
-
-
12. Apparatus for programming an integrated circuit with data according to a private algorithm, comprising:
-
means for receiving the integrated circuit; means for storing an indicator that is distinctive for the programming apparatus; means for reading from readable storage media; a electronic key including electronic elements and having inputs and outputs connected thereto, the electronic elements being programmed according to a modifiable fusemap to produce predetermined response vectors at its outputs in response to predetermined vectors at its inputs; modifiable storage media associated with the electronic key for storing said data and said algorithm, said storage media being removable from the programming apparatus, at least a portion of the storage media being unreadable by the storage media reading means if an indicator in the storage media is not a predetermined function of the indicator that is distinctive for the programming apparatus; means for applying a predetermined set of test vectors to the inputs of the electronic key and for receiving the corresponding output vectors of the electronic key; means for comparing the output vectors of the electronic key to a predetermined set of response vectors; means for signifying that the output vectors are properly matched with the predetermined set of response vectors; means for transferring the distinctive indicator from the programming apparatus to the storage media, thereby identifying the storage media with the programming apparatus; and means for modifying the fusemap to prevent continued use of said key. - View Dependent Claims (13, 14, 15)
-
-
16. A method for protecting software recorded on storage media and adapted for use with an electronic system, at least a portion of said software being recorded on said storage media in a form that is unusable by said electronic system until it is externally modified, said storage media further recording predetermined authenticating data, said method comprising:
-
storing an indicator in said electronic system that is specific to said electronic system; providing an electronic key which contains information corresponding to said authenticating data recorded on said storage media, the information in said key being externally modifiable; interrogating said electronic key to determine said information; and comparing the information from said key with said authenticating data and, if said information corresponds to said authenticating data, recording said identifying data onto said storage media to identify said storage media with said electronic system, modifying the operation of said key for preventing future use of said key, and modifying the software recorded on said storage media to make said software usable by said electronic system. - View Dependent Claims (17)
-
Specification