几种密码技术及区块链相关的分析小品
摘要:
[密码学历史][简单密码][密码学前瞻]
关键词:【编码学】;【破译学】;【对称密码系统】;【非对称密码系统】
目录:
一、 引言
一、 引言
二、 几种简单的密码分析
1.维吉尼亚密码
维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。假如以上面第一行代表明文字母,左面第一列代表密钥字母,对如下明文加密:
TO BE OR NOT TO BE THAT IS THE QUESTION
当选定RELATIONS作为密钥时,加密过程是:明文一个字母为T,第一个密钥字母为R,因此可以找到在R行中代替T的为K,依此类推,得出对应关系如下:
密钥:RELAT IONSR ELATI ONSRE LATIO NSREL
明文:TOBEO RNOTT OBETH ATIST HEQUE STION
密文:KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY
历史上以维吉尼亚密表为基础又演变出很多种加密方法,其基本元素无非是密表与密钥,并一直沿用到二战以后的初级电子密码机上。
2.凯撒密码
它是一种代换密码。据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码。
凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推X将变成A,Y变成B,Z变成C。由此可见,位数就是凯撒密码加密和解密的密钥。
在密码学中,恺撒密码(或称恺撒加密、恺撒变换、变换加密)是一种最简单且最广为人知的加密技术。它是一种替换加密的技术。这个加密方法是以恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。恺撒密码通常被作为其他更复杂的加密方法中的一个步骤,例如维吉尼亚密码。恺撒密码还在现代的ROT13系统中被应用。但是和所有的利用字母表进行替换的加密技术一样,恺撒密码非常容易被破解,而且在实际应用中也无法保证通信安全。
3.栅栏加密法
栅栏加密法是一种比较简单快捷的加密方法。栅栏加密法就是把要被加密的文件按照一上一下的写法写出来,再把第二行的文字排列到第一行的后面。相应的,破译方法就是把文字从中间分开,分成2行,然后插入。栅栏加密法一般配合其他方法进行加密。例:加密information 分行 i f r a i n n o m t o 合并 ifrainnomto
4.朱高密码
它的英文名是pigpen cipher,直译过来好搞笑。 在18世纪时,Freemasons为了使让其他的人看不懂他所写而发明的,猪笔密码属于替换密码流,但它不是用一个字母替代另一个字母,而是用一个符号来代替一个字母, 把26个字母写进下四个表格中,然后加密时用这个字母所挨着表格的那部分来代替。
5.RSA算法
RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。 RSA的算法涉及三个参数,n、e1.e2。 其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。 e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)(q-1)互质(互质:两个正整数只有公约数1时,他们的关系叫互质);再选择e2,要求(e2e1)mod((p-1)*(q-1))=1。 (n及e1),(n及e2)就是密钥对。 RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e1 mod n;B=A^e2 mod n; e1和e2可以互换使用,即: A=B^e2 mod n;B=A^e1 mod n
6.ECC加密法
ECC算法也是一个能同时用于加密和数字签名的算法,也易于理解和操作。同RSA算法是一样是非对称密码算法使用其中一个加密,用另一个才能解密。 公开密钥算法总是要基于一个数学上的难题。比如RSA 依据的是:给定两个素数p、q 很容易相乘得到n,而对n进行因式分解却相对困难。那椭圆曲线上有什么难题呢? 考虑如下等式 : K=kG [其中 K,G为Ep(a,b)上的点,k为小于n(n是点G的阶)的整数] 不难发现,给定k和G,根据加法法则,计算K很容易;但给定K和G,求k就相对困难了。 这就是椭圆曲线加密算法采用的难题。
我们把点G称为基点(base point),k(k
(2)用户A选择一个私有密钥k,并生成公开密钥K=kG。
(3)用户A将Ep(a,b)和点K,G传给用户B。
(4)用户B接到信息后 ,将待传输的明文编码到Ep(a,b)上一点M(编码方法很多,这里不作讨论),并产生一个随机整数(r
(6)用户B将C1、C2传给用户A。
(7)用户A接到信息后,计算C1-kC2,结果就是点M。因为 C1-kC2=M+rK-k(rG)=M+rK-r(kG)=M 再对点M进行解码就可以得到明文。 ECC的功能比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)在每组中,找出两个字母在矩阵中的地方。 若两个字母不同行也不同列,在矩阵中找出另外两个字母,使这四个字母成为一个长方形的四个角。 若两个字母同行,取这两个字母右方的字母(若字母在最右方则取最左方的字母)。 若两个字母同列,取这两个字母下方的字母(若字母在最下方则取最上方的字母)。 新找到的两个字母就是原本的两个字母加密的结果。
10.RC5算法
(1)创建密钥组,RC5算法加密时使用了2r+2个密钥相关的的32位字,这里r表示加密的轮数。创建这个密钥组的过程是非常复杂的但也是直接的,首先将密钥字节拷贝到32位字的数组L中(此时要注意处理器是little-endian顺序还是big-endian顺序),如果需要,最后一个字可以用零填充。然后利用线性同余发生器模2初始化数组S:对于i=1到2(r+1)-1: (本应模 ,本文中令w=32)其中对于16位字32位分组的RC5,P=0xb7e1 Q=0x9e37 对于32位字和64位分组的RC5,P=0xb7e15163 Q=0x9e3779b9 对于64位字和128位分组,P=0xb7151628aed2a6b Q=0x9e3779b97f4a7c15 最后将L与S混合,混合过程如下: i=j=0 A=B=0 处理3n次(这里n是2(r+1)和c中的最大值,其中c表示输入的密钥字的个数)。
(2)加密处理,在创建完密钥组后开始进行对明文的加密,加密时,首先将明文分组划分为两个32位字:A和B(在假设处理器字节顺序是little-endian、w=32的情况下,第一个明文字节进入A的最低字节,第四个明文字节进入A的最高字节,第五个明文字节进入B的最低字节,以此类推),其中操作符<<<表示循环左移,加运算是模 (本应模 ,本文中令w=32)的。输出的密文是在寄存器A和B中的内容。
(3)解密处理,解密也是很容易的,把密文分组划分为两个字:A和B(存储方式和加密一样),这里符合>>>是循环右移,减运算也是模 (本应模 ,本文中令w=32)的。
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”
13.维热纳尔方阵
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z B C D E F G H I J K L M N O P Q R S T U V W X Y Z A C D E F G H I J K L M N O P Q R S T U V W X Y Z A B D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E F G H I J K L M N O P Q R S T U V W X Y Z A B C D F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L M N O P Q R S T U V W X Y Z A B C D E F G H I J K M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V W X Y Z A B C D E F G H I J K L M N O P Q R S T U W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
著名的维热纳尔方阵由密码学家维热纳尔编制,大体与凯撒加密法类似。即二人相约好一个密钥(单词),然后把加密后内容给对方,之后对方即可按密码表译出明文。密钥一般为一个单词,加密时依次按照密钥的每个字母对照明码行加密。例如:我的密钥是who,要加密的内容是I love you,则加密后就是E SCRL MKB.即加密I,就从密钥第一个字母打头的w那行找明码行的I对应的字母,即E。加密l,就从密钥第2个字母打头的h那行找明码l对应的字母,S。加密o,从密钥第三个字母O打头的那行找到明码行中o对应的字母,C。加密v,就又从密钥第一个字母w打头的那行找到明码行中v对应的字母,R。 依此类推。所以由维热纳尔方阵加密的密码,在没有密钥的情况下给破译带来了不小的困难。维热纳尔方阵很完美的避开了概率算法(按每个语种中每个字母出现的概率推算。例如英语中最多的是e),使当时的密码破译师必须重新找到新方法破译。
14.埃特巴什码
埃特巴什码是一个系统:最后一个字母代表第一个字母,倒数第二个字母代表第二个字母。 在罗马字母表中,它是这样出现的: 常文:a b c d e f g h i j k l m n o p q r s t u v w x y z 密文:Z Y X W V U T S R Q P O N M L K J I H G F E D C B A 这种密码是由熊斐特博士发现的。熊斐特博士为库姆兰《死海古卷》的最初研究者之一,他在《圣经》历史研究方面最有名气的著作是《逾越节的阴谋》。他运用这种密码来研究别人利用其他方法不能破解的那些经文。这种密码被运用在公元1世纪的艾赛尼/萨多吉/拿撒勒教派的经文中,用以隐藏姓名。其实早在公元前500年,它就被抄经人用来写作《耶利米书》耶利米是活动在公元前627-前586年间的犹太先知,圣经旧约书中有许多关于他的记载。在他离世前,犹太领土已被巴比伦人占领。它也是希伯来文所用的数种密码系统之一。 白金特、雷伊和林肯在《弥赛亚的遗产》中写道,熊斐特博士于《艾赛尼派的奥德赛》一书中描述他如何对圣殿骑士们崇拜的鲍芙默神痴迷,又如何用埃特巴什码分析这个词。令他惊奇的是,破译出的词“Sophia”为希腊语中的“智慧”。 在希伯来语中,“Baphomet”一词拼写如下——要记住,希伯来语句必须从右向左读: 〔 taf 〕 〔 mem 〕 〔 vav 〕 〔 pe 〕 〔 bet 〕 将埃特巴什码用于上述字母,熊斐特博士得到如下结果: 〔 alef 〕 〔 yud 〕 〔 pe 〕 〔 vav 〕 〔 shin 〕 即为用希伯来语从右向左书写的希腊词“Sophia”。 Sophia的词义不仅限于“智慧”。它还是一位女神的名字——这位女神照说应该是上帝的新娘。许多人相信,圣殿骑士们崇拜这位女神。作者引用的是诺斯替学派的神话:“不可知解”的至尊上帝,“源化”出最早的几位亚神,最后一位就是索菲亚——“智慧”。她极求得到对上帝“神质”的“真知”——她名字第二意义的来源,而这种不合神性的欲望“孕生”了邪神,即创造宇宙的另一位“上帝”。诺斯替派将他等同于旧约中的上帝,来解释亚当夏娃堕降尘间和大洪水的事件。 圣殿骑士们通晓埃特巴什码的事实,强烈表明有些来自一个拿撒勒教派的人置身于圣殿骑士中间。 丹·布朗关于英语是“最纯洁的”语言的观念可能是空想的,但并不是什么新理论。莱纳堡附近有个叫做莱纳浴泉的村庄,那里的神父亨利·布德写过一本名为《真实的凯尔特语》的书,也声称英语是一种神圣的语言,或许在“巴比伦塔”用方舟拯救人类的诺亚,有一支后代在巴比鲁尼亚定居。他们在史纳尔平原建造高塔,试图攀登天界。恼怒的上帝分化了在此之前统一使用的语言,而交流不通引发的混乱和争执使人前功尽弃。堕毁前就已得到使用。据说,这本书从字面上是不能理解的,它是用密码写成的,传达一个不同的信息。我们还应该记住,与其他的一些欧洲语言一样,英语的许多词汇源于拉丁。正如翠茜·特威曼在《达戈贝特复仇记》杂志中指出的那样,英语因为有26个字母,可以完美地用于埃特巴什码。其他欧洲语言所用的字母则不成偶数。此外,她始终认为郇山隐修会偏爱英语。
三、 破译学简析
21世纪以来,随着计算机科学的飞速发展,破译密码也有了崭新而又高效的办法:暴力破译。
当攻击者使用一组预定义值攻击目标并分析响应直到他成功, 这就叫做暴力攻击。它的成功取决于预定义值的集合,如果它越大,就会需要更多时间,但成功的可能性也会变大。最常见且最容易理解的暴力攻击是破解密码的字典攻击,在这种情况下,攻击者使用包含数百万个可作为密码的单词的密码字典,然后攻击者逐个尝试这些密码并进行身份验证,如果字典中包含正确的密码,攻击者将会成功。
在传统的暴力攻击中,攻击者只是尝试字母和数字的组合 来顺序生成密码。但是,当密码足够长的时候,这种技术就会需要更长的时间,这些攻击可能需要几分钟到几小时甚至是几年的时间,具体取决于所使用的系统和密码的长度。
为了防止暴力破解密码,应始终使用长而复杂的密码。这 会使得攻击者很难猜到密码,暴力攻击会花费更多的时间,大多数时候,WordPress用户面临对其网站的暴力攻击。帐户锁定是防止攻击者对Web应用程序执行暴力攻击的一种方法。但是,对于离线软件,事情就没这么简单了。
同样,为了发现隐藏页面,攻击者会尝试猜测页面名称, 发送请求并查看响应。如果该页面不存在,它将显示响应404,成功的话就会响应200。这样,它可以在任何网站上找到隐藏页面。
暴力攻击也用于破解散列并从给定散列中猜出密 码。这样的话,哈希是从随机密码生成的,然后此哈希与目标哈希匹配,直到攻击者找到正确的哈希。因此,用于加密密码的加密类型(64位、128位或256位加密)越高,暴力破解所需的时间就会越长。
四、 密码学与区块链的相关性分析
1.区块链
首先要理解什么是区块链,简单来说是由一个个区块组成,而 区块是由两个哈希值和一个存储空间组成,每个区块只和它的前一个区块相关联,正是通过哈希值所关联起来的,目前可把哈希值理解为身份证号,一个是自己的,一个是跟自己关联的前一个区块的。哈希值是通过密码学中的哈希算法得到的,这就是我们重点要关注的。
哈希算法有如下两个特点:
第一个:唯一性
第二个:保密性
区块链核心概念还包含以下几点:
(1)支撑比特币的底层交易系统就是“默克尔树”也叫哈希树。
(2)密码学中的椭圆曲线算法(ECC)也用在区块链中来保护消息摘要的真实性。
(3)RSA 非对称加密算法在区块链中用作证书签发。
2.比特币
比特币来自于Satoshi Nakamoto(中本聪,化名)的一篇论文,并于2009年开始实际运用。比特币是一种基于P2P网络的支付结算系统。用户通过它进行进行价值转移。
(1)地址,将公钥使用散列函数求散列值得到,地址都以1开 头,剩下内容不包含O,0,1和I。
(2)钱包,即比特币客户端,可以生成密钥对,公钥用于收 款,密钥用于付款
(3)区块链,保存了比特币所有交易记录的账簿,若干交易组成 一个区块,在区块头有所有交易的散列值,以及上一个区块的散列值,有交易添加时会触发区块头的散列值变化,并链式传递下去
(4)交易,收、付款方各自生成密钥对,付款方创建交易“地址A向地址B转账x BTC”,并用自己的私钥签署数字签名,之后广播至P2P网络中,完成交易。比特币使用的数字签名基于椭圆曲线DSA,方程为x^2 = y^3 + 7
(5)挖矿,向区块链中添加新区块的行为被称为挖矿,第一个挖矿成功的矿工会获得挖矿奖励和区块所有交易的手续费。为了证明自己确实完成了规定工作,矿工需要进行工作量证明(PoW),即生成的区块头中,前一区块头的散列值必须以若干位的0开头,这个工作需要投入大量的计算资源。区块大约每10分钟添加一个,为了避免通货膨胀,所需的0的个数会不断调整。
当区块链上同时出现分支时,P2P网络会选择计算量 大的分支进行工作
/注意:比特币的匿名性只限于交易地址/
五、 密码学之于人类的意义
中国古代六经之首的《易经》强调“象、数、理、占”。“象”可以简单理解为现象;“数”就是涉及现象中有关数据计算的数据属性;而“理”就是隐含在现象和数据中的规律;“占”实际上就是计算,特别是带有预测性质的计算。“数”与“理”结合起来,就成就了密码学。
在过往的五千多载岁月里,密码学作为经济长城保障着财务安全;作为胜利之矛刺穿了战火纷争;作为藏头情话传递过晦涩情愫。它无处不在,又无时不刻的扮演着重要角色。
在新的一百年里,人类文明的发展到了一个前所未有的新阶段,然而地球的存储值终究有限,可以说,人类已经别无选择,这就需要有革命性的新计算技术。密码学饱受争议,它背负着“安全”的希冀,又备受量子计算的压力。
但人类也更担心由非生物计算发展起来的日益强大的非生物智能会对人类伦理、社会,甚至生存产生很大的威胁。
我们不妨构想,未来真正能解决这个问题的,一定不是某一项技术,而是集多种技术为一体的某种新架构。
如此想来,未来还是充满机遇,因此我们也对未来充满憧憬和希望。
参考文献
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 页