Crypto 02: Mật mã học cổ điển
Lịch sử mật mã
Mật mã là một trong những nghệ thuật cổ xưa có lịch sử hàng ngàn năm phát triển. Từ xa xưa, mật mã đã được sử dụng để truyền thông tin an toàn. Chẳng hạn như nhà vua cần truyền mệnh lệnh cho tướng ngoài mặt trận. Một cách đơn giản là ông ấy viết mệnh lệnh vào một lá thư, rồi gửi cho người đưa tin và người này sẽ đi từ kinh thành ra mặt trận để trao thư. Với cách làm này, ông vua không có cách nào đảm bảo được rằng chỉ có tướng quân mới xem được thư. Người đưa thư có thể phản bội, trao thư cho kẻ thù, hoặc họ cũng có thể bị kẻ thù bắt trên đường đi từ kinh thành ra mặt trận. Để giải quyết vấn đề này, nhà vua có thể sử dụng mã (cipher). Một mã thường bao gồm 2 hàm:
· : lập mã. Hàm này nhận vào một bản rõ (plaintext) và một khóa (key) rồi xuất ra một bản mã (ciphertext)
· : giải mã. Hàm này nhận vào một bản mã và một khóa rồi xuất ra một bản rõ.
Substitution Cipher (Mã hóa thay thế) :
Là phương pháp mà từng kí tự (hay từng nhóm kí tự) trong Plaintext được thay thế bằng một kí tự (hay một nhóm kí tự) khác tạo ra Ciphertext.Bên nhận chỉ việc đảo ngược lại trình tự thay thế trên Ciphertext để có được Plaintext ban đầu. Đây chính là phương pháp mã hóa thay thế CAESAR CIPHER nổi tiếng được sử dụng bởi Julius Caesar vị hoàng đế vĩ đại của đế chế La Mã.
Ý tưởng của mã thay thế rất đơn giản: thay mỗi ký tự trong bằng một ký tự khác. Quy tắc thay thế chính là khóa , trong đó mỗi khóa là một hoán vị của bảng chữ cái. Ví dụ:
Khóa: (A -> H, B -> N, C -> D, D -> X,..., Z -> Y)
Bản rõ: ABCZ
Bản mã: HNDY
Với Caesar, ông ta chỉ áp dụng phép dịch 3 vị trí. Nhưng sau này khi áp dụng nó người ta sử dụng các phép dịch khác lớn hơn. Nhưng như các bạn thấy đối với bảng chữ cái tiếng Anh thì từ A -> Z có 26 chữ cái, do đó điểm yếu của phương pháp này nằm ở chỗ phạm vi của phép dịch chỉ được phép nằm trong khoảng từ 0 – 25.
Transposition Cipher (Mã hóa hoán vị) :
Bên cạnh phương pháp mã hóa thay thế thì trong mã hóa cổ điển có một phương pháp khác nữa cũng nổi tiếng không kém, đó chính là mã hóa hoán vị - mã hóa Vigenère .
Trong phương pháp mã hóa thay thế, các kí tự trong Plaintext được thay thế hoàn toàn bằng các kí tự trong Ciphertext nhưng mã hóa hoán vị thì ngược lại, các kí tự trong Plaintext vẫn được giữ nguyên chúng chỉ được sắp xếp lại vị trí để tạo ra Ciphertext.
Ý tưởng của mã hóa hoán vị như sau: Hoán đổi vị trí của các kí tự theo từng nhóm theo một qui tắc nhất định.
Ví dụ, ta có văn bản cần mã hóa như sau:
WHITEHATCONTEST
Người gửi lựa chọn một từ khóa và viết nó lặp lại nhiều lần trên một dòng đến khi số chữ cái trên dòng bằng số chữ cái trong thông điệp, với từ khóa "DEBUG" thì:
DEBUGDEBUGDEBUG
Tiếp đó sử dụng một quy tắc nhất định để hoán đổi các nhóm “DEBUG” theo bản rõ gọi là hình vuông Vigenère hay bảng Vigenère.
Kết quả: ZLJNKKEUWUQXFMZ
Lợi ích của việc mã hóa bằng phương pháp mã hóa hoán vị Vigenère là chống lại việc thám mã bằng cách phân tích tần suất. Nói cách khác tần suất của các ký tự trong bản mã khác tuần suất các ký tự trong bản rõ.
Tiếp theo
Trong các bài viết tiếp theo trong loạt bài về Cryptography, mình sẽ trình bày về mã hóa đối xứng, mã hóa bất đối xứng và một số ứng dụng của mã hóa hiện nay trong security.
Mật mã là một trong những nghệ thuật cổ xưa có lịch sử hàng ngàn năm phát triển. Từ xa xưa, mật mã đã được sử dụng để truyền thông tin an toàn. Chẳng hạn như nhà vua cần truyền mệnh lệnh cho tướng ngoài mặt trận. Một cách đơn giản là ông ấy viết mệnh lệnh vào một lá thư, rồi gửi cho người đưa tin và người này sẽ đi từ kinh thành ra mặt trận để trao thư. Với cách làm này, ông vua không có cách nào đảm bảo được rằng chỉ có tướng quân mới xem được thư. Người đưa thư có thể phản bội, trao thư cho kẻ thù, hoặc họ cũng có thể bị kẻ thù bắt trên đường đi từ kinh thành ra mặt trận. Để giải quyết vấn đề này, nhà vua có thể sử dụng mã (cipher). Một mã thường bao gồm 2 hàm:
· : lập mã. Hàm này nhận vào một bản rõ (plaintext) và một khóa (key) rồi xuất ra một bản mã (ciphertext)
· : giải mã. Hàm này nhận vào một bản mã và một khóa rồi xuất ra một bản rõ.
Substitution Cipher (Mã hóa thay thế) :
Là phương pháp mà từng kí tự (hay từng nhóm kí tự) trong Plaintext được thay thế bằng một kí tự (hay một nhóm kí tự) khác tạo ra Ciphertext.Bên nhận chỉ việc đảo ngược lại trình tự thay thế trên Ciphertext để có được Plaintext ban đầu. Đây chính là phương pháp mã hóa thay thế CAESAR CIPHER nổi tiếng được sử dụng bởi Julius Caesar vị hoàng đế vĩ đại của đế chế La Mã.
Ý tưởng của mã thay thế rất đơn giản: thay mỗi ký tự trong bằng một ký tự khác. Quy tắc thay thế chính là khóa , trong đó mỗi khóa là một hoán vị của bảng chữ cái. Ví dụ:
Khóa: (A -> H, B -> N, C -> D, D -> X,..., Z -> Y)
Bản rõ: ABCZ
Bản mã: HNDY
Với Caesar, ông ta chỉ áp dụng phép dịch 3 vị trí. Nhưng sau này khi áp dụng nó người ta sử dụng các phép dịch khác lớn hơn. Nhưng như các bạn thấy đối với bảng chữ cái tiếng Anh thì từ A -> Z có 26 chữ cái, do đó điểm yếu của phương pháp này nằm ở chỗ phạm vi của phép dịch chỉ được phép nằm trong khoảng từ 0 – 25.
Transposition Cipher (Mã hóa hoán vị) :
Bên cạnh phương pháp mã hóa thay thế thì trong mã hóa cổ điển có một phương pháp khác nữa cũng nổi tiếng không kém, đó chính là mã hóa hoán vị - mã hóa Vigenère .
Trong phương pháp mã hóa thay thế, các kí tự trong Plaintext được thay thế hoàn toàn bằng các kí tự trong Ciphertext nhưng mã hóa hoán vị thì ngược lại, các kí tự trong Plaintext vẫn được giữ nguyên chúng chỉ được sắp xếp lại vị trí để tạo ra Ciphertext.
Ý tưởng của mã hóa hoán vị như sau: Hoán đổi vị trí của các kí tự theo từng nhóm theo một qui tắc nhất định.
Ví dụ, ta có văn bản cần mã hóa như sau:
WHITEHATCONTEST
Người gửi lựa chọn một từ khóa và viết nó lặp lại nhiều lần trên một dòng đến khi số chữ cái trên dòng bằng số chữ cái trong thông điệp, với từ khóa "DEBUG" thì:
DEBUGDEBUGDEBUG
Tiếp đó sử dụng một quy tắc nhất định để hoán đổi các nhóm “DEBUG” theo bản rõ gọi là hình vuông Vigenère hay bảng Vigenère.
Kết quả: ZLJNKKEUWUQXFMZ
Lợi ích của việc mã hóa bằng phương pháp mã hóa hoán vị Vigenère là chống lại việc thám mã bằng cách phân tích tần suất. Nói cách khác tần suất của các ký tự trong bản mã khác tuần suất các ký tự trong bản rõ.
Tiếp theo
Trong các bài viết tiếp theo trong loạt bài về Cryptography, mình sẽ trình bày về mã hóa đối xứng, mã hóa bất đối xứng và một số ứng dụng của mã hóa hiện nay trong security.
Chỉnh sửa lần cuối bởi người điều hành: