Bài tập môn học - Viết chương trình mã hóa và giải mã bằng mật mã AES
Mật mã học và các thành tựu của nó là một lĩnh vực quan trọng trong quá trình phát triển của nhân loại. Với mục tiêu làm rối và làm loạn thông tin, rồi sau đó có thể tái tạo lại thông tin một cách chân thực, chúng ta có thể đảm bảo được tính bí mật của thông tin, có thể truyền thông tin đi xa, và dựa vào các đặc tính của quá trình mã hóa, như tính không thể chối bỏ, tìm ra được các lỗ hổng bảo mật. Nhu cầu được mã hóa, bảo vệ thông tin, giao nhận thông tin đến đúng người nhận có ý nghĩa thực tiễn, từ chiến tranh đến hòa bình, từ công cuộc bảo vệ và xây dựng đất nước. Thật vậy, ngành mật mã học xuất phát từ thời La Mã, khi tướng Caesar đã mã hóa thông tin
bằng cách dịch chữ cái, hay mật mã Scytale của người Spartan, và giờ đây, thông tin nhạy cảm của ta như dữ liệu đăng nhập, dữ liệu thẻ tín dụng, dữ liệu trong chip CMND,… đều cần đến các thành tựu của ngành này. Việc tìm ra một thuật toán mã hóa an toàn khỏi sự can thiệp bên ngoài tưởng chừng đã kết thúc với chiếc chén thánh của mật mã học – OTP, thế nhưng, các hạn chế của OTP bắt buộc chúng ra phải tìm ra các phương thức mới, để thích nghi với quá trình phát triển không ngừng của công nghệ. Thuật toán AES, ứng dụng từ mật mã Rijndael được sinh ra trong bối cảnh như vậy.
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 chính phủ Mỹ áp dụng làm tiêu chuẩn mã hóa. Thuật toán AES làm việc với các khối dữ liệu 128 bit và khóa độ dài là 128 bit, 192 bit và 256 bit. Mã hóa dùng AES là mã hóa khối lặp gồm nhiều chu trình, các khóa con sử dụng trong các chu trình được tạo ra bởi quá trình tạo khóa con Rijndael.
Trong bài báo cáo này chúng ta sẽ tìm hiểu về các chu trình làm việc của phương pháp mã hóa AES và ứng dụng viết một chương trình mã hóa và giải mã bằng AES sử dụng ngôn ngữ Python, rồi sau đó sẽ tìm hiểu các dạng tấn công vào AES và phương pháp phòng tránh.
NỘI DUNG:
LỜI NÓI ĐẦU ........................................................................................................................ 3
I. TỔNG QUAN AES ......................................................................................................... 4
1. Khái niệm từ (Word) trong AES ................................................................................... 4
2. Thuật toán của AES .................................................................................................... 4
3. Khái quát ..................................................................................................................... 4
II. MÃ HÓA ......................................................................................................................... 6
1. Phương thức AddRoundKey. ...................................................................................... 6
2. Phương thức SubBytes. .............................................................................................. 6
3. Phương thức ShiftRows .............................................................................................. 7
4. Phương thức MixColumns. ......................................................................................... 8
III. GIẢI MÃ ...................................................................................................................... 9
1. Phương thức invShiftRows ......................................................................................... 9
2. Phương thức InvMixColumns. ..................................................................................... 9
IV. THUẬT TOÁN MỞ RỘNG KHÓA keyExpansion .................................................... 11
V. Các dạng tấn công vào AES và phương pháp phòng chống. ................................. 13
1. Side-channel attack. .................................................................................................. 13
2. Known attacks. .......................................................................................................... 13
3. Các phương pháp phòng chống. ............................................................................... 13
VI. Ứng dụng viết chương trình mã hóa và giải mã AES sử dụng Python: .............. 14
1. Các hàm nhân Galois: ............................................................................................... 14
2. Hàm RotWords: ......................................................................................................... 15
3. Hàm KeyExpansion: .................................................................................................. 15
4. Các hàm addRoundKey, subBytes, shiftRows, gMixColumns: .................................. 18
5. Các hàm invSubBytes, invShiftRows, gInvMixColumns: ............................................ 19
6. Các hàm phiên mã AES-128, AES-192, AES-256: .................................................... 20
7. Các hàm giải mã AES-128, AES-192, AES-256: ....................................................... 22
8. Các hàm chức năng chuyển đổi string thành ma trận và ngược lại: .......................... 23
9. Đóng gói thành hàm phiên mã và giải mã hoàn chỉnh ............................................... 24
10. Các chế độ hoạt động (modus operandi – mode of operation) của mật mã khối, và
ứng dụng vào phần mềm AES. ........................................................................................ 26
TÀI LIỆU THAM KHẢO
Mật mã học và các thành tựu của nó là một lĩnh vực quan trọng trong quá trình phát triển của nhân loại. Với mục tiêu làm rối và làm loạn thông tin, rồi sau đó có thể tái tạo lại thông tin một cách chân thực, chúng ta có thể đảm bảo được tính bí mật của thông tin, có thể truyền thông tin đi xa, và dựa vào các đặc tính của quá trình mã hóa, như tính không thể chối bỏ, tìm ra được các lỗ hổng bảo mật. Nhu cầu được mã hóa, bảo vệ thông tin, giao nhận thông tin đến đúng người nhận có ý nghĩa thực tiễn, từ chiến tranh đến hòa bình, từ công cuộc bảo vệ và xây dựng đất nước. Thật vậy, ngành mật mã học xuất phát từ thời La Mã, khi tướng Caesar đã mã hóa thông tin
bằng cách dịch chữ cái, hay mật mã Scytale của người Spartan, và giờ đây, thông tin nhạy cảm của ta như dữ liệu đăng nhập, dữ liệu thẻ tín dụng, dữ liệu trong chip CMND,… đều cần đến các thành tựu của ngành này. Việc tìm ra một thuật toán mã hóa an toàn khỏi sự can thiệp bên ngoài tưởng chừng đã kết thúc với chiếc chén thánh của mật mã học – OTP, thế nhưng, các hạn chế của OTP bắt buộc chúng ra phải tìm ra các phương thức mới, để thích nghi với quá trình phát triển không ngừng của công nghệ. Thuật toán AES, ứng dụng từ mật mã Rijndael được sinh ra trong bối cảnh như vậy.
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 chính phủ Mỹ áp dụng làm tiêu chuẩn mã hóa. Thuật toán AES làm việc với các khối dữ liệu 128 bit và khóa độ dài là 128 bit, 192 bit và 256 bit. Mã hóa dùng AES là mã hóa khối lặp gồm nhiều chu trình, các khóa con sử dụng trong các chu trình được tạo ra bởi quá trình tạo khóa con Rijndael.
Trong bài báo cáo này chúng ta sẽ tìm hiểu về các chu trình làm việc của phương pháp mã hóa AES và ứng dụng viết một chương trình mã hóa và giải mã bằng AES sử dụng ngôn ngữ Python, rồi sau đó sẽ tìm hiểu các dạng tấn công vào AES và phương pháp phòng tránh.
NỘI DUNG:
LỜI NÓI ĐẦU ........................................................................................................................ 3
I. TỔNG QUAN AES ......................................................................................................... 4
1. Khái niệm từ (Word) trong AES ................................................................................... 4
2. Thuật toán của AES .................................................................................................... 4
3. Khái quát ..................................................................................................................... 4
II. MÃ HÓA ......................................................................................................................... 6
1. Phương thức AddRoundKey. ...................................................................................... 6
2. Phương thức SubBytes. .............................................................................................. 6
3. Phương thức ShiftRows .............................................................................................. 7
4. Phương thức MixColumns. ......................................................................................... 8
III. GIẢI MÃ ...................................................................................................................... 9
1. Phương thức invShiftRows ......................................................................................... 9
2. Phương thức InvMixColumns. ..................................................................................... 9
IV. THUẬT TOÁN MỞ RỘNG KHÓA keyExpansion .................................................... 11
V. Các dạng tấn công vào AES và phương pháp phòng chống. ................................. 13
1. Side-channel attack. .................................................................................................. 13
2. Known attacks. .......................................................................................................... 13
3. Các phương pháp phòng chống. ............................................................................... 13
VI. Ứng dụng viết chương trình mã hóa và giải mã AES sử dụng Python: .............. 14
1. Các hàm nhân Galois: ............................................................................................... 14
2. Hàm RotWords: ......................................................................................................... 15
3. Hàm KeyExpansion: .................................................................................................. 15
4. Các hàm addRoundKey, subBytes, shiftRows, gMixColumns: .................................. 18
5. Các hàm invSubBytes, invShiftRows, gInvMixColumns: ............................................ 19
6. Các hàm phiên mã AES-128, AES-192, AES-256: .................................................... 20
7. Các hàm giải mã AES-128, AES-192, AES-256: ....................................................... 22
8. Các hàm chức năng chuyển đổi string thành ma trận và ngược lại: .......................... 23
9. Đóng gói thành hàm phiên mã và giải mã hoàn chỉnh ............................................... 24
10. Các chế độ hoạt động (modus operandi – mode of operation) của mật mã khối, và
ứng dụng vào phần mềm AES. ........................................................................................ 26
TÀI LIỆU THAM KHẢO


.png)
%20(1).png)
.png)
%20(1).png)
.png)
.png)


Không có nhận xét nào: