Phân tích mật mã (Cryptanalysis) là giải mã và điều tra các mã, mật mã hoặc văn bản được mã hóa. Cryptanalysis cần quy tắc số học để tìm kiếm sự dễ bị tổn thương của thuật toán và chia nhỏ vào mật mã học hoặc hệ thống an ninh thông tin.
Mục tiêu chính của cryptanalysis là khám phá điểm yếu trong hoặc đánh bại thuật toán mã hóa. Nghiên cứu này có thể được sử dụng bởi các nhà mật mã học để tăng cường và củng cố hoặc khôi phục các thuật toán bị lỗi không thể sửa chữa.
Loại tấn công này khai thác bản chất của thuật toán để có được bản rõ hoặc khóa đang được sử dụng từ tin nhắn được mã hóa.
Cryptanalysis thường yêu cầu kiểm tra trực tiếp hệ thống mật mã đang có, thường là nỗ lực toán học tiên tiến tập trung vào giải mã sử dụng dữ liệu được biết về thiết kế mã hóa.
Chúng có thể liên quan đến tin nhắn được mã hóa chặn (ciphertext), chặn toàn bộ, một phần, có khả năng, hoặc tin nhắn ban đầu liên quan (plaintext), hoặc chúng có thể sử dụng dữ liệu được biết để sử dụng thích ứng trong các lần thử liên tiếp.
Tài nguyên máy tính cần cho cryptanalysis như thời gian, bộ nhớ và thông tin. Cũng có nhiều mức độ thành công khác nhau từ phá vỡ hoàn toàn thuật toán mã hóa đến xác định điểm yếu trong nó.
Có nhiều loại tấn công Cryptanalysis như sau:
- Tấn công chỉ có Ciphertext (Ciphertext-only attacks) - Trong tấn công này, kẻ tấn công chỉ có quyền truy cập vào một số ciphertext. Nó cố gắng khám phá khóa tương ứng và plaintext. Giả định kẻ tấn công hiểu thuật toán và có thể chặn ciphertext.
- Tấn công Known-plaintext (Known-plaintext attack) - Trong tấn công này, người phân tích mật mã hiểu một số cặp plaintext đã được thu thập trước đó, ngoài ciphertext bị chặn mà nó muốn phá vỡ.
- Tấn công Chosen-plaintext (Chosen-plaintext attack) - Tấn công Chosen-plaintext tương tự known-plaintext attack nhưng các cặp plaintext đã được chọn bởi chính kẻ tấn công. Loại tấn công này đơn giản hơn để triển khai nhưng ít có khả năng xảy ra.
- Tấn công Brute force (Brute force attack) - Loại tấn công này cần thuật toán cố gắng đoán một số tập hợp logic có thể của plaintext sau đó được mã hóa và so sánh với cipher ban đầu.
- Tấn công Chosen-ciphertext (Chosen-ciphertext attack) - Tấn công chosen-ciphertext tương tự chosen plaintext. Trong này, kẻ tấn công chọn một số ciphertext và giải mã nó để phát triển ciphertext. Tấn công này áp dụng nếu kẻ tấn công có quyền truy cập vào máy tính của người nhận.
- Tấn công Từ điển (Dictionary attack) - Loại tấn công này cần danh sách từ để tìm khớp của plaintext hoặc khóa. Thường được sử dụng khi cố gắng bẻ khóa mật khẩu được mã hóa.
- Tấn công Bảng Rainbow (Rainbow table attack) - Loại tấn công này so sánh cipher text với các hash đã tính trước để tìm khớp.
- Tấn công Man-in-the-Middle (MITM) - Tấn công xảy ra khi hai bên sử dụng tin nhắn hoặc chia sẻ khóa để giao tiếp qua kênh xảy ra an toàn nhưng thực tế bị xâm phạm. Kẻ tấn công sử dụng tấn công này để chặn tin nhắn đi qua kênh truyền thông. Hàm băm ngăn chặn tấn công MITM.
- Tấn công Chosen-Plaintext Thích ứng (Adaptive Chosen-Plaintext Attack - ACPA) - Tương tự CPA, tấn công này sử dụng plaintext và ciphertext được chọn dựa trên dữ liệu học được từ các lần mã hóa trước.