Câu trả lời ngắn gọn là "có, thiết lập này dễ bị tấn công". Nếu bạn muốn một số toán học, bạn có thể đọc một lời giải thích dưới đây.
Trong XTS, hai khóa là độc lập, vì vậy nó đã có bảo mật 512 bit (hiện tại không có cuộc tấn công nào làm giảm con số này*). Vì vậy, tôi sẽ giải thích tại sao sử dụng mã hóa kép ở chế độ XTS không tăng Bảo vệ.
Hãy xem xét kỹ phương trình mã hóa với chế độ XTS:
$$
c_i = f(m_i, (K_1, K_2)) = T_i\oplus E_{K_1}(m_1)\oplus T_i \
T_i=E_{K_2}(SN)\otimes\alpha^{i-1}
$$
ở đâu $SN$ là một số ngành, $(K_1,K_2)$ - khóa mã hóa, $m_i, c_i$ - các khối bản rõ và bản mã tương ứng và $\alpha$ là phần tử nguyên hàm của $GF(2^l)$ ($|m_i|=l$).
Bây giờ hãy xem xét chức năng mã hóa mật mã khối:
$$
E_K=\pi_{q_{r+1}}\circ\varphi_{q_r}\circ...
\circ\varphi_{q_1}\circ\delta_{q_0}
$$
ở đâu $r$ là một số vòng, $q_i,i=\overline{1,r}$ là các khóa tròn (xuất phát từ khóa mã hóa sử dụng một bộ chức năng đặc biệt gọi là "lịch trình khóa"), $\varphi_{q_i},i=\overline{1,r}$ là các hàm tròn, $\pi_{q_{r+1}}, \delta_{q_0}$ là các hàm đầu ra và đầu vào tương ứng với các phím của chúng (hai hàm này có thể không phụ thuộc vào phím).
Sự tồn tại của các chức năng đầu vào và đầu ra này là chìa khóa cho câu hỏi của bạn. Hãy xem xét một mật mã khối với phương trình mã hóa sau:
$$
E_{K_1,K_2} = \underbrace{\pi'_{q_{r+1}}\circ
\pi^{\varepsilon}_{q_{r+1}}}_{\pi_{q_{r+1}}}
\circ\overbrace{\varphi^{\varepsilon}_{q_r}\circ...
\circ\varphi^{\varepsilon}_{q_1}}^{\varphi_{q_r}\circ...
\circ\varphi_{q_1}}
\circ\gối dưới{\delta^{\varepsilon}_{q_0}\circ
\delta'_{q_0}}_{\delta_{q_0}},\ q_0=q_{r+1}=(K_2,SN)
$$
ở đâu $\varphi^{\varepsilon}_{q_i}=\varphi_{q_i}, i=\overline{1,r}$ - chức năng làm tròn của một mật mã khối cơ bản $\varepsilon$ (AES trong trường hợp của bạn), $\pi^{\varepsilon}_{q_{r+1}}, \delta^{\varepsilon}_{q_0}$ - chức năng đầu ra và đầu vào của mật mã khối cơ bản và $\pi'_{q_{r+1}}(x)=E_{K_2}(SN)\oplus x$, $\delta'_{q_0}(x)=E_{K_2}(SN)\oplus x$.
Có một số vấn đề với phương trình này trong trường hợp phụ thuộc thực sự của $\pi^{\varepsilon}_{q_{r+1}}$ và $\delta^{\varepsilon}_{q_0}$ trên các khóa của chúng (khác nhau), nhưng chúng có thể dễ dàng bị loại bỏ bằng cách lựa chọn đúng chức năng lịch trình chính. Tôi sẽ không làm điều đó bây giờ để ngăn chặn sự phức tạp quá mức.
Cuối cùng, chúng tôi đã có một mật mã khối được xây dựng trên mật mã hiện có bằng cách sửa đổi các hàm đầu ra và đầu vào của nó.
Trong trường hợp đơn giản nhất của cuộc tấn công Meet-in-the-middle, bạn tạo hai bảng:
$$
s_i = E_{K_1,K_2}(m_i) \
s'_i = E^{-1}_{K'_1,K'_2}(c_i)
$$
Sau đó, bạn tìm kiếm các giá trị bằng nhau $s_i=s'_i$. Thuật toán này phù hợp với bất kỳ mật mã khối nào và đối với mật mã khối của chúng tôi, vì vậy cấu trúc được xây dựng ngay bây giờ dễ bị tấn công bởi vì XTS không thêm gì đặc biệt vào mật mã khối, tức là bạn có thể coi mã hóa ở chế độ XTS là khối mã hóa thông minh, khi mỗi khối được mã hóa bằng khóa riêng.
Biết số khu vực và vị trí khối, bạn xây dựng hai bảng như được mô tả ở trên cho khối cụ thể này và tìm ra các khóa mã hóa. Trong trường hợp xấu nhất, bạn cần liệt kê tất cả các cặp khóa $(K_1, K_2)$ hai lần. Vì vậy, tiệm cận không có sự gia tăng an ninh.
* - có một cuộc tấn công, cho phép bạn lấy từng chỉnh sửa, khi có hai khối khác nhau trong cùng một khu vực với một số điều kiện giữ cho bản mã và bản rõ, nhưng nó không khôi phục khóa chỉnh sửa. Bạn có thể đọc thêm về cuộc tấn công này trong các bình luận công khai trên XTS-AES.