Download miễn phí Luận văn Chữ ký số người xác nhận không thể chối bỏ





MỤC LỤC
Lời nhận xét
Mục lục
Đặt vấn đề 1
Chương I: Tổng quan về ngôn ngữ C 4
I.1. Lịch sử hình thành và phát triển 4
I.2. Các tính chất đặc trưng của ngôn ngữ 5 Chương II: Chữ ký số 7
II. 1. Giới thiệu chung về chữ ký số 7
II.2. Định nghĩa lược đồ chữ ký số 8
II.3. Một số lược đồ chữ ký số 9
II.3.1. Lược đồ chữ ký RSA 9
II.3.2.Lược đồ chữ ký ElGamal 11
Chương III: Hàm Hash 15
III.1. Giới thiệu 15
III.2. Định nghĩa 16
III.3. Một số hàm Hash sử dụng trong lược đồ chữ ký số 16
III.3.1.Các hàm Hash đơn giản 16
III.3.2. Kỹ thuật khối xích 18
III.3.3. Các hàm Hash mở rộng 18
III.3.4. Hàm Hash MD4 19
Chương IV: Chữ ký chống chối bỏ 25
IV.1. Giới thiệu 25 IV.2. Lược đồ chữ ký số chống chối bỏ 25
IV.2.1. Thuật toán ký 25
IV.2.2. Giao thức kiểm tra 26
IV.2.3. Giao thức chối bỏ 27
IV.3. Các định lý 29
IV.3.1. Định lý 1 29
IV.3.2. Định lý 2 30 IV.3.3. Định lý 3 31
IV.4. Vấn đề cần giải quyết 33
Chương V: Chữ ký người xác nhận được chỉ định 35
V.1. Giới thiệu 35
V.2. Hệ thống cơ sở 37
V.3. Giao thức ký 38
V.3.1. Tạo khoá 38
V.3.2. Tạo chữ ký 38
V.3.3. Giao thức kiểm tra 39
V.4. Giao thức xác nhận 40
V.5. Giao thức chuyển đổi 41
V.6. Tổng quát 42
Chương VI: Chữ ký người xác nhận không thể chối bỏ 43
VI.1. Giới thiệu 43
VI.2. Mô hình của chữ ký người xác nhận chống chối bỏ 44
VI.3. Các lược đồ chữ ký và phép chứng minh ký tương tác 46
VI.3.1. Ký hiệu 46
VI.3.2. Lược đồ chữ ký Schnorr 46
VI.3.3. Chữ ký Chaum – Petersen dựa vào đẳng thức của
thuật toán rời rạc 46
VI.3.4. Phép chứng minh ký tương tác Fujioka –
Okamoto – Ohto của đẳng thức 47
VI.4. Cấu trúc 49
VI.4.1. Tạo khoá 49
VI.4.2. Tạo chữ ký 49
VI.4.3. Kiểm tra chữ ký 49
VI.4.4. Giải thích cấu trúc của lược đồ chữ ký bằng trực giác 50
VI.5. Phép phân tích an toàn 50
VI.5.1. Chữ kýkhông thể giả mạo 51
VI.5.2. Chữ ký không thể phân biệt được 52
VI.5.3. Tính nhất quán của kiểm tra chữ ký 53
VI.6. Chữ ký người xác nhận không thể chối bỏ mù quáng và các
ứng dụng 54
VI.6.1. Cấu trúc 54
VI.6.2Lược đồ trả trước có thể leo thang 55
Kết luận 57
Tài liệu tham khảo 58
 
 
 



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đă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:

gọn được xây dựng như một sự ghép của 4 từ A, B, C, D. Các từ này gần tương tự như 4 thanh ghi trong máy tính.
Các thanh ghi có giá trị khởi tạo từ bước 1. Xử lý mảng M[] tại một thời điểm, thực hiện 16 từ của M[] và lưu trữ chúng trong mảng X[] tại bước 3. Tại bước 4 giá trị của A, B, C, D được lưu trữ trong các biến AA, BB, CC, DD. Sau đó chúng ta thực hiện 3 vòng lặp của hashing. Mỗi vòng thực hiện các phép toán số học và logic trên 16 từ của X, các toán hạng này sau khi thực hiện trong 3 vòng sẽ cho giá trị mới bằng cách cộng vào các giá trị được lưu trữ trong bước 4. Đây là phép cộng các số nguyên được rút gọn bằng phép module 232. Khi MD4 thực hiện đầy đủ thì một điều cần thiết phải tính đến đó là cấu trúc của bộ vi xử lý trong máy tính nhằm mục đích thực hiện các phép cộng chính xác nhất.
Trong 3 vòng Round1, Round2, Round3 của MD4 thực hiện các phép toán logic sau:
+ a << s: phép quay vòng dịch trái đại lượng a đi s bit, 1 Ê s Ê 32
+ỉa: phép đảo bit
+ Ù: phép and
+ Ú: phép or
+ Å: phép Xor
+ “+”: cộng 2 số nguyên theo module 232
Mỗi vòng chỉ sử dụng một trong 3 hàm f, g, h:
f(A, B, C) = (AÙB)Ú(AC)
g(A, B, C) = (AÙB)Ú(AÙC)Ú(BÙC)
h(A, B, C) = A Å B Å C
Ta ký hiệu các hằng số:
K1 = 0x5a827999
K2 = 0x6ed9eba1
Các biến Xi, i =
Bảng chân lý của 3 hàm:
A
B
C
f(A, B, C)
g(A, B, C)
h(A, B, C)
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
3 vòng Round1, Round2, Round3 được mô tả theo bảng sau:
Round1:
1
A = (A + f(B, C, D) + Xo)<<3
2
D = (D + f(A, B, C) + X1)<<7
3
C = (C + f(D, A, B) + X2)<<11
4
B = (B + f(C, D, A) + X3)<<19
5
A = (A + f(B, C, D) + X4)<<3
6
D = (D + f(A, B, C) + X5)<<7
7
C = (C + f(D, A, B) + X6)<<11
8
B = (B + f(C, D, A) + X7)<<19
9
A = (A + f(B, C, D) + X8)<<3
10
D = (D + f(A, B, C) + X9)<<7
11
C = (C + f(D, A, B) + X10)<<11
12
B = (B + f(C, D, A) + X11)<<19
13
A = (A + f(B, C, D) + X12)<<3
14
D = (D + f(A, B, C) + X13)<<7
15
C = (C + f(D, A, B) + X14)<<11
16
B = (B + f(C, D, A) + X15)<<19
Round2:
1
A = (A + g(B, C, D) + Xo + K1)<<3
2
D = (D + g(A, B, C) + X4 + K1)<<5
3
C = (C + g(D, A, B) + X8 +K1)<<9
4
B = (B + g(C, D, A) + X12 + K1)<<13
5
A = (A + g(B, C, D) + X1 + K1)<<3
6
D = (D + g(A, B, C) + X5 + K1)<<5
7
C = (C + g(D, A, B) + X8 +K1)<<9
8
B = (B + g(C, D, A) + X13 + K1)<<13
9
A = (A + g(B, C, D) + X2 + K1)<<3
10
D = (D + g(A, B, C) + X6 + K1)<<5
11
C = (C + g(D, A, B) + X10 +K1)<<9
12
B = (B + g(C, D, A) + X14 + K1)<<13
13
A = (A + g(B, C, D) + X3 + K1)<<3
14
D = (D + g(A, B, C) + X7 + K1)<<5
15
C = (C + g(D, A, B) + X11 +K1)<<9
16
B = (B + g(C, D, A) + X15 + K1)<<13
Round3:
1
A = (A + h(B, C, D) +X0 + K2)<<3
2
D = (D + h(A, B, C) + X8 + K2)<<9
3
C = (C + h(D, A, B) + X4 + K2)<<11
4
B = (B + h(C, D, A) + X12 + K2)<<15
5
A = (A + h(B, C, D) +X2 + K2)<<3
6
D = (D + h(A, B, C) + X10 + K2)<<9
7
C = (C + h(D, A, B) + X6 + K2)<<11
8
B = (B + h(C, D, A) + X14 + K2)<<15
9
A = (A + h(B, C, D) +X1 + K2)<<3
10
D = (D + h(A, B, C) + X9 + K2)<<9
11
C = (C + h(D, A, B) + X5 + K2)<<11
12
B = (B + h(C, D, A) + X13 + K2)<<15
13
A = (A + h(B, C, D) +X3 + K2)<<3
14
D = (D + h(A, B, C) + X11 + K2)<<9
15
C = (C + h(D, A, B) + X7 + K2)<<11
16
B = (B + h(C, D, A) + X15 + K2)<<15
Chương IV
Chữ Ký Chống Chối Bỏ
IV.1. Giới thiệu
Chữ ký chống chối bỏ được công bố bởi Chaum và van Antwerpen vào năm 1989. Nó có một số nét riêng mới lạ rất thú vị. Quan trọng nhất trong số đó là chữ ký không thể kiểm tra khi không có sự cộng tác của người ký, Bob.
Sự bảo vệ này của Bob đề phòng khả năng chữ ký trong tài liệu của anh ta bị sao chép và phân bố bởi thiết bị điện tử mà không có sự đồng ý của anh ta. Ví dụ, Bob có một phần mềm và chữ ký kèm theo được tạo ra nhờ thuật toán của chữ ký số thông thường. Như vậy, sẽ không tránh khỏi trường hợp phần mềm đó bị sao chép mà Bob không biết. Người mua sẽ kiểm tra chữ ký kèm theo phần mềm nhờ thuật toán kiểm tra công khai Ver và công nhận đó là chữ ký đúng. Vì như chúng ta đã biết bản sao của chữ ký số là đồng nhất với bản gốc. Đương nhiên như vậy Bob đã bị mất bản quyền. Để tránh điều bất lợi đó Bob đã dùng chữ ký số chống chối bỏ. Sự kiểm tra sẽ thành công khi thực hiện giao thức hỏi - đáp.
Lược đồ chữ ký chống chối bỏ gồm 3 phần: thuật toán ký, giao thức kiểm tra, giao thức chối bỏ.
IV.2. Lược đồ chữ ký chống chối bỏ
IV.2.1. Thuật toán ký
* Tạo khoá:
Cho p, q là các số nguyên tố lẻ sao cho p = 2q + 1 và bài toán rời rạc trên Zp là khó. Lấy a ẻ Zp* là một phần tử của bậc q (Nếu a0 là phần tử nguyên thuỷ của Zp thì a = a0(p -1)/q modp). Lấy 1 Ê a Ê q-1 và xác định: b = aa modp.
Lấy G là phân nhóm nhân của Zp* bậc q (G bao gồm các thặng dư bậc 2 theo modun p).
Lấy P = A = G, xác định:
K = { (p, a, a, b): b = aa modp}
Các giá trị p, a, b là công khai, a là bí mật.
* Tạo chữ ký:
Với K = (p, a, a, b) và x ẻ G, xác định chữ ký y trên thông báo x:
y = sigk(x) = xa modp
IV.2.2. Giao thức kiểm tra
Với x, y ẻ G, sự kiểm tra được tiến hành theo giao thức sau:
1. Alice chọn e1, e2 ngẫu nhiên, e1, e2 ẻ Zp*.
2. Alice tính c = y b modp và gửi nó cho Bob.
3. Bob tính d = c modp và gửi nó cho Alice.
4. Alice chấp nhận y là chữ ký đúng khi và chỉ khi:
d º xamodp.
* Vai trò của p, q trong lược đồ:
Lược đồ nằm trong Zp; tuy nhiên chúng ta cần tính toán trong phân nhóm nhân G của Zp* của bậc nguyên tố lẻ. Đặc biệt, chúng ta cần tính phần tử nghịch đảo theo modun ẵGẵ, điều này lý giải tại sao ẵGẵnên là nguyên tố lẻ. Nó thuận tiện nếu lấy p =2q+1 với q là nguyên tố lẻ. Trong trường hợp này, phân nhóm G là tồn tại.
*Chứng minh bước 4 của giao thức kiểm tra:
ở đây, chúng ta chứng minh rằng Alice sẽ chấp nhận chữ ký đúng. Trong các phép toán dưới đây, tất cả số mũ là biến đổi theo modun q.
Ta có: d º c modp
Mà c = y b modp
ị d º ybmodp (1)
Ta lại có: b º aamodp
ị b º a modp (2)
Tương tự ta cũng có: y = xa modp
ị y = x modp (3)
Thay (2), (3) vào (1) được:
d º xamodp. _ Đó là điều phải chứng minh.
Ví dụ: Giả sử chúng ta lấy p = 467. Từ 2 là căn nguyên thuỷ => 22 = 4 là thặng dư bậc 2 theo modun 467 và 4 là phần tử sinh của G. Lấy a = 4. Giả sử a = 101, ta có:
b = aamodp = 4101 mod467 = 449
Bob sẽ ký thông báo x = 119 với chữ ký:
y = xa modp = 119101 mod467 = 129
Giả sử Alice muốn kiểm tra chữ ký y. Alice chọn ngẫu nhiên e1 = 38, e2 = 397.
Ta có: c = y b modp = 12938 449397 mod467 = 13
Alice gửi c =13 cho Bob và Bob sẽ tính d theo:
d = c modp
ị d = 13101 mod233 mod467 (q = (p - 1)/2 = (467 –1 )/2 = 233)
ị d = 9
Alice kiểm tra chữ ký y theo bước 4. Có:
xamodp = 11938 4397 mod467 = 9
ị d º xamodp .
Do đó, Alice chấp nhận chữ ký là đúng.
IV.2.3. Giao thức chối bỏ
Một vấn đề đặt ra, nếu sự cộng tác của Bob là cần thiết trong việc kiểm tra chữ ký thì điều gì đã ngăn cản Bob từ chối chữ ký do chính anh ta tạo ra trong thời gian gần đây? Tất nhiên, Bob có thể cho rằng chữ ký đúng đó là giả mạo và từ chối kiểm tra nó hay Bob thực hiện một giao thức mà theo đó chữ ký sẽ không được kiểm tra. Vì vậy, một lược đồ chữ ký chống chối bỏ được kết hợp chặt chẽ với một giao thức chối bỏ và nhờ điều đó Bob có thể chứng minh
được rằng ch
 

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

Top