Secure Serial Number Generation via Cryptographic Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software-based code protections are ineffective against sophisticated software hackers who can reverse-engineer code to bypass these protections, leading to unauthorized use and revenue losses for software developers.

Innovation Solution

A method involving a block cipher encrypter that generates a secure serial number by concatenating an application identifier, a sequence of random numbers, and a signature, which is then encoded and verified using a serial number key, providing enhanced protection against unauthorized use.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software-based code protections are used, then protection against unskilled software thieves is improved, but effectiveness against sophisticated hackers who can reverse-engineer code deteriorates

Engineering Contradiction:
Improvesoftware protection effectivenessVSAvoidreverse engineering capability
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent introduces a serial number verification system as an intermediary layer between the software and the user. Instead of relying solely on code-level protection, the system uses cryptographic serial numbers that must be verified by the software before execution. This intermediary verification mechanism prevents unauthorized use without exposing the software's internal code structure to reverse engineering attacks.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces traditional software-based code protection mechanisms with a cryptographic serial number verification system. Rather than relying on obfuscated code or encryption within the software itself, the system uses external cryptographic verification that is independent of the software's internal mechanics, making it resistant to reverse engineering.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Ease of manufacture

If traditional serial number systems are used, then implementation simplicity is maintained, but security against unauthorized use deteriorates

Engineering Contradiction:
Improveserial number system implementationVSAvoidserial number security
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent changes the parameters of the serial number system by incorporating cryptographic elements such as hashes, random numbers, and timestamps. Instead of using simple sequential numbers, the system uses complex cryptographic parameters that are computationally difficult to guess or replicate, thereby enhancing security while maintaining implementation simplicity through standard cryptographic libraries.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent performs preliminary cryptographic processing of the serial number before it is used in the software. The serial number is pre-processed through hashing and verification mechanisms, and the verification logic is embedded in the software at compile time. This preliminary action ensures that even if the serial number is intercepted or copied, it cannot be used without the corresponding verification key.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8347109B2Secure serial number generation
Publication Date: 2013.01.01 RED HAT INC
  • US8347109B2 patent drawing
  • US8347109B2 patent drawing
  • US8347109B2 patent drawing

AI summary

An apparatus and a method for generating serial numbers is described. In one embodiment, a block cipher encrypter encrypts an application identifier and a sequence of random numbers to generate a signature. The block cipher encrypter is associated with a serial number key. The application identifier, the sequence of random numbers, and the signature are concatenated to generate a serial number. An encoder encodes the serial number into a string.