信息化时代的飞速发展,给人们的生活带来了翻天覆地的变化。人们在享受网络数据便利交互的同时,也面临着一个重大的问题——信息安全.从开始的邮件沟通、QQ聊天,演变到现在的手机移动支付,保护个人信息与数据,变得越来越重要。信息加密体系也从早先的对称加密算法,升级到后来的共享秘钥加密体系,再到非对称加密体系。我们大多数人得益于加密算法,却不知其所以然,甚至不知其然。

下面谈一下我对加密的理解。

在ATM机还不盛行的时期,大家去银行取款,都要经历密码输入的环节。一开始我很单纯的认为,当你在键盘上输入密码的同时,这些数据会原封不动的传到工作人员的电脑中,在与卡中的密码比较之后,如果一致,则身份验证成功,可以获得取款权限。但是后来,我了解到,完全不像我所想。我们输入的密码不是直接传到后台的电脑上,而是先通过一条秘钥对其进行加密后,将密文送到电脑,后者使用相同的秘钥对密文解密后,再进行比对判断。这里用到的算法就是对称加密算法、AES、DES等等,他们都有一个共同特点,即加密和解密用的都是同一条秘钥,这条秘钥既能加密数据也能解密数据。实际应用中,先在键盘、PC端各存一条相同的秘钥KEY,当用户输入密码之后,先用KEY对密码进行加密,然后将密文送到PC端,这样一来,任何人在线路上截取的都是密码,在没有秘钥KEY的情况下是无法破解用户的密码,不会对其账户造成威胁。当密文送到PC端后,会先用KEY对其解密,然后再对比判断密码是否正确。

以上过程中银联会有自己的固定交互流程,而且会要求,秘钥在键盘中必须要存储在硬件安全载体中,比如加密芯片中,这样能防止别人拿到这条秘钥KEY,试想一旦知道了这条秘钥,那么所有用户输入的密码都可以通过线路跟踪来破解了。这就是对称算法的特点,对于这个算法来说,至关重要的是秘钥的安全,不论谁获得了秘钥,都能截获数据。不仅仅是银联的密码键盘。在应用对称加密算法的行业或者产品中,秘钥的存储都是安全的关键。在一些嵌入式加密产品中,比如机顶盒产品、水电气表等等,如果想要对线路传输数据加密,都不会将秘钥放到主控MCU中,而是单独存放于加密芯片中,数据加解密都是直接通过加密芯片实现,MCU只是起到传输数据的作用,这样秘钥的存放才会安全。

说完了对称加密,我再来谈一下非对称加密。顾名思义,加密和解密使用不同的秘钥,这就是非对称加密算法。现在常用的非对称算法主要有RSA、ECC。这类算法的秘钥分为公钥和私钥。公钥是可以向外部公开的,任何人都可以获得。私钥只有特定的人员才能获得。

私钥加密的数据,必须要用公钥来解密。而公钥加密出来的数据,只能用私钥才能解密。公私钥配合使用才能完成加解密,因此,他们都是配对存在的,也叫公私钥对——每一条公钥都唯一存在一条私钥与之配对。因为公钥是没有限制,任何人都可以获取,因此私钥的保存就变得至关重要。私钥的安全就决定了非对称加密系统的安全。

由于任何人拿到公钥,都可以对明文进行运算,如果先使用公钥对数据运算,则称为公钥加密。这个时候再用私钥运算就成为解密。相反,因为私钥不是人人都可拿到,所以他具有唯一性,只有特定人员可以拿到,因此,先用私钥运算后的数据,必须用配对的公钥才能解密还原,这样一来,一旦公钥解密成功,我们也就知道了这是谁的私钥(因为其具有唯一性),这就体现了一个特点,即身份识别。因此先进行私钥运算,我们会称他为签名。签名之后,再用公钥进行解密的过程,我们称之为验签,即验证签名人员是谁。

同理,非对称加密的私钥,也是需要保存在安全载体中的,不能以明文直接暴露在PC本地或者是嵌入式系统的MCU中。很多应用非对称算法的软件产品中,都会把私钥放在加密狗中,应用的时候,把加密狗接入PC中,进行私钥签名或者私钥解密的时候,都通过加密狗来内部实现。对于嵌入式系统,大家也都选择放到加密芯片中,这也是行业内的普遍做法。对于银联这些特定行业,更是有标准直接规定了私钥存储条件。感兴趣的可以自行查看银联PBOC规范等。

信息安全——对称算法与非对称算法相关推荐

  1. 公钥和私钥的完全解释(包括对称算法和非对称算法、RSA解释)

    密钥分为两种:对称密钥与非对称密钥 对称密钥加密,又称私钥加密,即信息的发送方和接收方用一个密钥去加密和解密数据.它的最大优势是加/解密速度快,适合于对大数据量进行加密,但密钥管理困难. 非对称密钥加 ...

  2. 对称加密算法(AES加密)以及对称算法与非对称算法的对比

    概述 对称加密算法就是传统的用一个密码进行加密和解密.例如,我们常用的WinZIP 和WinRAR对压缩包的加密和解密,就是使用对称加密算法:         从程序的角度着,所谓加密,就是这样一个函 ...

  3. java判断对称素数_SM2非对称算法的原理及实现 Java SM2的代码案例 | 一生孤注掷温柔 | 小奋斗...

    SM2椭圆曲线公钥密码算法:我国自主知识产权的商用密码算法,是ECC(Elliptic Curve Cryptosystem)算法的一种,基于椭圆曲线离散对数问题,计算复杂度是指数级,求解难度较大,同 ...

  4. 对称非对称算法混合加密实战(DES和AES混合加密)

    最近需要用加密算法,开始研究加密算法,果然大学落下的需要全都补回来.泪奔啊! 网上找各种资料,看别人的原理解释看了了很多,使用非对称算法和对称算法混合加密在实际项目中是经常用的,但原理听的差不多,没有 ...

  5. 【密码算法 之零】对称算法(DES,、3DES、 AES、DM5、HMAC、CMAC、SHAxx、SM3、SM4),非对称算法(RSA、ECC、ECDSA、ECDH、SM2、SM9...)

      由于工作的需要,在过去的两年中学习.适配了很多算法,包括对称算法.非对称算法.国密算法.国际算法等.为了逼迫自己能够牢记并掌握这些算法的基本知识点,故本人写了一个关于算法的专栏(持续更新中...) ...

  6. 面试题——对称加密和非对称加密

    面试题高频:https和http的区别,对称加密和非对称加密的了解. http 概念 http协议是应用层的协议,又称:超文本传输协议(Hypertext transfer protocal),是浏览 ...

  7. 对称加密、非对称加密和散列算法

    一.什么是对称加密技术? 对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥.信息接收双方都需事先知道密匙和加解密算法,且其密匙是相同的,之后便是对数据进行加解密了.对称加密算法用 ...

  8. 数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)...

    2019独角兽企业重金招聘Python工程师标准>>> 数字签名是什么? 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥. 2. 鲍勃把公钥送给他的朋友们----帕蒂.道格.苏珊-- ...

  9. 数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)

    数字签名是什么? 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥. 2. 鲍勃把公钥送给他的朋友们--帕蒂.道格.苏珊--每人一把. 3. 苏珊给鲍勃写信,写完后用鲍勃的公钥加密,达到保密的效果. 4 ...

最新文章

  1. 顶会「扩招」,一地鸡毛:ICLR2020近半数审稿人未发过相关论文
  2. python线程同步锁_Python实现的多线程同步与互斥锁功能示例
  3. bzoj4514[Sdoi2016]数字配对
  4. linux安装icc步骤,怎麼安装不到 icc?
  5. android 拍照屏幕大小,Android Camera 找出屏幕的最佳尺寸大小
  6. HTML 元素和属性--备份
  7. 家族关系查询系统程序设计算法思路_七大查找算法(附C语言代码实现)
  8. navicat链接mysql
  9. 笔记:HPlus模板 单选框
  10. 9 个免费的程序员在线简历制作工具
  11. 视觉slam直接法,特征点法
  12. Python爬懂车帝的图片-代码
  13. 显示远程计算机或设备将不接受连接的解决办法
  14. 解压apk后各文件夹含义
  15. Smarty核心内容:Smarty基本安装与调试
  16. python 计算相关性系数np.corrcoef()
  17. 新车提车注意事项准备工作
  18. 基于零代码搭建你自己的设备管理系统
  19. 操作系统和网络(七):linux硬件基础知识
  20. P1319 压缩技术

热门文章

  1. 取代 JavaScript!Python 成 Stack Overflow 最受质疑编程语言
  2. AIAR 应用的高效开发,OPPO 技术开放日第三期圆满落幕!
  3. @程序员,使用了 SQL 就不能用 DevOps?
  4. 都说 VR 开发坑太多,结果华为云 5G Cloud VR 放了个大招儿!
  5. 5G 兴起、智能手机饱和、AI 普及......2019 年的科技趋势预测
  6. Python 的低性能问题是无法忽视的
  7. 计算机维修与销售探讨,《计算机维修与维护》面向市场教学的探讨.pdf
  8. java删_JAVA删除文件夹
  9. 如何避免可怕的中年危机?看完这篇彻底明白了
  10. IDEA 创建 MAVEN 父子工程