Một mật mã bất đối xứng cực kỳ cơ bản mà tôi có thể trình bày tại quán rượu là gì?


30

Tôi đang cố gắng giải thích những điều cơ bản về Bitcoin cho bố mẹ tôi.

Một trong những thành phần cốt lõi của bitcoin, là ký các giao dịch để đảm bảo danh tính của bạn không thể bị mạo danh, và do đó cần phải giải thích một mật mã bất đối xứng đơn giản hóa.

Một mật mã bất đối xứng cực kỳ đơn giản mà tôi có thể sử dụng làm ví dụ là gì?

Làm thế nào mật mã đơn giản hóa này có thể được sử dụng để ký?


17
Tại sao bạn cần phải đi vào mật mã để có một quán rượu nói về bitcoin? Theo hiểu biết của tôi, bitcoin giải quyết vấn đề duy trì một sổ cái phân tán, đặc biệt tránh vấn đề chi tiêu gấp đôi. Động lực là để tránh có một cơ quan trung ương, và điều này có thể đạt được bằng cách cho phép mỗi người tham gia phê duyệt một giao dịch (thay vì trao quyền này cho ngân hàng). Để tránh những người tham gia bất lợi phê duyệt các giao dịch không hợp lệ của chính họ, khái niệm bằng chứng về công việc được đưa ra. Không cần phải nói về mật mã khóa công khai.
Ariel

@Ariel Mật mã khóa công khai, hoặc ít nhất là chữ ký điện tử, xuất hiện khi bạn muốn biết rằng người nói gửi 3 BTC từ Ariel cho Ryan thực ra là Ariel.
Derek Elkins

1
Phải, nhưng đây không phải là bitcoin cụ thể nên bố mẹ anh sẽ chỉ thấy khó hiểu.
Ariel

1
Bạn có thể giải thích về tiền điện tử bất đối xứng, chuỗi khối hoặc Bitcoin. Chọn một.
Raphael

2
Câu hỏi này có thể phù hợp hơn với Mật mã học .
Raphael

Câu trả lời:


28

Nếu bạn muốn trình bày mật mã khóa công khai cho cha mẹ hoặc bạn bè của mình, thì tôi khuyên bạn nên làm theo một số hướng dẫn. Đầu tiên, đừng nói về các chức năng cụ thể, không ai quan tâm đến SHAxxx, hãy giữ ý tưởng nói chuyện của bạn. Vấn đề được giải quyết bằng mật mã khóa công khai là cho phép hai bên chưa từng gặp nhau trước đây trao đổi thông tin một cách an toàn trong một kênh công cộng. Đừng nhầm lẫn điều này với các ứng dụng khác đạt được bằng mã hóa khóa công khai, chẳng hạn như chữ ký số hoặc xác thực.

Một minh họa đơn giản chiếu sáng này mà tôi đã thấy là sau đây. Giả sử rằng hai bên có một cái xô và một số màu sắc, và họ muốn thống nhất một hợp chất bí mật cụ thể. Họ được phép gửi cho nhau một cái xô với một hợp chất nhất định, nhưng bất cứ điều gì được gửi đều bị phơi bày trước một kẻ thù xấu xa. Giả định gạch dưới là trộn màu rất dễ, nhưng phân hủy hỗn hợp thành các thành phần của nó thì khó. Giả định này (dễ dàng kết nối với mặt chính thức của sự vật) cho phép bạn đạt được mục tiêu của họ. Chọn màu công khai và cho phép cả hai bên chọn màu bí mật, chúng ta hãy biểu thị chúng bằng . Bên thứ nhất sau đó gửi một thùng hỗn hợp . Tương tự, bên thứ hai gửi một thùng chứa hỗn hợpPS1,S2P,S1P,S2 . Cuối cùng, mỗi bên thêm màu riêng của mình vào hỗn hợp mà anh ta nhận được, và bây giờ cả hai bên đều có hỗn hợp , mà (theo giả định của chúng tôi) vẫn là bí mật từ bất kỳ kẻ nghe trộm nào. Một phiên bản chính thức của điều này là giao thức trao đổi khóa Diffie-Hellman, dựa trên độ cứng của nhật ký rời rạc.P,S1,S2

Bây giờ, sự hiểu biết của tôi về giao thức bitcoin còn hạn chế, nhưng khi nói chuyện với bố mẹ bạn về nó, tôi thấy không có lý do gì để đi vào mật mã. Hầu hết các giải thích phổ biến mà tôi đã thấy đã đi sâu vào các chi tiết triển khai một cách không cần thiết và bắt đầu nói về việc tìm ra một tiền đề của hàm băm sao cho kết quả sẽ có số 0, mất đi vấn đề thực tế. Như trước đây, tôi đề nghị giữ cho cuộc nói chuyện khái niệm. Vấn đề là bitcoin đang cố gắng giải quyết, và tại sao điều này không tầm thường? Theo hiểu biết của tôi, bitcoin giải quyết vấn đề duy trì một sổ cái phân tán, đặc biệt tránh việc chi tiêu gấp đôixvấn đề. Động lực là để tránh có một cơ quan trung ương, và điều này có thể đạt được bằng cách cho phép mỗi người tham gia phê duyệt một giao dịch (thay vì trao quyền này cho ngân hàng). Để tránh những người tham gia bất lợi phê duyệt các giao dịch không hợp lệ của chính họ, khái niệm bằng chứng về công việc được đưa ra. POW sử dụng hàm băm dưới dạng hộp đen, vì vậy bạn có thể tránh đề cập đến các ứng cử viên cụ thể.


Bitcoin giải quyết cả hai vấn đề chi tiêu kép (mà nó thực hiện thông qua blockchain, trong đó thuật toán "bằng chứng công việc" mà bạn mô tả là cần thiết) và xác thực phân phối các yêu cầu chuyển tiền (thường ít được thảo luận hơn, vì nó đã được đưa ra vấn đề đã giải quyết, tức là xác thực tin nhắn qua các khóa không đối xứng).
Jules

15

Một phép ẩn dụ phổ biến mà tôi nghe được sử dụng là sản xuất một loạt khóa móc, giữ tất cả các khóa và gửi khóa móc mở cho bất cứ ai muốn một khóa. Sau đó, bất cứ ai có ổ khóa như vậy đều có thể gửi cho bạn tin nhắn bí mật bằng cách đặt chúng vào hộp và sau đó sử dụng một trong các khóa móc của bạn để khóa nó trước khi gửi cho bạn. Không ai ngoài bạn có chìa khóa, vì vậy ngay cả người gửi cũng không thể mở khóa hộp sau khi bị khóa - đặc biệt, dịch vụ bưu chính không thể rình mò tin nhắn của bạn. Họ thậm chí có thể có ổ khóa từ bạn, nhưng điều đó không giúp họ mở khóa hộp.

(Tôi cung cấp ví dụ này để trả lời câu hỏi của bạn như đã nêu, không có ý kiến ​​cụ thể nào về việc nó có thực sự hữu ích cho việc giải thích bitcoin hay không.)


1
Đây là một lời giải thích hữu ích về mã hóa bất đối xứng, nhưng để giải thích cách bitcoin hoạt động, điều bạn thực sự cần là xác minh chữ ký , điều ngược lại: bạn có một loạt khóa móc bị phá vỡ khi bạn mở chúng và gửi khóa cho bất kỳ ai có thể cần họ Sau đó, khi bạn gửi một tin nhắn, bạn đặt nó vào một hộp và đặt một ổ khóa trên đó, để bất cứ ai có chìa khóa có thể nói với bạn đã gửi nó.
Jules

@Jules Tôi thực sự thích lời giải thích này, làm cho nó tương tự như một con dấu giả mạo.
Ryan The Leach

7

Vấn đề với việc giải thích các cyphers không đối xứng (và lý do tại sao hầu hết các giải thích pop thực sự không giải thích được gì) là chúng bị vướng vào ý tưởng rằng có tồn tại các vấn đề (được cho là) ​​khó hiểu, đó là một trong những ý tưởng đằng sau sự phức tạp tính toán.

Khi bạn đã hiểu được điểm đó, một cypher không đối xứng là "chỉ" một hàm dễ tính toán nhưng được cho là khó đảo. Bạn thậm chí có thể làm cho riêng mình, xem triển khai ban đầu trao đổi khóa Diffie-Hellman làm tài liệu tham khảo.


3
Đó không phải là toàn bộ câu chuyện. Nó phải khó đảo ngược trừ khi bạn có khóa riêng.
Ben Millwood

+1 cho Diffie-Hellman. Nó là một giao thức đủ đơn giản để giải thích, tương ứng với ví dụ về màu sắc.
Ariel

4

Tôi không nghĩ có một hệ thống mã hóa bất đối xứng dễ bị sai lệch. Thay vào đó, mô tả những gì nó làm, không phải làm thế nào nó làm. Trên thực tế, tôi đã phải làm điều này gần đây, để mô tả cách PGP hoạt động. Đối với BitCoin, tập trung vào phần thứ hai, ký tin nhắn.

Tôi có thể tạo hai số liên quan. Một cái được gọi là khóa riêng , cái còn lại là khóa chung . Tôi giữ bí mật đầu tiên, và nói với mọi người thứ hai. Bất cứ ai muốn gửi cho tôi một tin nhắn đều lấy khóa công khai của tôi và mã hóa tin nhắn của họ với nó. Một khi điều đó được thực hiện, không ai có thể giải mã tin nhắn, ngay cả người gửi. Khi tôi nhận được tin nhắn, tôi có thể giải mã nó bằng khóa riêng của mình.

Hoặc, tôi có thể mã hóa tin nhắn bằng khóa riêng của mình và gửi cả tin nhắn được mã hóa và không được mã hóa cho người thứ hai. Nếu họ có khóa công khai của tôi, thì họ có thể giải mã phần được mã hóa của tin nhắn và nó sẽ giống như phần không được mã hóa. Điều này cho thấy tôi là người đã mã hóa tin nhắn.

Nếu họ hỏi làm thế nào các khóa được tạo ra, sau đó nói

Tôi nghĩ về hai số nguyên tố rất lớn, và sau đó biến đổi chúng thông qua một hàm toán học. Nó phun ra các khóa riêng và công khai.

Tất nhiên, điều này che đậy thực tế là mã hóa bất đối xứng thường không hoạt động trên chính thông điệp, thay vào đó là khóa phiên (để mã hóa) hoặc trên hàm băm (xác minh chữ ký). Nó cũng bỏ qua yêu cầu rất quan trọng là bạn phải giữ khóa riêng tư của mình - bất kỳ ai có quyền truy cập đều có thể giả vờ là bạn.

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.