CÁC PHƯƠNG PHÁP MÃ HÓA.DOC

9 3.7K 82
CÁC PHƯƠNG PHÁP MÃ HÓA.DOC

Đang tải... (xem toàn văn)

Thông tin tài liệu

CÁC PHƯƠNG PHÁP MÃ HÓA

Trang 1

Chơng II : Các phơng pháp m hoáã I phơng pháp m hoá cổ điển :ã

a.Phơng pháp đổi chỗ :

Phơng pháp này thay đổi các vịt trí các ký tự trong xâu văn bản gốc để tạo ra văn bản mật mã Có thể sử dụng các kỹ thuật sau:

- Đảo ngợc toàn bộ văn bản gốc để tạo thành văn bản mật mã, phơng pháp này độ an toàn không cao.

- Mã hóa theo hình học : Theo cách này văn bản gốc đợ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.

- Đổi chỗ các cột : Trớc hết đổi chỗ ký tự trong văn bản gốc thành hình chữ nhật theo các cột, sau đó các cột đợc sắp xếp lại và các chữ lấy ra ở chiều ngang.

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

b Phơng pháp thay thế

Để có đợc văn bản mã hoá ngời ta thay thế mỗi ký tự trong văn bản gốc bằng một ký tự khác nào đó (có thể là chữ cái, một số hoặc một ký hiệu nào đó) Có thể dùng các kỹ thuật sau đây :

- Thay thế đơn giản (Simple Substitution) :

- Mỗi ký tự trong văn bản gốc đợc thay thế bằng một ký tự tơng ứng trong văn bản mật mã:

Ví dụ : Văn bản gốc : a b c d e văn bản mật mã : d e f g h

Mã hoá dữ liệu bằng cách lựa chọn trớc một từ khoá (Keyword) và từng ký tự của văn bản nguồn đều đợc ghép thêm từ khoá để tạo thành văn bản mật mã Khi giảimã bắt buộc phải nhập đúng khoá để giải mã đúng là văn bản gốc Phơng pháp này phụ thuộc rấtnhiều vào bảng mã ASCII.

Trang 2

- Thay thế đồng âm (Homophonic Substitution) :

- Mỗi ký tự trong văn bản gốc đợc mã hoá với một số ký tự của văn bản mật mã.

- Thay thế đa mẫu tự (Polyaphabetic Substitution) :

Nhiều chữ cái của văn bản mật mã đợc dùng để chuyển đổi từ văn bản gốc sang văn bản mật mã trong trờng hợp đơn giản nhng có thể thay đổi trong phạm vi một thông điệp.

- Thay thế đa sơ đồ (Polygram Substitution) :

- Đây là một dạng mật mã tổng quát nhất, cho phép thay thế tuỳ ý các nhóm ký tự của văn bản gốc.

c Phơng pháp mã khối :

Phơng pháp mã khối xuất hiện nhằm chống lại việc sử dụng tần suất của chữ cái trong văn bản đã mã hoá để dò tìm ra khoá giải mã Khác với các hệ mã hoá đã trình bày, ở đay ta không phải mã hoá từng ký tự trong văn bản gốc mà mã hoá từng khối trong văn bản gốc.

d Phơng pháp mã XOR :

Các phơng pháp mã hoá đã trình bày ở trên đơn giản dễ cài đặt, và đã có một cơ sở toán học để chứng minh tính đúng đắn và độ an toàn của nó, tuy nhiên các thuật toán này chỉ áp dụng đợc với các file văn bản định dạng trong môi trờng DOS (thờng là các file ASCII) Đối với các file văn bản định dạng trên môi trờng Windows (thông thờng là các file nhị phân) thì các thuật toán có thể mã hoá đợc nhng việc giải mã không thành công, vì các thuật toán này thực hiện trên các số nguyên, đây là một hạn chế Để khắc phục hạn chế này thì ngời ta đã đề xuất ra một cạc mã hoá khác dựa trên tính chất của phép toán lôgic XOR.

Trang 3

1 0 1

Nhìn vào bảng trên ta thấy A XOR B = C, và ngợc lại nếu lấy C XOR B = A, lợi dụng tính chất này ta xem ký tự trong văn bản gốc là A, ký tự trong xâu khoá là B và ký tự trong văn bản mã hoá là C Rõ ràng nói một cách khác là ta dễ dàng XOR nội dung trong file A với khoá B để đợc file mã hoá C, khi giải mã C thì ta thực hiện XOR nội dung của file C cùng với khoá B để đợc file A (file gốc) Điều này thoả mãn các yêu cấu của mã hoá dữ liệu : dùng một khoá để mã hoá và giải mã đợc Đặc biệt phép XOR thực hiện trên các bít dữ liệu nên thuật toán này có thể áp dụng cho các file nhị phân và file văn bản.

Thực chất đây là bớc cỉa tiến của phép thay thế, thay vì thay thế ký tự trong văn bản gốc theo một cách nào đó ở đay ta XOR từng ký tự trong văn bản gốc vơí từng ký tự tơng ứng trong xâu ký tự ta dùng làm khoá để dợc xâu văn bản mã hoá, vì số ký tự trong xâu khoá nhỏ hơn nhiều so với ký tự của văn bản gốc vì vậy ta sẽ cắt văn bản gốc ra làm nhiều khối có kích thớc vừa đúng bằng khoá và ta mã hoá theo từng khối đó để cho ta một file mã hoá Quá trình giải mã cũng đợc thực hiện tơng tự.

e Phơng pháp hệ mật DES (Data Encryption Standard) :

Phơng pháp chuẩn DES đợc văn phòng tiêu chuẩn của Mỹ (U.S National Bereau of Standards) công bố năm 1971 để sử dụng trong các cơ quan chính phủ liên bang Giải thuật mã hoá đợc phát hiện tại công ty IBM dựa trên mật mã LUCIFER của Feistel.

Giải thuật DES mã hoá theo từng khối dữ liệu 64bít Do đó một tin đầy đủ trớc tiên đcợ phân thành từng khối 64 bít, sau đó dùng bộ khoá 56 bít để mã hoá thành các khối văn bản mã 64 bít và truyền đi trên mạng Ngời nhận tin dùng cùng một khoá để giải mã từng khối 64 bít văn bản mật mã để nhận lại bản tin gốc.

Thuật toán của phơng pháp mã hoá DES:

Trang 4

- Thực hiệnhoán vị kế tiếp 16 lần trên 56 bít khoá để đợc 16 khoá con, mỗi khoá 48 bít Các khoá con đợc tạo nh sau :

- Thực hiện phép toán hoán vị cố định trên 56 bít khoá - Kết quả đợc phân thành hai nửa 28 bít.

- Hai nửa này đợc quay trái 16 lần (bằng số khoá con ) độc lập với nhau và hợp thành 56 bít để chuẩn bị cho lần tạo khoá con tiếp theo - Hai nửa này đợc quay trái 16 lần (bằng số khoá con ) độc lập với nhau và hợp thành 56 bít để chuẩn bị cho lần tạo khoá con tiếp theo - Chọn ra 48 bít để đa vào mã hoá với 64 bít dữ liệu.

+ Quá trình mã hoá đợc chia thành các bớc:

- Hoán vị đơn giản 64 bít văn bản gốc, dùng một phép hoán vị nào đó - 16 bít kết qủa ở trên sẽ đợc thực hiện lặp 16 lần, ở mỗi lần thuật toán

thực hiện phép XOR 64 bít kết quả mỗi lần lặp trớc 48 bít khoá để thực hiện đợc 64 bít kết quả, để chuẩn bị cho lần lặp kế tiếp.

- 64 bít kết quả của lần lặp cuối cùng (lần thứ 16 ) sẽ đợc hoán đổi nh sau : 32 bít cao sẽ đợc thay bằng 32 bít thấp.

- Thực hiện hoán vị 64 bít vừa hoán đổi ở trên nh ở bớc một - Quá trình giải mã đợc thực hiện hoàn toàn ngợc lại :

Thuật toán DES thực hiện trên các bít do đó cả khoá và văn bản gốc trớc hết phải đợc chuyển đổi thành các số nhị phân.

Thuật toán DES mắc phải nhợc điểm chung của hệ mật mã cổ điển là không an toàn dễ bị lộ khoá, nhng thuật toán dùng khoá có độ dài 48 bít nên độ phức tạp cao hơn Đặc biệt thuật toán thực hiện trên số nhị phân nên tốc độ mã hoá của nó khá cao và nó có thể áp dụng đợc cho cả file nhị phân và file văn bản Hiện nay phơng pháp mã hoá theo thuật toán DES đợc sử dụng nhiều nhất.

II Giới thiệu về mật m khoá công khaiã

Trang 5

1 Giới thiệu về các hệ mật sử dụng khoá mật.

Trong mô hình mật mã cổ điển mà cho tới nay vẫn còn đang đợc nghiên cứu Alice ( ngời gửi) và Bob (ngời nhận) bằng cách chọn một khoá bí mật K Sau đó Alice dùng khoá K để mã hoá theo luật eK và Bod dùng khoá K đó để giải mã theo luật giải dK Trong hệ mật này, dK hoặc giống nh eK hoặc dễ dàng nhận đợc từ nó vì quá trình giải mã hoàn toàn tơng tự nh quá trình mã, nhng thủ tục khoá thì ngợc lại Nhợc điểm lớn của hệ mật này là nếu ta để lộ eK thì làm cho hệ thống mất an toàn, chính vì vậy chúng ta phải tạo cho các hệ mật này một kênh an toàn mà kinh phí để tạo một kênh an toàn không phải là rẻ.

2 Giới thiệu về hệ mật mã khoá công khai

ý tởng xây dựng một hệ mật khoá công khai là tìm một hệ mật không có khả năng tính toán để xác định dK nếu biết đợc eK Nếu thực hiện đợc nh vậy thì quy tắc mã eK có thể đợc công khai bằng cách công bố nó trong danh bạ, và khi Alice (ngời gửi) hoặc bất cứ một ai đó muốn gửi một bản tin cho Bob (ngời nhận) thì ngời đó không phải thông tin trớc với Bob (ngời nhận) về khoá mật, mà ngời gửi sẽ mã hoá bản tin bằng cách dùng luật mã công khai eK Khi bản tin này đợc chuyển cho Bob (ngời nhận) thì chỉ có duy nhất Bob mới có thể giải đợc bản tin này bằng cách sử dụng luật giải mã bí mật dK.

ý tởng về hệ mật khoá công khai đã đợc Diffie và Heliman đa ra vào năm 1976 Còn việc thực hiện hệ mật khoá công khai thì lại đợc Rivest Shamin và Adieman đa ra đầu tiên vào năm 1977 Họ đã tạo nên hệ mật RSA nổi tiếng Kể từ đó đã có một số hệ mật đợc công bố, độ mật của từng hệ dựa trên các bài toán tính toán khác nhau Trong đó quan trọng nhất là các hệ mật sau:

• Hệ mật RSA:

Trang 6

Độ bảo mật của hệ RSA dựa trên độ khó của việc phân tích ra thừa số nguyên tố các số nguyên tố lớn.

• Hệ mật xếp balô Merkle – Heliman.:

Hệ này và các hệ có liên quan dựa trên tính khó giải của bài toán tổng các tập con.

• Hệ mật McEliece:

Hệ mật nanỳ dựa trên lý thuyết mã đại số và vẫn đợc coi là an toàn Hệ mật McEliece dựa trên bài toán giải mã cho các mã tuyến tính.

• Hệ mật ElGamal:

Hệ ElGamal dựa trên tính khó giải của bài toán Logarit rời rạc trên các trờng hữu hạn.

• Hệ mật Chor – Rivest:

Hệ mật Chor – Rivest cũng đợc xem nh một loại hệ mật xếp balô Tuy nhiên hệ mật này vẫn còn đợc coi là hệ mật an toàn.

• Hệ mật trên các đờng cong Elliptic:

Các hệ này là biến tớng của hệ mật khác, chúng làm việc trên các đờng cong Elliptic chứ không phải trên các trờng hữu hạn Hệ mật này đảm bảo độ mật vơíi khoá số nhỏ hơn các hệ mật khoá công khai khác.

Một chú ý quan trọng là một hệ mật khoá công khai không bao giờ có thể bảo đảm đợc độ mật tuyệt đối (an toàn vô điền kiện) Sở dĩ vậy vì đối phơng nghiên cứu một bản mã C có thể mã lần lợt các bản rõ có thể bằng luật mã công khai eK cho tới khi anh ta tìm đợc một bản rõ duy nhất P bảo đảm C = eK(P) Bản rõ P này chính là kết quả giải mã của C Bởi vậy ta chỉ nghiên cứu độ mật về mặt tính toán của hệ này.

Trang 7

Một chú ý quan trọng và có ý ích khi nghiên cứu nữa là khái niệm về hàm cửa sập một chiều Ta định nghĩa khái niệm này một cách không hình thức.

Hàm mã công khai ek của Bob phải là một hàm dễ tính toán Song việc tính hàm ngợc (tức là hàm giải mã) phải rất khó khăn (đối với bât kỳ ai không phải là Bob) Đặc tính dễ tính toán nhng khó tính ngợc thờng đợc gọi là đặc tính một chiều Bởi vậy điều cần thiết là ek phải là một hàm một chiều.

Các hàm một chiều đóng một vai trò trọng yếu trong mật mã học: Chúng rất quan trọng trong việc xây dựng các hệ mật khoá công khai và trong nhiều lĩnh vực khác Đáng tiếc là, mặc dù có rất nhiều hàm đợc coi là hàm một chiều nhng cho tới nay vẫn không tồn tại đợc một hàm nào có thể chứng minh đợc là một hàm một chiều.

Sau đây là một ví dụ về một hàm đợc coi là hàm một chiều Giả sử n là tích của hai số nguyên p và q, giả sử b là một số nguyên dơng Khi đó ta xác định ánh xạ f:Zn→ Zn là

f(x)=xb mod n.

(với b và n đợc chọn thích hợp thì đây chính là hàm mã RSA phần sau em sẽ trình bày thêm về nó).

Để xây dựng một hệ mật khoá công khai thì việc tìm một hàm một chiều vẫn cha đủ Ta không muốn ek là một hàm một chiều đối với Bob vì anh ta phải có khả năng giải mã các bản tin nhận đợc có hiệu quả Điều cần thiết là Bob phải có một cửa sập chứa thông tin bí mật cho phép dễ dàng tìm ngợc của ek Nh vậy Bob có thể giải mã một cách hữu hiệu vì anh ta có một hiểu biết tuyệt mật nào đó về K Bởi vậy một hàm đợc gọi là cửa sập một chiều nếu nó là hàm một chiều và nó sẽ trở nên dễ tính ngợc nếu biết một cửa sập nhất định.

Trang 8

Ta sẽ xét cách tìm một cửa sập đối với hàm f nêu ở trên trong phần hệ mật RSA.

III Nhận xét về các thuật toán m hoá:ã

Để đánh giá một giải thuật mã hoá cần dựa vào các yếu tố nh độ phức tạp, thời gian mã hoá và vấn đề phân phối khoá trong một môi trờng nhiều ngời sử dụng.

Đối với các thuật toán mã hoá sử dụng khoá mật:

Nhìn chung các thuật toán này đơn giản dễ cài đặt nhng độ an toàn không cao dễ xảy ra hiện tợng lộ khoá, đối với các thuật toán thực hiện trên các số nguyên và ký tự dễ xảy ra trờng hợp kẻ địch phân tích các dấu hiệu đặt trng, hoặc tần suất xuất hiện của một số ký tự trong văn bản mã hoá, hoặc chúng sử dụng phơng pháp véc cạn để tìm ra quy luật mã , và từ đó tìm ra phơng thức giải mã Trong các thuật toán khoá mật ta thấy thuật toán XOR và thuật toán DES là có u điểm hơn cả Đối với thuật toán XOR ta có thể áp dụng cho cả các tệp nhị phân, thuật toán này có tốc độ mã khá nhanh và mức độ an toàn tơng đối cao Vì vậy kẻ định khó tìm ra quy luật mã hoá từ các file mã hoá Tuy nhiên thuật toán này cha đợc thuyết phục cho lắm vì cha có cơ sở toán học để chứng minh độ phức tạp của thuật toán Còn với thuật toán DES đây là thuật toán đợc sử dụng nhiều nhất hiện nay vì nó có độ an toàn cao, độ dài khoá khá lớn và tốc độ mã hoá thực hiện nhanh Tuy nhiên ở bớc tính toán mã hoá thuật toán dùng kết hợp cả phơng pháp thay thế và phơng pháp đổi chỗ nên tốc độ bị chậm trong bớc này, vì vậy ta thay thế bằng đổi chỗ kết hợp với XOR, bằng cách này độ an toàn của thuật toán không giảm nhng tốc độ mã hoá lại cao.

Đối với các thuật toán sử dụng khoá công khai:

Các thuật toán mã hoá công khai khắc phục đợc tình trạng lộ khoá và nó có thể làm việc cả với những tệp nhị phân song nó có một nhợc điểm là

Trang 9

chi phÝ cho x©y dùng hÖ mËt cao, m· ho¸ l¹i chËm chØ b»ng 1/1500 lÇn so víi DES

Ngày đăng: 24/08/2012, 15:42

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan