Phân phối khoá cho giải thuật mật mã không đối xứng

Một phần của tài liệu chữ ký số và các vấn đề bảo mật thông tin (Trang 41 - 88)

4. Tổng quan luận văn

1.5.2 Phân phối khoá cho giải thuật mật mã không đối xứng

Sau khi ngành bảo mật thông tin dùng khóa công khai (public key) đƣợc tìm ra, ngƣời ta tƣởng rằng tất cả các vấn đề về phân bố khóa là không cần thiết nữa. Nhƣng thực ra hy vọng đó đã bị sụp đổ.

Thật vậy, trong mật mã không đối xứng, bất kỳ một thực thể nào cũng có thể phát minh ra một cặp khóa riêng cho mình, trong đó một khóa là "public key" có thể đƣợc gửi đi trên kênh truyền công cộng (tức là không cần kênh truyền bảo mật riêng), và không lo nghĩ gì đến khóa bí mật còn lại có thể bị lộ vì khóa này không phải gửi đi đâu cả. Vậy là vấn đề truyền khóa trên kênh truyền công cộng coi nhƣ đƣợc giải quyết ổn thoả. Tuy nhiên còn một vấn đề

cần phải giải quyết, đó là vấn đề "Tính xác thực của khóa" (key authenticity). Khi một user (ta gọi là sender) sử dụng một khóa công khai, luôn muốn thật sự tin tƣởng rằng các mẩu cryptograms mà mình gửi đi phải đƣợc mã hóa đúng đắn bởi ngƣời nhận (receiver) tƣơng ứng. Đó chính là tính xác thực của khóa, và phải đƣợc giải quyết tốt trong mạng máy tính với khóa bảo mật bất đối xứng (công khai). Một phƣơng pháp giải quyết đơn giản nhất là lƣu trữ tất cả các khóa công khai tại một chỗ riêng biệt trong mạng máy tính và đƣợc gọi là thƣ mục khóa (viết tắt là KD). Thƣ mục khóa đƣợc dùng để bảo trì, cập nhật và phân phối tất cả các khóa công khai đƣợc sử dụng trên mạng máy tính. Hơn nữa, một user khi nhận đƣợc một khóa công khai cần phải đƣợc bảo đảm chắc chắn rằng khóa đó là xác thực. Bây giờ ta hãy xem xét một mạng máy tính đƣợc bảo mật dựa trên giải thuật bất đối xứng.

Giả sử rằng A và B phát minh ra đƣợc các cặp khóa (KA,k‟A) và (KB,k‟B) tƣơng ứng. Trong đó k‟A, k‟B là các khóa bí mật (secret key) của A và B, k‟A # k‟B. Và giả sử khóa công khai của KD là KKD và khóa này đƣợc biết bởi tất cả users. Khi A muốn gửi thông tin cho B, nó sẽ gửi tới KD một cặp (RQA,T), trong đó RQA là yêu cầu của A và T là thời điểm gửi yêu cầu (dƣới dạng chƣa mã hóa). Đáp lại, KD sẽ gửi trả cho A một thông báo đã đƣợc mã hóa bởi khóa bí mật của KD (bao gồm: khóa công khai của B là KB, một bản sao RQA và thời điểm T). Nhờ khóa KKD, A giải mã đƣợc DKD(KB,RQA,T) và lấy đƣợc mã công khai KB của B, bản copy của RQA và T. Lúc này vì đã có khóa KB, A gửi cho B một cryptogram EB(NA,RS) trong đó NA là tên của A và RS là một chuỗi chọn ngẫu nhiên bởi A.

Tiếp đó, để nhận đƣợc khóa công khai của A, B gửi cho KD một cặp (RQB,T‟) dƣới dạng chƣa mã hóa. KD đáp ứng bằng cách gửi trả B một criptogram DKD(KA,RQB,T‟) trong đó KA là mã công khai của A. Sau khi giải

mã B sẽ nhận đƣợc khóa công khai KA của A. Tiếp theo B sẽ tạo một cặp: chuỗi RS nhận đƣợc trƣớc đó từ A, chuỗi RS‟ đƣợc chọn ngẫu nhiên. Cặp (RS,RS‟) đƣợc mã hóa bằng khóa KA và đƣợc gửi cho A dƣới dạng cryptogram EA(RS,RS‟).

Hình 1.5 Sơ đồ phân bố khóa của một network với KD

A sẽ giải mã cryptogram đó và so sánh với chuỗi RS nguyên thủy mà mình đã gửi trƣớc đó cho B. Nếu chúng giống nhau thì A chắc chắn rằng B là đích thực. Cuối cùng A lại gửi lại RS‟ dƣới dạng mã hóa EB(RS‟) cho B. Sau khi giải mã và so sánh kết quả với chuỗi RS‟ nguyên thủy mà mình đã gửi trƣớc đó cho A, nếu chúng giống nhau thì B chắc chắn rằng A là đích thực. Đến đây A và B coi nhƣ đã đƣợc kiểm tra tính athenticity. Lƣu ý rằng thủ tục kiểm tra authentication trên đây không phải là duy nhất. Có nhiều thủ tục khác, ví dụ nhƣ nó không đòi hỏi KD phải phân bố khóa cho users. Trong các trƣờng hợp đó, KD sẽ kiểm tra authenticity của các khóa đƣợc sử dụng bởi users rồi sau đó gửi cho users kết quả của quá trình kiểm tra.

Tóm lại cả hai cách tiếp cận (dựa trên giải thuật mật mã đối xứng và bất đối xứng) đều cần phải có các "Control center" với mục đích kiểm tra tính xác

(3) EB(NA,RS) (6) EA(RS,RS') EB(RS') A (1) (RQAT) KD (3) (RQB,T) B (5) DKD(KA,RQB,T) (2) DKD(KB,RQA,T)

thực (authentication) của các khóa và khởi tạo kênh truyền thông giữa các thực thể trên mạng. Để thực hiện đƣợc các chức năng đó, chi phí về phần mềm, phần cứng và thời gian cho các control centers đều nhƣ nhau cho cả hai giải pháp (đối xứng và bất đối xứng).

Hơn nữa, trong bất kỳ trƣờng hợp nào một vấn đề quan trọng cần giải quyết là vấn đề bảo mật của tất cả các khóa mà chúng tạo nên các kênh truyền bí mật giữa một thực thể với một center. Cũng thƣờng xảy ra đối với một trung tâm với giải pháp bảo mật đối xứng là nó rất có thể bị các tác động truy xuất bất hợp pháp tới các khóa bí mật đƣợc lƣu giữ trong đó, và vì vậy việc bảo mật khóa đóng một vai trò đặc biệt quan trọng. Ngƣợc lại, trong mạng với giải pháp bảo mật bất đối xứng, chúng ta biết rằng center sẽ phân bố các khóa công khai nên không cần thiết phải bảo mật chúng. Tuy nhiên, Trong mạng với giải pháp bảo mật đối xứng, tất cả các khóa đƣợc lƣu giữ dƣới dạng cryptograms mà chúng chỉ có thể giải mã đƣợc nhờ "khóa chính" (main key) của máy chủ (ta gọi nó là master key).

So sánh các đặc tính của hai giải pháp (đối xứng và bất đối xứng), chúng ta đi tới một kết luận là : Hai giải pháp bảo mật đối xứng và bất đối xứng là tƣơng đƣơng nhau.

1.5.3 Phát sinh và lưu giữ khoá bí mật

Cho tới lúc này, chúng ta vẫn giả định rằng các khóa đƣợc sinh ra và lƣu giữ tại một nơi thích hợp nào đó trên mạng. Nếu chúng ta xét giải pháp bảo mật bất đối xứng thì thấy bất kỳ một thực thể trên mạng cũng phát sinh và lƣu giữ lại khóa bí mật riêng của nó, tức là chúng ta đang chọn với hệ quản trị khóa phân bố. Tuy nhiên việc phát sinh cặp khóa (khóa bí mật và khóa công khai) phụ thuộc vào giải thuật bất đối xứng mà nó sử dụng. Ví dụ trong giải thuật

RSA hoặc khóa công khai hoặc khóa bí mật là một số integer đƣợc chọn ngẫu nhiên. Nếu một cặp khóa đó bị lộ thì có thể tính toán một cặp khóa khác dễ dàng.

Trong khi xem xét mạng máy tính với bảo mật đối xứng, chúng ta chọn với nhiều kiểu khóa bảo mật khác nhau, song có thể xếp chung vào hai lớp chính :

+ Lớp thứ nhất gồm tất cả các khóa dùng trực tiếp để mã hóa các messages.

+ Lớp thứ hai gồm tất cả các khóa dùng để mã hóa các khóa khác.

Trong số các khóa của lớp thứ hai, ta có các khóa "host master key" và "terminal master key" mà chúng tƣơng ứng đƣợc đặt ở máy host và máy terminal. Nhƣ vậy khi khóa đó bị lộ sẽ nguy hại đến tính bảo mật toàn bộ của hoặc của máy host hoặc của máy terminal. Mặt khác, việc hủy bỏ giá trị của các khóa đó sẽ là cho các khóa khác (đã đƣợc mã hóa trƣớc) sẽ bị sai khi giải mã và dẫn đến là tất cả các messages đã đƣợc mã hóa trở thành không thể đọc đƣợc vì khóa để giải mã không đúng.

Giá trị của một "master key " đƣợc cố định trong một khoảng thời gian, thƣờng thì khoảng vài tuần hoặc vài tháng. Vì vậy, việc phát sinh và lƣu trữ các master keys là các vấn đề quan trọng trong bảo mật. Trong thực tế, master key sinh ra bằng cách chọn ngẫu nhiên trong số các giá trị có thể của vùng khóa. Sau khi chọn song, khóa đƣợc đƣa vào hệ thống bảo mật đƣợc bảo vệ write_only. Hệ thống này đƣợc thiết kế sao cho sau khi khóa đã đƣợc đƣa vào hệ thống cryptography, vấn đề bị lộ khóa là không bao giờ xảy ra, nhƣng vẫn còn vấn đề là kiểm tra xem khóa có đúng đắn không. Việc kiểm tra này (authentication of keys) đƣợc giải quyết theo nhiều cách. Một trong các cách đó đƣợc biểu diễn bởi hình 1.6.

Ngƣời quản trị, khi đã thay đổi "host master key" sẽ mã hóa một message M bằng khóa KH. Cặp (EKH(M),M) sẽ đƣợc cất lên memory. Mỗi khi có yêu cầu kiểm tra tính xác thực "authentication" của host key master, messager M sẽ đƣợc lấy ra từ memory và đƣa vào hệ thống cryptography để mã hóa. Kết quả mã hóa sẽ so sánh với EKH(M) trong memory. Nếu chúng giống nhau khóa sẽ đƣợc coi là đúng đắn.

Hình 1.6 Sơ đồ kiểm tra khoá

Các khóa phụ khác thƣờng đƣợc tạo ra bởi bộ phát sinh giả ngẫu nhiên (pseudoran dom generator) và chúng đƣợc cất giữ ở một nơi không cần bảo vệ. Lý do không cần bảo vệ vì các khóa phụ sinh ra dƣới dạng mã hóa (cryptograms) của khóa KS là EKH(KS) đƣợc mã hóa bởi khóa chính host master key KH. việc giải mã EKH(KS) chỉ đƣợc thực hiện ngay trƣớc khi khóa KS đƣợc sử dụng.

Nếu ta muốn mã hóa một message M bằng khóa KS, ta đặt cryptogram EKH(KS) và message M vào các ngõ nhập inputs thích hợp của hệ thống

EKH(M),M So sánh E Hệ mã hoá Bộ nhớ EKH(M) Kết quả KH

cryptography đó. Trƣớc tiên, khóa KS lấy đƣợc và sau đó M đƣợc mã hóa bởi khóa KS.

Việc bảo vệ các khóa phụ KS phụ thuộc vào vấn đề bảo mật của hệ thống cryptography. Hệ thống bảo mật cryptography có thể đƣợc thiết kế trên một mạch LSI (hardware) và đƣợc bảo vệ ở một nơi an toàn về vật lý.

Hình 1.7 Sơ đồ bảo vệ khoá

1.6 Kết luận chương

Trong Chƣơng 1 chúng ta đã nghiên cứu hệ thống mã hóa đối xứng và hệ thống mã hóa bất đối xứng. Hai loại mã hóa này khác nhau ở số lƣợng khóa. Mã hóa đối xứng sử dụng cùng một khóa để mã hóa/giải mã. Trong khi đó, mã hóa bất đối xứng sử dụng hai khóa khác nhau để mã hóa và giải mã thông tin. Mỗi hệ thống mã hóa có ƣu nhƣợc điểm riêng. Mã hóa đối xứng xử lí nhanh nhƣng độ an toàn không cao.

D Pseudoradom generator EKH (KS) E Crytographic system KH KS M EKS (M)

Đối với các hệ mật mã đối xứng, cả bên nhận và bên gửi thông tin đều biết về khóa mật đó, cho phép trao đổi thông tin từ A đến B hoặc từ B đến A, không phân biệt đƣợc A và B vì thế kênh truyền phải đƣợc bảo vệ từ hai phía. Do đó vấn đề bí mật khi sử dụng mật mã đối xứng là khóa sử dụng (nếu khoá lập mã bị lộ thì ngƣời khác dễ dàng tìm ra khóa giải mã).

Với n ngƣời sử dụng cần trao đổi thông tin với nhau dùng mật mã đối xứng thì mỗi cá thể cần biết n-1 khóa mật (secret key). Thế thì với n cá thể đòi hỏi phải có số khoá ít nhất là n*(n-1)/2 khoá. Khi tăng số ngƣời sử dụng thì số khoá sẽ tăng rất nhanh, gây nên một hậu quả là kém an toàn. Chẳng hạn nếu thêm vào hệ thống trao đổi thông tin một cá thể nữa, lúc này có tất cả n+1 cá thể thì phải bổ sung n khoá vào hệ thống. Nhƣ vậy mỗi cá thể phải nhớ và giữ bí mật quá nhiều khoá.

Để khắc phục nhƣợc điểm đó của hệ mật mã hóa bất đối xứng là sự ra đời của hệ mã hóa bất đối xứng, điển hình của hệ mật mã này là hệ RSA. Mã hóa bất đối xứng xử lí chậm hơn, nhƣng độ an toàn và tính thuận tiện trong quản lí khóa cao. Trong các ứng dụng mã hóa hiện tại, ngƣời ta thƣờng kết hợp các ƣu điểm của cả hai loại mã hóa này.

Hệ mã hoá khoá công khai RSA giúp cho việc trao đổi các khoá bí mật đƣợc dễ dàng. A muốn gửi cho B một thông điệp thì mã hóa thông điệp đó dùng mã hóa đối xứng với một chìa khóa bí mật (secret key), vì secret key cần đƣợc giữ bí mật nên A mới lấy khoá công khai (public key) của B mã hóa nó, nhƣ vậy bây giờ cả hai nội dung thông điệp và khoá bí mật dùng để giải mã thông điệp đó cũng đã đƣợc mã hóa rồi, cả hai phần này sẽ đƣợc gởi đến B. Sau khi nhận đƣợc thông tin trên, B trƣớc tiên sẽ dùng khoá riêng (private key) của mình để giải mã ra nội dung của khoá bí mật trƣớc, sau khi có khoá bí mật rồi mới dùng nó để giải mã nội dung thông điệp, quá trình nhƣ trên đƣợc tiến hành tƣơng tự nhƣ vậy khi B muốn gửi ngƣợc lại cho A một thông điệp khác.

Hệ RSA thoả mãn các nguyên lý chung của một hệ mã hoá khoá công khai. Đó là:

1. Không cần phải thiết lập một kênh bảo vệ với những thể thức phức tạp, rƣờm rà để truyền khoá nhƣ trong hệ mã bí mật (mật mã đối xứng). Khoá mã hoá (n; e) là công khai, vì thế bằng cách đặt khoá này vào một địa chỉ đƣợc công bố công khai (không phải dùng một kênh truyền bí mật). Với việc biết khoá công khai không dễ gì để tìm đƣợc khoá bí mật d trong thời gian chấp nhận đƣợc vì vậy không cần phải dùng một kênh bí mật để truyền khoá.

2. Cặp khoá công khai đƣợc tạo ra theo một phƣơng pháp đặc biệt có quan hệ với nhau và đƣợc chọn trong nhiều khoá có thể (trong đó nếu khoá này dùng để mã hoá thì khoá kia dùng để giải mã)

Dựa vào khoá công khai (n;e) để tính khoá riêng, khoá riêng d đƣợc tính bằng cách giải phƣơng trình đồng dƣ e*d ≡ 1 mod ( )n . Khoá cùng cặp (n;d) đƣợc giữ bí mật còn đƣợc gọi là khoá riêng. Vậy ứng với một cặp p, q có thể chọn đƣợc nhiều bộ khoá công khai (n;e;d) theo quan hệ chỉ ra và vai trò của e và d có thể xem là tƣơng đƣơng. Nếu (n; e) là công khai thì d là bí mật và ngƣợc lại nếu (n; d) là công khai thì e là bí mật.

3. Mọi ngƣời trong hệ thống nếu nhận đƣợc bản mật C thì cũng không thể biết đƣợc bản rõ P. Với việc chỉ biết khoá mã hoá ke và căn cứ vào các thông tin về thuật toán thì không thể tìm ra khoá giải mã kd trong thời gian chấp nhận đƣợc(kể cả dùng hệ thống máy tính hiện đại nhất để tính toán).

Chương 2: Chữ ký số

2.1 Giới thiệu

Khi một thông điệp đƣợc truyền đi từ A đến B, và sau khi B nhận đƣợc một thông điệp thì liệu thông điệp đó có đúng đƣợc gửi từ A hay không, thông điệp có còn nguyên bản hay không, ... Để trả lời câu hỏi này cần phải có cơ chế nào đó để xác thực thông điệp. Khi một thông điệp đƣợc xác thực, nghĩa là:

 Thông điệp không bị thay đổi.

 Thông điệp đó đúng là của A.

Nếu nhƣ cả A và B đều đồng ý, không có ý kiến gì về xuất xứ cũng nhƣ nội dung của thông điệp, thì việc trao đổi nhƣ vậy đƣợc xác nhận là hoàn tất. Cả hai bên đều tin rằng, không có một kẻ thứ ba can thiệp vào quá trình trao đổi tin này.

Tuy nhiên, có những thông điệp gian lận xuất phát từ A hoặc do B tự tạo ra trong các giao dịch thƣơng mại, thanh toán, trao đổi trên mạng, v.v. Chẳng hạn, B có thể thêm một đoạn tin là A đã đặt một số hàng (mặt hàng này đang khó tiêu thụ) tƣơng đối lớn và buộc A phải nhận số hàng đó (trong khi thực tế số hàng đó A chỉ đặt ở mức độ vừa đủ), các tranh chấp có thể xảy ra và cũng có nhiều trƣờng hợp ngƣời bị lừa khó mà nhận biết đƣợc, nếu không có biện pháp phòng ngừa và phát hiện hữu hiệu.

Trong thực tế, các hoạt động thƣơng mại, quản lý hành chính, hoạt động nghiệp vụ, các tài liệu trên giấy có giá trị cam kết giao hẹn với nhau (như ngân phiếu, hợp đồng) thì A là bên có khả năng làm giả nhiều nhất. Ngƣợc lại, cũng có khi một số trƣờng hợp phía B lại chối bỏ trách nhiệm của mình vì thấy những

điều đó bất lợi cho mình. Trong các trƣờng hợp đó, việc xác thực thƣờng đƣợc dựa vào chữ ký của hai bên để xác nhận các điều khoản đã cam kết, giao hẹn với nhau trên “giấy trắng mực đen”,

Một phần của tài liệu chữ ký số và các vấn đề bảo mật thông tin (Trang 41 - 88)

Tải bản đầy đủ (PDF)

(88 trang)