分享_区块链知识之课堂三(下篇):必须了解的密码学_广告贴
学习.交流
专业源于专注
www. onlyit. cn   
学习交流 文件下载 手册资料 交流QQ群

    

 1  1/1   1  
作者
内容
阳光暖心  [个人空间]
QQ名  阳光暖心


注册  2018-01-06
发贴数  31
精华数  0
原创贴  0
来自  福建
状态  正常

级别  会员
#1»发布于2018-04-04 12:48

区块链知识之课堂三(下篇):必须了解的密码学 
『转载-铂链 Bottos 文案组 忆忆 原创』 
引言:在上篇揭秘了密码学后,本篇将介绍密码学中基础概念和算法,例如对称加密、非对称加密和hash算法等,让读者明白这些在说到区块链或者密码学时最常听到的算法。 
 
作者君在上篇提到过,密码学,作为研究如何隐秘地传递信息的学科,其首要目的并不是隐藏信息的存在,而是隐藏信息的含义。因此,密码学一般分为两个方向,即研究编制密码学和破译密码。 
1)编码学:研究密码变化的客观规律,应用于编制密码以保守通信秘密; 
2)破译学:研究密码变化的客观规律,应用于破译密码以获取通信情报。 
从上述的字面意思可以了解到,编码学就是将原始信息进行变化,让其他人即使拿到了传递的信息,也无法明白其想表达含义。而破译学则是在获得传递信息后,对信息进行分析,获得破解的方法,从而明白信息的原始想表达的含义。 
  
图1 神秘密码学(图片来自百度) 
编码学和破译学相互制约相互促进,从而推动密码学的发展。下面,作者君为介绍最常听到的一些密码学词汇及密码学算法。 
(一)常见密码学词汇 
不管是在区块链,还是在交流虚拟币钱包,或者是生活中,读者们应该会说到密钥,也就是所谓的密码,还有类似于明文、密文等词汇,读者一一对这些词汇进行解释。 
(1)密钥:生活中,很多人都活说成密码,例如钱包密码、手机密码等。密钥分为两种类型,即加密密钥和解密密钥。 
(2)明文:没有进行加密,可以直接代表原含义的信息。 
(3)密文:经过加密处理后,隐藏原含义的信息。 
(4)加密:明文转换成密文的实施过程。 
(5)解密:密文转换成明文的实施过程。 
(6)密码算法:密码系统采用的加密方法和解密方法。 
值得注意的是,一般情况下,密码算法是公开的,需要保密的是密钥,若密钥丢失,对应使用该密码的信息则被他人获取。以电视剧《潜伏》为例,男主角每次通过电报机收到摩斯密码,通过对应的摩斯密码表译出对应的数字,再找到书,利用这些数字找到书中第几页第几行的汉字,将所有数字译成汉字,这些汉字就是信息原始想表达的含义。 
将上述解释的词汇一一对应,原始想传递的信息为明文,将这些汉字替换成书中页码、行数和列数,也就是将汉字变换成数字,再利用摩斯密码通过电报机进行传输这些数字,因此,最后传输的摩斯密码为密文,采用的密码算法为置换密码,而对应的密钥就是那本书,若被其他人知道了那本书,则明文就被他人知晓。 
当然,上述的例子中将书比喻为密钥是为了更好地让读者理解,实际生活中说的密码算法都是现代密码学说的对称密码算法、非对称密码算法等。 
(二)常见密码学算法 
由于密码学算法较多,本篇只对一些常见的算法进行概要说明,让读者们更好地了解。 
(1)Hash算法 
Hash算法应该是链圈或者币圈人士听到最多的算法,读者君首先对其进行介绍。Hash算法,也称为单向散列函数、杂凑函数、哈希函数、散列算法或消息摘要算法。用比较书面的解释,Hash算法通过一个单向数学函数应用于数据,将任意长度的数据转换为一个定长的、不可逆转的数据。 
或许上述的解释,很多没有基础知识的读者依旧看不懂,更直白的说法:将一系列数据变换成一串固定长度数据的过程。该过程就是通过hash算法计算hash值,得到的固定长度的数据就是hash值。 
  
图2 图示hash算法 
Hash算法是单向的,也就是最后得到的hash值是无法反推出原始的数据,这就是hash算法的单向性。因此,安全的hash算法必须具备三个特性,分别为: 
1)单向性:知道一个原始数据m,计算m的hash值很简单,但是若知道m的hash值,反推m是困难的。 
2)弱碰撞自由:给定一个数据x,需要找到另外一个数据y,满足x的hash值和y的hash值相等,是困难的。 
3)强碰撞自由:寻找两个不同的数据x和y,满足x的hash值和y的hash值相等,是困难的。 
(2)对称密码算法 
所谓对称密码算法,就是密码算法中使用的加密密钥和解密密钥相同。如图3所示,信息加密成密文时使用的密钥和密文解密时使用的密钥相同。例如常见的DES就是一种分组对称加密算法,国密sm1 算法是由国家密码管理局编制的一种商用密码分组标准对称算法。 
  
图3 对称密码算法 
(3)非对称加密算法 
与对称加密算法对应的就是非对称加密算法,非对称加密算法很好了解,就是加密密钥和解密密钥不相同。在非对称加密算法中,一般都是使用公钥和私钥来说明,其中公钥是公开的密钥,而私钥是需要安全保存的密钥。 
  
图4 加密数据 
如图4所示,表示的是利用非对称密码算法对信息加密的过程,若Alice想发信息给Bob,在信息进行加密时她会利用Bob的公钥,得到密文后再发生给Bob。Bob得到密文后使用自己的私钥进行解密获得明文。该过程可以保证加密数据的机密性,只要其他人没有Bob的私钥,就无法获得原始信息。 
  
图5 数字签名 
如图5所示,表示的是利用非对称密码算法对信息进行数字签名,保证信息的是由发送者发出。Alice利用自己的私钥对信息进行签名,再发送给接受者。接受者收到签名的信息,利用Alice的公钥进行验证,就可以证明该信息是由Alice发送。 
需要注意的是,加密过程中,公钥是用来加密,私钥用来解密;数字签名过程中,私钥用来签名,公钥用来验证。上述说法才是专业且正确的表达方式。 
 
以上就是本节课上篇的内容,由于篇幅限制,只是概述了密码学的常见词汇和算法。若读者有任何问题或者疑问,欢迎大家指正。 
经过课堂三的密码学知识普及,第四节课作者君会介绍密码学与区块链之间的关系,其中会涉及到私钥、公钥和地址之间的联系、钱包哪些信息可以公开等等内容。如果读者有什么疑问或者希望作者君重点讲解哪些内容,可以留言提出,作者君会积极采纳各位的意见。 
 
附言:智能掌控未来,铂链链接世界。你我一起,携手铂链,推动人能智能行业发展。若有想法交流或者对作者君有意见,欢迎加入粉丝群QQ交流群:310492335。


        



 1  1/1   1  

登录后方可发贴


[ 电话: 0571-85462761 王先生 QQ: 124520435 加入软件QQ群 - 杭州 - 浙ICP备19051128号-1 网安 33010402003225 ]