8
Chương 6 TỔNG QUAN VỀ MÃ HÓA Trong các chương 1, 2, 3, 4, 5 chúng ta đã đi tìm hiểu về toán trong mật mã, chúng ta đã có được nền tản của mật mã. Để đi tìm hiểu về mật mã, trước tiên chúng ta đi tìm hiểu thế nào là mật mã, những yêu cầu của hệ mật, nguyên tắc và phân loại các hệ mật.Hay nói cách khác chương này cho chúng ta cách nhìn nhận ban sơ khai về mật mã. 1. Khái niệm cơ bản về mật mã Kỹ thuật mật mã (cryptology) là môn khoa học nghiên cứu về hai lĩnh vực: mật mã (crytography) và thám mã(cryptoanalysis). Mật mã (cryptography) là ngành khoa học nghiên cứu các phương pháp biến đổi thông tin nhằm mục đích bảo vệ thông tin khỏi sự truy cập của những người không có thẩm quyền. Thám mã (cryptoanalysis) là lĩnh vực khoa học chuyên nghiên cứu, tìm kiếm yếu điểm của các hệ mật để từ đó đưa ra phương pháp tấn công các hệ mật đó. Mật mã và mã thám là hai lĩnh vực đối lập nhau nhưng gán bó mật thiết với nhau. Không thể xây dựng một hệ mật tốt nếu không hiểu biết sâu về mã thám. Mã thám chỉ ra yếu điểm của hệ mật. Yếu điểm này có thể được sử dụng để tấn công hệ mật này nhưng cũng có thể được sử dụng để cái tiến hệ mật cho tốt hơn. Nếu người xây dựng hệ mật không có hiểu biết rộng về mã thám, không kiểm tra độ an toàn của hệ mật trước các phương pháp tấn công thì hệ mật của anh ta có thể tỏ ra kém an toàn

Chương 6 - Tổng Quan Về Mã Hóa

Embed Size (px)

DESCRIPTION

Chương 6 - Tổng Quan Về Mã Hóa

Citation preview

Page 1: Chương 6 - Tổng Quan Về Mã Hóa

Chương 6

TỔNG QUAN VỀ MÃ HÓA

Trong các chương 1, 2, 3, 4, 5 chúng ta đã đi tìm hiểu về toán trong mật mã, chúng ta

đã có được nền tản của mật mã. Để đi tìm hiểu về mật mã, trước tiên chúng ta đi tìm hiểu

thế nào là mật mã, những yêu cầu của hệ mật, nguyên tắc và phân loại các hệ mật.Hay

nói cách khác chương này cho chúng ta cách nhìn nhận ban sơ khai về mật mã.

1. Khái niệm cơ bản về mật mã

Kỹ thuật mật mã (cryptology) là môn khoa học nghiên cứu về hai lĩnh vực: mật mã

(crytography) và thám mã(cryptoanalysis).

Mật mã (cryptography) là ngành khoa học nghiên cứu các phương pháp biến đổi

thông tin nhằm mục đích bảo vệ thông tin khỏi sự truy cập của những người không có

thẩm quyền.

Thám mã (cryptoanalysis) là lĩnh vực khoa học chuyên nghiên cứu, tìm kiếm yếu

điểm của các hệ mật để từ đó đưa ra phương pháp tấn công các hệ mật đó. Mật mã và mã

thám là hai lĩnh vực đối lập nhau nhưng gán bó mật thiết với nhau. Không thể xây dựng

một hệ mật tốt nếu không hiểu biết sâu về mã thám. Mã thám chỉ ra yếu điểm của hệ mật.

Yếu điểm này có thể được sử dụng để tấn công hệ mật này nhưng cũng có thể được sử

dụng để cái tiến hệ mật cho tốt hơn. Nếu người xây dựng hệ mật không có hiểu biết rộng

về mã thám, không kiểm tra độ an toàn của hệ mật trước các phương pháp tấn công thì hệ

mật của anh ta có thể tỏ ra kém an toàn trước một phương pháp tấn công nào đó mà anh

ta chưa biết. Tuy nhiên, không ai có thể khẳng định là có những phương pháp thám mã

nào đã được biết đến. Đặc nhiệm của các nước luôn giữ bí mật những kết quả thu được

trong lĩnh vực mã thám: kể cả phương pháp thám mã và kết qủa của việc thám mã.

Máy mã hóa- Mã hóa hướng đến việc thực hiện dưới dạng thiết bị điện tử.

Sơ đồ mật mã là tập hợp các thuật toán mã hóa, giải mã, kiểm tra sự toàn vẹn và các

chức năng khác của một hệ mật.

Giao thức mật mã là tập hợp các quy tắc, thủ tục quy định cách thức sử dụng sơ đồ

mật mã trong một hệ mậ. Có thể thấy rằng "giao thức mật mã" và "sơ đồ mật mã" không

đi liền với nhau. Có thể có nhiều giao thức khác mật mã khác nhau quy định các cách

thức sử dụng khác nhau của cùng một sơ đồ mật mã nào đó.

Page 2: Chương 6 - Tổng Quan Về Mã Hóa

Khóa (key) là đại lượng bí mật, biến thiên trong một hệ mật. Khóa nhất định phải là bí

mật. Khóa nhất định phải là đại lượng biến thiên.

Hệ mật (cryptosystem, hệ thống mật mã)- là một hệ thống đảm bảo an toàn của mạng

bảo vệ với việc sử dụng các công cụ mã hóa. Nó bao gồm tập hợp sơ đồ mật mã, giao

thức mật mã và các quy tắc về chế tạo, phân phối khóa.

Mã hóa là quá trình sử dụng những quy tắc được quy định trong một hệ mã để biến

đổi thông tin ban đầu (thông tin cần bảo vệ; bản rõ) thành bản mã.

Giải mã là quá trình ngược lại với mã hóa, tức là sử dụng những quy tắc được quy

định trong hệ mã để biển đổi nội dung bản mã về thông tin ban đầu.

Thám mã cũng là quá trình nhận được bản rõ từ bản mã mà không có sự tham gia của

khóa hoặc là quá trình tính toán khóa mật theo bản mã và bản rõ.

Tốc độ mã được đặc trưng bởi số lượng phép tính (N) cần thực hiện để mã hóa (giải

mã) một đơn vị thông tin. Cần hiểu rằng tốc độ mã chỉ phụ thuộc vào bản thân hệ mã chứ

không phụ thuộc vào đặc tính của thiết bị triển triển khai nó (tốc độ máy tính, máy mã...).

Độ an toàn của hệ mã đặc trưng cho khả năng của hệ mã chống lại sự thám mã; nó

được đo bằng số lượng phép tính đơn giản cần thực hiện để thám hệ mã đó trong điều

kiện sử dụng thuật toán (phương pháp) thám mã tốt nhất. Cần phải nói thêm rằng có thể

xây dựng những hệ mật với độ an tòan bằng tuyệt đối (tức là không thể thám được về mặt

lý thuyết). Tuy nhiên các hệ mật này không thuận tiện cho việc sử dụng, đòi hỏi chi phí

cao. Vì thế, trên thực tế, người ta sử dụng những hệ mật có giới hạn đối với độ an tòan.

Do đó bất kỳ hệ mật nào cũng có thể bị thám trong thời gian nào đó.

Khả năng chống nhiễu của mã là khả năng chống lại sự phát tán lỗi trong bản tin sau

khi giải mã, nếu trước đó xảy ra lỗi với bản mã trong quá trình bản mã được truyền từ

người gửi đến người nhận. Có 3 loại lỗi là: thay thế, thêm vào và xóa bit.

Hiệu ứng thác lũ – tính chất phân bố ảnh hưởng của một bit đầu vào trên tập bit đầu

ra. Khi thiết kế một hệ mật chúng ta rất chú trọng đến tính chất này.

Hệ mật an toàn tuyệt đối (trên lý thuyết là không thể thám được) là hệ mật mà trong

đó việc chặn bắt (thu thập) một số lượng bất kỳ các bản mã không khiến cho việc thám

mã trở nên dễ dàng hơn. Ta sẽ giải thích định nghĩa này trên ngôn ngữ toán xác suất. Giả

sử A và B đối địch nhau và B muốn thám hệ mật của A. Đối với B, tại một thời điểm nào

đó, xác suất A gửi đi bản tin Xi là P(Xi). Nếu B chặn bắt được một bản mã Yj của A

(không biết có phải là bản mã từ bản tin Xi hay không) thì đối với B, xác suất A gửi bản

Page 3: Chương 6 - Tổng Quan Về Mã Hóa

tin Xi là P(Xi/Yj) - xác suất có điều kiện của bản tin Xi khi biết bản mã Yj. Hệ mật được

coi là an tòan tuyệt đối nếu P(Xi/Yj)=P(Xi).

Hệ mật an toàn thực sự là những hệ mật có thể bị thám. Tuy nhiên, để thực hiện việc

đó cần phải tiêu tốn một lượng thời gian vô cùng lớn (hàng chục hoặc hàng nghìn năm

chẳng hạn) hoặc một lượng bộ nhớ vô cùng lớn.

Hệ mật an toàn tạm thời-Đó là những hệ mật có thể thám được khá dễ dàng - có thể chỉ

trong vòng vài giờ. Tuy nhiên, trong thời gian đó, thông tin được mã hóa đã trở nên lỗi

thời, không còn giá trị nữa.

2. Các yêu cầu của một hệ mật

Quá trình mật mã che dấu dữ liệu có thể thực hiện bằng chương trình trên máy tính

hoặc máy mật mã. Thực hiện trên máy thì tốn kém chi phí cho việc xây dựng máy, thế

nhưng nó có ưu điểm là năng suất cao, đơn giản, bảo mật…. Việc thực hiện trên chương

trình thì thực tế hơn, và cho phép mềm dẻo trong sử dụng.

Không phụ thuộc vào cách thực hiện đối với một hệ mật hiện đại bảo mật thông tin

cần đảm bảo các yêu cầu sau:

1. Độ an toàn của hệ mật chống lại thám mã cần phải thỏa mãn điều kiện: Sự phá

mã chỉ thực hiện bằng cách giải bài toán véc cạn khóa, hoặc sự phá mà đòi hỏi

những tham số vượt quá giới hạn cho phép của máy tính hiện đại hoặc cần tạo ra

thiết bị tính toán đắc tiền.

2. Độ an toàn của hệ mật cần được đảm bảo không phải là bí mật về thuật toán

mà là bí mật về khóa.

3. Bản mã chỉ đọc được khi có khóa mật.

4. Hệ mật phải vững chắc ngay cả khi tội phạm biết được số lượng đủ lớn bản rõ

và bản mã tương ứng.

5. Khi thay đổi lượng nhỏ thông tin khóa hoặc bản rõ thì cần phải dẫn đến sự thay

đổi bản mã.

6. Cấu trúc thành phần thuật toán mật mã cần phải không đổi

7. Kích thước bản mã không được vượt so với kích thước bản rõ; Các bit thêm

vào bản tin trong quá trình mã hóa cần phải hoàn toàn và chắc chắn dấu kín trong

bản mã.

8. Lỗi xuất hiện khi mã hóa không được dẫn đến thay đổi và đánh mất thông tin.

Page 4: Chương 6 - Tổng Quan Về Mã Hóa

9. Sự phụ thuộc giữa các khóa con được dùng tuần tự trong quá trình mã hóa

không được thiết lập dễ dàng và đơn giản.

10. Đảm bảo tính tuyến tính của không gian khóa.

11. Thời gian mã không được lớn.

12. Chi phí khi mã cần phải phù hợp với giá trị của thông tin cần bảo vệ.

3. Quy tắc Kerckhoffs

Trong tác phẩm "Mật mã quân sự" (xuất bản năm 1833), Kerckhoffs đề ra các yêu cầu

bắt buộc cho một hệ mật. Sau đây là 6 yêu cầu chính trong số đó:

1. Nếu hệ mật không phải "tuyệt đối an tòan" thì phải là "thực sự an toàn.

2. Không cần thiết phải giữ bí mật bản thân hệ mật. Việc đối phương có được hệ

mật không ảnh hưởng đến hoạt động của hệ thống.

3. Khóa có thể dễ dàng truyền đi, ghi nhớ mà không cần phải ghi chép. Các đối

tác có thể thay đổi khóa theo nguyện vọng của họ.

4. Có thể áp dụng hệ mật cho điện tín.

5. Hệ mật phải có tính lưu động. Để đảm bảo hoạt động của nó chỉ cần 1 người là

đủ.

6. Hệ mật phải đơn giản về mặt vận hành: việc vận hành hề mật không đòi hỏi sự

tuân thủ số lượng lớn các quy tắc, không gây ra căng thẳng cho đầu óc.

Trong 6 yêu cầu trên đây, yêu cầu thứ 2 được biết đến dưới cái tên "quy tắc

Kerckhoffs" (Kerckhoffs' principle). Nói cách khác thì quy tắc Kerckhoffs là "Độ an toàn

của một hệ mật chỉ được phép phụ thuộc vào sự bí mật của khóa".

4. Phân loại hệ mật

Page 5: Chương 6 - Tổng Quan Về Mã Hóa

Sơ đồ phân loại hệ mật

Hàm hash – là hàm mật mã(thuật toán), mà đối số của nó là một bản tin có độ dài bất

kỳ biểu diễn dưới dạng dãy bit, giá trị của hàm hash có kích thước không đổi. Vì có đặc

tính như thế, nên hash là một lớp mã hõa đặc biệt kiểm tra tính toàn vẹn của thông tin.

Thường thì hàm hash không có sự tham gia của khóa mật và nó phải đảm bảo được độ

phức tạp phụ thuộc của giá trị đầu ra của hàm vào từng bit của bản tin.

Mật mã đối xứng- đây là thuật toán mật mã mà quá trình mã hóa và giải mã chỉ dùng

một khóa. Thực tế thì hai khóa(mã hóa, giải mã) có thể khác nhau, trong trường hợp này

thì một khóa nhận được từ khóa kia bằng phép tính toán đơn giản.

Mật mã đối xứng thì được chia ra thành hai loại: mã dòng và mã khối.

Mã khối- là mã, thực hiện biến đổi khối dữ liệu với một kích thước không đổi.

Mã dòng- là mã, thực hiện biến đổi tuần tự từng bit hoặc ký tự riêng rẻ.

Mật mã bất đối xứng- đây là phương pháp mật mã dùng hai khóa: Khóa công khai

dùng cho quá trình mã, khóa mật dùng cho quá trình giải mã. Khóa công khai và khóa

mật có quan hệ với nhau bằng biểu thức phức tạp, khóa công khai tính dễ dàng từ khóa

mật, còn tính khóa mật từ khóa công khai là bài toán khó và hầu như không giải được.

Chữ ký điện tử- phương pháp ký một bức điện dưới dạng điện tử, để đảm bảo tính

nguyên vẹn và xác thực quyền tác giả. Như trong mật mã bất đối xứng, chữ ký điện tử

cũng dùng thuật toán mật mã với hai khóa, khóa công khai tính dễ dàng từ khóa mật, còn

khóa mật thì rất khó và hầu như là không thể tính được từ khóa công khai. Nhưng khác

Hệ mật mã

Mã không dùng khóa

Mã dùng một khóa

Mã dùng hai khóa

Hàm hash Mã đối xứng Mã bất đối xứng

Chữ ký điện tử

Mã dòng Mã khối

Page 6: Chương 6 - Tổng Quan Về Mã Hóa

với mật mã bất đối xứng là quá trình ký bức điện dùng khóa mật, còn quá trình kiểm tra

bứu điện dùng khóa công khai. Và khóa mật ngoài chủ của bức điện thì không ai biết

được, nhờ tính chất này mà chống từ chối bức điện.