TONG QUAN VE CHỮ KÝ SO VÀ UNGDUNG 1.1 Giới thiệu về chữ ký số 1.1.1 Khái niệm chữ ký điện tw Chữ ký điện tử electronic signature không phải là hình thức số hóa chữ ký viết tay rồi kèm th
Trang 1LOI MỞ ĐẦUGiao dịch điện tử ra đời giúp cho các lĩnh vực khoa học và đời sông phát
triển mạnh mẽ hơn Ngày nay, giao dịch điện tử dang được phát triển mạnh mẽ,
được ứng dụng cho nhiều lĩnh vực khác nhau và ngày càng khăng định được vai tròcủa mình.Tuy nhiên, có nhiều vấn đề nảy sinh với các giao dịch điện tử, như thôngtin giao dịch bị thay đối, bị đánh cắp, bị giả mạo Các van dé này dẫn đến giao
dịch không thực hiện chính xác, thông tin không được bảo đảm tính toàn vẹn, tính
xác thực và cũng có thể gây thiệt hại cho các bên thực hiện giao dịch Do đó, cần
phải có các giải pháp để bảo đảm an toàn cho giao dịch điện tử
Thông tư 180/2010/TT-BTC của Bộ Tài Chính công nhận tính pháp lý của
hình thức giao dịch điện tử sử dụng chữ ký số giữa người nộp thuế và cơ quanThuế Như vậy, khi kê khai, nộp tờ khai và nộp thuế qua mạng có dùng chữ ký số,
các hồ sơ thuế điện tử có giá trị tương đương như các hồ sơ thuế được gửi trực tiếptới cơ quan thuế
Hình thức nộp thuế qua mạng được thực hiện theo Chỉ thị số 24/CT-TT ngày
05/08/2014 của Thủ tướng Chính phủ về tăng cường cải cách và thủ tục hành chínhtrong lĩnh vực thuế, hải quan Quyết định số 1201/QĐ-TCT ngày 06/08/2014 của
Tổng cục Thuế ban hành kèm theo kế hoạch đây mạnh cải cách thủ tục hành chính
tạo thuận lợi cho doanh nghiệp và người dân.
Dựa trên nền tảng mật mã học, chữ ký số (Digital signature) đã được nghiêncứu và ứng dụng khá rộng rãi trong thương mại điện tử và nhiều lĩnh vực khác Chữ
ký số có khả năng bảo đảm tính toàn vẹn và xác thực dữ liệu, và khi kết hợp vớichứng chỉ số giúp xác định được danh tính của cá nhân, công ty, tô chức trong việc
xác thực các bên tham gia giao dịch trên Internet.
Đề tài "Nghiên cứu về chữ ký số và ứng dụng trong hệ thong nộp thuế quamạng" nhằm nghiên cứu và thử nghiệm các kỹ thuật, các giao thức bảo đảm an toàngiao dịch, an toàn dữ liệu trên đường truyền và ứng dụng trong hệ thống nộp thuế
qua mạng.
Trang 2Luận văn được trình bày thành 3 chương như sau:
Chương 1 Tổng quan về chữ ký số và ứng dụngChương này tập trung nghiên cứu khái quát lý thuyết chữ kí số Trình bàyđịnh nghĩa và vai trò chữ ký số Trong đó sẽ có cái nhìn tổng quan về chữ kí số vàứng dụng chữ ký số
Chương 2 Cơ sở mã hóa cho chữ ký số
Chương này nghiên cứu cụ thé về cơ sở hạ tang cơ bản dé tạo chữ ký số
Trong đó nghiên cứu cụ thê về mã hoá khóa công khai dùng trong tạo chữ ký số - từ
đó đánh giá dé chọn ra giai thuat tối ưu hon, hạ tầng khoá công khai PKI, hàm băm,
kỹ thuật tạo chữ ký số
Chương 3 Ứng dụng chữ ký số trong hệ thống nộp thuế qua mạng
Chương này sẽ ứng dụng Nộp thuế điện tử qua mạng, cài đặt chữ ký số chocác chứng từ trong hệ thống Nộp thuế qua mạng
Trang 3CHƯƠNG 1 TONG QUAN VE CHỮ KÝ SO VÀ UNG
DUNG
1.1 Giới thiệu về chữ ký số
1.1.1 Khái niệm chữ ký điện tw
Chữ ký điện tử (electronic signature) không phải là hình thức số hóa chữ ký
viết tay rồi kèm theo một thông điệp mà là thông tin đi kèm theo dữ liệu (văn bản:
word, excel, pdf ; hình ảnh; video ) nhằm mục đích xác định người chủ của dữ
liệu đó.
1.12 Khái niệm chữ ký số
Chữ ký số là một chuỗi dữ liệu liên kết với một văn bản hay một thông điệp
và thực thé tạo ra văn ban hay thông điệp đó Chữ ký số trên một văn bản điện tử cóthê hiểu như là chữ ký tay được đóng dấu trên văn bản giấy Chữ ký số là dạng chữ
ký đảm bảo an toàn, duy nhất và không thê giả mạo
Các thuật toán chữ ký số cho phép xác định nguồn gốc, bảo đảm tính toàn
vẹn dữ liệu của thông điệp được truyền di, đồng thời nó cũng bảo đảm tính không
phủ nhận của thực thể đã ký thông điệp.
1.L3 Định nghĩa hình thức chữ ký số
Một so đồ chữ ký số là một bộ 5 (P, A, K, S, V) thỏa mãn những điều kiện sau:
1) P là tập hữu hạn các thông điệp có thé
2) A là tập hữu hạn các chữ ký có thé.
3) K là tập không gian khoá (tập hữu han các khoá có thé).
4) Với mỗi khoá KE Z tồn tại một thuật toán ký sigx © S và một thuật toán
xác minh very © V Mỗi sigx: P > A và verg: P x A > {TRUE, FALSE} là những
ham sao cho mỗi thông điệp x © P và mỗi chữ ký y © A thoả mãn phương trình dưới
Trang 4Với mỗi K © K hàm sigg và verx là các hàm thời gian đa thức, verg sẽ là hàm công
khai, sigx là hàm bí mật Người thứ ba không thé dé dang tính toán dé giả mạo chữ
ký của người gửi trên thông điệp x Điều đó có nghĩa là nếu cho trước x thì chỉ có
người nhận mới có thé tính được chữ ký y để xác minh xem ver(x,y) có bang TRUE
hay không.
1.1.4 Vai trò của chữ ký số
Tính toàn vẹn: thông tin không thể bị thay đổi mà không bị phát hiện
Tính không thé chối bỏ: người gửi hoặc nhận sau này không thé chối bỏ việc
đã gửi hoặc nhận thông tin.
Khả năng xác định nguồn gốc: người gửi (hoặc người nhận) có thé khang định
thông tin là của người gửi.
1.1.5 Phân loại chữ ký số
Có hai cách chính dé phân loại chữ ký số
Cách 1: Phân loại theo khả năng khôi phục thông điệp gốc
1) Chữ ký có thé khôi phục thông điệp gốc:
2) Chữ ký không thể khôi phục thông điệp gốc:
Cách 2: Phân loại chữ ký theo mức an toàn.
1) Chữ ký “không thé phủ nhận”:
2) Chữ ký “một lần”:
1.2 Mô hình ký và kiểm tra chữ ký số
1.2.1 Quá trình ký
Quá trình ký thông điệp được minh họa trên Hình 1.3, gồm các bước sau:
Bước 1: Dùng giải thuật băm dé tính bản tóm lược của thông điệp cần truyền
đi Kết quả ta được một bản tóm lược
Bước 2: Sử dụng khóa riêng của người gửi dé mã hóa bản tóm lược thu được
ở bước 1 Thông thường ở bước này ta dùng giải thuật RSA Kết quả thu được gọi
là chữ ký điện tử của thông điệp ban đầu
Bước 3: Mã hóa ban tóm lược bằng khóa riêng dé tạo ra chữ ký Sau khi đãtạo chữ ký, mọi sự thay đổi trên thông điệp sẽ bị phát hiện trong giai đoạn kiểm tra
Trang 5Ngoài ra, chữ ký này bảo đảm người nhận tin tưởng thông điệp này xuất phát từ
người gửi chứ không phải là ai khác.
Bước 4: Gộp chữ ký số vào thông điệp ban đầu và gửi đến người nhận
"Thông điệp dữ liệu
Khoa bí mật
|
Giắn với thông
điệp dữ liệu
"Thông điệp dữ liệu
được ký sô
Hình 1.1 Quá trình tạo chữ ký số
12.2 Quá trình kiểm tra
Quá trình kiểm tra chữ ký số được minh họa trên Hình 1.4, gồm các bước
sau:
Đánh số bước tương tự ở trên Tach thông điệp ban đầu va chữ ky số
Dùng khóa công khai của người gửi (khóa này được thông báo đến mọi
người) để giải mã chữ ký số của thông điệp
Dùng giải thuật (MD5 hoặc SHA) băm thông điệp ban đầu
So sánh 2 chuỗi băm kết quả thu được ở 2 bước trên Nếu trùng nhau, ta kết
luận thông điệp này không bị thay đổi trong quá trình truyền và thông điệp này là
của người gui.
Trang 6ma "Thông điệp dŒ liệu
duoc ky sé
Kha c6ng khai Qs" Cc Tach
Th6ng diép da& liệu:
N6i dung "¬.n diép bị thay ciối
Hình 1.2 Quá trình kiếm tra chữ ký số
1.3 Các ứng dụng của chữ ký số
1.3.1 Xác thực các văn bản và giao dịch điện tw
13.2 Sử dụng chữ ký số trong trong các giao thức bảo mật SSL/TLS và
PGP
1.3.2.1 Kiểm tra chữ ký số của CA trong SSL/TLS
1.3.2.2 Xác thực thông điệp trong các giao thức bảo mật PGP
1.4 Tổng kết chương 1
Chữ ký số tạo ra một bước tiến lớn trong các giao dịch thương mại điện tử,
bảo đảm tính an toàn và tin cậy trong truyền thông trên mạng
Chương 1 đã trình bày tổng quan về khái niệm chữ ký số, phân loại, vai trò,lợi ích khi áp dụng chữ ký số trong truyền thông trên Internet
Chương 1 cũng mô tả cụ thé quy trình thực hiện ký và ứng dụng trong cáclĩnh vực cụ thể của chữ ký SỐ
Trang 7CHƯƠNG 2 CƠ SỞ MÃ HÓA CHO CHỮ KÝ SO
2.1 Khái quát về mã hóa khóa công khai
2.1.1 Giới thiệu chung
Mã hóa dữ liệu là sử dụng một phương pháp biến đổi dữ liệu từ dạng bìnhthường sang một dạng khác, mà một người không có thâm quyền, không có phươngtiện giải mã thì không thé đọc hiểu được
Giải mã dữ liệu là quá trình ngược lại, là việc sử dụng một phương pháp biến
đổi dữ liệu đã được mã hóa về dạng thông tin ban đầu Có thé mô tả quy trình thực
hiện mã hóa dữ liệu và giải mã dữ liệu như Hình 2.1.
Khóa mã hóa « Hệ thông quản lý > Khóa giải mã
waa k mA mã hé Dữ liệu
Dữ liệu gốc Mã hóa Dữ liệu mã hóa Giải mã sốc
_— (Bản mã) |
Hình 2.1 Quy trình thực hiện mã hóa dữ liệu và giải ma dữ liệu
Sau đây là một số khái niệm và kí hiệu liên quan về van đề mã hóa dữ liệu :
- E (Encryption - Mã hóa): Là quá trình chuyền đổi dữ liệu gốc thành dữ liệuđược mã hóa sao người khác không thé đọc hiểu
- D (Decryption - Giải mã): Là quá trình ngược lại của mã hóa, biến đôi dữliệu đã được mã hóa thành dạng gốc ban đầu
- M (Message - Thông điệp), bản sốc hay ban rõ (Plaintext): Là tệp dữ liệu
chưa được mã hóa hoặc đã được giải mã.
- C (Ciphertext -Bản đã mã hóa, bản mã): Tép dữ liệu đã được mã hóa.
- K (Key - Khóa): Là dãy các bít 0, 1, thường được biéu diễn dạng xâu ký tự,
- KP (Public Key - Khóa công khai, KS (Private Key — Khóa riêng) Theo quy ước, khi mã hóa thì C = E(M) va khi giải mã thi M = D(C) = D(E(M)).
Trang 82.1.1.1 Mã hóa khóa công khai
Mã hóa khóa công khai (Public key cryptography) là một dạng mã hóa cho
phép người sử dụng trao đổi các thông tin mật mà không cần phải trao đổi các khóa
dùng chung bí mật trước đó Điều này được thực hiện bằng cách sử dụng một cặp
khóa có quan hệ toán học với nhau là khóa công khai và khóa riêng.
Hệ thống mã hóa khóa công khai có thê sử dụng với các mục đích:
Mã hóa: Quá trình thực hiện như minh họa trên Hình 2.2.
Tạo chữ ký SỐ: Quá trình thực hiện như minh họa trên Hình 2.3
Khi A muốn truyền tin cho B, A sẽ sử dụng khóa KP của B dé mã hóa bản tin
và gửi bản mã tới cho B, B sẽ sử dụng khóa bí mật của mình đê giải mã và đọc bản
Hình 2.2 Mô hình mã hóa dựa trên mã khóa khóa công khai
Văn ban mã hóa = E(KP, Văn bản gốc) ,Văn bản gốc = D(KS, E(KP,Văn bangôc))
Khóa bí mật Khóa công
Hình 2.3 Mô hình tạo chữ ký số mã khóa khóa công khai
Văn bản mã hóa = E(KS,Văn bản gốc) ,Văn bản gốc = D(KS, E(KP,Văn bản
gốc))
2.1.2 Hàm băm
Trong ngành mật mã học, một hàm băm mật mã (Cryptographic hash
function) là một hàm băm với một số tính chất bảo mật nhất định để phù hợp việc
sử dụng trong nhiều ứng dụng bảo mật thông tin đa dạng, chăng hạn như chứng
Trang 9thực (authentication) và kiểm tra tính toàn vẹn của thông điệp (message integrity).Một hàm băm nhận đầu vào là một xâu ký tự (hay thông điệp) có độ dài tùy ý và tạo
ra kết quả là một xâu ký tự có độ dài cố định, đôi khi được gọi là bản tóm lược
(message digest).
Trong lĩnh vực mã hóa thông tin, mã băm được xem như đặc trưng thu gon
của một chuỗi bit tùy ý và dùng dé nhận ra chuỗi bit đó Hàm băm chính là công cụ
để tạo ra chữ ký số và bảo đảm an toàn đữ liệu
2.2 Thuật toán mã hóa RSA
2.2.1 Tổng quan về RSA
Thuật toán được Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiênvào năm 1977 tại Học viện công nghệ Massachusetts (MIT) Tên của thuật toán lấy
từ 3 chữ cái đầu của tên 3 tác giả
Trong mật mã học, RSA là một thuật toán mã hóa khóa công khai Đây là
thuật toán đầu tiên phù hợp với việc tạo ra chữ kí điện tử đồng thờ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ã hoc trong việc sử dụngkhóa công khai RSA đang được sử dụng phổ biến trong thương mại điện tử và
được cho là bảo đảm an toàn với điều kiện độ dài khóa đủ lớn
Thuật toán RSA sử dụng một cặp khóa: khóa công khai và khóa riêng.
2.2.2 Thuật toán RSA
2.2.2.1 Quá trình tạo khóa
Cặp khóa cua RSA được sinh theo phương pháp sau:[6]
- Bước 1: Chon 2 số nguyên tô đủ lớn p và q với p, g, 2 số này là ngẫu nhiên
và độc lập với nhau
- Bước 2: Tính: n = pq
- Bước 3: Tinh: O(n) = (p-1)(q-1) với Ø(m)là giá trị ham số Ơle
- Bước 4: Chon một số ngẫu nhiên e với 1<e<@(n), sao cho gcd(e, Ø(m)) = 1
- Bước 5: Tính d sao cho đe = 1(mod ø(n)) => d =e '!mod Ø(n).
Trang 10Kết thúc quá trình tạo khóa ta có KP = {e, n} là khóa công khai, còn KS ={d, n} được gọi là khóa riêng Các số nguyên t6 p, q sẽ bị xóa khi kết thúc quá trình
tạo khóa.
2.2.2.2 Quá trình mã hóa
Khi A muốn gửi cho B thông điệp một cách bí mật, thì trước hết A cần phải
thực hiện theo các bước như sau:
- Bước 1: Nhận khóa công khai KP = (n, e) từ B
2.2.3 Độ an toàn cua hệ mật mã RSA
Ta nhận thấy hệ mật mã RSA có khóa công khai (n, e) đã biết và giả sử có bản
mã c= m®mod n cũng được công khai, vậy thi từ đó chúng ta có thé tìm được
thông điệp Vậy nên việc giữ bí mật khóa riêng có đảm bảo an toàn được hay không
Chúng ta có 4 hàm phi tuyến, mỗi hàm này được dùng cho mỗi vòng lặp:
FŒX,Y,Z)=(X A Y) v (AX) AZ) G(X,Y,Z)=(X AZ) v (Y a (AZ)) H(X,Y,Z)=X®@® Y ®Z
I(X,Y,Z)= Y ® (X v(—⁄2)
Trang 11với A là AND, v là OR, ¬ là NOT, ® là XOR và X, Y, Z được thiết kế sao chochúng độc lập và ngang bằng nhau.
2.3.2 Thuật toán SHAI
Năm 1995, tổ chức NIST cùng NSA đã thiết kế ra thuật toán hàm băm antoàn (SHA) sử dụng cho chuẩn chữ ký số DSS SHA được thiết kế dựa trên nhữngnguyên tac của MD4/MD5, tạo ra 160-bit giá trị băm
Ham băm SHA-1 với giá trị băm có kích thước là 160 bít, được dùng dé tínhgiá trị băm của thông điệp có kích thước tối đa là bít
SHA-1 xác lập bốn hàm phi tuyến như sau:
ƒ#(ŒX.Y,Z)=(X A Y) Vv (AX) A Z) với 0<t< 19
#(ŒX.Y,Z)=X ®Y OZ với 20<t<39
#(ŒX.Y,Z)=(X A Y)v(XA Z)v(Y A Z) với 40<t<59
#@Œ.,Y,Z)=X ®Y OZ với 60 <t< 79.
2.3.3 Tính bao mật của ham bam
2.4 Các giải thuật chữ ký số
2.4.1 Giải thuật chữ ký số RSA
2.4.1.1 Quá trình tạo khóa
Cho n=p*q, trong đó p, q là các số nguyên tố Đặt P = A = Zạ, ta có định nghĩasau: K = {(n,p,q,e,d):n = p*q,pva q là các số nguyên tố, p khác q, ed=
1(mod ø(n)) Với KP = {n, e} là công khai, khóa bí riêng KS = {d, n}; n,e là công
khai và p, q, d là bí mật.
2.4.1.2 Quá trình tạo chữ ký
Với K = {(n,p, q,e,đ):n = p * q,p và q là các số nguyên tố }, ta có:
y =sigx(x) = x* mod n2.4.1.3 Quá trình kiểm tra chữ ký
Nếu: 0er„(x,y) =true © x = yỶ(mod n) với x, y € Z, thì thông điệp đã
ký là xác thực [6]
Trang 122.4.2 Giải thuật chữ ký số DSA
2.5 Hạ tang khóa công khai PKI
2.5.1 Giới thiệu PKI
PKI (Public Key Infastructure) là hạ tầng cơ sở khóa công khai PKI là cơchế để cho một bên thứ 3 (nhà cung cấp chứng chỉ số) cung cấp và xác thực địnhdanh các bên tham gia vào quá trình trao đổi thông tin Cơ chế này cũng cho phépgán cho mỗi người sử dụng trong hệ thống một cặp khóa công khai/khóa riêng Cácquá trình này thường được thực hiện bởi một phần mềm đặt tại trung tâm và cácphần mềm phối hợp khác tại các địa điểm của người dùng Khóa công khai thườngđược phân phối trong chứng thực khóa công khai (chứng chỉ số)
2.5.2 Các thành phan cia PKI
Các thành phan co ban của một hệ thống PKI gồm:
e Tổ chức chứng thực (Certificate Authority)
e Trung tâm đăng ký (Registration Authority)
e Hệ thống lưu trữ (Certificate Repository và Archive)
e May chủ an ninh
e_ Thực thé cuối (PKI-enabled applications va PKI users)
Mô hình và hoạt động của PKI:
May khách hỗ trợ chứng chi Người nhận dữ liệu
(VPN Client, trình duyệt) Ù (Máy chủ web, VPN Gateway)
Ký, mã hóa kiểm tra, giải hóa
Hình 2.4 Mô hình xây dựng PKI cơ bản
Trang 13- PKI cung cấp một cặp khóa, trong đó có một khóa là khóa công khai(Public key) dé có thé sử dụng dịch vụ, khóa còn lại là khóa riêng (Private key) mangười sử dụng phải giữ bí mật Hai khóa này có liên quan mật thiếtđến nhau, sao
cho một thông điệp được mã hóa bởi khóa mã hóa công khai thì chỉ giải mã được
bởi một khóa riêng tương ứng.
2.6 Chuan chứng chỉ số X509
Chứng chỉ X.509 v3 là định dang chứng chỉ được sử dụng phô biến và đượchầu hết các nhà cung cấp sản phẩm PKI triển khai
Chứng chỉ công khai X.509 được Hội viễn thông quốc (ITU) đưa ra lần đầu
tiên 1988 như là một bộ phận của dịch vụ thư mục X.500 Chứng chỉ X.509 được sử
dụng dé chứng thực cho thông tin chủ thé và khóa công khai của các tổ chức, cánhân Khuôn dạng chứng chỉ X509 có các thành phần cơ bản như sau:
- Phiên bản (Version); Số hiệu (Certificate Serial Number); Tên thuật toán
ký (Signature Algrithm ID); Tên CA phát hành (Issuer); Thời gian hợp lệ (Validity
Period); Chủ thể (Subject);Théng tin về khoá công khai của chủ thé (Subject
Public-key Information); Tên duy nhất của người phát hành (Issuer unique identifier); Tênduy nhất của chủ thể (Subject unique indentifier); (Extensions): Chứa các thông tin
bổ sung cần thiết mà người thao tác CA muốn đặt vào chứng nhận