Lược đồ ký Elgamal

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu tìm hiểu chuẩn chứ ký số DSS và ứng dụng trong chính phủ điện tử (Trang 46 - 48)

Lược đồ Elgamal được đề xuất năm 1985, sau đó Viện tiêu chuẩn và Công nghệ quốc gia Mỹ sửa đổi thành chuẩn chữ ký số (Digital Signature Standard - DSS). Lược đồ ký Elgamal không tất định giống như hệ mã hóa khóa công khai Elgamal, có nghĩa là có nhiều chữ ký hợp lệ cho một thông điệp bất kỳ. Thuật toán kiểm tra phải có khả năng chấp nhận bất kỳ chữ ký hợp lệ nào khi giải ký. Khác với RSA có thể áp dụng trong mã hóa khóa công khai và chữ ký số, Elgamal chủ yếu được dùng cho bài toán xây ứng dụng chuẩn chữ ký số.

a) Nội dung

cho plà số nguyên tố sao cho bài toán logarit rời rạc trên Zplà khó và cho *

p

z

 là phần tử nguyên thủy. Cho pZ*p;AZ*pZ p1 và định nghĩa:

𝐾 = {(𝑝, 𝛼, 𝑎, 𝛽): 𝛽 = 𝛼𝑎𝑚𝑜𝑑 𝑝}

Giá trị p,, là công khai, còn a là bí mật.

Với K p,,a, và một số ngẫu nhiên (bí mật) * 1 

Zp k

Định nghĩa Sigk   x,k  , trong đó:

p k mod    và    1mod 1 p k a x  

Với *

,y Zp

x  và Zp1 ta định nghĩa Verx,,true xmodp

.Ở đây, Z*

p = { 1,2,…,p-1 }, với p là số nguyên tố đủ lớn để cho bài toán lôgarit rới rạc là khó.

b) Thuật toán sinh khóa cho lược đồ ký

Mỗi cá thể trong hệ thống tạo một khóa công khai và một khóa riêng tương ứng và thực hiện:

+ Tạo số nguyên tố lớn p và chọn Zp

+ Chọn số nguyên a:1ap2 + Tính 𝛽 = 𝛼𝑎𝑚𝑜𝑑 𝑝

+ Khóa công khai là (𝑝, 𝛼, 𝛽) khóa bí mật là a

c) Thuật toán sinh chữ ký

Cá thể A ký lên thông điệp m, A thực hiện các bước: + Chọn số nguyên k:1kp2, với gcdk,p11 + Tính rkmodp + Tính 1mod 1 p k + Tính  1    mod 1 p r a m h k s

Chữ ký của A lên thông điệp m là  r,s

d) Thuật toán chứng thực chữ ký

B thực hiện các bước sau để chứng thực chữ ký  r,s lên m có phải của A hay không:

+ Xác nhận khóa công khai của A là p,,

+ Kiểm tra r:1rp1, nếu không đúng thì từ chối chữ ký của A + Tính 𝑣1 = 𝛽𝑟. 𝑟𝑠𝑚𝑜𝑑 𝑝

+ Tính 𝑣2 = 𝛼ℎ(𝑚)𝑚𝑜𝑑 𝑝

Ví dụ 1.2

Giả sử A cần ký lên thông điệp m có giá trị hàm băm h m 1463 để gửi cho B. Sau đó B thực hiện kiểm tra xem chữ ký đó có phải của A hay không?

- Tạo khóa

+ Chọn số nguyên tố, giả sử p2357 và 2Z2357

+ Chọn a1751,1ap2

+ Tính được 𝛽 = 𝛼𝑎𝑚𝑜𝑑 𝑝 = 21751𝑚𝑜𝑑 2 357 = 1185

Khóa công khai của A là (𝑝, 𝛼, 𝛽) = (2357,2,1185) và khóa bí mật 1751  a - Tạo chữ ký: + Chọn k1529,1kp2 + Tính rkmodp1490 + Tính 1mod( 1)245 p k + Tính s1777

Vậy chữ ký của A lên thông điệp m là 490,1777 và gửi đến B. - Chứng thực chữ ký

Để chứng thực, B thực hiện:

+ Tính 𝑣1 = 𝛽𝑟. 𝑟𝑠𝑚𝑜𝑑 𝑝 = 1072

+ Tính v2 h(m)modp21463mod23571072

Kết luận chữ ký 1490,1777 đúng là của A.

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu tìm hiểu chuẩn chứ ký số DSS và ứng dụng trong chính phủ điện tử (Trang 46 - 48)

Tải bản đầy đủ (PDF)

(77 trang)