Tính toán nhiều bên an toàn MPC và xu thế phát triển của mật mã phi tập trung

09:00 | 08/06/2023 | MẬT MÃ DÂN SỰ
Tính toán nhiều bên an toàn MPC (Multi-Party Computation) là một giao thức mật mã cho phép thực hiện tính toán một giá trị chung bởi nhiều bên tham gia mà không phải chia sẻ bất kỳ thông tin cá nhân giữa các thành viên. MPC được phát triển như một giải pháp khả thi để giải quyết những thách thức nổi bật đối với bảo mật khóa cá nhân trong thời điểm hiện tại và có nhiều tiềm năng ứng dụng trong tương lai.

XU HƯỚNG PHÁT TRIỂN CỦA MẬT MÃ PHI TẬP TRUNG

Trong mật mã tập trung, một bên được ủy quyền để điều khiển và quản lý khóa mật, các bên khác phải tin tưởng vào bên đó để bảo vệ thông tin của họ. Tuy nhiên, với sự phát triển của công nghệ blockchain và một số công nghệ khác, mật mã phi tập trung đã trở nên khả thi hơn bao giờ hết. 

Trong mật mã phi tập trung, các bên sử dụng một mô hình phân tán để quản lý khóa mật và xác thực thông tin. Thay vì tin tưởng vào một bên duy nhất, các bên sẽ cùng đóng góp vào việc quản lý khóa mật và quá trình xác thực, bằng cách sử dụng các thuật toán phức tạp như thuật toán băm (hashing algorithm) và thuật toán chữ ký số (digital signature algorithm). 

Hướng tới mật mã phi tập trung là một trong những hướng nghiên cứu mới nhất cho hướng đi của mật mã và an toàn thông tin trong lương lai với nhu cầu về các thế hệ mật mã mới, như chứng minh không tiết lộ thông tin (Zero Knowledge Proof - ZKP), chứng minh có thể kiểm chứng ngẫu nhiên (Probabilistically Checkable Proof - PCP), tính toán nhiều bên an toàn (Multi-Party Computation MPC), các hệ mã hóa đồng cấu đầy đủ (Fully Homomorphic Encryption - FHE) [1].

TÍNH TOÁN NHIỀU BÊN AN TOÀN MPC

Ý tưởng tính toán nhiều bên an toàn MPC bắt đầu từ những năm 80 của thế kỷ XX [2], khi các nhà nghiên cứu đã bắt đầu tìm kiếm phương pháp để thực hiện tính toán đồng thời trên dữ liệu bảo mật giữa nhiều thành viên trong mạng mà không cần chia sẻ dữ liệu gốc của họ. Năm 1987, nhà khoa học Yehuda Lindell đã đề xuất giải pháp tính toán nhiều bên an toàn MPC đầu tiên [3], trong đó mã hóa và chia sẻ dữ liệu giữa các thành viên để tính toán một giá trị hoặc thực hiện một tác vụ nào đó. Sau đó, các nghiên cứu liên tục được đưa ra để cải thiện và mở rộng giao thức MPC, bao gồm việc tăng tính bảo mật và hiệu suất tính toán.

Trong giao thức MPC, các bên sẽ thực hiện các bước tính toán trên các dữ liệu riêng tư của mình. Mỗi bên sẽ gửi các phép tính đã được mã hóa đến các bên khác để thực hiện phép tính chung. Sau khi tất cả các bên đã hoàn tất tính toán, kết quả sẽ được trả về cho từng bên. Trong quá trình tính toán, không có bên nào có thể xem dữ liệu của bên khác hoặc kết quả cuối cùng của phép tính.

Hình 1. Minh họa giao thức tính toán bảo mật MPC

Giả sử chúng ta muốn tính toán mức thu nhập trung bình theo tháng của ba nhân viên (An, Bình, Chung) mà không tiết lộ mức thu nhập thực tế của họ, đối với những vấn đề như vậy, ta có thể sử dụng tính toán MPC an toàn. Hãy lấy một ví dụ cụ thể như sau: Ví dụ thu nhập theo tháng thực tế của An là 600 USD, Bình là 500 USD và Chung là 700 USD. Bằng cách sử dụng tính toán MPC, thu nhập của An có thể được mã hóa thành các phần ngẫu nhiên là 550 USD, -100 USD và 150 USD. An giữ một trong những phần được mã hóa này cho riêng mình và chia sẻ hai phần còn lại cho Bình và Chung. Tương tự đối với mức thu nhập của Bình và Chung cũng được mã hóa và chia sẻ cho các thành viên khác, cụ thể như sau:

Bảng 1. Ví dụ minh họa tính toán trong MPC

Khi đó giao thức MPC có thể tính toán được mức thu nhập trung bình của 3 nhân viên là Ftb = (500 + 200 + 1100)/3 = 600, trong khi không chia sẻ mức thu nhập thực tế cho các thành viên khác.

Thuật toán trong MPC Có nhiều thuật toán được sử dụng trong MPC, bao gồm:

Secure Multi-Party Computation (sMPC): Là một phương pháp tính toán bảo mật để tính toán một kết quả chung mà không cần phải chia sẻ dữ liệu cá nhân giữa các thành viên, được xây dựng để bảo mật dữ liệu và tính toán trong môi trường phân tán, nơi các bên không tin tưởng nhau hoàn toàn. Trong quá trình tính toán sMPC, yếu tố niềm tin bị loại bỏ khi dữ liệu luôn được mã hóa theo hệ mã hóa đồng cấu đầy đủ FHE [4].

Hình 2. Ví dụ tính toán bảo mật sMPC

Hình 3. Dữ liệu được mã hóa an toàn trong sMPC [4]

Oblivious Transfer (OT): Giao thức truyền không lộ thông tin cho phép bên gửi (sender) truyền một tập hợp các thông tin {m0 , m1 ,… mN-1} cho bên nhận (chooser), nhưng chỉ cho phép bên nhận chọn một phần tử trong tập hợp đó mσ , bên nhận cũng không tiết lộ cho bên gửi phần tử nào đã chọn, còn bên gửi sẽ không biết phần tử nào được chọn [5]. Các ứng dụng tiêu biểu của OT bao gồm trao đổi khóa bí mật và xác thực danh tính. Tuy nhiên, các giao thức OT có thể tốn nhiều tài nguyên tính toán và băng thông mạng, do đó cần được thiết kế một cách chi tiết để đảm bảo tính hiệu quả của giao thức.

Hình 4. Minh họa giao thức truyền không lộ thông tin OT

Garbled Circuit: Thuật toán Garbled Circuit được xây dựng trên một mạng lưới tính toán mã hóa như Hình 5 [6], gồm các máy tính được liên kết với nhau. Mỗi máy tính sẽ nhận đầu vào của mình và sẽ mã hóa dữ liệu theo phương thức bảo mật đã được xây dựng. Sau đó, mỗi máy tính sẽ gửi dữ liệu đã được mã hóa đến một máy tính khác trong mạng lưới [7]. Garbled Circuit được xây dựng bằng cách sử dụng một số lượng lớn các cổng logic và bảng dữ liệu. Tuy nhiên, khi số lượng các cổng logic tăng lên, các mạch Garbled Circuit trở nên phức tạp hơn và khó điều khiển. Giải pháp tổng quát được đề xuất sử dụng là ưu tiên các bảng dữ liệu để giảm số lượng các cổng logic [6].

Hình 5. Mô hình thuật toán Garbled Circuit sử dụng bảng dữ liệu Lookup Table [6]

Một khi tất cả dữ liệu đầu vào đã được mã hóa, các máy tính sẽ sử dụng thuật toán Garbled Circuit để tính toán kết quả chung mà không cần phải chia sẻ bất kỳ thông tin nào về dữ liệu đầu vào. Kết quả cuối cùng sẽ được giải mã và chia sẻ cho tất cả các thành viên trong mạng.

Homomorphic Encryption (HE): Là một kỹ thuật mã hóa cho phép tính toán trên dữ liệu được mã hóa mà không cần giải mã dữ liệu đó. HE cung cấp một cách bảo mật cho dữ liệu riêng tư và cho phép các tính toán được thực hiện trên dữ liệu mà không cần phải giải mã dữ liệu. Điều này cung cấp một cách bảo mật tốt hơn cho các ứng dụng mã hóa như dịch vụ chuyển tiền trực tuyến, bảo mật dữ liệu trên đám mây và các dịch vụ cho phép tính toán trên dữ liệu mã hóa. HE còn cung cấp một cách bảo mật cho các tính toán phức tạp, như các tính toán trên dữ liệu tối mật và các tính toán trên dữ liệu của nhiều người dùng khác nhau.

Việc chọn thuật toán mã hóa MPC phù hợp sẽ phụ thuộc vào nhu cầu bảo mật và hiệu suất tính toán của mỗi ứng dụng cụ thể. Chính vì thế, các nghiên cứu liên tục được thực hiện để phát triển và cải thiện thuật toán mã hóa MPC.

Thuận lợi của tính toán nhiều bên an toàn MPC

Chia sẻ tin cậy: Trong tính toán nhiều bên an toàn, dữ liệu có thể được chia sẻ theo cách phân tán với các tổ chức khác nhau mà không cần bất kỳ bên thứ ba nào và thậm chí quyền riêng tư của dữ liệu sẽ được bảo toàn trong khi chia sẻ dữ liệu.

Bảo mật dữ liệu: Dữ liệu riêng tư của các tổ chức có thể được chia sẻ cho mục đích tính toán. Mối quan tâm về quyền riêng tư của dữ liệu được cung cấp bằng cách sử dụng tính toán đa bên an toàn, giúp dữ liệu được sử dụng ở dạng mã hóa. Do đó, dữ liệu không bị tiết lộ hoặc bị xâm phạm. Độ chính xác cao: Tính toán nhiều bên an toàn cung cấp kết quả có độ chính xác cao cho các phép tính khác nhau bằng mật mã.

An toàn trước các cuộc tấn công: Dữ liệu được chia sẻ giữa các bên an toàn trước các cuộc tấn công với mục đích xấu, vì dữ liệu được chia nhỏ và mã hóa khi được phân phối giữa các bên để tính toán.

Hạn chế của MPC

Tính toán MPC đang được sử dụng để giải quyết các vấn đề khác nhau, nhưng có một số hạn chế, chẳng hạn như:

Chi phí tính toán: Để cung cấp tính năng bảo mật, dữ liệu cần được mã hóa và sinh ngẫu nhiên, việc sinh ngẫu nhiên có thể yêu cầu nhiều chi phí tính toán hơn, điều này làm chậm thời gian xử lý thuật toán.

Chi phí vận hành: Việc phân phối dữ liệu cho nhiều bên để tính toán qua mạng dẫn đến chi phí vận hành cao hơn.

KẾT LUẬN

Các ứng dụng của MPC rất đa dạng, bao gồm trao đổi khóa bí mật, bầu cử điện tử, phân tích tài chính và truyền thông an toàn. Việc triển khai MPC có thể gặp một số thách thức về hiệu suất và khả năng mở rộng. Tuy nhiên, với sự phát triển của các công nghệ mã hóa mới trong xu thế phát triển của mật mã phi tập trung, giao thức MPC đang trở thành một công nghệ ngày càng quan trọng trong việc đảm bảo tính riêng tư và an toàn trong các ứng dụng yêu cầu bảo mật thông tin cao.

TÀI LIỆU THAM KHẢO

[1]. https://antoanthongtin.vn/mat-ma-dan-su/huong-toi-mat-ma-phi-tap-trung-108033 .

[2]. Yao, Andrew C. “Protocols for secure computations.” 23rd annual symposium on foundations of computer science (sfcs 1982). IEEE, 1982.

[3]. Lindell, Yehuda. “Secure multiparty computation (MPC).” Cryptology ePrint Archive (2020).

[4]. https://www.reddit.com/r/instar/comments/8k6yir/secure_multiparty_computation_smpc_in_a_nutshell/ .

[5]. Rabin, Michael O. “How to exchange secrets with oblivious transfer.” Cryptology ePrint Archive (2005).

[6]. https://ez.analog.com/ez-blogs/b/engineerzone-spotlight/posts/garbled-circuits-part-2-a-general-solution .

[7]. Harth-Kitzerow, Christopher, et al. “CRGC--A Practical Framework for Constructing Reusable Garbled Circuits.” arXiv preprint arXiv:2203.12646 (2022).

 

Nguyễn Văn Tuấn, Đường Văn Vinh (Trường Cao đẳng Kỹ thuật thông tin, Binh chủng Thông tin Liên lạc)

Tin cùng chuyên mục

Tin mới