Shared Library Authentication Using Homomorphic Encryption Keys
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computer programs using shared libraries are vulnerable to attacks where attackers can replace or tamper with the shared libraries, compromising security and integrity during execution, as there is no effective authentication or integrity check mechanism.
Innovation Solution
Implement a method using a homomorphic encryption function to authenticate shared libraries by generating an authentication key through encryption operations, ensuring secure communication channels and integrity checks before function execution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If no authentication mechanism is implemented for shared libraries, then the system maintains simplicity and ease of operation, but security and reliability are compromised allowing library replacement and tampering
Solution Approach 1:
The patent applies preliminary action by performing authentication of the shared library before establishing the communication channel. The authentication key D is generated and verified in advance through homomorphic encryption operations, ensuring the library is legitimate before any functions are called, thus preventing runtime attacks
Solution Approach 2:
The patent introduces an intermediary authentication mechanism using homomorphic encryption. The encryption function acts as a mediator between the computer program and shared library, allowing verification of library integrity through encrypted authentication keys without exposing sensitive information, thus resolving the contradiction between security and complexity
2Reliability
If homomorphic encryption is used to authenticate the shared library, then security is improved by obfuscating the authentication key, but computational complexity and processing time increase
Solution Approach 1:
The patent extracts the authentication verification process from the main program execution flow. By separating the authentication key generation and verification steps into a distinct preliminary phase using homomorphic encryption, the system achieves enhanced security without significantly impacting the core program functionality
Solution Approach 2:
The patent changes the parameter representation by using homomorphic encryption to transform the authentication key into an encrypted form that maintains mathematical properties. This allows verification operations to be performed on encrypted data, improving security while managing computational complexity through parameter transformation
3Reliability
If authentication is performed during runtime, then security against runtime attacks is improved, but execution time is increased due to additional verification steps
Solution Approach 1:
The patent performs authentication as a preliminary action before the communication channel is established and before any library functions are executed. This ensures security during runtime while minimizing time loss by completing verification upfront, allowing the program to proceed efficiently once authentication is confirmed
4Reliability
If the authentication key is transmitted in encrypted form, then security is improved by making it harder for attackers to access the predetermined value set, but the complexity of verification processes increases
Solution Approach 1:
The patent uses homomorphic encryption as an intermediary that allows verification of the authentication key without decrypting it. The encryption function maintains mathematical properties that enable verification operations on encrypted data, thus improving security while managing verification complexity through the intermediary's special properties
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The invention provides a method of authentication between a computer program comprising code instructions with a link to call for a function of a shared library and the shared library implemented in an entity. The method comprises applying (306), by the entity, an encryption function to a predetermined value set N, wherein the encryption function is homomorphic for at least a first operation, and applying (306; 307), by the entity, the first operation to at least one encrypted element of the encrypted value set and to at least one shared value to obtain an authentication key D. Upon reception of (308) the authentication key D, the compute performs (315-318) authentication of the shared library, by the computer, based on the authentication key D and a communication channel is established (319) between the computer program and the shared library to execute the function called by the link in the computer program, only if the authentication of the shared library is valid.