Usbeorn

New Member

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





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 thay mặt 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

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

 

 





Để tải tài liệu này, vui lòng Trả lời bài viết, Mods sẽ gửi Link download cho bạn ngay qua hòm tin nhắn.

Ketnooi -


Ai cần tài liệu gì mà không tìm thấy ở Ketnooi, đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:


trên văn bản x=100 với số ngẫu nhiên k =213 là (γ , δ), trong đó
γ =2213mod467 = 29 và δ = (100 - 127.29).431mod466 =51.
Để kiểm thử ta tính :
β γ . γ δ = 13229.2951 ≡ 189 (mod467),
α x = 2100 ≡ 189 (mod467),
hai giá trị đó đồng dư với nhau theo mod 467, chữ ký (β γ . γ δ) = (29,51) được xác nhận là đúng.
2.1.5. Sơ đồ chữ ký DSS
Sơ đồ chữ ký DSS được cho bởi bộ năm
S = (P , A , K , S , V)
Trong đó P = Z*p , A = Z*q x Z*q
p là một số nguyên tố lớn có độ dài biểu diễn 512 ≤ lp ≤ 1024 bit (với l là bội của 64) sao cho bài toán tính logarit rời rạc trong Zp là khó.
q là một ước số nguyên tố của p -1 có lq biểu diễn cỡ 160 bit.
Gọi α Î Z*p ,α = h(p-1)/q mod p ≠ 1 với 1 a là số ngẫu nhiên (0 < a < q )
β ≡ αa modp.
k là số ngẫu nhiên (0 < k < q )
K=(K’,K''), trong đó khoá bí mật K’ = a, và khoá công khai K'' = (p,q, α, β).
Hàm ký sigk’ :
sigk’ (x,k ) = (γ , δ)
Trong đó γ = (αk modp) modq,
δ = (x + a. γ).k-1 modq.
Hàm kiểm thử verk” :
verk” (x,(γ , δ)) = đúng
↔ (modp)modq = γ ,
Trong đó e1 = x . w
và e2 = γ. w
với w = δ-1 mod q
Chú ý rằng ta phải có δ ≠ 0 mod q để có thể tính được δ-1mod q dùng trong thuật toán kiểm thử, vì vậy nếu chọn k mà được δ ≡ 0 mod q thì phải chọn lại số k khác để có được δ ≠ 0 mod q.
Cũng dễ thấy rằng sơ đồ như trên là đúng. Thực vậy nếu x, γ,δ là đúng thì :
(modp)modq = (αx.w. β γ.w mod p) mod q
= (αx.w. αa. γ.w mod p) mod q
= (α(x+a.γ).w mod p) mod q (1)
Hơn nữa w = δ-1 mod q
= (x + a.γ)-1.k mod q
→ (x + a. γ).w = k mod q (2)
Từ (1) và (″) → (mod p)mod q = (αk mod p) mod q = γ
Như vậy verk” (x,(γ ,δ)) = đúng
Ví dụ :
Giả sử p = 124540019 , q = 17389
Suy ra (p-1)/q = 7162, h = 110217528
Và Tính α = h7162 mod 124540019 = 10083255 ≠ 1, chọn a = 12496
Tính β = α12496 mod 124540019 = 119946256.
Vậy khóa công khai là: (p = 124540099, q = 17389, a = 10083255, b = 119946256)
khóa bí mật là : (a=12496)
Ký: x = 2546, k = 9557 tính k-1 mod q = 7631
γ = 100832559557 mod 124540019) mod 17389
= 27039929 mod 1738 9 = 34
δ = (7631){5246+(12496)(34)} mod 17389 = 13049
Kiểm thử:
w = δ-1 mod q = 1799
e1= x.w mod q = 5246.1799 mod 17389 = 12716
e2= γ.w mod q = 34.1799 mod 17389 = 8999
(αe1. βe2 modp)modq = (1008325512716.1199462658999mod124540019)mod 17389
= 27039929 mod 17389
= 34 = γ
Như vậy verk” = Đúng
2.2. Chữ ký không thể chối bỏ
Trong các sơ đồ chữ ký điện tử ta đã trình bày ở trên, việc kiểm thử tính đúng đắn của chữ ký là do người nhận tiến hành. Như vậy, cả văn bản cùng chữ ký có thể được sao chép và phát tán cho nhiều người mà không được phép của người gửi. Để tránh khả năng đó, người ta đưa ra sơ đồ chữ ký không thể chối bỏ được với một yêu cầu là chữ ký không thể được kiểm thử nếu không có sự hợp tác của người ký. Sự hợp tác đó được thể hiện qua giao thức kiểm thử ( giao thức xác nhận ). Khi chữ ký đòi hỏi được xác nhận bằng một giao thức kiểm thử thì một vấn đề nảy sinh là làm sao có thể ngăn cản người ký chối bỏ một chữ ký mà anh ta đã ký? Để đáp ứng yêu cầu đó, cần có thêm một giao thức chối bỏ, thông qua giao thức này, người ký có thể chứng minh một chữ ký không phải là chữ ký của mình. Nếu anh ta từ chối không tham gia giao thức đó thì có bằng chứng là anh ta không chứng minh được chữ ký đó là giả mạo, tức là anh ta không chối bỏ được chữ ký của mình.
Một sơ đồ chữ ký không thể chối bỏ có 3 phần:
Một thuật toán ký
Một giao thức kiểm thử ( giao thức xác nhận )
Một giao thức chối bỏ
2.3. Chứng minh không tiết lộ thông tin
Phép chứng minh không tiết lộ thông tin đã được mô hình hóa bởi Quisquater and Guillou trong ví dụ về “ Hang động của Ali Baba”. Ví dụ này được giải thích như sau
Từ bây giờ chúng ta sẽ coi Peggy là Prover (người chứng minh), còn Victor là Verifier (người kiểm thử) như nhiều tài liệu Mật mã. Peggy(P) muốn chứng minh với Victor(V) rằng cô ta biết câu thần chú có thể mở được cánh cửa bí mật tại các điểm R-S, nhưng cô ta không muốn tiết lộ bí mật đó với Victor.
Quá trình đến nơi đó diễn ra như sau: Victor đi tới P và đợi đến khi Peggy đi khỏi R hay S. Sau đó Victor di chuyển đến Q và gọi Peggy ra ngoài từ bên trái hay bên phải của đường hầm( kỹ thuật cut and choose). Nếu Peggy không biết câu thần chú, cô ta chỉ có 50% khả năng ra ngoài từ bên đúng.
Giao thức có thể được lặp lại nhiều lần đến khi Victor tin rằng Peggy đã biết câu thần chú. Nếu giao thức được lặp lại k lần, xác suất lừa gạt của Peggy là 2k. Và nó không có nghĩa là giao thức đã được lặp bao nhiêu lần. Victor vẫn không biết được bí mật.
Ý nghĩa chính ẩn trong nguyên nhân là: Peggy muốn chứng minh một sự thật hiển nhiên F1 nhưng cô ta không muốn tiết lộ sự chứng minh này. Vì thế cô ta đi tìm những sự thật F2 khác, mà có thể tiết lộ công khai, như là F2 là ĐÚNG NẾU F1 ĐÚNG( điều kiện cần thiết). Vì thế cô ta “ Thay thế ” phép chứng minh của F1 chỉ bằng chứng minh F2. Trong ví dụ, F1 là câu thần chú bí mật,và F2 là khả năng xuất hiện từ mọi phía của đường hầm. Nếu Victor đồng rằng F2 không thể đúng nếu F1 không đúng, sau đó giao thức có thể tiến hành.
2.4. Vấn đề ký số trên thay mặt văn bản
Khái niệm : Việc sử dụng các hệ mật mã và các sơ đồ chữ ký số thường là mã hóa và ký số trên từng bit của thông tin, thời gian để mã hóa và ký sẽ tỷ lệ thuận với dung lượng của thông tin. Thêm vào đó có thể xảy ra trường hợp với nhiều bức thông điệp đầu vào khác nhau, sử dụng hệ mật mã, sơ đồ ký số giống nhau ( có thể khác nhau ) thì cho ra kết quả bản mã, bản ký số giống nhau. Điều này sẽ dẫn đến một số rắc rối về sau cho việc xác thực thông tin.
Với các sơ đồ ký số, chỉ cho phép ký các thông điệp ( thông tin ) có kích thước nhỏ và sau khi ký, bản ký số có kích thước gấp đôi bản thông điệp gốc ( trong trường hợp của sơ đồ ký số DSS ). Trong khi đó, trên thực tế, ta cần ký các thông điệp có kích thước lớn hơn nhiều, chẳng hạn vài chục Megebyte, hơn nữa dữ liệu truyền qua mạng không chỉ là bản thông điệp gốc, mà còn bao gồm cả bản ký số (có dung lượng gấp đôi bản thông điệp gốc ), để đáp ứng việc xác thực sau khi thông điệp đến người nhận.
Một cách đơn giản để giải bài toán (với thông điệp vài chục Megabyte ) này là chặt thông điệp thành nhiều đoạn 160 bit sau đó ký lên các đoạn đó độc lập nhau. Nhưng biện pháp này có một số vấn đề khi tạo ra chữ ký số :
Thứ nhất : Với một thông điệp có kích thước a thì sau khi ký kích thước của chữ ký sẽ là 2a (trong trường hợp chữ ký số DSS)
Thứ hai : Với các chữ ký “an toàn ” thì tốc độ chậm vì chúng dùng nhiều phép tính số học phức tạp như số mũ modulo
Thứ ba : Vấn đề nghiêm trọng hơn đó là kết quả sau khi ký, nội dung của thông điệp có thể bị xáo trộn các đoạn với nhau, hay một số đoạn trong chúng có thể bị mất mát, trong khi người nhận cần xác minh lại thông điệp. Ta cần bảo vệ tính toàn vẹn của thông điệp.
Giải pháp cho các vấn đề trên là dùng hàm băm để trợ giúp cho việc ký số. Các thuật toán băm với đầu vào là các bức thông điệp có dung lượng tùy ý, các bức thông điệp có thể là dạng văn bản, âm thanh, hình ảnh, và với các giải thuật toán băm : MD2, MD4, MD5, SHA do các bản băm có kích thước cố định: 128 bit với dòng MD, 160 bit với dòng SHA.
Như vậy, bức thông điệp kích thước tùy ý sau khi băm sẽ được thu gọn thành các văn bản – được gọi là văn bản thay mặt - có kích thước cố định (128 bit hay 160 bit) . Với mỗi thông điệp đầu vào chỉ có thể tính ra được một văn bản thay mặt duy nhất. Giá trị băm được coi là đặc thù của thông điệp, giống như dấu vân tay của mỗi người. Hai thông điệp khác nhau chắc chắn có hai văn bản thay mặt khác nhau. Khi đã có văn bản thay mặt duy nhất cho bức thông điệp, áp dụng các sơ đồ chữ ký số ký trên văn bản thay mặt đó.
2.4.1. Sơ lược về hàm băm (Hash Function)
2.4.1.1. Giới thiệu
Theo các sơ đồ chữ ký ở trên thì chữ ký của thông điệp cũng có độ dài bằng độ dài của thông điệp, đó là một điều bất tiện. Ta mong muốn như trong trường hợp chữ ký viết tay, chữ ký có độ dài ngắn và hạn chế cho dù văn bản có độ dài bằng bao nhiêu. Vì chữ ký số được ký cho từng bit của thông điệp, nếu muốn chữ ký có độ dài hạn chế trên thông điệp có độ dài tuỳ ý thì ta phải tìm cách rút gọn độ dài thông điệp. Nhưng bản thân thông điệp không thể rút ngắn được, nên chỉ còn cách là tìm cho mỗi thông điệp một thông điệp thu gọn có độ dài hạn chế và thay việc ký trên thông điệp, ta ký trên thông điệp thu gọn.
Do vậy các hàm băm đóng vai trò cơ bản trong mã khóa công khai. Hàm băm sẽ tạo ra một đầu ra từ bản tin đầu vào. Đầu ra này được định nghĩa là một mã băm.
2.4.1.2. Định nghĩa hàm Hash
Hàm Hash là một hàm tính toán có hiệu quả khi ánh xạ các dòng nhị phân có độ dài tuỳ ý thành các dòng nhị phân có độ dài cố định nào đó.
Hàm Hash yếu: Hàm Hash được gọi là yếu nếu cho một thông điệp x thì về mặt tính toán không tìm ra được thông điệp x’ khác x sao cho :
h(x’) = h(x)
Hàm Hash mạnh: Hàm Hash được gọi là mạnh nếu về mặt tính toán không tìm ra được hai thông điệp x và x’ sao cho:
x’ ≠ x và h(x’) = h(x)
Chọn giá trị x ngẫu nhiên, x ...

 

Các chủ đề có liên quan khác

Top