《SMS4分析实验报告(附C++实现代码).docx》由会员分享,可在线阅读,更多相关《SMS4分析实验报告(附C++实现代码).docx(19页珍藏版)》请在第一文库网上搜索。
1、中国商用加密标准SMS4分析实验报告一、概况二、SMS4与DES、AES比较三、意义四、实现1 .密钥扩展2 .S盒替换3 .1变换4 .轮函数F5 .加密算法6 .解密算法五、分析1 .输入改变一位,输出改变位数2 .S变换和1变换输入改变一位,输出改变位数3 .S盒连续变换使输入等于输出的轮数附1:实现代码附2:运行截图一、概况商用密码是指对不涉及国家秘密内容的信息进行加密保护或者安全认证所使用的密码技术和密码产品。商用密码的应用领域十分广泛,主要用于对不涉及国家秘密内容但又具有敏感性的内部信息、行政事务信息、经济信息等进行加密保护。1972年美国公布了第一个商用密码DESo而2006年2
2、月公布的用于无线局域网加密的SMS4是我国公布的笫一个商用密码。SMS4是一个分组对称密码算法。分组长度与密钥长度均为128位。数据处理单位主要为字节(8位)和字(32位)。包括非线性变换S和线性变换1,经过32轮迭代结果为128位密文。其中S盒可替换,是一种灵活的、相对稳定的密码算法。二、SMS4与DES、AES比较SMS4、DES与AES均为已公开的分组对称商用密码,均使用异或,置换,代换,移位操作四种基本运算。均包括线性和非线性变换。DES:分组长度为64位,密钥长度为64位(放弃其中八位用作奇偶校验),16轮变换,输出64位密文。有8个4x16位S盒。从实际出发仍认为其安全性足够,但现
3、在一般更多的使用AESoAES:分组长度为128256位,密钥长度为128、192或256位,1074轮变换,输出与明文对应长度的密文。有16X16位的S盒和基于16X16位的E、F表的混合列操作。SMS4:分组长度为128位,密钥长度为128位,32轮变换,输出128位密文。有16X16位S盒。三、意义随着信息时代的到来,信息显得越来越重要,甚至成为一种战略物资。所以信息的安全也越来越重要。而密码算法则是信息安全的核心。SMS4的公布改变了长期以来不公布密码算法只提供密码芯片的局面。打破了外国对商业密码的垄断,使得用户不再需要面对要达到加密要求就必须向外国管理者缴纳使用费的情况。也在最大程度
4、上避免了因使用外国密码算法而被掌握陷门的风险。同时,SMS4也标志着我国密码体制与国际接轨,有利于我国密码管理的科学化,促进我国商用密码算法的发展。四、实现1 .密钥扩展使用至J4个常数FKO3和32个固定参数CKo31,定义K03为FK与密钥的异或值。子密钥IKi等于Ki+4等于Ki+13与CKi的T变换与Ki的异或值。2 .S盒替换使用16X16位的S盒,以输入高位为行号、低位为列号取对应表中数值作为输出。3 .1变换以输入与其循环左移2,10,18,24次的值的异或值作为输出。(密钥扩展里用到的I?变换的左移次数为13,23次)4 .轮函数F四个S盒并行替换后做1变换称作T变换。F函数的
5、输出为输入数据X13与子密钥IK的异或值的T变换得到的值再与输入数据XO的异或值。5 .加密算法明文作为第一轮F的输入,之后的输入为前一轮输入的后三项与前一轮F变换的结果,子密钥为IKO31。32轮变换后,最后四轮的输出分别作为密文的第4到第1项。6 .解密算法解密算法与加密相同,但子密钥的使用顺序为IK31)o五、分析1. 输入改变一位,输出改变位数每次测试先随机产生原始输入,之后每次随机改变一位,与前一次输出比较改变位数。每次测试做IOOO次改变,取平均数。见图(四多次统计取平均结果为:63.63位2. S变换和1变换输入改变一位,输出改变位数每次测试先随机产生原始输入,之后每次随机改变一
6、位,与前一次输出比较改变位数。每次测试做IOOO次改变,取平均数。见图(三多次统计取平均结果为:S:3.98位1:5位3. S盒连续变换使输入等于输出的轮数S盒公有256种输入,对每个输入做连续S变换,直到输出与输入相同。对于每个S盒结果为定值。部分见图(四)。对于附1中的代码实现时所用S盒的计算结果为:(XX:YXX=输入Y=S盒替换次数)00:12008:5610:2418:12020:2428:12030:12038:12040:12048:12050:12058:660:12068:12070:3578:5680:12088:3590:2498:35AO:120A8:9BO:24B8:
7、24CO:9C8:120DO:56D8:3EO:24E8:6FO:120F8:601:2402:12003:2404:5605:12006:12007:5609:1200A:56OB:560C:1200D:350E:56OF:12011:12012:12013:12014:5615:12016:5617:5619:1201A:120IB:35IC:120ID:120IE:120IF:5621:12022:12023:12024:925:12026:3527:12029:1202A:562B:242C:562D:32E:352F:5631:12032:12033:12034:3535:5636:
8、637:3539:243A:1203B:563C:353D:1203E:353F:3541:5642:12043:2444:12045:12046:5647:12049:1204A:354B:1204C:564D:1204E:94F:951:5652:5653:35:54:12055:12056:5657:12059:1205A:1205B:1205C:355D:565E:1205F:5661:962:5663:12054:12065:666:3567:12069:1206A:1206B:566C:246D:1206E:566F:5671:12072:5673:12074:3575:3576:
9、12077:5679:67A:1207B:1207C:1207D:567E:1207F:12081:5682:5683:12084:12085:12086:12087:5689:248A:568B:1208C:1208D:98E:1208F:12091:992:5693:5694:12095:3596:12097:12099:569A:1209B:1209C:249D:1209E:1209F:35A1:12CIA2:120A3:35A4:56A5:35A6:35A7:120A9:120AA:120AB:IAC:35AD:35AE:9AF:56B1:120B2:35B3:120B4:2B5:56
10、B6:120B7:56B9:120BA:120BB:56BC:120BD:24BE:120BF:56C1:35C2:56C3:56C4:56C5:120C6:120C7:120C9:35CA:35CB:56CC:56CD:24CE:120ICF:3D1:35D2:120D3:35D4:35D5:24D6:120D7:24D9:35DA:56DB:120DC:24DD:120DE:2DF:24E1:120E2:120E3:35E4:120E5:120E6:56E7:120E9:120EA:120EB:120EC:120ED:56)EE:120EF:120F1:120F2:56F3:120F4:1
11、20F5:24F6:120F7:24F9:120FA:56FB:35FC:24FD:56FE:24IF:120表(一)S变换循环测试附1:/10385001丁雅博SMS4密码算法VC+6.0编译#inc1ude#inc1ude#inc1ude#inc1ude#inc1ude#inc1udeusingnamespacestd;intSbox1616=0xd6,0x90,0xe9,Oxfe,Oxcc,Oxe1,0x3d,0xb7,0x16,0xb6,0x14,0xc2,0x28,0xfb,0x2c,0x05,0x2b,0x67,0x9a,0x76,0x2a,Oxbe,0x04,0xc3,0xaa,
12、0x44,Ox13,0x26,0x49,0x86,0x06,0x99,0x9c,0x42,Ox5O,Oxf4,0x91,Oxef,0x98,0x7a,0x33,0x54,0x0b,0x43,0xed,0xcf,0xac,0x62,0xe4,0xb3,Ox1c,0xa9,0xc9,0x08,0xe8,0x95,0x80,0xdf,0x94,0xi,0x75,0x8f,0x3f,0xa6,0x47,0x07,0xa7,Oxfc,0xf3,0x73,Ox17,Oxba,0x83,0x59,0x3c,Ox19,0xe6,0x85,0x4f,0xa8,0x68,0x6b,0x81,0xb2,0x71,0
13、x64,0xda,0x8b,0xf8,Oxeb,0x0f,0x4b,0x70,0x56,0x9d,0x35,Ox1e,0x24,0x0e,0x5e,0x63,0x58,Oxd1,0xa2,0x25,0x22,0x7c,0x3b,OxO1,0x21,0x78,0x87,0xd4,0x00,0x46,0x57,0x9f0xd3,0x27,0x52,0x4c,0x36,0x02,0xe7,0xa0,0xc4,0xc8,0x9e),0xea,0xbf0x8a,0xd2,0x40,0xc7,0x38,0xb5,0xa3,0xf7,0xf2,0xce,0xfP,0x61,0x15,0xaI,OxeO,Ox
14、ae,0x5d,0xa4,0x9b,0x34,Ox1a,0x55,0xad,0x93,0x32,0x30,0xf5,0x8c,Oxb1,0xe3),Ox1d,0xf6,0xe2,0x2e,0x82,0x66,Oxca,0x60,OxcO,0x29,0x23,0xab,0x0d,0x53,0x4e,0x6f),0xd5,0xdb,0x37,0x45,Oxde,Oxfd,0x8e,0x2f0x03,0xf0x6a,0x72,0x6d,0x6c,0x5b,0x51,0x8d,0xIb,0xaf0x92,0xbb,0xdd,0xbc,0x7f0x11,0xd9,0x5c,0x41,0x1皿X10,0x5a,0xd8,OxOa,Oxc1,0x31,0x88,0xa5,Oxcd,0x7b,Ox