10. Câu hỏi ôn thi mật mã học

10.1. Môn "Các phương pháp bảo vệ thông tin bằng mật mã"

10.1.1. Задачи криптографической защиты информации и средства их решения

Bốn mục tiêu chính là: bí mật bằng mã hóa; toàn vẹn bằng MAC hoặc chữ ký; xác thực bằng mật khẩu, challenge--response, chứng thư; và chống chối bỏ bằng chữ ký số cùng cơ chế ghi nhận thời gian.

10.1.2. Симметричные, асимметричные и комбинированные криптосистемы

Mật mã đối xứng dùng cùng khóa để mã hóa và giải mã, nhanh nhưng khó phân phối khóa. Mật mã bất đối xứng dùng cặp khóa công khai--bí mật, chậm hơn nhưng thuận tiện trao đổi khóa và ký số. Hệ lai dùng bất đối xứng bảo vệ khóa phiên và dùng đối xứng mã hóa dữ liệu lớn.

10.1.3. Шифры, алгебраическая модель шифра, примеры

Một hệ mã là \((\mathcal X,\mathcal K,\mathcal Y,E,D)\) sao cho \(D_k(E_k(x))=x\). Với mỗi khóa \(k\), \(E_k\) phải là đơn ánh; nếu \(\mathcal X=\mathcal Y\) hữu hạn thì là một hoán vị. Ví dụ: Caesar, Vigenère, AES và RSA.

10.1.4. Шифры, вероятностная модель шифра, примеры

Mô hình xác suất bổ sung phân phối \(P_X\), \(P_K\) và có thể cả randomness. Khi đó

\[P_Y(y)=\sum_{E_k(x)=y}P_X(x)P_K(k).\]

Ví dụ: one-time pad với khóa đều; ElGamal và RSA-OAEP là mã xác suất.

10.1.5. Модели и критерии распознавания открытых текстов

Plaintext được mô hình bằng nguồn ngôn ngữ có phân phối không đều. Có thể nhận dạng bằng tần suất ký tự/n-gram, entropy, redundancy, từ điển hoặc điểm log-likelihood; plaintext đúng thường có điểm thống kê cao hơn chuỗi ngẫu nhiên.

10.1.6. Криптоанализ классических шифров. Дешифрование шифра Виженера

Tìm chu kỳ khóa bằng Kasiski hoặc chỉ số trùng hợp. Chia ciphertext thành các cột theo chu kỳ; mỗi cột là Caesar nên tìm dịch chuyển bằng phân tích tần suất hoặc \(\chi^2\), rồi ghép các ký tự khóa.

10.1.7. Классификации шифров

Phân loại theo khóa: đối xứng, bất đối xứng, lai; theo đơn vị xử lý: khối và dòng; theo biến đổi: thay thế, hoán vị, SPN, Feistel; theo tính ngẫu nhiên: tất định và xác suất.

10.1.8. Теоретическая и практическая стойкость шифров

An toàn lý thuyết không phụ thuộc năng lực tính toán, điển hình là one-time pad. An toàn thực tế dựa trên chi phí phá mã vượt nguồn lực trong thời hạn cần bảo vệ; được đánh giá bằng mô hình tấn công, độ dài khóa và thuật toán tốt nhất.

10.1.9. Совершенные шифры

Hệ mã hoàn hảo khi ciphertext không tiết lộ thông tin về plaintext: \(P(X=x\mid Y=y)=P(X=x)\), tương đương \(I(X;Y)=0\). One-time pad đạt tính chất này nếu khóa ngẫu nhiên đều, dài bằng thông điệp và chỉ dùng một lần.

10.1.10. Шифры замены и их криптоанализ

Mã thay thế ánh xạ mỗi ký hiệu hoặc nhóm ký hiệu sang ký hiệu khác. Mã thay thế đơn bảo toàn tần suất nên bị phá bằng tần suất chữ, digram/trigram và cấu trúc ngôn ngữ; mã đa bảng cần thêm bước tìm chu kỳ.

10.1.11. Шифры перестановки и их криптоанализ

Mã hoán vị chỉ đổi vị trí ký tự nên giữ nguyên tần suất. Phá mã bằng thử độ dài khối, xét anagram/n-gram và tìm hoán vị tối ưu; không gian khóa tối đa của khối \(n\) ký tự là \(n!\).

10.1.12. Шифрование методом гаммирования и его криптоанализ

Mã hóa dòng thường tính \(C_i=P_i\oplus\gamma_i\). Nếu gamma thật sự ngẫu nhiên và dùng một lần thì là OTP; nếu tái sử dụng, \(C\oplus C'\) loại gamma và làm lộ quan hệ giữa hai plaintext.

10.1.13. Криптоаналитические атаки и их классификация

Các mô hình chính: ciphertext-only, known-plaintext, chosen-plaintext (CPA), chosen-ciphertext (CCA), related-key và adaptive. Kỹ thuật gồm vét cạn, time--memory tradeoff, phân tích vi sai/tuyến tính, đại số, lỗi và side channel.

10.1.14. Блочные шифры. Принципы построения симметричных блочных шифров

Block cipher là họ hoán vị có khóa trên khối \(n\) bit. Thiết kế thường dùng mạng Feistel hoặc SPN, lặp nhiều vòng để tạo confusion và diffusion; S-box cung cấp phi tuyến, permutation/mixing khuếch tán sai khác.

10.1.15. Режимы работы блочных шифров и их сравнение

ECB độc lập nhưng lộ mẫu. CBC che mẫu và cần IV ngẫu nhiên. CFB/OFB biến block cipher thành stream cipher. CTR song song, truy cập ngẫu nhiên và nhanh nhưng không được lặp nonce/counter. Các mode này không tự xác thực; nên dùng AEAD như GCM hoặc CCM.

10.1.16. Методы анализа алгоритмов блочного шифрования

Các phương pháp chính: vét cạn khóa, vi sai, tuyến tính, vi sai bất khả thi, integral, boomerang, meet-in-the-middle, đại số, related-key và side channel. So sánh chi phí với vét cạn \(2^k\) và birthday bound theo kích thước khối.

10.1.17. Стандарт шифрования данных DES

DES là mạng Feistel 16 vòng, khối 64 bit, khóa hiệu dụng 56 bit và khóa vòng 48 bit. Hàm vòng mở rộng 32→48 bit, XOR khóa, qua 8 S-box rồi hoán vị. DES nay không an toàn vì khóa ngắn.

10.1.18. Развертывание раундовых ключей в DES

Khóa 64 bit chứa 8 bit parity. PC-1 chọn 56 bit thành \(C_0,D_0\); mỗi vòng dịch trái 1 hoặc 2 bit, rồi PC-2 chọn 48 bit tạo \(K_i\). Dịch 1 bit ở vòng 1, 2, 9, 16; các vòng khác dịch 2 bit.

10.1.19. Режим сцепления блоков шифра (CBC) на примере DES

Với IV \(C_0\), mã hóa \(C_i=E_K(P_i\oplus C_{i-1})\); giải mã \(P_i=D_K(C_i)\oplus C_{i-1}\). IV phải không dự đoán được. Lỗi ở \(C_i\) phá \(P_i\) và lật bit tương ứng ở \(P_{i+1}\).

10.1.20. Режим обратной связи по выходу (OFB) на примере DES

Sinh \(O_i=E_K(O_{i-1})\), \(O_0=IV\), rồi \(C_i=P_i\oplus O_i\). Mã hóa và giải mã giống nhau; lỗi bit không lan truyền. Không được lặp IV với cùng khóa.

10.1.21. Режим обратной связи по шифртексту (CFB) на примере DES

Với CFB toàn khối: \(C_i=P_i\oplus E_K(C_{i-1})\), \(C_0=IV\); giải mã dùng cùng \(E_K\). Mode tự đồng bộ nhưng lỗi ciphertext ảnh hưởng đoạn hiện tại và đoạn kế tiếp.

10.1.22. Имитостойкость шифров

Đây là khả năng chống giả mạo/thay đổi dữ liệu. Cơ chế chuẩn là MAC (CMAC, HMAC, GMAC) hoặc AEAD. Checksum/parity không khóa chỉ phát hiện lỗi ngẫu nhiên, không chống đối thủ chủ động.

10.1.23. Стандарт шифрования данных AES

AES là SPN khối 128 bit, khóa 128/192/256 bit tương ứng 10/12/14 vòng. Mỗi vòng gồm SubBytes, ShiftRows, MixColumns, AddRoundKey; vòng cuối bỏ MixColumns.

10.1.24. Развертывание раундовых ключей в AES

Khóa chia thành word 32 bit. Word mới là XOR với word cách \(N_k\) vị trí; tại biên vòng áp dụng RotWord, SubWord và Rcon. AES-256 còn áp dụng SubWord khi \(i\equiv4\pmod8\).

10.1.25. Российский стандарт шифрования данных МАГМА (ГОСТ Р 34.12-2015)

Magma là Feistel 32 vòng, khối 64 bit, khóa 256 bit. Hàm vòng cộng modulo \(2^{32}\) với khóa vòng, thay thế qua 8 S-box 4 bit, quay trái 11 bit rồi XOR nửa còn lại.

10.1.26. Развертывание раундовых ключей в стандарте МАГМА, количество слабых и 2-слабых ключей

Khóa 256 bit tách thành tám word 32 bit. Vòng 1--24 dùng \(K_1,\ldots,K_8\) lặp ba lần; vòng 25--32 dùng \(K_8,\ldots,K_1\). Có \(2^{32}\) khóa yếu dạng \(K_1=\cdots=K_8\); chuẩn Magma không quy định một số lượng chính thức cho lớp “2-yếu”.

10.1.27. Российский стандарт шифрования данных КУЗНЕЧИК (ГОСТ Р 34.12-2015)

Kuznyechik là SPN khối 128 bit, khóa 256 bit và 10 khóa vòng. Một vòng dùng XOR khóa, biến đổi phi tuyến S và tuyến tính L; vòng cuối chỉ XOR khóa.

10.1.28. Развертывание раундовых ключей в стандарте КУЗНЕЧИК

Hai nửa 128 bit của khóa là \(K_1,K_2\). Dùng mạng Feistel với 32 hằng số \(C_i=L(\mathrm{Vec}_{128}(i))\); sau mỗi 8 bước thu thêm một cặp khóa, tổng cộng 10 khóa vòng.

10.1.29. Поточные шифры. Принципы их построения

Stream cipher sinh keystream từ khóa và nonce rồi XOR dữ liệu. Yêu cầu: chu kỳ dài, gần đều, khó dự đoán, không lặp cặp khóa--nonce và có diffusion tốt từ trạng thái nội bộ.

10.1.30. Методы генерации и анализа псевдослучайных последовательностей

Có thể sinh bằng LFSR kết hợp phi tuyến, block cipher CTR/OFB hoặc CSPRNG dựa trên hash/stream cipher. Phân tích gồm chu kỳ, cân bằng, autocorrelation, linear complexity, kiểm thử thống kê và khả năng dự đoán.

10.1.31. Регистры сдвига, критерий регулярности

LFSR cập nhật trạng thái bằng recurrence tuyến tính trên \(\mathrm{GF}(2)\). Dãy là regular khi đa thức đặc trưng không có nghiệm bội, tương đương \(\gcd(f,f')=1\); khi đó không có thành phần lũy linh.

10.1.32. Регистры сдвига максимального периода

LFSR \(n\) bit có chu kỳ cực đại \(2^n-1\) với mọi trạng thái khác 0 khi và chỉ khi đa thức hồi tiếp bậc \(n\) là primitive trên \(\mathrm{GF}(2)\).

10.1.33. Криптоанализ поточных шифров

Gồm correlation, fast correlation, algebraic, guess-and-determine, time--memory--data tradeoff và nonce reuse. Với LFSR đơn, Berlekamp--Massey khôi phục recurrence từ khoảng \(2L\) bit, với \(L\) là linear complexity.

10.1.34. Системы шифрования с открытыми ключами. Принципы их построения

Dựa trên hàm một chiều có cửa sập: khóa công khai cho phép mã hóa/kiểm tra, khóa bí mật cho phép giải mã/ký. Mã hóa thực tế phải xác suất và đạt ít nhất IND-CPA, thường hướng tới IND-CCA.

10.1.35. Анализ асимметричных криптосистем

Kiểm tra bài toán nền, kích thước tham số, sinh khóa, padding/encoding, mô hình IND-CPA/CCA hoặc EUF-CMA, chi phí thuật toán tốt nhất và khả năng chống side channel.

10.1.36. Атаки на асимметричные криптосистемы

Gồm giải bài toán nền, padding oracle, small exponent, reuse randomness, invalid-curve, fault injection, timing/cache/power và tấn công giao thức. Phòng vệ bằng chuẩn mã hóa đúng, kiểm tra đầu vào, blinding và constant-time.

10.1.37. Системы шифрования с открытыми ключами. Криптосистема RSA

Chọn \(N=pq\), \(ed\equiv1\pmod{\lambda(N)}\). Mã hóa thô: \(c=m^e\bmod N\); giải mã \(m=c^d\bmod N\). Thực tế dùng OAEP cho mã hóa và PSS cho chữ ký.

10.1.38. Системы шифрования с открытыми ключами. Криптосистема Эль-Гамаля

Khóa bí mật \(x\), công khai \(y=g^x\). Chọn ngẫu nhiên \(k\); mã hóa \((c_1,c_2)=(g^k,m y^k)\); giải mã \(m=c_2(c_1^x)^{-1}\). Không được lặp \(k\).

10.1.39. Управление ключами. Открытое распределение ключей Диффи--Хеллмана

Alice gửi \(A=g^a\), Bob gửi \(B=g^b\); cả hai tính \(K=g^{ab}\). DH không tự xác thực nên bị man-in-the-middle; cần chữ ký/chứng thư và đưa shared secret qua KDF.

10.1.40. Электронная подпись. Принципы ее формирования

KeyGen tạo \((sk,pk)\); Sign ký hash bằng \(sk\); Verify dùng \(pk\). Yêu cầu đúng đắn và EUF-CMA. Chữ ký cung cấp toàn vẹn, xác thực nguồn và hỗ trợ chống chối bỏ, không cung cấp bí mật.

10.1.41. Электронная подпись на базе криптосистемы RSA

RSA thô ký \(s=H(m)^d\bmod N\), kiểm tra \(s^e\equiv H(m)\). Thực tế phải dùng RSA-PSS; không ký trực tiếp thông điệp hay dùng textbook RSA.

10.1.42. Электронная подпись на базе криптосистемы Эль Гамаля

Chọn \(k\) khả nghịch modulo \(p-1\), tính \(r=g^k\), \(s=k^{-1}(H(m)-xr)\bmod(p-1)\). Kiểm tra \(g^{H(m)}\equiv y^r r^s\pmod p\). Lặp \(k\) làm lộ khóa bí mật.

10.1.43. Российский стандарт электронной подписи ГОСТ Р 34.10-2012

Chuẩn dùng elliptic curve với khóa \(d\), \(Q=dP\). Với nonce \(k\), đặt \(r=x(kP)\bmod q\), \(s=(rd+ke)\bmod q\), \(e=H(m)\bmod q\). Có biến thể 256 và 512 bit.

10.1.44. Хэш-функции, требования к ним

Hash ánh xạ dữ liệu tùy ý thành digest cố định. Yêu cầu khó tìm preimage, second preimage và collision; avalanche và phân phối đều. Collision security lý tưởng của hash \(n\) bit là khoảng \(2^{n/2}\).

10.1.45. Методы построения функций хэширования

Cấu trúc phổ biến: Merkle--Damgård, HAIFA, sponge/duplex và tree hashing. Có thể xây compression function từ block cipher bằng Davies--Meyer hoặc Miyaguchi--Preneel.

10.1.46. Российский стандарт хэш-функции ГОСТ Р 34.11-2012

Streebog nhận thông điệp tùy ý và cho digest 256 hoặc 512 bit. Hàm nén dùng biến đổi S, P, L và 12 vòng; trạng thái còn theo dõi tổng độ dài và checksum modulo \(2^{512}\).

10.1.47. Криптографические протоколы и их классификация

Protocol là chuỗi thông điệp/quy tắc để đạt mục tiêu mật mã. Phân loại theo mục tiêu: trao đổi khóa, xác thực, cam kết, chữ ký, zero-knowledge, bỏ phiếu; theo tương tác và số bên.

10.1.48. Системы аутентификации

Xác thực dựa trên yếu tố biết (mật khẩu), có (token/khóa), hoặc là (sinh trắc). Dùng nonce/challenge chống replay, lưu mật khẩu bằng salted password hash và ưu tiên MFA.

10.1.49. Алгоритмы «облегченной» (lightweight) криптографии и их предназначение

Lightweight cryptography tối ưu diện tích mạch, RAM, năng lượng và độ trễ cho IoT/RFID. Ví dụ: Ascon-AEAD128 và Ascon-Hash256.

10.1.50. Криптографические средства защиты информации в ОС Windows

Windows cung cấp CNG/CryptoAPI, DPAPI, BitLocker, EFS, TLS/SChannel, Credential Guard và kho chứng thư. Ứng dụng nên dùng API cấp cao và bảo vệ khóa bằng hệ điều hành/TPM.

10.1.51. Криптографические средства защиты информации в MSDN

.NET có System.Security.Cryptography: AES, RSA, ECDSA, ECDH, hash, HMAC, RNG và X.509. Dùng RandomNumberGenerator, AEAD như AesGcm; tránh DES, RC2, SHA-1.

10.1.52. Реализация операций над байтами в стандарте AES

Byte AES là phần tử \(\mathrm{GF}(2^8)\) theo \(x^8+x^4+x^3+x+1\). Cộng là XOR; nhân là nhân đa thức rồi rút gọn. xtime dịch trái và XOR 0x1B nếu bit cao ban đầu bằng 1.

10.1.53. Реализация преобразования SubBytes в стандарте AES

Lấy nghịch đảo nhân của byte trong \(\mathrm{GF}(2^8)\) (\(0\mapsto0\)), sau đó áp dụng affine transform và XOR 0x63. Inverse SubBytes dùng phép biến đổi ngược.

10.1.54. Реализация нелинейного узла замены в стандарте DES

Mỗi S-box DES nhận 6 bit, trả 4 bit. Hai bit ngoài chọn hàng, bốn bit giữa chọn cột; tra bảng \(S_i\). Tám S-box biến 48 bit thành 32 bit.

10.1.55. Вычисления в группе точек эллиптических кривых

Trên \(y^2=x^3+ax+b\), nếu \(P\ne Q\) thì \(\lambda=(y_Q-y_P)/(x_Q-x_P)\); nếu nhân đôi, \(\lambda=(3x_P^2+a)/(2y_P)\). Sau đó \(x_R=\lambda^2-x_P-x_Q\), \(y_R=\lambda(x_P-x_R)-y_P\).

10.1.56. Криптосистемы на эллиптических кривых. Принципы их построения

ECC dùng nhóm điểm đường cong, an toàn dựa trên ECDLP. Với cùng mức an toàn, khóa nhỏ hơn RSA. Phải kiểm tra điểm, dùng subgroup bậc lớn và scalar multiplication chống side channel.

10.1.57. Распределение ключей с использованием эллиптических кривых. Протокол Диффи--Хеллмана

Alice gửi \(A=aG\), Bob gửi \(B=bG\); shared point là \(aB=bA=abG\). Đưa encoding của điểm qua KDF; ECDH cần xác thực và kiểm tra public point.

10.1.58. Криптосистема Эль-Гамаля на эллиптических кривых

Khóa công khai \(Q=dG\). Mã hóa điểm \(M\): \((C_1,C_2)=(kG,M+kQ)\); giải mã \(M=C_2-dC_1\). Thực tế dùng ECIES/KEM-DEM.

10.1.59. Электронная подпись Эль-Гамаля на эллиптических кривых

ECDSA: \(r=x(kG)\bmod n\), \(s=k^{-1}(H(m)+dr)\bmod n\). Verify dùng \(u_1=H(m)s^{-1}\), \(u_2=rs^{-1}\) và kiểm tra hoành độ của \(u_1G+u_2Q\). Nonce không được lặp.

10.1.60. Квантовая криптография, протоколы открытого распределения ключей

QKD phân phối khóa bằng trạng thái lượng tử; nghe lén gây nhiễu có thể phát hiện. BB84 dùng hai basis, rồi sifting, ước lượng lỗi, error correction và privacy amplification. Kênh cổ điển vẫn phải xác thực.