4. Chương 4: THỬ NGHIỆM CHƯƠNG TRÌNH CHỮ KÝ SỐ BỘI TRÊN ĐƯỜNG
4.3 CHƯƠNG TRÌNH
4.3.1 Lược đồ chữ ký bội ngang hàng
Khởi tạo và thực hiện các phép toán trên đường cong Elliptic: bao gồm một số chương trình con (được mô tả trong bảng 4.1)
Bảng 4.1. Các chương trình con kh i tạo và thực hiện các phép toán trên đường cong Elliptic cho lược đồ ngang hàng
STT Tên chương trình Ch c năng Đầu vào Đầu ra
1. [EZp,G]=Ellip_point(a,b,p)
Khởi tạo đường cong Elliptic, chọn điểm cơ sở G a,b,p: Các hệ số của phương trình mô tả đường cong Elliptic -Ezp: Các điểm trên đường cong -G: Điểm cơ sở
2. C=Eadd(A,B)
Thực hiện phép cộng hai điểm trên đường cong Elliptic
A,B là hai điểm trên đường cong Elliptic C: Kết quả của phép cộng hai điểm A,B và cũng thuộc đường cong Elliptic 3. C=Emul(k,A) Nhân một điểm thuộc đường cong
với một số -A: Điểm thuộc đường cong -k: Hệ số nhân C: Kết quả của phép nhâ điểm A với hệ số k và cũng thuộc đường cong Elliptic 4. C=Esub(A,B) Thực hiện phép trừ hai điểm trên đường cong Elliptic
A,B là hai điểm trên đường cong Elliptic C: Kết quả của phép trừ hai điểm A,B và cũng thuộc đường cong Elliptic
Tạo khóa:
- Cú pháp chương trình: [pub, pri]=parallel_makekey(N,p,G)
- Đầu vào: Số thành viên (N), tham số của đường cong Elliptic (p,G).
- Đầu ra: Khóa công khai (pub) cho N thành viên và khóa bí mật (pri) cho mỗi thành viên trong nhóm.
- Cách thức thực hiện: Khóa bí mật (pri) của mỗi thành viên trong N là một số lớn ngẫu nhiên, khóa công khai là tổng của các khóa bí mật này nhân với điểm cơ sở G.
Tạo chữ ký bội
- Cú pháp chương trình: [E,S]=parallel_makesig(N,p,G,pri,s)
- Đầu vào: Số thành viên (N), tham số của đường cong Elliptic (p,G), khóa bí mật(pri), văn bản cần ký (s)
- Đầu ra: Thành phần thứ nh t của chữ ký (E), thành phần thứ hai của chữ ký (S).
- Cách thức thực hiện: E là đầu ra hàm băm của văn bản (s) và các tham số ngẫu nhiên tùy thuộc vào từng thành viên tham giá ký bội. S được tạo thành từ E , pri và các tham số ngẫu nhiên khác theo thuật toán đã trình bày ở hình 2.4.
Xác thực chữ ký bội
- Cú pháp chương trình: [H,Z]=parallel_verify(S,G,pub,E,s,p)
- Đầu vào: Tham số của đường cong Elliptic (G và p), văn bản nhận được (s), khóa công khai (pub), thành phần thứ nh t của chữ ký (E), thành phần thứ hai của chữ ký (S).
- Đầu ra: Thành phần thứ nh t của chữ ký cho việc xác thực (H), thành phần thứ hai của chữ ký cho việc xác thực (Z).
- Cách thức thực hiện: Xác định Z từ thành phần thứ nh t và thứ hai của chữ ký (E,S), kết hợp với các tham số công khai: Điểm cơ sở G, khóa công khai của cả nhóm pub, cùng với văn bản nhận được (s). F là đầu ra hàm băm của văn bản (s) và Z ( xác thực chữ ký hợp lệ khi giá trị H = E).
Khởi tạo và thực hiện các phép toán trên đường cong Elliptic: Tương tự như lược đồ ngang hàng, bao gồm một số chương trình con (được mô tả trong bảng 4.1)
Tạo khóa:
- Cú pháp chương trình: [pub, pri,L]=serial_makekey(N,p,G)
- Đầu vào: Số thành viên (N), tham số của đường cong Elliptic (p,G).
- Đầu ra: Khóa công khai (pub) cho N thành viên và khóa bí mật (pri) cho mỗi thành viên trong nhóm.
- Cách thức thực hiện: Khóa bí mật (pri) của mỗi thành viên trong N là một số lớn ngẫu nhiên, khóa công khai là tích tuần tự của các khóa bí mật này với điểm cơ sở G.
Tạo chữ ký bội tuần tự
- Cú pháp chương trình: [E,S,R,T]=serial_makesig(N,p,G,pri,s)
- Đầu vào: Số thành viên (N), tham số của đường cong Elliptic (p,G), khóa bí mật(pri), văn bản cần ký (s)
- Đầu ra: Thành phần thứ nh t của chữ ký (E), thành phần thứ hai của chữ ký (S), các tham số công khai cho việc xác thực (R và T);
- Cách thức thực hiện: E là đầu ra hàm băm của văn bản (s) và các tham số ngẫu nhiên tùy thuộc vào từng thành viên tham giá ký bội. S được tạo thành từ E , pri và các tham số ngẫu nhiên khác theo thuật toán đã trình bày ở hình 2.5.
Xác thực chữ ký bội tuần tự
- Cú pháp chương trình: [H,Z]=serial_verify(S,G,R,T,pub,E,s,p)
- Đầu vào: Tham số của đường cong Elliptic (G và p), văn bản nhận được (s), khóa công khai (pub), thành phần thứ nh t của chữ ký (E), thành phần thứ hai của chữ ký (S), các tham số công khai cho việc xác thực (R và T); - Đầu ra: Thành phần thứ nh t của chữ ký cho việc xác thực (H), thành phần
thứ hai của chữ ký cho việc xác thực (Z).
- Cách thức thực hiện: Xác định Z từ thành phần thứ nh t và thứ hai của chữ ký (E,S), hai tham số R và T, kết hợp với các tham số công khai: Điểm cơ sở G, khóa công khai của cả nhóm pub, cùng với văn bản nhận được (s). F là đầu ra hàm băm của văn bản (s) và Z ( xác thực chữ ký hợp lệ khi giá trị H = E).