开发者社区> 问答> 正文

iOS怎么使用模和指数进行RSA加密

iOS怎么使用模和指数进行RSA加密

展开
收起
知与谁同 2018-07-21 14:09:04 1956 0
3 条回答
写回答
取消 提交回答
  • 对于实践,建议参考openssl。

    2019-07-17 22:56:22
    赞同 展开评论 打赏
  • 可以参考openssl的ios适配库,https://github.com/st3fan/ios-openssl

    2019-07-17 22:56:22
    赞同 展开评论 打赏
  • 首先确认你要加密的数据有多大,如果比较大建议先使用对称算法进行加密,将对称算法的密钥使用RSA加密即可。
    现在定义:
    你所拿到的公钥模为 N,指数为E
    N的位长度为 len(N)
    N占用的字节数为 k = (len(N)+7)/8
    要加密的数据为D (可以是你原始的数据或者对称算法密钥)
    如果你的加密数据比较小的话也可以直接进行RSA加密,比较小的意思为:被加密数据的长度必须能够满足填充条件,如果采用PKCS1_1.5的填充方式,D占用的字节要小于 k-11
    运算过程很简单: 将D进行填充到D1, 要求D1所占用的字节数为 k (即同N的长度相同)
    则计算密文E的过程为 DE = (D1 ^ E) % N ( ^ 表示指数运算)
    在程序中实现建议你采用一些现成的库,如果有OpenSSL则可以网上搜索一下,资料应该不少。
    如果没有的话可以直接引入一些大数计算的库直接进行模指运算(别分开,太慢)。
    2019-07-17 22:56:22
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
手淘iOS性能优化探索 立即下载
From Java/Android to Swift iOS 立即下载
深入剖析iOS性能优化 立即下载