iOS逆向之RSA加密(上)

本文深入探讨了RSA加密的数学原理,包括离散对数问题、欧拉函数和欧拉定理,以及迪菲-赫尔曼密钥交换。通过示例展示了如何在iOS中使用RSA算法进行加密和解密操作,并介绍了终端命令来操作RSA密钥。
摘要由CSDN通过智能技术生成

本文主要介绍RSA的数学原理、以及RSA的代码演示

引子

密码学

是指研究信息加密、破解密码的技术科学。最早可以追溯到追溯到2000年前。而当今的密码学是以数学为基础的。

密码学发展史

  • 在1976年以前,所有的加密方法都是同一种模式:加密、解密使用同一种算法。在交互数据的时候,彼此通信的双方就必须将规则告诉对方,否则没法解密。那么加密和解密的规则(简称密钥),它保护就显得尤其重要。传递密钥就成为了最大的隐患。这种加密方式被成为对称加密算法(symmetric encryption algorithm)

  • 1976年,两位美国计算机学家 迪菲(W.Diffie)、赫尔曼( M.Hellman ) 提出了一种崭新构思,可以在不直接传递密钥的情况下,完成密钥交换。这被称为“迪菲赫尔曼密钥交换”算法。开创了密码学研究的新方向

RSA数学原理

上世纪70年代产生的一种加密算法。其加密方式比较特殊,需要两个密钥:公开密钥简称公钥(publickey)和私有密钥简称私钥(privatekey)。公钥加密,私钥解密;私钥加密,公钥解密。这个加密算法被称为的RSA

离散对数问题

现在想实现这一种 加密容易,但是破解很难的加密算法,利用数学运算,如mod取模,有如下方案:

  • 质数做模数,例如17

  • 找一个比17小的数作为n次方的基数,例如3

  • 找出基数的n次方 mod 质数 = 固定的数,求n

3^? mod 17 = 12,此时的`?`是多少呢?(mod -> 求余数,在西方被称为时钟算数)

从下方的规律中可以看出,3的1次方~16次方 mod 17 得到的结果都是不同的,且结果分布在 [1,17)上。此时将 3 称为 17 的原根

作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS开发交流圈:130 595 548,不管你是小白还是大牛都欢迎入驻 ,让我们一起进步,共同发展!(群内会免费提供一些群主收藏的免费学习书籍资料以及整理好的几百道面试题和答案文档!)

所以根据图中所示,? 可能是13,可能是29等。即从这里可以看出:通过 12 去反推3的?次方是很难的。如果质数加大,反推的难度也会加大。

质数:公约数只有1和自己,其中2是一个特殊质数

欧拉函数φ(读 fai)

定义

任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系?计算这个值的方式就叫做欧拉函数,使用Φ(n)表示

互质关系

如果两个正数,除了1以外,没有其他公因数,就称这两个数是互质关系(comprime)

欧拉函数特点

  • 1、当n是质数时,Φ(n) = n - 1

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值