1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
//! # Cryptography Module
//!
//! A collection of classical and educational cryptographic algorithms
//! implemented in pure Rust.
//!
//! # Overview
//!
//! This module includes:
//!
//! - **Caesar Cipher** — Simple shift-based substitution cipher
//! - **Affine Cipher** — Linear transformation using modular arithmetic
//! - **DES** — Block cipher based on the Feistel network
//! - **Stream Ciphers** — Bitwise XOR-based encryption utilities
//!
//! # Use Cases
//!
//! These algorithms are useful for:
//!
//! - Learning cryptographic fundamentals
//! - Understanding modular arithmetic
//! - Exploring block vs stream cipher design
//! - Educational demonstrations
//!
//! # ⚠️ Security Warning
//!
//! Most algorithms in this module are **not secure for production use**.
//!
//! - Caesar and Affine ciphers are easily breakable
//! - DES is considered cryptographically obsolete
//! - Stream ciphers here may lack cryptographic guarantees
//!
//! For production environments, use audited libraries such as:
//!
//! - RustCrypto
//! - ring
//! - libsodium
//!
//! # Mathematical Background
//!
//! ## Caesar Cipher
//!
//! ```text
//! E(x) = (x + k) mod n
//! ```
//!
//! ## Affine Cipher
//!
//! ```text
//! E(x) = (a·x + b) mod n
//! ```
//!
//! where:
//!
//! ```text
//! gcd(a, n) = 1
//! ```
//!
//! ## Stream Cipher
//!
//! ```text
//! C = P ⊕ K
//! ```
//!
//! where:
//!
//! - `P` = plaintext
//! - `K` = keystream
//! - `⊕` = XOR
//!
//! # Modules
//!
//! - [`cesar`] — Caesar cipher implementation
//! - [`affine`] — Affine cipher
//! - [`des`] — Data Encryption Standard implementation
//! - [`streams_ciphers`] — Stream cipher utilities
//!
//! # Design Goals
//!
//! - Educational clarity
//! - Minimal dependencies
//! - Bit-level implementations
//! - Pure Rust
//!
//! # Notes
//!
//! These implementations prioritize understanding over performance
//! and security.