Vì vậy, chúng ta có thể kiểm tra từng giá trị có thể này để tìm bí mật được chia sẻ.
Trong thực tế, số lượng giá trị có thể có cho bí mật được chia sẻ là quá lớn để quét qua tất cả các khả năng có thể thực tế - luôn có các cuộc tấn công dễ dàng hơn. Và, như bạn đã đoán đúng, nhận ra bí mật được chia sẻ dựa trên $g, g^a \bmod p, g^b \bmod p$ được cho là một bài toán khó (thực tế, chúng tôi gọi nó là "bài toán Diffie-Hellman quyết định")
Một cuộc tấn công là để có $g$ và $g^a \bmod p$ và cố gắng phục hồi $a$ (nghĩa là giải quyết vấn đề nhật ký rời rạc) - một khi chúng ta có $a$, chúng ta có thể tính toán $B^a \bmod p$ (là bí mật được chia sẻ) và đó là bí mật được chia sẻ.
Cách tiếp cận khả thi khác là tấn công vào mặt đối xứng của sự vật - chúng tôi hoàn toàn bỏ qua thao tác DH và chỉ thực hiện một cuộc tấn công vũ phu vào khóa đối xứng. BTW: không biết bản rõ chính xác thường không phải là vấn đề; ngay cả khi chúng tôi không biết nó chính xác là gì, chúng tôi thường biết đủ về nó để phân biệt nó với những từ vô nghĩa ngẫu nhiên (đó là những gì bạn nhận được khi cố gắng giải mã nó bằng khóa sai) - ngoài ra, nếu bạn sử dụng AEAD thuật toán, khóa được sử dụng để tạo thẻ (cũng như mã hóa) và thẻ cũng có thể được sử dụng để phân biệt khóa chính xác (ngay cả khi bản rõ thực sự là ngôn ngữ vô nghĩa ngẫu nhiên).
Đối với cả hai cuộc tấn công này, chúng tôi thường chọn các tham số bảo mật (chẳng hạn như kích thước của $p$ và kích thước của khóa đối xứng) để làm cho cả hai cách tiếp cận này đều không khả thi.