Software Authorization System Using Segmented Key Generation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current software authorization systems face challenges in preventing illegal distribution of software, as existing methods are vulnerable to reverse engineering and key extraction, particularly for small programs, leading to difficulties in protecting software integrity and user rights.
Innovation Solution
A software authorization system that encrypts software using a main key and generates a second key through the combination of user and software identification codes, stored in separate libraries, to enhance decryption security and obfuscate data structures, making it harder for unauthorized distribution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If software is encrypted using a main key and distributed through CDN, then download speed and accessibility are improved, but security against reverse engineering and illegal distribution deteriorates
Solution Approach 1:
The patent segments the encryption key system into multiple components: a public main key for initial encryption, user-specific first keys stored in secure elements, and authorization-generated second keys. This segmentation allows CDN distribution of encrypted software while preventing single-point key compromise that would enable illegal distribution.
Solution Approach 2:
The patent introduces an authorization module as an intermediary between the software provider and users. This module generates unique second keys by combining the main key with user-specific first keys, acting as a mediator that enables secure personalized decryption without exposing the main key, thus protecting against reverse engineering while maintaining CDN distribution benefits.
2Ease of operation
If a single main key is used for encrypting software, then decryption simplicity is improved, but vulnerability to key extraction and illegal distribution increases
Solution Approach 1:
The patent applies local quality by making decryption keys user-specific rather than universal. Each user possesses a unique first key stored in their secure element, and the authorization module generates a unique second key for each user-software pair. This localized key approach maintains operational simplicity for authorized users while preventing key extraction that would enable illegal distribution to other users.
Solution Approach 2:
The patent changes the key parameter from a static main key to a dynamic combination of main key, user-specific first key, and authorization-generated second key. This parameter transformation ensures that even if one key component is compromised, the overall system remains secure because the effective decryption key varies by user and authorization context.
3Reliability
If user-specific security parameters are implemented, then protection against illegal distribution is improved, but system complexity and key management burden increase
Solution Approach 1:
The patent implements self-service by storing user-specific first keys in secure elements within user devices, eliminating the need for centralized key distribution and management. Users automatically possess their authentication credentials, and the authorization module handles key generation and distribution transparently, reducing key management complexity despite enhanced security requirements.
Data Source
AI summary
A software authorization system has a server end and a user end. A software authorization method includes acquiring a software identification code of a protected software when the user end downloads the protected software from the server end; transmitting the software identification code and an inherent user identification code to the server end; acquiring a first key and main key by the server end according to the user identification code and the software identification code, respectively, so as to generate a second key by operating the main key and the first key and transmit the second key to the user end; restoring the main key by the user end with the second key combined with the first key; and decrypting the protected software by the main key. Therefore, the protected software is hard to be decrypted.


