Như Mark đã nói, về mặt lý thuyết, đó là một vấn đề có thể giải quyết được (chúng tôi biết cách thực hiện; các phương pháp đã biết không đơn giản).
Tuy nhiên, bằng cách điều chỉnh mọi thứ xung quanh một chút, chúng ta có thể làm cho vấn đề này trở nên dễ dàng.
Giải pháp của tôi dựa trên các cam kết của Pedersen; chúng dựa trên một nhóm có kích thước nguyên tố lớn (trong đó vấn đề nhật ký rời rạc gặp khó khăn) và hai thành viên nhóm $g$ và $h$ (không có mối quan hệ đã biết; cụ thể, không ai biết giải pháp $x$ đến $g^x = h$).
Cam kết của Pedersen về giá trị $x$ là giá trị $g^x h^r$, đối với một số ngẫu nhiên $r$; tính chất; chúng tôi có thể đưa ra cam kết (bằng cách công bố giá trị $g^x h^r$), rồi sau đó mở cam kết (bằng cách xuất bản các giá trị $x, r$; bất kỳ ai cũng có thể xác minh rằng những giá trị đó mang lại cam kết.
Ai đó đang nhìn $g^x h^r$ không thể xác định những gì $x$ là (trên thực tế, đối với mọi giá trị có thể có của $x$, có một giá trị $r$ điều đó sẽ mang lại giá trị cam kết đó)
Tổ chức phát hành không thể mở cam kết theo hai cách; nghĩa là, nếu anh ta đưa ra một cam kết $g^x h^r$, anh ta không thể tìm thấy một giá trị $r'$ như vậy mà $g^{x'} h^{r'}$ đánh giá về cùng một giá trị.
Với nền tảng đó trong tâm trí, anh ấy là đề xuất của tôi:
Charlie gửi các giá trị sau cho Alice:
$x_1$ và $x_2$
Các cam kết đã ký đối với các giá trị đó, nghĩa là các bản sao đã ký của $g^{x_1} h^{r_1}$ và $g^{x_2}h^{r_2}$
Các giá trị ngẫu nhiên $r_1$ và $r_2$ (vì anh ấy đã đưa ra những giá trị mà anh ấy cam kết, nên việc đưa cho anh ấy những giá trị ngẫu nhiên này là vô hại)
Khóa công khai của anh ấy
Alice sau đó tính toán $x = x_1 + x_2$và tạo ra một bằng chứng không biết rằng tổng của hai giá trị được cam kết bởi $g^{x_1} h^{r_1}$ và $g^{x_2}h^{r_2}$ Là $x$. Điều này có thể được thực hiện bằng cách tạo ra một bằng chứng về kiến thức mà Alice biết giá trị $s$ như vậy mà $h^s = g^{x_1} h^{r_1} \cdot g^{x_2}h^{r_2} \cdot g^{-x}$; Alice chỉ có thể tạo ra một bằng chứng như vậy nếu $x_1 + x_2 = x$
Alice sau đó chuyển tiếp cho Bob giá trị $x$, hai cam kết đã ký, khóa công khai (để Bob có thể xác minh chữ ký) và bằng chứng không biết (mà Bob cũng có thể xác minh).
Điều này dường như để giải quyết mục tiêu cuối cùng (và khá đơn giản; có một số chi tiết mà tôi chỉ lướt qua một cách mơ hồ, tuy nhiên một chút nghiên cứu sẽ làm sáng tỏ những điều đó).