公开密钥算法-背包算法

秘密密钥:容易背包,超递增序列,如{2,3,6,13,27,52},用于解密

公开密钥:难解的背包,用于加密

一、从秘密密钥建立公开密钥

秘密密钥:{2,3,6,13,27,52},取m(p)=105,n(a)=31与模m互素

       n              m

2  * 31  mod  105 = 62

3  * 31  mod  105 = 93

6  * 31  mod  105 = 81

13* 31  mod  105 = 88

27* 31  mod  105 = 102

52* 31  mod  105 = 37

公开密钥:{62,93,81,88,102,37}

二、加密(公开密钥)

公开密钥:{62,93,81,88,102,37}

消息=011000110101101110

  =011000 110101 101110

011000=93+81=174

110101=62+93+88+37=280

101110=62+81+88+102=333

∴密文:{174,280,333}

三、解密(秘密密钥)

秘密密钥:{2,3,6,13,27,52}

密文:{174,280,333}

m=105,n=31,n-1=61

  n-1    m

174*61  mod  105 = 9   = 3+6 = 011000

280*61  mod  105 = 70 = 2+3+13+52 = 110101

333*61  mod  105 = 48 = 2+6+13+27 = 101110

原文地址:https://www.cnblogs.com/holaworld/p/11725738.html