Tổng quan về giáo trình

Giáo trình Mật mã ứng dụng trong an toàn thông tin được biên soạn nhằm phục vụ công tác đào tạo bậc đại học và sau đại học thuộc khối ngành An toàn thông tin, Công nghệ thông tin và Khoa học máy tính. Trong khung chương trình đào tạo chuyên ngành, tài liệu đóng vai trò là học liệu cốt lõi cho các học phần liên quan đến Mật mã học ứng dụng, Lý thuyết an toàn thông tin và Kỹ thuật an ninh mạng.

Mục tiêu học tập của giáo trình tập trung vào việc cung cấp cho người học cơ sở lý thuyết toán học mật mã song song với năng lực triển khai kỹ thuật. Sau khi hoàn thành nội dung, người học có khả năng phân tích các dịch vụ an toàn thông tin (tính bí mật, tính toàn vẹn, tính xác thực, tính chống chối bỏ); nắm vững nguyên lý hoạt động của các họ mật mã cơ bản (mật mã dòng, mật mã khối, mật mã khóa công khai, hàm băm, chữ ký số); hiểu rõ cơ chế vận hành của các giao thức mạng phổ biến; đồng thời có kỹ năng phân tích độ an toàn tính toán và cài đặt thuật toán bằng các ngôn ngữ lập trình như C/C++ và môi trường tính toán đại số Maple.

Về cấu trúc, giáo trình gồm 6 chương lý thuyết kết hợp thực hành và phần phụ lục mã nguồn:

  • Chương 1: Các ứng dụng của mật mã trong an toàn thông tin và vai trò của các ngôn ngữ lập trình.
  • Chương 2: Khái niệm mã dòng và các đặc trưng.
  • Chương 3: Định nghĩa mã khối, cấu trúc và nguyên lý phân tích mã.
  • Chương 4: Mật mã trên đường cong Elliptic.
  • Chương 5: Giao thức mật mã và các kỹ thuật xác thực.
  • Chương 6: Một số chuẩn mật mã hiện đại.
  • Phụ lục: Mã nguồn chương trình mã hóa/giải mã AES, Camellia trên ngôn ngữ C và các đoạn mã Maple.

Cách tiếp cận của tài liệu đi từ bối cảnh ứng dụng thực tiễn trong hệ điều hành và giao thức truyền thông, sau đó đi sâu vào cấu trúc toán học chi tiết, các phương pháp thám mã toán học (thám mã tuyến tính, thám mã lượng sai), và kết thúc bằng việc chuẩn hóa giao thức. Điểm đặc trưng của giáo trình là sự kết hợp giữa mô hình toán học giải tích với các đoạn mã mô phỏng trực quan trên Maple và C, cho phép người học kiểm chứng các phép tính số học số lớn, ma trận hoán vị và hộp S-box trên máy tính.


Nội dung kiến thức cốt lõi

                             KIẾN THỨC CỐT LÕI
                                     │
    ┌─────────────────┬──────────────┴───────────────┬────────────────┐
    ▼                 ▼                              ▼                ▼
[Nền tảng &           [Mật mã Dòng                   [Mật mã Khối]    [Mật mã Đường cong
Ứng dụng]             (Stream Cipher)]                                Elliptic (ECC)]
- 4 dịch vụ ATTT      - LFSR & Berlekamp-Massey      - SPN & Feistel  - F_p & F_(2^m)
- PAM, SSH, TLS, SET  - Kiểm tra thống kê FIPS       - DES, Camellia  - ECDLP, ElGamal EC
- GMP, Crypto++       - Bộ sinh Geffe & phi tuyến    - Thám mã Vi sai - ECDSA & ECDH
                                                     & Tuyến tính
                                     │
    ┌────────────────────────────────┴────────────────────────────────┐
    ▼                                                                 ▼
[Giao thức Mật mã & Xác thực]                        [Chuẩn hóa Mật mã Quốc tế]
- Challenge-Response & Timestamp                     - Mã dòng: SNOW 2.0
- Phân tích tấn công: MITM, Replay, Reflection       - Mã khối: AES (Rijndael)
- Trao đổi khóa có xác thực                          - Khóa công khai: RSA-OAEP, RSA-PSS

Các chương và chủ đề chính

  • Chương 1: Các ứng dụng của mật mã trong an toàn thông tin và vai trò của các ngôn ngữ lập trình: Giới thiệu lịch sử mật mã từ công trình The Codebreakers của David Kahn, sự ra đời của DES (1977), bài báo New Directions in Cryptography của Diffie - Hellman (1976), hệ mật RSA (1978) và ElGamal (1985). Trình bày 4 mục tiêu an toàn thông tin, sơ đồ phân loại các thành phần mật mã, các ứng dụng thực tiễn (xác thực PAM trên Linux qua /etc/shadow, giao thức SSH, SSL/TLS theo RFC 2246, giao thức SET với chữ ký kép, chuẩn S/MIME, PGP/OpenPGP theo RFC 4880), cùng các thư viện lập trình số lớn như GNU MP (GMP) và Crypto++.
  • Chương 2: Khái niệm mã dòng - Các đặc trưng: Khảo sát thanh ghi dịch phản hồi tuyến tính (LFSR), định nghĩa độ phức tạp tuyến tính và thuật toán Berlekamp-Massey. Phân tích 5 phép kiểm tra thống kê dãy ngẫu nhiên (kiểm tra bit đơn, kiểm tra seri cặp bit, kiểm tra Poker, kiểm tra loạt, kiểm tra tự tương quan). Trình bày các nguyên lý thiết kế mật mã dòng: bộ sinh tổ hợp phi tuyến, bộ lọc phi tuyến, bộ sinh điều khiển bằng đồng hồ (Clock-controlled), hệ mật OTP, RC4 và bộ sinh Geffe kèm chương trình mô phỏng trên Maple.
  • Chương 3: Định nghĩa mã khối - Cấu trúc và phương pháp tấn công: Phân tích cấu trúc mạng Feistel và mạng thay thế - hoán vị (SPN). Đi sâu vào cơ sở toán học của xác xuất tuyến tính (Linear Cryptanalysis) và xác suất lượng sai (Differential Cryptanalysis). Trình bày chi tiết thuật toán mã hóa, lược đồ sinh khóa và độ an toàn của chuẩn DES, Double DES, Triple DES và thuật toán Camellia. Hướng dẫn thuật toán và chương trình Maple tính xác suất lượng sai, tuyến tính cực đại trên hộp S-box của AES và Sbox1 của Camellia.
  • Chương 4: Mật mã trên đường cong Elliptic: Trình bày định nghĩa đường cong elliptic dạng không kỳ dị trên trường hữu hạn $\mathbb{F}p$ và trường đặc số hai $\mathbb{F}{2^m}$. Kỹ thuật nhúng bản rõ vào điểm đường cong, phương pháp đếm số điểm và tính bậc của điểm. Phân tích bài toán logarit rời rạc trên đường cong elliptic (ECDLP), hệ mật ElGamal Elliptic, lập mã Massey-Omura, hệ mật Menezes-Vanstone, chuẩn chữ ký số ECDSA và giao thức trao đổi khóa ECDH. Cung cấp các script Maple tính phép nhân điểm $kP$, liệt kê điểm và ký số ECDSA.
  • Chương 5: Giao thức mật mã: Xác định các yêu cầu xác thực gồm tính tươi của thông báo (message freshness) và tính sống của thực thể (entity liveliness). Khảo sát các cơ chế thách đố - giải đố (challenge-response), cơ chế tem thời gian (timestamp) và xác thực dựa trên bên thứ ba tin cậy. Phân tích 8 kịch bản tấn công giao thức: tấn công diễn lại (replay), kẻ đứng giữa (MITM), phiên song song, phản xạ, xen kẽ, khiếm khuyết kiểu, bỏ sót tên và dùng sai dịch vụ mật mã. Cung cấp chương trình Maple mô phỏng giao thức chuẩn hóa.
  • Chương 6: Một số chuẩn mật mã: Phân tích thuật toán mã dòng SNOW 1.0, các điểm yếu cấu trúc và thuật toán nâng cấp SNOW 2.0. Mô tả toán học chuẩn mã khối AES (Rijndael) trên trường Galois $GF(2^8)$ qua các phép biến đổi ByteSub, ShiftRow, MixColumn, AddRoundKey và hàm sinh khóa KeyExpansion. Trình bày chuẩn mã hóa khóa công khai RSA-OAEP, chuẩn ký số RSA-PSS và khảo sát, so sánh 7 lược đồ thỏa thuận khóa chuẩn hóa.
                              TIẾN TRÌNH NỘI DUNG
┌─────────────────────────────────────────────────────────────────────────────┐
│ Chương 1: Bối cảnh ứng dụng & Framework lập trình (GMP, PAM, SSL/TLS, SSH)  │
└──────────────────────────────────────┬──────────────────────────────────────┘
                                       ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ Chương 2 & 3: Mật mã Đối xứng Đối tượng Cơ bản (Mã dòng LFSR & Mã khối SPN)│
└──────────────────────────────────────┬──────────────────────────────────────┘
                                       ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ Chương 4: Mật mã Khóa Công khai Hiện đại (Đường cong Elliptic, ECDSA, ECDH) │
└──────────────────────────────────────┬──────────────────────────────────────┘
                                       ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ Chương 5 & 6: Giao thức An toàn & Chuẩn hóa Thực thi (SNOW 2.0, AES, RSA-PSS)│
└─────────────────────────────────────────────────────────────────────────────┘

Kiến thức nền tảng được xây dựng

Giáo trình xây dựng hệ thống lý thuyết dựa trên các nguyên lý toán học và an toàn máy tính:

  1. Lý thuyết đại số và lý thuyết số: Phép toán số học modulo, trường hữu hạn Galois ($GF(2^8)$, $\mathbb{F}p$, $\mathbb{F}{2^m}$), cấu trúc nhóm điểm trên đường cong elliptic, bài toán phân tích thừa số nguyên tố lớn và bài toán logarit rời rạc (DLP, ECDLP).
  2. Nguyên lý thiết kế mật mã: Độ phức tạp thuật toán và độ an toàn tính toán; nguyên lý xáo trộn (confusion) và khuếch tán (diffusion) qua mạng SPN/Feistel; cấu trúc phi tuyến của bảng thế S-box; cơ chế đồng bộ dòng khóa qua LFSR và FSM.
  3. Mô hình bảo mật giao thức: Khung phân tích logic xác thực, mô hình kẻ tấn công Dolev-Yao, cơ chế tạo chữ ký số (kết hợp hàm băm kháng va chạm và thuật toán khóa công khai), hạ tầng khóa công khai PKI và định dạng chứng chỉ X.509.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Lập trình tính toán số nguyên lớn sử dụng thư viện GMP trên C/C++; cài đặt thuật toán mã hóa AES, Camellia; lập trình kịch bản đại số trên phần mềm Maple để kiểm thử đường cong elliptic và tạo khóa mật mã.
  • Kỹ năng phân tích (Analytical skills): Đo lường độ phức tạp tuyến tính của dãy nhị phân bằng thuật toán Berlekamp-Massey; tính toán xác suất tuyến tính và xác suất lượng sai cực đại trên các hộp S-box; phân tích và phát hiện các lỗ hổng logic trong giao thức xác thực (lỗ hổng phản xạ, xen kẽ, diễn lại).
  • Năng lực thực hành (Practical competencies): Đánh giá các bộ sinh số ngẫu nhiên theo tiêu chuẩn kiểm tra thống kê; triển khai tích hợp mô-đun xác thực PAM trên hệ điều hành Linux; cấu hình và kiểm tra chứng chỉ số trong các giao thức mạng thực tế (SSH, TLS, S/MIME).

Phương pháp giảng dạy và học tập

Giáo trình định hướng phương pháp giảng dạy tích hợp giữa diễn dịch lý thuyết và thực nghiệm tính toán. Giảng viên có thể sử dụng cấu trúc tài liệu để tổ chức bài giảng theo mô hình: giảng giải bản chất toán học $\rightarrow$ phân tích thuật toán $\rightarrow$ minh họa thực thi bằng mã nguồn mẫu $\rightarrow$ thực hành tấn công thám mã.

                          MÔ HÌNH PHƯƠNG PHÁP HỌC TẬP
┌──────────────────┐     ┌──────────────────┐     ┌──────────────────┐
│  LÝ THUYẾT TOÁN  │ ──> │ THUẬT TOÁN MẬT MÃ│ ──> │ MÔ PHỎNG & CODE  │
│ (Trường GF, DLP) │     │ (SPN, AES, ECDSA)│     │ (Maple 15, C/GMP)│
└──────────────────┘     └──────────────────┘     └──────────────────┘
                                                           │
                                                           ▼
┌──────────────────┐     ┌──────────────────┐     ┌──────────────────┐
│  ỨNG DỤNG THỰC TẾ│ <── │ ĐÁNH GIÁ AN TOÀN │ <── │ KIỂM THỬ THỐNG KÊ│
│ (PAM, SSH, TLS)  │     │(Vi sai, Tuyến tính)│   │ (FIPS/NIST Tests)│
└──────────────────┘     └──────────────────┘     └──────────────────┘

Hệ thống bài tập và thực hành trong giáo trình được phân cấp rõ ràng:

  • Bài tập phân tích và case studies: Phân tích quá trình tạo chữ ký kép (Dual Signature) trong giao thức thanh toán SET giữa Cardholder, Merchant và Acquirer; nghiên cứu ca tấn công BEAST (2011) trên chế độ CBC của TLS 1.0; đánh giá điểm yếu trong bảng khóa của RC4 theo nghiên cứu của AlFardan et al. (2013).
  • Thực hành lập trình và tính toán: Sử dụng môi trường Maple (Maple 15) để chạy các script tìm bảng phân phối sai phân lượng sai của S-box AES, tính toán phép cộng điểm trên nhóm đường cong elliptic, lập trình tính nhân số lớn bằng thư viện GNU MP (mpz_t, mpz_mul, gmp_printf).
  • Phương pháp đánh giá: Đánh giá thông qua hệ thống câu hỏi ôn tập cuối mỗi chương, bài tập lập trình triển khai thuật toán trên ngôn ngữ C (như cài đặt AES, Camellia tại phần phụ lục), và bài tập lớn phân tích an toàn giao thức.

Đối với sinh viên tự học, giáo trình gợi ý lộ trình: đọc hiểu phần tổng quan ứng dụng tại Chương 1 để nắm bức tranh toàn cảnh, sau đó lần lượt nghiên cứu các chương kỹ thuật từ Chương 2 đến Chương 6; trực tiếp gõ và thực thi các đoạn mã Maple đi kèm để đối chiếu kết quả trung gian của các thuật toán phức tạp như ByteSub, MixColumn trong AES hoặc phép nhân điểm $kP$ trong ECC.


Điểm nổi bật và cập nhật

Nội dung giáo trình phản ánh sự chuyển dịch từ các hệ mật cổ điển sang các chuẩn mật mã hiện đại và các giao thức bảo mật thực tế:

  • Cập nhật quá trình chuyển dịch thuật toán: Trình bày chi tiết tiến trình thay thế chuẩn mã hóa dữ liệu cũ DES (khóa 56 bit dễ bị duyệt toàn bộ) bằng chuẩn mã hóa tiên tiến AES (Rijndael với kích thước khóa 128, 192, 256 bit) và chuẩn Camellia. Khảo sát sự nâng cấp từ thuật toán mã dòng SNOW 1.0 lên SNOW 2.0 nhằm khắc phục các điểm yếu thám mã cấu trúc.
  • Tích hợp các nghiên cứu an toàn giao thức: Cập nhật các lỗ hổng bảo mật thực tế như điểm yếu của chế độ mã khối CBC dẫn đến tấn công BEAST trên TLS 1.0, các lỗ hổng thống kê trong bộ sinh khóa của RC4, và sự chuyển đổi tiêu chuẩn giao thức sang TLS 1.1 (RFC 4346), TLS 1.2 (RFC 5246) cùng DTLS (RFC 6437).
  • Gắn liền với tiêu chuẩn công nghiệp và hệ thống thực: Dẫn chiếu trực tiếp các tiêu chuẩn xử lý thông tin liên bang Hoa Kỳ (NIST FIPS PUB 46, FIPS 186), các khuyến nghị RFC của IETF (RFC 2246, RFC 4880, RFC 5652). Minh họa kiến trúc xác thực trên hệ điều hành Linux thông qua Linux-PAM 1.6 và file /etc/shadow sử dụng hàm băm SHA-512 ($6) của thư viện Glibc 2.17, cũng như gói OpenSSH 6.1p1 trên thực tế.

Đối tượng sử dụng giáo trình

Giáo trình được thiết kế cho các nhóm đối tượng cụ thể trong môi trường học thuật và nghiên cứu kỹ thuật:

Nhóm đối tượng Mục đích sử dụng Yêu cầu kiến thức tiên quyết (Prerequisites)
Sinh viên đại học (Năm 3 - Năm 4) Học tập các học phần: Mật mã học, An toàn mạng máy tính, Cơ sở an toàn thông tin. Toán rời rạc, Đại số tuyến tính, Cơ sở dữ liệu, Cấu trúc dữ liệu và giải thuật, Lập trình C/C++.
Học viên cao học & Nghiên cứu sinh Nghiên cứu cấu trúc đại số của mã khối, thám mã vi sai/tuyến tính, mật mã hậu lượng tử và đường cong elliptic. Lý thuyết số nâng cao, Lý thuyết độ phức tạp tính toán, Hệ điều hành nâng cao.
Giảng viên đại học Sử dụng làm giáo trình giảng dạy chính, thiết kế ngân hàng câu hỏi thi và bài tập thực hành phòng Lab. Giảng dạy chuyên ngành Mật mã học và An toàn thông tin.
Kỹ sư an toàn thông tin & Lập trình viên Tài liệu tra cứu tiêu chuẩn kỹ thuật khi tích hợp các thư viện GMP, OpenSSL, Crypto++ hoặc xây dựng hệ thống PKI. Kinh nghiệm phát triển phần mềm trên môi trường Linux/UNIX và quản trị mạng.

Câu hỏi thường gặp

1. Giáo trình này phù hợp với ai?

Tài liệu phù hợp cho sinh viên chuyên ngành An toàn thông tin, Công nghệ thông tin từ năm thứ 3 trở lên, học viên sau đại học và các kỹ sư phần mềm cần tìm hiểu sâu về nguyên lý và cách cài đặt các giải thuật mật mã tiêu chuẩn.

2. Cần kiến thức nền nào để học?

Người học cần trang bị kiến thức toán học cơ bản (lý thuyết số, đại số trừu tượng, trường hữu hạn modulo, ma trận), kiến thức lập trình cơ sở trên ngôn ngữ C/C++ và hiểu biết nền tảng về mạng máy tính cùng hệ điều hành Linux.

3. Điểm khác biệt của giáo trình so với các tài liệu mật mã thuần túy lý thuyết?

Khác với các tài liệu thuần toán học, giáo trình này tích hợp trực tiếp mã nguồn mô phỏng trên phần mềm Maple và mã nguồn C có sử dụng thư viện số lớn GMP, giúp người học chuyển hóa các công thức toán trừu tượng thành các đoạn mã thực thi được.

4. Làm sao để tự học hiệu quả với giáo trình này?

Người học nên cài đặt phần mềm Maple và trình biên dịch GCC trên Linux, đọc song song phần lý thuyết cấu trúc thuật toán với việc chạy các đoạn mã script mẫu trong giáo trình để theo dõi từng bước biến đổi dữ liệu (như tính toán bảng S-box, nhân điểm trên đường cong elliptic).

5. Có tài liệu và mã nguồn bổ trợ nào kèm theo?

Giáo trình cung cấp sẵn các đoạn mã C hoàn chỉnh cho thuật toán AES, thuật toán Camellia ở phần phụ lục cuối sách, các ví dụ lập trình số lớn với thư viện GNU MP (GMP), và hệ thống mã nguồn Maple mô phỏng thuật toán Geffe, RSA, ECDSA trong từng chương.


Kết luận

Giáo trình Mật mã ứng dụng trong an toàn thông tin cung cấp hệ thống tri thức hoàn chỉnh từ cơ sở toán học, nguyên lý thiết kế mật mã đối xứng, mật mã bất đối xứng, đến các giao thức xác thực và tiêu chuẩn mật mã quốc tế. Lộ trình tiếp cận được tổ chức chặt chẽ, kết hợp lý thuyết giải tích với việc triển khai thực tế trên môi trường Maple và C/GMP. Đây là tài liệu học thuật cơ bản đáp ứng yêu cầu giảng dạy, học tập và tra cứu kỹ thuật chuyên sâu trong lĩnh vực an toàn thông tin.