Multi-Party HMAC Computation via Polynomial Key Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Standard implementations of HMAC in multi-party computation require representing the HMAC function as a Boolean circuit, leading to significant data transfer and computational overhead, particularly when one party has limited resources, such as a mobile phone, which can interfere with normal operation.
Innovation Solution
A method and system using two computerized servers where neither server holds the entire HMAC encryption key, with a third-party client compressing the secret key using different irreversible functions and sending the compressed keys to each server, allowing the servers to compute the HMAC value without revealing the key, thus eliminating the need for Boolean gate representation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If HMAC is performed using Boolean gates in multi-party computation, then security is maintained through key distribution, but data transfer volume and computational overhead increase significantly
Solution Approach 1:
The secret key is segmented into multiple shares distributed to different parties. Each party holds only a portion of the key, and the HMAC computation is performed by combining these shares through polynomial evaluation rather than through Boolean gates. This segmentation reduces the amount of data that needs to be transferred while maintaining security through the properties of secret sharing.
Solution Approach 2:
The invention changes the computational parameters from Boolean gate operations to polynomial arithmetic operations. By evaluating polynomials at specific points and combining results through arithmetic operations rather than logical gates, the data transfer volume is reduced while the security properties are preserved through the mathematical properties of polynomial interpolation and evaluation.
2Reliability
If HMAC is performed using Boolean gates on resource-constrained devices, then authentication security is maintained, but device performance and normal operation are interfered with
Solution Approach 1:
The computation is segmented across multiple parties, with each party performing only a portion of the overall HMAC computation. Resource-constrained devices only need to perform local polynomial evaluations rather than full Boolean circuit computations, significantly reducing their computational burden while maintaining the security guarantees of the overall authentication process.
Solution Approach 2:
The invention replaces the mechanical Boolean gate system with an algebraic polynomial evaluation system. This substitution changes the fundamental computational mechanism from logical operations to arithmetic operations, which are more efficient and less resource-intensive, thereby improving device performance while maintaining authentication security.
3Speed
If the entire encryption key is held by a single server for HMAC computation, then computation speed is improved, but security is compromised through key exposure risk
Solution Approach 1:
The encryption key is segmented into multiple shares that are distributed to different servers or parties. Each server holds only a share of the key, not the entire key. The HMAC computation is performed by combining these key shares through polynomial evaluation, which maintains security (no single server has full key access) while achieving efficient computation through parallel processing of the key shares.
Data Source
AI summary
The subject matter discloses a method operated on at least two servers for a third-party client, the method comprising receiving by a first server a first result of the first irreversible function applied to a secret key from a first third-party client, receiving by a second server a second result of the second irreversible function applied to the secret key from the third-party client, receiving by the first server, a message from a second third-party client, the first server computing a first hash function on said first result and on said message, and sending a result of the first hash function from the first server to the second server, the second server computing a second hash function on said second result and on the result of the first hash function sent from first server and outputting the result generated by second server as HMAC result.


