加密那点事

加密那点事加密是个神奇而古老的技术,被应用于战争、贸易等场景,而最近的炙手可热的比特币和区块链技术又让某些极为小众的计算机专业领域的加密技术进入大家视野,例如HASH、非对称加密算法RSA这些关键词。数据加密在区块链…

大家好,又见面了,我是你们的朋友全栈君。



加密那点事

 

加密是个神奇而古老的技术,被应用于战争、贸易等场景,而最近的炙手可热的比特币和区块链技术又让某些极为小众的计算机专业领域的加密技术进入大家视野,例如HASH、非对称加密算法RSA这些关键词。

数据加密在区块链技术实现里面起到至关重要的作用,可以说没有加密技术对交易信息安全的保证,就没有区块链被广泛使用的可能性,而用到的具体的加密技术就是诞生与19世纪70年代的非对称加密算法:RSA,由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出,RSA是他们三人姓氏开头字母的拼写
(发现西方人很喜欢用名字命名其工作成果,例如笛卡尔、牛顿、冯诺依曼架构等多如牛毛,而国人更愿意用概念和功能来命名)。

接下来咱们聊聊什么是加密,如何加密和发展过程。

首先,大概大家都知道为什么要加密,那我们来梳理总结一下,通常我们希望我们的信息安全,需要做到哪几点?

  1. 信息传输过程中不会被泄露(被人截取后破解)
  2. 信息在传输过程中不被篡改(例如雍正十四改成第四)
  3. 信息归属身份证明(你真的是你,这个信息真的是来自组织的吗?),以及防抵赖

总结完以后,细想一下是不是发现,单靠一个加密是无法同时解决以上几个问题呢?
是的,加密其实只能解决第一项,防泄露,而要想同时解决以上三个问题,就得把PKI(Public Key Infrastructure,公开密钥基础设施规范)抬出来一起说道说道了。

我们知道了要保证信息安全和信息可信,就要同时解决上面提到的三个问题,那就来看看从古至今,是如何通过技术的发展一步步做到的。

1,如何防泄漏?

答案是加密!

对称加密

算法+原文+秘钥=密文,同样,正确的使用 算法+密文+秘钥 就能够得到原文。

如图:

 
加密那点事

 

这就是传说中的 对称加密,其实很好理解,加密、解密用的同一套密钥就是对称加密法。
解密是个逆向过程,也需要用到同样的算法和密文,所以要求双方需都要做好算法和秘钥的保护措施,被别人知道其中之一,密文就可能被破解。

所以说,我们现在明白战争时期的那个密码本是多么的重要,为了它不惜牺牲几条姓名,但其实你明白它的重要性以后,就可以理解了,万一泄露了密码本,敌人就可能通过截取的密文和密码本推算出原文,还记得电影《风声》中的剧情吗,是不是很残酷?
因此,对称加密要求双方都要保护好这个密钥,绝对不能泄露,真的是鸭梨山大呀,所以多方信息传输的成本和代价非常高。

而对称加密法比较典型的算法有DES(Data Encryption Standard[数据加密标准])。

非对称加密

整个过程是:算法+原文+公钥/私钥=密文、算法+密文+公钥/私钥=原文,如图:

 
加密那点事

 

(注意,公钥加密,私钥解密;反之,私钥加密,公钥解密)
前面说到大家保护密码本(密钥)常常会付出了血的代价,即使在和平年代也是非常不安全的,因此,一些专家就想出了更为精妙的想法,那就是所谓的非对称加密法,(一些事实被抽象和包装出一些概念以后往往会增加理解的成本甚至误导),非对称指的是俩头用的密钥不对称,而不是其他。

所以,为了降低保存密钥的负担,发明了非对称加密,算法是公开的,有俩把钥匙,一把钥匙公开,另一把私有,所以称为非对称,通常一方只要把私钥保存好基本上就万事大吉了。

详细的工作流程:

 
加密那点事

 

 

这个过程是,对方要想给你写加密信,只需要用你的公钥把原文加密发出去,不怕别人截取,因为他没有私钥,只有你能解开,反之也是一样的,只要对方把自己的私钥保护好,信息就不会泄露和破解,相对于对称加密的双方都要保护密钥安全多了。
另外,这里的公钥和私钥理论上通常没有明确定义之间的不同,只是在使用上做了人为的区分,本身是相通的,私钥加密也可以用公钥解开,有一些特殊场景做了区别处理的对待,这里不做讨论。

2,如何防篡改(十四改成第四)

答案是签名(摘要+密钥加密)

原文 -> HASH ->密钥加密 = 签名

你写了一篇文章,如何确保它在传播过程中不被别人修改呢?

或者在比特币中的应用,“小花借了小明5元”,万一被小明改成50元?

办法是,我们可以对这句话或文章进行签名,就是要在你说的那句话上加上你的唯一标记。
签名的内容其实也是一个加密后的结果,简单的来说就是非对称加密的另一种用途,
过程是,一方用私钥和文章加密生成一个东西叫签名,然后把这个签名和文章一同发出去,
收到的一方用公钥解开你发过来的签名,得到原文,然后和发过来的文章内容进行比对,看是否相同,就知道文章有没有被篡改了。

通常分为以下的三个步骤:

  1. 为了使签名的内容不至于太大,往往会从原文章中提取部分关键内容,作为签名的原文,一般是文章的HASH值,得到一个摘要
  2. 用自己的私钥对摘要加密(当然你也可以省掉第一个步骤,直接在原文上加密,只是内容太大,不方便传输和校验)得到签名
  3. 把签名(signature)附在原文上一同发出去。

例如下图,上面是原文,下面是签名:

 
加密那点事

 

对方收到以后,也是三个步骤校验:

  1. 对文本进行HASH计算,得到摘要;
  2. 用你的公钥解开这个signature(如果别人改了这个signature,用你的公钥就无法解开了),得到加密前的摘要内容;
  3. 比对俩个摘要的内容,就真相大白了。

这是非对称加密的另一个使用场景,防篡改,而非对称法的典型实现算法就是本文开头说到的RSA加密算法。

3,身份证明(如何证明我收到的是对的那个人或机构发给我的呢?)

答案是找个靠谱的机构做背书

 
加密那点事

 

说白了,不管什么加密方式,解决都是信息本身的安全问题,单独并不能解决信任问题,必须要有独立第三方出来提供证据。
例如上图,是一个基于RSA非对称加密的Https网站和用户交互流程图,整个过程核心任务是交换加密协议,建立安全信道,但对方是谁,彼此是无法得知的,因为信任关系不是个技术问题,这时候就需要一个权威机构出来说话了,辨别真假美猴王!

这个机构通常是”证书中心”(certificate authority,简称CA),例如中国金融认证中心(CFCA),给Https网站颁发证书,在你拿到对方公钥的时候,里面会包含CA发行机构的标识,你可以对其进行校验,当然,浏览通常会做这个校验,没有通过可能是李鬼而不是你要找的李逵。

如果是个网站,会与本地证书管理器安装的证书列表进行比对,查看是否包含在内,如果没有出现,浏览器会告诉你,这个网站十有八九不可靠。

最后

我们开头提到的PKI,就是以上三者的完整结合,就是PKI公开密钥基础设施规范的基本内容,通过PKI来保证信息传输的保密性、完整性、身份的真实性和抗抵赖。

前人栽树,后人乘凉,我们在享受各种技术带来的便利的同时,也不要忘记曾经为之努力过的前辈们,感谢他们,让我们生活在信息相对安全的环境下,放心的在网上交换重要的信息,甚至金钱交易网络支付等!

参考

  1. https://www.ubisecure.com/iot/cryptographic-identities-for-devices/
  2. http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html
  3. https://blog.cloudflare.com/keyless-ssl-the-nitty-gritty-technical-details/

 

转载于:https://www.cnblogs.com/xguo/p/10503860.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136467.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 什么是反射机制?_java的反射是如何实现的

    什么是反射机制?_java的反射是如何实现的   Java反射学习步骤:1、 什么是反射机制?2、 获取字节码文件对象(class)3、 (Consrtuctor)用字节码对象(class)new一个对象4、 获取和设置字段(Field)对象的值5、获取指定class的函数(Method)并对其调用6、反射实例什么是反射机制?说全:Java反射机制是在运行状态中,对于任意一个类(Class文件),都能够知道这个类的属性和方法;  …

    2025年7月1日
    0
  • Ubuntu 卸载 postgresql「建议收藏」

    Ubuntu 卸载 postgresql「建议收藏」文章目录Ubuntu卸载postgresqlUbuntu卸载postgresql删除相关安装sudoapt-get–purgeremovepostgresql\*删除配置及相关文件sudorm-r/etc/postgresql/sudorm-r/etc/postgresql-common/sudorm-r/var/lib/postgresql/删除用户和所有组sudouserdel-rpostgressudogroupdelp

    2022年5月7日
    543
  • 【知识点】贴片电阻电容命名和封装「建议收藏」

    【知识点】贴片电阻电容命名和封装「建议收藏」常见的标准零件件主要有以下几种:电阻(R)、排阻(RA或RN)、电感(L)、陶瓷电容(C)、排容(CP)、钽质电容(C)、二极管(D)、晶体管(Q)。一、零件规格:零件规格即零件的外形尺寸,SMT(表面封装技术)发展至今,业界已经形成了一个标准零件系列,各家零件供货商皆是按这一标准制造。标准零件之尺寸规格有英制与公制两种表示方法,参照下面的常见贴片电阻尺寸表(1inch=25.4mm=

    2022年8月21日
    5
  • 大数据要学javaweb吗_大数据用学JAVA吗?

    大数据要学javaweb吗_大数据用学JAVA吗?谢邀学大数据没有必要报专门的Java班.学习大数据之前确实要先学习一点Java的内容,因为大数据和Java不是完全分裂的,大数据的开发语言中最重要的一种就是Java.学习Java主要包括四大块:Java基础(JavaSE),JavaWeb,Java框架(JavaEE),Java项目,但是学习大数据只是用Java作为编程语言,只要学习Java基础(JavaSE)就够了,至于后面的三块儿内容可以先…

    2022年5月8日
    57
  • kali扫描工具_nmap批量扫描

    kali扫描工具_nmap批量扫描本片介绍的是Namp的LinuxKali操作系统下的使用,Nmap在Windows操作系统下的使用,点击文章===>https://blog.csdn.net/qq_41453285/article/details/98596828一、工具介绍功能概述:Nmap是主动扫描工具,用于对指定的主机进行扫描 历史背景:Nmap是由GordonLyon设计并实现的,与1997开始发布,最…

    2022年9月27日
    0
  • 一般试卷的纸张大小是多少_考试试卷用的是什么尺寸的纸

    一般试卷的纸张大小是多少_考试试卷用的是什么尺寸的纸展开全部考试试卷常用的是A3尺寸的纸。相当于A4纸的两倍,也就是俗称8开的纸。扩展资料:纸张的规格是指纸张制成后,经过636f70793231313335323631343130323136353331333365666136修整切边,裁成一定的尺寸。过去是以多少“开”(例如8开或16开等)来表示纸张的大小,如今我国采用国际标准,规定以A0、A1、A2、B1、B2……等标记来表示纸张的幅面…

    2022年6月20日
    131

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号