chương 1

 về chữ ký số

Trong cuộc sống hàng ngày, chữ ký(viết tay) trên một văn bản là một minh chứng về "bản quyền", khẳng định tính xác thực của văn bản hoặc ít nhất cũng là sự tán đồng thừa nhận các nội dung trong văn bản. Có sức thuyết phục đó là vì:

(1). Chữ ký là một bằng chứng thể hiện người ký có chủ định khi ký văn bản.

(2). Chữ ký thể hiện chủ quyền của người ký, nó làm cho người ta nhận biết ai đích thị là người đã ký văn bản.

(3). Chữ ký khi đã ký rồi thì không thể đem tái sử dụng lại được nữa, tức là nó là một phần của văn bản mà không thể sao chép được dạng văn bản khác . Nói cách khác, nó chỉ có tác dụng trong văn bản đã được ký và trở thành vô giá trị nếu ở ngoài văn bản đó.

(4). Văn bản đã ký thì không thể thay đổi được.

(5). Chữ ký không thể chối bỏ và cũng không thể là thứ giả mạo được (người ký không thể phủ nhận việc mình đã ký vào văn bản, và người khác không thể tạo ra chữ ký đó ).

Từ những điều nêu trên thì việc bảo đảm an toàn về giao dịch và tính tương đồng, tính hợp lý của chữ ký viết tay và chữ ký điện tử đã được ra đời và có những nét đặc trưng của chữ ký viết bằng tay.

Con người đã sử dụng các hợp đồng dưới dạng điện tử từ hơn 100 năm nay với việc sử dụng mã Morse và điện tín. Vào năm 1889, tòa án tối cao bang New Hampshire (Hoa Kỳ) đã phê chuẩn tính hiệu lực của chữ ký điện tử. Tuy nhiên, chỉ với những phát triển của khoa học kỹ thuật gần đây thì chữ ký điện tử mới đi vào cuộc sống một cách rộng rãi.

Vào thập kỷ 1980, các công ty và một số cá nhân bắt đầu sử dụng máy fax để truyền đi các tài liệu quan trọng. Mặc dù chữ ký trên các tài liệu này vẫn thể hiện trên giấy nhưng quá trình truyền và nhận chúng hoàn toàn dựa trên tín hiệu điện tử.

Hiện nay, chữ ký điện tử có thể bao hàm các cam kết gửi bằng email, nhập các số định dạng cá nhân (PIN) vào các máy ATM, ký bằng bút điện tử với thiết bị màn hình cảm ứng tại các quầy tính tiền, chấp nhận các điều khoản người dùng (EULA) khi cài đặt phần mềm máy tính, ký các hợp đồng điện tử online,...

Chữ ký số là một phương pháp ký một thông điệp lưu dưới dạng điện tử. Chữ ký số không gắn theo kiểu vật lý vào tài liệu mà gắn theo kiểu logic với tài liệu.

Về việc kiểm tra chữ ký: chữ ký số có thể được kiểm tra bằng cách sử dụng thuật toán kiểm thử công khai. Vì vậy bất kỳ ai cũng có thể kiểm thử chữ ký số. Việc dùng một lược đồ chữ ký số an toàn có thể ngăn chặn được khả năng giả mạo.

Bản sao chép của chữ ký số đồng nhất với bản gốc. Điều này có nghĩa là phải cẩn thận ngăn chặn một thông điệp chữ ký số khỏi bị dùng lại.

Một lược đồ chữ ký số bao gồm:

i. Thuật toán tạo khóa.

ii. Thuật toán tạo chữ ký số.

iii. Thuật toán kiểm tra chữ ký số.

Chữ ký số chỉ dùng được trong môi trường số, giao dịch điện tử với máy tính và mạng internet. Trong môi trường số không thể dùng chữ ký tay được, tuy nhiên lại có rất nhiều ứng dụng đòi hỏi phải cần đến một cơ chế ký và xác thực người dùng như chữ ký tay, các công nghệ mã hóa và chữ ký số ra đời để giúp giải quyết vấn đề này. Như vậy chữ ký số có thể sử dụng trong tất cả các trường hợp giao dịch cần đến ký tay nhưng lại phải thực hiện trong môi trường số.

Ø Bạn có thể sử dụng chữ ký số trong các giao dịch thư điện tử, ký vào các email để các đối tác, khách hàng của bạn biết có phải bạn là người gửi thư không.

Ø Bạn có thể sử dụng dụng chữ ký số này để mua bán hàng trực tuyến, đầu tư chứng khoán trực tuyến, có thể chuyển tiền ngân hàng, thanh toán trực tuyến mà không sợ bị đánh cắp tiền như với các tài khoản VISA, Master.

Ø Bạn có thể sử dụng với các ứng dụng chính phủ điện tử, các cơ quan nhà nước trong tương lai sẽ làm việc với nhân dân hoàn toàn trực tuyến và một cửa. Khi cần làm thủ tục hành chính hay xin một xác nhận của cơ quan nhà nước bạn chỉ cần ngồi ở nhà khai vào mẫu và ký số vào để gửi là xong.

Ø Bạn có thể sử dụng để kê khai nộp thuế trực tuyến, khai báo hải quan và thông quan trực tuyến mà không phải in các tờ kê khai, đóng dấu đỏ của công ty và chạy xe ôm đến cơ quan thuế để chen lấn, xếp hàng và ngồi đợi vài tiếng đồng hồ có khi đến cả ngày để nộp tờ khai này.

Ø Bạn có thể sử dụng chữ ký số với các ứng dụng quản lý của doanh nghiệp của mình với mức độ tin cậy, bảo mật và xác thực cao hơn rất nhiều.

Ø Bạn có thể dùng chữ ký số để ký hợp đồng làm ăn với các đối tác hoàn toàn trực tuyến trên mạng mà không cần ngồi trực tiếp với nhau, chỉ cần ký vào file hợp đồng và gửi qua email.

Chữ ký số tương đương với chữ ký tay nên nó có giá trị sử dụng trong các ứng dụng giao dịch điện tử cần tính pháp lý cao. Tuy nhiên ngoài việc là một phương tiện điện tử được pháp luật thừa nhận về tính pháp lý, chữ ký số còn là một công nghệ mã hóa và xác thực rất mạnh, nó có thể giúp đảm bảo an toàn, bảo mật cao cho các giao dịch trực tuyến, nhất là các giao dịch chứa các thông tin liên quan đến tài chính, tiền tệ,...

Xác thực thông điệp là một thủ tục nhằm kiểm tra các thông điệp 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 điệp cũng có thể kiểm tra trình tự và tính đúng lúc. Có nhiều kỹ thuật để xác thực thông điệp. Ngay trong hệ mã bí mật người ta cũng đã đề cập đến việc xác thực thông điệp, chữ ký số cũ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 điệp.

i) Trước tiên A sử dụng khoá riêng của mình mã hoá (ký) thông điệp P để có S = Ekda(P).

ii) Tiếp tục dùng khoá công khai của B (nhằm đảm bảo tính bí mật) mã hoá chữ ký S để được bản mã C = Ekeb (S) = Ekeb (Ekda (P)) , C được gửi đến B. B sử dụng khoá riêng của mình để giải mã thông điệp và sau đó dùng khoá công khai của A để xác thực chữ ký.

A và B có chung một khoá bí mật k. Khi A muốn gửi một thông điệp P cho B, quy trình được thực hiện như sau:

i) A tính toán MAC (Mã xác thực thông điệp) qua một hàm C với khoá k: MAC = Ck(P).

ii) Thông điệp P cùng với MAC được gửi cho B, B tiến hành tính toán MAC trên thông điệp nhận được tương tự như A đã tính, sau đó so sánh MAC tính được với MAC nhận được từ A. Nếu trùng khớp thì:

- B tin chắc rằng thông điệp không bị sửa đổi.

- B đảm bảo được rằng thông điệp được gửi một cách hợp pháp từ A (vì chỉ có 2 người biết khoá bí mật nên không ai có thể chuẩn bị một thông điệp với một MAC hợp lệ).

Chữ ký số khóa công khai (hay hạ tầng khóa công khai) là mô hình sử dụng các kỹ thuật mật mã để gắn với mỗi người sử dụng một cặp khóa bí mật - công khai và qua đó có thể ký các văn bản điện tử cũng như trao đổi các thông tin mật.

Một sơ đồ chữ ký điện tử là bộ 5(P, A, K, S, V) thoả mãn các điều kiện dưới đây:

1) P là tập hữu hạn các bức điện (thông điệp, bản rõ) có thể.

2) A là tập hữu hạn các chữ ký có thể.

3) K là tập không gian khoá (tập hữu hạn các khoá có thể).

4) S là tập hợp các thuật toán ký.

5) V là tập hợp các thuật toán chứng thực chữ ký

Với mỗi khoá k € K tồn tại một thuật toán ký Sigk € S và một thuật toán xác minh Verk € V. Mỗi Sigk: P → A và Verk: P x A → {TRUE, FALSE} là những hàm sao cho mỗi bức điện x P và mỗi chữ ký y A thoả mãn phương trình dưới đây:

Ver (x, y) =

False nếu y ≠ sig(x).

Với mỗi k € K, hàm Sigk và Verk là các hàm đa thức thời gian. Hàm Verk sẽ là hàm công khai còn hàm Sigk là bí mật. Không thể dễ dàng tính toán để giả mạo chữ ký của B trên bức điện x, nghĩa là với x cho trước chỉ có B mới có thể tính được y để

Ver(x, y) = TRUE.

Một sơ đồ chữ ký không thể an toàn vô điều kiện vì một người C nào đó có thể kiểm tra tất cả chữ số y trên bức điện x nhờ dùng thuật toán Ver(x,y) công khai cho tới khi anh ta tìm thấy chữ ký đúng. Vì thế, nếu có đủ thời gian, C luôn có thể giả mạo chữ ký của B. Như vậy mục đích của chúng ta là tìm các sơ đồ chữ ký điện tử an toàn về mặt tính toán.

Chữ ký số hoạt động dựa trên hệ thống mã hóa khóa công khai. Hệ thống mã hóa này gồm hai khóa, khóa bí mật và khóa công khai. Mỗi chủ thể có một cặp khóa như vậy, chủ thể đó sẽ giữ khóa bí mật, còn khóa công khai của chủ thể sẽ được đưa ra công cộng để bất kỳ ai cũng có thể biết. Nguyên tắc của hệ thống mã hóa khóa công khai đó là, nếu mã hóa bằng khóa bí mật thì chỉ khóa công khai mới giải mã đúng thông tin được, và ngược lại, nếu mã hóa bằng khóa công khai, thì chỉ có khóa bí mật mới giải mã đúng được.

Ngoài ra, chữ ký còn đảm bảo phát giác được bất kỳ sự thay đổi nào trên dữ liệu đã được "". Để ký lên một văn bản, phần mềm ký sẽ nghiền (crunch down) dữ liệu để gói gọn bằng một vài dòng, được gọi là thông báo tóm tắt, bằng một tiến trình được gọi là "kỹ thuật băm", rồi tạo thành chữ ký điện tử. Cuối cùng, phần mềm ký tên sẽ gắn chữ ký điện tử này vào văn bản.

Ví dụ: Giả sử bên A có tài liệu P cần ký. Bên A sẽ thực hiện băm văn bản thành một bản tóm lược X, sau đó dùng khóa bí mật của mình ký lên bản tóm lược X để được văn bản chữ ký điện tử Y, sau đó gửi tài liệu P kèm theo chữ ký Y cho B. Giả sử B muốn xác nhận tài liệu P là của A, với chữ ký là bản mã Y. Bên B sẽ dùng khóa công khai của A để xác nhận chữ ký Y của A ký trên văn bản P gửi có đúng hay không, nếu xác nhận đúng thì chữ ký Y chính là A ký trên văn bản P, ngược lại thì không phải hoặc bản ký đã được thay đổi.

Một số trường hợp xảy ra với chữ ký số, cũng giống như các trường hợp xảy ra với chữ ký truyền thống.

Ví dụ: Khi tài liệu của A bị thay đổi (dù chỉ một ký tự, một dấu chấm, hay một ký hiệu bất kỳ), khi B xác nhận, anh ta sẽ thấy bản giải mã khác với tài liệu của anh A. B sẽ kết luận rằng tài liệu đó đã bị thay đổi, không phải là tài liệu anh A đã ký.

Trường hợp khác, nếu A để lộ khóa bí mật, nghĩa là văn bản tài liệu của A có thể ký bởi người khác có khóa bí mật của A. Khi một ai đó xác nhận tài liệu được cho là của A ký, chữ ký vẫn là hợp lệ, mặc dù không phải chính A ký. Như vậy, chữ ký của A sẽ không còn giá trị pháp lý nữa. Do đó, việc giữ khóa bí mật là tuyệt đối quan trọng trong hệ thống chữ ký điện tử.

Trong trường hợp ví dụ trên, A có một cặp khóa để có thể ký trên văn bản, tài liệu số. Tương tự như vậy, B hay bất cứ ai sử dụng chữ ký điện tử, đều có một cặp khóa như vậy. Khóa bí mật được giữ riêng, còn khóa công khai được đưa ra công cộng. Vậy vấn đề đặt ra là làm thế nào để biết một khóa công khai thuộc về A, B hay một người nào đó?

Hơn nữa, giả sử trong môi trường giao dịch trên Internet, cần sự tin cậy cao, A muốn giao dịch với một nhân vật X. X và A cần trao đổi thông tin cá nhân cho nhau, các thông tin đó gồm họ tên, địa chỉ, số điện thoại, email... Vậy làm sao để A có thể chắc chắn rằng mình đang giao dịch với nhân vật X chứ không phải là ai khác giả mạo X ? Chứng chỉ số được tạo ra để giải quyết vấn đề này! Chứng chỉ số có cơ chế để xác nhận thông tin chính xác về các đối tượng sử dụng chứng chỉ số. Thông tin giữa A và X sẽ được xác nhận bằng một bên trung gian mà A và X tin tưởng.

Bên trung gian đó là nhà cung cấp chứng chỉ số CA (Certificate Authority). CA có một chứng chỉ số của riêng mình, CA sẽ cấp chứng chỉ số cho A và X cũng như những đối tượng khác.

Trở lại vấn đề trên, A và X sẽ có cách kiểm tra thông tin của nhau dựa trên chứng chỉ số như sau: khi A giao dịch với X, họ sẽ chuyển chứng chỉ số cho nhau, đồng thời họ cũng có chứng chỉ số của CA, phần mềm tại máy tính của A có cơ chế để kiểm tra chứng chỉ số của X có hợp lệ không, phần mềm sẽ kết hợp chứng chỉ số của nhà cung cấp CA và chứng chỉ của X để thông báo cho A về tính xác thực của đối tượng X.

Nếu phần mềm kiểm tra và thấy chứng chỉ của X là phù hợp với chứng chỉ CA, thì A có thể tin tưởng vào X.

Cơ chế chữ ký điện tử và chứng chỉ số sử dụng các thuật toán mã hóa đảm bảo không thể giả mạo CA để cấp chứng chỉ không hợp pháp, mọi chứng chỉ giả mạo đều có thể dễ dàng bị phát hiện.

Trở lại với việc ký văn bản, tài liệu, khóa bí mật sẽ dùng để ký các văn bản, tài liệu của chủ sở hữu. Như đã đề cập trong ví dụ ở trên, giả sử A muốn gửi một văn bản kèm với chữ ký của mình trên văn bản đó, A sẽ dùng khóa bí mật để mã hóa thu được bản mã văn bản, bản mã đó chính là chữ ký điện tử của A trên văn bản.

Khi A gửi văn bản và chữ ký, để người khác có thể xác nhận văn bản của mình với thông tin đầy đủ về chủ sở hữu, A sẽ gửi cả chứng chỉ của mình đi kèm với văn bản.

Giả sử B nhận được văn bản A gửi kèm với chứng chỉ, khi đó B có thể dễ dàng xác nhận tính hợp pháp của văn bản đó.

Khi một người muốn gửi cho ai đó một văn bản quan trọng, đòi hỏi văn bản phải được ký xác nhận chính danh người gửi văn bản; người gửi văn bản sẽ thực hiện quy trình ký chữ ký số.

Hình 2.1 Sơ đồ tạo chữ ký số

Qui trình tạo chữ ký số sử dụng khoá công khai mô phỏng như ở hình trên, các bước thực hiện như sau:

(1) Dùng giải thuật băm để thay đổi thông điệp cần truyền đi, kết quả ta được một bản tin tóm lược. Dùng giải thuật MD5 (message digest 5) ta được bản tin tóm lược có chiều dài 128-bit, dùng giải thuật SHA (secure hash algorithm) bản tin tóm lược có chiều dài 160-bit.

(2) Sử dụng khóa bí mật của người gửi để mã hóa bản tin tóm lược thu được ở bước trên. Thông thường ở bước này ta dùng giải thuật RSA, kết quả thu được chữ ký số của bản tin ban đầu.

(3) Gộp chữ ký điện tử vào bản tin điện tử ban đầu. Công việc này gọi là "ký xác nhận" vào bản tin điện tử. Sau khi đã ký nhận vào bản tin điện tử, mọi sự thay đổi trên bản tin điện tử sẽ bị phát hiện trong giai đoạn kiểm tra. Ngoài ra, việc ký nhận này đảm bảo người nhận tin tưởng bản tin điện tử này xuất phát từ người gửi chứ không phải là ai khác.

Sau khi nhận được một văn bản có đính kèm chữ ký của người gửi, người nhận văn bản phải giải mã trở lại văn bản trên và kiểm tra xem văn bản này có bị thay đổi bởi một người thứ ba và chữ ký đính kèm trên văn bản có đúng của người gửi hay không (kiểm tra "chính danh").

Quy trình thẩm định chữ ký số thực hiện như sau:

1) Bản tin điện tử có đính kèm chữ ký của người gửi, sau khi nhận sẽ được tách riêng phần chữ ký và phần văn bản nguyên vẹn. Sử dụng khóa công khai (Public key) của người gửi (khóa này được thông báo đến mọi người) để giải mã chữ ký điện tử của thông điệp, kết quả là bản tin tóm lược.

2) Dùng giải thuật băm MD5 (hoặc SHA) để băm văn bản đã tách phần chữ ký điện tử, kết quả thu được là bản tin tóm lược thứ 2.

3) So sánh hai bản tin tóm lược thu được ở bước 1 và 2. Nếu trùng nhau, ta kết luận thông điệp này không bị thay đổi trong quá trình truyền tin và xác nhận thông điệp này là của người gửi.

Hình 2.2 Sơ đồ thẩm định chữ ký số

Loại lược đồ này dùng phổ biến trong thực tế. Chúng dựa vào các hàm băm mật mã hơn là các hàm thừa tuỳ biến và ít bị các tấn công giả mạo hơn.

Định nghĩa 2.1: Lược đồ chữ ký số mà yêu cầu phải có thông điệp gốc là đầu vào cho thuật toán chứng thực chữ ký được gọi là lược đồ chữ ký số kèm theo bản rõ.

a. Thuật toán sinh khoá:

Mỗi cá thể A chọn một khoá k = (k'; k") K, Sigk' là thuật toán ký với khoá k. Thuật toán Verk" tương ứng là một ánh xạ từ Mh x Ms đến tập hợp {True, False} sao cho:

Verk'' (x, y) =

False nếu y ≠ sigk''(x).

Với khoá k = (k'; k"), trong đó khoá công khai của A là k"; khoá riêng của A là k'

b. Thuật toán sinh chữ ký:

Cá thể A thực hiện:

i) Chọn một khoá k = (k'; k") K.

ii) Tính m = h(P) và S = Sigk'(m).

iii) Chữ ký của A cho thông điệp P là S, P và S được gửi đến B.

c. Thuật toán chứng thực chữ ký:

Xác thực đúng khoá công khai của A là k":

i) Tính m = h(P)u = Verk"(m; S).

ii) Chấp nhận chữ ký của A nếu và chỉ nếu u = True.

Các thuộc tính sau là yêu cầu cần thiết cho các thuật toán ký và chứng thực:

+ Với mỗi khoá k = (k';k") K, Sigk' được tính toán hiệu quả.

+ Verk" cần tính toán một cách hiệu quả.

+ Chỉ có A có thể tìm được bản rõ P ∈ M và một S ∈ MS sao cho:

Verk"(m; S) = True, ở đây m = h(P).

Có đặc điểm là thông điệp được ký có thể được phục hồi từ ngay chữ ký đó và thường được dùng để ký các thông điệp nhỏ.

Định nghĩa 2.2: Chữ ký số không đòi hỏi phải có thông điệp gốc làm đầu vào để xác minh chữ ký được gọi là lược đồ chữ ký tự khôi phục thông điệp gốc, trong trường hợp này thông điệp gốc sẽ được phục hồi chính từ chữ ký của nó.

a. Thuật toán sinh khoá:

Mỗi cá thể tạo một khoá riêng dùng để ký thông điệp và một khoá công khai tương ứng để các cá thể khác dùng trong xác minh chữ ký.

i) Mỗi cá thể A chọn một khoá k = (k'; k") K, Sigk' là thuật toán ký với khoá k. R là một hàm sao cho R(M) = MR và có nghịch đảo là R-1.

ii) Thuật toán Verk" là một ánh xạ từ MS đến MR sao cho:

Verk"Sigk' là ánh xạ đồng nhất trên MR, ∀k ∈ K. Verk" gọi là thuật toán chứng thực được xây dựng sao cho có thể tính toán khi không biết khoá riêng của người ký thông điệp.

iii) Cặp khoá k = (k'; k"), trong đó khoá công khai của A là k"; khoá riêng của A là k'.

b. Thuật toán sinh chữ ký

Cá thể A ký một thông điệp P ∈ M với chữ ký S. Một cá thể B bất kỳ có thể xác minh chữ ký và phục hồi thông điệp P từ chữ ký đó. Để sinh chữ ký, cá thể A thực hiện:

i) Chọn một khoá k = (k'; k") K.

ii) Tính m = R(P)S = Sigk'(m) (R là nghịch đảo của nó là R-1 là các hàm được công khai).

iii) Chữ ký của A cho thông điệp P là S, và S được gửi đến B.

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

Để xác thực chữ ký, B làm như sau:

i) Xác thực đúng khoá công khai của A là k".

ii) Tính m = Verk"(S).

iii) Xác minh rằng m ∈ MR (nếu m ∉ MR thì từ chối chữ ký).

iv) Phục hồi thông điệp P từ m bằng cách tính R-1(m).

Ø Được sử dụng rộng rãi trong thương mại điện tử để thực hiện các giao dịch điện tử, nhằm xác định rõ người ký văn bản.

Ø Chống chối bỏ khi người ký đã ký vào văn bản thì họ không thể phủ nhận là chữ ký đó không phải là của họ.

Ø Xác thực nội dung của văn bản ký: nhằm kiểm tra tính toàn vẹn của văn bản xem nó có bị thay đổi thông tin trong quá trình vận chuyển.

Ø Độ an toàn của chữ ký số là rất cao, hiện nay được sử dụng rất phổ biến trong giao dịch điện tử.

Để đảm bảo an toàn, và tăng hiệu quả của chữ ký số cần có các tổ chức chứng thực điện tử nhằm cung cấp và đảm bảo độ tin cậy cho chữ ký số.

8.Sơ đồ chữ ký số RSA

Sơ đồ chữ ký RSA được Diffie-Hellman đề xuất và được Ronald Linn Rivest, Adi Shamir và Leonard Adleman thực hiện.

Sơ đồ chữ ký RSA

Tạo khóa:

Tạo chữ ký:

Thẩm tra chữ ký:

Để thẩm tra chữ ký s có phải của Alice ký không thì Bob kiểm chứng bằng thủ tục sau:

Rõ ràng chúng ta thấy rằng qúa trình tạo chữ ký và thẩm tra chữ ký giống với quá trình mã và giải mã của hệ mật RSA chỉ khác là quá trình tạo chữ ký Alice dùng khóa mật còn quá trình thẩm tra thì Bob dùng khóa công cộng.

Bàn luận về độ an toàn của sơ đồ chữ ký số RSA:

Thì rõ ràng quá trình thẩm tra (m,s) là hoàn toàn đúng. Ngoài ra do tính chất nhân của hàm RSA, tức là nếu có hai bức điện m1 và m2 tương ứng với nó là 2 chữ ký s1 và s2 thì dễ dàng hình thành chữ ký thứ ba s1s2 với bức điện thứ ba m1m2:

Để chống lại sự giả mạo chữ ký theo phương pháp trên thì một phương pháp đơn giản là thêm thông tin phụ vào bức điện M, có nghĩa là m=M||I, ở đây I là dấu hiệu nhận dạng ví dụ như.

Ngoài ra kết hợp với việc ký lên giá trị hàm hash của bức điện, tức là ký lên giá trị:

m=hash(M).

vì những tính chất của hàm hash sẽ chống lại khả năng giả mạo trên trừ xác suất rất nhỏ, vì nếu khó có thể tìm được bức điện mà giá trị hash của nó trùng với giá trị hàm hash đã cho.

9.Sơ đồ chữ ký Rabin

Sơ đồ chữ ký Rabin:

Tạo khóa:

Quá trình tạo khóa của sơ đồ chữ ký Rabin giống như quá trình tạo khóa của sơ đồ chữ ký RSA. Tức là chọn hai số nguyên tố khác nhau p và q có độ lớn gần bằng nhau và tính N=pq. Số N là khóa mở của Alice, còn số p, q là khóa mật.

Tạo chữ ký:

Thẩm tra chữ ký:

Để thẩm tra chữ ký Bob xem thủ tục sau:

Sơ đồ chữ ký Rabin có nhưng ưu điểm hơn so với sơ đồ RSA. Thứ nhất là giả mạo chữ ký là phức tạp như là phân tích số nguyên ra thừa số nguyên tố. Thứ hai là việc thẩm tra chữ ký hoàn thành nhanh hơn và hòan toàn thuận lợi thực thi các ứng dụng.

Và để chống lại các cách tấn công như trong RSA thì quá trình ký cũng thêm nhứng thông tin phụ và sử dụng hàm hash.

10.Sơ đồ chữ ký Elgama

Sơ đồ chữ ký Elgamal được giới thiệu năm 1985. Sơ đồ này thiết kế dành riêng cho chữ ký số khác với sơ đồ RSA dành chung cho cả hệ thống mã công khai và chữ ký số.

Sơ đồ chữ ký số Elgamal:

Tạo khóa:

Tạo chữ ký:

Thẩm tra chữ ký:

Để thẩm tra chữ ký (r,s) Bob xem kết quả của hàm kiểm tra:

Chúng ta xem sự đúng đắn của phương trình thẩm tra chữ ký:

Chúng ta thấy Alice hình thành chữ ký với khóa mật xA và cả số nguyên ngẫu nhiên k. Việc thẩm tra chữ ký chỉ bằng thông tin công khai.

Ví dụ:

Alice muốn ký lên bức điện m=100, thì Alice chọn số ngẫu nhiên k, ví dụ Alice chọn k=213 (UCLN(213,467)=1) và tính 213-1(mod 466)=431. Khi đó:

r=2213 mod 467=29

s=431(100-127.29) mod 466=51

Bob hay bất kỳ ai cũng có thể thẩm tra được chữ ký này bằng cách:

Vậy chữ ký là hợp lệ.

Chúng ta đánh giá độ an toàn của sơ đồ chữ ký Elgamal qua một số cảnh báo sau.

Cánh báo 1.

Đầu tiên để kiểm tra chữ ký thì cần phải kiểm tra bất đẳng thức r < p. Nếu như r > p thì có khả năng bị tấn công, cách này đề xuất bởi Bleichenbacher. Giả sử (r,s) là chữ ký của bức điện m. Tội phạm có thể giã mạo chữ ký với một bức điện bất kỳ m' bằng cách hình thành như sau:

Chúng ta thấy bức điện m' với chữ ký (r',s') thỏa mãn điều kiện:

Tấn công kiểu như thế này là không thể nếu như r < p, bởi vì trong trường hợp này giá trị r' được tính toán theo bước 3 ứng dụng định lý phần dư Trung Hoa theo modulo p(p-1).

Cảnh báo 2.

Khi tính được giá trị z thì Oscar có thể giả mạo chữ ký của Alice bằng các lệnh sau đây:

Chúng ta xem việc thẩm tra chữ ký:

Rõ ràng chúng ta thấy cặp (r,s) là chữ ký của bức điện m, nhưng việc tạo thành chữ ký này không có sự tham gia của khóa mật xA (mà có sự tham gia của số xA (mod b)).

Chú ý rằng trong quá trình hình thành chữ ký giả mạo thì số q là ước số của r. Dẫn đên cách tấn công của Bleichenbacher có thể ngăn chặn nếu như trong lúc kiểm tra Bob kiểm tra điều kiện q không là ước số của r (giả sử rằng quá trình lựa chon p thì q là tham số mở).

Cảnh báo 3.

Trong cảnh báo này thì liên quan đến chiều dài của tham số k. Tạo ra chữ ký theo sơ đồ Elgamal là thuật toán ngâu nhiên bởi vì tham số k được hình thành ngẫu nhiên.

Điều này cho chúng ta thấy chỉ được sử dụng tham số k một lần duy nhất.

Ngăn chặn tấn công giả mạo Existential forgery

Đây là cách tấn công dựa vào bức điện không bao gồm thông tin phụ để nhận dạng. Chúng ta tìm hiểu một số cách hình thành bức điện và chữ ký giả mạo.

Cách thứ nhất. Giả sử u và v là các số nguyên bất kỳ, nhỏ hơn p-1 và thỏa mãn điều kiện UCLN(v, p-1)=1. Chúng ta hoàn thành một số lệnh sau:

Chúng ta xem (m,(r,s)) sẽ là chữ ký đúng như Alice thực hiện, bằng cách kiểm tra phương trình sau:

Để ngăn ngừa tấn công theo kiểu giả mạo trên thì giống như trong sơ đồ RSA và Rabin chúng ta cũng thêm thông tin phụ vào bức điện và ký lên giá trị hàm hash của bức điện đó.

���plZ�

Bạn đang đọc truyện trên: AzTruyen.Top

Tags: