Embedded SSL/TLS HMAC Data Path for Unaligned High-Throughput Transfers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing SSL/TLS throughput in embedded devices is inefficient due to multiple memory copies, CPU-intensive decryption, and limited data transfer capabilities of HMAC hardware, leading to slow performance and increased power consumption.

Innovation Solution

Implementing a method that avoids intermediate buffers, supports multi-input and unaligned data for HMAC hardware, and enables single request transfers to the host, enhancing SSL/TLS throughput by optimizing data flow and reducing memory copies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is transferred through multiple intermediate buffers (scatter buffers to linear hold buffer to linear buffer), then data can be properly assembled and decrypted, but the number of memory copy operations increases and throughput decreases

Engineering Contradiction:
Improvedata integrityVSAvoidthroughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent removes the intermediate linear hold buffer from the data path, extracting the inefficiency from the system. Data flows directly from TCP scatter buffers to the SSL/TLS linear buffer, eliminating one complete memory copy operation while maintaining data integrity through proper buffer management and alignment handling.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The linear buffer is designed to serve multiple purposes: it acts as both the destination for TCP data assembly and the source for HMAC computation and SSL/TLS decryption. This multi-functionality eliminates the need for separate intermediate buffers, reducing memory copies while maintaining reliable data processing.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Device complexity

If HMAC hardware supports only one-shot input with aligned four-byte boundaries, then hardware implementation is simpler, but data transfer flexibility is reduced and additional buffering is required

Engineering Contradiction:
Improvehardware complexityVSAvoiddata transfer flexibility
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The HMAC hardware was redesigned with dynamic capabilities to accept data in multiple transfers rather than requiring a single static input. The hardware now includes state machine logic that can accumulate data across multiple transfers, handle unaligned boundaries, and maintain proper alignment internally while accepting flexible external inputs.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The data input to HMAC is segmented into multiple transfers rather than requiring a single complete input. The hardware processes data in segments, accumulating it in an internal buffer until sufficient data is available for aligned processing, allowing flexible data source accommodation without sacrificing hardware efficiency.

Inventive Principle:
Principle #1Segmentation

3Quantity of substance

If 16 KB SSL/TLS records are transferred in multiple 1460-byte chunks through scatter buffers, then host memory constraints are respected, but the number of request-response cycles increases to 12

Engineering Contradiction:
Improvememory allocationVSAvoidrequest-response cycles
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent changes the dimension of data transfer by enabling the host to request and receive large blocks (up to 16 KB) in a single operation rather than being constrained to small chunked transfers. This dimensional change in transfer size eliminates multiple request-response cycles while the host manages the resulting large buffer allocations.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Solution Approach 2:

The host performs preliminary action by allocating large buffers in advance and issuing single large read requests, rather than repeatedly requesting small chunks. This preliminary buffer allocation and single-request approach reduces the number of interaction cycles between host and SSL/TLS layer, improving throughput.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If data is padded and prepended for HMAC computation, then message authentication is properly performed, but additional memory is required and data transfer complexity increases

Engineering Contradiction:
Improvemessage authenticationVSAvoiddata preparation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The data preparation operations (prepending and padding) are merged into the existing linear buffer that already contains the SSL/TLS record data. Rather than creating separate prepared buffers, the hardware directly processes the contiguous data in the linear buffer, performing prepend and pad operations in-place or through efficient memory operations that avoid additional complex buffering.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS12627502B2Achieving high SSL/TLS throughput in embedded devices
Publication Date: 2026.05.12 SILICON LABORATORIES INC
  • US12627502B2 patent drawing
  • US12627502B2 patent drawing
  • US12627502B2 patent drawing

AI summary

An embedded system includes hash message authentication code (HMAC) hardware. The HMAC hardware receives data in separate data transfers to compute a hash. The HMAC hardware receives data of unaligned lengths in at least one of the separate data transfers. The data of unaligned lengths includes fewer valid bytes than the transfer size. The HMAC hardware responds to a residue indication indicating valid bytes associated with the data transfer to fill in the residue from a subsequent data transfer. For each data transfer the HMAC hardware receives an indication of whether the data is final data or if more data will be transferred for computation of the hash. The embedded system loads a linear buffer directly from scatter buffers, which contain encrypted data from a network. Decrypted data in the linear buffer is sent to a host using a direct memory access (DMA) operation responsive to a host request.