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

Lý thuyết mã hóa và vấn đề xác minh thông tin

95 465 0

Đ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 95
Dung lượng 1,39 MB

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

Nội dung

Trong khi tại Việt Nam, một số giải pháp phần mềm đang được phát triển và triển khai liên quan đến công tác văn bản, lưu trữ tài liệu như dịch vụ số hóa dữ liệu, các phần mềm quản lý văn

Trang 1

ĐẠI HỌC THÁI NGUYÊN

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

Trang 2

LỜI CAM ĐOAN

Sau quá trình học tập tại Trường Đại học công nghệ thông tin & truyền

thông, với những kiến thức lý thuyết và thực hành đã tích lũy được, với việc vận dụng

các kiến thức vào thực tế, em đã tự nghiên cứu các tài liệu, các công trình nghiên cứu, đồng thời có sự phân tích, tổng hợp, đúc kết và phát triển để hoàn thành luận văn thạc

sĩ của mình

Em xin cam đoan luận văn này là công trình do bản thân em tự tìm hiểu, nghiên

cứu và hoàn thành dưới sự hướng dẫn của thầy giáo TS Vũ Vinh Quang

Thái Nguyên, tháng 9 năm 2014

Học viên

Đặng Thị Như Trang

Trang 3

LỜI CẢM ƠN

Trong thời gian hai năm của chương trình đào tạo thạc sĩ, trong đó gần một nửa thời gian dành cho các môn học, thời gian còn lại dành cho việc lựa chọn đề tài, giáo viên hướng dẫn, tập trung vào nghiên cứu, viết, chỉnh sửa và hoàn thiện luận văn Với quỹ thời gian như vậy và với vị trí công việc đang phải đảm nhận, không riêng bản thân em mà hầu hết các học viên cao học muốn hoàn thành tốt luận văn của mình trước hết đều phải có sự sắp xếp thời gian hợp lý, có sự tập trung học tập và nghiên cứu với tinh thần nghiêm túc, nỗ lực hết mình; tiếp đến cần có sự ủng hộ về tinh thần, sự giúp

đỡ về chuyên môn, một trong những điều kiện không thể thiếu quyết định đến việc thành công của luận văn

Để hoàn thành được luận văn này trước tiên em xin gửi lời cảm ơn đến thầy

giáo hướng dẫn TS Vũ Vinh Quang, người đã có những định hướng cho em về nội

dung và hướng phát triển của đề tài, người đã có những đóng góp quý báu cho em về những vấn đề chuyên môn của luận văn, giúp em tháo gỡ kịp thời những vướng mắc trong quá trình làm luận văn

Em cũng xin cảm ơn các thầy cô giáo Trường Đại học Công nghệ thông tin và Truyền thông cũng như bạn bè cùng lớp đã có những ý kiến đóng góp bổ sung cho đề tài luận văn của em Xin cảm ơn gia đình, người thân cũng như đồng nghiệp luôn quan tâm, ủng hộ hỗ trợ về mặt tinh thần trong suốt thời gian từ khi nhận đề tài đến khi hoàn thiện luận văn này

Em xin hứa sẽ cố gắng hơn nữa, tự trau dồi bản thân, tích cực nâng cao năng lực chuyên môn của mình để sau khi hoàn thành luận văn này sẽ có hướng tập trung nghiên cứu sâu hơn, không ngừng hoàn thiện hơn nữa luận văn của mình để có những ứng dụng thực tiễn cao trong thực tế

Thái Nguyên, tháng 9 năm 2014

Học viên

Đặng Thị Như Trang

Trang 4

MỤC LỤC

LỜI CAM ĐOAN 2

LỜI CẢM ƠN 3

MỤC LỤC 4

DANH MỤC CÁC CHỮ VIẾT TẮT 6

DANH MỤC BẢNG BIỂU 7

DANH MỤC HÌNH VẼ 8

MỞ ĐẦU 9

Chương 1 TỔNG QUAN VỀ HỆ MÃ 13

1.1 GIỚI THIỆU CHUNG VỀ MÃ HÓA 13

1.1.1 An toàn và bảo mật thông tin 13

1.1.2 Mục tiêu của an toàn bảo mật thông tin 14

1.1.3 Các chiến lược an toàn hệ thống 15

1.1.4 An toàn thông tin bằng mật mã 16

1.1.5 Vai trò của hệ mật mã 17

1.1.6 Các thành phần của một hệ mật mã 17

1.1.7 Tiêu chuẩn đánh giá hệ mật mã 18

1.2 CƠ SỞ TOÁN HỌC 19

1.2.1 Cơ sở toán học 19

1.2.2 Số nguyên tố và phân tích thành thừa số 20

1.2.3 Phép mũ hóa và khai căn modul 23

1.3 MẬT MÃ HỌC VÀ MẬT MÃ KHÓA CÔNG KHAI RSA 24

1.3.1 Mã hóa dữ liệu 24

1.3.2 Ứng dụng của mã hóa 25

1.3.3 Phân loại mã hóa 25

1.3.4 Ưu khuyết điểm của hai phương pháp 28

1.3.5 Hệ mã RSA (R.Rivest, A.Shamir, L.Adleman) 30

1.3.6 Một số vấn đề về khóa của RSA 34

1.3.7 Module trong hệ thống RSA 40

1.3.8 Tốc độ của RSA 42

1.3.9 Vấn đề tìm văn bản bằng RSA 43

1.3.10 Vấn đề sử dụng RSA hiện nay 43

1.4 KẾT LUẬN CHƯƠNG 1 44

Chương 2 CHỮ KÝ ĐIỆN TỬ 45

2.1 ĐẶT VẤN ĐỀ 45

2.1.1 Vấn đề xác thực 45

2.1.2 Vấn đề chữ ký số 46

2.2 HÀM BĂM MẬT MÃ 47

2.2.1 Định nghĩa 47

2.2.2 Phân loại 48

2.2.3 Cấu trúc cơ bản của thuật toán băm 48

Trang 5

2.2.4 Hàm băm MD5 49

2.2.5 Hàm băm SHA-1 50

2.3 MỘT SỐ KHÁI NIỆM VÀ TÍNH CHẤT CHỮ KÝ ĐIỆN TỬ 50

2.3.1 Khái niệm: 50

2.3.2 Các bước tạo và kiểm tra chữ ký điện tử 51

2.3.3 Vị trí, vai trò của chữ ký số 51

2.3.4 Phân loại chữ ký số 52

2.3.5 Sơ đồ chữ ký số 53

2.3.6 Sơ đồ chữ ký RSA 54

2.3.7 Lược đồ chữ ký số 55

2.3.8 Yêu cầu chữ ký số 56

2.3.9 Đặc điểm của chữ ký số 56

2.3.10 Tấn công chữ ký số 57

2.3.11 So sánh chữ ký thông thường và chữ ký số 58

2.3.12 Độ an toàn của chữ ký RSA 59

2.4 MÔ HÌNH CHỮ KÝ SỐ DỰA TRÊN RSA 60

2.4.1 Quá trình ký và gửi các tệp văn bản 60

2.4.2 Quá trình nhận các tệp văn bản 61

2.5 KẾT LUẬN CHƯƠNG 2 62

Chương 3 MỘT SỐ KẾT QUẢ ỨNG DỤNG CHỮ KÝ ĐIỆN TỬ 63

3.1 MÔ HÌNH BÀI TOÁN THỰC TẾ 63

3.1.1 Một vài nét về tổ chức của cơ quan 63

3.1.2 Vấn đề ứng dụng công nghệ thông tin hiện nay 64

3.1.3 Vấn đề lưu trữ văn bản 66

3.1.4 Vấn đề bảo mật văn bản 68

3.2 ĐỀ XUẤT PHƯƠNG ÁN BẢO MẬT 73

3.2.1 Các module 77

3.2.2 Cấu hình hệ thống 78

3.2.3 Quy trình thực hiện ký văn bản khi gửi có xác thực 79

3.3 MỘT SỐ HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH CHỮ KÝ SỐ 79

3.3.1 Giao diện chính 79

3.3.2 Giao diện chương trình nhập khóa cho thuật toán RSA 80

3.3.3 Giao diện chương trình thuật toán RSA 80

3.3.4 Giao diện chương trình chữ ký (phần ký kiểm tra chữ ký) 82

3.4 MỘT SỐ ĐÁNH GIÁ KHI THỬ NGHIỆM TẠI CƠ SỞ THỰC TẾ 83

3.5 KẾT LUẬN CHƯƠNG 3 83

KẾT LUẬN 84

TÀI LIỆU THAM KHẢO 85

PHỤ LỤC 86

Phụ lục 1: Tạo cặp khóa bí mật – công khai 86

Phụ lục 2: Tạo chữ ký số 87

Phụ lục 3: Xác thực chữ ký số 91

Trang 6

DANH MỤC CÁC CHỮ VIẾT TẮT

RSA R.Rivest A.Shamir L.Adleman

DES Data Encrypt Standar

MAC Media Access Control

Trang 8

DANH MỤC HÌNH VẼ

Hình 1.1 Mã hoá với khóa mã và khóa giải giống nhau 10

Hình 1.4 Sơ đồ mã hóa và giải mã bằng khóa riêng 19 Hình 1.5 Sơ đồ mã hóa và giải mã bằng khóa công khai 20

Hình 1.8 Bảo mật tại nơi ra và nơi nhận vào của hai người sử dụng 31 Hình 1.9 Bảo mật tại nơi ra của người gửi và tại nơi nhận trước khi vào hệ

Trang 9

MỞ ĐẦU

1 Lý do lựa chọn đề tài

Văn bản là phương tiện lưu giữ và truyền đạt thông tin bằng ngôn ngữ hay ký hiệu nhất định Ở Việt Nam, Theo thống kê của Bộ Công thương, trong năm 2012 cả nước có tới 2,9 triệu tấn giấy đã được tiêu thụ Điều này cho thấy văn bản, tài liệu bằng giấy vẫn tiếp tục là một phương tiện quan trọng trong mọi hoạt động kinh doanh và nghiệp vụ Tuy nhiên, đây cũng là thách thức về vấn đề lưu trữ và quản lý, khai thác,

sử dụng thông tin đối với các cơ quan, doanh nghiệp Việt Nam, nhất là trong thời kỳ bùng nổ công nghệ thông tin

Trong khi tại Việt Nam, một số giải pháp phần mềm đang được phát triển và triển khai liên quan đến công tác văn bản, lưu trữ tài liệu như dịch vụ số hóa dữ liệu, các phần mềm quản lý văn bản, công văn…nhằm giải quyết hiệu quả trong việc số hóa văn bản giấy, giải toả các tủ hồ sơ lưu trữ với hàng chồng văn bản có nguy cơ bị hư hại theo thời gian; thì hiện nay trên thế giới đã được áp dụng rộng rãi tại những nước phát triển như Mỹ, Nhật… Chúng được sử dụng trong nhiều tổ chức Chính Phủ, bao gồm các chi nhánh của Chính Phủ Mỹ, những tập đoàn chính yếu, những thư viện quốc tế

và các trường Đại học Nhiều nước không chỉ triển khai chữ ký số trên mạng máy tính

mà còn áp dụng trên mạng điện thoại di động để thực hiện các giao dịch điện tử

Hầu như các hoạt động, giao dịch đều được sử dụng qua mạng máy tính và văn bản không nằm ngoài sự phát triển chung đó Tuy nhiên, các văn bản khi giao dịch trao đổi trên mạng có nguy cơ bị thay đổi, sao chép hoặc mất mát dữ liệu trong các ứng dụng luôn là vấn đề gây bức xúc được nhiều người quan tâm

Trong bối cảnh hiện tại, mọi hệ thống thông tin điện tử đều phải đương đầu với bài toán đảm bảo an toàn và bảo mật Trong đó, an toàn thông tin bằng mật mã có vai trò rất quan trọng và được ứng dụng rộng khắp Nắm bắt được thông tin nhiều khi mang ý nghĩa quyết định, sống còn đặc biệt trong các lĩnh vực: kinh tế, chính trị, an

Trang 10

ninh, quốc phòng…Vì vậy việc bảo mật thông tin đã, đang và sẽ là vấn đề được đặt ra rất cấp bách Để giải quyết vấn đề đó các hệ mật mã đã ra đời Từ các hệ mật mã sơ khai cổ điển như: Hệ mã Dịch Vòng, hệ mã Hill, hệ mã Affine,…, cho đến các hệ mật

mã hiện đại, phức tạp như hệ mã DES Các hệ mật mã công khai như hệ mã RSA, hệ

mã Ba Lô Nhưng đi kèm với sự ra đời và phát triển của các hệ mật mã là các phương pháp phá khóa các hệ mật mã đó Cuộc chiến giữa bảo mật thông tin và xâm phạm thông tin vẫn luôn diễn ra một cách thầm lặng nhưng vô cùng gay gắt

Internet ngoài những mặt mạnh như chúng ta đã biết là cho phép mọi người truy cập, khai thác, chia sẻ thông tin; thì nó cũng là nguyên nhân chính dẫn đến thông tin bị

rò rỉ hoặc bị phá hoại Lúc này việc bảo mật an toàn dữ liệu là vấn đề thời sự Nhằm giải quyết vấn đề xử lý các giao dịch trao đổi văn bản trên mạng chữ ký điện tử đã được ứng dụng rộng rãi Một trong những ứng dụng cực kỳ quan trọng của chữ ký điện

tử là đảm bảo an toàn dữ liệu khi truyền trên mạng

Chính vì vậy, với mong muốn tìm hiểu một trong những phương pháp bảo vệ

an toàn thông tin có tính an toàn cao hiện nay là dùng mật mã khóa công khai RSA và một vài ứng dụng của mật mã khóa công khai: Sử dụng chữ ký số trong việc xác thực,

mã hóa và giải mã các tập tin văn bản Đồng thời được sự đồng ý và hướng dẫn của

thầy giáo, TS Vũ Vinh Quang, tác giả lựa chọn đề tài luận văn tốt nghiệp “Lý thuyết

mã hóa và vấn đề xác minh thông tin” với mong muốn áp dụng các kiến thức đã được

học, xây dựng thử nghiệm mô hình giải quyết bài toán ký và xác thực trong văn bản

quản lý Nhà nước tại Sở Thông tin và Truyền thông Tuyên Quang

2 Mục đích nghiên cứu

Qua việc phân tích, khảo sát và đánh giá thực trạng sử dụng văn bản quản lý Nhà nước tại Việt Nam cũng như trên thế giới, kết hợp với việc nghiên cứu các kỹ thuật, phương pháp, thuật toán mã hóa, mục tiêu chính của luận văn được xác định là: Nghiên cứu về lý thuyết mật mã, mật mã khóa công khai RSA, chữ ký số và ứng dụng thuật toán RSA trong mã hóa dữ liệu Từ đó xây dựng hệ thống cho phép tạo và kiểm

Trang 11

tra chữ ký số đối với các tài liệu văn bản quản lý nhà nước để bảo mật nội dung thông tin cũng như xác thực nguồn gốc của thông tin Ứng dụng chữ ký số RSA để giải quyết

bài toán ký và xác thực trong văn bản quản lý Nhà nước tại tỉnh Tuyên Quang

3 Đối tượng và phạm vi nghiên cứu

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

Mô hình chung về chữ ký số và chữ ký số RSA

Trong phạm vi luận văn, tác giả sử dụng giải pháp của Lược đồ Chữ ký số RSA

để giải quyết các vấn đề đã nêu

4 Phương pháp luận nghiên cứu

Phương pháp nghiên cứu lý thuyết: Tổng hợp tài liệu; Nghiên cứu các tài liệu về văn bản quản lý Nhà nước; Nghiên cứu về hệ mã hóa công khai, hệ mật RSA, chữ ký

số và các loại chữ ký số sử dụng hệ mật RSA; Tìm hiểu các kiến thức liên quan đến

chữ ký số RSA, các kỹ thuật giao thức sử dụng giải quyết bài toán ký và xác thực trong

văn bản quản lý Nhà nước

Phương pháp nghiên cứu thực nghiệm: Sau khi nghiên cứu lý thuyết, phát biểu bài toán, đưa ra giải pháp xử lý; Mô phỏng thử nghiệm chương trình trên phần mềm Visual Studio; Đánh giá các kết quả đạt được

Phương pháp trao đổi khoa học: Thảo luận, xemina, lấy ý kiến chuyên gia, công

bố các kết quả nghiên cứu trên tạp chí khoa học

5 Ý nghĩa khoa học và thực tiễn của luận văn

Trang 12

Trình bày lý thuyết chung về chữ ký số, mô hình chữ ký số RSA

Về mặt thực tiễn:

Xây dựng được chương trình ứng dụng dựa vào hệ mật RSA có chức năng bảo mật nội dung cho các tập tin văn bản, tạo và kiểm tra chữ ký số cho các tập tin đó để xác định tính toàn vẹn nội dung và chủ nhân của tập tin khi thực hiện trao đổi qua Internet

6 Nội dung chính của luận văn

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

Chương 1: Tổng quan về hệ mã Trong chương này cung cấp các kiến thức lý

thuyết cơ bản, những khái niệm về mật mã học; đi sâu về mật mã khóa công khai RSA

Chương 2: Chữ ký số Với những nội dung chính như: Khái niệm và tính chất

chữ ký điện tử; Mô hình chữ ký số dựa trên RSA

Chương 3: Một số kết quả ứng dụng chữ ký điện tử Dựa vào những cơ sở lý

thuyết đã nghiên cứu, trong chương này luận văn sẽ trình bày kết quả của việc triển khai vấn đề bảo mật các tài liệu số trên mạng máy tính tại các cơ quan tỉnh Tuyên quang dựa trên hệ mật mã RSA và chữ ký số Phần cuối chương giới thiệu việc xây

dựng chương trình demo cho bài toán ký và xác thực trong văn bản quản lý Nhà nước

Các kết quả này đã và đang được thử nghiệm tại Sở thông tin truyền thông

Trang 13

Chương 1 TỔNG QUAN VỀ HỆ MÃ

1.1 GIỚI THIỆU CHUNG VỀ MÃ HÓA

1.1.1 An toàn và bảo mật thông tin

Thông tin luôn là yếu tố quan trọng trong các hoạt động của đời sống con người Trong thời đại ngày nay, khi nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và đa dạng, các tiến bộ về điện tử - viễn thông và công nghệ thông tin không ngừng được phát triển ứng dụng để nâng cao chất lượng và lưu lượng truyền tin thì các quan niệm ý tưởng và biện pháp bảo vệ thông tin dữ liệu cũng được đổi mới Bảo vệ an toàn thông tin dữ liệu là một chủ đề rộng, có liên quan đến nhiều lĩnh vực và trong thực tế có thể

có rất nhiều phương pháp được thực hiện để bảo vệ an toàn thông tin dữ liệu Các phương pháp bảo vệ an toàn thông tin dữ liệu có thể được quy tụ vào ba nhóm sau:

- Bảo vệ an toàn thông tin bằng các biện pháp hành chính

- Bảo vệ an toàn thông tin bằng các biện pháp kỹ thuật (phần cứng)

- Bảo vệ an toàn thông tin bằng các biện pháp thuật toán (phần mềm)

Ba nhóm trên có thể được ứng dụng riêng rẽ hoặc phối kết hợp Môi trường khó bảo vệ an toàn thông tin nhất và cũng là môi trường đối phương dễ xâm nhập nhất đó

là môi trường mạng và truyền tin Biện pháp hiệu quả nhất và kinh tế nhất hiện nay trên mạng truyền tin và mạng máy tính là biện pháp thuật toán

An toàn thông tin bao gồm các nội dung sau:

- Tính bí mật: tính kín đáo riêng tư của thông tin

- Tính xác thực của thông tin, bao gồm xác thực đối tác (bài toán nhận danh), xác thực thông tin trao đổi

- Tính trách nhiệm: đảm bảo người gửi thông tin không thể thoái thác trách nhiệm về thông tin mà mình đã gửi

Trang 14

Để đảm bảo an toàn thông tin dữ liệu trên đường truyền tin và trên mạng máy tính có hiệu quả thì điều trước tiên là phải lường trước hoặc dự đoán trước các khả năng không an toàn, khả năng xâm phạm, các sự cố rủi ro có thể xảy ra đối với thông tin dữ liệu được lưu trữ và trao đổi trên đường truyền tin cũng như trên mạng Xác định càng chính xác các nguy cơ nói trên thì càng quyết định được tốt các giải pháp để giảm thiểu các thiệt hại

Có hai loại hành vi xâm phạm thông tin dữ liệu đó là: vi phạm chủ động và vi phạm thụ động Vi phạm thụ động chỉ nhằm mục đích cuối cùng là nắm bắt được thông tin (đánh cắp thông tin) Việc làm đó có khi không biết được nội dung cụ thể nhưng có thể dò ra được người gửi, người nhận nhờ thông tin điều khiển giao thức chứa trong phần đầu các gói tin Kẻ xâm nhập có thể kiểm tra được số lượng, độ dài và tần số trao đổi Vì vậy vi phạm thụ động không làm sai lệch hoặc hủy hoại nội dung thông tin dữ liệu được trao đổi Vi phạm thụ động thường khó phát hiện nhưng có thể có những biện pháp ngăn chặn hiệu quả Vi phạm chủ động là dạng vi phạm có thể làm thay đổi nội dung, xóa bỏ, làm trễ, sắp xếp lại thứ tự hoặc làm lặp lại gói tin tại thời điểm đó hoặc sau đó một thời gian Vi phạm chủ động có thể thêm vào một số thông tin ngoại lai để làm sai lệch nội dung thông tin trao đổi Vi phạm chủ động dễ phát hiện nhưng để ngăn chặn hiệu quả thì khó khăn hơn nhiều

Một thực tế là không có một biện pháp bảo vệ an toàn thông tin dữ liệu nào là

an toàn tuyệt đối Một hệ thống dù được bảo vệ chắc chắn đến đâu cũng không thể đảm bảo là an toàn tuyệt đối

1.1.2 Mục tiêu của an toàn bảo mật thông tin

Bên cạnh việc làm thế nào để che dấu nội dung thông tin thì mã hoá phải đảm bảo các mục tiêu sau:

Trang 15

Tính bí mật (Confjdentialy): Đảm bảo dữ liệu được truyền đi một cách an toàn

và không thể bị lộ thông tin nếu như có ai đó cố tình muốn có được nội dung của dữ liệu gốc ban đầu Chỉ những người được phép mới có khả năng đọc được nội dung thông tin ban đầu

Tính xác thực (Authentication): Giúp cho người nhận dữ liệu xác định được

chắc chắn dữ liệu mà họ nhận là dữ liệu gốc ban đầu Kẻ giả mạo không thể có khả năng để giả dạng một người khác hay nói cách khác không thể mạo danh để gửi dữ liệu Người nhận có khả năng kiểm tra nguồn gốc thông tin mà họ nhận được

Tính toàn vẹn (Integrity): Giúp cho người nhận dữ liệu kiểm tra được rằng dữ

liệu không bị thay đổi trong quá trình truyền đi Kẻ giả mạo không thể có khả năng thay thế dữ liệu ban đầu bằng dữ liệu giả mạo

Tính không thể chối bỏ (Non-repudation): Người gửi hay người nhận không thể

chối bỏ sau khi đã gửi hoặc nhận thông tin

1.1.3 Các chiến lược an toàn hệ thống

- Giới hạn quyền hạn tối thiểu (Last Privilege):

Đây là chiến lược cơ bản nhất theo nguyên tắc này bất kỳ một đối tượng nào cũng chỉ có những quyền hạn nhất định đối với tài nguyên mạng, khi thâm nhập vào mạng đối tượng đó chỉ được sử dụng một số tài nguyên nhất định

- Bảo vệ theo chiều sâu (Defence In Depth):

Nguyên tắc này nhắc nhở chúng ta: Không nên dựa vào một chế độ an toàn nào

dù cho chúng rất mạnh, mà nên tạo nhiều cơ chế an toàn để tương hỗ lẫn nhau

- Nút thắt (Choke Point):

Tạo ra một “cửa khẩu” hẹp, và chỉ cho phép thông tin đi vào hệ thống của mình bằng con đường duy nhất chính là “cửa khẩu” này => phải tổ chức một cơ cấu kiểm soát và điều khiển thông tin đi qua cửa này

Trang 16

- Điểm nối yếu nhất (Weakest Link):

Chiến lược này dựa trên nguyên tắc: “Một dây xích chỉ chắc tại mắt duy nhất, một bức tường chỉ cứng tại điểm yếu nhất”

Kẻ phá hoại thường tìm những chỗ yếu nhất của hệ thống để tấn công, do đó ta cần phải gia cố các yếu điểm của hệ thống Thông thường chúng ta chỉ quan tâm đến

kẻ tấn công trên mạng hơn là kẻ tiếp cận hệ thống, do đó an toàn vật lý được coi là yếu điểm nhất trong hệ thống của chúng ta

- Tính toàn cục:

Các hệ thống an toàn đòi hỏi phải có tính toàn cục của các hệ thống cục bộ Nếu

có một kẻ nào đó có thể bẻ gãy một cơ chế an toàn thì chúng có thể thành công bằng cách tấn công hệ thống tự do của ai đó và sau đó tấn công hệ thống từ nội bộ bên trong

- Tính đa dạng bảo vệ:

Cần phải sử dụng nhiều biện pháp bảo vệ khác nhau cho hệ thống khác nhau, nếu không có kẻ tấn công vào được một hệ thống thì chúng cũng dễ dàng tấn công vào các

hệ thống khác

1.1.4 An toàn thông tin bằng mật mã

Mật mã là một ngành khoa học chuyên nghiên cứu các phương pháp truyền tin

bí mật Mật mã bao gồm: Lập mã và phá mã Lập mã bao gồm hai quá trình: mã hóa và giải mã

Để bảo vệ thông tin trên đường truyền người ta thường biến đổi nó từ dạng nhận thức được sang dạng không nhận thức được trước khi truyền đi trên mạng, quá trình này được gọi là mã hoá thông tin (encryption), ở trạm nhận phải thực hiện quá trình ngược lại, tức là biến đổi thông tin từ dạng không nhận thức được (dữ liệu đã được mã hoá) về dạng nhận thức được (dạng gốc), quá trình này được gọi là giải mã Đây là một lớp bảo vệ thông tin rất quan trọng và được sử dụng rộng rãi trong môi trường mạng

Để bảo vệ thông tin bằng mật mã người ta thường tiếp cận theo hai hướng:

- Theo đường truyền (Link_Oriented_Security)

Trang 17

- Từ nút đến nút (End_to_End)

Theo cách thứ nhất thông tin được mã hoá để bảo vệ trên đường truyền giữa hai nút mà không quan tâm đến nguồn và đích của thông tin đó Ở đây ta lưu ý rằng thông tin chỉ được bảo vệ trên đường truyền, tức là ở mỗi nút đều có quá trình giải mã sau đó

mã hoá để truyền đi tiếp, do đó các nút cần phải được bảo vệ tốt

Ngược lại theo cách thứ hai thông tin trên mạng được bảo vệ trên toàn đường truyền từ nguồn đến đích Thông tin sẽ được mã hoá ngay sau khi mới tạo ra và chỉ được giải mã khi về đến đích Cách này mắc phải nhược điểm là chỉ có dữ liệu của người dùng thì mới có thể mã hóa được còn dữ liệu điều khiển thì giữ nguyên để có thể

xử lý tại các nút

1.1.5 Vai trò của hệ mật mã

Các hệ mật mã phải thực hiện được các vai trò sau:

- Hệ mật mã phải che dấu được nội dung của văn bản rõ (PlainText) để đảm bảo sao cho chỉ người chủ hợp pháp của thông tin mới có quyền truy cập thông tin (Secrety), hay nói cách khác là chống truy nhập không đúng quyền hạn

- Tạo các yếu tố xác thực thông tin, đảm bảo thông tin lưu hành trong hệ thống đến người nhận hợp pháp là xác thực (Authenticity)

- Tổ chức các sơ đồ chữ ký điện tử, đảm bảo không có hiện tượng giả mạo, mạo danh để gửi thông tin trên mạng

Ưu điểm lớn nhất của bất kỳ hệ mật mã nào đó là có thể đánh giá được độ phức tạp tính toán mà “kẻ địch” phải giải quyết bài toán để có thể lấy được thông tin của dữ liệu đã được mã hoá Tuy nhiên mỗi hệ mật mã có một số ưu và nhược điểm khác nhau, nhưng nhờ đánh giá được độ phức tạp tính toán mà ta có thể áp dụng các thuật toán mã hoá khác nhau cho từng ứng dụng cụ thể tuỳ theo độ yêu cầu về độ an toàn

1.1.6 Các thành phần của một hệ mật mã

Định nghĩa :

Một hệ mật mã là một bộ 5 (P,C,K,E,D) thoả mãn các điều kiện sau:

Trang 18

- P: Là một tập hợp hữu hạn các bản rõ, nó được gọi là không gian bản rõ

- C: Là tập hữu hạn các bản mã, nó được gọi là không gian bản mã Mỗi phần tử của C có thể nhận được bằng cách áp dụng phép mã hoá Ek lên một phần tử của P, với

k K

- K: Là tập hữu hạn các khóa hay còn gọi là không gian khóa Đối với mỗi phần tử

k của K được gọi là một khóa Số lượng của không gian khóa phải đủ lớn để “kẻ địch” không có đủ thời gian để thử mọi khóa có thể (phương pháp vét cạn) Đối với mỗi k

K có một quy tắc mã ek: PC và một quy tắc giải mã tương ứng dk D Mỗi ek: P C

và dk: CP là những hàm mà: Dk(ek(x))=x với mọi bản rõ x P

Hình 1.1 Mã hoá với khóa mã và khóa giải giống nhau

1.1.7 Tiêu chuẩn đánh giá hệ mật mã

Để đánh giá một hệ mật mã người ta thường đánh giá thông qua các tiêu chí sau:

* Độ an toàn: Một hệ mật được đưa vào sử dụng điều đầu tiên phải có độ an

toàn cao Ưu điểm của mật mã là có thể đánh giá được độ an toàn thông qua độ an toàn tính toán mà không cần phải cài đặt Một hệ mật được coi là an toàn nếu để phá hệ mật

mã này phải dùng n phép toán Mà để giải quyết n phép toán cần thời gian vô cùng lớn,

không thể chấp nhận được

Một hệ mật mã được gọi là tốt thì nó cần phải đảm bảo các tiêu chuẩn sau:

Trang 19

- Chúng phải có phương pháp bảo vệ mà chỉ dựa trên sự bí mật của các khóa, công khai thuật toán

- Khi cho khóa công khai ek và bản rõ P thì chúng ta dễ dàng tính được

ek(P)=C Ngược lại khi cho dk và bản mã C thì dễ dàng tính được dk(M)=P Khi không biết dk thì không có khả năng để tìm được M từ C, nghĩa là khi cho hàm f: X Y thì việc tính y=f(x) với mọi x thuộc X là dễ còn việc tìm x khi biết y lại là vấn đề khó và

nó được gọi là hàm một chiều

- Bản mã C không được có các đặc điểm gây chú ý, nghi ngờ

* Tốc độ mã và giải mã: Khi đánh giá hệ mật mã chúng ta phải chú ý đến tốc độ

mã và giải mã Hệ mật tốt thì thời gian mã và giải mã nhanh

* Phân phối khóa: Một hệ mật mã phụ thuộc vào khóa, khóa này được truyền

công khai hay truyền khóa bí mật Phân phối khóa bí mật thì chi phí sẽ cao hơn so với các hệ mật có khóa công khai Vì vậy đây cũng là một tiêu chí khi lựa chọn hệ mật mã

Trong mật mã học nói chung thì toán học là công cụ không thể thiếu Các thuật toán mã hóa đều dùng công thức toán học làm nền cơ bản Vì vậy phần tiếp theo sẽ trình bày ngắn gọn về số học và hình học đại số có ứng dụng trực tiếp trong mã hóa thông tin, đặc biệt là trong thuật toán mã hóa RSA

1.2 CƠ SỞ TOÁN HỌC

1.2.1 Cơ sở toán học

Mục này được trình bày trong [2]

Số học là một nhánh của toán học, nhưng nó lại trở thành một trong những công

cụ hữu hiệu nhất trong an ninh máy tính Số học giúp người dùng mua sắm trực tuyến bằng cách bảo vệ số thẻ tín dụng Đó là một trong những thành tựu đáng ghi nhận từ năm 1970 đến nay và đã được áp dụng rộng rãi trên thế giới Những giao thức mã hóa đặc biệt là chữ ký số điện tử đều dựa trên kiến thức số học để tạo khóa, mã hóa và giải

mã An toàn của những giao thức này đều liên quan đến vấn đề trong số học: Số nguyên tố và phân tích thành thừa số

Trang 20

1.2.2 Số nguyên tố và phân tích thành thừa số

1.2.2.1 Phát sinh số nguyên tố

Hai số nguyên tố p và q nên có chiều dài bằng nhau, điều này sẽ làm cho mođun

n khó phân tích hơn là có một trong hai số nguyên tố rất nhỏ Vì vậy, nếu ta chọn dùng module n 512 bít thì mỗi số nguyên tố nên có chiều dài xấp xỉ 256 bít

Trong hầu hết tất cả hệ khóa công khai, kích thước của khóa phù hợp với kích thước những đầu vào cho hàm một chiều, kích thước càng lớn thì sự khác biệt trong việc tính toán hàm theo hướng thuận và hướng nghịch càng lớn

Những hệ mật mã khóa công khai trong thực tế dựa trên những hàm được xem

là một chiều nhưng chúng không được chứng minh có nghĩa là về mặt lý thuyết, một giải thuật sẽ có thể được phục hồi để có thể tính hàm nghịch một cách dễ dàng

Thủ tục kiểm tra số nguyên tố:

int BN_is_prime(const BIGNUM *a, int checks, void (^callback) (int, int, void

*), BN_CTX *ctx_passed, void *cb_arg)

{

return BN_is_prime_fasttest(a, checks, callback, ctx_passed, cb_arg, 0); }

Hàm phát sinh số nguyên tố:

BIGNUM *BN_generatase_prime(BIGNUM *ret, intbits, int safe,

const BIGNUM *add, const BIGNUM *rem, void (*callback)(int, int, void

{if (!probable_prime_dh_safe(md, bits, add, rem, ctx)) goto err;}

else {if (!probable_prime_dh(rnd, bits, add, rem, ctx)) goto err;}

}

Trang 21

Phân tích thừa số nguyên tố là vấn đề khó khăn trong nhiều hệ mã khóa công khai, kể cả RSA Nếu việc phân tích thành thừa số nguyên tố thành công sẽ cho phép tìm ra khóa riêng tức là hệ mật mã bị bẻ khóa Vì vậy bất cứ ai có thể phân tích thành thừa số một muđun đều có thể mã hoá thông điệp và giả mạo chữ ký Nhưng đây là một việc hết sức khó khăn

Phân tích thành thừa số những số nguyên lớn mất nhiều thời gian hơn so với những số nguyên nhỏ Điều này lý giải tại sao kích thước muđun RSA xác định tính bảo mật như thế nào; module càng lớn, việc phân tích thành thừa số nguyên tố càng khó

+ Vấn đề của phân tích thừa số:

Việc phân tích thành thừa số trở nên dễ dàng hơn cách đây 15 năm bởi phần

cứng máy tính ngày càng mạnh hơn và những giải thuật phân tích thừa số nguyên tố

ngày càng phát triển

Sự phát triển về phần cứng làm cho RSA càng bảo mật hơn bởi vì nó làm cho người phá khóa phải phân tích thành thừa số những số lớn hơn trong cùng một thời gian so với trước kia và cho phép người sử dụng dùng một khóa có nhiều số có độ dài lớn hơn Quy luật chung này có thể thất bại trong trường hợp dùng những máy có tốc

độ cao của tương lai để tấn công vào những khóa đời cũ nhờ vào sự tiến bộ của phần cứng

Những giải thuật phân tích thành thừa số tốt hơn sẽ giúp cho vấn đề phá khóa tốt hơn so với việc phát triển phần cứng Để giải quyết những khó khăn trong việc phân

Trang 22

tích thừa số, nhiều nhà nghiên cứu đã tìm ra những phương pháp phân tích thừa số mới Điều này làm cho việc phân tích thừa số dễ dàng hơn đối với những số có kích thước bất kỳ và không quan tâm đến sự phát triển về phần cứng Tuy nhiên, vấn đề này vẫn còn nhiều khó khăn Khi phần cứng ngày càng phát triển mà độ phức tạp của thuật toán không tăng thì việc bảo mật của RSA càng cao vì khóa có kích thước càng lớn

1.2.2.3 Kiểm tra ước số chung lớn nhất

Hàm kiểm tra số nguyên tố nhanh nhất:

int BN_is_prime_fasttest(const BIGNUM *a, int checks, void (*callback)(int, int, void *), BN_CTX *ctx_passed, void *cb_arg, int do_trial_division)

Trang 23

1.2.3 Phép mũ hóa và khai căn modul

Như ở trên ta đã khai báo n là kết quả của phép nhân hai số nguyên tố lớn được sinh ngẫu nhiên Cho m và c là những số nguyên nằm trong khoảng (0,n-1) và e là một

số nguyên lẻ trong khoảng (3,n-1) và nguyên tố cùng nhau với p-1 và q-1

Thao tác mã hóa và giải mã trong hệ mã hóa khóa công khai RSA được thực hiện dựa trên 2 hệ quả và 1 ước lượng sau:

Hệ quả 1: Cho n, m và e Việc tính c = m e mod n là dễ dàng Giá trị m e mod n chính thức là kết quả của nâng lũy thừa e của m, chia cho n và lấy phần dư

Điều này có thể là một phép tính toán phức tạp liên quan tới việc nhân (e-1) số

m và kết quả trả về là một số nguyên lớn, trước khi việc thực hiện phép chia cho n Tuy nhiên hai cách tối ưu hóa sau làm cho việc tính toán trở nên dễ dàng:

- Nhân với một trình tự thích hợp của các giá trị trung gian trước đó, thay vì hơn chỉ bằng m, có thể giảm số lượng các phép nhân để không quá hai lần kích thước của e trong hệ nhị phân

- Chia và lấy phần dư sau khi mỗi phép nhân giữ kết quả trung gian có cùng kích thước như n

Hệ quả 2: Cho n, e, c và những thừa số nguyên tố p, q; việc khôi phục lại giá trị

m sao cho c = m e mod n là dễ dàng

Giá trị m có thể khôi phục từ c bởi thao tác mũ hóa modul với một số nguyên lẻ

d nằm trong khoảng (3,n-1) Đặc biệt, với số d này, biểu thức sau thể hiện cho tất cả m:

m = (me)d mod n

Số nguyên d này thì dễ dàng tính với e, p, q cho trước

Hệ quả 3: Cho n, e và c nhưng không biết những thừa số nguyên tố, việc khôi phục lại m là khó khăn

Phương pháp nhanh nhất thì có sẵn trong việc tính toán khai căn modul dưới điều kiện dựa là n và e là phân tích thừa số n và áp dụng hệ quả 5 để quyết định d Thực sự, bất kỳ phương thức nào quyết định d đều bị chuyển về một cách khác của

Trang 24

việc phân tích thừa số n Đúng là có thể khi mà tồn tại một phương pháp mà tính toán khai căn modul mà không cần phân tích n hoặc quyết định d Nhưng cho đến nay chưa phương pháp nào có thể làm như vậy nhanh hơn việc phân tích thừa số n

Hinh 1.2 Quy trình mã hóa dữ liệu

- Mã hóa: Quá trình chuyển đổi dữ liệu gốc thành dữ liệu được mã hóa sao cho người khác không thể đọc hiểu được

- Giải mã: Là quá trình ngược lại của mã hóa, biến đổi dữ liệu đã được mã hóa thành dạng gốc ban đầu

- Bản mã: Tệp dữ liệu đã được mã hóa

Một hệ thống mã hóa bao gồm các thành phần sau:

PlainText: Bản tin sẽ được mã hóa hay bản tin gốc

CipherText: Bản tin đã được mã hóa hay bản tin mã

Thuật toán mã hóa và giải mã:

Trang 25

Encryption: Quá trình chuyển bản tin gốc sang dạng mật mã

Decryption: Quá trình giải bản tin dạng mật mã trở về bản tin gốc

Cách chọn khóa: Giá trị toán học dùng để thực hiện mã hóa

Nhiều phương pháp mã hóa đã được đưa ra dựa trên những giải thuật toán phức tạp, để tạo khó khăn cho những ai đó muốn phá mật mã mà không cần được ai trao chìa khóa Nói tạo khó khăn là vì trên lý thuyết ta không thể nói việc tìm chìa khóa là vô phương Nhưng nếu trở ngại đủ lớn để làm nản lòng kẻ gian thì đã là một mức độ an toàn tốt

Quá trình mã hóa và giải mã có thể được minh họa theo sơ đồ sau:

Bản tin gốc

Bản tin gốc Bản tin mã

Mã hóa cũng là nền tảng của kỹ thuật chữ ký điện tử

1.3.3 Phân loại mã hóa

Có nhiều cách để phân loại hệ mật mã Dựa vào cách truyền khóa có thể phân các hệ mật mã thành hai loại:

Trang 26

- Hệ mật đối xứng (hay còn gọi là mật mã khóa bí mật): là những hệ mật dùng chung một khóa cả trong quá trình mã hoá dữ liệu và giải mã dữ liệu Do đó khóa phải được giữ bí mật tuyệt đối

- Hệ mật mã bất đối xứng (hay còn gọi là mật mã khóa công khai): Hay còn gọi

là hệ mật mã công khai, các hệ mật này dùng một khóa để mã hoá sau đó dùng một khóa khác để giải mã, nghĩa là khóa để mã hoá và giải mã là khác nhau Các khóa này tạo nên từng cặp chuyển đổi ngược nhau và không có khóa nào có thể suy được từ khóa kia Khóa dùng để mã hoá có thể công khai nhưng khóa dùng để giải mã phải giữ

bí mật

Ngoài ra nếu dựa vào thời gian đưa ra hệ mật mã ta còn có thể phân làm hai loại: Mật mã cổ điển (là hệ mật mã ra đời trước năm 1970) và mật mã hiện đại (ra đời sau năm 1970) Còn nếu dựa vào cách thức tiến hành mã thì hệ mật mã còn được chia làm hai loại là mã dòng (tiến hành mã từng khối dữ liệu, mỗi khối lại dựa vào các khóa khác nhau, các khóa này được sinh ra từ hàm sinh khóa, được gọi là dòng khóa) và mã khối (tiến hành mã từng khối dữ liệu với khóa như nhau)

1.3.3.1 Mã hóa bằng khóa bí mật

Các hệ thống mã hóa với khóa bí mật còn được gọi là mã hóa bằng khóa riêng,

mã hóa đối xứng sử dụng duy nhất một khóa cho cả quá trình mã hóa lẫn quá trình giải

Có hai loại thuật toán mã hóa bí mật:

- Stream Algorithms/Stream Ciphers: các thuật toán hoạt động trên văn bản bình

thường theo từng bit một

- Block Algorithms/Block Ciphers: các thuật toán hoạt động trên văn bản theo

các khối (32 bit, 64 bit, 128 bit, )

- Một số thuật toán đang được sử dụng rộng rãi hiện nay : DES, Triple-DES, RC5, RC6, Rijndael

Trang 27

- Quá trình mã hóa và giải mã bằng cách sử dụng khóa bí mật được minh họa như hình sau:

- - -

- - -

-Quá trình truyền

dữ liệu

Khóa bí mật(chỉ

Có người mã hóa và người giải mã biết)

Quá trình

mã hóa

Quá trình giải mã

Bản tin gốc

Bản tin gốc Bản tin mã

Hình 1.4 Sơ đồ mã hóa và giải mã bằng khóa riêng

1.3.3.2 Mã hóa bằng khóa công khai

Mã hóa bằng khóa công khai còn gọi là mã hóa bất đối xứng hay mã hóa bằng khóa chung Sự khác biệt cơ bản giữa một hệ thống mã hóa bằng khóa bí mật với hệ thống mã hóa bằng khóa công khai là hệ thống mã hóa khóa công khai dùng hai khóa khác nhau để mã hóa và giải mã Do đó, một bộ mã công khai sẽ bao gồm hai khóa: một khóa dành cho người mã hóa thường được công khai, và khóa còn lại dùng cho người giải mã thường được giữ bí mật Như vậy, hệ thống mã hóa với khóa công khai cần có một quá trình sinh ra hai khóa để mã hóa và giải mã thông điệp Các khóa này được xem như là một đôi

Public-key (khóa công khai): được phép công khai mà không phải chịu rủi ro về an toàn Khóa này được dùng để mã hóa thông điệp

Private-key (khóa bí mật): không được để lộ Mỗi thông điệp được mã hóa bằng public-key chỉ có thể giải mã bằng một khóa mật thích hợp

Một số thuật toán mã hóa công khai phổ biến: RSA, Diffie-Hellman Key-Exchange Algorithm (dùng cho việc phân phối và trao đổi khóa)

Trang 28

Quá trình mã hóa và giải mã bằng cách sử dụng khóa công khai được minh họa như hình sau:

- - -

- - -

-Quá trình truyền

dữ liệu

Khóa công khai, chỉ dùng để mã hóa (có thể cho mọi người biết) Khóa mật, chỉ dùng để giải mã (cần

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

Quá trình

mã hóa

Quá trình giải mã

Bản tin gốc

Bản tin gốc Bản tin mã

Hình 1.5 Sơ đồ mã hóa và giải mã bằng khóa công khai

1.3.4 Ưu khuyết điểm của hai phương pháp

1.3.4.1 Phương pháp mã hóa khóa bí mật

Các ưu khuyết điểm của hệ thống khóa bí mật (khóa đối xứng):

megabytes mỗi giây

+ Khóa dùng cho mã hóa khóa đối

xứng tương đối ngắn

+ Được xem như thành phần cơ bản có

thể triển khai để xây dựng các kỹ thuật

mã hóa khác bao gồm khởi tạo các số

+ Trong quá trình truyền thông giữa hai người, khóa phải được giữ bí mật cho

cả hai phía

+ Trong một hệ thống mạng lớn, số lượng khóa cần được quản lý rất nhiều

Do vậy việc quản lý khóa một cách hiệu quả đòi hỏi sử dụng một bộ phận tin cậy thứ ba (TTP: Trusted Third Party)

+ Khóa bí mật cần được thay đổi thường xuyên

Trang 29

ngẫu nhiên, các hàm băm, các kỹ thuật

1.3.4.2 Phương pháp mã hóa khóa công khai

Các ưu khuyết điểm của hệ thống mã hóa khóa công khai:

+ Chỉ có khóa riêng thì cần được giữ bí

mật (tuy nhiên việc xác nhận của các

khóa công khai cần được đảm bảo)

+ Việc quản trị các khóa trên mạng đòi

hỏi sự tồn tại duy nhất một thành phần

tin cậy TTP

+ Cặp khóa riêng và công khai có thể

được sử dụng trong thời gian dài

+ Nhiều mô hình khóa công cộng được

phát triển hình thành nên các kỹ thuật

chữ ký số hiệu quả Khóa được sử dụng

cho hàm kiểu công khai thì nhỏ hơn rất

nhiều so với dùng khóa đối xứng

+ Trong một mạng lớn, số lượng các

khóa cần thiết được quan tâm ít hơn so

với việc dùng khóa đối xứng

+ Tốc độ cho các phương thức mã hóa công khai thì chậm hơn rất nhiều so với các mô hình khóa đối xứng

+ Kích thước khóa lớn hơn rất nhiều so với cơ chế mã hóa khóa đối xứng

+ Không có mô hình khóa công khai nào được chứng minh là an toàn Phần lớn các mô hình mã hóa hiệu quả ngày nay có sự an toàn dựa trên các giả thuyết của một tập nhỏ của các vấn đề

lý thuyết số học

+ Hệ thống mã hóa công khai không có

bề dày lâu đời như hệ thống mã hóa khóa đối xứng, nó chỉ được tìm ra vào giữa khoảng những năm 1970

Trang 30

1.3.5 Hệ mã RSA (R.Rivest, A.Shamir, L.Adleman)

Trong các hệ mật mã công khai thì hệ RSA là hệ có một ứng dụng cực kỳ quan trọng, trong phần này luận văn sẽ trình bày chi tiết về hệ mật RSA

1.3.5.1 Cơ sở lý thuyết

Khái niệm hệ mật mã RSA đã được ra đời năm 1976 bởi các tác giả R.Rivets, A.Shamir, và L.Adleman Hệ mã hoá này dựa trên cơ sở của hai bài toán:

+ Bài toán Logarithm rời rạc (Discrete logarith)

+ Bài toán phân tích thành thừa số nguyên tố

Sơ đồ mã hoá RSA là sơ đồ mã hoá khối, đoạn tin được mã hoá từng khối với mỗi khối có giá trị < n với n là số nguyên đủ lớn

Hệ mã RSA là hệ mã dựa vào bài toán logarithm rời rạc và bài toán phân tích một

số nguyên thành tích các thừa số nguyên tố, là hệ mã được sử dụng rộng rãi nhất Nó cung cấp cả sự bí mật và chữ ký điện tử, và tính bảo mật của nó là cơ sở cho độ khó trong vấn đề tìm thừa số nguyên tố Hệ mã dựa trên thuật toán như sau:

Thuật toán

Bước 1: Tạo khóa

Mỗi thực thể tạo một khóa công khai và một khóa riêng tương ứng

Thực thể A cần làm công việc sau:

1 Tạo 2 số nguyên tố lớn p và q bất kỳ có cỡ xấp xỉ nhau

2 Tính n = p×q và ( n )= (p-1)(q-1)

3 Chọn 1 số nguyên e, 1<e< ( n ) sao cho UCLN(e, ( n )) = 1

4 Sử dụng thuật toán Euclid mở rộng để tính d, 1<d< ( n ) sao cho: e×d 1 (mod ( n ))

5 Khóa công khai của A là (n,e), khóa riêng của A là d

Bước 2: Mã hoá (B mã hoá một văn bản gửi cho A)

Trang 31

1 Nhận đƣợc khóa xác thực công khai của A là (n,e)

2 Trình bày văn bản nhƣ một số nguyên m thuộc [0, n-1]

3 Tính c = me mod n

4 Gửi bản mã c cho A

Bước 3: Giải mã (khôi phục bản rõ m từ bản mã c)

A phải thực hiện công việc sau: Sử dụng khóa riêng d để tính m = cd mod n

Chú ý: Số =BCNN(p-1, q-1) còn đƣợc gọi là số mũ tự nhiên của n có thể đƣợc sử dụng để thay cho ( n )= (p-1)(q-1) trong việc tạo khóa RSA Để ý rằng là một ƣớc số đúng của ( n ) Sử dụng có thể tính toán với giải mã số mũ nhỏ hơn và

kết quả là việc giải mã sẽ nhanh hơn

Trang 32

Chú ý: Có nhiều cách để tăng tốc độ mã hoá và giải mã RSA nhưng với một số

cải tiến thì tốc độ mã hoá/giải mã RSA về căn bản vẫn chậm hơn so với các thuật toán

mã hoá đối xứng Trong thực tế, hệ mã RSA được sử dụng phổ biến để truyền khóa đã

được tạo bằng thuật toán đối xứng và mã hoá những mục dữ liệu nhỏ

Cần chú ý rằng số nguyên tố p và q nên được chọn sao cho việc phân tích n = p×q

là không thể tính toán được, p và q nên có cùng cỡ và phải đủ lớn Một chú ý khác là với số nguyên tố p và q thì hiệu p-q không nên quá nhỏ vì nếu p-q nhỏ thì p q và do vậy p n Khi đó có thể dễ dàng phân tích n thành thừa số bằng cách chia thử cho tất

cả các số nguyên lẻ cho tới n

1.3.5.2 Một số tính chất của hệ RSA

[7] Trong các hệ mật mã RSA, một bản tin có thể được mã hoá trong thời gian tuyến tính Đối với các bản tin dài, độ dài của các số được dùng cho các khóa có thể được coi như là hằng Tương tự như vậy, nâng một số lên luỹ thừa được thực hiện trong thời gian hằng, các số không được phép dài hơn một độ dài hằng Thực ra tham

số này che dấu nhiều chi tiết cài đặt có liên quan đến việc tính toán với các con số dài, chi phí của các phép toán thực sự là một yếu tố ngăn cản sự phổ biến ứng dụng của phương pháp này Phần quan trọng nhất của việc tính toán có liên quan đến việc mã hoá bản tin Nhưng chắc chắn là sẽ không có hệ mã hoá nào hết nếu không tính ra được các khóa của chúng là các số lớn Các khóa cho hệ mã hoá RSA có thể được tạo ra mà không phải tính toán quá nhiều

Mỗi số nguyên tố lớn có thể được phát sinh bằng cách đầu tiên tạo ra một số ngẫu nhiên lớn, sau đó kiểm tra các số kế tiếp cho tới khi tìm được một số nguyên tố Các bước tính p dựa vào thuật toán Euclid

Như phần trên đã trình bày trong hệ mã hoá công khai thì khóa giải mã (private key) kB và các thừa số p,q là được giữ bí mật và sự thành công của phương pháp là tuỳ

Trang 33

thuộc vào kẻ địch có khả năng tìm ra được giá trị của kB hay không nếu cho trước N và

KB Rất khó có thể tìm ra được kB từ KB vì cần phải xác định được p và q Như vậy cần phân tích N ra thành thừa số để tính p và q, nhưng việc phân tích ra thừa số là một việc làm tốn rất nhiều thời gian, với kỹ thuật hiện đại ngày nay thì cần tới hàng triệu năm để phân tích một số có 200 chữ số ra thừa số

Độ an toàn của thuật toán RSA dựa trên cơ sở những khó khăn của việc xác định các thừa số nguyên tố của một số lớn

+ Tính đúng đắn của RSA

Ta có các công thức:

P(M) =Me (mod n)

Và S(C) =Cd (mod n) Định nghĩa các phép biến đổi nghịch đảo Zn thoả các điều kiện trên

M = SA(PA(M)) M=PA(SA(M))

Từ các phương trình:

P(M) =Me (mod n) S(C) = Cd (mod n)

Ngoài ra, Med = M (mod p) nếu M = 0 (mod p)

=> Med = M (mod p) với mọi M

Trang 34

Tương tự, ta có: Med = M (mod q) với mọi M

Theo định lý phần dư Trung Quốc, ta có: Med = M (mod n) với mọi M

+ Tính bảo mật

Tính bảo mật của hệ mã hóa mật mã công khai RSA phần lớn dựa vào việc lấy thừa số các số nguyên lớn Kẻ xâm nhập có thể lấy thừa số môdun n trong một khóa công khai thì kẻ xâm nhập đó có thể suy ra khóa bí mật từ khóa công khai này rồi lấy thừa số các số nguyên lớn dễ dàng thì việc bẻ khóa hệ mật mã công khai RSA cũng dễ dàng nhưng nếu lấy thừa số các số nguyên lớn khó khăn thì việc bẻ khóa cũng gặp rất nhiều khó khăn

Cho đến nay, người ta vẫn chưa tìm ra phương pháp nào dễ dàng hơn trong việc

bẻ mật mã khóa công khai RSA hơn là lấy thừa số môdun n Với một số nguyên n, ta muốn lấy thừa số, có nghĩa là phân tích thành một tích các số nguyên tố và với phép thử tính nguyên sẽ cho ta biết n là hợp số nhưng thông thường không cho ta biết các thừa số nguyên tố của n Đối với việc lấy thừa số nguyên tố khó hơn rất nhiều lần so với việc đơn giản xác định n là số nguyên tố hay hợp số Bằng cách chọn ngẫu nhiên và nhân hai số nguyên tố 100 chữ số với nhau ta có thể tạo ra một khóa công khai không thể nào phá được trong một thời gian khả thi với những công nghệ hiện hành

Nhưng để có thế có được tính bảo mật cao bằng hệ mã hoá mật mã công khai RSA ta cần làm việc với các số nguyên tố có chiều dài 100-200 chữ số, vì việc lấy thừa

số các số nguyên nhỏ hơn là không thực tế Do đó ta có thể tìm ra các số nguyên tố lớn một cách hiệu quả để tạo ra khóa có chiều dài cần thiết

1.3.6 Một số vấn đề về khóa của RSA

1.3.6.1 Chiều dài khóa công khai (khóa không đối xứng)

Những giải thuật mã hoá khóa công khai dựa vào việc phân tích thành thừa số những số nguyên rất lớn, kết quả của việc nhân hai số nguyên tố lớn Những giải thuật này không cố gắng thử từng khóa có khả năng mà cố gắng tìm thừa số của một số

Trang 35

nguyên lớn, nếu tìm được số nguyên có độ lớn thích hợp thì tính bảo mật càng cao Tùy thuộc thời gian bảo mật hữu hiệu cho khóa mà ta có 3 loại chiều dài khóa cho mỗi năm: một cho cá nhân, một cho công ty kinh doanh và một giành cho chính quyền

Khai báo cấu trúc khóa công khai:

typedef struct public_key {

unsigned short modulus_length;

BIGNUM *e;

BIGNUM *n;

} pub_key;

1.3.6.2 Chiều dài khóa riêng

Những giải thuật mã hoá khóa riêng sử dụng một khóa riêng để mã hoá và giải

mã dữ liệu Bạn phải bảo mật khóa, tránh sự truy cập của người khác bởi vì bất kỳ một người nào khác nếu có khóa này sẽ dùng khóa này để giải mã được dữ liệu của bạn Trong mã hoá đối xứng, khóa riêng cũng là khóa chung bởi vì nó mã hoá và giải mã

Trang 36

chỉ cùng một khóa Giải thuật này rất nhanh so với những giải thuật khóa công khai và tiện cho việc đổi mật mã những dòng dữ liệu lớn

Nhìn chung những giải thuật khóa riêng được sử dụng để để mã hoá một khối

dữ liệu tại một thời điểm Những mã khối như DES chẳng hạn, đổi sang mã một khối n

byte đầu vào sang một khối byte mã hoá đầu ra Nếu muốn mã hoá một chuỗi byte, bạn phải thực hiện theo từng khối một Kích thước của khối nhỏ (thường bằng 8, 16, 24), nhưng đối với những giá trị lớn hơn phải được mã hoá mỗi khối một ít

Sự hạn chế của mã hoá khóa riêng là giữa hai người quan hệ phải có sự nhất trí theo một khóa và khóa cũng phải được giữ bí mật với người khác Chính vì vậy mã hoá khóa riêng thường kết hợp với mã hoá khóa chung để truyền thông riêng những giá trị khóa và khóa khởi tạo

Khai báo cấu trúc của khóa bí mật:

typedef struct private_key {

unsigned short modulus_length;

độ quản lý khóa hơn là tấn công vào giải thuật mã hóa của chính chương trình mã hóa

Những ai muốn ký vào một thông điệp hay để nhận một thông điệp được mã hóa phải có một cặp khóa Người ta có thể có nhiều khóa Chẳng hạn, một người có một khóa liên kết với nơi làm việc của người đó và một khóa bí mật cho mục đích sử dụng cá nhân

Trang 37

Mỗi người sử dụng nên phát sinh ra một cặp khóa bí mật của riêng mình Nhưng đây là một bảo mật đầy rủi ro vì nó có dính dáng đến việc truyền khóa bí mật trên mạng cũng như sẽ có kết cục không hay nếu như một kẻ tấn công xâm nhập vào vị trí phát sinh khóa Với mỗi điểm trên mạng có khả năng phát sinh khóa cục bộ, vì vậy khóa bí mật không bao giờ được truyền đi và không mở rộng khóa nguồn để đảm bảo tin cậy trung thực Tất nhiên phần mềm phát sinh khóa cục bộ phải đáng tin cậy Những hệ thống nhận diện khóa bảo mật chẳng hạn như Kerberos thường không cho phép phát sinh bộ nhưng thay vào đó sử dụng một máy chủ trung tâm để phát sinh khóa

Một khi phát sinh khóa, người sử dụng phải đăng ký khóa chung của người đó

cho một số nhà quản trị trung tâm, được gọi là tổ chức cung cấp chứng nhận Tại đây,

họ trả về cho người sử dụng một chứng nhận chứng thực khóa chung của người sử dụng Hầu hết những người sử dụng không thu được một chứng nhận cho cùng một khóa tương tự

1.3.6.4 Cách tìm khóa ngẫu nhiên

Bạn cần những số ngẫu nhiên để tìm hai số nguyên tố ngẫu nhiên cho module n Nếu bạn dùng phương pháp dự đoán để phát sinh số nguyên tố, kẻ xâm nhập có thể tấn công bằng cách cố gắng tái tạo lại quá trình phát sinh khóa

Những số ngẫu nhiên thu được từ một tiến trình vật lý nói chung là tốt nhất Người ta có thể dùng một thiết bị phần cứng (điôt, …) được gắn thêm vào mạch của máy tính cho mục đích này Một phương án khác là sử dụng những môi trường vật lý của người sử dụng máy tính (định giờ phím nhấn được đo bằng micrô giây, …) Nhưng bằng bất kỳ phương pháp nào thì những số ngẫu nhiên được phát sinh vẫn chứa những

sự tương quan thống kê

Chú ý: Người ta không cần những số ngẫu nhiên để xác định những khóa chung

và khóa riêng sau khi chọn module n Họ có thể chọn một giá trị tuỳ ý cho khóa công khai

Trang 38

Phát sinh khóa ngẫu nhiên:

int RSA_generấte_keys(char *privatekey, char *publiccertificate, int

*privatekey_length, int *publiccertificate_length, int primeBitSize)

Hình 1.6 Kiểm tra khóa

Sơ đồ bảo vệ khóa thông qua hệ thống bảo mật:

Trang 39

Hình 1.7 Hình thức kiểm tra khóa bảo mật

1.3.6.5 Phân bố khóa bảo mật

Việc tiến hành bảo vệ thông tin truyền trên mạng đƣợc tổ chức nhiều lần trên nhiều mức khác nhau:

Giữa thiết bị đầu với thiết bị đầu (end - to - end encryption)

Giữa thiết bị đầu với máy chủ (terminal - to - host encryption)

Giữa các máy chủ với nhau (host - to - host encryption)

Hình 1.8 Bảo mật tại nơi ra và nơi nhận vào của hai người sử dụng

End – to – end encryption

Terminal – to – host encryption

Trang 40

Hình 1.9 Bảo mật tại nơi ra của người gửi và tại nơi nhận trước khi vào hệ thống của người nhận

Hình 1.10 Kết hợp bảo mật tại các máy chủ

1.3.7 Module trong hệ thống RSA

1.3.7.1 Kích thước của module

Kích thước tốt nhất của một module RSA là dựa trên nhu cầu bảo mật của người

đó Module càng lớn thì tính bảo mật càng cao Trước hết, người ta nên chọn chiều dài một module trong khoảng xem xét của nhu cầu cần bảo mật của người đó, chẳng hạn như giá trị của dữ liệu được bảo vệ và chiều dài cần thiết phải bảo vệ

Một kết quả của phép nghiên cứu tính bảo mật đã thu được bằng việc lấy chiều dài module được đưa ra bởi Rivest, trong phạm vi của module lôgarit riêng biệt của một số nguyên tố được áp dụng rất tốt trong RSA Theo đánh giá của Rivest, một

Khóa được chia sẻ bởi một

terminal và host i

Computer network

E/D

KH

Ks E/D

Khóa được chia sẻ bởi một host i và host j

Ngày đăng: 23/06/2015, 11:59

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nguyễn Xuân Dũng, Bảo mật thông tin mô hình và ứng dụng, NXB Thống kê, 2007 Sách, tạp chí
Tiêu đề: Bảo mật thông tin mô hình và ứng dụng
Nhà XB: NXB Thống kê
[2] Phạm Huy Điển, Hà Huy Khóai, Mã hoá thông tin cơ sở toán học &amp; ứng dụng, Viện toán học, 2004 Sách, tạp chí
Tiêu đề: Mã hoá thông tin cơ sở toán học & ứng dụng
[3] Trịnh Nhật Tiến, Giáo trình an toàn dữ liệu và mã hóa, Đại học Công nghệ - Đại học Quốc Gia Hà Nội, 2006 Sách, tạp chí
Tiêu đề: Giáo trình an toàn dữ liệu và mã hóa
[4] Phan Huy Khánh, Hồ Phan Hiếu, Trường Đại học Bách khoa- Đại học Đà Nẵng, Giải pháp ứng dụng chữ ký điện tử trong quá trình nhận và gửi văn bản, Tạp chí khoa học và công nghệ, Đại học Đà Nẵng – số 5(34),2009.Tiếng Anh Sách, tạp chí
Tiêu đề: Giải pháp ứng dụng chữ ký điện tử trong quá trình nhận và gửi văn bản
[5] William Stallings, Cryptography and Network Security: Principles and Practice, Fourth Edition, Prentice Hall, 2006 Khác
[6] Cyber Vote, Report on Review of Cryptographic Protocols and Security Techniques for Electronic Voting, 2002 Khác
[7] Fagen Li, Yupu Hu, and Shuanggen Liu, Efficient and provably secure multi- recipient signcryption from bilinear pairings, Cryptology ePrint Archive, Report 2006/238 – 250.Trang Web Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.3. Sơ đồ mã hóa và giải mã - Lý thuyết mã hóa và vấn đề xác minh thông tin
Hình 1.3. Sơ đồ mã hóa và giải mã (Trang 25)
Hình 1.4. Sơ đồ mã hóa và giải mã bằng khóa riêng   1.3.3.2.  Mã hóa bằng khóa công khai - Lý thuyết mã hóa và vấn đề xác minh thông tin
Hình 1.4. Sơ đồ mã hóa và giải mã bằng khóa riêng 1.3.3.2. Mã hóa bằng khóa công khai (Trang 27)
Hình 1.6. Kiểm tra khóa - Lý thuyết mã hóa và vấn đề xác minh thông tin
Hình 1.6. Kiểm tra khóa (Trang 38)
Sơ đồ bảo vệ khóa thông qua hệ thống bảo mật: - Lý thuyết mã hóa và vấn đề xác minh thông tin
Sơ đồ b ảo vệ khóa thông qua hệ thống bảo mật: (Trang 38)
Hình 1.8. Bảo mật tại nơi ra và nơi nhận vào của hai người sử dụng - Lý thuyết mã hóa và vấn đề xác minh thông tin
Hình 1.8. Bảo mật tại nơi ra và nơi nhận vào của hai người sử dụng (Trang 39)
Hình 1.7. Hình thức kiểm tra khóa bảo mật  1.3.6.5. Phân bố khóa bảo mật - Lý thuyết mã hóa và vấn đề xác minh thông tin
Hình 1.7. Hình thức kiểm tra khóa bảo mật 1.3.6.5. Phân bố khóa bảo mật (Trang 39)
Hình 1.9. Bảo mật tại nơi ra của người gửi và  tại nơi nhận trước khi vào hệ thống của người nhận - Lý thuyết mã hóa và vấn đề xác minh thông tin
Hình 1.9. Bảo mật tại nơi ra của người gửi và tại nơi nhận trước khi vào hệ thống của người nhận (Trang 40)
Hình 2.1. Tổng quan về chữ ký số - Lý thuyết mã hóa và vấn đề xác minh thông tin
Hình 2.1. Tổng quan về chữ ký số (Trang 46)
Hình 2.2. Minh họa chữ ký số của bên gửi cho thông báo M - Lý thuyết mã hóa và vấn đề xác minh thông tin
Hình 2.2. Minh họa chữ ký số của bên gửi cho thông báo M (Trang 50)
Hình 2.4. Ký văn bản - Lý thuyết mã hóa và vấn đề xác minh thông tin
Hình 2.4. Ký văn bản (Trang 61)
Hình 2.5. Xác thực chữ ký - Lý thuyết mã hóa và vấn đề xác minh thông tin
Hình 2.5. Xác thực chữ ký (Trang 62)
Hình 3.1. Sơ đồ chương trình chữ ký số - Lý thuyết mã hóa và vấn đề xác minh thông tin
Hình 3.1. Sơ đồ chương trình chữ ký số (Trang 78)
Hình 3.2. Quy trình thực hiện ký văn bản khi gửi có xác thực - Lý thuyết mã hóa và vấn đề xác minh thông tin
Hình 3.2. Quy trình thực hiện ký văn bản khi gửi có xác thực (Trang 79)
Hình 3.3 Giao diện chính - Lý thuyết mã hóa và vấn đề xác minh thông tin
Hình 3.3 Giao diện chính (Trang 79)

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

w