MỤC LỤCTRANG PHỤ BÌALỜI CẢM ƠNMỤC LỤCDANH MỤC HÌNHLỜI MỞ ĐẦU11 Lý do chọn đề tài12 Mục đích nghiên cứu13 Cơ sở lý thuyết24 Phạm vi nghiên cứu25 Phương pháp nghiên cứu2CHƯƠNG I:TỔNG QUAN VỀ CHỮ KÝ SỐ VÀ HỆ MÃ HÓA RSA31.1Giới thiệu về chữ ký số và các công cụ liên quan.31.1.1 Giới thiệu chung31.1.2 Khái niệm chữ ký số:41.1.3 So sánh chữ ký số với chữ ký thường41.1.4 Vai trò của chữ ký số51.1.5 Phân loại chữ ký số:51.1.6 Sơ đồ tổng quan của một hệ thống chữ ký số điện tử.61.1.7 Các ưu điểm của chữ ký số71.1.8 An ninh8CHƯƠNG II: CHỮ KÝ SỐ RSA102.1 Lịch sử102.1.1 Chữ ký số RSA102.1.2 Hoạt động102.1.3 Chuyển đổi văn bản152.1.4 Các vấn đề trong thực tế172.1.5 Mô hình chữ ký số trong thực tế202.1.6 Một số mô hình chữ ký số trong thực tế :202.1.7 Lược đồ chữ ký số222.1.8 Tạo chữ ký số RSA:23CHƯƠNG III: MÔ TẢ HỆ THỐNG283.1 Đặc tả yêu cầu283.1.1 Mục đích283.1.2 Mô tả tổng quan283.1.3 Yêu cầu chức năng283.1.4 Yêu cầu phi chức năng293.1.5 Thiết kế giao diện và tương tác với người dùng.29CHƯƠNG IV: CÀI ĐẶT CHƯƠNG TRÌNH324.1 Thông tin ứng dụng324.1.1 Môi trường cài đặt324.1.2 Hướng dẫn cài đặt324.1.3 Hướng dẫn xây dựng chươngtrình324.1.4 Hướng dẫn chạy chương trình32KẾT LUẬN TÀI LIỆU THAM KHẢOPHỤ LỤC
Trang 1MỤC LỤC TRANG PHỤ BÌ
LỜI CẢM ƠN
MỤC LỤC
DANH MỤC HÌNH
LỜI MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục đích nghiên cứu 1
3 Cơ sở lý thuyết 2
4 Phạm vi nghiên cứu 2
5 Phương pháp nghiên cứu 2
CHƯƠNG I:TỔNG QUAN VỀ CHỮ KÝ SỐ VÀ HỆ MÃ HÓA RSA 3
1.1Giới thiệu về chữ ký số và các công cụ liên quan 3
1.1.1 Giới thiệu chung 3
1.1.2 Khái niệm chữ ký số: 4
1.1.3 So sánh chữ ký số với chữ ký thường 4
1.1.4 Vai trò của chữ ký số 5
1.1.5 Phân loại chữ ký số: 5
1.1.6 Sơ đồ tổng quan của một hệ thống chữ ký số điện tử 6
1.1.7 Các ưu điểm của chữ ký số 7
1.1.8 An ninh 8
CHƯƠNG II: CHỮ KÝ SỐ RSA 10
2.1 Lịch sử 10
2.1.1 Chữ ký số RSA 10
2.1.2 Hoạt động 10
2.1.3 Chuyển đổi văn bản 15
2.1.4 Các vấn đề trong thực tế 17
2.1.5 Mô hình chữ ký số trong thực tế 20
2.1.6 Một số mô hình chữ ký số trong thực tế : 20
2.1.7 Lược đồ chữ ký số 22
Trang 22.1.8 Tạo chữ ký số RSA: 23
CHƯƠNG III: MÔ TẢ HỆ THỐNG 28
3.1 Đặc tả yêu cầu 28
3.1.1 Mục đích 28
3.1.2 Mô tả tổng quan 28
3.1.3 Yêu cầu chức năng 28
3.1.4 Yêu cầu phi chức năng 29
3.1.5 Thiết kế giao diện và tương tác với người dùng 29
CHƯƠNG IV: CÀI ĐẶT CHƯƠNG TRÌNH 32
4.1 Thông tin ứng dụng 32
4.1.1 Môi trường cài đặt 32
4.1.2 Hướng dẫn cài đặt 32
4.1.3 Hướng dẫn xây dựng chươngtrình 32
4.1.4 Hướng dẫn chạy chương trình 32
KẾT LUẬN
TÀI LIỆU THAM KHẢO
PHỤ LỤC
Trang 3DANH MỤC HÌNH
Hình 1.1 Phân loại chữ ký số 6
Hình 2.1.Mô hình chữ ký số trong thực tế 20
Hình 2.2.Ký văn bản 21
Hình 2.3.Xác thực chữ ký 22
Hình 4.1 Giao diện Tạo chữ ký 33
Hình 4.2 Giao diện tạo các cặp số 33
Hình 4.3 Giao diện nhập văn bản vào ô nội dung 34
Hình 4.4 Giao diện Ký trước Mã hóa sau 35
Hình 4.5 Giao diện lưu file khóa công khai, khóa bí mật,mã hóa chữ ký, mã hóa nội dung 36
Hình 4.6 Giao diện Nhập tên file 37
Hình 4.7 Giao diện kiểm tra chữ ký 39
Hình 4.8 Giao diện giải mã 41
Hình 4.9 Giao diện xác nhận chữ ký 42
Trang 4LỜI CẢM ƠN
Em xin gửi lời cảm ơn sâu sắc đến ThS.Bùi Thị Thùy là người đã giúp
đỡ em tận tình trong suốt thời gian làm báo cáo và động thời là người luônđộng viên em trong lúc em gặp khó khăn khi nghiên cứu
Em xin chân thành cảm ơn các thầy cô trong khoa Công nghệ Thông tin
đã tạo điều kiện cho em hoàn thành đồ án tốt nghiệp này
Cuối cùng em xin cảm ơn những người thân trong gia đình và bạn bè đãgiúp đỡ em hoàn thành đồ án tốt nghiệp đạt kết quả tốt
Hà Nội, ngày 30 tháng 05 năm 2015 Sinh Viên
Hoàng Bích Phượng
Trang 5vô cùng quan trọng Để giải quyết vấn đề trên người ta đưa ra một cách giảiquyết hiệu quả, đó là chữ ký số.
Với sự bùng nổ của mạng Internet hiện nay, mạng máy tính đang ngàycàng đóng vai trò thiết yếu trong mọi lĩnh vực hoạt động của toàn xã hội, vàkhi nó trở thành phương tiện điều hành các hệ thống thì nhu cầu bảo mậtthông tin được đặt lên hàng đầu Việc sử dụng chữ ký số là một giải pháp hữuhiệu, ngày càng được ứng dụng nhiều trong thực tế, không chỉ giới hạn trongngành công nghệ thông tin, mật mã học mà còn được áp dụng nhiều trongnhững lĩnh vực khác như ngân hàng, viễn thông…
Mật mã học khóa công khai tạo ra chữ ký số và ứng dụng vào các tàiliệu Hệ mã hóa RSA – hệ mã hóa điển hình của mật mã công khai cùng vớihàm băm mật mã học một chiều chính là những công cụ chính trong việc tạo
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
Trang 6cho phép tạo và kiểm tra chữ ký đối với các tài liệu, công văn, giấy tờ hànhchính điện tử để bảo vệ nội dung thông tin cũng như nhu cầu xác thực nguồngốc thông tin.
3 Cơ sở lý thuyết
Nghiên cứu, thu thập các tài liệu đã xuất bản, các bài báo trên các tạp chíkhoa học và các tài liệu trên mạng Internet về vấn đề nghiên cứu của các tác giả trong và ngoài nước
Từ đó em chọn lọc và sắp xếp theo ý tưởng của mình :
Tìm hiểu, vận dụng và kế thừa một số hàm mật mã đã có trên Internet
Nghiên cứu các ngôn ngữ lập trình C#, C++, Java… để xây dựng ứng dụng về mã hóa dữ liệu và chữ ký số
4 Phạm vi nghiên cứu
Nghiên cứu hệ mã khóa công khai, sơ đồ chữ ký số RSA và cài đặt chương trình minh họa
5 Phương pháp nghiên cứu
Hoạt động nghiên cứu, tổng hợp, phân tích, lập trình
Hoạt động nghiên cứu tài liệu
Trao đổi với giảng viên hướng dẫn
Bố cục báo cáo
Ngoài phần lời cảm ơn, mở đầu và kết luận báo cáo có 4 chương:
Chương I: Tổng Quan về chữ ký số
Chương II: Hệ mã hóa RSA và Chữ ký số RSA
Chương III: Phân tích và thiết kế giao diện
Chương IV: Cài đặt chương trình
Trang 7
CHƯƠNG I: TỔNG QUAN VỀ CHỮ KÝ SỐ VÀ HỆ MÃ HÓA RSA 1.1 Giới thiệu về chữ ký số và các công cụ liên quan.
1.1.1 Giới thiệu chung
Trong đời sống hàng ngày, chữ ký (viết tay) trên một văn bản là mộtminh chứng về “bản quyền” hoặc ít nhất cũng là sự “tán đồng, thừa nhận”các nội dung trong văn bản Chẳng hạn như trên việc ký vào phiếu nhận tiền
từ ngân hàng, hợp đồng mua bán, chuyển nhượng, thừa kế, tố tụng… Chữ kýviết tay được chính tay người ký nên không thể sao chụp được Thông thườngchữ ký viết tay trên văn bản thì được dùng để xác nhận người ký nó Nhữngyếu tố nào làm nên “sức thuyết phục của nó”, về mặt lý thuyểt :
Chữ ký là bằng chứng thể hiện người ký có chủ định khi ký văn bản Chữ ký thể hiện “chủ quyền”, nó làm cho người nhận văn bản biết rằng aiđích thị là người đã ký văn bản
- Chữ ký không thể “tái sử dụng”, tức là nó là một phần của văn bản màkhông thể sao chép sang các văn bản khác - Văn bản đã ký không thể thay đổiđược
- Chữ ký không thể giả mạo và cũng là thứ không thể chối bỏ ( người đã
ký văn bản không thể phủ định việc mình đã ký văn bản và người khác khôngthể tạo ra chữ ký đó )
Trong cuộc sống đời thường, việc tạo một mô hình “lý tưởng”như trên làkhông dễ vì việc ký trên văn bản giấy có thể giả mạo chữ ký, nhưng với khảnăng kiểm định sát sao thì việc làm thay đổi không phải dễ Tuy nhiên trongthế giới máy tính thì vấn đề ký như trong thực tế sẽ gặp phải nhiều khó khăn :các dòng thông tin trên máy tính có thể thay đổi dễ dàng, hình ảnh của chữ kýtay của một người cũng dễ dàng cho “sang – truyền” từ một văn bản này sang
Trang 8một văn bản khác, và việc thay đổi nội dung một văn bản điện tử (sau khi ký)cũng chẳng để lại dấu vết gì về phương diện “tẩy, xóa”…
Vậy để có những đặc tính như trên “ký trong thế giới điện tử ”cần cócông nghệ mã hóa Sơ đồ chữ ký số là phương pháp ký một thông báo đượclưu dưới dạng điện tử Giao thức cơ bản của chữ ký số dựa trên ý tưởng củaDiffie và Hellman :
- Người gửi (chủ nhân của văn bản) ký văn bản bằng cách mã hóa nó vớikhóa bí mật của mình
- Người gửi chuyển văn bản đã ký cho người nhận
- Người nhận văn bản kiểm tra chữ ký bằng việc sử dụng chìa khóacông khai của người gửi để giải mã văn bản
1.1.3 So sánh chữ ký số với chữ ký thường
Chữ ký số và chữ ký thường có nhiều điểm khác nhau :
- Về tài liệu được ký : Với tài liệu thông thường, nó là một phần vật lýcủa tài liệu Ngược lại, chữ ký số không phải theo kiểu vật lý gắn vào thôngbáo nên không nhìn thấy trên bức điện
- Về vấn đề kiểm tra chữ ký : Chữ ký thông thường được kiểm tra bằngcách so sánh nó với các chữ ký xác thực khác ( chữ ký mẫu) Điểm yếu củachữ ký thông thường là không an toàn, và dễ có thể giả mạo Ngược lại, chữ
ký số lại được kiểm tra nhờ dùng thuật toán kiểm tra công khai, bất kỳ ai cũng
Trang 9có thể kiểm tra được Việc dùng một sơ đồ chữ ký an toàn có thể ngăn chặnđược giả mạo.
Trang 101.1.4 Vai trò của chữ ký số
Xu hướng quốc tế hóa và toàn cầu hóa đã và đang ảnh hưởng đến sự pháttriển của thế giới Việc trao đổi thông tin cũng từ đó yêu cầu nhanh gọn, chínhxác và đặc biệt là phải an toàn Việc trao đổi thông tin, chứng thực thông tintheo phong cách truyền thông làm giảm tốc độ, cũng như sự chính xác củathông tin Những công việc đó mang tính chất thủ công gây ra sự chậm chễ vàthiếu chính xác trong trao đổi
Chính khó khăn đã nảy sinh sự phát triển mạnh mẽ của công nghệ thôngtin và công nghệ mã hóa Hiện nay, ở tất cả các nước phát triển cũng nhưđang phát triển, mạng máy tính đang ngày càng đóng vai trò thiết yếu trongmọi lĩnh vực hoạt động của toàn xã hội và nhu cầu bảo mật thông tin được đặtlên hàng đầu Điển hình là việc mã hoá bảo mật các thông tin số của doanhnghiệp, dùng chữ ký số xác thực email trao đổi thông tin, kiểm soát truy cậpvào các sàn thương mại điện tử và các đơn đặt hàng, ngân hàng điện tử, muasắm trực tuyến mà vai trò chủ yếu là chữ ký số điện tử
Trên thực tế, chữ ký số không chỉ được thực hiện cho các giao dịch điện
tử trên mạng internet mà còn qua hệ thống mạng viễn thông di động.Đặc biệt,hiện nay nhiều nước trên thế giới không chỉ triển khai ứng dụng 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ệncác giao dịch điện tử Hướng đi này giúp đẩy nhanh giao dịch, đơn giản hoámua sắm trực tuyến và giúp người dùng có thể truy cập mọi lúc, mọi nơi
Sự ra đời của chữ ký số khẳng đinh được lợi ích to lớn về chiến lược vàkinh tế, đồng thời các vấn đề liên quan đến chữ ký số cũng là nhưng chủ đềquan trọng nhất của mật mã học
1.1.5 Phân loại chữ ký số:
Kỹ thuật ký mà chữ ký số là một phần đính vào thông điệp gửi đi, cả 2đều là đầu vào cho quá trình xác minh tính đúng đắn của chữ ký và loại chữ
Trang 11ký mà từ nó có thể phục hồi lại thông điệp ban đầu trước khi ký, thông điệpban đầu này không phải là đầu vào cho quá trình xác minh chữ ký.
Hình 1.1 Phân loại chữ ký số
Do tính thực tế của chữ ký số mà luận văn chủ yếu tập trung vào kỹ thuật
ký thứ 2, chữ ký số như một phần đính kém thêm cho quá trình xác minhthông điệp Những đặc điểm cơ bản của chữ ký này là :
- Chữ ký điện tử đi kèm với thông điệp gốc
- Cần có thông điệp (gốc) cho quá trình kiểm tra chữ ký điện tử
- Sử dụng hàm băm mật mã Ví dụ: RSA, DSA, ElGamal, Schnorr…
- Dựa trên thuật toán mã hóa Ví dụ :chữ ký số Full Domain Hash, RSA
- PSS dựa theo thuật toán mã hóa RSA, chữ ký số DSA dựa vào thuật toánDSA…
1.1.6 Sơ đồ tổng quan của một hệ thống chữ ký số điện tử.
Một sơ đồ chữ ký số thường bao gồm hai thành phần chủ chốt là thuậttoán ký và thuật toán xác minh Một sơ đồ chữ ký số là một bộ 5 (P, A, K, S,V) thỏa mãn các điều kiện sau :
- P là một tập hợp các bản rõ có thể
Trang 12- A là tập hữu hạn các chữ ký có thể
- K là tập hữu hạn các khóa có thể
- S là tập các thuật toán ký
- V là tập các thuật toán xác minh
Với mỗi k thuộc K, tồn tại một thuật toán ký sigk thuộc S và một thuậttoán xác minh verk thuộc V, trong đó sigk và verk là các ánh xạ : sigk là mộtánh xạ từ P sang A vàVerk là một ánh xạ từ A sang tập biểu diễn {True,False} thỏa mãn với mọi x thuộc P, y thuộc A,ver (x,y)= true nếu y=sig(x) vàver(x,y) = false nếu y khác sig(x) Với mỗi k thuộc K, hàm sigk và verk là cáchàm thời gian đa thức, verk là hàm công khai còn sigk là hàm mật
1.1.7 Các ưu điểm của chữ ký số
bí mật
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ănbả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
Trang 13cũng sẽ thay đổi và lập thức bị phát hiện Quy trình mã hóa sẽ ẩn nội dung dốivới bên thứ ba.
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à domì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ảigử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 giải quyết
1.1.8 An ninh
Độ an toàn của hệ thống RSA dựa trên 2 vấn đề của toán học:
Bài toán phân tích ra thừa số nguyên tố các số nguyên lớn và bài toánRSA
Nếu 2 bài toán trên là khó (không tìm được thuật toán hiệu quả để giảichúng) thì không thể thực hiện được việc phá mã toàn bộ đối với RSA Phá
mã một phần phải được ngăn chặn bằng các phương pháp chuyển đổi bản rõ
an toàn
Bài toán RSA là bài toán tính căn bậc e môđun n (với n là hợp số): tìm số
m sao cho me c mod n, trong đó (e, n) chính là khóa công khai và c là bản mã Hiện nay phương pháp triển vọng nhất giải bài toán này là phân tích n rathừa số nguyên tố Khi thực hiện được điều này, kẻ tấn công sẽ tìm ra số mũ
bí mật d từ khóa công khai và có thể giải mã theo đúng quy trình của thuậttoán Nếu kẻ tấn công tìm được 2 số nguyên tố p và q sao cho: n = pq thì cóthể dễ dàng tìm được giá trị (p-1)(q-1) và qua đó xác định d từ e
Chưa có một phương pháp nào được tìm ra trên máy tính để giải bàitoán này trong thời gian đa thức (polynomial-time) Tuy nhiên người ta cũngchưa chứng minh được điều ngược lại (sự không tồn tại của thuật toánTạ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 bít với phương pháp phân tán trong khi khóa của RSA có độ
Trang 14dài từ 1024 tới 2048 bít Một số chuyên gia cho rằng khóa 1024 bít có thểsớm bị phá vỡ (cũng có nhiều người phản đối việc này) Với khóa 4096 bít thìhầu như không có khả năng bị phá vỡ trong tương lai gần Do đó, người tathường cho rằng RSA đảm bảo an toàn với điều kiện n được chọn đủ lớn Nếu
n có độ dài 256 bít hoặc ngắn hơn, nó có thể bị phân tích trong vài giờ vớimáy tính cá nhân dùng các phần mềm có sẵn Nếu n có độ dài 512 bít, nó cóthể bị phân tích bởi vài trăm máy tính tại thời điểm năm 1999 Một thiết bị lýthuyết có tên là TWIRL do Shamir và Tromer mô tả năm 2003 đã đặt ra câuhỏi về độ an toàn của khóa 1024 bít Vì vậy hiện nay người ta khuyến cáo sửdụng khóa có độ dài tối thiểu 2048 bít
Năm 1993, Peter Shor công bố thuật toán Shor chỉ ra rằng: máy tínhlượng tử (trên lý thuyết) có thể giải bài toán phân tích ra thừa số trong thờigian đa thức Tuy nhiên, máy tính lượng tử vẫn chưa thể phát triển được tớimức độ này trong nhiều năm nữa
Trang 15
CHƯƠNG II: CHỮ KÝ SỐ RSA 2.1 Lịch sử
Thuật toán được Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầutiên vào năm 1977 tại Học viện Công nghệ Massachusetts (MIT) Tên củathuật toán lấy từ 3 chữ cái đầu của tên 3 tác giả
Thuật toán RSA được MIT đăng ký bằng sáng chế tại Hoa Kỳ vào năm
1983 (Số đăng ký 4.405.829).Bằng sáng chế này hết hạn vào ngày 21 tháng 9năm 2000 Tuy nhiên, do thuật toán đã được công bố trước khi có đăng kýbảo hộ nên sự bảo hộ hầu như không có giá trị bên ngoài Hoa Kỳ
2.1.1 Chữ ký số RSA
Trong mật mã học, RSA là một thuật toán mật mã hóa khóa côngkhai.Đây là thuật toán đầu tiên phù hợp với việc tạo ra chữ ký điện tử đồngthời với việc mã hóa.Nó đánh dấu một sự tiến bộ vượt bậc của lĩnh vực mật
mã học trong việc sử dụng khóa công cộng RSA đang được sử dụng phổ biếntrong thương mại điện tử và được cho là đảm bảo an toàn với điều kiện độ dàikhóa đủ lớn
2.1.2 Hoạt động
2.1.2.1 Mô tả sơ lược
Thuật toán RSA có hai khóa: khóa công khai (hay khóa công cộng)
và khóa bí mật (hay khóa cá nhân) Mỗi khóa là những số cố định sử dụngtrong quá trình mã hóa và giải mã.Khóa công khai được công bố rộng rãi chomọi người và được dùng để mã hóa Những thông tin được mã hóa bằng khóacông khai chỉ có thể được giải mã bằng khóa bí mật tương ứng Nói cáchkhác, mọi người đều có thể mã hóa nhưng chỉ có người biết khóa cá nhân (bímật) mới có thể giải mã được
Trang 16Ta 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 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ậpchố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ếchộp lại cho Alice Alice mở hộp với chìa khóa của mình và đọc thông tintrong thư Trong ví dụ này, chiếc hộp với khóa mở đóng vai trò khóa côngkhai, chiếc chìa khóa chính là khóa bí mật.
o Tạo khóa
Giả sử Alice và Bob cần trao đổi thông tin bí mật thông qua một kênhkhông an toàn (ví dụ như Internet) Với thuật toán RSA, Alice đầu tiên cầntạo ra cho mình cặp khóa gồm khóa công khai và khóa bí mật theo các bướcsau:
5 Tính: sao cho de ≡ 1 (n) =(p-1)(q-1)mod ф(n) =(p-1)(q-1)n))
Khóa công khai bao gồm:
Trang 17d, số mũ bí mật (cũng gọi là số mũ giải mã).
Một dạng khác của khóa bí mật bao gồm:
p và q, hai số nguyên tố chọn ban đầu,
d mod (n) =(p-1)(q-1)p-1) và d mod (n) =(p-1)(q-1)q-1) (thường được gọi là dmp1 và dmq1),
(n) =(p-1)(q-1)1/q) mod p (thường được gọi là iqmp)
Dạng này cho phép thực hiện giải mã và ký nhanh hơn với việc sửdụng định lý số dư Trung Quốc (tiếng Anh: Chinese RemainderTheorem - CRT).Ở dạng này, tất cả thành phần của khóa bí mật phải được giữ
bí mật
Alice gửi khóa công khai cho Bob, và giữ bí mật khóa cá nhân của
mình.Ở đây, p và q giữ vai trò rất quan trọng.Chúng là các phân tố của n và cho phép tính d khi biết e Nếu không sử dụng dạng sau của khóa bí mật (dạng CRT) thì p và q sẽ được xóa ngay sau khi thực hiện xong quá trình tạo
khóa
o Mã hóa
Giả sử Bob muốn gửi đoạn thông tin M cho Alice Đầu tiên Bob chuyển M thành một số m < n theo một hàm có thể đảo ngược (từ m có thể xác định lại M) được thỏa thuận trước Quá trình này được mô tả ở
phần Chuyển đổi văn bản rõ hơn
Lúc này Bob có m và biết n cũng như e do Alice gửi Bob sẽ tính c là bản
mã hóa của m theo công thức:
Hàm trên có thể tính dễ dàng sử dụng phương pháp tính hàm mũ (theo
môđun) bằng (thuật toán bình phương và nhân) Cuối cùng Bob gửi c cho
Alice
Trang 18Sau đây là một ví dụ với những số cụ thể Ở đây chúng ta sử dụng những
số nhỏ để tiện tính toán còn trong thực tế phải dùng các số có giá trị đủ lớn.Lấy:
p = 61 — số nguyên tố thứ nhất (giữ bí mật hoặc hủy sau khi tạo
Khóa công khai là cặp (e, n) Khóa bí mật là d Hàm mã hóa là:
Trang 19với m là văn bản rõ Hàm giải mã là:
- Thường có thể chọn cùng giá trị của e cho tất cả người dùng
- Trước đây khuyến nghị giá trị của e là 3, nhưng hiện nay được coi là quá nhỏ
- Thường chọn e = 216 - 1 = 65535
- Giá trị của d sẽ lớn và khó đoán
o Độ an toàn của RSA
Độ an toàn của hệ thống RSA dựa trên 2 vấn đề của toán học: bài toán phân tích ra thừa số nguyên tố các số nguyên lớn và bài toán RSA
Trang 20Với việc phân tích thừa số nguyên tố, giả sử khóa có độ dài128 bit là một sốgiữa 1 và một số rất lớn :
40.282.366.920.938.000.000.000.000.000.000.000.000 f Có khoảng ≈ n /ln(n) = 2128 / ln(2128) ≈
.835.341.275.459.350.000.000.000.000.000.000.000 số nguyên tốgiữa 1 và sốnày Giả sử nếu mỗi giây có thể tính được 1012 số f Cần hơn121,617,874,031,562,000 năm (khoảng 10 triệu lần tuổi của vũ trụ) để tìm rakhóa
o Phá mã RSA :
- Phương pháp vét cạn : Thử tất cả các khóa riêng có thể f Phụ thuộc vào độdài khóa và gần như không thể
- Phương pháp phân tích toán học : Phân tích n thành 2 thừa số nguyên tố p và
q Như trên ta đã nói việc phân tích một số ra số nguyên tố là rất khó khăn,với tốc độ của máy tính hiện nay cũng không thể đáp ứng được việc phân tích
số nguyên tố lớn trong thời gian đa thức nếu các số p, q được chọn là lớn
- Xác định trực tiếp f(n) không thông qua p và q
- Xác định trực tiếp d không thông qua f(n)
- Phương pháp phân tích thời gian : Dựa trên việc đo thời gian giải mã Đây
là một cách dựa vào thời gian giải mã Phương pháp phân tích thời gian cóthể loại bỏ bằng cách làm nhiễu bằng cách cho thời gian giải mã của thôngbáo bất kỳ là gần như không đổi
2.1.3 Chuyển đổi văn bản
Trước khi thực hiện mã hóa, ta phải thực hiện việc chuyển đổi văn bản
rõ (chuyển đổi từ M sang m) sao cho không có giá trị nào của M tạo ra văn
bản mã không an toàn Nếu không có quá trình này, RSA sẽ gặp phải một sốvấn đề sau:
Trang 21 Nếu m = 0 hoặc m = 1 sẽ tạo ra các bản mã có giá trị là 0 và 1 tương
ứng
tác dụng và có thể dễ dàng tìm được m bằng cách khai căn bậc e của c (bỏ
qua môđun)
nhiên) nên kẻ tấn công có thể thực hiện tấn công lựa chọn bản rõ bằngcách tạo ra một bảng tra giữa bản rõ và bản mã Khi gặp một bản mã, kẻtấn công sử dụng bảng tra để tìm ra bản rõ tương ứng
Trên thực tế, ta thường gặp 2 vấn đề đầu khi gửi các bản tin ASCII ngắn
với m là nhóm vài ký tự ASCII Một đoạn tin chỉ có 1 ký tự NUL sẽ được gán giá trị m = 0 và cho ra bản mã là 0 bất kể giá trị của e và N Tương tự,
một ký tự ASCII khác, SOH , có giá trị 1 sẽ luôn cho ra bản mã là 1 Với các
hệ thống dùng giá trị e nhỏ thì tất cả ký tự ASCII đều cho kết quả mã hóa không an toàn vì giá trị lớn nhất của m chỉ là 255 và 2553 nhỏ hơn giá
trị n chấp nhận được Những bản mã này sẽ dễ dàng bị phá mã.
Để tránh gặp phải những vấn đề trên, RSA trên thực tế thường bao gồm
một hình thức chuyển đổi ngẫu nhiên hóa m trước khi mã hóa Quá trình chuyển đổi này phải đảm bảo rằng m không rơi vào các giá trị không an toàn.
Sau khi chuyển đổi, mỗi bản rõ khi mã hóa sẽ cho ra một trong số khả năngtrong tập hợp bản mã.Điều này làm giảm tính khả thi của phương pháp tấncông lựa chọn bản rõ (một bản rõ sẽ có thể tương ứng với nhiều bản mã tuỳthuộc vào cách chuyển đổi)
Một số tiêu chuẩn, chẳng hạn như PKCS, đã được thiết kế để chuyển đổibản rõ trước khi mã hóa bằng RSA Các phương pháp chuyển đổi này bổ sungthêm bít vào M Các phương pháp chuyển đổi cần được thiết kế cẩn thận để
Trang 22tránh những dạng tấn công phức tạp tận dụng khả năng biết trước được cấutrúc của bản rõ Phiên bản ban đầu của PKCS dùng một phương pháp đặc ứng(ad-hoc) mà về sau được biết là không an toàn trước tấn công lựa chọn bản rõthích ứng (adaptive chosen ciphertext attack) Các phương pháp chuyển đổihiện đại sử dụng các kỹ thuật như chuyển đổi mã hóa bất đối xứng tối ưu(Optimal Asymmetric Encryption Padding - OAEP) để chống lại tấn côngdạng này Tiêu chuẩn PKCS còn được bổ sung các tính năng khác để đảm bảo
an toàn cho chữ ký RSA (Probabilistic Signature Scheme for RSA - PSS)
RSA-2.1.4 Các vấn đề trong thực tế
2.1.4.1 Quá trình tạo khóa
Việc tìm ra 2 số nguyên tố đủ lớn p và q thường được thực hiện bằng
cách thử xác suất các số ngẫu nhiên có độ lớn phù hợp (dùng phép kiểm tranguyên tố cho phép loại bỏ hầu hết các hợp số)
p và q còn cần được chọn không quá gần nhau để phòng trường hợp phân tích n bằng phương pháp phân tích Fermat Ngoài ra, nếu p-1 hoặc q-1
có thừa số nguyên tố nhỏ thì cũng có thể dễ dàng bị phân tích và vì
thế p và q cũng cần được thử để tránh khả năng này.
Bên cạnh đó, cần tránh sử dụng các phương pháp tìm số ngẫu nhiên mà
kẻ tấn công có thể lợi dụng để biết thêm thông tin về việc lựa chọn (cần dùngcác bộ tạo số ngẫu nhiên tốt) Yêu cầu ở đây là các số được lựa chọn cần đồngthời ngẫu nhiên và không dự đoán được Đây là các yêu cầu khác nhau: một
số có thể được lựa chọn ngẫu nhiên (không có kiểu mẫu trong kết quả) nhưngnếu có thể dự đoán được dù chỉ một phần thì an ninh của thuật toán cũngkhông được đảm bảo Một ví dụ là bảng các số ngẫu nhiên do tập đoàn Randxuất bản vào những năm 1950 có thể rất thực sự ngẫu nhiên nhưng kẻ tấn
Trang 23công cũng có bảng này Nếu kẻ tấn công đoán được một nửa chữ số
của p hay q thì chúng có thể dễ dàng tìm ra nửa còn lại (theo nghiên cứu
của Donald Coppersmith vào năm 1997)
Một điểm nữa cần nhấn mạnh là khóa bí mật d phải đủ lớn Năm 1990, Wiener chỉ ra rằng nếu giá trị của p nằm trong khoảng q và 2q (khá phổ biến)
Mặc dù e đã từng có giá trị là 3 nhưng hiện nay các số mũ nhỏ không
còn được sử dụng do có thể tạo nên những lỗ hổng (đã đề cập ở phần chuyểnđổi văn bản rõ) Giá trị thường dùng hiện nay là 65537 vì được xem là đủ lớn
và cũng không quá lớn ảnh hưởng tới việc thực hiện hàm mũ
2.1.4.2 Tốc độ
RSA có tốc độ thực hiện chậm hơn đáng kể so với DES và các thuật toán
mã hóa đối xứng khác.Trên thực tế, Bob sử dụng một thuật toán mã hóa đốixứng nào đó để mã hóa văn bản cần gửi và chỉ sử dụng RSA để mã hóa khóa
để giải mã (thông thường khóa ngắn hơn nhiều so với văn bản)
Phương thức này cũng tạo ra những vấn đề an ninh mới Một ví dụ là cầnphải tạo ra khóa đối xứng thật sự ngẫu nhiên.Nếu không, kẻ tấn công (thường
ký hiệu là Eve) sẽ bỏ qua RSA và tập trung vào việc đoán khóa đối xứng
2.1.4.3 Phân phối khóa
Cũng giống như các thuật toán mã hóa khác, cách thức phân phối khóacông khai là một trong những yếu tố quyết định đối với độ an toàn của RSA
Quá trình phân phối khóa cần chống lại được tấn công đứng giữa the-middle attack) Giả sử Eve có thể gửi cho Bob một khóa bất kỳ và khiến
(man-in-Bob tin rằng đó là khóa (công khai) của Alice Đồng thời Eve có khả năngđọc được thông tin trao đổi giữa Bob và Alice.Khi đó, Eve sẽ gửi cho Bobkhóa công khai của chính mình (mà Bob nghĩ rằng đó là khóa của Alice) Sau
đó, Eve đọc tất cả văn bản mã hóa do Bob gửi, giải mã với khóa bí mật của
Trang 24mình, giữ 1 bản copy đồng thời mã hóa bằng khóa công khai của Alice và gửicho Alice Về nguyên tắc, cả Bob và Alice đều không phát hiện ra sự canthiệp của người thứ ba Các phương pháp chống lại dạng tấn công này thườngdựa trên các chứng thực khóa công khai (digital certificate) hoặc các thànhphần của hạ tầng khóa công khai (public key infrastructure - PKI).
2.1.4.4 Tấn công dựa trên thời gian
Vào năm 1995, Paul Kocher mô tả một dạng tấn công mới lên RSA: nếu
kẻ tấn công nắm đủ thông tin về phần cứng thực hiện mã hóa và xác địnhđược thời gian giải mã đối với một số bản mã lựa chọn thì có thể nhanh chóng
tìm ra khóa d Dạng tấn công này có thể áp dụng đối với hệ thống chữ ký điện
tử sử dụng RSA Năm 2003, Dan Boneh và David Brumley chứng minh mộtdạng tấn công thực tế hơn: phân tích thừa số RSA dùng mạng máy tính (Máychủ web dùng SSL) Tấn công đã khai thác thông tin rò rỉ của việc tối ưuhóa định lý số dư Trung quốc mà nhiều ứng dụng đã thực hiện
Để chống lại tấn công dựa trên thời gian là đảm bảo quá trình giải mãluôn diễn ra trong thời gian không đổi bất kể văn bản mã.Tuy nhiên, cách này
có thể làm giảm hiệu suất tính toán.Thay vào đó, hầu hết các ứng dụng RSA
sử dụng một kỹ thuật gọi là che mắt Kỹ thuật này dựa trên tính nhân của
được loại bỏ bằng cách nhân kết quả với nghịch đảo của r Đỗi với mỗi vănbản mã, người ta chọn một giá trị của r Vì vậy, thời gian giải mã sẽ khôngcòn phụ thuộc vào giá trị của văn bản mã
2.1.4.5 Hạn chế của khóa công khai
nhân chậm hơn nhiều so với các giải thuật đối xứng f Không thích hợpcho mã hóa thông thường
Trang 25- Thường dùng trao đổi khóa bí mật đầu phiên truyền tin.
khóa công bố đó là của một người khác f Chừng nào việc giả mạo chưa
bị phát hiện có thể đọc được nội dung các thông báo gửi cho người kia.Cần đảm bảo những người đăng ký khóa là đáng tin
Nhận xét: Hệ mã hóa RSA là một công cụ chính trong việc tạo ra chữ ký số.Qua việc trình bày ở trên ta thấy được sự an toàn cũng như cách tránh tấncông vào hệ mã hóa RSA
2.1.5 Mô hình chữ ký số trong thực tế
Hình 2.1.Mô hình chữ ký số trong thực tếDịch vụ cung cấp ở client S : Dịch vụ ở phía client cho phép tạo chữ ký
số σcho văn bản đầu vào m Dịch vụ xác thực chữ ký Dịch vụ của server G
(CA) chứng thực số : Cung cấp khóa công khai, bí mật cho người dùng(kv,ks) Xác thực một người dùng
Dịch vụ xác thực chữ ký ở V :Cung cấp dịch vụ cho client kiểm tra tínhđúng đắn của một chữ ký
2.1.6 Một số mô hình chữ ký số trong thực tế :
Mô hình chữ ký số RSA trong các hệ thống quản lý : Quá trình gửi vànhận các tệp văn bản phục vụ quản lý dựa vào thuật toán băm SHA-1 và thuậttoán RSA
Trang 26 Quá trình ký và gửi các tệp văn bản Từ file cần gửi ban đầu, chươngtrình sẽ sử dụng hàm băm SHA-1 để mã hóa chuỗi ký tự dài 128 bit.Chương trình sử dụng thuật toán RSA để mã hóa giá trị băm thu đượcvới khóa riêng của người gửi được một giá trị gọi là chữ ký điện tử Kếthợp file ban đầu với chữ ký điện tử thành một thông điệp đã ký và gửi đicho người nhận
Hình 2.2.Ký văn bảnQuá trình nhận các tệp văn bản : Sau khi người nhận nhận được vănbản Hệ thống sẽ tách thông điệp đã ký ra thành file và chữ ký điện tử Đếngiai đoạn này có 2 quá trình kiểm tra :
- Kiểm tra file có đúng người gửi hay không : Sử dụng thuật toán RSA
để giải mã chữ ký điện tử bằng khóa công khai của người gửi Nếu giải mãkhông được file nhận được thì file nhận được không đúng người Nếu giải mãthành công thì file nhận đuợc đúng người gửi và có giá trị băm 1
Trang 27- Kiểm tra file có bị thay đổi hay không :Từ file đuợc tách ra ta sử dụnghàm băm SHA-1 mã hóa thành giá trị băm 2(Kiểm tra giá trị băm 1 và giá trịbăm 2 có giống nhau hay không? Nếu giống nhau thì file nhận được là toànvẹn, không bị thay đổi, ngược lại là file đã bị thay đổi.
Trang 28Là một thuật toán /xác suất/ nhận đầu vào là một tham số bảo mật k (k còn được gọi là độ dài bảo mật) và đưa ra các tham số chung cho hệ thống Thuật toán này thường được tiến hành bởi server của hệ thống
Với RSA là việc chọn ngẫu nhiên các số nguyên tố lớn p & q, tính toán
n,
Thuật toán sinh khóa:
Đây là thuật toán /xác suất/, được tiến hành bởi người dùng trong hệ thống Thuật toán nhận đầu vào gồm các tham số của hệ thống và sinh ra cặp khóa bí mật /công khai Với RSA : d, e
Thuật toán sinh chữ ký số:
Thuật toán này nhận đầu vào là một tin nhắn/tài liệu, sinh ra một chữ ký
số nhờ vào khóa bí mật Thuật toán này có thể đơn định hoặc xác suất
Trong RSA: s = H(m)^d, đây là thuật toán đơn định vì không có sử dụng thêm yếu tố ngẫu nhiên nào
Thuật toán xác thực chữ ký số:
Thuật toán này được tiến hành bởi một người thứ ba khi muốn kiểm tra tính đúng đắn của một chữ ký số Thuật toán nhận đầu vào là 1 tin nhắn, chữ
ký số của tin nhắn đó và khóa công khai của người sở hữu tin nhắn & chữ ký
số, đầu ra của thuật toán là câu trả lời "đúng" hoặc "sai" Thuật toán này là thuật toán đơn định
2.1.8 Tạo chữ ký số RSA:
Sơ đồ chữ ký
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 = A = Zn
Tính bí mật (n) = (p-1)(q-1)
Chọn khóa công khai b<(n), nguyên tố cung nhau với (n)
Trang 29Khóa bí mật a là phần tử nghịch đảo của b theo mod (n): a*b 1 (mod
*Tạo cặp khóa (bí mật, công khai) (a, b) :
Chọn bí mật số nguyên tố p=3, q=5, tính n = p * q = 3*5 = 15, công khai
n
Đặt P = A = Zn = Zn Tính bí mật (n) = (p-1).(q-1) = 2 * 4 = 8
Chọn khóa công khai b = 3 <(n), nguyên tố với (n) = 8
Khóa bí mật a = 3, là phần tử nghịch đảo của b theo mod (n): a*b 1 (mod
(n)
* Ký số: Chữ ký trên x = 2 P là
y = Sig k (x) = x a (mod n)= 2 3 (mod 15) = 8, y A
* Kiểm tra chữ ký: Verk (x, y) = đúng x y b (mod n)
Trang 30 2 8 3 (mod 15)
Độ an toàn của chữ ký RSA
* Bài toán căn bản bảo đảm độ an toàn của Sơ đồ chữ ký RSA:
Bài toán tách số nguyên n thành tích của 2 số nguyên tố: n = p*q
Vì nếu giải được bài toán này thì có thể tính được khóa mật a từ khóa công khai b và phần tử công khai n
1) Người gửi G gửi tài liệu x cùng chữ ký y đến người nhận N, có 2 cách
xử lý:
a) Ký trước, mã hóa sau:
G ký trước vào x bằng chữ ký y = SigG (x), sau đó mã hoá x và y nhận được z = eG (x, y)
G gửi z cho N
Nhận được z, N giải mã z để được x, y
Tiếp theo kiểm tra chữ ký VerN (x, y) = true ?
b) Mã hóa trước, ký sau:
G mã hoá trước x bằng u = eG (x), sau đó ký vào u bằng chữ ký v = SigG (u)
G gửi (u, v) cho N
Nhận được (u, v), N giải mã u được x
Tiếp theo kiểm tra chữ ký VerN (u, v) = true ?
2) Giả sử H lấy trộm được thông tin trên đường truyền từ G đến N
+ Trong trường hợp a, H lấy được z Trong trường hợp b, H lấy được (u, v)
+ Để tấn công x, trong cả hai trường hợp, H đều phải giải mã thông tin lấy được
+ Để tấn công vào chữ ký, thay bằng chữ ký (giả mạo), thì xảy ra điều gì ?
- Trường hợp a, để tấn công chữ ký y, H phải giải mã z, mới nhận được y
Trang 31- Trường hợp b, để tấn công chữ ký v, H đã sẵn có v, H chỉ việc thay v bằng v’.
H thay chữ ký v trên u, bằng chữ ký của H là v’ = SigH(u), gửi (u, v’) đến
N
Khi nhận được v’, N kiểm thử thấy sai, gửi phản hồi lại G
G có thể chứng minh chữ ký đó là giả mạo
G gửi chữ ký đúng v cho N, nhưng quá trình truyền tin sẽ bị chậm lại
+ Như vậy trong trường hợp b, H có thể giả mạo chữ ký mà không cần giải
Giả sử Tom có 2 loại khóa : Khóa công khai (Public key) và Khóa bí mật(Private key)
Bất kỳ ai cũng có thế có khóa công khai nhưng riêng khóa bí mật Tom giữ riêng cho mình
Lucky có thể mã hóa văn bản hoặc một thông điệp bằng khóa công khai(Public key) của Tom Còn Tom sử dụng khóa bí mật (private key) của riêng mình để giải mã văn bản Lucky gửi cho mình Còn những người khác thì không thể đọc hay giải mã được văn bản đó
Trang 321.Tạo ra một văn bản tóm tắt từ văn bản gốc (băm văn bản gốc-> văn bản tóm tắt).
Nếu xác nhận đúng thì văn bản đó do Tom ký và gửi
Nếu xác nhận sai thì văn bản đó không biết do ai gửi
Trang 33CHƯƠNG III: MÔ TẢ HỆ THỐNG 3.1 Đặc tả yêu cầu
3.1.1 Mục đích
Xây dựng mô phỏng phần mền về chữ ký số RSA ứng dụng vào kiểm tra tính an toàn bảo mật của thông điệp
3.1.2 Mô tả tổng quan
Chương trình dùng để mô phỏng hệ chữ ký RSA
Có giao diện người dùng trực quan, dễ sử dụng
Hộ trợ tự động cho phép người dùng tự nhập và kiểm tra tính hợp lệcủa các yếu tố đầu vào
Cho phép mở và lưu các yếu tố đầu vào, ra
3.1.3 Yêu cầu chức năng
Cho phép tự nhập hoặc sinh ngẫu nhiên các số nguyên tố lớn p, qvới số bit được nhập vào tối đa là 1024 bit cũng như tự động kiểmtra xem p, q có phải là số nguyên tố hay không
Tự động tính 𝜙(n) = (p-1)*(q-1) mỗi khi thay đổi p hoặc q
Cho phép tự nhập hoặc tính toán n = p*q cũng như kiểm tra xem n
có bằng p*q hay không
Trang 34 Cho phép tự nhập hoặc tính toán e với e là số nguyên tố cùng nhauvới 𝜙(n) và < n cũng như kiểm tra xem e có đúng là số nguyên tốcùng nhau với 𝜙(n) hay không
Cho phép tự nhập hoặc tính toán d với d là phần tử ngược của e trênvành Z𝜙(n) và < n cũng như kiểm tra xem d có đúng là phần tử ngượccủa e trên vành Z𝜙(n) hay không
Cho phép xem khóa công khai (e, n) và khóa bí mật (d, p, q)
Cho phép mở file chứa khóa công khai (e, n) xem có hợp lệ haykhông
Cho phép lưu khóa công khai, khóa bí mật
Cho phép mở file chứa nội dung mã hóa,mã hóa chữ ký
Cho phép lưu file chứa nội dung mã hóa,mã hóa chữ ký, bản giải mãnội dung
Cho phép so sánh nội dung bản giải mã và nội dung
Cho phép mã hóa nội dung, giải mã bản mã, ký lên nội dung và xácthực chữ ký
3.1.4 Yêu cầu phi chức năng
3.1.4.1 Yêu cầu về độ tin cậy và hiệu suất
Phải đáp ứng được đầy đủ các chức năng, đặc biệt là chức năng ký vàxác thực chữ ký phải nhanh và chính xác
Trang 353.1.4.2 Yêu cầu về giao diện
Giao diện được trình bày khoa học, hợp lý và đảm bảo mỹ thuật hài hòavới mục đích của phần mềm, tuân thủ các chuẩn về truy cập thông tin
3.1.4.3 Thành phần bên ngoài
Có thể sử dụng thư viện xử lý số lớn mã nguồn mở bên ngoài
3.1.5 Thiết kế giao diện và tương tác với người dùng.
Thiết kế toàn bộ các chức năng trên 2 form chính Chia là 2 phần chính theo chiều ngang
Giao diện trên form Tạo chữ ký
Giao diện nhập p và q là là một Textbox để nhập số bit
Giao diện nhập n và e là một Textbox
Giao diện nhập dvà ф là một Textbox
Giao diện các nút “Tạo số”, “Tự tạo số”, “Nhập mới ” là các nút button
Trang 36 Giao diện mã hóa chữ ký bên dưới là một Textbox hiển thị dữ liệu đã được mã hóa.
Giao diện mã hóa nội dung là một Textbox hiển thị dữ liệu đã được mã hóa
Giao diện chữ ký trên nội dung là một Textbox hiện thị dữ liệu chữ ký trên nội dung đã được mã hóa
Các nút “Tạo chữ ký” vào “Kiểm tra” là các nút button
Giao diện trên form Kiểm tra chữ ký
Phần 1- Cặp khóa công khai ( Public key)
Trên cùng là một MenuItem với chức năng open file đã đưa lưu lại ở form Tạo chữ ký
Giao diện cặp khóa công khai (n,e) là hai nút button để nhận số liệu củacặp khóa công khai đã được tao ra tại form Tạo chữ ký
Trang 38CHƯƠNG IV: CÀI ĐẶT CHƯƠNG TRÌNH 4.1 Thông tin ứng dụng
Tên ứng dụng: Ứng dụng chữ ký số RSA vào kiểm tra tính an toàn bảo mật thông điệp
Mục đích:Sinh chữ ký số RSA chovăn bản được nhập vào trong ứng dụng.Bản quyền:Tự code theo thuật toán trong tài liệu tìm hiểu
Có kết nối mạng khi cài đặt
Đã cài Net 4.0 hoặc cao hơn
Visual studio 2012để xây dựng mã nguồn
4.1.2 Hướng dẫn cài đặt
- Ứng dụng không cần cài đặt :chỉ cần chạy ngay file “SignRSA.exe”
trong thư mục xây dựng để sử dụng ngay ứng dụng
4.1.3 Hướng dẫn xây dựng chươngtrình
Vào thư mục SignRSA và mở file SingRSA.sln bằng Visual Studio 2012trở lên Chọn menu “Build”
Chọn mục “Build Solution” Nhấn “Run” để chạy ứng dụng
4.1.4 Hướng dẫn chạy chương trình
Chạy trương trình
Thao tạo chữ ký
Trang 39Bước 1:Chạy ứng dụng, ứng dụng hiển thị cửa số nhập.
Hình 4.1 Giao diện Tạo chữ ký Bước 2:Nhập vào 2 số nguyên tố P,Q hoặc click chọn vào Tự tạo số
Trang 40Hình 4.2 Giao diện tạo các cặp số
- Ứng dụng sẽ tự động sinh các cặp số p,q,n,e,d, ф( n) khi click vào nút
“1.Tự tạo số”
- Bước 3:Nhập nội dung vào ô text nội dung Nội dung nhập tiếng việt
Hình 4.3 Giao diện nhập văn bản vào ô nội dung
- Bước 4:Nhấn nút “2 Tạo Chữ ký” để sinh chữ ký trên nội dung.
Ứng dụng có hỗ trợ mã hóa nội dung vàchữ ký theo mã hóa base64
Thực hiện theo cơ chế Ký trước và mã hóa sau