Từ điển học thuật Kỹ thuật và công nghệ

Giải mã là gì? Các công bố khoa học về Giải mã

là quá trình chuyển đổi một tín hiệu, chuỗi dữ liệu hoặc thông điệp đã được mã hóa trở lại dạng thông tin gốc ban đầu.

307 lượt xem Cập nhật 13/9/2026

{"ops":[{"insert":"Giải mã là quá trình chuyển đổi thông tin từ dạng được mã hóa sang dạng ban đầu. Điều này thường được áp dụng trong lĩnh vực mã hóa và bảo mật thông tin. Khi thông tin được mã hóa, nó trở thành không đọc được và cần được giải mã để truy cập và hiểu được nội dung gốc. Quá trình giải mã thường sử dụng các thuật toán và khóa để chuyển đổi thông tin mã hóa trở lại thành dạng ban đầu.\nTrong lĩnh vực mã hóa và bảo mật thông tin, giải mã là quá trình chuyển đổi dữ liệu đã được mã hóa trở lại thành dữ liệu ban đầu. Mục đích của giải mã là để đảm bảo rằng thông tin có thể được truy cập và hiểu được bởi người nhận hoặc ứng dụng mà không bị lộ thông tin hay bị thay đổi.\n\nQuá trình giải mã thường sử dụng một khóa giải mã cùng với thuật toán giải mã để chuyển đổi dữ liệu mã hóa trở lại thành dữ liệu gốc. Khóa giải mã là một giá trị bí mật, chỉ có người nhận hoặc ứng dụng có khóa đúng mới có thể giải mã thành công. Thông thường, cùng một thuật toán mã hóa sẽ có một thuật toán giải mã tương ứng.\n\nQuá trình giải mã phụ thuộc vào loại mã hóa được sử dụng. Có nhiều phương pháp mã hóa và giải mã phổ biến như mã hóa đối xứng (symmetric encryption) và mã hóa không đối xứng (asymmetric encryption).\n\nTrong mã hóa đối xứng, cùng một khóa được sử dụng cả trong quá trình mã hóa và giải mã. Ví dụ, khi một tin nhắn được mã hóa với khóa A, người nhận sẽ sử dụng khóa A để giải mã tin nhắn và truy cập nội dung gốc.\n\nTrong mã hóa không đối xứng, một cặp khóa được sử dụng, bao gồm khóa công khai (public key) và khóa bí mật (private key). Người gửi sẽ sử dụng khóa công khai của người nhận để mã hóa thông tin và người nhận sẽ sử dụng khóa bí mật để giải mã thông tin. Quá trình này đảm bảo tính bất khả xâm phạm và bảo mật của thông tin.\nQuá trình giải mã thường được thực hiện theo các bước sau:\n\n1. Chọn thuật toán giải mã: Trước khi có thể giải mã, người gửi và người nhận cần đồng ý với một thuật toán cụ thể để sử dụng trong quá trình giải mã. Có nhiều thuật toán giải mã phổ biến như AES, RSA, DES, và Blowfish.\n\n2. Xác định khóa giải mã: Để có thể giải mã thành công, người nhận cần biết khóa giải mã tương ứng với thuật toán đã được sử dụng. Khóa giải mã có thể được chia sẻ trước đó qua kênh an toàn hoặc sử dụng các phương pháp trao đổi khóa an toàn như giao thức Diffie-Hellman.\n\n3. Thực hiện giải mã: Với thuật toán và khóa giải mã đã xác định, người nhận sẽ áp dụng thuật toán giải mã và khóa giải mã để chuyển đổi dữ liệu đã mã hóa trở lại thành dữ liệu ban đầu. Quá trình này liên quan đến các phép tính toán phức tạp theo thuật toán cụ thể.\n\nVí dụ:\n\n1. Mã hóa đối xứng: Trong mã hóa đối xứng, cùng một khóa được sử dụng cho quá trình mã hóa và giải mã. Ví dụ, nếu dữ liệu được mã hóa bằng thuật toán AES với khóa \"123456789\", người nhận cũng sẽ sử dụng khóa \"123456789\" để giải mã tin nhắn và truy cập dữ liệu gốc.\n\n2. Mã hóa không đối xứng: Trong mã hóa không đối xứng, một cặp khóa được sử dụng, gồm khóa công khai và khóa bí mật. Ví dụ, nếu người gửi sử dụng khóa công khai của người nhận để mã hóa dữ liệu, người nhận sẽ sử dụng khóa bí mật tương ứng để giải mã và truy cập dữ liệu gốc.\n\nQuá trình giải mã là một phần quan trọng của quá trình mã hóa và bảo mật thông tin. Nó có vai trò quan trọng trong việc đảm bảo tính toàn vẹn, sự bảo mật và sự riêng tư của thông tin.\n"}]}

Giải mã mã kiểm tra chẵn lẻ mật độ thấp (LDPC) và lan truyền niềm tin

giải mã (Decoding) là quá trình chuyển đổi một tín hiệu, chuỗi dữ liệu hoặc thông điệp đã được mã hóa trở lại dạng thông tin gốc ban đầu.

Thuật toán giải mã tiêu chuẩn cho mã LDPC là thuật toán Lan truyền niềm tin (Belief Propagation - BP) hay giải thuật Tổng - Tích (Sum-Product Algorithm). Thuật toán hoạt động theo nguyên lý giải mã mềm lặp đi lặp lại: các thông điệp mang thông tin xác suất tin cậy (dưới dạng tỷ số khả dĩ logarit - LLR) được tính toán và trao đổi liên tục qua lại dọc theo các cạnh của đồ thị Tanner giữa nút biến và nút kiểm tra. Qua mỗi vòng lặp, độ tin cậy của từng bit được tinh chỉnh cho đến khi toàn bộ các phương trình kiểm tra chẵn lẻ đều được thỏa mãn hoặc đạt đến số vòng lặp tối đa, mang lại hiệu năng sửa sai vượt trội với độ phức tạp tính toán tuyến tính.

Giải mã mã cực (Polar Codes) và thuật toán Successive Cancellation List

Mã cực (Polar Codes), do Erdal Arikan phát minh năm 2009, là họ mã toán học đầu tiên được chứng minh nghiêm ngặt có khả năng đạt dung lượng kênh Shannon cho các kênh đối xứng nhị phân rời rạc với độ phức tạp mã hóa và giải mã thấp O(N log N). Nguyên lý cơ bản của mã cực là sự phân cực kênh (Channel Polarization): thông qua phép biến đổi đệ quy, một tập hợp N kênh vật lý đồng nhất độc lập được chuyển hóa thành N kênh ảo phân cực cao, trong đó một tỷ lệ kênh trở nên hoàn toàn không có nhiễu (dung lượng tiệm cận 1) và các kênh còn lại trở nên hoàn toàn nhiễu (dung lượng tiệm cận 0). Thông tin hữu ích chỉ được truyền trên các kênh sạch, trong khi các bit đóng băng cố định (Frozen bits) được truyền trên các kênh nhiễu.

Thuật toán giải mã khử tuần tự (Successive Cancellation - SC) ban đầu giải mã từng bit một theo chuỗi thứ tự nhân quả, nhưng dễ bị lan truyền lỗi khi một bit đầu tiên bị quyết định sai. Để khắc phục, thuật toán Successive Cancellation List (SCL) kết hợp mã kiểm tra CRC ngoài được phát triển: thuật toán duy trì đồng thời L đường dẫn giải mã ứng viên tiềm năng nhất qua từng bước. Nhờ hiệu năng xuất sắc ở độ dài khối ngắn và trung bình, Polar Codes cùng thuật toán SCL đã được liên minh 3GPP chính thức lựa chọn làm chuẩn mã hóa kênh điều khiển cho mạng viễn thông thế hệ thứ năm 5G NR.

Thuật toán Viterbi và thuật toán BCJR trong giải mã mã xoắn

Mã xoắn (Convolutional Codes) là một trong những kỹ thuật mã hóa kênh lâu đời và thành công nhất trong viễn thông số. Thuật toán Viterbi, phát minh bởi Andrew Viterbi năm 1967, là giải thuật giải mã theo nguyên lý hợp lý cực đại (Maximum Likelihood Sequence Detection - MLSD) tìm đường đi có khoảng cách trọng số nhỏ nhất qua lưới thời gian (Trellis diagram). Với độ phức tạp tính toán tăng tuyến tính theo chiều dài chuỗi bit, Viterbi trở thành giải thuật tiêu chuẩn trên các bộ xử lý DSP trong truyền thông vệ tinh không gian sâu và mạng 3G/4G.

Trong khi thuật toán Viterbi tối ưu hóa tỷ lệ lỗi chuỗi ký tự (Frame Error Rate), thuật toán Bahl-Cocke-Jelinek-Raviv (BCJR) tối ưu hóa tỷ lệ lỗi từng bit cá lẻ (Bit Error Rate) bằng cách tính toán xác suất tiên nghiệm cực đại (Maximum A Posteriori - MAP). Mặc dù có độ phức tạp cao gấp đôi Viterbi do phải tính toán quét xuôi (forward metric) và quét ngược (backward metric), thuật toán BCJR là trái tim của bộ giải mã Turbo mã hóa lặp (Turbo Codes), mở đường cho kỷ nguyên giải mã mềm hiện đại đạt giới hạn dung lượng kênh.

Ứng dụng giải mã trong hệ thống lưu trữ flash và điện toán lượng tử

Trong các ổ cứng thể rắn hiện đại (NAND Flash SSD), mật độ lưu trữ ngày càng cao (từ SLC đến TLC và QLC) dẫn đến sự suy giảm tỷ số tín hiệu trên nhiễu (SNR) và tăng lỗi ô nhớ do mài mòn điện tích sau nhiều chu kỳ ghi xóa. Các bộ điều khiển SSD hiện đại tích hợp các bộ giải mã LDPC cứng và mềm siêu nhanh trên phần cứng ASIC chuyên dụng, tự động chuyển đổi mức điện áp đọc để thực hiện giải mã mềm lặp, kéo dài tuổi thọ và độ tin cậy của dữ liệu lưu trữ đám mây.

Trong điện toán lượng tử, lý thuyết giải mã mã sửa sai lượng tử (Quantum Error Correction - QEC) đóng vai trò sống còn để xây dựng các máy tính lượng tử có khả năng chịu lỗi (Fault-Tolerant Quantum Computers). Các thuật toán giải mã mã bề mặt lượng tử (Surface Codes) như thuật toán ghép cặp trọng số cực tiểu (Minimum-Weight Perfect Matching - MWPM) và thuật toán giải mã hợp nhất cụm (Union-Find decoder) liên tục sửa chữa các lỗi lật bit (bit-flip) và lỗi lật pha (phase-flip) của các qubit vật lý theo thời gian thực với độ trễ cực nhỏ micro-giây.

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

Giải mã cứng (Hard-decision) và giải mã mềm (Soft-decision) trong truyền thông vô tuyến khác nhau thế nào?

Giải mã cứng lượng tử hóa tín hiệu tương tự thu được thành các giá trị bit nhị phân dứt khoát (0 hoặc 1) trước khi đưa vào bộ giải mã sửa sai (ECC), làm mất mát thông tin về độ tin cậy của biên độ. Giải mã mềm giữ lại toàn bộ giá trị điện áp liên tục hoặc tỷ số khả dĩ logarit (LLR), cung cấp thông tin về xác suất tin cậy của từng bit, giúp nâng cao hiệu năng sửa sai thêm khoảng 2 đến 3 dB.

Thuật toán giải mã Viterbi hoạt động trên nguyên lý toán học nào?

Thuật toán Viterbi là một giải thuật quy hoạch động (dynamic programming) tìm kiếm đường đi có xác suất hợp lý tối đa (Maximum Likelihood) qua một đồ thị lưới (trellis) biểu diễn các trạng thái của mã cuộn (convolutional code). Thuật toán loại bỏ đệ quy các đường đi nhánh có khoảng cách tích lũy không tối ưu, giảm thiểu độ phức tạp tính toán từ hàm mũ xuống hàm tuyến tính theo chiều dài chuỗi.

Giải mã kênh (Channel Decoding) và giải mã nguồn (Source Decoding) phân chia trách nhiệm thế nào?

Giải mã nguồn chịu trách nhiệm giải nén dữ liệu nhằm loại bỏ tính dư thừa và khôi phục định dạng nội dung đa phương tiện gốc (như giải nén JPEG, MP3 hay H.264). Trong khi đó, giải mã kênh sử dụng các bit kiểm tra dư thừa có chủ đích (như mã Reed-Solomon, Turbo hay LDPC) để phát hiện và sửa các lỗi bit do nhiễu vật lý trên đường truyền viễn thông.

Tài liệu tham khảo

  1. Umanesan, Fujiwara (2003). Parallel decoding cyclic burst error correcting codes. IEEE International Symposium on Information Theory, 2003. Proceedings.. DOI: 10.1109/isit.2003.1228437
  2. Elias (1991). Error-correcting codes for list decoding. IEEE Transactions on Information Theory. DOI: 10.1109/18.61123
  3. Guruswami (2004). 12 Sample Applications Outside Coding Theory. Lecture Notes in Computer Science. DOI: 10.1007/978-3-540-30180-6_13