Chosen Plaintext Attack (CPA) - Tấn công bản rõ được chọn
Chosen Plaintext Attack (CPA) là mô hình tấn công mật mã học nơi kẻ tấn công có khả năng:
- Chọn bất kỳ bản rõ (plaintext) nào theo ý muốn
- Nhận được bản mã (ciphertext) tương ứng được mã hóa dưới khóa bí mật mục tiêu
- Mục tiêu: Thu thập thông tin để suy ra khóa bí mật hoặc giải mã các bản mã khác
So sánh các mô hình tấn công mật mã học
| Mô hình tấn công | Khả năng của kẻ tấn công | Mức độ mạnh |
|---|---|---|
| Ciphertext Only Attack (COA) | Chỉ có bản mã | Yếu nhất |
| Known Plaintext Attack (KPA) | Có cặp (plaintext, ciphertext) nhưng không chọn được plaintext | Trung bình |
| Chosen Plaintext Attack (CPA) | Chọn được plaintext tùy ý, nhận ciphertext | Mạnh |
| Chosen Ciphertext Attack (CCA/CCA1) | Chọn ciphertext, nhận plaintext (trước khi thấy challenge) | Mạnh hơn CPA |
| Adaptive CCA (CCA2) | Chọn ciphertext thích ứng, kể cả sau khi thấy challenge | Mạnh nhất |
CPA trong thực tế
- Differential Cryptanalysis (Biham & Shamir, 1990): Phân tích cặp plaintext có chênh lệch cụ thể → suy ra khóa DES/block cipher. Đây là CPA kinh điển.
- Linear Cryptanalysis (Matsui, 1993): Sử dụng mối quan hệ tuyến tính xấp xỉ giữa plaintext, ciphertext, khóa.
- Padding Oracle Attack: Kết hợp CPA với thông tin lỗi padding (chế độ CBC).
CPA Security (IND-CPA) - Định nghĩa an toàn
Một схéma mã hóa được gọi là IND-CPA secure (Indistinguishability under Chosen Plaintext Attack) nếu kẻ tấn công không thể phân biệt được ciphertext của 2 plaintext do mình chọn, ngay cả khi có oracle mã hóa.
- AES-CBC với IV ngẫu nhiên: IND-CPA secure
- AES-CTR với nonce duy nhất: IND-CPA secure
- AES-ECB: KHÔNG IND-CPA secure (cùng plaintext → cùng ciphertext)
- RSA textbook (không padding): KHÔNG IND-CPA secure
- RSA-OAEP: IND-CPA secure
CCA Security (IND-CCA/IND-CCA2)
- IND-CCA1: Kẻ tấn công có giải mã oracle trước khi nhận challenge
- IND-CCA2: Kẻ tấn công có giải mã oracle cả trước và sau khi nhận challenge (trừ challenge ciphertext)
- Mối quan hệ: IND-CCA2 ⇒ IND-CCA1 ⇒ IND-CPA
Liên quan đến AES và Side-Channel
- AES thuật toán bản thân: IND-CPA secure khi dùng đúng mode (CBC, CTR, GCM...)
- Correlation Power Analysis (CPA) ở đây là Side-Channel Attack (phân tích tiêu thụ điện năng/điện từ), KHÔNG PHẢI Chosen Plaintext Attack. Cùng viết tắt CPA nhưng ý nghĩa hoàn toàn khác.
- Side-channel CPA khai thác rò rỉ thông tin vật lý (power, EM, timing) để tìm khóa AES nhúng trong chip.
Tóm tắt
- CPA = Chosen Plaintext Attack = Kẻ tấn công chọn plaintext, lấy ciphertext
- IND-CPA = Tiêu chuẩn an toàn chống CPA (AES-CBC, AES-CTR, RSA-OAEP đạt được)
- CCA mạnh hơn CPA (IND-CCA2 là tiêu chuẩn vàng cho public-key encryption)
- CPA (Side-channel) = Correlation Power Analysis = Tấn công kênh phụ, khác hoàn toàn