Mật mã khóa công khai lựa chọn hàng đầu để giải quyết vấn đề mã hóa dữ liệu

Mã hóa cũ có một vấn đề lớn về khóa riêng tư và mật mã khóa công khai Public Key Cryptography đã giải quyết nó.

 

Chúng ta nói rất nhiều về các ứng dụng bảo mật của mật mã khóa công khai, cách nó thực hiện cả mã hóa và xác thực. Vai trò của nó trong SSL, Ký mã, Gửi email và ký tài liệu, xác thực cá nhân — mọi thứ. Những gì chúng ta thường không nói đến là ý nghĩa lịch sử của mã hóa khóa công khai.

Hôm nay chúng ta sẽ nói về sự khác biệt giữa mật mã khóa riêng và mã hóa khóa công khai, ý nghĩa lịch sử của chúng và cách chúng kết hợp để tạo SSL / TLS và các hệ thống mã hóa tương tự.

Vì vậy, không cần thêm quảng cáo, hãy cùng tìm hiểu nó nào.

Mã hóa khóa cá nhân là gì?

 

Trong suốt lịch sử, có vô số ví dụ về mật mã khóa riêng có từ năm 1900 trước Công nguyên. Trong mật mã khóa riêng, cả hai bên phải giữ một khóa riêng phù hợp (hoặc trao đổi nó khi truyền) mà chúng có thể sử dụng cho cả hai bản mã hóa và sau đó giải mã nó. Ví dụ nổi tiếng sẽ là mật mã của Caesar, máy Enigma và Great Cipher của Louis XIV.

Có một lỗ hổng lớn vốn có trong mật mã khóa riêng.

Hãy nghĩ về nó, cả hai bên phải sở hữu một chìa khóa vật lý. Nếu có bất kỳ khoảng cách nào giữa hai bên – điều đó không phải là không phổ biến – bạn phải giao một người chuyển phát nhanh với khóa riêng của mình hoặc di chuyển đến đó để tự mình trao đổi. Và nếu chìa khóa rơi vào tay kẻ xấu thì mọi thứ có thể bị phá sản. Người ta theo nghĩa đen đã chết trên các khóa riêng bị xâm phạm trong quá khứ .

Ngay cả trong thời đại kỹ thuật số, mã hóa khóa riêng trên các cuộc đấu tranh của chính nó với sự phân phối chính. Làm thế nào để bạn biết rằng bạn đang gửi khóa riêng (được gọi là khóa phiên trong SSL / TLS) cho bên chính xác mà không có cơ chế xác thực?

Sáng chế mã hóa khóa công khai

 

Mã hóa khóa công khai đã thực sự được phát hiện hai lần. Năm 1970, một nhà mật mã tên là James Ellis làm việc cho Trụ sở Truyền thông Chính phủ Anh (GCHQ) đã đưa ra giả thuyết về một hệ thống mã hóa khóa công khai, nhưng không biết cách thực hiện nó vào thời điểm đó. Ba năm sau vào năm 1973, Clifford Cocks đã tìm ra một phương pháp thực tiễn để thực hiện bằng cách trộn lẫn một thuật toán tương đương với những gì chúng ta biết là RSA. Một người đàn ông thứ ba, nhà toán học Malcolm Williamson đã phát triển một hệ thống trao đổi chính tương đương với trao đổi khóa Diffie-Helman.

Thông tin này cũng được chuyển cho NSA của Mỹ, nhưng không tổ chức nào hiểu được tầm quan trọng của nó và do tính chất của máy tính vào thời điểm công nghệ được xem là không thực tế và nhiều thử nghiệm suy nghĩ thú vị hơn. Nó được phân loại vào năm 1997 sau 27 năm.

Theo hiểu biết của chúng tôi, nó không bao giờ được triển khai bởi một trong hai bên.

Vì vậy, vào năm 1976, Mật mã khóa công khai được phát hiện lần nữa, lần này bởi Whitfield Diffie và Martin Hellman, hệ thống này được đặt tên sau đó (năm 2002 họ cho rằng đó là trao đổi khóa Diffie-Hellman-Merkle, sau Ralph Merkle, một nhà mật mã họ làm việc với Stanford).

Một năm sau, Ron Rivest, Adi Shamir và Leonard Adleman, những người sáng tạo cùng tên của RSA đã hoàn thành công việc của họ tại MIT.

Mật mã khóa công khai là gì?

 

Trao đổi khóa Diffie-Helman và RSA là các hệ thống mật mã không đối xứng. Cho đến thời điểm này, mã hóa đã được đối xứng, với cả hai bên có thể mã hóa và giải mã với cùng một khóa riêng. Như chúng tôi đã tiếp xúc, điều này đã tạo ra tất cả các loại vấn đề cho mọi người.

Như bạn có thể có thể nói từ thuật ngữ “trao đổi khóa” những người sáng tạo của các hệ thống này đã suy nghĩ về sửa chữa một vấn đề tuổi già: phân phối chính.

Mã hóa khóa công khai sử dụng một cặp khóa. Khóa công khai, có thể mã hóa và khóa cá nhân giải mã. Thông tin liên lạc chỉ có thể đi một cách với Mã hóa khóa công khai, do đó nó được gọi là “không đối xứng.” Ý tưởng là bên được ủy quyền nắm giữ khóa riêng trong khi khóa công khai, tốt, công khai.

Khóa riêng tư trong Mã hóa khóa công khai vẫn có giá trị hơn bao giờ hết, vì vậy cần phải cân nhắc thêm để giữ an toàn cho nó. Nhưng chìa khóa công cộng hoàn toàn vô giá trị trong tay kẻ xấu. Không có nguy cơ thỏa hiệp khóa công khai. Vậy mã hóa khóa công khai giải quyết vấn đề khóa riêng như thế nào?

Bằng cách cho phép mã hóa đối xứng an toàn hơn.

Mã hóa khóa công khai là cơ chế trao đổi khóa

Rõ ràng, bản chất một chiều của mã hóa khóa công khai làm cho nó trở thành một sự lựa chọn nghèo nàn cho giao tiếp. Nhưng đó không thực sự là những gì nó làm. Đó là cơ chế để xác thực nhiều như mã hóa. Đó là để mã hóa thông tin và đảm bảo thông tin đến đúng bên. Và một trong những điều tốt nhất để mã hóa là khóa riêng tư.

Đây là những gì bạn thấy với SSL / TLS. Trong quá trình handshake , máy khách tạo khóa phiên đối xứng (riêng tư), mã hóa nó và gửi nó đến máy chủ. Nếu máy chủ có khóa riêng, nó sẽ giải mã khoá phiên và máy khách và máy chủ có thể bắt đầu giao tiếp bằng các khóa đối xứng.

Điều đó cũng giúp xác thực máy chủ, vì nó sẽ không thể giải mã tin nhắn của khách hàng mà không có khóa riêng chính xác.

Mật mã khóa công khai là một bước đột phá tuyệt vời đã đặt nền móng cho các giao thức SSL / TLS mà chúng ta sử dụng ngày nay. Cho đến thời điểm này, ngay cả hệ thống mã hóa tiên tiến nhất vẫn chỉ an toàn như khóa riêng của nó. Điều đó cũng đúng với mã hóa khóa công khai. Nhưng như một cơ chế trao đổi khóa, mã hóa khóa công khai loại bỏ rất nhiều vectơ tấn công.

Và do tính chất một chiều của nó, các khóa riêng được sử dụng trong mã hóa khóa công khai có thể mạnh mẽ hơn rất nhiều. Khóa riêng đối xứng mạnh là 256 bit. Điều đó vẫn còn rất nhiều bảo mật . Nhưng nó có thể so sánh với khóa riêng RSA 2048 bit.

Mã hóa khóa công khai hoạt động như thế nào trong SSL?

Trong SSL, Mã hóa khóa công khai giúp xác thực và trao đổi khóa. Để giải thích điều này tôi sẽ sử dụng mô hình TLS 1.3 vì đó là hướng mà chúng tôi đang hướng đến. Nó phức tạp hơn một chút trong các phiên bản TLS trước đó .

Hãy bắt đầu bằng cách nói về mật mã và bộ mã hóa . Mật mã là thuật toán được sử dụng để mã hóa. Bộ mật mã là một nhóm các thuật toán được sử dụng kết hợp với giao thức SSL / TLS. Mỗi máy chủ và mọi trình duyệt đều được cấu hình để hỗ trợ một số bộ mã hóa nhất định.

Theo truyền thống, bộ mã hóa bao gồm:

Key Exchange/Authentication Algorithm_WITH _ Symmetric Cipher_Hashing Function

Điều đó đang thay đổi với TLS 1.3 , kết hợp các thuật toán mã hóa và xác thực vào mã hóa được xác thực bằng thuật toán dữ liệu liên quan (AEAD).

Bây giờ chúng ta hãy tiếp tục. Khi người dùng (máy khách) đến một trang web (máy chủ), nó sẽ gửi một thông điệp clientHello có một danh sách các bộ mã hóa được hỗ trợ theo thứ tự ưu tiên. Nó cũng đoán thuật toán mã hóa sẽ được sử dụng và gửi khóa phiên. Tất cả điều này được mã hóa bằng khóa công khai của máy chủ.

Máy chủ sử dụng khóa riêng của nó để giải mã thông điệp clientHello và sau đó trả về máy chủ thư Hello với chứng chỉ của nó, bộ mã hoá được chọn của nó và (nếu cần) khóa của nó.

Sau khi nhận được máy chủHãy máy khách và máy chủ bắt đầu giao tiếp bằng cách sử dụng các khóa mã hóa đối xứng mà họ đã trao đổi.

Bây giờ, một từ nhanh về khóa phiên: chúng được thay thế thường xuyên. Không phải là không phổ biến việc sử dụng một khóa phiên khác nhau cho mỗi tin nhắn trong một số bối cảnh.

Điều đó sẽ không bao giờ khả thi nếu không có khả năng xử lý một cách an toàn việc phân phối khóa.

Và đó là ý nghĩa lịch sử của Mật mã khóa công khai.

0/5 (0 Reviews)

Leave a Comment