Security considerations

What bitsplit is

bitsplit is a file-splitting tool. It separates a file into two parts — a small key and a large block — such that both are required to reconstruct the original.

What bitsplit is not

bitsplit is not encryption. It does not use ciphers, random IVs, or key derivation functions.

Key strength

The key contains 128 bits of data extracted from the file. Brute-forcing 2^128 variants (~3.4 × 10^38) is computationally infeasible with current and foreseeable technology.

For reference:

  • 2^128 ≈ 3.4 × 10^38

  • All computers on Earth doing 10^18 operations/sec would need ~10^13 years

  • The universe is ~1.4 × 10^10 years old

Known properties

Deterministic

The same file always produces the same key and block. There is no randomness in the process.

Block is not encrypted

The block (data.bin) contains the lower bits of the file interpreted as a number. It is not ciphertext — it is a subset of the original data.

Format-aware attacks

If an attacker knows the file format (e.g., JPEG starts with FF D8 FF), they know some of the top bits, reducing the unknown key space. For JPEG (4-byte known header), the key space reduces from 2^128 to ~2^96 — still infeasible to brute-force.

Recommendations

  • Keep key.txt private. Anyone with both the key and block can restore the file.

  • Store key and block separately. The whole point is that neither is useful alone.

  • For sensitive data, consider using bitsplit in combination with real encryption (e.g., AES-256 via gpg or age).

Comparison with encryption

Property

bitsplit

AES-256

Key source

Derived from file

Independent / random

Deterministic

Yes

No (random IV)

Block looks random

No

Yes

Key size

128 bits

256 bits

Speed

Instant

Fast

Dependencies

None

Crypto library