slide_chữ ký điện tử của chaum van antwerpen

44
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI Đề Tài:Chữ ký điện tử của Chaum-Van Antwerpen

Upload: tai-tran

Post on 02-Jul-2015

398 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Slide_Chữ ký điện tử của chaum van antwerpen

BỘ CÔNG THƯƠNGTRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

Đê Tai:Chữ ký điện tử của Chaum-Van Antwerpen

Page 2: Slide_Chữ ký điện tử của chaum van antwerpen

NHÓM 1

II

Chương I: HỆ MÃ HÓA CÔNG KHAI

Chương 2: CHỮ KÍ SỐ

Nội Dung Chính

I

Đê 1

III Chương 3: CHỮ KÝ KHÔNG THỂ PHỦ NHẬN

Page 3: Slide_Chữ ký điện tử của chaum van antwerpen

I

1.1 Tìm hiểu hệ mã mật khoá công khai 1.1.1 Hệ mã mật khoá công khai -Hệ mã mật khóa công khai (Phi đối xứng) là gì ?+Là một chuyên ngành của mật mã học cho phép người sử

dụng trao đổi các thông tin mật mà không cần phải trao đổi các khóa chung bí mật trước đó. Điều này được thực hiện bằng cách sử dụng một cặp khóa có quan hệ toán học với nhau là khóa công khai và khóa cá nhân (hay khóa bí mật).

+Trong mật mã học khóa công khai, khóa cá nhân phải được giữ bí mật trong khi khóa công khai được phổ biến công khai. Trong 2 khóa, một dùng để mã hóa và khóa còn lại dùng để giải mã. Điều quan trọng đối với hệ thống là không thể tìm ra khóa bí mật nếu chỉ biết khóa công khai.Một số hệ mật mã công khai : RSA, ELgamal…

Đê 1

Page 4: Slide_Chữ ký điện tử của chaum van antwerpen

I

1.1.2: Mục đích của hệ mã công khai

Cấp phát khoá riêng và khoá công khai :

Hình 1.1: Cấp phát khóa riêng khóa công khai Việc cấp phát khoá công khai và khoá bí mật thông qua các thuật toán. Thuật toán tạo ra cặp khoá bằng các phương thức toán học

Đê 1

Page 5: Slide_Chữ ký điện tử của chaum van antwerpen

• Mã hoá :

• Hình 1.2: Mã hóa thông tin

• Bob mã hóa thông tin gửi cho Alice bằng khóa công khai của Alice. Alice nhận được tin nhắn từ Bob kiểm tra tin nhắn và giải mã bằng khóa bí mật của Alice.

Đê 1 I

Page 6: Slide_Chữ ký điện tử của chaum van antwerpen

Tạo và xác thực chữ ký số :

•Hình 1.3: Tạo và xác thực chữ ký số

•S = H(m)^d mod n (Tạo chữ kí số)

Cho phép kiểm tra một văn bản có phải đã được tạo với một khóa bí mật nào đó hay không.

•Tạo chữ kí số bằng khóa bí mật của Alice.

•Và ký vào tin nhắn Alive gửi cho Bob

•Bob kiểm tra chữ ký số bằng khóa công khai của Alice:

•S^e mod n =H(m) với H(m) là giá trị sau khi băm tin nhắn Alice gửi cho Bob. Chữ ký số đúng đắn đồng nghĩa với việc các thông tin Alice gửi bob là đúng đắn.

Đê 1 I

Page 7: Slide_Chữ ký điện tử của chaum van antwerpen

• 1.1.3: Nguyên tắc hoạt động của hệ mã

• -Các yêu cầu của hệ mã khóa công khai:

• + Việc sinh Ks,Kp phải dễ dàng

• + Việc tính E(Kp,M)

• + Nếu có C=E(Kp,M) và Ks thì việc tìm bản rõ cũng là dễ

• + Nếu biết Kp thì việc dò tìm Ks là khó

• + Việc khôi phục bản rõ từ bản mã là rất khó

• -Khi A muốn truyền cho B, A sẽ sử dụng khóa Kp của B để mã hóa tin tức và truyền bản mã tới cho B, B sẽ sử dụng khóa bí mật của mình để giải mã và đọc tin.

Đê 1 I

Page 8: Slide_Chữ ký điện tử của chaum van antwerpen

• *MÔ HÌNH SỬ DỤNG CỦA HỆ MÃ KHÓA CÔNG KHAI

Mô hình 1: Sử dụng cho các hệ mã mật

+ Mô hình 2: Sử dụng cho các hệ chữ kí điện tử

Đê 1 I

Page 9: Slide_Chữ ký điện tử của chaum van antwerpen

• 1.2 Một số hệ mã mật khoá công khai

• 1.2.1 : Hệ mã RSA (Rivest-Shamir-Adleman)

• Hệ mật này sử dụng tính toán trong Zn, trong đó n là tích của 2 số nguyên tố phân

• biệt p và q. Ta thấy rằng φ(n) = (p – 1).(q – 1).

• *Định nghĩa:

• Cho n = p.q trong đó p và q là các số nguyên tố. Đặt P = C = Zn và định nghĩa:

• K = {(n, p, q, a, b): n = p.q; p, q là các số nguyên tố, a.b ≡ 1 mod φ(n)}

• Với K = (n, p, q, a, b) ta xác định: eK = xb mod n và dK = ya mod n (x, y Zn) Các giá trị n và b được công khai và các gia trị p, q, a ∈được giữ kín.

Đê 1 I

Page 10: Slide_Chữ ký điện tử của chaum van antwerpen

• *Hàm Mã Hóa : sử dụng khóa K pub

• y = e Kpub (x) =xb mod n

• x thuộc Zn = {0,1,2…n-1}

• *Hàm Giải mã: sử dụng khóa Kpr

• x =d Kpr (y) =ya mod n

• Ví dụ :

• Giả sử A muốn gửi bản rõ x = 4 tới B :

Đê 1 I

Page 11: Slide_Chữ ký điện tử của chaum van antwerpen

• -Các bước thực hiện:

• + Chọn p=3,q=11

• +Tính số module của hệ thống : n=p*q=3*11=33

• Ta thấy rằng φ(n) = (p – 1).(q – 1)=(3-1).(11-1)=20

• + Chọn ngẫu nhiên khóa mã hóa b sao cho : 1<b< φ(n) , GDC(b, φ(n))=1

• Vậy chọn b=3 , GDC(3,20)=1

• + Tìm khóa giải mã a :

• a = b-1 mod φ(n) =3-1 mod 20= 7 (thỏa mãn)

• điều kiện : b*a =1mod φ(n) với 0<a< φ(n)

• + Tìm Kpub={b,n}

• Kpub={b,n}={3,33}

• + Tìm Kpr ={a,p,q} ={7,3,11}

Đê 1 I

Page 12: Slide_Chữ ký điện tử của chaum van antwerpen

• *Hàm mã hóa : y = e Kpub (x) =xb mod n= 43 mod 33 ≡ 31 mod 33 (vì 43 =64) => y=31

• *Hàm Giải mã: sử dụng khóa Kpr

• x =d Kpr (y) =ya mod n=317 mod 33 ≡ 4 mod 33

•  

Đê 1 I

Page 13: Slide_Chữ ký điện tử của chaum van antwerpen

• *Độ an toàn của RSA:

• Độ mật của hệ RSA được dựa trên giả thiết là hàm mã eK = xb mod n là hàm một chiều. Bởi vậy thám mã sẽ khó có khả năng về mặt tính toán để giải mã một bản mã. Cửa sập cho phép N chính là thông tin về phép phân tích thừa số n (n = p.q). Vì N biết phép phân tích này nên anh ta có thể tính :

• φ(n) = (p – 1).(q– 1) và rồi tính số mũ giải mã a bằng cách sử dụng thuật toán Eculide mở rộng.

• => Nhận xét :

• Trong các hệ mã công khai thì hệ mã RSA là hệ mã được sử dụng rộng rãi nhất.Tuy nhiên do khi lqamf việc với dữ liệu đầu vào (thông điệp mã hóa,bản rõ) lớn thì khôi lượng tính toán rất lớn nên trên thực tế người ta hay dung hệ mật mã này để mã hóa các dữ liệu có kích thước nhỏ,hoặc có yêu cầu bảo mật cao.

Đê 1 I

Page 14: Slide_Chữ ký điện tử của chaum van antwerpen

• 1.2.2 : Hệ mã ELgamal (Rivest-Shamir-Adleman)

• Hệ mật mã ElGamal được T. ElGamal đề xuất năm 1985, dựa vào độ phức tạp của bài toán tính lôgarit rời rạc, và sau đó đã nhanh chóng được sử dụng rộng rãi không những trong vấn đề bảo mật truyền tin mà còn trong các vấn đề xác nhận và chữ ký điện tử.

• Bài toán logarithm rời rạc trong Zp là đối tượng trong nhiều công trình nghiên cứu và được xem là bài toán khó nếu p được chọn cẩn thận. Cụ thể là không có một thuật toán thời gian đa thức nào cho bài toán logarithm rời rạc. Để gây khó khăn cho các phương pháp tấn công đã biết, p phải có ít nhất 150 chữ số và (p – 1) phải có ít nhất một thừa số nguyên tố lớn .

• Hệ mật Elgamal là một hệ mật không tất định vì bản mã phụ thuộc vào cả bản rõ x lẫn giá trị ngẫu nhiên k do người gửi chọn. Bởi vậy sẽ có nhiều bản mã được mã từ cùng một bản rõ.

Đê 1 I

Page 15: Slide_Chữ ký điện tử của chaum van antwerpen

• *Bài toán logarithm rời rạc trong Zp:

• Đặc trưng của bài toán: l = (p, α, β) trong đó p là số nguyên tố,

• α Zp là phần tử nguyên thuỷ (hay phần tử sinh), β Zp* ={1,2,3…n-1} ∈ ∈

• =>Mục tiêu: Hãy tìm một số nguyên duy nhất a, 0 ≤ a ≤ p – 2 sao cho:

• αa ≡ β (mod p)

• Ta sẽ xác định số nguyên a=log 2 β(mod P).

• Định nghĩa mã khóa công khai Elgamal trong Zp*:

• Cho p là số nguyên tố sao cho bài toán logarithm rời rạc trong Zp là khó giải

• Cho α Zp* là phần tử nguyên thuỷ. Giả sử P = Zp*, C = Zp* x Zp*∈

• . Ta định nghĩa K = {(p, α, a, β): β ≡ αa (mod p)} Các giá trị p, α, β được công khai, còn a giữ kín.

• Với K =(p, α, a, β) và một số ngẫu nhiên bí mật k Zp – 1, ta xác định: ∈

• y = e pub(x, k) = (y1, y2).

• Trong đó: y1 = αkmod p y2 = x. βk mod p

• với y1, y2 Zp* ta xác định: dK(y1, y2) = y2(y1a) – 1 mod p ∈

Đê 1 I

Page 16: Slide_Chữ ký điện tử của chaum van antwerpen

• Các bước tiến hành:

• B1: tạo khóa

• +chọn P là nguyên tố lớn / bt logarithm rời rạc trong Zp là khó giải

• +chọn α ∈ Zp*

• +Chọn a∈ {2,3,4...p-2} làm khóa bí mật thuws1 (khóa của người nhận)

• + Tính β ≡ αa (mod p)

• +Khi đó: Kpub =(p, α, β) :khóa công khai

• Kpr=(a): khóa bí mật

• B2:Hàm mã hóa

• +Chọn ngẫu nhiên K∈ Zp-1 :

• y =e pub(x,k) =(y1,y2)

• trong đó: : y1 = αk mod p , y2 = x. βk mod p

• B3: Hàm giải mã

• với y1, y2 Zp* ta xác định: ∈ x= d Kpr (y1, y2) = y2(y1a) ^-1 mod p

Đê 1 I

Page 17: Slide_Chữ ký điện tử của chaum van antwerpen

• Ví dụ 2: với x=122

• Chuẩn bị : chọn p= 5987 , α Zp* là phần tử nguyên thuỷ nên ∈α = 2

• a =913, : β = αa mod p=2913 mod 5987 =4087

• + chọn k= 1647 (ngươi gửi chọn) khi đó tính:

• *Hàm mã hóa:

• y1 = αk mod p = 21647 mod 5987 =955

• y2 = x. βk mod p = 122*40871647 mod 5987 =3764

• *Hàm giải mã:

• x= d Kpr (y1, y2) = y2(y1a) ^-1 mod p = 3764*(955913)-1 mod 5987 = 122

• (sử dụng định lí Ơ le và thuật toán bình phương )

Đê 1 I

Page 18: Slide_Chữ ký điện tử của chaum van antwerpen

So sánh RSA EL GamalGiống nhau

* Ưu điểm:-Đều là các hệ mã mật khóa công khai.-Được xây dựng dựa trên các hàm 1 chiều.-Tính an toàn được nâng cao rõ rệt so với hệ mã mật khóa bí mật,việc phân phối khóa sẽ dễ dàng hơn,số lượng khóa hệ thống quản lí cũng ít hơn .-Xây cho các ứng dụng thương mại điện tử,dịch vụ chữ kí điện tử.* Nhược điểm:-Làm việc với các số nguyên lớn=> hạn chế về tốc độ xử lí khóa-Dung lượng bộ nhớ dành choviệc trữ khóacũng lớn

Khác nhau Ưu điểm:-là hệ mã được sử dụng rông rãi nhất dùng để mã hóa các dữ liệu có kích thước nhỏ,có yêu cầu bảo mật cao.

Ưu điểm:-so với RSA thì EL Gamal không có nhiều rắc rối về bản quyền sử dụng.Nhược điểm:-cần gấp đôi bộ nhớ để chứa bản mã so với các hệ mã khác.Do kích thước thông tin sau khi mã hóa gửi đi sẽ tăng gấp đôi so với thông tin gốc.

Đê 1 I

BẢNG SO SÁNH HỆ MÃ CÔNG KHAI ĐIỂN HÌNH:

Page 19: Slide_Chữ ký điện tử của chaum van antwerpen

• 2.1 Giới thiệu chung về chữ ký số:

• Như chúng ta đã biết, chữ ký viết tay “thường lệ” gắn với tài liệu được dùng để chỉ ra người đã ký nó. Chữ ký được sử dụng hàng ngày như viết thư, ký hợp đồng…

• Ở đây chúng ta tìm hiểu về chữ ký hoàn toàn khác đó là chữ ký số. Nó là phương pháp ký thông báo được lưu dưới dạng điện tử và thông báo được ký có thể truyền trên mạng máy tính. Chữ ký tay và chữ ký số dù có chung nhiệm vụ là ký nhưng có sự khác biệt cơ bản giữa chúng.

• Thứ nhất, về việc ký tài liệu: với chữ ký tay thì chữ ký là bộ phận vật lý của tài liệu được ký. Tuy nhiên, chữ ký số không một cách vật lý với thông báo được ký mà được gắn với thông báo theo logic, do đó thuật toán được dùng phải “trói ” chữ ký với thông báo theo một cách nào đó.

Đê 1 II

Page 20: Slide_Chữ ký điện tử của chaum van antwerpen

• Thứ hai, về việc kiểm tra: chữ ký tay được kiểm tra bằng cách so sánh nó với những cái khác những chữ ký đã được xác thực. Ví dụ, một người ký một tấm séc mua hàng, người bán hàng phải so sánh chữ ký trên tấm séc với chữ ký nằm sau thẻ tín dụng để kiểm tra.

• Tuy nhiên, phương pháp này không an toàn lắm vì nó tương đối dễ đánh lừa bởi chữ ký của người khác. Khác với chữ ký tay, chữ ký số có thể được kiểm tra bằng cách dùng thuật toán kiểm tra công khai đã biết. Vì vậy bất kì người nào đều có thể kiểm tra chữ ký số, và việc sử dụng lược đồ ký an toàn sẽ ngăn chặn khả năng đánh lừa. Điều khác nhau cơ bản giữa chữ ký tay và chữ ký số là “bản sao” thông báo số được ký là đồng nhất với bản gốc. Trong khi đó, bản sao tài liệu giấy đã ký thường là khác với bản gốc. Điều này có nghĩa là phải cẩn thận để ngăn chặn thông một thông báo đã ký số bị sử dụng lại.

Đê 1 II

Page 21: Slide_Chữ ký điện tử của chaum van antwerpen

• 2.2  Định nghĩa lược đồ chữ ký: 

• -Là một định danh điện tử được tạo ra bởi máy tính được các tổ chức sử dụng nhằm đạt được tính hiệu quả và có hiệu lực như các chữ kí tay.

• - Định nghĩa : Lược đồ chữ ký là một bộ năm phần tử (P,A,K,S,V) thỏa mãn các điều kiện sau:

• 1. P _ là một tập hữu hạn các thông báo.

• 2. A _ tập hữu các chữ ký có thể.

• 3. K _ tập hữu hạn các khóa, không gian khóa.

• 4. Với mỗi k K, sig∈ ∃ k S và ver∈ k V ∈

• Mỗi sigk: P→ A, verk : P * A→ {true, false} là những hàm sao cho mỗi bức điện x P và mỗi chữ ký y A thỏa mãn: ∈ ∈

• Ver(x,y) = True, khi y= sig(x)

• False, khi y # sig(x)

Đê 1 II

Page 22: Slide_Chữ ký điện tử của chaum van antwerpen

• Lược đồ chữ ký RSA được định nghĩa như sau:

• Tạo khóa: Sơ đồ chữ ký cho bởi bộ năm (P,A,K,S,V)

• Cho n=p.q; với mỗi p,q là các số nguyên tố lớn khác nhau φ(n) = (p - 1)(q - 1).

• Cho P = A = Zn và định nghĩa:

• K là tập các khóa, K=(n.p,q,a,b) , K=(K’,K’’); với K’=a; K’’=(n,b)

• a,b Zn*, thỏa mãn ab ≡ 1mod φ(n). ∈

• Các giá trị n,b là công khai, các giá trị p,q,a là các giá trị bí mật.

• Tạo chữ ký : Với mỗi K=(n.p,q,a,b) xác định: : Sigk’(x)= xa mod n

• Verk’’(x,y)= TRUE x ≡ y⇔ b mod n; x, y Zn. ∈

• Kiểm tra chữ ký: Verk’’(x,y)= TRUE x ≡ y⇔ b mod n; x, y Zn. ∈

• Giả sử A muốn gửi thông báo x, A sẽ tính chữ ký y bằng cách :

• y=sigk’(x)= xa mod n (a là tham số bí mật của A)

Đê 1 II

Page 23: Slide_Chữ ký điện tử của chaum van antwerpen

• Ví dụ:

• A dùng lược đồ chữ ký số RSA với n=247,(p=13,q=19);

• φ(n) = 12.18 = 216. Khóa công khai của A là b=7.

• ⇒ a = 7-1mod216 = 31.

• A công khai (n,b) = (247,7)

• A ký trên thông báo x=100 với chữ ký:

• y = xa mod n = 10031 mod247 = 74.

• A gửi cặp (x,y) = (100,74) cho B, B kiểm tra bằng cách sử dụng khóa công khai của A như sau:

• x = yb modn = 747 mod247 = 100 = x.

• B chấp nhận y=77 là chữ ký tin cậy.

Đê 1 II

Page 24: Slide_Chữ ký điện tử của chaum van antwerpen

• 2.4: Lược đồ chữ ký ElGamal:

Lược đồ chữ ký ElGamal được giới thiệu năm 1985 và được Viện tiêu chuẩn và

• Công nghệ quốc gia Mỹ sửa đổi thành chuẩn chữ ký số. Lược đồ chữ ký ElGammal không tất định cũng giống như hệ mã hóa ElGamal. Điều này có nghĩa là có nhiều chữ ký hợp lệ cho một thông báo bất kỳ. Thuật toán kiểm tra phải có khả năng khả năng chấp nhận bất kỳ chữ ký hợp lệ nào khi xác minh.

• -Lược đồ chữ ký ElGamal được định nghĩa như sau:

• Tạo khóa:

• Cho p là số nguyên tố sao cho bài toán logarit rời rạc trong Zp là khó và giả sử α Z ∈ p* là phần tử nguyên thủy Cho P = Z p* , A = Z p* × Zp-1 và định nghĩa

• K = {(p, a, α, β): β = αa modp }.

• Các giá trị p, α, β là công khai, a là bí mật.

Đê 1II

Page 25: Slide_Chữ ký điện tử của chaum van antwerpen

• Tạo chữ ký

•Với K = (p, a, α, β) và với số ngẫu nhiên k Z*∈ p-1

•định nghĩa sigk (γ, δ), trong đó:

• γ = αk mod p và δ = (x - aγ) k -1mod(p - 1).

•• Kiểm tra chữ ký số

•Với x, γ Z ∈ p* và δ Z∈ p-1 , ta định nghĩa :

• Ver (x, γ, δ) = True β γ. γδ ≡ α⇔ x mod p.

•Chứng minh:

• Nếu chữ ký được thiết lập đúng thì hàm kiểm tra sẽ thành công vì:

• ⇒βγ γδ ≡ α^(a.γ) α^(r.δ) mod p ≡ αx mod p ( vì aγ + rδ ≡ x mod(p - 1)).

• A tính chữ ký bằng cách dùng cả giá trị bí mật a( là một phần của khóa ) lẫn số

•ngẫu nhiên bí mật k ( dùng để ký trên x). Việc kiểm tra có thể thực hiện duy nhất bằng thông tin công khai.

Đê 1 II

Page 26: Slide_Chữ ký điện tử của chaum van antwerpen

• Ví dụ: Giả sử p=467, α = 2, a = 127

• Khi đó: β = αa mod p = 2127mod467 = 132

• Giả sử A có thông báo x=100 và A chọn ngẫu nhiên k=213

• vì (213,466)=1 và 213-1 mod466 = 431, A ký trên x như sau:

• γ = αk modp = 2213 mod467 = 29

• Và δ = (x - aγ)k-1 mod(p -1) = (100 – 127. 29).431 mod466 = 51.

• Chữ ký của A trên x= 100 là (29,51).

• Bất kỳ người nào đó cũng có thể kiểm tra chữ ký bằng cách:

• 13299 . 2951 ≡ 189 mod 467

• 2100 ≡ 189 mod 467

• Do đó, chữ ký là tin cậy.

Đê 1 II

Page 27: Slide_Chữ ký điện tử của chaum van antwerpen

• 2.5:Thuật toán chú kí điện tử (1 biến thể của ELGamal)

• +chọn 1 số nguyên tố q với q với 2159 <q<2150

• + chọn t sao cho 0≤t≤8

• Chọn p nguyên tố sao cho 2511+64t <p<2512+64t

• Q chia hết cho (p-1)

• + tạo 1 số a duy nhất cho q trong trường Zp

• . Chọn g thuộc Zp* và tính α= g(p-1)/q mod p

• .nếu a= 1 thì quayl ại bước trên cho sao cho g phù hợp

• +chon a số nguyên tố ngẫu nhiên sao cho 1 ≤ a ≤ q-1

• +Tính y= αa mod p

• Vậy khóa kí là (p,q,a,y) được công khai và a là khóa bí mật.

Đê 1 II

Page 28: Slide_Chữ ký điện tử của chaum van antwerpen

• 2.6: Chuẩn chữ kí số (DSS) • DSS đa sửa đôi hê chữ ky ElGammal cho phù hơp theo cach nay môt cach

khéo léo, đê mỗi 160 bit bưc điên đươc ky sử dung môt chữ ky 320 bit, nhưng viêc tinh toan đươc thưc hiên vơi 512 bit modulo p. Cach nay đươc thưc hiên nhơ viêc chia nhỏ Zp* thanh cac trương có kich thươc 2160. Viêc thay đôi nay sẽ lam thay đôi gia tri δ:

• δ = (x + αγ)k-1 mod(p - 1).

• Điều nay cung lam cho gia tri kiêm tra cung thay đôi:

• αxβγ ≡ γδ (mod p). (1.1)

• Nêu UCLN(x + αγ, p - 1) = 1 thì sẽ tôn tai δ-1 mod (p - 1), do đó (1.1) sẽ biên đôi thành:

• αxδ-1βγδ-1 ≡ γ (mod p). (1.2)

• Đây chinh la sư đôi mơi cua DSS. Chúng ta cho q la môt sô nguyên tô 160 bit sao cho q | (p-1), va α la môt sô thư q cua 1 mod p, thì β va γ cung la sô thư q cua 1 mod p. Do đó α, β va γ có thê đươc tôi gian trong modulo p ma không anh hưởng gì đên viêc xac minh chữ ky. Sơ đô thuât toan như sau:

Đê 1 II

Page 29: Slide_Chữ ký điện tử của chaum van antwerpen

• Cho p là một số nguyên tố 512 bit trong trường logarit rời rạc Zp; q là một số nguyên tố 160 bit và q chia hết (p-1). Cho α € Zp*; P = Zp*, A = Zq*Zq, và định nghĩa:

• K = {(p, q, α, a, β) : β ≡ αa (mod p)}

• trong đo giá trị p, q, α và β là công khai, còn a là bi mật.

• Với K = (p, α, a, β) và chọn một số ngẫu nhiên k (1 ≤ k ≤ q-1), định nghĩa:

• sigK(x, k) = (γ, δ)

• trong đo: γ = (αk mod p) mod q , δ = (x + a*γ)k-1 mod q.

• Với x € Zp* và γ, δ € Zq, việc xác minh đươc thực hiên băng cách tinh:

• e1 = x δ-1 mod q

• e2 = γ δ-1 mod q

• Ver(x, γ, δ) = TRUE αe1βe2 ( mod p) mod q = γ.

• Chú y rằng, vơi DSS thì δ # 0 (mod q) vì gia tri: δ-1 mod q cân cho viêc xac minh chữ ky (điều nay cung tương tư như viêc yêu câu UCLN(δ, p-1) = 1 đê (1.1) → (1.2)). Khi B tinh môt gia tri δ ≡ 0 (mod q) trong thuât toan ky, anh ta nên bỏ nó đi va chon môt sô ngâu nhiên k mơi.

Đê 1 II

Page 30: Slide_Chữ ký điện tử của chaum van antwerpen

• Vi dụ:

• Chúng ta chon q = 101 va p = 78*q + 1 = 7879 va g = 3 la môt nguyên tô trong Z7879. Vì vây , ta có thê tinh:

• α = 378 mod 7879 = 170.

• Chon a = 75, do đó: β = αa mod 7879 = 4567.

• Bây giơ, B muôn ky môt bưc điên x = 1234, anh ta chon môt sô ngâu nhiên k = 50. Vì vây :

• k-1 mod 101 = 99.

• Tiêp đó: γ = (17050 mod 7879) mod 101 = 2518 mod 101 = 94

• δ = (1234 + 75*94)99 mod 101 = 97.

• Căp chữ ky (94, 97) cho bưc điên 1234 đươc xac thưc như sau:

• δ-1 = 97-1 mod 101 = 25

• e1 = 1234*25 mod 101 = 45

• e2 = 94*25 mod 101 = 27

• (17045456727 mod 7879) mod 101 = 2518 mod 101 = 94.

Đê 1 II

Page 31: Slide_Chữ ký điện tử của chaum van antwerpen

• 2.7: Mô hình ứng dụng của chữ kí điện tử

-Khác với chữ kí thông thường trên thực tế,các chữ kí điên tử là 1 thông tin ở dang số hóa được tạo ra từ văn bản sử dụng hệ chữ kí điện tử và không phải là 1 phần của văn bản.Do đó kgi tạo ra, chữ kí điện tử sẽ được gửi đi cùng với thông điệp,người nhận nhận được thông điệp và chữ kí tương ứng sẽ thực hiện thuật toán kiểm tra xem chữ kí đó đúng là chữ kí của người gửi văn bản nhận được hay không.

Đê 1 II

Page 32: Slide_Chữ ký điện tử của chaum van antwerpen

• 3.1 Khái niệm chữ ký không thể phủ nhận

• -Trong các phần trước đã trình bày một vài sơ đồ chữ ký điện tử; trong các sơ đồ đó, việc kiểm thử tính đúng đắn của chữ ký là do người nhận thực hiện. 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 các sơ đồ chữ ký không thể phủ nhận với một yêu cầu là chữ ký không thể phủ nhận 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ực hiện thông qua một giao thức mời hỏi và trả lời giữa người nhận và người gửi (cũng là người ký) gọi là giao thức kiểm thử.

• - Khi chữ ký đòi hỏi được xác nhận bằng một giao thức kiểmthử thì một vấn đề khác lại nẩy sinh là làm thế nào để ngăn cản người ký chối bỏ mộtchữ ký mà anh ta đã ký bằng cách tuyên bố chữ ký đó là giả mạo? Để đá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 của mình mà là giả mạo. Nếu anh ta từ chối không tham gia giao thức đó thì có bằng chứng để chứng tỏ rằng anh ta không chứng minh được đó là chữ ký giả mạo, tức không chối bỏ được chữ ký của mình. =>Như vậy, một sơ đồ chữ ký không thể phủ nhận sẽ gồm ba phần: một thuật toán ký, một giao thức kiểm thử và một giao thức chối bỏ.

Đê 1III

Page 33: Slide_Chữ ký điện tử của chaum van antwerpen

3.2 Hiệu quả của chứ ký, tính ưu việt so với các chữ ký khác.

•-Chữ ký điện tử thông thường có thể bị sao chép. Đôi khi thuộc tính này cũng rất hữu ích ví dụ như trong việc phát hành các thông báo công cộng. Mặt khác nó cũng là một vấn đề không tốt. Thử tưởng tượng xem một bức thư cá nhận hoặc thư thương mại được ký điện tử. Nếu rất nhiều bản sao của các tài liệu này được phát hành rộng rãi, mỗi một bản đó có thể được xác thực bởi bất kì ai, điều này dẫn đến tình trạng lúng túng hoặc sự hăm dọa để tống tiến.

•- Giải pháp tốt nhất để giải quyết vấn đề này là phải xây dựng một loại chữ ký điện tử mà nó có thể chứng minh được tính pháp lí của chữ ký nhưng người nhận chữ ký không thể xác thực chữ ký đó với người thứ 3 mà không được sự cho phép của người kí.

Đê 1III

Page 34: Slide_Chữ ký điện tử của chaum van antwerpen

• 3.3 Ví dụ về hiệu quả của chữ kí • -Công ty phần mềm của An phát hành sản phẩm DEW (Do-Everything-

World).Để đảm bảo với khách hàng là sản phẩm của họ hoàn toàn không có virus, họ đã thêm một chữ ký điện tử cùng với mỗi một bản sao của phần mềm. Tuy nhiên, họ muốn chỉ những người mua sản phẩm hợp pháp mới có thể xác nhận được chữ ký này, còn những người mua bất hợp pháp không thể xác nhận được chữ ký này. Đồng thời nếu những bản sao của phần mềm DEW được tìm ra là có chứa virus, thì công ty phần mềm An không thể chối bỏ một chữ ký hợp pháp.-Chữ ký không thể phủ nhận rất thích hợp cho những nhiệm vụ như thế này.

• Giống như chữ ký điện tử thông thường, một chữ ký không thể phủ nhận phụ thuộcvào tài liệu được ký và khóa bí mật của người ký. Nhưng nó không giống chữ ký điệntử thông thường ở chỗ: chữ ký không thể phủ nhận không thể xác thực nếu khôngcó sự cho phép của người ký. Một cái tên hay hơn cho những loại chữ ký như này có thể là một cái gì đó kiểu như “chữ ký không thể chuyển giao quyền sở hữu” cái tên này bắt nguồn từ thực tế là nếu trước tòa An buộc phải hoặc thừa nhận hoặc chối bỏ chữ ký, thì cô ấy không thể chối bỏ chữ ký thật của của cô ta.

Đê 1III

Page 35: Slide_Chữ ký điện tử của chaum van antwerpen

-Tính toán thì rất là phức tạp nhưng mà ý tưởng cơ bản thì rất đơn giản:

•(1) An giới thiệu với Bình chữ ký.

•(2) Bình chọn một số ngẫu nhiên gửi cho An.

•(3) An làm các tính toán bằng số ngẫu nhiên đó với khóa bí mật của cô ta và gửi kết quả cho Bình. An chỉ có thể làm các phép tính đó nếu chữ ký đó là hợp pháp.

•(4) Bình xác nhận kết quả này.

•-Cũng có một giao thức khác để An có thể chứng minh là cô ấy đã không ký tài liệu này và không thể chối bỏ một chữ ký hợp pháp.Bình không thể quay sang và thuyết phục Chi rằng chữ ký của An là hợp pháp bởi vì Chi không biết rằng những số của Bình là ngẫu nhiên. Bình đã làm việc với giao thức đó một cách dễ dàng trên giấy mà không cần bất cứ sự giúp đỡ nào từ phía An và sau đó Bình đưa kết quả cuối cùng cho An. Chi có thể bị thuyết phục rằng chữ ký của An là hợp pháp chỉ trong trường hợp Chi hoàn thành giao thức với An bởi chính Chi.

•-Giải pháp này không phải là hoàn hảo. Yvo Desmedt và Moti Yung đã chỉ ra rằng nó không thích hợp trong một vài ứng dụng, cho việc Bình thuyết phục Chi rằng chữ ký của An là có hiệu lực.

Đê 1III

Page 36: Slide_Chữ ký điện tử của chaum van antwerpen

• 3.4 Sơ đồ chữ ký không thể phủ nhận Chaum-van Antwerpen. 

• -Sơ đồ này được Chaum-van Antwerpen giới thiệu lần đâu tiên vào năm 1989, từ đó đến nay mỗi năm có khoảng hơn mười công trình nghiên cứu về chữ ký không

• thể phủ nhận nhưng đều dựa trên nên tảng chữ ký không thể phủ nhận của Chaum-van Antwerpen. Do vậy, đầu tiên chúng ta sẽ nghiên cứu sơ đồ chữ ký không thể phủ nhận của Chaum-van Antwerpen.

Đê 1III

Page 37: Slide_Chữ ký điện tử của chaum van antwerpen

• 3.4.1 Giao thức ký.• * Sinh khóa.

• -Mỗi chủ thể lựa chọn một khóa bí mật và một khóa công khai tướng ứng như các bước dưới đây:

• +Bước 1: Lựa chọn một số nguyên tố ngẫu nhiên p = 2q+1 (q cũng là số nguyên tố)

• +Bước 2: Lựa chọn phần tử sinh α cho nhóm con bậc q (α ∈ Z *p )

• Tiếp theo lựa chọn phần tử β Z∈ *p,Z , tính α = β ( p−1) / q mod p .

• Nếu α =1 thì quay lại (a).

• +Bước 3: Lựa chọn một số nguyên a {1, 2,3,..., ∈ q −1}, tính y =α a mod p

Khóa công khai là (p,α ,y), khóa bí mật là a.

• 3.4.2Thuật toán ký.• -A ký một thông điệp m mà B có thể xác nhận chữ ký đó với sự cộng tác

của A. A: s = ma mod p , s là chữ ký của A trên m.

Đê 1III

Page 38: Slide_Chữ ký điện tử của chaum van antwerpen

• 3.4.3 Giao thức kiểm thử.

• +Bước 1: B chọn ngẫu nhiên 2 số nguyên x1 ,x2 1, ∈2,3,.., p −1} sau đó tính

• z = sx1 yx2 (mod p) và gửi z cho A.

• +Bước 2: A tính w=(z)a 1‑ mod p ( aa−1 =1mod p ) sau đó gửi w cho B.

• +Bước 3: B tính w' = mx1α x2 mod p , B chấp nhận s là chữ kí của A trên m nếu w = w' .

Đê 1III

Page 39: Slide_Chữ ký điện tử của chaum van antwerpen

• (*)Tính hợp thức của giao thức kiểm thử.

• Định lý1: Nếu s đúng là chữ ký của A trên m , tức s ≡ ma mod p , thì việc B chấp nhận s là chữ ký của A trên m theo giao thức kiểm thử là đúng.

• Chứng minh:

• -Giả sử 1: s ≡ma mod p (⇒ sa)-1 mod p =m mod p (1)

• -Ta cũng có: y= α a mod p (⇒ ya)-1 mod p =α mod p (2)

• Mà w=(za)-1mod p=(sx1a)-1.(yx2a)-1(mod p) (3)

• Từ (1),(2),(3) ⇒ w = mx1α x2 (mod p) và theo giao thức kiểm thử, B chấp nhận s là chữ ký của A trên m , và việc chấp nhận đó là đúng.

• Định lý2: Nếu s ≠ ma mod p , tức s không phải là chữ ký của A trên m thì việc

• B theo giao thức kiểm thử chấp nhận s là chữ ký của A trên m có thể xẩy ra với xác

• suất 1/ q .

Đê 1III

Page 40: Slide_Chữ ký điện tử của chaum van antwerpen

• 3.4.4 Giao thức chối bỏ. • A có thể từ chối một chữ ký đúng bằng các cách sau:

• (1)Từ chối tham gia vào giao thức

• (2) Cố tình làm sai trong giao thức kiểm thử. Va (3) Tuyên bố rằng chữ kí là giả mạo mặc dù nó được xác minh một cách chính xác.

• Các bước thực hiện: Bước 1: B lấy khóa công khai của A ( p,α , y) , chọn ngẫu nhiên 2 số nguyên x1, x2 {1,2,3,..,∈ q−1} tính z = sx1 yx2mod p , sau đó gửi cho A.

• Bước 2: A tính w= (za )-1mod p , gửi w cho B. Bước 3: B thử điều kiện w≡mx1α x2 mod p

• Bước 4: B chọn ngẫu nhiên 2 số nguyên tố x1 ', x2 ' {1,2,3,..,∈ q−1 }tính z ' = sx1'yx2 'mod p sau đó gửi cho z ' cho A.

• Bước 5: A tính w'= (z 'a)-1 mod p , sau đó gửi w' cho B.

• Bước 6: B thử điều kiện w'=mx1α x2'mod p .

• Bước 7: B tính c = (wα −x2 )x1'mod p, c' = (w'α −x2 ')x1mod p =>Nếu c = c' B kết luận s là chữ ký giả mạo, nếu không thì s là chữ ký đúng, A cố tình chối bỏ.

Đê 1III

Page 41: Slide_Chữ ký điện tử của chaum van antwerpen

Người xác nhận Mô hình: Giao thức chối bỏ

(p,α,y) a x1,x2 Z∈ *

p

z=sx1yx2 (mod p)

w=(za)-1 mod p Kiểm tra

w=mx1αx2mod p x1

’,x2’ Z∈ p

*

z’=sx1’yx2’(mod p)

w’=(z’a)-1 mod p Kiểm tra

w=mx1αx2mod p

c = (wα −x2 )x1'mod p Nếu c=c’ =>Giả mạo c' = (w'α −x2 ')x1mod p

Đê 1III

Người kýNgười ký Người xác nhậnNgười xác nhận

Page 42: Slide_Chữ ký điện tử của chaum van antwerpen

• (*) Tính hợp thức của giao thức chối bỏ.

• Định lý 3:

• -Nếu s ≠ ma mod p và cả A, B điều tuân theo giao thức chối bỏ, thì c = c' tức giao thức cho kết quả chính xác.

• -Nếu s ≠ ma mod p, A và B đều tuân theo giao thức và có w≠ mx1α x2 (mod p) và w'≠mx1α' x2'(mod p).

• -Khi đó đồng dư thức (wα −x2 )x1' = (w'α −x2 ')x1 (mod p) đúng với xác suất

• 1/q, tức nếu y đúng là chữ ký của A trên x, thì theo giao thức , B có thể kết luận rằng

• nó là giả mạo (một cách sai lầm) với xác suất 1/q.

Đê 1III

Page 43: Slide_Chữ ký điện tử của chaum van antwerpen

Tài liệu tham khảo:

• 1.Giáo trình an toàn và bảo mật thông tin- Trường Đại học hàng hải

• 2.Chữ kí không thể phủ nhận và ứng dụng –Trường Đại học công nghệ -Vũ Minh Tuấn.

• 3.Cryptography report underniable singature schemes- Morten Bohoj,Mads keblov Kjeldsen.

• 4. Advanced digital signatures- Jussipekka Leiwo 2004

Page 44: Slide_Chữ ký điện tử của chaum van antwerpen