没有合适的资源?快使用搜索试试~ 我知道了~
ZUC密码分析实验1
资源详情
资源评论
资源推荐
ZUC密码分析实验
1901210403 胡兆杰
本次实验是计算祖冲之密码算法两个S盒的差分分布表和线性逼近表。我⽤了⽼师上传的zuc_core.c 中
的S盒数据,并使⽤python实现。
差分分析表的实现
祖冲之密码算法的S盒的输⼊有8个⽐特,其中前四个表示⾏数,后四个表示列数,置换时将输⼊换成S
盒中相应位置的值。
要构造差分分析表,我们需要两个明⽂x和x*,其中x x* 为⼀个定值x',再将x和x*分别输⼊S盒运
算,得到输出为y和y*。计算y y*的值y',统计y'中值的分布情况。在实验中,我们让x'取遍00000000
到11111111的所有值,对于每⼀个x',让x也从00000000取到11111111,计算相应的x*,再计算y和
y*,最终得到y',统计从00000000到11111111中的每个值在y'中的出现次数,最终将所有结果汇总,
形成差分分析表。
在实现中,由于观察到书上的例⼦中有许多项的出现次数是0,所以为了节省存储空间,在每⼀轮统计
中,我⽤⼀个字典只存储出现次数⼤于⼀次的值和他们的出现次数,最后在打印输出时再将不在字典中
的数的出现次数都置0。
线性逼近表的实现
线性逼近表是⽤于线性分析的表,和差分分析表稍有不同。
线性逼近表分析的是明⽂X和X经过S盒的输出Y的某些位组成的随机变量。表中有a和b两种元素,a表示
X的某些位组成的数,b表示Y的某些位组成的数。⽐如a为3则表示 和 为1,b为4则表示 为1,则
此时的随机变量即为 。我们⾸先统计从00000000到11111111的S盒输出的值,再逐条
统计满⾜ 的个数并记录。和差分分析表⼀样,我们仍然要遍历所有的值,将所有结
果汇总起来,最后形成⼀张256*256的表。
在实现中,我们先将整数转换成8位的⼆进制数,找出为1的位置,在S盒置换表中将这些位置上的值进
⾏异或,如果结果为0,则计数器加1,直到统计完所有的值。
实验结果
为更好的展示实验结果,我将⽣成的表输出到excel⽂件中,下⾯是⽂件的部分截图。
ddt_s0
神康不是狗
- 粉丝: 31
- 资源: 338
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Java项目基于SSM框架的民宿预订管理系统设计与实现+代码+论文+答辩PPT
- Java项目基于SSM实现的珠宝购物网站系统的建设+代码+系统设计+论文
- Python课程设计案例-于记录学生的个人信息和成绩,并提供一些基本的功能,比如添加学生信息、查找学生信息、计算学生平均成绩
- .archivetemp4-2垃圾分类字典 .py
- 基于Java+MySQL图书销售管理系统
- 使用Docker 配置 LNMP 环境
- ffmpeg+alsa 播放音频
- 8051Proteus仿真c源码用1602LCD与DS18B20设计的温度报警器
- iTunes64Setup.12.13.2.3.exe 支持win7版本
- cleanflight-2.5.0-CC3D
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0