Các thuật toán mật mã ShangMi của Trung Quốc

Từ nội địa hóa đến chuẩn hóa quốc tế, các thuật toán mật mã ShangMi do Trung Quốc phát triển đang khẳng định vị thế và tham vọng dẫn đầu trong kỷ nguyên số.

Upload image

Trong bối cảnh an ninh mạng và chủ quyền kỹ thuật số ngày càng được chú trọng, Trung Quốc đã tự phát triển và tiêu chuẩn hóa một bộ thuật toán mật mã của riêng mình với tên gọi ShangMi (Hán tự: 商密, Hán Việt: Thương Mật, viết tắt SM). Các thuật toán này được quản lý bởi Cục Mật mã Quốc gia Trung Quốc (National Cryptography Administration) và đang dần trở thành bắt buộc cho các ứng dụng thương mại và cơ sở hạ tầng kỹ thuật số quan trọng tại quốc gia này.

Trong bài viết này, chúng ta sẽ cùng tìm hiểu chi tiết các thuật toán cốt lõi của bộ thuật toán mã hóa ShangMi, so sánh với các thuật toán tương tự đang được sử dụng rộng rãi cũng như tầm quan trọng của chúng.

Tổng quan

Bộ thuật toán mã hóa ShangMi là một hệ thống mật mã toàn diện, bao gồm các giải pháp cho mật mã khóa công khai (SM2), hàm băm mật mã học (SM3), mã hóa khối (SM4) và các cơ chế tiên tiến hơn như mật mã dựa trên định danh (SM9).

Upload image

Bộ thuật toán ShangMi được công bố bởi Cục Mật mã Quốc gia Trung Quốc vào năm 2010. Riêng thuật toán SM9 được công bố trễ hơn vào năm 2016.

Đến năm 2016, bộ thuật toán này đã được Cục tiêu chuẩn hóa Trung Quốc (SAC) công nhận năm trở thành tiêu chuẩn mã hóa thương mại quốc gia của Trung Quốc thông qua các tài liệu GM Standards.

Đầu năm 2020, Luật Mật mã Trung Quốc chính thức có hiệu lực, phân loại mật mã thành 3 cấp độ: mật mã lõi, mật mã thông thường và mật mã thương mại với các mức độ giám sát khác nhau. Luật này cũng đã tạo ra hành lang pháp lý yêu cầu cũng như khuyến khích các tổ chức thương mại sử dụng bộ thuật toán ShangMi trong các sản phẩm thương mại.

Hiện nay, các thuật toán ShangMi không chỉ phổ biến tại Trung Quốc mà còn đang từng bước được quốc tế công nhận khi đã xuất hiện trong các tiêu chuẩn mật mã của ISO.

Bên cạnh đó, tài liệu RFC 8998 do IETF phát hành năm 2021 đã cung cấp thông tin và hướng dẫn sử dụng các thuật toán ShangMi với giao thức TLS 1.3 nhằm tăng cường khả năng tương tác. Tuy vậy, những thuật toán này vẫn chưa được IETF chính thức thông qua.

Phân tích các thuật toán ShangMi

SM2 - Mật mã khóa công khai (Public Key Cryptography)

SM2 là một thuật toán mã hóa dựa trên bài toán mật mã đường cong elliptic (Elliptic Curve Cryptography - ECC). Điều này khác với thuật toán phổ biến RSA dựa trên bài toán phân tích thừa số nguyên tố.

SM2 có các đặc tính sau:

  • Nền tảng: Hoạt động dựa trên sự phức tạp của bài toán Logarithm rời rạc trên đường cong elliptic.
  • Đường cong bắt buộc: Một đặc điểm quan trọng của SM2 là nó bắt buộc phải sử dụng một bộ tham số đường cong elliptic cố định có tên là curveSM2 (được gán giá trị 41 trong TLS 1.3). Điều này khác biệt với các thuật toán dựa trên ECC khác như ECDSA, vốn cho phép lựa chọn nhiều đường cong khác nhau.
  • Giá trị định danh (Identifier): Thuật toán SM2 yêu cầu một giá trị định danh khi tạo hoặc xác minh chữ ký. Trong giao thức TLS 1.3, giá trị chuỗi ASCII TLSv1.3+GM+Cipher+Suite được sử dụng. Khi xác minh chứng chỉ, một giá trị khác là 1234567812345678 thường được sử dụng theo chuẩn GM/T 0009-2012.
  • Ứng dụng: Bao gồm các cơ chế như chữ ký số, mã hóa khóa công khai và trao đổi khóa.

SM3 - Hàm băm mật mã học (Cryptographic Hash Function)

SM3 là một hàm băm mật mã học, được thiết kế để tạo ra một giá trị băm (digest) có độ dài cố định từ dữ liệu đầu vào có độ dài bất kỳ. Thuật toán SM3 có nhiều điểm tương đồng với thuật toán SHA-256 với các đặc tính sau:

  • Kích thước đầu ra: SM3 tạo ra một giá trị băm có độ dài 256 bit, tương tự như SHA-256.
  • Hiệu quả và bảo mật: SM3 được đánh giá là tương tự như SHA-256 cả về mặt bảo mật và hiệu quả. Hiện tại, chưa có lỗ hổng bảo mật nghiêm trọng nào được phát hiện đối với thuật toán này.
  • Ứng dụng: Sử dụng trong cơ chế tạo chữ ký số, mã xác thực tin nhắn (MAC) và bộ tạo số giả ngẫu nhiên.

SM4 - Mã hóa khối (Block Cipher)

SM4 (trước đây là SMS4) là một thuật toán mã hóa khối, có nhiều điểm tương đồng với thuật toán AES nổi tiếng.

  • Kích thước khối và khóa: SM4 sử dụng kích thước khối 128-bitkích thước khóa cố định 128-bit. Trong khi đó, thuật toán AES sử dụng khối kích thước 128-bit nhưng cho phép tùy chỉnh kích thước khóa linh hoạt bao gồm 128/192/256-bit.
  • Cấu trúc: Thuật toán này có cấu trúc mạng Feistel không cân bằng (unbalanced Feistel network) với 32 vòng lặp. Một ưu điểm của cấu trúc Feistel là quá trình giải mã gần như giống hệt mã hóa, chỉ cần đảo ngược thứ tự của các khóa vòng.
  • Hộp thay thế (S-Box): Tương tự như AES, S-Box của SM4 được xây dựng dựa trên phép nghịch đảo nhân trên trường hữu hạn GF(2⁸), mặc dù sử dụng các phép biến đổi affine khác nhau.
  • Hỗ trợ phần cứng: SM4 đã được hỗ trợ trên nhiều kiến trúc CPU hiện đại như ARM64 từ phiên bản ARMv8.4-A, RISC-V vào năm 2021, và Intel từ bản Arrow Lake vào năm 2024.
  • Ứng dụng: Bảo mật thông tin trong quá trình truyền tin cũng như lưu trữ thông tin.

SM9 - Mật mã dựa trên định danh (Identity-Based Cryptography - IBC)

SM9 là một thuật toán mã hóa khóa công khai dựa trên định danh (IBC) do Adi Shamir đề xuất lần đầu năm 1984.

  • Khái niệm cốt lõi: Điểm khác biệt lớn nhất của SM9 so với các loại mật mã khóa công khai (PKI) truyền thống là nó cho phép sử dụng một chuỗi định danh duy nhất của người dùng (như ID, số điện thoại, email) làm khóa công khai.
  • Ưu điểm: Cách tiếp cận này giúp đơn giản hóa đáng kể quá trình quản lý, phân phối và duy trì khóa, loại bỏ sự không cần thiết của các chứng chỉ số phức tạp. Điều này làm cho SM9 đặc biệt phù hợp với các môi trường có tài nguyên hạn chế như IoT, nơi các hệ thống PKI truyền thống bị xem là quá cồng kềnh và đòi hỏi tính toán quá nhiều.
  • Cơ chế hoạt động: Khóa riêng tư của người dùng được tạo ra bởi một trung tâm tạo khóa (Key Generation Center - KGC) dựa trên khóa chủ (master key) và định danh của người dùng đó.
  • Nền tảng toán học: Tương tự SM2, SM9 sử dụng các phép toán trên nhóm điểm của đường cong elliptic và các phép ghép cặp song tuyến tính (bilinear pairings).
  • Ứng dụng: Sử dụng chữ ký số, xác thực và trao đổi khóa trong môi trường hạn chế tài nguyên như các thiết bị IoT

Bảng tổng hợp các thuật toán ShangMi

Các thuật toán SM2, SM3, và SM4 được thiết kế như những phương án thay thế trực tiếp cho các tiêu chuẩn quốc tế phổ biến là ECDSA, SHA-256, và AES. Trong khi đó, SM9 cung cấp một mô hình mật mã dựa trên định danh, mang lại lợi thế trong việc đơn giản hóa quản lý khóa, đặc biệt trong môi trường IoT, so với hệ thống PKI truyền thống.

Upload image

Dưới đây là bảng so sánh tóm tắt các thuật toán ShangMi của Trung Quốc và các thuật toán quốc tế tương ứng:

Thuật toán Trung QuốcThuật toán tương đươngNền tảng toán họcĐặc điểm
SM2RSA/ECDSAMật mã đường cong elliptic (ECC) trên trường hữu hạn. Thuật toán này sử dụng một bộ tham số đường cong elliptic 256-bit cố định có tên là curveSM2.Chưa được IETF khuyến nghị sử dụng rộng rãi, chủ yếu phục vụ cho thị trường Trung Quốc. Bắt buộc sử dụng một đường cong elliptic cố định (curveSM2), không linh hoạt như ECDSA có thể dùng nhiều đường cong khác nhau.
SM3SHA-256Dựa trên các phép toán lặp để tạo ra một giá trị băm có độ dài 256 bit.Được xem là tương đương về mặt hiệu quả và bảo mật với thuật toán SHA-256 đang được sử dụng.
SM4AESCấu trúc mạng Feistel không cân bằng. Sử dụng khóa 128 bit, khối dữ liệu 128 bit, và thực hiện qua 32 vòng lặp. Hộp S-Box dựa trên nghịch đảo nhân trên trường hữu hạn GF(2⁸), tương tự AES.Kích thước khối cố định 128-bit, trong khi AES hỗ trợ kích thước khóa linh động hơn gồm 128/192/256-bit.
SM9Chưa cóDựa trên mật mã đường cong elliptic (ECC) và các phép ghép cặp song tuyến tính (bilinear pairings) trên các nhóm trường hữu hạn.Khóa riêng tư được tạo ra bởi trung tâm tạo khóa (KGC) từ một khóa chủ (master key). Điều này khác với PKI truyền thống, nơi người dùng tự tạo khóa riêng tư của mình.

Tổng kết

Các thuật toán ShangMi không chỉ là một bộ công cụ mật mã mà còn là một tuyên bố về chủ quyền công nghệ của Trung Quốc. Chúng đã được thiết kế để trở thành những lựa chọn hiện đại và mạnh mẽ, thay thế cho các tiêu chuẩn của phương Tây.

  • Tính hiện đại và hiệu quả: SM2 và đặc biệt là SM9 cung cấp các giải pháp mật mã khóa công khai hiệu quả cao, rất phù hợp cho các ứng dụng hiện đại như IoT, nơi hiệu suất và quản lý khóa đơn giản là yếu tố then chốt.
  • Sự tương đồng và tin cậy: SM3 và SM4 được thiết kế để có hiệu năng và độ an toàn tương đương với các chuẩn vàng công nghiệp là SHA-256 và AES, giúp việc chuyển đổi và tích hợp trở nên dễ dàng hơn.
  • Hệ sinh thái phát triển: Các thuật toán SM đang nhận được sự hỗ trợ rộng rãi từ các thư viện mã nguồn mở phổ biến như OpenSSL và wolfSSL, cũng như được tích hợp vào các kiến trúc phần cứng lớn, cho thấy sự trưởng thành và sẵn sàng cho việc triển khai rộng rãi. Ngoài ra các hệ điều hành mã nguồn mở do Trung Quốc phát triển như openEuler, OpenHarmony cũng đã hỗ trợ đầy đủ các thuật toán mã hóa này từ cấp độ lõi.

Tham khảo

RFC 8998 ShangMi (SM) Cipher Suites for TLS 1.3

GM Standards

Elliptic curve

SM3 (hash function)

SM4 (cipher)

SM9 (cryptography standard)

Atekco - Home for Authentic Technical Consultants
Atekco on Apple Podcast