- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
网络信息安全实验报告
实验二:密码学实验(1)
【实验目的】
1、了解对称加密和非对称加密的原理。
2、通过编程分别实现一种对称加密和非对称加密算法。
【实验内容】
使用python编程实现对称加密算法AES【实验环境】
操作系统:Windows+ubuntuwsl2;编程环境:Python3.8【实验步骤】
1、对称加密算法AES的实现
1.1AES的基本原理
AES是分组密码,分组密码也就是把明文分成一组一组的,每组长度相等,每次加密一组数据,直到加密完整个明文。其中在AES-128下,分组的长度只能为128位。所以一次只能加密128位明文,即16个字节,相应的密钥也是16个字节。
AES的基本算法是对明文进行轮密钥加;然后再做字节代换、行移位、列混合、轮密钥加操作,重复十轮,其中最后一轮不进行列混合,最终得到密文。AES的解密过程为:先对密文进行轮密钥加,然后再做轮密钥加、逆列混合、逆行移位、逆字节代换操作,重复十轮,其中最后一轮不进行列混合,最终得到明文。整个过程明文和密钥都以4*4的矩阵形式进行操作。
1.2AES算法的基本流程
1.给定一个明文x和密钥key,将State初始化为x,同时产生11个轮密钥,并进行AddRoundKey操作,即将RoundKey与State异或,然后进行10轮迭代。
2.对前9轮中的每一轮,用S盒对State进行一次代换操作SubBytes;对State做一次行移位ShiftRows;再对State做一次列混合MixColumns;然后进行AddRoundKey操作。
3.对State依次进行操作SubBytes,ShiftRows,AddRoundKey。
4.将State定义为密文y。
AES算法的基本流程如下图所示:
明文明文
明文
轮密钥加W[0,3]轮密钥加
轮密钥加
W[0,3]
第10轮
第10轮
字节代换行移位
字节代换
行移位
第1轮逆行移位
第1轮
列混合逆列混合
列混合
第9轮轮密钥加W[4.7]轮密钥加
第9轮
个
逆字节代换
逆行移位
字节代换
第10轮第9轮
第10轮第9轮
列混合轮密钥加
列混合
轮密钥加
第1轮W[36,39]轮密钥加
第1轮
W[36,39]
个
字节代换行移位
字节代换
行移位
轮密钥加
个
逆行移位
W[40,43]轮密钥加
W[40,43]
个
密文密文
密文
1.3AES的代码实现
1.3.1轮密钥生成
首先是根据128位的密钥,生成11个轮密钥,密钥的产生过程如下所示:
①初始化密钥数组w。w[0]-key前32位,w[1]-key第33~64位,w[2]←key第65~96位,w[3]+key第97~128位,w[4:44]-0。
②进行如下伪代码描述的迭代。
③将w数组以四个一组合并即可得到11个轮密钥
fori+4to43
tempw[i-1]
ifi=0(mod4)
thentempSubWord(RotWord(temp))田Rcon[i/4]
w[i]+w[i-4]田temp
代码实现如下图所示,这里主要是采用2个函数,RotWord用于循环左移,subword用于s盒替换,最后是生成轮密钥,采用上述的算法。
#将4字节的数循环左移8位
#将4字节的数循环左移8位
defrot_word(self,byte4_block):
EQ\*jc3\*hps25\o\al(\s\up11(#),r)e根tEQ\*jc3\*hps25\o\al(\s\up11(据),ur)EQ\*jc3\*hps25\o\al(\s\up11(p),n)EQ\*jc3\*hps25\o\al(\s\up11(on),yte)_lEQ\*jc3\*hps25\o\al(\s\up11(点),o)c,kO要x前fffEQ\*jc3\*hps25\o\al(\s\up11(32),fff))位8)|(byte4_block24)
#S
#S盒替换
defsub_word(self,_4byte_block):
#S盒替换,_4byte_block为一个4
您可能关注的文档
- 学校实验室实验器材招标文件.doc
- 专题20力学实验.doc
- 种子综合实验实验指导必威体育精装版.doc
- 药物化学实验.doc
- 系统设计与数据库系统实验实验1_实验1 MYSQL数据库SQL语句练习实验_2019(1)(1).doc
- 移动设备交互应用实验实验2-我的头条_实验2 沈晨玙 2019092121.doc
- 中考化学实验题集训之探究实验(1)(解析版).doc
- 因果机制的实验验证.doc
- 高考化学 实验设计与评价 综合性实验精品试题.doc
- 网络系统建设与运维(初级)-实验 6.4 综合实验.doc
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
文档评论(0)