Overview:
The PRNG Analysis Tool is a C++ application designed to analyze binary datasets and identify the underlying pseudorandom number generator (PRNG) used to produce them.
Key Features:
Statistical Analysis: Computes byte frequencies, entropy, mean, and variance of the input data.
PRNG Comparison: Compares the analyzed data against a library of known PRNG samples to determine the most similar generator using Euclidean distance metrics.
Sample Generation Integration: Utilizes the PRNG Benchmark tool to generate high-quality PRNG samples, ensuring accurate and reliable analysis.
User-Friendly Interface: Allows users to specify directories for PRNG samples and provides clear, concise output indicating the most likely PRNG used.
Benefits:
Assists developers and security professionals in verifying the integrity and source of random data.
Enhances the ability to detect and analyze potential weaknesses in PRNG implementations.
Facilitates research and development by providing a robust tool for PRNG evaluation.
Sample output:
Reading PRNG sample files from directory: ../sampes/
Processing sample file: ../sampes/AES-256-CTR__OpenSSL_.bin for PRNG: AES-256-CTR (OpenSSL)
Processing sample file: ../sampes/ISAAC__rand.c_20010626_.bin for PRNG: ISAAC (rand.c 20010626)
Processing sample file: ../sampes/ISAAC-64__isaac64.c_.bin for PRNG: ISAAC-64 (isaac64.c)
Processing sample file: ../sampes/Lagged_Fibonacci_Generator.bin for PRNG: Lagged Fibonacci Generator
Processing sample file: ../sampes/Mersenne_Twister__mt19937ar-cok_.bin for PRNG: Mersenne Twister (mt19937ar-cok)
Processing sample file: ../sampes/XORoshiro-256.bin for PRNG: XORoshiro-256
Reading unknown data file: ../prng_benchmark/XORoshiro-256.bin
Comparing actual data to PRNG samples...
Distance to AES-256-CTR (OpenSSL): 0.000128044
Distance to ISAAC (rand.c 20010626): 0.000133526
Distance to ISAAC-64 (isaac64.c): 0.000129064
Distance to Lagged Fibonacci Generator: 0.249513
Distance to Mersenne Twister (mt19937ar-cok): 0.000140871
Distance to XORoshiro-256: 0
The actual data is most similar to: XORoshiro-256
PRNG Analysis Tool
Overview: The PRNG Analysis Tool is a C++ application designed to analyze binary datasets and identify the underlying pseudorandom number generator (PRNG) used to produce them.
Key Features:
Benefits:
Sample output: