Giả sử trong biên bản thỏa thuận trực tuyến giữa nhóm N đối tác (N1, N2, N3…NN) về việc góp vốn kinh doanh. Biên bản thỏa thuận chỉ có giá trị khi có đủ chữ
ký của N thành viên hợp pháp, chữ ký của các thành viên có vai trò và giá trị như nhau, thứ tự ký của các thành viên không quan trọng. Giả sử cả nhóm cử ra một người đại diện là thành viên nhóm hoặc người (đơn vị) cả nhóm tin cậy (tạm gọi là người đại diện). Người đại diện sẽ tính toán khóa công khai và chữ ký bội chung của cả nhóm từ dữ liệu cá nhân của mỗi thành viên gửi đến và đồng thời chịu trách nhiệm gửi biên bản cùng chữ ký tới nơi nhận.
Bài toán thứ hai:
Hình 3.3 Mẫu phiếu xuất kho
Giả sử một đơn vị cần xu t kho lượng hàng hóa nào đó, gồm có N thành viên tham gia quá trình xu t kho, để đảm bảo đúng qui trình thủ tục xu t kho hàng hóa thì thứ tự ký của các thành viên phải được tuân thủ chặt chẽ qua các khâu. Ví dụ, người đầu tiên ký sẽ là người lập phiếu xu t, sau đó phiếu được đưa tới người giao hàng, người giao hàng tới gặp thủ kho để l y hàng hóa, hàng được người giao hàng giao cho bộ phận nhập và cuối cùng là giám đốc ký và phiếu xu t đó. Giả sử gọi các thành viên lần lượt là : N1, N2, N3…NN , vậy thứ tự ký sẽ là N1 -> N2 -> N3…-> NN . Phiếu xu t kho chỉ có giá trị khi có đủ chữ ký của N thành viên hợp pháp, tuân theo đúng trình tự, chữ ký của các thành viên có vai trò và giá trị khác nhau. Thành viên đóng vai trò là giám đốc sẽ chịu trách nhiệm cao nh t, đồng thời là người đại chữ ký bội chung của cả nhóm từ dữ liệu cá nhân của mỗi thành viên gửi đến.
V n đề đặt ra là liệu có một kẻ thứ ba trái phép hoặc chính người đại diện đã chặn xem và sửa biên bản thỏa thuận đó, nội dung bản hợp đồng gửi tới nơi nhận có
đúng với nội dung ban đầu mà các thành viên đã ký vào không? Đối với bài toán thứ 2 trình tự ký của các thành viên làm như thế nào vẫn đảm bảo.
Giải pháp:
Để đảm bảo tính toàn vẹn của biên bản thỏa thuận trực tuyến trong khi chúng được truyền đi trên mạng trước hết ta cần một kênh truyền an toàn, với các phương pháp đảm bảo tính toàn vẹn trong giao dịch nói chung, một kỹ thuật đặc trưng quan trọng để đảm bảo tính toàn vẹn hợp đồng giao dịch là dùng chữ ký số và chứng chỉ số. Và để giải quyết được v n đề nhiều người cũng ký trên một văn bản mà vẫn đảm bảo tính chữ ký đại diện cho cả nhóm thành viên, có độ dài không đổi, chữ ký được thẩm tra nhờ khóa công khai chung của cả nhóm, việc thẩm tra đơn giản, thuận tiện, chi phí th p mà vẫn đảm bảo an toàn tin cậy.
Khi nội dung của biên bản thỏa thuận bị thay đổi, thì chữ ký bội trên biên bản thỏa thuận đó cũng phải thay đổi theo. Chữ ký số bội nhằm đảm bảo chữ ký đại diện cho cả nhóm thành viên, tính toàn vẹn, duy nh t và không bị sửa đổi dữ liệu gốc bởi người khác. Chữ ký số bội là bằng chứng xác thực người gửi chính là nhóm tác giả của thông điệp mà không phải là một ai khác. Không những thế, khi chữ ký số bội được gắn với thông điệp số thì đảm bảo rằng thông tin trên đường chuyển đi sẽ không bị thay đổi. Mọi sự thay đổi dù nhỏ nh t sẽ đều bị phát hiện dễ dàng.
3.2.3.2 Bảo đảm tính xác thực
Bài toán:
Xác thực là một thủ tục nhằm kiểm tra các thông báo nhận được, xem chúng có đến từ một nguồn hợp lệ và có bị sửa đổi hay không. Xác thực thông báo cũng có thể kiểm tra tính trình tự và tính đúng lúc. Chữ ký số nói chung và chữ ký số bội nói riêng là một kỹ thuật xác thực. Nó cũng bao gồm nhiều biện pháp để chống lại việc chối bỏ đã gửi hay đã nhận thông báo của hai bên gửi và bên nhận.
Khi nhận được một văn bản cần có chữ ký của một trong những thành viên trong nhóm, người đó cần phải biết rõ thông tin đó có phải đến từ nguồn đáng tin cậy hay không? Có đúng là thành viên trong nhóm, người đại diện hay thuộc c p của họ gửi thông tin hay không? Người gửi cũng như người nhận cần phải biết chính xác rằng họ đang giao dịch với ai, và đối tác giao dịch của họ có đáng tin cậy không, có an toàn không?
Đôi khi đối tác, hay các thành viên không biết được mình đang giao dịch với ai. R t nhiều công ty ma, hay các địa chỉ ảo, các website giả mạo để lừa gạt khách hàng, gây thiệt hại không nhỏ cho khách hàng giao dịch, hay các doanh nghiệp tham gia TMĐT …
Xác thực thông báo sẽ bảo vệ hai bên (trao đổi thông báo qua người đại diện). Tuy nhiên hai bên không bảo vệ lẫn nhau. Giả thiết, người A gửi một thông báo đã xác thực cho người B. Có thể xảy ra tranh ch p giữa hai thành viên trong nhóm hoặc giữa thành viên nhóm và người đại diện như sau:
Người B có thể làm giả một thông báo khác và tuyên bố rằng thông báo này có nguồn gốc từ người A. Người B có thể tạo một thông báo và gắn mã xác thực bằng khóa chung của họ.
Người A có thể chối bỏ đã gửi thông báo. Vì người B có thể làm giả thông báo và vì vậy không có cách nào để chứng minh người A đã gửi thông báo.
Giải pháp:
Các tranh ch p xảy ra giữa người gửi và người nhận không có sự tin cậy tuyệt đối. Có nhiều giải pháp cho v n đề xác thực như hàm băm, chứng chỉ số, chữ ký số. Giải pháp thường dùng là chữ ký số nói chung và chữ ký số bội nói riêng. Chữ ký số, tương tự như chữ ký bằng tay, nó phải có một số tính ch t sau:
Có khả năng xác thực tác giả và thời gian ký.
Có khả năng xác thực nội dung tại thời điểm ký.
Các thành viên thứ ba (người đại diện) có thể kiểm ta để giải quyết tranh ch p
Trong sơ đồ chữ ký số bội tuần tự thì người ký sau có khả năng xác thực chữ ký của thành viên ký trước mình.
Vì chức năng ký số bao hàm cả chức năng xác thực, dựa vào các tính ch t cơ bản này ta đưa ra một số yêu cầu sau cho chữ ký số:
Chữ ký số phải là một mẫu bít phụ thuộc vào thông báo được ký.
Chữ ký phải dùng thông tin duy nh t nào đó từ người gửi, nhằm ngăn chặn tình trạng giả mạo và chối bỏ.
Tạo ra chữ ký số dễ dàng.
Dễ nhận ra và dễ kiểm tra chữ ký.
Khó làm giả chữ ký số bằng cách tạo ra một thông báo mới cho một chữ ký số hiện có, hoặc tạo ra một chữ ký giả cho một thông báo có trước.
Trong thực tế, cần phải lưu giữ bản sao của chữ ký số.
3.2.3.3 Chống chối bỏ hợp đồng giao dịch
Bài toán:
Với hợp đồng thông thường, đối tác hai bên biết mặt nhau, cùng nhau trực tiếp ký kết hợp đồng với sự chứng kiến của nhiều người với luật giao dịch rõ ràng minh
bạch. Giao kết hợp đồng TMĐT được thực hiện trong môi trường Internet …, các bên tham gia ký kết hợp đồng xa nhau về địa lý, thậm chí họ có thể không biết mặt nhau, thì v n đề chối bỏ hợp đồng có thể xảy ra r t cao, mặt khác, luật pháp cho TMĐT chưa đủ, gây ra thiệt hại lớn cho các bên tham gia ký kết hợp đồng.
Ví dụ ông A muốn đặt mua một mặt hàng của công ty X ở nước ngoài. Sau khi thỏa thuận ký kết hợp đồng, Công ty X chuyển hàng đến ông A (kèm theo đó là chi phí vận chuyển, thuế hải quan), khi sản phẩm đến, ông A thay đổi ý kiến, không muốn mua sản phẩm này nữa, và ông A đã chối bỏ những gì mình đã thỏa thuận (không có bên thứ 3 thực nào xác nhận cuộc thỏa thuận hợp đồng mua hàng giữa ông A và công ty X) … Việc này gây thiệt hại cho công ty X.
Trường hợp công ty X mang hàng đến cho ông A, nhưng mặt hàng không đúng như trong thỏa thuận, mà công ty X cứ một mực khẳng định rằng ông A đã đặt mua sản phẩm này. Điều này gây thiệt hại cho ông A.
Như vậy, chối bỏ thỏa thuận hợp đồng gây thiệt hại cho các đối tượng tham gia TMĐT. Chống chối bỏ giao dịch là bài toán quan trọng trong quá trình thỏa thuận hợp đồng trong TMĐT.
Giải pháp:
Để chống chối bỏ hợp đồng giao dịch TMĐT trước hết cần có một hành lang pháp lý cho giao dịch TMĐT. Về mặt kỹ thuật, giải pháp thông dụng để đảm bảo chống chối bỏ thỏa thuận hợp đồng TMĐT, đó là chữ ký số và chứng thực số. Ví dụ chữ ký không thể phủ nhận được, đó là chữ ký có thể chứng minh xác thực rằng anh A có tham gia vào một giao dịch số nào hay không, chữ ký trên văn bản giao dịch có đúng đích thực của anh A hay không, nếu đó là chữ ký của A mà A chối bỏ, sẽ có giao thức chứng minh, buộc A không được chối bỏ giao dịch hợp đồng đã thỏa thuận.
4. Chương 4: THỬ NGHIỆM CHƯƠNG TRÌNH CHỮ KÝ SỐ BỘI TRÊN ĐƯỜNG CONG ELLIPTIC BỘI TRÊN ĐƯỜNG CONG ELLIPTIC
4.1 CẤU HÌNH HỆ THỐNG
Nhằm chứng minh tính đúng đắn của hai lược đồ chữ ký bội đã được đề xu t ở chương 2, trong phần này, tác giả xây dựng phần mềm thử nghiệm mô phỏng các hoạt động tạo khóa, kiểm tra và xác thực chữ ký trong hai lược đồ chữ ký bội tuần tự và ngang hàng.
Phần mềm thử nghiệm sẽ được cài đặt trên máy tính của các thành viên tham gia vào quá trình tạo chữ ký. Phần mềm cho phép các cá nhân có thể ký và kiểm tra sự hợp lệ của chữ ký và bảo toàn văn bản. Để đáp ứng các mục tiêu trên, yêu cầu tối thiểu về c u hình phần cứng và phần mềm của hệ thống như sau:
4.1.1 Cấu hình phần c ng
Yêu cầu phần cứng của chương trình:
CPU
- Tối thiểu: 1GHz pentinum processor
- Đề nghị: 2GHz pentinum processor hoặc cao hơn
RAM
- Tối thiểu: 1 GB
- Đề nghị: 2 GB hoặc cao hơn
HDD
- Tối thiểu: 50 GB
4.1.2 Cấu hình phần mềm
Yêu cầu phần mềm của chương trình:
- Máy phải cài đặt và sử dụng một trong các hệ điều hành sau : window 2000, window XP (pack 1,2,3), window server, window 7.
4.2 CÁC THÀNH PHẦN CỦA CHƯƠNG TRÌNH
Chương trình thử nghiệm sử dụng ngôn ngữ Matlab minh họa cho hai lược đồ chữ ký bội trên đường cong Elliptic (tuần tự và ngang hàng). Mỗi một lược đồ gồm bốn phần chính:
- Khởi tạo và thực hiện các phép toán trên đường cong Elliptic - Tạo khóa
- Tạo chữ ký bội - Xác thực chữ ký bội
Hình 4.1. Chương trình mô phỏng lược đồ chữ ký bội ngang hàng
4.2.1 Khởi tạo và thực hiện các ph p toán trên đường cong Elliptic
Khởi tạo các tham số của đường cong Elliptic (như a,b,p,n), điểm cơ sở (G), số thành viên tham gia ký (N).
4.2.2 Tạo khóa
Trên cơ sở các tham số khởi tạo, phần này tạo ra khóa công khai (pub) của cả nhóm và khóa bí mật cho từng cá nhân (pri).
4.2.3 Tạo chữ ký bội
Sử dụng hàm băm mật mã kết hợp với văn bản cần ký và các tham số đã khởi tạo để tạo chữ ký bội cho cả nhóm. Chữ ký bội trên file đại diện đầu vào được thình
thành trên cơ sở hai lược đồ chữ ký bội tuần tự và ngang hàng đã được đề xu t trong phần trước.
4.2.4 Xác thực chữ ký bội
Trên cơ sở nhận được văn bản, chữ ký bội và các tham số công khai, phần này tiến hành xác thực tính hợp lệ của chữ ký và tính toàn vẹn của văn bản.
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