Phân tích tần suất
Dán bất kỳ văn bản nào để xem mỗi chữ cái xuất hiện thường xuyên ra sao, đặt cạnh tần suất của tiếng Anh viết để so sánh trực tiếp. Đọc số đếm bigram và trigram, kiểm tra chỉ số trùng hợp để phân biệt mật mã đơn bảng chữ với đa bảng chữ, và xuất bảng kết quả. Mọi thứ đều chạy trong trình duyệt của bạn.
Thử một mẫu:
Dán một ít văn bản vào ô trên và tần suất chữ cái, bigram, trigram cùng chỉ số trùng hợp của nó sẽ hiện ra ở đây.
Cách sử dụng Phân tích tần suất
- 1
Dán văn bản của bạn
Sao chép văn bản hay văn bản mã hóa bạn muốn nghiên cứu và dán vào ô. Chữ cái được đếm không phân biệt hoa thường, còn khoảng trắng, số và dấu câu đều bị bỏ qua.
- 2
Đọc bản tóm tắt
Xem số ký tự và số chữ cái, có bao nhiêu chữ cái khác nhau, chữ cái phổ biến nhất, và chỉ số trùng hợp, vốn gợi ý liệu một bảng chữ hay nhiều bảng đã được dùng.
- 3
Nghiên cứu biểu đồ tần suất chữ cái
So sánh thanh của mỗi chữ cái với dấu mốc tiếng Anh của nó. Chuyển sang 'Theo tần suất' để xếp hạng các chữ cái và thấy hình dạng tổng thể — gồ ghề với một mật mã thay thế, phẳng với một mật mã đa bảng chữ.
- 4
Lướt qua các bigram và trigram
Nhìn vào những cặp và bộ ba phổ biến nhất. Trong một mật mã, trigram hàng đầu thường là một THE ngụy trang, trao cho bạn ba chữ cái cùng một lúc.
- 5
Xuất hoặc chia sẻ
Tải bảng tần suất dưới dạng CSV cho ghi chú hay bảng tính của bạn, hoặc sao chép một liên kết chia sẻ mở lại công cụ với đúng văn bản của bạn. Mọi thứ vẫn nằm trong trình duyệt của bạn.
Phân tích tần suất chữ cái, giải thích cặn kẽ
Phân tích tần suất là gì?
Phân tích tần suất là việc nghiên cứu mỗi chữ cái, cặp chữ cái, hay bộ ba chữ cái xuất hiện thường xuyên ra sao trong một đoạn văn bản. Vì các chữ cái của một ngôn ngữ không được dùng đồng đều — E và T có mặt khắp nơi trong tiếng Anh trong khi Q và Z lại hiếm — nên mẫu tần suất hoạt động như một dấu vân tay. Đếm mẫu đó là kỹ thuật lâu đời nhất và mạnh mẽ nhất trong phân tích mật mã cổ điển, lần đầu được học giả Ả Rập al-Kindi ghi chép vào thế kỷ thứ chín.
Công cụ này đếm các chữ cái trong bất cứ thứ gì bạn dán vào, hiển thị mỗi chữ thành một thanh bên cạnh tần suất tiếng Anh kỳ vọng, liệt kê các bigram và trigram phổ biến nhất, và báo cáo chỉ số trùng hợp. Cùng nhau, những con số này cho bạn biết liệu văn bản là chữ viết thông thường, một mật mã thay thế đơn giản, hay thứ gì đó dùng nhiều bảng chữ cùng lúc — mà bạn không phải đếm dù chỉ một chữ cái bằng tay.
Đọc biểu đồ tần suất chữ cái
Mỗi hàng là một chữ cái trong bảng chữ. Thanh được tô đầy cho thấy chữ cái đó xuất hiện thường xuyên ra sao trong văn bản của bạn theo phần trăm trên tổng số chữ cái, còn dấu mốc dọc mảnh cho thấy tần suất của cùng chữ cái đó trong tiếng Anh điển hình. Khi một thanh vượt xa dấu mốc của nó, chữ cái đó được biểu diễn quá nhiều; khi nó hụt lại, chữ cái đó hiếm hơn bình thường. Đổi thứ tự sắp xếp để xếp hạng các chữ cái từ phổ biến nhất đến ít nhất, giúp hình dạng của phân bố hiện ra rõ ràng chỉ trong một cái nhìn.
Trong tiếng Anh bình thường, những thanh cao nhất là E, T, A, O, I và N, và biểu đồ trông gồ ghề và không đều. Một mật mã đơn bảng chữ giữ nguyên hình dạng gồ ghề đó nhưng dịch các đỉnh sang những chữ cái khác, vì mỗi chữ cái đơn giản được tráo lấy một chữ khác. Một mật mã đa bảng chữ làm phẳng biểu đồ cho đến khi mọi thanh đều cao xấp xỉ nhau, vì cùng một chữ cái rõ lại được mã hóa khác nhau tùy theo vị trí của nó. Nhận ra hai hình dạng đó là kỹ năng hữu ích nhất trong việc phá các mật mã cổ điển.
Chỉ số trùng hợp
Chỉ số trùng hợp, hay IoC, đo xác suất hai chữ cái lấy ngẫu nhiên từ văn bản là giống nhau. Tiếng Anh thông thường nằm quanh 0.067 vì tần suất của nó rất không đều, trong khi văn bản hoàn toàn ngẫu nhiên tiến gần đến 0.038, nơi mọi chữ cái đều có khả năng xuất hiện như nhau. Một con số duy nhất nắm bắt được phân bố gồ ghề hay phẳng đến mức nào.
Điều này khiến IoC trở thành phép kiểm tra nhanh nhất để phân biệt các họ mật mã. Mật mã Caesar, Atbash và thay thế bằng từ khóa chỉ đổi nhãn các chữ cái, nên hồ sơ gồ ghề của tiếng Anh được giữ nguyên và IoC vẫn cao, gần 0.066. Vigenère và các mật mã đa bảng chữ khác trộn nhiều bảng chữ, làm phẳng tần suất và kéo IoC xuống gần 0.04. Công cụ in giá trị kèm một gợi ý ngắn, nên một số đọc được cao chỉ bạn tới một mật mã thay thế còn số thấp chỉ bạn tới một mật mã đa bảng chữ.
Bigram, trigram và mẫu tiếp xúc
Các chữ cái đơn lẻ chỉ là khởi đầu. Tiếng Anh còn có những cặp và bộ ba chữ cái được ưa chuộng mạnh mẽ: TH, HE, IN, ER và AN là những bigram phổ biến nhất, còn THE, AND, ING và ENT chiếm ưu thế trong các trigram. Công cụ liệt kê những cặp và bộ ba phổ biến nhất trong văn bản của bạn, chỉ đếm chúng bên trong từng từ để một khoảng trắng không bao giờ nối hai chữ cái không liên quan thành một cặp giả.
Những mẫu tiếp xúc này vô cùng quý giá khi việc đếm chữ cái đơn thuần là chưa đủ. Trong một mật mã thay thế, phiên bản ngụy trang của THE thường hiện ra dưới dạng trigram phổ biến nhất, cho bạn ba chữ cái cùng một lúc. Các bigram lặp lại có thể để lộ độ dài của khóa Vigenère qua phương pháp Kasiski. Ngay cả sự vắng mặt của các chữ cái lặp đôi, hay một chuỗi đáng ngờ gồm các cặp hiếm, cũng là một manh mối về loại mật mã bạn đang đối mặt.
Phá mật mã bằng phân tích tần suất
Để tấn công một mật mã thay thế đơn bảng chữ, hãy sắp xếp biểu đồ theo tần suất và xếp nó cạnh tiếng Anh. Chữ cái mã hóa phổ biến nhất có lẽ là E, chữ kế tiếp có lẽ là T, và trigram hàng đầu có lẽ là THE. Hãy ghi nhẹ những phỏng đoán đó, rồi dùng danh sách bigram và trigram để mở rộng chúng — một khi bạn biết E và T, cặp TH và từ THE nhanh chóng vào đúng chỗ, và phần còn lại của thông điệp dần được tháo gỡ từ đó.
Với một mật mã Caesar, cùng một logic còn đơn giản hơn nữa, vì mọi chữ cái đều dịch đi cùng một lượng: tìm phép dịch xếp đỉnh của mật mã thẳng với E của tiếng Anh là bạn có khóa. Với một mật mã Vigenère, phân tích tần suất vẫn hiệu quả, nhưng chỉ sau khi bạn tách văn bản thành các cột theo độ dài khóa, vì khi đó mỗi cột là một mật mã Caesar riêng mà bạn có thể giải riêng. Biết chỉ số trùng hợp trước sẽ cho bạn biết liệu mẹo chia cột này có cần thiết hay không.
Đơn bảng chữ so với đa bảng chữ chỉ trong một cái nhìn
Nếu bạn chỉ nhớ một điều, hãy nhớ điều này. Một chỉ số trùng hợp cao và một biểu đồ gồ ghề với những thanh cao rõ ràng nghĩa là một mật mã đơn bảng chữ, nơi mỗi chữ cái ánh xạ chính xác tới một chữ cái khác — Caesar, Atbash, affine, hay thay thế bằng từ khóa. Những loại này chịu thua phân tích tần suất một cách trực tiếp, vì thống kê của văn bản rõ chiếu thẳng qua.
Một chỉ số trùng hợp thấp và một biểu đồ phẳng nơi mọi thanh đều cao xấp xỉ nhau nghĩa là một mật mã đa bảng chữ, nơi một chữ cái rõ có thể trở thành nhiều chữ cái mã hóa khác nhau — Vigenère, Beaufort, Gronsfeld hay Porta. Những loại này giấu đi tần suất chữ cái thô, nên trước hết bạn phải khôi phục độ dài khóa rồi phân tích từng vị trí riêng biệt. Biểu đồ và IoC cho bạn biết bạn đang ở trong thế giới nào trong hai thế giới này trước khi bạn bỏ ra bất kỳ công sức nào.
Giới hạn và cách dùng đúng
Phân tích tần suất mang tính thống kê, nên nó cần đủ văn bản để đáng tin cậy. Một thông điệp ngắn chỉ chục chữ cái có thể cho ra tần suất sai lệch ghê gớm chỉ do tình cờ, trong khi cả một đoạn văn lắng xuống gần với mẫu kỳ vọng. Khi một mẫu trông mơ hồ, nguyên nhân thường gặp là nó quá ngắn chứ không phải phương pháp đã thất bại.
Hãy nhớ rằng đường cơ sở tiếng Anh hiển thị ở đây là cho văn xuôi thông thường. Văn bản chuyên biệt — một danh sách tên, một đoạn mã nguồn, hay chữ viết bằng ngôn ngữ khác — có hồ sơ riêng của nó và sẽ không khớp. Công cụ bỏ qua khoảng trắng, chữ số và dấu câu, đồng thời gộp chữ hoa và chữ thường làm một, đó đúng là điều bạn muốn cho các mật mã cổ điển, nhưng điều đó nghĩa là nó chỉ phân tích chữ cái, không phải cấu trúc của một cách mã hóa như Base64 hay Morse. Với những loại đó, hãy nhận dạng cách mã hóa trước và giải nó, rồi chạy phân tích tần suất trên các chữ cái nằm bên dưới.
Câu hỏi thường gặp
Phân tích tần suất là gì?
Làm sao tôi dùng phân tích tần suất để phá một mật mã?
Chỉ số trùng hợp là gì?
Khác biệt giữa đơn bảng chữ và đa bảng chữ là gì?
Tại sao công cụ hiển thị bigram và trigram?
Các thanh và dấu mốc dọc có nghĩa là gì?
Tôi cần bao nhiêu văn bản để có kết quả đáng tin cậy?
Nó có hiệu quả với các ngôn ngữ khác ngoài tiếng Anh không?
Tôi có thể phân tích Base64, Morse hay nhị phân không?
Văn bản của tôi có được tải lên máy chủ không?
Tôi có thể xuất bảng tần suất không?
Công cụ liên quan
Tiếp tục với những công cụ hữu ích này