martijnvanbrummelen / nwipe

nwipe secure disk eraser
GNU General Public License v2.0
797 stars 86 forks source link

Adding tool for PRNG data analysis #627

Open Knogle opened 2 weeks ago

Knogle commented 2 weeks ago

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:

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