Tính toán đa bên (MPC)
Multi-party computation
Cách chia một khóa riêng thành nhiều mảnh giao cho nhiều máy hoặc nhiều người giữ. Khi cần ký, các bên cùng tính ra chữ ký mà khóa đầy đủ không bao giờ được ghép lại ở một chỗ.
Theo NIST (NISTIR 8214), một khóa bí mật có thể được chia thành nhiều phần (share) giao cho các bên khác nhau. Với sơ đồ ngưỡng “k trong n”, chỉ cần đủ k bên là thực hiện được thao tác, còn ít hơn k bên thì không biết gì về khóa. Phép ký có thể được tính trực tiếp trên các phần, nên khóa đầy đủ không cần xuất hiện ở bất kỳ đâu. Nhiều ví của sàn và đơn vị lưu ký dùng cách này để không còn một nơi duy nhất giữ cả khóa.
Hình dung trong đời sống. Mật mã mở một két được chia cho ba người, mỗi người chỉ biết phần của mình, và quy định cần hai trong ba người cùng tham gia. Điểm khác thường là họ không bao giờ phải nói phần của mình cho người kia nghe: mỗi người tự xoay phần của mình từ phòng riêng, và két vẫn mở. Không lúc nào một người, hay một máy, biết đủ cả mật mã. Nói gọn: không phải “khóa trong khóa”, mà là một chiếc khóa bị chia mảnh ngay từ đầu và không bao giờ ghép lại.
Khác đa chữ ký. Đa chữ ký (multisig) dùng nhiều khóa riêng và cần nhiều chữ ký riêng biệt; MPC tạo ra một chữ ký duy nhất từ một khóa bị chia mảnh.
Giới hạn. MPC loại bỏ rủi ro “một nơi giữ cả khóa”, nhưng các mảnh vẫn cùng ký khi nhận được yêu cầu được coi là hợp lệ. Nếu các bên giữ mảnh cùng nghe lệnh một hệ thống điều phối hay một quy trình phê duyệt, kẻ chiếm được hệ thống đó có thể khiến tất cả cùng ký. Chia khóa chỉ thật sự an toàn khi các mảnh do những người, máy và quy trình độc lập với nhau nắm giữ.
Nguồn tham khảo
- NISTIR 8214 — Threshold Schemes for Cryptographic Primitives (3/2019), mục 2.2 và 3.1
- NIST — Multi-Party Threshold Cryptography project
Xuất hiện trong bài
Thuật ngữ liên quan
Định nghĩa do AI biên soạn từ các nguồn trên, tác giả duyệt. Đây là thông tin tham khảo, không phải tư vấn pháp lý hay đầu tư. Thấy chỗ chưa đúng? Hãy góp ý để tác giả sửa.