zoukankan      html  css  js  c++  java
  • 公开密钥算法-背包算法

    秘密密钥:容易背包,超递增序列,如{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

  • 相关阅读:
    图论复习
    数据结构复习
    数学复习
    字符串算法复习
    还有9天就要走了
    JS 多个一维数组排例组合的所有可能
    PHP 多个一维数组排列组合的所有可能
    维护DOWNID
    LINUX
    Multiple Versions of PHP run on server
  • 原文地址:https://www.cnblogs.com/holaworld/p/11725738.html
Copyright © 2011-2022 走看看