RSA算法介绍

本文介绍了RSA算法的历史、原理及安全性的基础知识,并提供了在iOS中的实现概述。通过数学概念如欧拉函数、模运算和模反元素解释了算法工作原理,强调了其安全性基于大整数的因数分解难题。此外,提到了如何使用openssl生成公私钥并用iOS的Security框架进行加密。
摘要由CSDN通过智能技术生成

前言

本文的RSA例子代码更新在我的github上。

RSA算法是最重要算法之一,它是计算机通信安全的基石,保证了加密数据不会被破解。本文主要参考了参考资料中的文章,介绍一下RSA算法的内容,自己写一遍,算是学习了。

历史

1.对称加密算法

在1976年以前,所有的加密方法都是同一种模式“对称加密算法”(Symmetric-key algorithm):

  • (1)甲方选择某一种加密规则,对信息进行加密;
  • (2)乙方使用同一种规则,对信息进行解密。

这种加密模式有一个最大弱点:甲方必须把加密规则告诉乙方,否则无法解密。

2.非对称加密算法

1976年,两位美国计算机学家Whitfield Diffie 和 Martin Hellman,提出了一种崭新构思,可以在不直接传递密钥的情况下,完成解密。这被称为“Diffie-Hellman密钥交换算法”

  • (1)甲要传密信给乙,乙先根据某种算法得出本次与甲通信的公钥与私钥
  • (2)乙将公钥传给甲(公钥可以让任何人知道,即使泄露也没有任何关系)
  • (3)甲使用乙传给的公钥加密要发送的信息原文m,发送给乙密文c
  • (4)乙使用自己的私钥解密密文c,得到信息原文m

如果公钥加密的信息只有私钥解得开,那么只要私钥不泄漏,通信就是安全的。

3.RSA算法的出现

1977年,三位数学家Rivest、Shamir 和 Adleman 设计了一种算法,可以实现非对称加密。这种算法用他们三个人的名字命名,叫做RSA算法
这种算法非常可靠,密钥越长,它就越难破解。根据已经披露的文献,目前被破解的最长RSA密钥是768个二进制位。也就是说,长度超过768位的密钥,还无法破解(至少没人公开宣布)。因此可以认为,1024位的RSA密钥基本安全,2048位的密钥极其安全。

数论知识

1.质数

一个大于1的自然数,除了1和它本身外,不能被其他自然数整除(除0以外)的数称之为质数(素数);否则称为合数。

2.互质数

互质,又称互素。若N个整数的最大公因子是1,则称这N个整数互质。

3.指数运算

指数运算又称乘方计算,计算结果称为幂。*nm
指将*n自乘m次。把*nm
*看作乘方的结果,叫做”n的m次幂”或”n的m次方”。其中,n称为“底数”,m称为“指数”。

4.模运算
<
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值