Thiết kế mã khối trên FPGA.Mật mã (Cryptography) là ngành khoa học nghiên cứu các kỹ thuật toán học nhằm cung cấp các dịch vụ bảo mật thông tin. Đây là ngành khoa học quan trọng và có nhiều ứng dụng thực tiễn trong đời sống – xã hội, từ các lĩnh vực quân sự như an ninh, quốc phòng đến các lĩnh vực dân sự như giao dịch ngân hàng, thương mại điện tử…Chính vì vậy, nhu cầu chế tạo các sản phẩm mã hóa và bảo mật thông tin đang ngày càng trở nên cấp thiết..Tổng quan về mật mã,công nghệ FPGA,Các mô hình thực hiện mật mã khối trên FPGA,Ứng dụng mật mã khối trong chế tạo các thiết bị BMTT.
1 MỞ ĐẦU Mật mã (Cryptography) ngành khoa học nghiên cứu kỹ thuật toán học nhằm cung cấp dịch vụ bảo mật thông tin Đây ngành khoa học quan trọng có nhiều ứng dụng thực tiễn đời sống – xã hội, từ lĩnh vực quân an ninh, quốc phòng đến lĩnh vực dân giao dịch ngân hàng, thương mại điện tử…Chính vậy, nhu cầu chế tạo sản phẩm mã hóa bảo mật thơng tin ngày trở nên cấp thiết Về việc lựa chọn linh kiện thực thuật tốn mã hóa, xử lý tín hiệu số DSP, hay vi điều khiển MCU cấu hình mạnh xử lý tín hiệu thời gian thực, dùng để thiết kế module bảo mật khơng thích hợp khía cạnh an tồn mật mã Trong cơng nghệ ASIC FPGA tự thân mang thuộc tính thích hợp cho an tồn mật mã (như cấu trúc chip đốt vật lý, bảo đảm tồn vẹn, chống cơng thám thiết kế, không phụ thuộc vào hệ điều hành ) Thực tế kiểm chứng cơng nghệ FPGA có ưu so với ASIC với ưu điểm như: tốc độ cao, hoàn toàn dựa phần cứng, an toàn mật mã cao, mềm dẻo, dễ phát triển Công nghệ FPGA đem lại chủ động tường minh việc đảm bảo an tồn thơng tin Về việc lựa chọn thuật tốn mã hóa giải mã, có nhiều thuật tốn sử dụng thiết bị FPGA thuật toán ứng viên AES (bao gồm RIJNDAEL, TWOFISH, RC6, SERPENT MARS) xem an toàn hiệu Với sở khoa học tính thực tiễn trình bầy trên, tác giả đăng ký đề tài luận văn “Nghiên cứu tích hợp mật mã khối FPGA” Mục tiêu đề tài đưa nhìn tổng quan thuật tốn mã hóa khối; đưa xu hướng phát triển công nghệ phần cứng mơ phỏng, đánh giá kết triển khai tích hợp mật mã khối FPGA Nội dung luận văn bao gồm chương sau: Chương 1: Tổng quan mật mã Chương trình bày khái niệm mật mã học, giới thiệu sơ đồ mật mã chung dựa mạng thay - hoán vị (SPN) mật mã Feistel, từ giới thiệu số thuật tốn mật mã tiên tiến áp dụng giới Chương 2: Công nghệ FPGA Chương giới thiệu xu hướng cơng nghệ tích hợp mật mã phần cứng, đưa sở khoa học việc lựa chọn cơng nghệ FPGA, tiếp trình bày cách tóm lược cơng nghệ khía cạnh kiến trúc tổng quan, quy trình thiết kế FPGA… Chương 3: Các mơ hình thực mật mã khối FPGA Chương mô tả chế độ làm việc khác thực mật mã khối EBC, CBC, CFB, OFB, mô tả chế thực mã dạng khơng có phản hồi có phản hồi, làm sở để tiến hành mô đánh giá kết hoạt động thuật toán chương Chương 4: Ứng dụng mật mã khối chế tạo thiết bị BMTT Chương mô tả cách chi tiết số thuật toán mã khối đưa đánh giá Rijndael, Twofish RC6 sở toán học sơ đồ hoạt động phần cứng, tiếp tiến hành mô đánh giá kết hoạt động thuật tốn dựa tiêu chí tốc độ thực hiện, diện tích mạch sử dụng, từ rút kết luận cần thiết Mặc dù có nhiều cố gắng thời gian thực luận văn eo hẹp, kinh nghiệm thân tác giả hạn chế nên khơng tránh khỏi thiếu sót Rất mong nhận đóng góp thầy cơ, bạn bè bạn đọc để tác giả hồn thiện kết nghiên cứu thời gian tới Chương TỔNG QUAN VỀ MẬT MÃ 1.1 Mật mã học khái niệm Mật mã học [1] bao gồm hai lĩnh vực: mã hóa (cryptography) thám mã (cryptanalysis), đó: - Mã hóa: nghiên cứu thuật toán phương thức để đảm bảo tính bí mật xác thực thơng tin Các sản phẩm lĩnh vực hệ mã mật, hàm băm, hệ chữ ký điện tử, chế phân phối, quản lý khóa giao thức mật mã - Thám mã: nghiên cứu phương pháp phá mã tạo mã giả Sản phẩm lĩnh vực phương pháp thám mã, phương pháp giả mạo chữ ký, phương pháp công hàm băm giao thức mật mã Mã hóa (cryptography) ngành khoa học phương pháp truyền tin bảo mật Trong tiếng Hy Lạp, “crypto” (krypte) có nghĩa che dấu hay đảo lộn, “graphy” (grafik) có nghĩa từ Người ta quan niệm rằng: từ, ký tự tin gốc hiểu cấu thành nên rõ (plaintext), thường đoạn văn ngơn ngữ đó; từ, ký tự dạng bí mật khơng thể hiểu gọi mã (ciphertext) Có hai phương thức mã hóa bản, là: - Phương thức mã hóa thay thế: phương thức mã hóa ký tự gốc hay nhóm ký tự gốc rõ thay từ, ký hiệu khác hay kết hợp với cho phù hợp với phương thức định khóa - Phương thức mã hóa hốn vị: phương thức mã hóa từ mã rõ xếp lại theo phương thức định Các hệ mã mật thường sử dụng kết hợp hai kỹ thuật 1.2 Khái niệm mật mã khối Các hệ mã cổ điển hệ mã thay (substitution cipher), hệ mã hoán vị (transposition cipher), hệ mã Caesar, hệ mã Affine, hệ mã Vigenère, hệ mã Hill…đều có đặc điểm chung ký tự rõ mã hóa tách biệt Điều làm cho việc phá mã trở nên dễ dàng Chính vậy, thực tế người ta hay dùng kiểu mã hóa khác gọi mật mã khối, khối ký tự có độ dài cố định rõ mã hóa lúc đơn vị mã hóa đồng Trong kiểu mã hóa này, tham số quan trọng kích thước (độ dài) khối kích thước khóa Để thực mã hóa, khối liệu đầu vào chia thành khối có độ dài n bít (n phụ thuộc vào sơ đồ mã cụ thể) Trong trường hợp khối liệu cuối có độ dài nhỏ n bít, chúng chèn thêm véc tơ nhị phân có dạng (1, 0, 0, …, 0), với số lượng số có độ lớn từ đến (n - 2) Nếu độ dài khối cuối n tin chèn thêm khối có độ dài n bít, có dạng (1, 0, 0, …, 0) Giải pháp cho phép phân biệt véc tơ nhị phân thêm vào loại bỏ cần thiết Trong mật mã học, thuật toán khóa đối xứng (symmetric key algorithms) lớp thuật tốn mã hóa khóa dùng cho việc mật mã hóa giải mã có quan hệ rõ ràng với (có thể dễ dàng tìm khóa biết khóa kia), chúng hồn toàn giống nhau, khác nhờ biến đổi đơn giản hai khóa Hoạt động hệ mã khối thường thực qua số lần lặp, lần sử dụng khóa sinh từ khóa Thuật tốn đối xứng chia làm hai loại: mật mã dòng (stream ciphers) mật mã khối (block ciphers) Mật mã dòng mã hóa bít thơng điệp mật mã khối gộp số bít lại mật mã hóa chúng đơn vị Kích thước khối dùng thường khối 64 bit, 128 bit, 256 bit, 512 bit, Một số thuật toán mật mã đối xứng tiếng sử dụng rộng rãi giới như: Twofish, Serpent, AES (còn gọi Rijndael), Blowfish, CAST5, RC4, DES, 3-DES IDEA.… Mã khối đóng vai trò quan trọng hầu hết ứng dụng mật mã, ngồi việc sử dụng trực tiếp để mã hố liệu, tham gia tạo nên cấu trúc mật mã quan trọng khác chuỗi giả ngẫu nhiên, mã dòng, hàm tóm lược tin (MAC) hàm băm mật mã (Hash) Ngồi thuật tốn mã khối nêu trên, quốc gia khác phát triển thuật toán mã khối riêng để phục vụ bảo mật cho thơng tin bí mật cấp quốc gia 1.1 Kiến trúc thuật tốn mã hóa khối Trong viết “Communication Theory of Secrecy System” xuất năm 1949, C Shannon đề xuất phương án tổng qt để xây dựng thuật tốn mã hóa khối an toàn cách sử dụng kết hợp thao tác mã hóa nhằm tạo tính hỗn loạn tính khuếch tán thơng tin Tính hỗn loạn (confusion): giúp phá vỡ mối quan hệ rõ mã, tạo mối quan hệ phức tạp chặt chẽ rõ mã Tính khuếch tán (diffusion): giúp phá vỡ phân tán phần tử mẫu xuất rõ để phát mẫu mã Ý tưởng Shannon xem phương án tổng quát cho việc xây dựng thuật tốn mã hóa khối đại Xuất phát từ ý tưởng Shannon, số kiến trúc mã hóa khối đề xuất Trong số đó, mạng thay - hoán vị mạng Feistel hai kiến trúc mã hóa khối sử dụng phổ biến việc tạo thuật tốn mã hóa khối đại 1.1.1 Mạng thay - hoán vị (SPN) Mạng thay - hoán vị (Substitution - Permutation Network - SPN) [2] chuỗi phép toán học (thay hoán vị) dùng xây dựng thuật toán mật mã khối Mạng sử dụng rõ (plaintext) khóa làm liệu đầu vào, thực số vòng biến đổi gồm: phép thay sử dụng S-Box (Substitution – Box) phép hoán vị sử dụng P-Box (Permutation Box), kết phép biến đổi mã Bản rõ Bản mã Hình 1.1 Mơ hình SPN Khóa S-Box có chức thay khối (hoặc khối nhỏ) bít (khối input S-Box) thành khối bít khác Thơng thường kích thước đầu vào đầu giống Tuy nhiên có trường hợp kích thước đầu vào đầu khác (ví dụ S-Box DES) Một S-Box coi tốt có tính chất: thay đổi bít đầu vào làm thay đổi khoảng nửa số bít đầu Hình 1.2 Cấu trúc S-Box P-Box thực hốn vị tồn khối liệu đầu vào Đầu vào P-Box tất đầu S-Box vòng biến đổi Và đầu lại đầu vào S-Box vòng Tiêu chuẩn P-Box tốt là: đầu S-Box truyền tới đầu vào nhiều S-Box tốt Hình 1.3 Cấu trúc P-Box Nếu sử dụng P-Box S-Box cách riêng lẻ để mã hóa liệu khơng đạt hiệu cao Về chất, mã hóa S-Box tương đương với mã hóa thay (một dạng mã hóa cổ điển) mã hóa P-Box tương đương với phương pháp mã hóa hốn vị Một mạng SPN thiết kế tốt cần sau vài vòng mã hóa thỏa mãn đạt tính chất Shannon độ hỗn loạn độ khuyếch tán 1.1.2 Mật mã Feistel Mã hóa đối xứng Feistel [3] nhà mật mã học Horst Feistel phát minh vào năm 1973 ơng làm cho IBM Ơng thực thành cơng việc thực hóa ý tưởng S-P Network Claude Shannon Cấu trúc mã hóa Feistel chất việc thực luân phiên chức confusion (rối loạn) diffusion (khuếch tán) bit thông tin Phần lớn hệ mã khối giới dựa cấu trúc Feistel Bản rõ Bản mã Giải mã Mã hóa Bản mã Bản rõ Hình 1.4 Sơ đồ mật mã Feistel Mã hóa Feistel có cấu trúc sau: - Đầu vào giải thuật mã hóa (encryption) khối rõ dài 2w bit khóa K Khối rõ (plaintext) chia thành nửa trái phải L0 R0 - Hai nửa L0 R0 qua n vòng xử lý, sau tổ hợp lại để tạo khối mã (ciphertext) - Khóa gốc K (original key) triển khai thành khóa Ki khác để dùng cho vòng, 1≤ i ≤ n - Trong vòng thực phép thay (substitution) khối liệu trái, sau tiến hành phép hoán vị (permutation) đổi chỗ khối liệu trái sau phép thay khối liệu phải Cụ thể, vòng mã hóa thứ i: Input: Li-1, Ri-1 (là kết vòng mã hóa i-1 trước đó) Output: Li = Ri-1 Ri = Li-1 XOR F(Ri-1, Ki) - Ở vòng mã hóa cuối: Ln = Rn-1 Rn = Ln-1 XOR F(Rn-1, Kn) Cặp (Ln, Rn) sau nghịch đảo lại biểu diễn khối mã Nhận xét Từ khối liệu Li, Ri tính đệ quy giá trị Li-1, Ri-1 theo biểu thức sau: Như vậy, giải mã Feistel có cấu trúc giống hệt với mã hóa Feistel thực theo chiều ngược lại, ciphertext sử dụng làm input, đồng thời khóa Ki sử dụng theo trình tự ngược lại Kn, Kn-1, , K2, K1 Sự đối xứng cấu trúc mã hóa giải mã nét đẹp 10 cấu trúc Feistel cipher, góp phần làm đơn giản đáng kể việc thực thi hàm giải mã Một số yếu tố cần quan tâm thiết kế mã khối Feistel độ dài khối (block size) – khối lớn an toàn (thường 64 bit), độ dài khóa (key size) – khóa dài an tồn (thường 128 bit), số vòng mã hóa n – nhiều vòng an tồn (thường 16 vòng), thuật tốn sinh khóa hàm F – phức tạp khó phá mã 1.2 Một số thuật tốn mã hóa khối thơng dụng Với sơ đồ mã khối nay, giải pháp thực chia thành hai dạng bản: - Sử dụng sơ đồ để thực mã hóa giải mã - Sử dụng sơ đồ khác để thực mã hóa giải mã Dạng thứ (có thể gọi sơ đồ đa – universal): ứng dụng rộng rãi thực tiễn, dạng có nhiều ưu điểm Với sơ đồ việc thực mã hóa giải mã khác chế độ (thời gian biểu) sử dụng khóa mã, thực phần cứng giá thành sản phẩm giảm Dạng thứ hai: có nhược điểm hai sơ đồ mã hóa giải mã cần phải thực hai thuật tốn có quan hệ tương quan lẫn Vì vậy, thuật toán liên quan đến dạng ứng dụng thực tiễn Trong thực tiễn thuật toán mã khối xây dựng nguyên tắc sơ đồ mã nguyên thuỷ Feistel ứng dụng nhiều thuật toán mã DES, BLOWFISH, RC5, … xây dựng dựa nguyên tắc thực sơ đồ Theo lý thuyết, nguyên tắc xây dựng mã khối dựa phép biến đổi đơn giản (các toán tử - operators) toán tử thay hoán vị Các thuật toán mã khối xây dựng nguyên tắc gọi mạng 83 mảng S cộng vào B D Trong trường hợp giải mã, hai từ trừ từ C A Các tổ hợp bốn khối làm 128 bit khởi tạo, lưu ghi trước vào module lõi mã hóa RC6 qua multiplexer điều khiển đầu vào lõi vòng Sau hồn thành xong tất vòng, liệu đầu gửi đến ghi nơi chúng lưu lại Cuối cùng, khối 128 bit lại tách thành bốn khối lần nữa, phép cộng phép trừ cuối thực trước gửi liệu mật mã Module lõi RC6 nơi thực hàm f(x) = (x(2x + 1)) mod 2w 84 Hình 4.24 Sơ đồ khối thực RC6 FPGA 4.3 Xây dựng chương trình VHDL Chương trình VHDL mơ so sánh hiệu thuật toán Twofish, Rijndael RC6 chế độ bảng tra mã điện tử ECB, sử dụng cấu 85 trúc lặp sở (basic iterative architecture) viết công cụ Xilinx ISE phiên 10.1.03 Các file code chương trình VHDL đính kèm phần phụ lục cuối luận văn Sơ đồ khối thực phần cứng thuật tốn ứng viên AES nghiên cứu khn khổ luận văn có chung dạng sau: Hình 4.25 Sơ đồ khối thực phần cứng thuật tốn Trên sơ đồ hình 4.25, hai khối chức khối mã hóa/giải mã (encryption/decryption) khối sinh khóa (key scheduling), bao gồm khối tạo khóa (key setup), mở rộng khóa (key expansion) khối nhớ dành cho khóa nội (memory of internal keys) Về chế độ điều hành, thời điểm có chế độ kích hoạt, mã hóa, giải mã Về độ dài khóa, để tiện cho việc so sánh xét khóa có chiều dài 128 bit dùng cho thuật tốn mã hóa Sơ đồ mạch mức RTL (Register Transfer Level – mức truyền ghi) ba thuật tốn có dạng sau: 86 Hình 4.26 Sơ đồ mơ RTL (RTL Schematic) Trong chức chân sơ đồ mô tả đây: reset: khởi động lại clock: đồng hồ xung nhịp ENC_DEC_B: chế độ mã hóa hay giải mã (bằng ‘1’ mã hóa, ‘0’ giải mã) DATA_IN(127:0): liệu đầu vào có độ dài 128 bit DATA_LOAD: trạng thái tải liệu (bằng ‘1’ tải xong liệu) CV_IN(127:0): liệu khóa, 128 bit CV_LOAD: trạng thái tải khóa (bằng ‘1’ tải xong) DATA_OUT(127:0): liệu ra, 128 bit DONE: mức độ hoàn thành cơng việc (bằng ‘1’ hồn thành xong) 4.4 Mơ hành vi giản đồ sóng Các kết mơ hành vi giản đồ sóng (Behavioral Simulation) chế độ mã hóa giải mã thuật toán Rijndael, Twofish RC6 thể sau (giữ khơng đổi mã khóa, dùng liệu đầu chế độ mã hóa làm liệu đầu vào chế độ giải mã): Mô hành vi mật mã Rijndael: 87 Hình 4.27 Mơ mã hóa Rijndael Hình 4.28 Mơ giải mã Rijndael Mơ hành vi mật mã Twofish: Hình 4.29 Mơ mã hóa Twofish 88 Hình 4.30 Mơ giải mã Twofish Mô hành vi mật mã RC6 Hình 4.31 Mơ mã hóa RC6 Hình 4.32 Mô giải mã RC6 89 4.5 Đánh giá kết nhận Các kết thực luận văn không so sánh hiệu thuật tốn với mà so sánh kết với nhóm thực tham gia nghiên cứu thuật toán ứng viên AES Các tiêu chí dùng để so sánh tốc độ thực mức độ chiếm dụng tài nguyên phần cứng, thể qua số CLB slices sử dụng Kết thu tác giả tích hợp ba thuật tốn Rijndael, Twofish RC6 thiết bị Xilinx Virtex 2.5V XCV1000-6BG560 FPGA đưa bảng đây: Bảng 4.5 Các tham số thực Xilinx Virtex 2.5V XCV1000-6BG560 FPGA Thuật toán Rijndael Twofish RC6 Sử dụng tài nguyên Tần số Tốc độ thực (#CLBs) (MHz) (Mb/s) 2912 38.108 488 1128 20.843 167 3106 25.078 160 Bảng 4.6 So sánh hiệu tích hợp Xilinx Virtex 2.5V XCV1000-6BG560 FPGA Loại mã S/L vòn g mã hóa Rijndae 10 l Twofis 16 h RC6 20 Số lượng #CLB s Tần số (MHz) Thông lượng (Mbps ) 2912 38.108 488 1128 20.843 167 3106 25.078 160 Đánh giá Mbps/#CLB s Mbps/ (#CLBs.GHz) 0.168 4.4 0.148 7.1 0.052 2.1 Để kết mang tính khách quan, nghiên cứu phải thực tảng thiết bị phần cứng chế độ làm việc Sau 90 tiến hành tìm kiếm lựa chọn, tác giả định sử dụng kết nghiên cứu Kris Gaj Pawel Chodowiec đến từ Đại học George Mason [11] làm kết tham chiếu, số cơng trình nghiên cứu so sánh cách đầy đủ thuật toán ứng viên AES Kết so sánh tốc độ thực (thông lượng) thể sau: Hình 4.33 So sánh thơng lượng từ kết tham chiếu thuật toán ứng viên AES thực Xilinx Virtex 2.5V XCV1000-6BG560 FPGA Hình 4.34 Các giá trị thơng lượng cao lấy từ kết tham chiếu 91 thực nhóm ba trường Đại học độc lập Throughput [Mbps] 600 500 400 488 300 200 100 Rijndael 167 160 Twofish RC6 Hình 4.35 So sánh thơng lượng từ kết mơ thuật tốn thực Xilinx Virtex 2.5V XCV1000-6BG560 FPGA Kết so sánh số lượng CLB Slices sử dụng thể sau: Hình 4.36 So sánh diện tích mạch thuật toán ứng viên AES thực Xilinx Virtex 2.5V XCV1000-6BG560 FPGA 92 Hình 4.37 Các giá trị diện tích mạch nhỏ số kết thực nhóm ba trường Đại học độc lập AREA [CLB slices] 3500 3000 2500 3106 2912 2000 1500 1000 1128 500 Rijndael Twofish RC6 Hình 4.38 So sánh diện tích mạch từ kết mơ thuật tốn thực Xilinx Virtex 2.5V XCV1000-6BG560 FPGA Cuối kết so sánh tỉ số thông lượng/diện tích mạch thuật tốn Những thuật tốn tốt thuật tốn cho tỉ số cao, có nghĩa độ dốc đồ thị nối gốc tọa độ với điểm khảo sát có giá trị lớn: 93 Hình 4.39 So sánh tỉ lệ thơng lượng/diện tích mạch kết tham chiếu Throughput vs AREA Throughput [Mbps] 600 500 488 400 300 200 167 160 100 1000 1500 2000 2500 3000 3500 AREA [CLB slices] Hình 4.40 So sánh tỉ lệ thơng lượng/diện tích mạch kết mô Những kết so sánh kể thực tảng Xilinx Virtex 2.5V XCV1000-6BG560, tảng tương đối cũ Tuy kết nghiên cứu thu không phụ thuộc phần cứng, cần có kết khác thực thiết bị FPGA phổ biến thông dụng thị trường Việt Nam, để có tham số thực tế Xuất 94 phát từ lý đó, tơi tiến hành thử nghiệm kết có tảng Xilinx Virtex thu số tích hợp thuật tốn Rijndael, Twofish RC6 sau: Bảng 4.7 Các tham số thực Xilinx Virtex FPGA Thuật toán Sử dụng tài nguyên Tần số Tốc độ thực (#CLBs) (MHz) (Mb/s) Rijndael 1411 154.067 1972 Twofish 559 67.925 543 RC6 1156 66.246 424 Bảng 4.8 So sánh hiệu tích hợp Xilinx Virtex FPGA Loại mã S/L vòn g mã hóa Số lượng #CLB s Rijndae 10 1411 l Twofis Tần số (MHz) 154.06 Thông lượng (Mbps ) Đánh giá Mbps/#CLB s Mbps/ (#CLBs.GHz) 1972 1.398 9.1 543 0.971 14.3 424 0.337 5.1 16 559 h RC6 20 1156 4.6 Kết luận chương 67.925 66.246 Dựa vào kết chạy thử nghiệm phần mềm ISE 10.1.03 Xilinx đánh giá hiệu thuật toán mã hóa ta thấy tốc độ mã hóa liệu Rijndael cao nhất, vựợt trội so với hai thuật tốn lại Twofish RC6 Hai thuật tốn cho tốc độ mã hóa coi tương đương Về mặt sử dụng tài nguyên (được thể qua số lượng CLB sử dụng đến) thấy Rijndael lại khơng chiếm ưu Phần thắng nghiêng hẳn Twofish với số lượng tài nguyên sử dụng nhỏ Đánh giá cách tổng thể, thuật toán Rijndael cho lợi tốc độ, thuật toán Twofish cho lợi mặt sử dụng tài ngun, thuật tốn RC6 95 nói chung ưu hai thuật toán kia, điều thể rõ đồ thị hình 4.40, độ dốc đường đồ thị tương ứng với RC6 nhỏ KẾT LUẬN Luận văn “Nghiên cứu tích hợp thuật tốn mã khối FPGA” tập trung nghiên cứu vào thuật tốn mã hóa ứng viên AES, sở dùng ngơn ngữ lập trình phần cứng VHDL để tiến hành mơ phỏng, đánh giá hiệu thuật toán tích hợp thiết bị phần cứng FPGA, sử dụng công cụ hỗ trợ Xilinx ISE 10.1.03 Luận văn đưa kết đánh giá mức độ hiệu ba số năm thuật tốn dựa thơng số tốc độ mã hóa mức độ chiếm dụng tài nguyên phần cứng, thể qua số CLB slices sử dụng Tuy nhiên, nhiều lý khách quan chủ quan mà luận văn nhiều điểm hạn chế chưa đánh giá số tiêu chí khác thuật toán, chưa nghiên cứu hết trọn năm thuật tốn ứng viên AES, hạn chế lớn luận văn tạm dừng mức mô phỏng, đánh giá Công việc tích hợp thuật tốn mã khối phần cứng cơng việc đồ sộ, đòi hỏi nhiều thời gian nghiên cứu để thực hóa kết tương lai Việc ứng dụng luận văn vào thực tế khả thi nhu cầu bảo mật thông tin ngày lớn, đặc biệt lĩnh vực quốc phòng, an ninh Các kết trình bày luận văn dùng làm tài liệu giảng dạy sở để chế tạo thiết bị bảo mật thông tin sau Tôi xin chân thành cảm ơn hướng dẫn giúp đỡ tận tình thầy giáo hướng dẫn Nguyễn Hiếu Minh, thầy giáo hướng dẫn Trần Xuân Kiên thầy Khoa Công nghệ Thông tin, Khoa Vô tuyến Điện tử – HVKTQS Phòng thí nghiệm trọng điểm An tồn Thơng tin – Viện KH&CN Quân tạo điều kiện, giúp tơi hồn thành luận văn 96 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Nguyễn Hữu Tuân (2008), Giáo trình An tồn bảo mật thơng tin, Khoa Công nghệ thông tin – Đại học Hàng hải [2] Nguyễn Đại Thọ (2007), An ninh mạng, Đại học Công nghệ - Đại học Quốc gia Hà Nội [3] Nguyễn Thị Phi Loan (2009), Các hệ mật mã đại, Khoa Công nghệ thông tin – Đại học Công nghiệp Tp Hồ Chí Minh [4] Nguyễn Minh Huy (2004), Nghiên cứu xây dựng ứng dụng bảo mật PDA, Khoa Công nghệ thông tin – Đại học KHTN Tp Hồ Chí Minh [5] Trịnh Quang Kiên (2010), Thiết kế logic số, Khoa Vô tuyến điện tử – Học viện kỹ thuật quân [6] Dương Anh Đức, Trần Minh Triết (2008), Mã hóa ứng dụng, Đại học Quốc gia Tp Hồ Chí Minh Tiếng Anh [7] StallingsW (2003), Cryptography and Network Security: Principles and Practice, Third Edition, Prentice Hall [8] Joan Daemen and Vincent Rijmen (2002), The Design of Rijndael, AES – The Advanced Encryption Standard, Springer – Verlag [9] Ronald L.R, Robshaw M.J.B., Sidney R., Yin Y L (1998), The RC6 Block Cipher: A simple fast secure AES proposal [10] Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, and Niels Ferguson (1996), The Twofish Encryption Algoritm, John Wiley & Sons 97 [11] Kris Gaj, Pawel Chodowiec (2001), Hardware performance of the AES finalists – survey and analysis of results, George Mason University LÝ LỊCH TRÍCH NGANG Họ tên: Dương Quang Mạnh Ngày tháng năm sinh: 25/11/1981 Nơi sinh: Tp Nam Định Địa liên lạc: 60/44 Tổ 8, La Khê, Hà Đông, Hà Nội QUÁ TRÌNH ĐÀO TẠO: - Đại học, Đại học Hàng không Matxcơva, LB Nga, 2000-2006 - Cao học, Học viện Kỹ thuật Qn sự, 2010-2012 Q TRÌNH CƠNG TÁC: - Từ năm 2007 tới giáo viên Bộ môn Kỹ thuật Vi xử lý, Khoa Vô tuyến điện tử, HVKTQS ... vòng mã hóa thứ i: Input: Li-1, Ri-1 (là kết vòng mã hóa i-1 trước đó) Output: Li = Ri-1 Ri = Li-1 XOR F(Ri-1, Ki) - Ở vòng mã hóa cuối: Ln = Rn-1 Rn = Ln-1 XOR F(Rn-1, Kn) Cặp (Ln, Rn) sau nghịch... vòng biến đổi Và đầu lại đầu vào S-Box vòng Tiêu chuẩn P-Box tốt là: đầu S-Box truyền tới đầu vào nhiều S-Box tốt Hình 1.3 Cấu trúc P-Box Nếu sử dụng P-Box S-Box cách riêng lẻ để mã hóa liệu... dụ S-Box DES) Một S-Box coi tốt có tính chất: thay đổi bít đầu vào làm thay đổi khoảng nửa số bít đầu Hình 1.2 Cấu trúc S-Box P-Box thực hốn vị tồn khối liệu đầu vào Đầu vào P-Box tất đầu S-Box