加密者与破译者的博弈(2)

2020-04-09 栏目:行业资讯 查看()

如果仅仅是26套暗码表,和维尼吉亚暗码没有平安方面的突出特点,后来恩尼格玛机由一个“转子”升级到了多个“转子”,是暗码表套数成指数级增长。例如当有2个“转子”时,暗码表套数为26的平方,676种。德国二战期间用的最高水准恩尼格玛机具有8个“转子”,暗码表套数为26的8次方,达到了2000多亿种。

恩尼格玛机由6套暗码表,升级到676套,甚至到2000多亿套暗码表,西安app开发,暗码表数量如此之大,在当时靠人工的办法是无法穷尽破解的。看过电影《模仿游戏》的都知道,破解的方法是采纳了类似现代计算机的机械机器。

03 现代暗码学 1. 散列函数

散列函数,也见杂凑函数、摘要函数或哈希函数,可将任意长度的消息经过运算,酿成固定长度数值,常见的有MD5、SHA-1、SHA256,多应用在文件校验,数字签名中。

MD5可以将任意长度的原文生成一个128位(16字节)的哈希值,于2004年被王小云教授宣布破译,证明MD5具有抗碰撞性不够的平安弱点,可快速对文件进行修改而坚持哈希值不变,对MD5算法的应用形成了挑战。

SHA-1可以将任意长度的原文生成一个160位(20字节)的哈希值,2017年Google公司公告宣称他们与阿姆斯特丹CWI研究所,共同创建了两个有着相同的SHA-1哈希值但内容分歧的PDF文件,这代表SHA-1算法已被正式攻破。

2. 对称暗码

对称暗码应用了相同的加密密钥和解密密钥。对称暗码分为:序列暗码(流暗码),分组暗码(块暗码)两种。流暗码是对信息流中的每一个元素(一个字母或一个比特)作为基本的处理单元进行加密,块暗码是先对信息流分块,再对每一块分别加密。

例如原文为1234567890,流加密即先对1进行加密,再对2进行加密,再对3进行加密……最后拼接成密文;块加密先分成分歧的块,如1234成块,5678成块,90XX(XX为补位数字)成块,再分别对分歧块进行加密,最后拼接成密文。前文提到的古典暗码学加密办法,都属于流加密。

加密者与破译者的博弈

流暗码算法的代表有A5和RC4,A5是GSM规定的加密算法,RC4被应用在1999年的平安传输层协议(TLS)。

块暗码算法的代表有DES,3DES,AES,相对于流暗码更为常见。DES算法使用的密钥是64位(实际用到了56位,第8、16、24、32、40、48、56、64位是校验位),把64位的原文输入块变为64位的密文输出块。单层DES算法于1999年被RSA公司以22小时35分钟破解。

3DES(即Triple DES),由3支DES长度的密钥组成(或2支,第一支密钥和第三支密钥相同),加密过程为:用第一支密钥对原文进行加密,再使用第二支密钥对第一步操作后的信息进行解密,最后使用第三支密钥对第二步操作后的信息进行加密得到最终密文。

解密过程与加密过程相反:采纳第三支密钥对密文进行解密,再采纳第二支密钥进行加密,最后采纳第一支密钥解密得到原文。

AES,密钥长度可为128、192、256比特三种,可以抵抗各种已知攻击,目前为止还没有公开的对AES有威胁的攻击办法。

3. 非对称暗码

对称暗码的密钥平安极其重要,加密者和解密者必要提前协商密钥,并各自确保密钥的平安性,一但密钥泄露,即使算法是平安的也无法保障原文信息的私密性。

在实际的使用中,远程的提前协商密钥不容易实现,即使协商好,在远程传输过程中也容易被他人获取,因此非对称密钥此时就凸显出了优势。

非对称暗码有两支密钥,公钥(publickey)和私钥(privatekey),加密和解密运算使用的密钥分歧。用公钥对原文进行加密后,必要由私钥进行解密;用私钥对原文进行加密后(此时一般称为签名),必要由公钥进行解密(此时一般称为验签)。公钥可以公开的,大家使用公钥对信息进行加密,再发送给私钥的持有者,私钥持有者使用私钥对信息进行解密,获得信息原文。因为私钥只有单一人持有,因此不用担心被他人解密获取信息原文。

私钥对信息的加密(此时一般称为签名),可以确保私钥持有者对信息的认可,大家持有公钥即可验证信息是由私钥持有者发出的,注解私钥持有者认可了信息的内容,实现了对信息进行数字签名的效果。

常见的非对称暗码有RSA和SM2。RSA于1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的,三人姓氏开头字母拼成RSA,迄今为止应用十分广泛。SM2基于椭圆曲线公钥暗码算法,为我国商用暗码体系中用于替换RSA的算法。

扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流

郑重申明:勤人信息以外的任何单位或个人,不得使用该案例作为工作成功展示!