MẬT MÃ ĐỐI XỨNG
VÀ
MÃ KHỐI
1
Tổng quan về mã hóa
2
3
Giải pháp Feistel cho mã hóa khối
Mã hóa khối và giải thuật mã hóa khối
1.Tổng quan về mã hóa
Mã hóa là gì: Là quá trình biến đổi thông tin từ dạng này sang dạng khác, ngăn những người không tiếp cận thông tin
đó. Bản thân việc mã hóa không ngăn thông tin bị đánh cắp nhưng thông tin được lấy về sẽ không hiểu được do đã bị
làm biến dạng.
Lý do phải mã hóa thông tin
-Chống xem trộm thông tin khi truyền tin
-Ngăn chặn việc thay đổi thông điệp của kẻ xấu
-Ngăn việc giả mạo địa chỉ IP, chiếm quyền kết nối
-Chống tấn công từ chối dịch vụ DoS
Mật Mã
Mật mã đối xứng
Mật mã khối
Mật mã dòng
Mật mã bất đối xứng
Giao thức
Hai loại mã hóa đối xứng là mã khối và mã dòng
Mã khối : là những thuật toán mã đối xứng hoạt động trên các khối thông tin có độ dài cố định (block).
VD : mã hóa khối có thể sử lý khối 128 bit đầu vào biến nó thành 128
khóa bí mật để cá biệt
bít đầu ra, trong quá trình sử dụng tham số
hóa quá trình
Thuật toán mã khối phổ biến là DES (Data Encryption Standard -
Tiêu chuẩn mã hóa dữ liệu) phát triển và được ban hành
làm tiêu chuẩn năm 1997. AES (Advanced Encryption Standard - Tiêu chuẩn mã hóa nâng cao) được ban hành năm 2001 .
Mã dòng : mã hóa từng bít của thông điệp chứ không theo từng khối như mã hóa khối mỗi lần mã hóa một bít. Mã hóa
luồng phổ biến là RC4.
2.Giải pháp Feistel cho mã hóa khối
•
Bản rõ (trước khi mã hóa) được biến đổi qua một số vòng để cho ra bản mã (sau khi mã hóa)
•
Bản rõ và bản mã hải độc lập với khóa sử dụng
•
Tính khuếch tán : giảm ảnh hưởng của các thống kê trên bản rõ phản ảnh trên bản mã
•
Tính rối : làm phức tạp mối quan hệ thống kê giữa bản mã và khóa mã
•
Hệ mã Feistel có điểm quan trọng là chia các bản mã thành hai nửa trái phải
giúp hàm F không cần phải khả nghịch F-1
•
Mã hóa và giải mã đều dùng chiều thuận của hàm F
•
Hàm F và thuật toán sinh khóa càng phức tạp càng khó phá mã
•
Ứng với hàm F và thuật toán sinh khác nhau sẽ có phương pháp mã hóa khác
nhau
3.Mã hóa khối và giải thuật mã hóa khối
Nguyên lý thiết kế mã khối
Kích thước khối: kích thước khối lớn có nghĩa là an toàn cao hơn nhưng tốc độ mã hóa và giải mã bị giảm
Kích thước khóa: kích thước khóa lớn nghĩa là an toàn cao hơn nhưng cũng có thể làm giảm tốc độ mã hóa/giải mã.
Số lượng vòng: càng nhiều vòng càng khó phân tích tìm khóa
Hàm F: làm rối => không tuyến tính, 1 bít vào thay đổi thay đổi nhiều bít đầu ra, bít đầu ra thay đổi độc lập với bít đầu vào
Thuật toán tạo lập lịch khóa: tạo khóa con sao cho khó suy luận được khóa con và khóa chủ
Tiêu chuẩn mã hóa dữ liệu DES (Data Encryption Standard)
Là thuật toán mã hóa khối: xử lý khối thông tin của bản rõ có độ dài xác định và biến đổi theo những quá trình phức tạp để
trở thành khối thông tin của bản mã có độ dài thích hợp.
DES có độ dài toàn bộ là 64 bit tuy nhiên chỉ có 56 bít được sử dụng 8 bít dùng cho việc kiểm tra.
Tuy nhiên hiện nay DES được xem là không an toàn và đươc thay thế bằng AES (tiêu chuẩn mã hóa tiên tiến)
Cấu trúc
DES
Cấu trúc một vòng của DES
Lấy 32 bít nửa phải R, mở rộng thành 48 bít nhờ hoán vị E, rồi cộng
vào với khoá con 48 bít.
Sau đó chia thành 8 cụm 6 bít và cho qua 8 S-box để nhận được kết quả
32 bít
Đảo lần cuối sử dụng hoán vị 32 bít P nhận được 32 bít đầu ra, rồi cộng
với nửa trái để chuyển thành nửa phải của bước sau.
Quá trình tạo khóa con
Đầu tiên, từ 64 bit ban đầu của khóa, 56 bit được chọn. 56 bit thu
được được chia làm hai phần bằng nhau.
Sau mỗi chu trình, mỗi phần được dịch đi 1 hoặc 2 bit (tùy thuộc
từng chu trình, nêu đó là chu trình 1,2,9,16 thì đó là dịch 1bit, còn
lại thì sẽ được dich 2bit).
Các khóa con 48 bit được tạo thành bởi thuật toán lựa chọn 2 gồm
24 bit từ mỗi phần. Quá trình dịch bit (được ký hiệu là "<<<" trong
sơ đồ) khiến cho các khóa con sử dụng các bit khác nhau của khóa
chính; mỗi bit được sử dụng trung bình ở 14 trong tổng số 16 khóa
con.
Tiêu chuẩn mã hóa tiên tiến AES (Advanced Encryption Standard)
•
•
•
•
•
•
•
Là mã mới thay thế DES
Xử lý dữ liệu 128 bit block
Sử dụng khóa : 128, 192, 256 bít
Tính mềm dẻo
Phù hợp vơi nhiều ứng dụng
Có thể sử dụng tạo mã dòng, số ngẫu nhiên, hàm băm, mã xác thực bản tin MAC,…
Dễ dàng triển khai
Kiến trúc
chung của
AES
Khối dữ liệu vào 128 bít được chia thành một khối 4x4 byte được gọi là ma trận trạng thái
Quá trình mã hóa
1.
khởi động vòng lặp (Addroundkey)
-mỗi cột của trạng thái đều kết hợp với một khóa con theo thứ tự từ
đầu dãy khóa
Vòng lặp
1.các byte được thế thông qua bang S-box (subbyte)
2.Các hàng trạng thái được dịch theo một số bước nhất định
(ShiftRow)
3.Mỗi cột được biến đổi tuyến tính bằng cách nhân với hệ số
C(x) (Mixcolums)
4.thực
hiện Addroundkey
Quá trình được thực hiện Nr-1 lần (Nr = 9/11/13 vòng)
Vòng lặp cuối
Thực hiện các thao tác : Subbyte,
ShiftRow, Addroundkey bỏ qua quá trình Mixcolums
THANK YOU