- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中国商用加密标准SMS4分析实验报告
概况
SMS4与DES、AES比较
意义
实现
密钥扩展
S盒替换
L变换
轮函数F
加密算法
解密算法
分析
输入改变一位,输出改变位数
S变换和L变换输入改变一位,输出改变位数
S盒连续变换使输入等于输出的轮数
附1:实现代码
附2:运行截图
概况
商用密码是指对不涉及国家秘密内容的信息进行加密保护或者安全认证所使用的密码技术和密码产品。
商用密码的应用领域十分广泛,主要用于对不涉及国家秘密内容但又具有敏感性的内部信息、行政事务信息、经济信息等进行加密保护。
1972年美国公布了第一个商用密码DES。而2006年2月公布的用于无线局域网加密的SMS4是我国公布的第一个商用密码。
SMS4是一个分组对称密码算法。分组长度与密钥长度均为128位。数据处理单位主要为字节(8位)和字(32位)。包括非线性变换S和线性变换L,经过32轮迭代结果为128位密文。其中S盒可替换,是一种灵活的、相对稳定的密码算法。
SMS4与DES、AES比较
SMS4、DES与AES均为已公开的分组对称商用密码,均使用异或,置换,代换,移位操作四种基本运算。均包括线性和非线性变换。
DES:分组长度为64位,密钥长度为64位(放弃其中八位用作奇偶校验),16轮变换,输出64位密文。有8个4 x 16位S盒。从实际出发仍认为其安全性足够,但现在一般更多的使用AES。
AES:分组长度为128~256位,密钥长度为128、192或256位,10~14轮变换,输出与明文对应长度的密文。有16 x 16位的S盒和基于16 x 16位的E、F表的混合列操作。
SMS4:分组长度为128位,密钥长度为128位,32轮变换,输出128位密文。有16 x 16位S盒。
三、意义
随着信息时代的到来,信息显得越来越重要,甚至成为一种战略物资。所以信息的安全也越来越重要。而密码算法则是信息安全的核心。
SMS4的公布改变了长期以来不公布密码算法只提供密码芯片的局面。打破了外国对商业密码的垄断,使得用户不再需要面对要达到加密要求就必须向外国管理者缴纳使用费的情况。也在最大程度上避免了因使用外国密码算法而被掌握陷门的风险。
同时,SMS4也标志着我国密码体制与国际接轨,有利于我国密码管理的科学化,促进我国商用密码算法的发展。
四、实现
密钥扩展
使用到4个常数FK0~3和32个固定参数CK0~31,定义K0~3为FK与密钥的异或值。子密钥IKi等于Ki+4等于Ki+1~3与CKi的T'变换与Ki的异或值。
S盒替换
使用16 x 16位的S盒,以输入高位为行号、低位为列号取对应表中数值作为输出。
L变换
以输入与其循环左移2,10,18,24次的值的异或值作为输出。(密钥扩展里用到的L变换的左移次数为13,23次)
轮函数F
四个S盒并行替换后做L变换称作T变换。
F函数的输出为输入数据X1~3与子密钥IK的异或值的T变换得到的值再与输入数据X0的异或值。
加密算法
明文作为第一轮F的输入,之后的输入为前一轮输入的后三项与前一轮F变换的结果,子密钥为IK0~31。
32轮变换后,最后四轮的输出分别作为密文的第4到第1项。
解密算法
解密算法与加密相同,但子密钥的使用顺序为IK31~0。
分析
输入改变一位,输出改变位数
每次测试先随机产生原始输入,之后每次随机改变一位,与前一次输出比较改变位数。每次测试做1000次改变,取平均数。
见图(四)。
多次统计取平均结果为:63.63位
S变换和L变换输入改变一位,输出改变位数
每次测试先随机产生原始输入,之后每次随机改变一位,与前一次输出比较改变位数。每次测试做1000次改变,取平均数。
见图(三)。
多次统计取平均结果为:
S:3.98位
L:5位
S盒连续变换使输入等于输出的轮数
S盒公有256种输入,对每个输入做连续S变换,直到输出与输入相同。对于每个S盒结果为定值。
部分见图(四)。
对于附1中的代码实现时所用S盒的计算结果为:
(XX:Y XX=输入 Y=S盒替换次数)
00: 120 01: 24 02: 120 03: 24 04: 56 05: 120 06: 120 07: 56
08: 56 09: 120 0A: 56 0B: 56 0C: 120 0D: 35 0E: 56 0F: 120
10: 24 11: 120 12: 120 13: 120 14: 56 15: 120 16: 56 17: 56
18: 120 19: 120 1A: 120 1B: 35 1C: 120 1D: 120
原创力文档


文档评论(0)