为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Python

伦·麦席森·图灵在二战期间主要负责破译德国人的密码系统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://img1.sycdn.imooc.com//5d240db80001507810800401.jpg


对称加密的特点:

  • 优点:对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。

  • 缺点:在数据传送前,发送方和接收方必须商定好秘钥,然后双方保存好秘钥。如果一方的秘钥被泄露,那么加密信息也就不安全了

  • 使用场景:本地数据加密、https通信、网络传输等

  • 常见算法:AES、DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6

2.非对称加密

https://img1.sycdn.imooc.com//5d240dc300013fa108960692.jpg

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

https://img1.sycdn.imooc.com//5d240dcb000104b710720503.jpg


非对称加密特点:

  • 优点:非对称加密与对称加密相比其安全性更好

  • 缺点:加密和解密花费时间长、速度慢,只适合对少量数据进行加密。

  • 使用场景:https会话前期、CA数字证书、信息加密、登录认证等

  • 常见算法:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)

3.Hash算法

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

https://img1.sycdn.imooc.com//5d240dd3000143e910800631.jpg


Hash算法特点:

  • 优点:不可逆、易计算、特征化

  • 缺点:可能存在散列冲突

  • 使用场景:文件或字符串一致性校验、数字签名、鉴权协议

  • 常见算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1

加密算法的选择

  • 对称加密算法不能实现签名,因此签名只能非对称算法。

  • 验证文件或字符一致性用hash算法

  • 数据量大用对称加密算法、小则可以用非对称加密

  • 还可以非对称与对称集成,可参考https加密过程HTTPS原理详解

  • RSA建议采用1024位的数字,ECC建议采用160位,AES采用128为即可。



    裸睡的猪(ID:IT--Pig)

    作者:猪哥-Pythoner,禁止未授权转载,授权请私聊


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消