美文网首页
iOS RSA加密

iOS RSA加密

作者: MrSYLong | 来源:发表于2019-10-29 14:01 被阅读0次
    简介

    RSA加密算法是一种非对称加密算法。

    根据报道,目前被破解的最长RSA密钥是768个二进制位。也就是说,长度超过768位的密钥,还无法破解(至少没人公开宣布)。 因此可以认为,1024位的RSA密钥基本安全,2048位的密钥极其安全。

    知识点
    1. 不管明文长度是多少,RSA生成的密文长度总是固定的,等于密钥长度。
      (密钥长度越大,生成密文的长度就越大,加密的速度就越慢,而密文也就越难被破解掉)。
    2. 明文长度不能超过密钥长度,否则就会出问题。
      (使用分段加密,或结合对称加密,用对称加密对数据进行加密,用RSA对对称加密秘钥进行加密)。
    3. RSA加密每次结果是不一样的(加密时对加密内容使用了长度为11位的随机填充)。
    4. 密文长度不能大于密钥长度,如果进行分段加密,1024位(128字节)秘钥进行分段加密时,密文控制是117个字节,因为加密时对密文使用了长度为11个字节的填充(随机的),加起来就是128个字节。同理,如果是2048位密钥分段加密,每段密文可加密长度为256-11=244个字节。
    5. RSA本身不支持中文(一般使用URL编码来解决中文问题)。
    注意

    RSA加密前后端要协商好

    1. 填充类型
    2. 秘钥长度
    RSA公钥、私钥的产生
    1. 寻找两个不相同的质数
      随意选择两个大的质数p和q,p不等于q,计算N=p*q;
    质数:除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1该数本身两个正因数]的数)。
    
    1. 根据欧拉函数获取r
      r = φ(N) = φ(p)φ(q) = (p-1)(q-1)。
    欧拉函数 φ(n)是小于或等于n的正整数中与n互质的数的数目。
    
    如果两个或两个以上的整数的最大公约数是 1,则称它们为互质
    
    1. 选择一个小于r并与r互质的整数e
      选择一个小于r并与r互质的整数e,求得e关于r的模反元素,命名为d(ed = 1(mod r)模反元素存在,当且仅当e与r互质),e我们通常取65537。
    2. 销毁p和q
      此时我们的(N , e)是公钥,(N, d)为私钥,爱丽丝会把公钥(N, e)传给鲍勃,然后将(N, d)自己藏起来。一对公钥和私钥就产生了。
    参考

    iOS端RSA加密
    iOS端基于RSA公钥加密和解密
    RSA算法详解

    相关文章

      网友评论

          本文标题:iOS RSA加密

          本文链接:https://www.haomeiwen.com/subject/ujfnmctx.html