Skip to content

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 11010111010 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 2142 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:

  1. KPG(R) → (PU, PR) tính toán hiệu quả (polynomial time)

  2. Decryption works: D(PR, E(PU, M)) = M

  3. 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!