Đồ án Tìm hiểu Chữ kí nhóm và ứng dụng trong giao dịch điện tử

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.

pdf65 trang | Chia sẻ: lylyngoc | Lượt xem: 2270 | Lượt tải: 1download
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:

  • pdfin_3_ban_844.pdf