Bách khoa toàn thư

Mật mã khóa công khai - mật mã học -

Mật mã khóa công khai , dạng mật mã không đối xứng trong đó người truyền thông điệp và người nhận thông điệp sử dụng các khóa (mã) khác nhau, do đó loại bỏ nhu cầu người gửi phải truyền mã và có nguy cơ bị đánh chặn.

Bảng Vigenère Trong mã hóa bản rõ, ký tự mật mã được tìm thấy ở giao điểm của cột đứng đầu bởi ký tự rõ ràng và hàng được lập chỉ mục bởi ký tự khóa. Để giải mã bản mã, ký tự bản rõ được tìm thấy ở đầu cột được xác định bởi giao điểm của đường chéo chứa ký tự mật mã và hàng chứa ký tự khóa. Đọc thêm về chủ đề mật mã học này: Mật mã hai khóa Năm 1976, trong một trong những thông tin chi tiết được truyền cảm hứng nhất trong lịch sử mật mã học, Sun Microsystems, Inc., kỹ sư máy tính Whitfield Diffie và ...

Năm 1976, trong một trong những hiểu biết sâu sắc nhất về lịch sử mật mã, Sun Microsystems, Inc., kỹ sư máy tính Whitfield Diffie và kỹ sư điện Martin Hellman của Đại học Stanford nhận ra rằng vấn đề phân phối khóa gần như có thể được giải quyết hoàn toàn nếu một hệ thống mật mã, T ( và có lẽ một hệ thống nghịch đảo, T ′), có thể được tạo ra sử dụng hai khóa và thỏa mãn các điều kiện sau:

  1. Nó phải là dễ dàng cho các mật mã để tính toán một cặp chìa khóa, điện tử (mã hóa) và d (giải mã), mà T e T ' d = tôi . Mặc dù không cần thiết, điều mong muốn là Td T e = IT = T ′. Vì hầu hết các hệ thống được thiết kế để đáp ứng các điểm 1–4 cũng thỏa mãn các điều kiện này, nên sau này sẽ được giả định rằng chúng sẽ duy trì — nhưng điều đó là không cần thiết.
  2. Hoạt động mã hóa và giải mã, T , phải dễ thực hiện (về mặt tính toán).
  3. Ít nhất một trong các khóa phải không khả thi về mặt tính toán để người phá mã có thể khôi phục ngay cả khi anh ta biết T , khóa còn lại và nhiều cặp bản rõ và bản mã phù hợp tùy ý.
  4. Sẽ không khả thi về mặt tính toán để khôi phục x cho trước y , trong đó y = T k ( x ) cho hầu hết tất cả các khóa k và thông báo x .

Với một hệ thống như vậy, Diffie và Hellman đề xuất rằng mỗi người dùng phải giữ bí mật khóa giải mã của mình và xuất bản khóa mã hóa của mình trong một thư mục công khai. Không bắt buộc phải bảo mật, trong việc phân phối hoặc lưu trữ thư mục khóa “công khai” này. Bất kỳ ai muốn giao tiếp riêng tư với người dùng có khóa trong thư mục chỉ phải tra cứu khóa công khai của người nhận để mã hóa một tin nhắn mà chỉ người nhận dự định mới có thể giải mã. Tổng số khóa có liên quan chỉ gấp đôi số người dùng, với mỗi người dùng có một khóa trong thư mục công khai và khóa bí mật của riêng mình, mà anh ta phải bảo vệ vì lợi ích riêng của mình. Rõ ràng là thư mục công cộng phải được xác thực, nếu không A có thể bị lừa giao tiếp với C khi anh ta nghĩ rằng anh ta đang giao tiếp vớiB đơn giản bằng cách thay thế khóa của C cho B trong bản sao thư mục của A. Vì họ tập trung vào vấn đề phân phối khóa, Diffie và Hellman đã gọi khám phá của họ là mật mã khóa công khai. Đây là cuộc thảo luận đầu tiên về mật mã hai khóa trong tài liệu mở. Tuy nhiên, Đô đốc Bobby Inman, khi là giám đốc Cơ quan An ninh Quốc gia Hoa Kỳ (NSA) từ năm 1977 đến năm 1981, tiết lộ rằng mật mã hai khóa đã được cơ quan này biết đến gần một thập kỷ trước đó, đã được phát hiện bởi James Ellis, Clifford Cocks, và Malcolm Williamson tại Trụ sở Bộ luật Chính phủ Anh (GCHQ).

Trong hệ thống này, mật mã được tạo bằng khóa bí mật có thể được giải mã bởi bất kỳ ai sử dụng khóa công khai tương ứng — do đó cung cấp một phương tiện để xác định người khởi tạo với chi phí là từ bỏ hoàn toàn bí mật. Mật mã được tạo bằng khóa công khai chỉ có thể được giải mã bởi người dùng giữ khóa bí mật, chứ không phải bởi người khác giữ khóa công khai — tuy nhiên, người giữ khóa bí mật không nhận được thông tin nào liên quan đến người gửi. Nói cách khác, hệ thống cung cấp bí mật với chi phí từ bỏ hoàn toàn bất kỳ khả năng xác thực nào. Những gì Diffie và Hellman đã làm là tách kênh bí mật khỏi kênh xác thực — một ví dụ nổi bật về việc tổng các phần lớn hơn toàn bộ. Mật mã một khóa được gọi là đối xứng vì những lý do hiển nhiên.Hệ thống mật mã thỏa mãn các điều kiện 1-4 ở trên được gọi là không đối xứng vì những lý do rõ ràng như nhau. Có những hệ thống mật mã đối xứng trong đó khóa mã hóa và khóa giải mã không giống nhau — ví dụ, các phép biến đổi ma trận của văn bản, trong đó một khóa là ma trận nonsingular (có thể đảo ngược) và khóa kia là nghịch đảo của nó. Mặc dù đây là một hệ thống mật mã hai khóa, vì có thể dễ dàng tính toán nghịch đảo cho một ma trận không kỳ dị, nó không thỏa mãn điều kiện 3 và không được coi là không đối xứng.nó không thỏa mãn điều kiện 3 và không được coi là không đối xứng.nó không thỏa mãn điều kiện 3 và không được coi là không đối xứng.

Vì trong hệ thống mật mã không đối xứng, mỗi người dùng có một kênh bí mật từ mọi người dùng khác đến anh ta (sử dụng khóa công khai của anh ta) và một kênh xác thực từ anh ta tới tất cả người dùng khác (sử dụng khóa bí mật của anh ta), có thể đạt được cả bí mật và xác thực bằng cách sử dụng siêu mã hóa. Say Một mong muốn truyền đạt một thông điệp bí mật đến B , nhưng B muốn chắc chắn thông điệp được gửi qua đường Một . Đầu tiên A mã hóa thông điệp bằng khóa bí mật của mình và sau đó siêu đồng bộ hóa mật mã kết quả bằng khóa công khai của B. Mật mã bên ngoài kết quả chỉ có thể được giải mã bởi B , do đó đảm bảo với A rằng chỉ Bcó thể khôi phục mật mã bên trong. Khi B mở mật mã bên trong sử dụng Một ‘khóa công khai của ông chắc chắn rằng thông điệp đến từ một người nào đó biết Một ‘s quan trọng, có lẽ Một . Đơn giản như nó là, giao thức này là một mô hình cho nhiều ứng dụng hiện đại.

Các nhà mật mã học đã xây dựng một số sơ đồ mật mã thuộc loại này bằng cách bắt đầu với một vấn đề toán học "khó" - chẳng hạn như tính toán một số là tích của hai số nguyên tố rất lớn - và cố gắng làm cho việc phân tích mật mã của sơ đồ tương đương với việc giải bài toán khó . Nếu điều này có thể được thực hiện, tính bảo mật mật mã của chương trình sẽ ít nhất là tốt vì vấn đề toán học cơ bản khó giải quyết. Cho đến nay, điều này vẫn chưa được chứng minh cho bất kỳ kế hoạch ứng viên nào, mặc dù nó được cho là đúng trong từng trường hợp.

Tuy nhiên, một bằng chứng nhận dạng đơn giản và an toàn là có thể dựa trên sự bất đối xứng tính toán đó. Đầu tiên, một người dùng bí mật chọn hai số nguyên tố lớn và sau đó công khai sản phẩm của họ. Mặc dù rất dễ dàng để tính căn bậc hai mô-đun (một số mà bình phương của nó để lại một phần dư được chỉ định khi chia cho tích) nếu biết các thừa số nguyên tố, nó cũng khó như tính thừa (thực tế là tương đương với tính thừa) sản phẩm nếu số nguyên tố chưa biết. Do đó, người dùng có thể chứng minh danh tính của mình, tức là anh ta biết các số nguyên tố ban đầu, bằng cách chứng minh rằng anh ta có thể trích xuất các căn bậc hai mô-đun. Người dùng có thể tự tin rằng không ai có thể mạo danh anh ta vì làm như vậy họ phải có khả năng đánh giá sản phẩm của anh ta. Có một số điều tinh tế đối với giao thức phải được quan sát,nhưng điều này minh họa cách mật mã tính toán hiện đại phụ thuộc vào các bài toán khó.

$config[zx-auto] not found$config[zx-overlay] not found