Sơ đồ chữký nhóm thứ nhất

Một phần của tài liệu Tìm hiểu, nghiên cứu một số Chữ ký đặc biệt dùng trong bỏ phiếu điện tử (Trang 35 - 38)

Do David Chaum và Van Heyst sáng tác

1/. Tạo khóa và quản lý khóa

- Z là ngƣời quản lý nhóm hoặc là ngƣời tin cậy đƣợc ủy nhiệm chọn một hệ thống khóa bí mật và đƣa cho mỗi thành viên một danh sách các khóa bí mật (các danh sách này là khác nhau) và công bố một danh sách đầy đủ các khóa công khai tƣơng ứng (theo thứ tự ngẫu nhiên) trong một thƣ mục công khai tin tƣởng (trusted public directory – TPD).Chọn p là một số nguyên tố.

- Nếu mỗi ngƣời có cùng một số lƣợng các khóa bí mật, thì chiều dài của khóa công khai của nhóm là tuyến tính với số thành viên, nhƣng số thông điệp của mỗi thành viên ký là không đổi.

- Thành viên thứ i có thể ký một thông điệp bằng một khóa bí mật sitrong danh sách khóa của anh ta. Mỗi khóasi chỉ đƣợc sử dụng một lần, nói cách khác các chữ ký đã đƣợc tạo bằng khóa này đƣợc liên kết.

- Z biết danh sách khóa bí mật của mỗi thành viên, vì thế trong trƣờng hợp cần thiết, anh ta biết đƣợc ai đã tạo ra chữ ký đó. Để làm đƣợc điều này, Zmở” một chữ ký. [6, 12]

2/. Ký số và kiểm tra chữ ký

Việc ký số và kiểm tra chữ ký hoàn toàn có thể sử dụng sơ đồ chữ ký Elgamal.

* Sơ đồ chữ ký Elgamal :

Sinh khóa (a,h):

Chọn số nguyên tố p sao cho bài toán logarit rời rạc trong Zp là khó giải.

Chọn phần tử nguyên thủy g𝑍𝑝∗. Đặt P =𝑍𝑝∗, A = 𝑍𝑝∗ ∗ 𝑍𝑝−∗ 1.

Chọn khóa bí mật là a 𝑍𝑝∗. Tính khóa công khai h  ga mod p. Định nghĩa tập khóa: K = {(p, g, a, h): h ga mod p).

Các giá trị p, g, h đƣợc công khai, phải giữ bí mật a.

Ký số:Dùng 2 khóa ký: khóa a và khóa ngẫu nhiên bí mật r 𝑍𝑝−∗ 1

(Vì r 𝑍𝑝−∗ 1, nên nguyên tố cùng nhau với p-1, do đó tồn tại r-1 mod (p-1)). Chữ ký trên x  P là y = Sigk (x,r) = (, ), y A

Trong đó: 𝑍𝑝∗, 𝑍𝑝−1:

 =ga mod p,  = (x-a*)* r-1mod(p-1)

Kiểm tra chữ ký:

Verk (x, , ) = đúng  h * gx mod p. Nếu chữ ký đƣợc tính đúng, kiểm thử sẽ thành công vì: h* g a** g r* mod p g(a* +r* ) mod p  gx mod p.

Ví dụ:

1/. Sinh khóa :

Tạo cặp khóa bí mật công khai (a, h): Chọn số nguyên tố p =463.

Chọn phần tử nguyên thủy g=2 𝑍𝑝∗. Đặt P =𝑍𝑝∗, A = 𝑍𝑝∗∗ 𝑍𝑝−∗ 1.

Chọn khóa bí mật là a =211𝑍𝑝∗. Tính khóa công khai h  ga mod p = 2211mod463 =249.

Định nghĩa tập khóa: K = {(p, g, a, h): h ga mod p). Các giá trị p, g, h đƣợc công khai, phải giữ bí mật a.

Ký số:Dùng 2 khóa ký: khóa a và khóa ngẫu nhiên bí mật r 𝑍𝑝−∗ 1

Chọn ngẫu nhiên r= 235 (Vì r 𝑍𝑝−∗ 1, nên nguyên tố cùng nhau với p-1, do đó tồn tại r-1 mod (p-1) =235-1mod462 =289).

Chữ ký trên x=112  P là y = Sigk (x,r) = (, ), y A Trong đó: 𝑍𝑝∗, 𝑍𝑝−1:

 =ga mod p=2211mod 463= 16,

 = (x-a*)* r-1mod(p-1)= (112-211*16)*289 mod462=108 (adsbygoogle = window.adsbygoogle || []).push({});

Kiểm tra chữ ký:

Verk (x, , ) = đúng  h * gx mod p. Kiểm thử :

h*= 24916* 16108 mod 463 =132. gx mod p= 2112mod463 =132.

Do hai giá trị h* mod p =gx mod p =132 nên chữ ký là đúng.

3/. Hạn chế:Một vấn đề đối với sơ đồ này là Z biết tất cả các khóa bí mật của các thành viên và có thể giả mạo chữ ký. Điều này có thể đƣợc giải quyết hai cải biên sau: sử dụng các khóa công khai “mù” hoặc có thể không sử dụng trƣởng nhóm.

+ Sử dụngkhóa công khai”.

- Chọn p là số nguyên tố, g là phần tử sinh của nhóm nhân Z*p.

Thành viên i tự chọn khóa bí mật “thực sự” của mình là si,khóa công khai “thực sự” là hi = g s i mod p.

- Trƣởng nhóm Z chỉ có danh sách các khóa công khai hi (khác nhau), tƣơng ứng với tên của các thành viên trong nhóm. Zkhông quản lý các khóa bí mật của mỗi thành viên.

- Mỗi tuần Z đƣa cho thành viên i một số ngẫu nhiên riZ*p, trong tuần này thành viên i dùng si*ri mod (p-1) làm khóa bí mật ”. (Khóa mật si đã bị che giấu bởi ri).Khóa công khai “mù” tƣơng ứng là hi -mù = g s i . r i = (gs i ) r i.

- Z “khó”giả mạo chữ ký, vì không biết khóa mật “thực sự” si (của mỗi thành viên i). Tham số ri có thể bị lộ, nhƣng si vẫn không bị lộ bí mật.

Trƣởng nhóm Zcó thể dùng ri để kiểm tra i có phải là ngƣời trong nhóm hay không.

+ Không sử dụng trưởng nhóm

- Không cần phải có nhóm trƣởng Z.

- Mỗi thành viên i trong nhóm tự tạo ra cặp khóa bí mật, công khai (si , hi). - Mỗi thành viên gửi các khóa công khai của mình vào danh sách khoá công khai của nhóm và chỉ những thành viên của nhóm mới có thể gửi các khóa công khai vào danh sách này [6, 12].

Một phần của tài liệu Tìm hiểu, nghiên cứu một số Chữ ký đặc biệt dùng trong bỏ phiếu điện tử (Trang 35 - 38)