-
游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。
赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!
TheHackerWorld官方
- 0
赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!
TheHackerWorld官方
问题
HACK1949
由浅入深了解AES ECB模式加密和明文主动攻击
加密算法是信息技术领域常常运用的安全算法,运用场景包括了付出、电商、即使通讯等各类应用。在常用的对称加密算法中,AES(Advanced Encryption Standard)凭仗安全性逐步成为国际主流加密算法。对称/分组加密一般分为流加密(如OFB、CFB等)和块加密(如ECB、CBC等)。关于流加密,需求将分组暗码转化为流形式作业。关于块加密(或称分组加密),假如要加密超越块巨细的数据,就需求涉及填充和链加密形式。ECB(Electronic Code Book 电子暗码本)的缺点是不能躲藏明文的形式并且或许对明文进行自动进犯。在CWE(Common Weakness Enumeration 通用缺陷列表)中界说为“损坏或风险的加密算法”,可是在实际的开发中,由于开发者缺少对加密算法知道或许偷闲(究竟ECB形式不需求偏移向量iv,少了 一个变量)常常运用ECB加密形式,本文主要就ECB形式的加密原理及“明文自动进犯”进行由浅入深的论述。
AES ECB加密形式原理
AES ECB加密的大致流程如图1所示,明文依照16字节分红n块,经过加密器对每一块进行加密取得n个密文块。最后一块通常不够16字节需求依照必定的填充规矩进行填充。
图1:AES ECB加密流程图
图1中的加密器加密进程如图2所示。加密的轮次根据密钥长度确认,密钥长度128位则n=10,密钥长度为192位,则n=12,密钥长度为256次则n=16。明文块16个字节被排列成4×4的二维数组,每一轮的扩展密钥W(i,i+15)相同被排列成4×4密钥数组。。
图2:AES 加密器
从AES ECB形式加密原理可知明文分组和密文分组一一对应,例如明文:"this is block 10this si block 10this is block 10",能够分为三块“this is block 10”、”this si block 10”、”this is block 10”,加密后的对应的密文(字节):” 78 -128 64 -49 -89 100 -126 16 -103 -12 36 49 22 -56 86 -75 82 30 41 -119 -102 -90 58 -64 -2 101 -96 -31 60 ·-8 -1 -3 78 -128 64 -49 -89 100 -126 16 -103 -12 36 49 22 -56 86 -75”密文的前16字节和后16个字节对应明文的前16个字符和后16个字符,且是密文共同。由于在某些情况下,进犯者不需求破解密钥和密文就能够实现对密文的进犯。例如发送者发送“A phone number is +08612611112222 B phone number is +08612611110000”密文:“-67 106 -88 -115 12 47 -10 -24 -105 -13 124 66 -92 80 -126 -126 75 -71 92 31 -77 19 73 116 -34 123 81 -84 41 82 -95 120 26 -23 -18 -59 -87 3 107 -80 -124 114 -128 -77 11 -58 -54 -57 19 -20 62 -83 -59 -10 58 -74 66 28 110 14 -41 -65 -119 -94”。进犯者不需求知道密钥也不需求破解密文,直接对调密文第17-32和第49-64,接受者收到的音讯解密后就变成“A phone number is +08612611110000 B phone number is +08612611112222””。
“对明文的自动进犯”
人为进犯一般分为被迫进犯和自动进犯,被迫进犯一种是指直接获取音讯的内容,还有一种是对音讯的某些特征进行剖析,尽管不能得到完整的音讯内容但也能够推测出信息的一些特点,而这些特点有或许是通讯双方不想被走漏的。例如图3和图4,该图画的一个位图版本(图3)经过ECB形式或许会被加密成图4。在AES ECB形式中被迫进犯一般情况下不会改动音讯的内容,所以很难检测到,只能提前防备——禁止运用 ECB形式加密。
图3
图4
自动进犯是指对明文数据的篡改来发生对进犯有价值的密文数据,防止自动进犯一般都十分困难,需求提前防备,要求在安全架构层面需求更加专业的常识和经验。挑选明文进犯是指暗码剖析者不仅可得到一些明文-密文对,还能够挑选被加密的明文,并取得相应的密文。针对明文的进犯的举例:
假设条件:
进犯者不知道加密密钥和flag,可是能够经过结构特定的明文,在有限时间内爆炸出flag。
第一步:输入字符串””,长度为0,回来密文“-64 74 29 -100 105 -44 -61 -73 104 42 -76 -97 11 66 -93 102 16”,可知flag长度[0,15],以为假如flag的长度为16也需求填充16个16;
第二步:依次输入“a”,“aa”,“aaa”……“aaaaaaaaaaaaaaaa”,发现输入“aaaaaaaaaa”密文长度为16,输入“aaaaaaaaaaa”密文长度为32可知“aaaaaaaaaa”+flag的长度是15,“aaaaaaaaaaa”+flag的长度为16(plain长度为16也需求填充16个字节);所以flag的长度为5。
第三步:爆炸flag的第一位,由于1位有8bit位,有2的8次方(128)种或许,普通计算机爆炸耗时能够疏忽。假设flag=“ABCDE”,首要输入“aaaaaaaaaaaaaaa”+“ABCDE”,则第一块密文是 “aaaaaaaaaaaaaaaA”,对应“77 121 -104 -86 86 93 1 -101 119 -90 75 -105 0 55 4 18”,咱们结构k归于[0,128]+’\0’,发现当104,对应ASCII码表的’h’, “aaaaaaaaaaaaaaak”和“aaaaaaaaaaaaaaaA”密文相同,则A=’h’。爆炸B的时分输入“aaaaaaaaaaaaaa”取得“aaaaaaaaaaaaaahB”的密文即可爆炸出B=e,再依次爆炸出CDEF为“ello”,终究咱们拿到flag为“hello”。
总结
在本文中咱们首要介绍了AES根本的加密原理和加密器加密流程,其次介绍了ECB形式中分组独立加密的不安全性,进犯者能够直接对密文进行进犯或许加密无法躲藏明文数据形式。最后咱们结构了一个简单的对AES ECB加密进行自动明文进犯例子(具体代码可在GitHub上获取)。写这么多的意图便是希望让普通人能够理解并不是加密了就安全,咱们在开发进程中运用加密的意图便是为了保护数据,因此有必要慎重考虑挑选最好的加密算法及或许发生的不安全因素。
链接帖子
意见的链接
分享到其他网站
这个问题有0个答案
推荐的帖子