密码学浅析
摘要:
[密码学历史][简单密码][密码学前瞻]
关键词:【编码学】;【破译学】;【对称密码系统】;【非对称密码系统】
目录:
一、 引言
- 什么是密码学
- 密码学发展历史
- 站在时代的前端——现代密码系统
二、 几种简单的密码分析 - 维吉尼亚密码
- 凯撒密码
- 栅栏加密法
- 朱高密码
- RSA算法
- ECC加密法
- 四方密码
- 替换加密法
- 波雷费密码
- RC5算法
- ADFGVX密码
- 希尔密码
- 维热纳尔方阵
- 埃特巴什码
三、 破译学简析
四、 密码学与区块链相关性分析
五、 密码学之于人类的意义
一、 引言
- 什么是密码学
2020年4月16日,中国人民银行数字货币首个应用场景在苏州相城区落地,这标志着去中心化的逐步增强以及密码学的进一步应用与实践。
那么密码学究竟是什么什么上至中央银行的金融流通,下至普通老百姓的电子货币,都能在密码学的华盖擎障之下数十年地蓬勃生长br> “打蛇打七寸”,要了解上述问题,我们首先要理解什么是密码学。
密码学一词源于希腊语kryptós“隐藏的”,和gráphein“书写”,是研究编制密码和破译密码的技术科学。密码学分为两个大类:编码学和破译学。编码学是研究密码变化的客观规律,应用编制密码以保守通信秘密;破译学则是应用于破译密码以获取通信情 的学科。两者统称密码学。
密码是通信双方按照约定的法则进行特殊信息变换的一种重要的保密手段。依照这些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。密码在早期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据等都可实施加、脱密变换。
进行明密变换的法则,称为密码的体制。指示这种变换的参数,称为密钥。它们是密码编制的重要组成部分。密码体制的基本类型可以分为四种:错乱--按照规定的图形和线路,改变明文字母或数码等的位置成为密文;代替--用一个或多个代替表将明文字母或数码等代替为密文;密本--用预先编定的字母或数字密码组,代替一定的词组单词等变明文为密文;加乱--用有限元素组成的一串序列作为乱数,按规定的算法,同明文序列相结合变成密文。以上四种密码体制,既可单独使用,也可混合使用 ,以编制出各种复杂度很高的实用密码。 - 密码学发展历史
密码学作为一项技术由来已久,其历史可以追溯到公元前400年,斯巴达人发明了“塞塔式密码”,即把长条纸螺旋形地斜绕在一个多棱棒上,将文字沿棒的水平方向从左到右书写,写一个字旋转一下,写完一行再另起一行从左到右写,直到写完。解下来后,纸条上的文字消息杂乱无章、无法理解,这就是密文,但将它绕在另一个同等尺寸的棒子上后,就能看到原始的消息。这是最早的密码技术。
密码形成一门新的学科是在20世纪70年代,这是受计算机科学蓬勃发展刺激和推动的结果。快速电子计算机和现代数学方法一方面为加密技术提供了新的概念和工具,另一方面也给破译者提供了有力武器。计算机和电子学时代的到来给密码设计者带来了前所未有的自由,他们可以轻易地摆脱原先用铅笔和纸进行手工设计时易犯的错误,也不用再面对用电子机械方式实现的密码机的高额费用。
Arthur Scherbius于1919年设计出了历史上最著名的密码机—德国的Enigma机,,在二次世界大战期间, Enigma曾作为德国陆、海、空三军最高级密码机。Enigma机使用了3个正规轮和1个反射轮。这使得英军从1942年2月到12月都没能解读出德国潜艇发出的信 。转轮密码机的使用大大提高了密码加密速度,但由于密钥量有限,到二战中后期时,引出了一场关于加密与破译的对抗。首先是波兰人利用德军电 中前几个字母的重复出现,破解了早期的Enigma密码机,而后又将破译的方法告诉了法国人和英国人。英国人在计算机理论之父——图灵的带领下,通过寻找德国人在密钥选择上的失误,并成功夺取德军的部分密码本,获得密钥,以及进行选择明文攻击等等手段,破解出相当多非常重要的德军情 。
这一阶段真正开始源于香农在20世纪40年代末发表的一系列 论文,特别是1949年的《保密系统通信理论》,把已有数千年历史的密码学推向了基于信息论的科学轨道。近代密码发展中一个重要突破是“数据加密标准”(DES)的出现。DES密码的意义在于,首先,其出现使密码学得以从政府走向民间,其设计主要由IBM公司完成,国家安全局等政府部门只是参与其中,最终经美国国家标准局公开征集遴选后,确定为联邦信息处理标准。其次,DES密码设计中的很多思想(Feistel结构、S盒等),被后来大多数分组密码所采用。再次,DES出现之后,不仅在美国联邦部门中使用,而且风行世界,并在金融等商业领域广泛使用。
1976 年,美国密码学家提出“公钥密码”概念。此类密码中加密和解密使用不同的密钥,其中,用于加密的叫做公钥,用于解密的为私钥。1977年,美国麻省理工学院提出第一个公钥加密算法RSA算法,之后ElGamal、椭圆曲线、双线性对等公钥密码相继被提出,密码学真正进入了一个新的发展时期。一般来说,公钥密码的安全性由相应数学问题在计算机上的难解性来保证,以广为使用的RSA算法为例,它的安全性是建立在大整数素因子分解在计算机上的困难性,如,对于整数22,我们易于发现它可以分解为2和11两个素数相乘,但对于一个500位的整数,即使采用相应算法,也要很长时间才能完成分解。但随着计算能力的不断增强和因子分解算法的不断改进,特别是量子计算机的发展,公钥密码安全性也渐渐受到威胁。目前,研究者们开始关注量子密码、格密码等抗量子算法的密码,后量子密码等前沿密码技术逐步成为研究热点。 - 站在时代的前端——现代密码技术
现代密码系统分为两类:对称密码系统和非对称密码系统(公 钥)。对称密码系统加密和解密使用同一个密钥。非对称密码系统加密和解密密钥不同。
常见的对称密码系统有古典密码、分组密码、序列密码等等;常见的非对称密码有RSA算法、椭圆曲线算法等等。
7.四方密码
四方密码用4个5×5的矩阵来加密。每个矩阵都有25个字母(通常会取消Q或将I,J视作同一样,或改进为6×6的矩阵,加入10个数字)。 首先选择两个英文字作密匙,例如example和keyword。对于每一个密匙,将重复出现的字母去除,即example要转成exampl,然后将每个字母顺序放入矩阵,再将余下的字母顺序放入矩阵,便得出加密矩阵。 将这两个加密矩阵放在右上角和左下角,余下的两个角放a到z顺序的矩阵:a b c d e E X A M P f g h i j L B C D F k l m n o G H I J K p r s t u N O R S T v w x y z U V W Y Z K E Y WO a b c d e R D A BC f g h i j F G H I J k l m n o L M N P S p r s t u T U V X Z v w x y z 加密的步骤: 两个字母一组地分开讯息:(例如hello world变成he ll ow or ld) 找出第一个字母在左上角矩阵的位置 a b c d e E X A M P f g h i j L B C D F k l m n o G H I J K p r s t u N O R S T v w x y z U V W Y Z K E Y W O a b c d e R D A B C f g h i j F G H I J k l m n o L M N P S p r s t u T U V X Z v w x y z 同样道理,找第二个字母在右下角矩阵的位置: a b c d e E X A M P f g h i j L B C D F k l m n o G H I J K p r s t u N O R S T v w x y z U V W Y Z K E Y W O a b c d e R D A B C f g h i j F G H I J k l m n o L M N P S p r s t u T U V X Z v w x y z 找右上角矩阵中,和第一个字母同行,第二个字母同列的字母: a b c d e E X A M P f g h i j L B C D F k l m n o G H I J K p r s t u NO R S T v w x y z U V W Y Z K E Y W O a b c d e R D A B C f g h i j F G H I J k l m n o L M N P S p r s t u T U V X Z v w x y z 找左下角矩阵中,和第一个字母同列,第二个字母同行的字母: a b c d e E X A M P f g h i j L B C D F k l m n o G H I J K p r s t u N O R S T v w x y z U V W Y Z K E Y W O a b c d e R D A B C f g h i j F G H I J k l m n o L M N P S p r s t u T U V X Z v w x y z 这两个字母就是加密过的讯息。 he lp me ob iw an ke no bi的加密结果: FY GM KY HO BX MF KK KI MD 二方密码 二方密码(en:Two-square_cipher)比四方密码用更少的矩阵。 得出加密矩阵的方法和四方密码一样。 例如用「example」和「keyword」作密匙,加密lp。首先找出第一个字母(L)在上方矩阵的位置,再找出第二个字母(D)在下方矩阵的位置: E X A M P L B C D F G H I J K N O R S T U V W Y Z K E Y W O R D A B C F G H I J L M N P S T U V X Z 在上方矩阵找第一个字母同行,第二个字母同列的字母;在下方矩阵找第一个字母同列,第二个字母同行的字母,那两个字母就是加密的结果: E X A M P L B C D F G H I J K N O R S T U V W Y Z K E Y W O R D A B C F G H I J L M N P S T U V X Z help me的加密结果: he lp me HE DL XW 这种加密法的弱点是若两个字同列,便采用原来的字母,例如he便加密作HE。约有二成的内容都因此而暴露。
8.替换加密法
用一个字符替换另一个字符的加密方法。 换位加密法: 重 新排列明文中的字母位置的加密法。 回转轮加密法: 一种多码加密法,它是用多个回转轮,每个回转轮实现单码加密。这些回转轮可以组合在一起,在每个字母加密后产生一种新的替换模式。 多码加密法: 一种加密法,其替换形式是:可以用多个字母来替换明文中的一个字母。 夹带法: 通过隐藏消息的存在来隐藏消息的方法。 三分密码 首先随意制造一个3个3×3的Polybius方格替代密码,包括26个英文字母和一个符 。然后写出要加密的讯息的三维坐标。讯息和坐标四个一列排起,再顺序取横行的数字,三个一组分开,将这三个数字当成坐标,找出对应的字母,便得到密文。 仿射密码 仿射密码是一种替换密码。它是一个字母对一个字母的。 它的加密函数是e(x)=ax+b(mod m),其中 a和m互质。 m是字母的数目。 译码函数是d(x)=a^(x-b)(mod m),其中a^是a在M群的乘法逆元.
9.波雷费密码
(1)选取一个英文字作密匙。除去重复出现的字母。将密匙的字母逐个逐个加入5×5的矩阵内,剩下的空间将未加入的英文字母依a-z的顺序加入。(将Q去除,或将I和J视作同一字。)
(2)将要加密的讯息分成两个一组。若组内的字母相同,将X(或Q)加到该组的第一个字母后,重新分组。若剩下一个字,也加入X字。
(3)在每组中,找出两个字母在矩阵中的地方。 若两个字母不同行也不同列,在矩阵中找出另外两个字母,使这四个字母成为一个长方形的四个角。 若两个字母同行,取这两个字母右方的字母(若字母在最右方则取最左方的字母)。 若两个字母同列,取这两个字母下方的字母(若字母在最下方则取最上方的字母)。 新找到的两个字母就是原本的两个字母加密的结果。
11.ADFGVX密码
假设我们需要发送明文讯息 “Attack at once”, 用一套秘密混杂的字母表填满 Polybius 方格,像是这样: A D F G X A b t a l p D d h o z k F q f v s n G g j c u x X m r e w y i 和 j 视为同个字,使字母数量符合 5 × 5 格。之所以选择这五个字母,是因为它们译成摩斯密码时不容易混淆,可以降低传输错误的机率。使用这个方格,找出明文字母在这个方格的位置,再以那个字母所在的栏名称和列名称代替这个字母。可将该讯息可以转换成处理过的分解形式。 A T T A C K A T O N C E AF AD AD AF GF DX AF AD DF FX GF XF 下一步,利用一个移位钥匙加密。假设钥匙字是「CARGO」,将之写在新格子的第一列。再将上一阶段的密码文一列一列写进新方格里。 C A R G O _________ A F A D A D A F G F D X A F A D D F F X G F X F X 最后,按照钥匙字字母顺序「ACGOR」依次抄下该字下整行讯息,形成新密文。如下: FAXDF ADDDG DGFFF AFAXX AFAFX 在实际应用中,移位钥匙字通常有两打字符那么长,且分解钥匙和移位钥匙都是每天更换的。 ADFGVX 在 1918年 6月,再加入一个字 V 扩充。变成以 6 × 6 格共 36 个字符加密。这使得所有英文字母(不再将 I 和 J 视为同一个字)以及数字 0 到 9 都可混合使用。这次增改是因为以原来的加密法发送含有大量数字的简短信息有问题。
12.希尔密码
加密
例如:密钥矩阵 1 3 0 2 明文:HI THERE 去空格,2个字母一组,根据字母表顺序换成矩阵数值如下,末尾的E为填充字元: HI TH ER EE 8 20 5 5 9 8 18 5 HI 经过矩阵运算转换为 IS,具体算法参考下面的说明: |1 3| 8 e18+39=35 MOD26=9 =I |0 2| 9 e08+29=18 MOD26=18=S 用同样的方法把“HI THERE”转换为密文“IS RPGJTJ”,注意明文中的两个E分别变为密文中的G和T。
解密
解密时,必须先算出密钥的逆矩阵,然后再根据加密的过程做逆运算。 逆矩阵算法公式: |A B| = 1/(AD-BC) * | D -B| |C D| |-C A| 例如密钥矩阵= |1 7| |0 3| AD-BC=13-07=3 3X=1 mod26 所以 X=9 因此 |1 7| 的逆矩阵为: 9 * |3 -7| |0 3| |0 1| 假设密文为“FOAOESWO” FO AO ES WO 6 1 5 23 15 15 19 15 9 |3 -7| | 6| = 9*(36-715)=-783 mod26 = 23=W |0 1| |15| = 9*(06+115)= 135 mod26 = 5 =E 所以密文“FOAOESWO”的明文为“WEREDONE”
五、 密码学之于人类的意义
中国古代六经之首的《易经》强调“象、数、理、占”。“象”可以简单理解为现象;“数”就是涉及现象中有关数据计算的数据属性;而“理”就是隐含在现象和数据中的规律;“占”实际上就是计算,特别是带有预测性质的计算。“数”与“理”结合起来,就成就了密码学。
在过往的五千多载岁月里,密码学作为经济长城保障着财务安全;作为胜利之矛刺穿了战火纷争;作为藏头情话传递过晦涩情愫。它无处不在,又无时不刻的扮演着重要角色。
在新的一百年里,人类文明的发展到了一个前所未有的新阶段,然而地球的存储值终究有限,可以说,人类已经别无选择,这就需要有革命性的新计算技术。密码学饱受争议,它背负着“安全”的希冀,又备受量子计算的压力。
但人类也更担心由非生物计算发展起来的日益强大的非生物智能会对人类伦理、 会,甚至生存产生很大的威胁。
我们不妨构想,未来真正能解决这个问题的,一定不是某一项技术,而是集多种技术为一体的某种新架构。
如此想来,未来还是充满机遇,因此我们也对未来充满憧憬和希望。
参考文献
1.Gregory V.Bard 著 《Algebraic Cryptanalysis》 Springer版 总48页
2.Christof Paar 著 《Under Standing Cryptography》 马小婷中译本 《深入浅出密码学》清华大学出版 2012版 总351页
3. Stephen Pincock 著 《CODE BOOK:从古埃及到量子密码学》 商务印书馆2017年5月版 总 205 页
4.杨保华 陈昌 著 《区块链:原理、设计与应用》 2017年9月第1次版第2次印刷 机械工业出版 总352页
5.邹均 张海宁 唐屹 李磊 等 著《区块链技术指南》2017年8月第1次版第5次印刷 机械工业出版 总 254 页
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!