- A向KGC请求生成自己的公私钥对,KGC生成A的公私钥对并返回给A
- B向KGC请求生成自己的公私钥对,KGC生成B的公私钥对并返回给B
- A用AES加密明文M生成密文C1,发到服务器上
- A用自己的公钥加密AES的**K生成密文C2,发到服务器上
- A向KGC请求B的公钥,KGC把B的公钥返回给A
- A用B的公钥和自己的私钥生成重加***KA->B,把生成的重加***上传到服务器上
- 重加密算法ReEnc(params,CTi,rki->j):给定针对公钥pki和第二层密文CTi,该算法利用重加***rki->j生成一个针对公钥pkj的第一层密文CTj。
- 服务器server利用重加***KA->B和之前A上传的密文C2做代理重加密运算生成新的密文C3。
- B向服务器请求解密数据M对应的密文C1。
- 服务器把重加密后生成的密文C3和C1发送给B
- B解密密文C3得到对称**,并用该对称**解密C1得到原始的明文数据。