Các giải thuật mã hóa KHÓA ĐỐI XỨNG ❖ Trong hệ thống mã hóa đối xứng, trước khi truyền dữ liệu 2 bên gửi và nhận phải thỏa thuận về khóa dùng chung cho qúa trình mã hóa và giải mã, khóa được sinh ra bởi bộ sinh khóa. ❖ Sau đó, bên gửi sẽ mã hóa Plaintext bằng cách sử dụng khóa bí mật này và gửi thông điệp đã mã hóa cho bên nhận. ❖ Bên nhận sau khi nhận được thông điệp đã mã hóa sẽ sử dụng chính khóa bí mật mà hai bên thỏa thuận để giải mã và lấyraPlaintext3 Các giải thuật mã hóa khóa đối xứng ❖ Những gì bạn nhìn thấy hình trên chính là quá trình tiến hành trao đổi thông tin giữa bên gửi và bên nhận thông qua việc sử dụng phương pháp mã hóa đối xứng. ❖ Trong quá trình này thì thành phần quan trọng nhất cần phải được giữ kín chính là khóa. ❖ Việc trao đổi, thỏa thuận về thuật toán được sử dụng trong việc mã hóa có thể tiến hành một cách công khai, nhưng bước thỏa thuận về khóa trong việc mã hóa và giải mã phải tiến hành bí mật.
Trang 137 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất hả o b
d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm ái d Ê m đềm 4 6 Dòng sông lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa 5 0 Khí phách a Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình
1
TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH
KHOA CÔNG NGHỆ THÔNG TIN
Giảng Viên: ThS.Dương Minh Tuấn Email: dmtuan@ntt.edu.vn
ĐT – Zalo: 0973887793
Trang 237 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất hả o b
d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm ái d Ê m đềm 4 6 Dòng sông lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa 5 0 Khí phách a Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình
Các giải thuật mã hóa KHÓA ĐỐI XỨNG
Chương IV.
1 DES
2 Triple-DES
3 AES
Trang 337 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất hả o b
d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm ái d Ê m đềm 4 6 Dòng sông lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa 5 0 Khí phách a Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình
Các giải thuật mã hóa khóa đối xứng
❖ Trong hệ thống mã hóa đối xứng, trước khi truyền dữ liệu 2
bên gửi và nhận phải thỏa thuận về khóa dùng chung cho
qúa trình mã hóa và giải mã, khóa được sinh ra bởi bộ sinh
khóa
❖ Sau đó, bên gửi sẽ mã hóa Plaintext bằng cách sử dụng khóa
bí mật này và gửi thông điệp đã mã hóa cho bên nhận.
❖ Bên nhận sau khi nhận được thông điệp đã mã hóa sẽ sử
dụng chính khóa bí mật mà hai bên thỏa thuận để giải mã và
lấy ra Plaintext.
3
Trang 437 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất hả o b
d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm ái d Ê m đềm 4 6 Dòng sông lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa 5 0 Khí phách a Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình
Các giải thuật mã hóa khóa đối xứng
❖ Những gì bạn nhìn thấy hình trên chính là quá trình tiến hành
trao đổi thông tin giữa bên gửi và bên nhận thông qua việc sử dụng phương pháp mã hóa đối xứng.
❖ Trong quá trình này thì thành phần quan trọng nhất cần phải
được giữ kín chính là khóa
❖ Việc trao đổi, thỏa thuận về thuật toán được sử dụng trong
việc mã hóa có thể tiến hành một cách công khai, nhưng
bước thỏa thuận về khóa trong việc mã hóa và giải mã phải
Trang 537 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất hả o b
d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm ái d Ê m đềm 4 6 Dòng sông lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa 5 0 Khí phách a Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình
Các giải thuật mã hóa khóa đối xứng
❖ Phải có bước thỏa thuận về khóa, vì hai lý do cơ bản sau đây:
➢ Nếu như hai bên đã thống nhất thuật toán mã hóa, nhưng sau
đó nơi gửi gửi thông điệp đã mã hóa tới cho nơi nhận mà không cho biết khóa đã sử dụng trong quá trình mã hóa
➢ Nơi nhận không có khóa để giải mã cho nên sẽ chẳng hiểu
được nội dung trong tài liệu muốn nói gì
➢ Vì thế bắt buộc ngoài việc trao đổi về thuật toán thì cần phải
trao đổi về khóa
5
Trang 637 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất hả o b
d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm ái d Ê m đềm 4 6 Dòng sông lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa 5 0 Khí phách a Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình
Các giải thuật mã hóa khóa đối xứng
❖ Khóa phải được trao đổi theo một kênh bí mật nào đó.
❖ Ví dụ trực tiếp trao đổi (mặt đối mặt) hay gián tiếp trao đổi
(thông qua điện thoại, email, tin nhắn)
❖ Phải thực hiện qua kênh truyền bí mật vì rất có thể sẽ có một
bên thứ ba nghe lén cuộc trao đổi giữa hai bên và có được
khóa, như vậy thông tin trao đổi sẽ bị kẻ khác biết được
Trang 737 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất hả o b
d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm ái d Ê m đềm 4 6 Dòng sông lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa 5 0 Khí phách a Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình
Các giải thuật mã hóa khóa đối xứng
❖ Thêm vào đó hai bên buộc phải tin cậy lẫn nhau, không thể nhờ
một người khác gửi hộ khóa được vì rất có thể người này sẽ
dùng khóa đó để ăn cắp thông tin Thuật toán mã hóa loại này có
ưu điểm là nhanh, độ an toàn gần như tuyệt đối nếu khô để lộ
khóa bí mật
❖ Chính vì vậy mấu chốt của việc sử dụng loại thuật toán mã hóa
này là việc truyền khóa bí mật cho bên nhận một cách an toàn.
7
Trang 837 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất hả o b
d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm ái d Ê m đềm 4 6 Dòng sông lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa 5 0 Khí phách a Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình
Các giải thuật mã hóa khóa đối xứng
Các giải thuật mã hóa khóa đối xứng (symetric key encryption)
▪ Còn gọi là mã hóa khóa riêng hay bí mật ( secret/private key encryption ):
▪ Sử dụng một khóa (key) duy nhất cho cả quá trình mã hóa và giải mã.
Trang 937 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất hả o b
d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm ái d Ê m đềm 4 6 Dòng sông lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa 5 0 Khí phách a Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình
Các giải thuật mã hóa khóa đối xứng
9
Trang 1037 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất hả o b
d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm ái d Ê m đềm 4 6 Dòng sông lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa 5 0 Khí phách a Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình
▪ DES được phát triển tại IBM vào đầu những năm 1970;
▪ Được thừa nhận là chuẩn mã hóa tại Mỹ (NSA) vào năm 1976;
▪ DES được sử dụng rộng rãi trong những năm 70 và 80.
❖ Hiện nay DES không được coi là an toàn do:
▪ Không gian khóa nhỏ (khóa 64 bít, trong đó thực sử dụng 56 bít)
▪ Tốc độ tính toán của các hệ thống máy tính ngày càng nhanh.
❖ Đặc điểm của DES:
▪ Là dạng mã hóa khối, kích thước khối vào 64 bít
▪ Khóa 64 bít, trong đó thực sử dụng 56 bít, 8 bít dùng cho kiểm tra chẵn lẻ
▪ DES sử dụng chung một giải thuật cho cả hai khâu mã hóa và giải mã.
Trang 1137 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất hả o b
d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm ái d Ê m đềm 4 6 Dòng sông lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa 5 0 Khí phách a Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình
❖ Mã hóa và giải mã một khối dữ liệu với DES
11
Trang 1237 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất hả o b
d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm ái d Ê m đềm 4 6 Dòng sông lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa 5 0 Khí phách a Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình
Mã hóa và giải mã một khối dữ liệu với DES
❖ Các bước thực hiện mã hóa của DES với mỗi khối dữ
liệu 64 bít:
▪ Bước hoán vị khởi tạo (IP – Initial Permutation);
▪ 16 vòng lặp chính thực hiện xáo trộn dữ liệu theo hàm Feistel (F);
▪ Bước hoán vị kết thúc (FP – Final Permutation).
❖ Sử dụng phép (XOR) để kết hợp trong quá trình lặp.
Trang 1337 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất hả o b
d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm ái d Ê m đềm 4 6 Dòng sông lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa 5 0 Khí phách a Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình
Tiến trình mã hóa một khối dữ liệu với DES
13
Trang 1437 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất hả o b
d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm ái d Ê m đềm 4 6 Dòng sông lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa 5 0 Khí phách a Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình
Tiến trình mã hóa một khối dữ liệu với DES
Trang 1537 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất hả o b
d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm ái d Ê m đềm 4 6 Dòng sông lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa 5 0 Khí phách a Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình
❖ Chia khối 64 bít thành 2 khối 32 bít và xử lý lần lượt.
❖ Các bước thực hiện hàm F (Fiestel) với khối dữ liệu 32 bít
của DES:
nhân đôi một nửa số bit.
▪ : Trộn 48 bit ở bước E với khóa phụ 48 bít Có 16 khóa phụ được tạo từ
khóa chính để sử dụng cho 16 vòng lặp.
chuyển cho các bộ thay thế (S1-S8).
• Mỗi bộ thay thế sử dụng phép chuyển đổi phi tuyến tính để chuyển 6 bit đầu vào thành 4 bit đầu
ra theo bảng tham chiếu Các bộ thay thế là thành phần nhân an ninh (security core) của DES.
▪ P: 32 bít đầu ra từ các bộ thay thế được sắp xếp bằng phép hoán vị cố định (fixed permutation) cho ra đầu ra 32 bít.
15
Trang 1637 Địa vị a Bấp bê nh b Bập bùng c Bập bềnh d Bậ p bẹ 38 Lửa cháy a Bấp bênh b Bập bùng c Bậ p bềnh d Bập bẹ 39 Sóng nước a Bấ p bên h b Bập bùng c Bập bềnh d Bậ p bẹ 40 Tiếng nói a Bấp bênh b Bập bùng c Bậ p bề nh phẩm a Bất hảo b Bất kha m c Bất h ủ d Bất minh 43 P hần tử a Bất hả o b
d Bất mi nh 45 Bàn tay a Êm ấ m b Ê m dịu c Êm ái d Ê m đềm 4 6 Dòng sông lòng a Hào hùng b Hà o hiệ p c Hà o phóng d Hà o hoa 5 0 Khí phách a Hào hiệp c Hà o phóng d Hào hoa 52 Ăn tiêu a Hà o hùng b Hào hiệp c Hào phóng d Hào hoa 53 Ăn nói 54 Bệnh dịch 55 Đá nh bằ ng 56 Tính tình
❖ Tạo bộ khóa phụ cho 16 vòng lặp:
▪ 56 bít khóa được chọn từ khóa 64 bit ban
đầu bởi PC1 (Permuted Choice 1) 8 bit còn lại
được hủy hoặc dùng để kiểm tra chẵn lẻ;
▪ 56 bít được chia thành 2 phần 28 bit, mỗi
phần được xử lý riêng;
▪ Mỗi phần được quay trái 1 hoặc 2 bit.
▪ Hai phần được ghép lại và 48 bit được chọn