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

27/03/2024

Viettel IDC lựa chọn chiến lược kép “Phát triển công nghệ số gắn liền chuyển đổi xanh bền vững”

Lựa chọn mục tiêu kép phát triển công nghệ số gắn liền chuyển đổi xanh bền vững được xem là chiến lược giúp thay đổi hoàn toàn cách mà doanh nghiệp vận hành trong tương lai.

01/03/2024

Viettel IDC hợp tác cùng Radware mở rộng thị trường giải pháp bảo mật tại Việt Nam

Trong khuôn khổ Triển lãm di động thế giới (Mobile World Congress - MWC) năm 2024 diễn ra tại Barcelona vào cuối tháng 2, Viettel IDC cùng Radware đã ký kết thỏa thuận hợp tác chiến lược nhằm nghiên cứu, phát triển, đẩy mạnh cung cấp các giải pháp bảo mật trên nền tảng đám mây tại Việt Nam và trong khu vực.

25/01/2024

Deep Web là gì? Có nên truy cập vào Deep Web không?

Trong thời đại CNTT phát triển như hiện nay, Deep Web là gì đang là chủ đề gây tò mò với không ít người dùng. Đây là một phần khác của Internet, không được public rộng rãi và là nơi diễn ra nhiều hoạt động với độ bảo mật thông tin cao.

05/02/2024

Viettel IDC đạt chứng chỉ ANSI/TIA-942-B:2017 Rated 3 Constructed Facilities, trong đó có một hạng mục đạt cấp cao nhất là Rated 4

Viettel IDC là đơn vị đầu tiên tại Việt Nam có hạng mục đạt Rated-4 (hạng mục Viễn thông) của chứng chỉ ANSI/TIA-942-B:2017 Constructed Facilities.

07/01/2024

XSS là gì? Cách kiểm tra và ngăn chặn các đợt tấn công XSS hiệu quả

XSS là gì? XSS (Cross-site Scripting) là một lỗ hổng bảo mật cho phép kẻ tấn công chèn mã độc hại vào các ứng dụng website.

03/01/2024

DNS là gì? Nguyên tắc và cách cấu hình DNS trong hệ thống

DNS là gì? Nguyên lý hoạt động cũng như chức năng DNS ra sao? Hãy cùng Viettel IDC tìm hiểu thông tin chi tiết trong bài viết bên dưới nhé.

23/09/2023

Dịch vụ Cloud Server - Sự lựa chọn hoàn hảo cho các doanh nghiệp startup

Với dịch vụ Cloud Server, doanh nghiệp có thể giảm chi phí hiệu quả, tận dụng tính linh hoạt để mở rộng tài nguyên khi cần, đồng thời đảm bảo độ bảo mật thông tin tối đa.

01/10/2023

Khám phá tiện ích và sự đa dạng của dịch vụ thuê máy chủ ảo tại Viettel IDC

Dịch vụ thuê máy chủ ảo tại Viettel IDC là giải pháp mang đến môi trường linh hoạt cho doanh nghiệp trong quá trình vận hành. Với nền tảng điện toán đám mây chất lượng, doanh nghiệp có thể dễ dàng tùy chỉnh tài nguyên máy chủ theo nhu cầu thực tế, giúp tối ưu hiệu suất làm việc.

05/10/2023

Cloud Computing và các mô hình dịch vụ phổ biến hiện nay

Điện toán đám mây (Cloud Computing) là mô hình công nghệ thông tin phát triển mạnh mẽ trong thời gian gần đây. Giải pháp này cho phép cá nhân, doanh nghiệp và tổ chức truy cập, sử dụng các tài nguyên máy tính, dịch vụ qua internet thay vì phải xây dựng và duy trì cơ sở hạ tầng riêng.

01/01/2024

Khám phá mô hình bảo mật Zero Trust và mối liên kết cùng trí tuệ nhân tạo AI

Triết lý an ninh mạng Zero Trust đặt ra nguyên tắc không có bất kỳ người dùng nào trong hoặc ngoài hệ thống mạng đủ tin tưởng mà không cần thông qua sự kiểm tra chặt chẽ về danh tính.

DMCA.com Protection Status
// doi link