Mật mã hóa Khóa công khai là gì?
≡ Mật mã hóa Khóa công khai là gì?
Mật mã hóa khóa công khai (PKC), còn được gọi là mật mã hóa bất đối xứng hay thuật toán khóa bất đối xứng, là một cơ cấu sử dụng cả chìa khóa cá nhân và chìa khóa công khai, trái ngược với chìa khóa đơn được sử dụng trong mật mã hóa đối xứng. Việc sử dụng các cặp chìa khóa khiến cho PKC có một bộ các đặc điểm và khả năng độc đáo có thể được sử dụng để giải quyết các thách thức tồn tại cố hữu trong các kỹ thuật mã hóa khác. Hình thức mật mã này đã trở thành một yếu tố quan trọng trong bảo mật máy tính hiện đại, cũng như là một thành phần quan trọng cho việc phát triển hệ sinh thái tiền điện tử.
≡ Mã hóa khóa công khai hoạt động như thế nào?
Trong sơ đồ PKC, chìa khóa công khai được người gửi sử dụng để mã hóa thông tin, trong khi chìa khóa cá nhân được người nhận sử dụng để giải mã. Hai chìa khóa là khác nhau, trong đó chìa khoá công khai có thể được chia sẻ an toàn mà không ảnh hưởng đến tính bảo mật của chìa khoá cá nhân. Mỗi cặp chìa khóa bất đối xứng là duy nhất, đảm bảo rằng một thông điệp được mã hóa bằng chìa khoá công khai chỉ có thể được đọc bởi người sở hữu chìa khoá cá nhân tương ứng.
Vì thuật toán mã hóa bất đối xứng tạo ra các cặp chìa khóa được liên kết về mặt toán học nên có độ dài chìa khóa dài hơn nhiều so với các cặp chìa khoá được tạo ra bởi mật mã hoá đối xứng. Độ dài dài hơn này – thường từ 1.024 đến 2.048 bit – khiến việc tính toán chìa khóa cá nhân từ chìa khoá công khai là vô cùng khó khăn. Một trong những thuật toán thông dụng nhất cho mã hóa bất đối xứng được sử dụng ngày nay có tên là RSA. Trong sơ đồ RSA, các chìa khóa được tạo bằng cách sử dụng một mô-đun phép nhân hai số (thường là hai số nguyên tố lớn). Nói đơn giản hơn, mô-đun tạo ra hai chìa khóa (một khóa công khai có thể được chia sẻ và một khóa cá nhân cần được giữ bí mật). Thuật toán RSA được mô tả lần đầu tiên vào năm 1977 bởi Rivest, Shamir và Adleman (RSA là ghép các chữ cái đầu tiên của 3 người này) và hiện vẫn là thành phần chính của các hệ thống mật mã khóa công khai.
Xem thêm:
Thuật toán khóa đối xứng và thuật toán khóa bất đối xứng
Chữ ký Số là gì? sự giống và khác nhau với chữ ký điện tử
Học viện Binance | Những khái niệm cơ bản về tiền mã hóa
Ví dụ:
Để thấy rõ hơn ưu điểm của hệ thống mật mã hóa khóa bất đối xứng ta có thể dùng sự tương tự với hệ thống bưu chính trong ví dụ sau: 2 người (Alice và Bob) trao đổi thông tin mật thông qua hệ thống bưu chính. Alice cần gửi một bức thư có nội dung cần giữ bí mật tới cho Bob và sau đó nhận lại thư trả lời (cũng cần giữ bí mật) từ Bob.
Trong hệ thống mật mã hóa khóa đối xứng, Alice sẽ cho bức thư vào hộp và khóa lại rồi gửi hộp theo đường bưu chính bình thường tới cho Bob. Khi Bob nhận được hộp, anh ta dùng một khóa giống hệt như khóa Alice đã dùng để mở hộp, đọc thông tin và gửi thư trả lời theo cách tương tự. Vấn đề đặt ra là Alice và Bob phải có 2 khóa giống hệt nhau bằng một cách an toàn nào đó từ trước (chẳng hạn như gặp mặt trực tiếp).
Trong hệ thống mật mã hóa khóa bất đối xứng, Bob và Alice có hai khóa khác nhau. Đầu tiên, Alice yêu cầu Bob gửi cho mình khóa (công khai) theo đường bưu chính bình thường và giữ lại khóa bí mật. Khi cần gửi thư, Alice sử dụng khóa nhận được từ Bob để khóa hộp. Khi nhận được hộp đã khóa bằng khóa công khai của mình, Bob có thể mở khóa và đọc thông tin. Để trả lời Alice, Bob cũng thực hiện theo quá trình tương tự với khóa của Alice.
Điều quan trọng nhất ở đây là Bob và Alice không cần phải gửi đi khóa bí mật của mình. Điều này làm giảm nguy cơ một kẻ thứ 3 (chẳng hạn như một nhân viên bưu chính biến chất) làm giả khóa trong quá trình vận chuyển và đọc những thông tin trao đổi giữa 2 người trong tương lai. Thêm vào đó, trong trường hợp Bob do sơ suất làm lộ khóa của mình thì các thông tin do Alice gửi cho người khác vẫn giữ bí mật (vì sử dụng các cặp khóa khác).
≡ PKC – Công cụ mã hoá
Mật mã khóa công khai giải quyết một trong những vấn đề tồn tại lâu của thuật toán đối xứng – vấn đề giao tiếp của chìa khóa được sử dụng cho cả mã hóa và giải mã. Việc gửi chìa khóa qua một kết nối không an toàn sẽ có nguy cơ để lộ cho bên thứ ba đọc được bất kỳ thông điệp nào được mã hóa bằng chìa khóa dùng chung. Mặc dù có các kỹ thuật mật mã (như giao thức trao đổi chìa khóa Diffie-Hellman-Merkle) để giải quyết vấn đề này, nguy cơ bị tấn công vẫn dễ xảy ra. Ngược lại, với mật mã khóa công khai, khóa được sử dụng để mã hóa có thể được chia sẻ an toàn trên bất kỳ kết nối nào. Kết quả là, các thuật toán bất đối xứng cung cấp mức độ bảo vệ cao hơn so với các thuật toán đối xứng.
≡ Ứng dụng tạo chữ ký kỹ thuật số
Một ứng dụng khác của các thuật toán mã hoá bất đối xứng là xác thực dữ liệu qua chữ ký kỹ thuật số. Về cơ bản, một chữ ký kỹ thuật số là một hash được tạo ra bằng cách sử dụng dữ liệu trong một thông điệp. Khi một thông điệp được gửi, người nhận có thể kiểm tra chữ ký bằng cách sử dụng chìa khoá công khai của người gửi như là một cách để xác thực nguồn của thông điệp và để đảm bảo rằng thông điệp không phải là giả mạo. Trong một số trường hợp, chữ ký kỹ thuật số và mã hóa được áp dụng kết hợp với việc hash tự nó có thể được mã hoá như là một phần của thông điệp. Tuy nhiên, cần lưu ý rằng không phải tất cả các sơ đồ chữ ký kỹ thuật số đều sử dụng các kỹ thuật mã hóa.
≡ Các hạn chế
Mặc dù có thể được sử dụng để tăng cường bảo mật máy tính và cung cấp xác minh cho tính toàn vẹn của thông điệp, PKC có một số hạn chế. Do có sự tham gia của các phép toán học phức tạp trong mã hóa và giải mã, các thuật toán bất đối xứng có thể khá chậm khi buộc phải xử lý một lượng lớn dữ liệu. Loại mật mã này cũng phụ thuộc rất nhiều vào giả định rằng chìa khóa cá nhân sẽ được giữ bí mật. Nếu một chìa khóa cá nhân vô tình bị chia sẻ hoặc bị lộ, tính bảo mật của tất cả các thông điệp đã được mã hóa bằng chìa khoá công khai tương ứng của nó sẽ bị xâm phạm. Người dùng cũng có thể vô tình làm mất khóa cá nhân, trong trường hợp đó, họ không thể truy cập dữ liệu đã được mã hóa.
≡ Các ứng dụng mã hoá khoá công khai
Loại mật mã này được sử dụng bởi nhiều hệ thống máy tính hiện đại nhằm cung cấp bảo mật cho thông tin nhạy cảm. Email, ví dụ, có thể được mã hóa bằng các kỹ thuật mã hóa khóa công khai để giữ bí mật nội dung. Giao thức Lớp cổng bảo mật (SSL) giúp kết nối an toàn đến các trang web có thể cũng sử dụng mật mã bất đối xứng. Các hệ thống PKC thậm chí đã được sử dụng như một phương tiện cung cấp một môi trường bỏ phiếu điện tử an toàn có khả năng cho phép cử tri tham gia các cuộc bầu cử từ máy tính tại nhà của họ.
PKC cũng góp mặt nổi bật trong công nghệ blockchain và tiền điện tử. Khi một ví tiền điện tử mới được thiết lập, một cặp chìa khóa sẽ được tạo (chìa khoá công khai và chìa khoá cá nhân). Địa chỉ công khai được tạo bằng cách sử dụng chìa khoá công khai và có thể được chia sẻ an toàn với người khác. Mặt khác, chìa khóa cá nhân được sử dụng để tạo ra các chữ ký kỹ thuật số và xác minh các giao dịch, và do đó, phải được giữ bí mật. Khi một giao dịch đã được xác minh bằng cách xác nhận hash có trong chữ ký kỹ thuật số, giao dịch đó có thể được thêm vào sổ cái blockchain. Hệ thống xác minh chữ ký kỹ thuật số đảm bảo rằng chỉ người có chìa khóa cá nhân được liên kết với ví tiền điện tử tương ứng mới có thể rút tiền. Cần lưu ý rằng các mật mã bất đối xứng được sử dụng trong các ứng dụng tiền điện tử là khác với các mật mã được sử dụng cho mục đích bảo mật máy tính. Ví dụ, Bitcoin và Ethereum sử dụng một mật mã chuyên dụng được gọi là Thuật toán Chữ ký số Elliptic Curve (ECDSA) để xác minh các giao dịch.
Từ bảo mật máy tính đến xác minh các giao dịch tiền điện tử, mật mã khóa công khai đóng một vai trò quan trọng trong việc bảo mật các hệ thống kỹ thuật số hiện đại. Bằng cách sử dụng các chìa khóa công khai và chìa khoá cá nhân theo cặp, các thuật toán mã hóa bất đối xứng giải quyết các vấn đề bảo mật cơ bản được đưa ra bởi các mã hoá đối xứng. Mặc dù PKC đã được sử dụng trong nhiều năm, các cách sử dụng và các ứng dụng mới vẫn thường xuyên được phát triển cho nó, đặc biệt là trong lĩnh vực blockchain và tiền điện tử.