艾伦·麦席森·图灵在二战期间主要负责破译德国人的密码系统Enigma,破解密码需要大量的计算,图灵深知工欲善其事必先利其器的道理,于是一台叫作CO-LOSSUS的计算机在1943年被研制出来,后来这种电子计算机总共生产了10台,他们出色完成了密码破译工作。

  后来甚至有人将二战胜利原因归咎于图灵机的诞生,虽然有些夸大,但图灵机的诞生确实加快了二战的结束这是不可否认的。而图灵机战胜的不是法西斯,而是战胜了德国人的密码系统Enigma,而1976年以前都是使用对称加密的,所以图灵机也就是战胜了对称加密算法。
(6.23号是艾伦·麦席森·图灵的诞辰,感兴趣的同学可以看看电影《模仿游戏》,影片改编自安德鲁·霍奇斯编著的传记《艾伦·图灵传》)

  故事讲完了,而今天我要给大家讲的是另外一种加密算法:非对称加密。而RSA就是其中的一种,也是非对称加密使用到最广泛的一种。其实RSA算法只是非常简单的一个公式,没有学过高数的同学照样可以搞懂其原理,只要你和我一样有一颗喜欢探索的心!!!

我把内容主要分为了三大块,为什么这么分呢?这样可以让我们循序渐进的去了解rsa,然后一步一步的揭开rsa的面纱。

一、目前常见加密算法简介
二、RSA算法介绍及数论知识介绍
三、RSA加解密过程及公式论证

一、目前常见加密算法简介

目前常见的加密算法可以分成三类,对称加密算法,非对称加密算法和Hash算法。

注意Base64编码只是一种编码格式并不是加密算法,它可用于在HTTP环境下传递较长的标识信息。

1.对称加密

  1976年以前,所有的加密方法都是同一种模式即对称加密,它采用了对称密码编码技术。它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,而且对计算机功能要求也没有那么高。IDEA加密标准由PGP(Pretty Good Privacy)系统使用。对称加密又分为流加密与分组加密这里就不展开讲了,感兴趣的同学可以自行了解。

对称加密的特点:

  • 优点:对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。
  • 缺点:在数据传送前,发送方和接收方必须商定好秘钥,然后双方保存好秘钥。如果一方的秘钥被泄露,那么加密信息也就不安全了
  • 使用场景:本地数据加密、https通信、网络传输等
  • 常见算法:AES、DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6

2.非对称加密

  1976年,两位美国计算机学家Whitfield Diffie 和 Martin Hellman,提出了一种崭新构思,可以在不直接传递密钥的情况下,完成解密。这被称为“Diffie-Hellman密钥交换算法”。这个算法启发了其他科学家。人们认识到,加密和解密可以使用不同的规则,只要这两种规则之间存在某种对应关系即可,这样就避免了直接传递密钥。这种新的加密模式被称为”非对称加密算法”。

非对称加密特点:

  • 优点:非对称加密与对称加密相比其安全性更好
  • 缺点:加密和解密花费时间长、速度慢,只适合对少量数据进行加密。
  • 使用场景:https会话前期、CA数字证书、信息加密、登录认证等
  • 常见算法:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)

3.Hash算法

  Hash算法特别的地方在于它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。

hash算法特点:

  • 优点:不可逆、易计算、特征化
  • 缺点:可能存在散列冲突
  • 使用场景:文件或字符串一致性校验、数字签名、鉴权协议
  • 常见算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1

加密算法的选择

  • 对称加密算法不能实现签名,因此签名只能非对称算法。
  • 验证文件或字符一致性用hash算法
  • 数据量大用对称加密算法、小则可以用非对称加密
  • 还可以非对称与对称集成,参考https请求原理
  • RSA建议采用1024位的数字,ECC建议采用160位,AES采用128为即可。

RSA算法原理——(1)目前常见加密算法简介相关推荐

  1. RSA算法原理——(2)RSA简介及基础数论知识

    上期为大家介绍了目前常见加密算法,相信阅读过的同学们对目前的加密算法也算是有了一个大概的了解.如果你对这些解密算法概念及特点还不是很清晰的话,昌昌非常推荐大家可以看看HTTPS的加密通信原理,因为HT ...

  2. 经典非对称加密算法:RSA算法原理、实现详解(C++、Java)

    目录 零.写在最前 参数说明 一.RSA算法原理介绍 二.实验步骤(含实验方法与关键代码) 1. 创建项目 2. 设计加密.解密的总体流程 3. 设计素数类PrimeNum,包括两个静态方法 4. 设 ...

  3. RSA算法原理——(3)RSA加解密过程及公式论证

    上期(RSA简介及基础数论知识)为大家介绍了:互质.欧拉函数.欧拉定理.模反元素 这四个数论的知识点,而这四个知识点是理解RSA加密算法的基石,忘了的同学可以快速的回顾一遍. 一.目前常见加密算法简介 ...

  4. 非对称加密RSA算法原理及实际应用场景

    非对称加密RSA算法原理及实际应用场景 引言 应用场景 RSA 算法原理 数学基础 质数 欧拉定理 模指数运算 小白理解 为什么需要足够大的质数 引言 我数学差的离谱,所以我朋友去学AI,我还在这搞这 ...

  5. RSA算法原理(二)

    RSA算法原理(二) 转载:http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html 上一次,我介绍了一些数论知识. 有了这 ...

  6. android支付宝rsa加密算法,支付宝支付流程与RSA算法原理

    RSA加密算法的原理 支付宝的三种支付流程 1.所有的支付逻辑处理,全在服务器完成,现在被淘汰了 原理就是电商App吧所有的信息提交给电商服务器,然后又电商服务器与支付宝服务器进行交互 2.所有的支付 ...

  7. RSA算法原理简介,非对称加密,公开密钥算法(易懂篇)

    RSA加密算法是最常用的非对称加密算法,CFCA在证书服务中离不了它.但是有不少新来的同事对它不太了解,恰好看到一本书中作者用实例对它进行了简化而生动的描述,使得高深的数学理论能够被容易地理解.我们经 ...

  8. RSA加密、解密、签名、验签(验证签名)RSA算法原理

    转载链接:https://www.jianshu.com/p/8dc4a5f64e06 https://www.cnblogs.com/pcheng/p/9629621.html RSA原理:http ...

  9. 支付宝支付流程与RSA算法原理

    本博客主要讲解以下两点: 支付宝的三种支付流程 RSA加密算法的原理 支付宝的三种支付流程 1.所有的支付逻辑处理,全在服务器完成,现在被淘汰了  原理就是电商App吧所有的信息提交给电商服务器,然后 ...

最新文章

  1. Labview 串口通信之——PC控制云台方向
  2. es6-Symbol
  3. 2013年网络安全事件盘点
  4. javaScript基础讲义第四天(1)
  5. MapReduce中的排序(附代码)
  6. linux+top写日志,Linux:日志那些命令
  7. 数据科学和人工智能技术笔记 十、模型选择
  8. 虚拟机python pip安装不了_给在Linux虚拟机里运行的FreeBSD 12安装pip Python包管理器...
  9. MNIST数据集的下载
  10. NOIP 2017 PJ
  11. 【Hive】Hive 建表语句详解
  12. Android JNI开发笔记二:动态库和静态库
  13. b站直播html 延迟弹幕,在B站直播的正确姿势 一步解决弹幕问题
  14. 计算机组成原理/计算机硬件基础第五章:存储器
  15. 计算机玩游戏重启,为什么我的电脑玩游戏的时候会不定时的自动重启?
  16. 桥接路由器总是掉线_桥接后副路由器网速特别慢,而且经常掉线
  17. 格拉姆角场GAF将时序数据转换为图像并应用于故障诊断
  18. cs224w(图机器学习)2021冬季课程学习笔记16 Community Detection in Networks
  19. 蓝牙设备删除失败_这软件能让你的蓝牙耳机,用上AirPods的功能
  20. 52单片机led灯闪烁c语言程序,单片机LED灯闪烁程序

热门文章

  1. 全国计算机二级准考证贵州,贵州计算机二级考试准考证打印时间
  2. php编写开机启动脚本,设置 msyql php-fpm 开机自动启动脚本
  3. oracle画圆,元宵佳节:看Oracle技术粉们用SQL画团圆
  4. 剔除异常值栅格计算器_基于数据流的异常检测: Random Cut Forest
  5. 殊途同归的策略梯度与零阶优化
  6. 雇水军刷分有效吗?虚假评论的影响研究分析
  7. CVPR 2019 论文和开源项目合集(Papers with Code)
  8. Java软件开发:自定义MyBatis持久层框架
  9. HDU1525 Euclid's Game 【欧几里得博弈】
  10. 十进制小数转换为二进制