- Tham gia
- 8/6/06
- Bài viết
- 14,768
- Được thích
- 23,200
- Nghề nghiệp
- U80
I./ Mã hóa đối xứng & chìa khóa mật mã:
Cách đây hơn 2.000 năm, loài người đã biết mã hóa những câu văn để giữ bí mật cho riêng mình & người cùng chí hướng với mình.
Hồi đó người ta làm tương tự như vầy:
Người ta đem tất tần tật các chữ cái của ngôn ngữ của mình thay tương đương bằng 1 chữ cái khác bất kỳ theo 1 qui luật nào đó.
Ví dụ thay A => F, B => G,. . . .
Lúc đó các kí tự A, B, C, D, E, F, G, H, I,. . . . được thay bằng F, G, H, I, J, K, L, M, N, O . . . . .
Như vậy từ Ai sẽ được viết là FN
& cứ thế người ta truyền tin cho nhau bằng những bức thư ngỏ.
Tất nhiên ở đây người mã hóa đoạn văn cần truyền đạt trước cho người nhận về độ lệnh giữa từ cần mã hóa (A) & từ cần thay thế (F)
Chẳng bao lâu sau, việc này cũng dễ bị fát hiện vì tính lập lại ngẫu nhiên trong ngôn từ; Ví dụ rõ nhất như ngôn ngữ tiếng Việt ta là xài khá nhiều chữ cái "N"
Fát triển thêm 1 bước, con người đã tìm cách thay ngẫu nhiên hơn, như
như thay A, B, C, D, E, F, G, H, . . . bằng S, O, N, G, C, A, B, D,. . .
Ở đây, các từ SONGCA là từ có nghĩa nào đó làm cho người cần giải mã rất chi là dễ nhớ.
Thêm nữa, các từ còn lại chưa xài (ngoài "SONGCA" ) người ta đem ghép nối tiếp vô theo trật tự vốn có của bảng chữ cái.
Từ SONGCA ở đây được gán cho nó cái tên, đó là chìa khóa của mật mã.
Vậy ống khóa là cái gì? Nó chính là bảng chữ cái A, B, C, . . . ., Z
Ở bài đầu tiên này, mình xin giới thiệu với các bạn hàm người dùng để tạo ra các chìa khóa của ống khóa
0, 1, 2, 3, . . .9, A, B, C, . . . . ,Z
Hàm người dùng đó có tên là TaoKhoa & nội dung của nó như sau:
Xin các bạn xem file sẽ rõ thêm
Cách đây hơn 2.000 năm, loài người đã biết mã hóa những câu văn để giữ bí mật cho riêng mình & người cùng chí hướng với mình.
Hồi đó người ta làm tương tự như vầy:
Người ta đem tất tần tật các chữ cái của ngôn ngữ của mình thay tương đương bằng 1 chữ cái khác bất kỳ theo 1 qui luật nào đó.
Ví dụ thay A => F, B => G,. . . .
Lúc đó các kí tự A, B, C, D, E, F, G, H, I,. . . . được thay bằng F, G, H, I, J, K, L, M, N, O . . . . .
Như vậy từ Ai sẽ được viết là FN
& cứ thế người ta truyền tin cho nhau bằng những bức thư ngỏ.
Tất nhiên ở đây người mã hóa đoạn văn cần truyền đạt trước cho người nhận về độ lệnh giữa từ cần mã hóa (A) & từ cần thay thế (F)
Chẳng bao lâu sau, việc này cũng dễ bị fát hiện vì tính lập lại ngẫu nhiên trong ngôn từ; Ví dụ rõ nhất như ngôn ngữ tiếng Việt ta là xài khá nhiều chữ cái "N"
Fát triển thêm 1 bước, con người đã tìm cách thay ngẫu nhiên hơn, như
như thay A, B, C, D, E, F, G, H, . . . bằng S, O, N, G, C, A, B, D,. . .
Ở đây, các từ SONGCA là từ có nghĩa nào đó làm cho người cần giải mã rất chi là dễ nhớ.
Thêm nữa, các từ còn lại chưa xài (ngoài "SONGCA" ) người ta đem ghép nối tiếp vô theo trật tự vốn có của bảng chữ cái.
Từ SONGCA ở đây được gán cho nó cái tên, đó là chìa khóa của mật mã.
Vậy ống khóa là cái gì? Nó chính là bảng chữ cái A, B, C, . . . ., Z
Ở bài đầu tiên này, mình xin giới thiệu với các bạn hàm người dùng để tạo ra các chìa khóa của ống khóa
0, 1, 2, 3, . . .9, A, B, C, . . . . ,Z
Hàm người dùng đó có tên là TaoKhoa & nội dung của nó như sau:
PHP:
Option Explicit
Const Khoa As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
'Const FC As String = "FJWZ" '
Function TaoKhoa(Keys As String, Optional Kh0 As String = Khoa) As String
Dim Kh As String * 36, KTr As String
Dim J As Byte, VTr As Byte
Keys = UCase$(Keys)
For J = 1 To Len(Keys) - 1
Kh0 = Replace(Kh0, Mid(Keys, J, 1), "")
Next J
VTr = InStr(Kh0, Right(Keys, 1))
TaoKhoa = Keys & Mid(Kh0, VTr + 1, 35) & Left(Kh0, VTr - 1)
End Function
Xin các bạn xem file sẽ rõ thêm


