WhiteHat Support #ID:658
WhiteHat Support
-
10/10/2014
-
8
-
5 bài viết
Giới thiệu về mật mã cổ điển (Phần 3 - Mật mã thay thế)
Mật mã thay thế
Trong mật mã thay thế ta có thể phân chia thành 2 nhóm lớn : mật mã một bảng thế và đa bảng thế.
Trong 2 nhóm lớn này có các mật mã đặc biệt, sẽ được trình bày cụ thể dưới đây.
1. Mật mã một bản thế (Monoalphabetic cipher)
Hê ̣mã hoá thay thế là hê ̣mã hoá trong đó mỗi ký tự của bản rõ được thay thế bằng ký tự khác trong bản mã (có thể là một chữ cái, môṭ số hoăc̣ môṭ ký hiêụ).
Khóa của hệ mã chính là thứ tự các ký tự được thay thế tương ứng.
Ví dụ với một khóa như sau :
Các ký tự trong bảng chữ cái tiếng anh viết thường lần lượt được thay thế bằng các ký tự viết hoa phía dưới tương ứng thì thông điệp : hello sẽ được biến đổi thành QOBBI
Để giải mã thông điệp trên ta thực hiện việc thay thế ngược lại các chữ cái in hoa thành chữ cái in thường tương ứng.
Thử giải mã bản mã sau với khóa trên :
Ta có thể nhận ra, với bảng chữ cái tiếng anh gồm 26 chữ cái, ta có thể tạo ra tối đa là 26! hoán vị của 26 chữ cái đó để làm khóa cho hệ mã hóa một bảng thế. Việc liệt kê và kiểm tra toàn bộ 26! khóa là không khả thi với trình độ khoa học kỹ thuật của thời điểm phát sử dụng hệ mã này và trong thời điểm hiện tại vẫn khó thực hiện. Việc phá mã với hệ mã một bảng thế sử dụng phương pháp phân tích tần số sẽ được giới thiệu trong những phần tiếp theo của bài viết.
a) Mật mã Caesar
Mật mã Caesar là một mật mã một bảng thế đặc biệt. Trong đó, phép biến đổi mã được biểu diễn thông qua phép cộng đồng dư như sau.
Giả sử ta gán các giá trị từ a-z với các số 0-25 thì một ký tự trong bản rõ X có thể mã thành ký tự Y theo công thức: Y = X + Z mod 26, trong đó Z là giá trị của khoá.
Trên đây là bảng thay thế ký tự của mật mã Caesar với khóa Z = 6.
Rõ ràng số lượng khoá có thể dùng được chỉ là 25. Có thể thấy rằng mật mã Caesar có một không gian khoá rất nhỏ, do đó phép tìm kiếm vét cạn đương nhiên là khả thi. Trong phép tấn công này, địch thủ chỉ cần thử tất cả các khoá có thể (1-25) để thử giải mã và dễ dàng phát hiện ra khoá đúng khi giải ra một thông tin có nghĩa.
b) Mật mã Affine
Mật mã Affine cũng là một mật mã một bảng thế đặc biệt. Giả sử ta gán các giá trị từ a-z với các số 0-25 thì một ký tự trong bản rõ X có thể mã thành ký tự Y theo công thức: Y = (Xa + b) mod 26, trong đó cặp số (a, b) là giá trị của khoá.
Phép giải mã ta có : X = (Ya[SUP]-1[/SUP] – b) mod 26 với a[SUP]-1 [/SUP] là nghịch đảo của a theo module 26 (aa[SUP]-1 [/SUP]mod 26 = 1).
Để ánh xạ giữa X và Y là 1-1 thì a nguyên tố cùng nhau vó 26.
Như vậy ta chọn được 12 giá trị của a (các số lẻ từ 1 đến 25 trừ số 13) và 26 giá trị của b, không gian khóa của mật mà Affine là 12*26 = 312 khóa – vẫn là con số rất nhỏ.
Ta có thể để ý thấy mật mã Caesar là một trường hợp đặc biệt của mật mà Affine với a = 1.
c) Mật mã đồng âm (homophonic)
Mật mã đồng âm là một trong những mật mã một bảng thế tương đối phức tạp. Các chữ cái trong bảng chữ cái được thay thế bởi một trong nhiều con số được xác định trước giữa người lập mã và người giải mã.
Dưới đây là một ví dụ về mật mã đồng âm. Dòng đầu tiên là các chữ cái và các dòng bên dưới là các con số thay thế tương ứng cho chữ cái bên trên.
(Bảng thay thế đồng âm này được xây dựng theo sự phân bố tần xuất các chữ cái trong tiếng đức, với tần xuất xuất hiện của chữ cái E là 17% và N là 10%)
d) Mật mã của Beale – Book cipher
Mật mã của Beale xuất hiện vào năm 1885, là một bản chỉ dẫn đến một kho báu của Thomas Jefferson Beale tại một địa điểm bí mật ở Bedford County, Virginia, năm 1820. Tính theo giá vàng tại năm 2011 thì kho báu này trị giá khoàng 63 triệu $.
Nhưng bỏ qua những thông tin về kho báu, ta quan tâm đến kỹ thuật mã hóa mà Beale đã sử dụng.
Beale đã để lại chỉ dẫn của mình ở 3 văn bản đã được mã hóa. Chỉ 1 trong 3 bản mã trên là được giải mã (nhờ vậy nên giá trị kho báu mới được tiết lộ).
Đây là bản mã thứ 2 – bản đã được giải mã :
Ấn tượng đầu tiên của người đọc là đây có thể là mật mã đồng âm, khi mà các chữ cái được thay thế bởi một con số. Song thực tế không phải đơn giản như vậy.
Bản mã trên được mã hóa bởi mật mã sách (book cipher) với khóa là một cuốn sách hay một văn bản bất kỳ nào đó.
Để mã hóa thì đầu tiên, người lập mã chọn một cuốn sách hoặc một văn bản nào đó rồi đánh số thứ tự các từ trong cuốn sách đó. Mỗi số sẽ thay thế cho chữ cái đầu tiên của từ tương ứng. Như vậy ta đã có bảng thế giữa các chữ cái và các số tự nhiên. Tiếp theo người lập mã viết bản mã với các chữ cái được thay thế bởi các số đã chọn rồi gửi cho người nhận, người nhận lựa chọn đúng cuốn sách hoặc văn bản khóa và làm người lại để có được bản rõ.
Khi biết được văn bản được sử dụng làm khóa thì mọi việc trở nên rất đơn giản, nhưng khi không biết khóa thì những trường hợp phải kiểm tra sẽ là rất lớn. Có thể khóa là một văn bản do người lập mã tự viết và bằng cách nào đó gửi cho người nhận từ trước thì việc phá mã trở nên bất khả thi.
Bản mã thứ 2 của Beale được mã hóa bởi tuyên ngôn độc lập của Hoa Kỳ. Mọi người có thể sử dụng văn bản này để tìm hiểu thông tin được che giấu trong đó.
________________________________
Bài viết liên quan:
Giới thiệu về mật mã cổ điển (Phần 2 - Mật mã chuyển vị)
Giới thiệu về mật mã cổ điển (Phần 3 - Mật mã thay thế - Tiếp)
Trong mật mã thay thế ta có thể phân chia thành 2 nhóm lớn : mật mã một bảng thế và đa bảng thế.
Trong 2 nhóm lớn này có các mật mã đặc biệt, sẽ được trình bày cụ thể dưới đây.
1. Mật mã một bản thế (Monoalphabetic cipher)
Hê ̣mã hoá thay thế là hê ̣mã hoá trong đó mỗi ký tự của bản rõ được thay thế bằng ký tự khác trong bản mã (có thể là một chữ cái, môṭ số hoăc̣ môṭ ký hiêụ).
Khóa của hệ mã chính là thứ tự các ký tự được thay thế tương ứng.
Ví dụ với một khóa như sau :
Mã:
abcdefghijklmnopqrstuvwxyz
JZNHOCTQKLPBYDIWGEAUVXMSRF
Để giải mã thông điệp trên ta thực hiện việc thay thế ngược lại các chữ cái in hoa thành chữ cái in thường tương ứng.
Thử giải mã bản mã sau với khóa trên :
Mã:
MQOD KD UQO NIVEAO IC QVYJD OXODUA, KU ZONIYOA DONOAAJER CIE IDO WOIWBO UI HKAAIBXO UQO WIBKUKNJB ZJDHA MQKNQ QJXO NIDDONUOH UQOY MKUQ JDIUQOE, JDH UI JAAVYO JYIDT UQO WIMOEA IC UQO OJEUQ, UQO AOWJEJUO JDH OGVJB AUJUKID UI MQKNQ UQO BJMA IC DJUVEO JDH IC DJUVEO’A TIH ODUKUBO UQOY, J HONODU EOAWONU UI UQO IWKDKIDA IC YJDPKDH EOGVKEOA UQJU UQOR AQIVBH HONBJEO UQO NJVAOA MQKNQ KYWOB UQOY UI UQO AOWJEJUKID.
a) Mật mã Caesar
Mật mã Caesar là một mật mã một bảng thế đặc biệt. Trong đó, phép biến đổi mã được biểu diễn thông qua phép cộng đồng dư như sau.
Giả sử ta gán các giá trị từ a-z với các số 0-25 thì một ký tự trong bản rõ X có thể mã thành ký tự Y theo công thức: Y = X + Z mod 26, trong đó Z là giá trị của khoá.
Mã:
abcdefghijklmnopqrstuvwxyz
GHIJKLMNOPQRSTUVWXYZABCDEF
Rõ ràng số lượng khoá có thể dùng được chỉ là 25. Có thể thấy rằng mật mã Caesar có một không gian khoá rất nhỏ, do đó phép tìm kiếm vét cạn đương nhiên là khả thi. Trong phép tấn công này, địch thủ chỉ cần thử tất cả các khoá có thể (1-25) để thử giải mã và dễ dàng phát hiện ra khoá đúng khi giải ra một thông tin có nghĩa.
b) Mật mã Affine
Mật mã Affine cũng là một mật mã một bảng thế đặc biệt. Giả sử ta gán các giá trị từ a-z với các số 0-25 thì một ký tự trong bản rõ X có thể mã thành ký tự Y theo công thức: Y = (Xa + b) mod 26, trong đó cặp số (a, b) là giá trị của khoá.
Phép giải mã ta có : X = (Ya[SUP]-1[/SUP] – b) mod 26 với a[SUP]-1 [/SUP] là nghịch đảo của a theo module 26 (aa[SUP]-1 [/SUP]mod 26 = 1).
Để ánh xạ giữa X và Y là 1-1 thì a nguyên tố cùng nhau vó 26.
Như vậy ta chọn được 12 giá trị của a (các số lẻ từ 1 đến 25 trừ số 13) và 26 giá trị của b, không gian khóa của mật mà Affine là 12*26 = 312 khóa – vẫn là con số rất nhỏ.
Ta có thể để ý thấy mật mã Caesar là một trường hợp đặc biệt của mật mà Affine với a = 1.
c) Mật mã đồng âm (homophonic)
Mật mã đồng âm là một trong những mật mã một bảng thế tương đối phức tạp. Các chữ cái trong bảng chữ cái được thay thế bởi một trong nhiều con số được xác định trước giữa người lập mã và người giải mã.
Dưới đây là một ví dụ về mật mã đồng âm. Dòng đầu tiên là các chữ cái và các dòng bên dưới là các con số thay thế tương ứng cho chữ cái bên trên.
(Bảng thay thế đồng âm này được xây dựng theo sự phân bố tần xuất các chữ cái trong tiếng đức, với tần xuất xuất hiện của chữ cái E là 17% và N là 10%)
d) Mật mã của Beale – Book cipher
Mật mã của Beale xuất hiện vào năm 1885, là một bản chỉ dẫn đến một kho báu của Thomas Jefferson Beale tại một địa điểm bí mật ở Bedford County, Virginia, năm 1820. Tính theo giá vàng tại năm 2011 thì kho báu này trị giá khoàng 63 triệu $.
Nhưng bỏ qua những thông tin về kho báu, ta quan tâm đến kỹ thuật mã hóa mà Beale đã sử dụng.
Beale đã để lại chỉ dẫn của mình ở 3 văn bản đã được mã hóa. Chỉ 1 trong 3 bản mã trên là được giải mã (nhờ vậy nên giá trị kho báu mới được tiết lộ).
Đây là bản mã thứ 2 – bản đã được giải mã :
Ấn tượng đầu tiên của người đọc là đây có thể là mật mã đồng âm, khi mà các chữ cái được thay thế bởi một con số. Song thực tế không phải đơn giản như vậy.
Bản mã trên được mã hóa bởi mật mã sách (book cipher) với khóa là một cuốn sách hay một văn bản bất kỳ nào đó.
Để mã hóa thì đầu tiên, người lập mã chọn một cuốn sách hoặc một văn bản nào đó rồi đánh số thứ tự các từ trong cuốn sách đó. Mỗi số sẽ thay thế cho chữ cái đầu tiên của từ tương ứng. Như vậy ta đã có bảng thế giữa các chữ cái và các số tự nhiên. Tiếp theo người lập mã viết bản mã với các chữ cái được thay thế bởi các số đã chọn rồi gửi cho người nhận, người nhận lựa chọn đúng cuốn sách hoặc văn bản khóa và làm người lại để có được bản rõ.
Khi biết được văn bản được sử dụng làm khóa thì mọi việc trở nên rất đơn giản, nhưng khi không biết khóa thì những trường hợp phải kiểm tra sẽ là rất lớn. Có thể khóa là một văn bản do người lập mã tự viết và bằng cách nào đó gửi cho người nhận từ trước thì việc phá mã trở nên bất khả thi.
Bản mã thứ 2 của Beale được mã hóa bởi tuyên ngôn độc lập của Hoa Kỳ. Mọi người có thể sử dụng văn bản này để tìm hiểu thông tin được che giấu trong đó.
________________________________
Bài viết liên quan:
Giới thiệu về mật mã cổ điển (Phần 2 - Mật mã chuyển vị)
Giới thiệu về mật mã cổ điển (Phần 3 - Mật mã thay thế - Tiếp)
Chỉnh sửa lần cuối bởi người điều hành: