CHƯƠNG 3: A HIGH-LEVEL VIEW OF CRYPTOGRAPHY¤
PHẦN 1: THREAT MODEL - MÔ HÌNH ĐE DỌA¤
1. CÁC CÂU HỎI CƠ BẢN¤
Adversary (Kẻ tấn công) biết gì? - Algorithms? (Thuật toán?) - Typical user behavior? (Hành vi người dùng thông thường?)
Adversary có thể truy cập gì? - Communication contents? (Nội dung truyền thông?) - Metadata? (Siêu dữ liệu?)
Adversary có thể làm gì? - Passive or Active? (Thụ động hay chủ động?) - Computing power? (Khả năng tính toán?)
2. KERCKHOFFS' PRINCIPLE (1883)¤
Nguyên tắc: "Phương pháp mã hóa KHÔNG được yêu cầu phải bí mật, và phải có khả năng rơi vào tay kẻ thù mà không gây bất tiện"
Hiện đại hóa: - "Tất cả thuật toán phải được công khai" - Security through obscurity gần như không bao giờ hiệu quả - Bảo mật của hệ thống phụ thuộc vào: - Độ mạnh của thuật toán - Tính bí mật của KEY (KHÔNG phải thuật toán)
Kết luận: Open Design Principle - Tốt hơn là dùng hệ thống mà các chuyên gia đã cố gắng phá (và thất bại)
3. MỤC TIÊU BẢO MẬT¤
Cryptography có thể làm gì? - Confidentiality (Bảo mật): Information-based controls ✓ - Integrity (Toàn vẹn): Information-based controls ✓ - Availability (Sẵn sàng): System-focused goal - KHÔNG THỂ chỉ dùng crypto ✗
PHẦN 2: BASIC ENCRYPTION SCHEME¤
1. CÁC THÀNH PHẦN¤
Plaintext: Thông điệp người gửi muốn gửi
Ciphertext: Dữ liệu được truyền đi
Encryption Function: Hàm mã hóa (dùng Encryption Key)
Decryption Function: Hàm giải mã (dùng Decryption Key)
2. MỤC TIÊU BẢO MẬT¤
Semantic Security: Ciphertext không tiết lộ bất kỳ thông tin nào về plaintext cho người không có decryption key
Non-malleable Security: Ciphertext không thể bị thay đổi một cách có ý nghĩa
3. ĐIỀU GÌ CẦN BÍ MẬT?¤
Decryption Key: PHẢI bí mật (bắt buộc)
Encryption Key: KHÔNG nhất thiết phải bí mật!
Bước ngoặt lịch sử (cuối 60s/đầu 70s): - Time complexity models - NP-completeness → một số hàm dễ tính nhưng khó đảo ngược - Trapdoor functions: Hàm khó tính toán, nhưng dễ dàng với thông tin thêm
PHẦN 3: SYMMETRIC CIPHERS (MÃ HÓA ĐỐI XỨNG)¤
1. ĐỘC ĐIỂM¤
Encryption Key = Decryption Key (hoặc dễ tính từ nhau)
Tên gọi khác: Secret-key ciphers
Ưu điểm: - ✓ RẤT NHANH! (AES-NI: 5-10 Gbps)
Nhược điểm: - ✗ Quản lý khóa khó khăn (key management)
Thuật toán phổ biến: - AES (Advanced Encryption Standard) - khuyên dùng - DES (cũ, không dùng nữa) - Blowfish - RC4 (nên tránh)
2. AES - ADVANCED ENCRYPTION STANDARD¤
Thông số: - Block size: 128 bits - Key sizes: 128, 192, 256 bits
Bảo mật: - 20 năm không có tấn công cryptanalytic thực tế nào thành công - Được phê duyệt cho thông tin mật: - 128-bit keys: SECRET - 192 hoặc 256-bit keys: TOP SECRET
Hiệu suất: - Hiệu quả trong software (làm việc với byte/word units) - CPU có instruction đặc biệt (Intel AES-NI): >10 Gbps trên single core - Hardware đặc biệt: 30+ Gbps
3. BLOCK CIPHER MODES¤
Block Cipher: Mã hóa từng block cố định (VD: AES = 128 bits)
Vấn đề: Làm sao mã hóa nhiều blocks?
A. ELECTRONIC CODEBOOK (ECB) MODE¤
Cách hoạt động: - Cj = E(K, Pj) cho mỗi block j - Pj = D(K, Cj)
Vấn đề: - ✗ KHÔNG che giấu các pattern lặp lại - ✗ KHÔNG AN TOÀN cho tin nhắn dài - ✗ ĐỪNG DÙNG!
Chỉ dùng cho: Messages ngắn hơn 1 block (128 bits cho AES)
B. CIPHER BLOCK CHAINING (CBC) MODE¤
Cách hoạt động: - C1 = E(K, [P1 ⊕ IV]) - Cj = E(K, [Pj ⊕ Cj-1]) với j ≥ 2
Đặc điểm: - ✓ Sử dụng IV (Initialization Vector) ngẫu nhiên - ✓ Randomize block tiếp theo → phá vỡ pattern - ✓ OK cho hầu hết ứng dụng - ✗ KHÔNG thể song song hóa (parallelization)
Breaking assumptions: BEAST attack (2011)
C. COUNTER (CTR) MODE¤
Cách hoạt động: - Counter được khởi tạo và tăng 1 cho mỗi block - Cj = Pj ⊕ E(K, Counter+j)
Đặc điểm: - ✓ Hoàn toàn song song hóa (fully parallelizable) - ✓ Giống như "one-time pad" với pseudo-random pad - ✗ Malleable: Attacker chủ động có thể flip bits tùy ý
Giải pháp cho malleability: Thêm integrity protections
4. PADDING (ĐỆMỐ)¤
Khi nào cần: Plaintext không đủ 1 block đầy
Technique 1: Bit Padding
- Luôn thêm bit '1', sau đó thêm '0' cho đủ block
- VD (8-bit blocks): 10111010 110 → 10111010 11010000
- Ưu điểm: Plaintext có thể là bất kỳ số bits
Technique 2: Byte Count Padding (PKCS#7/PKCS#5)
- Đếm số bytes padding cần (ít nhất 1), gọi là c
- Thêm c bytes, mỗi byte có giá trị c
- VD (32-bit blocks, hex): 42 1a 49 c3 21 → 42 1a 49 c3 21 03 03 03
- Chỉ hoạt động cho padding full bytes
5. ONE-TIME PAD (OTP)¤
Đặc điểm: - ✓ Perfect confidentiality (bảo mật hoàn hảo) - ✗ Quản lý key cực kỳ khó (mammoth key distribution) - ✗ RẤT YẾU về message integrity
Malleable cipher: Active attacker có thể thay đổi ciphertext → thay đổi có thể dự đoán được trong plaintext
Ví dụ: - Alice gửi 'F' (0x46) với key 0xD9 → ciphertext 0x9F - Mallory chặn, XOR với 'F'⊕'A' = 0x07 → 0x98 - Bob nhận 0x98, decrypt với 0xD9 → 0x41 = 'A' - Grade thay đổi từ 'F' thành 'A'!
PHẦN 4: PUBLIC-KEY CRYPTOGRAPHY (MÃ HÓA CÔNG KHAI)¤
1. ĐỘC ĐIỂM¤
Encryption Key ≠ Decryption Key
Tên gọi khác: Asymmetric ciphers
Ưu điểm: - ✓ Quản lý khóa đơn giản hơn (có thể gửi cho người lạ!) - ✓ Giao tiếp với strangers
Nhược điểm: - ✗ CHẬM (1-2 Mbps cho RSA 2048-bit) - ✗ Có thể bị phá bằng "math tricks" - ✗ Cần key lớn hơn
Thuật toán phổ biến: - RSA - ElGamal - ECC (Elliptic Curve Cryptography)
2. MÔ HÌNH CONFIDENTIALITY¤
Public Key (PU): - Công khai - Dùng để ENCRYPT - Bất kỳ ai cũng có thể mã hóa
Private Key (PR): - Bí mật - Dùng để DECRYPT - Chỉ người có PR mới giải mã được
3. MÔ HÌNH INTEGRITY (DIGITAL SIGNATURES)¤
Private Key (PR): - Bí mật - Dùng để SIGN - Chỉ người có PR mới ký được
Public Key (PU): - Công khai - Dùng để VERIFY - Bất kỳ ai cũng có thể xác minh
4. KEYPAIR GENERATION¤
Mathematical/Computational Properties:
-
KPG(R) → (PU, PR) tính toán hiệu quả (polynomial time)
-
Decryption works: D(PR, E(PU, M)) = M
-
PR không thể tính từ PU: Computationally infeasible
Trapdoor Secret: - PR có "thông tin bổ sung" làm cho một hàm của PU dễ tính - Hàm này khó tính nếu không có thông tin đó
Ví dụ RSA: - R cho 2 số nguyên tố lớn - PU là tích của chúng - PR là thứ chỉ tính được nếu biết phân tích thừa số
5. RSA ALGORITHM¤
Key Generation: 1. Chọn 2 số nguyên tố lớn: p, q 2. n = p × q 3. φ(n) = (p-1)(q-1) 4. Chọn e sao cho 1 < e < φ(n) và gcd(e, φ(n)) = 1 5. Tính d sao cho d×e ≡ 1 (mod φ(n)) 6. Public key: (e, n) 7. Private key: (d, n)
Encryption: C = M^e mod n
Decryption: M = C^d mod n
6. THE DISCRETE LOG PROBLEM¤
Định nghĩa: - Với số nguyên tố p, tồn tại primitive root (generator) g - g^1, g^2, ..., g^(p-1) (mod p) là hoán vị của {1, 2, ..., p-1}
Hàm: - fg,p(i) = g^i mod p: Dễ tính (bijective mapping) - dlogg,p(x) = fg,p^(-1)(x): Khó tính (inverse function)
Ứng dụng: Cơ sở toán học cho nhiều thuật toán (DH, DSA, ElGamal)
7. DIFFIE-HELLMAN KEY EXCHANGE (DH)¤
Setup: Chia sẻ công khai p (prime) và g (primitive root)
Alice: - Private key: a (random từ {1, ..., p-1}) - Public key: A = g^a mod p - Gửi A cho Bob - Shared secret: KA = B^a mod p = g^(ab) mod p
Bob: - Private key: b (random từ {1, ..., p-1}) - Public key: B = g^b mod p - Gửi B cho Alice - Shared secret: KB = A^b mod p = g^(ab) mod p
Kết quả: KA = KB = g^(ab) mod p
Bảo mật: - Eve biết g, p, A, B - Để tìm g^(ab), Eve phải giải discrete log problem - a = dlogg,p(A) hoặc b = dlogg,p(B) - Rất khó!
8. PUBLIC-KEY ALGORITHMS COMPARISON¤
Encryption & Key Exchange:¤
| Algorithm | Math Basis | Difficulty | Key Size |
|---|---|---|---|
| RSA | Factoring | Semi-hard | 2048 bits |
| El Gamal | Discrete Log (mod p) | Semi-hard | 2048 bits |
| EC ElGamal | Discrete Log (EC) | Hard | 224 bits |
| Diffie-Hellman | Discrete Log (mod p) | Semi-hard | 2048 bits |
| EC-DHE | Discrete Log (EC) | Hard | 224 bits |
Semi-hard: Best break algorithm > polynomial, < exponential
Hard: Best known break algorithm = exponential time
9. COMPARABLE KEY SIZES (NIST 800-57a)¤
Security Level tương đương:
| Symmetric | RSA/DH (IFC/FFC) | ECC | Security |
|---|---|---|---|
| 80 bits | 1024 bits | 160 bits | Không đủ |
| 112 bits | 2048 bits | 224 bits | OK đến 2030 |
| 128 bits | 3072 bits | 256 bits | Long-term |
| 192 bits | 7680 bits | 384 bits | Top Secret |
| 256 bits | 15360 bits | 521 bits | Maximum |
Lý do: PK dựa trên quan hệ toán học, có thể phá nhanh hơn brute force
10. HYBRID ENCRYPTION¤
Ý tưởng: Kết hợp ưu điểm của cả hai
Cách hoạt động: 1. Tạo ngẫu nhiên session key (symmetric key) 2. Mã hóa session key bằng Public-Key Encryption (receiver's public key) 3. Mã hóa message (có thể rất lớn) bằng Symmetric Cipher (session key) 4. Gửi cả hai: encrypted session key + encrypted message
Ưu điểm: - ✓ Giao tiếp với strangers (key management) - ✓ Nhanh cho message (ngay cả khi huge)
Nhược điểm: - ✗ Cần key lớn (math breaks) - ✗ Phức tạp code hơn (2 algorithms)
PHẦN 5: CRYPTOGRAPHIC HASH FUNCTIONS¤
1. MỤC ĐÍCH¤
Mapping: H: {0,1}* → {0,1}^n (bất kỳ độ dài → độ dài cố định)
Không cần key (keyless)
Sử dụng: - Integrity protection khi không cần secret/key - Recompute để verify
2. CÁC TÍNH CHẤT QUAN TRỌNG¤
A. ONE-WAY PROPERTY (Preimage Resistance)¤
Cho h, không thể tìm x sao cho H(x) = h
B. WEAK COLLISION RESISTANCE (Second Preimage Resistance)¤
Cho x, không thể tìm y ≠ x sao cho H(x) = H(y)
C. STRONG COLLISION RESISTANCE (Collision Resistance)¤
Không thể tìm bất kỳ x và y sao cho x ≠ y và H(x) = H(y)
3. SHA FAMILY¤
Lịch sử: - SHA-0 (1993) - NIST - SHA-1 (1995) - 160 bits - ĐỪNG DÙNG - SHA-2 (2002) - 256, 384, 512 bits - SHA-224 (2008) - SHA-512/224, SHA-512/256 (2012) - SHA-3 (2015) - 224, 256, 384, 512 bits
Khuyến nghị: - ✗ ĐỪNG dùng MD5 (128 bits - cũ) - ✗ ĐỪNG dùng SHA-1 (160 bits - đã bị phá) - ✓ Dùng SHA-256 trở lên
4. VẤN ĐỀ VỚI HASH FUNCTIONS¤
Scenario: Gửi message + hash
Vấn đề: - Attacker có thể thay đổi message - Tính hash mới (vì hash function công khai) - Thay thế cả message và hash
Giải pháp: Cần secret key → MAC
PHẦN 6: MESSAGE AUTHENTICATION CODES (MACs)¤
1. MỤC ĐÍCH¤
Integrity protection khi cả hai bên chia sẻ secret key
Function: MAC(K, M) - K: secret key - M: message
Receiver: Biết K, tính lại và kiểm tra
2. CẢNH BÁO QUAN TRỌNG¤
ĐỪNG làm: H(K || M) - ✗ Dễ bị extension attacks - ✗ KHÔNG an toàn với tất cả hash functions phổ biến
NÊN làm: - ✓ HMAC (phổ biến nhất) - ✓ CMAC - ✓ Encryption+MAC combo (GCM)
3. SO SÁNH: SYMMETRIC VS PUBLIC-KEY¤
| Đặc điểm | Symmetric Cipher | Public-Key Crypto |
|---|---|---|
| Tốc độ | ✓ Nhanh!!! (1000x) | ✗ Chậm (100-1000x) |
| Bảo mật | ✓ Cần brute force | ✗ Math breaks (cần key lớn) |
| Key Mgmt | ✗ Phải có shared secret | ✓ Giao tiếp với strangers |
PHẦN 7: DIGITAL SIGNATURES¤
1. TERMINOLOGY¤
Sign operation: Dùng Private Key (chỉ 1 người ký được)
Verify operation: Dùng Public Key (mọi người verify được)
2. ƯU NHƯỢC ĐIỂM¤
Ưu điểm: - ✓ Key management dễ hơn/mạnh hơn MACs - ✓ Non-repudiation (không thể chối bỏ)
Nhược điểm: - ✗ Cần key lớn hơn MACs - ✗ CHẬM hơn MACs nhiều
3. HASH THEN SIGN¤
Lý do: Sign/verify operations rất chậm
Giải pháp: 1. Hash message: h = H(M) 2. Sign hash: sig = Sign(PR, h) 3. Verify: Verify(PU, h, sig)
Bảo mật: Có! Vì collision resistance
4. DIGITAL SIGNATURE ALGORITHMS¤
| Algorithm | Math Basis | Difficulty | Key Size | Sig Size |
|---|---|---|---|---|
| RSA | Factoring | Semi-hard | 2048 bits | 2048 bits |
| DSA | Discrete Log (mod p) | Semi-hard | 2048 bits | 448 bits |
| EC-DSA | Discrete Log (EC) | Hard | 224 bits | 448 bits |
DSA: Developed 1991, ban đầu thiết kế không dùng cho encryption
PHẦN 8: DIGITAL CERTIFICATES¤
1. VẤN ĐỀ¤
Signature verification nói gì? "Chỉ người có private key tương ứng mới tạo được signature này"
Bạn muốn biết gì? "Alice đã ký cái này"
Vấn đề: Làm sao chắc chắn public key thực sự thuộc về Alice?
2. GIẢI PHÁP: CERTIFICATES¤
Certificate Authority (CA) - Trusted Third Party: - Xác minh identity và key - Ký certificate
Certificate bao gồm: - Identity: Joe Smith - Public key: 9f66159c13e... - Expires: March 31, 2020 - Signature: c9f9abffae98b... (của CA)
Cách hoạt động: - Binds identity với public key trong thời gian giới hạn - Signature của CA là "lời cam đoan" cho binding này
Vấn đề chicken-egg: - Cần CA's public key để verify - Cải thiện: Vài chục CAs thay vì hàng triệu websites
PHẦN 9: TÓM TẮT CÁC CHỨC NĂNG CRYPTOGRAPHIC¤
| Chức năng | Lợi ích | Ví dụ | Mục đích |
|---|---|---|---|
| Symmetric Encryption | Nhanh | AES | Confidentiality (shared secret) |
| Public-key Encryption | Linh hoạt | RSA, ECC | Confidentiality (keypair) |
| Hash Functions | Nhanh | SHA-256 | Integrity (no secret) |
| MACs | Nhanh | HMAC | Integrity (shared secret) |
| Digital Signatures | Linh hoạt | RSA, DSA, EC-DSA | Integrity (keypair) |
| Certificates | Tin cậy identity | X.509 | Public key assurance (TTP) |
NGÂN HÀNG CÂU HỎI CHƯƠNG 3¤
PHẦN 1: THREAT MODEL & PRINCIPLES¤
Câu 1: Kerckhoffs' Principle (1883) nói gì?
A. Thuật toán phải được giữ bí mật
B. Phương pháp mã hóa KHÔNG cần bí mật, bảo mật phụ thuộc vào key ✓
C. Chỉ sử dụng mã hóa đối xứng
D. Password phải dài nhất có thể
Câu 2: "Security through obscurity" nghĩa là gì?
A. Mã hóa mạnh
B. Giữ bí mật thiết kế/thuật toán để bảo mật (gần như KHÔNG BAO GIỜ hiệu quả) ✓
C. Sử dụng nhiều lớp bảo mật
D. Mã hóa nhiều lần
Câu 3: Bảo mật của cryptosystem phụ thuộc vào?
A. Chỉ độ dài key
B. Chỉ thuật toán bí mật
C. Độ mạnh của thuật toán VÀ tính bí mật của key ✓
D. Số lần mã hóa
Câu 4: Cryptography có thể đảm bảo yếu tố nào của CIA Triad?
A. Chỉ Confidentiality
B. Chỉ Integrity
C. Confidentiality và Integrity (information-based controls) ✓
D. Cả ba: Confidentiality, Integrity, Availability
Câu 5: Tại sao Cryptography KHÔNG thể đảm bảo Availability?
A. Quá phức tạp
B. Quá chậm
C. Availability là system-focused goal, không thể chỉ transform information ✓
D. Cần phần cứng đặc biệt
Câu 6: Trapdoor function là gì?
A. Hàm luôn dễ tính toán
B. Hàm khó tính toán nhưng trở nên dễ dàng với thông tin bổ sung (extra info) ✓
C. Hàm không thể tính toán
D. Hàm chỉ dùng trong hardware
PHẦN 2: BASIC ENCRYPTION¤
Câu 7: Plaintext là gì?
A. Dữ liệu được truyền đi
B. Thông điệp người gửi muốn gửi (trước khi mã hóa) ✓
C. Kết quả sau giải mã
D. Key mã hóa
Câu 8: Ciphertext là gì?
A. Thông điệp gốc
B. Dữ liệu được truyền đi (sau khi mã hóa) ✓
C. Key giải mã
D. Thuật toán mã hóa
Câu 9: Semantic Security nghĩa là gì?
A. Ciphertext dễ đọc
B. Ciphertext không tiết lộ thông tin về plaintext cho người không có key ✓
C. Plaintext luôn dài
D. Key luôn ngắn
Câu 10: Non-malleable Security nghĩa là gì?
A. Ciphertext không thể giải mã
B. Ciphertext không thể bị thay đổi một cách có ý nghĩa ✓
C. Plaintext không thể thay đổi
D. Key không thể đoán
Câu 11: Key nào BẮT BUỘC phải bí mật?
A. Encryption Key
B. Decryption Key ✓
C. Cả hai
D. Không key nào
Câu 12: Encryption Key có nhất thiết phải bí mật không?
A. Luôn phải bí mật
B. KHÔNG nhất thiết (breakthrough của early computer science) ✓
C. Chỉ trong symmetric cipher
D. Chỉ trong public-key cipher
PHẦN 3: SYMMETRIC CIPHERS¤
Câu 13: Đặc điểm chính của Symmetric Cipher?
A. Encryption key khác Decryption key
B. Encryption key = Decryption key (hoặc dễ tính từ nhau) ✓
C. Không cần key
D. Chỉ dùng cho hash
Câu 14: Ưu điểm CHÍNH của Symmetric Cipher?
A. Quản lý key dễ
B. RẤT NHANH (AES-NI: 5-10 Gbps) ✓
C. Giao tiếp với strangers dễ
D. Không cần shared secret
Câu 15: Nhược điểm CHÍNH của Symmetric Cipher?
A. Quá chậm
B. Không an toàn
C. Quản lý khóa khó khăn (key management) ✓
D. Không mã hóa được file lớn
Câu 16: AES có block size bao nhiêu?
A. 64 bits
B. 128 bits ✓
C. 256 bits
D. 512 bits
Câu 17: AES hỗ trợ key sizes nào?
A. Chỉ 128 bits
B. Chỉ 256 bits
C. 128, 192, 256 bits ✓
D. 64, 128, 256 bits
Câu 18: AES 128-bit keys được phê duyệt cho mức độ nào?
A. TOP SECRET
B. SECRET ✓
C. CONFIDENTIAL
D. PUBLIC
Câu 19: AES 256-bit keys được phê duyệt cho mức độ nào?
A. SECRET
B. TOP SECRET ✓
C. Chỉ cho công ty
D. Không được phê duyệt
Câu 20: Tốc độ của AES với Intel AES-NI instructions?
A. 1 Gbps
B. 5 Gbps C. >10 Gbps trên single core ✓
D. 100 Mbps
PHẦN 4: BLOCK CIPHER MODES¤
Câu 21: Block Cipher là gì?
A. Mã hóa từng byte
B. Mã hóa từng block cố định (VD: AES = 128 bits) ✓
C. Mã hóa cả file
D. Không mã hóa
Câu 22: ECB Mode hoạt động như thế nào?
A. XOR với block trước
B. Cj = E(K, Pj) - mã hóa độc lập từng block ✓
C. Sử dụng counter
D. Sử dụng IV
Câu 23: Vấn đề CHÍNH của ECB Mode?
A. Quá chậm
B. KHÔNG che giấu pattern lặp lại ✓
C. Cần IV
D. Không song song được
Câu 24: ECB Mode nên dùng khi nào?
A. Mã hóa file lớn
B. Chỉ cho messages ngắn hơn 1 block (128 bits cho AES) ✓
C. Mã hóa video
D. Luôn luôn sử dụng
Câu 25: CBC Mode sử dụng gì để randomize?
A. Counter
B. IV (Initialization Vector) ngẫu nhiên ✓
C. Key mới mỗi lần
D. Hash function
Câu 26: Công thức CBC Mode cho block đầu tiên?
A. C1 = E(K, P1)
B. C1 = E(K, [P1 ⊕ IV]) ✓
C. C1 = P1 ⊕ IV
D. C1 = E(K, P1) ⊕ IV
Câu 27: Công thức CBC Mode cho block thứ j (j≥2)?
A. Cj = E(K, Pj)
B. Cj = E(K, Pj) ⊕ Cj-1
C. Cj = E(K, [Pj ⊕ Cj-1]) ✓
D. Cj = Pj ⊕ Cj-1
Câu 28: Nhược điểm của CBC Mode?
A. Không an toàn
B. Quá chậm
C. KHÔNG thể song song hóa (can't parallelize) ✓
D. Cần quá nhiều memory
Câu 29: BEAST attack (2011) tấn công vào mode nào?
A. ECB
B. CBC ✓
C. CTR
D. OFB
Câu 30: CTR Mode hoạt động như thế nào?
A. XOR với block trước
B. Sử dụng IV
C. Counter tăng 1 cho mỗi block, Cj = Pj ⊕ E(K, Counter+j) ✓
D. Mã hóa độc lập
Câu 31: Ưu điểm CHÍNH của CTR Mode?
A. Đơn giản nhất
B. Hoàn toàn song song hóa (fully parallelizable) ✓
C. An toàn nhất
D. Không cần IV
Câu 32: CTR Mode có thể xem như?
A. ECB mode cải tiến
B. One-time pad với pseudo-random pad ✓
C. CBC mode nhanh hơn
D. Hash function
Câu 33: Nhược điểm của CTR Mode?
A. Quá chậm
B. Không song song
C. Malleable: Attacker có thể flip bits tùy ý ✓
D. Cần IV dài
Câu 34: Giải pháp cho malleability của CTR Mode?
A. Dùng key dài hơn
B. Mã hóa nhiều lần
C. Thêm integrity protections ✓
D. Chuyển sang ECB
PHẦN 5: PADDING¤
Câu 35: Khi nào cần padding?
A. File quá lớn
B. Plaintext không đủ 1 block đầy ✓
C. Key quá ngắn
D. Luôn luôn cần
Câu 36: Bit Padding hoạt động như thế nào?
A. Thêm toàn số 0
B. Thêm bit '1', sau đó thêm '0' cho đủ block ✓
C. Thêm toàn số 1
D. Không thêm gì
Câu 37: Ưu điểm của Bit Padding?
A. Nhanh nhất
B. Plaintext có thể là bất kỳ số bits ✓
C. Đơn giản nhất
D. An toàn nhất
Câu 38: PKCS#7 Padding hoạt động như thế nào?
A. Thêm bit '1' và '0'
B. Đếm số bytes padding cần ©, thêm c bytes mỗi byte có giá trị c ✓
C. Thêm random bytes
D. Không thêm gì
Câu 39: PKCS#7 Padding hoạt động với đơn vị nào?
A. Bits
B. Full bytes only ✓
C. Words
D. Blocks
Câu 40: Ví dụ PKCS#7: 42 1a 49 c3 21 (32-bit blocks) padding thành?
A. 42 1a 49 c3 21 00 00 00
B. 42 1a 49 c3 21 01 01 01
C. 42 1a 49 c3 21 03 03 03 ✓
D. 42 1a 49 c3 21 ff ff ff
PHẦN 6: ONE-TIME PAD¤
Câu 41: One-Time Pad có tính chất gì về confidentiality?
A. Yếu
B. Trung bình
C. Perfect confidentiality (bảo mật hoàn hảo) ✓
D. Không có
Câu 42: Nhược điểm CHÍNH của One-Time Pad?
A. Quá chậm
B. Quản lý key cực kỳ khó (mammoth key distribution) ✓
C. Không an toàn
D. Phức tạp
Câu 43: One-Time Pad yếu về tính chất nào?
A. Confidentiality
B. Message integrity ✓
C. Availability
D. Authentication
Câu 44: Malleable cipher nghĩa là gì?
A. Cipher linh hoạt
B. Attacker có thể thay đổi ciphertext tạo ra thay đổi dự đoán được trong plaintext ✓
C. Cipher dễ sử dụng
D. Cipher mạnh
Câu 45: Trong ví dụ OTP, grade 'F' (0x46) với key 0xD9 cho ciphertext?
A. 0x46
B. 0xD9
C. 0x9F ✓
D. 0xFF
PHẦN 7: PUBLIC-KEY CRYPTOGRAPHY¤
Câu 46: Đặc điểm chính của Public-Key Cryptography?
A. Encryption key = Decryption key
B. Encryption key ≠ Decryption key ✓
C. Không cần key
D. Chỉ dùng hash
Câu 47: Ưu điểm CHÍNH của Public-Key Cryptography?
A. Rất nhanh
B. Quản lý khóa đơn giản hơn, giao tiếp với strangers ✓
C. Key ngắn
D. Đơn giản
Câu 48: Nhược điểm CHÍNH của Public-Key Cryptography?
A. Không an toàn
B. CHẬM (100-1000 lần so với symmetric) ✓
C. Phức tạp
D. Cần shared secret
Câu 49: Tốc độ của RSA 2048-bit khoảng?
A. 10 Gbps
B. 100 Mbps
C. 1-2 Mbps ✓
D. 10 Mbps
Câu 50: Trong Public-Key Encryption, ai có thể mã hóa?
A. Chỉ người có private key
B. Bất kỳ ai (dùng public key) ✓
C. Chỉ admin
D. Chỉ sender
Câu 51: Trong Public-Key Encryption, ai có thể giải mã?
A. Bất kỳ ai
B. Chỉ người có private key ✓
C. Chỉ sender
D. Mọi người có public key
Câu 52: Trong Digital Signature, ai có thể ký (sign)?
A. Bất kỳ ai
B. Chỉ người có private key ✓
C. Mọi người có public key
D. Chỉ receiver
Câu 53: Trong Digital Signature, ai có thể verify?
A. Chỉ người có private key
B. Bất kỳ ai (dùng public key) ✓
C. Chỉ admin
D. Chỉ CA
Câu 54: D(PR, E(PU, M)) = M chứng minh điều gì?
A. Key generation works
B. Decryption works ✓
C. Encryption không cần
D. Key có thể công khai
Câu 55: Tính toán PR từ PU là?
A. Dễ dàng
B. Polynomial time
C. Computationally infeasible (không khả thi) ✓
D. Không thể
PHẦN 8: RSA & DISCRETE LOG¤
Câu 56: RSA dựa trên vấn đề toán học nào?
A. Discrete Logarithm
B. Factoring (phân tích thừa số) ✓
C. Elliptic Curve
D. Polynomial solving
Câu 57: Trong RSA, Public Key là gì?
A. Hai số nguyên tố p, q
B. Tích của hai số nguyên tố (n = p × q) ✓
C. φ(n)
D. Private key
Câu 58: Discrete Log Problem: fg,p(i) = g^i mod p là?
A. Khó tính
B. Dễ tính (easy to compute) ✓
C. Không thể tính
D. Cần private key
Câu 59: Discrete Log Problem: dlogg,p(x) = fg,p^-1(x) là?
A. Dễ tính
B. Khó tính (hard to compute) ✓
C. Polynomial time
D. Không thể
Câu 60: Primitive root (generator) g của prime p thỏa mãn?
A. g < p
B. g^p = 1 mod p
C. g^1, g^2, ..., g^(p-1) mod p là hoán vị của {1,...,p-1} ✓
D. g là số nguyên tố
ĐÁP ÁN NHANH (60 câu đầu)¤
1.B 2.B 3.C 4.C 5.C 6.B 7.B 8.B 9.B 10.B 11.B 12.B 13.B 14.B 15.C 16.B 17.C 18.B 19.B 20.C 21.B 22.B 23.B 24.B 25.B 26.B 27.C 28.C 29.B 30.C 31.B 32.B 33.C 34.C 35.B 36.B 37.B 38.B 39.B 40.C 41.C 42.B 43.B 44.B 45.C 46.B 47.B 48.B 49.C 50.B 51.B 52.B 53.B 54.B 55.C 56.B 57.B 58.B 59.B 60.C
(Tiếp tục phần 2...)
NGÂN HÀNG CÂU HỎI CHƯƠNG 3 - PHẦN 2¤
PHẦN 9: DIFFIE-HELLMAN KEY EXCHANGE¤
Câu 61: Diffie-Hellman key exchange được dùng để làm gì?
A. Mã hóa message
B. Tạo shared secret key giữa hai bên qua kênh không an toàn ✓
C. Ký digital signature
D. Hash message
Câu 62: Trong DH, Alice tính public key A như thế nào?
A. A = a mod p
B. A = g^a mod p ✓
C. A = g + a mod p
D. A = a × g mod p
Câu 63: Trong DH, Bob tính public key B như thế nào?
A. B = b mod p
B. B = g + b mod p
C. B = g^b mod p ✓
D. B = b × g mod p
Câu 64: Trong DH, Alice tính shared secret như thế nào?
A. KA = A^b mod p
B. KA = g^a mod p
C. KA = B^a mod p = g^(ab) mod p ✓
D. KA = (A + B) mod p
Câu 65: Trong DH, Bob tính shared secret như thế nào?
A. KB = B^a mod p
B. KB = A^b mod p = g^(ab) mod p ✓
C. KB = g^b mod p
D. KB = (A × B) mod p
Câu 66: Kết quả của DH key exchange?
A. KA ≠ KB
B. KA = KB = g^(ab) mod p ✓
C. KA và KB không liên quan
D. KA = a, KB = b
Câu 67: Eve biết g, p, A, B. Để tìm g^(ab), Eve phải làm gì?
A. Tính A × B
B. Giải discrete logarithm problem: a = dlog_g,p(A) hoặc b = dlog_g,p(B) ✓
C. Tính A + B
D. Dễ dàng tính được
Câu 68: Vấn đề toán học bảo vệ Diffie-Hellman là?
A. Factoring
B. Discrete Logarithm Problem ✓
C. Elliptic Curve
D. Polynomial solving
Câu 69: Tham số nào trong DH là public (công khai)?
A. Chỉ g
B. Chỉ p
C. g, p, A, B đều public ✓
D. Tất cả đều secret
Câu 70: Tham số nào trong DH là private (bí mật)?
A. g và p
B. A và B
C. a (của Alice) và b (của Bob) ✓
D. Không có gì bí mật
PHẦN 10: PUBLIC-KEY ALGORITHMS COMPARISON¤
Câu 71: RSA dựa trên vấn đề toán học gì và có độ khó như thế nào?
A. Discrete Log, Hard
B. Factoring, Semi-hard ✓
C. Elliptic Curve, Hard
D. Factoring, Easy
Câu 72: ElGamal dựa trên vấn đề toán học gì?
A. Factoring
B. Discrete Log (mod p) ✓
C. Elliptic Curve
D. Polynomial
Câu 73: EC ElGamal dựa trên vấn đề gì và có độ khó?
A. Discrete Log (mod p), Semi-hard
B. Factoring, Hard
C. Discrete Log (Elliptic Curve), Hard ✓
D. Factoring, Semi-hard
Câu 74: "Semi-hard" trong break difficulty nghĩa là?
A. Dễ phá
B. Best break algorithm > polynomial, < exponential ✓
C. Exponential time
D. Polynomial time
Câu 75: "Hard" trong break difficulty nghĩa là?
A. Polynomial time
B. Semi-hard
C. Best known break algorithm = exponential time ✓
D. Không thể phá
Câu 76: Typical key size cho RSA là bao nhiêu?
A. 512 bits
B. 1024 bits
C. 2048 bits ✓
D. 4096 bits
Câu 77: Typical key size cho EC ElGamal là bao nhiêu?
A. 128 bits
B. 224 bits ✓
C. 2048 bits
D. 4096 bits
Câu 78: So sánh key size: RSA 2048 bits tương đương bảo mật với ECC bao nhiêu bits?
A. 2048 bits
B. 1024 bits
C. 224 bits ✓
D. 128 bits
Câu 79: Symmetric 128 bits tương đương bảo mật với RSA/DH bao nhiêu bits?
A. 128 bits
B. 1024 bits
C. 3072 bits ✓
D. 2048 bits
Câu 80: Symmetric 128 bits tương đương bảo mật với ECC bao nhiêu bits?
A. 128 bits
B. 224 bits
C. 256 bits ✓
D. 512 bits
PHẦN 11: HYBRID ENCRYPTION¤
Câu 81: Hybrid Encryption kết hợp điều gì?
A. Hai symmetric ciphers
B. Hai public-key ciphers
C. Symmetric cipher VÀ Public-key cipher ✓
D. Hash và MAC
Câu 82: Trong Hybrid Encryption, session key được mã hóa bằng?
A. Symmetric cipher
B. Public-key encryption (receiver's public key) ✓
C. Hash function
D. MAC
Câu 83: Trong Hybrid Encryption, message được mã hóa bằng?
A. Public-key encryption
B. Symmetric cipher (session key) ✓
C. Hash function
D. Digital signature
Câu 84: Tại sao Hybrid Encryption mã hóa message bằng symmetric cipher?
A. An toàn hơn
B. Nhanh hơn, ngay cả khi message rất lớn ✓
C. Đơn giản hơn
D. Key ngắn hơn
Câu 85: Tại sao Hybrid Encryption mã hóa session key bằng public-key?
A. Nhanh hơn
B. Không cần shared secret trước, giao tiếp với strangers ✓
C. An toàn hơn
D. Key ngắn hơn
Câu 86: Nhược điểm của Hybrid Encryption?
A. Không an toàn
B. Quá chậm
C. Phức tạp code hơn (sử dụng 2 algorithms) ✓
D. Cần shared secret
PHẦN 12: CRYPTOGRAPHIC HASH FUNCTIONS¤
Câu 87: Hash function mapping từ đâu đến đâu?
A. Fixed-length → Fixed-length
B. Arbitrary length {0,1}* → Fixed-length {0,1}^n ✓
C. Fixed-length → Arbitrary length
D. Không mapping
Câu 88: Hash function có cần key không?
A. Luôn cần key
B. Không cần key (keyless) ✓
C. Tùy thuộc algorithm
D. Chỉ cần cho SHA-256
Câu 89: Cách verify với hash function?
A. Dùng private key
B. Dùng public key
C. Recompute hash và so sánh ✓
D. Dùng CA
Câu 90: One-way property (Preimage resistance) nghĩa là?
A. H(x) dễ tính
B. Cho h, không thể tìm x sao cho H(x) = h ✓
C. Tìm collision dễ
D. Hash ngắn
Câu 91: Weak Collision Resistance (Second Preimage Resistance) nghĩa là?
A. Cho h, tìm x sao cho H(x) = h
B. Cho x, không thể tìm y ≠ x sao cho H(x) = H(y) ✓
C. Tìm bất kỳ collision nào
D. H(x) khó tính
Câu 92: Strong Collision Resistance nghĩa là?
A. Cho x, tìm y khác x
B. H(x) phải dài
C. Không thể tìm BẤT KỲ x và y sao cho x ≠ y và H(x) = H(y) ✓
D. Phải dùng key dài
Câu 93: SHA-0 được phát triển năm nào?
A. 1980
B. 1990
C. 1993 ✓
D. 2000
Câu 94: SHA-1 có output bao nhiêu bits?
A. 128 bits
B. 160 bits ✓
C. 256 bits
D. 512 bits
Câu 95: SHA-2 hỗ trợ output sizes nào?
A. Chỉ 256 bits
B. 128, 256 bits
C. 256, 384, 512 bits (và SHA-224, SHA-512/224, SHA-512/256) ✓
D. Chỉ 512 bits
Câu 96: SHA-3 được phát triển năm nào?
A. 2002
B. 2010
C. 2015 ✓
D. 2020
Câu 97: MD5 có output bao nhiêu bits?
A. 64 bits
B. 128 bits ✓
C. 256 bits
D. 512 bits
Câu 98: Hash functions nào KHÔNG NÊN dùng?
A. SHA-256
B. SHA-3
C. MD5 và SHA-1 ✓
D. SHA-512
Câu 99: Khuyến nghị hash function hiện tại?
A. MD5
B. SHA-1
C. SHA-256 trở lên ✓
D. SHA-0
Câu 100: Success của cryptanalytic attack được đo bằng?
A. Số lần thử
B. Nhanh hơn brute force bao nhiêu ✓
C. Độ dài key
D. Thời gian chạy
PHẦN 13: MESSAGE AUTHENTICATION CODES (MACs)¤
Câu 101: MAC viết tắt của gì?
A. Media Access Control
B. Message Authentication Code ✓
C. Maximum Allowed Cipher
D. Manual Authentication Check
Câu 102: MAC function có bao nhiêu parameters?
A. 1 (chỉ message)
B. 2 (key và message): MAC(K, M) ✓
C. 3 (key, IV, message)
D. Không có parameter
Câu 103: MAC được dùng khi nào?
A. Không cần secret
B. Cả hai bên chia sẻ secret key ✓
C. Chỉ một bên có secret
D. Public key
Câu 104: Cách verify MAC?
A. Dùng public key
B. Dùng CA
C. Receiver biết K, recompute và so sánh ✓
D. Không thể verify
Câu 105: Tại sao KHÔNG NÊN tính MAC bằng H(K || M)?
A. Quá chậm
B. Key dài
C. Dễ bị extension attacks ✓
D. Không an toàn với SHA-256
Câu 106: Nên dùng gì để tính MAC?
A. H(K || M)
B. H(M || K)
C. HMAC, CMAC, hoặc GCM ✓
D. Chỉ hash function
Câu 107: HMAC là gì?
A. Hash MAC
B. Hash-based Message Authentication Code (phổ biến nhất) ✓
C. High MAC
D. Hybrid MAC
Câu 108: Vấn đề với hash function khi dùng cho integrity?
A. Quá chậm
B. Hash dài
C. Attacker có thể thay message và tính hash mới (vì hash function công khai) ✓
D. Không tính được
PHẦN 14: DIGITAL SIGNATURES¤
Câu 109: Digital Signature khác MAC như thế nào về key?
A. Giống nhau
B. Digital Signature dùng keypair (private/public), MAC dùng shared secret ✓
C. MAC không cần key
D. Digital Signature không cần key
Câu 110: Sign operation dùng key nào?
A. Public key
B. Private key ✓
C. Shared secret
D. Session key
Câu 111: Verify operation dùng key nào?
A. Private key
B. Public key ✓
C. Shared secret
D. Session key
Câu 112: Ai có thể sign message?
A. Bất kỳ ai
B. Chỉ người có private key ✓
C. Mọi người có public key
D. Chỉ CA
Câu 113: Ai có thể verify signature?
A. Chỉ người có private key
B. Chỉ sender
C. Bất kỳ ai có public key ✓
D. Chỉ CA
Câu 114: Ưu điểm của Digital Signature so với MAC?
A. Nhanh hơn
B. Key ngắn hơn
C. Key management dễ hơn, non-repudiation (không thể chối bỏ) ✓
D. Đơn giản hơn
Câu 115: Nhược điểm của Digital Signature so với MAC?
A. Không an toàn
B. Phức tạp hơn
C. Cần key lớn hơn VÀ CHẬM hơn nhiều ✓
D. Không verify được
Câu 116: Tại sao Digital Signature "hash then sign"?
A. An toàn hơn
B. Sign/verify operations rất chậm, không chạy toàn bộ message ✓
C. Hash ngắn hơn
D. Bắt buộc
Câu 117: Quy trình "hash then sign"?
A. Sign(M), sau đó hash
B. h = H(M), sau đó sig = Sign(PR, h) ✓
C. Chỉ hash, không sign
D. Chỉ sign, không hash
Câu 118: "Hash then sign" có an toàn không?
A. Không
B. Tùy trường hợp
C. CÓ! Vì collision resistance ✓
D. Chỉ với SHA-256
Câu 119: RSA signature size với 2048-bit key?
A. 256 bits
B. 1024 bits
C. 2048 bits ✓
D. 4096 bits
Câu 120: DSA signature size với 2048-bit key?
A. 224 bits
B. 448 bits ✓
C. 2048 bits
D. 4096 bits
PHẦN 15: DIGITAL CERTIFICATES¤
Câu 121: Vấn đề với Digital Signature verification?
A. Quá chậm
B. Không verify được
C. Không biết chắc public key có thực sự thuộc về người được claim không ✓
D. Key quá dài
Câu 122: CA viết tắt của gì?
A. Cipher Algorithm
B. Certificate Authority ✓
C. Cryptographic Authentication
D. Central Admin
Câu 123: Vai trò của CA?
A. Mã hóa message
B. Xác minh identity và key, ký certificate ✓
C. Tạo key
D. Gửi message
Câu 124: Certificate bao gồm những gì?
A. Chỉ public key
B. Chỉ identity
C. Identity, Public key, Expiration date, CA's signature ✓
D. Chỉ signature
Câu 125: Certificate binds (liên kết) gì với gì?
A. Message với sender
B. Identity với public key ✓
C. Private key với public key
D. CA với user
Câu 126: Certificate có thời hạn không?
A. Không, vĩnh viễn
B. Có, có expiration date ✓
C. Tùy thuộc loại
D. Chỉ 1 năm
Câu 127: CA's signature trên certificate là gì?
A. Chữ ký tay
B. "Lời cam đoan" của TTP vouching cho binding identity-key ✓
C. Mã hóa certificate
D. Hash của certificate
Câu 128: Vấn đề "chicken-egg" với certificates?
A. Không có vấn đề
B. Cần CA's public key để verify certificate ✓
C. Certificate quá lớn
D. Quá nhiều CA
Câu 129: Giải pháp cho vấn đề "chicken-egg"?
A. Không có giải pháp
B. Dùng password
C. Vài chục CAs thay vì hàng triệu websites - cải thiện tình hình ✓
D. Không cần verify
Câu 130: TTP trong context của certificates nghĩa là gì?
A. Triple Time Protocol
B. Trusted Third Party ✓
C. Top Tier Protection
D. Technical Test Protocol
PHẦN 16: SO SÁNH VÀ TỔNG HỢP¤
Câu 131: Symmetric cipher nhanh hơn Public-key cipher bao nhiêu lần?
A. 10 lần
B. 50 lần
C. 100-1000 lần ✓
D. 10000 lần
Câu 132: Attacks trên symmetric ciphers chủ yếu dùng?
A. Math tricks
B. Brute force ✓
C. Social engineering
D. Phishing
Câu 133: Attacks trên public-key ciphers chủ yếu dùng?
A. Chỉ brute force
B. Math tricks (factoring, discrete log) ✓
C. Social engineering
D. Không thể attack
Câu 134: Complexity của brute force với k-bit key?
A. 2k trials
B. k^2 trials
C. Trung bình ½ × 2^k trials ✓
D. k trials
Câu 135: Tại sao public-key cần key lớn hơn symmetric?
A. Để chậm hơn
B. Vì có thể bị phá bằng math tricks, không chỉ brute force ✓
C. Để phức tạp hơn
D. Không có lý do
Câu 136: Chức năng nào NHANH nhất?
A. Public-key Encryption
B. Digital Signature
C. Symmetric Encryption hoặc Hash Function ✓
D. Certificate verification
Câu 137: Chức năng nào cung cấp Confidentiality với shared secret?
A. Hash function
B. Symmetric Encryption ✓
C. Digital Signature
D. Certificate
Câu 138: Chức năng nào cung cấp Confidentiality với keypair?
A. Hash function
B. MAC
C. Public-key Encryption ✓
D. Symmetric Encryption
Câu 139: Chức năng nào cung cấp Integrity KHÔNG cần secret?
A. MAC
B. Digital Signature
C. Hash Function ✓
D. Symmetric Encryption
Câu 140: Chức năng nào cung cấp Integrity với shared secret?
A. Hash function
B. MAC ✓
C. Digital Signature
D. Public-key Encryption
Câu 141: Chức năng nào cung cấp Integrity với keypair?
A. Hash function
B. MAC
C. Digital Signature ✓
D. Symmetric Encryption
Câu 142: Chức năng nào cung cấp public key assurance?
A. Hash function
B. MAC
C. Digital Signature
D. Certificate ✓
Câu 143: Ví dụ của Symmetric Encryption?
A. RSA
B. AES ✓
C. SHA-256
D. HMAC
Câu 144: Ví dụ của Public-key Encryption?
A. AES
B. RSA, ECC ✓
C. SHA-256
D. HMAC
Câu 145: Ví dụ của Hash Function?
A. AES
B. RSA
C. SHA-256 ✓
D. DSA
Câu 146: Ví dụ của MAC?
A. SHA-256
B. RSA
C. HMAC ✓
D. AES
Câu 147: Ví dụ của Digital Signature algorithm?
A. AES
B. RSA, DSA, EC-DSA ✓
C. SHA-256
D. HMAC
Câu 148: Ví dụ của Certificate standard?
A. AES
B. RSA
C. X.509 ✓
D. SHA-256
PHẦN 17: BÀI TẬP THỰC TẾ¤
Câu 149: Bob muốn gửi tin nhắn dài và hình ảnh cho Alice an toàn, nhanh và giữ kín key. Nên dùng gì?
A. Chỉ symmetric encryption
B. Chỉ public-key encryption
C. Hybrid Encryption: Public-key cho session key, Symmetric cho message ✓
D. Chỉ hash function
Câu 150: Bob và Alice muốn đảm bảo tin nhắn không bị sửa đổi và xác nhận người gửi. Nên dùng gì?
A. Chỉ encryption
B. Chỉ hash
C. Digital Signature (hash then sign) ✓
D. Chỉ MAC
Câu 151: Giải pháp HOÀN CHỈNH cho Bob gửi tin cho Alice (cả Confidentiality lẫn Integrity)?
A. Chỉ AES
B. Chỉ RSA
C. Hybrid Encryption (AES+RSA) + Digital Signature ✓
D. Chỉ hash
Câu 152: Thông số tối ưu cho symmetric encryption hiện tại?
A. DES 56-bit
B. AES 128-bit
C. AES 256-bit ✓
D. RC4 128-bit
Câu 153: Thông số tối ưu cho hash function hiện tại?
A. MD5
B. SHA-1
C. SHA-256 hoặc SHA-3-256 ✓
D. SHA-0
Câu 154: Thông số tối ưu cho RSA key hiện tại?
A. 1024 bits
B. 2048 bits trở lên ✓
C. 512 bits
D. 4096 bits (quá dư thừa cho hầu hết)
Câu 155: Thông số tối ưu cho ECC key hiện tại?
A. 128 bits
B. 224-256 bits ✓
C. 2048 bits
D. 512 bits
Câu 156: Quy trình gửi message an toàn với Hybrid Encryption?
A. Encrypt message với RSA
B. Generate random session key → Encrypt session key với RSA (receiver's PU) → Encrypt message với AES (session key) ✓
C. Chỉ hash message
D. Encrypt message với AES, gửi key qua email
Câu 157: Quy trình ký message với Digital Signature?
A. Sign toàn bộ message
B. h = SHA-256(message) → sig = RSA-Sign(private key, h) → Gửi (message, sig) ✓
C. Chỉ hash message
D. Encrypt message
Câu 158: Receiver verify signature như thế nào?
A. Decrypt signature
B. h' = SHA-256(message) → RSA-Verify(sender's PU, h', sig) ✓
C. So sánh message
D. Tính MAC
Câu 159: Để gửi message VỪA bảo mật VỪA integrity, thứ tự đúng?
A. Sign rồi mới Encrypt
B. Encrypt rồi mới Sign (hoặc Encrypt-then-MAC) ✓
C. Chỉ Encrypt
D. Chỉ Sign
Câu 160: Eve chặn được ciphertext trong CTR mode và biết 1 byte plaintext. Eve có thể?
A. Không làm gì
B. Giải mã toàn bộ
C. Flip bit tương ứng để thay đổi byte plaintext đó ✓
D. Phá key
ĐÁP ÁN NHANH (Câu 61-160)¤
61.B 62.B 63.C 64.C 65.B 66.B 67.B 68.B 69.C 70.C 71.B 72.B 73.C 74.B 75.C 76.C 77.B 78.C 79.C 80.C 81.C 82.B 83.B 84.B 85.B 86.C 87.B 88.B 89.C 90.B 91.B 92.C 93.C 94.B 95.C 96.C 97.B 98.C 99.C 100.B 101.B 102.B 103.B 104.C 105.C 106.C 107.B 108.C 109.B 110.B 111.B 112.B 113.C 114.C 115.C 116.B 117.B 118.C 119.C 120.B 121.C 122.B 123.B 124.C 125.B 126.B 127.B 128.B 129.C 130.B 131.C 132.B 133.B 134.C 135.B 136.C 137.B 138.C 139.C 140.B 141.C 142.D 143.B 144.B 145.C 146.C 147.B 148.C 149.C 150.C 151.C 152.C 153.C 154.B 155.B 156.B 157.B 158.B 159.B 160.C
BẢNG TÓM TẮT NHANH - CHƯƠNG 3¤
1. PRINCIPLES¤
- Kerckhoffs: Algorithm công khai, chỉ key bí mật
- Decryption key: BẮT BUỘC bí mật
- Encryption key: Không nhất thiết bí mật
2. SYMMETRIC CIPHERS¤
- AES: 128-bit block, 128/192/256-bit keys, >10 Gbps
- ECB: ĐỪNG DÙNG (không che pattern)
- CBC: OK, dùng IV, không parallel
- CTR: Parallel, malleable
- Padding: Bit padding hoặc PKCS#7
3. PUBLIC-KEY CRYPTO¤
- RSA: Factoring, 2048 bits, 1-2 Mbps
- DH: Discrete Log, g^(ab) mod p
- ECC: Discrete Log EC, 224 bits
- Hybrid: PK cho session key, Symmetric cho message
4. HASH & INTEGRITY¤
- Hash: Keyless, SHA-256+
- MAC: Shared secret, HMAC
- Digital Sig: Keypair, RSA/DSA/EC-DSA
- ĐỪNG: MD5, SHA-1, H(K||M)
5. KEY SIZES (tương đương bảo mật)¤
- Symmetric 128 = RSA 3072 = ECC 256
- Symmetric 112 = RSA 2048 = ECC 224
6. CERTIFICATES¤
- CA ký certificate
- Binds identity ↔ public key
- X.509 standard
CHUẨN BỊ THI: Nhớ kỹ so sánh Symmetric vs Public-key, các modes (ECB/CBC/CTR), DH key exchange, hash then sign, hybrid encryption, và key sizes!