Đối với nước ta, chữ ký điện tử vẫn còn khá mới mẻ, chưa có nhiều tài liệu công nghệ thông tin nói về lĩnh vực này, cùng với đó là tiềm năng của chữ ký điện tử có thể được ứng dụng rất p
Trang 1LỜI CẢM ƠN
Trang 2MỤC LỤC
LỜI CẢM ƠN 1
DANH MỤC TỪ VIẾT TẮT 4
DANH MỤC HÌNH VẼ 5
TÓM TẮT ĐỒ ÁN 6
PHẦN 1: MỞ ĐẦU 7
1 Lý do chọn đề tài: 7
2 Mục đích: 7
3 Phạm vi nghiên cứu: 7
PHẦN 2: TỔNG QUAN 8
PHẦN 3: NỘI DUNG ĐỀ TÀI 9
1 Lịch sử chữ ký điện tử: 9
2 Chữ ký điện tử: 11
2.1 Sơ lược chữ ký điện tử: 11
2.2 Cách thức hoạt động của chữ ký điện tử: 12
2.2.1 Nguyên tắc mã hóa công khai: 12
2.2.2 Ký chữ ký điện tử vào dữ liệu: 13
2.3 Chữ ký số: 16
3 Thuật toán mã hóa công khai RSA: 17
3.1 Mô tả sơ lược: 17
3.2 Tạo khóa: 17
3.3 Độ an toàn của RSA: 18
4 Sơ lược về hàm băm MD5: 19
4.1 Sơ lược: 19
Trang 34.2 Tóm tắt giải thuật: 20
4.3 Khả năng bị tấn công: 20
5 Demo đơn giản tạo và gửi chữ ký điện tử: 21
PHẦN 4: KẾT LUẬN 31
DANH MỤC TÀI LIỆU THAM KHẢO 32
Trang 4DANH MỤC TỪ VIẾT TẮT
- MD5: Message-Digest algorithm 5
- RSA: Tên thuật toán được lấy từ ba chữ cái đầu của ba nhà toán học lần đầu tiên mô tả thuật toán trên vào năm 1977 Ron Rivest, Adi Shamir và Len Adleman
- CA: Certificate Authority - ủy quyền chứng chỉ
- Demo: Demonstration
Trang 5DANH MỤC HÌNH VẼ
Hình 1: Nhận tài liệu có sử dụng chữ ký điện tử 13
Hình 2: Gửi tài liệu có sử dụng chữ ký điện tử 13
Hình 3: Tóm tắt sơ đồ tạo, kiểm tra và xác thực chữ ký điện tử 14
Hình 4: Giao diện demo 21
Hình 5: File bên B muốn gửi cho bên A 22
Hình 6: Tạo khóa bằng demo 22
Hình 7: Lưu public key 23
Hình 8: Lưu private key 23
Hình 9: Tải file cần mã hóa 24
Hình 10: Chọn khóa public key do bên B nắm giữ 25
Hình 11: Bắt đầu mã hóa tài liệu 26
Hình 12: Lưu file đã mã hóa 26
Hình 13: Tải file cần giải mã 27
Hình 14: Tải khóa private key 28
Hình 15: Giải mã tài liệu 28
Hình 16: Kết quả 29
Hình 17: Lỗi không đúng khóa hoặc dữ liệu bị thay đổi 30
Trang 6TÓM TẮT ĐỒ ÁN
Qua quá trình tìm hiểu đề tài Nhóm chúng em đã dẫn đến quyết định nội dung chính cần làm nổi bật tại đề tài được giao Tại đây chúng em sẽ làm rõ hai vấn đề chính đặt ra cho đề tài “Tìm hiểu về chữ ký điện tử” là: Chữ ký điện tử là cái gì và nó hoạt động như thế nào Ngoài ra nhóm chúng em còn nêu ra thêm một vấn đề nhỏ mang tính tham khảo là thuật toán mã hóa công khai RSA và hàm băm MD5
Đồ án sẽ có bốn phần lớn là Mở đầu, Tổng quan, Nội dung đề tài và Kết luận Trong đó phần Nội dung đề tài sẽ chứa tất cả nội dung nhóm chúng em đã tìm hiểu được về chữ ký điện tử Phần Nội dung đề tài sẽ được chia làm năm tiểu mục gồm có Lịch sử chữ ký điện tử, Chữ ký điện tử, Thuật toán mã hóa công khai RSA, Sơ lược
về hàm băm MD5 và Demo đơn giản tạo và gửi chữ ký điện tử Về phần RSA và MD5 nhóm chúng em chỉ nêu một cách khái quát Trọng tâm vẫn là Chữ ký điện tử
và Demo đơn giản tạo và gửi chữ ký điện tử
Phần chữ ký điện tử: Nêu rõ ràng và chi tiết chữ ký điện tử là gì, cách thức hoạt động, nguyên tắc mã hóa công khai, quá trình ký chữ ký điện tử vào văn bản Ngoài
ra còn có hình minh họa trực quan về cách thức hoạt động
Phần Demo đơn giản tạo và gửi chữ ký điện tử: Tại đây, nhóm chúng em chạy demo minh họa cách tạo chữ ký điện tử, ký chữ ký điện tử lên văn bản, thực hiện các công đoạn mã hóa và giải mã, hình ảnh minh họa một cách trực quan, chi tiết, dễ hiểu
Trang 7PHẦN 1: MỞ ĐẦU
1 Lý do chọn đề tài:
Ngày nay, ứng dụng của công nghệ thông tin vào đời sống là rất phổ biến Công nghệ thông tin được ứng dụng ở khắp các lĩnh vực như kinh tế, chính trị, khoa học, quân sự, giải trí,… Trong đó, yếu tố cực kỳ quan trong khi làm việc là truyền thông
Để có thể gửi và nhận tài liệu, báo cáo, thư tín hay trao đổi bất kỳ hoạt động gì, chúng
ta đều cần đến truyền thông, cùng với việc gửi và nhận dữ liệu, để biết dữ liệu mà chúng ta nhận được do ai gửi, và chứng thực được điều đó là vấn đề khá khó khăn
Đề tài “tìm hiểu về chữ ký điện tử ” mà nhóm chúng em thực hiện sẽ làm rõ điều này Nhận thấy được tầm ảnh hưởng và ứng dụng ngày càng lớn về công nghệ thông tin vào đời sống thực tiễn, trong vài năm trở lại đây, chữ ký điện tử được biết đến ở Việt Nam Đối với nước ta, chữ ký điện tử vẫn còn khá mới mẻ, chưa có nhiều tài liệu công nghệ thông tin nói về lĩnh vực này, cùng với đó là tiềm năng của chữ ký điện tử có thể được ứng dụng rất phổ biến tại các doanh nghiệp, nhà nước hay cá nhân, tập thể Vì vậy nhóm chúng em chọn đề tài này để viết đồ án môn học Đồ án nhóm chúng em viết ra vừa là báo cáo nghiên cứu của nhóm, cũng là một tài liệu công nghệ thông tin hữu ích để mọi người tham khảo
2 Mục đích:
Tìm hiểu về chữ ký điện tử, sự ra đời, cách hoạt động và bảo mật
3 Phạm vi nghiên cứu:
Nghiên cứu về chữ ký điện tử, hệ mã hóa để tạo ra chữ ký điện tử, điển hình là hệ
mã hóa RSA, hàm băm
Trang 8PHẦN 2: TỔNG QUAN
Đối với nước ta, chữ ký điện tử vẫn còn khá mới mẻ, nhưng trên thế giới (các nước phát triển) thì chữ ký điện tử đã ra đời và đưa vào sử dụng từ lâu Vậy nên, các tác giả nước ngoài cũng đã có nhiều bài viết nghiên cứu đầy đủ về chữ ký điện tử, một số tác giả trong nước, chủ yếu là những sinh viên làm luận án tốt nghiệp cũng đã
có những bài viết nghiên cứu khá kỹ càng về lĩnh vực này Tuy vậy để tìm được tài liệu trong nước nói về vấn đề chữ ký điện tử cũng khá khó khăn
Cũng do chữ ký điện tử chưa phổ biến tại nước ta, nên mọi người chưa hiểu rõ về
nó Vì vậy bài viết này nhóm chúng em sẽ làm rõ hơn về chữ ký điện tử là gì, chữ ký điện tử hoạt động như thế nào, bảo mật và xác minh như thế nào và làm sao để tạo ra chữ ký điện tử
Trang 9PHẦN 3: NỘI DUNG ĐỀ TÀI
1 Lịch sử chữ ký điện tử:
Nhu cầu về bảo đảm an toàn thông tin đã xuất hiện từ rất sớm, khi con người biết trao đổi và truyền đưa thông tin cho nhau, đặc biệt khi các thông tin đó đã được thể hiện dưới hình thức ngôn ngữ, thư từ Trải qua thời gian, con người đã biết dung mật
mã để giữ bí mật thông tin khi trao đổi với nhau trong nhiều lĩnh vực, đặc biệt là quân
sự, chính trị, ngoại giao
Từ đầu thế kỷ 20, những thập niên đầu của thế kỷ Nền công nghệ thông tin bắt đầu phát triển, kéo theo đó là việc xử lý mật mã từ thủ công dần dần được công nghệ hóa Thay vì soạn thảo các văn bản bằng tay, con người bắt đầu sử dụng ngôn ngữ ảo
để viết Ngôn ngữ được chuyển thành các tín hiệu nhị phân (các bit), và việc biến đổi
để giải mã trở thành biến đổi trên các bit bằng các hàm số toán học Và từ đó các thuật toán tham gia vào quá trình tạo và giải mật mã Nền công nghệ thông tin ngày càng phát triển mạnh, nhu cầu trao đổi thông tin nói chung, các thông tin quan trong cần được bảo mật nói riêng trở thành tất yếu Vậy nên việc xác nhận và chứng thực người gửi thông tin là rất quan trọng Khái niệm chữ ký điện tử ra đời
Năm 1978, Rivest, Shamir và Adleman tìm ra một hệ mật mã khóa công khai và một sơ đồ chữ ký điện tử hoàn toàn có thể ứng dụng trong thực tiễn, tính bảo mật và
an toàn của chúng được bảo đảm bằng độ phức tạp của một bài toán số học nổi tiếng
là bài toán phân tích số nguyên thành các thừa số nguyên tố Hệ mã hóa này được gọi
là RSA RSA ra đời đánh dấu một bước ngoặt lớn về bảo mật và chứng thực thông tin Từ đó, mật mã và an toàn thông tin trở thành một lĩnh vực khoa học phát triển nhanh chóng
Vào năm 1889, tòa án tối cao bang New Hampshire (Hoa kỳ) đã phê chuẩn tính
hiệu lực của chữ ký điện tử Tuy nhiên, chỉ với những phát triển của khoa học kỹ thuật gần đây thì chữ ký điện tử mới đi vào cuộc sống một cách rộng rãi
Trang 10Vào thập niên 1980, các công ty và một số cá nhân bắt đầu sử dụng máy fax để truyền đi các tài liệu quan trọng Mặc dù chữ ký trên các tài liệu này vẫn thể hiện trên giấy nhưng quá trình truyền và nhận chúng hoàn toàn dựa trên tín hiệu điện tử Hiện nay, chữ ký điện tử có thể bao hàm các cam kết gửi bằng email, nhập các số
định dạng cá nhân (PIN) vào các máy ATM, ký bằng bút điện tử với thiết bị màn hình
cảm ứng tại các quầy tính tiền, chấp nhận các điều khoản người dùng khi cài đặt phần mềm máy tính, ký các hợp đồng điện tử online…
Trang 112 Chữ ký điện tử:
2.1 Sơ lược chữ ký điện tử:
Chữ ký là khái niệm chắc hẳn ai cũng biết Trong đời sống, chúng ta thường xuyên phải sử dụng chữ ký để xác nhận những văn bản, tài liệu Trong các doanh nghiệp hay nhà nước thì có thể dùng thêm con dấu Tuy được sử dụng rộng rãi nhưng chữ
Chữ ký thông thường có rất nhiều mặt hạn chế, mức độ bảo mật không không cao
Vì vậy cần có phương pháp để khắc phục những mặt hạn chế nêu trên, giúp nâng cao tính bảo mật và an toàn Chữ ký điện tử ra đời trong thời buổi công nghệ thông tin đang phát triển chóng mặt Người ta có thể sử dụng chữ ký điện tử để ký vào các văn bản, tài liệu số hoàn toàn bằng thiết bị điện tử, giúp việc xác minh nhanh chóng hơn
và đặc biệt là tính xác thực cao hơn, an toàn hơn vì rất khó làm giả
Chữ ký điện tử có các ưu điểm vượt trội so với chữ ký thông thường:
- Bảo mật: chữ ký điện tử có khả năng bảo mật cao, chìa khóa được bảo mật với tất cả mọi người trừ những người được phép biết
- Toàn vẹn thông tin: các tài liệu, thông tin được ký bằng chữ ký điện tử được bảo vệ một cách toàn vẹn, không thể thay đổi thông tin khi đã được
ký, nếu thông tin đã bị thay đổi thì thông tin đó lập tức bị loại bỏ
- Xác nhận thực thể: chữ ký điện tử sẽ xác nhận thực thể đã ký vào thông tin một cách chính xác và tin cậy
Chữ ký điện tử là thông tin đi kèm theo dữ liệu (văn bản, hình ảnh, video ) nhằm
mục đích xác định người chủ của dữ liệu đó Chữ ký điện tử đi kèm với các thông tin chủ sở hữu và một số thông tin cần thiết khác sẽ trở thành Chứng chỉ điện tử
Trang 12Chữ ký điện tử được sử dụng trong các giao dịch điện tử Xuất phát từ thực tế, chữ ký điện tử cũng cần đảm bảo các chức năng: Xác định được người chủ của một
dữ liệu nào đó ví dụ văn bản, ảnh, video, dữ liệu đó có bị thay đổi hay không
2.2 Cách thức hoạt động của chữ ký điện tử:
Trong thế giới số, có 3 cách để xác thực một người hoặc mức độ tin cậy của một
thông tin trên máy tính Một là Pass Card (Thẻ thông hành) mà ở nước ta hiện nay chưa phổ biến Hai là Password, cách này sử dụng tên truy nhập (User Name) và mật khẩu (Password) cung cấp cho việc đăng nhập xác thực thông tin Thứ ba, dùng Digital Signature (chữ ký điện tử)
2.2.1 Nguyên tắc mã hóa công khai:
Chữ ký điện tử hoạt động trên nguyên tắc mã hóa công khai Hệ thống này bao
gồm hai khóa là khóa bí mật (Private Key) và khóa công khai (Public Key) Mỗi chủ
thể khi tạo chữ ký điện tử đều có một cặp khóa như vậy Chủ thể giữ khóa bí mật, công bố cho mọi người khóa công khai Nguyên tắc của hệ thống mã hóa này là: nếu
mã hóa bằng khóa bí mật thì chỉ có khóa công khai mới giải mã đúng được và ngược lại
Ví dụ: Bản thân chúng ta là người được cấp cho hai khóa điện tử Public Key và Private Key như đã nêu ở trên Chúng ta phải giữ gìn Private Key cẩn thận như giữ chiếc chìa khóa nhà của mình Khi có một người dùng Public Key để mã hóa một bức thư rồi gửi cho chúng ta, chúng ta phải dùng Private Key để giải mã thì mới đọc được bức thư này Đồng nghiệp hay người thân của chúng ta dù có biết bức thư này cũng chịu vì không tài nào giải mã được Dùng Private Key, cùng với một phần mềm phù hợp, chúng ta có thể ký tên lên một văn bản hay tập tin dữ liệu nào đó Chữ ký điện
tử này tương tự như một con tem độc nhất vô nhị dán lên văn bản, khó có thể giả mạo được
Khi nhận dữ liệu: sử dụng chữ ký điện tử để khách thể đảm bảo đúng chủ thể
nhận và chỉ duy nhất chủ thể có thể xem được tài liệu do cá thể gửi do chỉ có Private Key của chủ thể mới có thể giải mã được dữ liệu này
Trang 13Hình 1: Nhận tài liệu có sử dụng chữ ký điện tử
Khi gửi dữ liệu: sử dụng chữ ký điện tử để khách thể có thể xác minh dữ liệu đó
do ai gửi, vì dữ liệu mà Public Key giải mã được chỉ có thể do chủ thể gửi mà thôi
Hình 2: Gửi tài liệu có sử dụng chữ ký điện tử
2.2.2 Ký chữ ký điện tử vào dữ liệu:
Các bước để thực hiện việc ký chữ ký điện tử vào thông tin để gửi :
- B1: Băm dữ liệu (dữ liệu được xử lý bởi hàm băm trở thành một bản tóm lược)
Trang 14- B2: Mã hóa (bản tóm lược được mã hóa bởi khóa bí mật)
- B3: Gắn chữ ký số với thông điệp dữ liệu
Hình 3: Tóm tắt sơ đồ tạo, kiểm tra và xác thực chữ ký điện tử
Giả sử bên A có tài liệu cần bên B ký, trước tiên, bên A sẽ thực hiện băm tài liệu
thành một bản tóm lược X (chúng ta không thể đọc được X) sau đó dùng Apv ký lên
X được tài liệu M, tài liệu M được gửi cho bên B Để bên B xác minh được tài liệu
M do chính bên A gửi, bên B dùng Apl giải mã M và thu được tài liệu bên A gửi Tiếp theo đó, bên B cũng thực hiện băm tài liệu thành một bản tóm lược Y, sau đó
Trang 15dùng Bpv ký lên Y để được tài liệu N và gửi N cho bên A Để bên A xác minh được tài liệu N do chính bên B gửi, bên A sử dụng Bpl để giải mã tài liệu N và thu được tài liệu đã được bên B ký
Một số trường hợp xảy ra với chữ ký điện tử, cũng giống như các trường hợp xảy
ra với chữ ký truyền thống Ví dụ: Khi tài liệu TL của A bị thay đổi (dù chỉ một ký
tự, một dấu chấm, hay một ký hiệu bất kỳ), khi B xác nhận, anh ta sẽ thấy bản giải mã
khác với tài liệu TL của anh A B sẽ kết luận rằng tài liệu đó đã bị thay đổi, không phải là tài liệu anh A đã ký
Trường hợp khác, nếu A để lộ khóa bí mật, nghĩa là văn bản tài liệu của A có thể
ký bởi người khác có khóa bí mật của A Khi một ai đó xác nhận tài liệu được cho là của A ký, chữ ký vẫn là hợp lệ, mặc dù không phải chính A ký Như vậy, chữ ký của
A sẽ không còn giá trị pháp lý nữa Do đó, việc giữ khóa bí mật là tuyệt đối quan trọng trong hệ thống chữ ký điện tử
Như vừa nêu trên, khi bên A để lộ mã khóa bí mật, thì bất kỳ ai có được mã khóa
bí mật của A cũng có thể ký vào những thông tin mà thông tin đó không phải do A
ký Vậy làm thế nào để hạn chế việc giả dạng người ký khi khóa bí mật bị lộ (nhằm hạn chế rủi ro khi chưa kịp thời thay chữ ký điện tử mới)
Có một giải pháp hữu hiệu giúp khắc phục vấn đề này Đó là thông tin giữa A và
B sẽ được xác nhận bằng một bên trung gian mà A và B tin tưởng Bên trung gian đó
là nhà cung cấp chứng chỉ số CA CA có một chứng chỉ số của riêng mình, CA sẽ cấp chứng chỉ số cho A và B cũng như những đối tượng khác Chứng chỉ số sẽ giúp xác minh đối tượng đang thực hiện giao dịch Chứng chỉ số là hoàn toàn tin cậy
Đây là giải pháp có thể dùng để khắc phục vấn đề mã khóa bí mật của bên A bị
lộ Tức là khi gửi tài liệu đã được ký, bên A sẽ gửi cả chứng chỉ CA của mình để bên
B xác minh Người khác tuy đã có được mã khóa bí mật của A nhưng sẽ không thể thực hiện giao dịch nếu không có chứng chỉ số CA của bên A Tuy vậy, việc cất giữ
Trang 16vào bảo vệ khóa bí mật vẫn phải được đặt lên hang đầu để tránh những rủi ro khống đáng có
Cơ chế chữ ký điện tử và chứng chỉ số sử dụng các thuật toán mã hóa đảm bảo không thể giả mạo CA để cấp chứng chỉ không hợp pháp, mọi chứng chỉ giả mạo đều
có thể dễ dàng bị phát hiện
2.3 Chữ ký số:
Chữ ký số cũng chính là chữ ký điện tử, chữ ký số là tập con của chữ ký điện tử
Do vậy, chúng ta có thể dùng định nghĩa chữ ký điện tử để định nghĩa chữ ký số
Chữ ký số là thông tin đi kèm theo dữ liệu (văn bản, hình ảnh, video ) nhằm mục
đích xác định người chủ của dữ liệu đó
Chữ ký số và chữ ký điện thử thường được dùng thay thế cho nhau tuy không chính xác tuyệt đối
Nói chung, chữ ký số là khái niệm dùng mật mã để mã hóa xác định chủ của văn bản Còn chữ ký điện tử là một khái niệm chung chỉ tất cả các phương pháp mã hóa
mà không nhất thiết phải là mật mã và mục đích chung vẫn là xác định người chủ của văn bản