NGHIÊN cứu cải TIẾN THUẬT TOÁN CHUẨN mã hóa TIÊN TIẾN (AES) với MA TRẬN MDS KÍCH THƯỚC lớn

56 291 1
NGHIÊN cứu cải TIẾN THUẬT TOÁN CHUẨN mã hóa TIÊN TIẾN (AES) với MA TRẬN MDS KÍCH THƯỚC lớn

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Ngày nay, thuật toán chuẩn mật mã nâng cao AES đang được sử dụng phổ biến trong các lĩnh vực khác nhau trên thế giới. Chuẩn mật mã nâng cao không chỉ đơn thuần là mã hóa và giải mã thông tin mà còn bao gồm nhiều vấn đề khác nhau cần được nghiên cứu và giải quyết các vấn đề về việc cải tiến tốc độ xử lý thuật toán của mã khối đặc biệt là khi sử dụng mã khối AES cải tiến với ma trận MDS kích thước lớn nhằm rút ngắn thời gian thực thi thuật toán mã khối AES. Vì thế việc nghiên cứu giải pháp thực thi hiệu quả chuẩn mã khối AES cải tiến với ma trận MDS kích thước lớn là rất cần thiết.

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GTVT KHOA CÔNG NGHỆ THÔNG TIN Nguyễn Thị Nhạn NGHIÊN CỨU CẢI TIẾN THUẬT TOÁN CHUẨN MÃ HÓA TIÊN TIẾN (AES) VỚI MA TRẬN MDS KÍCH THƯỚC LỚN ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Hệ Thống Thơng Tin Hà Nội - 2019 TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GTVT KHOA CÔNG NGHỆ THÔNG TIN Nguyễn Thị Nhạn NGHIÊN CỨU CẢI TIẾN THUẬT TỐN CHUẨN MÃ HĨA TIÊN TIẾN (AES) VỚI MA TRẬN MDS KÍCH THƯỚC LỚN ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Hệ Thống Thơng Tin Cán hướng dẫn: TS.Hồng Đức Thọ Hà Nội - 2019 TĨM TẮT Ngày nay, thuật toán chuẩn mật mã nâng cao AES sử dụng phổ biến lĩnh vực khác giới Chuẩn mật mã nâng cao khơng đơn mã hóa giải mã thơng tin mà bao gồm nhiều vấn đề khác cần nghiên cứu giải vấn đề việc cải tiến tốc độ xử lý thuật toán mã khối đặc biệt sử dụng mã khối AES cải tiến với ma trận MDS kích thước lớn nhằm rút ngắn thời gian thực thi thuật tốn mã khối AES Vì việc nghiên cứu giải pháp thực thi hiệu chuẩn mã khối AES cải tiến với ma trận MDS kích thước lớn cần thiết Hà Nội, ngày tháng năm Sinh viên thực Nguyễn Thị Nhạn LỜI CÁM ƠN Em xin chân thành cảm ơn thầy Hoàng Đức Thọ, giảng viên học viện Kỹ thuật mật mã, người trực tiếp hướng dẫn, giúp đỡ em suốt trình thực Em xin chân thành cảm ơn ban giám hiệu nhà trường, thầy cô Khoa Công nghệ Thông tin phòng ban nhà trường tạo điều kiện tốt cho em bạn khác suốt thời gian học tập làm đồ án tốt nghiệp Sự hiểu biết em đề tài chưa sâu sắc nên chắn có nhiều sai sót, em mong nhận ý kiến đóng góp thầy,cơ bạn để em có thêm kinh nghiệm, tiếp tục hoàn thiện đề tài Em xin chân thành cảm ơn! Hà Nội, ngày tháng năm Sinh viên thực Nguyễn Thị Nhạn LỜI CAM ĐOAN Em xin cam đoan đồ án tốt nghiệp thành từ nghiên cứu hoàn toàn thực tế sở số liệu thực tế thực theo hướng dẫn giáo viên hướng dẫn Đồ án thực hoàn toàn mới, thành riêng em, không chép theo đồ án tương tự Mọi tham khảo sử dụng đồ án trích dẫn nguồn tài liệu báo cáo danh mục tài liệu tham khảo Mọi chép không hợp lệ, vi phạm quy chế nhà trường, em xin hoàn toàn chịu trách nhiệm Hà Nội, ngày tháng năm Sinh viên Nguyễn Thị Nhạn MỤC LỤC DANH MỤC BẢNG BIỂU DANH MỤC HÌNH ẢNH Hình 3.1: Giao diện download Visual Studio 2019………………… ………… 32 Hình 3.2: File download hiển thị thư mục sau tải thành cơng Hình 3.3:Tiến hành chạy file Hình 3.4: Màn hình hiển thị sau chạy file thành cơng Hình 3.5: Tiến hành cài đặt Hình 3.6: Giao diện Visual Studio sau cài đặt thành công Hình 3.7: Màn hình hiển thị Visual Studio 2019 Hình 3.8: Màn hình tạo Project Hình 3.9: Màn hình Project sau tạo Hình 3.10: Sơ đồ phân rã chức chương trình Hình 3.11: Phép nhân thơng thường AES gốc Hình 3.12: Phép nhân thơng thường ma trận MDS 8x8 Hình 3.13: Tạo bảng nhân ma trận MDS 8x8 DANH MỤC VIẾT TẮT Từ viết tắt AES DES MD S SBOX SPN Viết đầy đủ Nghĩa đầy đủ Advanced Encryption Standard Data Encryption Standard Maximum Distance Separable Chuẩn mã hóa tiên tiến Chuẩn mã hóa liệu AES Mã tách có khoảng cách cực đại Substitution Box Hộp thay Substitution Permutation Networs Mạng thay hoán vị DANH MỤC KHÁI NIỆM VÀ KÝ HIỆU Các khái niệm định nghĩa sử dụng để trình bày chuẩn mã hoá cao cấp: AES Biến đổi Affine Bit Block Byte Cipher Cipher Key Ciphertext Inverse Cipher Thủ tục sinh khóa (Key Expansion) Round Key Trạng thái (State) S-box Word Chuẩn mã hoá cao cấp Phép biến đổi bao gồm phép nhân với ma trận sau phép cộng vectơ Một số nhị phân nhận giá trị Một dãy bit nhị phân tạo thành input, output, trạng thái (state) khóa sử dụng vòng lặp (Round Key) hệ mã Độ dài dãy (khối) số lượng bit mà chứa Các khối xem dãy byte Một nhóm bit Thuật tốn mã hóa Khóa hệ mã, đƣợc biểu diễn dướ dạng mảng chiều gồm hàng Nk cột Bản mã Thuật toán giải mã Thủ tục sử dụng để sinh khóa sử dụng vòng lặp thuật tốn mã hóa, giải mã từ khóa ban đầu Là giá trị sinh từ khóa cách sử dụng thủ tục sinh khóa Các khóa sử dụng vòng lặp thuật tốn Các giá trị mã hóa trung gian biểu diễn dạng mảng chiều gồm hàng Nb cột Một bảng phi tuyến sử dụng thủ tục sinh khóa biến đổi thay byte để thực thay 1-1 giá trị byte Một nhóm 32 bit xem đơn vị tính tốn độc lập mảng byte CHƯƠNG 1: TỔNG QUAN VỀ MÃ KHỐI AES 1.1 Giới thiệu chung AES Chuẩn mã hóa liệu cao cấp AES hệ mã khóa bí mật có tên Rijndael (Do hai nhà mật mã học người Bỉ Joan Daemen Vincent Rijmen đưa trở thành chuẩn từ năm 2002) cho phép xử lý khối liệu input có kích thước 128 bit sử dụng khóa có độ dài 128, 192 256 bit Hệ mã Rijndael thiết kế để làm việc với khóa khối liệu có độ dài lớn nhiên chọn chuẩn Ủy ban tiêu chuẩn Hoa Kỳ đưa vào năm 2001, qui định làm việc với khối liệu 128 bit khóa có độ dài 128, 192 256 bit (do đặt cho tên AES-128, AES-192, AES-256 tương đương với độ dài khóa sử dụng) 1.2 Khái niệm 1.2.1 Input Out put Input Output chuẩn mã hóa cao cấp dãy 128 bit, gọi khối (block), độ dài mỗi khối số bit liệu mà chứa Khóa chuẩn mã hóa cao cấp dãy có độ dài 128, 192 256 bit Chuẩn mã hóa liệu cao cấp không làm việc với giá trị input, output khóa có độ dài khác (mặc dù thuật tốn sở cho phép điều này) Đầu vào đầu AES xem mảng chiều byte bit Đối với phép mã, đầu vào khối rõ, khóa đầu mã Đối với phép giải mã, đầu vào mã, khóa đầu khối rõ Các bit input, output khóa hệ mã đánh số từ 1.2.2 Đơn vị Byte Byte dãy bit biểu diễn dạng bit nhị phân theo thứ tự {b7, b6, b5, b4, b3, b2, b1, b0} biểu diễn trường hữu hạn đa thức ký tự hệ Hexa Một byte phần tử xem đa thức có bậc nhỏ hay với hệ số trường hữu hạn đa thức: = 10 Sau cài đặt thành cơng, hình lúc khởi động Visual Studio 2019 hiển thị sau: Hình 3.6: Giao diện Visual Studio sau cài đặt thành công Khi khởi động xong, ta có hình (nó khác biệt với version cũ): Hình 3.7: Màn hình hiển thị Visual Studio 2019 42 Ở hình ta có lựa chọn chính: +) Danh sách bên trái: chọn mở Project cũ (cái bạn tạo trước kể Version cũ tự động hiển thị lên cho bạn) Muốn mở lại click vào ok +) Chọn Continue without code: Chọn mục mở Visual Studio mà khơng có Project +) Chọn “Create a New Project” : Chương trình hiển thị hình tạo Project Hình 3.8: Màn hình tạo Project +) Trong mục Language chọn C# +) Mục Platform chọn Windows +) Mục Project Type chọn Desktop Sau bấn next, đặt tên cho dự án sau bấm Create để tạo Project: 43 Hình 3.9: Màn hình Project sau tạo 3.2 Thiết kế chương trình Chương trình thực thi mã khối AES thiết kế theo sơ đồ chức đây: Hình 3.10: Sơ đồ phân rã chức chương trình 44 3.3 Cài đặt Modul Dưới modul quy trình mã hóa, giải mã tốc độ mã thuật toán AES +) Modul SubBytes() InvSubBytes() giống AES gốc AES cải tiến Modul SubBytes(): void SubBytes(unsigned char state[4][4]) { int i,j; for(i=0;i

Ngày đăng: 04/07/2019, 07:57

Từ khóa liên quan

Mục lục

  • Hà Nội - 2019

  • HÀ NỘI - 20< hai số cuối của năm bảo vệ ĐATN>

  • Hà Nội - 2019

  • HÀ NỘI - 20< hai số cuối của năm bảo vệ ĐATN>

  • HÀ NỘI - 20<hai số cuối của năm bảo vệ ĐATN>

  • HÀ NỘI - 20<hai số cuối của năm bảo vệ ĐATN>

  • CHƯƠNG 1: TỔNG QUAN VỀ MÃ KHỐI AES

    • 1.1. Giới thiệu chung về AES

    • 1.2. Khái niệm

      • 1.2.1. Input và Out put

      • 1.2.2. Đơn vị Byte

      • 1.2.3. Mảng trạng thái

      • 1.3. Cơ sở toán học

        • 1.3.1. Phép cộng

        • 1.3.2. Phép nhân

        • 1.3.3. Phép nhân với x

        • 1.3.4. Phép nhân nghịch đảo

        • 1.3.5. Đa thức với các hệ số trên trường GF(28)

        • 1.4. Cấu trúc AES

        • 1.5. Phép biến đổi vòng, số các vòng

        • 1.6. Quy trình mã hóa AES

          • 1.6.1. Hàm SubBytes()

          • 1.6.2. Hàm ShiftRows()

          • 1.6.3. Hàm MixColumns()

Tài liệu cùng người dùng

Tài liệu liên quan