Software License Authorization via Asymmetric Encryption
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software authorization systems are vulnerable to security flaws and limitations, such as the ease of generating rogue activation keys for multiple products and the difficulty in reauthorizing licenses on the same computer, due to the use of unique Computer IDs and alphanumeric activation keys that are hard to manage and transmit.
Innovation Solution
A system where a character string, including a Transaction ID, is encrypted with a product-specific encryption key at the licensing authority to produce a unique Authorization number, which is then decrypted using a hard-coded decryption key on the end-user device, ensuring each product can only accept its specific Authorization number, preventing reverse engineering and allowing for reauthorization with different numbers each time.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If identical algorithms are used at both the licensing authority and end user computer to generate authorization keys, then the authorization process is simple and consistent, but the system becomes vulnerable to rogue key generators that can replicate the algorithm
Solution Approach 1:
The patent applies asymmetry by using different algorithms at the licensing authority and end user computer. The licensing authority uses a first algorithm to generate authorization keys, while the end user computer uses a second, different algorithm to validate them. This asymmetric approach prevents rogue key generators from replicating the key generation process, as the validation algorithm cannot be easily reverse-engineered to create valid keys.
Solution Approach 2:
The patent introduces an intermediary element in the form of a licensed copy of the software that resides on the end user computer. This licensed copy contains the second algorithm and acts as a mediator between the authorization key and the validation process. The intermediary ensures that only properly authorized software can validate authorization keys, preventing unauthorized key generation and validation.
2Adaptability or versatility
If unique Computer IDs and alphanumeric activation keys are used for each end user, then each user can be uniquely identified and authorized, but the keys become difficult to manage, communicate, or manually enter
Solution Approach 1:
The patent changes the parameter format of authorization keys from complex alphanumeric combinations to simpler formats. By modifying the key structure and encoding scheme, the system maintains the ability to uniquely identify users while producing keys that are easier to manage, communicate, and enter manually. This parameter change balances uniqueness requirements with user convenience.
3Stability of the object's composition
If the same Computer ID and customer information are used for reactivation, then the authorization key remains the same, but this defeats the purpose of enforcing lease or license terms
Solution Approach 1:
The patent applies dynamics by making the authorization key generation process adaptive rather than static. The system dynamically generates different authorization keys based on current licensing status, even when using the same Computer ID and customer information. This dynamic approach allows the system to enforce lease or license terms by producing different keys for reactivation, preventing unauthorized continuous use.
Data Source
AI summary
A system and method of authorizing a product including transmitting from an end user device a character string, including a Transaction ID, to a licensing authority. The licensing authority encrypts the Transaction ID using an encryption key associated with a product for which the end user is seeking authorization to produce an Authorization number. Each product is associated with a different encryption key resulting in a different Authorization number being produced for each product based on the same Transaction ID. The licensing authority then returns the Authorization number to the end user device. A decryption processor associated with the end user device decrypts the Authorization number using an unchangeable decryption key and compares the decrypted Authorization number with the Transaction ID. If the decrypted Authorization number matches the Transaction ID the product is authorized.


