1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu và mô phỏng hệ thống mật mã hóa tiên tiến AES

28 60 0

Đ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

Nội dung

Tìm hiểu và mô phỏng hệ thống mật mã hóa tiên tiến AES Tìm hiểu và mô phỏng hệ thống mật mã hóa tiên tiến AES Tìm hiểu và mô phỏng hệ thống mật mã hóa tiên tiến AES Tìm hiểu và mô phỏng hệ thống mật mã hóa tiên tiến AES Tìm hiểu và mô phỏng hệ thống mật mã hóa tiên tiến AES Tìm hiểu và mô phỏng hệ thống mật mã hóa tiên tiến AES Tìm hiểu và mô phỏng hệ thống mật mã hóa tiên tiến AES

[Type here] HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA VIỄN THÔNG - - BÀI TIỂU LUẬN TÌM HIỂU VÀ MƠ PHỎNG HỆ THỐNG MẬT MÃ HÓA TIÊN TIẾN AES Tên học phần : An ninh mạng viễn thông Giảng viên : Phạm Anh Thư Nhóm tiểu luận : 06 Nhóm mơn học : 06 Sinh viên thực : Vũ Trọng Linh Vũ Đình Trường Trịnh Xuân Đạt Hà Nội, 27/06/2021 Bài thi cuối kỳ môn ANM MỤC LỤC Bảng phân công công việc Danh mục thuật ngữ Danh mục hình ảnh MỞ ĐẦU I Giới thiệu chung 1.1 Giới thiệu 1.2 Sơ lược lịch sử AES II Các tiêu chí đánh giá thuật tốn AES 2.1 Bảo mật 2.2 Chi phí 2.3 Đặc điểm thực thuật toán III Cấu trúc thuật toán mã hóa tiên tiến AES IV Q trình mã hóa 4.1 Phép biến đổi SubBytes 10 4.2 Phép biến đổi ShiftRow 12 4.3 Phép biến đổi MixColumns 12 4.4 Phép biến đổi AddRoundKey 13 4.5 Mở rộng khóa (ExpandKey) 14 V Quá trình giải mã 15 5.1 Tổng quan giải mã AES-128 15 5.2 Chức AddRoundKey đảo 17 5.3 Chức InvShiftRows 17 5.4 Chức InvSubBytes 18 5.5 Chức InvMixColumns 19 5.6 Chức InvKeyExpansion 23 VI Demo thuật toán AES Python 24 6.1 Giới thiệu 24 6.2 Thiết lập ứng dụng 25 6.2.1 Các thư viện hỗ trợ cho ứng dụng 25 6.2.2 Thuật toán mã hóa 25 6.2.3 Thuật toán giải mã 26 6.2.4 Các trường hợp ứng dụng 27 VII Kết luận 27 Tài liệu tham khảo 28 Nhóm Bài thi cuối kỳ mơn ANM Bảng phân công công việc Họ tên    Trịnh Xuân Đạt – B17DCVT       Vũ Trọng Linh – B17DCVT219       Vũ Đình Trường– B17DCVT Nhiệm vụ Danh mục thuật ngữ viết tắt I Giới thiệu chung II Các tiêu chí đánh giá thuật tốn AES Mục lục Danh mục hình ảnh Mở đầu III Cấu trúc thuật tốn AES IV Q trình mã hóa Tổng hợp word Bảng phân công công việc Lý chọn đề tài Mục đích phạm vi tiểu luận VII Q trình giải mã VIII Demo thuật tốn AES Python Kết luận Tổng hợp word Nhóm Bài thi cuối kỳ môn ANM Danh mục thuật ngữ AES DES SPN SubByte Shift Row Mix Columns Add Round Key Expand Key Inv SubByte Inv Shift Row Inv Mix Columns Inv Add Round Key Advanced Encryption Standard Data Encryption Standard Substitution and Permutation Network Substitute byte Inverse Substitute byte Inverse Shift Row Inverse Mix Columns Inverse Add Round Key Nhóm Chuẩn mã hóa tiên tiến Chuẩn mã hóa liệu Mạng thay hốn vị Thay byte Chuyển hàng Trộn cột Thêm khóa vịng Mở rộng khóa Đảo thay byte Đảo chuyển hàng Đảo trộn cột Đảo thêm khóa vịng Bài thi cuối kỳ mơn ANM Danh mục hình ảnh Hình Cấu trúc AES Hình Kiến trúc mã hóa chung AES 10 Hình Bảng S-box 11 Hình Ví dụ phép biến đổi SubBytes 11 Hình Ví dụ phép biến đổi ShiftRow 12 Hình Ví dụ phép biến đổi MixColumns 13 Hình Ví dụ AddRoundKey 13 Hình Mở rộng khóa 14 Hình Quá trình giải mã (Inverse Cipher) 16 Hình 10 Ma trận khóa vịng thứ 10 ma trận liệu mã hóa 16 Hình 11 Chức AddRoundKey 17 Hình 12 Chức InvShiftRows 17 Hình 13 Bảng S-box đảo chuẩn AES 18 Hình 14 Chức InvSubBytes 18 Hình 15 Ma trận chuyển đổi dùng InvMixColumns 19 Hình 16 Chức InvMixColumns 22 Hình 17 Mạch nguyên lý nhân byte A với phần tử ma trận chuyển đổi InvMixColumns 23 Nhóm Bài thi cuối kỳ môn ANM MỞ ĐẦU Với phát triển ngày mạnh nhu cầu truyền tin bảo mật Internet cần thuật tốn mã hóa đủ mạnh, khó phá để thay thuật tốn mã hóa cũ lỗi thời Hiện có nhiều thuật tốn mã hóa tiên tiến, số thuật tốn mã hóa tiên tiến AES Với ưu điểm vượt trội AES kỳ vọng thuật toán tiên tiến đưa vào áp dụng toàn cầu tương lai gần Đó lý chúng em chọn đề tài làm tiểu luận Mục đích tiểu luận giúp người có nhìn tổng quan thuật tốn mã hóa tiên tiến AES Qua tiểu luận hiểu vấn đề AES cấu trúc thuật tốn, q trình mã hóa giải mã Phạm vi tiểu luận xoay quanh vấn đề thuật toán mã hóa tiên tiến AES Về cấu trúc tiểu luận, chúng em chia thành phần lớn sau: I Giới thiệu chung II Các tiêu chí đánh giá thuật toán AES III Cấu trúc thuật tốn mã hóa tiên tiến AES IV Q trình mã hóa V Q trình giải mã VI Demo thuật tốn AES Python VII Kết luận Mặc dù cố gắng hạn hẹp thời gian kiến thức nên làm chúng em hạn chế sai sót định Chúng em mong nhận góp ý chủ đề giúp làm chúng em hoàn thiện Qua chúng em chân thành cảm ơn tới TS Phạm Anh Thư, người giúp đỡ chúng em nhiều việc hồn thành mơn học Nhóm 6 Bài thi cuối kỳ mơn ANM I Giới thiệu chung 1.1 Giới thiệu Mật mã kỹ thuật quan trọng phổ biến để bảo mật liệu khỏi kẻ cơng cách sử dụng hai quy trình quan trọng Mã hóa Giải mã Mã hóa q trình mã hóa liệu để ngăn chặn kẻ xâm nhập đọc liệu gốc cách dễ dàng Giai đoạn có khả chuyển đổi liệu gốc (Plaintext) sang mã (Cipher text) Quá trình phải thực người có thẩm quyền Giải mã Giải mã trái với mã hóa Đây q trình chuyển đổi văn mật mã thành gốc mà khơng bỏ sót từ Để thực quy trình này, mật mã dựa vào phép tính tốn học với số thay hốn vị có khơng có khóa Ngày nay, có số thuật tốn có sẵn để mã hóa giải mã liệu nhạy cảm, thường chia thành ba loại Một mật mã đối xứng: khóa sử dụng để mã hóa giải mã liệu Thứ hai mật mã không đối xứng Loại mật mã dựa hai khóa khác để mã hóa giải mã Cuối cùng, hàm băm mật mã khơng sử dụng khóa mà thay vào trộn liệu Khóa đối xứng hiệu nhanh nhiều so với Không đối xứng Một số thuật toán đối xứng phổ biến AES, S-DES 3DES Mục đích báo cung cấp thơng tin chi tiết thuật tốn Tiêu chuẩn mã hóa nâng cao (AES) cho liệu mã hóa giải mã, sau thực so sánh thuật toán AES DES để đưa số ý tưởng lại thay thuật toán DES thành AES Sơ lược lịch sử AES AES (Advanced Encryption Standard ) thuật toán mật mã khối đối xứng phổ biến sử dụng tồn giới Thuật tốn có cấu trúc đặc biệt riêng để mã hóa giải mã liệu quan trọng áp dụng phần cứng phần mềm tồn giới Rất khó để tin tặc lấy liệu thực mã hóa thuật tốn AES Cho đến khơng phải chứng để đánh lừa thuật toán AES có khả xử lý ba kích thước khóa khác AES 128, 192 256 bit mật mã có kích thước khối 128 bit Bài báo cáo chúng đưa nhìn tổng quan thuật tốn AES giải thích chi tiết số tính quan trọng thuật toán 1.2 Thuật toán AES thuật tốn mã hóa mật mã khối Viện Tiêu chuẩn Công nghệ Quốc gia (NIST) xuất vào năm 2000 Mục đích thuật tốn thay thuật toán DES sau xuất số khía cạnh dễ bị cơng NIST mời chuyên gia làm việc mã hóa bảo mật liệu Nhóm Bài thi cuối kỳ mơn ANM tồn giới để giới thiệu thuật toán mật mã khối cải tiến để mã hóa giải mã liệu với cấu trúc mạnh mẽ phức tạp Sau thực tiêu chí đánh giá thơng số bảo mật khác nhau, họ chọn năm thuật tốn mã hóa đề xuất hai nhà mật mã học người Bỉ Joan Daeman Vincent Rijmen Tên ban đầu thuật toán AES thuật toán Rijndel Tuy nhiên, tên không trở thành tên phổ biến cho thuật tốn thay vào cơng nhận thuật tốn Tiêu chuẩn mã hóa nâng cao (AES) khắp giới II Các tiêu chí đánh giá thuật tốn AES Ba tiêu chí quan trọng NIST sử dụng để đánh giá thuật toán gửi chuyên gia mật mã 2.1 Bảo mật Một khía cạnh quan trọng mà NIST xem xét để lựa chọn thuật tốn bảo mật Lý đằng sau điều rõ ràng mục đích AES cải thiện vấn đề bảo mật thuật tốn DES AES có khả tốt để bảo vệ liệu nhạy cảm khỏi kẻ công khơng cho phép chúng phá liệu mã hóa so với thuật toán đề xuất khác Điều đạt cách thực nhiều thử nghiệm AES dựa lý thuyết cơng thực tế 2.2 Chi phí Một tiêu chí khác NIST nhấn mạnh để đánh giá thuật toán chi phí Một lần nữa, yếu tố đằng sau biện pháp rõ ràng mục đích khác thuật tốn AES cải thiện hiệu suất thấp DES AES thuật tốn NIST đề cử có hiệu tính tốn cao sử dụng nhiều ứng dụng, đặc biệt liên kết băng thông rộng với tốc độ cao Đặc điểm thực thuật toán Tiêu chí quan trọng để ước tính thuật toán nhận từ chuyên gia mật mã Một số khía cạnh quan trọng đo lường giai đoạn tính linh hoạt, tính đơn giản tính phù hợp thuật tốn đa dạng việc triển khai phần cứng phần mềm 2.3 Cấu trúc thuật toán mã hóa tiên tiến AES AES thuật tốn mã hóa thay mật mã DES Nó dựa hai kỹ thuật phổ biến để mã hóa giải mã liệu mạng thay hoán vị (Substitution and Permutation Network SPN) SPN số phép toán thực thuật toán mật mã khối AES có khả xử lý 128 bit (16 byte) kích thước khối rõ cố định 16 byte biểu diễn ma trận 4x4 AES hoạt động ma trận byte Ngoài ra, tính quan trọng khác AES số vịng Số vịng phụ thuộc vào độ dài khóa Có ba kích thước khóa khác sử dụng thuật tốn AES để mã hóa giải mã liệu (128, 192 256 bit) Các kích thước khóa III Nhóm Bài thi cuối kỳ mơn ANM định đến số vịng AES sử dụng 10 vịng cho khóa 128 bit, 12 vịng cho khóa 192 bit 14 vịng cho khóa 256 bit Hình Cấu trúc AES IV Quá trình mã hóa Mã hóa kỹ thuật phổ biến đóng vai trị để bảo vệ liệu khỏi kẻ xâm nhập Thuật toán AES sử dụng cấu trúc cụ thể để mã hóa liệu nhằm mang lại bảo mật tốt Để làm điều đó, dựa vào số vịng bên vịng bao gồm bốn quy trình phụ Mỗi vịng bao gồm bốn bước sau để mã hóa khối 128 bit Nhóm Bài thi cuối kỳ mơn ANM Hình Kiến trúc mã hóa chung AES Phép biến đổi SubBytes Bước vòng bắt đầu với phép biến đổi SubBytes Bước phụ thuộc vào bảng S-box phi tuyến để thay byte ma trận trạng thái thành byte khác 4.1 10 Nhóm 10 Bài thi cuối kỳ mơn ANM 4.5 Mở rộng khóa (ExpandKey) ExpandKey thao tác tạo lược đồ khóa hay mở rộng khóa, tạo Nr+1 khóa vịng từ khóa K, khóa vịng gồm Nb từ 32 bit, AES Nb = 4, cịn Nr xác định theo Các phép biến đổi để tạo khóa vịng ExpandKey khác giá trị khác kích thước khóa K Sau việc mở rộng khóa khóa mã 128 bit Hình Mở rộng khóa Trong thao tác mở rộng khóa với khóa mã 128 bit có đầu vào 16 byte (4 word) khóa mã, sinh mảng khóa vịng (Nr+1)x4=44 từ (word) hay 176 byte 44 word sử dụng cho 11 vịng mã hóa AES, vòng dùng word Từ bốn word đầu vào w0w1w2w3, lần lặp thao tác ExpandKey sinh bốn word w4w5w6w7, lần lặp thứ từ w4w5w6w7 sinh w8w9w10w11 , lần lặp thứ 10 (tùy thuộc chiều dài khóa) sinh bốn word cuối w40w41w42w43 hình vẽ Mục đích ExpandKey: dùng để chống lại known-plaintext attack  Biết số bit khóa hay khóa khơng thể tính bit cịn lại  Khơng thể tính ngược: biết khóa khơng thể tính lại khóa trước  Tính khuếch tán: bit khóa tác động lên tất bit khóa 14 Nhóm 14 Bài thi cuối kỳ mơn ANM V Q trình giải mã 5.1 Tổng quan giải mã AES-128 Mã hóa chuyển "bản rõ" (plaintext) thành "bản mã" (ciphertext) thơng qua khóa mã (key) giúp che dấu thơng tin gốc ban đầu Giải mã q trình nghịch đảo (Inverse cipher) q trình mã hóa Nó giúp khôi phục lại rõ từ mã Trong trình giải mã, ma trận ciphertext bị biến đổi chức AddRoundKey, InvSubBytes, InvShiftRows InvMixColumns để tạo liệu trung gian gọi ma trận trạng thái Ma trận khóa mã bị biến đổi chức KeyExpansion trình mã hóa Tuy nhiên, thứ tự sử dụng khóa vịng q trình giải mã ngược với q trình mã hóa, nghĩa khóa vịng số 10 sử dụng Tiếp theo khóa vịng số 9, số 8, , cuối khóa mã gốc Quá trình giải mã thực qua chức AddRoundKey, InvSubBytes, InvShiftRows, InvMixColumns InvKeyExpansion Chú ý, InvKeyExpansion chức mô tả chuẩn mà tên gọi tác giả thêm vào để trình biến đổi ngược giá trị khóa vịng từ khóa vịng số 10 đến khóa mã gốc  Bước Bước khởi tạo: Dữ liệu cần mã hóa cipher_text[127:0] kết hợp với khóa vịng thứ 10, round_key_10[127:0], chức AddRoundKey  Bước Bước lặp giải mã: kết bước sử dụng để thực chức InvShiftRows, InvSubBytes, AddRoundKey InvMixColumns Bước lặp lại lần Chú ý, InvKeyExpansion thực song song với bước AddRoundKey để tạo khóa vịng cho chức  Bước Bước tạo ngõ ra: Sau lần lặp bước 2, kết sử dụng để thực chức InvShiftRows, InvSubBytes AddRoundKey với khóa mã ban đầu để khơi phục lại plain_text[127:0] 15 Nhóm 15 Bài thi cuối kỳ mơn ANM Hình Q trình giải mã (Inverse Cipher) Quá trình giải mã AES-128 giải thích ví dụ cụ thể Giả sử chuỗi liệu cần mã hóa cipher_text[127:0] khóa vịng cuối lấy từ q trình mã hóa round_key_10[127:0] có giá trị sau:  cipher_text[127:0] = 69 c4 e0 d8 6a 7b 04 30 d8 cd b7 80 70 b4 c5 5a  round_key_10[127:0] = 13 11 1d 7f e3 94 4a 17 f3 07 a7 8b 4d 2b 30 c5 Dữ liệu khóa mã xếp dạng ma trận với phần tử byte Hình 10 Ma trận khóa vịng thứ 10 ma trận liệu mã hóa Giá trị dùng làm ví dụ lấy từ phần "INVERSE CIPHER (DECRYPT)" phụ lục "C.1 AES-128 (Nk=4, Nr=10)" tài liệu mô tả chuẩn mã hóa 16 Nhóm 16 Bài thi cuối kỳ môn ANM Chức AddRoundKey đảo Chức AddRoundKey đảo q trình giải mã chức AddRoundKey q trình mã hóa nên gọi chung AddRoundKey 5.2 Hình 11 Chức AddRoundKey Chức InvShiftRows InvShiftRows đảo chức ShiftRows InvShiftRows thực quay phải hàng ma trận trạng thái, sinh từ bước trước đó, theo byte với hệ số quay tăng dần từ đến Hàng có hệ số quay byte giữ ngun vị trí Hàng thứ hai có hệ số quay quay byte Hàng thứ ba quay hai byte hàng thứ tư quay ba byte 5.3 Hình 12 Chức InvShiftRows 17 Nhóm 17 Bài thi cuối kỳ mơn ANM Chức InvSubBytes Chức InvSubBytes thực thay byte ma trận trạng thái, giá trị quy định chuẩn AES Bảng quy định giá trị thay cho InvSubBytes gọi S-box đảo (Inverse S-box) 5.4 Hình 13 Bảng S-box đảo chuẩn AES Hình 14 Chức InvSubBytes 18 Nhóm 18 Bài thi cuối kỳ môn ANM Chức InvMixColumns InvMixColumns trình giả mã đảo MixColumns q trình mã hóa Từng cột ma trận trạng thái nhân với ma trận chuyển đổi sau 5.5 Hình 15 Ma trận chuyển đổi dùng InvMixColumns Việc biến đổi cột ma trận trạng thái thực hai phép toán nhân (.) XOR (+) Ngun tắc tính tốn InvMixColumns biến đổi phép nhân với số thành phép nhân với H02 H01 Phép nhân với H01 giữ nguyên giá trị Phép nhân với H02 tương đương với việc dịch trái bit XOR có điều kiện sau: Nếu bit MSB giá trị dịch giá trị sau dịch XOR với H1b  Nếu bit MSB giá trị dịch giữ giá trị sau dịch Như vậy, việc biến đổi phép nhân với H01 H02 giúp dễ dàng thiết kế mạch logic thực chức InvMixColumns với tài nguyên tối ưu hóa Thiết kế RTL code phân tích sau Tuy nhiên, bạn cần hiểu cách tính InvMixColumns trình bày sau đây:  Phép nhân byte A với H0e = B00001110 tương đương sau: A.H0e = A.H08 + A.H04 + A.H02 Trong đó, phép nhân với H04 H08 hồn tồn chuyển phép nhân với H02 A.H04 = A.H02.H02 A.H08 = A.H02.H02.H02 Như vậy: 19 Nhóm 19 Bài thi cuối kỳ môn ANM A.H0e = A.H02.H02.H02 + A.H02.H02 + A.H02 Phép nhân byte A với H0b=B00001011 tương đương sau: A.H0e = A.H08 + A.H02 + A.H01 = A.H02.H02.H02 + A.H02 + A.H01 Phép nhân byte A với H0d=B00001101 tương đương sau: A.H0e = A.H08 + A.H04 + A.H01 = A.H02.H02.H02 + A.H02.H02 + A.H01 Phép nhân byte A với H09=B00001001 tương đương sau: A.H0e = A.H08 + A.H01 = A.H02.H02.H02 + A.H01 Biểu thức sau biến đổi phần tử H54, H ký hiệu số Hex, cột bảng minh họa "chức InvMixColumns" H54 = He9.H0e + Hf7.H0b + H4e.H0d + Hec.H09 STT Phép tính He9.H0e = He9.H08 + He9.H04 +He9.H02 = Hc9+H H89+H09 = H49           Hf7.H0b 20 Nhóm 20 Giải thích chi tiết He9.H02 = Hc9 (B11001001) He9 (B11101001) dịch trái bit: B11010010 Vì bit MSB(trước dịch) nên kết dịch trái XOR với H1b (B00011011): B11001001 He9.H04 = He9.H02.H02 = H89 (B10001001) Kết He9.H02 dùng để dịch trái bit: B10010010 Vì bit MSB nên kết dịch trái XOR với H1b (B00011011): B10001001 He9.H08 = He9.H04.H02 = H09 (B00001001) Kết He9.H04 dùng để dịch trái bit: B00010010 Vì bit MSB nên kết dịch trái kết cuối Kết phép nhân He9.H0e XOR giá trị: Hc9 (B11001001) H89 (B10001001) H09 (B00001001) H49 (B01001001 ) Hf7.H01 = Hf7 (B11110111) Bài thi cuối kỳ môn ANM = Hf7.H08 + Hf7.H02 + Hf7.H01 = Hf9 + Hf5 + Hf7 = Hfb         H4e.H0d = H4e.H08 + H4e.H04 + H4e.H01 = H46 + H23 + H4e = H2b         Hec.H09 = Hec.H08 + Hec.H01 = H21 + Hec = Hcd   21 Nhóm 21 Hf7.H02=Hf5(B11110101) Hf7 (B11110111) dịch trái bit :B11101110 Vì bit MSB(trước dịch) nên kết dịch trái XOR với H1b(B00011011): B11110101 Hf7.H08 = Hf7.H02.H02.H02 = =Hf9(B11111001) Kết Hf7.H02.H02=Hf1(B11110001) Kết Hf7.H02.H02.H02= Hf9(B11111001) Kết phép nhân He9.H0e XOR giá trị: Hf7 (B11110111) Hf5 (B10001001) Hf9 (B11111001) Hfb (B11111011 ) H4e.H01 = H4e (B01001110) H4e.H04 = H4e.H02.H02 = =H23(B00100011) Kết H4e.H02=H9c(B10011100) Kết H4e.H02.H02= H23(B00100011) H4e.H08 = H4e.H04.H02 = =H46(B00100011) Kết H4e.H04 dùng để dịch trái bit: B01000110 Vì bit MSB nên kết dịch trái kết cuối Kết phép nhân H4e.H0d XOR giá trị: H4e (B11110111) H23 (B00100011) H46 (B01000110) H2b (B00101011) Hec.H01 = Hec (B11101100) Hec.H08 = Hec.H02.H02.H02 = =H21(B00100001) Kết Hec.H02=Hc3(B11000011) Kết Hec.H02.H02= H9d(B10011101) Bài thi cuối kỳ môn ANM He9.H0e +Hf7.H0b + +Hec.H09 =H49 + Hfb + H2b + Hcd =H54  Kết Hec.H02.H02.H02=H21(B00100001) Kết phép nhân Hec.H09 XOR giá trị:  Hec (B11110111)  H21 (B00100001)  Hcd (B11001101) H4e.H0d Kết tính InvMixColumn byte XOR giá trị:  H49 (BB01001001)  Hfb (B111111011)  H2b (B00101011)  Hcd (B11001101)  H54(B01010100) Bảng chi tiết cách tính InvMixColumns tạo phần tử H54 từ cột ma trận trạng thái Việc tính InvMixColumn cho tồn ma trận trạng thái sau: Hình 16 Chức InvMixColumns Với việc quy đổi phép nhân dạng nhân với H02 H01 Mạch logic nhân byte với H0e, H0b, H0d H09 thực hình sau 22 Nhóm 22 Bài thi cuối kỳ mơn ANM Hình 17 Mạch nguyên lý nhân byte A với phần tử ma trận chuyển đổi InvMixColumns Chức InvKeyExpansion Như trình bày, chuẩn AES khơng nói InvKeyExpansion mã hóa giải mã dùng chung khóa mã KeyExpansion giúp tính tất khóa vịng từ khóa mã Ví dụ, AES-128, có khóa mã 10 khóa vịng Khi mã hóa, khóa sử dụng theo thứ tự sau: Khóa mã (key) -> khóa vịng -> khóa vịng -> -> khóa vịng 10 5.6 Khi giải mã theo phương pháp nghịch đảo (Inverse cipher), khóa sử dụng theo thứ tự sau: Khóa vịng 10 -> khóa vịng -> -> khóa vịng -> khóa mã Như vậy, trước giải mã, tất khóa vịng phải tính trước lưu lại nhớ, ví dụ RAM hay mảng ghi Tác giả thực cách làm khác dùng khóa vịng cuối cùng, khóa vịng 10, sau áp dụng InvKeyExpansion để tính ngược lại khóa vịng trước khóa mã Cách giúp khơng tốn tài nguyên nhớ lưu lại tất khóa tốn logic thực mạch tính InvKeyExpansion Nguyên tắc tính InvKeyExpansion khóa thứ n-1 từ khóa thứ n sau (n >= 1, n = khóa mã gốc) sau:  Mỗi khóa gồm word với word MSB word LSB  word[0] khóa thứ n-1 = word[0] khóa thứ n XOR word[1] khóa thứ n  word[1] khóa thứ n-1 = word[1] khóa thứ n XOR word[2] khóa thứ n 23 Nhóm 23 Bài thi cuối kỳ mơn ANM  word[2] khóa thứ n-1 = word[2] khóa thứ n XOR word[3] khóa thứ n  word[3] khóa thứ n-1 = word[3] khóa thứ n XOR với giá trị sau biến đổi word[0] khóa thứ n-1 (đã tính đây) qua bước:  RotWord  SubWord  InvAddRcon Trong đó, RotWord SubWord áp dụng tương tự q trình mã hóa InvAddRcon bước XOR kết SubWord với Rcon thứ tự giá trị Rcon sử dụng ngược với q trình mã hóa Rcon Giá trị HEX Vị trí sử dụngRcon[1] 36000000 sử dụng cho lần tính khóa thứ Rcon[2] 1b000000 sử dụng cho lần tính khóa thứ Rcon[3] 82000000 sử dụng cho lần tính khóa thứ Rcon[4] 40000000 sử dụng cho lần tính khóa thứ Rcon[5] 20000000 sử dụng cho lần tính khóa thứ Rcon[6] 10000000 sử dụng cho lần tính khóa thứ Rcon[7] 08000000 sử dụng cho lần tính khóa thứ Rcon[8] 04000000 sử dụng cho lần tính khóa thứ Rcon[9] 02000000 sử dụng cho lần tính khóa thứ Rcon[10] 01000000 sử dụng cho lần tính khóa mã gốc Như vậy, AES-128, lần tính đầu tiên, tính giá trị khóa vịng số từ khóa vịng số 10 giá trị Rcon[1] = H36000000 sử dụng Khác với trình giải mã, Rcon[1] = H01000000 dùng cho lần tính VI Demo thuật tốn AES Python 6.1 Giới thiệu Trên sở lý thuyết trê, việc mã hóa giải mã tin cho ta biết tính quan trọng bảo mật thơng tin môi trường Internet Việc ứng dụng thuật tốn mã hóa giải mã giúp ích cho công việc quan trọng sống tránh bị đánh cắp liệu Hiện có nhiều ngơn ngữ lập trình hỗ trợ cho việc mã hóa giải mã, ví dụ Python, Java, C++, Bên cạnh đó, việc ứng dụng ngơn ngữ lập trình Python giúp ích nhiều cho cơng việc mã hóa giải mã, tiện lợi ngôn ngữ : ngắn gọn, dễ hiểu, dễ quản lý Sau phương pháp mã hóa giải mã Python 24 Nhóm 24 Bài thi cuối kỳ môn ANM 6.2 Thiết lập ứng dụng 6.2.1 Các thư viện hỗ trợ cho ứng dụng  From base64: Mã hóa Base64 cho phép chuyển đổi cac byte chứa liệu nhị phân văn sáng ký tự ASCII  Import hashlib: Bảo mật băm thơng báo tin nhắn  From Cryptodome.Cipher: gói chứa thuật tốn để bảo vệ tính bảo mật liệu  Import OS : cung cấp chức sử dụng để tương tác với hệ điều hành có thơng tin liên quan OS theo Module tiện ích tiêu chuẩn Python Module cung cấp cách linh động sử dụng chức phụ thuộc vào hệ điều hành Module os python cho phép làm việc với tập tin thư mục  From Cryptodome.Random import get_random_bytes : có khả tạo byte mạnh mặt mật mã 6.2.2 Thuật tốn mã hóa Tạo hàm mã hóa đơn giản (văn gốc, mật khẩu) Chức sử dụng mật để mã hóa văn túy Do đó, có quyền truy cập vào văn mã hóa mật giải mã 25 Nhóm 25 Bài thi cuối kỳ mơn ANM Nonce : Một nonce ngẫu nhiên (giá trị tùy ý) phải giá trị ngẫu nhiên cho lần chức mã hóa sử dụng với khóa Ta coi muối ngẫu nhiên cho mật mã Thư viện cung cấp cho ta nonce an toàn Scrypt : Scrypt sử dụng để tạo khóa cá nhân an toàn từ mật Điều khiến kẻ cơng khó cưỡng mã hóa chúng tơi Muối : Một muối ngẫu nhiên sử dụng cho lần chạy mã hóa bạn Điều khiến kẻ công sử dụng hàm băm tính tốn trước để cố gắng bẻ khóa mật mã Các tham số mã hóa :  N hệ số chi phí Nó phải lũy thừa hai cao khóa an tồn, cần nhiều tài ngun để chạy  R kích thước khối  P hệ số song song, hữu ích để chạy nhiều lõi Base64 : Mã hóa tất liệu kiểu byte bạn thành base64, biểu diễn chuỗi thuận tiện Thẻ (MAC) : Thẻ sử dụng để xác thực liệu sử dụng AES chế độ GCM Điều đảm bảo không thay đổi liệu bạn mà bạn khơng biết bạn giải mã 6.2.3 Thuật toán giải mã Kết sau mã giải mã 26 Nhóm 26 Bài thi cuối kỳ mơn ANM 6.2.4 Các trường hợp ứng dụng Công cụ lưu trữ nén Nếu số bạn tải xuống tệp từ Internet sau mở tệp thấy tệp nén, (có nghĩa kích thước tệp gốc giảm xuống để giảm thiểu ảnh hưởng đến ổ cứng bạn) có khả bạn cài đặt phần mềm dựa mã hóa AES Các cơng cụ nén phổ biến WinZip, Zip RAR cho phép bạn nén sau giải nén tệp để tối ưu hóa khơng gian lưu trữ gần tất chúng sử dụng AES để đảm bảo an tồn cho tệp Mã hóa đĩa / phân vùng Nếu bạn quen với khái niệm mật mã thực biện pháp bổ sung để đảm bảo tính bảo mật cho liệu cá nhân mình, phần mềm mã hóa đĩa / phân vùng mà bạn sử dụng sử dụng thuật toán AES BitLocker, FileVault CipherShed phần mềm mã hóa chạy AES để bảo mật thơng tin VII Kết luận Với phổ biến ngày tăng công mạng mối quan tâm ngày tăng xung quanh vấn đề bảo mật thông tin, điều quan trọng hết phải hiểu rõ hệ thống giữ an toàn cho bạn thông tin cá nhân bạn Việc nghiên cứu thuật tốn mã hóa giải mã viết giúp bạn hiểu biết thuật toán bảo mật quan trọng sử dụng AES.Tuy nhiên bạn khơng nên hiểu cách hoạt động thơi mà cịn cần làm cho hoạt động cho bạn để giúp bạn tối đa hóa bảo mật kỹ thuật số giảm thiểu khả bị công trực tuyến 27 Nhóm 27 Bài thi cuối kỳ mơn ANM Tài liệu tham khảo 1) Ako Muhamad Abdullah (2017) Advanced Encryption Standard (AES) Algorithm to Encrypt and Decrypt Data 2) Bài giảng môn “An ninh mạng thông tin” – Học viện Cơng nghệ Bưu Viễn thơng 3) Federal Information, Processing Standards Publication 197; ADVANCED ENCRYPTION STANDARD (AES); November 26, 2001 4) Padate, R., & Patel, A (2014) Encryption and decryption of text using AES algorithm International Journal of Emerging Technology and Advanced Engineering 5) Singh, G (2013) A study of encryption algorithms (RSA, DES, 3DES and AES) for information security International Journal of Computer Applications 28 Nhóm 28 ... trình bày, chuẩn AES khơng nói InvKeyExpansion mã hóa giải mã dùng chung khóa mã KeyExpansion giúp tính tất khóa vịng từ khóa mã Ví dụ, AES- 128, có khóa mã 10 khóa vịng Khi mã hóa, khóa sử dụng theo... tổng quan thuật tốn mã hóa tiên tiến AES Qua tiểu luận hiểu vấn đề AES cấu trúc thuật tốn, q trình mã hóa giải mã Phạm vi tiểu luận xoay quanh vấn đề thuật tốn mã hóa tiên tiến AES Về cấu trúc tiểu... khóa Ngày nay, có số thuật tốn có sẵn để mã hóa giải mã liệu nhạy cảm, thường chia thành ba loại Một mật mã đối xứng: khóa sử dụng để mã hóa giải mã liệu Thứ hai mật mã không đối xứng Loại mật

Ngày đăng: 16/08/2021, 17:16

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w