Đôi nét về mã thám
Tạp chí An toàn thông tin sẽ lần lượt giới thiệu các vấn đề liên quan trong chủ đề này: các khái niệm về mã thám, các bước cơ bản thám mã truyền thống, thám mã đối xứng (mã khối), thám mã phi đối xứng.... Bài báo này sẽ giới thiệu một số khái niệm trong mật mã cổ điển (hay còn gọi là mật mã truyền thống) liên quan tới hoạt động thám mã.
Trong phần trình bày này, chúng ta tạm phân chia mật mã đối xứng làm hai phần là mật mã “cổ điển” và mật mã “hiện đại”. Ở đây, mật mã “hiện đại” được hiểu là hệ mật khoá đối xứng nhưng phát triển ở mức cao, đã thực hiện tự động hoá trong quy trình mã/dịch và hiện nay đang phát triển mạnh như mật mã với khoá thuật toán DES; 3DES; IDEA; FEAL; AES,... Còn mật mã “cổ điển” là mật mã được mã/dịch bằng phương pháp thủ công. Mật mã loại này ra đời sớm, được sử dụng và phát triển trong một giai đoạn rất lâu. Đến nay nó được sử dụng trong một phạm vi hẹp mà ở đó công nghệ điện/điện tử còn gặp khó khăn trong ứng dụng (ví dụ trong lực lượng quân sự hoạt động phân tán trong vùng nông thôn, rừng núi hoặc trong các đơn vị tình báo v.v...), hoặc những trường hợp đặc biệt. Tuy nhiên, chính mật mã loại này lại là nền tảng cho sự phát triển của mật mã hiện đại (theo nghĩa của bài báo này).
Chính vì vậy, việc nghiên cứu thám mở điện mã của mật mã cổ điển có ý nghĩa quan trọng phục vụ việc nghiên cứu thám mở các hệ thống mật mã hiện đại. Trên cơ sở đó góp phần nâng cao độ an toàn cho các hệ mật hiện đại, nhằm góp phần bảo vệ an ninh thông tin trong tình hình mới.
Mật mã cổ điển có rất nhiều loại và biến thể nhằm làm tăng độ an toàn cho mật mã. Trong phạm vi bài này chỉ đề cập đến một số loại mật mã điển hình nhất đã và đang được dùng về sau này mà có những loại trong đó vẫn dùng cho đến hôm nay.
1. Mật mã và Mã thám
Ở đây, Mật mã (Cryptography) được hiểu là tập hợp mọi phương pháp (hoặc quy tắc) biến đổi nào đó nhằm chuyển các thông báo (messages) dưới dạng nhận thức được nội dung (như chữ viết, tiếng nói, hình vẽ, hình ảnh, v.v...) thành dạng bí mật mà những người ngoài cuộc không hiểu được nội dung nếu họ không biết được phương pháp (hoặc quy tắc) biến đổi đó. Mật mã học (Cryptology) là một bộ môn khoa học chuyên nghiên cứu về mật mã và mã thám.
Ngược lại, Mã thám là việc khôi phục lại bản rõ hoặc khoá khi chỉ có bản mã tương ứng cho trước được gọi là thám mã. Người làm công tác thám mã được gọi là người mã thám (Cryptanalysist) hay gọi là mã thám viên.
Tổ chức làm công tác thám mã được gọi là đơn vị mã thám. Mã thám là một bộ phận không thể thiếu của ngành tình báo điện tử. Hầu hết các quốc gia đều có bộ phận tình báo điện tử này, nhưng sự phát triển và hiệu quả của nó lại phụ thuộc vào trình độ khoa học - công nghệ của từng nước. Nước nào có trình độ khoa học - công nghệ càng cao thì khả năng của công tác thám mã nói riêng, tình báo điện tử nói chung càng mạnh.
2. Đặc trưng cơ bản của bản rõ
Để nghiên cứu thám mở được các bản mã truyền thống, người mã thám phải nghiên cứu các đặc trưng cơ bản của bản rõ. Nói một cách khác, trong mọi ngôn ngữ tự nhiên đều có những đặc trưng bất biến mà mã thám viên cần nắm vững để phục vụ việc phân tích các bản mã. Đó là quy luật tần số, quy luật trùng lặp, quy luật văn phong, v.v...
a. Tần số (Frequency): Người ta định nghĩa tần số xuất hiện một ký tự, một nhóm ký tự, một từ hay một vần v.v... trong một văn bản là số lần xuất hiện của ký tự, nhóm ký tự, từ, vần đó trong văn bản đã cho.
Người ta có thể tính tần số từ một hoặc nhiều văn bản (thông báo) của một loại ngôn ngữ nào đó để rút ra những quy luật riêng của ngôn ngữ đó. Có nhiều loại tần số như: Tần số từng ký tự (tần số đơn), tần số từng cặp 2 ký tự (tần số bộ đôi). Ngay tần số bộ đôi cũng có nhiều cách tính khác nhau như: Tần số bộ đôi thông thường; Tần số bộ đôi móc xích (concatenate); Tần số bộ k ký tự (k=1, 2, 3, 4...). Ngoài ra còn có: tần số từ, tần số vần chữ cái (ví dụ – tion, trong tiếng Anh), tần số các nhóm nguyên âm, tần số các ký tự đứng đầu từ, tần số ký tự đứng cuối từ
Một điểm cần lưu ý là mỗi loại ngôn ngữ tự nhiên khác nhau có các tần số không giống nhau. Ngay trong một ngôn ngư, các loại văn bản có tính chất văn học sẽ có các tần số không hoàn toàn giống nhau. Những tính chất đó người ta gọi là các đặc trưng ngôn ngữ.
Ta lưu ý rằng, các văn bản khác nhau thường có độ dài (số lượng các ký tự trong văn bản đó) khác nhau. Do đó khái niệm tần số như định nghĩa trên có nhiều trường hợp rất khó trong thực hành. Vì vậy người ta đưa ra khái niệm tần số tương đối (tần suất - relative frequency). Tần suất của một ký tự x nào đó trong văn bản là số lần xuất hiện ký tự đó chia cho độ dài của văn bản đó. Còn tần suất bộ đôi móc xích xy nào đó trong một văn bản là số lần xuất hiện bộ đôi đó có trong văn bản chia cho độ dài của văn bản trừ đi một. Ví dụ, giả sử văn bản có độ dài n, khi đó số lượng bộ đôi móc xích là n-1 , nếu số lần xuất hiện cặp “nh” là m lần thì tần suất của cặp “nh” sẽ là mnh / (n-1).
b. Sự trùng lặp: là một quy luật của bất cứ ngôn ngữ tự nhiên nào. Đó là đặc trưng thứ 2 của ngôn ngữ được thể hiện trên các văn bản thông báo (sau đây gọi là bản rõ). Ngoài quy luật tần số thì quy luật trùng lặp rất cần thiết và có thể nói chúng không thể thiếu đối với công tác thám mã truyền thống.
c. Văn phong (Quy luật hành văn trong văn bản).
Trong thực tế, các loại văn bản khác nhau sẽ có văn phong không giống nhau do phụ thuộc vào thói quen của từng người soạn thảo ra văn bản đó. Đây cũng là quy luật đáng lưu ý trong việc thám mã. Văn phong được chia thành các dạng:
- Dạng đầu văn bản (gọi là quy luật đầu điện);
- Dạng thân văn bản (quy luật thân điện): Văn bản thường có chia theo từng mục hoặc không
chia theo mục; Nội dung văn bản có khác nhau tuỳ theo từng loại nội dung như ngoại giao, tình báo, quân sự, kinh tế, chính trị v.v...;
- Dạng cuối văn bản (quy luật cuối điện): Đoạn kết thúc một văn bản thường cũng có những quy luật: Mỗi người soạn thảo văn bản khác nhau sẽ có quy luật khác nhau.
Ví dụ, thường chấm hết thì có chữ stop, stopend; câu chào Salam và sau cùng là tên, chức vụ, cấp bậc của người gửi thông báo, v.v... Những thông tin này đôi khi rất quan trọng, giúp nhà mã thám thành công trong nhiệm vụ của mình.
d/ Quy luật tình huống: Như đã được trình bày ở phần trước, thám mã là tìm mọi biện pháp có thể để khôi phục lại bản rõ và/hoặc khoá mã từ một số bản mã cho trước. Điều này cho thấy thám mã là một loại công việc khó khăn và phức tạp, nó vừa mang tính khoa học lại vừa mang tính nghệ thuật. Rõ ràng, khoa học về mật mã càng phát triển thì kỹ thuật thám mã càng gặp nhiều khó khăn.
Để chống lại việc thám mã của đối phương, các nhà sản xuất mật mã phải thiết kế các thuật toán mã hoá và các loại khoá mã sao cho các thông tin về khoá mã và bản rõ không lộ rõ trên bản mã. Tuy nhiên, do đặc điểm của bản thân mật mã và việc phân cấp sử dụng, nên trên thực tê, mật mã luôn chứa đựng những mâu thuẫn nội tại mà các nhà mã thám vẫn có thể dựa vào đó khai thác, khám phá, đó là:
- Trình độ về mật mã ở các nước khác nhau sẽ khác nhau. Hiện nay, bên cạnh những nước có công nghệ bảo mật (mật mã) rất hiện đại, vẫn còn không ít nước vẫn đang sử dụng mật mã ở mức độ trung bình, thậm chí có nước dùng mật mã truyền thống tương đối đơn giản. Và ngay trong cùng một nước, các lực lượng, ngành khác nhau lại dùng các hệ mã khác nhau. Ví dụ, mật mã dùng trong quân sự khác mật mã dùng trong ngoại giao, mật mã dùng trong tình báo khác với mật mã dùng trong ngân hàng, tài chính v.v...
- Thông thường, những nhà lập mã không phải là người sử dụng mật mã. Các nhà lập mã có trình độ cao trong lĩnh vực mật mã nhưng những người sử dụng mật mã lại không cần như vậy. Người sử dụng thường có xu hướng muốn đơn giản hoá công việc của mình, chính vì vậy họ dễ vi phạm các qui tắc đảm bảo an toàn mật mã.
- Khoá mã không được bảo vệ cẩn thận theo quy định, và một sơ hở nhỏ cũng đủ tạo khe hở cho các nhà mã thám lấy cắp được khóa mà mật mã viên không hề biết. Vì vậy, khoá đó vẫn được sử dụng và các nhà mã thám khi nhận được các bản mã chỉ việc dùng khoá đó mà dịch bình thường.
- Độ dư ngôn ngữ cũng là một quy luật rất quan trọng của ngôn ngữ tự nhiên. Độ dư ngôn ngữ tồn tại trong chính bản mã của nhiều luật mã khác nhau, đặc biệt là trong hệ mã truyền thống.
- Tiêu chuẩn bản rõ: chính là quy luật bản rõ được thể hiện qua quy luật tần số, quy luật trùng lặp.... Đây là một yếu tố trọng yếu giúp cho nhà mã thám thành công không những đối với mật mã truyền thống mà cả đối với mật mã khoá đối xứng nói chung (như mã DES, IDEA, AES v.v...)
3. Tiêu chuẩn bản rõ
Tiêu chuẩn bản rõ là một thành phần không thể thiếu đối với công tác thám mã, đặc biệt là thám mã hiện đại. Vậy tiêu chuẩn bản rõ là gì? Ta biết rằng, các ngôn ngữ tự nhiên đều có quy luật chung nhất đó là quy luật tần số và quy luật trùng lặp. Hai quy luật này đã bị biến mất đối với bản mã. Với phương pháp mã hoá phức tạp thì hai quy luật này hoàn toàn bị biến mất. Một trong những điều khác nhau cơ bản của bản rõ và bản mã là ở chỗ đó. Giả sử nhà mã thám nhận được một (hoặc một số) bản mã và bằng cách nào đó, họ đã biết được một vài thông tin về thuật toán mã hoá (và dịch). Tuy không biết được cách mã/dịch cụ thể nhưng nhà mã thám có thể biết được tất cả khả năng có thể của khoá. Từ đó, người ta thử cho đầu vào (Input) là bản mã và “khoá” (dự đoán) lấy trong không gian khoá rồi dịch thử. Kết quả đầu ra (output) sẽ là một dãy nào đó (có thể đọc được có nghĩa hoặc cũng có thể không có nghĩa) mà ta vẫn gọi là “bản rõ”. Nhưng bản rõ này chưa thể hiện được quy luật tần số và trùng lặp. Nó chỉ thể hiện được quy luật tần số và trùng lặp nếu khoá mà ta đưa vào là đúng hoặc có sai cũng chỉ sai một vài ký tự. Nhưng làm cách nào để biết được quy luật tần số và trùng lặp được thể hiện trên “bản rõ” mà ta vừa tạo ra từ khoá và bản mã ban đầu (gọi là bản mã gốc). Do số liệu khoá đưa vào là rất lớn nên dùng mắt thường để quan sát xem “bản rõ” nào thể hiện được quy luật tần số và trùng lặp là không khả thi về khía cạnh thời gian tìm kiếm.
Tiêu chuẩn bản rõ giúp ta tự động xác định “bản rõ” nào thể hiện quy luật tần số và trùng lặp, “bản rõ” nào không. Nhờ tiêu chuẩn bản rõ, nhà mã thám có thể chia không gian khoá thành hai nhóm, một nhóm cho phép tạo ra được “bản rõ” có quy luật tần số và trùng lặp, một nhóm gồm các khoá còn lại. Trong thực tế, nhóm gồm các khoá cho phép tạo ra “bản rõ” có quy luật (ta gọi là bản rõ có nghĩa) là rất ít so với nhóm còn lại. Từ đó chúng ta tiến hành kiểm tra tiếp và kết hợp với mắt thường, chúng ta có thể giải ra được bản rõ ban đầu (bản rõ gốc) cần tìm và khoá mà ta mong muốn.
Có nhiều phương pháp khác nhau để tạo ra các Tiêu chuẩn bản rõ. Do không gian khoá thường rất lớn, nên cần có một tiêu chuẩn bản rõ có tốc độ tính toán càng nhanh và càng chính xác càng tốt, trong đó tốc độ tính toán được ưu tiên số một