Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
442,72 KB
Nội dung
Chƣơng IV CHỮ KÝ ĐIỆN TỬ VÀ HÀM BĂM Chƣơng tiếp tục trình bày công cụ sở KHMM, chữ ký điện tử hàm băm, với chủ đề nhƣ sau: Các khái niệm nguyên lý thiết kế sở Hàm băm ứng dụng chữ ký điện tử Các kỹ thuật làm hàm băm Đọc thêm: Các hệ chữ ký khác RSA Đọc thêm: Các hệ DS đặc biệt 4.1 CÁC KHÁI NIỆM VÀ NGUYÊN LÝ THIẾT KẾ CƠ SỞ Khái niệm chữ ký điện tử đƣợc hai nhà bác học Diffie Hellman đề xuất báo tiếng ông khai sáng nguyên lý hệ thống mật mã công khai (1976) Ý tƣởng mô chữ ký tay văn đời thƣờng có từ lâu, nhƣng thực thực đƣợc với đời hệ mật mã KCK (khóa công khai) Nhƣ biết, hệ thống mật mã đối xứng đƣợc sử dụng phổ biến trƣớc tính chất đại diện cho cá nhân Trong đó, hệ mã hóa khóa công khai (hay gọi phi đối xứng) đƣợc xem đƣợc tạo lập để giúp bảo mật truyền tin liên lạc cá nhân phần lại xã hội Nhờ có mật mã KCK, khái niệm chữ ký điện tử đƣợc thực hóa giúp cho giao dịch kinh tế thƣơng mại đời sống vào số hóa hoàn toàn, qua thúc đẩy hoạt động dịch vụ trực tuyến Internet phát triển nhƣ ngày Chữ ký điện tử hay chữ ký số so sánh tƣơng tự hoàn toàn với chữ ký tay hay không? Thực hoàn toàn tƣơng tự Chữ ký tay dấu vết ngƣời tác động lên giấy mang chứa văn (in/viết sẵn) Phần chữ ký tay phần văn có sẵn độc lập, quan hệ ràng buộc Do qui luật giới vật lý, ngƣời ta đánh tráo chữ ký theo kiểu đơn giản xé bỏ phần tờ giấy chứa chữ ký ghép nối vào phần giấy mang chữ ký tạo khác Tuy nhiên giới số hóa, qui luật vật lý mặt, lập trình viên cắt ghép văn số hóa mà không bị phát 4.1.1 Sơ đồ chữ ký Do đó, nguyên lý tạo chữ ký điện tử khác hẳn phức tạp Đó là, có văn dạng nhị phân X, ngƣời ta phải tạo chữ ký dạng nhị phân S cho S phụ thuộc hàm vào X, tức S=f (X); quan hệ hàm bí mật (có tham số khóa bí mật) ngƣời Do có kẻ thử đánh tráo (tức giả mạo) chữ ký, quan hệ hàm S=f (X) không bị phát Tuy nhiên việc phát xem văn có chữ ký có chuẩn hay bị giả mạo lại phải thao tác mà làm đƣợc dễ dàng, không cần đến khóa bí mật (do ngƣời chủ chữ ký nắm giữ) Vì hệ thống chữ ký điện tử đƣợc xây dựng nguyên tắc sử dụng hai thuật toán riêng rẽ cho việc tạo chữ ký kiểm định chữ ký, thông qua việc sử dụng cặp hàm toán học đối lập nhau, cần khóa bí mật không Chính điều này, mật mã khóa công khai đƣợc khai thác để giúp thực điểm chốt chế đặc biệt Giả sử Alice thiết lập hệ mật mã KCK với thành phần khóa bí mật zA công khai ZA, tức có hàm sinh mã EZA() hàm giải mã DzA (), Alice tạo chữ ký điện tử hàm DzA () ngƣời khác kiểm tra hàm EZA () Cụ thể là, với văn nhị phân X, Alice tạo đƣợc chữ ký S= DzA (X); văn có chữ ký Y=X||S Khi văn đến tay Bob, Bob kiểm tra tính hợp lệ việc tính X‟= EZA (S) đối chiếu X = X‟? Lƣu ký, Bob cần kiếm đƣợc khóa công khai Alice, ZA, cách Ví dụ 4.1 Giả sử Alice có văn X = 0101 0011 0111 Giả sử Alice thiết lập hệ mật mã RSA với cặp khóa (eA,dA) theo modulo n Alice thiết lập văn có chữ ký Y=X||Z nhƣ sau: X = 010 100 110 111 S=XdA mod n =100 101 011 001 Y=X|| S =010100110111100101011001 Khi Bob nhận đƣợc văn Y này, kiểm định chữ ký thông qua: - Tách Y thành hai phần X1 = 010100110111 S1= 100101011001 - Tính X2 = S1eA mod n = 010100110111 so sánh xem X1 X2 = 0? Nếu chữ ký hợp lệ Lƣu ý, dễ thấy Y phần chữ ký (S) văn gốc (X) có xâu nhị phân có chiều dài 4.1.2 Các ứng dụng chữ ký điện tử Tính chất không chối cãi (non-repudiation): Nhƣ Bob nhận đƣợc văn có chữ ký X||S dùng khóa công khai Alice để kiểm định thành công, văn trở thành chứng, Alice có muốn chối cãi tạo ký không đƣợc Bởi Alice sở hữu khóa dA bí mật để tạo đƣợc chữ ký hợp lệ mà Ta gọi tính chất chữ ký điện tử tính chối cãi (non-repudiation) Ngay Alice có khiếu nại bị oan với lý chữ ký tạo kẻ ăn cắp đƣợc khóa bí mật cô ta, điều chứng minh đƣợc (tình trạng “tình lý gian”) Công chứng Để đảm bảo phòng tránh đƣợc tình trạng chữ ký giả mạo kẻ gian ăn cắp đƣợc khóa bí mật ngƣời bị hại, ngƣời ta giới thiệu thêm hệ thống công chứng – public notary Ý tƣởng thực hiện: có thêm bên thứ ba tham gia, vô tƣ có thẩm quyền hợp pháp, đƣợc gọi công chứng viên (public notary), đƣợc thuê để ký xác nhận thêm vào sau chữ ký Alice văn quan trọng mà Alice ký Văn đầy đủ chữ ký có dạng Y=X||S A||SN chữ ký công chứng viên SN ký văn X||SA Bằng chứng biên nhận: Trong truyền tin liên lạc, chữ ký điện tử sử dụng để đảm bảo tính xác tài liệu (bằng chữ ký bên gửi A), bên nhận B gửi lại chữ ký vào tài liệu nhận nhƣ chứng để A biết B thực nhận đƣợc tài liệu Nếu thủ tục đƣợc thực hiện, sau A chứng minh đƣợc gửi tài liệu cho B, lúc B muốn chối không đƣợc A B: Y= EZB(X||DzA(X)) B: tính EzB(Y) thu đƣợc X S=DzA(X); kiểm tra xem X =? EZA(S) B A: Y‟ = EZA(DzB(X)) A: tính SB(X) = DzA(Y‟), chữ ký B X, chứng xác nhận B nhận đƣợc tài liệu X xác 4.1.3 Nhược điểm hệ chữ ký sở Hệ chữ ký điện tử theo tiếp cận ban đầu nói trên, tức sử dụng Dz để ký EZ để kiểm định, đơn giản phạm phải nhƣợc điểm lớn: Chữ ký dài, dài tài liệu: Với văn dài, ta cần dùng việc chia khối ký lên nhiều khối; cụ thể X = X1|| X2|| X3|| ||Xt S= SA(X1) || SA(X2) || SA(X3) || || SA(Xt)) Rõ ràng số lƣợng khối văn ký nhiều gấp đôi ban đầu Không dài, việc thực nhiều lần thuật toán KCK (ký lên khối) làm thủ tục ký diễn lâu, thời gian tỷ lệ với độ dài văn Điều không chấp nhận đƣợc với giao dịch trực tuyến Kẻ công dễ dàng phá hệ thống chữ ký kiểu công lắp ghép khối (thay đổi thứ tự, thêm hay bớt khối …) Cách làm chi tiết tƣơng tự nhƣ công vào chế độ mật mã bảng tra điện tử ECB, giới thiệu chƣơng Vì hệ thống chữ ký điện tử đơn giản kiểu không đƣợc sử dụng Giải pháp đầy đủ có thêm hộ trợ hàm băm, tức “Băm” tài liệu trƣớc ký, đƣợc trình bày 4.2 HÀM BĂM VÀ ỨNG DỤNG CHỮ KÝ ĐIỆN TỬ Một hàm băm H lấy đầu vào thông tin X có kích thƣớc sinh kết chuỗi hX=h(X) có độ dài cố định, thƣờng nhỏ nhiều so với kích thƣớc X Chuỗi thƣờng đƣợc gọi cốt yếu, hay cốt (digest) thông tin X Ví dụ: Thông tin X tệp độ dài hàng trăm Kb cốt khối có độ dài 128bit Tất nhiên, điều dẫn đến khả có thông tin X≠X‟ mà cho cốt giống với hàm băm, tức H(X)=h(X‟) Trƣờng hợp gọi đụng độ (collision) Ví du: Hàm H(X) đƣợc lấy hàm lấy số dƣ phép chia cho 10, rõ ràng ta có: H(56)= H(156) = H(96) Tuy nhiên với hàm băm thiết kế tốt, đụng độ gần nhƣ xảy đƣợc thực tế Nói cách khác cố tìm, khối lƣợng tính toán phải thực lớn, không khả thi với công cụ tính toán thời Hàm băm có ứng dụng chủ chốt hệ chữ ký điện tử đƣợc sử dụng hiên Thay ký (tức thực thuật toán DzA) lên văn X, Alice cần thực việc ký lên hX; nhƣ văn ký có dạng X|| DzA(H(X)) Để đảm bảm an toàn cao, chống đƣợc công giả mạo chữ ký, cần sử dụng hàm băm mật mã (cryptographic hash function) với thuộc tính nhƣ sau: Lấy đầu vào xâu với độ dài sinh xâu với độ dài cố định Có tính chiều (one - way): biết X, dễ dàng tính đƣợc giá trị băm hX, nhƣng tính ngƣợc đƣợc X biết hX, với công cụ tính toán (bất khả thi tính toán) Có tính phi đụng độ cao (collision free), tức thực tế tim đƣợc hai thông tin X X‟ cho H ( X ) H ( X ) Tất nhiên, bất khả thi mặt tính toán Nhận xét: Các thuộc tính hàm băm cần thiết cho hệ chữ ký điện tử (DS), vì: + Tính chất cần cho việc sinh chữ ký cách hiệu (chữ ký lên (hX rõ ràng ngắn nhiều lên trực tiếp X) + Tính chất đƣợc dùng để chống lại kẻ giả mạo chữ ký Nếu nhƣ kẻ giả mạo Mallory tạo đƣợc cặp thông báo XX‟với H ( X ) H ( X ) cho Alice X có lợi X‟ bất lợi, Mallory dễ dàng xin đƣợc chữ ký Alice lên X sau Mallory đánh tráo hai văn X X‟, tức sử dụng văn ( X ' , S A ( X ) S A ( X ' )) để làm hại Alice Có thể chứng minh đƣợc tính phi đụng độ dẫn đến tính chiều (oneway), cần xây dựng hàm băm với tính phí đụng độ cao đủ Một hệ DS mạnh với hàm băm tốt lại kết hợp nên hệ chữ ký yếu, cần phải thận trọng việc kết hợp X H H(X) DA Concatenation C XDA(H(X)) Bé t¹o ch÷ ký DA(H(X)) EA - Accept + XDA(H(X)) H - Reject (H(X) Bé kiÓm ®Þnh ch÷ ký Hình 4.1: Hệ sinh chữ ký điện tử có sử dụng hàm băm 4.2.1 Đụng độ Rõ ràng với không gian giá trị băm nhỏ không gian tin mặt kích thƣớc chắn tồn đụng độ (collision), nghĩa có hai rõ XX’ mà giá trị băm chúng giống nghĩa hX=hX’ Điều thấy rõ ràng qua nguyên lý Diricle - Nếu có n+1 thỏ thả vào n chuồng phải tồn chuồng mà có hai thỏ chung Ví dụ 4.2 Giả sử không gian tin Zp* = {1,2, ,p-1} không gian giá trị băm với q nguyên tố p>q Zq*={1,2, ,q-1} Chọn số g Zq* Để “băm” tin X sử dụng hàm băm: h(x) = gx (mod q) Ví dụ chọn p=15, q=11, g=3 ta có: 32 = (mod 11) 33 = (mod 11) 34 = (mod 11) 35 = (mod 11) 36 = (mod 11) 37 = (mod 11) Collision! Nếu ta sử dụng chuỗi bit để biểu diễn tin H(0010) = H(0111) Trong thực tế ngƣời ta thƣờng chọn không gian băm cỡ khoảng 64bit, 128 bit Trong văn thực tế lớn nhiều, cỡ Kb trở lên, việc tồn đụng độ chắn Tuy nhiên sử dụng hàm băm mật mã có không gian băm lớn đƣợc chế tạo tốt (an toàn) việc tìm đụng độ đòi hỏi khối lƣợng tính toán lớn đến mức phi thực tế (infesible computation) Việc chế tạo hàm băm phi đụng độ khó Nhiều hàm băm đƣợc phát minh nhóm có tên tuổi giới sau thời gian xuất bị ngƣời khác đụng độ tồn không đƣợc công nhận an toàn 4.2.2 Birthday attack Nhƣ ta biết, có dạng công gỉa mạo nguy hiểm hệ chữ ký điện tử có dùng hàm băm kẻ công tìm cách tạo đƣợc văn X X’ có nội dung khác (một có lợi có hại cho bên A, ngƣời bị lừa để ký vào) mà có giá trị băm giống Kẻ thù tìm cách tạo số lƣợng lớn văn có nội dung không thay đổi nhƣng khác biểu diễn nhị phân (đơn giản việc thêm bớt dấu trắng, dùng nhiều từ đồng nghĩa thay ) sau sử dụng chƣơng trình máy tính để tính giá trị băm văn đem so sánh với để hi vọng tìm cặp văn có đụng độ Nhƣ nêu phần để chắn tìm đƣợc đụng độ nhƣ số văn cần đƣợc tính giá trị băm phải lớn kích thƣớc không gian băm Chẳng hạn nhƣ hàm băm có không gian băm 64 bit số lƣợng văn cần đƣợc đem nạp vào chƣơng trình thử phải 264, số lớn đến mức hàng kỷ không thực xong! Tuy nhiên nhƣ kẻ công đem thử với lƣợng văn nhiều, phạm vi tính toán đƣợc, xác xuất để tìm đƣợc đụng độ có đáng kể hay không? Và câu trả lời thực đáng ngạc nhiên, xác xuất lớn, tức có nhiều hy vọng tìm đƣợc đụng độ dù tập văn đem thử không lớn Bản chất tƣợng đƣợc minh hoạ rõ qua phát biểu, thƣờng gọi Nghịch lý Ngày sinh nhật (Birthday Paradox) nhƣ sau: Trong nhóm có 23 người bất kỳ, xác xuất để có hai người có ngày sinh nhật không ½ Một cách tổng quát, giả sử hàm băm có m giá trị băm khác (tức kích thƣớc không gian output hàm băm m) Nếu có k giá trị băm từ k thông tin đƣợc chọn ngẫu nhiên khác nhau, xác xuất để có đụng độ là: P(m, k ) e k ( k 1) 2m (*) Với e số Ơ - le: e 2.7 Ƣớc lƣợng xác xuất phụ thuộc vào kích thƣớc không gian băm (m) số lƣợng văn thông tin đƣợc thử đến không phụ thuộc vào hàm băm sử dụng Tức kích thƣớc không gian băm xác lập chặn dƣới (lower bound) cho xác xuất Ví dụ 4.3: Trong nghịch lý ngày sinh nhật nói trên, ta thấy k = 23, m = 365, xác xuất tồn ngƣời có ngày sinh nhật là: P(365,23) e 23.22 2.365 2.7 0.7 0.5 Công thức nói cho phép xác định số lƣợng thông tin (k) cần thiết để tìm đƣợc đụng độ giá trị băm với xác suất đủ lớn, hàm băm xác định trƣớc Ngƣợc lại cho phép tính đƣợc kích thƣớc tối thiểu đầu hàm băm để chống lại đƣợc hiệu ứng Birthday attack cách có hiệuquả Ví dụ 4.4: Giả sử kẻ thù có khả tính toán tập giá trị băm đến 1020 Cần xác định không gian băm để xác xuất kẻ thù tìm đƣợc đụng độ nhỏ 10-3 Áp dụng ƣớc lƣợng xác suất ta thấy P(m,k) > e 1)2m = 0.999 Từ ta ƣớc lƣợng m hợp lý: k ( k 1) 2m 0.001 e-k(k- k (k 1) log e log 0.999 2m k2 1.4 3.3 2m k2 m 10 39 4.6 Nhƣ không gian băm cần đảm bảo lớn 21039, tức kích thƣớc giá trị băm không nhỏ log221039=131 bit Tìm đụng độ không gian văn có kích cỡ 232 điều thực máy tính PC bình thƣờng Việc nghiên cứu Birthday Paradox cho ta thấy lƣợng văn cần đƣa thử nhỏ so với không gian băm (2 32 so với 264) mà xác suất tìm đƣợc đụng độ cao (50%) Điều cho thấy mối hiểm hoạ cho hệ dùng hàm băm có không gian output nhỏ Phép công đƣợc gọi Tấn công ngày sinh nhật (Birthday attack) 4.3 CÁC KỸ THUẬT LÀM HÀM BĂM Các kỹ thuật để chế tạo đƣợc hàm băm chia làm ba loại: Dựa việc áp dụng hệ mã khối theo mật mã khoá bí mật đối xứng (SKC) Dựa phép toán số học đồng dƣ Các hàm thiết kế băm đặc biệt 4.3.1 Các hàm băm chế từ hệ SKC Việc tạo hàm băm nhờ áp dụng kỹ thuật SKC ý tƣởng tự nhiên, nhiên dễ dàng thực Có nhiều sơ đồ đƣợc đề xuất nhƣng sau lần lƣợt bị bác bỏ Sơ đồ sử dụng chế độ CBC (mã khối móc xích) Phƣơng pháp đƣợc sử dụng làm chuẩn cho việc chứng thực ngân hàng (banking authentication), cụ thể chuẩn ANSI 9.9, ANSI 9.19, ISO 873-1 Xi + E Z Yi X = X1 X2 X3 Xn Yi = Ez(Xi Yi-1) H(X) = Yn Hình vẽ 4.2: Hàm băm sử dụng SKC với chế độ CBC Ta thấy, để bên nhận tính đƣợc H(X) phải có khoá Z, nhƣợc điểm phƣơng pháp Nếu nhƣ khoá Z chẳng may rơi vào tay kẻ thù dễ dàng công hệ thống sử dụng hàm băm Sơ đồ Rabin-Matyas-Davies-Price (RMDP) X = X1 X2 H0 = (hay số ngẫu nhiên đó) H i E X i ( H i 1 ) Ở đây, tất nhiên TIN phải đƣợc chặt thành khối có kích cỡ khoá hệ mã E Giá trị băm H(X) = (H0,Ht) Ngƣời ta chứng minh đƣợc với không gian băm 64bit H(X) one-way, tức cho Y=H(X), việc tìm ngƣợc đƣợc X khả thi Sơ đồ Davies-Meyer (DM hash) X = X1 X2 H0 = vector khởi tạo số ngẫu nhiên H i E X i ( H i 1 ) H i 1 Kết luận Việc xây dựng hàm băm từ mã khối đòi hỏi phải có phân tích tính an toàn cách cẩn thận DM đƣợc coi nhƣ an toàn sử dụng với mã khối kích thƣớc 128 bit Không có hệ khác đƣợc đề xuất mà đƣợc chứng minh an toàn 4.3.2 Các hàm băm dựa phép toán số học đồng dư QCMDC (Quadratic Congruential Manipulation Detection Code) Đƣợc đề xuất Jueneman (1983) Bản rõ đƣợc chia thành khối m bit H0 giá trị khởi đầu đƣợc chọn ngẫu nhiên giữ bí mật ( đƣợc gọi hàm băm có khóa - keyed hash function) Các bƣớc xây dựng hàm băm nhƣ sau: M số nguyên tố cho M 2m-1, Hi = (Hi-1 + Xi)2 (mod M) Hn giá trị băm Hệ bị phá (Coppersmith) Davies-Price (1985) Chia văn thành khối có m-d bit: X = X1 X2 X3 Xn Hi = (Hi-1 Xi)2 (mod M), H0=0 M luỹ thừa Hệ bị chứng minh không đảm bảo tính chiều (Girault) 4.3.3 Các hàm băm chế tạo đặc biệt Ngoài kỹ thuật thông thƣờn nói ngƣời ta tìm nhiều cách riêng biệt khác để chế tạo hàm băm có độ tin cậy cao Thông thƣờng sơ đồ phức tạp có cấu trúc đặc biệt, nên không trình bày đầy đủ Sau số hàm băm tiếng MD5 (Rivest 1992) Đây hàm băm có tiếng đƣợc sử dụng thông dụng: + Nó lấy vào khối đầu vào 512 bit sinh giá trị băm 128 bit + Đƣợc tin phi đụng độ one-way + Thuật toán MD5 đƣợc thiết kế cho phép chạy tốt máy tính 32 bit Nó sử dụng phép toán đơn giản nhƣ phép cộng modulo 32, thích hợp với ciệc mã hoá cho xử lý 32 bit SHA (Secure Hash Function) Đây thuật toán đƣợc đề xuất bảo trợ quan NIST để sử dụng hệ chữ ký DSA (cũng dự chuẩn cho chữ ký điện tử) Nó cho giá trị băm 160 bit đƣợc thiết kế với tiếp cận nhƣ MD5 HAVAL Một hệ băm Australia cho phép thay đổi kích thƣớc giá trị băm Cấu trúc giống nhƣ MD5 Snefru Mekle (1989) + Là hàm băm có khóa (keyed hash function) + Cho phép lựa chọn kích thƣớc giá trị băm 128 bit 256 bit + Eli Biham đụng độ cho trƣờng hợp 128 bit 10 4.4 CÂU HỎI VÀ BÀI TẬP MỞ RỘNG Phân tích khác biệt chữ ký truyền thống chữ ký điện tử Tác nói chữ ký điện tử có hai công dụng: vừa xác thực văn vừa xác thực danh tính ngƣời ký Một thủ tục gửi có biên nhận đƣợc đơn giản hóa với bƣớc đơn giản nhƣ sau: A B: Y= EZB(DzA(X)) Phân tích rõ xem trƣờng hợp thủ tục đơn giản hóa sử dụng đƣợc Với sơ đồ chữ ký đơn giản ban đầu, phân tích chi tiết khả công kẻ địch theo kiểu lắp ghép khối Phác thảo sơ đồ chữ ký chi tiết sử dụng thuật toán RSA xây dựng ví dụ minh họa số Với trƣờng hợp không gian băm 64 bit, đem thử lƣợng văn 232 xác xuất để tìm thấy đụng độ bao nhiêu? Hãy nêu phƣơng pháp để tạo 232 văn có nội dung nhƣ nhau, nhƣng giá trị băm chúng hầu hết khác Hãy nêu phƣơng pháp để xây dựng văn có nội dung đối nghịch nhƣng lại có giá trị băm trùng Nhƣợc điểm hàm băm chế tạo từ sơ đồ sử dụng thuật toán mật mã khối gì? 10 Tìm cách chứng minh nghịch lý Birthday dạng tổng quát, tức hệ thức (*) Gợi ý: Giả sử xác xuất để văn đem băm thu đƣợc giá trị xác định trƣớc, p (p=1/m) chứng minh xác xuất để k văn có giá trị băm không trùng là: P(k văn không trùng nhau) = (1 p)(1 p)(1 p) (1 (k 1) p) 11 PHẦN ĐỌC THÊM 4.5 CÁC HỆ CHỮ KÝ KHÁC RSA 4.5.1 El-Gamal Đƣợc xây dựng tính khó việc tính toán logarit không gian Zp mà p số nguyên tố Thuật toán + Alice chọn số nguyên tố lớn p cho p-1 có ƣớc số nguyên tố lớn + Giả sử a phần tử cấu trúc (primitive element) Zp: {ai, i=0,p-1} Zp* + Alice chọn x tính y=ax (mod p) + Khoá công khai p,a,y Khoá bí mật x Để ký rõ X: + Alice chọn số nguyên k, k p-1 cho gcd(k,p-1) =1 + Cô ta tính r=ak (mod p) + Tính s=k-1(X-xr) (mod p-1) + Tính s=k-1(X-xr) (mod p-1) + TIN với chữ ký là: (X||(r,s)) Để kiểm định chữ ký, làm nhƣ sau: a X yr r s Ví dụ 4.5 Chọn p=11, a=2 Khoá bí mật x=3 Khoá công khai: 23=8 (mod 11) Để ký lêm văn X=9: + chọn k=7 + tính k-1=3 (mod 10) + r=ak=27=7 (mod 11) + s= 3(9-7.3) 10 = + Văn ký (X,r,s) = (9|| (7,4)) Kiểm định chữ ký: 29 = = 87 74 (mod 11) 12 DSA Đƣợc đề xƣớng NIST, công bố năm 1994 Những phê bình chống lại DSA: + không dùng đƣợc cho mã hoá liệu phân phối khoá + đƣợc phát triển NSA (cơ quan an ninh Hoa kỳ) không đáng tin + Kích thƣớc khoá nhỏ 4.6 CÁC HỆ DS ĐẶC BIỆT Bên cạnh hệ chữ ký thông thƣờng với công dụng tƣơng tự nhƣ chữ ký tay truyền thống, ngƣời ta sáng tạo nhiều thể loại chữ ký đặc biệt để phục vụ cho tình đặc biệt thực tế giao dịch đời sống Các hệ đòi hỏi sáng tạo riêng thuật toán nhiều phức tạp Sau ta nêu qua số ví dụ 4.6.1 Chữ ký mù (Blind signature) Trong hệ chữ ký thông thƣờng, ngƣời ký phải đƣợc nắm rõ nội dung văn cần kỹ, lƣu Với chữ ký số, vấn đề an toàn nhắc lại đây, B ký vào văn M mà A tạo ra, việc A thay đổi bóp méo văn M sau phải đƣợc phòng chống Nói cách khác, A xin đƣợc từ B văn có chữ ký M||S=SB(M), A tạo đƣợc cặp M’||S’, mà S’=SB(M’) Nhƣ vậy, hệ chữ ký đảm bảo cho B luôn làm chủ việc ký lên Trong hệ chữ ký mù (blind signature), ngƣợc lại, ngƣời ký không đƣợc làm chủ thực lên nội dung mà ký Nói cách khác, B ký lên M A tạo ra, sau A tạo M’||S’=SB(M’), mà B biết đƣợc M’ dù lƣu M trƣớc Chính hệ chữ ký đƣợc gọi Blind Signature (ngƣời ký nhƣ bị bịt mắt) Tuy nhiên hệ chữ ký đảm bảo cho ngƣời ký B khả kiểm tra tính hợp lệ thông tin cần ký Nói cách khác cách thức tạo M M’ A đƣợc kiểm soát A tạo văn có nội dung với chữ ký B để làm hại B đƣợc Có thể so sánh cách hình ảnh, khái niệm việc tạo chữ mù với trình thực giới thực nhƣ sau A chuẩn bị văn M, cho vào phòng bì A4, có kèm tờ giấy than, dán lại đƣa cho B B ký lên phía phong bì, nhƣng chữ ký đƣợc tạo văn bên thong qua tờ giấy than Mặc dù B biết đƣợc nội dung thật văn này, nhƣng đánh giá đƣợc tính trung thực A (không tạo xấu cho B) mà phép kiểm tra theo phƣơng pháp thách thức-đáp ứng 13 Sự “ngƣợc đời” ý nghĩa khái niệm chữ ký mù đƣợc giải thích ứng dụng đƣợc trình bày dƣới Đó việc xây dựng hệ toán tiền mặt điện tử, khái niệm tiền mặt đƣợc xây dựng thông qua việc đảm bảo tính vô danh đồng tiền – ngƣời kiểm ngân thu tiền mặt biết nguồn gốc, tức đồng tiền đến từ đâu Hệ tiền mặt điện tử đáp ứng đƣợc gọi quyền sở hữu thông tin riêng tƣ ngƣời sử dụng (user privacy) giới thƣơng mại điện tử mà điều chƣa đƣợc quan tâm thoả mãn1 Ở ta hình dung hệ e-cash (tiền mặt điện tử) nhƣ mô việc tiêu tiền mặt sống nhƣng đƣợc thực môi trƣờng - toán điện tử Đồng tiền chẳng qua chuỗi bit, đƣợc nhà băng phát hành Khi cần ngƣời sử dụng đến nhà băng để rút tiền điện tử này, trừ vào tài khoản ngân hàng Lúc đến cửa hàng mua thứ gì, ngƣời sử dụng toán đồng tiền điện tử Cửa hàng chấp nhận đồng tiền số họ kiểm định thấy nhà băng tạo (có chữ ký nhà băng) Cửa hàng sau gửi số tiền điện tử nhà băng để chuyển vào tài khoản họ Tuy nhiên tiền điện tử nhà băng tạo phát hành cho ngƣời sử dụng nhà băng tạo sở liệu để lƣu trữ thông tin cụ thể phát đồng tiền số cho ngƣời sử dụng Những thông tin đem kết hợp với „sổ sách‟ cửa hàng hoàn toàn truy đƣợc ngƣời sử dụng dùng đồng tiền để mua gì, nghĩa đồng tiền vô danh nhƣ tiền mặt thông thƣờng (tất nhiên làm đƣợc điều phải có “thông đồng” hai bên nhà băng bên bán hàng; điều xảy bên bán hàng siêu thị lớn, muốn tìm cách nắm đƣợc thói quen mua bán ngƣời mua) Chính đồng tiền phải đƣợc tạo sở phối hợp ngƣời rút tiền (withdrawer) nhà băng cho cuối nhà băng có ký lên mà biết đƣợc đồng tiền - số cụ thể Rõ ràng ứng dụng điển hình chữ ký mù (blind signature) Ví dụ 4.6: ví dụ đơn giản thể cách xây dựng ứng dụng blind signature hệ tiền mặt điện tử (e-cash): Hệ chữ ký dựa tính khó phép lấy bậc ba theo modul đồng dƣ N PTTSNT N Alice muốn đƣa nhà băng ký lên văn x đó, Hiện phƣơng pháp toán thịnh hành Internet, phƣơng pháp lập hồ sơ toán (billing) hay sử dụng thẻ tín dụng (credit card), công ty bán hàng hay credit card hoàn toàn theo dõi đƣợc bạn thích mua loại hàng gì, dạng thông tin có ích cho họ, bán lại cho đối tƣợng quan tâm Đây rõ ràng điều mà khách hàng không mong muốn Hệ tiền mặt điện tử xây dựng thành công giúp đảm bảo tuyệt đối tính riêng tƣ (privacy) cho khách hàng tham gia thƣơng mại điển tự, tƣơng tự nhƣ mua bán tiền mặt đời thƣờng 14 sử dụng nhân tử (bí mật) : đáng nhẽ đƣa thẳng cho nhà băng giá trị băm h(x) đƣa giá trị nhƣ sau thay vì: h( x) (mod N) Nhà băng ký lên, tức tính bậc trị (chỉ nhà băng làm đƣợc nắm đƣợc PTTSNT N), gửi trả cho Alice h( x) 1/ (mod N) Alice việc chia giá trị nhận đƣợc cho thu đƣợc h(x)1/3 tức chữ ký nhà băng, nhà băng biết trị h( x ) 1/ tức biết đƣợc h(x) Alice có (x, h(x)1/3) nhƣ đồng tiền mặt (giá trị phải đƣợc qui định trƣớc), mua hàng (trên Web chẳng hạn) trả cho Bob-ngƣời bán hàng hay cung cấp dịch vụ Bob kiểm tra đồng tiền (a,b) phép kiểm tra: Tính s=b3 Tính t=h(a) So sánh s t, chấp nhận Sau đồng tiền điện tử đƣợc Bob gửi cho nhà băng để đƣợc toán vào tài khoản (deposit) 4.6.2 Group signature Tình thực tế minh hoạ cho loại chữ ký nhƣ sau: Một công ty có nhiều máy tính đƣợc nối với mạng cục bộ, máy đƣợc đặt số phòng ban phận Mỗi phòng có máy in mà cán phòng đƣợc in Vì ngƣời ta muốn chế để việc in thực mà kiểm soát đƣợc không cho ngƣời phòng in đƣợc, yêu cầu in lại không cần phải nêu rõ tên ngƣời yêu cầu để tránh xâm phạm tính riêng tƣ công việc Nhƣ hệ chữ ký đƣợc thiết lập cho có ngƣời nằm nhóm - phòng - tạo đƣợc chữ ký mà ngƣời kiểm định - ví dụ máy in hay chƣơng trình quản máy in - kiểm tra chấp nhận Chữ ký nói lên ngƣời ký nằm nhóm không nói lên đích xác ngƣời nên giữ đƣợc tính bí mật riêng tƣ ngƣời ký Tuy nhiên hệ chữ ký đặc biệt có tính chất đặc biệt là: nhƣ cần thiết, ngƣời thẩm “mở” đƣợc chữ ký để xem cụ thể nhóm ký Ứng dụng nhƣ chƣơng trình quản máy in cho thấy có ngƣời lạm dụng trƣởng phòng sử dụng quyền hạn để “phanh phui” chữ ký lên yêu cầu in tốn đó, sau có biện pháp phạt ngƣời lạm dụng nhƣ nộp tiền phạt 15 Khả làm cho tất ngƣời phải biết điều máy in công không muốn bị “bêu tên” Hệ chữ ký đƣợc gọi hệ chữ ký nhóm (group signature) 4.6.3 Undeniable signature Đây chữ ký mà thuật toán kiểm định đòi hỏi phải có tham gia ngƣời ký Thực chất chữ ký có tính chất chuyển giao đƣợc (untransferable): Chỉ có ý nghĩa ngƣời nhận ngƣời có trao đổi làm ăn với ngƣời ký, chuyển cho ngƣời khác tác dụng (không thể kiểm định đƣợc chữ ký nữa) Các văn có chữ ký không nhằm vào mục đích đem công bố nơi khác mà có tính chất giấy phép Vì chép ý nghĩa Chữ ký đƣợc dùng việc bán sản phẩm phần mềm: hãng phần mềm bán sản phẩm có chữ ký chứng tỏ tính quyền Việc kiểm định đòi hỏi phải liên lạc với hãng Nếu nhƣ có việc buôn bán phần mềm chép lúc ngƣời mua đòi kiểm định bị lộ không thực đƣợc 4.6.4 Multisignature (Đồng ký) Ơ đây, chữ ký ngƣời mà nhóm ngƣời Muốn tạo đƣợc chữ ký, tất ngƣời phải tham gia vào protocol Tuy nhiên chữ ký đƣợc kiểm định Đây trƣờng hợp dành cho thực tế việc đƣa định nhiều ngƣời 4.6.5 Proxy signature (chữ ký uỷ nhiệm) Hệ chữ ký dành cho trƣờng hợp mà ngƣời chủ chữ ký bị ốm khả làm việc vắng đến nơi phƣơng tiện mạng máy tính cần thiết để ký Vì chữ ký uỷ nhiệm đƣợc tạo để ngƣời chủ uỷ nhiệm cho ngƣời ký thay Tất nhiên chữ ký uỷ nhiệm phải có thuộc tính riêng thêm vào: + Chữ ký uỷ nhiệm phân biệt với chữ ký thƣờng, ngƣời đƣợc uỷ nhiệm tạo đƣợc chữ ký chủ (chữ ký thƣờng ngƣời chủ) + Chữ ký uỷ nhiệm có chức chứng thực nhƣ chữ ký chủ, có ngƣời chủ ngƣời đƣợc uỷ nhiệm tạo đƣợc chữ ký Ngƣời nhận đƣợc văn hoàn toàn tin tƣởng vào chữ ký nhƣ chữ ký chủ + Ngƣời chủ xác định đƣợc danh tính ngƣời ký từ chữ ký uỷ nhiệm + Ngƣời đƣợc uỷ nhiệm ký chối cãi đƣợc ký văn uỷ nhiệm hợp lệ (Tức chối đổ cho khác hay ngƣời chủ ký mà lại nói ký) 16