Sau đây là sơ đồ PRE đơn giản, một chiều không sử dụng các cặp song tuyến tính, trong trường hợp bạn thấy chúng gây mất tập trung. Nó sử dụng trao đổi Diffie-Hellman tĩnh (nghĩa là kết hợp khóa chung của một người với khóa riêng của người khác) để biến nó thành một hướng. Nhân tiện, tôi đã quen với việc mô tả mã hóa lại proxy dưới dạng ủy quyền giữa Alice và Bob, thay vì Bob với Charlie, vì vậy tôi sẽ sử dụng quy ước đó ở đây.
Alice:
- khóa riêng: $a$
- khóa công khai: $g^a$
Bob
- khóa riêng: $b$
- khóa công khai: $g^b$
Alice tạo khóa Mã hóa lại cho Bob bằng khóa chung của anh ấy:
- $rk = \frac{a}{H((pk_B)^{sk_A})} = \frac{a}{H(g^{ab})}$
Bất kỳ ai cũng có thể mã hóa một tin nhắn ban đầu dành cho Alice:
- $C_A = (g^r, M · g^{ar})$
Proxy mã hóa lại $C$ sử dụng khóa mã hóa lại:
- $C_B = ( (g^r)^{rk}, M · g^{ar}) = ( g^{\frac{ar}{H(g^{ab})}}, M · g^ {ar})$
Bob giải mã bằng khóa riêng của mình, giả sử rằng anh ta biết đó ban đầu là bản mã của Alice (vì vậy anh ta biết khóa chung của cô ấy $g^a$):
- $ x = (C_{B,1})^{H(pk_A^{sk_B})} = g^{ar}$
- $ M = \frac{C_{A,2}}{x}$
Như bạn có thể thấy, ý tưởng chính là cùng một bí mật che khuất thông điệp ($g^{ar}$) có thể được tạo bằng cách mã hóa thông thường với khóa công khai của Alice và sau khi được Bob mã hóa lại và giải mã. Nói cách khác, bạn có thể sản xuất $g^{ar}$ trong hai cách:
- Alice có thể sản xuất $g^{ar}$ bằng cách lấy $g^r$ thành phần và sử dụng khóa riêng của cô ấy $a$.
- Quá trình mã hóa lại biến đổi $g^r$ thành phần của bản mã vào $g^{\frac{ar}{H(g^{ab})}}$, và Bob hoàn thành quy trình bằng cách loại bỏ $H(g^{ab})$ sử dụng khóa riêng của anh ấy $b$.
Sau khi bạn có hai phương pháp để tạo ra cùng một bí mật bởi Alice (chỉ bằng cách giải mã) và Bob (thông qua mã hóa lại & giải mã), thì bạn sẽ có một sơ đồ mã hóa lại proxy. Có nhiều cách để làm điều này (với các cặp song tuyến tính, không có chúng, với lưới, v.v.) và các thủ thuật được sử dụng bởi mỗi sơ đồ có thể khác nhau, nhưng nói chung đó là ý tưởng.
Đối với hồ sơ, đây là một phiên bản siêu đơn giản của Sơ đồ mã hóa lại proxy Umbral được sử dụng bởi Mạng NuCypher, một mạng phân tán cung cấp dịch vụ mã hóa lại proxy với hàng trăm proxy.