Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Tấn công Meet-in-the-Middle trên Double DES hoạt động như thế nào?


Double DES dùng hai thể hiện mật mã DES cho mã hóa và hai đơn vị DES ngược cho giải mã. Mỗi đơn vị DES cần nhiều khóa mã hóa làm tăng kích thước khóa (112 bit) làm nó an toàn hơn. Nhưng Double DES có thể bị phá bởi tấn công bản rõ đã biết gọi là meet-in-the-middle attack.

Cho bản rõ P và hai khóa mã hóa K₁ và K₂, bản mã C tạo ra như C = Eₖ₂(Eₖ₁(m)). Giải mã cần khóa dùng theo thứ tự ngược:

P = Dₖ₁(Dₖ₂(C))

Tấn công Meet-in-the-Middle (MitM) là loại tấn công mật mã phân tích nơi kẻ tấn công cần sự đánh đổi không gian/thời gian để hỗ trợ tấn công. MITM cố gắng giảm độ khó cần thiết thực hiện tấn công ở trạng thái gốc.

Merkle và Hellman giới thiệu thuật ngữ meet-in-the-middle attack. Tấn công này chứa mã hóa từ một đầu và giải mã từ đầu kia và kết nối kết quả ở giữa, do đó tên meet-in-the-middle.

MITM tạo hình thức chia kết nối mục tiêu thành hai để mỗi phần xử lý độc lập. Nghĩa là biến tấn công cần X thời gian thành cần Y thời gian và Z không gian. Mục tiêu là giảm đáng kể công sức thực hiện tấn công brute-force.

Kẻ tấn công Meet-in-the-Middle cố gắng điều hòa độ khó trong tấn công mật mã phân tích cao bằng cách gặp ở giữa, hoặc giảm một nửa khu vực phân tích để công sức khả thi/hợp lý theo quan điểm của họ.

Mục tiêu tấn công là đánh cắp thông tin cá nhân: thông tin đăng nhập, chi tiết tài khoản, số thẻ tín dụng. Mục tiêu thường là người dùng ứng dụng tài chính, doanh nghiệp SaaS, trang thương mại điện tử và web cần đăng nhập.

Thông tin lấy được trong tấn công dùng cho nhiều mục đích: đánh cắp danh tính, chuyển tiền trái phép, thay đổi mật khẩu trái phép.

Có hai khóa K₁ và K₂ dùng mã hóa bản rõ P thành bản mã C và cùng K₁, K₂ dùng giải mã. Văn bản trung gian do mã hóa đầu tiên và giải mã đầu tiên, M phải giống nhau tức là hai quan hệ phải đúng.

Xét một mật mã phân tích có cặp P và C trước, có thể dùng tất cả giá trị khả thi (2⁵⁶) của K₁ và ghi tất cả giá trị M. Tương tự cho tất cả giá trị K₂ truy cập tất cả M và so sánh M của K₁ và K₂ tìm cặp K₁ và K₂ mà M giống nhau.

Nếu chỉ một cặp như vậy tồn tại thì K₁ và K₂ là khóa mong muốn. Nếu nhiều cặp tồn tại cho K₁ và K₂ bằng nhau, cặp bản rõ/bản mã chặn khác được dùng.