การประเมินประสิทธิภาพอัลกอริทึมการเข้ารหัส
อัลกอริทึมที่เปรียบเทียบ
| อัลกอริทึม | ประเภท | บล็อก | กุญแจ | รอบ | สถานะ |
|---|---|---|---|---|---|
| DES | Block (Feistel) | 64 บิต | 56 บิต | 16 | Insecure, Deprecated |
| 3DES | Block (Feistel) | 64 บิต | 112/168 บิต | 48 | Deprecated 2023 |
| AES | Block (SPN) | 128 บิต | 128/192/256 บิต | 10/12/14 | Current Standard |
| Blowfish | Block (Feistel) | 64 บิต | 32-448 บิต | 16 | Legacy |
เกณฑ์การประเมิน (Evaluation Criteria)
- Security (ความปลอดภัย): ความทนทานต่อ Cryptanalysis (Linear, Differential, Algebraic, Side-channel), Key Size, Block Size
- Performance (ประสิทธิภาพ): Speed (Cycles/Byte), Throughput (MB/s), Latency, Memory Footprint
- Implementation (การนำไปใช้): Software (Table-based, Bit-sliced, Vectorized/AVX), Hardware (ASIC, FPGA, AES-NI), Side-channel Resistance
- Flexibility (ความยืดหยุ่น): Variable Key/Block/Rounds, Modes Support (ECB, CBC, CTR, GCM, CCM, OCB)
- Standardization & Adoption: NIST, ISO, IETF, TLS, SSH, IPsec, PCI-DSS, FIPS 140
ผลการเปรียบเทียบสรุป
| เกณฑ์ | DES | 3DES | AES | Blowfish |
|---|---|---|---|---|
| Security | ❌ Broken | ⚠️ Marginal (112-bit) | ✅ Strong (128-256) | ⚠️ 64-bit block |
| Software Speed | Slow | Very Slow (3×DES) | Fast (AES-NI: 0.5-1 cpb) | Fast (No HW accel) |
| Hardware Speed | Fast (Legacy) | Slow | Fastest (Dedicated) | Medium |
| Memory | Low | Low | Low (Tables) / Medium | High (4KB S-boxes) |
| Modes | All | All | All + AEAD (GCM, CCM) | All |
| Standard | Withdrawn | Deprecated | FIPS 197, ISO | None |
ข้อสรุปและแนวทางปฏิบัติ
- AES-256-GCM หรือ ChaCha20-Poly1305 เป็นตัวเลือกหลักสำหรับระบบใหม่
- AES-GCM: เร็วที่สุดเมื่อมี AES-NI, ให้ Authenticated Encryption (Confidentiality + Integrity)
- ChaCha20-Poly1305: เร็วที่สุดเมื่อไม่มี AES-NI (Mobile, Embedded, Old CPU)
- หลีกเลี่ยง: DES, 3DES, RC4, Blowfish (สำหรับข้อมูลใหม่), ECB Mode, Unauthenticated Modes
- ใช้ Library มาตรฐาน: OpenSSL, libsodium, BoringSSL, .NET System.Security.Cryptography, Java Cryptography Architecture