Dynamic Runtime Data Encoding for DRM Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Digital Rights Management (DRM) and other security systems are vulnerable to tampering attacks that allow adversaries to reverse engineer and access sensitive data once it is decrypted, as the encryption measures can be compromised by unauthorized access to the media player or audio-visual system.

Innovation Solution

A method and apparatus for dynamically encoding data at runtime by tagging data elements with encoding identifiers in the source code, randomly selecting obfuscation algorithms from a library at build-time and runtime, and using these algorithms to encode, decode, or re-encode data, ensuring continuous flux and protection against attacks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is stored in clear text in memory for processing, then program execution is simple and efficient, but the data becomes vulnerable to tampering attacks and reverse engineering

Engineering Contradiction:
Improvedata securityVSAvoidencoding complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies dynamics by randomly selecting and switching between multiple obfuscation algorithms at runtime. The encoding scheme is not static but dynamically changes during program execution, making it difficult for attackers to reverse engineer the data protection mechanism while maintaining efficient program execution.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of encoding by using different obfuscation algorithms with varying encoding schemes. The system selects from multiple algorithms with different parameters (encoding methods, key lengths, transformation types), allowing flexible adjustment of security levels while managing complexity.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If a single obfuscation algorithm is used for encoding data, then the implementation is simple, but the diversity of encoding is limited making it easier to break

Engineering Contradiction:
Improveencoding diversityVSAvoidalgorithm management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the encoding process by dividing it into multiple independent obfuscation algorithms. Each algorithm handles a portion of the encoding task, and they are combined through random selection. This segmentation provides encoding diversity while managing complexity through modular design.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a universal encoding system that can perform multiple encoding functions using a single framework. The system manages multiple obfuscation algorithms that can be interchangeably selected, providing multi-functionality in data protection while maintaining a unified management structure.

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

3Reliability

If data is continuously encoded and decoded during runtime, then protection against reverse engineering is improved, but the processing time and computational overhead increase

Engineering Contradiction:
Improveprotection effectivenessVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-compiling and injecting multiple obfuscation algorithms into the program before runtime. The selection and setup of encoding mechanisms are prepared in advance, reducing the computational overhead during actual data processing while maintaining continuous protection effectiveness.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12007908B2Method and apparatus to dynamically encode data at runtime
Publication Date: 2024.06.11 ARRIS ENTERPRISES LLC
  • US12007908B2 patent drawing
  • US12007908B2 patent drawing
  • US12007908B2 patent drawing

AI summary

A method is provided to dynamically encode data at runtime with a tagged data element in a program associated with an obfuscation algorithm randomly selected during runtime. Instructions for invoking the obfuscation algorithm are generated when a compiler encounters the tagged variable in the source code. At runtime, unencoded data is encoded by the obfuscation algorithm when the unencoded data is copied to the tagged data element; encoded data is re-encoded by the obfuscation algorithm when the encoded data is copied from a differently tagged data element to the tagged data element, wherein the differently tagged data element is associated with a different obfuscation algorithm; and encoded data is decoded by the obfuscation algorithm when the encoded data is copied from the tagged data element to an untagged data element.