Phân phối khoá công khai qua các khoá bí mật

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu ứng dụng hạ tầng cơ sở mật mã khoá công khai cho hệ thống đấu thầu qua mạng (Trang 61 - 72)

Các bước tiếp theo xảy ra như sau:

- A sử dụng khoá công khai của B để mã hoá thông báo (1) gửi cho B. Thông báo có chứa tên của A (IDA) và N1 (được sử dụng để nhận diện giao dịch này).

- B gửi thông báo (2) cho A. Thông báo được mã hoá bằng KUa. Nó có chứa N1 của A và một nonce mới (N

có thể giải mã thông báo (1), sự xuất hiện của N1 trong thông báo (2) đảm bảo rằng A đang liên lạc với B. A trả lại N2, được mã hoá bằng khoá công khai của B để đảm bảo rằng B đang liên lạc với A.

- A chọn một khoá bí mật Ks và gửi thông báo (3) M= EKUb[EKRa[Ks]] cho B. Việc mã hoá thông báo này bằng khoá công khai của B đảm bảo chỉ B mới có thể đọc nó; Việc mã hoá bằng khoá riêng của A đảm bảo rằng chính A là người đã gửi thông báo.

- B tính toán DKUa[DKRb[M]] để khôi phục khoá bí mật.

Lược đồ kết hợp (lai)

Có cách khác sử dụng mã hoá khoá công khai để phân phối các khoá bí mật là sử dụng lược đồ lai. Lược đồ này duy trì một trung tâm phân phối khoá, viết tắt là KDC chia xẻ một khoá chủ bí mật cho mỗi người sử dụng và phân phối các khoá phiên bí mật. Các khoá phiên bí mật này được mã hoá bằng khoá chủ. Người ta sử dụng một lược đồ khoá công khai chỉ để phân phối các khoá chủ bởi các lý do sau:

- Hiệu năng: Hiện có nhiều ứng dụng, đặc biệt các ứng dụng hướng giao dịch, trongđó các khoá phiên được thay đổi thường xuyên. Việc phân phối các khoá phiên thông qua mã hoá khoá công khai có thể làm giảm hiệu năng của toàn bộ hệ thống, do phải tính toán mã hoá và giải mã khoá công khai rất lớn. Mã hoá khoá công khai đôi khi được sử dụng để cập nhật khoá chủ giữa người sử dụng và KDC.

- Khả năng tương thích: Lược đồ lai dễ dàng bao trùm lên lược đồ KDC đang tồn tại. Lược đồ này phù hợp với cấu hình, trong đó một KDC đáp ứng một tập hợp những người sử dụng phân tán.

2.3. CHỮ KÝ SỐ

Chữ ký số là nội dung không thể thiếu khi đề cập đến hạ tầng khoá công khai, trong phần này, NVLV sẽ trình bày những vấn đề chi tiết về chữ ký số.

2.3.1 Các yêu cầu

TMĐT đã và đang phát triển nhanh chóng trên thế giới và Việt Nam. Sự phát triển của TMĐT đã mang lại những hiệu quả to lớn trong các hoạt động kinh doanh. Sự ra đời của TMĐT đã làm thay đổi nhiều những nhận thức quen thuộc trong các hoạt động thương mại truyền thống. Nhiều vấn đề về hạ tầng kỹ thuật, cũng như hạ tầng pháp lý cần phải giải quyết khi TMĐT đi vào cuộc sống.

Trong các giao dịch thương mại truyền thống, người ta sử dụng chữ ký viết tay trên các văn bản giấy tờ để xác nhận nội dung của văn bản và nhận dạng người ký. Nhưng trong các giao dịch TMĐT, các văn bản giấy tờ đã được chuyển đổi thành các văn bản điện tử, việc ký trên các văn bản điện tử

trở thành một yêu cầu tự nhiên cần quan tâm nghiên cứu. Để đảm bảo có thể tiến hành các hoạt động TMĐT thì việc giải quyết các vấn đề liên quan đến chữ ký số là điều thực sự cần thiết và cấp bách.

Theo định nghĩa trong Nghị định 26/2007/NĐ-CP ngày 15/02/2007 của Chính phủ về Quy định chi tiết thi hành Luật Giao dịch điện tử về chữ ký số và dịch vụ chứng thực chữ ký số thì "Chữ ký số là một dạng chữ ký được tạo ra bằng sự biến đổi một thông điệp dữ liệu sử dụng hệ thống mật mã không đối xứng theo đó người có được thông điệp dữ liệu ban đầu và khoá công khai của người ký có thể xác định được chính xác”

Trong môi trường điện tử, để các chữ ký số có hiệu lực ngang bằng với các chữ ký viết tay, cần tập trung giải quyết hai vấn đề quan trọng là cơ sở công nghệ và cơ sở pháp lý cho chúng.

Giả thiết A gửi một thông báo đã được xác thực cho B. Có thể xảy ra một số dạng tranh chấp giữa hai thành viên như sau:

1. 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ừ A. B có thể tạo ra một thông báo và gắn mã xác thực một cách đơn giản bằng khoá chung của họ.

2. A có thể chối bỏ đã gửi thông báo. Vì B có thể làm giả thông báo và vì vậy không có cách nào để chứng minh A đã gửi thông báo.

Tương tự như chữ ký bằng tay. Chữ ký số phải có một số tính chất như sau:

1. Có khả năng kiểm tra người ký và thời gian ký; 2. Có khả năng xác thực các nội dung tại thời điểm ký;

3. Các thành viên thứ ba có thể kiểm tra chữ ký để giải quyết các tranh chấp.

Như vậy, chữ ký số phải 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, chúng ta có thể đưa ra các yêu cầu sau đây đối với một chữ ký số:

1. Chữ ký phải phụ thuộc vào thông báo được ký;

2. Chữ ký phải sử dụng một thông tin duy nhất nào đó từ người gửi, nhằm ngăn chặn tình trạng làm giả và chối bỏ;

3. Quá trình tạo ra chữ ký số phải dễ dàng; 4. Dễ dàng nhận ra và kiểm tra chữ ký số;

5. Khó có thể 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ý số giả cho một thông báo cho trước.

Một sơ đồ chữ kí số thường chứa hai thành phần: thuật toán kíthuật toán xác minh. Bob có thể kí điện x dùng thuật toán kí an toàn. Chữ kí sig(x) nhận được có thể kiểm tra bằng thuật toán xác minh công khai ver. Khi cho trước cặp (x,y), thuật toán xác minh có giá trị TRUE hay FALSE tuỳ thuộc vào chữ kí được thực như thế nào. Dưới đây là định nghĩa hình thức của chữ kí:

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

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

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

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

Với mỗi K thuộc K tồn tại một thuật toán kí sigk S và là một thuật toán xác minh verk V. Mỗi sigk : PA và verk: P×A {true,false} là

những hàm sao cho mỗi thông điệp xP và mối chữ kí yA thoả mãn phương trình dưới đây.

Với mỗi k thuộc K hàm sigk và verk là các hàm có thời gian đa thức. verk sẽ là hàm công khai, sigk là bí mật. Không thể dể dàng tính toán để giả mạo chữ kí của Bob trên thông điệp x. Nghĩa là x cho trước, chỉ có Bob mới có thể tính được y để verk = True. Một sơ đồ chữ kí không thể an toàn vô điều kiện vì Oscar có thể kiểm tra tất cả các chữ số y có thể có trên thông điệp x nhờ dùng thuật toán verk công khai cho đến khi anh ta tìm thấy một chữ kí đúng. Vì thế, nếu có đủ thời gian. Oscar luôn luôn có thể giả mạo chữ kí của Bob. Như vậy, giống như trường hợp hệ thống mã khoá công khai, mục đích của chúng ta là tìm các sơ đồ chữ kí số an toàn về mặt tính toán.

2.3.2. Phân lớp các sơ đồ chữ ký số

Sơ đồ chữ ký số được chia làm 2 lớp, lớp chữ ký kèm thông điệp (message appendix) và lớp chữ ký khôi phục thông điệp (message recovery) như sau:

- Chữ ký kèm thông điệp: Ðòi hỏi thông điệp ban đầu là đầu vào giải thuật kiểm tra.

- Chữ ký khôi phục thông điệp: Thông điệp ban đầu được sinh ra từ bản thân chữ ký.

Sau đây là hình biểu diễn phân loại ở mức tổng quan về chữ ký số: True nếu y=sig(x)

False nếu y≠sig(x) verk(x,y) =

Hình 2.12. Phân lớp các sơ đồ chữ ký số

2.3.2.1. Sơ đồ chữ ký kèm thông điệp

Sơ đồ ký kèm thông điệp là sơ đồ được sử dụng nhiều nhất trong thực tế. Nó dựa trên các hàm băm mã hoá hơn là dựa trên các hàm băm bất kỳ và ít bị lỗi khi bị tấn công theo kiểu giả mạo. Chúng ta có thể định nghĩa chính xác sơ đồ chữ ký này như sau:

Ðịnh nghĩa: Sơ đồ ký kèm thông điệp là sơ đồ ký đòi hỏi thông điệp đầu vào là một tham số cho quá trình xác nhận chữ ký. Ví dụ: ElGamal, DSA, Schonor

a. Giải thuật sinh khoá :Mỗi một thực thể tạo một khoá riêng để cho thông điệp cần khoá và một khoá công khai tương ứng để các thực thể khác xác nhận chữ ký

Mỗi một thực thể A phải chọn một khoá riêng cùng với việc xác định không gian khoá SA,k : k thuộc R, của dạng chuyển đổi.

SA,k xác định một ánh xạ 1-1 từ không gian Mh vào không gian khoá S gọi là dạng chuyển đổi chữ ký hay còn là thuật toán ký số SA tương ứng (corresponding mapping) VA từ không gian Mh ×S vào tập hợp {false, true} có nghĩa là :

VA(m, s*) = true nếu SA,k(m) = s*

VA(m, s*) = false trong các trường hợp khác

Trong đó : VA là khoá công khai của A, SA là khoá riêng của A

b. Giải thuật sinh và xác nhận chữ ký:

Thực thể A tạo một chữ ký s vào ánh xạ M và được xác nhận bởi thực thể B.

Quá trình sinh chữ ký

Chọn một chữ ký k thuộc R Tính hàm băm m’=h(m) và s*

Chữ ký của A cho m là s*. Cặp m’ và s*

dùng để xác nhận

Quá trình xác nhận chữ ký

Nhận khoá công khai định danh cho A là VA Tính hàm băm m'=h(m) và u = VA(m',s*) Chấp nhận chữ ký của A cho m là s* nếu u = TRUE b)TiÕn tr×nh x¸c nhËn ch÷ ký S h M m m' Mh x S TRUE FALSE A V h M SA,k a)TiÕn tr×nh ký th«ng ®iÖp

Hình 2.13. Sơ đồ chữ ký kèm thông điệp.

2.3.2.2. Sơ đồ chữ ký khôi phục thông điệp

Ðặc trưng cho sơ đồ này là thông điệp có thể được khôi phục từ chính bản thân chữ ký. Trong thực tế sơ đồ ký kiểu này thường được ký cho các thông điệp ngắn.

Ðịnh nghĩa : Một sơ đồ ký được gọi là có khôi phục thông điệp khi và chỉ khi nó là sơ đồ mà với nó mức độ hiểu biết về thông điệp là không đòi hỏi trong quá trình xác nhận chữ ký. Ví dụ về các sơ đồ chữ ký có khôi phục thông điệp trong thực tế là : RSA, Rabin, Nyber-Rueppel với khóa chung.

a. Thuật toán sinh khoá cho chữ ký khôi phục thông điệp

Mỗi một thực thể A phải chọn một tập hợp SA = {SA, k : k thuộc R } mỗi SA,k

xác định một ánh xạ 1-1 từ không gian Mh vào không gian khoá S gọi là dạng chuyển đổi chữ ký SA xác định một ánh xạ tương ứng (corresponding mapping) VA sao cho VA * SA.k ánh xạ xác định MS cho tất cả k thuộc R. V VA là khoá công khai của A, SA là khoá riêng của A

b. Thuật toán sinh chữ ký và xác nhận chữ ký cho chữ ký khôi phục thông điệp

Tiến trình sinh chữ ký: Thực thể A phải làm theo các bước sau: Chọn một số k  R

Tính m' = R(m) và s* = SA,k(m'). (R là hàm redundancy) Chữ ký của A là s*;

Tiến trình xác nhận chữ ký : Thực thể B phải làm như sau:: Nhận khoá công khai của của A là VA

Tính m' = VA(s*) Xác nhận m'  MR (Nếu m' MR thì từ chối chữ ký) Khôi phục m từ m' bằng cách tính R-1 (m') text R M m' S R M k A S , ) ' ( * S , m sAk S M m'

Hình 2.14. Sơ đồ chữ ký khôi phục thông điệp

2.3.3. Một số sơ đồ chữ ký số tiêu biểu

Trên thế giới, hiện có nhiều sơ đồ chữ ký số. Sau đây, NVLV xin trình bày 3 sơ đồ chữ ký số tiêu biểu là sơ đồ chữ ký RSA, sơ đồ chữ ký Elgama và sơ đồ chữ ký số DSS.

2.3.3.1. Sơ đồ chữ ký RSA

Sau đây chúng ta sẽ nghiên cứu các sơ đồ chữ ký cơ bản nhất và có ứng dụng rộng rãi cũng như đáng tin cậy nhất hiện nay.

Chúng ta sẽ nghiên cứu đến sơ đồ chữ ký RSA và các sơ đồ tưong tự. Đặc điểm của các sơ đồ chữ ký này là mức độ tính toán phụ thuộc hoàn toàn vào độ lớn của giải thuật giải quyết các bài toán nhân số nguyên – bài toán lũy thừa. Sơ đồ chữ ký bao gồm cả hai loại kèm thông điệp và khôi phục thông điệp. Sơ đồ chữ ký RSA được phát minh bởi 3 nhà nghiên cứu Rivest, Shamir và Adleman, đây là sơ đồ có ứng dụng thực tế rộng rãi nhất dựa trên công nghệ sử dụng khóa chung. Các phương pháp tấn công RSA đầu tiên (multicative property) và các vấn đề khác liên quan tới chữ ký RSA được đưa ra bởi Ðavia và Jonge và Chaum. Sau đây là sơ đồ chữ ký RSA.

Một thực thể A tạo một khoá công khai RSA và khoá riêng tương ứng theo phương thức sau:

 Sinh ra hai số nguyên tố lớn ngẫu nhiên p và q cùng kích thước bit

 Tính n = pq và  = (p - 1)(q - 1 )

 Chọn một số tự nhiên ngẫu nhiên a thoả mãn điều kiện sau: 1< a < 

và USCLN(a, ) = 1 hay a  Z* p .

 Sử dụng giải thuật mở rộng Euclidean để tính toán số tự nhiên duy nhất b sao cho 1< b < và ab  1 (mod )

Khoá công khai của A là K’ = (n,a) khoá riêng của A là K” = b

b. Thuật toán sinh và xác định chữ ký :

Mỗi phần tử A ký một thông điệp m  M. Mỗi thực thể B có thể xác định được chữ ký của A và khôi phục lại thông điệp từ chữ ký

Sinh chữ ký:thực thể A làm theo các bước sau:

Tính m' = H(m), là một số nguyên trong khoảng [0, n-1] Tính s = m'd mod n

Chữ ký của A cho m là s

Xác nhận chữ ký : Thực thể B làm theo các bước sau: Nhận khoá công khai của A là (n, b)

Tính m' = sb mod n

Kiểm tra m'  MR nếu không sẽ không chấp nhận chữ ký Lấy lại thông điệp m từ m = H-1

(m')

2.3.3.2. Sơ đồ chữ kí ELGAMAL

Sau đây ta sẽ mô tả sơ đồ chữ kí Elgamal đã từng dưới thiệu trong bài báo năm 1985. Bản cải tiến của sơ đồ này đã được Viện Tiêu chuẩn và Công Nghệ Quốc Gia Mỹ (NIST) chấp nhận làm chữ kí số. Sơ đồ Elgamal (E.) được thiết kế với mục đích dành riêng cho chữ kí số, khác sơ đồ RSA dùng cho cả hệ thống mã khoá công khai lẫn chữ kí số.

Sơ đồ E, là không tất định giống như hệ thống mã khoá công khai Elgamal. Điều này có nghĩa là có nhiều chữ kí hợp lệ trên bức điện cho trươc bất kỳ. Thuật toán xác minh phải có khả năng chấp nhận bất kì chữ kí hợp lệ khi xác thực. Sơ đồ E. được mô tả dưới đây:

Nếu chữ kí được thiết lập đúng khi xác minh sẽ thành công vì :  a k (mod p)  x (mod p) là ở đây ta dùng hệ thức: a + k   x (mod p-1)

Độ an toàn của chữ ký Elgamal

Xét độ mật của sơ đồ chữ kí E. Giả sử, Oscar thử giả mạo chữ kí trên bức điện x cho trước không biết a. Nếu Oscar chọn  và sau đó thử tìm giá trị

 tương ứng, anh ta phải tính logarithm rời rạc log x-.

Mặt khác, nếu đầu tiên ta chọn  và sau đó thử tim  và thử giải phương trình:

 x

(mod p).

để tìm . Đây là bài toán chưa có lời giải nào: Tuy nhiên, dường như nó chưa được gắn với đến bài toán đã nghiên cứu kĩ nào nên vẫn có khả năng có cách nào đó để tính  và  đồng thời để (, )là một chữ kí. Hiện thời không ai tìm được cách giải song chưa có ai khẳng định được rằng nó không thể giải được.

Nếu Oscar chọn  và  và sau đó tự giải tìm x, anh ta sẽ phảI đối mặt với bài toán logarithm rời rạc. Vì thế Oscar không thể kí một bức điện ngẫu

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu ứng dụng hạ tầng cơ sở mật mã khoá công khai cho hệ thống đấu thầu qua mạng (Trang 61 - 72)