Báo cáo môn học an toàn bảo mật thông tin đề tài “tìm hiểu giải thuật mã hóa khóa bí mật aes” Báo cáo môn học an toàn bảo mật thông tin đề tài “tìm hiểu giải thuật mã hóa khóa bí mật aes” Báo cáo môn học an toàn bảo mật thông tin đề tài “tìm hiểu giải thuật mã hóa khóa bí mật aes”
Trang 1THU T TOÁN Ậ
AES
Trang 3T NG QUAN V AES Ổ Ề
Trang 4GI I THI U Ớ Ệ
• AES ( Advanced Encryption Standard ) hay còn
gọi là tiêu chuẩn mã hóa nâng cao là một thuật toán mã hóa khối được chính phủ Hoa Kỳ áp dụng làm tiêu chuẩn mà hóa
• Thuật toán được thiết kế bởi 2 nhà mật mã học người Bỉ: Joan Daemen và Vincent Rijmen Thuật toán được đặt tên là “Rijndael” khi tham gia cuộc thi thiết kế AES
Trang 5QUÁ TRÌNH PHÁT
• Thuật toán được dựa trên bản thiết kế Square có trước đó của Daemen và Rijmen, còn Square được thiết kế dựa trên Shark.
Trang 7NGHIÊN C U V THU T Ứ Ề Ậ
TOÁN AES
Trang 9THU T TOÁN MÃ HÓA Ậ
Kh i đ ng vòng ở ộ
AddCipherKey SubBytes SubBytes
ShiftRows ShiftRows MixColumns AddRoundKey AddRoundKey
Trang 10THU T TOÁN MÃ HÓA Ậ
• Ví dụ:
o Dữ liệu vào : ATTACK AT DAWN.
o Key: SOME 128 BIT KEY.
o Vòng khởi tạo đầu tiên, sử dụng phép toán Xor cho mỗi byte tương ứng với mỗi byte của key ban đầu.
Trang 11THU T TOÁN MÃ HÓA Ậ
• Tạo RoundKey
o Lấy cột cuối cùng của ma trận
cipher key ra mà đẩy vị trí cuối
cùng trong cột lên đầu.
o Sau đó cho từng hàng của cột
này mã hóa bằng thay thế
thông qua S - box Trước khi sử
dụng bằng hộp thay thế, ta
chuyển dạng text về hệ Hex.
K E Y
K => b3
E => 6e
Y => cb
=> b7
Trang 12THU T TOÁN MÃ HÓA Ậ
• Sau khi có được cột đã mã hóa,
sử dụng phép toán xor với một
hằng số vòng (Rcon) , hằng số
này là khác biệt với mỗi vòng lặp
• Sử dụng phép toán xor với cột
đầu tiên của input(cipher key) và
trước khi thực hiện tính toán, ta
chuyển về dạng ASCII rồi chuyển
qua hệ Hex để thực hiện phép
tính XOR
Trang 13THU T TOÁN MÃ HÓA Ậ
• Với các cột còn lại (2, 3, 4): Sử dụng phép toán xor với các tiếp theo của ma trận input (cipher key) với cột trước đó của round[1] vừa được mã hóa.
• RoundKey[2],[3],[4] [10] : được tạo như RoundKey[1] với input là output của roundKey trước đó.
Trang 14THU T TOÁN MÃ HÓA Ậ
• SubBytes
o Đây là phép thế (phi tuyến) trong đó mỗi byte trong
trạng thái sẽ được thế bằng một byte khác theo bảng tra (Rijndael S-box).
Trang 15THU T TOÁN MÃ HÓA Ậ
Trang 16THU T TOÁN MÃ HÓA Ậ
• Bảng S-box sinh ra từ “ modular arithmetic “ và một trường Galois Một trường Galois là một
trường với một số hữu hạn các phần từ Các
trường Galois là một trường lũy thừa của một số nguyên Đối với mỗi số nguyên luôn tôn tại đúng một trường Galois
Trang 17THU T TOÁN MÃ HÓA Ậ
• Input: kí tự D
• Trước tiên ta chuyển D về dạng Hex và có giá trị là
44 bằng cách tra cứu bảng ASCII
• Khi sử dụng bảng S-box, kí tự đầu tiên trong hệ Hex tham chiếu đến các hàng của bảng hoặc giá trị từ bên trái xuống.
• Kí tự thứ 2 tham chiếu đến cột của bảng S-Box
• Giá trị trong hệ Hex là ‘1b’.
Trang 18THU T TOÁN MÃ HÓA Ậ
bước nhất định Hàng đầu được giữ
nguyên Mỗi byte của hàng thứ 2
được dịch vòng trái một vị trí
Tương tự, các hàng thứ 3 và 4 được
dịch vòng 2 và 3 vị trí Do vậy, mỗi
cột khối đầu ra của bước này sẽ
bao gồm các byte ở đủ 4 cột khối
đầu vào
Trang 19THU T TOÁN MÃ HÓA Ậ
Trang 20THU T TOÁN MÃ HÓA Ậ
• {02,d4} = 1011 0011
o Tương tự như trên ta thực hiện với {03.bf}, {01.5d}, {01.30}
o B0 = {02.d4} XOR {03.bf} XOR {01.5d} XOR {01.30}
Trang 21THU T TOÁN GI I MÃ Ậ Ả
• Giải mã Rijndael có 2 cách giải mã đó là giải mã trực tiếp và giải
mã bằng thuật toán giải mã tương đương
o Giải mã trực tiếp: mọi biến đổi được dùng trong các phép tính
mã hóa là khả nghịch, cài đặt phép tính giải mã là giữ nguyên các thứ tự các biến đổi đã dùng trong phép mã hóa, chỉ thay các phép biến đổi bằng các biến đổi ngược của chúng
o Giải mã tương đương: được thực hiện bằng cách đảo ngược thứ
tự của hàm SubBytes-1 () và ShiftRows-1 (), thay đổi thứ tự của AddRoundKey(), MixColumns-1 () trong các lần lặp sau khi thay đổi khóa cho giá trị Round =1 to Nr-1 bằng cách sử dụng biến đổi MixColumns() Các word đầu tiên và cuối cùng của danh sách khóa không bị thay đổi khi ta áp dụng phương pháp này
Trang 22o Loại bỏ hoặc giảm việc phát tán các thông tin đó.
o Loại bỏ các mối quan hệ giữa các thông tin bị rò rỉ và các dữ liệu bí mật, đó là làm cho các thông tin bị rò rỉ không liên quan, hay đúng hơn là không tương quan, đển các dữ liệu bí mật
Trang 23U ĐI M
• Thuật toán AES thực hiện việc xử lý rất nhanh
• Mã chương trình ngắn gọn, thao tác xử lý sử dụng ít bộ nhớ
• Tất cả các bước xử lý của việc mã hóa và giải mã đều được thiết
kế thích hợp với cơ chế xử lý song song
• Yêu cầu đơn giản trong việc thiết kế cùng tính linh hoạt trong xử
lý luôn được đặt ra và đã được đáp ứng
• Độ lớn của khối dữ liệu cũng như của mã khóa chínhcó thể tùy biến linh hoạt từ 128 đến 256-bit với điều kiện là chia hết cho 32
Số lượng chu kỳ có thể được thay đổi tùy thuộc vào yêu cầu riêng được đặt ra cho từng ứng dụng và hệ thống cụ thể
Trang 24• Mô tả toán học khá là đơn giản.
• AES không đủ an toàn đối với dạng tấn công Side channel
attack