T

Text Machine

Công cụ văn bản mạnh mẽ, ngay trong trình duyệt của bạn

Công cụ tính chỉ số trùng hợp

Đo mức lệch của phân bố chữ cái trong văn bản, và đọc độ dài khóa ngay trên bảng theo cột.

Thử:

Văn bản

Dán văn bản vào để đo. Mẫu Caesar và mẫu Vigenère dùng đúng đoạn của mẫu tiếng Anh, nên bạn thấy ngay mỗi loại mã làm gì với con số.

Cách sử dụng Chỉ số trùng hợp

  1. 1

    Dán văn bản

    Bỏ bản rõ hoặc bản mã vào ô nhập. Chỉ chữ cái A đến Z tham gia; chữ hoa chữ thường, khoảng trắng, chữ số và dấu câu đều bị bỏ qua, nên cách trình bày không thể làm lệch con số.

  2. 2

    Đọc chỉ số

    IC thô là xác suất hai chữ cái rút ngẫu nhiên trùng nhau. Con số chuẩn hóa là giá trị đó so với bảng chữ cái đều, trong đó 1,00 là ngẫu nhiên và khoảng 1,73 là tiếng Anh.

  3. 3

    Xác định loại mã

    Quanh 0,066 nghĩa là phân bố chữ cái còn nguyên, tức bản rõ hoặc phép thế đơn giản. Quanh 0,038 nghĩa là phân bố đã bị san phẳng, hướng tới một mã khóa lặp.

  4. 4

    Tìm độ dài trong bảng theo cột

    Nếu văn bản trông đa bảng chữ, hãy tìm độ dài ngắn nhất mà IC theo cột dâng trở lại phía 0,066. Đó là độ dài khóa, và cũng là con số bộ giải Vigenère cần.

Chỉ số trùng hợp, giải thích

Một con số, một câu hỏi

Chỉ số trùng hợp trả lời một câu hỏi hẹp: nếu bạn thò tay vào một văn bản hai lần và mỗi lần rút ra một chữ cái, bao lâu thì bạn rút trúng cùng một chữ cái hai lần? Với một túi 26 chữ cái phổ biến như nhau, câu trả lời là 1 trên 26, khoảng 0,0385. Với tiếng Anh thì gần gấp đôi, khoảng 0,066, vì tiếng Anh không phải một cái túi đều. E, T, A và O gánh phần rất lớn, còn J, Q, X và Z hầu như không xuất hiện.

Chính khoảng cách đó là toàn bộ giá trị của đại lượng này. Nó sống sót qua việc đổi nhãn: nếu bạn đổi mọi chữ A thành Q và mọi chữ Q thành A, số đếm dịch chỗ nhưng độ lệch thì không, nên chỉ số không đổi. Nó không sống sót qua việc bị trải ra trên nhiều bảng chữ cái, và đó đúng là việc mà một mã khóa lặp làm.

Nó nói được gì và không nói được gì

IC gần 0,066 nói rằng phân bố chữ cái còn nguyên. Điều đó bao gồm bản rõ thông thường, phép dịch Caesar, phép soi gương Atbash và mọi phép thế đơn giản, và đó là lý do người ta phá mã đơn bảng chữ bằng phân tích tần suất chứ không bằng con số này.

IC gần 0,038 nói rằng phân bố đã bị san phẳng. Có thứ gì đó đang ánh xạ một chữ cái bản rõ thành nhiều chữ cái bản mã, và đó là chữ ký của Vigenère cùng họ hàng của nó, hoặc của một chuỗi thực sự ngẫu nhiên.

Số đo nằm giữa thường có nghĩa văn bản quá ngắn chứ không phải mã bất thường. Dưới khoảng một trăm chữ cái, chỉ số dao động đủ để đánh lừa, và dưới khoảng ba trăm thì nên coi nó là gợi ý chứ không phải phán quyết.

Bảng theo cột mới là phần làm việc

Con số duy nhất cho cả văn bản cho bạn biết loại mã. Tìm độ dài khóa cần thêm một bước nữa, và đó là bước mà hầu hết công cụ bỏ qua.

Lấy các chữ cái và chia chúng vào L chồng: vị trí 1, L+1, 2L+1 vào chồng thứ nhất; vị trí 2, L+2 vào chồng thứ hai, và cứ thế. Nếu L là độ dài khóa thật, mọi chữ cái trong một chồng đều bị dịch bởi cùng một chữ cái khóa, nên chồng đó là một Caesar của tiếng Anh và giữ nguyên độ lệch của tiếng Anh. Nếu L sai, mỗi chồng trộn lẫn những chữ cái bị dịch khác nhau và trở nên phẳng.

Vì vậy IC theo cột, lấy trung bình trên các chồng, dâng lên ở đúng độ dài khóa và ở mọi bội số của nó. Đọc dọc bảng để tìm độ dài đầu tiên bật lên là cách kinh điển để tìm độ dài khóa Vigenère, và trên văn bản thật thì nó đáng tin hơn công thức Friedman.

Bước tiếp theo

Nếu bảng theo cột chỉ tới một độ dài, phép thử Kasiski là ý kiến thứ hai tự nhiên: nó xuất phát từ khoảng cách giữa các chuỗi lặp thay vì từ thống kê chữ cái, nên hỏng ở những chỗ khác. Hai phương pháp độc lập cùng chỉ vào một con số là bằng chứng mạnh hơn nhiều so với từng cái riêng lẻ.

Khi bạn đã chắc về độ dài, bộ giải Vigenère sẽ lấy bản mã, chia thành đúng ngần ấy cột, phá từng cột như một mã Caesar, rồi trả lại từ khóa và bản rõ.

Câu hỏi thường gặp

Chỉ số trùng hợp là gì?
Đó là xác suất hai chữ cái lấy ngẫu nhiên từ một văn bản hóa ra là cùng một chữ cái. Viết ra, đó là tổng n(n-1) theo số lần xuất hiện của từng chữ cái, chia cho N(N-1) của cả văn bản. Tiếng Anh cho ra khoảng 0,066 vì một vài chữ cái gánh gần hết; bảng chữ cái ngẫu nhiên đều cho ra 1/26, tức khoảng 0,0385.
Vì sao con số của tôi khác công cụ khác?
Hầu như luôn là do chuẩn hóa. Có công cụ báo xác suất thô, có công cụ nhân với 26, nên cùng một văn bản đọc ra 0,0667 hoặc 1,73. Ở đây hiện cả hai. Nguyên nhân phổ biến còn lại là công cụ kia đếm cả khoảng trắng hay chữ số; công cụ này chỉ đếm chữ cái A đến Z.
Chỉ số trùng hợp tìm độ dài khóa bằng cách nào?
Tự nó thì không tìm được. Thứ tìm ra độ dài là việc chia bản mã thành L cột rồi đo riêng từng cột. Ở L đúng, mỗi cột được mã hóa bằng một phép dịch lặp duy nhất, tức là một Caesar của tiếng Anh và giữ nguyên IC của tiếng Anh. Ở L sai, các cột là hỗn hợp và vẫn phẳng. Bảng theo cột bày mọi ứng viên cạnh nhau.
Ước lượng Friedman là gì và có nên tin không?
Đó là công thức năm 1922 biến một IC thành độ dài khóa xấp xỉ. Đặt cạnh bảng theo cột thì hữu ích để đối chiếu, nhưng sai đủ thường xuyên để không bao giờ dùng một mình, nhất là với văn bản ngắn. Dấu gạch hiện ra khi văn bản của bạn đã lệch như văn bản thường, hoặc ngắn đến mức không có IC. Công thức giả định rằng một khóa lặp đã làm phẳng văn bản, nên ngoài khoảng đó không còn gì để ước lượng và mọi con số đều là bịa.
Vì sao 5, 10 và 15 đều cho điểm cao?
Vì chia thành 10 cột chính là cắt đôi 5 cột thật, và mỗi nửa vẫn giữ phép dịch duy nhất của nó. Mọi bội số của độ dài thật đều thừa hưởng điểm của nó. Đáp án là phần tử ngắn nhất trong họ, nên danh sách gợi ý bỏ các bội số đi.
Nó có cho biết văn bản thuộc ngôn ngữ nào không?
Chỉ rất thô. Bảng so sánh cho thấy văn bản của bạn nằm ở đâu so với các con số đã công bố, nhưng nhiều ngôn ngữ có giá trị gần nhau và mẫu ngắn dao động mạnh hơn khoảng cách giữa chúng. Hãy dùng nó để tách ngôn ngữ tự nhiên khỏi văn bản trông ngẫu nhiên, đừng dùng để chọn giữa tiếng Pháp và tiếng Tây Ban Nha.
Văn bản của tôi có rời khỏi trình duyệt không?
Không. Toàn bộ phép tính chạy ngay trong trang. Không có gì được tải lên, ghi lại hay lưu ở bất kỳ đâu.

Công cụ liên quan

Tiếp tục với những công cụ hữu ích này

Phép thử Kasiski

Trình giải mã Vigenère

Phân tích tần suất

Trình nhận dạng mật mã

Trình giải mã thay thế

Bộ chuyển đổi Unix Timestamp