自盲化能力 Paillier和EIGamal
前言:僅個人小記。記錄兩個具有自盲化能力的加密體制。所謂自盲化,指的是對密文進行隨機化操作,操作后得到新密文,對新舊密文的解密結果相同。因為隨機化,故而敵手無法判定新密文是否對應著原來的明文。這里只是簡要交代盲化方法,不對其他細節進行嚴格表述。
Paillier 加密體制自盲化
給定一個Paillier 密文,公鑰為 N,
c=(1+N)mrNmodN2c=(1+N)^mr^N\ mod N^2c=(1+N)mrN?modN2
對密文 ccc 進行盲化,操作如下
選擇一個隨機數r1←ZN選擇一個隨機數 r_1\leftarrow Z_N選擇一個隨機數r1?←ZN?
c′=cr1Nc'=cr_1^Nc′=cr1N?
c′c'c′就是盲化結果密文,對ccc和c′c'c′的解密結果都是 m。但是,顯然密文值發生了改變。
EIGamal 加密體制自盲化
給定一個EIGamal 密文,公鑰為 (g,h),
(c1,c2)=(gr,hrm)(c_1,c_2)=(g^r,h^rm)(c1?,c2?)=(gr,hrm)
對密文(c1,c2)(c_1,c_2)(c1?,c2?)進行盲化,操作如下
選擇一個隨機數r1選擇一個隨機數r_1選擇一個隨機數r1?(c1′,c2′)=(gr1c1,hr1c2)=(gr1+r,hr1+rm)(c_1',c_2')=(g^{r_1}c_1,h^{r_1}c_2)=(g^{r_1+r},h^{r_1+r}m)(c1′?,c2′?)=(gr1?c1?,hr1?c2?)=(gr1?+r,hr1?+rm)
(c1′,c2′)(c_1',c_2')(c1′?,c2′?)就是盲化結果,對兩個不同的密文(c1,c2)(c_1,c_2)(c1?,c2?)和(c1′,c2′)(c_1',c_2')(c1′?,c2′?)的解密結果都是m。
小結
自盲化是一個很好的能力。強調一下(可能感覺是無用的話):以上的盲化都是基于原公鑰進行的盲化?;蛘哒f,可能盲化是必須要基于原公鑰進行的。
總結
以上是生活随笔為你收集整理的自盲化能力 Paillier和EIGamal的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python教程55--D-Tale使用
- 下一篇: html速成项目,HTML速成教材.do