Side Channel Communication Hardware Driver for HDCP Authentication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The HDCP version 2.x authentication process over physical hardware channels, such as I2C and DisplayPort, faces challenges due to software interrupts causing delays, which can lead to authentication failures and poor user experience, especially when clock stretching is not supported by all devices, and existing solutions like full hardware implementation or tuning software responses are costly or result in interoperability issues.

Innovation Solution

Offloading side-channel communication from software to hardware drivers, which handle time-critical components and minimize software interrupts, allowing the software to focus on high-level messaging and protocol compliance, and abstracting the communication channel to be independent of the underlying physical channel used.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software handles side-channel communication, then protocol compliance and high-level messaging are maintained, but response time increases and software overhead increases

Engineering Contradiction:
Improveprotocol complianceVSAvoidresponse time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The communication handling is segmented into two parts: hardware drivers handle time-critical data transmission and timing constraints, while software handles high-level messaging and protocol compliance. This segmentation allows each component to optimize for its specific function without compromising the other.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Hardware drivers act as intermediaries between the software and the physical communication channel. They abstract the low-level timing constraints and data transmission details, providing a cleaner interface for software while ensuring timely responses meet protocol requirements.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If hardware drivers handle time-critical components, then response time improves and software overhead is reduced, but device complexity increases

Engineering Contradiction:
Improvecommunication efficiencyVSAvoidhardware driver complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The hardware drivers are designed to autonomously handle time-critical communication tasks without requiring constant software intervention. They self-manage timing constraints, data transmission, and interrupt handling, reducing the burden on software while maintaining communication efficiency.

Inventive Principle:
Principle #25Self-service

3Ease of operation

If software responds to interrupts for data communication, then data transmission is handled, but authentication failures occur due to delays

Engineering Contradiction:
Improvedata transmission handlingVSAvoidauthentication success
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

Hardware drivers perform preliminary actions by pre-handling time-critical data transmission and timing constraints before software needs to respond. This ensures that data is transmitted and received within required timeframes, preventing authentication failures while keeping software operations simple.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10133611B2Side channel communication hardware driver
Publication Date: 2018.11.20 SYNOPSYS INC
  • US10133611B2 patent drawing
  • US10133611B2 patent drawing
  • US10133611B2 patent drawing

AI summary

A system and method for communicating data between a first software and a second software located on first and second devices, respectively, has a hardware driver and memory associated with each device. Each communication of data from the first software to the second software allocates memory to manage data to be communicated from the first software to the second software, provides memory allocation information to the hardware driver associated with the first software, and transmits the data from the first hardware driver to the second hardware driver for delivery to the second software via the memory associated with the second software.