Trăn aes
Bài viết này phân tích một thiết kế về bộ giải mã (decrypt/decipher) để chuẩn hóa mã hóa dữ liệu AES-128. Nội dung rút gọn về lý thuyết giải mã và mã hóa các bạn xem thêm ở các bài viết trước, bài 1, bài 2 và bài 3 *inv là cách viết tắt của "inverse" với nghĩa là "đảo" 1) Mô tả tổng quan thiết kế Bộ giải mã AES-128, aes128_decipher_top, được thiết kế bao gồm 2 khối
Bộ mã hóa bao gồm các tín hiệu giao tiếp sau
Tín hiệu giao tiếp giữa khối aes128_cipher_core_inv và aes128_key_expansion_inv
Bên cạnh đó, thiết kế sử dụng một số chức năng được đặt trong các tệp sau
2) Khối mạch logic aes128_key_expansion_inv Khối này thực hiện chức năng khóa xoay vòng InvKeyExpansion đã được trình bày ở bài 2 Khối này sử dụng một thanh ghi round_key_reg[127. 0] để lưu lại giá trị khóa vòng sau mỗi lần tính toán Các bạn hãy xem từ MUX, bên dưới cùng của hình, lên sẽ thấy dung được hoạt động của mỗi lần lặp tính năng khóa vòng (phím tròn) round_num[3. 0] sẽ cho biết vòng thứ mấy đang được tính, nếu nó bằng 0 thì khóa vòng số 10 round_key_10[127. 0] sẽ kết nối đến key_in[127. 0] và được đưa vào mạch logic để tính ngược vòng quay số 9 Từ lần tính tiếp theo trở đi, round_num[3. 0] bằng 1 đến 10, giá trị được sử dụng để tính toán sẽ lấy từ thanh ghi round_key_reg[127. 0] để tính các vòng khóa số 8, số 7,. and key ban đầu At here 32 bit last [31. 0] was XOR with 32 bit next [63. 32] before khi đi qua các bước tính toán sau Thuật toán được đặt tên là "Rijndael" khi tham gia cuộc thi thiết kế AES. Rijndael được phát âm là "Rhine dahl" theo phiên bản quốc tế. Thuật toán được thiết kế bởi hai nhà mật mã học người Bỉ. Joan Daemen và Vincent Rijmen. Giống như tiêu chuẩn tiền nhiệm DES, AES được kỳ vọng áp dụng trên phạm vi thế giới và đã được nghiên cứu rất kỹ lưỡng. AES được chấp nhận làm tiêu chuẩn liên bang bởi Viện tiêu chuẩn và công nghệ quốc gia Hòa Kỳ (NIST) sau một quá trình tiêu chuẩn hóa kéo dài 5 năm. AES (viết tắt của từ tiếng Anh. Advanced Encryption Standard, hay Tiêu chuẩn mã hóa tiên tiến) là một thuật toán mã hóa khối được phủ chính Hoa kỳ áp dụng làm tiêu chuẩn mã hóa. Hãy sử dụng Python để mã hóa tệp bằng AES. ✨✨ Chúng tôi sẽ viết một số Mã Python để mã hóa tệp trên đĩa bằng AES, sau đó giải mã tệp để truy xuất tệp văn bản gốc của chúng tôi. Chúng tôi sẽ sử dụng Python 3. 8. 10 cho ví dụ này AES (Tiêu chuẩn mã hóa nâng cao) ban đầu được gọi là Rijndael và là một thuật toán khối đối xứng để mã hóa hoặc giải mã dữ liệu. Tiêu chuẩn được thành lập bởi U. S. Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST) năm 2001 AES có kích thước khối cố định là 128 bit (16 byte) và có ba độ dài khóa khác nhau. Dài 128, 192 hoặc 256 bit Chúng tôi sẽ sử dụng 3 thư viện trong ví dụ này. Hai trong số chúng có thể yêu cầu cài đặt mà chúng ta có thể làm như sau
Hệ điều hành mô-đun khác sẽ được tích hợp vào Python 3. Bây giờ, hãy viết mã của chúng tôi
Hãy giải thích những gì đang xảy ra ở đây
Khi đoạn mã trên thực thi, chúng tôi sẽ nhận được 2 tệp mới trên đĩa trong cùng thư mục với tập lệnh của chúng tôi ngoài tệp tin. docx
Vậy là xong. Chúng tôi đã mã hóa và giải mã thành công một tệp bằng Python. Tuy nhiên, xin lưu ý rằng đây chỉ là một ví dụ . Trên thực tế, bạn hoàn toàn nên sử dụng các phương tiện mạnh mẽ và mạnh mẽ hơn để mã hóa dữ liệu của mình, cùng với mật khẩu mạnh hơn. Bạn tự chịu rủi ro khi sử dụng mã này. Đây chỉ là mục đích trình diễn. Cảm ơn vì đã đọc. Xem Hướng dẫn mã hóa TwoFish của chúng tôi TẠI ĐÂY. 👌👌👌 Tôi thích chia sẻ, giáo dục và giúp đỡ các nhà phát triển. Tôi có hơn 14 năm kinh nghiệm trong lĩnh vực CNTT. Hiện đang chuyển đổi từ Quản trị hệ thống sang DevOps. Ham đọc sách, trí thức và mơ mộng. Vào tự do, đi an toàn, và để lại chút gì đó hạnh phúc mà bạn mang theo |