Skip to content

Bài 3: Tổng quan về Mật mã học (Cryptography)¤

1. Mật mã học có thể làm được gì?¤

Tam giác bảo mật CIA¤

Mật mã học phục vụ hai trong ba mục tiêu bảo mật thông tin (CIA triad):

Mục tiêu Mô tả Mật mã giải quyết?
Confidentiality (Bí mật) Ngăn chặn tiết lộ thông tin trái phép Có – bằng mã hóa
Integrity (Toàn vẹn) Ngăn chặn sửa đổi thông tin trái phép Có – bằng hash/MAC/chữ ký số
Availability (Sẵn sàng) Đảm bảo hệ thống luôn hoạt động được Không – đây là mục tiêu hướng hệ thống

Lưu ý quan trọng

Mật mã học chỉ bảo vệ được thông tin (Confidentiality & Integrity). Availability là mục tiêu về hệ thống, không thể giải quyết bằng cách biến đổi thông tin.


2. Mô hình đe dọa (Threat Model)¤

Trước khi thiết kế hệ thống mật mã, cần xác định rõ mô hình đe dọa:

Kẻ tấn công biết gì?¤

  • Thuật toán được sử dụng?
  • Hành vi thông thường của người dùng?

Kẻ tấn công có thể truy cập gì?¤

  • Nội dung giao tiếp?
  • Metadata (ai gửi cho ai, lúc nào)?

Kẻ tấn công có thể làm gì?¤

  • Thụ động (Passive): chỉ nghe lén, không thay đổi dữ liệu.
  • Chủ động (Active): có thể chặn và sửa đổi dữ liệu.
  • Năng lực tính toán đến đâu?

3. Nguyên tắc Kerckhoffs¤

Nguyên tắc Kerckhoffs (1883)

Phương pháp mã hóa không cần phải bí mật, và phải có thể rơi vào tay kẻ thù mà không gây bất tiện.

Hiểu đơn giản: Tất cả thuật toán phải được công khai. Bảo mật của hệ thống chỉ nên phụ thuộc vào bí mật của khóa (key), không phụ thuộc vào bí mật của thuật toán.

"Security through obscurity" (bảo mật qua che giấu) hầu như không bao giờ hiệu quả.

Đây cũng chính là hiện thân của nguyên tắc Open Design trong thiết kế bảo mật.


4. Sơ đồ mã hóa cơ bản¤

Text Only
Alice                         Network                        Bob
  |                              |                             |
  |-- Plaintext (bản rõ) ------> |                             |
  |   "Will you marry me?"       |                             |
  |                              |                             |
[Encryption Function]           |                      [Decryption Function]
  |   + Encryption Key           |                       + Decryption Key
  |                              |                             |
  |-- Ciphertext (bản mã) -----> | -------Ciphertext --------> |
  |   »Mm:+(. ¬@.`$..           |                             |
  |                              |                             |
                                                    Plaintext recovered
                                                    "Will you marry me?"
  • Plaintext: Thông điệp gốc mà người gửi muốn truyền đi.
  • Ciphertext: Dữ liệu được truyền trên kênh không an toàn.
  • Mục tiêu (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.
  • Mục tiêu phụ (Non-malleable Security): Ciphertext không thể bị sửa đổi một cách có ý nghĩa.

Câu hỏi: Decryption Key có cần bí mật không?¤

Có. Nếu Eve (kẻ tấn công thụ động) biết decryption key, cô ta có thể giải mã mọi ciphertext. Vậy decryption key bắt buộc phải bí mật.

Câu hỏi: Encryption Key có cần bí mật không?¤

Không nhất thiết! Đây là một trong những đột phá vĩ đại nhất của khoa học máy tính (cuối thập niên 60, đầu 70):

  • Lý thuyết độ phức tạp thời gianNP-completeness cho thấy một số hàm rất dễ tính nhưng cực kỳ khó đảo ngược.
  • Trapdoor function: Hàm khó tính theo chiều thuận, nhưng trở nên dễ dàng nếu có thêm một thông tin bí mật (trapdoor).

Đây là nền tảng của mật mã khóa công khai (Public-Key Cryptography).


5. Mật mã đối xứng (Symmetric Cipher)¤

Định nghĩa¤

Mật mã đối xứng sử dụng cùng một khóa cho cả quá trình mã hóa lẫn giải mã.

Text Only
Encryption: C = E(K, M)
Decryption: M = D(K, C)
  • Ưu điểm: Rất nhanh (AES với AES-NI đạt 5–10 Gbps trên một nhân CPU).
  • Nhược điểm: Khó quản lý khóa – hai bên phải chia sẻ khóa bí mật trước khi giao tiếp, điều này rất khó thực hiện khi giao tiếp với người lạ.
  • Ví dụ thuật toán: DES, AES, Blowfish, RC4 (không nên dùng RC4 vì đã bị phá vỡ).

Block Cipher (Mã khối)¤

Loại mật mã đối xứng phổ biến nhất. Hoạt động trên từng khối cố định các bit.

Text Only
Input:  01101...1101  (Plaintext, kích thước = block size)
    [Block Cipher] + Key
Output: 11010...0110  (Ciphertext)

Tham số thiết kế: - Block size: Số bit được mã hóa trong một lần áp dụng. - Key size: Kích thước khóa tính bằng bit. Nếu khóa có k bit, không gian khóa có \(2^k\) khả năng.


6. AES – Advanced Encryption Standard¤

AES là chuẩn mã khối được NIST chọn, và sau hơn 20 năm, chưa tìm thấy cuộc tấn công mật mã thực tế nào có hiệu quả.

Cấp độ bảo mật theo NIST: - Khóa 128-bit: dùng cho mức SECRET - Khóa 192 hoặc 256-bit: dùng cho mức TOP SECRET

Hiệu suất: - Hoạt động trên đơn vị byte/word → hiệu quả trong phần mềm. - Hỗ trợ lệnh CPU chuyên dụng (Intel AES-NI): vượt 10 Gbps trên một nhân. - Phần cứng chuyên dụng: đạt hơn 30 Gbps.


7. Các chế độ hoạt động của Block Cipher¤

Một block cipher chỉ mã hóa đúng một khối. Để mã hóa thông điệp dài hơn, cần dùng chế độ hoạt động (cipher mode).

Cách hoạt động:

Mỗi khối plaintext được mã hóa độc lập với nhau.

Text Only
C_j = E(K, P_j)    (mã hóa)
P_j = D(K, C_j)    (giải mã)

Vấn đề nghiêm trọng:

Vì mỗi khối được mã hóa độc lập, hai khối plaintext giống nhau sẽ cho ra hai khối ciphertext giống nhau. Điều này lộ ra các mẫu lặp trong dữ liệu – một lỗ hổng bảo mật nghiêm trọng (ví dụ điển hình: ảnh bitmap của tux penguin khi mã hóa ECB vẫn nhìn thấy hình dạng).

Không nên dùng ECB

ECB chỉ an toàn khi mã hóa thông điệp ngắn hơn một khối (ví dụ: mã hóa một khóa bí mật). Không bao giờ dùng ECB cho thông điệp dài.

Cách hoạt động:

Mỗi khối plaintext được XOR với ciphertext của khối trước trước khi mã hóa.

Text Only
C_1 = E(K, P_1 ⊕ IV)
C_j = E(K, P_j ⊕ C_{j-1})    với j = 2, ..., N

P_1 = D(K, C_1) ⊕ IV
P_j = D(K, C_j) ⊕ C_{j-1}    với j = 2, ..., N

IV (Initialization Vector): - Phải là ngẫu nhiên để đảm bảo tính bảo mật. - Được truyền kèm ciphertext (không cần bí mật). - Mục đích: đảm bảo cùng một plaintext sẽ tạo ra ciphertext khác nhau mỗi lần.

Ưu điểm: - Phá vỡ các mẫu lặp trong plaintext. - Thay đổi một khối ảnh hưởng đến tất cả các khối sau.

Nhược điểm: - Không thể song song hóa (mã hóa phải tuần tự). - Dễ bị tấn công BEAST (2011) nếu IV không được chọn đúng cách.

Cách hoạt động:

Thay vì mã hóa plaintext trực tiếp, CTR mã hóa một bộ đếm (counter) tăng dần và XOR kết quả với plaintext.

Text Only
C_j = P_j ⊕ E(K, Counter_j)
P_j = C_j ⊕ E(K, Counter_j)

Hình dung: Giống như tạo ra một "One-Time Pad" giả ngẫu nhiên từ counter.

Ưu điểm: - Hoàn toàn có thể song song hóa (mỗi khối độc lập nhau).

Nhược điểm: - Dễ bị tấn công chủ động (Malleability): Kẻ tấn công có thể lật bit trong ciphertext và tạo ra thay đổi tương ứng, có thể đoán trước được trong plaintext. - Giải pháp: Kết hợp với cơ chế bảo vệ tính toàn vẹn (MAC hoặc chữ ký số).


8. Padding (Đệm khối)¤

Block cipher yêu cầu input phải đúng bằng block size. Nếu plaintext không đủ, cần padding.

Kỹ thuật 1: Bit Padding¤

Luôn thêm bit 1 vào cuối, rồi thêm các bit 0 để điền đầy khối.

Ví dụ (block 8-bit):

Text Only
Plaintext gốc:    10111010 110
Sau padding:      10111010 11010000
                           ^^^^^^^
                           1 + sáu số 0

Câu hỏi: Tại sao luôn phải thêm bit 1?

Vì nếu plaintext đã là bội số của block size, ta vẫn phải thêm padding (một khối đầy). Bit 1 là dấu hiệu để bên nhận biết đâu là padding, tránh nhầm lẫn với dữ liệu thực.

Kỹ thuật 2: Byte Count Padding (PKCS#7 / PKCS#5)¤

Đếm số byte cần padding (ít nhất 1), gọi là c. Thêm c byte, mỗi byte có giá trị c.

Ví dụ (block 32-bit = 4 byte, hex):

Text Only
Plaintext: 42 1a 49 c3 21         (5 byte, cần thêm 3 byte padding)
Sau padding: 42 1a 49 c3 21 03 03 03
                              ^^^^^^^^
                              3 byte, mỗi byte giá trị 0x03

Note

PKCS#7 chỉ hoạt động với đơn vị byte. Đây là chuẩn phổ biến nhất được dùng với AES/CBC.


9. One-Time Pad (OTP)¤

OTP là hệ thống mật mã bảo mật hoàn hảo (perfect secrecy) về mặt lý thuyết: kẻ tấn công thụ động không thể thu được bất kỳ thông tin nào về plaintext.

Cơ chế: XOR plaintext với một khóa ngẫu nhiên có cùng độ dài.

Ví dụ minh họa lỗ hổng Malleability của OTP¤

Kịch bản tấn công

Giảng viên Alice gửi điểm 'F' (0x46) cho hệ thống DAA qua OTP.

Bước 1 – Alice mã hóa:

Text Only
Plaintext:  0x46 ('F')
OTP Key:    0xD9 ('Ù')
Ciphertext: 0x46 ⊕ 0xD9 = 0x9F

Bước 2 – Mallory chặn và sửa: Mallory muốn đổi 'F' thành 'A' (0x41). Cô tính:

Text Only
Mặt nạ = 'F' ⊕ 'A' = 0x46 ⊕ 0x41 = 0x07
Ciphertext mới = 0x9F ⊕ 0x07 = 0x98

Bước 3 – Bob (hệ thống) giải mã:

Text Only
0x98 ⊕ 0xD9 = 0x41 = 'A'
Bob nhận được điểm 'A' thay vì 'F'!

Kết luận về OTP: - Bảo mật hoàn hảo trước kẻ tấn công thụ động. - Hoàn toàn yếu trước kẻ tấn công chủ động (malleable). - Rất khó sử dụng thực tế: khóa phải dài bằng thông điệp, chỉ dùng một lần, và phải phân phối bí mật.


10. Hạn chế của Mật mã Đối xứng¤

Vấn đề cốt lõi: Quản lý khóa (Key Management)

Với mật mã đối xứng, hai bên phải chia sẻ khóa bí mật trước khi giao tiếp. Điều này dễ thực hiện trong nội bộ tổ chức (ví dụ: quân đội), nhưng không khả thi trong môi trường hiện đại.

Ví dụ: Bạn muốn gửi số thẻ tín dụng cho một cửa hàng trực tuyến lần đầu tiên → Hai bên chưa có khóa chung!

Giải pháp tạm thời: Key Distribution Center (KDC)

Mỗi bên chia sẻ khóa với một trung tâm phân phối khóa (KDC) đáng tin cậy (ví dụ: ngân hàng). KDC làm trung gian trao đổi khóa.

Nhược điểm: - Đòi hỏi tin tưởng hoàn toàn vào KDC. - KDC trở thành điểm tấn công tập trung. - Không thực tế cho người dùng phổ thông.


11. Mật mã Khóa Công khai (Public-Key / Asymmetric Cryptography)¤

Giải pháp cho vấn đề quản lý khóa.

Ý tưởng cốt lõi¤

Mỗi người dùng có một cặp khóa: - Public Key (PU): Công khai, ai cũng có thể biết và dùng để mã hóa. - Private Key (PR): Bí mật tuyệt đối, chỉ chủ sở hữu mới có, dùng để giải mã.

Text Only
Mã hóa:   C = E(PU_Bob, M)      ← Ai cũng làm được
Giải mã:  M = D(PR_Bob, C)      ← Chỉ Bob làm được

Mô hình bảo vệ Bí mật (Confidentiality)¤

Text Only
Alice                                              Bob
  |                                                 |
  | Lấy Public Key của Bob (PU_Bob) - công khai     |
  |                                                 |
[E(PU_Bob, M)] -------- Ciphertext --------> [D(PR_Bob, C)]
                                                    |
                                             Plaintext M

Mô hình bảo vệ Tính toàn vẹn (Integrity) – Chữ ký số¤

Text Only
Alice                                              Bob
  |                                                 |
[Signing(PR_Alice, M)] -- Message + Signature --> [Verify(PU_Alice, M, Sig)]
                                                    |
                                             "Chữ ký hợp lệ!"
  • : Chỉ Alice làm được (dùng PR_Alice – bí mật).
  • Xác minh: Ai cũng làm được (dùng PU_Alice – công khai).

Tính chất toán học¤

Để hệ thống hoạt động, cần đảm bảo:

  1. KPG(R) → (PU, PR) tính được hiệu quả (thời gian đa thức).
  2. D(PR, E(PU, M)) = M (giải mã đúng).
  3. Tính PR từ PUkhông khả thi về mặt tính toán (computationally infeasible).

Khái niệm then chốt: Trapdoor function – Hàm dễ tính theo một chiều, nhưng có thêm thông tin bí mật (trapdoor) thì chiều ngược lại cũng dễ.

Ưu và nhược điểm¤

Mật mã Đối xứng Mật mã Khóa Công khai
Tốc độ Nhanh (100–1000x) Chậm
Quản lý khóa Khó (cần chia sẻ trước) Dễ (gửi được cho người lạ)
Độ an toàn Brute-force (khóa dài là đủ) Dựa vào toán học, cần khóa lớn hơn

12. Thuật toán RSA¤

Cơ sở toán học: Bài toán phân tích thừa số nguyên tố¤

RSA dựa trên nhận xét: nhân hai số nguyên tố lớn pq rất dễ, nhưng cho tích n = p*q, tìm lại pq là cực kỳ khó.

Quy trình RSA¤

Tạo khóa:

Text Only
1. Chọn hai số nguyên tố lớn p và q
2. Tính n = p * q  và  φ(n) = (p-1) * (q-1)
3. Chọn e ngẫu nhiên sao cho gcd(φ(n), e) = 1  và  1 < e < φ(n)
4. Tính d sao cho d*e ≡ 1 (mod φ(n))  [dùng thuật toán Euclid mở rộng]
5. Public Key:  PU = (e, n)
   Private Key: PR = (d, n)

Mã hóa và giải mã:

Text Only
Mã hóa:  C = M^e mod n
Giải mã: M = C^d mod n

13. Bài toán Logarithm rời rạc (Discrete Logarithm Problem)¤

Đây là cơ sở toán học cho nhiều thuật toán khác (ElGamal, Diffie-Hellman).

Định nghĩa: Với mỗi số nguyên tố p, tồn tại căn nguyên thủy (primitive root) g sao cho dãy:

Text Only
g^1, g^2, g^3, ..., g^(p-1)  (tất cả lấy mod p)

là một hoán vị của {1, 2, 3, ..., p-1}.

Ví dụ: g = 3, p = 17:

i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
3^i mod 17 3 9 10 13 5 15 11 16 14 8 7 4 12 2 6 1
  • Chiều thuận f(i) = g^i mod p: Tính rất dễ (thuật toán lũy thừa module).
  • Chiều ngược dlog_{g,p}(x) = f^{-1}(x): Tin rằng là rất khó (chưa có thuật toán hiệu quả).

14. Trao đổi khóa Diffie-Hellman (DH)¤

Giao thức cho phép hai bên thiết lập một khóa bí mật chung qua kênh công khai mà không cần chia sẻ bí mật trước.

Quy trình¤

Text Only
Tham số công khai: p (số nguyên tố lớn), g (căn nguyên thủy của p)

Alice                                    Bob
──────────────────────────────────────────────────────
Chọn ngẫu nhiên a ∈ {1,...,p-1}        Chọn ngẫu nhiên b ∈ {1,...,p-1}
(Private key của Alice)                  (Private key của Bob)

A = g^a mod p  ──────────── A ────────>
(Public key của Alice)                   B = g^b mod p
                <─────────── B ──────── (Public key của Bob)

KA = B^a mod p = g^(ba) mod p           KB = A^b mod p = g^(ab) mod p

        KA = KB = g^(ab) mod p  ← Khóa bí mật chung!

Câu hỏi: Eve biết g, p, A, B – có tính được khóa chung không?¤

Không, vì muốn tính g^(ab) mod p, Eve cần biết a hoặc b. Để tính a từ A = g^a mod p, Eve phải giải bài toán logarithm rời rạc – được tin là cực kỳ khó.

Điểm yếu của DH cơ bản

DH không xác thực danh tính. Dễ bị tấn công Man-in-the-Middle (MitM): Eve có thể giả vờ là Bob với Alice và giả vờ là Alice với Bob, thiết lập hai khóa riêng biệt.


15. So sánh các thuật toán khóa công khai¤

Thuật toán mã hóa¤

Thuật toán Cơ sở toán học Độ khó phá vỡ Kích thước khóa điển hình
RSA Phân tích thừa số Semi-hard 2048 bit
ElGamal Discrete Log (mod p) Semi-hard 2048 bit
EC ElGamal Discrete Log (Elliptic Curve) Hard 224 bit

Thuật toán trao đổi khóa¤

Thuật toán Cơ sở toán học Độ khó phá vỡ Kích thước khóa điển hình
Diffie-Hellman Discrete Log (mod p) Semi-hard 2048 bit
EC-DHE Discrete Log (Elliptic Curve) Hard 224 bit

Semi-hard vs Hard

  • Semi-hard: Thuật toán phá vỡ tốt nhất có độ phức tạp giữa đa thức và hàm mũ.
  • Hard: Thuật toán phá vỡ tốt nhất có độ phức tạp hàm mũ.

Đây là lý do ECC (Elliptic Curve Cryptography) có thể dùng khóa nhỏ hơn nhiều mà vẫn đảm bảo bảo mật tương đương.

Kích thước khóa tương đương (NIST SP 800-57)¤

Bảo mật đối xứng (bit) AES RSA/DH (FFC) ECC
80 2TDEA 1024 bit 160–223 bit
112 3TDEA 2048 bit 224–255 bit
128 AES-128 3072 bit 256–383 bit
192 AES-192 7680 bit 384–511 bit
256 AES-256 15360 bit 512+ bit

16. Mã hóa Lai (Hybrid Encryption)¤

Kết hợp ưu điểm của cả hai loại:

Text Only
1. Tạo "session key" ngẫu nhiên (khóa đối xứng tạm thời)
2. Mã hóa MESSAGE bằng session key (dùng AES → nhanh)
3. Mã hóa SESSION KEY bằng public key của người nhận (dùng RSA/ECC)
4. Gửi: [Ciphertext message] + [Encrypted session key]
Đặc điểm Giá trị
Quản lý khóa Tốt (gửi được cho người lạ qua public key)
Tốc độ mã hóa thông điệp Nhanh (dùng AES)
Độ phức tạp code Cao hơn (dùng hai thuật toán)

Đây là cách TLS/HTTPS hoạt động trong thực tế.


17. Mật mã học cho Bảo vệ Tính toàn vẹn¤

Ý tưởng chung¤

Thay vì gửi toàn bộ thông điệp hai lần, ta tính một authenticator (tag) ngắn từ thông điệp và gửi kèm. Bên nhận xác minh authenticator có khớp với thông điệp không.

Text Only
Thông điệp: 4K-film.avi (4 GB)
Authenticator (SHA-1): be6224d4762c36ad36485de4f90a54c0892c60f4  (20 byte)

Nếu thông điệp hoặc authenticator bị thay đổi → không khớp → phát hiện giả mạo.

Ba loại cơ chế¤

Cơ chế Khóa Cách xác minh
Hash function Không cần khóa Tính lại hash, so sánh
MAC (Message Authentication Code) Khóa bí mật chung Tính lại MAC, so sánh
Digital Signature (Chữ ký số) Khóa riêng để ký, khóa công khai để xác minh Không thể tính lại!

18. Hàm Hash Mật mã học (Cryptographic Hash Function)¤

Định nghĩa¤

Text Only
H: {0,1}* → {0,1}^n

Nhận input tùy độ dài, trả về output cố định n bit.

Các tính chất cần thiết¤

Tính chất 1: One-way (Preimage Resistance)

Cho h, không thể tìm x sao cho H(x) = h.

Tức là: Biết hash, không thể tìm ngược ra dữ liệu gốc.

Tính chất 2: Weak Collision Resistance (Second Preimage Resistance)

Cho x, không thể tìm y ≠ x sao cho H(x) = H(y).

Tức là: Biết dữ liệu gốc, không thể tạo ra dữ liệu khác có cùng hash.

Tính chất 3: Strong Collision Resistance (Collision Resistance)

Không thể tìm bất kỳ cặp x ≠ y nào sao cho H(x) = H(y).

Đây là tính chất mạnh nhất: không thể tìm ra bất kỳ hai đầu vào khác nhau nào có cùng đầu ra.

Câu hỏi: Tại sao Hash function không đủ để xác thực thông điệp?¤

Kịch bản:

Text Only
Sender   ──── Message + Hash(Message) ────>  Receiver
                     Kênh không an toàn
                         Attacker

Kẻ tấn công có thể: 1. Thay thế Message bằng Message'. 2. Tính Hash(Message') (vì thuật toán hash là công khai). 3. Gửi Message' + Hash(Message').

Bên nhận xác minh thấy hash khớp → bị lừa!

Giải pháp: Cần một khóa bí mật mà chỉ người gửi hợp lệ mới có → dùng MAC hoặc Digital Signature.

Họ thuật toán SHA¤

SHA (Secure Hash Algorithm) do NIST phát triển:

  • SHA-0 (1993): Đã bị rút lui.
  • SHA-1: Output 160-bit, đã bị phá vỡ thực tế, không nên dùng.
  • SHA-2 (SHA-256, SHA-384, SHA-512): Hiện vẫn an toàn, dùng phổ biến.
  • SHA-3: Chuẩn mới nhất, dựa trên cấu trúc khác hoàn toàn (Keccak).

Câu trắc nghiệm¤

Câu 1. Trong tam giác CIA, mật mã học có thể bảo vệ trực tiếp những mục tiêu nào?

  • A. Chỉ Confidentiality
  • B. Chỉ Integrity
  • C. Confidentiality và Integrity
  • D. Cả ba: Confidentiality, Integrity và Availability
Đáp án & Giải thích

Đáp án: C

Availability là mục tiêu hướng về hệ thống (system-focused), không thể giải quyết bằng cách biến đổi thông tin. Mật mã học chỉ xử lý được Confidentiality và Integrity.


Câu 2. Nguyên tắc Kerckhoffs phát biểu điều gì?

  • A. Khóa mã hóa phải được giữ bí mật tuyệt đối
  • B. Thuật toán mã hóa có thể công khai, bảo mật chỉ phụ thuộc vào khóa
  • C. Cả thuật toán lẫn khóa đều phải bí mật
  • D. Hệ thống mã hóa an toàn nhất là hệ thống phức tạp nhất
Đáp án & Giải thích

Đáp án: B

Kerckhoffs (1883) cho rằng thuật toán có thể rơi vào tay kẻ thù mà không gây nguy hiểm. Bảo mật chỉ phụ thuộc vào tính bí mật của khóa. Đây là nền tảng của nguyên tắc Open Design.


Câu 3. "Security through obscurity" (bảo mật qua che giấu) được đánh giá như thế nào?

  • A. Đây là phương pháp bảo mật tốt nhất
  • B. Chỉ hiệu quả với các tổ chức nhỏ
  • C. Hầu như không bao giờ hiệu quả
  • D. Chỉ áp dụng được cho mật mã đối xứng
Đáp án & Giải thích

Đáp án: C

Lịch sử cho thấy giữ bí mật thuật toán hiếm khi thành công về lâu dài. Một khi thuật toán bị lộ, toàn bộ hệ thống sụp đổ. Tốt hơn là dùng thuật toán đã được cộng đồng chuyên gia kiểm tra và không phá được.


Câu 4. Semantic security trong mã hóa có nghĩa là gì?

  • A. Ciphertext phải ngắn hơn plaintext
  • B. Ciphertext không tiết lộ bất kỳ thông tin nào về plaintext cho người không có decryption key
  • C. Ciphertext phải được ký số
  • D. Thuật toán mã hóa phải được công bố
Đáp án & Giải thích

Đáp án: B

Semantic security (hay IND-CPA) đảm bảo kẻ tấn công không thể phân biệt được ciphertext của hai plaintext khác nhau, nghĩa là ciphertext không rò rỉ thông tin về plaintext.


Câu 5. Trong mô hình đe dọa mật mã học, kẻ tấn công "thụ động" (passive) khác kẻ tấn công "chủ động" (active) ở điểm nào?

  • A. Kẻ tấn công thụ động có năng lực tính toán mạnh hơn
  • B. Kẻ tấn công thụ động chỉ nghe lén, không sửa đổi dữ liệu
  • C. Kẻ tấn công thụ động biết nhiều thông tin hơn
  • D. Kẻ tấn công thụ động tấn công từ bên trong mạng
Đáp án & Giải thích

Đáp án: B

Kẻ tấn công thụ động chỉ lắng nghe (eavesdrop) mà không can thiệp vào dữ liệu. Kẻ tấn công chủ động có thể chặn, sửa đổi, xóa hoặc chèn thêm dữ liệu.


Câu 6. Điều gì bắt buộc phải được giữ bí mật trong hệ thống mã hóa đối xứng?

  • A. Thuật toán mã hóa
  • B. Kích thước khóa
  • C. Khóa bí mật (secret key)
  • D. Kích thước block
Đáp án & Giải thích

Đáp án: C

Trong mã hóa đối xứng, thuật toán có thể công khai (Kerckhoffs). Chỉ có khóa mới cần giữ bí mật.


Câu 7. AES với Intel AES-NI có thể đạt tốc độ khoảng bao nhiêu trên một nhân CPU?

  • A. 100 Mbps
  • B. 1 Gbps
  • C. 5–10 Gbps
  • D. 100 Gbps
Đáp án & Giải thích

Đáp án: C

AES-NI là tập lệnh phần cứng chuyên dụng của Intel, cho phép AES đạt tốc độ 5–10 Gbps trên một nhân CPU. Phần cứng chuyên dụng có thể đạt hơn 30 Gbps.


Câu 8. Block cipher yêu cầu điều gì về dữ liệu đầu vào?

  • A. Dữ liệu phải có độ dài bất kỳ
  • B. Dữ liệu phải có độ dài đúng bằng block size
  • C. Dữ liệu phải được nén trước
  • D. Dữ liệu phải ở dạng ASCII
Đáp án & Giải thích

Đáp án: B

Block cipher chỉ xử lý đúng một khối có độ dài cố định. Nếu dữ liệu ngắn hơn, cần padding. Nếu dài hơn, cần cipher mode.


Câu 9. Vấn đề bảo mật nghiêm trọng nhất của chế độ ECB là gì?

  • A. Không thể song song hóa
  • B. Cần IV ngẫu nhiên
  • C. Hai khối plaintext giống nhau tạo ra hai khối ciphertext giống nhau
  • D. Quá chậm
Đáp án & Giải thích

Đáp án: C

ECB mã hóa mỗi khối độc lập, nên các mẫu lặp trong plaintext vẫn hiện ra trong ciphertext. Đây là lý do ECB không an toàn cho thông điệp dài.


Câu 10. Trong CBC mode, IV (Initialization Vector) phải có tính chất gì?

  • A. Phải bí mật tuyệt đối
  • B. Phải ngẫu nhiên và được truyền kèm ciphertext
  • C. Phải bằng 0
  • D. Phải bằng khóa mã hóa
Đáp án & Giải thích

Đáp án: B

IV phải ngẫu nhiên để đảm bảo cùng plaintext → ciphertext khác nhau mỗi lần. IV được truyền kèm ciphertext (không cần bí mật) để bên nhận có thể giải mã.


Câu 11. CBC mode có nhược điểm gì so với CTR mode?

  • A. CBC không an toàn bằng CTR
  • B. CBC không thể song song hóa quá trình mã hóa
  • C. CBC cần khóa lớn hơn
  • D. CBC không hỗ trợ AES
Đáp án & Giải thích

Đáp án: B

Trong CBC, để mã hóa khối thứ j, cần có ciphertext của khối j-1. Điều này tạo ra sự phụ thuộc tuần tự, không thể song song hóa. CTR không có sự phụ thuộc này.


Câu 12. Cuộc tấn công BEAST (2011) nhắm vào điểm yếu nào?

  • A. AES-ECB
  • B. AES-CTR
  • C. AES-CBC với cách chọn IV không đúng
  • D. RSA với khóa nhỏ
Đáp án & Giải thích

Đáp án: C

BEAST khai thác việc IV trong TLS 1.0 không được chọn ngẫu nhiên cho mỗi record mà có thể đoán trước được, làm yếu tính bảo mật của CBC.


Câu 13. CTR mode có điểm yếu gì đối với kẻ tấn công chủ động?

  • A. Không thể song song hóa
  • B. Dễ bị tấn công brute-force
  • C. Ciphertext có thể bị lật bit để thay đổi plaintext theo cách có thể đoán được (malleability)
  • D. Cần IV bí mật
Đáp án & Giải thích

Đáp án: C

CTR XOR plaintext với keystream. Nếu kẻ tấn công biết vị trí của một giá trị trong plaintext và lật bit tương ứng trong ciphertext, plaintext giải mã sẽ thay đổi theo đúng dự đoán. Giải pháp là kết hợp với MAC.


Câu 14. Trong PKCS#7 padding, nếu cần thêm 5 byte padding, các byte đó có giá trị bao nhiêu?

  • A. 0x00
  • B. 0x01
  • C. 0x05
  • D. 0xFF
Đáp án & Giải thích

Đáp án: C

PKCS#7: Nếu cần c byte padding, thêm c byte mỗi byte có giá trị c. Nếu cần 5 byte, mỗi byte có giá trị 0x05.


Câu 15. Tại sao bit padding luôn thêm bit 1 trước các bit 0?

  • A. Để tăng tính ngẫu nhiên
  • B. Để bên nhận biết đâu là padding, kể cả khi plaintext đã là bội số của block size
  • C. Vì bit 1 dễ xử lý hơn
  • D. Để tương thích với AES
Đáp án & Giải thích

Đáp án: B

Nếu plaintext đã là bội số của block size, vẫn phải thêm một khối padding đầy. Bit 1 là dấu hiệu phân biệt padding với dữ liệu thực. Nếu chỉ thêm bit 0, không thể biết bao nhiêu bit 0 ở cuối là dữ liệu thực hay padding.


Câu 16. One-Time Pad có đặc điểm bảo mật gì?

  • A. Bảo mật hoàn hảo (perfect secrecy)
  • B. Bảo mật tốt nhất hiện có cho tính toàn vẹn
  • C. Dễ sử dụng và quản lý khóa
  • D. Khóa có thể tái sử dụng nhiều lần
Đáp án & Giải thích

Đáp án: A

OTP có perfect secrecy về mặt lý thuyết: ciphertext không tiết lộ bất kỳ thông tin nào về plaintext. Nhưng OTP rất khó dùng (khóa dài bằng thông điệp, dùng một lần) và hoàn toàn yếu về tính toàn vẹn.


Câu 17. Trong ví dụ OTP về điểm số, Mallory đã làm gì để đổi 'F' thành 'A'?

  • A. Giải mã và mã hóa lại ciphertext
  • B. XOR ciphertext với 'F' ⊕ 'A'
  • C. Thay thế ciphertext bằng mã hóa của 'A'
  • D. Đoán khóa OTP
Đáp án & Giải thích

Đáp án: B

Ciphertext ⊕ (F ⊕ A) = (P ⊕ Key) ⊕ (F ⊕ A). Khi bên nhận giải mã: Result ⊕ Key = P ⊕ (F ⊕ A) = F ⊕ F ⊕ A = A. Đây là tính malleable của OTP.


Câu 18. Vấn đề cốt lõi của mật mã đối xứng khi giao tiếp với người lạ là gì?

  • A. Tốc độ quá chậm
  • B. Không thể chia sẻ khóa bí mật trước khi giao tiếp
  • C. Khóa quá ngắn
  • D. Không hỗ trợ mã hóa file lớn
Đáp án & Giải thích

Đáp án: B

Hai bên phải có khóa chung trước khi giao tiếp, nhưng kênh để trao đổi khóa lại không an toàn. Đây là bài toán "gà và trứng" của key management.


Câu 19. Trong mật mã khóa công khai, ai có thể mã hóa thông điệp gửi cho Bob?

  • A. Chỉ Alice, người đã được Bob cấp phép
  • B. Bất kỳ ai có public key của Bob
  • C. Chỉ những người có private key của Bob
  • D. Chỉ KDC
Đáp án & Giải thích

Đáp án: B

Bất kỳ ai cũng có thể lấy public key của Bob (vì nó công khai) và dùng nó để mã hóa. Chỉ Bob mới có private key để giải mã.


Câu 20. Trong chữ ký số, private key được dùng để làm gì?

  • A. Mã hóa thông điệp
  • B. Xác minh chữ ký
  • C. Ký thông điệp
  • D. Tạo session key
Đáp án & Giải thích

Đáp án: C

Chỉ người sở hữu private key mới có thể ký. Bất kỳ ai cũng có thể xác minh bằng public key tương ứng. Điều này đảm bảo tính xác thực (authenticity) và không thoái thác (non-repudiation).


Câu 21. Trapdoor function là gì?

  • A. Hàm mã hóa hai chiều
  • B. Hàm khó tính theo cả hai chiều
  • C. Hàm khó tính theo chiều thuận, nhưng dễ tính ngược nếu có thông tin bí mật
  • D. Hàm hash không đảo ngược
Đáp án & Giải thích

Đáp án: C

Trapdoor function là nền tảng của mật mã khóa công khai. Ví dụ: Với RSA, dễ tính n = p*q nhưng khó phân tích n thành pq. Biết phân tích (trapdoor) thì tính ngược lại dễ dàng.


Câu 22. Trong RSA, public key gồm những thành phần nào?

  • A. (p, q)
  • B. (d, n)
  • C. (e, n)
  • D. (p, e)
Đáp án & Giải thích

Đáp án: C

Public key RSA là PU = (e, n) trong đó n = p*qe là số nguyên tố cùng nhau với φ(n). Private key là PR = (d, n) trong đó d*e ≡ 1 (mod φ(n)).


Câu 23. Trong RSA, mã hóa thông điệp M với public key (e, n) cho kết quả nào?

  • A. C = M + e mod n
  • B. C = M^e mod n
  • C. C = e^M mod n
  • D. C = M * e mod n
Đáp án & Giải thích

Đáp án: B

Mã hóa RSA: C = M^e mod n. Giải mã: M = C^d mod n. Tính đúng đắn dựa trên định lý Euler.


Câu 24. Bài toán nào là cơ sở toán học của RSA?

  • A. Bài toán logarithm rời rạc
  • B. Bài toán phân tích thừa số nguyên tố
  • C. Bài toán đường đi ngắn nhất
  • D. Bài toán xếp ba lô (Knapsack)
Đáp án & Giải thích

Đáp án: B

RSA dựa trên giả thiết rằng nhân hai số nguyên tố lớn rất dễ, nhưng ngược lại (phân tích tích thành thừa số) là cực kỳ khó.


Câu 25. Bài toán nào là cơ sở toán học của Diffie-Hellman?

  • A. Bài toán phân tích thừa số nguyên tố
  • B. Bài toán đường đi ngắn nhất
  • C. Bài toán logarithm rời rạc
  • D. Bài toán đồ thị Hamilton
Đáp án & Giải thích

Đáp án: C

DH dựa trên bài toán logarithm rời rạc: Biết g, p, và A = g^a mod p, rất khó tính a.


Câu 26. Trong giao thức Diffie-Hellman, g và p là gì?

  • A. Khóa bí mật của Alice và Bob
  • B. Tham số công khai được chia sẻ trước
  • C. Khóa phiên (session key)
  • D. Ciphertext được trao đổi
Đáp án & Giải thích

Đáp án: B

p là số nguyên tố lớn và g là căn nguyên thủy của p. Cả hai là tham số công khai được chia sẻ trước, không cần bí mật.


Câu 27. Sau khi trao đổi DH, Alice tính khóa chung bằng cách nào?

  • A. KA = A^b mod p
  • B. KA = B^a mod p
  • C. KA = g^(a+b) mod p
  • D. KA = a * b mod p
Đáp án & Giải thích

Đáp án: B

Alice nhận B = g^b mod p từ Bob và tính KA = B^a mod p = g^(ba) mod p. Bob tính KB = A^b mod p = g^(ab) mod p. Vì phép nhân số học có tính giao hoán: KA = KB.


Câu 28. Tại sao Eve không thể tính khóa chung DH dù biết g, p, A và B?

  • A. Eve không có đủ năng lực tính toán
  • B. Eve cần giải bài toán logarithm rời rạc để tìm a hoặc b, được tin là không khả thi
  • C. Giao thức DH mã hóa A và B trước khi gửi
  • D. Eve không biết thuật toán DH
Đáp án & Giải thích

Đáp án: B

Để tính khóa chung g^(ab) mod p, Eve cần biết a hoặc b. Nhưng A = g^a mod p nên muốn tìm a, Eve phải giải bài toán dlog_{g,p}(A) – bài toán logarithm rời rạc, được tin là rất khó.


Câu 29. Điểm yếu chính của DH cơ bản là gì?

  • A. Tốc độ chậm
  • B. Khóa tạo ra quá ngắn
  • C. Dễ bị tấn công Man-in-the-Middle vì không xác thực danh tính
  • D. Không thể dùng với AES
Đáp án & Giải thích

Đáp án: C

DH không có cơ chế xác thực. Eve có thể thực hiện MitM: giả vờ là Bob với Alice và giả vờ là Alice với Bob, thiết lập hai phiên DH riêng biệt. Giải pháp: Dùng DH kết hợp với xác thực (chứng chỉ số/PKI).


Câu 30. Tại sao ECC (Elliptic Curve Cryptography) có thể dùng khóa ngắn hơn RSA mà vẫn bảo mật tương đương?

  • A. ECC sử dụng thuật toán mã hóa khác
  • B. Bài toán logarithm rời rạc trên đường cong elliptic khó hơn bài toán phân tích thừa số
  • C. ECC sử dụng hai khóa thay vì một
  • D. ECC kết hợp mã hóa đối xứng và bất đối xứng
Đáp án & Giải thích

Đáp án: B

Thuật toán phá vỡ tốt nhất cho ECC có độ phức tạp hàm mũ (hard), trong khi thuật toán tốt nhất phá RSA nhanh hơn hàm mũ (semi-hard). Do đó, ECC 224-bit tương đương bảo mật với RSA 2048-bit.


Câu 31. Kích thước khóa ECC tương đương với AES-128 là bao nhiêu?

  • A. 128 bit
  • B. 256–383 bit
  • C. 1024 bit
  • D. 2048 bit
Đáp án & Giải thích

Đáp án: B

Theo NIST SP 800-57, bảo mật 128-bit tương ứng với: AES-128, RSA/DH 3072-bit, ECC 256–383 bit.


Câu 32. Hybrid encryption kết hợp hai loại mật mã như thế nào?

  • A. Dùng RSA để mã hóa toàn bộ thông điệp
  • B. Dùng AES để mã hóa thông điệp và RSA/ECC để mã hóa AES session key
  • C. Dùng hash function để mã hóa và RSA để xác minh
  • D. Dùng DH để mã hóa và AES để trao đổi khóa
Đáp án & Giải thích

Đáp án: B

Hybrid: Tạo session key ngẫu nhiên → Mã hóa thông điệp bằng AES (nhanh) → Mã hóa session key bằng public key RSA/ECC. Đây là cách TLS hoạt động.


Câu 33. Ưu điểm chính của mật mã đối xứng so với mật mã khóa công khai là gì?

  • A. Quản lý khóa đơn giản hơn
  • B. Tốc độ nhanh hơn 100–1000 lần
  • C. Không cần khóa
  • D. Không thể bị phá bởi máy tính lượng tử
Đáp án & Giải thích

Đáp án: B

Mã hóa đối xứng (AES) nhanh hơn mã hóa khóa công khai (RSA) từ 100 đến 1000 lần. Đây là lý do hybrid encryption dùng AES để mã hóa dữ liệu lớn.


Câu 34. Tấn công brute-force vào mật mã đối xứng với khóa k-bit cần trung bình bao nhiêu phép thử?

  • A. k phép thử
  • B. 2^k phép thử
  • C. ½ × 2^k phép thử
  • D. k² phép thử
Đáp án & Giải thích

Đáp án: C

Với khóa k-bit, có 2^k khả năng. Trung bình phải thử qua một nửa số đó trước khi tìm được khóa đúng, nên cần ½ × 2^k phép thử.


Câu 35. Hash function trong mật mã học nhận đầu vào và trả về đầu ra như thế nào?

  • A. Đầu vào cố định, đầu ra thay đổi
  • B. Đầu vào tùy ý, đầu ra cố định n bit
  • C. Đầu vào và đầu ra đều tùy ý
  • D. Đầu vào và đầu ra đều cố định
Đáp án & Giải thích

Đáp án: B

H: {0,1}* → {0,1}^n – nhận input có độ dài tùy ý, trả về output có độ dài cố định n bit. Đây là đặc điểm quan trọng của hash function.


Câu 36. Tính chất "Preimage Resistance" của hash function có nghĩa là gì?

  • A. Cho h, không thể 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. Không thể tìm bất kỳ cặp x ≠ y nào có H(x) = H(y)
  • D. Hash luôn cho ra kết quả duy nhất
Đáp án & Giải thích

Đáp án: A

Preimage resistance (one-way property): Biết giá trị hash h, không thể tìm ngược lại dữ liệu x sao cho H(x) = h.


Câu 37. Tính chất "Second Preimage Resistance" (Weak Collision Resistance) có nghĩa là gì?

  • A. Cho h, không thể 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. Không thể tìm bất kỳ cặp x ≠ y nào có H(x) = H(y)
  • D. Hash function phải nhanh
Đáp án & Giải thích

Đáp án: B

Second preimage resistance: Đã biết xH(x), không thể tạo ra y khác x mà vẫn có cùng hash. Điều này ngăn kẻ tấn công thay thế thông điệp gốc bằng thông điệp giả trong khi giữ nguyên hash.


Câu 38. Tính chất "Strong Collision Resistance" (Collision Resistance) mạnh hơn Second Preimage Resistance ở điểm nào?

  • A. Không cần biết x trước, vẫn không thể tìm bất kỳ cặp x ≠ y nào có cùng hash
  • B. Áp dụng cho khóa bí mật
  • C. Yêu cầu hash dài hơn
  • D. Cần nhiều tài nguyên tính toán hơn
Đáp án & Giải thích

Đáp án: A

Collision resistance mạnh hơn vì không có ràng buộc về x. Kẻ tấn công tự do chọn cả x và y, miễn là x ≠ yH(x) = H(y). Điều này khó hơn second preimage resistance (x đã cho).


Câu 39. Tại sao hash function đơn thuần không đủ để xác thực thông điệp trên kênh không an toàn?

  • A. Hash quá dài để truyền đi
  • B. Kẻ tấn công có thể thay thế cả thông điệp lẫn hash mới tương ứng
  • C. Hash function quá chậm
  • D. Hash function không hỗ trợ thông điệp dài
Đáp án & Giải thích

Đáp án: B

Vì hash function là công khai, kẻ tấn công thay thông điệp M bằng M', rồi tự tính H(M') và gửi cả hai. Bên nhận không phát hiện được. Giải pháp: Dùng khóa bí mật (MAC) để chỉ bên hợp lệ mới tính được authenticator.


Câu 40. Ba cơ chế bảo vệ tính toàn vẹn là gì?

  • A. ECB, CBC, CTR
  • B. RSA, AES, DH
  • C. Hash function, MAC, Digital Signature
  • D. OTP, Block cipher, Stream cipher
Đáp án & Giải thích

Đáp án: C

Ba cơ chế: (1) Hash – không cần khóa, (2) MAC – cần khóa bí mật chung, (3) Digital Signature – cần cặp khóa công khai/riêng tư. Chỉ Digital Signature mới đảm bảo non-repudiation.


Câu 41. Căn nguyên thủy (primitive root) g của số nguyên tố p có đặc điểm gì?

  • A. g² = 1 mod p
  • B. Dãy g¹, g², ..., g^(p-1) mod p là hoán vị của {1, 2, ..., p-1}
  • C. g = p - 1
  • D. g là ước của p
Đáp án & Giải thích

Đáp án: B

Căn nguyên thủy g của p là số mà lũy thừa của nó (mod p) tạo ra tất cả các phần tử khác 0 trong trường Zp. Điều này là nền tảng của giao thức DH và ElGamal.


Câu 42. Trong ví dụ DH với g=3, p=17, nếu Alice chọn a=5, public key A của Alice là bao nhiêu?

  • A. 15
  • B. 5
  • C. 3
  • D. 12
Đáp án & Giải thích

Đáp án: A

Từ bảng trong slide: 3^5 mod 17 = 15. Vậy A = g^a mod p = 3^5 mod 17 = 15.


Câu 43. AES được chấp thuận bảo vệ thông tin mật ở mức nào với khóa 128-bit?

  • A. CONFIDENTIAL
  • B. SECRET
  • C. TOP SECRET
  • D. Không được chấp thuận
Đáp án & Giải thích

Đáp án: B

Theo NIST: AES-128 bảo vệ thông tin mức SECRET. AES-192 và AES-256 bảo vệ mức TOP SECRET.


Câu 44. φ(n) trong RSA với n = p*q được tính như thế nào?

  • A. φ(n) = p + q
  • B. φ(n) = (p+1)*(q+1)
  • C. φ(n) = (p-1)*(q-1)
  • D. φ(n) = p*q - 1
Đáp án & Giải thích

Đáp án: C

φ(n) là hàm Euler totient. Với n = p*q (p, q nguyên tố): φ(n) = (p-1)*(q-1). Đây là số phần tử từ 1 đến n-1 mà nguyên tố cùng nhau với n.


Câu 45. Trong RSA, điều kiện chọn e là gì?

  • A. e phải là số chẵn
  • B. e phải nguyên tố cùng nhau với φ(n) và 1 < e < φ(n)
  • C. e phải nhỏ hơn p và q
  • D. e = d
Đáp án & Giải thích

Đáp án: B

Điều kiện: gcd(φ(n), e) = 11 < e < φ(n). Điều này đảm bảo tồn tại nghịch đảo modular d của e.


Câu 46. Mật mã đối xứng về lịch sử được dùng chủ yếu ở đâu?

  • A. Thương mại điện tử
  • B. Internet công cộng
  • C. Trong nội bộ các tổ chức (ví dụ: quân đội)
  • D. Email cá nhân
Đáp án & Giải thích

Đáp án: C

Mật mã đối xứng đã tồn tại hàng nghìn năm (ví dụ: mã Caesar) và chủ yếu dùng trong các tổ chức đóng như quân đội, nơi các bên đã có khóa chung từ trước.


Câu 47. Điểm khác nhau cơ bản giữa MAC và Hash function là gì?

  • A. MAC cho đầu ra dài hơn
  • B. MAC yêu cầu khóa bí mật chung, hash function thì không
  • C. Hash function nhanh hơn MAC
  • D. MAC chỉ dùng được với AES
Đáp án & Giải thích

Đáp án: B

Hash function không cần khóa, nên ai cũng có thể tính lại. MAC dùng khóa bí mật chung, chỉ người có khóa mới tính được MAC đúng, ngăn kẻ tấn công giả mạo.


Câu 48. Điểm khác nhau quan trọng nhất giữa Digital Signature và MAC là gì?

  • A. Digital Signature nhanh hơn
  • B. Digital Signature dùng khóa bất đối xứng, đảm bảo non-repudiation
  • C. MAC không thể xác minh tính toàn vẹn
  • D. Digital Signature không cần khóa
Đáp án & Giải thích

Đáp án: B

Với MAC, cả hai bên có cùng khóa nên không ai có thể chứng minh ai là người tạo ra MAC. Digital Signature dùng private key để ký (chỉ người sở hữu mới làm được), nên có tính non-repudiation – không thể chối bỏ.


Câu 49. Nhược điểm chính của One-Time Pad khi dùng thực tế là gì?

  • A. Bảo mật không đủ mạnh
  • B. Khóa phải dài bằng thông điệp và chỉ dùng được một lần, dẫn đến bài toán phân phối khóa khổng lồ
  • C. Tốc độ mã hóa chậm
  • D. Không tương thích với các hệ thống hiện đại
Đáp án & Giải thích

Đáp án: B

OTP đòi hỏi: (1) khóa ngẫu nhiên thực sự, (2) dài bằng thông điệp, (3) chỉ dùng đúng một lần. Điều này làm cho việc phân phối và quản lý khóa trở nên bất khả thi trong thực tế.


Câu 50. Tại sao mã hóa khóa công khai lại chậm hơn mã hóa đối xứng?

  • A. Khóa công khai dài hơn
  • B. Thuật toán khóa công khai dựa trên các phép toán số học phức tạp (lũy thừa modular với số lớn)
  • C. Khóa công khai cần tải từ server
  • D. Khóa công khai cần mã hóa thêm một lần
Đáp án & Giải thích

Đáp án: B

RSA và các thuật toán khóa công khai dựa trên phép lũy thừa modular với số nguyên cực lớn (2048-bit trở lên). Các phép toán này về cơ bản chậm hơn nhiều so với các phép toán XOR và substitution/permutation của AES.


Câu 51. SHA-0 được phát triển bởi tổ chức nào và vào năm nào?

  • A. NSA, 1990
  • B. NIST, 1993
  • C. MIT, 1995
  • D. IEEE, 1988
Đáp án & Giải thích

Đáp án: B

SHA-0 (và SHA-1) được phát triển bởi NIST (National Institute of Standards and Technology) vào năm 1993.


Câu 52. Khi nói "Semi-hard" để mô tả độ khó của một bài toán mật mã, điều đó có nghĩa là gì?

  • A. Bài toán có thể giải trong thời gian đa thức
  • B. Thuật toán tốt nhất để phá có độ phức tạp giữa đa thức và hàm mũ
  • C. Bài toán chưa được nghiên cứu đầy đủ
  • D. Bài toán có thể giải bằng máy tính lượng tử trong thời gian đa thức
Đáp án & Giải thích

Đáp án: B

Semi-hard: Thuật toán tốt nhất hiện biết nhanh hơn exponential nhưng chậm hơn polynomial (ví dụ: sub-exponential). RSA và DH mod p ở mức này. ECC ở mức "Hard" (thuật toán tốt nhất là exponential).