Permutation Composition Hash Function for Reverse Engineering Resistance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cryptographic systems implemented in software are vulnerable to reverse engineering attacks, especially when based on well-known mathematically difficult problems, which undermines their security.

Innovation Solution

A permutation composition based hash function that leverages the difficulty of the permutation composition problem to generate a hash value for a message, splitting it into blocks and using a set of permutations to create a block permutation value, updating an accumulated message permutation value, and generating the message hash from this value, thereby enhancing security.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a cryptographic system is based on well-known mathematically difficult problems, then the system is efficient and has provable security levels, but the system becomes vulnerable to reverse engineering attacks

Engineering Contradiction:
Improveprovable security levelVSAvoidvulnerability to reverse engineering
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The cryptographic system is segmented into multiple independent permutation functions {P0, P1, ..., Pn-1} that are applied in different rounds. Each permutation operates on separate data blocks, dividing the overall cryptographic transformation into modular components that collectively provide security while maintaining efficiency. This segmentation allows the system to leverage well-studied permutation structures while obscuring the complete transformation path.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The cryptographic system uses a composite structure combining multiple permutation functions with different mathematical properties. Each permutation Pi is constructed with unique characteristics, and their composition creates a complex transformation that inherits security properties from individual components while adding layers of complexity that resist reverse engineering. The composite nature ensures that analyzing one permutation alone does not reveal the complete system behavior.

Inventive Principle:
Principle #40Composite materials

2Productivity

If a cryptographic system uses commonly used mathematical problems, then the system is efficient to implement, but the system lacks uniqueness and becomes easier to analyze

Engineering Contradiction:
Improveimplementation efficiencyVSAvoiduniqueness of cryptographic structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system employs parameter changes by varying the number of rounds r, the block size b, and the specific permutation functions used in each round. These parameters can be adjusted to create different cryptographic configurations with varying security levels and performance characteristics. By changing parameters rather than the fundamental structure, the system maintains implementation efficiency while achieving uniqueness through specific parameter selections.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The cryptographic system introduces dynamics through variable round counts and conditional permutation selections based on input characteristics. The number of rounds r can be adjusted dynamically, and different permutations may be applied depending on the data being processed. This dynamic behavior increases complexity and uniqueness while maintaining a flexible, efficient implementation framework that can adapt to different security requirements.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10164772B2Permutation composition based hash function
Publication Date: 2018.12.25 APPLE INC
  • US10164772B2 patent drawing
  • US10164772B2 patent drawing
  • US10164772B2 patent drawing

AI summary

The disclosed hash and message padding functions are based on the permutation composition problem. To compute a hash of a message using permutation composition based hashing, the message is split into equal size blocks. For each block, a permutation composition value is computed. The block permutation composition values are then combined through composition to generate an overall permutation composition value. The hash of the message is then based on the overall permutation composition value. To pad a message using permutation composition based padding, the message is split into equal size blocks. For each block, a permutation composition value is computed and the permutation composition value is added to the block. The padded blocks are then recombined to generate the padded message.