Các hệ mật mã cổ điển

Một phần của tài liệu Phát hiện giả mạo bảng điểm tiếng việt cho các trường học luận văn thạc sĩ (Trang 29 - 36)

2.2.2.1. Hệ mã hóa thay thế

Phƣơng pháp mã hóa thay thế (Substitution Cipher) là một trong những phƣơng pháp mã hóa nổi tiếng và đã đƣợc sử dụng từ hàng trăm năm nay. Phƣơng pháp này thực hiện việc mã hóa thông điệp bằng cách hoán vị các

phần tử trong bảng chữ cái hay tổng quát hơn là hoán vị các phần tử trong tập nguồn P.

Thuật toán: Phƣơng pháp mã hóa bằng thay thế

Hình 2.12 – Mô tả phương pháp mã hóa thay thế

Đây là một phƣơng pháp đơn giản, thao tác mã hóa và giải mã đƣợc thực hiện nhanh chóng. Phƣơng pháp này khắc phục điểm hạn chế của phƣơng pháp mã hóa bằng dịch chuyển là có không gian khóa K nhỏ nên dễ dàng bị giải mã bằng cách thử nghiệm lần lƣợt n giá trị khóa kK. Trong phƣơng pháp mã hóa thay thế có không gian khóa K rất lớn với n! phần tử nên không thể bị giải mã bằng cách “vét cạn” mọi trƣờng hợp khóa k. Tuy nhiên, trên thực tế thông điệp đƣợc mã hóa bằng phƣơng pháp này vẫn có thể bị giải mã nếu nhƣ có thể thiết lập đƣợc bảng tần số xuất hiện của các ký tự trong thông điệp hay nắm đƣợc một số từ, ngữ trong thông điệp nguồn ban đầu.

2.2.2.2. Hệ mã dịch vòng

Phƣơng pháp mã hóa dịch vòng là một trong những phƣơng pháp lâu đời nhất đƣợc sử dụng để mã hóa. Thông điệp đƣợc mã hóa bằng cách dịch chuyển xoay vòng từng ký tự đi k vị trí trong bảng chữ cái.

Trong trƣờng hợp đặc biệt k = 3, phƣơng pháp mã hóa bằng dịch chuyển đƣợc gọi là phƣơng pháp mã hóa Caesar.

Thuật toán: Phƣơng pháp mã hóa dịch chuyển  Cho P = C = K = Zn

 K là tập hợp tất cả các hoán vị của n phần tử 0,1, . . n-1. nhƣ vậy, mỗi khóa K là một hoán vị của n phần tử 0,1, . . n-1.  Với mỗi khóa   K, định nghĩa:

 e(x) =  (x) d(y) = -1(y) với x, y  Zn

Hình 2.13 – Mô tả phương pháp mã hóa dịch chuyển

Mã hóa dịch chuyển là một phƣơng pháp mã hóa đơn giản, thao tác xử lý mã hóa và giải mã đƣợc thực hiện nhanh chóng. Tuy nhiên, trên thực tế, phƣơng pháp này có thể dễ dàng bị phá vỡ bằng cách thử mọi khả năng khóa kK. Điều này hoàn toàn có thể thực hiện đƣợc do không gian khóa K chỉ có n phần tử để chọn lựa.

Ví dụ: Để mã hóa một thông điệp đƣợc biểu diễn bằng các chữ cái từ A đến Z (26 chữ cái), ta sử dụng P = C = K = Z26 . Khi đó, thông điệp đƣợc mã hóa sẽ không an toàn và có thể dễ dàng bị giải mã bằng cách thử lần lƣợt 26 giá trị khóa k  K. Tính trung bình, thông điệp đã đƣợc mã hóa có thể bị giải mã sau khoảng n /2 lần thử khóa kK.

2.2.2.3. Hệ mã Affine

Hệ mã hoá Affine đƣợc xác định bởi hai số nguyên a và b, với điều kiện 0  a,b  25 (tức a, b thuộc bảng chữ cái tiếng Anh 26 ký tự). Ở đây chúng ta xét hệ làm việc trên các số tự nhiên thay cho các ký tự nhƣ đã nói ở phần trên, các phép toán số học đƣợc thực hiện theo modul 26.

Sự thay thế mỗi ký tự  sẽ đƣợc xác định bằng công thức (hàm mã hoá AFFINE):

Ek() = (a + b) MOD 26 Lƣu ý: khi a = 1 thì ta có hệ mã hoá CAESAR.

Ví dụ: nếu a = 3 và b = 5 thì ta có, bảng số tự nhiên tƣơng ứng với bảng chữ cái gốc:

Bảng 2.1 – Bảng số tự nhiên tương ứng với bảng chữ cái gốc

 Cho P = C = K = Zn

 Với mỗi khóa k  K, định nghĩa:  Ek(x) = (x+k) mod n và dk(y) = (y-k)

mod n với x, y  Zn

0 1 2 3 4 5 6 7 8 9 10 11 12 13

A B C D E F G H I J K L M N

14 15 16 17 18 19 20 21 22 23 24 25

O P Q R S T U V W X Y Z

bảng số tự nhiên và bảng chữ cái sau khi mã hoá:

Bảng 2.2 – Bảng số tự nhiên tương ứng sau khi mã hóa

5 8 11 14 17 20 23 0 3 6 9 12 15 18

F I L O R U X A D G J M P S

21 24 1 4 7 10 13 16 19 22 25 2

V Y B E H K N Q T W Z C

Khi đó bản rõ “DAIHOCLACHONG” đƣợc mã hoá thành “OFDAVLMFLAVSX”.

Để có thể giải mã đƣợc ta chú ý rằng hàm mã hoá AFFINE: Ek()=(a + b) MOD 26 phải là hàm đơn ánh hay nói cách khác hàm này có ánh xạ 1-1. Ví dụ với a = 10, b = 1 ta có ánh xạ 10 + 1. ánh xạ này không thoả mã vì hai ký tự A và N cùng ánh xạ tới B, vì vậy khi giải mã B có thể đƣợc giải mã thành A và N. Ngƣợc lại không có một ký tự nào ánh xạ tới O, và vì vậy O không xuất hiện trong bảng chữ cái thay thế. Ta có thể dễ dàng tìm thấy tất cả các cặp ký tự cùng ánh xạ tới một ký tự cũng nhƣ tất cả các ký tự không xuất hiện trong bảng chữ cái thay thế.

2.2.2.4. Hệ mã Vigenere

Hệ mã hoá này đƣợc đặt theo tên của một nhà mật mã ngƣời Pháp Blaise de Vigenère (1523-1596). VIGENERE cũng giống nhƣ CAESAR, nhƣng ở đây khoá đƣợc thay đổi theo từng bƣớc.

Bảng 2.3 – Bảng VIGENERE được sử dụng để mã hoá và giải mã A B C D E F G H I J K L M N O P Q R S T U V W X Y Z B C D E F G H I J K L M N O P Q R S T U V W X Y Z A C D E F G H I J K L M N O P Q R S T U V W X Y Z A B D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E F G H I J K L M N O P Q R S T U V W X Y Z A B C D F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L M N O P Q R S T U V W X Y Z A B C D E F G H I J K M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V W X Y Z A B C D E F G H I J K L M N O P Q R S T U W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z A B C D E F G H I J K L M N O P Q R S T U V W X Y Mỗi cột của hình vuông VIGENERE có thể xem nhƣ là một hệ CAESAR, với các khoá 0, 1, 2,... , 25. Để mã hoá thì bản rõ đƣợc đọc từ các hàng và khoá đƣợc đọc từ các cột.

Ví dụ để mã hóa bản rõ THONGTIN với từ khoá LACHONG, đầu tiên ta tìm điểm giao nhau của hàng T và cột L, ta đƣợc E. Cứ nhƣ vậy ta đƣợc bản mã EHQUUGVT.

Ta sẽ thu đƣợc bản mã tƣơng tự nếu ta thay đổi vai trò của hàng và cột trong khi mã hoá. Để giải mã bản mã EHQUUGVT vừa mã hoá, ta nhìn vào hàng nào có chứa E trong cột L, theo cách này ta sẽ tìm đƣợc T. Và nhƣ vậy ta tìm đƣợc bản rõ là THONGTIN.

Khoá đƣợc áp dụng một cách tuần hoàn, tức là nếu bản rõ dài hơn khoá thì khoá lại đƣợc bắt đầu lại từ đầu.

Ví dụ khoá LACHONG đƣợc áp dụng với bản rõ có độ dài 16 ký tự CONGNGHETHONGTIN là LACHONGLACHONGLA

Ta thấy rằng trong hệ mã hoá VIGENERE, với khoá có độ dài d thì sẽ có 26d khoá hợp lệ. Vì vậy, chỉ cần với giá trị d nhỏ thì phƣơng pháp thám mã vét cạn cũng đòi hỏi khá nhiều thời gian.

2.2.2.5. Hệ mã đổi chỗ

Một hệ mã đổi chỗ là hệ mã hóa trong đó các ký tự của bản rõ vẫn đƣợc giữ nguyên nhƣng thứ tự của chúng đƣợc đổi chỗ cho nhau.

Ví dụ một hệ mã hoá đổi chỗ cột đơn giản, bản rõ đƣợc viết theo hàng ngang trên trang giấy với độ dài cố định, và bản mã đƣợc đọc theo hàng dọc

Bảng 2.4 – Mô tả mã hoá thay đổi vị trí cột

Bản rõ: KHOACONGNGHETHONGTINDAIHOCLACHONG KHOACONGNG HETHONGTIN DAIHOCLACH ONG Bản mã: KHDOHEANOTIGAHHCOOONCNGLGTANICGNH Phƣơng pháp này có các kỹ thuật sau:

Đảo ngƣợc toàn bộ bản rõ: nghĩa là bản rõ đƣợc viết theo thứ tự ngƣợc lại để tạo ra bản mã. Đây là phƣơng pháp mã hoá đơn giản nhất vì vậy không đảm bảo an toàn.

Mã hoá theo mẫu hình học: bản rõ đƣợc sắp xếp lại theo một mẫu hình học nào đó, thƣờng là một mảng hoặc một ma trận hai chiều.

Ví dụ: bản rõ

“KHOACONGNGHETHONGTIN” đƣợc viết thành ma trận 54 theo hàng nhƣ sau:

Bảng 2.5 – Mô tả mã hoá dạng ma trận ngang Cột 1 2 3 4 5 Bản rõ K H O A C O N G N G H E T H O N G T I N

Nếu lấy các ký tự ra theo số thứ tự cột 2, 4, 1, 3, 5 thì sẽ có bản mã “HNEGANHIKOHNOGTTCGON”.

Đổi chỗ cột: Đầu tiên đổi chỗ các ký tự trong bản rõ thành dạng hình chữ nhật theo cột, sau đó các cột đƣợc sắp xếp lại và các chữ cái đƣợc lấy ra theo hàng ngang

Ví dụ: bản rõ gốc là “KHOACONGNGHETHONGTIN” đƣợc viết dƣới dạng ma trận 54 theo cột nhƣ sau:

Bảng 2.6 – Mô tả mã hoá dạng ma trận dọc Cột 1 2 3 4 5 Bản rõ K C N T G H O G H T O N H O I A G E N N

Nếu ta chuyển vị các cột theo thứ tự 3, 5, 2, 4, 1 rồi lấy các ký tự ra theo hàng ngang ta sẽ thu đƣợc bản mã là “KCNTGHOGHTONHOIAGENN”. Lƣu ý rằng các ký tự cách đƣợc bỏ đi.

Hạn chế của phƣơng pháp này là toàn bộ các ma trận ký tự phải đƣợc sinh để mã hoá và giải mã.

Hoán vị các ký tự của bản rõ theo chu kỳ cố định d: Nếu hàm f là một hoán vị của một khối gồm d ký tự thì khoá mã hoá đƣợc biểu diễn bởi K(d,f).

Do vậy, bản rõ:

M = m1m2...mdmd+1...m2d

Với mi là các ký tự , và bản rõ sẽ đƣợc mã hoá thành: Ek(M) = mf(1)mf(2)...mf(d)md+f(1)...md+f(d)

Trong đó mf(1)mf(2)...mf(d) là một hoán vị của m1m2...md. Ví dụ: giả sử d=5 và f hoán vị dãy i=12345 thành f(i)=35142

Bảng 2.7 – Mô tả hoán vị các ký tự

Vị trí đầu Vị trí hoán vị Từ Mã hoá

1 3 G O

2 5 R P

3 1 O G

4 4 U U

5 2 P R

Theo bảng trên, ký tự đầu trong khối 5 ký tự đƣợc chuyển tới vị trí thứ 3, ký tự thứ hai đƣợc chuyển tới vị trí thứ 5,... Chẳng hạn từ gốc GROUP đƣợc mã hoá thành OPGUR.

Hệ mã ADFGV của Đức, đƣợc sử dụng trong suốt chiến tranh thế giới lần thứ I, là một hệ mã hoá đổi chỗ (có sử dụng thay thế đơn giản). Nó đƣợc coi là một thuật toán mã hoá phức tạp vào thời ấy nhƣng nó đã bị phá bởi Georges Painvin, một nhà thám mã ngƣời Pháp.

Một phần của tài liệu Phát hiện giả mạo bảng điểm tiếng việt cho các trường học luận văn thạc sĩ (Trang 29 - 36)

Tải bản đầy đủ (PDF)

(81 trang)