Từ điển
Dịch văn bản
 
Tất cả từ điển
Tra từ
Hỏi đáp nhanh
 
 
 
Kết quả
Vietgle Tra từ
Chuyên ngành Anh - Việt
Public key Cryptography
|
Tin học
Mã hóa khóa công cộng Giả sử rằng Bob và Alice muốn trao đổi thông điệp riêng được mã hóa trên một hệ thống không an toàn như Internet. Họ chọn một phương pháp mã hóa làm cho thông điệp đó không được đọc bởi bất cứ người nào muốn truy cập lúc truyền tải. Bob dùng một khóa để mã hóa thông điệp. Alice phải có khóa nầy để đọc thông điệp. Nhưng vấn đề cơ bản là làm sao để Alice có khóa để giải mã thông điệp. Bob có thể dùng diện thoại nhưng đường dây có thể bị theo dõi. Phương pháp khác là gửi mã khóa trong một thông điệp e-mail hay nhờ người đưa thư, nhưng nếu thông điệp bị ngăn lại trên đường truyền thì sao? Có thể là bạn hơi hoang tưởng, nhưng hãy nghĩ các thông tin quân sự đang bị theo dõi bởi kẻ thù hay các Bộ quốc phòng khác. Sự đe dọa như thế cũng mở rộng sang thế giới kinh tế đầy cạnh tranh và thế giới tài chính. Theo lệ trước, cả người gửi và người nhận đều có mã khóa và tin tưởng nhau. Ví dụ, trước khi rời cảng, thuyền trưởng tàu ngầm được trao cho một tài liệu giải mã các thông điệp từ cảng nhà. Đó là mã hóa đối xứng (hai bên đều có cùng một khóa mật), thường gọi là mã hóa khóa riêng hay là mã hóa khóa mật. DES (Chuẩn mã hóa dữ liệu) là phương thức mã hóa khóa riêng phổ biến. Xem phần “DES (Data Encryption Standard)”. Nhưng không phải trong tất cả các trường hợp cả hai nhóm muốn trao đổi thông điệp đều tin tưởng nhau và trao đổi mã khóa trước. Để giải quyết vấn đề nầy, Whitfield Diffie và Martin Hellman thiết kế phương pháp mã hóa khoá công cộng không đối xứng vào giữa những năm 1970. Cơ bản là, ai muốn mã hóa và gửi thông điệp tới người khác cần phải tạo ra hai mã khóa. Một mã được giữ bí mật riêng và mã kia được phổ biến công cộng, giống như danh bạ điện thoại gồm số điện thoại của mọi người. Nếu có người muốn gửi thông điệp đến cho bạn, anh ta dùng mã khóa công cộng của bạn, mã hóa nó, và gửi tới bạn thông điệp đó. Chỉ có khóa riêng của bạn có thể giải mã, nếu có người ngăn chặn thông điệp thì không thể giải mã nó bằng khóa công cộng của bạn được. Lưu ý: Dù Diffie và Hellman thiết kế mã hóa khóa công cộng không đối xứng, nhưng chính RSA (Rivest, Shamir, Adleman) Data Systems (nay thuộc Security Dynamics) đã đưa ứng dụng nầy vào hệ thống thực tế. Hình P-15 minh họa cơ chế hoạt động của mã hóa khóa công cộng. Sue và Joe muốn trao đổi thông điệp mật. Cả Sue và Joe đều ở trong mạng của cùng một công ty nên dễ dàng truy cập vào một server an toàn nơi lưu trữ các mã khóa công cộng. 1. Sue và Joe và tất cả mọi người trong công ty tạo ra một bộ khóa bằng cách sử dụng phần mềm thường thấy trong Web browsers hoặc các trình ứng dụng e-mail 2. Mọi người đặt mã công cộng của họ trong một server mã công cộng của công ty. Một dịch vụ công cộng gọi là CA (certificate authority) sẽ quản lý các khóa công cộng nầy. 3. Khi Joe muốn gửi một thông điệp mật đến Sue, anhh ta lấy mã khóa công cộng của Sue từ một server an toàn, mã hóa thông điệp bằng mã nầy, và gửi đến Sue. 4. Sue nhận được thông điệp và giải mã bằng khóa riêng của cô ta. Giải pháp mã hóa khóa công cộng giải quyết được vấn đề gửi mã khóa tới các nơi cần giải mã thông điệp. Thực sự, nó cho phép moị người mã hóa thông điệp và gửi tới người khác mà không cần sự thỏa thuận trước. Giải pháp nầy không thật sự cần thiết khi các bên biết nhau, là thành viên của cùng một tổ chức, hoặc trao đổi thông tin gì với người khác trước khi trao đổi thông điệp mật. Điều cần thiết là cả hai bên phải có cách thức trao đổi mã khóa công cộng. Vì thế mà việc quản trị các khóa mới là vấn đề. Quản trị các khóa là cho tất cả các khóa công cộng được phổ biến. Nếu có cá nhân muốn gửi bạn thông điệp, họ phải có bản sao mã công cộng của bạn. Trên mạng riêng, họ có thể lấy được nó trong một server quản lý khóa gồm tất cả các khóa của một tổ chức. Trên Internet, các tổ chức CA (certificate authorities), như VeriSign, Commerce Net, và ngay cả dịch vụ bưu điện của Mỹ quản trị các khóa. Một vai trò quan trọng khác của CA là bảo đảm cho người khác rằng khóa mã công cộng của bạn là xác thực, giống như hệ thống ngân hàng kiểm tra thẻ tín dụng. Xem “Certificates and Certification Systems” và “PKI (Public-Key Infrastructure)” để thêm thông tin về quản trị khóa. Hình P-15 Mã hoá khoá công cộng Hãy nhớ rằng mã hóa khóa công cộng thích hợp cho các môi trường mở nơi có những người cần trao đổi thông tin riêng mà không cần sự thỏa hiệp. Tuy nhiên, một giải pháp mã hóa khác - mã hóa khóa riêng (cũng được gọi là mã hóa khóa mật), với dữ liệu được mã hóa với một khóa đơn - sẽ tốt hơn cho việc mã hóa cục bộ hoặc mã hóa người dùng, như việc bảo mật mật khẩu, mã hóa thông tin lưu trên đĩa và truyền thông tin đến một chi nhánh trên một kênh an toàn. Mã hóa khóa riêng thích hợp với môi trường mà mã khóa có thể trao đổi an toàn và dễ dàng. Trong thực tế, mã hóa khóa công cộng được kết hợp với hệ thống mã hóa khóa riêng, như DES, để tạo ra các phong bì digital (digital envelope). Một gói digital đưa ra cách thức để mã hóa một khóa riêng trong một thông điệp nên bạn có thể gửi khóa với thông điệp cho người khác. Đây là cách thức một gói digital được tạo ra: 5. Joe muốn gửi một thông điệp tới Sue, nên anh ta mã hóa thông điệp với DES (khóa mật) bằng cách sử dụng phím thích hợp. 6. Sau đó Joe mã hóa khóa DES bằng khóa công cộng của Sue. Sự kết hợp của mã hóa khóa mật DES và mã hóa khóa công cộng DES tạo thành một gói digital 7. Joe gửi gói digital tới Sue, giải mã khóa DES với khóa riêng của cô ta và sau đó sử dụng khóa DES giải mã nội dung thông điệp. Kỹ thuật nầy sử dụng kết hợp mã hóa khóa công cộng và mã hóa khóa mật cho bạn giải pháp tốt hơn. Bạn có thể trao đổi thông tin mật bằng hệ thống khóa công và tăng thêm nhiều thuận lợi bằng hệ thống khóa mật. Một khía cạnh khác của khoá công cộng là khả năng kiểm lại một thông điệp. Nếu bạn là một nhân viên môi giới chứng khoán và bạn nhận được yêu cầu mua 1000 cổ phần của Microsoft, bạn cũng nên xác minh yêu cầu đó chắc chắn hay không và có phương pháp để chắc rằng người nhắn không chối bỏ yêu cầu khi chứng khoán hạ giá. Đây là lúc xuất hiện chữ ký số (digital signature) và thời điểm digital (timestamp digital). Một người ký vào tài liệu bằng cách mã hóa toàn bộ hay một phần tài liệu bằng khóa riêng của anh ta, làm cho sự mã hóa thông điệp là độc nhất với người dùng. Vì khóa công cộng của người gửi là khóa duy nhất để mở tài liệu, người nhận sẽ chắc chắn rằng tài liệu là xác thực, chưa bị quấy nhiễu, và người gửi không thể nào thoái thác nó. Một thời điểm digital xác định thời gian lúc tài liệu được tạo ra. Chữ ký và thời điểm digital có tính quyết định trong kinh doanh qua hệ thống thông tin máy tính. Xem ”Digital Signatures” để biết thêm chi tiết. Hệ thống mã hóa khóa công cộng của RSA Giải pháp mã hóa khóa công cộng có khả năng mã hóa thông điệp và ký chữ digital tạo thuận lợi cho việc truyền thông trên mạng digital. Sức mạnh mã hóa là một yếu tố xác định sự bảo mật. Kích cỡ của mã khóa đảm bảo rằng thông tin được mã hóa sẽ an toàn trong một thời gian dài. Nếu bạn quan tâm đến mã hóa, bạn sẽ thắc mắc làm sao khóa công cộng và khóa riêng lại hữu dụng trong hệ thống mã hóa RSA. Trước tiên, hệ thống RSA lấy hai con số nguyên tố lớn và nhân chúng tạo thành một khóa. Sau đó, hệ thống sẽ theo một quá trình phân tích thừa số nguyên tố (factoring) để thử tìm ra khóa nguồn gốc bằng cách tìm ra các số nguyên tố ban đầu được nhân lên tạo ra mã khóa. Hãy nhớ rằng factoring là kỹ thuật của những người tìm cách lấy mã khóa để mở các thông điệp riêng. Tờ báo của RSA về những giải đáp những câu hỏi thường thấy trong việc mã hóa mô tả hệ thống mã khóa công cộng RSA như sau: “Lấy hai số, p và q, nhân chúng n=pq; n được gọi là môđun. Chọn một số, e, nhỏ hơn n và e và (p-1)(q-1) nguyên tố cùng nhau, nghĩa là e và (p-1)(q-1) không có ước số công cộng nào khác ngoài 1. Tìm một số khác, d, mà (ed-1) là ước số của (p-1)(q-1). Giá trị e và d được gọi là số mũ chung và số mũ riêng. Khóa công cộng là cặp (n,e); khóa riêng là (n,d). Hai số p và q có thể được giữ lại trong khóa riêng hay bỏ đi. Cho nên rất khó tìm ra số d từ khóa công cộng (n,e). Nếu có người có thể tìm ra p và q từ n, thì cũng rất có thể tìm ra khóa riêng d. Vì thế sự an toàn của RSA phụ thuộc vào độ phức tạp của quá trình factoring. Một cryptanalyst là người phân tích và tấn công mật mã. Factoring là kỹ thuật mà cryptanalyst sử dụng để phân tích môđun n thành những số nguyên ban đầu tạo thành nó. Phân tích thừa số nguyên tố đòi hỏi phân tích một số nguyên thành tích của những số nguyên tố. Sức mạnh của hệ thống mã hóa khóa công cộng dựa trên việc nhân 2 số nguyên thì rất đơn giản, nhưng phân tích nó thì rất phức tạp (ít ra là cho đến ngày nay). Phân tích một môđun của RSA cho phép kẻ tấn công tìm ra khóa riêng và giải mã thông điệp và giả mạo chữ kí. Bởi vì phân tích những số lớn mất nhiều thời gian phân tích những số nhỏ, số môđun càng lớn thì độ an toàn càng cao. Trong hầu hết trường hợp, các cuộc tấn công đòi hỏi mất nhiều thời gian, tiền bạc và tài nguyên. A.M Odlyzko vào năm 1995 chứng minh rằng RSA 512 bit có thể phân tích trong 8 tháng và 1.000.000 USD. Việc phân tích ngày nay trở nên nhanh hơn do máy tính mạnh hơn và thuật toán phân tích tốt hơn. Nhưng cùng lúc nầy, sự cải tiến của phần cứng giúp RSA an toàn hơn. Người dùng có thể chọn những khóa có kích thước lớn hơn (không làm giảm tốc độ) để làm giảm sự tấn công. Từ mục liên quan Certificates and Certification Systems; Cryptography; Digital Signatures; PKI(Public-Key Infrastructure); Private-Key Cryptography; and Security Thông tin trên Internet RSA Data Security, Inc. http://www.rsa.com RSA’s Cryptography FAQ http://www.rsa.com/PUBS Ron Rivest’s Links (danh sách tương đối đầy đủ các liên kết trên Web) http://theory.lcs.mit.edu/~rivest/crypto- security.html Gateway to Information Security, Inc. http://www.securityserver.com/cgi-ocal/ssis.pl/category/@rsa.htm The Computer Virus Help Desk (thông tin và các phần mềm mã hóa) http://iw1.indyweb.net/~cvhd/rcypto.html