Generating and interpreting secure and system dependent software license keys
First Claim
1. A method, comprising:
- defining license data representing a software license for software;
computing, by a processor executing an encoding process, an authentication code based on a unique identification of hardware upon which the software is configured to operate;
combining the license data and the authentication code;
encrypting the combined license data and authentication code utilizing a first encryption technique into an encrypted result;
encrypting the encrypted result into a double-encrypted result utilizing a second encryption technique that is not the first encryption technique; and
transforming the double-encrypted result into a software license.
0 Assignments
0 Petitions
Accused Products
Abstract
A technique is provided for generating and interpreting secure and system dependent software license keys. According to one or more embodiments of the present invention, a device executing an encoding algorithm may generate a software license key by applying several layers of security. Illustratively, the device may initially define a license data representing a software license for the software. The device may also compute an authentication code based on a unique identification of hardware upon which the software is configured to operate. The license data and authentication code may be combined and encrypted into an encrypted result, which may be transformed into a software license key (e.g., human readable). Also, the device may apply a predetermined encryption technique (e.g., cipher) during the transformation as an additional layer of security. Conversely, a device configured to operate the software may execute a decoding algorithm to interpret the software license key similarly in reverse.
38 Citations
24 Claims
-
1. A method, comprising:
-
defining license data representing a software license for software; computing, by a processor executing an encoding process, an authentication code based on a unique identification of hardware upon which the software is configured to operate; combining the license data and the authentication code; encrypting the combined license data and authentication code utilizing a first encryption technique into an encrypted result; encrypting the encrypted result into a double-encrypted result utilizing a second encryption technique that is not the first encryption technique; and transforming the double-encrypted result into a software license. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method, comprising:
-
providing a software license key for software; transforming, by a processor executing an encoding process, the software license key into a double encrypted result; decrypting the double-encrypted result into the encrypted result utilizing a first decryption technique; decrypting the encrypted result into a combined license data and authentication code utilizes utilizing a second decryption technique that is not the first decryption technique; authenticating the authentication code based on a unique identification of hardware upon which the software is configured to operate; and if authenticated by the processor, a software license defined by the license data. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. An apparatus, comprising:
-
hardware upon which software is configured to operate; means for transforming a software license key for the software a double encrypted result; means for decrypting the double-encrypted result into the encrypted result utilizing a first decryption technique; means for decrypting the encrypted result into a combined license data and authentication code utilizing a second decryption technique that is not the first decryption technique; means for authenticating the authentication code based on a unique identification of the hardware; and means for determining a software license defined by the license data if the authentication code is authenticated.
-
-
21. A device, comprising:
-
at least one input/output (I/O) interface; at least one processor coupled to the at least one I/O interface and configured to execute at least one process; and a memory configured to store an encoding process executable by each processor, the encoding process when executed operable to define a license data representing a software license for software;
compute an authentication code based on a unique identification of hardware upon which the software is configured to operate;
combine the license data and the authentication code;
encrypt the combined license data and authentication code into an encrypted result utilizing a first encryption technique;
encrypt the encrypted result into a double-encrypted result key utilizing a second encryption technique that is not the first encryption technique; and
transform the double-encrypted result into a software license.
-
-
22. A device, comprising:
-
at least one input/output (I/O) interface; at least one processor coupled to the at least one I/O interface and configured to execute at least one process; and a memory configured to store a decoding process executable by each processor, the decoding process when executed operable to;
receive a software license key for software;
ii) transform the software license key into a double encrypted result;
decrypt the double-encrypted result into the encrypted result utilizing a first decryption technique decrypt the encrypted result into a combined license data and authentication code utilizing a second decryption technique that is not the first decryption technique;
authenticate the authentication code based on a unique identification of hardware upon which the software is configured to operate; and
v) determine a software license defined by the license data in response to an authenticated authentication code.
-
-
23. A computer readable medium containing executable program instructions executed by a processor, comprising:
-
program instructions that define license data representing a software license for software; program instructions that compute an authentication code based on a unique identification of hardware upon which the software is configured to operate; program instructions that combine the license data and the authentication code; program instructions that encrypt the combined license data and authentication code utilizing a first encryption technique into an encrypted result; program instructions that encrypt the encrypted result into a double-encrypted result utilizing a second encryption technique that is not the first encryption technique; and program instructions that transform the double-encrypted result into a software license.
-
-
24. A computer readable medium containing executable program instructions executed by a processor, comprising:
-
program instructions that provide a software license key for software; program instructions that transform the software license key into a double encrypted result; program instructions that decrypt the double-encrypted result into the encrypted result utilizing a first decryption technique; program instructions that decrypt the encrypted result into a combined license data and authentication code utilizing a second decryption technique that is not the first decryption technique; program instructions that authenticate the authentication code based on a unique identification of hardware upon which the software is configured to operate; and program instructions that define a software license by the license data if authenticated by the processor.
-
Specification