Luận v n th c s k thuật
GVHD: TS Nguyễn Hữu Đức
MỤC LỤC
MỤC LỤC ..................................................................................................................... 1
L I C M ĐO N ......................................................................................................... 3
L I C M N ............................................................................................................... 4
NH MỤC C C K HIỆU, C C CH
NH MỤC C C
VI T TẮT ................................................ 5
NG............................................................................................ 6
NH MỤC C C H NH V , ĐỒ TH ....................................................................... 7
MỞ ĐẦU ....................................................................................................................... 8
CHƯ NG 1: CH
K SỐ VÀ C C ỨNG ỤNG THỰC TIỄN ............................ 10
1.1. Tổng quan về chữ ký điện tử .............................................................................. 10
1.2. Giới thiệu về Chữ ký số ...................................................................................... 13
1.2.1.
Phân lo i chữ ký số ................................................................................. 15
1.2.2.
Cơ sở hình thành của chữ ký số .............................................................. 17
Cơ sở hình thành –
tưởng .................................................................... 44
2.3.2.
Mô tả thuật toán ...................................................................................... 46
2.3.3.
Một số vấn đề về thuật toán RS ........................................................... 47
2.3.4.
Đánh giá độ an toàn của thuật toán RS ................................................ 49
2.3.5.
Đánh giá chung về thuật toán RS ......................................................... 50
2.4. Thuật toán ElGamal ............................................................................................ 51
2.4.1.
Mô tả thuật toán ...................................................................................... 52
1
Luận v n th c s k thuật
Mô tả yêu cầu chung ............................................................................... 70
3.2.2.
Yêu cầu cụ thể......................................................................................... 74
3.2.2.1.
Chức n ng phân quyền ........................................................................... 74
3.2.2.2.
Chức n ng quản lý tham số..................................................................... 74
3.2.2.3.
Các chức n ng hệ thống .......................................................................... 76
3.2.2.4.
Báo cáo ................................................................................................... 77
3.2.3.
Thiết kế atabase.................................................................................... 77
3.3.
Phát triển chương trình ........................................................................... 84
công tác. 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.
Tác giả luận v n xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện Luận
v n này đã được cảm ơn và các thông tin trích dẫn trong Luận v n đã được chỉ rõ
nguồn gốc.
Tác giả luận v n xin chịu trách nhiệm về nghiên cứu của mình.
H cv
t
c
ệ
P ạm Tuấ
3
u
ạt
v
Luận v n th c s k thuật
GVHD: TS Nguyễn Hữu Đức
ệ
P ạm Tuấ
4
u
v
ạt
Luận v n th c s k thuật
NH MỤC C C
C
GVHD: TS Nguyễn Hữu Đức
HIỆU C C CH
v tt t
ễ gả
VI T T T
ộ du g
DSAP
Digital Signature Authentication Program - Là chương trình xử lý
chứng từ chứa chữ ký số nhận từ khách hàng.
TTCNTT
Trung tâm Công nghệ Thông tin Ngân hàng TMCP Đầu tư và Phát
triển Việt Nam
CA
Certificate Authority – Nhà cung cấp chứng thực số
SKC
Symmtric Key Crytosystem – Hệ mật mã khóa đối xứng
PKI
Public Key Infrastructure – Hệ thống mật mã khóa công khai hay
phi đối xứng
PKC
Public Key Cryptosystem – xem PKI
GCD
Greatest Common Divisor – Ước chung lớn nhất
ảng 17: ảng OCUMENT_FILE............................................................... 83
ảng 18: Phương thức nhận yêu cầu xử lý từ NS ........................................ 85
ảng 19: Phương thức để xác thực chứng từ chứa CKS ................................ 86
ảng 20: Lớp lưu thông tin của một CKS trong chứng từ.............................. 88
ảng 21: Phương thức xác thực thông tin CKS .............................................. 89
ảng 22: Phương thức kiểm tra CKS trên tài liệu P F .................................. 91
ảng 23: Phương thức kiểm tra CKS trên tài liệu Excel ................................ 92
ảng 24: Phương thức kiểm tra CKS đã bị thu hồi chưa................................ 93
6
Luận v n th c s k thuật
GVHD: TS Nguyễn Hữu Đức
NH MỤC C C H NH V
Ồ TH
nh 1: Mô hình chung của chữ ký điện tử ..................................................... 11
nh 2: Mô tả việc t o và kiểm tra chữ ký (wiki) ............................................ 14
nh 3: Mô tả ho t động của hàm b m ............................................................ 22
nh 4: Quy trình cấp phát Chứng thực số ...................................................... 27
nh 5: Quy trình thẩm định chứng thực số..................................................... 28
nh 6: Sơ đồ cơ bản của ES......................................................................... 33
nh 7: Sơ đồ giải thuật sinh mã ES với cấu trúc 16 vòng lặp ..................... 33
nh 8: Sơ đồ nguyên lý ho t động của mật mã khóa công khai .................... 36
nh 9: Sơ đồ thuật toán M 4 ......................................................................... 38
nh 10: Sơ đồ giải thuật M 5 ........................................................................ 40
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ý đó)
Trên thực tế, 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ý, tuy nhiên với khả n ng kiểm định sát sao
thì việc xác thực chữ ký đó cũng đ t kết quả chính xác nhất định. Tuy nhiên đồng
hành với nó là sự phát triển vượt bậc của công nghệ thông tin, dẫn đến việc xử lý
các thông tin số trở nên ngày càng phổ biến hơn kéo theo là việc xác thực các thông
điệp, các chứng từ, các giao dịch điện tử ngày càng trở nên cần thiết.
Xu hướng quốc tế hóa và toàn cầu hóa đã và đang ảnh hưởng đến sự phát triển
của thế giới. Việc trao đổi thông tin cũng từ đó yêu cầu nhanh gọn, chính xác và đặc
biệt là phải an toàn. Việc trao đổi thông tin, chứng thực thông tin theo phong cách
truyền thống làm giảm tốc độ, cũng như sự chính xác của thông tin. Những công
Luận v n th c s k thuật
GVHD: TS Nguyễn Hữu Đức
CHƯ NG 1: CH
SỐ VÀ C C ỨNG ỤNG THỰC TIỄN
Trong chương 1 tác giả sẽ giới thiệu tổng quan về chữ ký số và các ứng dụng
thực tiễn của chữ ký số để từ đó nêu ra mục đích của luận văn và đưa ra hướng giải
pháp, ứng dụng.
1.1. Tổ g qua về c
ký đ ệ tử
Chữ ký điện tử (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 đó và để
người nhận kiểm tra được tính vẹn toàn của dữ liệu gốc.
Chữ ký điện tử và chữ ký tay thông thường có cùng mục đích chung là để xác
định nguồn gốc cùa “dữ liệu”, tuy nhiên chúng cũng có một số điểm khác nhau, và
điểm khác biệt nhất là về tính đảm bảo an toàn. Với chữ ký tay thông thường, việc
kiểm tra dựa trên cách so sánh với một chữ ký xác thực khác (chữ ký mẫu). Đây
chính là điểm yếu của chữ ký tay, bởi lẽ chữ ký tay rất dễ bị giả m o, không an
toàn. Nhằm mục đích t ng tính xác thực cao, chữ ký điện tử được kiểm tra nhờ
dùng các thuật toán kiểm tra chữ ký điện tử, việc này có thể ng n chặn được giả
m o chữ ký một cách an toàn hơn và chính xác hơn.
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 trong mọ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 đặt lên hàng đầu. Điển hình là việc mã hóa
khóa công khai (public key) để giải mã.
Ả
1: Mô ì
c u g của c
ký đ ệ tử
Đặc điểm của chữ ký điện tử rất đa d ng, có thể là một chuỗi ký tự hoặc hình
ảnh chủ thể kèm theo dữ liệu điện tử, một mã khóa bí mật, hay một dữ liệu sinh trắc
11
Luận v n th c s k thuật
GVHD: TS Nguyễn Hữu Đức
học (chẳng h n như dấu vân tay, đặc điểm khuôn mặt…) có khả n ng xác thực
người gửi. Độ an toàn của từng d ng là khác nhau.
Một số trường hợp xảy ra với chữ ký điện tử, cũng giống như các trường hợp
xảy ra với chữ ký truyển thống. Ví dụ: Khi tài liệu của
tự, một dấu chấm, hay một ký hiệu bất kỳ), thì
mã khác với tài liệu của anh
phải là tài liệu của
.
muốn giao dịch với một nhân vật X. X và
cần trao đổi thông tin cá nhân cho
nhau, các thông tin đó gồm họ tên, địa chỉ, số điện tho i, email… Vậy làm sao để
có thể chắc chắn rằng mình đang giao dịch với nhân vật X chứ không phải là ai
khác giả m o X? Chứng chỉ số được t o ra để giải quyết vấn đề này! Chứng chỉ số
có cơ chế để xác nhận thông tin chính xác về các đối tượng sử dụng chứng chỉ số.
Thông tin giữa
và X sẽ được xác nhận bằng một bên trung gian mà A và X tin
tưởng. ên trung gian đó là nhà cung cấp chứng chỉ số C
C
có một chứng chỉ số của riêng mình, C
(Certificate
sẽ cấp chứng chỉ số cho
uthority).
và X cũng
như những đối tượng khác.
Đối với luận v n này, tác giả luận v n tập trung vào chữ ký số - là một tập con
của chữ ký điện tử, với những h n chế đối với ho t động giao dịch của I V và các
khách hàng lớn. Nó đặc biệt quan trọng bởi vì vai trò của chữ ký số trong các chứng
từ số (chứng thư số) rất quan trọng trong các ho t động giao dịch liên quan tới ngân
hàng.
-
K là tập hữu h n các khóa
-
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 ∈ K tồn t i một thuật toán ký Sigk ∈ S và một thuật toán xác minh
Verk ∈ V, trong đó Sigk và Verk là các ánh x : Sigk là ánh x từ P sang
là ánh x từ
và Verk
sang tập biểu diễn {True, False} thỏa mãn với mọi x ∈ P, y ∈ A:
Ver(x,y) =
-
True if y = Sig(x)
-
False if y Sig(x)
Với mỗi k ∈ K, Sigk và Verk là các hàm đa thức, trong đó: Verk là hàm công
kiểm tra với khóa công khai, bên nhận giải mã để lấy được 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 trùng
khớp nhau thì bên nhận có thể xác định được v n bản đó xuất phát từ
người giữ khóa bí mật. Tuy nhiên, thực tế chúng ta không thể đảm bảo
14
Luận v n th c s k thuật
GVHD: TS Nguyễn Hữu Đức
được hoàn toàn v n bản không thể bị giả m o, bởi hệ thống CKS vẫn có
thể bị phá vỡ.
-
Tính toàn vẹn: trong quá trình truyền tin, nếu v n bản bị thay đổi thì hàm
b m cũng sẽ bị thay đổi và lập tức sẽ bị phát hiện. Chính vì lẽ nó mà bên
gửi và bên nhận đều có thể tin tưởng vào việc v n bản vẫn nguyên vẹn
trong quá trình truyền tin. Tuy nhiên, quá trình mã hóa có thể ẩn nội dung
với bên thứ ba nhưng l i 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 một giao dịch thông thường, một bên có
thể chối bỏ việc một v n bản nào đó là do mình gửi. Chính vì vậy để ng n
ngừa khả n ng này, trong giao dịch điện tử, bên nhận có thể yêu cầu bên
gửi phải gửi kèm CKS với v n bản. Khi có tranh chấp, CKS này có thể
được dùng như một chứng cứ để một bên thứ ba giải quyết. Tuy nhiên,
GVHD: TS Nguyễn Hữu Đức
Ví dụ: Chữ ký ElGamma
1.2.1.2.
Phân lo i CKS theo mức an toàn
a. CKS “không thể phủ nhận”: Nhằm tránh việc nhân bản chữ ký để sử
dụng nhiều lần, tốt nhất là người gửi tham gia trực tiếp vào việc kiểm
thử chữ ký. Điều đó được thực hiện bằng một giao thức kiểm thử, dưới
d ng một giao thức mời hỏi và trả lời.
Ví dụ: chữ ký không phủ định (Chaum-van Antverpen)
b. CKS “một lần”: Để đảm bảo an toàn, “khóa ký” chỉ dùng 1 lần (onetime) trên 1 tài liệu.
Ví dụ: Chữ ký một lần Lamport. Chữ ký Fail-Stop (Van Heyst &
Pedersen)
1.2.1.3.
Phân lo i CKS theo ứng dụng đặc trưng
a. Chữ ký mù ( lind Signature): là một d ng CKS trong đó nội dung của
thông điệp được che giấu (làm mù) trước khi được ký. Kết quả là chữ
ký mù có thể công khai xác nhận l i thông điệp gốc, thông điệp không
bị làm mù theo cách thức của một chữ ký thông thường. Chữ ký mù
thường được sử dụng trong các giao thức bảo mật, trong đó người ký và
tác giả thông điệp ở các bên khác nhau. [2]
b. Chữ ký nhóm (Group Signature) [3]: là một phương pháp cho phép một
thành viên của một nhóm nặc danh ký vào thông điệp thay cho cả
nhóm. Ví dụ, một chữ ký nhóm có thể được sử dụng bởi một nhân viên
trong một công ty lớn, nơi mà nó có đủ hiệu lực cho người xác minh
biết được thông điệp được ký bởi một nhân viên chứ không phải một ai
ủy nhiệm cho một người nào đó ký thay.[11]
f. Chữ ký mù nhóm ( lind Group Signature)
g. Chữ ký mù bội ( lind Multy Signature)
1.2.2. Cơ sở ì
1.2.2.1.
t à
của c
ký số
Cơ sở toán học
Số học là một nhánh của toán học, nhưng nó l i trở thành một trong những
công cụ hữu hiệu nhất của ngành an ninh máy tính. Như là sự khởi đầu, số học giúp
bảo vệ những dữ liệu nh y cảm như số thẻ tín dụng khi giúp người dùng mua sắm
17
Luận v n th c s k thuật
GVHD: TS Nguyễn Hữu Đức
trực tuyến. Đó chính là kết quả của một số thành tựu nghiên cứu đáng ghi nhận từ
những n m 1970 tới nay, đã được áp dụng rộng rãi trên thế giới. Những giao thức
mã hóa đặc biệt là chữ ký số điện tử đều dựa trên lý thuyết số học để t o khóa, mã
hóa và giải mã.
Luận v n th c s k thuật
GVHD: TS Nguyễn Hữu Đức
Ước lượng 3: Phân tích thừa số là khó : Với một số nguyên n là kết quả của
phép nhân số nguyên tố lớn, việc tìm lại các số nguyên tố thừa số p, q là rất khó.
ất chấp hàng tr m n m nghiên cứu trong vấn đề này, việc phân tích ra thừa
số của một số nguyên lớn vẫn mất rất một thời gian dài. Phương pháp nhanh nhất
gần đây đã nhanh hơn rất nhiều so với những cách đơn gaỉn là tìm tất cả các thừa số
ở cùng một thời điểm. Tuy nhiên, chúng vẫn rất đắt. Cho ví dụ, việc phân tích ra
thừa số nguyên tố cua một số 1024 bit mất một n m với một máy giá 10 triệu US .
Với một số 2048 bit thì thời gian để hoàn thành còn gấp vài tỉ lần.
Những ước lượng này thì ít hơn so với dự kiến ở những n m 1970 khi vấn đề
đầu tiên được đề xuất trong ngành mật mã học. Độ lớn khuyến cáo đã t ng nhanh
trong những n m gần dây, bởi sự khám phá ra những phương thức phân tích thừa số
nhanh hơn cũng như sụ phá triển trong sức m nh tính toán của máy tính. Không ai
biết những phương thức nhanh hơn sẽ được phát hiện trong những n m tới sẽ xảy ra
bao giờ. Nhưng mặt khác, không ai có thể chứng minh nó sẽ không xảy ra. Cả hai
khía c nh đều tồn t i thành những l nh vực nghiên cứu của toán học.
b. Phép mũ hóa và khai c n modul
Như ở trên ta đã khai báo n là kết quả của phép nhân hai số nguyên tố lớn
được sinh ngẫu nhiên. Cho m và c là những số nguyên nằm trong khoảng (0, n-1) và
e là một số nguyên lẻ trong khoảng (3, n-1) và nguyên tố cùng nhau với p-1 và q-1.
Thao tác mã hóa và giải mã trong hệ mã hóa khóa công khai RS
được thực
hiện dựa trên 2 hệ quả và 1 ước lượng sau :
Hệ quả 4: Phép tính mũ hóa modul là dễ : Cho n,m và e. Việc tính c = me mod
điều kiện dựa là n và e là phân tích thừa số n và áp dụng hệ quả 5 để quyết định d.
Thực sự, bất kỳ phương thức nào quyết định d đều bị chuyển về một cách khác của
việc phân tích thừa số n. Đúng là có thể khi mà tồn t i một phương pháp mà tính
toán khai c n modul mà không cần phân tích n hoặc quyết định d. Nhưng cho đến
nay chưa phương phàp nào có thể làm như vậy nhanh hơn việc phân tích thừa số n.
Nhận xét: Số học, đặc biệt là số nguyên lớn và các phép tính đồng dư là những
công cụ quan trọng trong mật mã học đặc biệt là trong việc tính toán mật mã học
khóa công khai, điển hình là RS . Tuy nhiên chương này cũng chỉ trình bày qua
20
Luận v n th c s k thuật
GVHD: TS Nguyễn Hữu Đức
các thuật toán để làm việc với những số nguyên lớn mà hầu hết đều đã được cài đặt
thành thư viện nên ở những hệ thống thực tế người ta sẽ sử dụng chúng để tiện cho
quá trình cài đặt.
1.2.2.2.
Cơ sở của hàm b m mật mã
Hàm b m là một giải thụât nhằm sinh ra các giá trị b m tương ứng với mỗi
khối dữ liệu. Giá trị b m đóng vai trò gần như một khóa để phân biệt các khối dữ
liệu [2].
Trong ngành mật mã học, một hàm b m mật mã học (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
thực (authentication) và kiểm tra tính nguyên vẹn của thông điệp (message
Trong l nh vực mã hóa thông tin, mã b m được xem như đặc trưng thu gọn
của một chuỗi bit tùy ý và dùng để nhận ra chuỗi bit đó. Hàm b m chính là công cụ
để t o ra chữ ký số và đảm bảo an toàn dữ liệu
Ả
3: Mô tả oạt độ g của àm b m
Hàm b m có thể được chia thành hai lo i:
+ Hàm b m một chiều : (one – way hash functions) : Là hàm b m mang
chất : với mọi mã b m biết trước, không thể tính toán để tìm được
chuỗi bit ban đầu vào có mã b m bằng với mã b m đã cho [8]
+ Hàm b m kháng xung đột : (collision resistant hash funtions) là hàm
b m mang tính chất : không thể tính toán để tìm ra hai chuỗi bit có
cùng giá trị b m
ên c nh đó, hàm b m cũng có những tính chất cơ bản sau:
+ (i) Có thể áp dụng với thông báo đầu vào có độ dài bất kỳ
+ (ii) T o ra giá trị b m y = h(x) có độ dài cố định
22
Luận v n th c s k thuật
GVHD: TS Nguyễn Hữu Đức
+ (iii) h(x) dễ dàng tính được với bất kỳ x nào
+ (iv) Tính một chiều : Với mọi đầu ra y cho trước không thể tìm được
x‟ sao cho h(x‟) bằng giá trị y cho trước
+ (v) Tính chống xung đột yếu : Với mọi dữ liệu đầu vào x1 cho trước
dựng các C nội bộ: Trung tâm tin học ộ Khoa học Công nghệ, an Cơ yếu chính
phủ, Vụ Thương m i điện tử - ộ Thương m i, Sở khoa học công nghệ tỉnh Đồng
Nai, Sở ưu chính viễn thông TP. Hồ Chí Minh, Ngân hàng Nhà nước Việt Nam ...
Các ứng dụng sử dụng chứng thực chữ ký số ở Việt Nam chủ yếu là ký vào dữ liệu
điện tử, thư điện tử bảo đảm, xác thực chứng thực chữ ký số quyền truy nhập, thanh
toán điện tử.
23
Luận v n th c s k thuật
GVHD: TS Nguyễn Hữu Đức
Ở các nước phát triển như M , Canada …hệ thống chứng thực số đã khá hoàn
thiện, với một hệ thống chính phủ điện tử hiện đ i, việc quản lý sinh/tử, cấp hộ
khẩu, công chứng, v.v...đã có thể thực hiện hoàn toàn thông qua m ng, đặc biệt
những n m gần đây dịch vụ chứng thực chữ ký số (CA) ngày càng phát triển. Một
số C
nổi tiếng có thể kể đến như C
của các công ty VeriSign, WISeKey,
eTrust,... có chi nhánh t i rất nhiều nước trên thế giới.
Hiện nay chứng thực chữ ký số đƣợc sử dụng trong khá nhiều ứng dụng, theo
số liệu điều tra gần đây của tổ chức thúc đẩy các tiêu chuẩn thông tin theo cấu trúc
OASIS (Organization for the Advancement of Structured Information Standards) ,
13,2% dùng trong thương m i điện tử, 9,1% sử dụng để bảo vệ WL N, 8% sử dụng
bảo đảm an toàn cho các dịch vụ Web, 6% sử dụng bảo đảm an toàn cho Web
trực tuyến.
Không chỉ nằm trong l nh vực thương m i điện tử, chứng thư số hiện còn được
sử dụng như một d ng chứng minh thư cá nhân. T i các nước công nghệ phát triển,
chứng thư số C
được tích hợp vào các chíp nhớ nằm trong thẻ c n cước, thẻ tín
dụng để t ng cường khả n ng bảo mật, chống giả m o, cho phép chủ thẻ xác thực
danh tính của mình trên nhiều hệ thống khác nhau, chằng h n như xe bus, thẻ rút
tiền TM, kiểm soát hải quan, hộ chiếu điện tử t i các cửa khẩu …
1.2.4. Cấp p át và xác t
c c ứ g t ư số
Trong mật mã học, chứng thực khóa công khai (còn gọi là chứng thực số /
chứng thực điện tử) là một thư sử dụng chữ ký số để gắn một khóa công khai với
một thực thể (cá nhân, máy chủ hoặc công ty...). Một chứng thực khóa công khai
tiêu biểu thường bao gồm khóa công khai và các thông tin (tên, địa chỉ...) về thực
thể sở hữu khóa đó. Chứng thực điện tử có thể được sử dụng để kiểm tra một khóa
công khai nào đó thuộc về ai.
CA phát hành các chứng thực khóa công khai trong đó thể hiện rằng C
đó
chứng nhận khóa công khai nằm trong mỗi chứng thực thuộc về cá nhân, tổ chức,
máy chủ hay bất kỳ thực thể nào ghi trong cùng chứng thực đó. Nhiệm vụ của C
là kiểm tra tính chính xác của thông tin liên quan tới thực thể được cấp chứng thực.
Khi người sử dụng tin tưởng vào một C
và có thể kiểm tra chữ ký số của C