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

Chữ ký số và ứng dụng trong quản lý văn bản điện tử

73 1,1K 3

Đ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 73
Dung lượng 2,21 MB

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

Nội dung

Các phương pháp mã hóa, chữ ký số, chứng chỉ số, cơ sở hạ tầng khóa công khai và các ứng dụng của chữ ký số, chứng chỉ số trong các giao dịch điện tử là một trong những giải pháp giải qu

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

HÀ NỘI – 2011

Trang 3

MỤC LỤC

Danh mục các từ viết tắt 3

Danh mục các hình vẽ 4

MỞ ĐẦU 5

Chương 1 An toàn thông tin, Hệ mã hoá khoá công khai 8

1.1.1 Tại sao phải bảo mật an toàn thông tin 8

1.1.2 Các giải pháp bảo mật an toàn thông tin [2] 8

1.2 Hệ mã hoá 9

1.2.1 Khái niệm mã hoá dữ liệu 9

1.2.2 Phân loại hệ mã hoá 9

1.2.2.1 Hệ mã hoá khóa đối xứng 10

1.2.2.2 Hệ mã hoá khóa công khai 11

1.3 Cở sở toán học dùng trong hệ mật mã [1] 13

1.3.1 Ước chung lớn nhất, bội chung nhỏ nhất 13

1.3.2 Số nguyên tố 15

1.3.3 Quan hệ đồng dư 15

1.3.4 Cấu trúc nhóm 17

1.3.4.1 Phép nhân, phép luỹ thừa, phép chia 17

1.3.4.2 Phần tử sinh 18

1.4 Một số hệ mã hoá khoá công khai 19

1.4.1 Hệ mã hoá khoá công khai RABIN [1] 19

1.4.1.1 Sơ đồ 19

1.4.1.2 Ví dụ minh họa 20

1.4.2 Hệ mã hóa khoá công khai ELGAML [2] 23

1.4.2.1 Sơ đồ 23

1.4.2.2 Ví dụ minh hoạ 24

1.4.3 Hệ mã hóa khoá công khai RSA 24

1.4.3.1 sơ đồ 24

1.4.3.2 Ví dụ minh hoạ 25

1.4.3.3 Độ an toàn 26

1.5 Kết luận chương 26

Chương 2 Chữ ký số 28

2.1 Giới thiệu 28

2.2 Khái niệm 28

2.2.1 Khái niệm 28

2.2.2 Sơ đồ chữ ký số [2] 28

2.2.3 Các ưu điểm của chữ ký số 29

2.2.4 Quá trình thực hiện chữ ký số khóa công khai 30

2.3 Hàm băm [2, 6] 31

2.3.1 Khái niệm 31

2.3.2 Các hàm băm thông dụng 32

2.3.2.1 Thuật toán hàm băm MD5 32

2.3.2.2 Hàm băm SHS/ SHA 34

2.4 Thuật toán chữ ký số [1, 2, 7] 35

Trang 4

2

2.4.1 Thuật toán chữ ký RSA 35

2.4.1.1 Sơ đồ 35

2.4.1.2 Ví dụ minh hoạ 36

2.4.1.3 Độ an toàn của chữ ký RSA 36

2.4.2 Thuật toán chữ ký DSA/ DSS 37

2.4.2.1 Sơ đồ 37

2.4.2.2 Ví dụ 38

2.4.2.3 Độ an toàn của chữ ký DSA 38

2.5 Kết luận chương 39

Chương 3 Chứng thực khóa công khai 41

3.1 Giới thiệu 41

3.2 Chứng thực khoá công khai 41

3.2.1 Khái niệm 41

3.2.2 Các nhà cung cấp dịch vụ chữ ký số, chứng thực chữ ký số tại Việt Nam 43

3.3 Chứng thực khóa công khai X.509 [3] 44

3.3.1 Sự chứng thực của người dùng 45

3.3.1.1 Giới thiệu khuôn dạng chứng chỉ X.509 45

3.3.1.2 Sự chứng thực người dùng 47

3.3.2 Huỷ bỏ sự chứng thực 49

3.3.3 Các thủ tục chứng thực 50

3.4 Kết luận chương 51

Chương 4 Xây dựng chương trình ứng dụng 53

4.1 Giới thiệu 53

4.2 Các chức năng của chương trình 53

4.3 Cài đặt chương trình 58

4.3.1 Môi trường xây dựng ứng dụng 58

4.3.2 Quản trị hệ thống Admin 59

4.3.3 Người sử dụng 62

4.4 Kết luận chương 68

Kết quả và hướng phát triển 69

Danh mục các tài liệu tham khảo 71

Trang 5

Danh mục các từ viết tắt

online OCSP Online Certificate Status Protocol

certificate revocation list CRL

Trang 6

4

Danh mục các hình vẽ

Hình 1.1 Quá trình thực hiện cơ chế mã hoá 10

Hình 1.2 Quá trình thực hiện mã hoá khoá công khai 12

Hình 2.1 Sơ đồ mô tả quá trình ký và gửi các tệp văn bản 30

Hình 2.2 Sơ đồ mô tả quá trình nhận các tệp văn bản 31

Hình 2.3 Minh họa hàm băm 32

Hình 2.4: Đặc điểm của các thuật toán băm SHA 35

Hình 3.1 Khuôn dạng chứng chỉ X.509 phiên bản 3 46

Hình 3.2 Ví dụ minh hoạ sơ đồ thứ tự phân cấp 49

Hình 3.3 Các thủ tục chứng thực 51

Hình 4.1: Giao diện chương trình ứng dụng 54

Hình 4.2: Thực đơn Hệ thống của chương trình 54

Hình 4.3: Thực đơn Tệp của chương trình 55

Hình 4.4: Thực đơn Chỉnh sửa của chương trình 55

Hình 4.5: Thực đơn Chức năng của chương trình 56

Hình 4.6 và hình 4.7: Admin thực hiện Đăng nhập hệ thống 59

Hình 4.7 và hình 4.8: Admin thực hiện Đăng ký người dùng mới 60

Hình 4.9, hình 4.10 và hình 4.11: Admin thực hiện Tạo khóa cho người dùng mới 61

Hình 4.12 và hình 4.13: Admin thực hiện Quản lý người dùng 62

Hình 4.14: Thực hiện mở tệp mới và soạn thảo văn bản 63

Hình 4.15: Người sử dụng thực hiện ký và lưu văn bản 63

Hình 4.16 và hình 4.17: Thực hiện mở tệp Giấy triệu tập nhận được 64

Hình 4.18: Chọn File khoá công khai để xác thực 65

Hình 4.19 và hình 4.20: Thực hiện tải khóa công khai theo Tên tài khoản (theo User Name của người sử dụng) 65

Hình 4.21: Chọn nơi lưu khoá công khai tải về 66

Hình 4.22: Xác thực văn bản theo khoá công khai tải về 66

Hình 4.23: Thông báo xác thực văn bản không bị giả mạo và Thông tin người ký 66 Hình 4.24: Thông báo văn bản đã bị giả mạo trên đường truyền 67

Hình 4.25 và hình 4.26: Thông báo văn bản không bị thay đổi nội dung hoặc bị giả mạo trên đường truyền và người ký không có trong cơ sở dữ liệu quản lý 67

Trang 7

MỞ ĐẦU

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

Cùng với sự phát triển của công nghệ thông tin và truyền thông, giao dịch điện tử

đã và đang phát triển mạnh mẽ trên thế giới thay thế dần các giao dịch truyền thống Rất nhiều nước có chủ trương vừa phát triển các hoạt động cung ứng dịch vụ điện tử, vừa xây dựng hệ thống pháp luật đầy đủ, minh bạch để đảm bảo giá trị pháp lý của các thông điệp điện tử và giao dịch điện tử Tại Việt Nam, giao dịch điện tử đã được áp dụng tại các lĩnh vực thuế, hải quan, thương mại điện tử,

Giao dịch điện tử là một lĩnh vực tương đối mới tại Việt Nam, xuất hiện cùng với

sự phổ cập mạng Internet và máy tính từ cuối những năm 1990 đầu những năm 2000 Qua quá trình hình thành và phát triển, lĩnh vực giao dịch điện tử tại Việt Nam đã được đặc biệt quan tâm phát triển Khung pháp lý cho lĩnh vực này đã từng bước được hoàn thiện, Quốc hội đã thông qua Luật thương mại, Luật giao dịch điện tử, Luật công nghệ thông tin Thủ tướng chính phủ đã ban hành Quyết định số 1073/QĐ-TTg ngày 12/7/2010 Phê duyệt

kế hoạch tổng thể phát triển thương mại điện tử giai đoạn 2011 – 2015 Việc ban hành các văn bản pháp lý này đã thể hiện rõ sự quyết tâm của Nhà nước trong việc thúc đẩy nhanh, mạnh các giao dịch điện tử, tạo động lực cho sự phát triển của nền kinh tế

Trong các hoạt động của giao dịch điện tử thì việc đảm bảo an toàn, an ninh thông tin, dữ liệu cho người dùng là rất cần thiết và là ưu tiên hàng đầu Theo kết quả khảo sát thương mại điện tử Việt Nam 2010 của Bộ Công thương, trong 7 trở ngại khiến thương mại điện tử chưa phát triển thì vấn đề an ninh, an toàn thông tin chiếm vị trí gần cao nhất (chỉ sau trở ngại về môi trường xã hội và tập quán kinh doanh) Các phương pháp mã hóa, chữ ký số, chứng chỉ số, cơ sở hạ tầng khóa công khai và các ứng dụng của chữ ký số, chứng chỉ số trong các giao dịch điện tử là một trong những giải pháp giải quyết vấn đề này Từ thực tế này, tôi chọn đề tài: “Chữ ký số và ứng dụng trong quản

lý văn bản điện tử” Đây sẽ là đề tài có ý nghĩa thực tế rất lớn bởi vì sau khi hành làng pháp lý cho giao dịch điện tử được xây dựng, hạ tầng kỹ thuật và nhân lực hình thành thì mục tiêu tiếp theo sẽ là triển khai giao dịch điện tử sâu rộng đến toàn bộ các hoạt động của nền kinh tế mà song hành cùng đó là vấn đề bảo đảm an toàn, an ninh thông tin trong các hoạt động Trong hoàn cảnh Việt Nam hiện nay, việc phát triển các giao dịch điện tử chậm trễ một phần là do vấn đề an toàn, an ninh thông tin trong giao dịch chưa tạo được sự quan tâm đúng mức Luận văn sẽ tập trung phân tích áp dụng các giải

Trang 8

6

pháp kỹ thuật như mã hóa, chữ ký số, chứng chỉ số nhằm đảm bảo an toàn, an ninh cho

các giao dịch điện tử, thúc đẩy giao dịch điện tử tại Việt Nam tiếp tục phát triển

2 Mục tiêu nghiên cứu

 Nghiên cứu các giải pháp mã hoá để bảo mật thông tin và những phương pháp, kỹ

thuật tạo chữ kí số trên các tài liệu, văn bản điện tử để xác thực nguồn gốc tài liệu hay văn bản của người gửi

 Xây dựng một chương trình ứng dụng có khả năng bảo mật nội dung thông tin dưới dạng văn bản điện tử, tạo chữ ký trên văn bản điện tử cần thiết và chứng thực chữ ký

số trên văn bản điện tử; góp phần phục vụ những người quản lý đơn vị trao đổi thông tin mật với các đối tác, điều hành công việc từ xa

Luận văn sẽ tập trung nghiên cứu và làm rõ hơn về ý tưởng, cơ sở toán học, thuật toán và độ phức tạp của mã hoá nói chung và của mã hoá khoá công khai nói riêng

3 Phương pháp nghiên cứu

Nghiên cứu các tài liệu về mã hoá, hệ mật mã của các tác giả trong và ngoài nước, các bài báo, thông tin trên mạng, …

Nghiên cứu ngôn ngữ lập trình hướng đối tượng Visual basic 6, Visual C#

2008 để

viết một ứng dụng về chữ ký số

4 Tổng quan luận văn

Luận văn được trình bày trong 4 chương, phần kết quả và hướng phát triển

Chương 1 An toàn thông tin, Hệ mã hoá khoá công khai

Chương này giới thiệu tổng quan về an toàn thông tin và hệ mã hoá khoá công khai Giới thiệu cơ sở toán học và một số hệ mã hoá khoá công khai phổ biến như Rabin, Elgmal, RSA Trong đó giới thiệu chi tiết về hệ mã hoá khoá công khai RSA về cách mã hoá, giải mã và độ an toàn của thuật toán

Chương 2 Chữ ký số

Chương này giới thiệu về khái niệm chữ ký số và sơ đồ chữ ký số tổng quan Sau

đó giới thiệu một số hàm băm phổ biến dùng trong thuật toán chữ ký số như MD5, SHA

-1 Tiếp đó giới thiệu chi tiết về hai thuật toán chữ ký số được sử dụng rộng rãi hiện nay là RSA và DSA

Trang 9

Từ cơ sở lý thuyết đã trình bày ở trên, chương này của luận văn tiến hành cài đặt thuật toán ký RSA Chữ ký được hình thành trên cơ sở kết hợp thuật toán băm MD5 với thuật toán ký RSA

5 Các kí hiệu dùng trong luận văn

e k Thuật toán mã hoá

d k Thuật toán giải mã

gcd Ước chung lớn nhất

lcm Bội chung nhỏ nhất

Sig k Thuật toán ký

Ver k Thuật toán kiểm tra chữ ký

Trang 10

8

Chương 1 An toàn thông tin, Hệ mã hoá khoá công khai

1.1 An toàn thông tin

1.1.1 Tại sao phải bảo mật an toàn thông tin

Ngày nay với sự phát triển bùng nổ của công nghệ thông tin, hầu hết các thông tin của doanh nghiệp như chiến lược kinh doanh, các thông tin về khách hàng, nhà cung cấp, tài chính, mức lương nhân viên,… đều được lưu trữ trên hệ thống máy tính Cùng với sự phát triển của doanh nghiệp là những đòi hỏi ngày càng cao của môi trường kinh doanh yêu cầu doanh nghiệp cần phải chia sẻ thông tin của mình cho nhiều đối tượng khác nhau qua Internet hay Intranet Việc mất mát, rò rỉ thông tin có thể ảnh hưởng nghiêm trọng đến tài chính, danh tiếng của công ty và quan hệ với khách hàng

Các phương thức tấn công thông qua mạng ngày càng tinh vi, phức tạp có thể dẫn đến mất mát thông tin, thậm chí có thể làm sụp đổ hoàn toàn hệ thống thông tin của doanh nghiệp Tóm lại, có bốn yêu cầu cơ bản về bảo mật truyền thông:

 Đảm bảo tin cậy: Các nội dung thông tin không bị theo dõi hoặc sao chép bởi

những thực thể không được uỷ thác

 Đảm bảo toàn vẹn: Các nội dung thông tin không bị thay đổi bởi những thực thể

không được uỷ thác

 Sự chứng minh xác thực: Không ai có thể tự trá hình như là một bên hợp pháp

trong quá trình trao đổi tin

 Không thể thoái thác trách nhiệm: Người gửi tin không thể thoái thác về những sự

việc và những nội dung thông tin mà thực tế họ đã gửi đi

1.1.2 Các giải pháp bảo mật an toàn thông tin [2]

Trước những nguy cơ hiểm hoạ về an toàn thông tin, phần này đề xuất các giải pháp bảm mật về an toàn thông tin:

a) Phương pháp che giấu, bảo đảm toàn vẹn và xác thực thông tin

 ”Che” dữ liệu (Mã hóa): Thay đổi hình dạng dữ liệu gốc, người khác khó nhận ra

 “Giấu” dữ liệu: Cất giấu dữ liệu này trong môi trường dữ liệu khác

 Bảo đảm toàn vẹn và xác thực thông tin

Trang 11

Kỹ thuật: Mã hóa, Hàm băm, Giấu tin, Ký số, Thủy ký, Giao thức bảo toàn thông tin ,

Giao thức xác thực thông tin,

b) Phương pháp kiểm soát lối vào ra của thông tin

 Kiểm soát, ngăn chặn các thông tin vào ra Hệ thống máy tính

 Kiểm soát, cấp quyền sử dụng các thông tin trong Hệ thống máy tính

 Kiểm soát, tìm diệt “sâu bọ” (Virus, “Trojan horse”, ) vào ra Hệ thống máy tính

Kỹ thuật: Mật khẩu (PassWord), Tường lửa (FireWall), Mạng riêng ảo (Virtual Private

Network), Nhận dạng, Xác thực thực thể, Cấp quyền hạn

c) Phát hiện và xử lý các lỗ hổng trong An toàn thông tin

 Các “lỗ hổng” trong các Thuật toán hay giao thức mật mã, giấu tin

 Các “lỗ hổng” trong các Giao thức mạng

 Các “lỗ hổng” trong các Hệ điều hành mạng

 Các “lỗ hổng” trong các ứng dụng

d) Phối hợp các phương pháp

Xây dựng “hành lang”, “đường đi” An toàn cho thông tin gồm 3 phần:

 Hạ tầng mật mã khóa công khai (Public Key InfraStructure - PKI)

 Kiểm soát lối vào - ra: Mật khẩu, Tường lửa, Mạng riêng ảo, Cấp quyền hạn

 Kiểm soát và Xử lý các lỗ hổng

1.2 Hệ mã hoá

1.2.1 Khái niệm mã hoá dữ liệu

Mã hoá dữ liệu là mã hóa với mục đích làm cho dữ liệu không thể đọc được bởi bất

cứ ai, ngoại trừ những ai được phép đọc Mã hóa sử dụng thuật toán và khóa để biến đổi

dữ liệu từ hình thức đơn giản rõ ràng (plain hay cleartext) sang hình thức mật mã vô nghĩa (code hay ciphertext) Chỉ có những ai có thông tin giải mã thì mới giải mã và đọc được

dữ liệu

1.2.2 Phân loại hệ mã hoá

Có nhiều cách phân loại hệ mã hoá, sau đây xin giới thiệu một cách đó là: Phân loại mã hoá theo đặc trưng của khoá Theo cách phân loại nay thì hệ mã hoá được chia thành hai loại đó là:

 Hệ mã hóa khóa đối xứng (có khoá riêng và khoá chung trùng nhau)

 Hệ mã hóa khóa phi đối xứng (Khóa công khai có khoá riêng và khoá chung khác nhau)

Trang 12

10

1.2.2.1 Hệ mã hoá khóa đối xứng

Hệ mã hoá khóa đối xứng là Hệ mã hóa mà biết được khóa mã hoá thì có thể “dễ”

tính được khóa giải mã và ngược lại

Trong hệ thống mã hoá đối xứng, trước khi truyền dữ liệu, 2 bên gửi và nhận phải thoả thuận về khoá dùng chung cho quá trình mã hoá và giải mã Sau đó, bên gửi sẽ mã hoá bản rõ (Plaintext) bằng cách sử dụng khoá bí mật này và gửi thông điệp đã mã hoá cho bên nhận Bên nhận sau khi nhận được thông điệp đã mã hoá sẽ sử dụng chính khoá

bí mật mà hai bên thoả thuận để giải mã và lấy lại bản rõ (Plaintext)

Hình 1.1 Quá trình thực hiện cơ chế mã hoá

Hình 1.1 là quá trình tiến hành trao đổi thông tin giữa bên gửi và bên nhận thông qua việc sử dụng phương pháp mã hoá khoá đối xứng Trong quá trình này, thì thành phần quan trọng nhất cần phải được giữ bí mật chính là khoá 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á và giải mã phải tiến hành bí mật Chúng ta có thể thấy rằng thuật toán mã hoá khoá đố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

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 bits Từng nhóm bits 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ã hoá khối( Block Cipher) Theo đó, từng khối dữ liệu trong văn bản ban đầu được thay thế bằng một khối dữ liệu khác có cùng độ dài Đố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 bits

 Loại thứ hai tác động lên bản rõ theo từng bit một Các thuật toán áp dụng được gọi là mã hoá dòng (Stream Cipher) Theo đó, dữ liệu của văn bản được mã hoá từng bit một 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á

Trang 13

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: viết tắt của Data Encryption Standard Với DES, bản rõ (Plaintext) được

mã hoá theo từng khối 64 bits và sử dụng một khoá là 64 bits, nhưng thực tế thì chỉ có 56 bits là thực sự được dùng để tạo khoá, 8 bits còn lại dùng để kiểm tra tính chẵn, lẻ DES là một thuật toán được sử dụng rộng rãi nhất trên thế giới Hiện tại DES không còn được đánh giá cao do kích thước của khoá quá nhỏ 56 bits, và dễ dàng bị phá vỡ

 Triple DES (3DES): 3DES cải thiện độ mạnh của DES bằng việc sử dụng một quá trình mã hoá và giải mã sử dụng 3 khoá Khối 64-bits của bản rõ đầu tiên 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 và kết quả của quá trình mã hoá trên để mã hoá C = EK3(DK2(EK1(P)))

 Vấn đề thỏa thuận khoá và quản lý khóa chung là khó khăn và phức tạp Người gửi

và người nhận phải luôn thống nhất với nhau về khoá Việc thay đổi khoá là rất khó và dễ bị lộ Khóa chung phải được gửi cho nhau trên kênh an toàn

Ngoài ra với hệ mã hoá khoá đối xứng không thể thực hiện chữ ký điện tử (sẽ được trình bày trong chương 2) do chỉ có một khoá chung duy nhất Vì vậy không thể dùng trong giao dịch điện tử

1.2.2.2 Hệ mã hoá khóa công khai

Hệ mã hoá khoá công khai là hệ mã hoá có khoá lập mã và khoá giải mã khác

nhau, biết được khoá này “khó” tính được khoá kia

Trang 14

12

Hệ mã hoá này được gọi là hệ mã hoá khoá công khai vì khoá lập mã được công

khai (gọi là khoá công khai – Public key), Khoá giải mã giữ bí mật (gọi là khoá riêng –

Private key) Điều quan trọng đối với hệ thống là không thể tìm ra khóa bí mật nếu chỉ

biết khóa công khai

Hình 1.2 Quá trình thực hiện mã hoá khoá công khai

Quá trình truyền và sử dụng mã hoá khoá công khai được thực hiện như sau:

 Bên gửi yêu cầu cung cấp hoặc tự tìm khoá công khai của bên nhận trên một server chịu trách nhiệm quản lý khoá

 Sau đó hai bên thống nhất thuật toán dùng để mã hoá dữ liệu, bên gửi sử dụng khoá công khai của bên nhận cùng với thuật toán đã thống nhất để mã hoá thông tin được gửi đi

 Khi nhận được thông tin đã mã hoá, bên nhận sử dụng khoá bí mật của mình để giải mã và lấy ra thông tin ban đầu

Vậy là với sự ra đời của Mã hoá công khai thì khoá được quản lý một cách linh hoạt

và hiệu quả hơn Người sử dụng chỉ cần bảo vệ khoá bí mật

Một số hệ mã hóa khóa công khai phổ biến như RSA, Rabin, Egmal,

Do đó hệ mã hoá khoá công khai có ưu điểm và nhược điểm sau:

a Ưu điểm

 Đơn giản trong việc lưu chuyển khóa: Chỉ cần đăng ký một khóa công khai và mọi người sẽ lấy khóa này về để trao đổi thông tin với người đăng ký Vì vậy không cần kênh bí mật để truyền khóa

Trang 15

 Mỗi người chỉ cần một cặp khóa công khai – khóa bí mật là có thể trao đổi thông tin với tất cả mọi người

 Là tiền đề cho sự ra đời của chữ ký điện tử và các phương pháp chứng thực điện tử

b Nhược điểm

Mã hóa và giải mã chậm hơn hệ mã hóa khóa đối xứng.

1.3 Cở sở toán học dùng trong hệ mật mã [1]

1.3.1 Ước chung lớn nhất, bội chung nhỏ nhất

Số nguyên d được gọi là ước chung của các số nguyên a1, a2, …, an , nếu nó là

ước của tất cả các số đó

Một ước chung d >0 của các số nguyên a1, a2, …, an, trong đó mọi ước chung của

a1, a2, …, an đều là ước của d, thì d được gọi là ước chung lớn nhất (UCLN) của a1, a2,

…, an Ký hiệu d = gcd (a1, a2, …, an) hay d = UCLN(a1, a2, …, an) Nếu gcd (a1, a2, …,

an) = 1, thì các số a1, a2, …, an được gọi là nguyên tố cùng nhau

Số nguyên m được gọi là bội chung của các số nguyên a1, a2, …, an , nếu nó là bội của tất cả các số đó

Một bội chung m >0 của các số nguyên a1, a2, …, an, trong đó mọi bội chung của

a1, a2, …, an đều là bội của m, thì m được goi là bội chung nhỏ nhất (BCNN) của a1, a2,

…, an Ký hiệu m = lcm (a1, a2, …, an) hay m = BCNN (a1, a2, …, an)

Ví dụ: Cho a =20, b =25, gcd (20, 25) = 5, lcm (20, 25) = 100

Hai số 20 và 13 là nguyên tố cùng nhau, vì gcd (20, 13) = 1

Thuật toán Euclide tìm ước chung lớn nhất

INPUT: Hai số nguyên không âm a và b , với a = b

OUTPUT: Ước số chung lớn nhất của a và b

1 Trong khi còn b > 0, thực hiện:

1.1 đặt r ← a mod b, a ←b , b ← r

2 Cho ra kết quả (a)

Ví dụ: Tìm gcd (528, 234) bằng thuật toán Euclide

Ta có bảng mô phỏng kết quả sau:

Trang 16

Ta biết rằng nếu gcd (a,b) = d, thì phương trình bất định: a*x + b*y = d

có nghiệm nguyên (x, y), và một nghiệm nguyên (x, y) như vậy có thể tìm được bởi thuật toán Euclide mở rộng như sau:

Thuật toán Euclide mở rộng :

INPUT: Hai số nguyên không âm a và b với a = b

OUTPUT: d = gcd (a,b) và hai số x,y sao cho a*x + b*y = d

1 Nếu b = 0 thì đặt d ← a , x ←1, y ← 0, và cho ra (d, x, y)

3 Trong khi còn b > 0, thực hiện:

3.1 q←a div b, r ← a mod b, x ← x

2, và cho ra kết quả (d, x, y)

Ví dụ: Dùng thuật toán Euclide mở rộng tính gcd (528, 234)

528 = 2*234 + 60

234 = 3*60 + 54

60 = 1* 54 + 6

54 = 9*6 + 0

Trang 17

Thuật toán Euclide tìm ước chung lớn nhất của hai số là cơ sở trong bài toán phân

tích một số nguyên n thành thừa số các số nguyên tố

1.3.2 Số nguyên tố

Số nguyên tố là số tự nhiên lớn hơn 1 và chỉ có hai ước là 1 và chính nó

Số nguyên tố có vai trò và ý nghĩa to lớn trong số học và lý thuyết mật mã Bài toán kiểm tra tính nguyên tố của một số nguyên dương n và phân tích số n thành thừa số nguyên tố là các bài toán rất được quan tâm

Phương pháp kiểm tra tính nguyên tố: Phương pháp cổ điển và phương pháp

„xác suất‟

Phương pháp phân tích số nguyên n thành thừa số các số nguyên tố thực chất

là bài toán tìm ước chung lớn nhất của hai số

Cơ sở toán học chung cho hệ mã hóa khóa công khai đó là các định lý về số nguyên tố như định lý Fecma, định lý Euler, định lý số dư Trung Hoa,

1.3.3 Quan hệ đồng dư

Tất cả các bài toán trong hệ mã hóa khóa công khai đều dùng đến quan hệ đồng dư Đầu tiên ta xét khái niệm về đồng dư theo modulo

Cho các số nguyên a, b, m (n > 0) Ta nói rằng a và b “đồng dư” với nhau theo

modulo m, nếu chia a và b cho m nhận được cùng một số dư (hoặc a – b chia hết cho m)

Ký hiệu: a ≡ b (mod m)

Ví dụ:

23 ≡ 11 (mod 4) vì chia 23 và 11 cho 4, được cùng số dư là 3

Phương trình đồng dư tuyến tính

Phương trình đồng dư tuyến tính có dạng: a*x = b (mod m ) (1)

Trong đó a, b, n là các số nguyên, m > 0, x là ẩn số Phương trình (1) có nghiệm khi và chỉ khi d = gcd (a, m ) / b, và khi đó nó có đúng d nghiệm theo modulo m

Bây giờ ta xét hệ thống các phương trình đồng dư tuyến tính

Trang 18

m a

x

m a

x

mod

mod

mod

2 2

1 1

Định lý Số dư Trung Hoa

Định lý số dư Trung Hoa là tên gọi do người phương Tây đặt cho định lý này Người Trung Hoa gọi nó là bài toán Hàn Tín điểm binh Sử ký Tư Mã Thiên viết rằng khi Hàn Tín điểm quân số, ông cho quân lính xếp hàng 3, hàng 5, hàng 7 rồi báo cáo số dư

Từ đó ông tính chính xác quân số đến từng người

Gần đây, định lý số dư Trung Hoa có nhiều ứng dụng trong các bài toán về số nguyên lớn áp dụng vào lý thuyết mật mã

Định lý: Giả sử n > 1 là số nguyên dương và m1, m2, , mn là n số nguyên lớn hơn

1 đôi một nguyên tố cùng nhau Đặt M = m1 * m2 * * mn Cho trước các số nguyên a1,

a2, , an khi đó tồn tài duy nhất một số nguyên x (0  x < M) thoả mãn các phương trình đồng dư sau đây:

m a

x

m a

x

mod

mod

mod

2 2

1 1

Bản chất của bài toán Hàn Tín điểm binh là việc giải hệ phương trình đồng dư bậc nhất:

m a

x

m a

x

mod

mod

mod

2 2

1 1

Hệ phương trình đồng dư nói trên có nghiệm duy nhất theo mođun

M = m1*m2* *mk, trong đó m1, m2, , mn đôi một nguyên tố cùng nhau Trong bài toán Hàn Tín n = 3 và m1 = 3, m2 = 5, m3 = 7

Ta xét phương trình đồng dư bậc hai có dạng đơn giản sau: x2 ≡ a (mod m)

Trang 19

Trong đó m là một số nguyên dương, a là số nguyên với gcd (a, m) =1, và x là ẩn

số Phương trình đó không phải bao giờ cũng có nghiệm, khi nó có nghiệm thì ta nói a là một thặng dư bậc hai mod m ;

Bây giờ ta xét việc giải phương trình đồng dư bậc hai: x2≡ a (mod m) (2)

trong một trường hợp đặc biệt khi m = p là số nguyên tố có dạng p = 4*n +3, tức p đồng dư với 3 theo mod 4, và a là một số nguyên nguyên tố với p Theo tiêu chuẩn Euler

ta biết phương trình (2) có nghiệm khi và chỉ khi a(p-1)/2≡ 1 (mod p) Khi đó ta có:

1.3.4.1 Phép nhân, phép luỹ thừa, phép chia

, sao cho k * k-1 = 1 mod p Nghĩa là mọi số nguyên trong tập này đều

có phần tử nghịch đảo bội (multiplicative inverse)

Hai tính chất này khẳng định rằng Z(p)*

là một nhóm với phép nhân mod p Tương

tự, chúng ta có thể khẳng định nó cũng là nhóm với phép luỹ thừa, vì phép luỹ thừa thực chất là bội của các phép nhân

Ví dụ 63 = 6 * 6 * 6 (Lưu ý: 0 được loại khỏi Z(p)* bởi vì nó không có phần tử nghịch đảo bội Nếu ta bổ sung 0 vào Z(p)*, thì chúng ta nhận được Z(p), chứa tất cả các

số dư theo mod p, kể cả 0)

Trang 20

18

Z(11)* là đóng với phép nhân và luỹ thừa, các phần tử đều có phần tử nghịch đảo nên nó

là một nhóm

Trên tập Z(p)*, chúng ta có thể định nghĩa thêm phép toán khác, phép chia Chúng ta

định nghĩa phép chia cho k, ký hiệu là „/‟ như là phép nhân với phần tử nghịch đảo của k, đó là

, g được gọi là phần tử sinh (generator) mod p nếu tập

tất cả các luỹ thừa của g tạo ra tập tất cả các phần tử của Z(p)* Nghĩa là: {g1

mod p, g2mod p, , gp-1 mod p} = Z(p)*

Ta thấy Z(p)* = {1, 2, , p-1} biểu diễn cho một tập (được sắp xếp lại) các số g1, g2,

g3, , gp-1 được tính theo mod p Để cho tiện lợi chúng ta có thể viết mod p ở bên ngoài

cặp ngoặc đơn, hoặc có thể bỏ qua: {g1

, g2, , gp-1} mod p = Z(p)* hoặc có thể viết ngắn gọn {g1

, g2, , gp-1} = Z(p)*

Ví dụ, 3 là phần tử sinh của Z(7)*, bởi vì 31

= 3 mod 7, 32 = 9 ≡ mod 7 = 2, 33 = 27 mod 7 ≡ 6, 34 = 81 mod 7 = 4, 35 = 243 ≡ mod 7 = 5, 36 = 729 ≡ mod 7 = 1 Hiển nhiên

= 56 mod 7, nên Z(7)* là nhóm có bậc 6 mod 7 và không có

số luỹ thừa nào khác có tính chất trên

Nói chung, với số nguyên tố q, 1 < q < p, G(q) được xem như là một nhóm (hoặc nhóm con) bậc q mod p, nếu với phần tử sinh g, 1 < g < p, chúng ta có {g1

Trang 21

Cấu trúc nhóm là cơ sở trong các tính toán số dư theo modulo trong hệ mật mã khóa công khai

1.4 Một số hệ mã hoá khoá công khai

1.4.1 Hệ mã hoá khoá công khai RABIN [1]

Với mỗi k K, ta có hàm mã hóa ek: P  C và hàm giải mã dk: C  P

sao cho dk (ek ( x )) = x, x  P

 Tạo khóa

Hệ mã hóa là bộ gồm 5 thành phần {P, C, K, E, D}, trong đó:

+ P = C = Zn, trong đó n là một số nguyên Blum, tính n = p*q;

+ Chọn khóa công khai là n và b (0  b  n-1); chọn khóa bí mật là p và q;

+ Chọn p và q là hai số nguyên tố lớn khác nhau có tính chất sau: p  3 (mod 4);

2

b b

Trang 22

Vận dụng sơ đồ mã hóa Rabin thực hiện ví dụ minh họa:

+ Hai số nguyên tố khác nhau: p = 7; q = 11;

Trang 23

Phần tử nghịch đảo của 7 theo mod 11 là 8, vì: 7 * 8 1 mod 11  b2 = 8

Nghiệm của hệ này là:

z  (a1 * M1 * b1 + a2 * M2 * b2) mod m với: a1 = 529; a2 = 12.167

 (529 * 11 * 2 + 12.167 * 7 * 8) mod 77

Trang 25

 - [(11 * 638 mod 77) + (681 * 352 mod 77)] (mod 77)

 -(11 + 56) (mod 77)

 - 67 (mod 77)

 10 ( vì: -67 = 77 * (-1) + 10)

Như vậy:

+ Với z = 67 thì x = 23 - 43 mod 77 = 67 – 43 mod 77 = 24

+ Với z = 32 thì x = 23 - 43 mod 77 = 32 – 43 mod 77 = 66

+ Với z = 45 thì x = 23 - 43 mod 77 = 45 – 43 mod 77 = 2

+ Với z = 10 thì x = 23 - 43 mod 77 = 10 – 43 mod 77 = 44

Việc chọn giá trị nào trong trong 4 giá trị tìm được làm bản rõ là tùy thuộc vào những đặc trưng khác của bản rõ mà người giải mã nhận biết (thí dụ bản rõ dưới dạng số phải có biểu diễn nhị phân là mã của một văn bản tiếng Anh thông thường) Trong trường hợp này chọn bản rõ là 44

1.4.2 Hệ mã hóa khoá công khai ELGAML [2]

Với mỗi k K, ta có hàm mã hóa ek: P  C và hàm giải mã dk: C  P

sao cho dk (ek ( x )) = x, x  P

*Tạo cặp khóa (bí mật, công khai) (a h) :

Chọn số nguyên tố p sao cho bài toán logarit rời rạc trong Z p là “khó” giải Chọn phần tử nguyên thuỷ g Z p * Đặt P = Z p *, C = Z p*Z p*

Chọn khóa bí mật là a Z p* Tính khóa công khai hg a mod p

Định nghĩa tập khóa: = {(p, g a, h): hg a mod p} Các giá trị p, g, h được công khai, phải giữ bí mật a

Với Bản rõ x P và Bản mã y C, với khóa k định nghĩa:

* Lập mã:

Trang 26

1.4.3 Hệ mã hóa khoá công khai RSA

 Hệ mã hóa khóa công khai được đề xuất bởi Ron Rivest, Adi Shamir và Len Adleman (MIT) vào năm 1978,

 Hệ mã hóa sử dụng phương pháp mã hóa khối với mỗi khối là một số nguyên < n:

Thông thường kích cỡ n là 1024 bit ≈ 309 chữ số thập phân

Với mỗi k K, ta có hàm mã hóa ek: P  C và hàm giải mã dk: C  P

sao cho dk (ek ( x )) = x, x  P

Giả sử khối bản gốc của người gửi là M và khối bản mã của người nhận là C, quá trình

mã hóa và giải mã RSA là: C = M e mod n và M = C d mod n

Cả người gửi và người nhận phải biết giá trị n Người gửi biết giá trị b và chỉ người nhận biết giá trị a Đây là một thuật toán mã hóa khóa công khai với khóa công khai KU = {b,n} và khóa riêng KR = {a,n}

Trang 27

 Tạo cặp khóa (bí mật, công khai) (a, b) :

- Chọn bí mật số nguyên tố lớn p, q, tính n = p * q, công khai n, đặt P = C = Zn

- Tính bí mật (n) = (p-1)*(q-1) Chọn khóa công khai b < (n), nguyên tố với (n)

- Khóa bí mật a là phần tử nghịch đảo của b theo mod (n): a*b  1 (mod (n))

- Tập cặp khóa (bí mật, công khai) K = (a, b)/ a, b  Zn , a*b  1 (mod (n))

+ Khóa bí mật a là phần tử nghịch đảo của btheo mod (n):

a * b  1 (mod (n)) Từ a * b  1 (mod (n)), ta nhận được khóa bí mật a = 791

 Mã hoá

Bản rõ số:

T H P T T R U N G V U O N G

19 07 15 19 19 17 20 13 06 21 20 14 13 06 Chia thông điệp thành 7 khối, mỗi khối gồm 4 chữ số biểu diễn một số nguyên mi

Trang 28

1.4.3.3 Độ an toàn

 Độ bảo mật của RSA là cao nhờ ở mức độ khó của việc phân tích một số lớn ra các thừa số nguyên tố

 Để có thể giải mã cần phải có được các giá trị p, q tạo nên giá trị n

 Với các thuật toán hiện nay, thời gian cần thiết để phân tích một số lớn ra thừa số tăng theo hàm mũ với số đó

 Với n đủ lớn, việc này hoàn toàn không dễ gì ngay cả với các máy tính có tốc độ cực lớn

Tại thời điểm năm 2005, số lớn nhất có thể được phân tích ra thừa số nguyên tố có độ dài 663 bit với phương pháp phân tán trong khi khoá của RSA có độ dài từ 1024 bit đến

và trao đổi thông tin đảm bảo tính bí mật, toàn vẹn, sẵn sàng và đáng tin cậy

Các giải pháp bảo mật an toàn thông tin phổ biến được biết đến hiện nay là che , giấu, bảo đảm toàn vẹn , xác thực thông tin ; kiểm soát lối vào ra của thông tin ; Phát hiện, xử lý các lỗ hổng và phối hợp các giải pháp Một trong những kỹ thuật phổ biến trong các

phương pháp bảo mật an toàn thông tin là “che” thông tin hay còn gọi là mã hoá thông

tin Mã hoá thông tin có mục đích ngoại trừ những người được phép thì không ai có thể đọc được dữ liệu Các hệ mã hoá dữ liệu gồm: Hệ mã hóa khóa đối xứng và Hệ mã hóa

Trang 29

khóa phi đối xứng Một số hệ mã hoá phi đối xứng (mã hoá khoá công khai) phổ biến đang áp dụng hiện nay là Hệ mã hoá khoá công khai RABIN, ELGAML, RSA, Trong

đó, thuật toán RSA có đặc tính hấp dẫn: một cặp khoá có thể cùng sử dụng cho cả hai mục đích đó là mã hoá (ví dụ sử dụng khi truyền một khoá đối xứng) và chữ ký số Ví dụ nếu các thành viên A và B muốn truyền thông an toàn với nhau và B có một cặp khoá RSA Bằng cách sử dụng một cặp khoá, B có thể ký một thông báo gửi cho A; B sinh ra một khoá riêng của B và A kiểm tra chữ ký bằng khoá công khai của B Vấn đề này sẽ được

đề cập kĩ hơn ở chương tiếp theo

Trang 30

28

Chương 2 Chữ ký số

2.1 Giới thiệu

Một trong những ứng dụng của kỹ thuật mã hoá khóa công khai là chữ ký số Chữ

ký số được phát triển và ứng dụng rộng rãi hiện nay dựa trên một số thuật toán như RSA, DSA, ElGamal, SHA là cơ sở quan trọng để hình thành hạ tầng khóa công khai cho phép người sử dụng của một mạng công cộng không bảo mật như Internet trao đổi dữ liệu

và tiền một cách an toàn, thông qua việc sử dụng một cặp khóa công khai và bí mật được cấp phát Các khái niệm, quá trình thực hiện chữ ký số và thuật toán sử dụng trong chữ ký

số sẽ được giới thiệu chi tiết tại phần tiếp theo

2.2 Khái niệm

2.2.1 Khái niệm

Chữ ký số là mô hình sử dụng các kỹ thuật mật mã để gắn với mỗi người sử dụng

một cặp khóa công khai - bí mật và qua đó có thể ký các văn bản điện tử cũng như trao đổi các thông tin mật Khóa công khai thường được phân phối thông qua chứng thực khóa công khai Quá trình sử dụng chữ ký số bao gồm 2 quá trình: tạo chữ ký và kiểm tra chữ

V là tập các thuật toán kiểm thử

Với mỗi khóa k K, có thuật toán ký Sig k S, Sig k : P A, có thuật toán kiểm

tra chữ ký Ver k V, Ver k : P A đúng, sai, thoả mãn điều kiện sau: Với mọi x

Trang 31

2.2.3 Các ưu điểm của chữ ký số

Việc sử dụng chữ ký số mang lại một số lợi điểm sau:

 Khả năng xác định được nguồn gốc

Các hệ thống mật mã hóa khóa công khai cho phép mật mã hóa văn bản với khóa bí mật mà chỉ có người chủ của khóa biết Để sử dụng chữ ký số thì văn bản cần phải được

mã hóa bằng hàm băm Sau đó dùng khóa bí mật của người chủ khóa để mã hóa, khi đó ta được chữ ký số Khi cần kiểm tra, bên nhận giải mã để lấy lại chuỗi gốc (được sinh ra qua hàm băm ban đầu) và kiểm tra với hàm băm của văn bản nhận được Nếu 2 giá trị này khớp nhau thì bên nhận có thể tin tưởng rằng văn bản xuất phát từ người sở hữu khóa bí mật Tất nhiên là chúng ta không thể đảm bảo 100% là văn bản không bị giả mạo vì hệ thống vẫn có thể bị phá vỡ Vấn đề xác thực đặc biệt quan trọng đối với các giao dịch tài chính

Ví dụ: Một chi nhánh ngân hàng gửi một gói tin về trung tâm dưới dạng (a,b), trong

đó a là số tài khoản và b là số tiền chuyển vào tài khoản đó Một kẻ lừa đảo có thể gửi

một số tiền nào đó để lấy nội dung gói tin và truyền lại gói tin thu được nhiều lần để thu lợi (tấn công truyền lại gói tin)

 Tính toàn vẹn

Cả hai bên tham gia vào quá trình thông tin đều có thể tin tưởng là văn bản không bị sửa đổi trong khi truyền vì nếu văn bản bị thay đổi thì hàm băm cũng sẽ thay đổi và lập tức bị phát hiện Quá trình mã hóa sẽ ẩn nội dung của gói tin đối với bên thứ 3 nhưng không ngăn cản được việc thay đổi nội dung của nó

Ví dụ: tiếp tục ví dụ như ở trên, một kẻ lừa đảo gửi 1.000.000 đồng vào tài khoản của

a, chặn gói tin (a,b) mà chi nhánh gửi về trung tâm rồi gửi gói tin (a,b 3

) thay thế để lập

tức trở thành triệu phú

Nhưng đó là vấn đề bảo mật của chi nhánh đối với trung tâm ngân hàng không hẳn liên quan đến tính toàn vẹn của thông tin gửi từ người gửi tới chi nhánh, bởi thông tin đã được băm và mã hóa để gửi đến đúng đích của nó tức chi nhánh, vấn đề còn lại vấn đề bảo mật của chi nhánh tới trung tâm của nó

 Tính không thể phủ nhận

Trong giao dịch, một bên có thể từ chối nhận một văn bản nào đó là do mình gửi Để ngăn ngừa khả năng này, bên nhận có thể yêu cầu bên gửi phải gửi kèm chữ ký số với văn bản Khi có tranh chấp, bên nhận sẽ dùng chữ ký này như một chứng cứ để bên thứ ba

Trang 32

30

giải quyết Tuy nhiên, khóa bí mật vẫn có thể bị lộ và tính không thể phủ nhận cũng không thể đạt được hoàn toàn

2.2.4 Quá trình thực hiện chữ ký số khóa công khai

Chữ ký số dựa trên nền tảng mật mã hóa khóa công khai Để có thể trao đổi thông tin trong môi trường này, mỗi người sử dụng có một cặp khóa: một công khai và một bí mật Khóa công khai được công bố rộng rãi còn khóa bí mật phải được giữ kín và khó có thể tìm được khóa bí mật trong thời gian chấp nhận được

Toàn bộ quá trình gồm 3 thuật toán:

 Thuật toán tạo khóa bí mật, khoá công khai

 Thuật toán tạo chữ ký số bằng khoá bí mật

 Thuật toán kiểm tra chữ ký số bằng khóa công khai

Hình 2.1 Sơ đồ mô tả quá trình ký và gửi các tệp văn bản

Trang 33

Hình 2.2 Sơ đồ mô tả quá trình nhận các tệp văn bản

Xét ví dụ: B muốn gửi thông tin cho A và muốn A biết thông tin đó thực sự do chính

B gửi B gửi cho A bản tin kèm với chữ ký số Chữ ký này được tạo ra với khóa bí mật của B Khi nhận được bản tin, A kiểm tra sự thống nhất giữa bản tin và chữ ký bằng thuật toán kiểm tra sử dụng khóa công khai của B Bản chất của thuật toán tạo chữ ký đảm bảo nếu chỉ cho trước bản tin, rất khó tạo ra được chữ ký của B nếu không biết khóa bí mật của B Nếu phép thử cho kết quả đúng thì A có thể tin tưởng rằng bản tin thực sự do B gửi

2.3 Hàm băm [2, 6]

2.3.1 Khái niệm

Hàm băm là thuật toán không dùng khóa để mã hóa (ở đây dùng thuật ngữ

“băm” thay cho “mã hóa”), nó có nhiệm vụ băm tài liệu và cho kết quả là một giá trị

“băm” có kích thước cố định

Trang 34

32

Hình 2.3 Minh họa hàm băm

2.3.2 Các hàm băm thông dụng

Các hàm băm dòng MD (MD2, MD4, MD5) do Rivest đề xuất Giá trị băm theo

các thuật toán này có độ dài cố định là 128 bit Hàm băm MD4 đưa ra năm 1990 Một

năm sau phiên bản mạnh hơn là MD5 cũng được đề xuất

Hàm băm an toàn SHA, phức tạp hơn nhiều, cũng dựa trên phương pháp tương

tự, được công bố trong Hồ sơ Liên bang năm 1992 Năm 1993 được chấp nhận làm tiêu chuẩn của Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST) Giá trị băm theo thuật toán

này có độ dài cố định là 160 bit

2.3.2.1 Thuật toán hàm băm MD5

a Thuật toán hàm băm MD4

Input: Thông điệp là xâu a có độ dài b bit

Output: Bản băm, đại diện cho thông điệp gốc, độ dài cố định 128 bit

a) Tóm tắt thuật toán

Bước 1: Khởi tạo các thanh ghi

Có 4 thanh ghi để tính toán nhằm đưa ra các đoạn mã: A, B, C, D Đại diện thông điệp được xây dựng như sự kết nối của các thanh ghi Mỗi thanh ghi có độ dài 32 bit Các thanh ghi này được khởi tạo bằng giá trị dạng hecxa

word A := 67 45 23 01 word B := ef cd ab 89

word C := 98 ba dc fe word D := 10 32 54 76

Bước 2:

+ Tạo “Thông điệp đệm” M cho xâu a

+ Chia mảng M thành các khối 512 bit, đưa từng khối 512 bit vào mảng T[j]

+ Mỗi lần xử lý một khối 512 bit (16 word ), lặp lại N/16 lần

b Thuật toán hàm băm MD5

- MD5 (Message-Digest algorithm 5) là một hàm băm mật mã được sử dụng phổ

biến, được thiết kể bởi Giáo sư Ronald L Rivest tại trường MIT vào năm 1991 để thay thế cho hàm băm trước đó là MD4 (1990) Là một chuẩn Internet (RFC 1321), MD5 đã được dùng trong nhiều ứng dụng bảo mật và cũng được dùng phổ biến để kiểm tra tính

Trang 35

toàn vẹn của tập tin Cũng như các hàm băm khác như MD4 và SHS (Secure Hash Standard), MD5 là phương pháp có ưu điểm tốc độ xử lý rất nhanh, thích hợp với các

thông điệp dài và cho ra giá trị băm dài 128 bit

- Trong MD5, thông điệp ban đầu X sẽ được mở rộng thành dãy bit X có độ dài là bội của 512 Dãy bit X gồm các thành phần được sắp thứ tự như sau: Dãy bit X ban đầu, một bit 1, dãy d bit 0 (d được tính sao cho dãy X cuối cùng là bội của 512), dãy 64 bit l biểu diễn chiều dài của thông điệp Đơn vị xử lý trong MD5 là các từ 32-bit, nên dãy bit

X ở trên sẽ được biểu diễn thành dãy các từ X[i] 32-bit sau:

X=X[0] X[1] X[2] …X[N−1] , với N là bội của 16

Dưới đây là các ví dụ mô tả các kết quả sau khi thực hiện hàm băm MD5

- MD5("xin chao") = 2201c07c37755e663c07335cfd2f44c6

Chỉ cần một thay đổi nhỏ (chẳng hạn viết hoa chữ x thành X) cũng làm thay đổi hoàn toàn kết quả trả về :

- MD5("Xin chao") = e05c1d9f05f5b9eb56fe907c36f469d8

Thuật toán cũng cho kết quả đối với chuỗi rỗng :

- MD5(" ") = d41d8cd98f00b204e9800998ecf8427e

c Phương pháp MD5 có những ưu điểm sau so với phương pháp MD4

- Thay vì có 3 chu kỳ biến đổi như trong MD4, MD5 bổ sung thêm chu kỳ thứ 4 để tăng mức độ an toàn

- Trong mỗi thao tác của từng chu kỳ, MD5 sử dụng hằng số ti phân biệt, trong khi

MD4 sử dụng hằng số chung cho mọi thao tác trong cùng chu kỳ biến đổi

- Hàm G ở chu kỳ 2 của MD4: G(X,Y,Z) = ((XZ) (XY)  (YZ)) được thay thế bằng G(X,Y,Z) = (XZ) (Y(Z)) để giảm tính đối xứng

- Mỗi bước biến đổi trong từng chu kỳ chịu ảnh hưởng kết quả của bước biến đổi trước, vì vậy làm tăng nhanh tốc độ của hiệu ứng lan truyền (avalanche)

- Các hệ số dịch chuyển xoay vòng trong mỗi chu kỳ được tối ưu hóa nhằm tăng tốc

độ hiệu ứng lan truyền Ngoài ra, mỗi chu kỳ sử dụng 4 hệ số dịch chuyển khác nhau

- Lý do MD5 được thiết kế thay thế cho MD4 là vì các phân tích chỉ ra rằng phương pháp MD4 có vẻ không an toàn Den Boer và Bosselaers đã chỉ ra các điểm yếu trong MD4 trong một bài báo được đăng vào năm 1991và một tấn công xung đột đầu tiên được tìm thấy bởi Han Dobbertin vào năm 1996

Trang 36

2.3.2.2 Hàm băm SHS/ SHA

- SHS (Secure Hash Standard) là chuẩn gồm tập hợp các thuật toán băm mật mã an toàn (Secure Hash Algorithm – SHA) như SHA-1, SHA-224, SHA-256, SHA-384, SHA-

512 do NIST( viện công nghệ quốc gia Mỹ) và NSA( National Security Agency/Central

Security Service, viết tắt NSA/CSS: cơ quan an ninh quốc gia Hoa Kỳ/ Cục an ninh Trung

ương) xây dựng

- Chuẩn hàm băm SHA phức tạp và chậm hơn dòng MD SHA được thiết kế để chạy trên máy kiến trúc endian lớn hơn là trên máy endian nhỏ SHA tạo ra bản tóm lược thông điệp có kích thước 160 bit, sử dụng 5 thanh ghi 32 bit

INPUT : Thông điệp (văn bản) có độ dài tùy ý

OUTPUT : Bản băm, đại diện cho thông điệp gốc, độ dài cố định 160 bit

- Phương pháp SHA-1 (cũng như SHA-0) được xây dựng trên cùng cơ sở với phương pháp MD4 và MD5 Tuy nhiên, phương pháp SHA-1 sử dụng trên hệ thống Big-endian( lưu trữ các byte đầu tiên quan trọng nhất) thay vì Little-endian(lưu trữ các byte đầu tiên it quan trọng) (endian chính là được đề cập đến trật tự của cácđịa chỉ cá nhân phụ trong các đại diện của một mục dữ liệu lớn hơn và được lưu trữ trong bộ nhớ bên ngoài (hoặc đôi khi gửi đi trên một kết nối nối tiếp)) như phương pháp MD4 và MD5 Ngoài ra, hàm băm SHA-1 tạo ra thông điệp rút gọn kết quả có độ dài 160 bit nên thường được sử dụng

- Phương pháp SHA-1 giống với MD5 (cải tiến từ MD4) nhưng thông điệp tóm tắt được tạo ra có độ dài 160 bit Dưới đây là một số điểm so sánh giữa MD5 và SHA-1:

 Giống như MD5, SHA-1 cũng thêm chu kỳ thứ 4 để tăng mức độ an toàn cho thuật toán Tuy nhiên, chu kỳ 4 của SHA-1 sử dụng lại hàm f của chu kỳ thứ

2

 Trong SHA-1, 20 bước biến đổi trong cùng một chu kỳ sử dụng cùng một hàng số K[t] Trong khi đó, mỗi bước biến đổi trong cùng một chu kỳ của MD5

sử dụng các hằng số khác nhau

Ngày đăng: 25/03/2015, 09:36

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2] Trịnh nhật Tiến, “Bài giảng về Mật mã và An toàn dữ liệu” tại khoa CNTT - Trường Đại học công nghệ, 2009.Tiếng Anh Sách, tạp chí
Tiêu đề: Bài giảng về Mật mã và An toàn dữ liệu
[4] Douglas R. Stinson, “Cryptography Theory and Practice”, CRC Press, 1995 Sách, tạp chí
Tiêu đề: Cryptography Theory and Practice
[5] Suranjan choudhury with Kartik Bhanagar, wasim Haque, NIIT, “Public key infarstructure – Implemetion and Design”, trang 29 – 32, 2002 Sách, tạp chí
Tiêu đề: Public key infarstructure – Implemetion and Design”
[6] R. Rivest, The MD5 Message-Digest Algorithm, MIT Laboratory for Computer Science and RSA Data Security, Inc, April 1992 Sách, tạp chí
Tiêu đề: The MD5 Message-Digest Algorithm
[7] R.L. Rivest, A. Shamir, and L. Adleman, A Method for Obtaining Digital Signatures and Public-Key Cryptosystems, Communications of the ACM, 21 (2), trang 120-126, Feb 1978 Sách, tạp chí
Tiêu đề: A Method for Obtaining Digital Signatures and Public-Key Cryptosystems
[1] Phan Đình Diệu, “Lý thuyết mật mã và An toàn thông tin, NXB Đại học quốc gia Hà Nội, 2001 Khác
[3] I.A.Dhotre V.S.Bagad , Cryptography And Network Security, 2000 Khác
[8] HANDBOOK of APPLIED CRYPTOGRAPHY Alfred J. Menezes, Paul C. van Oorschot, Scott A. VanstoneĐịa chỉ trên internet Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.2. Quá trình thực hiện mã hoá khoá công khai - Chữ ký số và ứng dụng trong quản lý văn bản điện tử
Hình 1.2. Quá trình thực hiện mã hoá khoá công khai (Trang 14)
Hình 2.1. Sơ đồ mô tả quá trình ký và gửi các tệp văn bản - Chữ ký số và ứng dụng trong quản lý văn bản điện tử
Hình 2.1. Sơ đồ mô tả quá trình ký và gửi các tệp văn bản (Trang 32)
Hình 2.2. Sơ đồ mô tả quá trình nhận các tệp văn bản - Chữ ký số và ứng dụng trong quản lý văn bản điện tử
Hình 2.2. Sơ đồ mô tả quá trình nhận các tệp văn bản (Trang 33)
Hình 3.1. Khuôn dạng chứng chỉ X.509 phiên bản 3 - Chữ ký số và ứng dụng trong quản lý văn bản điện tử
Hình 3.1. Khuôn dạng chứng chỉ X.509 phiên bản 3 (Trang 48)
Hình 3.3. Các thủ tục chứng thực - Chữ ký số và ứng dụng trong quản lý văn bản điện tử
Hình 3.3. Các thủ tục chứng thực (Trang 53)
Hình 4.3: Thực đơn Tệp của chương trình - Chữ ký số và ứng dụng trong quản lý văn bản điện tử
Hình 4.3 Thực đơn Tệp của chương trình (Trang 57)
Hình 4.4: Thực đơn Chỉnh sửa của chương trình - Chữ ký số và ứng dụng trong quản lý văn bản điện tử
Hình 4.4 Thực đơn Chỉnh sửa của chương trình (Trang 57)
Sơ đồ ký – lưu tệp: - Chữ ký số và ứng dụng trong quản lý văn bản điện tử
Sơ đồ k ý – lưu tệp: (Trang 59)
Hình 4.7 và hình 4.8: Admin thực hiện Đăng ký người dùng mới - Chữ ký số và ứng dụng trong quản lý văn bản điện tử
Hình 4.7 và hình 4.8: Admin thực hiện Đăng ký người dùng mới (Trang 62)
Hình 4.9, hình 4.10 và hình 4.11: Admin thực hiện Tạo khóa cho người dùng - Chữ ký số và ứng dụng trong quản lý văn bản điện tử
Hình 4.9 hình 4.10 và hình 4.11: Admin thực hiện Tạo khóa cho người dùng (Trang 63)
Hình 4.12 và hình 4.13: Admin thực hiện Quản lý người dùng - Chữ ký số và ứng dụng trong quản lý văn bản điện tử
Hình 4.12 và hình 4.13: Admin thực hiện Quản lý người dùng (Trang 64)
Hình 4.15: Người sử dụng thực hiện ký và lưu văn bản - Chữ ký số và ứng dụng trong quản lý văn bản điện tử
Hình 4.15 Người sử dụng thực hiện ký và lưu văn bản (Trang 65)
Hình 4.19 và hình 4.20: Thực hiện tải khóa công khai theo Tên tài khoản (theo - Chữ ký số và ứng dụng trong quản lý văn bản điện tử
Hình 4.19 và hình 4.20: Thực hiện tải khóa công khai theo Tên tài khoản (theo (Trang 67)
Hình 4.18: Chọn File khoá công khai để xác thực - Chữ ký số và ứng dụng trong quản lý văn bản điện tử
Hình 4.18 Chọn File khoá công khai để xác thực (Trang 67)
Hình 4.25 và hình 4.26: Thông báo văn bản không bị thay đổi nội dung hoặc - Chữ ký số và ứng dụng trong quản lý văn bản điện tử
Hình 4.25 và hình 4.26: Thông báo văn bản không bị thay đổi nội dung hoặc (Trang 69)

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