Bài 12: Mã hóa Vigenère – Blog Nam Phạm
Trong các loại mã hóa cổ điển được giới thiệu ở bài trước: mã hóa Caesar, mã hóa Affine, được gọi chung là mã thay thế dùng một bảng chữ cái (monoalphabetic substitution cipher). Nghĩa là ta dùng một ánh xạ các chữ cái trong bảng mã thành bản rõ và tất cả các chữ cái trong bản mã đều dùng chung một ánh xạ.
Yếu điểm của loại mã này là bản mã sẽ giữ lại các đặc điểm mẫu từ và tần xuất của văn bản gốc. Để loại bỏ yếu điểm trên, các nhà lập mã đã tạo ra một hệ mã khác gọi là mã thay thế dùng nhiều bảng chữ cái (polyalphabetic substitution cipher).
Hệ mã này được đặt theo tên của một nhà mật mã học người Pháp Blaise de Vigenère (1523-1596). Mật mã Vigenère là một dạng đơn giản của mật mã thay thế dùng nhiều bảng chữ cái.
Mô tả thuật toán mã hóa Vigenère
Sử dụng bảng mã hoá Vigenère
Để mã hóa, ta dùng một hình vuông Vigenère (hình dưới).Gồm 26 hàng, mỗi hàng dịch về bên trái một bước so với hàng phía trên, tạo thành 26 bảng mã Caesar. Trong quá trình mã hóa, tùy theo từ khóa mà mỗi thời điểm ta dùng một dòng khác nhau để mã hóa văn bản.
Bạn đang đọc: Bài 12: Mã hóa Vigenère – Blog Nam Phạm
Bảng mã Vigenere
Ví dụ, ta có văn bản cần mã hóa như sau: ATTACKATDAWN
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 “LEMON” thì: LEMONLEMONLE
Chữ cái tiên phong của văn bản, A, được mã hóa bằng bảng mở màn với L ( vần âm tiên phong của từ khóa ). Nó sẽ được mã hóa thành vần âm trên dòng L và cột A của hình vuông vắn Vigenère, đó là chữ L. Tương tự như vậy, vần âm thứ hai của văn bản sẽ được mã hóa bằng vần âm thứ hai của từ khóa : chữ trên dòng E và cột T là X. Sau đây là bản mã :
Văn bản: ATTACKATDAWN Từ khóa: LEMONLEMONLE Bản mã: LXFOPVEFRNHR Để hiểu rõ hơn về cách tra bảng, bạn hoàn toàn có thể theo dõi video sau :
Thuật toán mã hóa Vigenère
Đối với hệ mã hóa này khoảng trống những bản mã và bản rõ là những thông điệp được tạo thành từ một bảng vần âm A ( giống hệ mã Caesar ). Các vần âm được đánh số từ $ { 0 } $ tới $ { n-1 } $ trong đó $ { n } $ là số thành phần của bảng vần âm .
Không gian khóa USD { K } $ được xác lập như sau :
Với $ { m } $ là một số ít nguyên dương, khóa USD { K } $ là một xâu ký tự có độ dài $ { m } USD
Định nghĩa sơ đồ hệ mật mã : USD USD { P = C = K = ( Z_n ) ^ m } $ $
Với khóa USD { K = ( k_1, k_2, k_3, k_4, …, k_m ) } $
Để mã hóa một bản rõ $ { P } $, ta chia $ { P } $ thành những đoạn có độ dài $ { m } $ và chuyển thứ tự tương ứng của chúng trong bảng khoảng trống mã. Chẳng hạn $ { X = ( x_1, x_2, x_3, …, x_m ) } USD. Khi đó quy trình mã hóa và giải thuật được triển khai như sau :
USD { e_ { K } ( x_1, x_2, x_3, …, x_m ) = \ { ( x_1 + k_1 ) { \ pmod { n } }, …, ( x_m + k_m ) { \ pmod { n } } \ } } $
USD { d_ { K } ( y_1, y_2, y_3, …, y_m ) = \ { ( y_1-k_1 ) { \ pmod { n } }, …, ( y_m-k_m ) { \ pmod { n } } \ } } $
Với $ { n } $ là khoảng trống mã hóa, $ { Y = y_1y_2y_3 … y_m } $ là một đoạn bảng mã ; USD { X, Y \ in ( Z_n ) ^ m } USD
Về thực ra hệ mã hóa này là sự phối hợp mã hóa Caesar nhiều lần. Nếu trong Caesar ta thay thế sửa chữa từng ký tự đơn lẻ thì trong hệ mã hóa Vigenere sẽ sửa chữa thay thế từng bộ $ { m } $ ký tự liên tục. Với mỗi $ { m } $ ký tự, ta có số khóa hoàn toàn có thể sử dụng là $ { n ^ m } $, đơn cử với bảng vần âm tiếng anh sẽ có $ { 26 ^ m } $ khóa hoàn toàn có thể sử dụng .Ví dụ & Chương trình Mã hoá Vigenère
Bài tập ví dụ
Ví dụ : Xét khoảng trống mã hóa là bảng vần âm tiếng anh, có $ { n = 26 } USD. Giả sử khóa K = ” CIPHER ” có độ dài $ { m = 6 } $, bản rõ P = “ THIS CRYPTOSYSTEM IS NOT SECURE ”
Ta có K = 2 8 15 7 4 17
P = 19 7 8 18 2 17 | 24 15 19 14 18 23 | 18 19 4 12 8 18 | 13 14 19 18 4 2 | 20 17 4
Quá trình mã hóa USD { e_ { K } ( x_1, x_2, x_3, …, x_m ) = \ { ( x_1 + k_1 ) { \ pmod { n } }, …, ( x_m + k_m ) { \ pmod { n } } \ } } $ triển khai như sau :
P= 19 07 08 18 02 17 24 15 19 14 18 23 18 19 04 12 08 18 13 14 19 18 04 02 20 17 04 K= 02 08 15 07 04 17 02 08 15 07 04 17 02 08 15 07 04 17 02 08 15 07 04 17 02 08 15 C= 21 15 23 25 06 08 00 23 08 21 22 14 20 01 19 19 12 09 15 22 08 25 08 19 22 25 19 Vậy bản mã tương ứng sẽ là : C = “ VPXZGI AXIVWO UBTTMJ PWIZIT WZT ”
Chương trình cài đặt mã hoá Vigenère
Tham khảo thêm cách setup bằng những ngôn từ khác trên : https://www.geeksforgeeks.org/vigenere-cipher/
Thám mã Vigenère
Văn bản: ATTACKATDAWN Từ khóa: LEMONLEMONLE Bản mã: LXFOPVEFRNHR Trước hết, ngoài mật mã thì ta còn cần từ khóa ( lấy ví dụ như trên ). Đầu tiên, ta lấy vần âm tiên phong của từ khóa ( ở đây là vần âm L ), sau đó tìm vần âm đó ở hàng ngang tiên phong của bảng mã. Từ vần âm tìm được, ta dóng xuống vần âm cùng thứ tự của mã ( ở đây là vần âm L ). Rồi ta vận động và di chuyển tới vần âm tương ứng ở cột dọc tiên phong từ trái sang phải. Dần dần ta sẽ giải hết mật mã .
Bài tập Vigenere
Bài tập 1: Mã hóa từ ‘explanation’ bằng phương pháp Vigenere, từ khóa là LEG.
Bài tập 2: Cho hệ mã hoá Vigenere có m=6, K=”CIPHER”.
– Hãy thực thi mã hóa xâu P = “ THIS IS MY TEST ”
– Hãy triển khai giải thuật xâu C = “ EICJIC RTPUEI GBGLEK CBDUGV ”Bài tập 3: Xét phương pháp Vigenere. Giả sử biết bản mã “PVRLHFMJCRNFKKW” có bản rõ tương ứng là “networksecurity”. Hãy tìm khóa K.
Bài tập 4: Cho hệ mã Vigenere có m=6. Mã hoá xâu P = “THIS IS MY TEST” thu được bản mã “LLKJML ECVVWM”
– Hãy tìm khóa mã hóa đã dùng cho hệ mã trên .
– Dùng khóa tìm được ở trên, giải bản mã “ KLGZWT OMBRVW ”Bài tập 5: Cho hệ mã Vigenere có m=6. Mã hoá xâu P = “SPIRIT” thu được bản mã “OXHRZW”
– Hãy tìm khóa mã hóa đã dùng cho hệ mã trên .
– Dùng khóa tìm được ở trên, giải bản mã “ BQETYH HMBEEW ”Bài tập 6: Cho hệ mã Vigenere có m=6. Giải mã xâu P = “RANJLV” thu được bản rõ “CIPHER”
– Hãy tìm khoá mã hoá đã dùng cho hệ mã trên.
Xem thêm: 7 phương pháp dạy học tiếng việt theo hướng phát triển năng lực hiệu quả – https://thomaygiat.com
– Dùng khóa tìm được ở trên, giải bản mã “ PLDKCI DUJQJO ”
Bài tập 7: Hãy giải mã bản mã được mã hoá bằng hệ mã Vigenere sau, xác định khoá mã hoá và bản rõ. Biết không gian mã hoá gồm các chữ cái trong bảng chữ cái tiếng anh.
IGDLK MJSGC FMGEP PLYRC IGDLA TYBMR KDYVY XJGMR TDSVK ZCCWG ZRRIP
UERXY EEYHE UTOWS ERYWC QRRIP UERXJ QREWQ FPSZC ALDSD ULSWF FFOAM
DIGIY DCSRR AZSRB GNDLC ZYDMM ZQGSS ZBCXM OYBID APRMK IFYWF MJVLY
HCLSP ZCDLC NYDXJ QYXHD APRMQ IGNSU MLNLG EMBTF MLDSB AYVPU TGMLK
MWKGF UCFIY ZBMLC DGCLY VSCXY ZBVEQ FGXKN QYMIY YMXKM GPCIJ HCCEL
PUSXF MJVRY FGYRQ
Tài liệu tìm hiểu thêm :
- Giáo trình An toàn và bảo mật thông tin, Trường Đại học Hàng Hải Hải Phòng
- https://vi.wikipedia.org/wiki/Mật_mã_Vigenère
Source: https://thomaygiat.com
Category : Kỹ Thuật Số
Chuyển vùng quốc tế MobiFone và 4 điều cần biết – MobifoneGo
Muốn chuyển vùng quốc tế đối với thuê bao MobiFone thì có những cách nào? Đừng lo lắng, bài viết này của MobiFoneGo sẽ giúp…
Cách copy dữ liệu từ ổ cứng này sang ổ cứng khác
Bạn đang vướng mắc không biết làm thế nào để hoàn toàn có thể copy dữ liệu từ ổ cứng này sang ổ cứng khác…
Hướng dẫn xử lý dữ liệu từ máy chấm công bằng Excel
Hướng dẫn xử lý dữ liệu từ máy chấm công bằng Excel Xử lý dữ liệu từ máy chấm công là việc làm vô cùng…
Cách nhanh nhất để chuyển đổi từ Android sang iPhone 11 | https://thomaygiat.com
Bạn đã mua cho mình một chiếc iPhone 11 mới lạ vừa ra mắt, hoặc có thể bạn đã vung tiền và có một chiếc…
Giải pháp bảo mật thông tin trong các hệ cơ sở dữ liệu phổ biến hiện nay
Hiện nay, với sự phát triển mạnh mẽ của công nghệ 4.0 trong đó có internet và các thiết bị công nghệ số. Với các…
4 điều bạn cần lưu ý khi sao lưu dữ liệu trên máy tính
08/10/2020những chú ý khi tiến hành sao lưu dữ liệu trên máy tính trong bài viết dưới đây của máy tính An Phát để bạn…