华为专家讲区块链(一)| 探索密码学的世界

论坛 期权论坛 期权     
IoT科技物语   2020-5-18 14:21   3577   0



又是周一啦,讲个好消息~给大家讲解过eMTC、NB-IoT、轻量协议(专栏内容点击公众号菜单栏「知识专栏」查看)的华为全球培训中心物联网专家ICE青将继续解析区块链系列内容(系列内容将更新在公众号菜单栏)。
很多人的区块链启蒙都是从比特币开始的,但是区块链也好,比特币也好,都是密码学的身影。因此,ICE青第一部分先把密码学讲透,然后讲比特币,比特币的很多原理都跟区块链是通的,接着引入到区块链技术并深入讲解,最后是区块链应用,这样的顺序来给来给大家讲解,希望大家有收获。、


今天先来探索密码学的世界。
什么是密码?什么是密写?侦探小说里面出现过,柯南探案里也提到过,生活中也用到过,动动脑筋,我们就可以走进密码学的世界。


“ 密码术(cryptography也叫密码学)是关于用密码写明文和解密码密文的一门技术学科。翻开任何国家的历史,总能看到密码术或其他形式的密写技术在其中起着至关重要的作用。


在当今世界中,政府和情报人员仍然必须使用密码方法来传递信息,各个大国同样必须设立密码分析工作组,时时刻刻,夜以继日地工作,试图破解其他国家使用的密码。


一、密码学阶段划分

来看看密码学的发展阶段,从而对这个古老神秘而有趣的行当有一个初步的认识和了解。


密码学按照其对算法和密钥的保密程度大致可以分为如下三个阶段:
  • 古典密码阶段(1949年前):在这个阶段算法和密钥都是保密的,密钥空间较小,信息的安全性主要依赖与对加密和解密算法的保密。
  • 对称密码阶段(1949-1975年):在这之后就进入到了现代密码学阶段,和古典密码阶段的主要区别在于加密和解密算法无需保密,信息的安全性主要依赖于对密钥的保密。需要解决的主要问题是在不可信信道下的密钥传输问题。
  • 公钥密码阶段(1976年-至今):在此阶段,加密密钥(公钥)可以公开,仅仅对解密密钥(私钥)保密,基于一些数学难题确保很难通过公钥堆出私钥。


古典密码学(Classic cryptography)和现代密码学(Moderncryptography)主要差别在于计算机的使用。一般来说,古典密码学是基于字符的,而现代密码学是基于二进制位的。


古典密码学主要采用了两种加密技术:置换与代换。
  • 置换是将明文中的字母重新排列,字母本身不变,但其位置改变,即位置转换。
  • 代换密码是将明文中的字符替代成其他字符,即替代转换,若整个加密过程中每个字符采用同一张表替代,则为单表代换密码,类似的,若整个加密过程中每个字符采用不同的表替代,则为多表代换密码。


我们现在来看看这些有趣的密码术。


二、换位加密术
[h1]栅栏密码(Rail fence cipher)属于换位加密术的一种,即明文本身的字母不变,只是相互之间变换位置。[/h1][h1]
[/h1][h1]顾名思义,栅栏密码在加密时,将明文以蛇形依次错位写在一个假想的栅栏的每一行(rail)上,到达栅栏底部后折返向上,到达栅栏顶部后折返向下,如此反复直到所有明文结束。最后,将栅栏上的文字逐行依次取出即得到密文。[/h1][h1]
[/h1][h1]而解密时,根据栅栏高度计算出第一行栅栏的字母间隔,再将密文按此间隔及错位依次在每行上写下来,最后以蛇形重组即是明文。但更简单的方法,是直接根据栅栏高度及密文长度,画出明文的蛇形表格(栅栏高度为表格行数,密文长度为表格列数),再将密文逐行逐个填入蛇形的空格中。但对中文来说,栅栏密码的加密强度会大大减弱。
[/h1]

加密实例: 以4栏栅栏加密为例
明文:defend the east wall of the castle
去空格:defendtheeastwallofthecastle
分组:defe ndth eeas twal loft heca stle
填表格:4*28

密文:dttfsedhswotatfneaalhcleelee


曲路密码 (Curve Cipher)是一种换位密码,需要事先双方约定密钥(即曲路路径)。
加密实例:
约定密钥曲路路径:5 * 7
明文:The quick brown fox jumps over the lazy dog
填表:


加密回路:


密文:gesfcinphodtmwuqouryzejrehbxvalookT



列位移密(Columnar Transposition Cipher)是一种比较简单,易于实现的换位密码,通过一个简单的规则将明文打乱混合成密文。


加密实例:
明文:defend the east wall of the castle
约定:5*6 不足的部分用x填充
密钥:GERMAN
加密列移位:


密文:nalcxehwttdttfseeleedsoaxfeahl


三、替换加密术
[h1]猪圈密码(Pigpen Cipher)或称九宫格密码、朱高密码、共济会密码或共济会员密码),是一种以格子为基础的简单替代式密码。
[/h1]

加密实例:
明文字母对应密文:




明文:Everyone thinks will always be far

密文:




波利比奥斯方阵密码(Polybius Square Cipher或称波利比奥斯棋盘)是棋盘密码的一种,是利用波利比奥斯方阵进行加密的密码方式,产生于公元前两世纪的希腊,相传是世界上最早的一种密码。简单的来说就是把字母排列好,用坐标(行列)的形式表现出来。字母是密文,明文便是字母的坐标。

常见排布方式:





加密实例:
明文:Life is like an ice cream
密文:1342125142341342525111334231513124511123


夏多密码(曲折密码)是作者麦克斯韦·格兰特在中篇小说《死亡之链》塑造夏多这一英雄人物中所自创的密码。
明文字母对应密文:注意,字母表密钥的底部,列有四个附加符号1,2,3,4。四個图案很像钟表的指針,他们可以放在密文中的任何地方。每个附加符号指示,如何转动写有密文的纸张,再进行后续的加密或解密操作,直到出现另一个附加符号。可以把每个附加符号中的那根线看作是指示针,它指示了纸张的上端朝上,朝右,朝下,朝左。比如说:如果出现符号3,那么纸张就应该转动180度,使其上端朝下;符号2表示纸张上端朝右,依次类推。






明文:I AM IN DANGER.SEND HELP
密文:




培根密码(Baconian Cipher)是一种代换的单表密码,每个明文字母被一个由5字符组成的序列替换,最初的加密方式就是由’A’和’B’组成序列替换明文(所以你当然也可以用别的字母),比如字母’D’替换成”aaabb”,以下转换表:




明文:hello
密文:AABBBAABAAABABBABABBABBBA


维吉尼亚密码(Vigenère Cipher)是在单一恺撒密码的基础上扩展出多表代换密码,根据密钥(当密钥长度小于明文长度时可以循环使用)来决定用哪一行的密表来进行替换,以此来对抗字频统计。
密表:




明文:I'm waiting for you in the future
密钥(循环使用,密钥越长相对破解难度越大):helloworld
密文:P'qhlwpwejmscjcqwewoiqfhqfv


四、其他-机械密码

[h1]恩尼格码密码又称为转子机密码,Enigma加密和解密需要一台类似打字机的设备,设定初始位置之后,通过输入明文,设备经过加密输出密文。解密时通过机械装置的切换,实现逆过程解密操作,输入密文,输出明文。Enigma加密设备由一系列独立转动的圆柱体组成。每个圆柱体有26个输入引脚和26个输出引脚,其内部连线将每个输入引脚连接到一个相应的输出引脚。如下图:
[/h1]





当增加圆柱体的数量,可以得到更复杂的多字母替代算法。下图中的三个转子分别为快速转子,中速转子和慢速转子。每输入一个明文字母,快速转子动一格;快速转子转动够一周,中速转子转动一格;中速转子转动够一周,慢速转子转动一格,得到26×26×26种不同的替代字母,密码强度就会大大提高。尽管二战时期恩尼格玛密码机在加密方面有不足之处,但是经它加密的文件还是很难破译的,盟军能够破译它的密码是因为德军犯了其它一些大的错误(如加密员的失误、指示器步骤存在严重缺陷情报的泄露、机器或密码本被缴获等等)。





[h1]
[/h1]五、结束语
其实还有多种古典密码算法,我们就不一一叙述了。古典密码学在如今看来也是十分巧妙的,但随着计算机的诞生,这些被称为古典密码学的方法全部失效,因为它们根本抵挡不住计算机的穷举分析。现代密码学的思路跟古典密码学非常不同,它是先找出一个数学难题,然后把加密方法归结到这个难题,若解不出这个数学难题就破解不了他的密码。现代密码学更加引人入胜,我们下一期慢慢道来。



分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP