对称加密与非对称加密是如何加密的?

1个回答

  • RSA算法

    RSA的安全性依赖于大数分解.公钥和私钥都是两个大素数( 大于 100个十进制位)的函数.据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积.

    密钥对的产生.选择两个大素数,p 和q .计算:

    n = p * q

    然后随机选择加密密钥e,要求 e 和 ( p - 1 ) * ( q - 1 ) 互质.最后,利用Euclid 算法计算解密密钥d,满足

    e * d = 1 ( mod ( p - 1 ) * ( q - 1 ) )

    其中n和d也要互质.数e和n是公钥,d是私钥.两个素数p和q不再需要,应该丢弃,不要让任何人知道.

    加密信息 m(二进制表示)时,首先把m分成等长数据块 m1 ,m2,...,mi ,块长s,其中 2^s