1. Trang chủ
  2. » Thể loại khác

bài tập lớn môn an toàn và bảo mật thông tin tìm hiểu về chữ kí điện tử rsa và viết ứng dụng minh họa

59 4 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Tìm hiểu về chữ kí điện tử RSA và viết ứng dụng minh họa
Tác giả Tàng Trọng Phi, Hoàng Kỳ Phong, Nguyễn Xuân Phú, Nguyễn Vi Phượng
Người hướng dẫn ThS. Trần Phương Nhung
Trường học Trường Đại Học Công Nghiệp Hà Nội
Chuyên ngành An toàn và bảo mật thông tin
Thể loại Bài tập lớn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 59
Dung lượng 9,4 MB

Nội dung

Với đặcđiểm là đơn giản cho người sử dụng mà vẫn đảm bảo được tính bảo mật, kỹthuật sử dụng chữ ký số là một trong những kỹ thuật được sử dụng phổ biến, đadạng trong hầu hết các lĩnh vực

Trang 1

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI Khoa Công Nghệ Thông Tin

Trang 2

Hà Nội - 2023

Trang 3

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI Khoa Công Nghệ Thông Tin

Trang 4

Hà Nội - 2023

Trang 5

MỤC LỤC

2.3 Thiết kế, cài đặt chương trình đề mô thuật toán 13

2.4.2 Kiến trúc tổng quan về chữ kí số và chữ kí số RSA(Tàng Trọng Phi)222.4.3 Giải thuật RSA và hàm băm mật mã MD5 (Hoàng Kỳ Phong) 272.4.4 Các điểm yếu của chữ kí số RSA (Nguyễn Xuân Phú) 31

2.5.1 Chương trình demo (Tàng Trọng Phi – Python) 36

CHƯƠNG III: KIẾN THỨC LĨNH HỘI VÀ BÀI HỌC KINH NGHIỆM

44

Trang 6

LỜI NÓI ĐẦU

Ngày nay trong mọi hoạt động của con người thông tin đóng một vai tròquan trọng không thể thiếu Xã hội càng phát triển nhu cầu trao đổi thông tingiữa các thành phần trong xã hội ngày càng lớn Mạng máy tính ra đời đã manglại cho con người rất nhiều lợi ích trong việc trao đổi và xử lý thông tin mộtcách nhanh chóng và chính xác Chính từ những thuận lợi này đã đặt ra chochúng ta một câu hỏi, liệu thông tin đi từ nơi gửi đến nơi nhận có đảm bảo tuyệtđối an toàn, ai có thể đảm bảm thông tin của ta không bị truy cập bất hợp pháp.Thông tin được lưu giữ, truyền dẫn, cùng sử dụng trên mạng lưới thông tin côngcộng có thể bị nghe trộm, chiếm đoạt, xuyên tạc hoặc phá huỷ dẫn đến sự tổnthất không thể lường được Đặc biệt là đối với những số liệu của hệ thống ngânhàng, hệ thống thương mại, cơ quan quản lý của chính phủ hoặc thuộc lĩnh vựcquân sự được lưu giữ và truyền dẫn trên mạng Nếu như vì nhân tố an toàn màthông tin không dám đưa lên mạng thì hiệu suất làm việc cũng như hiệu suất lợidụng nguồn dữ liệu đều sẽ bị ảnh hưởng Trước các yêu cầu cần thiết đó, việc

mã hoá thông tin sẽ đảm bảo an toàn cho thông tin tại nơi lưu trữ cũng như khithông tin được truyền trên mạ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ốngthông tin của tổ chức Vì vậy an toàn thông tin là nhiệm vụ quan trọng, nặng nề

và khó đoán trước đối với các hệ thống thông tin

Một trong những ứng dụng của an toàn thông tin là chữ ký số Với đặcđiểm là đơn giản cho người sử dụng mà vẫn đảm bảo được tính bảo mật, kỹthuật sử dụng chữ ký số là một trong những kỹ thuật được sử dụng phổ biến, đadạng trong hầu hết các lĩnh vực, nhất là Tài chính, Ngân hàng, Kế toán…

Để ứng dụng các phương pháp trên vào thực tiễn, được sự hướng dẫn của

Trang 7

CHƯƠNG I: TỔNG QUAN ĐỀ TÀI 1.1 Tổng quan về an toàn và bảo mật thông tin

An toàn thông tin là các hoạt động bảo vệ tài sản thông tin và là một lĩnhvực rộng lớn Nó bao gồm cả những sản phẩm và những quy trình nhằm ngănchặn truy cập trái phép, hiệu chỉnh, xóa thông tin,…

An toàn thông tin liên quan đến hai khía cạnh đó là an toàn về mặt vật lý

và an toàn về mặt kỹ thuật

Bảo mật thông tin là bảo vệ thông tin dữ liệu cá nhân, tổ chức nhằm tránhkhỏi sự ” đánh cắp, ăn cắp” bởi những kẻ xấu hoặc tin tặc An ninh thông tincũng như sự bảo mật an toàn thông tin nói chung Việc bảo mật tốt những dữliệu và thông tin sẽ tránh những rủi ro không đáng có cho chính cá nhân vàdoanh nghiệp của bạn

1.2 Sự cần thiết của An toàn và bảo mật thông tin

Hệ thống thông tin là thành phần thiết yếu trong mọi cơ quan, tổ chức vàđem lại khả năng xử lý thông tin, là tài sản quan trọng nhưng hệ thống thông tincũng chứa rất nhiều điểm yếu và rủi do Do máy tính được phát triển với tốc độrất nhanh để đáp ứng nhiều yêu cầu của người dùng, các phiên bản được pháthành liên tục với các tính năng mới được thêm vào ngày càng nhiều, điều nàylàm cho các phần mềm không được kiểm tra kỹ trước khi phát hành và bên trong

Trang 8

+ Đảm bảo tính toàn vẹn

+ Đảm bảo tính xác thực

+ Đảm bảo tính sẵn sàng

- Mục đích của an toàn và bảo mật thông tin

+ Bảo vệ tài nguyên của hệ thống

Các hệ thống máy tính lưu giữ rất nhiều thông tin và tài nguyên cần đượcbảo vệ Trong một tổ chức, những thông tin và tài nguyên này có thể là dữ liệu

kế toán, thông tin nguồn nhân lực, thông tin quản lý, bán hàng, nghiên cứu, sángchế, phân phối, thông tin về tổ chức và thông tin về các hệ thống nghiên cứu.Đối với rất nhiều tổ chức, toàn bộ dữ liệu quan trọng của họ thường được lưutrong một cơ sở dữ liệu và được quản lý và sử dụng bởi các chương trình phầnmềm

Các tấn công vào hệ thống có thể xuất phát từ những đối thủ của tổ chứchoặc cá nhân do đó, các phương pháp để bảo đảm an toàn cho những thông tinnày có thể rất phức tạp và nhạy cảm Các tấn công có thể xuất phát từ nhiềunguồn khác nhau, cả từ bên trong và bên ngoài tổ chức Hậu quả mà những tấncông thành công để lại sẽ rất nghiêm trọng

+ Bảo đảm tính riêng tư

Các hệ thống máy tính lưu giữ rất nhiều thông tin cá nhân cần được giữ bímật Những thông tin này bao gồm: Số thẻ bảo hiểm xã hội, số thẻ ngân hàng, sốthẻ tín dụng, thông tin về gia đình,

Tính riêng tư là yêu cầu rất quan trọng mà các ngân hàng, các công ty tíndụng, các công ty đầu tư và các hãng khác cần phải đảm bảo để gửi đi các tài

Trang 9

riêng tư Hậu quả nghiêm trọng sẽ xảy ra nếu một kẻ giả mạo truy nhập đượcnhững thông tin cá nhân.

=> Một trong những ứng dụng của an toàn thông tin là chữ ký số Với đặc

điểm là đơn giản cho người sử dụng mà vẫn đảm bảo được tính bảo mật, kỹthuật sử dụng chữ ký số là một trong những kỹ thuật được sử dụng phổ biến, đadạng trong hầu hết các lĩnh vực, nhất là Tài chính, Ngân hang, Kế toán…Vì lý

do đó, nhóm 3 chúng em đã nghiên cứu về Chữ kí điện tử RSA và những vấn đề

có liên quan đồng thời có viết được các chương trình nhằm mục đích demo vềnhững vấn đề trên

Khóa công khai thường được phân phối thông qua chứng thực khóa công khai

Trang 10

Chữ kí số (Digital Signature) là một chuỗi dữ liệu liên kết với một thôngđiệp (message) và thực thể tạo ra thông điệp.

Giải thuật tạo ra chữ ký số (Digital Signature generation algorithm) làmột phương pháp sinh chữ ký số

Giải thuật kiểm tra chữ ký số (Digital Signature verification algorithm) làmột phương pháp xác minh tính xác thực của chữ ký số, có nghĩa là nó thực sựđược tạo ra bởi 1 bên chỉ định

Một hệ chữ ký số (Figital Signature Scheme) bao gồm giải thuật tạo chữ

số và giải thuật kiểm tra chữ kỹ số

- Quá trình tạo chữ ký số (Digital Signature signing process) bao gồm:

+ Giải thuật tạo chữ ký số

+ Phương pháp chuyển dữ liệu thông điệp thành dạng có thể kýđược

Trang 11

+ Phương pháp khôi phục dữ liệu từ thông điệp.

Hàm băm (Hash Funtion) là hàm toán học chuyển đổi thông điệp(message) có độ dài bất kỳ (hữu hạn) thành một dãy bít có độ dài cố định (tùythuộc vào thuật toán băm) Dãy bít này được gọi là thông điệp rút gọn (messagedisgest) hay giá trị băm (hash value), đại diện cho thông điệp ban đầu

Ví dụ: Ta có thể mô phỏng trực quan một hệ mật mã khoá công khai như sau :Bob muốn gửi cho Alice một thông tin mật mà Bob muốn duy nhất Alice có thểđọc được Để làm được điều này, Alice gửi cho Bob một chiếc hộp có khóa đã

mở sẵn (Khóa công khai) và giữ lại chìa khóa Bob nhận chiếc hộp, cho vào đómột tờ giấy viết thư bình thường và khóa lại (như loại khoá thông thường chỉcần sập chốt lại, sau khi sập chốt khóa ngay cả Bob cũng không thể mở lại được-không đọc lại hay sửa thông tin trong thư được nữa) Sau đó Bob gửi chiếc hộplại cho Alice Alice mở hộp với chìa khóa của mình và đọc thông tin trong thư.Trong ví dụ này, chiếc hộp với khóa mở đóng vai trò khóa công khai, chiếc chìakhóa chính là khóa bí mật

● Quá trình ký (Bên gửi)

Tính toán chuỗi đại diện (message digest/ hash value) của thông điệp sửdụng một giải thuật băm (Hashing algorithm)

Trang 12

● Quá trình kiểm tra chữ kí (Bên nhận)

Tách chữ ký số và thông điệp gốc khỏi thông điệp đã ký để xử lý riêng;Tính toán chuỗi đại diện MD1 (message digest) của thông điệp gốc sửdụng giải thuật băm (là giải thuật sử dụng trong quá trình ký)

Sử dụng khóa công khai (Public key) của người gửi để giải mã chữ ký số

-> chuỗi đại diện thông điệp MD2

So sánh MD1 và MD2:

+ Nếu MD1 = MD2 -> chữ ký kiểm tra thành công Thông điệp đảm bảotính toàn vẹn và thực sự xuất phát từ người gửi (do khóa công khai được chứngthực)

+ Nếu MD1 <>MD2 -> chữ ký không hợp lệ Thông điệp có thể đã bị sửađổi hoặc không thực sự xuất phát từ người gửi

CHƯƠNG II: KẾT QUẢ NGHIÊN CỨU 2.1 Giới thiệu

Tên đề tài nghiên cứu: Tìm hiểu về chữ ký điện tử RSA và viết ứng dụngminh họa

1 Kiến trúc tổng quan chữ ký số và chữ

ký số sử dụng RSA

Đã tìm hiểu được kiến trúc tổng quan của chữ ký điện tử nói chung cũng như chữ ký điện tử RSA nói riêng

2 Giải thuật RSA và hàm băm mật mã

MD5

Nắm được giải thuật RSA trong chữ ký điện tử RSA và hàm băm mật mã MD5

Trang 13

pháp tấn công đối với chữ ký

số RSA

5 Ứng dụng chữ ký và sử dụng giải thuật

RSA

Ứng dụng được chứ ký số RSA và viết được các chươngtrình demo

Nhằm minh họa phần nội dung kiến thức về chữ kí điện tử RSA, nhóm 3 đãphân công cho từng thành viên xây dựng các chương trình ứng dụng web và ứngdụng desktop trên nền các ngôn ngữ lập trình riêng biệt, cụ thể :

+ Tàng Trọng Phi - Ngôn ngữ lập trình Python

+ Hoàng Kỳ Phong - Ngôn ngữ lập trình C#

+ Nguyễn Xuân Phú - Ngôn ngữ lập trình Java

+ Nguyễn Vi Phượng - Ngôn ngữ lập trình PHP

2.2 Nội dung thuật toán

Giải thuật RSA

● Tạo khóa:

Giải thuật RSA có hai khóa:

Khóa công khai (Public key – Kpub): được công bố rộng rãi cho mọi

Trang 14

Khóa bí mật (Private key – Kpr ): không được chia sẻ được chia cho mọi người và được dùng để ký chữ ký số.

● Các bước tạo khóa:

B1: Đầu vào là hai SNT p và q

Trang 15

2.3 Thiết kế, cài đặt chương trình đề mô thuật toán2.3.1 Giao diện chương trình đề mô

● Giao diện tạo khóa

Trang 16

● Giao diện thực hiện ký

● Giao diện xác thực chữ ký

Trang 17

● Quá trình tạo khóa

● Quá trình ký

Trang 18

● Quá trình xác thực chữ ký (tài liệu không có gì thay đổi)

● Quá trình xác thực chữ ký (tài liệu có thay đổi)

Trang 19

2.3.2 Cài đặt và triển khai

Trang 20

Giới thiệu cài đặt và chạy chương trình trên ngôn ngữ lập trình C#

● Sử dụng thư viện using System.Security.Cryptography;

● Hàm EuclideMoRong() sử dụng thuật toán Euclide mở rộng để tìmphần tử nghịch đảo theo modulo

Trang 21

● Hàm RSA_mod() : sử dụng thuật toán bình phương và nhân tính lũythừa theo modulo

● Hàm tạo khóa

● Hàm mã hóa RSA

Trang 22

● Hàm giải mã RSA

Trang 23

● Hàm thực hiện ký

Trang 24

● Quá trình tạo khóa

● Quá trình ký

Trang 25

● Quá trình xác thực chữ ký (tài liệu không có gì thay đổi)

Trang 26

● Quá trình xác thực chữ ký (tài liệu có thay đổi)

2.4 Thực hiện bài toán2.4.1 Phân công công việc

Toàng Trọng Phi Kiến trúc tổng quan về chữ kí số và chữ kí số

RSAHoàng Kỳ Phong Giải thuật RSA và hàm băm mật mã MD5Nguyễn Xuân Phú Các điểm yếu của chữ kí số RSA

Nguyễn Vi Phượng Các dạng tấn công

Nguyễn Vi Phượng Ứng dụng chữ kí số RSA

2.4.2 Kiến trúc tổng quan về chữ kí số và chữ kí số RSA (Tàng Trọng

Trang 27

Chữ kí số (Digital Signature) là một chuỗi dữ liệu liên kết với một thôngđiệp (message) và thực thể tạo ra thông điệp.

Giải thuật tạo ra chữ ký số (Digital Signature generation algorithm) làmột phương pháp sinh chữ ký số

Giải thuật kiểm tra chữ ký số (Digital Signature verification algorithm) làmột phương pháp xác minh tính xác thực của chữ ký số, có nghĩa là nó thực sựđược tạo ra bởi 1 bên chỉ định

Một hệ chữ ký số (Figital Signature Scheme) bao gồm giải thuật tạo chữ

số và giải thuật kiểm tra chữ kỹ số

- Quá trình tạo chữ ký số (Digital Signature signing process) bao gồm:

+ Giải thuật tạo chữ ký số

+ Phương pháp chuyển dữ liệu thông điệp thành dạng có thể ký được

- Quá trình kiểm tra chữ ký số (Digital signature verification process) :

+ Giải thuật kiểm tra chữ ký số

+ Phương pháp khôi phục dữ liệu từ thông điệp

Hàm băm (Hash Funtion) là hàm toán học chuyển đổi thông điệp (message) có

độ dài bất kỳ (hữu hạn) thành một dãy bít có độ dài cố định (tùy thuộc vào thuậttoán băm) Dãy bít này được gọi là thông điệp rút gọn (message disgest) hay giá

Trang 28

lại cho Alice Alice mở hộp với chìa khóa của mình và đọc thông tin trong thư.Trong ví dụ này, chiếc hộp với khóa mở đóng vai trò khóa công khai, chiếc chìakhóa chính là khóa bí mật.

● Quá trình ký (Bên gửi)

Tính toán chuỗi đại diện (message digest/ hash value) của thông điệp sử dụngmột giải thuật băm (Hashing algorithm)

Chuỗi đại diện được ký sử dụng khóa riêng (Priavte key) của người gửi và

1 giải thuật tạo chữ ký (Signature/ Encryption algorithm) Kết quả chữ ký số(Digital signature) của thông điệp hay còn gọi là chuỗi đại diện được mã hóa(Encryted message digest)

Thông điệp ban đầu (message) được ghép với chữ ký số (Digitalsignature) tạo thành thông điệp đã được ký (Signed message)

Trang 29

Tách chữ ký số và thông điệp gốc khỏi thông điệp đã ký để xử lý riêng;

Tính toán chuỗi đại diện MD1 (message digest) của thông điệp gốc sửdụng giải thuật băm (là giải thuật sử dụng trong quá trình ký)

Sử dụng khóa công khai (Public key) của người gửi để giải mã chữ ký số

-> chuỗi đại diện thông điệp MD2

So sánh MD1 và MD2:

+Nếu MD1 = MD2 -> chữ ký kiểm tra thành công Thông điệp đảm bảotính toàn vẹn và thực sự xuất phát từ người gửi (do khóa công khai được chứngthực)

+Nếu MD1 <>MD2 -> chữ ký không hợp lệ Thông điệp có thể đã bị sửađổi hoặc không thực sự xuất phát từ người gửi

b Kiến trúc chữ kí số RSA

Trang 30

Tính toán chuỗi đại diện (message digest/ hash value) của thông điệp sử dụng một giải thuật băm (Hashing algorithm) MD5

Chuỗi đại diện được ký sử dụng khóa riêng (Priavte key) của người gửi và giải thuật tạo chữ ký (Signature/ Encryption algorithm) RSA Kết quả chữ ký số (Digital signature) của thông điệp hay còn gọi là chuỗi đại diện được mã hóa bởigiải thuật RSA (Encryted message digest)

Thông điệp ban đầu (message) được ghép với chữ ký số( Digital signature) tạo thành thông điệp đã được ký (Signed message)

Thông điệp đã được ký (Signed message) được gửi cho người nhận

● Quá trình kiểm tra chữ ký (Bên nhận)

Trang 31

Tách chữ ký số RSA và thông điệp gốc khỏi thông điệp đã ký để xử lý riêng;

Tính toán chuỗi đại diện MD1 (message digest) của thông điệp gốc sử dụng giải thuật băm (là giải thuật sử dụng trong quá trình ký là MD5)

Sử dụng khóa công khai (Public key) của người gửi để giải mã chữ ký số RSA-> chuỗi đại diện thông điệp MD2

So sánh MD1 và MD2:

+ Nếu MD1 =MD2 -> chữ ký kiểm tra thành công Thông điệp đảm bảo

Trang 32

Giải thuật RSA có hai khóa:

Khóa công khai (Public key – Kpub ): được công bố rộng rãi cho mọi người và được dùng để thẩm định chữ ký số

Khóa bí mật (Private key – Kpr ): không được chia sẻ được chia cho mọi người và được dùng để ký chữ ký số

Trang 33

● Các bước tạo khóa:

B1: Đầu vào là hai SNT p và q

Trang 34

băm (hash) dài 128-bit Là một chuẩn Internet (RFC 1321), MD5 đã được dùngtrong nhiều ứng dụng bảo mật, và cũng được dùng phổ biến để kiểm tra tínhtoàn vẹn của tập tin Một bảng băm MD5 thường được diễn tả bằng một số hệthập lục phân 32 ký tự.

● Thuật toán:

MD5 chuyển một đoạn thông tin chiều dài thay đổi thành một kết quảchiều dài không đổi 128 bit Mẩu tin đầu vào được chia thành từng đoạn 512 bit;mẩu tin sau đó được độn sao cho chiều dài của nó chia chẵn cho 512 Công việcđộn vào như sau: đầu tiên một bit đơn, 1, được gắn vào cuối mẩu tin Tiếp theo

là một dãy các số zero sao cho chiều dài của mẩu tin lên tới 64 bit ít hơn so vớibội số của 512 Những bit còn lại được lấp đầy bằng một số nguyên 64-bit đạidiện cho chiều dài của mẩu tin gốc

Trang 35

● Tính chất:

Trang 36

Chấp nhập tất cả dữ liệu chuyển vào

2.3.4 Các điểm yếu của chữ kí số RSA (Nguyễn Xuân Phú)

a Điểm yếu của chữ ký nói chung

Sự xuất hiện của chữ ký số và chức năng tiền định của nó, đặc biệt là vaitrò của nó như là một công cụ trong việc xác định tính nguyên gốc, xác định tácgiả, bảo đảm tính toàn vẹn của tài liệu số, đã đóng một vai trò vô cùng quantrọng trong việc xác định địa vị pháp lý của tài liệu số trong giao dịch số Việc

sử dụng chữ ký số trong phần lớn trường hợp là cơ sở khẳng định giá trị pháp lýcủa những văn bản điện tử tương đương với tài liệu giấy Hiện nay, chữ ký số làphương tiện duy nhất để xác nhận giá trị pháp lý của tài liệu điện tử

Như vậy, với sự xuất hiện của chữ ký số, vấn đề giá trị pháp lý của tàiliệu điện tử, có thể coi như đã được giải quyết Việc sử dụng chữ ký số tronggiao dịch cũng có những ưu điểm và bất cập nhất định Dưới đây là những hạnchế của chữ ký số:

Sự lệ thuộc vào máy móc và chương trình phần mềm: chữ ký số là mộtchương trình phần mềm máy tính Để kiểm tra tính xác thực của chữ ký cần có

hệ thống máy tính và phần mềm tương thích

Tính bảo mật không tuyệt đối: Nếu chữ ký bằng tay được thực hiện trêngiấy, được ký trực tiếp và luôn đi kèm với vật mang tin, chữ ký tay không thểchuyển giao cho người khác, thì chữ ký số không như vậy Chữ ký số là một bộmật mã được cấp cho người sử dụng, đây là phần mềm máy tính không phụthuộc vào vật mang tin Chính vì vậy, trở ngại lớn nhất khi sử dụng chữ ký số làkhả năng tách biệt khỏi chủ nhân của chữ ký Nói cách khác, chủ nhân của chữ

ký số không phải là người duy nhất có được mật mã của chữ ký Tồn tại một sốnhóm đối tượng có thể có được mật mã, đó là: bộ phận cung cấp phần mềm; bộphận cài đặt phần mềm, những người có thể sử dụng máy tính có cài đặt phần

Ngày đăng: 25/06/2024, 16:24

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w