Homomorphic-Encryption

可塑性加密

  • December 1, 2017

我想要達到的目標如下:

Alice 向 Bob 發送具有以下格式的數據報的加密:

| 256-bit number | SomeLongArrayOfZeroes |

Bob 知道解密密鑰。

但在數據報到達 Bob 之前,有一些中介我希望能夠添加一些額外的 256 位數字。這些第三方應該無法讀取 Alice 包含的第一個 256 位數字。我們還假設這些第三方知道他們必須修改密文的哪些部分才能不修改其他方插入的數據。

我正在研究同態加密,但為此目的看起來有點矯枉過正。兩個密文不需要相互互動。我只需要能夠將額外的數據添加到已經包含一些資訊的已經加密的密文中,而不會對其造成損害。假設對方會遵守一些規則,以免損壞前綴。第三方不應該能夠解密其他第三方添加的資訊。

最後,Bob 應該能夠使用 Alice 提供的密鑰解密消息。

有什麼建議麼?我在考慮某種流密碼。有哪些可能的解決方案?

幾個密碼系統具有這種部分同態的性質。值得注意的例子包括Benaloh和對其進行概括的 Naccache-Stern,以及對 Paillier密碼系統進行概括的Damgård-Jurik

後一種方案的一個工作範例:

對於隨機元素r \in \mathbb{Z},加密原語被定義為E(m)=g^m\cdot r^n \mod n^2。從這裡我們可以看到給定兩個密文我們有: E(m_0)\cdot E(m_1) = (g^{m_0}\cdot {r_0}^n) \cdot (g^{m_1}\cdot {r_1} ^n) \mod n^2 E(m_0)\cdot E(m_1) = g^{m_0 + m_1}\cdot {(r_0 \cdot r_1)}^n \mod n^2 E(m_0)\cdot E (m_1) = E(m_0 + m_1) \mod n^2和(米)=G米⋅rn反對n2 $ E(m)=g^m\cdot r^n \mod n^2 $ r∈從 $ r \in \mathbb{Z} $ 和(米0)⋅和(米1)=(G米0⋅r0n)⋅(G米1⋅r1n)反對n2

$$ E(m_0)\cdot E(m_1) = (g^{m_0}\cdot {r_0}^n) \cdot (g^{m_1}\cdot {r_1}^n) \mod n^2 $$ 和(米0)⋅和(米1)=G米0+米1⋅(r0⋅r1)n反對n2$$ E(m_0)\cdot E(m_1) = g^{m_0 + m_1}\cdot {(r_0 \cdot r_1)}^n \mod n^2 $$ 和(米0)⋅和(米1)=和(米0+米1)反對n2$$ E(m_0)\cdot E(m_1) = E(m_0 + m_1) \mod n^2 $$ 因此,我們可以通過簡單地將密文相乘,僅從密文中計算兩個明文相加的加密,而不會洩露它們。

此外,如果我們知道m_1的值,米1 $ m_1 $ 那麼我們可以避免使用加密原語,直接計算如下: 和(米0)⋅G米1=(G米0⋅r0n)⋅G米1反對n2

$$ E(m_0)\cdot g^{m_1} = (g^{m_0}\cdot {r_0}^n) \cdot g^{m_1} \mod n^2 $$ 和(米0)⋅G米1=G米0+米1⋅r0n反對n2$$ E(m_0)\cdot g^{m_1} = g^{m_0 + m_1}\cdot {r_0}^n \mod n^2 $$ 和(米0)⋅G米1=和(米0+米1)反對n2$$ E(m_0)\cdot g^{m_1} = E(m_0 + m_1) \mod n^2 $$ 現在,通過將乘法視為重複加法,我們可以擴展同態屬性以乘以一個常數,通過使用冪運算實現重複的密文乘法: 和(米0)米1=(G米0⋅r0n)米1反對n2

$$ E(m_0)^{m_1} = (g^{m_0}\cdot {r_0}^n)^{m_1} \mod n^2 $$ 和(米0)米1=G米0⋅米1⋅(r0米1)n反對n2$$ E(m_0)^{m_1} = g^{m_0 \cdot m_1}\cdot {({r_0}^{m_1})}^n \mod n^2 $$ 和(米0)米1=和(米0⋅米1)反對n2$$ E(m_0)^{m_1} = E(m_0 \cdot m_1) \mod n^2 $$ 編輯:感謝 tylo 提供的具體範例

你能描述一下密鑰分配方案嗎?

如果你想要對稱加密,那麼你要求中介不能解密任何東西,這就排除了他們都擁有相同的密鑰,那麼每個人都有不同的密鑰,而 Bob 擁有所有的密鑰會是這樣嗎?

還是您想到的非對稱加密?

我看到他的方法存在一個基本問題:任何好的加密方案都應該實現良好的擴散(混合來自明文所有部分的所有資訊,以便它在密文中均勻分佈)以防止統計分析。在嘗試將第一個 n 位從一個加密保存到另一個加密時,我想不出一種方法來做到這一點而不影響擴散。

即使你們有一些機制,以便中間人可以在添加他們的部分之前撤消擴散,這個機制必然是系統的一部分,所以b是ķ和rCķH○FFs′s磷r一世nC一世p一個ls

$$ by Kerckhoffs’s Principals $$,你必須假設 Eve 可以做同樣的事情,再次擊敗擴散和開放您對統計攻擊的加密。 因此,如果這是您要解決的實際問題,而不是嘗試發明具有此屬性的新密碼,我只會連接單獨加密的密文。

引用自:https://crypto.stackexchange.com/questions/37650