Tại sao không có thuật toán mã hóa dựa trên các vấn đề NP-Hard đã biết?


109

Hầu hết các mã hóa ngày nay, chẳng hạn như RSA, phụ thuộc vào hệ số nguyên, không được cho là vấn đề NP-hard, nhưng nó thuộc về BQP, khiến nó dễ bị tổn thương trước các máy tính lượng tử. Tôi tự hỏi, tại sao không có một thuật toán mã hóa dựa trên một vấn đề NP-hard đã biết. Nghe có vẻ (ít nhất là về mặt lý thuyết) giống như nó sẽ tạo ra một thuật toán mã hóa tốt hơn so với thuật toán không được chứng minh là NP-hard.

Câu trả lời:


76

Trường hợp xấu nhất Độ cứng của các vấn đề hoàn thành NP là không đủ cho mật mã. Ngay cả khi các vấn đề hoàn thành NP là khó khăn trong trường hợp xấu nhất ( ), chúng vẫn có thể được giải quyết một cách hiệu quả trong trường hợp trung bình. Mật mã học giả định sự tồn tại của các vấn đề khó xử lý trong trường hợp trung bình trong NP. Ngoài ra, việc chứng minh sự tồn tại của các vấn đề trung bình khó trong NP sử dụng giả định là một vấn đề mở lớn.P N PPNPPNP

Một bài đọc xuất sắc là tác phẩm kinh điển của Russell Impagliazzo, Một quan điểm cá nhân về mức độ phức tạp của trường hợp trung bình , 1995.

Một khảo sát xuất sắc là Độ phức tạp trường hợp trung bình của Bogdanov và Trevisan, Cơ sở và Xu hướng trong Khoa học máy tính lý thuyết Vol. 2, số 1 (2006) 1


1
Không phải chúng ta cũng cần độ cứng trong trường hợp tốt nhất sao? Rốt cuộc, tất cả các khóa của chúng tôi nên được an toàn. Hoặc chúng ta có thể ngăn chặn một cách hiệu quả (và hiệu quả) trường hợp tốt nhất xảy ra?
Raphael

7
hơn nữa, chúng ta sẽ có thể tạo ra các thể hiện cứng trong thời gian hợp lý. Nói tóm lại, chúng ta cần nhiều hơn là chỉ ness. NP-hard
Kaveh

@Raphael, nó là đủ nếu xác suất để có được một trường hợp "tốt" không mong muốn là đủ nhỏ. Nếu nó nói nhỏ hơn xác suất để đoán khóa chính xác của trường hợp "xấu" mong muốn, thì rủi ro này nên được coi là IMHO chấp nhận được.
quazgar

49

Đã có.

Một ví dụ như vậy là hệ thống mật mã McEliece dựa trên độ cứng của việc giải mã mã tuyến tính.

Một ví dụ thứ hai là NTRUEncrypt dựa trên bài toán vectơ ngắn nhất mà tôi tin là NP-Hard.

Một cái khác là hệ thống mật mã ba lô Merkle-Hellman đã bị phá vỡ.

Lưu ý: Tôi không có manh mối nếu hai cái đầu tiên bị hỏng / chúng tốt như thế nào. Tất cả những gì tôi biết là chúng tồn tại và tôi đã có được những thứ đó khi thực hiện tìm kiếm trên web.


6
Đối với các mục đích của tiền điện tử, McEliece có lẽ không nên được coi chỉ là một hệ thống lạnh; đối với mỗi loại mã tuyến tính có thể giải mã hiệu quả mà bạn cắm vào, bạn nhất thiết phải đưa ra một chiến lược khác nhau để phá vỡ nó. Nó đã bị phá vỡ đối với một số loại mã, nhưng (như bài viết trên Wikipedia nói) không dành cho mã Goppa, vốn là đề xuất ban đầu của McEliece.
Peter Shor

Từ danh sách đó, tôi muốn nói rằng NTRU có vẻ hứa hẹn nhất, nó vẫn chưa được thử nghiệm rộng rãi theo cách RSA đã được thử nghiệm dựa trên những gì tôi đã đọc cho đến nay.
Ken Li

Hệ thống mật mã Merkle-Hellman không phải là một ví dụ thích hợp. Verctor ba lô Merkle-Hellman chỉ là một tập hợp con của tất cả các vectơ ba lô nên vấn đề về chiếc ba lô Merkle-Hellman có thể không khó NP. Tôi không nghĩ rằng đó là NP-hard, ít nhất tôi không biết bất kỳ bài báo nào cho thấy điều này.
phép lạ173

25

Tôi có thể nghĩ về bốn rào cản lớn không hoàn toàn độc lập:

  • NP-độ cứng chỉ cung cấp cho bạn thông tin về độ phức tạp trong giới hạn . Đối với nhiều vấn đề hoàn thành NP, các thuật toán tồn tại giải quyết tất cả các trường hợp quan tâm (trong một kịch bản nhất định) một cách hợp lý nhanh chóng. Nói cách khác, đối với bất kỳ kích thước sự cố cố định nào (ví dụ: "khóa" đã cho), vấn đề không nhất thiết là khó chỉ vì nó là NP-hard.
  • NP-độ cứng chỉ xem xét thời gian trường hợp xấu nhất. Nhiều, thậm chí hầu hết tất cả các trường hợp có thể dễ dàng giải quyết bằng các thuật toán hiện có. Ngay cả khi chúng tôi biết cách mô tả các trường hợp khó khăn (afaik, chúng tôi không), chúng tôi vẫn phải tìm thấy chúng.
  • Bạn cần phải có những trường hợp lớn rất khó giải quyết. Tìm kiếm (sản phẩm của) số nguyên tố lớn dễ dàng theo nghĩa là không gian tìm kiếm bằng phẳng: một số có phù hợp hoặc không. Hãy tưởng tượng bằng cách sử dụng các biểu đồ: trong số tất cả đồ thị có kích thước cho lớn , bạn phải tìm những biểu đồ có thuộc tính đẹp. n n2n(n1)nn
  • Bạn cần một số loại đảo ngược. Ví dụ, bất kỳ số nguyên nào được mô tả duy nhất bởi hệ số nguyên tố của nó. Hình ảnh chúng tôi muốn sử dụng TSP làm phương thức mã hóa; đưa ra tất cả các chuyến tham quan ngắn nhất, bạn có thể (tái) xây dựng biểu đồ mà họ đến từ duy nhất không?

Lưu ý rằng tôi không có chuyên môn về mật mã; đây chỉ là sự tôn trọng thuật toán. sự phản đối phức tạp-lý thuyết.


Tóm tắt tuyệt vời. Nhưng lưu ý rằng độ cứng BQP có cùng cảnh báo với hai điểm đầu tiên của bạn.
Mitch

14

Mật mã khóa công khai như chúng ta biết ngày nay được xây dựng trên các hoán vị bẫy một chiều , và cửa bẫy là điều cần thiết.

Để một giao thức được bảo mật công khai, bạn cần một khóa có sẵn cho bất kỳ ai và cách mã hóa tin nhắn bằng khóa này. Rõ ràng, một khi đã được mã hóa, thật khó để khôi phục thông điệp ban đầu chỉ biết mật mã của nó và khóa chung: mật mã chỉ phải được giải mã với một số thông tin bổ sung, cụ thể là khóa riêng của bạn.

Với ý nghĩ đó, thật dễ dàng để xây dựng một hệ thống tiền điện tử nguyên thủy dựa trên bất kỳ hoán vị bẫy một chiều nào.

  1. Alice đưa ra sự hoán vị một chiều cho công chúng, và giữ cái bẫy cho chính mình.
  2. Bob đặt đầu vào của nó trong hoán vị và truyền đầu ra cho Alice.
  3. Alice sử dụng cửa sập để đảo ngược hoán vị với đầu ra của Bob.

Khó khăn bây giờ là tìm các hoán vị bẫy một chiều thực tế và có một loạt các chức năng mà chúng tôi nghĩ là các ứng cử viên tốt (RSA, logarit rời rạc, một số biến thể của vấn đề mạng). Tuy nhiên, nếu chúng ta có thể tìm thấy một cách chắc chắn một hàm một chiều, thì chúng ta cũng chứng minh rằng , vì vậy thực sự chứng minh rằng một hàm là một chiều là không thể truy cập được.PNP

Theo cách khác, nếu chúng tôi chứng minh rằng , chúng tôi cũng chứng minh rằng có một lớp ở giữa được gọi là (trung gian), về các vấn đề trong nhưng không phải -hard. Một số ứng cử viên tốt cho các vấn đề trong cũng là ứng cử viên cho hoán vị một chiều, vì chúng tôi chưa thể chứng minh rằng họ là -hard.N P I N P N P N P I N PPNPNPINPNPNPINP

Vì vậy, để trả lời câu hỏi của bạn, chúng tôi không sử dụng các vấn đề nghiêm trọng vì chúng tôi cần hoán vị một chiều với các bẫy, và các hàm đặc biệt này có thể nằm trong một lớp giữa và -cứng.N P N PNPNPNP


RSA, vâng, đó là một chức năng bẫy. Tôi không chắc chắn rằng dlog là TDF (là một cách)
111

Nếu một vấn đề trung gian NP là NP-hard, thì chúng sẽ là NP hoàn chỉnh, một mâu thuẫn.
Myria

0

Chỉ để đưa ra một lập luận heuristic, dựa trên kinh nghiệm thực tế.

Hầu như tất cả các trường hợp, trong hầu hết tất cả các vấn đề hoàn thành NP, đều dễ giải quyết. Có những vấn đề không đúng, nhưng chúng rất khó tìm và thật khó để khẳng định rằng bạn có một lớp học như vậy.

Điều này đã xuất hiện trong thực tế nhiều lần khi mọi người cố gắng viết các trình tạo vấn đề ngẫu nhiên cho một số lớp hoàn chỉnh NP nổi tiếng, chẳng hạn như Lập trình ràng buộc, SAT hoặc Nhân viên bán hàng du lịch. Vào một số ngày sau đó, một người nào đó tìm thấy một phương pháp giải quyết gần như tất cả các trường hợp mà trình tạo ngẫu nhiên tạo ra một cách tầm thường. Tất nhiên, nếu đó là trường hợp của một hệ thống mã hóa, chúng tôi sẽ gặp rắc rối nghiêm trọng!


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.