Tài liệu Kỹ thuật lập trình - Chương 6: Tổng quan về mã hóa
lượt xem 10
download
Để đ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ã.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Tài liệu Kỹ thuật lập trình - 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 đó. 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 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. 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
- Hệ mật mã Mã không Mã dùng một Mã dùng hai dùng khóa khóa khóa Hàm hash Mã đối xứng Mã bất đối Chữ ký điện xứng tử Mã dòng Mã khối 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
- 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.
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Tài liệu kỹ thuật lập trình
5 p | 471 | 187
-
Kỹ thuật lập trình - Ngôn ngữ lập trình C - Concept
15 p | 201 | 58
-
Đề thi học kỳ I môn Kỹ thuật lập trình cơ bản
14 p | 498 | 47
-
Kỹ thuật lập trình - Ngôn ngữ lập trình C - Quản lý tập tin (tt)
11 p | 180 | 31
-
Kỹ thuật lập trình - Ngôn ngữ lập trình C - Các kiểu dữ liệu nâng cao và sắp xếp (tt)
8 p | 174 | 30
-
Kỹ thuật lập trình - Ngôn ngữ lập trình C - Hàm
20 p | 137 | 25
-
Kỹ thuật lập trình - Ngôn ngữ lập trình C - Hàm (tt)
5 p | 144 | 23
-
Kỹ thuật lập trình - Ngôn ngữ lập trình C - Biến, Toán tử và kiểu dữ liệu
6 p | 155 | 19
-
Đề thi học kỳ 1 môn Kỹ thuật lập trình cơ bản
14 p | 199 | 18
-
Tài liệu hướng dẫn thực hành: Kỹ thuật lập trình C/C++
6 p | 293 | 18
-
Lập trình C-Bài 2: Biến và kiểu dữ liệu
15 p | 107 | 17
-
Lập trình C-Bài 3: Biến, Toán tử và Kiểu dữ liệu
6 p | 101 | 15
-
Hướng dẫn thực hành tuần 2 - Nhập môn lập trình
7 p | 147 | 14
-
kỹ thuật lập trình Điều khiển DataList
11 p | 91 | 12
-
Tài liệu ôn thi tốt nghiệp môn cơ sở: Phần Kỹ thuật lập trình C - ThS. Trần Ngọc Bảo
4 p | 166 | 10
-
kỹ thuật lập trình Session Object
9 p | 84 | 9
-
kỹ thuật lập trinh Http Cookie Object
9 p | 77 | 8
-
Đề thi môn Kỹ thuật lập trình
18 p | 147 | 8
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn