Ngày nay, cùng với sự phát triển của khoa học công nghệ hiện đại và Công nghệ
thông tin, ngành mật mã đã có những bước phát triển mạnh mẽ vượt bậc và đạt được
nhiều kết quả lý thuyết sâu sắc đã đặt nền móng cho việc phát triển các giải pháp bảo
mật, an toàn thông tin trong mọi lĩnh vực hoạt động của con người. Đặc biệt là những
ưu điểm nổi bật của chữ ký số. Chữ ký số được biết đến khi sự trao đổi thông tin ngày
càng phổ biến trên các mạng truyền thông ở nơi mà chữ ký tay không thể phát huy tác
dụng.
Trong lĩnh vực ngân hàng, CNTT và hội nhập kinh tế quốc tế đã dẫn đến sựbùng
nổ về các loại hình dịch vụ. Ngoài việc góp phần giảm tỉ trọng tiền mặt trong lưu
thông, các hình thức dịch vụmới như thẻ tín dụng, máy rút tiền mặt ATM. đã làm
cho cầu tiền phản ứng một cách nhanh hơn trước các diễn biến của lãi suất, tức là đã
làm tăng độ co dãn của cầu tiền đối với lãi suất. Một cách tổng quát hơn, việc đổi mới
công nghệngân hàng trên cơsở ứng dụng CNTT đã góp phần thúc đẩy sự phát triển
của thị trường tài chính, đồng thời đẩy nhanh tốc độ chu chuyển của các luồng vốn,
làm cho cung cầu tiền tệ trở nên khó dự báo hơn, cơ chế truyển tải chính sách tiền tệ
nhạy cảm hơn.
65 trang |
Chia sẻ: lylyngoc | Lượt xem: 2708 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đồ án Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
(mod N).
Nếu P có thể trả lời đúng cả hai yêu cầu khi V gửi b thì chữ ký S trên thông điệp m
đúng là của P . Còn nếu một trong hai câu có kết quả sai hoặc cả hai câu đều sai thì
chữ ký S trên thông điệp m không phải là chữ ký của P.
Blob B có thể được tính bằng cách sau:
Z chọn các phần tử sinh gp và hq của *pZ và *qZ và tính
g ≡
⎩⎨
⎧
ql
pg p
mod
mod
và h ≡
⎩⎨
⎧
qh
pl
q mod
mod
sử dụng CRT
Để tính B(y) thì P chọn r1, r2 ∈ (1, …, N) và tính
B(y) = y 21 rr hg mod N
Khóa bí mật của P : s
Công khai : N, m, S, Ω; m, s ∈ Z *N , Ω = [ ] [ ]{ }12,, −NN K ⊂ N
Chứng minh với V : m s ≡ S (mod N) và s ∈ Ω
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 37
Trong giao thức này, chúng ta tạo một giao thức xác nhận, vì P muốn chứng minh
cho người nhận V rằng P đưa cho một V chữ ký có giá trị S. Trường hợp này được
giải quyết như sau :
Giao thức xác nhận 2
Giao thức 2
1. Chứng minh tồn tại s sao cho ms ≡ S (mod N) và s ∈ Ω bằng giao thức 1,
thực hiện k lần.
2. Chứng minh rằng s|v như sau:
Giao thức 2
3.3.2.2. Giao thức chối bỏ
Nếu P muốn chứng minh cho V rằng S không phải là chứ ký của anh ta trên thông
điệp m, trường hợp này sẽ được giải quyết như sau:
Giao thức chói bỏ
Khóa bí mật của P : s
Công khai : N, m, S, Ω; m, s ∈ Z *N , Ω = [ ] [ ]{ }12,, −NN K ⊂ N
Chứng minh với V : m s ≡ S (mod N) và s ∈ Ω và s|v (s là ước của v)
P
V
a ≡ Sr Chọn r ∈ (1,…, N)
b ≡ av/s B(b)
Kiểm tra a r
Mở blob Kiểm tra blob và b ≡ mvr
Khóa bí mật của P : s
Công khai : N, m, S, Ω; m, s ∈ Z *N
Chứng minh với V : m s ≡ S (mod N) và s ∈ Ω và s|v (s là ước của v)
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 38
Z công bố ( hg , ) được sinh trong nhóm Z *N (cách tính hg , như sau: chọn các số
nguyên a1, a2, b1, b2 thỏa mãn gcd(a1, b1, p-1) = gcd (a2, b2, q-1) = 1 và công khai
2121
~,~ bbaa hghhgg ≡≡ với g, h là các phần tử sinh của Zp* và Z*q), cùng đó là một thư
mục công khai tin cậy chứa ( tên thành viên, ss hg ~,~ ). Lấy l là một hằng số rất nhỏ để
việc tìm kiếm toàn diện trên (0, …, 1) là khả thi. Chú ý rằng nếu S ≡ ms, thì p không
thể tính a từ ( )as Sm / , vì khi đó ( )as Sm / = 1. Khi đó anh ta sẽ phải đoán a.
Giao thức 3
Do chữ ký được tạo ra là chữ ký không thể chối bỏ, ta có thể sử dụng giao thức
chối bỏ của sơ đồ chữ ký không thể chối bỏ do chính tác giả David Chaum sáng tác để
thưc hiện việc chứng minh chữ ký S không phải là chữ ký của P trên thông điệp m với
V .
Z công bố g~ và isg~ (mod N), S-1i (mod ϕ(N)) tương ứng từng thành viên. Giao thức
4 sẽ giải quyết vấn đề chối bỏ chữ ký như sau :
Giao thức 4
Bước 1 : V chọn ngẫu nhiên 2 số nguyên x1, x2 ∈ Ф, tính ( ) 21 ~ xsx gSc= mod N, sau đó
gửi cho P
Bước 2 : P tính ( ) 1−= scd mod N, gửi d cho V
Bước 3 : V thử điều kiện d ≠ 21 ~ xx gm mod N. Nếu đúng thì tiếp tục bước 4. Nếu sai
thì chữ ký đúng là của P
P
V
2~~ ra hgm ≡ Sr Chọn r1, r2 ∈ (1,…, N) và a ∈ (0, …, 1)
( ) ( ) 21 ~~ rsrsa hgS
Tính a từ ( )as Sm / B(b)
Bằng cách kiểm tra
Toàn bộ các số
r1, r2
Mở blob Kiểm tra blob
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 39
Bước 4 : V chọn ngẫu nhiên 2 số nguyên tố x’1, x’2 ∈ Ф tính ( ) 2'1' ~' xsx gSc = mod N,
sau đó gửi c’ cho P .
Bước 5 : P tính ( ) 1'' −= scd mod N, sau đó gửi d’ cho V
Bước 6 : V thử điều kiện d’ ≠ 2'1' ~ xx gm mod N. Nếu đúng thì tiếp tục bước 7. Nếu sai
thì chữ ký đúng là của P .
Bước 7 : V kiểm tra ( ) ( ) 1'2'12 ~~ ' xxxx gdgd −− ≡ mod N ? Nếu đồng dư thức đùng thì kết luận
chữ ký không phải là của P.
Ví dụ :
Một ví dụ về sơ đồ chữ ký nhóm dựa trên hệ mật mã RSA
Thành lập một nhóm có 5 thành viên, quá trình cài đặt nhóm do người
quản lý nhóm thực hiện như sau :
Z chọn p = 101, q = 113, N = pq = 11413, ϕ(N) = (p-1)(q-1) = 11200, Z
chọn khóa bí mật của Z là Sz = 149, gp = 3, hq = 2 là các phần tử sinh của
Z*p và Z *q. Chọn a1 = 3, a2 = 7, b1 = 11, b2 = 13.
Tính 21~ aa hgg = mod N = 3456 và 21~ bb hgh = mod N = 2448
Các khóa bí mật của các thành viên như sau :
s1= 107,s2 = 113, s3 = 123, s4 = 129, s5 = 137
Khóa công khai của các thành viên ( là nghịch đảo của khóa bí
mật của các thành viên trong trường mod ϕ(N)) được gửi lên TPD như
sau (không theo thư tự ): 5443, 2577, 3187, 8769, 10873. Các khóa công
khai này sẽ được người nhận thông điệp dùng để xác minh có đúng hay
không.
Khóa công khai của nhóm là N = 11413
v = ∏ iz ss =3916191121461
Ký văn bản : ký văn bản m = 1234 thì
Chữ ký của từng thành viên lần lượt là : 278, 6093, 6541, 6528, 8331
Xác nhận chữ ký ( sử dụng giao thức 1)
Thành viên 1 muốn xác nhận chữ ký S = 278 đúng là của anh ta ( gọi là
P ) trên văn bản m = 1234 với người xác nhận ( gọi là V ) thì anh ta
thực hiện giao thức xác nhận ( giao thức 1)
Bước 1 : P chọn β = 57, chọn r = 23.
Tính z1 = 123423 mod 11413 = 4016, z2 = 123423-57 = mod 11413
= (1234-1)34 mod 11413 = 951734 mod 11413 = 2429.
Tính các blob : g = 1922, h = 4748, chọn r1 = 5,r2 = 7.
B(z1) = 4016.19225.47487 mod 11413 = 8712
B(z2) = 2429.19225.47487 mod 11413 = 1518
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 40
Bước 2 : V chọn b = 0 hoặc b = 1 rồi gửi cho P
Bước 3 : P gửi cho V
Nếu b = 0 thì r = 23, β = 57, mở các blob g = 1922, h = 4748,
r1 = 5,r2 = 7, z1 = 4016, z2 = 2429
Nếu b = 1 thì r = 107 + 23 = 130, z = 4016
Bước 4 : V xác định
Nếu b = 0 thì r ∈ (0, …, β) và kiểm tra z1 = 4016, z2 = 3418 sau
đó kiểm tra B(4016) = 8712 và B(3418) = 5505 theo thứ tự nào đó
mà P đã gửi ở bước 1. Nếu kiểm tra thỏa mãn thì chữ ký là
đúng .
Nếu b = 1 thì kiểm tra 1234130 ≡ 4016.278 (mod 11413) ↔9387 ≡
9387. do đó chữ ký là đúng.
Chối bỏ chữ ký ( sử dụng giao thức 4). Giả sử thành viên thứ 1 ký thông
điệp m = 1234, chữ ký S = 278, thành viên thứ 3 muốn chứng minh rằng
đó không phải là chữ ký của anh ta. Khi đó người quản lý nhóm công bố
: N = 11413, g~ = 1299, sg~ = 4528 (mod N) (công khai), s-1 = 3187 (mod
ϕ(N)) ( cho thành viên cần phải chứng minh biết P).
Bước 1 : V chọn x1 = 3, x2 = 5. Tính c = 2783.45285 (mod N) = 6595. Gửi
c cho P
Bước 2 : P tính d = 65953187 (mod N) = 5172. Rồi gửi cho V
Bước 3 : V thử 5172 ≡ 12343 12995 (mod 11413)? →5172 ≡ 4285
Bước 4 : V tính c’ = 2784.45286 (mod N) = 1236 rồi gửi c’ cho P
Bước 5 : P tính d’ = 12363187 (mod N) = 6038 rồi gửi cho V
Bước 6 : V thử 6038 ≡ 1234412996(mod 11413)? →6038 ≡ 694
Bước 7 : V kiểm tra ( ) ( )( ) ( )⎪⎩
⎪⎨
⎧
=
=
−
−
2682mod1299.5172
2682mod1299.6038
45
36
N
N
do đó chữ ký
không phải là của P
Một vài nhận xét đối với sơ đồ chữ ký nhóm thứ hai
Nếu tất cả thành viên của nhóm có âm mưu loại một người thì khóa bí mật của
người này sẽ bị lộ. Việc này có thể dễ dàng được giải quyết khi Z là một thành viên
của nhóm, khi đó Z sẽ tính v = ∏ iz ss , trong đó sz là một khóa bí mật mà chỉ Z mới
biết.
Độ dài của khóa công khai v tuyến tính với số thành viên của nhóm, do đó việc
tăng một số lũy thừa của v sẽ là một lần tuyến tính số thành viên của nhóm.
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 41
3.3.3. Sơ đồ chữ ký nhóm thứ ba
Chúng ta giả sử rằng có một thư mục công khai tin cậy trong đó các modulo RSA
của mỗi thành viên được liệt kê ( số mũ RSA công khai không cần trong sơ đồ này)
Khóa bí mật của thành viên thứ I sẽ là thừa số của modulo RSA của anht a Ni= piqi.
trong suốt quá trình cài đặt, Z chọn một số modulo RSA N độc lập với tất cả các Ni
của các thành viên. Lấy M là một số nguyên công khai sao cho pi∈Ф=[ ] [ ]{ }12...,, −MM và qi> 4 M (đối với mọi i). nếu thành viên i muốn ký thông điệp
m, anh ta chọn ngẫu nhiên một bộ Γ người ( bao gồm cả anh ta ), chữ ký của anh ta sẽ
là :
( )( ) ipmf,Γ mod N
Và anh ta sẽ phải đưa ra một chứng cớ không tiết lộ thông tin rằng sử dụng thừa số
pi ∈ Ф và pi là một ước số của modulo RSA của các người trong Γ . Điều này có thể
được giải quyết bằng Giao thức 2 ( với Ω = Ф). Nếu một thành viên muốn chối bỏ một
chữ ký, anh ta có thể sử dụng Giao thức 3.
3.3.3.1. Vấn đề “ mở ” chữ ký
Trong trường hợp cần thiết, người quản lý nhóm có thể xác định một chữ ký là do
thành viên nào trong nhóm ký bằng cách thực hiện giao thức chối bỏ với từng thành
viên trong nhóm.
Bởi vì chữ ký, mà mỗi thành viên ký là một chữ ký không thể chối bỏ, do đó nếu
sử dụng giao thức chối bỏ ( Giao thức 3) thì một thành viên sẽ không thể phủ nhận chữ
ký mà mình đã ký. Và khi đó người quản lý nhóm sẽ biết được chữ ký đó là của ai.
3.3.3.2. Nhận xét
Các sơ đồ chữ ký nhóm của D.Chaum đều dựa trên hệ mã RSA và việc tính logarit
rời rạc đối với một số nguyên tố lớn là khó. Các thông tin về người ký là an toàn,
không ai trong nhóm có thể biết được ( tất nhiên là trừ người đã ký).
Trong các sơ đồ thì số người trong nhóm là cố định, riêng trong sơ đồ thứ ba, khi
một người muốn ký một văn bản mà không muốn lộ tên anh ta thì đồng thời anh ta tạo
một nhóm người (các khóa công khai lấy từ thư mục công khai tin cậy) và anh ta sẽ
chứng minh rằng anh ta thuộc nhóm người này.
Chữ ký được tạo ra là chữ ký không thể chối bỏ.
Độ dài của khóa công khai tuyến tính với số người trong nhóm.
3.4. Sơ đồ chữ ký nhóm của Jan Camenish và Stadler
David Chaum và Van Heyst đã đưa ra các sơ đồ chữ ký nhóm đầu tiên trên thế
giới, nhưng trong các sơ đồ của họ thì số thành viên trong nhóm phải là cố định, nhưng
thực tế một số nhóm luôn luôn thay đổi thành viên, để khắc phục được nhược điểm
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 42
này, năm 1997 Jan Camenish và Stadler đã đưa ra một sơ đồ chữ ký số nhóm mới mà
theo đó số thành viên trong nhóm sẽ có thể thay đổi được.
Sơ đồ chữ ký số nhóm do Jan Camenish và Stadler gồm 5 thủ tục:
Setup: Sinh khóa công khai của nhóm và khóa bí mật của người quản lý nhóm
Join: Thủ tục tương tác giữa người quản lý nhóm và một thành viên mới của
nhóm để cung cấp cho thành viên này khóa bí mật và chứng nhận thành
viên.
Sign: Thủ tục ký một thông điệp của một thành viên trong nhóm.
Verify: Thủ tục kiểm tra chữ ký trên một thông điệp xem có đúng là chữ ký của
nhóm đó hay không.
Open: Là thủ tục để xác định xem chữ ký S trên thông điệp m là của thành viên
nào trong nhóm.
3.4.1. Một số khái niệm cần thiết
Khái niệm 1
Một chữ ký dựa trên kiến thức về logarit rời rạc kép của y theo g, và a trên thông
điệp m với một tham số an toàn l kí hiệu là :
( )[ ]( )mgySKLOGLOG al αα =
Là một nhóm ( )lsssc ...,,,, 21 ∈ { } lml Zx1,0 thỏa mãn :
( )ll PPPagymHc ...,,,,,,, 21=
Trong đó
( ) [ ]
( ) [ ]⎪⎩
⎪⎨
⎧
≠↔
=↔=
0
0
icy
icg
P
is
is
a
a
i
Khái niệm 2
Một chữ ký dựa trên kiến thức về logarit rời rạc thành phần gốc thứ e của y theo g
trên thông điệp m được ký hiệu:
( )[ ]( )mgySKROOTLOG el αα =
Là một nhóm ( )lsssc ...,,,, 21 ∈ { } lml Zx1,0 thỏa mãn :
( )ll PPPagymHc ...,,,,,,, 21=
Trong đó
( ) [ ]
( ) [ ]⎪⎩
⎪⎨
⎧
≠↔
=↔=
0
0
icy
icg
P
e
i
e
i
s
s
i
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 43
3.4.2. Sơ đồ chữ ký
Setup : Người quản trị nhóm chọn tham số an toàn l rồi làm các bước sau :
¾ Một cặp khóa công khai RSA(n, e) và một khóa bí mật d.
Trong đó n có độ dài tối thiểu là 21bit, n = pq, p = P + 1, q = 2Q + 1
p, q, P, Q là các số nguyên tố
¾ Một nhóm Cyclic G =
¾ Một phần tử *nZ∈α ngẫu nhiên.
¾ Một số mũ λ và một hằng số μ >1, μ càng lớn thì hệ thống càng an
toàn
Join : A muốn tham gia vào nhóm thì phải thực hiện các bước sau:
¾ Lấy một khóa bí mật { }12...,,1,0 −∈ λx
¾ Tính y = ax (mod n)
¾ Tính khóa thành viên z = gy, A sẽ sử dụng khóa bí mật của mình để ký z.
¾ Để có được chứng nhận thành viên của nhóm, A gửi (y, z) cho người
quản lý nhóm, anh ta sẽ cấp cho A chứng nhận thành viên :
v≡(y+1)d(mod n)
Sign : Để ký một thông điệp m, A làm theo các bước sau :
¾ rgg =~ với r ∈ Zn
¾ ( )ry zgz == ~~
¾ [ ] ( )mgzSKLOGLOGV l ~~1 == α
¾ [ ]( )mggzSKROOTLOGV l ββ ~~~2 ==
Chữ ký trên thông điệp m gồm s = ( )21,,~,~ VVzg
Verify : Để xác thực chữ ký s đúng là chữ ký trên m ta phải làm các bước sau :
¾ Kiểm tra V1 thỏa mãn 1~~~ += αaggz hay không
¾ Kiểm tra V2 là chữ ký dựa trên hàm logarit rời rạc của phần tử gốc thứ e.
Open : Với chữ ký s = ( )21,,~,~ VVzg trên thông điệp m, người quản lý nhóm có
thể xác định người ký bằng cách kiểm tra xem pygz ~~ = với mọi thành viên P
của nhóm với yp = logg zp và zp là khóa bí mật của thành viên P.
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 44
Chương IV
ỨNG DỤNG CHỮ KÝ NHÓM
4.1. Tìm hiểu về giao dịch điện tử
Giao dịch điện tử là giao dịch được thực hiện thông qua các phương tiện điện tử và
cũng có giá trị pháp lý như nó được ghi chép, hoặc mô tả bằng văn bản theo phương
pháp truyền thống. Có thể coi văn bản pháp lý đầu tiên ở Việt Nam về giao dịch điện
tử là quyết định của Thủ tướng Chính phủ số 44, năm 2002 về chấp nhận chữ ký điện
tử trong thanh toán liên ngân hàng. Ngày 28/10/2005, kỳ họp thứ 8 Quốc hội Khóa
XI đã thảo luận về Dự thảo Luật Giao dịch điện tử. Tham gia phiên thảo luận, Bộ
trưởng Bộ Bưu chính Viễn thông Đỗ Trung Tá đã phát biểu ý kiến về nội dung quan
trọng trong Dự thảo Luật Giao dịch điện tử “Chính phủ quy định cụ thể về việc thừa
nhận chữ ký điện tử và chứng thư điện tử nước ngoài”. Hiện nay, ngành ngân hàng
đang ứng dụng một số giao dịch điện tử như gửi, nhận, cung cấp thông tin qua mạng,
xử lý chứng từ kế toán, giao dịch giữa ngân hàng với khách hàng.
Giao dịch điện tử gồm các hình thức thông điệp dữ liệu, chữ ký điện tử, chứng thực
điện tử, giao kết và thực hiện hợp đồng điện tử...
4.2. Thẻ thanh toán điện tử
Trước đây, các hệ thống thanh toán trên thế giới phần lớn do các ngân hàng thương
mại (NHTM) tự liên kết với nhau đứng ra thành lập và vận hành, Ngân hàng Trung
ương chỉ là nơi quyết toán vốn. Những năm gần đây, khi công nghệ thông tin phát
triển nhanh, các trung tâm thanh toán cũ gặp rất nhiều khó khăn trong việc đầu tư mới
và nâng cấp kỹ thuật công nghệ, mặt khác, rủi ro trong hoạt động ngân hàng nói chung
và trong hệ thống thanh toán nói riêng thực sự đe doạ sự mất an toàn hệ thống là một
thách thức đối với các Ngân hàng Trung ương. Do vậy, nhiều Ngân hàng Trung ương
đã tự đầu tư xây dựng mới hệ thống thanh toán điện tử liên ngân hàng xử lý các khoản
thanh toán giá trị cao hoặc hợp nhất các trung tâm thanh toán thành những trung tâm
lớn hơn để quản lý và giám sát. Xuất phát từ đặc điểm, một hệ thống thanh toán hoàn
chỉnh phải hội đủ hai yếu tố. Một là, nói đến hệ hệ thống thanh toán là nói đến yếu tố
kỹ thuật (nhanh, chậm, chính xác...); Hai là, hệ thống phải quản lý được dòng chu
chuyển vốn bằng việc quản lý số dư tài khoản thanh toán, quyết toán, bù trừ.
Chữ ký nhóm có rất nhiều ứng dụng trong thực tế như: Bỏ phiếu điện tử, thanh
toán điện tử.
Hiện nay các loại thẻ thanh toán điện tử, thẻ rút tiền tự động ATM (automated
teller machine) đã trở thành phổ biến trên thế giới và cũng đang rất phát triển tại Việt
Nam. Tuy nhiên nếu mỗi ngân hàng đều phát hành một loại thẻ riêng thì chi phí bỏ ra
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 45
sẽ rất cao, và người tiêu dùng khi muốn thanh toán hoặc rút tiền sẽ phải tìm đến đúng
điểm (pos) cho phép của ngân hàng đó mới có thể thực hiện giao dịch. Điều này sẽ gây
cản trở trong việc phát triển các hệ thống thanh toán trực tuyến, rút tiền tự động…
Chính vì thế mà việc đòi hỏi có một loại thẻ chung giữa các ngân hàng, và các máy
kiểm tra thẻ, máy rút tiền tự động có thể thực hiện giao dịch đối với thẻ của các ngân
hàng. Chữ ký nhóm sẽ được ứng dụng trong trường hợp này.
Một liên minh ngân hàng (hay một nhóm các ngân hàng) trong đó mỗi ngân hàng
là một thành viên trong nhóm đó với người quản lý nhóm là một ngân hàng trung tâm (
phải là ngân hàng có rất uy tín và thường là ngân hàng trung ương ).
Ngân hàng trung tâm sẽ tạo ra các khóa bí mật và khóa công khai của nhóm, tạo
các khóa bí mật cho các ngân hàng thành viên. Khi đó các ngân hàng sẽ tạo trên thẻ
thanh toán do ngân hàng mình phát hành dựa trên khóa bí mật của mình. Khi một
người tiêu dùng có thẻ của liên minh ngân hàng đó, anh ta có thể thanh toán, rút
tiền,…tại các địa điểm hỗ trợ của liên minh ngân hàng. Các máy kiểm tra thẻ sẽ kiểm
tra chữ ký của ngân hàng phát hành trên thẻ đó, xem thẻ có hợp lệ hay không, và sẽ
đưa ra quyết định thực hiện giao dịch.
Khóa công khai của liên minh ngân hàng sẽ tuyến tính theo số lượng của các ngân
hàng thành viên.
Bất kì sự liên minh nào trong liên minh ngân hàng (không bao gồm ngân hàng
trung tâm) đều không thể biết được khóa bí mật của ngân hàng khác, do đó sẽ không
thể làm giả được thẻ của ngân hàng khác.
Cùng với sự phát triển của thế giới thương mại điện tử cũng đang rất được quan
tâm và phát triển, một số công ty thực hiện bán hàng trực tuyến qua mạng do đó việc
áp dụng chữ ký nhóm là rất hữu ích, giảm tiện, kinh tế hơn, thuận tiện cho người sử
dụng và rất cần thiết.
4.3.Việc ứng dụng và phát triển công nghệ tại Việt Nam hiện nay
Công ty Cổ phần Chuyển mạch Tài chính Quốc gia Việt Nam (Banknetvn) được
Thống đốc NHNN (ngân hàng nhà nước) Việt Nam cấp Giấy phép hoạt động ngày
09/07/2004 và khai trương hoạt động vào ngày 09/08/2004. Banknetvn được thành lập
trên cơ sở góp vốn của các cổ đông và có số vốn điều lệ là 94,5 tỷ đồng. Hiện nay
Banknetvn có 8 thành viên cổ đông sáng lập, bao gồm: Ngân hàng Nông nghiệp và
Phát triển nông thôn Việt nam (VBARD), Ngân hàng Đầu tư và Phát triển Việt nam
(BIDV), Ngân hàng Công thương Việt nam (ICB), Ngân hàng Sài gòn Thương tín
(Sacombank), Ngân hàng Sài gòn Công thương (Saigonbank), Ngân hàng Á Châu
(ACB), Ngân hàng Đông Á (EAB) và Công ty Điện toán và truyền số liệu (VDC).
Banknetvn hoạt động theo luật doanh nghiệp và các luật chuyên Ngành liên quan.
Mục tiêu hoạt động kinh doanh chính là thực hiện kết nối các hệ thống thanh toán thẻ
ngân hàng, thẻ thanh toán giữa các ngân hàng được phép phát hành, chấp nhận, thanh
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 46
toán thẻ và các tổ chức khác được phép cung ứng dịch vụ thanh toán; thực hiện thanh
toán bù trừ đối với các giao dịch thanh toán thẻ ngân hàng và cung ứng các dịch vụ có
liên quan trong lĩnh vực thẻ thanh toán.
Tình hình về phát hành thẻ và dịch vụ ATM ở các Ngân hàng thương mại ở
Việt Nam
Vài năm gần đây, với sự phát triển của công nghệ trên toàn thế giới và bằng những
nỗ lực của mình, Việt Nam đã ứng dụng được nhiều công nghệ mới, tiên tiến và đã có
những thành quả đáng ghi nhận trong lĩnh vực thẻ thanh toán. Tuy nhiên, việc sử dụng
công nghệ mới trong phương thức thanh toán không dùng tiền mặt Việt Nam còn hạn
chế, đơn giản với doanh số chưa nhiều. Về lĩnh vực thẻ, các Ngân hàng Việt Nam mới
đang phát triển hệ thống thẻ từ, trong khi trên thế giới các Ngân hàng đã và đang
chuyển sang hệ thống thẻ thông minh theo chuẩn EMV (Europay, Mastercard và Visa)
Những máy giao dịch tự động (ATM) và những chiếc thẻ ATM đầu tiên ở Việt
Nam được triển khai trong một dự án do Ngân hàng Nhà nước Việt nam chủ trì từ năm
1996. Vào thời gian đó ATM và thẻ ATM là những thứ rất lạ đối với thị trường Việt
Nam. Có thể nói, khi đó những người hiểu biết về ATM và thẻ ATM rất ít ỏi, hơn nữa,
những điều kiện cần có để phát triển dịch vụ ATM vào thời gian này cũng chưa có gì.
Vietcombank là Ngân hàng thương mại đầu tiên thực hiện việc thử nghiệm này. Và
trong khoảng thời gian 5 năm 1996-2000 chỉ có một vài ngân hàng lớn tiếp tục thực
hiện việc nghiên cứu, thử nghiệm dịch vụ ATM. Vào thời kỳ này số lượng ATM ở
Việt nam còn khá ít, tổng cộng chỉ vài chục chiếc. Thẻ ATM phát hành chủ yếu cho
cán bộ ngân hàng (để thí điểm) là chính. Ngoài thẻ ATM một số ngân hàng có dịch vụ
chấp nhận thanh toán thẻ tín dụng quốc tế (Visa, MasterCard v.v.) nhưng đều thực
hiện bằng phương pháp thủ công. Smart card (thẻ thông minh), một dạng ví điện tử
cũng được số ít ngân hàng thử nghiệm trong phạm vi rất nhỏ. Như vậy, có thể nói giai
đoạn 1996-2000 là thời kỳ mở đầu, chủ yếu nghiên cứu, tiếp cận thị trường thanh toán
thẻ ở Việt Nam.
Từ năm 2001 đến năm 2005 chúng ta đã được chứng kiến sự phát triển vượt bậc
của thị trường thẻ thanh toán. Nhiều ngân hàng, kể cả các NHTM Nhà nước và các
NHTM cổ phần đã triển khai các dịch vụ thanh toán thẻ với việc ứng dụng công nghệ
thông tin, trang bị hệ thống công nghệ thẻ hiện đại và phát hành nhiều loại thẻ khác
nhau. Theo số liệu khảo sát của Banknetvn, vào thời điểm cuối năm 2005 ở Việt Nam
đã có khoảng 2,7 triệu thẻ thanh toán các loại được phát hành, có trên 1.700 máy ATM
và trên 9.000 điểm chấp nhận thẻ (POS) đã được lắp đặt sử dụng. Các loại thẻ thanh
toán được phát hành và sử dụng khá phong phú, bao gồm: thẻ ATM, thẻ ghi nợ, thẻ tín
dụng, thẻ nội địa, thẻ quốc tế, thẻ tiền mặt v.v. Tốc độ phát triển thẻ thanh toán trong
thời kỳ này rất cao, thường xuyên tăng từ trên 200%/năm. Các dịch vụ thanh toán dựa
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 47
trên thẻ cũng ngày được tăng cường. Nó không chỉ dừng ở dịch vụ rút tiền mặt trên
ATM mà đã mở rộng ra các dịch vụ chuyển khoản, thanh toán hàng hóa, thanh toán
hóa đơn, mua vé, thanh toán cước phí v.v. Nhiều ngân hàng đã kết nối thực hiện thanh
toán và phát hành thẻ quốc tế (Visa, MasterCard, Amex, JCB v.v.). Trong thời gian
này chủ yếu các Ngân hàng tự đầu tư phát triển dịch vụ thẻ. Điều đáng mừng là việc
nhận thức và sự chấp nhận sử dụng các dịch vụ thanh toán thẻ của nhiều tầng lớp nhân
dân, nhất là giới trẻ đã được cải thiện đáng kể. Những năm gần đây, đã có những sự
liên minh, liên kết giữa các nhóm Ngân hàng để tạo ra các mạng thanh toán thẻ rộng
hơn. Nhưng các liên minh thanh toán thẻ này còn nhỏ, lẻ và chưa đáp ứng được nhu
cầu kết nối tạo ra một mạng thanh toán thẻ chung thống nhất trong quy mô quốc gia.
Từ năm 2006 thị trường thẻ thanh toán Việt Nam tiếp tục phát triển với tốc độ cao.
Chỉ tính đến cuối tháng 8/2006 theo ước tính của Banknetvn ở Việt Nam đã có gần 4
triệu thẻ thanh toán được phát hành, trên 2.700 ATM và 12.000 POS được lặp đặt sử
dụng. Nhiều Ngân hàng tích cực ứng dụng công nghệ hiện đại, mạnh dạn đầu tư phát
triển dịch vụ thanh toán thẻ. Các dịch vụ thanh toán thẻ đã trở nên phổ biến hơn, gần
gũi, thân thiện hơn với nhiều người dân. Các Ngân hàng và liên minh thẻ cũng đang
xích lại gần nhau hơn. Chắc chắn một mạng thanh toán thẻ chung cho tất cả các ngân
hàng sẽ được hình thành trong thời gian không xa. Bởi theo dự báo chủ quan của
chúng tôi thị trường thẻ Việt Nam sẽ còn phát triển mạnh trong thời gian ít nhất là 5
năm tới.
Với phương châm “đi tắt, đón đầu” trong lĩnh vực thanh toán bằng thẻ, Chính phủ
đã ban hành đề án thanh toán không dùng tiền mặt giai đoạn 2006 - 2010. Dự kiến, đến
năm 2010, thẻ do một ngân hàng phát hành có thể sử dụng được ở nhiều máy ATM và
POS của các ngân hàng khác.
Đề án mới về thanh toán không dùng tiền mặt còn nêu rõ, đối với khu vực dân cư
sẽ khuyến khích, tạo điều kiện cho các tổ chức cung ứng dịch vụ thanh toán tập trung
đầu tư cơ sở hạ tầng, thiết bị phục vụ cho các giao dịch thanh toán hiện đại.
Trong kế hoạch từ nay đến 2010, sẽ tập trung chủ yếu cho dịch vụ thẻ và tạo điều
kiện phát triển thanh toán qua internet, mobile, đồng thời tiếp cận nhanh chóng với
công nghệ hiện đại trên thế giới theo cách thức “đi tắt, đón đầu”.
Bên cạnh đó, Chính phủ sẽ chỉ đạo xây dựng trung tâm chuyển mạch thẻ thống
nhất, kết nối các hệ thống máy tính ATM của các liên minh thẻ hiện hành thành một
hệ thống thống nhất, nhằm tăng tính thuận tiện cho người sử dụng dịch vụ thẻ ngân
hàng. Theo đề án, thẻ do một ngân hàng phát hành có thể sử dụng ở nhiều máy ATM
và POS của các ngân hàng khác.
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 48
Một trong những mục tiêu không kém phần quan trọng của đề án là phấn đấu đến
cuối năm 2010, tất cả các Bộ, cơ quan ngang Bộ, các cấp chính quyền tỉnh, thành phố
đều thực hiện chi tiêu bằng phương tiện thanh toán không dùng tiền mặt. Từ 2011 -
2020 sẽ triển khai mở rộng đến các đối tượng là Sở, Ban, ngành, các cấp chính quyền
huyện, xã trên phạm vi toàn quốc.
Theo lộ trình, đến cuối năm 2010 sẽ có khoảng 20 triệu tài khoản cá nhân; 70% cán
bộ hưởng lương ngân sách và 50% công nhân lao động trong khu vực doanh nghiệp, tư
nhân được trả lương qua tài khoản. Đến năm 2020, sẽ là 45 triệu tài khoản cá nhân;
95% cán bộ hưởng lương ngân sách và 80% lao động được trả lương qua tài khoản.
Tại khu vực doanh nghiệp, sẽ có khoảng 80% các khoản thanh toán giữa doanh
nghiệp với nhau được thực hiện qua tài khoản tại ngân hàng và đạt 95% vào năm
2020.
Với đề án này, tương lai không xa “ví tiền” của cán bộ, viên chức và công nhân lao
động sẽ thu gọn trong 1 tấm thẻ.
4.4. Chương trình
a. Mã nguồn
#include
#include
#include
#include
#include
//==========================================
int roso(char s);
char rochu(int s);
void kyvb(char *tep);
int Kiemthu();
long int kha_nghich(long int b, long int n);
void output();
void Elgamal();
long exp_mod(long x, long b, long n);
long Extended_Euclidean(long b, long n);
int kiemtra_ngto(long pq);
long USCLN(long n,long m);
long Ktra_ngto_cungnhau(long b,long phi_N);
long Kitep(int Ki);
long Doctep(long n);
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 49
void Ky_RSA();
void chaum();
//===========================================
long int p,a,alpha,k,beta,k1;
long int delta,gamma;
int chuky[500],sl;
//===========================================
int roso(char s)
{
return s;
}
char rochu(int s)
{
return s;
}
//================ky van ban==============
void kyvb(char *tep)
{
clrscr();
char c,c1;
long int so;
int so1,so2,l,i;
FILE *f,*f1;
char *tep1;
char *s;
sl=1;
chuky[0]=gamma;
f=fopen(tep,"a+t");
if(f==NULL)
{
printf("Loi mo tep!!!");
getch();
exit(0);
}
while(!feof(f))
{
fscanf(f,"%c",&c); //doc tung ky tu trong tep.
if(c!=10)
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 50
{
so=roso(c); //lay gia tri so cua tung ky tu c.
delta=((so-a*gamma)*k1)%(p-1); //tinh gia tri ky la gamma.
delta=delta+(p-1); //vi delta<0
chuky[sl]=delta; //gia tri ky tren tung ky tu.
sl++;
}
}
fclose(f);
}
//============Ham kiem thu chu ky=================
int Kiemthu()
{
char *tep,*tep1;
char c;
int d;
long int so;
FILE *f,*f1;
printf("Nhap ten tep can kiem thu:");fflush(stdin);
gets(tep);
printf("Nhap ten tep chua chu ky can kiem thu:");fflush(stdin);
gets(tep1);
f=fopen(tep,"rt");
f1=fopen(tep1,"rt");
int kt=1;
fscanf(f1,"%2d",&sl);
fscanf(f1,"%2d\n",&gamma);
int i=1;
while(i<sl-1)
{
fscanf(f,"%c",&c);
so=roso(c);
fscanf(f1,"%3d",&d);
if((a*gamma+k*d)%(p-1)!=so)
{ kt=0;
return kt;}
i++;
}
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 51
fclose(f1);
fclose(f);
return kt;
}
//===========Tinh Kha nghich ================
long int kha_nghich(long int b, long int n)
{
long int n0, b0;
long int t, t0, temp, q, r;
n0=n; b0=b; t0=0; t=1;
q=floor(n0/b0);
r=n0-q*b0;
while(r>0){
temp=t0-q*t;
if (temp < 0)
temp = n- ((-temp) % n);
else
temp = temp % n;
t0=t;
t=temp;
n0=b0;
b0=r;
q=floor(n0/b0);
r=n0-q*b0;
}
if(b0!=1)
{
printf("Khong co a"); return 0;}
else return(t%n);
}
//===================================================
void output()
{
char c;
char *tep;
FILE *f;
printf("Nhap ten tep can luu chu ky:");fflush(stdin);
gets(tep);
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 52
f=fopen(tep,"wt");
if(f==NULL)
{
printf("\nLoi mo tep!!!!!!");
getch();
exit(0);
}
fprintf(f,"%d",sl);
fprintf(f," %d\n",chuky[0]);
for(int i=1;i<sl;i++)
{
fprintf(f," %2d",chuky[i]);
}
fclose(f);
}
//=============Hàm chinh==============================
void Elgamal()
{
printf("\n\n =====* CHU KY ELGAMAL *======");
long int x,y;
int ch;
char *tep,*tep1;
FILE *f,*f1;
char c;
printf("\n\nNhap so nguyen to p:");scanf("%ld",&p);
printf("Nhap a:");scanf("%ld",&a);
printf("Nhap alpha:");scanf("%ld",&alpha);
printf("Nhap khoa k:");scanf("%ld",&k);
beta=exp_mod(a,alpha,p);
gamma=exp_mod(k,alpha,p);
k1=kha_nghich(k,p-1);
while(1)
{
printf("\n\nCAC LUA CHON CHO CHU KY SO ELGAMAL\n");
printf("[1].Ky \n");
printf("[2].Hien thi \n");
printf("[3].Kiem thu\n");
printf("[0].Thoat!!\n");
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 53
printf("\n\nMoi ban chon:");scanf("%d",&ch);
switch(ch)
{
case 1:{
printf("Nhap ten tep:");fflush(stdin);
gets(tep);
kyvb(tep);
output();
}break;
case 2:{
printf("Nhap ten can hien thi:");fflush(stdin);
gets(tep);
printf("Nhap tep ten chua chu ky tuong ung:");fflush(stdin);
gets(tep1);
f=fopen(tep,"r+t");
int d;
printf("\n\n VAN BAN\n\n");
while(!feof(f))
{
fscanf(f,"%c",&c);
printf("%c",c);
}
f1=fopen(tep1,"r+t");
printf("\n\n CHU KY\n\n");
fscanf(f1,"%d",&sl);
fscanf(f1,"%d",&gamma);
printf("do dai xau:%2d" "gia tri gamma:%2d\n",sl,gamma);
for(int i=0;i<sl-1;i++)
{
fscanf(f1,"%d",&d);
printf(" %2d",d);
}
fclose(f1);
fclose(f1);
}break;
case 3:{
if(Kiemthu()==1)printf("Chu ky dung!!");
else printf("Chu ky gia!!");
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 54
}
case 0:break;
}
if(ch==0) break;
}
getch();
}
//=========== Tinh Mod ============
long exp_mod(long x, long b, long n)
{
long a = 1l, s = x;
while (b != 0) {
if (b & 1l) a = (a * s) % n;
b >>= 1;
if (b != 0) s = (s * s) % n;
}
if (a < 0) a += n;
return a;
}
//============= Tinh theo Euclidean mo rong ===========
long Extended_Euclidean(long b, long n)
{
long b0 = b, n0 = n, t = 1, t0 = 0, temp, q, r;
q = n0 / b0;
r = n0 - q * b0;
while (r > 0) {
temp = t0 - q * t;
if (temp >= 0) temp = temp % n;
else temp = n - (- temp % n);
t0 = t;
t = temp;
n0 = b0;
b0 = r;
q = n0 / b0;
r = n0 - q * b0;
}
if (b0 != 1) return 0;
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 55
else return t % n;
}
//======================================================
void chaum()
{
printf("\n\n =====* GIAO THUC CHOI BO *=====");
long a0, a1 = 144, a2 = 874, b1 = 1873, b2 = 2345;
long alpha = 25, beta = 1866, gamma1 = 5065;
long gamma2 = 5076, p = 5087, q = (p - 1) >> 1;
long r, s, x = 4785, y1 = 2219, y2 = 458, z1, z2;
r = (gamma1 * exp_mod(gamma2, x, p)) % p;
s = (exp_mod(alpha, y1, p) * exp_mod(beta, y2, p)) % p;
if (r == s)
printf("\nChu ky duoc chap nhan\n");
else
printf("\nChu ky khong duoc chap nhan\n");
z1 = (a1 + x * b1) % q;
z2 = (a2 + x * b2) % q;
if (z2 > y2)
a0 = ((y1 - z1) * Extended_Euclidean(z2 - y2, q)) % q;
else
a0 = ((z1 - y1) * Extended_Euclidean(y2 - z2, q)) % q;
if (a0 < 0) a0 += q;
printf("alpha = %ld\n", alpha);
printf("beta = %ld\n", beta);
printf("p = %ld\n", p);
printf("q = %ld\n", q);
printf("gamma1 = %ld\n", gamma1);
printf("gamma2 = %ld\n", gamma2);
printf("a1 = %ld\n", a1);
printf("a2 = %ld\n", a2);
printf("b1 = %ld\n", b1);
printf("b2 = %ld\n", b2);
printf("x = %ld\n", x);
printf("y1 = %ld\n", y1);
printf("y2 = %ld\n", y2);
printf("sig(%ld) = (%ld, %ld)\n", x, z1, z2);
printf("a0 = %ld\n", a0);
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 56
if (beta == exp_mod(alpha, a0, p))
printf("a0 duoc xac nhan\n");
else
printf("a0 khong duoc chap nhan\n");
getch();
}
//============================================================
======
int kiemtra_ngto(long pq)
{
for(long i=2;i<=(long)sqrt(pq);i++)
if(pq%i==0)
{
printf("\n\n Khong phai so nguyen to!\n\nMoi ban nhap lai!");
return 0;
}
return 1;
}
//============================================================
======
long USCLN(long n,long m)
{
while(m!=0&&n!=0)
if(n>m) n=n-m;
else m=m-n;
if(n==0) return m;
else return n;
}
//============================================================
======
long Ktra_ngto_cungnhau(long b,long phi_N)
{
if(USCLN(b,phi_N)!=1)
{
printf("\n\nb khong phai la nguyen to cung nhau voi phi_N\n\n moi chon lai
b!");
return 0;
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 57
}
else return 1;
}
//============================================================
======
long Kitep(int Ki)
{
FILE *f;
char *tentep;
long n;
mt:printf("\n\nNhap vao ten tep can Ki:");fflush(stdin);gets(tentep);
f=fopen(tentep,"a+t");
if(f==NULL)
{
printf("\n\nTep %s khong ton tai! Moi nhap lai!",tentep);
getch();
goto mt;
}
fseek(f,0,SEEK_END);
n=ftell(f);
fseek(f,n,SEEK_SET);
fprintf(f,"%d",Ki);
fclose(f);
return n;
}
//============================================================
=====
long Doctep(long n)
{
FILE *f;
char *tentep;
mt:printf("\n\nNhap vao ten tep can mo:");fflush(stdin);gets(tentep);
f=fopen(tentep,"a+t");
if(f==NULL)
{
printf("\n\nTep %s khong ton tai! Moi nhap lai!",tentep);
goto mt;
}
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 58
long ki;
fseek(f,n,SEEK_SET);
fscanf(f,"%ld",&ki);
fclose(f);
return ki;
}
//============================================================
=======
void Ky_RSA()
{
clrscr();
long x,a,b,n,phi_N,p,q;
long Kthuocvb;
int Ki,Kiem_thu;
printf("\n=====* CHU KY RSA *======");
p:printf("\nNhap so nguyen to p=");scanf("%ld",&p);
if(kiemtra_ngto(p)!=1)goto p;
q:printf("\nNhap so nguyen to q=");scanf("%ld",&q);
if(kiemtra_ngto(q)!=1)goto q;
n=p*q;
phi_N=(p-1)*(q-1);
b:printf("\nMoi ban chon so b (1<b<phi_N) sao cho gcd(b,phi_N)==1\n\n b=");
scanf("%ld",&b);
if(Ktra_ngto_cungnhau(b,phi_N)!=1)goto b;
a=kha_nghich(b,phi_N);
printf("\n\n LAP CHU KI ");
printf("\nKhoa bi mat dung de tao chu ki la K1(a)=%ld",a);
printf("\nNhap vao so de lap chu ki so x=");scanf("%ld",&x);
Ki=exp_mod(x,a,n);
printf("\nVoi so x ta tao duoc ra chu Ki la :%d",Ki);
Kthuocvb=Kitep(Ki);
printf("\nVan ban da duoc ki!");
printf("\n\n KIEM THU CHU KI ");
printf("\nKiem thu voi khoa cong khai la K2(b,n)=(%ld,%ld)",b,n);
Kiem_thu=Doctep(Kthuocvb);
printf("\nChu ki duoc lay tu tep la:%d",Kiem_thu);
printf("\nKiem thu chu ki so ta duoc x=%d ",exp_mod(Kiem_thu,b,n));
if(exp_mod(Kiem_thu,b,n)==x)
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 59
printf("\n\n CHU KI TREN LA DUNG!");
else
printf("\n\n KHONG PHAI LA CHU KI!");
getch();
}
//============================================================
======
void menu()
{
int c;
while(1)
{
clrscr();
printf("\n\n =====* CHUONG TRINH CHU KY SO *=======");
printf("\n\n [1].CHU KY RSA");
printf(" [2].CHU KY ELGAMAL");
printf("\n [3].GIAO THUC CHOI BO");
printf(" [4].THOAT KHOI CHUONG TRINH");
printf("\n\n MOI BAN CHON:");scanf("%d",&c);
switch(c)
{
case 3:
chaum();
break;
case 4:
return;
case 2:
Elgamal();
break;
case 1:
Ky_RSA();
break;
}
}
}
//===========================================
void main()
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 60
{clrscr();
menu();
}
b. Kết quả chương trình
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 61
Kết luận
Ngày nay, cùng với sự phát triển của khoa học công nghệ hiện đại và Công nghệ
thông tin, ngành mật mã đã có những bước phát triển mạnh mẽ vượt bậc và đạt được
nhiều kết quả lý thuyết sâu sắc đã đặt nền móng cho việc phát triển các giải pháp bảo
mật, an toàn thông tin trong mọi lĩnh vực hoạt động của con người. Đặc biệt là những
ưu điểm nổi bật của chữ ký số. Chữ ký số được biết đến khi sự trao đổi thông tin ngày
càng phổ biến trên các mạng truyền thông ở nơi mà chữ ký tay không thể phát huy tác
dụng.
Trong lĩnh vực ngân hàng, CNTT và hội nhập kinh tế quốc tế đã dẫn đến sự bùng
nổ về các loại hình dịch vụ. Ngoài việc góp phần giảm tỉ trọng tiền mặt trong lưu
thông, các hình thức dịch vụ mới như thẻ tín dụng, máy rút tiền mặt ATM... đã làm
cho cầu tiền phản ứng một cách nhanh hơn trước các diễn biến của lãi suất, tức là đã
làm tăng độ co dãn của cầu tiền đối với lãi suất. Một cách tổng quát hơn, việc đổi mới
công nghệ ngân hàng trên cơ sở ứng dụng CNTT đã góp phần thúc đẩy sự phát triển
của thị trường tài chính, đồng thời đẩy nhanh tốc độ chu chuyển của các luồng vốn,
làm cho cung cầu tiền tệ trở nên khó dự báo hơn, cơ chế truyển tải chính sách tiền tệ
nhạy cảm hơn. Trong bối cảnh đó, các Ngân hàng Trung ương phải đặc biệt quan tâm
đến việc ứng dụng CNTT trong các hoạt động của mình nói chung và trong điều hành
chính sách tiền tệ nói riêng.
Đề tài đã nghiên cứu và giới thiệu một số sơ đồ chữ ký nhóm được đưa ra từ trước
tới nay, cùng với những ứng dụng hữu ích của chữ ký nhóm trong việc tạo ra một thẻ
chung của liên minh các ngân hàng nhằm bảo mật thông tin và xác thực thông tin qua
mạng.
Chữ ký nhóm là một công cụ trợ giúp đắc lực cho việc toàn vẹn thông tin và xác
thực thông tin cho những giao dịch trực tuyến.
Do hạn chế về thời gian và điều kiện, việc nghiên cứu đề tài mới chỉ là cơ bản. do
đó sẽ khó có thể tránh khỏi một vài thiếu sót, rất mong được sự đóng góp ý kiến của
quý thầy, cô và các bạn.
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 62
Tài liệu tham khảo
Lý thuyết mật mã và an toàn thông tin – Phan Đình Diệu – NXB Đại Học Quốc
Gia Hà Nội 2002
Giáo trình an toàn và bảo mật thông tin trong các hệ thống điều hành sản xuất –
Sở bưu chính viễn thông 2005
Jan Camenisch, Jens Groth, Group Signatures : Better Efficiency and New
Theoritical Aspects
David Chaum, Hans van Antwerpen. Undeniable Signature.CRYPTO ’89
tr 212 – 216.
David Chaum, van Heyst. Group signature. Advances in Cryptology –
EUROCRYPT ’91,1991 tr 257 – 265
Jan Camenisch. Efficient and Gneralize Group Signatures.
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 63
MỤC LỤC
LỜI NÓI ĐẦU ................................................................................................ 1
Chương I .............................................................................................................................. 2
CÁC KHÁI NIỆM CƠ BẢN .......................................................................... 2
1.1 Cơ sở toán học ............................................................................................................... 2
1.1.1. Ước số - Bội số .......................................................................................................... 2
1.1.2. Số nguyên tố .............................................................................................................. 2
1.1.3. Khái niệm nhóm ........................................................................................................ 2
1.1.4. Nhóm hữu hạn ........................................................................................................... 2
1.1.5. Nhóm con .................................................................................................................. 3
1.1.6. Nhóm Cyclic .............................................................................................................. 3
1.1.7. Các thuật toán trong Z ............................................................................................... 3
1.1.9. Thuật toán Euclide mở rộng ...................................................................................... 4
1.1.10. Định nghĩa hàm Φ Euler .......................................................................................... 4
1.1.11. Đồng dư thức ........................................................................................................... 4
1.1.12. Số nghịch đảo .......................................................................................................... 4
1.1.13. Nhóm nhân Z*n ....................................................................................................... 5
1.1.14. Định nghĩa thặng dư bậc 2 ....................................................................................... 5
1.1.15. Phần dư China CRT ( Chinese Remainder Theorem) ............................................. 5
1.1.16. Độ phức tạp tính toán .............................................................................................. 5
1.1.17. Các thuật toán trong Zn ........................................................................................... 6
1.1.18. Thuật toán ( Tính các nghịch đảo trong Zn ) ........................................................... 6
1.1.19. Hàm một phía - Hàm một phía có cửa sập .............................................................. 8
1.2 Tìm hiểu về mật mã ....................................................................................................... 8
1.2.1. Mã cổ điển ................................................................................................................. 9
1.2.1.1. Mã dịch chuyển .......................................................................................... 10
1.2.1.2. Mã thay thế ................................................................................................. 11
1.2.1.3. Mã Affine ................................................................................................... 12
1.2.1.4. Mã Vingenere ............................................................................................. 13
1.2.1.5. Mã Hill ........................................................................................................ 13
1.2.1.6. Mã hoán vị .................................................................................................. 15
1.2.2. Mã khóa công khai .................................................................................................. 16
1.2.2.1. Mã RSA ...................................................................................................... 17
1.2.2.2. Mã Elgamal ................................................................................................ 18
Chương II ........................................................................................................................... 20
CHỮ KÍ ĐIỆN TỬ ....................................................................................... 20
2.1. Tìm hiểu về chữ ký điện tử ( electronic signature ) .................................................... 20
2.1.1. Khái quát về chữ ký điện tử ? .................................................................................. 20
2.1.2. Định nghĩa về sơ đồ ký điện tử ................................................................................ 21
2.1.3. Sơ đồ chữ ký RSA ................................................................................................... 22
2.1.4. Sơ đồ chữ ký Elgamal .............................................................................................. 23
2.1.5. Sơ đồ chữ ký DSS ................................................................................................... 24
2.2. Chữ ký không thể chối bỏ ........................................................................................... 25
2.3. Chứng minh không tiết lộ thông tin ............................................................................ 26
2.3. Vấn đề ký số trên đại diện văn bản ............................................................................. 27
2.3.1. Sơ lược về hàm băm (Hash Function) ..................................................................... 28
2.3.1.1. Giới thiệu .................................................................................................... 28
Đồ án tốt nghiệp Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử
Sinh viên: Phạm Thị Hiểu Lớp CT702 64
2.3.1.2. Định nghĩa hàm Hash ................................................................................. 28
2.3.1.3. Tính chất của hàm băm ............................................................................... 29
2.3.1.4. Thuật toán MD5 ......................................................................................... 29
2.4. Xác thực ...................................................................................................................... 30
Chương III ......................................................................................................................... 32
CHỮ KÝ NHÓM .......................................................................................... 32
3.1. Khái niệm về chữ ký nhóm( Groups Signature ) ....................................................... 32
3.2. Những đặc điểm của chữ ký nhóm ............................................................................. 32
3.2.1. Ta có hệ chữ ký nhóm ............................................................................................. 32
3.2.2. Một sơ đồ chữ ký nhóm gồm thành phần cơ bản ................................................... 33
3.2.3. Một sơ đồ chữ ký nhóm thường bao gồm 5 thủ tục ............................................... 33
3.2.4. Hiệu quả của chữ ký nhóm ...................................................................................... 34
3.2.5. Việc đảm bảo an ninh đối với chữ ký nhóm. ........................................................... 34
3.3. Các sơ đồ chữ ký nhóm của David Chaum và Van Heyst .......................................... 35
3.3.1. Sơ đồ chữ ký nhóm thứ nhất. ................................................................................... 35
3.3.2. Sơ đồ chữ ký nhóm thứ hai ...................................................................................... 35
3.3.2.1. Giao thức xác nhận ..................................................................................... 36
3.3.2.2. Giao thức chối bỏ ....................................................................................... 37
3.3.3. Sơ đồ chữ ký nhóm thứ ba ....................................................................................... 41
3.3.3.1. Vấn đề “ mở ” chữ ký ................................................................................. 41
3.3.3.2. Nhận xét ...................................................................................................... 41
3.4. Sơ đồ chữ ký nhóm của Jan Camenish và Stadler ...................................................... 41
3.4.1. Một số khái niệm cần thiết ...................................................................................... 42
3.4.2. Sơ đồ chữ ký ............................................................................................................ 43
Chương IV ......................................................................................................................... 44
ỨNG DỤNG CHỮ KÝ NHÓM .................................................................... 44
4.1. Tìm hiểu về giao dịch điện tử ..................................................................................... 44
4.2. Thẻ thanh toán điện tử ................................................................................................ 44
4.3.Việc ứng dụng và phát triển công nghệ tại Việt Nam hiện nay ................................... 45
4.4. Chương trình ............................................................................................................... 48
Kết luận ......................................................................................................... 61
Tài liệu tham khảo ....................................................................................... 62
MỤC LỤC ..................................................................................................... 63
Các file đính kèm theo tài liệu này:
- in_3_ban_844.pdf