Program Verification Using Pre-calculated Checksums

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing techniques for verifying the execution of programs using a white list require significant time due to the need to calculate and verify checksums for multiple programs, leading to inefficiencies in the verification process.

Innovation Solution

An information processing apparatus that estimates related programs and registers their calculation results, allowing for the verification of program execution targets by associating program identifiers with prior calculation results, thereby reducing the time required for checksum calculations and lookups.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If checksums are calculated and verified for multiple programs using a white list, then program verification reliability is improved, but verification time increases significantly

Engineering Contradiction:
Improveprogram verification reliabilityVSAvoidverification time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent pre-calculates and stores checksums of programs in a database before actual verification is needed. This preliminary action allows the verification process to simply retrieve and compare pre-computed checksums rather than calculating them in real-time, significantly reducing verification time while maintaining reliability

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a copy of the verification process by storing checksum information in a database rather than performing actual checksum calculations during verification. This copying approach allows rapid retrieval of verification data without repeating the time-consuming calculation process

Inventive Principle:
Principle #26Copying

2Reliability

If multiple programs are verified using white list lookup, then execution security is improved, but processing speed decreases

Engineering Contradiction:
Improveexecution securityVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent performs the security verification preparation in advance by pre-storing program checksums in a database. During actual execution, the system only needs to retrieve and compare pre-computed values, dramatically increasing processing speed while preserving execution security through the same verification mechanism

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If checksum calculations are performed for all programs, then verification accuracy is improved, but time consumption increases

Engineering Contradiction:
Improveverification accuracyVSAvoidtime consumption
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent calculates and stores checksums in advance for all programs that need verification. This preliminary computation ensures verification accuracy is maintained while the actual verification process becomes a simple data retrieval and comparison operation, eliminating the time consumption associated with real-time checksum calculations

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11281766B2Information processing apparatus, information processing method, and computer program product
Publication Date: 2022.03.22 KK TOSHIBA
  • US11281766B2 patent drawing
  • US11281766B2 patent drawing
  • US11281766B2 patent drawing

AI summary

According to an embodiment, an information processing apparatus includes one or more processors. The one or more processors are configured to: estimate a related program related to a computer program identified with a specific program identifier; register, in a prior calculation result list, a calculation result for the related program and a related identifier for identifying the related program so that the calculation result and the related identifier are associated with each other; acquire the program identifier for identifying the program serving as an execution target; and verify whether the program serving as the execution target is permitted to be executed, based on the acquired program identifier, the calculation result corresponding to the related identifier indicating the acquired program identifier in the prior calculation result list, and a white list.