TRƢỜNG ĐẠI HỌC SƢ PHẠM HÀ NỘI 2
KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN HƢƠNG TRÀ
CHUẨN CHỮ KÝ SỐ DSA
VÀ ỨNG DỤNG TRONG HÓA ĐƠN
TIỀN ĐIỆN ĐIỆN TỬ QUẬN LONG BIÊN
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
Chuyên ngành: Khoa học máy tính
TS. LƯU THỊ BÍCH HƯƠNG
HÀ NỘI – 2015
TRƢỜNG ĐẠI HỌC SƢ PHẠM HÀ NỘI 2
KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN HƢƠNG TRÀ
CHUẨN CHỮ KÝ SỐ DSA
VÀ ỨNG DỤNG TRONG HÓA ĐƠN
TIỀN ĐIỆN ĐIỆN TỬ QUẬN LONG BIÊN
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
Chuyên ngành: Khoa học máy tính
Ngƣời hƣớng dẫn khoa học
TS. LƢU THỊ BÍCH HƢƠNGn khoa học
TS. LƯU THỊ BÍCH HƯƠNG
HÀ NỘI – 2015
LỜI CẢM ƠN
c khóa luc ht em xin gi li c
sâu sc nht ti TS. Lƣu Thị Bích Hƣơng ng dn, ch bo,
ng ý kin quý báu cho em trong sut quá trình
thc hin.
Em xin chân thành cy, cô giáo trong khoa Công ngh
i hm Hà Nng dy và giúp
em trong sut bc vi gian em làm bài
khóa lun này. Là sinh viên khoa Công ngh Thông tin, em rt t hào v
khoa mình hc, v thy cô giáo ca mình. Em xin kính chúc các thy, các cô
luôn mnh khe, hnh phúc và thành công. Chúc khoa Công ngh Thông tin
s ngày mt khang trang, vng mnh, góp phn to ln trong s nghi
to chuyên nghip ci hm Hà Ni 2.
Lu nghiên cu khoa hc, chc ch tài ca em không tránh
khi nhng thiu sót, hn ch. Vì vy, em rt mong s n ca
các thy cô giáo và các b tài cc hoàn thin.
Cui cùng, em xin ci , bn bè c
ng viên, khích l tinh thn và tu kin tt nht cho em hoàn thành
khóa lun này.
Hà N
Sinh viên
Nguyễn Hƣơng Trà
LỜI CAM ĐOAN
Tên em là: Nguyễn Hƣơng Trà
Sinh viên: K37A i hm Hà Ni 2.
1. Chuẩn ký số DSA và ứng dụng trong hóa đơn tiền điện điện tử
quận Long Biên là kt qu tìm hiu và nghiên cu ci s
ng dn c
2. Khóa lun hoàn toàn không sao chép t các tài liu có sc công
b khác.
3. Kt qu không trùng vi các tác gi khác.
Nu sai em xin hoàn toàn chu trách nhim.
Nguyễn Hƣơng Trà
MỤC LỤC
M U 1
LÝ THUYT 5
1.1. Chu 5
1.2. Các gii thu 6
1.2.1. SHA-1 6
1.2.2. SHA-256 8
1.2.3. SHA-512 11
1.2.4. SHA-384 14
1.3. Ch ký s 14
1.3.1. 14
1.3.2. Ch ký s 15
1.3.3. Quá trình to ch ký s 17
1.3.4. Quá trình thnh ch ký s 18
N CH KÝ S DSA 19
2.1. Gii thiu 19
2.2. Thut toán ch ký s DSA 21
2.2.1. Nguyên tc hong 21
2.2.2. Các tham s 22
c tham s dng 23
2.2.4. Các tham s min 24
2.2.5. Cp khoá 26
2.3. To cp khoá 27
T K T NG DNG 29
3.1. Phát biu bài toán 29
3.2. Thit k bng gii thut DSA 32
lp ca gii thu 32
to các tham s min 34
3.2.3. Cho khoá 43
3.2.4. Cho và thnh ch ký s 44
3.3. Thit k giao din 45
KT LUNG PHÁT TRIN 51
TÀI LIU THAM KHO 53
MỤC LỤC HÌNH
Hình 1.1: Quá trình to ch ký s 17
Hình 1.2: Quá trình thnh ch ký s 18
Hình 2. s dng gii thui tht ch ký s 21
Hình 3.1: Quá trình mã hóa ca SHA-1 34
Hình 3.2: Quá trình to ch ký s và kim tra ch ký s dùng DSA 45
Hình 3.3: Form giao din chính 46
Hình 3.4: Form t 47
Hình 3.5: Form to khóa 48
Hình 3.6: Form gii mã thành công 48
Hình 3.7: Form to file nh JPG 49
Hình 3.8: Form kt qu nhc 50
1
MỞ ĐẦU
1. Lý do chọn đề tài
Trong s phát trin ca xã hi, k t khi có s i thông tin, an
toàn thông tin tr thành mt nhu cu gn lin vi cuc sc
bit trong thn t n thì vic các
công c m bo cho s i thông tin liên lc là vô
cùng cn thit. Ch ký s i vi nhit phc v cho
vim bo an toàn thông tin. Nó chính là liu
nhm mi ch ca d lianh, ch ký
s c hiu và ch ký ca mt doanh nghip. Nó không nhng
ch dùng trong vic kê khai thui s dng có th s dng trong tt
c các giao dn t vi mi t chc và cá nhân khác. Trong thi công
ngh thông tin hin nay thì vic rút ngn khong cách gia không gian, thi
gian luôn là mi cp thit trong công vic kinh doanh, ch ký s ra
p tit kim nhiu thi gian, công sc trong
mt s công vic giao dch v
Ngày nay, vic thanh toán bn t cho các giao dch mua
c xem là xu th mp vi thi công ngh s
.
,
, nâng
.
. Thi gian gn lng
c chuyn t vic thanh toán by sang vic thanh toán bng
n t. Vic s dn t trong giao dn
i bán tit kic chi phí in n, thun tin trong bo qun,
2
và hch toán k i chiu d liu, qun tr kinh doanh ca doanh
nghip, kê khai, np thung thi góp phn
bo v ng. Khách hàng có th cp nhn t thông
c và la chn bt k hình thc thanh toán tin nào và s
nhc biên nhn sau khi thanh toán.
Tuy nhiên vic thanh toán bn t c ta mi ch c
áp dm nhng thành ph ln. Các tn l
cc chun b mu ki trin khai toàn b n t trong kinh
n trên c c t n
li mt h thng các phn mn t phc v cho quá trình thanh
c ký s t khâu quan trng bi nó chính là
vic xác nh nhng yu t
ch Chuẩn ký số DSA và ứng dụng trong hóa đơn tiền điện điện tử
quận Long Biên tài khóa lun tt nghip ca mình.
2. Mục đích nghiên cứu
Nghiên cu v các gii thuc s dng trong vic mã hóa và
bo m-1, SHA- 256, SHA- 512, SHA- 384. T
dng vào vic to ch ký s n.
3. Nhiệm vụ nghiên cứu
- Tìm hiu các gii thun ch ký s DSA.
- Xây dng ng dng v ch ký s n t tin ti
n lc Long Biên.
4. Đối tƣợng và phạm vi nghiên cứu
ng nghiên cu ca khóa lun ch
ký s DSA và vic ký s n t.
Phm vi nghiên cu: Chun ký s ng JPG ca hóa
n qun Long Biên.
3
5. Ý nghĩa khoa học và thực tiễn
Kt qu nghiên cu ca khóa lun
h tng công ngh thông tin cc ta. Góp phy mnh ng dng công
ngh thông tin trong kinh doanh và dch v khách hàng. Không nhng th,
vic áp dn t phù hp vi các công ngh tiên tic
áp dng trên th gi Internet Banking, SMS Banking,
c mn t mang li l
thu ng gic hin áp dng
n t, vic thc hin qua mng internet bng các phn
mm xác thc tính n cm bc nhanh chóng và
chính xác, gim vi ng giy.
6. Phƣơng pháp nghiên cứu
a- Phương pháp nghiên cứu lý luận
Nghiên cu qua vic sách, báo và các tài liu liên quan nhm xây
d lý thuyt ca khóa lun và các bin pháp cn thi gii quyt
các v ca khóa lun.
b- Phương pháp chuyên gia
Tham kho ý kin c có th thit k
phù hp vi yêu cu thc tin. Ni dung x áp c yêu cu
ngày càng cao ci s dng.
c- Phương pháp thực nghiệm
4
Thông qua quan sát thc t, yêu cu c , nhng lý luc
nghiên cu và kt qu c qua nh
7. Cấu trúc khóa luận
Ngoài phn li c u, kt lung phát trin, tài liu
tham kho, khóa lun có nhng ni dung sau:
Chương 1: Cơ sở lý thuyết - Tp trung nghiên cu khái quát lý thuyt
cc s dng trong vic ký s có cái nhìn
tng quan v ch kí s và các gii thuc s dn s
p cn và thc hin.
Chương 2: Chuẩn chữ ký số DSA - u v
h t to ch ký su c th v nguyên tc
hong, cách to cp khóa và to ch ký s ca chun ký s DSA.
Chương 3: Thiết kế và cài đặt ứng dụng Phát biu chi tit bài toán
mà khóa lu ra t n thit k gii thut DSA và xây dc ng
dng ch ký s n t tn lc Long Biên.
5
CHƢƠNG 1: CƠ SỞ LÝ THUYẾT
1.1. Chuẩn hàm băm an toàn
Chu-FIPS PUB 180 (Secure Hash Standard)
t gii thu
tên SHA-1. Và phiên bn th 2 ca chuB 180-
Trong FIPS PUB 180-2 ch rõ 4 gii thu-1,
SHA-256, SHA-384, và SHA-512. C 4 gii thu
mt chiu có th x to ra mp thu gn ca thông
u. Các gii thum bc tính toàn vn ca thông
p: bt c s i nào vp M u dn ti s i ca
p rút gn H(M)- vi mt xác sut là rt lm này rt có ích
trong vic to và xác nhn ch ký s c to ra các s ngu
nhiên.
Mi mt gii thuu gc tin x c tính toán
c tin x lý bao gm các công vin tin, chia khi, thit lp
giá tr khi tc tính to to ra mt
nh sn t bn và s d i các hàm,
h to ra mt chui các giá tr i
c to b p rút gn.
Bn gii thut này khác nhau ch yu s bít bo mt. S bít bo mt
có liên quan trc tip t dài cp rút gn. Khi mt gii thut
c s dng cùng vi mt gii thut khác thì ta cn phi ch ra
n s dng có s bít bo mt là bao nhiêu. Ví d, nu mt thông
c ký bng gii thut ch ký s vi 128 bít bo mt thì gii thut ch
ký s yêu cu s dng mo mt (ví
d SHA-256).
6
Ngoài ra, các gii thut khác nhau c ca khi và t d liu
bn ca các gii thu
Bảng 1.1: Đặc điểm của các giải thuật hàm băm an toàn
Gii thut
Kích
c
p
(bít)
Kích
c khi
(bít)
Kích
c t
(bít)
c thông
p thu gn
(bít)
Bít an
toàn
(bít)
SHA-1
< 2
64
512
32
160
80
SHA-256
< 2
64
512
32
256
128
SHA-384
< 2
128
1024
64
384
192
SHA-512
< 2
128
1024
64
512
256
1.2. Các giải thuật hàm băm an toàn
1.2.1. SHA-1
SHA-1 có th p M dài là
l bít vi l< 2
64
. Gii thut s dng:
1. Mnh sn gm 80 t 32 bít.
n làm vi dài 32 bít.
3. Mt giá tr m 5 t 32 bít. Kt qu cui cùng ca gii
thut SHA-1 là mp rút gn 160 bít.
Các t cnh sW
0
, W
1
,…, W
79
.
n làm vic là a, b, c, d và e. Các t ca giá tr c gán nhãn là
H
0
(i)
,H
1
(i)
, …, H
4
(i)
i to H
(0)
liên tic thay th bi
các giá tr H
(i)
n giá tr i cùng H
(N)
. Ngoài ra
SHA-1 còn s dng mt bin trung gian T c bng mt t 32 bít.
7
Qui trình tiền xử lý của SHA-1
n tin cho bn tin M.
2. Phân bn tin M ra thành N khi 512 bít M
(1)
, M
(2)
, …, M
(N)
.
3. Thit lp giá tr khi to H
(0)
.
Qui trình tính toán băm của SHA-1
SHA-c thc hin trên phép cng modulo 2
32
trên tng t 32 bít
ca khu vào. Sau khi tin x lý, mi khi tin M
(1)
, M
(2)
, …, M
(N)
c x
lý lc sau:
For i = 1 to N do
{
1. Chun b nh sn {W
t
}:
=
()
ế 0 15
1
(
3
)
8
16
) ế 16 79
2. Khi to 5 bin hong a, b, c, d và e ng vi giá tr (i-
1).
a = H
0
(i-1)
b = H
1
(i-1)
c = H
2
(i-1)
d = H
3
(i-1)
e = H
4
(i-1)
3. For t = 0 to 79 do
{
T = ROTL
5
(a) + f
t
(b, c, d) +e + K
t
+ W
t
e = d
8
d = c
c = ROTL
3
(b)
b = a
a = T
}
4. Tính giá tr i - H
(i)
H
0
(i)
= a + H
0
(i-1)
H
1
(i)
= b + H
1
(i-1)
H
2
(i)
= c + H
2
(i-1)
H
3
(i)
= d + H
3
(i-1)
H
4
(i)
= e + H
4
(i-1)
}
Sau khi lp lc t (1) ti (4) là N lp rút gn 160
bít ca M s là H
0
(N)
|| H
1
(N)
|| … || H
4
(N)
.
1.2.2. SHA-256
SHA-256 có th p M dài
là l bít vl
64
. Gii thut SHA-256 s dng:
1. Mnh sn gm 64 t 32 bít.
2. Tám bin ho dài 32 bít.
3. Mt giá tr m 8 t 32 bít. Kt qu cui cùng ca gii thut
SHA-p rút gn dài 256.
Các t cnh sc gán nhãn là W
0
, W
1
W
63
.
Tám bin hot tên là a, b, c, d, e, f, g và h. Các t ca giá tr
9
c gán nhãn là H
0
(i)
,H
1
(i)
, …, H
7
(i)
i to H
(0)
s c
thay th liên tip bng các giá tr H
(i)
n giá tr i
cùng là H
(N)
. SHA-256 còn s dng hai bin trung gian T
1
và T
2
ln là
32 bít.
Qui trình tiền xử lý của SHA-256
n tin cho bn tin M.
2. Phân bn tin M ra thành N khi 512 bít M
(1)
, M
(2)
, …, M
(N)
.
3. Thit lp giá tr khi to H
(0)
.
Qui trình tính toán băm của SHA-256
SHA-256 c thc hin trên phép cng modulo 2
64
trên tng t 32 bít
ca khu vàoc tin x lý, tng khi tin M
(1)
, M
(2)
, …, M
(N)
s
c x lý tun t c sau:
For i = 1 to N do
{
1. Chun b nh sn, {W
t
}:
=
()
ế 0 15
1
256
2
+
7
+
0
256
15
+
16
ế 16 63
2. Khi to 8 bin hong a, b, c, d, e, f, g và h vi giá tr
(i-1)
a = H
0
(i-1)
b = H
1
(i-1)
c = H
2
(i-1)
d = H
3
(i-1)
e = H
4
(i-1)
f = H
5
(i-1)
10
g = H
6
(i-1)
h = H
7
(i-1)
3. For t = 0 to 63 do
{
T
1
= h +
()
256
1
+ ch(e, f, g) +
{256}
+
T2 =
256
0
+ ch(e, f, g) +
256
+
h = g
g = f
f = e
e = d + T
1
d = c
c = b
a = T
1
+ T
2
}
4. Tính toán giá tr i (H
(i)
)
H
0
(i)
= a + H
0
(i-1)
H
1
(i)
= b + H
1
(i-1)
H
2
(i)
= c + H
2
(i-1)
H
3
(i)
= d + H
3
(i-1)
H
4
(i)
= e + H
4
(i-1)
H
5
(i)
= g + H
5
(i-1)
H
6
(i)
= h + H
6
(i-1)
H
7
(i)
= f + H
7
(i-1)
}
11
Sau khi lp li N lc t (1) tp
rút gn 256 bít cp M là: H
0
(N)
|| H
1
(N)
|| H
2
(N)
|| H
3
(N)
|| H
4
(N)
||H
5
(N)
|| H
6
(N)
|| H
7
(N)
1.2.3. SHA-512
Trong phn này, em xin trình bày gii thut SHA-c gii thut
SHA-384 bi vì gii thut SHA-384 ging ht gii thut SHA-512, ch có giá
tr i to là khác và giá tr c ct ly 384 bít ch
không phi ly toàn b i thut SHA- tp
rút gn. Mi gii thu
to ra kt qu.
SHA-512 có th p M dài
là l bít vl
128
. Gii thut SHA-512 s dng:
1. Mnh sn gm 80 t 64 bít.
2. Tám bin ho dài 64 bít.
3. Mt giá tr m 8 t 64 bít. Kt qu cui cùng ca gii
thut SHA-p rút gn dài 512 bít.
Các t cnh sc gán nhãn là W
0
, W
1
,…, W
79
.
Tám bin hot tên là a, b, c, d, e, f, g và h. Các t ca giá tr
c gán nhãn là H
0
(i)
,H
1
(i)
, …, H
7
(i)
i to H
(0)
s c
thay th liên tip bng các giá tr H
(i)
n giá tr i
cùng là H
(N)
. SHA- dng hai bin trung gian T
1
và T
2
ln là 64 bít.
Qui trình tiền xử lý của SHA-512
n tin cho bn tin M.
2. Phân bn tin M ra thành N khi 1024 bít M
(1)
, M
(2)
, …, M
(N)
.
3. Thit lp giá tr khi to H
(0)
.
12
Qui trình tính toán băm của SHA-512
SHA-c thc hin trên phép cng modulo 2
64
trên tng t 64 bít
ca khu vàoc tin x lý, tng khi tin M
(1)
, M
(2)
, …, M
(N)
s
c x lý tun t c sau:
For i = 1 to N do
{
1. Chun b nh sn, {W
t
}:
=
()
ế 0 15
1
256
2
+
7
+
0
256
15
+
16
ế 16 79
2. Khi to 8 bin hong a, b, c, d, e, f, g và h vi giá tr (i-1)
a = H
0
(i-1)
b = H
1
(i-1)
c = H
2
(i-1)
d = H
3
(i-1)
e = H
4
(i-1)
g = H
5
(i-1)
h = H
6
(i-1)
f = H
7
(i-1)
3. For t = 0 to 79 do
{
T
1
= h +
()
512
1
+ ch(e, f, g) +
{512}
+
T
2
=
512
0
+ ch(e, f, g) +
512
+
h = g
13
g = f
f = e
e = d + T
1
d = c
c = b
a = T
1
+ T
2
}
4. Tính toán giá tr i (H
(i)
)
H
0
(i)
= a + H
0
(i-1)
H
1
(i)
= b + H
1
(i-1)
H
2
(i)
= c + H
2
(i-1)
H
3
(i)
= d + H
3
(i-1)
H
4
(i)
= e + H
4
(i-1)
H
5
(i)
= g + H
5
(i-1)
H
6
(i)
= h + H
6
(i-1)
H
7
(i)
= f + H
7
(i-1)
}
Sau khi lp li N lc t (1) tp rút
gn 512 bít cp M là: H
0
(N)
|| H
1
(N)
|| H
2
(N)
|| H
3
(N)
|| H
4
(N)
|| H
5
(N)
||
H
6
(N)
|| H
7
(N)
.
14
1.2.4. SHA-384
SHA-384 có th p M dài
l bít vi 0 ≤ l ≤ 2
128
. Gii thu vi gii thut
SHA-512 tr m khác bit duy nht sau:
1. Giá tr i to H
(0)
ca SHA-384 khác vi giá tr khi to
H
(0)
ca SHA-512.
p rút gn ca SHA- dài là 384 bít ch không
pha SHA-512. Bi vì khâu cui cùng, nó cht bt 128
bít bên phi ca giá tr i cùng H
(N)
, và ch gi li 384 bít trái nht ca
giá tr tp rút gn là: H
0
(N)
|| H
1
(N)
|| H
2
(N)
||
H
3
(N)
|| H
4
(N)
|| H
5
(N)
thay vì là gi nguyên toàn b tt c các bít (hay các t)
ca H
(N)
-512.
1.3. Chữ ký số
1.3.1. Định nghĩa
K
k
toán xác minh Ver
k
V.
k
k
: P
x
{TRUE, FALSE}
x y
,
=
ế = ()
ếế ()
15
Vi mi K K, hàm Sig
K
và Ver
K
là các hàm thc. Ver
K
s là hàm công khai còn Sig
K
là hàm bí mt. Gi gi còn Bob
i nhn. Không th d gi mo ch ký ca Bob trên
bn xi x c, ch có Bob mi có th c ch ký
y Ver(x, y) =True. M ch kí không th u kin vì mt
kim tra tt c các ch s y có th trên bn x
nh dùng thut toán Ver n khi anh ta có th tìm thy mt ch
, n thi gian anh ta luôn luôn có th gi mo ch ký
cy, ging hp h thng mã hoá công khai, mc
t ra là tìm các s ch ký s an toàn v mt tính toán.
1.3.2. Chức năng chữ ký số
1.3.2.1. Khả năng nhận thức
Các h thng mt mã hoá công khai cho phép mn vi
khoá bí mt mà ch i ch ca khoá bi s dng ch ký s
bn không cn phc mã hoá mà ch c
dài c nh và ngn bn). Khi cn kim tra, bên nhn
gii mã (vi khoá công khai- ly lm tra vi
n nhc. Nu 2 giá tr này khp nhau thì bên nhn có
th ng rn xut phát t i s hu khóa bí mt. Tt nhiên
không th bn không b gi mo vì h thng vn có th
b phá v.
V nhn thc bit quan tri vi các giao dch tài chính.
Chng hn mt chi nhánh ngân hàng gi mt gói tin v i dng
(a, b)a là s tài khon và b là s tin chuyn vào tài khot
k lo có th gi mt s ti ly ni dung gói tin và truyn li
c nhiu l thu li (tn công truyn li gói tin).
16
1.3.2.2. Tính toàn vẹn
C u có th
bn không b si trong khi truyn vì nn b
i và lp tc b phát hin. Quá trình mã hóa s n ni dung ca
i vi bên th c vii ni dung
ca nó. Mt ví d ng hp này là tng hình (homomorphism
attack); tip tc ví d trên, mt k lo gng vào tài
khon ca a, chn gói tin (a, b) mà chi nhánh gi v trung tâm ri gi gói tin
(a, b
3
) thay th lp tc tr thành triu phú.
1.3.2.3. Tính không thể phủ nhận
Trong giao dch, mt bên có th t chi nhn m
mình g a kh n có th yêu cu bên gi phi
gi kèm ch ký s vn. Khi có tranh chp, bên nhn s dùng ch ký
t chng c bên th ba gii quyt. Tuy nhiên, khóa bí mt vn
có th b l và tính không th ph nh c hoàn toàn.
Vy làm th m bo các tính cht trên? s
d thc hin vic to ch n t. Mt s thuc
s dng trong vic to ra ch n t:
- Full Domain hash, RSA- PSS, da trên RSA
- DSA
- ECDSA
- ElGamal Signature Scheme
- Undeniable Signature
- SHA (thônng là SHA-1) vi RSA
17
1.3.3. Quá trình tạo chữ ký số
- Dùng gii thu tính message digest (MD) cp
cn truyt qu c mt message digest.
- S dng khóa bí mt ci g mã hóa message digest thu
c c 1. Tip theo, c này s dùng gii thut DSA. Kt qu c
gi là digital signature (DS) c u. Công vic này gi là
p, mi s i trên thông
p s b phát hin kim tra. Ngoài ra, vim bo
i nhp này xut phát t i gi ch không phi là
ai khác.
- Gu và gi nhn.
Dùng gii thu p cn truyt qu c
mt message diget, dùng gii thu-1 và message diget s có chiu
dài 160 bit.
Hình 1.1: Quá trình to ch ký s
18
1.3.4. Quá trình thẩm định chữ ký số
- u và ch ký s. Dùng khóa công khai ca
i gn m gii mã ch
ký s cp.
- Dùng gii thut SHA-u.
- So sánh 2 chu t qu c c trên. Nu trùng
nhau, kt lu p này không b i trong quá trình truyn và
p này là ci gi.
Hình 1.2: Quá trình thnh ch ký s