Proxy-Re-Encryption
可以拆分秘密以生成重新加密密鑰(PRE)嗎?
我想知道,是否可以拆分一個秘密(例如 shamir 的秘密共享),該秘密可用於在代理重新加密中生成重新加密密鑰,並且僅提供拆分的部分以生成只能用於特定公鑰的重新加密密鑰?
所以像:
sec = secret to decrypt message sec1 = portion of sec sec2 = portion of sec pkr = public key of receiver of the message pkm = public key of bad actor who wants to re-encrypt for him sec1_pkr = getKey(sec1, pkr) sec2_pkr = getKey(sec2, pkr) reKeyPkr = getReKey(sec1_pkr, sec2_pkr, [secn_pkr...], pkr) = re-encryption key for receiver pkr reKeyPkm != getReKey(sec1_pkr, sec2_pkr, [secn_pkr...], pkm) = re-encryption key for receiver pkm ...
與您所問的類似(儘管不完全是)是稱為Umbral的 PRE 方案。它有一個名為pyUmbral的參考實現。(免責聲明:我是 Umbral 的作者)。
Umbral 是一種門檻值PRE 方案,這意味著重新加密在幾個代理之間分配,並且它們中至少有一定的門檻值必須協作。使用 Umbral,委託人可以生成 M-out-of-N 重新加密密鑰,其方式類似於 Shamir 的秘密共享。
我認為您可能可以重用 Umbral 中使用的一些技術來拆分委託人的私鑰並從該私鑰的份額中生成重新加密密鑰份額,而不是 Umbral 的方法,即直接生成重新加密密鑰份額。無論如何,從Shamir’s Secret Sharing的應用角度來看,這兩種方法應該是非常相似的。
我還認為這些技術可以很容易地適應基於配對的 PRE 方案,例如 AFGH 等。