Tải bản đầy đủ (.docx) (19 trang)

Tìm hiểu về chữ ký số sử dụng giải thuật RSA Thạc sĩ PTIT

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (594.08 KB, 19 trang )

MỤC LỤC

Nhóm 3

1

Lớp M1CQIS-B


LỜI MỞ ĐẦU
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. Ngoài ra, cùng với sự phát triển 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. Đây chính
là cơ hội để kẻ gian đánh cắp thông tin của doanh nghiệp.
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. Vì
vậy an toàn và bảo mật thông tin là nhiệm vụ hết sức cấp bách hiện nay.
Bởi vậy mà nhóm 3 đã tiếp cận và tìm hiểu đề tài: “Tìm hiểu về giải thuật
tạo chữ ký số sử dụng RSA”. Tuy nhiên, do kiến thức còn hạn chế, đề tài không
tránh khỏi những thiếu sót. Rất mong thầy giáo và các bạn đóng góp để đề tài của
nhóm được hoàn thiện hơn.
Nhóm thực hiện

Nhóm 3

2


Lớp M1CQIS-B


I-

TỔNG QUAN VỀ CHỮ KÝ ĐIỆN TỬ VÀ ỨNG DỤNG

1. Chữ ký điện tử
Đặt vấn đề

1.1.

Kể từ khi con người phát minh ra chữ viết, các chữ ký thường luôn được sử
dụng hàng ngày, chẳng hạn như ký một biên nhận trên một bức thư nhận tiền từ
ngân hàng, ký hợp đồng hay một văn bản bất kỳ nào đó. Chữ ký viết tay thông
thường trên tài liệu thường được dùng để xác định người ký nó.
Tuy nhiên, ngày nay trong lĩnh vực hợp đồng điện tử, một trong những thử
thách chính là đạt được một cơ chế khác thay thế chữ ký bằng tay, nhưng nó phải
thực hiện đúng chức năng như chữ ký bằng tay, cụ thể là: Đảm bảo tính đồng nhất
của các bên tham gia ký kết hợp đồng, ràng buộc mỗi nhà thầu về cam kết mục
đích của họ và cuối cùng là nội dung của hợp đồng.
Giải pháp cho vấn đề này chính là chữ ký điện tử. Nó là biện pháp sử dụng các
phương tiện điện tử ràng buộc các nhà thầu bằng hợp đồng hay xác nhận tài liệu, vì
vậy đảm bảo được các chức năng như chữ ký bằng tay.

Trước hết,

chúng ta

sẽ thảo luận


một

vài

điểm

biệt



khác

Nhóm 3

3

Lớp M1CQIS-B


bản giữa chữ ký thông thường và chữ ký điện tử. Đầu tiên là vấn đề ký một tài liệu.
Với chữ ký thông thường nó là một phần vật lý của tài liệu. Tuy nhiên, một chữ ký
điện tử không gắn theo kiểu vật lý vào bức điện nên thuật toán được dùng phải là
“không nhìn thấy” theo cách nào đó trên bức điện.
Thứ hai là vấn đề kiểm tra. Chữ ký thông thường được kiểm tra bằng cách so
sánh nó với các chữ ký xác thực khác. Ví dụ, ai đó ký một tấm séc để mua hàng,
người bán sẽ so sánh chữ ký trên mảnh giấy đó với chữ ký nằm ở mặt sau thẻ tín
dụng để kiểm tra. Mặt khác, chữ ký số có thể kiểm tra bằng một thuật toán kiểm tra
một cách công khai. Như vậy, bất kỳ ai cũng có thể kiểm tra được chữ ký điện tử.
Việc sử dụng một sơ đồ ký an toàn có thể ngăn chặn được khả năng giả mạo.

Sự khác biệt cơ bản giữa chữ ký điện tử và chữ ký thông thường là ở chỗ: một
bản copy tài liệu có chữ ký được đồng nhất với bản gốc. Nói cách khác, tài liệu có
chữ ký trên giấy thường có thể khác biệt với bản gốc điều này để ngăn chặn một
bức điện được ký khỏi bị dùng lại.
1.2.

Khái niệm Chữ ký điện tử
Chữ ký điện tử (tiếng Anh: electronic signature) 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ử đượ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ăn bản, ảnh, video,... dữ liệu đó có bị thay đổi hay không.

Một số định nghĩa pháp lý
Nhiều luật được ban hành trên thế giới công nhận giá trị pháp lý của chữ ký điện tử
nhằm thúc đẩy các giao dịch điện tử xuyên quốc gia.
Luật Giao dịch điện tử (Việt Nam), điều 4 định nghĩa:

Nhóm 3

4

Lớp M1CQIS-B


(1) Chứng thư điện tử là thông điệp dữ liệu do tổ chức cung cấp dịch vụ
chứng thực chữ ký điện tử phát hành nhằm xác nhận cơ quan, tổ chức, cá nhân
được chứng thực là người ký chữ ký điện tử.

(2) Chứng thực chữ ký điện tử là việc xác nhận cơ quan, tổ chức, cá nhân
được chứng thực là người ký chữ ký điện tử.
(5) Dữ liệu là thông tin dưới dạng ký hiệu, chữ viết, chữ số, hình ảnh, âm
thanh hoặc dạng tương tự.
(12) Thông điệp dữ liệu là thông tin được tạo ra, được gửi đi, được nhận và
được lưu trữ bằng phương tiện điện tử.
Bộ luật ESIGN (Hoa Kỳ), điều 106 định nghĩa:
(2) Điện tử (electronic)- chỉ các công nghệ liên quan tới điện, số, từ, không
dây, quang, điện từ hoặc các khả năng tương tự.
(4) Văn bản điện tử (electronic record)- Các hợp đồng hoặc các văn bản
khác được tạo ra, lưu trữ, trao đổi dưới dạng điện tử.
(5) Chữ ký điện tử (electronic signature)- Các tín hiệu âm thanh, ký hiệu,
quá trình gắn (vật lý hoặc logic) với hợp đồng hay văn bản và được thực hiện bởi
người muốn ký vào hợp đồng hay văn bản đó.
Bộ luật GPEA (Hoa Kỳ), điều 1710 định nghĩa
(1) Chữ ký điện tử (electronic signature) - là cách thức ký các văn bản điện
tử đảm bảo:
(A) Nhận dạng và xác thực cá nhân đã tạo ra văn bản.
(B) Chỉ ra sự chấp thuận của người ký đối với nội dung trong văn bản.
2. Ứng dụng chữ ký điện tử
Chữ ký điện tử chỉ dùng được trong môi trường số, giao dịch điện tử với máy
tính và mạng Internet. Trong môi trường số không thể dùng chữ ký tay được, tuy
nhiên lại có rất nhiều ứng dụng đòi hỏi phải cần đến một cơ chế ký và xác thực
người dùng như chữ ký tay, các công nghệ mã hóa và chữ ký số ra đời để giúp giải
quyết vấn đề này. Như vậy chữ ký điện tử có thể sử dụng trong tất cả các trường
hợp giao dịch cần đến ký tay nhưng lại phải thực hiện trong môi trường số.
- Bạn có thể sử dụng chữ ký điện tử trong các giao dịch thư điện tử, ký vào các
email để các đối tác, khách hàng của bạn biết có phải bạn là người gửi thư không

Nhóm 3


5

Lớp M1CQIS-B


- Bạn có thể sử dụng dụng chữ ký điện tử này để mua bán hàng trực tuyến, đầu
tư chứng khoán trực tuyến, có thể chuyển tiền ngân hàng, thanh toán trực tuyến mà
không sợ bị đánh cắp tiền như với các tài khoản VISA, Master.
- Bạn có thể sử dụng với các ứng dụng chính phủ điện tử, các cơ quan nhà nước
trong tương lai sẽ làm việc với nhân dân hoàn toàn trực tuyến và một cửa. Khi cần
làm thủ tục hành chính hay xin một xác nhận của cơ quan nhà nước bạn chỉ cần
ngồi ở nhà khai vào mẫu và ký số vào để gửi là xong.
- Bạn có thể sử dụng để kê khai nộp thuế trực tuyến, khai báo hải quan và thông
quan trực tuyến mà không phải in các tờ kê khai, đóng dấu đỏ của công ty và chạy
xe ôm đến cơ quan thuế để chen lấn, xếp hàng và ngồi đợi vài tiếng đồng hồ có khi
đến cả ngày để nộp tờ khai này.
- Bạn có thể sử dụng chữ ký điện tử với các ứng dụng quản lý của doanh nghiệp
của mình với mức độ tin cậy, bảo mật và xác thực cao hơn rất nhiều.
- Bạn có thể dùng chữ ký điện tử để ký hợp đồng làm ăn với các đối tác hoàn
toàn trực tuyến trên mạng mà không cần ngồi trực tiếp với nhau, chỉ cần ký vào
file hợp đồng và gửi qua email.

Chữ ký điện tử tương đương với chữ ký tay nên nó có giá trị sử dụng trong các
ứng dụng giao dịch điện tử cần tính pháp lý cao. Tuy nhiên ngoài việc là một

Nhóm 3

6


Lớp M1CQIS-B


phương tiện điện tử được pháp luật thừa nhận về tính pháp lý, chữ ký điện tử còn
là một công nghệ mã hóa và xác thực rất mạnh, nó có thể giúp đảm bảo an toàn,
bảo mật cao cho các giao dịch trực tuyến, nhất là các giao dịch chứa các thông tin
liên quan đến tài chính, chuyển tiền chẳng hạn.
Những tiện ích của chữ ký điện tử:
- Bằng cách sử dụng chữ ký điện tử, thông tin và dữ liệu được gửi bằng điện tử
được bảo vệ tốt.
- Chữ ký điện tử cho phép nội dung của thông điệp được gửi là duy nhất, không thể
huỷ bỏ và thay đổi.
- Nó tạo điều kiện thuận lợi cho việc nhận dạng cả hai người gửi và người nhận.

Mặt hạn chế:
Hệ thống này tự nó có thể hỏng, điều này có nghĩa là nó rất cần sử dụng một
hệt thống thích hợp để phân loại các mật mã riêng.
Hệ thống phân loại cần được bảo vệ một cách hợp lý và quản lý bởi một cá
nhân hay tập thể được uỷ quyền tuyệt đối để làm việc đó.
II-

THUẬT TOÁN RSA

RSA là mã công khai được sáng tạo bởi Rivest, Shamir & Adleman ở MIT
(Trường Đại học Công nghệ Massachusetts) vào năm 1977. RSA
I.

là mã công khai được biết đến nhiều nhất và sử dụng rộng rãi nhất hiện nay. Nó
dựa trên các phép toán lũy thừa trong trường hữu hạn các số nguyên theo modulo
nguyên tố. Cụ thể, mã hoá hay giải mã là các phép toán luỹ thừa theo modulo số rất


Nhóm 3

7

Lớp M1CQIS-B


lớn. Việc thám mã, tức là tìm khoá riêng khi biết khoá công khai, dựa trên bài toán
khó là phân tích một số rất lớn đó ra thừa số nguyên tố. Nếu không có thông tin gì,
thì ta phải lần lượt kiểm tra tính chia hết của số đó cho tất cả các số nguyên tố nhỏ
hơn căn của nó. Đây là việc làm không khả thi.
Người ta chứng minh được rằng, phép lũy thừa cần O((log n)3) phép toán,
nên có thể coi lũy thừa là bài toán dễ.
II.
III.

Cần chú ý rằng ở đây ta sử dụng
các số rất lớn khoảng 1024 bit, tức là cỡ 10 350. Tính an toàn dựa vào độ khó của
bài toán phân tích ra thừa số các số lớn. Bài toán phân tích ra thừa số yêu cầu O(e
log n log log n) phép toán, đây là bài toán khó.

V.
1. Khởi tạo khoá RSA




Mỗi người sử dụng tạo một cặp khoá công khai – riêng như sau:.
Chọn ngẫu nhiên 2 số nguyên tố lớn p và q

Tính số làm modulo của hệ thống: N = p.q
o Ta đã biết Ф(N) = (p-1)(q-1)
o

Và có thể dùng Định lý Trung Hoa để giảm bớt tính toán

.


Chọn ngẫu nhiên khoá mã e
o Trong đó 1< e < ФN), gcd(e,Ф(N))=1



Giải phương trình sau để tìm khoá giải mã d sao cho:
e.d=1 mod Ф(N) với 0 ≤ d ≤ Ф(N)



In khoá mã công khai KU={e,N}



Giữ khoá riêng bí mật KR={d,p,q}

Nhóm 3

8

Lớp M1CQIS-B



2. Sử dụng RSA


Để mã hoá mẩu tin, người gửi:
o Lấy khoá công khai của người nhận KU={e,N}
o



Để giải mã hoá bản mã, người sở hữu nhận:
o Sử dụng khóa riêng KR = {d,p,q}
o



Tính C = Me mod N, trong đó 0 ≤ M < N

Tính M = Cd mod N

Lưu ý rằng bản tin M < N, do đó khi cần chia khối bản rõ.
3. Cơ sở của RSA



Theo Định lý Ole
Ф
o a (n)mod N = 1 trong đó gcd(a,N)=1
o Ta có N = p.q

o Ф(N) = (p-1)(q-1)
o
o

e.d = 1 mod Ф(N)
e.d = 1 + k.Ф(N) đối với một giá trị k nào đó.

Suy ra
Cd = (Me)d = M1+k.Ф(N) = M1.(MФ(N))k suy ra
o
Cd
modN = M1.(1)k modN = M1 modN = M modN
o

III-

ỨNG DỤNG THUẬT TOÁN RSA TRONG CHỮ KÝ ĐIỆN TỬ

Dựa vào ưu điểm của hệ mã RSA, nếu thiết lập được sơ đồ chữ ký dựa trên
bài toán phân tích ra thừa số nguyên tố thì độ an toàn của chữ ký sẽ rất cao. Việc
thiết lập sơ đồ xác thực chữ ký RSA rất đơn giản, ta chỉ cần đảo ngược hàm mã
hoá và giải mã. Sau đây là sơ đồ chữ ký RSA.

Nhóm 3

9

Lớp M1CQIS-B



Cho n = p*q, trong đó p, q là các số nguyên tố. Đặt P = A = Zn và định nghĩa:
K = {(n, p, q, a, b): n=p*q, p và q là các số nguyên tố, ab ≡ 1 (mod (n))}.
Các giá trị n và b là công khai; còn p, q, a là bí mật.
Với K = (n, p, q, a, b), ta xác định:
sigK(x) = xa mod n

verK(x,y) = TRUE x ≡ yb (mod n) với x, y thuộc Zn
(sigK(x):thuật toán ký, verK(x,y) :thuật toán xác minh )
Thông thường, chữ ký được kết hợp với hàm mã hoá công khai. Giả sử A
muốn gửi một bức điện đã được mã hoá và đã được ký đến cho B. Với bản rõ x
cho trước, A sẽ tính toán chữ ký của mình y = sigA(x) và sau đó mã hoá cả x và y
sử dụng khoá công khai eB của B, kết quả nhận được là z = eB(x, y). Bản mã z sẽ
được gửi tới B, khi B nhận được z, đầu tiên anh ta giải mã với hàm giải mã dB của
mình để nhận được (x, y). Sau đó anh ta dùng hàm xác minh công khai của A để
kiểm tra xem verA(x,y) = TRUE hay không.
Song nếu đầu tiên A mã hoá x , rồi sau đó mới ký lên bản mã nhận được thì sao?
Khi đó, A sẽ tính:
y = sigA(eB(x))
A sẽ truyền cặp (z, y) tới B, B sẽ giải mã z và nhận được x, sau đó xác minh chữ
ký y trên x nhờ dùng verA. Một vấn đề nảy sinh nếu A truyền (x, y) kiểu này thì
một người thứ ba C có thể thay chữ ký y của A bằng chữ ký của chính mình:
y‟ = sigC(eB(x))
Chú ý rằng, C có thể ký lên bản mã eB(x) ngay cả khi anh ta không biết bản
rõ x. Khi đó nếu C truyền (z, y‟) đến B, chữ ký của C được B xác minh bằng verC
và do đó, B cho rằng bản rõ x xuất phát từ C. Do khó khăn này, hầu hết người sử
dụng được khuyến nghị “ký trước khi mã”.
IV-

BẢO MẬT TRONG RSA


Về mặt lý thuyết RSA có thể bẻ khóa được, do có hai thành phần là public
(n,e). bài toán bẻ khóa RSA trở về bài toán tìm hai số nguyên tố từ một tích
cho trước (n).

Nhóm 3

10

Lớp M1CQIS-B


-

Khóa công cộng dễ tấn công hơn khóa bí mật, do một thành phần khóa đã được
truyền tự do trên mạng. Việc công phá hoàn toàn có thể thực hiện được với
điều kiện có đủ tài nguyên và thời gian xử lý.

-

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 ra thừ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ật toá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ài toán này trong thời gian đa thức.

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 bít với phương pháp phân tán trong khi khóa của RSA có độ
dà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ớ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 ta thườ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ới má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âu hỏ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ính lượng tử
có thể giải bài toán phân tích ra thừa số trong thời gian đa thức. Tuy nhiên,
máy tính lượng tử vẫn chưa thể phát triển được tới mức độ này trong nhiều

-

năm nữa.
Gần đây, các nhà khoa học thuộc Đại học Michigan đã công bố phát hiện một
kẽ hở trong hệ thống mật mã hoá RSA. Cách phá vỡ hệ thống, lấy khoá bí mật

Nhóm 3

11

Lớp M1CQIS-B



RSA 1024 bit chỉ trong vài ngày thay vì vài năm nếu tấn công theo cách thông
thường - tấn công bằng brute force. Các nhà khoa học tạo một điện thế lớn để
gây lỗi hệ thống, từ đó giúp tìm ra khoá bí mật. Việc tấn công được thực hiện
trên một FPGA. Báo cáo được trình bày tại hội nghị DATE 2010 diễn ra tại
Dresden, Đức tháng 3 năm 2010.
3. 1. Các cách tấn công khóa RSA:
1. Phương pháp sử dụng :

-

Giả sử người tấn công biết được giá trị φ(n). Khi đó việc xác định giá trị p, q

-

được đưa về việc giải hai phương trình sau:
n = p ×q
Thay q = n/p, ta được phương trình bậc hai :

-

p, q chính là hai nghiệm của phương trình bậc hai này. Tuy nhiên vấn đề phát

-

hiện được giá trị còn khó hơn việc xác định hai thừa số nguyên tố của n.
Nếu kẻ tấn công nắm ưu thế về thời gian và phần cứng thì có thể áp dụng thuật
toán phân tích số nguyên tố để dò ra khóa bí mật, như thế thì đảm bảo an toàn

-


của hệ thống sẽ bị đe dọa.
2. Thuật toán tấn công dựa trên các tấn công lặp lại:
Hệ thống RSA có thể bị tổn thương khi sử dụng tấn công lặp liên tiếp. Nếu đối
thủ biết cặp khóa công cộng {n, b} và từ khóa C thì có thể tính chuỗi các từ
khóa sau:

-

Nếu có một phần tử Cj trong chuỗi C1, C2, C3,…., Ci sao cho Cj = C thì khi đó
sẽ tìm được M = Cj-1 vì

Nhóm 3

12

Lớp M1CQIS-B


3. Ngoài ra, nếu biết được các thông tin cần thiết về phần cứng, thời gian

mã hóa và giải mã với một số bản mã được lựa chọn thì có thể dò ra khóa
riêng d. Cách tấn công này thường sử dụng để tấn công vào các hệ thống
chữ ký điện tử sử dụng RSA.

4. 2. Các vấn đề an ninh khác:
-

Để đảm bảo tính an toàn cho hệ thống thì hai số nguyên tố được chọn phải đủ


-

lớn (1024 bít trở lên).
Hệ thống RSA có đặc điểm là thông tin không phải luôn luôn được che dấu.
Giả sử người nói có e = 17, n = 35, nếu anh ta muốn gửi bất kì dữ liệu nào
trong tập {1, 6, 7, 8, 13, 14, 15, 20, 21, 22, 28, 29, 34} thì kết quả của việc mã
hóa lại chính là dữ liệu ban đầu. Nghĩa là M = Memod n. Ngoài ra nếu M = 1

-

hoặc 0 thì kết quả của việc mã hóa lại là chính nó với mọi số khóa bí mật.
Với mỗi e, có ít nhất ba giá trị không được che dấu thông tin: {-1,0,1}.
Các vấn đề an ninh khác:
Các vấn đề khó giải quyết trong RSA:
o Vấn đề số nguyên tố: Kiểm tra một số lớn có phải là số nguyên tố hay
không. Trên thực tế, việc kiểm tra một số nguyên dương n là số nguyên
tố thường áp dụng các phương pháp thuộc nhóm thuật toán Monte Carlo,
o

ví dụ như thuật toán: Solovay-Strassen hay thuật toán Miller-Robin.
Vấn đề số lớn: cần số nguyên tố đủ lớn để không thể phân tích ra thừa số
nguyên tố. Mỗi số nguyên tố có ít nhất cũng phải 100 chữ số, như thế thì
các phéo toán học đơn giản trở nên phức tạp và chiếm nhiều thời gian
tính toán: thuật toán kiểm tra số nguyên tố, phép mũ số lớn, phép lấy dư,
… tất cả đều là các phép toán trong quá trình tạo khóa, mã và giải mã
RSA. Cần thiết tạo ra một thuật toán giải quyết các vấn đề một cách



nhanh chống để thời gian xử lý của thuật toán RSA là chấp nhận được.

Kết luận:

Nhóm 3

13

Lớp M1CQIS-B


-

Như vậy, tính an toàn của phương pháp RSA dựa trên cơ sở các máy tính tại
thời điểm hiện tại chưa đủ khả năng giải quyết việc phân tích các số rất lớn ra
thừa số nguyên tố.

V-

XÂY DỰNG ỨNG DỤNG

1. Giới thiệu chính:
Chương trình ứng dụng gồm có ba phần chính:
1.
2.
3.

Thuật toán sinh khóa RSA.
Thuật toán ký lên văn bản cần gửi.
Thuật toán kiểm tra tính hợp lệ của văn bản nhận.

2. Hướng dẫn sử dụng chương trình:

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

Nhóm 3

14

Lớp M1CQIS-B


-

Bước 2: Lưu khóa vào tệp:

Nhóm 3

15

Lớp M1CQIS-B


-

Ký vào văn bản cần chuyển đi:
Chọn văn bản cần chuyển đi, hoặc là tạo văn bản mới:

-


Chọn chữ ký cần sử dụng và thực hiện ký lên văn bản, ở đây do là chữ ký điện

2.

tử cho nên khi ký, tức là khi mã hóa chúng ta phải sử dụng khóa private của
người gửi:

Kiểm tra tính hợp lệ của văn bản nhận:
Thực hiện theo trình tự sau:
a. Load file văn bản nhận. Tách chữ ký và văn bản rõ:
3.

-

Nhóm 3

16

Lớp M1CQIS-B


b.

Giải chữ ký (với giá trị khóa công khai của người gửi):

c.

Thực hiện tính hàm băm của văn bản rõ:

Nhóm 3


17

Lớp M1CQIS-B


d.

Kiểm tra tính hợp lệ của văn bản:

3. Trình bày các thuật toán trong lập trình:
-

Sử dụng các thuật toán đã trình bày trong phần lý thuyết.
Kết hợp sử dụng thư viện số lớn để giải quyết vấn đề số lớn, vấn đề kiểm tra số
nguyên tố mà chương trình cần sử dụng.

Nhóm 3

18

Lớp M1CQIS-B


-

Ngoài ra còn sử dụng hàm băm trong quá trình tạo chữ ký số.
Sử dụng ngôn ngữ C# trên nền windows tạo giao diện thân thiện cho người sử
dụng.


Nhóm 3

19

Lớp M1CQIS-B



×