Password Database Security via Encrypted Username Swapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing password database security mechanisms are inadequate as they allow attackers to impersonate users by accessing the encrypted password file, as they only require guessing the password for authentication, not both the username and password.

Innovation Solution

The method involves encrypting usernames and passwords using key-dependent hashing algorithms with multiple iterations, swapping and combining them through XOR operations, and storing encrypted versions, ensuring that both the username and password are needed for authentication, thereby increasing security by requiring attackers to guess both.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If only passwords are encrypted and stored in the password database, then the encryption process is simple and storage is efficient, but attackers can impersonate users by accessing the encrypted password file and guessing passwords without needing to validate usernames

Engineering Contradiction:
ImprovesecurityVSAvoidencryption process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges username and password into a single encrypted credential by hashing the username and using it as a key to encrypt the password. This combination ensures that both username and password validation are required for authentication, preventing attackers from impersonating users by guessing passwords alone without knowing the corresponding username

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The encrypted credential is formed as a composite structure where the hashed username serves as the encryption key and the password is the encrypted data. This composite approach creates a security mechanism where both components (username and password) are necessary for successful authentication, increasing security without requiring separate storage of username and password

Inventive Principle:
Principle #40Composite materials

2Reliability

If usernames are encrypted using key-dependent hashing with multiple iterations, then security against brute force attacks is improved, but computational time and processing complexity increase

Engineering Contradiction:
Improvesecurity against brute force attacksVSAvoidcomputational time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The username is pre-hashed using a key-dependent hashing algorithm with multiple iterations before being used to encrypt the password. This preliminary hashing action creates a computational barrier that must be overcome before password decryption is possible, significantly increasing the effort required for brute force attacks while maintaining system functionality

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies multiple iterations of hashing with varying parameters to the username before encryption. By changing the hashing parameters across multiple iterations, the computational complexity for attackers increases exponentially, while the system can manage the processing time through optimized implementation

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8667305B2Securing a password database
Publication Date: 2014.03.04 RED HAT INC
  • US8667305B2 patent drawing
  • US8667305B2 patent drawing
  • US8667305B2 patent drawing

AI summary

An apparatus and a method for encrypting a username is described. In one embodiment, a hashed username is encrypted with an encryption function. An input size of the encryption function matches an output size of the encryption function. The password associated with the hashed username is replaced with a function of the encrypted username. The function includes a linear combination operator of the password and the encrypted username. The encrypted username is then swapped with the replaced password. The encryption, replacement, and the swapping are iterated for at least two rounds using a different key with each iteration.