1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứng dụng hệ mật mã khóa công khai trong quản lý đề thi

75 625 1

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 75
Dung lượng 2,52 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tuy nhiên việc tính toán hàm nghịch đảo hàm để giải mã thông tin được mã hóa thành các dãy tin ban đầu - bản rõ không thể thực hiện được trong một khoảng thời gian hợp lý mà không cần th

Trang 1

Số húa bởi Trung tõm Học liệu – Đại học Thỏi Nguyờn http://www.lrc-tnu.edu.vn

Tr-ờng đại học công nghệ thông tin và truyền thông

Hoàng Văn Quyến

ỨNG DỤNG HỆ MẬT MÃ KHểA CễNG KHAI

TRONG QUẢN Lí ĐỀ THI

Luận văn thạc sỹ khoa học

Thỏi Nguyờn - 2012

Trang 2

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

MỤC LỤC

MỞ ĐẦU 1

Chương 1 TỔNG QUAN HỆ MẬT MÃ KHÓA CÔNG KHAI 4

1.1 Khái niệm về hệ mật mã 4

1.1.1 Khái niệm chung về mật mã và hệ mật mã 4

1.1.2 Phân loại các hệ mật mã 6

1.2 Lý thuyết độ phức tạp 10

1.2.1 Khái niệm độ phức tạp của thuật toán 10

1.2.2 Các bài toán khó tính toán và ứng dụng trong mật mã học 12

1.3 Hệ mật mã khóa công khai 13

1.3.1 Các quan điểm cơ bản của hệ mật mã khoá công khai 13

1.3.3 Hoạt động của hệ mật mã khóa công khai 14

1.3.4 Các yêu cầu của hệ mật mã khóa công khai 14

1.4 Độ an toàn của hệ mật mã 15

1.2 Chữ ký số 16

1.2.1 Giới thiệu về chữ ký số 16

1.2.2 Quá trình ký và xác thực chữ ký 17

Chương 2 MỘT SỐ THUẬT TOÁN PHÂN PHỐI VÀ QUẢN LÝ KHÓA CÔNG KHAI 22

2.1 Hệ mật mã khóa công khai RSA 22

2.1.1 Cơ sở toán học của hệ mật mã RSA 22

2.1.2 Mô tả hệ mật mã RSA 24

2.1.3 Quá trình tạo khoá, mã hoá và giải mã 24

2.1.4 Tính đúng của quá trình giải mã 26

2.1.5 Chi phí thực hiện trong quá trình mã hóa và giải mã 28

2.1.6 Đánh giá độ mật của hệ mật mã khóa công khai RSA 28

2.1.7 Phân tích cơ chế hoạt động của hệ mã RSA 29

2.1.8 Khả năng bị bẻ khóa của hệ mã công khai RSA 30

2.2 Hệ mật mã khóa công khai ElGamal 33

2.2.1 Bài toán logarit rời rạc 34

2.2.2.Mô tả hệ mật mã ElGamal 34

Trang 3

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

2.2.3 Tính đúng của quá trình giải mã 36

2.2.4 Đánh giá độ an toàn và khả năng ứng dụng của hệ mật mã khóa công khai ElGamal 36

2.3 Hệ mật mã khóa công khai Rabin 37

2.3.1 Sơ đồ hệ mã khóa Rabin 37

2.3.2 Tính an toàn của hệ mã hoá Rabin 40

2.3.3 Sử dụng dư thừa dữ liệu 41

2.3.4 Tính hiệu quả 42

2.4 Hệ mã hóa AES 43

2.4.1 Quá trình phát triển 43

2.4.2 Mô tả thuật toán 44

2.4.3 Mô tả mức cao của thuật toán 45

2.4.4 Tối ưu hóa 47

2.4.5 An toàn 47

2.4.5 Tấn công kênh bên (Side channel attacks) 48

Chương 3 XÂY DỰNG ỨNG DỤNG THỬ NGHIỆM 50

3.1 Bài toán quản lý đề thi trong hệ thống các trường phổ thông 50

3.2 Áp dụng hệ mật mã khóa công khai cho quản lý đề thi trong các trường phổ thông 52

3.2.1 Mô tả hệ thống 52

3.2.2 Chức năng và giao diện chính của chương trình 54

3.2.3 Các bước thực hiện chương trình 56

3.2.5 Mã chương trình 64

Đánh giá kết quả thử nghiệm chương 3 64

KẾT LUẬN 65

TÀI LIỆU THAM KHẢO 66

Trang 4

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

LỜI CẢM ƠN

Tôi xin gửi lời cảm ơn tới trường Đại học CNTT & TT, Viện CNTT Việt Nam, nơi các thầy cô đã tận tình truyền đạt các kiến thức quý báu cho tôi trong suốt quá trình học tập Xin cảm ơn Ban Giám Hiệu nhà trường và các cán bộ đã tạo điều kiện tốt nhất cho chúng tôi học tập và hoàn thành đề tài tốt nghiệp của mình Đặc biệt, tôi xin gửi tới TS Bùi Văn Thanh, thầy đã tận tình chỉ bảo tôi trong suốt quá trình thực hiện đề tài lời cảm ơn và biết ơn sâu sắc nhất Bên cạnh những kiến thức khoa học, thầy đã giúp tôi nhận ra những bài học về phong cách học tập, làm việc và những kinh nghiệm sống quý báu Tôi xin bày tỏ lòng biết ơn tới gia đình, bạn bè, đồng nghiệp và những người thân đã động viên khích lệ tinh thần và giúp đỡ để tôi hoàn thành luận văn này

Thái Nguyên, ngày 10 tháng 10 năm 2012

Hoàng Văn Quyến

Trang 5

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

4 NIST National Institute of Standards and Technology

Trang 6

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

LỜI CAM ĐOAN

Tôi xin cam đoan, toàn bộ nội dung liên quan tới đề tài được trình bày trong luận văn là bản thân tôi tự tìm hiểu và nghiên cứu, dưới sự hướng dẫn khoa học của

TS Bùi Văn Thanh

Các tài liệu, số liệu tham khảo được trích dẫn đầy đủ nguồn gốc Tôi xin chịu trách nhiệm trước pháp luật lời cam đoan của mình

Học viên thực hiện

Hoàng Văn Quyến

Trang 7

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

DANH MỤC CÁC BẢNG

Trang Bảng 1.1: Bảng chi phí thời gian phân tích số nguyên n ra thừa số nguyên tố….12 Bảng 2.1: Tóm tắt các bước tạo khoá, mã hoá, giải mã của Hệ RSA………… 20 Bảng 2.2: Bảng chi phí thời gian cần thiết để phân tích các số nguyên N…… 24

Trang 8

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

Trang

Hình 1.1: Sơ đồ hoạt động chung của hệ mật mã 5

Hình 1.2: Sơ đồ hoạt động của mã hóa khóa đối xứng 6

Hình 1.3 Sơ đồ hoạt động của mã hóa khóa không đối xứng 9

Hình 1.4 Lược đồ ký 18

Hình 1.5 Lược đồ xác thực 20

Hình 2.1: Đồ thị so sánh chi phí tấn công khóa bí mật và khóa công khai 33

Hình 2.4: Bước SubBytes, một trong 4 bước của 1 chu trình 43

Hình 2.5: Mô tả thuật toán AES 44

Hình 2.6: Bước SubBytes 44

Hình 2.7: Bước ShiftRows 45

Hình.3.9: Sơ đồ bài toán quản lý đề thi của các trường THPT 51

Hình 3.10: Sơ đồ quy trình tổng quan hệ thống 52

Hình 3.11: Sơ đồ quy trình tạo khóa RSA 53

Hình 3.12: Sơ đồ quy trình mã hóa văn bản bằng thuật toán AES 53

Hình 3.13: Sơ đồ quy trình mã hóa khóa theo thuật toán RSA 53

Hình 3.14: Sơ đồ quy trình giải mã khóa theo thuật toán RSA 54

Hình 3.15: Giao diện chính của chương trình 54

Hình 3.16: Giao diện tạo khóa RSA 54

Hình 3.17: Mã hóa văn bản bằng AES 55

Hình 3.18: Mã hóa khóa bằng RSA 56

Hình 3.19: Giải mã khóa bằng RSA 56

Hình 3.20: Tạo khóa RSA tùy chọn 56

Hình 3.21:Tạo khóa RSA tự động 57

Hình 3.22:Lưu khóa RSA tự động thành tệp 57

Hình 3.23: Mã hóa nội dung văn bản 57

Hình 3.24: Mở tệp văn bản cần mã hóa 58

Hình 3.25: Thông báo mã hóa thành công 58

Hình 3.26: Xem nội dung tệp được mã hóa 58

Hình 3.27: Mã hóa tệp *.* 58

Hình 3.28: Chọn File cần mã hóa 59

Trang 9

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Hình 3.29: Thông báo kết quả mã hóa 59

Hình 3.30: Xem kết quả file đã mã hóa 59

Hình 3.31: Giải mã nội dung văn bản 60

Hình 3.32: Chọn File cần giải mã 60

Hình 3.33: Thông báo kết quả giải mã 60

Hình 3.234: Xem nội dung tệp vừa giải mã 60

Hình 3.35: Giải mã File được mã hóa 61

Hình 3.36: Mở tệp cần giải mã 61

Hình 3.37: Thông báo kết quả giải mã 61

Hình 3.38: Xem nội dung tệp vừa giải mã 62

Hình 3.39: Mã hóa khóa RSA 62

Hình 3.40: Chọn File khóa cần mã hóa 62

Hình 3.41: Kết quả mã hóa khóa 63

Hình 3.42: Giải mã khóa RSA 63

Hình 3.43: Mở tệp giải mã khóa RSA 63

Hình 3.44: Kết quả giải mã khóa RSA 64

Trang 10

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

MỞ ĐẦU

Thế kỷ XXI là thế kỷ công nghệ thông tin Công nghệ thông tin đã và đang tác động trực tiếp đến mọi mặt hoạt động kinh tế xã hội trên thế giới Thông tin có vai trò hết sức quan trọng, vì vậy cần phải đảm bảo để thông tin không bị sai lệch, không bị thay đổi, hay bị lộ trong quá trình truyền từ nơi gửi đến nơi nhận Với sự phát triển rất nhanh của công nghệ mạng máy tính, đặc biệt là mạng Internet, khối lượng thông tin ngày càng được truyền nhận nhiều hơn

Vấn đề khó khăn đặt ra là làm sao giữ được tính bảo mật của thông tin, thông tin đến đúng được địa chỉ cần đến và không bị sửa đổi Hậu quả sẽ khó lường nếu như thư được gửi cho một người nhưng lại bị một người khác xem trộm và sửa đổi nội dung bức thư trái với chủ ý của người gửi Tệ hại hơn nữa là khi một hợp đồng được ký, gửi thông qua mạng và bị kẻ xấu sửa đổi những điều khoản trong đó Người gửi thư bị hiểu nhầm vì nội dung bức thư bị thay đổi, còn hợp đồng bị phá vỡ bởi những điều khoản đã không còn như ban đầu Điều này gây ra những mất mát

cả về mặt tài chính và quan hệ, tình cảm, v.v và còn có thể nêu ra rất nhiều tình huống tương tự Mã hoá thông tin là một trong các phương pháp có thể đảm bảo được tính bảo mật của thông tin Mã hoá, trong một mức độ nhất định, có thể giải quyết các vấn trên; một khi thông tin đã được mã hoá, kẻ xấu rất khó hoặc không thể giải mã để có được nội dung thông tin ban đầu

Khi mã hóa, thông tin được biến đổi (được mã hóa) bằng thuật toán mã hóa thông qua việc sử dụng “khóa” Chỉ có người dùng có cùng “khóa” mới phục hồi lại được thông tin ban đầu (giải mã) Do vậy “khóa” cần được bảo vệ nghiêm ngặt và được truyền từ người gửi đến người nhận trên một kênh an toàn riêng sao cho người thứ ba không thể biết được khóa Phương pháp này được gọi là mã hóa bằng khóa riêng hoặc mật mã khóa đối xứng Có một số chuẩn thuật toán khóa đối xứng, ví dụ như DES, AES, v.v… Người ta đã chứng minh được khả năng bảo mật cao của các thuật toán đối xứng chuẩn nói trên và chúng đã được kiểm định qua thời gian Tuy nhiên, vấn đề nảy sinh với các thuật toán đối xứng là việc trao đổi khóa Các bên tham gia giao tiếp đòi hỏi được chia sẻ một bí mật là “khóa”, “khóa” cần được trao đổi giữa họ qua một kênh thông tin an toàn An toàn của thuật toán khóa đối xứng phụ thuộc vào độ mật của khoá Khóa thường có độ dài hàng trăm bit, tùy thuộc vào thuật toán được sử dụng Vì thông tin có thể trung chuyển qua các điểm trung gian

Trang 11

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

nên không thể trao đổi khóa một cách trực tuyến và an toàn Trong một mạng rộng kết nối hàng trăm hệ thống, việc trao đổi khóa trở thành quá khó khăn và thậm chí không thực tế

Cho đến cuối những năm 1970, tất cả các quá trình truyền thông tin bảo mật đều sử dụng hệ mật mã đối xứng Điều này có nghĩa rằng một ai đó có đủ thông tin (khóa) để mã hóa thông tin thì cũng có thông tin đủ để giải mã Năm 1976 Diffe và Hellman [5], [6] đã nêu định hướng phát triển mới cho các hệ thống mật mã bằng việc phát minh hệ mật mã khóa công khai Ý tưởng chính là sử dụng hàm một chiều (one-way function) để mã hóa Các hàm sử dụng để mã hóa thuộc một lớp các hàm một chiều đặc biệt, chúng là một chiều nếu một số thông tin nhất định (khóa để giải mã) được giữ bí mật Nói một cách hình thức, hàm mã hóa khóa công khai là một hàm ánh xạ các dãy tin (bản rõ) thành các dãy được mật mã hóa; bất cứ ai có khóa công khai đều có thể thực hiện việc mã hóa này Tuy nhiên việc tính toán hàm nghịch đảo (hàm để giải mã thông tin được mã hóa thành các dãy tin ban đầu - bản rõ) không thể thực hiện được trong một khoảng thời gian hợp lý mà không cần thêm một số thông tin bổ sung, gọi là khóa riêng Điều này có nghĩa rằng mọi người có thể gửi thông tin đến một người nào đó bằng cách sử dụng cùng một khóa để mã hóa bằng cách đơn giản là lấy khóa này tại một vị trí công khai Người gửi không cần phải thực hiện bất kỳ thỏa thuận bí mật với người nhận; người nhận không cần

có bất kỳ liên hệ trước nào với người gửi Vì vậy có thể trao đổi thông tin một cách bảo mật bằng cách sử dụng thuật toán khóa công khai mà không cần trao đổi khóa một cách bí mật

Trong hệ mật mã khóa công khai mỗi người dùng hoặc thiết bị tham gia vào quá trình gửi nhận thông tin có một cặp khóa, một khóa công khai và một khóa riêng, cùng với các quy tắc sử dụng khóa để thực hiện các hoạt động bảo mật dữ liệu Chỉ người dùng hoặc thiết bị biết khóa riêng của mình, còn khóa công khai được phân phối đến tất cả người dùnghoặc thiết bị khác tham gia vào hệ thống Vì việc biết khoá công khai không ảnh hưởng tới sự an toàn của các thuật toán, có thể

dễ dàng trao đổi khoá công khai trực tuyến

Thông tin cần bảo mật có thể được trao đổi trực tuyến bằng cách trao đổi thông tin đã mã hóa và khóa công khai Những người chỉ có quyền truy cập vào các thông tin trao đổi công khai sẽ không thể tính toán để giải mã thông tin, trừ khi họ

có quyền truy cập và biết khóa riêng của của các bên giao tiếp

Trang 12

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Các hệ mật mã khóa đối xứng đã được sử dụng từ khá lâu Sự phát triển tương đối muộn của các hệ mật mã khóa công khai xuất phát từ lý do là cho đến tận những năm 1970 mật mã chỉ được sử dụng chủ yếu cho các mục đích quân sự và ngoại giao và mật mã khóa đối xứng là thích hợp Với việc mở rộng các ứng dụng của CNTT trong đời sống và kinh tế, các nhu cầu mới về mật mã phát sinh Không giống như trong quân đội hay ngoại giao với phân cấp cứng nhắc và số người sử dụng hạn chế, trong các ứng dụng kinh tế - xã hội, lượng dữ liệu được trao đổi lớn gấp nhiều lần và số người sử dụng cũng tăng nhanh, lĩnh vực ứng dụng cũng phong phú hơn nhiều Vì vậy trong những năm gần đây hệ mật mã khóa công khai đã được tập trung nghiên cứu một cách mạnh mẽ trên thế giới và nhiều kết quả mới đã đạt được cũng như được áp dụng để giải quyết các vấn đề thực tiễn trong nhiều lĩnh vực

Mục đích của luận văn là trình bày các kết quả tìm hiểu được về hệ mật mã khóa công khai, các thuật toán mã hóa và giải mã sử dụng trong các hệ mật mã khóa công khai, đồng thời tìm hiểu khả năng ứng dụng hệ mật mã khóa công khai trong quản lý đề thi trong các trường phổ thông

Nội dung luận văn gồm 3 chương:

Chương I TỔNG QUAN HỆ MẬT MÃ KHÓA CÔNG KHAI

Chương này trình bày các kiến thức tổng quan về các hệ mật mã nói chung

và hệ mật mã khóa công khai nói riêng, các yêu cầu về hệ mật mã khóa công khai cũng như tính bảo mật của chúng

Chương II MỘT SỐ THUẬT TOÁN PHÂN PHỐI VÀ QUẢN LÝ KHÓA Chương này đi sâu phân tích cơ chế hoạt động của một số hệ mật mã khóa công khai đã được chấp nhận như các hệ chuẩn như RSA, ELGAMAL và RABIN

Độ mật, hiệu suất thực hiện và ứng dụng của các hệ mật mã nói trên cũng được đề cập và đánh giá

Chương III XÂY DỰNG ỨNG DỤNG THỬ NGHIỆM

Chương này đề cập đến việc xây dựng ứng dụng thử nghiệm để giải quyết vấn đề quản lý và bảo mật đề thi trong hệ thống các trường phổ thông dựa vào các thuật toán RSA và AES

Trang 13

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Chương 1 TỔNG QUAN HỆ MẬT MÃ KHÓA CÔNG KHAI 1.1 Khái niệm về hệ mật mã

1.1.1 Khái niệm chung về mật mã và hệ mật mã

Mật mã học là một lĩnh vực liên quan đến các kỹ thuật ngôn ngữ và toán học nhằm đảm bảo an toàn thông tin Về phương diện lịch sử, mật mã học gắn liền với quá trình mã hóa; điều này có nghĩa là nó gắn với các cách thức để chuyển đổi thông tin từ dạng này sang dạng khác nhưng ở đây là từ dạng thông thường có thể nhận thức được thành dạng không thể nhận thức được, làm cho thông tin trở thành dạng không thể đọc được nếu như không có các kiến thức bí mật Quá trình mã hoá được sử dụng chủ yếu để đảm bảo tính bí mật của các thông tin quan trọng, chẳng hạn trong công tác tình báo, quân sự hay ngoại giao cũng như các bí mật về kinh tế, thương mại Trong những năm gần đây, lĩnh vực hoạt động của mật mã hoá đã được

mở rộng; mật mã hoá hiện đại cung cấp nhiều ưng dụng hơn là chỉ duy nhất giữ bí mật và có một loạt các ứng dụng như: chứng thực khoá công khai, chữ ký số, bầu cử điện tử hay tiền điện tử Ngoài ra những người không có nhu cầu thiết yếu đặc biệt

về tính bảo mật cũng sử dụng các công nghệ mật mã hoá, thông thường được thiết

kế và tạo lập sẵn trong các cơ sở hạ tầng của công nghệ tính toán và liên lạc viễn thông

Mật mã học là một nghành có lịch sử từ hàng nghìn năm nay Trong phần lớn thời gian phát triển của mình (ngoại trừ vài thập kỉ trở lại đây), lịch sử mật mã học chính là lịch sử của những phương pháp mật mã học cổ điển - các phương pháp mật

mã hoá với bút và giấy, đôi khi có hỗ trợ từ những dụng cụ cơ khí đơn giản Vào đầu thế kỉ 20, sự xuất hiện của các cơ cấu cơ khí và điện cơ, chẳng hạn như máy ENIGMA, đã cung cấp những những cơ chế mật mã hoá phức tạp và hiệu quả hơn

Sự ra đời và phát triển mạnh mẽ của ngành điện tử và máy tính trong những thập niên gần đây đã tạo điều kiện để mật mã học phát triển nhảy vọt lên một tầm cao mới

Cho trước:

A là một tập hữu hạn các phần tử, được gọi là bảng chữ cái Ví dụ A = {0,1}

(bảng chữ cái nhị phân) Lưu ý rằng một bảng chữ cái bất kỳ có thể được

Trang 14

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

mã hóa vào bảng chữ cái nhị phân Ví dụ, mỗi chữ của bảng chữ cái tiếng Anh có thể được mã hóa như một dãy nhị phân chiều dài 5

P là tập hợp các dãy chữ cái (các xâu) lấy từ A Mỗi phần tử của P được

gọi là bản rõ

C ký hiệu tập các dãy chữ cái lấy từ một bảng chữ cái nào đó, có thể trùng hoặc khác bảng chữ cái A C được gọi là tập hợp các bản mã, mỗi phần tử của C được gọi là bản mã

K là tập hữu hạn các phần tử, mỗi phần tử được gọi là khóa Bản thân K

được gọi là không gian khóa

Định nghĩa 1.1 Một hệ mật mã là một bộ năm (P,C,K,E,D), trong đó P là

một tập các bản rõ, C là một tập các bản mã, K là không gian khoá và E là tập các song ánh {E K :PC)}, D là tập các song ánh {E K :CP)} thoả mãn các điều

kiện sau:

1 Với mỗi KK tồn tại duy nhất một song ánh E K E, E K :PC E K được

gọi là quy tắc mã hóa tương ứng với khóa K

2 Với mỗi KK tồn tại một một song ánh D KD, D K :CP D K được gọi là

quy tắc giải mã tương ứng với khóa K

3 Với mỗi KK tồn tại duy nhất một khóa kK sao cho D kE K1, nghĩa là

Trang 15

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Giả sử bản rõ là P , , , x1 x2 x n với số nguyên n1 nào đó Ở đây mỗi ký

hiệu của bản rõ x iA, 1 i n Mỗi x i sẽ được mã hoá bằng quy tắc mã hóa E K với

khoá K được xác định trước đó: y i = E K (x i), 1  i n và bản mã nhận được

1 , , , 2 n

Cy y y sẽ được gửi Khi nhận được y1, , , y2 y n, ta sẽ giải mã bằng

hàm giải mã D k và thu được bản rõ ban đầu x1, , , x2 x n

Rõ ràng hàm mã hoá phải là hàm đơn ánh (tức là ánh xạ 1-1), nếu không việc

giải mã sẽ không thực hiện được một cách tường minh Nếu P = C thì mỗi hàm mã

hoá là một phép hoán vị Nghĩa là nếu tập các bản mã và tập các bản rõ là đồng nhất thì mỗi hàm mã hoá sẽ là một sự sắp xếp lại (hay hoán vị) các phần tử của tập này

1.1.2 Phân loại các hệ mật mã

1.1.2.1 Hệ thống mật mã đối xứng

a Định nghĩa

Mã hóa đối xứng là phương pháp mã mà trong đó các khóa dùng cho việc mã

hóa (khoá mã hoá) và giải mã (khoá giải mã) có quan hệ rõ ràng với nhau, nghĩa là

có thể dễ dàng tìm khóa này nếu biết khóa kia và ngược lại Trong rất nhiều trường hợp, khoá mã hoá và khoá giải mã là giống nhau

Thuật toán này còn có nhiều tên gọi khác như thuật toán khoá bí mật, thuật toán khoá đơn giản, thuật toán một khoá Sự mã hoá và giải mã của thuật toán đối xứng được biểu thị bởi:

 

K

E PCD K CP Ban đầu, bản rõ được người gửi A mã hóa với khóa K Sau đó bản mã được gửi tới người nhận B Khi nhận được bản mã, người B sử dụng khóa K giải mã để thu được bản rõ Do đó, nếu một người khác có được khóa K thì hệ thống mã hóa này sẽ bị tấn công (Hình 1.2)

Hình 1.2: Sơ đồ hoạt động của mã hóa khóa đối xứng

Trang 16

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Thuật toán này yêu cầu người gửi và người nhận phải thoả thuận thuật toán

mã hóa và khóa dùng cho quá trình mã hoá và giải mã trước khi bản rõ được mã hóa

và được gửi đi, và khoá này phải được cất giữ bí mật Độ an toàn của thuật toán này phụ thuộc vào khoá, nếu khoá bị lộ, bất kì người nào có khóa cũng có thể mã hoá và giải mã Việc trao đổi, thoả thuận về thuật toán được sử dụng trong việc mã hoá có thể tiến hành một cách công khai, nhưng bước thoả thuận về khoá trong việc mã hoá-giải mã và trao đổi khóa phải tiến hành bí mật và an toàn Sau khi đã thỏa thuận được thuật toán mã hóa, thống nhất được khóa dùng để mã hóa và giải mã, bên gửi

sẽ mã hoá bản rõ bằng cách sử dụng khoá bí mật đã thống nhất và gửi bản mã cho bên nhận Sau khi nhận được bản mã, bên nhận sẽ sử dụng chính khoá bí mật mà hai bên đã thoả thuận để giải mã và khôi phục lại bản rõ

Chúng ta có thể thấy rằng thuật toán mã hoá đối xứng sẽ rất có lợi khi được

áp dụng trong các cơ quan hay tổ chức đơn lẻ Nhưng nếu cần phải trao đổi thông tin với một bên thứ ba thì việc đảm bảo tính bí mật của khoá phải được đặt lên hàng đầu

Trong các mã hoá cổ điển, ví dụ như phương pháp mã hóa Ceaser Cipher thì khoá chính là phép dịch ký tự, cụ thể là phép dịch 3 ký tự Trong phương pháp mã hoá hoán vị thì khóa nằm ở số hàng hay số cột mà chúng ta qui định Khoá này có thể được thay đổi tuỳ theo mục đích mã hoá, nhưng nó phải nằm trong một phạm vi cho phép nào đó

Mã hoá đối xứng có thể được phân thành hai loại:

Loại thứ nhất tác động trên bản rõ theo từng nhóm ký hiệu (chữ cái hoặc bit)

có độ dài (số các ký hiệu) bằng nhau Từng nhóm này được gọi với một cái tên khác

là khối (block) và thuật toán được áp dụng gọi là mã hóa khối (Block Cipher) Theo

đó, từng khối dữ liệu có cùng độ dài trong bản rõ ban đầu được thay thế bằng một khối dữ liệu khác Đối với các thuật toán ngày nay thì kích thước chung của một khối là 64 bit

Loại thứ hai mã hoá bản rõ theo từng bit Các thuật toán loại này được gọi là

mã hóa dòng (Stream Cipher) Các thuật toán mã hoá dòng này có tốc độ nhanh hơn

các thuật toán mã hoá khối và nó thường được áp dụng khi lượng dữ liệu cần mã hoá chưa biết trước

Một số thuật toán nổi tiếng trong mã hoá đối xứng là: DES, Triple DES (3DES), RC4, AES… DES là một thuật toán được sử dụng rộng rãi nhất trên thế giới Với thuật toán DES (Data Encryption Standard), bản rõ được mã hoá theo từng

Trang 17

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

khối 64 bit và sử dụng một khoá có độ dài 64 bit, nhưng thực tế thì chỉ có 56 bit là thực sự được dùng để tạo khoá, 8 bit còn lại dùng để kiểm tra tính chẵn, lẻ Hiện tại DES không còn được đánh giá cao do kích thước của khoá quá nhỏ (56 bit), và dễ dàng bị phá

Triple DES (3DES) cải thiện độ mạnh của DES bằng quá trình mã hoá và giải mã sử dụng 3 khoá Khối 64-bits của bản rõ sẽ được mã hoá sử dụng khoá thứ nhất Sau đó, dữ liệu bị mã hóa được giải mã bằng việc sử dụng một khoá thứ hai Cuối cùng, sử dụng khoá thứ ba để mã hoá kết quả của quá trình trước đó:

AES (Advanced Encryption Standard): được sử dụng để thay thế cho DES

Nó hỗ trợ độ dài của khoá từ 128 bit cho đến 256 bit

Nhận xét:

Trong các giao dịch trên mạng, khóa K phải được truyền đi trên môi

trường này, do đó nó có thể bị lấy cắp Để an toàn, việc bảo mật cho khóa

K cần phải được chú trọng Thường phải dùng thêm các cơ chế và giải

thuật khác trong việc quản lý, trao đổi khóa giữa các đối tượng

 Không thể xác thực được nguồn gốc nội dung của bản rõ cũng như không

có tính chất không thể phủ nhận của chủ thể

 Khi số lượng khóa bí mật tăng lên, việc quản lý các khóa này trở nên phức tạp và khó khăn khi một người phải giữ nhiều khóa bí mật để giao dịch với nhiều đối tượng khác nhau

Những nhược điểm trên dẫn đến hệ mật mã khóa đối xứng khó có thể áp dụng một cách rộng rãi

b Các vấn đề đối với phương pháp mã hóa đối xứng

Phương mã hóa đối xứng đòi hỏi người mã hóa và người giải mã phải sử dụng chung một khóa Khi đó khóa phải được giữ bí mật tuyệt đối Hệ mã hóa đối xứng không an toàn nếu khóa bị lộ với xác suất cao Trong hệ này, khóa phải được gửi đi trên kênh an toàn Vấn đề quản lý và phân phối khóa là khó khăn và phức tạp khi sử dụng hệ mã hóa đối xứng Người gửi và nhận phải luôn thống nhất với nhau

về khóa Việc thay đổi khóa là rất khó và dễ bị lộ Khuynh hướng cung cấp khoá dài

Trang 18

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

và phải được thay đổi thường xuyên trong khi vẫn duy trì cả tính an toàn lẫn hiệu quả chi phí sẽ cản trở rất nhiều tới việc áp dụng hệ mật mã này

1.1.2.2 Hệ thống mật mã không đối xứng (mật mã khóa công khai)

a Định nghĩa

Thuật toán mã hóa công khai là thuật toán được thiết kế sao cho khóa mã hóa

K khác so với khóa giải mã k và khóa giải mã không thể tính toán được từ khóa mã

hóa Khóa mã hóa K gọi là khóa công khai (public key), khóa giải mã k được gọi là

khóa riêng (private key)

Hình 1.3 Sơ đồ hoạt động của mã hóa khóa không đối xứng

Đặc trưng nổi bật của hệ mật mã công khai là có thể gửi cả khóa công khai

và bản mã trên một kênh thông tin không an toàn

Với hệ mật mã khóa công khai, người A sử dụng khóa công khai K do B

người B tạo để mã hóa thông điệp và gửi cho người B Do biết được khóa riêng k B

nên người B có thể giải mã được thông điệp đã được mã hóa Trong trường hợp người thứ ba có được bản mã, nếu chỉ kết hợp với thông tin về khóa công khai K B

đã được công bố, cũng rất khó có khả năng giải mã được bản mã này trong khoảng thời gian chấp nhận được do không biết được khóa riêng k của B B

Khóa công khai K và khóa riêng k có quan hệ toán học với nhau theo nghĩa

từ khóa riêng có thể tính toán để suy ra được khóa công khai, nhưng để từ khóa công khai suy ra khóa riêng sẽ rất phức tạp vì số lượng phép tính toán là rất nhiều, dẫn đến việc giải mã không khả thi trong khoảng thời gian hợp lý (nội dung thông tin còn có tác dụng) khi chiều dài của khóa đủ lớn

Đây cũng là mấu chốt của vấn đề bảo mật và tấn công trong các hệ mã khóa công khai Đó cũng chính là vấn đề an toàn của hệ mã công khai Nghiên cứu đưa ra các giải pháp hỗ trợ làm tăng tính an toàn của các hệ mã này bằng cách cố gắng áp dụng các thuật toán xử lý nhanh với số lớn Từ đó có thể tăng chiều dài của khóa mà vẫn đảm bảo yếu tố thời gian mã hóa và giải mã chấp nhận được

Trang 19

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

b Các điều kiện của một hệ mã hóa công khai

Việc tính toán cặp khóa công khai K và bí mật k dựa trên các điều kiện ban

đầu phải thực hiện được trong khoảng thời gian hợp lý, nghĩa là thực hiện trong thời gian đa thức

Người gửi A có được khóa công khai K B của người nhận B và có bản rõ P cần gửi đi có thể dễ dàng tạo ra được bản mã C bằng cách mã hóa

( ) ( )

B

CE PE P Công việc này cũng được thực hiện trong thời gian đa thức

Người nhận B khi nhận được bản tin đã mã hóa C, với khóa bí mật k B có thể giải mã trong thời gian đa thức

1.2 Lý thuyết độ phức tạp

1.2.1 Khái niệm độ phức tạp của thuật toán

Khi thực hiện cùng một thuật toán trên nhiều máy tính với cấu hình khác nhau ta sẽ thấy thời gian thực hiện thuật toán có thể khác nhau Do đó không thể lấy thời gian thực hiện của thuật toán trên một máy tính để đánh giá độ phức tạp của thuật toán

Độ phức tạp của một thuật toán được tính bằng số các phép tính cơ sở (đọc, ghi, phép so sánh, phép cộng, ) máy tính thực hiện khi tiến hành thực hiện thuật toán Ngoài ra, số lượng phép tính còn phụ thuộc vào kích cỡ dữ liệu đầu vào của thuật toán Như vậy, độ phức tạp của thuật toán phải là một hàm số theo độ lớn của đầu vào Việc xác định chính xác hàm này có thể rất phức tạp, tuy nhiên khi biết cỡ của chúng thì ta có thể có được một ước lượng chấp nhận được

Độ phức tạp của một thuật toán thường được đo bằng số các phép tính bit Phép tính bit là một phép tính logic hay số học thực hiện trên các số 0 và 1 Để ước

lượng độ phức tạp của thuật toán, ta dùng khái niệm bậc O-lớn

Định nghĩa 1.2 Giả sử f n( ) và g n( ) là hai hàm xác định trên tập hợp các

số nguyên dương Ta nói f n( ) có bậc O-lớn của g n( ), và viết f n( )O g n( ( ))

hoặc fO g( ), nếu tồn tại một hằng số C > 0 sao cho với n đủ lớn ta có

0 f n( )C g n ( )

Trang 20

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Định nghĩa 1.3 Một thuật toán được gọi là có độ phức tạp đa thức, hoặc có

thời gian đa thức, nếu số các phép tính cần thiết khi thực hiện thuật toán không vượt

quá O (logkn ), trong đó n là độ lớn của đầu vào, và k là số nguyên dương nào đó

Nói cách khác, nếu đầu vào là các số m-bit thì thời gian thực hiện thuật toán

O m ( d), tức là tương đương với một đa thức của m

Các thuật toán với thời gian O  n ,   1, được gọi là các thuật toán với

độ phức tạp mũ, hoặc thời gian mũ

Nếu một thuật toán có độ phức tạp O g( ), thì cũng có thể nói nó có độ phức tạp O h( ) với mọi hàm hg Tuy nhiên, ta luôn luôn cố gắng tìm ước lượng tốt nhất có thể được

Tồn tại những thuật toán có độ phức tạp trung gian giữa đa thức và mũ Các thuật toán đó được gọi là thuật toán dưới mũ

Độ phức tạp không phải là tiêu chuẩn duy nhất để đánh giá thuật toán Có những thuật toán, về lý thuyết có độ phức tạp cao hơn một thuật toán khác, nhưng khi sử dụng lại cho kết quả nhanh hơn

Bảng dưới đây đưa ra các thông số về thời gian và số lượng phép toán trên bit để thực hiện việc phân tích một số nguyên n ra thừa số nguyên tố áp dụng thuật toán tốt nhất trên máy tính có tốc độ xử lý một triệu phép tính trên một giây:

Thuật toán này có độ phức tạp dưới mũ: exp lognlog logn

Số chữ số thập phân n Số phép tính trên bit Thời gian

Bảng 1.1 Thời gian phân tích số nguyên n ra thừa số nguyên tố

Với một thuật toán dưới mũ, thời gian làm việc với các số nguyên lớn vẫn không khả thi Do đó, với các ứng dụng xử lý số lớn, ta thường phải cố gắng biến đổi để thu được một thuật toán có thời gian tính toán đa thức Ý tưởng này sẽ được

Trang 21

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

áp dụng trong phần nghiên cứu của để tài để xử lý cho các phép toán số học với số lớn trong các hệ mã hóa công khai

1.2.2 Các bài toán khó tính toán và ứng dụng trong mật mã học

Một hệ mật mã phải cố gắng gây khó khăn cho người giải mã khi không biết

khóa giải mã k nhưng lại dễ dàng giải mã khi biết được khóa mã hóa K

Một hệ mật mã như vậy sẽ có một thông tin “cửa sập” bí mật được chèn thêm vào bài toán dựa trên tính khó khăn khi thực hiện việc nghịch đảo một hàm một chiều

Định nghĩa 1.4 Cho các tập hữu hạn S, T Hàm f S: T được gọi là hàm

một chiều (one-way function) nếu như:

Hàm f dễ tính toán, nghĩa là x S có thể dễ dàng tính được yf x 

 Việc tính toán hàm ngược f1( ) y không khả thi về mặt tính toán, nghĩa là

cho y T thì rất khó tính được xf1( ) y

Định nghĩa 1.5 Hàm một chiều cửa sập (trapdoor one-way function) là hàm

một chiều f được thêm vào thông tin cửa sập (trapdoor information) để có thể dễ

dàng tính xf1( ) y với bất kỳ yT

Ví dụ về hàm một chiều:

f p q( , ) p q là hàm một chiều với p, q là các số nguyên tố lớn Như vậy,

ta có thể thực hiện phép nhân p q với độ phức tạp đa thức; nhưng tính

f k N, ( ) :x xx xmodN là hàm một chiều, với Np q , p và q là các số

nguyên tố lớn Phép tính xkmod N có độ phức tạp đa thức, nhưng tính f1

lại cực khó Tuy nhiên, nếu biết 'k sao cho k k ' 1 mod    N , có thể dễ dàng tính được 1

f từ công thức (xk k) 'x (   n là hàm Euler, số các số

tự nhiên nhỏ hơn hoặc bằng n và là số nguyên tố tương đối với n.)

Trang 22

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

1.3 Hệ mật mã khóa công khai

Vào năm 1976, các nhà khoa học Whitfield Diffie, Martin Hellman và Ralph Merkle tại Đại học Stanford giới thiệu ý tưởng về hệ thống mật mã khóa công khai nhằm khắc phục các nhược điểm của hệ thống mật mã khoá đối xứng Năm 1977 nhóm tác giả Ronald Rivest, Adi Shamir và Leonard Adleman đã công bố phương pháp RSA, phương pháp mã hóa khóa công khai RSA hiện được sử dụng rất nhiều trong các ứng dụng mã hóa và bảo mật thông tin RSA nhanh chóng trở thành chuẩn

mã hóa khóa công khai trên toàn thế giới do tính an toàn và khả năng ứng dụng của nó

Độ an toàn của hệ thống mật mã mới này, không phải được đo bằng độ phức tạp của các thuật toán mã hóa, mà nó dựa vào một khám phá mới vô cùng quan trọng trong ngành khoa học máy tính, đó là lý thuyết độ phức tạp tính toán: Chủ yếu

đề cập đến sự phân tích các thuật toán và đặc biệt là số các bước tính toán cần thiết

để phát hiện khóa bí mật Từ đó xác định độ an toàn của bất kỳ hệ mật mã khóa công khai nào

Một hệ thống mật mã khóa công khai sử dụng hai loại khóa trong cùng một cặp khóa: Khoá công khai (public key) được công bố rộng rãi và sử dụng trong mã hóa thông tin, khóa riêng (private key) sử dụng để giải mã thông tin đã được mã hóa

bằng khóa công khai Các phương pháp mã hóa này khai thác những ánh xạ f mà

việc thực hiện ánh xạ ngược 1

f rất khó so với việc thực hiện ánh xạ f

Chỉ khi biết được khóa riêng thì mới có thể thực hiện được ánh xạ 1

f

1.3.1 Các quan điểm cơ bản của hệ mật mã khoá công khai

‒ Hệ mật mã khoá công khai dựa trên quan điểm hàm một chiều (one-way function) và khoá công khai, để biến đổi một bản rõ thành bản mã với thời gian tính toán hợp lý Nhưng nếu muốn tính ngược lại (inverse function) thì phải mất nhiều thời gian và khó thực hiện được Vì vậy, việc thám mã rất khó có thể tính toán để thu được bản rõ từ bản mã lấy được

‒ Một quan điểm khác dùng trong hệ mật mã khoá công khai là thông tin

“cửa sập” (trap door) mà hàm một chiều phải có Thông tin bí mật (khoá riêng) chỉ được đưa vào bởi người sở hữu cặp khóa Khi có được thông tin “cửa sập” thì công việc giải mã sẽ trở nên dễ dàng

Trang 23

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

‒ Các hệ mật mã khóa công khai được xây dựng dựa trên những bài toán khó như: bài toán logarit rời rạc trong trường hữu hạn Z (hệ ElGamal) và bài toán p

phân tích một số nguyên lớn ra các thừa số nguyên tố (hệ RSA)

1.3.3 Hoạt động của hệ mật mã khóa công khai

Đối với hệ thống mã hóa khóa công khai: Mỗi người sử dụng phải tạo riêng cho mình một cặp khóa Trong đó, một khóa công khai (public key) cùng với thuật toán mã hóa E, được công bố rộng rãi tại thư mục dùng chung cho mọi người sử

dụng Còn lại là khóa riêng (private key) cùng với thuật toán giải mã D được giữ bí

mật bởi người sử dụng

Như vậy, khi người A muốn gửi thông điệp R đến cho người B:

Giả sử: Khóa công khai của B là: K , khóa riêng của B là: B k B

Khóa công khai của A là: K , Khóa riêng của A là: A k A

Thuật toán mã hóa: E , thuật toán giải mã: D

A tìm khóa công khai K của B trong thư mục dùng chung và tính B

( B, )

CE K R , sau đó gửi bản mã C cho B Khi nhận bản mã C, B sẽ giải mã dựa

vào khóa riêng k của mình để tính B RD k C( B, )

1.3.4 Các yêu cầu của hệ mật mã khóa công khai

Thông qua từng lĩnh vực ứng dụng cụ thể mà người gửi sử dụng khóa bí mật của mình, khóa công khai của người nhận hoặc cả hai để hình thành một số các ứng dụng phù hợp như sau:

‒ Tính mật: Người gửi A thực hiện mã hóa thông điệp P bằng khóa công

khai K của người nhận B: B CE K( B, )P Còn người nhận giải mã bằng khóa riêng k của mình: B PD k C( B, ) Vậy, có duy nhất người B mới giải mã được thông điệp, điều này gọi là tính mật của hệ

‒ Tính xác thực: Người gửi A thực hiện mã hóa một thông điệp P bằng

khóa riêng k : A CE k( A, )P Người nhận B giải mã bằng khóa công khai K của A

người gửi A: PD K( A, )C Như vậy chỉ có duy nhất A là người có khóa riêng để

mã hóa, cho nên thông điệp nhận được là của A, điều này gọi là tính xác thực của

hệ

Trang 24

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

‒ Tính mật và xác thực: Người gửi A thực hiện mã hoá thông điệp hai lần, lần

thứ nhất sử dụng khóa bí mật k Acủa mình: ( , )E k A P , lần thứ hai sử dụng khóa công khai K Bcủa người nhận B: CE K( B, (E k A, ))P Khi nhận bản mã, người nhận B cũng thực hiện giải mã hai lần, lần đầu tiên dùng khóa riêng k của mình B D k C , ( B, )sau đó dùng khóa công khai K Acủa người gửi A: PD K( A,D k C( B, )) Như vậy chỉ người gửi mới có khóa riêng để mã hoá và cũng chỉ người nhận mới có khóa riêng để giải mã, đây chính là tính mật và tính xác thực của hệ

1.4 Độ an toàn của hệ mật mã

Có hai quan điểm cơ bản về độ an toàn của một hệ mật mã

Độ an toàn tính toán: Độ an toàn này liên quan đến những nỗ lực tính toán

cần thiết để phá một hệ mật mã Một hệ mật là an toàn về mặt tính toán nếu có một

thuật toán tốt nhất để phá nó cần ít nhất N phép toán, trong đó N là số rất lớn nào

đó Tuy nhiên không có một hệ mật thực tế đã biết nào có thể được chứng tỏ là an toàn theo định nghĩa này Trên thực tế, người ta gọi một hệ mật là "an toàn về mặt tính toán" nếu có một phương pháp tốt nhất phá hệ này nhưng yêu cầu thời gian lớn đến mức không chấp nhận được

Một quan điểm chứng minh về độ an toàn tính toán là quy độ an toàn của một hệ mật mã về một bài toán đã được nghiên cứu kỹ và bài toán này được coi là khó Ví dụ, ta có thể chứng minh một khẳng định có dạng " Một hệ mật đã cho là an

toàn nếu không thể phân tích ra thừa số một số nguyên n cho trước" Các hệ mật

loại này đôi khi gọi là " an toàn chứng minh được" Tuy nhiên quan điểm này chỉ cung cấp một chứng minh về độ an toàn có liên quan đế một bài toán khác chứ không phải là một chứng minh hoàn chỉnh về độ an toàn (Tình hình này cũng tương

tự như việc chứng minh một bài toán là NP đầy đủ: Có thể chứng tỏ bài toán đã cho chí ít cũng khó như một bài toán NP đầy đủ khác, song không phải là một chứng minh hoàn chỉnh về độ khó tính toán của bài toán.)

Độ an toàn không điều kiện: Độ đo này liên quan đến độ an toàn của các hệ

mật mã khi không có một hạn chế nào được đặt ra về khối lượng tính toán được phép thực hiện Một hệ mật được gọi là an toàn không điều kiện nếu nó không thể

bị phá thậm chí với khả năng tính toán không hạn chế Độ an toàn không điều kiện của một hệ mật không thể được nghiên cứu theo quan điểm độ phức tạp tính toán vì thời gian tính toán cho phép không hạn chế

Trang 25

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Giả sử rằng khóa được chọn trước khi biết bản rõ và một khoá cụ thể chỉ dùng cho một bản mã Ngoài ra giả sử có một phân bố xác suất trên không gian bản

rõ P Ký hiệu xác suất tiên nghiệm để bản rõ xuất hiện là Q P Cũng giả sử rằng, ( )

khóa K được chọn theo một phân bố xác suất xác định nào đó (Thông thường khoá

được chọn ngẫu nhiên, bởi vậy tất cả các khoá sẽ đồng khả năng.) Ký hiệu xác suất

để khóa K được chọn là ( ) R K Khi đó khoá K và bản rõ P là các sự kiện độc lập

Hai phân bố xác suất Q và R trên P và K sẽ tạo ra một phân bố xác suất V trên C Giả sử rằng V C( )0 với mọi CC (nếu V C( )0 thì bản mã sẽ không

được dùng và có thể loại khỏi C) Từ đó ta tính được xác suất có điều kiện xuất hiện bản rõ P với điều kiện bản mã C là ( | ) W P C

Định nghĩa 1.6 Một hệ mật mã có độ mật hoàn thiện nếu W P C( | )Q P( )

với mọi PP , CC, tức xác suất hậu nghiệm có bản rõ là P với điều kiện đã thu

được bản mã C là đồng nhất với xác suất tiên nghiệm để bản rõ là P

Ta có định lý sau đây [3]:

Định lý 1.1 Giả sử (P,C,K,E,D) là một hệ mật mã với K = C = P Khi đó,

hệ mật có độ mật hoàn thiện khi và mỗi khi khoá K được dùng với xác suất như

nhau bằng 1/K, và mỗi PP, mỗi CC có một khoá duy nhất K sao cho

Chữ ký số là một bộ phận dữ liệu không thể giả mạo, để xác nhận một người

đã viết ra hoặc đồng ý với một tài liệu mà chữ ký đó được gắn vào Chữ ký số sử dụng công nghệ mã hoá trên nền tảng khoá công khai, để bảo đảm tính đúng đắn tính toàn vẹn về nội dung của một dữ liệu hoặc một thông điệp điện tử và những yêu cầu khác đối với các mục đích của một chữ ký

Chữ ký số có các tính chất sau:

- Xác thực: người nhận kiểm tra được việc người gửi đã kí vào tài liệu

- Không thể giả mạo được: chữ ký số xác nhận với người nhận tài liệu là không

ai khác ngoài người kí đã kí tài liệu đó

- Không thể dùng lại được: chữ ký số có kèm theo nội dung và thời gian gắn

Trang 26

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

trên tài liệu, nên không thể chuyển chữ ký từ tài liệu này sang tài liệu khác

- Đảm bảo sự toàn vẹn và đúng đắn của tài liệu: tài liệu đã được kí không thể giả mạo, sửa đổi hoặc thêm bớt

- Không thể chối bỏ: chữ ký và tài liệu là chứng cứ về mặt pháp lý và có khả năng xác thực sự đồng nhất giữa người kí và tài liệu được kí Do đó người gửi không thể phủ nhận việc đã kí tài liệu đó

1.2.2 Quá trình ký và xác thực chữ ký

1.2.2.1 Quá trình ký

Đoạn dữ liệu cần được bảo mật đưa qua hàm băm (hashing0), kết quả của hàm băm là một đoạn bit đảm bảo 2 tính chất sau:

- Tính duy nhất: mỗi một đoạn dữ liệu khác nhau thì sẽ có một đoạn bit khác nhau,

không trùng lặp, có độ dài không đổi

- Tính một chiều: từ đoạn bit đặc trưng này, không suy ngược lại được nội dung

Trang 27

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Mã hóa

Trang 28

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

- Dữ liệu nhận được có tính toàn vẹn (vì kết quả băm là duy nhất, một chiều)

- Dữ liệu nhận được là do chính người gửi đi vì chỉ duy nhất người nhận được xác

thực mới có khóa bí mật phù hợp với khóa công khai đã được sử dụng để giải được sử dụng để giải mã Như vậy tính chống từ chối và tính xác thực được kiểm tra và xác nhận Lúc này người nhận tin rằng khóa công khai đó đại diện hợp pháp cho người gửi

Lược đồ xác thực chữ ký số được mô tả bằng hình vẽ dưới đây:

Trang 29

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Hình 1.5 Lược đồ xác thực

Sau khi ký “văn bản”, nếu cần thiết cho vào “phong bì” nhằm bảo đảm tính bí mật khi gửi đi, toàn bộ dữ liệu gốc và chữ ký có thể được đưa một lần bởi khóa

Bản tin đã ký

Khóa công khai

của người gửi

Bản tin điện

tử

Tách bản tin và CKS

Không Đúng người gửi

Bản tin là toàn vẹn

Trang 30

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

công khai của người sẽ nhận “văn bản” Khi nhận được khóa mã, tiếp tục sử dụng khóa mã này sẽ giải mã được văn bản Như vậy, tính bí mật của giao dịch sẽ được đảm bảo từ người gửi, đến tận người nhận

Tóm lược chương

Chương 1 trình bày các khái niệm của hệ mật mã và phân loại các hệ mật mã theo cách sử dụng khóa: khóa đối xứng và khóa công khai Một mục của chương được dành để trình bày chi tiết về hệ mật mã khóa công khai cũng như quá trình mã hóa và giải mã, cách thức sử dụng khóa công khai và khóa riêng trong hệ mật mã này Chương này cũng đề cập ngắn gọn khái niệm độ phức tạp của thuật toán và một vài bài toán khó tính toán và ứng dụng trong mật mã học, đặc biệt trong hệ mật

mã khóa công khai Ngoài ra tính an toàn của hệ mật mã cũng được định nghĩa theo hai quan điểm độ an toàn tính toán và độ an toàn không điều kiện, cùng với một định lý về độ mật hoàn thiện của hệ mật mã nói chung

Trang 31

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Chương 2 MỘT SỐ THUẬT TOÁN PHÂN PHỐI

VÀ QUẢN LÝ KHÓA CÔNG KHAI

Như đã trình bày trong Chương 1, hệ mật mã đối xứng sử dụng cùng một

khóa K để mã hóa và giải mã (hoặc sử dụng khóa K để mã hóa và khóa k để giải

mã, nhưng có thể dễ dàng tính được k từ K và ngược lại Trong khi đó các hệ mật

mã khóa công khai sử dụng các khóa khác nhau trong các quá trình mã hóa và giải

mã Thông thường khóa K để mã hóa được công bố công khai, còn khóa k để giải

mã được giữ bí mật

2.1 Hệ mật mã khóa công khai RSA

2.1.1 Cơ sở toán học của hệ mật mã RSA

Các thực tế và phỏng đoán dưới đây là cơ sở lý thuyết của hệ mật mã khóa công khai RSA

1 Sinh ngẫu nhiên các số nguyên tố đủ lớn là việc dễ thực hiện Với tốc độ

tính toán hiện nay việc tạo ngẫu nhiên một số nguyên tố có độ lớn nhất định cho trước là việc dễ dàng

Hiện tại các số nguyên tố đủ lớn là rất phổ biến và rất dễ dàng để kiểm tra xem một số có phải là một số nguyên tố - thậm chí một số nguyên tố lớn - hay không

Để tạo ra một nguyên tố ngẫu nhiên, người ta chỉ đơn giản tạo ra các số ngẫu nhiên có độ lớn trong khoảng nhất định và kiểm tra chúng có phải là số nguyên tố

hay không Số lượng các số dự kiến cần kiểm tra khoảng ln x (với x là độ lớn của số

nguyên tố định tạo) Tuy không luôn luôn dễ dàng kiểm tra xem một số là một số nguyên tố, thực tế, có những phương pháp để kiểm tra nhanh số nguyên tố đã được phát minh

Trong phần sau đây, chúng ta giả thiết p và q là hai số nguyên tốlớn được tạo

ra ngẫu nhiên."Lớn" theo ứng dụng trong hệ mật mã thường có nghĩa là 512 bit (155 chữ số thập phân) hoặc nhiều hơn

2 Với hai số nguyên tố p và q , tính tích Np q là việc dễ dàng Có rất

nhiều thuật toán hiệu quả để nhân hai số lớn

Trang 32

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

3 Phân tích một số nguyên thành tích các số nguyên tố là bài toán khó Cho

trước số nguyên N , tìm các số nguyên tố p và q sao cho Np q là việc rất khó khăn

Một cách tổng quát hơn:

Bài toán 2.1 (Bài toán phân tích số nguyên): Cho một số nguyên dương N ,

tìm các thừa số nguyên tốp i của N để 1 2

Bài toán này khó giải khi N là một số nguyên lớn Có nhiều thuật toán để

giải bài toán này,nhưng hiện nay vẫn chưa có thuật toán nào hiệu quả để phân tích

số nguyên N với khoảng 232 chữ số thập phân (768-bits) trở lên

Mặc dù bài toán đã có hàng trăm năm, việc phân tích một số nguyên lớn thành tích các số nguyên tố vẫn còn mất một thời gian dài nói chung Các phương

pháp nhanh nhất hiện nay cũng mất khoảng N phép tính Một ước tính gần đây

cho rằng với một số 1024-bit sẽ phải mất thời gian tính toán một năm trên một máy tính trị giá 10 triệu USD Với một số 2048-bit, thời gian sẽ gấp nhiều tỷ lần

Với các thực tế trên, từ đây ta giả thiết N là một số nguyên lớn được sinh ngẫu nhiên là tích của hai số nguyên tố p và q , Np q Với (N)=(p-1)(q-1), cho

các số nguyên M và C , 0M C, N và số nguyên e, 0 e ( )N sao cho e

nguyên tố cùng nhau với (p1) và (q1) (tức nguyên tố cùng nhau với ( )N , ( )N

 còn được gọi là hàm -Ơle và là số các số nguyên a , 0 a N, nguyên tố

cùng nhau với N )

4 Cho trước N , M và e như trên, tính CM e (mod N) là việc dễ thực hiện

Có một số thuật toán tối ưu để tính kết quả của biểu thức trên Số các phép

nhân tối đa không vượt quá 2e , còn số các phép tính để lấy phần dư tương đương

N

5 Cho trước N , e và C , tìm số 0MN thỏa mãn CM e (mod N) là việc dễ thực hiện, nếu biết hai số p và q Tuy nhiên, nếu không biết trước hai số p

và q , tìm số M thỏa mãn phương trình trên là việc rất khó thực hiện

Có thể phát biểu vấn đề trên dưới dạng bài toán RSA như sau:

Trang 33

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Bài toán 2.2 (Bài toán RSA) Cho hai số nguyên tố khác nhau p và q đủ lớn,

gọi N= p*q và φ(N) = (p-1) * (q-1)

Gọi e là một số nguyên thỏa mãn các điều kiện: 1 < e < φ(N) và gcd(e, φ(N)

= 1, và d là một số nguyên thỏa mãn các điều kiện: d ≤ N và e.d ≡ 1 mod (φ(N))

Cho M là một số nguyên nhỏ hơn N, tính C = M e mod N

M = C d mod N Định nghĩa của hàm φ(N) Hàm φ(N) này được gọi là hàm phi Ơle của N, giá trị của nó là số các số nguyên thuộc Z N và nguyên tố cùng nhau với N

Khóa công khai trong hệ thống mật mã này bao gồm các giá trị N và các giá

trị 2 e ( )N , được gọi là số mũ công khai Khóa riêng bao gồm N và giá trị d ,

được gọi là số mũ riêng

2.1.3 Quá trình tạo khoá, mã hoá và giải mã

Các quá trình tạo khoá, mã hoá và giải mã được thực hiện như mô tả dưới đây

Tạo khóa:

1 Tạo hai ngẫu nhiên số nguyên tố phân biệt p và q lớn, sao cho bài toán phân

tích thật sự là khó giải (kích cỡ mỗi số khoảng 512 bits  1024 bits)

2 Tính Np q và ( )N (p1)(q1)

3 Chọn một số nguyên ngẫu nhiên e sao cho 1 e ( )N và dc( , ( ))g eN 1

4 Sử dụng thuật toán Euclid mở rộng để tính số nguyên d duy nhất, sao cho

0 < d < φ(N) và ed 1 mod( )N (d là nghịch đảo của e modulo ( )N )

5 Hai số (e, N) làm khóa công khai, còn (d, N) được giữ bí mật làm khóa riêng Các số nguyên tố p, q sẽ bị xóa khi kết thúc quá trình tạo khóa

Mã hóa

Trang 34

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Giả sử để gửi thông điệp M cho B A thực hiện như sau:

Lấy khóa công khai của B: (e, N)

Biến đổi thông điệp M thành những số nguyên M i tương ứng sao cho M i < N, (i = 1,…, k) Theo phép biến đổi sau:

- Biến đổi các ký tự trong thông điệp M thành các số nguyên tương ứng,

thí dụ theo qui tắc: Dấu cách  00, A 01, B 02, , Z  26

- Chia thông điệp vừa biến đổi thành k nhóm có chiều dài bằng nhau, mỗi

nhóm biểu diễn một số nguyên M i {0,…, N – 1} (với 1 ≤ i ≤ k)

Thực hiện mã hóa lần lượt cho từng số M i C i bằng cách:

C i = E ke (M i ) = M i e (mod N)

Tập các số nguyên {C 1 , C 2 , ,C k} là bản mã để gửi đến B

Giải mã

B thực hiện các bước sau:

Thực hiện giải mã lần lượt từng số nguyên C i M i bằng cách:

M i = D(C i ) = C i d (mod N) với 0 ≤ M i < N, (d là khoá bí mật của B)

Thực hiện phép biến đổi ngược lại từ các số M i thành các chuỗi ký tự

tương ứng để khôi phục lại nội dung thông điệp M ban đầu

Tạo khoá: Tạo 2 số nguyên tố lớn p và q

* Tính N = p*q và Tính φ(N) = (p-1)*(q-1)

* Chọn 1 < e <φ(N): gcd(φ(N), e) = 1

* Tính d = e -1 mod φ(N) (dùng thuật toán Euclid mở rộng)

Khóa công khai: (e, N) Khóa riêng: (d, N)

* Khôi phục lại khối bản rõ (số nguyên) M ban đầu

Bảng 2.2: Tóm tắt các bước tạo khoá, mã hoá, giải mã của Hệ RSA

Trang 35

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

2.1.4 Tính đúng của quá trình giải mã

Ta chứng minh rằng M edM (mod )pM edM (mod )q Từ đó suy ra

Vì p là số nguyên tố, vậy bất kỳ số M Z N có hai trường hợp:

M nguyên tố cùng nhau với p (nghĩa là gcd(M, p) = 1) hoặc M là bội số của p

Vậy trường hợp 2 cũng thỏa mãn phương trình (6)

Chứng minh tương tự với q, từ (2) M ed M (mod q) (7)

Từ (6) & (7)  M ed M (mod pq) M (mod N)

Ví dụ 2.1: Minh họa của hệ mật mã RSA

a Tạo khóa:

Chọn p và q là những số nguyên tố nhỏ với mục đích minh họa

Chọn hai số nguyên tố p = 41, q = 67;

Tính N = 47 * 61 = 2747 và φ(N) = (41- 1) * (67-1) = 2600;

Trang 36

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Giả sử nội dung cần mã hoá là M = “MA HOA CONG KHAI”

 Biến đổi các ký tự của thông điệp thành các số tương ứng như sau:

13 01 00 08 15 01 00 03 15 14 07 00 11 08 01 09

 Chia thông điệp thành 8 khối, mỗi khối gồm 4 chữ số biểu diễn một số

nguyên M i < N, với M i{1301;0008;1501;0003;1514;0700;1108;0109}

Mã hóa lần lượt từng số M i : C i = M i 59 ( mod 2747) (8)

Mã hóa số đầu tiên M 1 = 1301 theo cách tính (8) ta có: C 1 = M159 mod

2747  130159 mod 2747 = 2352

Tiếp tục tính các số C 2 , , C 8 từ các số M 2 , , M 8 theo (8) Ta có được kết

quả ở cột C i là bản mã để gửi đến người nhận:

Tiếp tục tính các số M 2 , , M 8 từ các số C 2 , ,C 8 theo (9) ta có bảng minh

họa các số M i được giải mã từ các số C i như sau:

C i =E(M i) 2352 2537 1745 2733 1203 2651 0534 0454

Trang 37

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Thực hiện phép biến đổi ngược từ các số M i thành các chuỗi ký tự tương ứng

để khôi phục lại thông điệp gốc ban đầu:

M = "MA HOA CONG KHAI"

2.1.5 Chi phí thực hiện trong quá trình mã hóa và giải mã

Chi phí cho quá trình mã hoá:

Tính C = M e mod N, với số mũ e thường được chọn có dạng e = 2 x+1 (với xmax = 16) để phép tính lũy thừa modulo được thực hiện nhanh Vì biểu diễn nhị phân của những số dạng này chỉ có hai bít giá trị 1 ở đầu và cuối Như vậy quá trình mã hóa có nhiều nhất là 16 phép tính bình phương và 1 phép nhân, do đó tổng chi phí của quá trình mã hóa là: 17(2n2+2n) = 34(n2+n)

Chi phí cho quá trình giải mã:

Quá trình giải mã của hệ RSA, chỉ thực hiện phép tính M = C d mod N, với số

mũ bí mật d thường rất lớn (dN) để đảm bảo độ an toàn cho dữ liệu Vì vậy chi phí

thực hiện giải mã của hệ RSA tương đương với chi phí để thực hiện phép tính lũy

thừa nhanh là: 3n3

+n2

2.1.6 Đánh giá độ mật của hệ mật mã khóa công khai RSA

2.1.6.1 Độ an toàn

Hệ RSA được thiết kế dựa trên độ khó giải bài toán phân tích ra thừa số

nguyên tố Hầu hết các phương pháp thám mã hệ RSA như tìm các thừa số p và q, tìm φ(N), hay tìm khóa riêng d … đều khó như bài toán phân tích

Sau đây, ta có bảng chi phí thời gian cần thiết để phân tích những hệ mật mã

RSA có kích cỡ số modulo N khác nhau, bằng những thuật toán phân tích tốt nhất hiện nay (Bảng 2.2) Ở đây chi phí tính toán được tính bằng đơn vị MIPS-Years (đó

là số các phép tính đã hoàn thành bởi một máy trong thời gian một năm, với tốc độ khoảng 106 phép tính trên một giây, ta có 1MIPS-Years  245 phép tính ( 245 nghìn tỷ) )

Hệ RSA Số chữ số

thập phân Số bits

Thuật toán Năm Chi phí phân tích

(MIPS-Years)

Ngày đăng: 08/11/2014, 21:47

HÌNH ẢNH LIÊN QUAN

Hình 1.4  Lược đồ ký - Ứng dụng hệ mật mã khóa công khai trong quản lý đề thi
Hình 1.4 Lược đồ ký (Trang 27)
Hình 1.5. Lược đồ xác thực - Ứng dụng hệ mật mã khóa công khai trong quản lý đề thi
Hình 1.5. Lược đồ xác thực (Trang 29)
Hình 2.1: Đồ thị so sánh chi phí tấn công khóa bí mật và khóa công khai. - Ứng dụng hệ mật mã khóa công khai trong quản lý đề thi
Hình 2.1 Đồ thị so sánh chi phí tấn công khóa bí mật và khóa công khai (Trang 42)
Hình 2.4: Bước SubBytes, một trong 4 bước của 1 chu trình - Ứng dụng hệ mật mã khóa công khai trong quản lý đề thi
Hình 2.4 Bước SubBytes, một trong 4 bước của 1 chu trình (Trang 52)
Hình 2.5: Mô tả thuật toán AES - Ứng dụng hệ mật mã khóa công khai trong quản lý đề thi
Hình 2.5 Mô tả thuật toán AES (Trang 53)
Hình.3.9: Sơ đồ bài toán quản lý đề thi của các trường THPT - Ứng dụng hệ mật mã khóa công khai trong quản lý đề thi
nh.3.9 Sơ đồ bài toán quản lý đề thi của các trường THPT (Trang 60)
3.2.1.1. Sơ đồ tổng quan hệ thống - Ứng dụng hệ mật mã khóa công khai trong quản lý đề thi
3.2.1.1. Sơ đồ tổng quan hệ thống (Trang 61)
Hình 3.10: Sơ đồ quy trình tổng quan hệ thống  3.2.1.2. Sơ đồ quy trình tạo khóa RSA - Ứng dụng hệ mật mã khóa công khai trong quản lý đề thi
Hình 3.10 Sơ đồ quy trình tổng quan hệ thống 3.2.1.2. Sơ đồ quy trình tạo khóa RSA (Trang 61)
Hình 3.12:  Sơ đồ quy trình mã hóa văn bản bằng thuật toán AES - Ứng dụng hệ mật mã khóa công khai trong quản lý đề thi
Hình 3.12 Sơ đồ quy trình mã hóa văn bản bằng thuật toán AES (Trang 62)
Hình 3.11: Sơ đồ quy trình tạo khóa RSA  3.2.1.3. Sơ đồ quy trình mã hóa văn bản bằng AES - Ứng dụng hệ mật mã khóa công khai trong quản lý đề thi
Hình 3.11 Sơ đồ quy trình tạo khóa RSA 3.2.1.3. Sơ đồ quy trình mã hóa văn bản bằng AES (Trang 62)
3.2.1.5. Sơ đồ quy trình giải mã theo thuật toán RSA - Ứng dụng hệ mật mã khóa công khai trong quản lý đề thi
3.2.1.5. Sơ đồ quy trình giải mã theo thuật toán RSA (Trang 63)
Hình 3.15:  Giao diện chính của chương trình  3.2.2.2. Tạo khóa bằng thuật toán RSA - Ứng dụng hệ mật mã khóa công khai trong quản lý đề thi
Hình 3.15 Giao diện chính của chương trình 3.2.2.2. Tạo khóa bằng thuật toán RSA (Trang 63)
Hình 3.28: Chọn File cần mã hóa - Ứng dụng hệ mật mã khóa công khai trong quản lý đề thi
Hình 3.28 Chọn File cần mã hóa (Trang 68)
Hình 3.31: Giải mã nội dung văn bản - Ứng dụng hệ mật mã khóa công khai trong quản lý đề thi
Hình 3.31 Giải mã nội dung văn bản (Trang 69)
Hình 3.41: Kết quả mã hóa khóa - Ứng dụng hệ mật mã khóa công khai trong quản lý đề thi
Hình 3.41 Kết quả mã hóa khóa (Trang 72)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm