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

23/03/2020

Phương pháp triển khai và vận hành quy trình làm việc từ xa cho doanh nghiệp

Làm việc từ xa là một khái niệm không mới với các freelancer hay các nhóm làm việc đa quốc gia, đặc biệt là trong lúc dịch bệnh Covid-19 đang hoành hành như hiện nay.

21/03/2020

Cần chuẩn bị những gì để làm việc từ xa trong thời gian dịch Covid-19 diễn ra?

Để có thể làm việc từ xa hiệu quả bạn cần phải chuẩn bị rất nhiều thứ, trong đó có việc đảm bảo có máy tính kết nối Internet, sử dụng thành thạo các phần mềm lưu trữ, bảo mật riêng của cơ quan,...

18/03/2020

Cloud PC (VDI) là gì? Cloud PC gồm những thành phần nào?

Cloud PC là giải pháp máy tính ảo được xây dựng dựa trên công nghệ điện toán đám mây, lưu trữ dữ liệu máy tính người dùng tại trung tâm dữ liệu, được trang bị nhiều lớp bảo mật.

18/03/2020

Giải pháp Cloud PC (VDI) đem lại những lợi ích nào cho doanh nghiệp?

Cloud PC (VDI) đem đến nhiều lợi ích lớn cho doanh nghiệp, trong đó có thể kể đến như việc làm giảm đi đáng kể mức chi phí phải đầu tư về tài nguyên phần cứng cho toàn hệ thống máy tính làm việc.

18/03/2020

Cloud Camera là gì? So sánh Cloud Camera và Camera truyền thống?

Giải pháp Cloud Camera là hệ thống truyền dẫn tín hiệu và lưu trữ dữ liệu video từ các Camera phân tán, cho phép người dùng xem, tương tác với các camera và dữ liệu video trực tuyến qua mạng, mang lại nhiều lợi ích cho doanh nghiệp.

18/03/2020

Cloud Camera - Giải pháp quản trị doanh nghiệp hiệu quả

Sử dụng Cloud Camera, doanh nghiệp có thể theo dõi cùng lúc nhiều địa điểm, chi nhánh trên cùng một giao diện, một tài khoản; theo dõi và truy xuất dữ liệu 24/7 (không lo mất dữ liệu khi đầu ghi hình hỏng như các giải pháp Camera truyền thống).

10/03/2020

Học trực tuyến - Khi E-Learning kết hợp với công nghệ điện toán đám mây

Đám mây" (Cloud) có những ảnh hưởng tích cực tới giáo dục như tiết kiệm chi phí thiết lập phần mềm đào tạo, phát triển các khóa học trực tuyến,... Cloud cho phép con người lưu trữ mọi tập tin, dịch vụ và tài sản kỹ thuật số trên máy chủ ảo, đồng thời có thể chia sẻ với các thiết bị ở bất cứ nơi đâu, bất kỳ thời gian nào.

07/03/2020

Xu hướng tương lai của nghề IT và công nghệ điện toán đám mây

Điện toán mây đã và đang hiện diện ở rất nhiều nơi, từ công việc cho đến cuộc sống. Các "đám mây" đã thay đổi đáng kể cách con người sử dụng máy tính và nó cũng tạo ra nhiều cơ hội và thách thức cho nghề IT trong tương lai.

04/03/2020

VMware bổ nhiệm Giám đốc phát triển đối tác mới, định hướng chuyển đổi số tại Việt Nam

Theo VMware, việc bổ nhiệm ông Venkatesh Murali vào vị trí Giám đốc Phát triển đối tác sẽ thúc đẩy hơn nữa hành trình chuyển đổi số và lên đám mây của các khách hàng tại những thị trường năng động, tăng trưởng nhanh ở châu Á, trong đó có Việt Nam.

13/02/2020

Ảo hóa Container và Virtual Machine khác nhau như thế nào?

Ảo hóa là một công nghệ được thiết kế để tạo ra tầng trung gian giữa hệ thống phần cứng máy tính và phần mềm chạy trên nó. Vậy ảo hóa Container và Virutal Machine có gì khác nhau?