crypto_AMM算法

 

m^{2}\equiv c\: \: mod\: \: p

phi(p)=p-1

由二次剩余知识点可知:

有解、二次剩余   :m^{phi(p)/2}\equiv 1\: \: mod\: \: p

无解、二次非剩余:x^{phi(p)/2}\equiv -1\: \: mod\; \; p

当p为质数的时候即phi(p)=p-1

有解、二次剩余   :m^{(p-1)/2}\equiv 1\: \: mod\: \: p

无解、二次非剩余:x^{(p-1)/2}\equiv -1\: \: mod\; \; p

设  p-1=2^{t}*x\Rightarrow \frac{(p-1)}{2}=2^{t-1}*s

那么就有:

二次剩余    :x^{2^{(t-1)}*s}\equiv 1\: \: mod\: \: p

二次非剩余:x^{2^{(t-1)}*s}\equiv -1\: \: mod\: \: p

当t=1时

二次剩余:x^{s}\equiv 1\: \: mod\: \: p

二次非剩余:x^{s}\equiv -1\: \: mod\: \: p

那么两边同时乘以x^{\frac{1}{2}}就有:

二次剩余:x^{\frac{s+1}{2}}\equiv x^{\frac{1}{2}}\: \: mod\: \: p

二次非剩余:x^{\frac{s+1}{2}}\equiv -x^{\frac{1}{2}}\: \: mod\: \: p

当x=密文(c)时,就有:

二次剩余:c^{\frac{s+1}{2}}\equiv c^{\frac{1}{2}}\: \: mod\: \: p

二次非剩余:c^{\frac{s+1}{2}}\equiv -c^{\frac{1}{2}}\: \: mod\: \: p

也就是说:

c^{\frac{s+1}{2}}\equiv c^{\frac{1}{2}}\equiv m\: \: mod\: \: p

当t>=2时

设x为二次剩余,y为非二次剩余

两边同时根号,右边不变,而左边乘了\frac{1}{2}

二次剩余   :(x^{s})^{2^{t-2}}\equiv 1\: \: mod\: \: p

二次非剩余:(y^{s})^{2^{t-2}}\equiv -1\: \: mod\: \: p

然后我们把二次非剩余的公式平方,把-1消除掉,

由于是平方二次非剩余,由二次剩余的定义  二次非剩余乘以二次非剩余是等于二次剩余的

所以这里把-1消掉的同时也将它变成了二次剩余,所以公式得到:

(y^{s})^{2^{t-1}}\equiv 1\: \: mod\: \: p

(x^{s})^{2^{t-2}}\equiv 1\: \: mod\: \: p

我们两个公式相乘得到:

(x^{s})^{2^{t-2}}(y^{s})^{2^{t-1}}\equiv 1\: \: mod\: \: p

这时论文中引入了一个k

(x^{s})^{2^{t-2}}(y^{s})^{2^{t-1}*k_{1}}\equiv 1\: \: mod\: \: p,且  k_{1}\in \left \{ 0,1 \right \}

由t=2时,公式

(y^{s})^{2^{t-1}}\equiv 1\: \: mod\: \: p

(x^{s})^{2^{t-2}}\equiv 1\: \: mod\: \: p

(x^{s})^{2^{t-3}}(y^{s})^{2^{t-2}*k_{1}}\equiv 1\: \: mod\: \: p,且k_{1}\in \left \{ 0,1 \right \}

当我们t=3时(x^{s})^{2^{t-3}}(y^{s})^{2^{t-2}*k_{1}}\equiv 1\: \: mod\: \: p该公式就相当于再开了一次根得到(x^{s})^{2^{t-3}}(y^{s})^{2^{t-2}*k_{1}}\equiv 1\: \: mod\: \: p

我们将(x^{s})^{2^{t-3}}(y^{s})^{2^{t-2}*k_{1}}\equiv 1\: \: mod\: \: p乘以(y^{s})^{2^{t-1}}\equiv 1\: \: mod\: \: p得到

(x^{s})^{2^{t-3}}(y^{s})^{2^{t-2}*k_{1}}(y^{s})^{2^{t-1}*k_{2}}\equiv 1\: \: mod\: \: p,且k_{1},k_{2}\in \left \{ 0,1 \right \}

依次类推,式子演变成

(x^{s})(y^{s})^{2k_{1}+2^{2}k_{2}+\cdots +2^{t-1}k_{t-1}}\equiv 1\: \:mod\: \: p

我们将该式子两边同时乘x,得到

(x^{s+1})(y^{s})^{2k_{1}+2^{2}k_{2}+\cdots +2^{t-1}k_{t-1}}\equiv x\: \:mod\: \: p

然后我们右边提取2次方,得到

(x^{\frac{s+1}{2}})^{2}((y^{s})^{k_{1}+2k_{2}+\cdots +2^{t-2}k_{t-1}})^{2}\equiv x\: \:mod\: \: p

这里左右开根一直到左边没有2的指数引入k是为了判断是否引入非剩余类,论文说开出正根k=0,开出负根k=1,一共t-1个k:

这个时候带入c为原来的剩余类,也就是x,得到:

(c^{\frac{s+1}{2}})^{2}((y^{s})^{k_{1}+2k_{2}+\cdots +2^{t-2}k_{t-1}})^{2}\equiv c\: \:mod\: \: p

两边同时根号就能得出m了:

(x^{\frac{s+1}{2}})^{2}((y^{s})^{k_{1}+2k_{2}+\cdots +2^{t-2}k_{t-1}})^{2}\equiv c^{\frac{1}{2}}\equiv m\: \:mod\: \: p

这是2次剩余,当n次剩余也是类似

开n次方根

(\delta ^{\alpha -1})^{r^{t-1}}这个公式怎么来的呢,我们可知费马小定理

x^{p-1}= 1\: \: (mod\; \; p) (1)

x^{p-1}= 1\: \: (mod\; \; p)\Rightarrow a^{\frac{p-1}{r}}= 1\: \: (mod\: \: p)代入x^{e}=a \: \:( mod\: \: p),将a用x^{r}替换

2、我们可知AMM算法求解的情况为 r | (p-1) 的情况,所以我们可以写出以下条件:

p-1=r^{t}*s

3、找到一个q值使其满足q^{\frac{p-1}{r}}\neq 1\: \: (mod\: \: p)(2)

4、找到一个\alpha值,使其满足 s | (r*\alpha-1),可推导得:

(a^{r\alpha -1})^{r^{t-1}}=1\: \: (mod\; \; p)(3)

分类讨论:

(1)t=1时:直接两边同乘a值,再对两边同时开r次方导,带入(1)式,即可求得x的值;

(2)t>=2时:=>取(2)式可推导得:k_{i}=(q^{s})^{i*r^{t-1}}其中(k=(k_{1},k_{2},k_{3}\cdots k_{r-1}))

其中K是对(3)式开r次方所有可能解的集合,当我们算k_{i}^{r}时,通过欧拉定理,我们可知k_{i}^{r}\equiv 1\: \: (mod\: \: p)\Rightarrow k_{i}k_{r-i}=((q^{s})^{i*r^{t-1}})*(q^{s})^{(r-i)*r^{t-1}}=(q^{s})^{r^{t}}

通过欧拉定理可得k_{i}k_{r-i}\equiv 1\: \: mod\: \: p

接下来,开始像第一个中解平方根的思路开始求解第二种情况:

1、对(3)式开r次方,得到((a^{r*\alpha -1})^{r^{t-2}})^{r}=\: 1\: \:( mod\: \: p)

2、可得到(a^{r*\alpha -1})^{r^{t-2}}=k_{r}-j

两边同时乘以k_{j}可得(a^{r*\alpha -1})^{r^{t-2}}*(k_{r}-j)=1\: \: (mod\: \: p)

即为(a^{r*\alpha -1})^{r^{t-2}}*(p^{s})^{j*r^{t-1}}=1\: \: (mod\: \: p)

判断r^{t-j}是否为r,重复上述的1和2操作

3、当结束后,我们可得以下等式:

(a^{r\alpha -1})*(p^{s})^{j_{1}*r^{1}+j_{2}*r^{2}+j_{3}*r^{3}+\cdots +j_{t-1}*r^{t-1}}=1\: \: (mod\: \: p)

带入(1)式,对两边同时开r次方,我们可以求得我们所需的x值:

(a^{r\alpha})*(p^{s})^{j_{1}*r^{1}+j_{2}*r^{2}+j_{3}*r^{3}+\cdots +j_{t-1}*r^{t-1}}=a\: \: (mod\: \: p)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值