Tấn công gặp nhau ở giữa( MEET-IN-THE-MIDDLE ATTACK)

Một phần của tài liệu luận văn: nghiên cứu sự an toàn của một số hệ mật mã hiện đại (Trang 57)

2.2.2.1 Yêu cầu và giả thiết liên quan đến cuộc tấn công

Đối với tấn công này,giả thiết thám mã biết bản mã (u, v) trong đó khóa công khai (q, p, y) sử dụng để mã hóa thông điệp. Chỉ có phần thứ hai v= myk của bản mã đước sử dụng.

Thông điệp m ban đầu hầu hết là các bit b nhỏ. VD: Thám mã có thể biết được thông điệp là khóa DES 56 bit. Tuy nhiên tấn công này trở nên không khả thi khi chọn các thông điệp lớn hơn 64 bit

m có thể phân tích thành 2 thừa số kích thước lớn nhất là b1, b2

Biết thứ tự n của g trong Zp*. Nếu p- 1 chỉ có một ước nguyên tố lớn thì có thể dùng phương pháp pollard’s rho để phân tích để tính n.

Thông điệp được đaị diện như một phần tử của (g). Đối với Elgamal thì thông điệp được đại diện như một phần tử của Zp*

n (p-1)2-b. Điều đó cho thấy khi cho một phần tử vn có trật tự phân chia (p-1)/n trong Zp* thì số lượng thông điệp phân biệt mong muốn m sao cho mn= vn là nhỏ

2.2.2.2 Trình bày thuật toán:

Sức mạnh của Elgamal là sự bất định của nó, tức là mã hóa những bản rõ tương tự nhau nhiều lần sẽ được các bản mã khác nhau, mỗi lần chọn một số k ngẫu nhiên. Tuy nhiên, biến tạm không xác định yk có trật tự phân chia n, vì vậy lũy thừa v= myk đến n ta có thể bỏ yk: vn = mn(yk)n = mn(gxk)n = mn(gn)kx = mn

Chú ý là có thể có các thông điệp khác sao cho n = mn= vn

Giả sử có thể phân tích thành = 1 2 với 1 2b1 và 2 2b2 trong đó: vn= n = 1n 2n

vn 2-n = 1n

Ý tưởng của tấn công này như sau:

Tính 1n với 1 = 1… 2b1, lưu cặp khóa (key, value)= ( 1n, 1) trong từ điển Tính vn 2-n với 2= 1…2b2

Tìm kiếm các giá trị trong từ điển, nếu có vn 2-n = 1n thì = 1 2 là giá trị cần tìm

Do từ điển chỉ phụ thuộc vào khóa công khai b1 nên nó có thể tái sử dụng cho nhiều thông điệp

Cấu trúc dữ liệu của từ điển:

Hỗ trợ cho việc chèn và tím kiếm phần tử, có thể sử dụng một mảng sắp xếp được đề xuất bởi Dan Boneh. Thay vì “nhét” tất cả vào, ta sẽ lưu trữ (key, value) vào mảng và sắp xếp mảng theo thứ tự khóa vào cuối mảng.

Việc tìm kiếm phần tử trong mảng thực hiện với độ phức tạp thời gian O(log n) khi thực hiện tìm kiếm nhị phân

Tuy nhiên khi lưu trữ cặp( key, value) như vậy khi b= 64 bit, b1= b2= 32 bit. Nếu chọn p= 1024 bit thì không gian bộ nhớ cần để lưu trữ cặp là 512 GB, do đó sẽ không phù hợp với một số hệ thống nhỏ. Do vậy để giảm không gian lưu trữ thì phải

2.2.2.3 Đánh giá phương pháp:

Để chống lại tấn công là xử lý thông điệp trước bằng cách thêm vào các thông điệp ngắn để có được các thông điệp có độ dài 128 bit. Từ đó các tấn công này sẽ không hiệu quả. Việc lũy thừa số mũ lên sẽ khống chế làm cho việc khi nhân với các thông điệp lớn không đem lại hiểu quả. Tuy nhiên người dùng vẫn phải cảnh giác với các hình thức áp dụng đơn giản như vậy

Một phần của tài liệu luận văn: nghiên cứu sự an toàn của một số hệ mật mã hiện đại (Trang 57)

Tải bản đầy đủ (PDF)

(84 trang)