Tải bản đầy đủ (.pdf) (68 trang)

Nghiên cứu xây dựng chữ ký số và ứng dụng trong hóa đơn điện tử tại Công ty LDVC Quốc tế Hải Vân

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 (1.47 MB, 68 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

BÙI THU HÀ

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

HÀ NỘI - 2016


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

BÙI THU HÀ
NGHIÊN CỨU XÂY DỰNG CHỮ KÝ SỐ VÀ ỨNG DỤNG
TRONG HÓA ĐƠN ĐIỆN TỬ TẠI CÔNG TY LDVC QUỐC
TẾ HẢI VÂN
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ
: 60.48.01.01

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

NGƯỜI HƯỚNG DẪN KHOA HỌC : TS. NGUYỄN TRUNG KIÊN

HÀ NỘI - 2016


i



LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn
của TS. Nguyễn Trung Kiên, kết quả đạt được trong luận văn là sản phẩm của
riêng cá nhân, không sao chép lại của người khác. Trong toàn bộ nội dung của
luận văn, những điều được trình bày hoặc là của cá nhân hoặc là được tổng hợp từ
nhiều nguồn tài liệu. Tất cả các tài liệu tham khảo đều có xuất sứ rõ ràng và được
trích dẫn hợp pháp. Các số liệu, kết quả nêu trong luận văn là trung thực và chưa
từng được ai công bố trong bất kỳ công trình nào khác.

Hà Nội, ngày tháng năm 2016
Người cam đoan

Bùi Thu Hà


ii

LỜI CẢM ƠN
Trong quá trình thực hiện luận văn này, tôi luôn nhận được sự hướng dẫn,
chỉ bảo rất tận tình của Thầy TS. Nguyễn Trung Kiên, Viện công nghệ thông tin

và truyền thông là cán bộ trực tiếp hướng dẫn khoa học cho tôi. Thầy đã giành
nhiều thời gian trong việc hướng dẫn cách nghiên cứu, đọc tài liệu, cài đặt các thuật
toán và giúp đỡ về xây dựng hệ thống thực nghiệm.
Tôi xin chân thành cảm ơn các Thầy, Cô giáo trong Học viện Công nghệ
Bưu chính Viễn thông đã luôn nhiệt tình giúp đỡ và tạo điều kiện tốt nhất cho tôi
trong suốt quá trình học tập tại Học viện.
Tôi xin gửi lời cảm ơn sâu sắc nhất tới gia đình, đồng nghiệp và bạn bè những
người luôn bên cạnh, động viên, chia sẻ với tôi để hoàn thành khóa học này.

Tôi xin chân thành cảm ơn !
Tác giả

Bùi Thu Hà


iii

MỤC LỤC
LỜI CAM ĐOAN ....................................................................................................... i
LỜI CẢM ƠN ............................................................................................................ ii
DANH SÁCH CÁC HÌNH VẼ ................................................................................. vi
PHẦN MỞ ĐẦU .........................................................................................................1
CHƯƠNG 1: TỔNG QUAN VỀ CHỮ KÝ SỐ ..........................................................4
1.1.Lịch sử hình thành và phát triển chữ ký số ..................................................4
1.2. Giới thiệu chung về chữ ký số .......................................................................5
1.2.1. Chữ ký số ..................................................................................................5
1.2.2. Khái niệm chung về chữ ký số ..................................................................6
1.2.3.Thực trạng về chữ ký số hiện nay ..............................................................8
1.3. Một số lược đồ chữ ký số ...............................................................................9
1.3.1. Lược đồ chữ ký RSA ................................................................................9
1.3.2. Lược đồ chữ ký ElGamal ........................................................................11
1.3.3.Lược đồ chữ ký DSS ................................................................................12
1.3.4. Lược đồ chữ ký số Elliptic (ECDSA) .....................................................13
1.4.Một vài đánh giá của chữ ký số hiện nay ....................................................13
1.4.1.Về tính ưu điểm của chữ ký số.................................................................13
1.4.2.Về tính nhược điểm của chữ ký số ...........................................................14
1.4.3. So sánh giữa Elliptic và RSA ..................................................................15
1.4 .Vai trò của chữ ký số trong ứng dụng hiện nay .......................................18
1.5. Kết luận chương 1 ........................................................................................19

CHƯƠNG 2 : HỆ MẬT MÃ VÀ CHỮ KÝ SỐ RSA ..............................................20
2.1. Cơ sở mật mã trong toán học ......................................................................20
2.1.1.Sinh số nguyên tố và phân tích thừa số nguyên tố ...................................20
2.1.2.Phép mũ hóa và khai căn module.............................................................21
2.2. Các hàm băm (Hash Function) ...................................................................22
2.2.1.Giới thiệu về hàm băm .............................................................................22
2.2.2.Một số giải thuật trong hàm băm .............................................................24
2.2.3.Tạo chữ ký số với hàm băm .....................................................................30
2.3. Cơ sở hạ tầng khóa công khai PKI .............................................................31
2.3.1. Mô hình PKI ............................................................................................31
2.3.2. Các thành phần PKI ................................................................................31


iv

2.3.3. Ứng dụng của PKI trong ký số và bảo mật dữ liệu............................32
2.3.3.1. Mã hóa .............................................................................................32
2.3.3.2.Chống giả mạo .................................................................................32
2.3.3.3.Xác thực ...........................................................................................33
2.3.3.4.Chống chối cãi nguồn gốc ................................................................33
2.3.3.5.Chữ ký điện tử ..................................................................................34
2.3.3.6.Bảo mật website ...............................................................................34
2.3.3.7.Code Signing ....................................................................................34
2.3.3.8.Chứng thực điện tử ...........................................................................35
2.4.Tổng quan chữ ký số RSA ............................................................................36
2.4.1. Lịch sử chữ ký số RSA ...........................................................................36
2.4.2. Hoạt động của hệ mật mã RSA ...............................................................36
2.4.3. Kiến trúc hệ mật mã RSA .......................................................................38
2.4.4. Qui trình mã hoá và giải mã của RSA ....................................................40
2.4.5.Bảo mật RSA............................................................................................42

2.5. Kết luận chương 2 ......................................................................................43
CHƯƠNG 3 : XÂY DỰNG CHỮ KÝ SỐ TẠI CÔNG TY LDVC QT HẢI VÂN .44
3.1 Đặt vấn đề bài toán .......................................................................................44
3.2.1. Hiện trạng in biên lai/hóa đơn thu phí ....................................................44
3.2.2. Một số nguy cơ có thể mắc phải .............................................................44
3.2. Yêu cầu bài toán ...........................................................................................45
3.3. Phân tích thiết kế hệ thống ..........................................................................46
3.3.1.Sơ đồ Usecase tổng quát ..........................................................................46
3.3.2.Biểu đồ tuần tự .........................................................................................48
3.4. Một số yêu cầu về phần cứng và phần mềm ..............................................50
3.5. Xây dựng một số hàm tạo khoá ứng dụng trong chữ ký số .....................51
3.6. Mô tả quy trình sử dụng phần mềm ...........................................................53
3.7. Thực nghiệm chương trình chữ ký số ........................................................55
3.8. Kết quả và đánh giá .....................................................................................58
3.9. Kết luận chương 3 ........................................................................................58
KẾT LUẬN ...............................................................................................................59
DANH MỤC CÁC TÀI LIỆU THAM KHẢO .........................................................60


v

DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Viết tắt

Tiếng Anh

Tiếng Việt

Automated Teller Machine


Máy giao dịch tự động

CA

Certificate Authority

Chứng thực số

DSA

Digital Signature Algorithm

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

DSS

Digital Signature Standard

Chuẩn chữ ký số

Elliptic Curve Digital Signature

Chữ ký số trên đường cong

Algorithm

Elliptic

MAC


Message Authentication Code

Xác thực bản thông điệp

MD5

Message Digest Algorithm 5

Giải thuật mã hóa

PKI

Public Key Infrastructure

Hạ tầng khóa công khai

RSA

Rivest, Shamir & Adleman

SHA

Secure Hash Algorithm

ATM

ECDSA

Giải thuật hàm băm



vi

DANH SÁCH CÁC HÌNH VẼ
Hình 1.1:Dạng mật mã Morse đã dùng .......................................................................4
Hình 1.2. Mô tả quy trình chữ ký số ...........................................................................6
Hình 1.3: Ví dụ về sơ đồ chữ ký RSA ......................................................................11
Hình 1.4 – So sánh mức độ bảo mật giữa ECC với RSA/DSA ................................17
Hình 2.1: Minh họa làm việc của một hàm băm .......................................................23
Hình 2.2: Nhồi dữ liệu trong MD5............................................................................25
Hình 2.3: Thêm vào độ dài trong MD5 .....................................................................25
Hình 2.4: Quy trình xử lý khối dữ liệu 512 bit trong MD5 ......................................26
Hình 2.5: Quy trình xử lý khối dữ liệu 512 bit trong SHA-1 ...................................29
Hình 2.6 : Lược đồ tạo chữ ký số với hàm băm ........................................................30
Hình 2.7. Các thành phần PKI ..................................................................................32
Hình 2.8. Quá trình gửi và nhận của Bob và Alice ...................................................37
Hình 2.9. Mô tả các bước tạo khóa RSA ..................................................................38
Hình 2.10. Quá trình xác nhận khóa RSA .................................................................39
Hình 2.11. Sơ đồ giải thuật hệ mật mã RSA .............................................................40
Bảng 2.12: Thử nghiệm độ bảo mật của RSA ..........................................................43
Hình 3.1. Sơ đồ Usecase mức tổng quát ...................................................................46
Hình 3.2. Sơ đồ Usecase phân rã chức năng tạo khóa ..............................................46
Hình 3.3. Sơ đồ Usecase phân rã chức năng tạo chữ ký và ký .................................47
Hình 3.4. Sơ đồ Usecase phân rã chức năng chứng thực và in .................................47
Hình 3.5. Biểu đồ tuần tự chức năng Đăng nhập ......................................................48
Hình 3.6. Biểu đồ tuần tự chức năng Tạo khóa ........................................................49
Hình 3.7. Biểu đồ tuần tự chức năng Tạo chữ ký .....................................................50
Hình 3.8: Giao diện đăng nhập .................................................................................55
Hình 3.9: Giao chính của phần mềm chữ ký số ........................................................56
Hình 3.10. Giao diện tạo khóa ..................................................................................56

Hình 3.11. Giao diện ký biên lai ...............................................................................57
Hình 3.12. Giao diện Xác nhận chữ ký và in biên lai ...............................................57
Hình 3.13: Biên lai sau khi ký và in ..........................................................................58


1

PHẦN MỞ ĐẦU
Mật mã học là một trong những vấn đề quan trọng trong lĩnh vực bảo mật và
an toàn thông tin. Trên thế giới, mật mã học đã được ra đời từ thời La Mã cổ đại và
ngày càng được nghiên cứu, phát triển đạt được những thành tựu to lớn. Trong mật
mã học, vấn đề bảo mật luôn đi đôi với vấn đề xác thực thông tin, đặc biệt trong hệ
thống mã hóa công khai vấn đề xác thực là rất quan trọng. Để giải quyết vấn đề
trên, người ta đưa ra một cách giải quyết hiệu quả đó là chữ ký số. Chữ kí số hiện
nay được sử dụng rất phổ biến và là nhu cầu cần thiết trong việc gửi nhận các tài
liệu trên mạng.
Trong đề tài này em nghiên cứu về chữ kí số và chủ yếu tập trung vào nghiên
cứu chữ ký số bằng thuật toán RSA cũng nhưgiải pháp ứng dụng trong hóa đơn điện
tử tại Công Ty Liên Doanh Vận Chuyển Quốc Tế Hải Vân.

Tổng quan về vấn đề nghiên cứu
Con người đã sử dụng các hợp đồng dưới dạng điện tử từ hơn 100 năm nay với
việc sử dụng mã Morse và điện tín. 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.
Vào thập kỷ 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 rất nhiều nước trên thế giới đã có triển khai ứng dụng chữ ký số điện

tử trong giao dịch điện tử như MỸ, ANH, ĐỨC,…Tại VIỆT NAM, giao dịch điện
tử được áp dụng trong các lĩnh vực thuế, hải quan, thương mại điện tử,....., một số
doanh nghiệp đã triển khai và được cấp giấy phép như : VNPT, Viettel, Bkis,
Nacencomm và FPT
Chữ ký số có thể sử dụng trong các giao dịch thư điện tử, các e-mail, để mua
bán hàng trực tuyến, đầu tư chứng khoán trực tuyến, chuyển tiền ngân hàng, thanh


2

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.
Ngoài ra, chữ ký số cũng có thể 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 mất thời gian đi in các tờ khai, đóng
dấu đỏ của công ty rồi đến cơ quan thuế xếp hàng để nộp tờ khai này. Chữ ký số
giúp cho các đối tác có thể ký hợp đồng làm ăn hoàn toàn trực tuyến 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 e-mail.
Hiện tại em đang nghiên cứu và xây dựng chương trình chữ ký số điện tử ứng
dựng trong hóa đơn điện tử tại doanh nghiệp mình đang công tác.

Mục đích nghiên cứu
Nghiên cứu tìm hiểu về chữ ký số bằng thuật toán RSA vàgiải pháp ứng dụng
hóa đơn điện tử tại Công Ty Liên Doanh Vận Chuyển Quốc Tế Hải Vân.

Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu:Tạo Chữ ký số bằng thuật toán RSA và ứng dụng
trong hóa đơn điện tử.
Phạm vi nghiên cứu:Triển khai chữ ký số tại Công Ty Liên Doanh Vận
Chuyển Quốc Tế Hải Vân.

Phương pháp nghiên cứu

-

Tìm hiểu các tài liệu tham khảo.

-

Nghiên cứu một số dạng chữ ký số (tập trung nghiên cứu chữ ký số RSA).

-

Mô phỏng chương trình chữ ký số bằng thuật toán RSA.

Từ mục tiêu nghiên cứu đặt ra, ngoài phần mở đầu, kết luận và danh mục tài liệu
tham khảo, nội dung của luận văn được trình bày trong ba chương với các nội dung
sau:
Chương 1: Tổng quan về chữ ký số
Nội dung của chương 1 này, luận văn tập trung tìm hiểu về tổng quan chữ ký
số, qua đó đi tìm hiểu và so sánh một số lược đồ chữ ký số hiện nay, cũng như ứng
dụng của chữ ký số trong thực tế.
Chương 2: Hệ mật mã và chữ ký số RSA


3

Nội dung của chương 2 này, luận văn tập trung vào phân tích cơ sở toán học
trong mật mã học, các hàm băm cũng như giải thuật hàm băm trong chữ ký số và
ứng dụng hạ tầng khóa công khai trong chữ ký số, qua đó làm rõ về lược đồ RSA
trong xây dựng chữ ký số hiện nay.
Chương 3: Xây dựng chữ ký số tại công ty LDVC quốc tế Hải Vân
Nội dung của chương 3 này, luận văn tập trung vào xây dựng ứng dụng chữ

ký số bằng thuật toán RSA tại công ty cổ phần LDVC QT Hải Vân như: phân tích,
thiết kế hệ thống, xây dựng chương trình chữ ký số và thử nghiệm đánh giá cũng
như hướng phát triển của phần mềm.


4

CHƯƠNG 1: TỔNG QUAN VỀ CHỮ KÝ SỐ
Nội dung của chương 1 này, luận văn tập trung tìm hiểu về tổng quan chữ ký
số, qua đó đi tìm hiểu và so sánh một số lược đồ chữ ký số hiện nay, cũng như ứng
dụng của chữ ký số trong thực tế

1.1.Lịch sử hình thành và phát triển chữ ký số
Con người đã sử dụng các hợp đồng với chữ ký dưới dạng điện tử từ hơn 100
năm nay với việc sử dụng mã Morse và điện tín. 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ý số mới đi vào cuộc sống.

Hình 1.1:Dạng mật mã Morse đã dùng

Vào thập kỷ 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ử
và được coi là chữ ký điện tử [5]. Hiện nay, theo quan niệm thông dụng trong giao
dịch quốc tế, 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 (của Vietcombank chẳng hạn) để rút
tiền, chấp nhận các điều khoản người dùng (EULA) khi cài đặt phần mềm máy tính
(như phần mềm Office của Microsoft chẳng hạn), ký các hợp đồng điện tử online...


5


1.2. Giới thiệu chung về chữ ký số
1.2.1. Chữ ký số
Trong đời sống hàng ngày, chữ ký (viết tay) trên một văn bản là một minh
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ường chữ ký viết tay trên văn bản
thì được dùng để xác nhận người ký nó. Những yếu tố nào làm nên “sức thuyết
phục của nó”, về mặt lý thuyết [2, 6] :
- 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ông thể 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 trong thế 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 mộ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 được lư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ủa Diffie và
Hellman :



6

- 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ới khó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óa công khai của
người gửi để giải mã văn bản.

1.2.2. Khái niệm chung về chữ ký số
Chữ ký số là một tập con của chữ ký điện tử, một thể chứng thực được mã hóa
bởi khóa bí mật của người gửi [1]. 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 chủ thể của dữ liệu đó.
Là mô hình sử dụng các kỹ thuật mật mã để gắn với mỗi người sử dụng một cặp
khóa công khai - bí mật và quađó có thể ký các văn bản điện tử cũng như trao đổi
các thông tin mật. Khóa công khai thường được phân phối thông qua chứng thực
khóa công khai [6]. Quá trình sử dụng chữký số bao gồm 2 quá trình: tạo chữ ký và
kiểm tra chữ ký theo mô hình sau:

Hình 1.2. Mô tả quy trình chữ ký số


7

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 của dữ liệu được truyền đi, đồng thời cũng đảm bảo tính không thể phủ nhận
của thực thể đã ký thông tin sau [4, 6]:
- Thuật toán sinh chữ ký số (Digital Signature Generation Algorithm) là một
phương pháp tạo chữ ký số.

- Thuật toán kiểm tra chữ ký số (Digital Signature Verification Algorithm) là
phương pháp để kiểm tra rằng một chữ ký số là đáng tin cậy.
- Lược đồ chữ ký số (Digital Signature Scheme) bao gồm thuật toán sinh chữ
ký và thuật toán kiểm tra chữ ký.
- Quy trình sinh chữ ký số (Digital Signature Signing Process) bao gồm một
thuật toán sinh chữ ký số đi cùng với một phương pháp khuôn dạng dữ liệu
cho thông điệp để có thể ký được.
- Tiến trình kiểm tra chữ ký số (Digital Signature Verification Process) bao
gồm một thuật toán kiểm tra ký, đi cùng với một phương pháp khôi phục dữ
liệu từ thông điệp.
- Khóa bí mật là một khóa trong cặp khóa thuộc hệ thống mã hóa không đối
xứng và được dùng để tạo chữ ký số.
- Khóa công khai là một khóa trong cặp khóa thuộc hệ thống mã hóa không
đối xứng và được sử dụng để kiểm tra chữ ký số đã được tạo từ khóa bí mật
tương ứng trong cặp khóa.
- Ký số chính là việc ta đưa khóa bí mật vào một chương trình phần mềm để
tự động tạo và gắn chữ ký số vào thông điệp dữ liệu.
- Người gửi là thuê bao dùng đúng khóa bí mật của mình để ký số vào một
thông điệp dữ liệu dưới tên của mình và gửi đi.
- Người nhận là thuê bao nhận được thông điệp dữ liệu được ký số bởi người
gửi để kiểm tra chữ ký số trong thông điệp dữ liệu nhận được và tiến hành
các hoạt động, giao dịch có liên quan.


8

1.2.3.Thực trạng về chữ ký số hiện nay
Trên thế giới, hầu như tất cả nướccũng đều đã ứng dụng chữ ký số, đặc biệt
là trong các công việc hành chính Nhà nước. Biểu hiện rõ ràng nhất cho sự chấp
nhận chữ ký số phổ biến chính là sự ra đời của các bộ luật.

Tại Trung quốc:Luật chữ ký điện tử của Trung quốc - Mục tiêu hướng tới
thống nhất việc thực hiện, khẳng định tính pháp lý và bảo vệ quyền lợi hợp pháp
của các bên liên quan tới việc thực hiện chữ ký điện tử.
Tại Brazil: Medida provisória 2.200-2 - Luật Brazil thừa nhận tính pháp lý
của văn bản số nếu được chứng nhận bởi ICP-Brasil (PKI chính thức của Brazil)
hoặc một PKI khác nếu các bên đồng ý.
Với các nước nằm trong Liên hiệp châu Âu: EU đã thiết lập khung pháp lý
cho chữ ký điện tử:
- Hướng dẫn số 1999/93/EC của Quốc hội châu Âu ngày 13 tháng 12 năm
1999 về khung pháp lý của chữ ký điện tử.
- Quyết định 2003/511/EC sử dụng 3 thỏa thuận tại hội thảo CEN làm tiêu
chuẩn kỹ thuật.
- Các luật ban hành: Một số quốc gia đã thực hiện quyết định 1999/93/EC.
Ở Anh, Scotland và Wales: Luật thông tin điện tử, 2000, nước Đức ban hành
Luật chữ ký, 2001 và Hoa Kỳ: Uniform Electronic Transactions Act (UETA);
Electronic Signatures in Global and National Commerce Act (E-SIGN), at 15
U.S.C.7001 et seq.
Tình hình tại Việt Nam hiện nay thì một số đơn vị doanh nghiệp và ngân hàng
chú ý tới các hình thức thanh toán điện tử qua Internet và sử dụng chữ ký số như
một biện pháp an toàn, tiện lợi, giảm chi phí và giảm thủ tục.
Ta cũng có thể thấy đi đầu cho việc áp dụng chữ ký số chính là các doanh
nghiệp Nhà nước và các đơn vị hành chính sự nghiệp.


9

Trước kia, việc thu thuế, bất kể là thuế thu nhập cá nhân, thuế hải quan, thuế
doanh nghiệp hay loại thuế nào khác, ta đều cần chuẩn bị đầy đủ các loại hồ sơ, đi
xin xác nhận, rồi chờ xếp hàng tại cơ quan thuế, mà không phải lúc nào cũng được
giải quyết ngay. Đây là một việc vừa tốn thời gian vừa tốn sức lực và vô cùng kém

hiệu quả. Tuy nhiên, nhờ có chữ ký số, ta không cần phải đến tận cơ quan thuế để
thực hiện thủ tục, chỉ cần có máy tính nối mạng, kèm với chữ ký số đã được hợp
thức hóa là đủ.
Theo khảo sát, hiện tại đã có trên 90% doanh nghiệp sử dụng chữ ký số. Tính
đến đầu năm 2015 có khoảng 156000 doanh nghiệp sử dụng chữ ký số cho các giao
dịch của mình. Còn theo quy mô doanh nghiệp thì:
- Doanh nghiệp lớn có 97%.
- Doanh nghiệp vừa và nhỏ có 92%.
Tổng cục Hải quan tính đến đầu tháng 11 năm 2015 cả nước có 980 doanh
nghiệp và 36 ngân hàng ứng dụng chữ ký số.
Ở Việt Nam đã có các đơn vị như VNPT, Viettel, FPT… được bộ thông tin và
truyền thông cấp phép là nhà cung cấp dịch vụ chứng thực chữ ký số công cộng
theo Luật Giao dịch điện tử - có hiệu lực từ ngày 1 tháng 3 năm 2006. Các đơn vị
này sẽ chịu trách nhiệm cung cấp các chữ ký số duy nhất cho từng khách hàng duy
nhất, đảm bảo không trùng nhau và phải hợp pháp với mức giá công khai, đồng thời
được hai bên chấp nhận, ghi rõ trong hợp đồng được pháp luật bảo hộ.

1.3. Một số lược đồ chữ ký số
1.3.1. Lược đồ chữ ký RSA
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ã hóa và
giải mã. Sau đây là sơ đồ chữ ký RSA, bao gồm bộ 5 sau [4, 5]:
S=(P, A, K, S, V)


10

Trong đó:


P = A = Za, với n = p.q là tích của hai số nguyên tố lớn p, q

K là tập các cặp khóa K = (Kꞌ, Kꞌꞌ), với Kꞌ=a và Kꞌꞌ=(n,b), a và b là hai số thuộc Z *n
thỏa mãn a.b=1(modφ(n)).
Các hàm sigKꞌ và verKꞌꞌ được xác định như sau:
sigKꞌ(x) = xamodn
verKꞌꞌ(x,y)= đúng  x≡yb(modn)
Dễ chứng minh được rằng sơ đồ được định nghĩa như vậy là hợp thức, tức là với
mọi x ∈ P và mọi chữ ký y∈A:
verKꞌꞌ(x,y) = đúng  y = sigKꞌ(x)
Hai vấn đề xác nhận và bảo mật theo sơ đồ RSA là có bề ngoài giống nhau,
nhưng nội dung thì hoàn toàn khác nhau: Khi A gửi thông báo x cho B, để B có căn
cứ xác nhận đó đúng thực là thông báo do A gửi, A phải gửi kèm theo chữ ký
sigKꞌ(x), tức là A gửi cho B (x, sigKꞌ(x)), trong các thông tin gửi đi đó, thông báo x
hoàn toàn không được giữ bí mật. Cũng tương tự như vậy, nếu dùng sơ đồ mật mã
RSA, khi một chủ thể A nhận được một bản mật mã eKꞌ(x) từ B thì A chỉ biết rằng
thông báo x được bảo mật, chứ không có gì để xác nhận x là của B.
Để hệ truyền tin vừa có tính bảo mật vừa có tính xác nhận thì phải sử dụng
đồng thời cả hai hệ mật mã và xác nhận (bằng chữ ký).
Giả sử A muốn gửi cho B một văn bản có chữ ký của mình. Để làm việc này,
A tạo ra một giá trị băm(hash value) của văn bản cần ký và tính giá trị mũ d mod n
của nó (giống như khi A thực hiện giải mã). Giá trị cuối cùng chính là chữ ký điện
tử của văn bản đang xét. Khi B nhận được văn bản cùng với chữ ký điện tử, anh ta
tính giá trị mũ e mod n của chữ ký đồng thời với việc tính giá trị băm của văn bản.
Nếu 2 giá trị này như nhau thì B biết rằng người tạo ra chữ ký biết khóa bí mật của
A và văn bản đã không bị thay đổi sau khi ký.


11


Hình 1.3: Ví dụ về sơ đồ chữ ký RSA

1.3.2. Lược đồ chữ ký ElGamal
Lược đồ chữ ký ElGamal dựa trên độ khó của logarit rời rạc, được thiết kế
đặc biệt cho mục đích ký trên văn bản điện tử. Nó được mô tả như một hệ 5 thành
phần sau [4, 5]:
S=(P, A, K, S, V)
Trong đó: P=Z*p
A = Z*p x Zp-1, với p là một số nguyên tố sao cho bài toán tính rời rạc
trong Z*p là rất khó.
Tập hợp K gồm các cặp khóa K=(Kꞌ, Kꞌꞌ), với Kꞌ=a là một số thuộc Z *p,
Kꞌꞌ=(p,α,β), α là một phần tử nguyên thủy của Z *p và β=αamodp. Kꞌ là khóa bí mật
dùng để ký và Kꞌꞌ là khóa công khai dùng để kiểm thử chữ ký.
Các thuật toán ký và kiểm thử chữ ký được xác định như sau:
- Với mỗi thông báo x, để tạo chữ ký trên x ta chọn thêm một số ngẫu nhiên
k∈ Z*p-1 rồi tính:
sigKꞌ(x,k) = (γ,δ) với γ = αkmodp và δ = (x – aγ). k-1mod(p-1)
- Thuật toán kiểm thử được định nghĩa bởi:


12

verKꞌꞌ(x,(γ,δ)) = đúng  βγ.γδ≡αx(modp)
Dễ nhận thấy sơ đồ chữ ký được định nghĩa như trên là hợp thức. Thực vậy,
nếu sigKꞌ(x,k) = (γ,δ) thì ta có:
βγ.γδ≡αaγ.αkδmodp ≡αxmodp
vì kδ+αγ≡xmod(p-1). Do đó, verKꞌꞌ(x,(γ,δ)) = đúng

1.3.3.Lược đồ chữ ký DSS
DSS dựa vào lược đồ chữ ký ElGamal với một vài sửa đổi. Lược đồ chuẩn chữ

ký số DSS được mô tả như sau [4, 5]:
- Chọn p là một số nguyên tố lớn có độ dài biểu diễn ≥ 512 bit để cho bài toán
tính logarit rời rạc trong Zp là khó, q là một ước số nguyên tố của p-1, có độ
dài cỡ 160 bit. Gọi α∈Z*p là một căn bậc q của 1 theo modp
- Đặt P = Z*p. A = Z*qxZ*q .Chọn a∈Z*q và tính β≡αamodp.
- Xác định khóa K=(Kꞌ,Kꞌꞌ), trong đó khóa Kꞌ=a và khóa Kꞌꞌ=(p,q,α,β)
- Thuật toán ký và thuật toán kiểm thử được định nghĩa như sau: Với x∈P=Z*p
ta chọn thêm một số ngẫu nhiên k(0 k q -1), và định nghĩa chữ ký: sigKꞌ(x,k)
= (γ,δ) .
trong đó:
γ=(αkmodp)modq
δ=(x+αγ).k-1modq
Thuật toán kiểm thử được định nghĩa bởi:
verKꞌꞌ(x,(γ,δ)) = đúng  (αe1.βe2modp)modq = γ,
trong đó:
e1 = x.δ-1modq


e2=γ.δ-1modq

Chú ý δ≠0 modq để có thể tính được δ-1modq dùng trong thuật toán kiểm
thử, vì vậy nếu chọn k mà được δ≡0 modq thì phải chọn lại số k khác để có được
δ≠0 modq.


13

1.3.4. Lược đồ chữ ký số Elliptic (ECDSA)
Chuẩn bị:
• Alice chọn đường cong elliptic E trên trường hữu hạn GF(p) sao cho số điểm

của E trên GF(p) là fr và r là số nguyên tố lớn và f là số nguyên dương nhỏ nhất để
cho thuật toán hiệu quả [9, 12] .
• Alice chọn điểm cơ sở G trên E trên GF(q) có bậc r
• Alice chọn số nguyên dương a và tính Q = aG
• Alice công bố thông tin công khai sau đây: GF(q), E, r, G, Q
Ký chữ ký số:
• Alice chọn số nguyên dương ngẫu nhiên k với 1 ≤ k < r và tính R = kG =
(x,y).
• Alice tính s = k-1(m + ax) ( mod r) và tài liệu ký là (m, R, s).
Kiểm tra chữ ký số:
• Bob tính u = s-1m ( mod r) và u = s-1x (mod r)
• Bob tính V = u1G + u2Q
• Bob tuyên bố chữ ký số hợp lệ nếu V = R
Tính đúng đắn:
Nếu thông báo được ký đúng thì đẳng thức kiểm tra đúng:
V = u1G + u2Q = s-1mG + s-1xQ = s-1(mG + xaQ) kG = R
Sự khác nhau cơ bản của ECDSA và lược đồ chữ ký số ElGamal Elliptic là
thủ tục kiểm tra chữ ký số. Trong lược đồ ElGamal đẳng thức kiểm tra f(R)B + sR =
mA đòi hỏi ba phép tính với một số nguyên lần một điểm và đây là những phần tốn
kém nhất, trong khi đó ECDSA chỉ đòi hỏi hai phép tính như vậy. Cải tiến này là
nâng cao hiệu quả của ECDSA một khi cần nhiều lần kiểm tra chữ ký số và rất có
giá trị trên thực tế.

1.4.Một vài đánh giá của chữ ký số hiện nay
1.4.1.Về tính ưu điểm của chữ ký số
Khả năng xác định nguồn gốc


14


- Các hệ thống mật mã hóa khóa công khai cho phép mật mã hóa văn bản với
khóa bí mật mà chỉ có người chủ của khóa biết.
- Để sử dụng chữ ký số thì văn bản cần phải được mã hóa bằng hàm băm sau
đó dùng khóa bí mật của người chủ khóa để mã hóa, khi đó ta được chữ ký
số.
- Khi cần kiểm tra, bên nhận giải mã (với khóa công khai) để lấy lại chuỗi gốc
(được sinh ra qua hàm băm) và kiểm tra với hàm băm của văn bản nhận
được.
- Nếu hai giá trị này khớp nhau thì bên nhận có thể tin tưởng rằng văn bản
xuất phát từ người sở hữu khóa bí mật. Nhưng chúng ta cũng không thể đảm
bảo chắc chắn là văn bản không bị giả mạo vì hệ thống vẫn có thể bị phá vỡ.
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ăn bản
không thể bị sửa đổi trong quá trình truyền vì nếu như văn bản bị thay đổi thì
hàm băm cũng sẽ bị thay đổi và như thế thì ngay lập tức chúng ta sẽ phát
hiện.
- Quá trình mã hóa sẽ ẩn nội dung của gói tin đối với bên thứ 3 nhưng không
ngăn cản được việc thay đổi nội dung của nó.
Tính không thể phủ nhận
Trong khi giao dịch, một bên có thể từ chối nhận một văn bản do mình gửi. Vì
vậy, để ngăn ngừa khả năng này thì bên nhân có thể yêu cầu bên gửi phải gửi kèm
theo cả 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.4.2.Về tính nhược điểm của chữ ký số
Do sử dụng khóa công khai nên tốc độ mã hóa chậm hơn với các mô hình mã
hóa đối xứng.
Kích thước khóa lớn hơn rất nhiều so với mã hóa đối xứng.



15

Không có mô hình mã hóa công khai nào được chứng minh là an toàn. Phần
lớn các mô hình mã hóa hiện nay có sự an toàn dựa trên các giả thuyết của một tập
nhỏ các vấn đề lý thuyết số học.
Vấn đề bản gốc, bản chính: Nếu đối với tài liệu giấy, chữ ký được ký 1 lần và
chỉ có 1 bản duy nhất (bản gốc). Bản gốc được ký bằng chữ ký sẽ không thể cùng
lúc ở hai chỗ khác nhau. Nếu bản gốc mất đi sẽ không có thêm một bản gốc khác.
Nhưng với văn bản điện tử đã được ký bằng chữ ký số thì người ta có thể copy lại
và bản copy không có gì khác biệt so với bản chính duy nhất được ký.
Sự có thời hạn của chữ ký số.

1.4.3. So sánh giữa Elliptic và RSA
Mã hóa khóa công cộng dựa trên hai vấn đề lớn của toán học là bài toán
logarit rời rạc và bài toán phân tích số. Phương pháp RSA dựa trên bài toán phân
tích số (IFP – Integer Factoring Problem). Bài toán này đã được đưa ra từ cuối thập
niên 70. Độ phức tạp tính toán của IFP là cận-hàm mũ (dùng thuật toán Index
Calculus). Phương pháp ECC dựa trên bài toán logarit rời rạc trên nhóm các điểm
đường cong elliptic trong trường hữu hạn (ECDLP – Elliptic Curve Discrete
Problem). Bài toàn được đưa ra năm 1985 với độ phức tạp tính toán là hàm mũ,
nghĩa là khó hơn so với IFP. ECDLP cho tới nay vẫn chưa có thuật toán nào được
xem là hiệu quả kiểu cận-hàm mũ để giải bài toán này.
Do không có thuật toán cận-hàm mũ để giải bài toán ECDLP nên với cùng
một mức an toàn (security level) thì hệ mật ECC yêu cầu độ dài khóa ngắn hơn rất
nhiều so với hệ mật RSA. Chẳng hạn để cho mức an toàn tương đương với RSA
1024-bít thì hệ mật ECC chỉ yêu cầu độ dài khóa tương ứng là 160 bít. Kích thước
khóa của ECC nhỏ hơn so với RSA nên thời gian sinh khóa, mã hóa/giải mã của hệ
thống bảo mật dựa trên ECC nhanh hơn hệ thống RSA.
Để thực hiện việc so sánh sử dụng RSA và ECC trong quá trình bắt tay của
SSL, người ta sử sụng hai bộ mã khác nhau:



16

+TLS_RSA_WITH_RC4_128_SHA
+TLS_ECDH_ECDSA_WITH_RC4_128_SHA
Với mỗi bộ mã người ta sử dụng ba cấp độ an ninh khác nhau. Đối với RSA
người ta sử dụng khoá có độ dài 1024 bit, 1536 bit và 1048 bit, với ECC sử dụng
khoá có độ dài 160 bit, 192 bit và 224 bit. Người ta sử dụng một công cụ để thực
hiện nhiều phiên giao dịch đồng thời một lúc nhằm đo hai thông số trên một server
[10]. Và kết quả được thể hiện ở bảng 1.2.
Bảng 1.1 - So sánh sử dụng RSA và ECC trong quá trình bắt tay của SSL

ECC160

RSA1024

ECC192

RSA1536

ECC224

RSA2048

Thời gian(ms)

3.69

8.75


3.87

27.47

5.12

56.18

Số lệnh thực hiện / s

271.3

114.3

258.1

36.4

195.5

17.8

So sánh số lệnh thực hiện
trong cùng một thời gian

2.4:1

7.1:1


11:1

So sánh độ dài khoá

1:6.4

1:8

1:9.1

Bảng 1.2 – So sánh kích thước khóa RSA và ECC với cùng mức độ an toàn

Thời gian cần để tấn
công vào khóa (đơn
vị: năm)

Kích thước khóa

Tỉ lệ kích thước
khóa RSA : ECC

RSA / DSA

ECC

104

512

106


5:1

108

768

132

6:1

1011

1024

160

7:1

1020

2048

210

10:1

1078

21000


600

35:1


17

Hình 1.4 – So sánh mức độ bảo mật giữa ECC với RSA/DSA

Do có kích thước khóa nhỏ và khả năng phát sinh khóa rất nhanh nên ECC rất
được quan tâm để áp dụng cho các ứng dụng trên môi trường giới hạn về thông
lượng truyền dữ liệu, giới hạn về khả năng tính toán, khả năng lưu trữ. ECC thích
hợp với các thiết bị di động kỹ thuật số như handheld, PDA, điện thoại di động và
thẻ thông minh (smart card).
Việc sử dụng ECC mang lại những hiệu quả sau: tăng tốc độ, yêu cầu khả
năng tính toán thấp hơn, tiết kiệm dải thông đường truyền, tăng hiệu quả lưu trữ,
giảm độ dài các chứng nhận… Các ưu điểm trên của hệ mật ECC có thể phát huy
hiệu quả trong các ứng dụng mà đường truyền, khả năng tính toán, tốc độ và lưu trữ
bị hạn chế. Và các ứng dụng đó được thể hiện rất hiệu quả trong thương mại điện
tử, web servers…
Hiện nay hầu hết các công ty lớn về viễn thông và bảo mật trên thế giới đều
quan tâm phát triển. Cả phòng thí nghiệm chính của RSA (RSA Security
Laboratory) cũng đã nghiên cứu và đưa ECC vào sản phẩm của mình.


×