Tiêu chuẩn mã hóa dữ liệu AES là gì và các chế độ hoạt động của AES (Phần 2)

19/10/2019

Tiêu chuẩn quốc gia Kỹ thuật Mật mã - Các thuật toán mã hóa - Thuật toán mã dữ liệu AES do Ban Kỹ thuật tiêu chuẩn TCVN/JTC1/SC 27 “Các kỹ thuật mật mã” biên soạn, Ban cơ yếu Chính phủ đề nghị, Bộ Khoa học và Công nghệ ban hành trong chương trình xây dựng tiêu chuẩn quốc gia năm 2007-2008.

Dịch vụ sao lưu dữ liệu trực tuyến Cloud Backup hiện mã hóa dữ liệu theo các tiêu chuẩn mã hóa mới nhất, đảm bảo sao lưu dữ liệu an toàn.

Phạm vi áp dụng: Tiêu chuẩn AES áp dụng cho việc mã hóa dữ liệu trong các hoạt động giao dịch điện tử của các tổ chức, công dân Việt Nam và tổ chức, công dân nước ngoài có quan hệ kinh tế - xã hội với tổ chức, công dân Việt Nam.

Tiêu chuẩn này mô tả về thuật toán Rijndael là mã khối đối xứng xử lý các khối dữ liệu có độ dài 128 bit, sử dụng  khóa mã có độ dài 128, 192 và 256 bit (Thuật toán Rijndael được thiết kế còn để hỗ trợ thêm cho các kích cỡ khối và độ dài khóa khác nhưng chúng không được đưa ra trong tiêu chuẩn này).

Sau đây, thuật toán này sẽ được gọi là “thuật toán AES”. Do thuật toán này có thể được sử dụng với ba độ dài khóa khác nhau như đã đề cập ở trên nên nó cũng được tham chiếu đến bằng ba tên gọi tương ứng là “AES-128”, “AES-192” và “AES-256”.

Tiêu chuẩn mã hóa dữ liệu đầu tiên trên thế giới có tên là Tiêu chuẩn mã dữ liệu DES (Data Encyption Standard) do Cơ quan an ninh Quốc gia Hoa Kỳ (NSA) đề xuất  trên cơ sở cải tiến thuật toán Lucifer do hãng IBM công bố năm 1964. DES đã được sử dụng rộng rãi ở Hoa Kỳ và nhiều quốc gia khác trong các thập kỷ 70, 80, 90 cho đến khi được thay thế bởi Tiêu chuẩn  mới - Tiêu chuẩn mã hóa dữ liệu tiên tiến AES (Advanced Encryption Standard) vào năm 2002. Cần nói thêm rằng, được sự khuyến khích và quan tâm của cộng đồng người dùng, sau khi DES ra đời thì hàng loạt các thuật toán và tiêu chuẩn mã hóa dữ liệu đã được công bố như Thuật toán mã hóa dữ liệu quốc tế IDEA (International Data Encryption Algorithm), SAFER (Secure And Fast Encryption Routine), FEAL, SKIPJACK, RIDOC, LOKI, RC2, RC5,…

Hoạt động xây dựng tiêu chuẩn mật mã nói chung và tiêu chuẩn mã dữ liệu nói riêng rất được coi trọng trên thế giới. Tại Hoa Kỳ, tiêu chuẩn mã dữ liệu DES được công bố vào những năm 70 đã sử dụng trong vòng hơn hai mươi năm. Đến năm 1997 trước nguy cơ bị phá, Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (NIST) đã tiến hành việc xây dựng tiêu chuẩn mới. Năm 2001 thì Tiêu chuẩn mã dữ liệu mới được chính thức đưa vào sử dụng và được gọi là Tiêu chuẩn mã dữ liệu tiên tiến AES. Liên Xô cũ công bố tiêu chuẩn mã dữ liệu GOST 28147-89 vào năm 1989, ngày nay tiêu chuẩn này đã được Liên bang Nga kế thừa và được các nước cộng đồng SNG sử dụng. Nhật Bản đã tổ chức xây dựng hệ thống tiêu chuẩn mật mã trong khuôn khổ dự án có tên là Cryptrec được tiến hành trong 4 năm (1999-2003). Hàn Quốc xây dựng chuẩn mã dữ liệu có tên là SEED hiện vẫn được sử dụng. Nhìn chung, hai nước có hoạt động sớm trong lĩnh vực này là Hoa Kỳ và Nga. Phần lớn các nước còn lại tiến hành hoạt động này vào cuối những năm 90 của thế kỷ trước, một số nước khác tiến hành vào những năm gần đây. Tuy vậy, do sự phát triển nhanh chóng  của hoạt động giao dịch điện tử như Chính phủ điện tử, thương mại điện tử, ngân hàng trực tuyến,… nên phần lớn các nước trên thế giới đều rất coi trọng hoạt động xây dựng chuẩn mã dữ liệu.

Tiêu chuẩn quốc gia Việt Nam về Mã hóa dữ liệu đã được đưa vào chương trình xây dựng tiêu chuẩn quốc gia năm 2007 của Bộ Khoa học và công nghệ. Nội dung của Tiêu chuẩn này bao gồm các phần sau:

Thuật toán mã dữ liệu AES được NIST ban hành thành FIPS PUB 197: ADVANCED ENCRYPTION STANDARD - AES (Tiêu chuẩn mã hóa dữ liệu tiên tiến - AES) ngày 26/11/2001 và ISO ban hành trong ISO/IEC 18033-3 Information technology- Security techniques- Encryption algorithms - Part 3: Block ciphers (Công nghệ thông tin - Kỹ thuật an toàn - Thuật toán mã hóa - Phần 3: Các hệ mã khối).

Các chế độ hoạt động của AES

Khi cài đặt thuật toán mã AES người ta thường không sử dụng ở dạng nguyên gốc. AES thường hoạt động ở bốn chế độ cơ bản của mã khối n-bit (ECB, CBC, CFB và OFB) đặc tả bởi tiêu chuẩn ISO/IEC 10116:1997 Information technology– Security techniques – Modes of operation for an n-bit cipher (Công nghệ thông tin- kỹ thuật an toàn- chế độ hoạt động của mã hóa nbit). Trên cơ sở bốn chế độ cơ bản ban đầu này người ta đã phát triển thêm một số chế độ khác (Có thể trong tương lai ISO/IEC sẽ công bố thêm một số chế độ hoạt động khác nữa cho mã khối. Hiện tại ISO/IEC mới quy định bốn chế độ cơ bản nói trên). Sau đây là những nét sơ lược của bốn chế độ này.

Chế độ sách mã điện tử ECB (Electronic Code Book): Trong chế độ ECB các khối rõ được mã hoá độc lập nhau và khối mã được giải mã độc lập: Ci = Ek(Mi); Mi = Dk(Ci), trong đó Ek và Dk là các phép mã hoá và giải mã theo khoá mật K.

Chế độ xích liên kết khối mã CBC (Cipher block Chaining): Trong chế độ này, đầu tiên người ta tạo ra một xâu nhị phân 64 bit được gọi là véc-tơ khởi đầu và thông báo cho nhau. Trong bước đầu tiên khối dữ liệu rõ M1 được cộng với véc-tơ khởi đầu theo phép cộng bit, kết quả nhận được sẽ được biến đổi qua các phép mã hóa để được đầu ra là khối mã C1. Ở các bước sau, mỗi khối Mi của bản rõ được cộng theo modulo 2 với bản mã trước đó Ci-1 và được mã hoá:

Ci = Ek(Mi r Ci-1)
Mi =Dk(Ci) r Ci-1

Chế độ mã liên kết ngược CFB (Cipher Feed Back): Chế độ này này khác với chế độ CBC, tại bước đầu tiên véc-tơ khởi đầu được mã hóa bằng Ek rồi cộng theo modulo 2 với khối rõ. Kết quả thu được lại làm véc-tơ khởi đầu cho bước tiếp theo, rồi lại thực hiện tương tự chế độ CBC:

Ci = Mi r Ek(Ci-1)
Mi =Ci r Dk(Ci-1) 

Chế độ đầu ra liên kết ngược OFB (Output Feedback): Thực chất của chế độ OFB là tạo ra khóa dòng rồi cộng theo modulo 2 với bản rõ. Khóa dòng được tạo như sau: Đầu tiên lấy véc-tơ khởi đầu s0 rồi mã hóa qua phép mã khối Ek được s1. Tiếp đó, s1 lại được mã hóa qua Ek để được s2,.. và cứ thế thực hiện cho đến khi tạo được khóa dòng có độ dài bằng dữ liệu cần mã.

Mỗi chế độ sử dụng mã khối trên đây đều có ưu điểm và nhược điểm riêng. Tùy từng trường hợp cụ thể mà người ta lựa chọn một chế độ sử dụng phù hợp đáp ứng yêu cầu bảo mật đặt ra.

Thực thi thuật toán AES bằng phần mềm:

Thuật toán AES cho phép thực thi hiệu quả bằng cả phần mềm và phần cứng. Thông thường, với những ứng dụng không yêu cầu hiệu năng và tốc độ cao thì thuật toán thường được thực thi ở dạng phần mềm. Ngược lại, có những thiết bị phần cứng chuyên dụng cho phép thực thi thuật toán AES với tốt độ cao và khả năng vận hành bền vững.



Nếu xét về ngôn ngữ lập trình thì hiện có khá nhiều mã nguồn thực thi thuật toán AES được viết bằng nhiều ngôn ngữ lập trình (Assembler, C/C++, Visual Basic, Java, C#,…) có thể vận hành trên nhiều nền hệ điều hành (Windows, Linux/Unix, Solaris,…) chạy các vi xử lý dòng Intel, AMD,... Việc lựa chọn ngôn ngữ lập trình nào để thể hiện thuật toán AES tùy thuộc vào ý thích và khả năng của người lập trình cũng như mục đích, nền tảng phần cứng cho phép. Chẳng hạn, nếu với mục đích cứng hóa thuật toán thì người lập trình thường chọn các dạng ngôn ngữ ở thấp như hợp ngữ Assembler. Nếu hướng tới việc xây dựng các thư viện mật mã để thực thi trong nhân hệ điều hành hoặc sử dụng bởi ứng dụng khác thì người lập trình lại thường chọn ngôn ngữ C/C++. Nếu thực thi thuật toán trong các ứng dụng đồ họa thì người lập trình lại thường chọn các ngôn ngữ bậc cao như Visual Basic, Visual C++, Java, C#,… Nếu viết để thực thi thuật toán AES trên nền web thì người lập trình thường chọn các ngôn ngữ hướng web như Java, VBScript, JavaScript, C#,… Hiện nay, trên Internet có rất nhiều mã nguồn thực thi thuật toán AES do nhiều tác giả viết bằng nhiều dạng ngôn ngữ lập trình khác nhau. Tuy nhiên, chúng ta được khuyến cáo chỉ nên tham khảo một số mã nguồn thuật toán được cung cấp bởi các tác giả đáng tin cậy. Trước hết, nên tham khảo website hỗ trợ nhiều thông tin về AES cung cấp bởi NIST tại địa chỉ: https://csrc.nist.gov/archive/aes/. Nội dung của website này mô tả rất nhiều vấn đề liên quan đến AES như: đặc tả thuật toán AES, mã nguồn chương trình thực thi, các véc-tơ kiểm tra thuật toán, một số bài báo liên quan đến AES, các bản báo cáo của NIST về quá trình phát triển AES, các chế độ hoạt động của thuật toán mã khối AES, một số công cụ mật mã,…

Mã nguồn tin cậy của thuật toán AES nói riêng và thuật toán Rijndael nói chung được Vincent Rijmen đưa ra trên một website cá nhân tại địa chỉ https://www.iaik.tu-graz.ac.at/research/ krypto/aes/old/~rijmen/rijndael/. Ở website này có thể tải xuống mã nguồn thực thi thuật toán bằng nhiều ngôn ngữ lập trình cũng như một số bài viết và hình ảnh liên quan đến thuật toán Rijndael. 

Brian Gladman - một chuyên gia mật mã làm việc tại Worcester (Anh) đưa ra một số mã nguồn thực thi thuật toán AES được đánh giá cao tại website cá nhân tại địa chỉ https://fp.gladman.plus.com/index.htm. Ngoài mã nguồn thực thi thuật toán, các véc-tơ kiểm tra thuật toán AES cũng được cung cấp ở website trên.

Cộng đồng mã nguồn mở cũng đã xây dựng nên một bộ thư viện các hàm mật mã tương đối đồ sộ tại dự án OpenSSL (www.openssl.org). Bộ thư viện này bao gồm rất nhiều chương trình thực thi các thuật toán mật mã khác nhau trong đó có chương trình thực thi thuật toán AES.

Trên cơ sở mã nguồn chương trình thực thi cung cấp bởi NIST và một số nhà mật mã học nổi tiếng, Học viện Kỹ thuật Mật mã – Ban Cơ yếu Chính phủ đã xây dựng một bộ chương trình thực thi thuật toán AES bằng ngôn ngữ C/C++ theo các chế độ hoạt động của thuật toán mã khối đã nêu ở trên. Ngoài chương trình thực thi thuật toán còn cung cấp thêm các véc-tơ kiểm tra và chương trình thực thi việc kiểm tra thuật toán.

Thực thi thuật toán AES bằng phần cứng

Các thiết bị phần cứng thực thi thuật toán AES được chia làm hai dòng. Dòng thiết bị thứ nhất dựa vào một hệ vi xử lý liên kết với hệ vi xử lý chính của máy tính (co-processor). Thông thường thiết bị thuộc dòng này được thiết kế ở dạng card chuyên dụng kết nối qua giao diện ghép nối với máy tính (ví dụ qua PCI). Dòng thiết bị thứ hai thường được thiết kế ở dạng thẻ thông minh (Smart Card) hoặc các thiết bị cắm qua cổng USB (USB Devices). Các thiết bị thuộc dòng thứ hai thường có một hệ vi xử lý (CPU) và bộ nhớ (ROM/RAM) riêng để thực thi thuật toán độc lập so với máy tính.

Công nghệ cứng hóa thuật toán hiện cũng tồn tại hai dòng. Dòng công nghệ thứ nhất sử dụng một kỹ thuật chuyên dụng chẳng hạn như ASIC (Application Specific Integrated Circuit). Công nghệ ASIC cho phép thực thi thuật toán nhanh và hiệu quả với năng lượng tiêu tốn rất ít. Tuy nhiên, công nghệ này có một số hạn chế như không cho phép sửa đổi thuật toán sau khi đã tạo thành thiết bị. Dòng công nghệ thứ hai sử dụng một bộ mạch tích hợp chứa hệ vi xử lý cho phép lập trình bằng phần mềm. Với công nghệ này, thuật toán có thể được cấu hình lại theo ý đồ của người lập trình nhưng vẫn cho phép thực thi thuật toán với tốc độ và hiệu quả cao. Điển hình cho dòng công nghệ này là các thiết bị sử dụng công nghệ FPGA (Field Programmable Gate Arrays). Hiện nay, công nghệ FPGA được coi là công nghệ có nhiều ưu điểm và được sử dụng trong hầu hết các thiết bị phần cứng thực thi thuật toán AES. Có thể tham khảo trang https://www.iaik.tu-graz.ac.at/research/krypto/AES/ để có thông tin đầy đủ hơn về các vấn đề thực thi thuật toán AES bằng phần cứng.
Với việc thực thi hiệu quả các thuật toán AES, Tiêu chuẩn quốc gia Việt Nam về Mã hóa dữ liệu sẽ góp phần thúc đẩy ứng dụng các sản phẩm bảo mật thông tin tại Việt Nam và là một công cụ hữu hiệu để đánh giá các sản phẩm mật mã.

TS. Trần Đức Lịch, KS. Hồ Sỹ Tấn, KS. Trần Kim Phượng

Dịch vụ sao lưu dữ liệu trực tuyến Cloud Backup của Viettel IDC mã hóa dữ liệu bằng các chuẩn mã hóa như (AES 256, DES 64, RC2 128, 3DES 168) đảm bảo an toàn bảo mật thông tin. 

Tìm hiểu thêm về dịch vụ sao lưu dữ liệu Cloud Backup TẠI ĐÂY

Hoặc gọi: 1800 8088 để được tư vấn.

 

Tin liên quan

07/03/2024

Khám phá 3 ứng dụng nổi bật của mô hình trí tuệ nhân tạo tạo sinh

Trí tuệ nhân tạo tạo sinh đang tạo nên những đột phá mới, mở ra cánh cửa cho vô số ứng dụng sáng tạo. Bài viết này sẽ giới thiệu 3 ví dụ điển hình về cách thức các mô hình trí tuệ nhân tạo tạo sinh đang được ứng dụng, giúp bạn hiểu hơn về công nghệ AI này.

07/03/2024

SSL miễn phí và trả phí - Đâu là lựa chọn thông minh?

Với sự xuất hiện của nhiều loại SSL khác nhau, không ít người băn khoăn có nên lựa chọn SSL miễn phí hay không. Trong bài viết này, Viettel IDC sẽ điểm qua các thông tin quan trọng, giúp bạn hiểu rõ lợi ích và hạn chế khi đăng ký SSL miễn phí.

20/05/2024

NPU là gì? Khám phá lợi ích nổi bật của NPU có thể bạn chưa biết

Ứng dụng NPU được xem là công cụ giúp người dùng khai thác sức mạnh của trí tuệ nhân tạo hiệu quả hơn. Trong bài viết này, chúng ta sẽ khám phá chi tiết hơn về NPU là gì, bao gồm cách thức hoạt động, lợi ích cũng như tầm quan trọng của chúng trong việc giải quyết các nhiệm vụ AI trong đời sống.

11/04/2024

Cyber attack là gì? Các loại hình tấn công và giải pháp ngăn chặn phổ biến

Cyber attack được xem là vấn đề an ninh mạng mà không một cá nhân, tổ chức nào có thể xem nhẹ. Trong bài viết này, hãy cùng Viettel IDC tìm hiểu tổng quan Cyber Attack là gì cũng như giải pháp phòng chống đáng cân nhắc nhé.

18/04/2024

Hiểu về 3 loại lưu trữ dữ liệu đám mây chính hiện nay

Với khả năng lưu trữ và quản lý dữ liệu một cách dễ dàng và hiệu quả, Cloud Storage - lưu trữ đám mây đang dần trở thành giải pháp linh hoạt và hiệu quả, được nhiều người ưa chuộng. Hãy cùng Viettel IDC khám phá về 3 loại lưu trữ đám mây chính hiện nay với bài viết sau nhé.

16/04/2024

Mức độ nguy hiểm của lỗ hổng Zero Day Attack có thể bạn chưa biết

Một trong những nguy hiểm tiềm ẩn mà người dùng cần đặc biệt lưu ý là lỗ hổng Zero Day Attack. Vậy Zero Day Attack là gì? Mức độ nguy hiểm của chúng có gì đáng lưu tâm? Hãy cùng Viettel IDC tìm hiểu chi tiết hơn qua bài viết sau, giúp bạn nâng cao ý thức phòng tránh khỏi những mối đe dọa tiềm ẩn này nhé.

15/04/2024

Bí quyết tăng tốc website nhanh chóng và dễ dàng

Trong bài viết này, Viettel IDC sẽ hướng dẫn bạn những bí quyết giúp tăng tốc website nhanh chóng và hiệu quả, giúp tối ưu hiệu suất, tốc độ website của mình, hãy cùng điểm qua nhé.

03/04/2024

3 lý do không thể bỏ qua Custom Domain cho doanh nghiệp

Việc sở hữu một tên miền riêng, được cá nhân hóa cho doanh nghiệp đóng vai trò vô cùng quan trọng, không chỉ giúp nâng cao uy tín và độ nhận diện thương hiệu mà còn tạo dựng niềm tin vững chắc với khách hàng. Hãy cùng khám phá ba lý do cốt lõi giải thích vì sao Custom Domain là một yếu tố không thể thiếu trong hành trình xây dựng và phát triển thương hiệu của doanh nghiệp nhé.

22/04/2024

Nguy cơ tiềm ẩn của Cross Site Scripting XSS có thể bạn chưa biết

Trong khi lĩnh vực công nghệ thông tin ngày càng phát triển, Cross Site Scripting vẫn được xem là mối đe dọa an ninh mạng đáng e ngại đối với người dùng. Mặc dù các biện pháp phòng ngừa đã được cải thiện đáng kể trong những năm qua, XSS vẫn có thể gây ra hậu quả nghiêm trọng cho cá nhân, doanh nghiệp và tổ chức.

24/04/2024

Tìm hiểu chi tiết về hình thức kiểm thử xâm nhập Pentest

Để chủ động trước những cuộc tấn công có thể xảy ra, gây nên những tổn thất không mong muốn, nhiều doanh nghiệp đã và đang triển khai giải pháp kiểm thử xâm nhập cho toàn bộ hệ thống của mình

// doi link