No description
Find a file
2024-12-29 23:50:20 +02:00
src better names 2024-12-29 23:41:10 +02:00
.gitignore added chop & stack method, optimizations 2024-12-28 23:18:41 +02:00
Cargo.toml added chop & stack method, optimizations 2024-12-28 23:18:41 +02:00
justfile filter autocorrelation 2024-12-29 22:05:54 +02:00
LICENSE Initial commit 2024-12-27 23:26:55 +02:00
README.md update readme 2024-12-29 23:50:20 +02:00

ocelli: Camera-Based TRNG

Ocelli is a Rust application that generates high-quality entropy using a camera feed. The application supports two entropy generation methods (chop_and_tack and pick_and_flip) and optionally applies Van Neumann whitening for enhanced randomness. Generated entropy is saved as a binary file.

Features

  • Entropy Methods:
    • chop_and_tack: Compares pixel values between frames.
    • pick_and_flip: Processes pixel data and flips bits every second frame.
  • Van Neumann Whitening: Optional, enabled via the -w flag.
  • Shannon Entropy Test: Ensures the randomness quality of generated entropy.

Usage

cargo run --release -- <entropy_length_in_bytes> <resolution_width> <resolution_height> [-w]

Example

cargo run --release -- 1 1024 -w

This generates 1024 bytes of whitened entropy using camera 1.

Requirements

  • OpenCV 4.x

Installation

  1. Install Rust: https://www.rust-lang.org/tools/install
  2. Install OpenCV: Follow the official guide.
  3. Clone the repository:
    git clone <repository_url>
    cd ocelli-entropy-generator
    
  4. Run the application:
    cargo run --release -- <arguments>
    

Output

Generated entropy files are saved in the current directory with a name format:

<method>[_whitened]_YYYYMMDD_HHMMSS.bin