Hệ Mã Hoá Khóa Tự Động (Mã Hóa Cộng Tính Đa Bảng Cải Tiến)

4.2.3.5. Hệ mã hoá nhân tính

Phương pháp mã hoá nhân tính được thực hiện tương tự như phương pháp mã hoá cộng tính đã trình bày trong mục 4.2.3.4, trong đó, phép cộng đồng dư được thay thế bằng phép nhân đồng dư:

Y = X Z

Tuy nhiên, một điểm chú ý là không phải mọi giá trị khóa từ 0 đến 25 đều có thể sử dụng làm khóa mã, mà chỉ có những giá trị nguyên tố cùng nhau với 26 mới có thể dùng làm khóa được, vì vậy, chỉ có 12 khóa có thể sử dụng. Giả sử sử dụng K= 2 làm khóa mã, khi đó ta có:

2*1 = 2 mod 26 tức là ký tự B sẽ được chuyển thành ký tự C trong bản mã.

2*14 = 2 mod 26 nghĩa là ký tự O cũng được chuyển thành ký tự C trong bản mã

Như vậy, cùng một ký tự C trong bản mã, có hai giá trị tương ứng trong nguyên bản, điều này dẫn đến tình trạng nguyên bản thu được sẽ có ngữ nghĩa nhập nhằng, không thống nhất, hay nói cách khác là không thể giải mã được bản mã này. Vì vậy, các khóa K có giá trị không đồng dư với 26 thì không được sử dụng cho hệ mã hóa nhân tính.

Trong phương pháp mã hoá nhân tính, một hạn chế là số lượng khóa được sử dụng là rất ít nên có thể dễ dàng bị phá mã bằng thuật toán vét cạn, để tăng số lượng khóa người ta thường kết hợp phương pháp mã hoá cộng tính và phương pháp mã hoá nhân tính làm một. Chẳng hạn, sử dụng công thức:

Y = X Z K

Tùy vào thực tế hiện nay có thể thực hiện việc cộng tính trước hay thực hiện nhân tính trước. Thứ tự thực hiện sẽ quyết định cách thức giải mã cho bản mã thu được.

4.2.3.6. Hệ mã hoá Vigenere (Mã hóa cộng tính đa bảng)

Hệ mã hóa Vigenère được phát triển dựa trên mã hóa cộng tính Ceasar, do hạn chế của mã hóa cộng tính đơn bảng là số lượng khóa quá bé, có thể phá mã trong thời gian ngắn bằng vét cạn nên Vigenere cải tiến thành hệ mã hóa cộng tính đa bảng.

Nguyên tắc dựa trên việc dịch chuyển xoay vòng theo thứ tự chữ cái của khóa K. Chẳng hạn với khóa D= k1k2... kd và nguyên bản P, khi đó bản mã thu được dựa trên việc dịch chuyển thứ tự từng chữ cái trong P theo thứ tự ký tự tương ứng trong D. Với mỗi chữ cái của văn bản P, khi đó, đặt p = 0 nếu chữ cái là a, p = 1 nếu chữ cái là b,... sau đó bản mã thu được dựa trên công thức C = E(p) = (p + i) mod 26 với i là kí tự thứ i trong khóa D.

Mã hóa và giải mã Vigenere dựa trên nguyên tắc gọi là hình vuông Vigenere bao gồm 26 hàng và 26 cột các chữ cái tiếng Anh. Mỗi hàng dịch chuyển theo thứ tự của chữ cái đầu hàng, mỗi cột là giá trị các ký tự cần mã hóa hoặc giải mã.

Ví dụ với nguyên bản: “ATTACK AT MIDNIGHT” và khóa K= “CIPHER” thì bản mã được xây dựng như Bảng 4.7 và bản mã thu được sẽ là: “CBIHGBCBBPHEKOWA”


Bảng 4.7. Minh họa mã hóa Vigenere


Nguyên bản

A

T

T

A

C

K

A

T

M

I

D

N

I

G

H

T

Khóa K

C

I

P

H

E

R

C

I

P

H

E

R

C

I

P

H

Bản mã

C

B

I

H

G

B

C

B

B

P

H

E

K

O

W

A

Có thể bạn quan tâm!

Xem toàn bộ 194 trang tài liệu này.

Hình 4 4 Hình vuông Vigenere dùng để mã hóa và giải mã 4 2 3 7 Hệ mã hoá khóa 1


Hình 4.4. Hình vuông Vigenere dùng để mã hóa và giải mã


4.2.3.7. Hệ mã hoá khóa tự động (Mã hóa cộng tính đa bảng cải tiến)

Hệ mã hóa khóa tự động được cải tiến dựa trên hệ mã hóa Vigenere, thay vì khóa được lặp đi lặp lại để mã hóa nguyên bản, thì hệ mã hóa khóa tự động lấy đoạn nguyên bản đầu tiên gắn vào khóa để làm khóa tự động trong xây dựng bản mã.

Nguyên tắc hoạt động tương tự như hệ mã hóa Vigenere, ví dụ với nguyên bản: “ATTACK AT MIDNIGHT” và khóa K=”CIPHER” thì bản mã của hệ mã hóa khóa tự động được xây dựng như Bảng 4.8 và bản mã thu được sẽ là: “CBIHGBAMFIFNBSPW”.

Bảng 4.8. Minh họa mã hóa khóa tự động


Nguyên bản

A

T

T

A

C

K

A

T

M

I

D

N

I

G

H

T

Khóa K

C

I

P

H

E

R

A

T

T

A

C

A

T

M

I

D

Bản mã

C

B

I

H

G

B

A

M

F

I

F

N

B

S

P

W


Các hệ mã hóa dịch chuyển đều có thể giải mã dựa trên hình vuông Vigenere, với các hệ mã hóa đơn bảng, chỉ cần lấy trên một hàng, còn đối với các hệ mã hóa đa bảng thì lấy trên các hàng khác nhau tương ứng với ký tự trong khóa.

4.2.4. Hệ mã hóa đối xứng hiện đại

4.2.4.1. Vài nét về hệ mã hóa DES (Data Encryption Standard)

Với sự ra đời và phát triển nhanh chóng của máy tính điện tử, đặc biệt là mạng máy tính đã làm cho việc trao đổi thông tin trở nên thuận tiện và trở thành nhu cầu của tất cả mọi người cũng như các tổ chức, doanh nghiệp trên toàn thế giới. Chính vì thế, nhu cầu về việc đảm bảo an toàn cho các thông tin trong quá trình trao đổi trên các kênh truyền thông ngày càng được nâng cao. Từ sau năm 1949 là thời kỳ bùng nổ của ngành khoa học mã hóa với rất nhiều phương pháp mã hóa mới ra đời, cho đến những năm 1970 của thế kỷ trước thì nhu cầu về một chuẩn mã hóa chung về mặt thuật toán đã trở nên rõ ràng với các lý do sau: (1) Sự phát triển nhanh chóng của công nghệ thông tin và mạng máy tính làm bùng nổ nhu cầu về an toàn và bảo mật thông tin, (2) Các thuật toán mã hóa theo các phương pháp trước đây không còn phù hợp trong điều kiện mới, (3) Các thiết bị khác nhau đòi hỏi cần có sự trao đổi thông tin được mã hóa khác nhau.

Các thuật toán mã hóa trong giai đoạn này cần thiết phải có các tính chất:

(1) Bảo mật ở mức cao,

(2) Thuật toán được đặc tả và công khai hoàn toàn, nghĩa là tính bảo mật không dựa trên thuật toán,

(3) Dễ dàng cài đặt,

(4) Có tính mềm dẻo, thích hợp với nhiều ứng dụng.

Trước những yêu cầu bức thiết trên, vào năm 1973 chính phủ Mỹ đã có những hỗ trợ để khuyến khích cho việc phát triển một hệ thống mã hõa mới và kết quả là đến năm 1977 hãng IBM đã cho ra đời và phát triển hệ thống mã DES như chúng ta vẫn sử dụng ngày nay.

4.2.4.2. Mô tả mã hóa DES (Data Encryption Standard)

DES là thuật toán mã hoá khối (Block Algrithms), với cỡ của một khối là 64 bit. Một khối 64 bit bản rõ được đưa vào, sau khi mã hoá dữ liệu đưa ra là một khối bản mã 64 bit. Cả mã hoá và giải mã đều sử dụng cùng một thuật toán và khoá. Khoá mã có độ dài 64 bit, trong đó có 8 bit chẵn lẻ được sử dụng để kiểm soát lỗi. Các bit chẵn lẻ nằm ở các vị trí 8, 16, 24,..., 64. Tức là cứ 8 bit khoá thì trong đó có một bit kiểm soát lỗi, bit này qui định số bit có giá trị “1” của khối 8 bit đó theo tính bù chẵn

Thuật toán DES được tiến hành theo 3 giai đoạn:

1. Với bản rõ cho trước X, một xâu bit x0 sẽ được xây dựng bằng cách hoán vị các bit của X theo phép hoán vị cố định ban đầu IP.

Ta viết:

𝑥0 = 𝐼𝑃(𝑋) = 𝐿0𝑅0, trong đó 𝐿0 gồm 32 bit đầu và 𝑅0 là 32 bit

cuối.


2. Sau đó tính toán 16 lần lặp theo một hàm xác định. Ta sẽ tính 𝐿𝑖 𝑅𝑖, 1 i 16 theo quy tắc sau:

𝐿𝑖 = 𝑅𝑖 − 1 ; 𝑅𝑖 = 𝐿𝑖 − 1 𝑓(𝑅𝑖 − 1, 𝐾𝑖).

Trong đó kí hiệu phép hoặc loại trừ của hai xâu bit (cộng theo

modulo 2), f là một hàm có thể lấy nghịch đảo, còn K1,K2,..., K16 là các xâu bit độ dài 48 được tính như hàm của khoá K.

Trên thực tế mỗi Ki là một phép chọn hoán vị bit trong K, khi đó K1, K2, ..., K16 sẽ tạo thành bảng khoá, một vòng của phép mã hoá được mô tả trên Hình 4.5.

3. Áp dụng phép hoán vị ngược 𝐼𝑃−1 cho xâu bit 𝑅16𝐿16, ta thu được bản mã Y.

Tức là 𝑦 = 𝐼𝑃−1 (𝑅16𝐿16), chú ý thứ tự đã đảo của 𝑅16, 𝐿16.

Sơ đồ chung của hệ thống mã DES như sau:

Theo sơ đồ trên chúng ta thấy DES là phương pháp mã hóa khối với độ dài khối vào là X=64 bit, đầu ra là Y=64 bit và độ dài khóa là K=56 bit.

DES thực hiện trên từng khối 64 bit bản rõ. Sau khi thực hiện hoán vị khởi đầu, khối dữ liệu được chia làm hai nửa trái và phải, mỗi nửa 32 bit. Tiếp đó, có 16 vòng lặp giống hệt nhau được thực hiện, được gọi là các hàm ƒ, trong đó dữ liệu được kết hợp với khoá.

Sau 16 vòng lặp, hai nửa trái và phải được kết hợp lại và hoán vị cuối cùng (hoán vị ngược) sẽ kết thúc thuật toán.

Cơ bản có thể nói rằng DES cơ bản có các tính chất như sau: Sử dụng khoá 56 bit.

Xử lý khối vào 64 bit, biến đổi khối vào thành khối ra 64 bit. Mã hoá và giải mã được sử dụng cùng một khoá.

DES được thiết kế để chạy trên phần cứng.

DES thường được sử dụng để mã hoá các dòng dữ liệu mạng và mã hoá dữ liệu được lưu trữ trên đĩa.

4.2.4.3. Giải mã DES và vấn đề an toàn của DES

Sau khi thay đổi, hoán vị, XOR và dịch vòng, chúng ta có thể nghĩ rằng thuật toán giải mã phức tạp, khó hiểu như thuật toán mã hoá và hoàn toàn khác thuật toán mã hoá. Trái lại, sự hoạt động được lựa chọn để

đưa ra một đặc tính hữu ích: cùng thuật toán làm việc cho cả mã hoá và giải mã.

Với DES, có thể sử dụng cùng chức năng để giải mã hoặc mã hoá một khối. Chỉ có sự khác nhau đó là các khoá phải được sử dụng theo thứ tự ngược lại. Nghĩa là, nếu các khoá mã hoá cho mỗi vòng là k1, k2, k3,.., k15, k16 thì các khoá giải là k16, k15,..., k3, k2, k1. Giải thuật để tổng hợp khoá cho mỗi vòng cũng tương tự. Có khác là các khoá được dịch phải và số vị trí bit để dịch được lấy theo chiều ngược lại.

Sự an toàn của DES: Đã có rất nhiều sự nghiên cứu về độ dài của khoá, số vòng lặp và thiết kế của hộp S (S-boxes). Hộp S có đặc điểm là khó hiểu, không có bất cứ sự rõ ràng nào cũng như lí do vì sao chúng phải như vậy. Mọi tính toán trong DES ngoại trừ các hộp S đều tuyến tính, tức việc tính XOR của hai đầu ra cũng giống như phép XOR hai đầu vào rồi tính toán đầu ra. Các hộp S chứa đựng thành phần phi tuyến của hệ là yếu tố quan trọng nhất đối với sự an toàn của hệ thống.

Tính bảo mật của một hệ mã hoá đối xứng là một hàm hai tham số là độ phức tạp của thuật toán và độ dài của khoá. Giả sử rằng tính bảo mật chỉ phụ thuộc vào độ phức tạp của thuật toán, có nghĩa rằng sẽ không có phương pháp nào để phá vỡ hệ thống mật mã hơn là cố gắng thử mọi khoá có thể, phương pháp đó được gọi là Brute-Force Attack hay còn gọi là tấn công vét cạn xoay vòng khóa. Nếu khoá có độ dài 8 bit, suy ra sẽ có 28=256 khoá, vì vậy, sẽ mất nhiều nhất 256 lần thử để tìm ra khoá đúng. Nếu khoá có độ dài 56 bit, thì sẽ có 256 khoá có thể sử dụng.

Giả sử một Supper-computer có thể thử một triệu khoá trong một giây, thì nó sẽ cần 2000 năm để tìm ra khoá đúng, còn nếu khoá có độ dài 64 bit, thì với chiếc máy trên sẽ cần 600.000 năm để tìm ra khoá đúng trong số 264 khoá. Nếu khoá có độ dài 128 bit, thì sẽ mất 1025 năm để tìm ra khoá đúng. Vũ trụ chỉ mới tồn tại 1010 năm, vì vậy 1025 thì một thời gian quá dài. Với một khoá 2048 bit, một máy tính song song thực hiện hàng tỉ tỉ phép thử trong một giây sẽ tiêu tốn một khoảng thời gian là 10597 năm để tìm ra khoá.

Hình 4 5 Sơ đồ chung của DES Hệ mã hóa DES hiện thời có thể đạt được 2


Hình 4.5. Sơ đồ chung của DES


Hệ mã hóa DES hiện thời có thể đạt được tốc độ mã hoá cực nhanh và có nhiều ứng dụng trong thực tiễn, công ty Digital Equipment đã thông báo tại hội nghị CRUPTO’92 rằng họ sẽ chế tạo một xung có 50 nghìn xung có thể mã hoá với tốc độ 1 Gbit/s bằng cách xung nhịp có tốc độ 250MHz. Giá của xung này vào khoảng 300$.

Tới năm 1991 đã có 45 ứng dụng phần cứng và chương trình cơ sở của DES được Uỷ ban tiêu Chuẩn quốc gia Mỹ (NBS) chấp thuận. Một ứng

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 18/05/2023