Secret Sharing via Software Content Hashing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In unreliable environments, such as production plants or field-deployed devices, ensuring the authenticity of software introduced into devices is challenging, as secret data may be modified or compromised by third-party software or devices, necessitating secure and authentic insertion methods.
Innovation Solution
A method for secret sharing between devices using symmetric encryption, where a first device encrypts a secret with a calculated key based on predefined hash functions applied to random addresses corresponding to expected software content, ensuring decryption is possible only if the second device stores the expected software, thereby preventing unauthorized access.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If secret data is transmitted in encrypted form using a symmetric encryption key, then the confidentiality of the secret is improved, but the ability to verify software authenticity is worsened without additional authentication mechanisms
Solution Approach 1:
The patent combines encryption and authentication into a single integrated mechanism. The symmetric encryption key is derived from software-specific data, so that the same key material serves both to encrypt the secret for confidentiality and to authenticate the software's integrity. This merging eliminates the need for separate authentication protocols while maintaining both security properties.
Solution Approach 2:
The encryption key serves multiple functions: it provides confidentiality by encrypting the secret data, and simultaneously provides authentication by being derived from software-specific data that only authentic software can reproduce. This multi-functionality reduces system complexity while achieving multiple security goals with a single mechanism.
2Measurement precision
If the encryption key is derived from software content using hash functions, then software authentication is improved, but the risk of key compromise in unreliable environments is worsened
Solution Approach 1:
The patent introduces a trusted intermediary (the secret itself) that is distributed to devices through a secure channel before deployment. This intermediary serves as a anchor of trust that cannot be compromised by third parties in unreliable environments. The encryption key is derived from both the software content and this pre-established secret, creating a layered security model where the secret acts as a mediator that protects against key compromise while maintaining authentication precision.
3Object-affected harmful factors
If random addresses are used to retrieve software content for key generation, then the security against reverse engineering is improved, but the device complexity for key calculation is worsened
Solution Approach 1:
The patent applies preliminary action by pre-compiling the software and embedding the necessary data structures with known address patterns. The random address selection process operates on pre-structured data, which simplifies the calculation complexity compared to searching through unstructured code. The preliminary organization of software data enables secure key generation without excessive computational complexity.
4Device complexity
If the same encryption key is used for both encryption and authentication, then the system simplicity is improved, but the security risk from key exposure is worsened
Solution Approach 1:
The encryption key is derived from data that is inherently tied to the software itself and the device's secret. This self-service approach means the key is generated autonomously by each device based on its own unique characteristics, eliminating the need for centralized key management. The key's security is bound to the device's own secrets, making exposure unlikely even if the system structure is simple.
Data Source
Figure 1A~1B
Figure 2~3
Figure 4~5
AI summary
A first device (D1) wishes to share a secret (S) with a second device (D2) assumed to store predefined software. The first device (D1) obtains a list of random addresses (L@) from a set of addresses corresponding to the software that the second device (D2) is assumed to store, and retrieves the assumed content of the random addresses in this list, using a reference software (SW). The first device (D1) calculates the symmetric encryption key by applying a predefined hash function to the retrieved content, and transmits to the second device (D2), in addition to the secret encrypted using the calculated symmetric encryption key, the list of random addresses (L@). If the second device (D2) does indeed have the expected software, the second device (D2) is able to recover the encryption key from the list of random addresses (L@), and therefore decrypt the secret (S).Otherwise, the second device (D2) is not able to recover the secret (S), the decryption then giving an erroneous result.