tôi đang đọc Giới thiệu về Mật mã hiện đại Phiên bản thứ 3 (Bản xem trước của Google Sách về phần có liên quan, trang 10-11) và đang cố gắng hiểu mô tả về phương pháp tấn công vào mật mã thay thế một bảng chữ cái.
Nó dường như là một phiên bản cải tiến của phương pháp phân tích tần suất chữ cái, loại bỏ nhu cầu "kiểm tra xem điều gì có ý nghĩa" một cách thủ công. Một số thông tin đã cho:
- Tất cả các chữ cái của ngôn ngữ tiếng Anh được gán giá trị 0-25
- Một khóa không xác định, được sử dụng để mã hóa bản rõ thành bản mã, được tạo từ ánh xạ 1:1 ngẫu nhiên của các chữ cái từ (1). ví dụ. (a -> x, b -> r, c -> o, ...)
Các tác giả mô tả cách tiếp cận này như sau:
Bây giờ chúng tôi mô tả một cuộc tấn công không mắc phải những nhược điểm này [của phương pháp phân tích tần suất thủ công]. Như trước đây, hãy liên kết các chữ cái trong bảng chữ cái tiếng Anh với $0, ..., 25$. Để cho $p_i$, với $0 <= p <= 1$, biểu thị tần số của $ith$ chữ cái trong tex tiếng Anh thông thường (tức là 0,082 làm ví dụ). ... [sử dụng những số liệu này] cho:
$(1)$ $\displaystyle \sum_{i=0}^{25} p_i^2 \khoảng 0,065$
Ghi chú: Ở đâu $0.065$ phù hợp với ngữ cảnh của một văn bản tiếng Anh nhất định (tức là có thể thay đổi tùy theo nguồn; ví dụ: các từ trong từ điển của Webster.)
Bây giờ, giả sử chúng ta được cung cấp một số bản mã và để $q_i$ biểu thị tần số của tôichữ cái thứ của bảng chữ cái trong bản mã chia cho độ dài của bản mã. Nếu chìa khóa là k, sau đó $p_i$ nên gần bằng $q_{i+k}$ cho tất cả tôi bởi vì tôichữ cái thứ được ánh xạ tới $\left(i+k\right)th$ thư. (chúng tôi sử dụng $i+k$ thay vì rườm rà hơn $\left[I+k \mod 26\right]$.) Như vậy, nếu chúng ta tính toán
$(2)$ $I_j := \displaystyle \sum_{i=0}^{25} p_i \cdot q_{i+j}$
cho mỗi giá trị của $j \in \left \{0, ..., 25\right\}$, sau đó chúng tôi hy vọng sẽ tìm thấy rằng $I_k \khoảng 0,065$ (ở đâu k là khóa thực tế), trong khi đó $I_j$ vì $j \neq k$ sẽ khác 0,065. Điều này dẫn đến một cuộc tấn công khôi phục khóa dễ dàng tự động hóa: tính toán $I_j$ cho tất cả $j$, và đầu ra giá trị $k$ mà $I_k$ gần nhất với 0,065.
Câu hỏi của tôi liên quan đến cách tiếp cận chung của tổng kết thứ hai $(2)$ -- Tôi không hiểu giá trị của $j$ là cho mỗi số hạng của tổng. Là $j$ có nghĩa là tôithuật ngữ khóa $k$? Sao cho mỗi số hạng trong $2$ sẽ được tính toán cho mỗi giá trị có thể của $j$?
Tôi hiểu việc tạo tần số, hiểu những gì đang xảy ra với khái niệm $(1)$ và việc tìm kiếm gần nhất $q_i$ đến $p_i$ sẽ tiếp cận $p_i^2$ theo đó thực tế $k_i$ sẽ giảm thiểu điều đó -- do đó tìm ra ánh xạ thích hợp nhất.
Tuy nhiên, có vẻ như đây chỉ là một cách tiếp cận vũ phu dựa trên cách tính toán cuối cùng được so sánh với tính toán ban đầu. $0.065$ giá trị, như thể ánh xạ thích hợp cho từng chữ cái sẽ được tính đến.
Tui bỏ lỡ điều gì vậy? Mặt khác, tôi cảm thấy như thể chỉ sắp xếp từng phân bố tần suất theo giá trị, giả sử rằng số lượng chữ cái trong bản mã bằng với số lượng chữ cái trong không gian thông báo nguồn (nghĩa là không có khoảng trống nào có thể có trong phân phối).