对DES中的第一个S盒子S1,计算随机变量 X2⊕Y1⊕Y2⊕Y3⊕Y4 的偏差

什么是偏差:

S盒是DES中连接Bi和Ci的桥梁:


每个Bi都是6bits,每个Ci都是4bits,S盒是一个6bits->4bits的代换。设S盒的输入为X1~X6,S盒的输出为Y1~Y4

第一个S盒的结构:

代码:

from fractions import Fraction
# DES S盒1
list = [[14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7],
[0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8],
[4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0],
[15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13]]
print("Ci十进制 Ci二进制(Y1~Y4)  行  列  行二进制 列二进制 Bi二进制(X1~X6)")
row=0
count=0
for i in list:row += 1row_binary = '{:02b}'.format(row-1)column = 0for j in i:column += 1column_binary = '{:04b}'.format(column-1)Yi = '{:04b}'.format(j) # Y1Y2Y3Y4Xi = row_binary[0]+column_binary+row_binary[1]print("%7s%13s   (%2s,%2s)%7s%7s%11s"%(j,Yi,row,column,row_binary,column_binary,Xi))if (int(Xi[1])+int(Yi[0])+int(Yi[1])+int(Yi[2])+int(Yi[3]))%2==0:count+=1
print("\n对于DES中的第一个S盒子S1,随机变量 X2⊕Y1⊕Y2⊕Y3⊕Y4 的偏差为:",Fraction(count,64)-Fraction(1,2))

运行结果:

Ci十进制 Ci二进制(Y1~Y4)  行  列  行二进制 列二进制 Bi二进制(X1~X6)14         1110   ( 1, 1)     00   0000     0000004         0100   ( 1, 2)     00   0001     00001013         1101   ( 1, 3)     00   0010     0001001         0001   ( 1, 4)     00   0011     0001102         0010   ( 1, 5)     00   0100     00100015         1111   ( 1, 6)     00   0101     00101011         1011   ( 1, 7)     00   0110     0011008         1000   ( 1, 8)     00   0111     0011103         0011   ( 1, 9)     00   1000     01000010         1010   ( 1,10)     00   1001     0100106         0110   ( 1,11)     00   1010     01010012         1100   ( 1,12)     00   1011     0101105         0101   ( 1,13)     00   1100     0110009         1001   ( 1,14)     00   1101     0110100         0000   ( 1,15)     00   1110     0111007         0111   ( 1,16)     00   1111     0111100         0000   ( 2, 1)     01   0000     00000115         1111   ( 2, 2)     01   0001     0000117         0111   ( 2, 3)     01   0010     0001014         0100   ( 2, 4)     01   0011     00011114         1110   ( 2, 5)     01   0100     0010012         0010   ( 2, 6)     01   0101     00101113         1101   ( 2, 7)     01   0110     0011011         0001   ( 2, 8)     01   0111     00111110         1010   ( 2, 9)     01   1000     0100016         0110   ( 2,10)     01   1001     01001112         1100   ( 2,11)     01   1010     01010111         1011   ( 2,12)     01   1011     0101119         1001   ( 2,13)     01   1100     0110015         0101   ( 2,14)     01   1101     0110113         0011   ( 2,15)     01   1110     0111018         1000   ( 2,16)     01   1111     0111114         0100   ( 3, 1)     10   0000     1000001         0001   ( 3, 2)     10   0001     10001014         1110   ( 3, 3)     10   0010     1001008         1000   ( 3, 4)     10   0011     10011013         1101   ( 3, 5)     10   0100     1010006         0110   ( 3, 6)     10   0101     1010102         0010   ( 3, 7)     10   0110     10110011         1011   ( 3, 8)     10   0111     10111015         1111   ( 3, 9)     10   1000     11000012         1100   ( 3,10)     10   1001     1100109         1001   ( 3,11)     10   1010     1101007         0111   ( 3,12)     10   1011     1101103         0011   ( 3,13)     10   1100     11100010         1010   ( 3,14)     10   1101     1110105         0101   ( 3,15)     10   1110     1111000         0000   ( 3,16)     10   1111     11111015         1111   ( 4, 1)     11   0000     10000112         1100   ( 4, 2)     11   0001     1000118         1000   ( 4, 3)     11   0010     1001012         0010   ( 4, 4)     11   0011     1001114         0100   ( 4, 5)     11   0100     1010019         1001   ( 4, 6)     11   0101     1010111         0001   ( 4, 7)     11   0110     1011017         0111   ( 4, 8)     11   0111     1011115         0101   ( 4, 9)     11   1000     11000111         1011   ( 4,10)     11   1001     1100113         0011   ( 4,11)     11   1010     11010114         1110   ( 4,12)     11   1011     11011110         1010   ( 4,13)     11   1100     1110010         0000   ( 4,14)     11   1101     1110116         0110   ( 4,15)     11   1110     11110113         1101   ( 4,16)     11   1111     111111对于DES中的第一个S盒子S1,随机变量 X2⊕Y1⊕Y2⊕Y3⊕Y4 的偏差为: -9/32

对于DES中的第一个S盒子S1,随机变量 X2⊕Y1⊕Y2⊕Y3⊕Y4 的偏差为: -9/32

对DES中的第一个S盒子S1,计算随机变量 X2⊕Y1⊕Y2⊕Y3⊕Y4 的偏差相关推荐

  1. 根据坐标如何在matlab中l连成曲线,matlab中,如何将两条曲线画在一个坐标系里,plot(x1,x2,y1,y2)还是怎样...

    matlab中,如何将两条曲线画在一个坐标系里,plot(x1,x2,y1,y2)还是怎样以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快 ...

  2. 对于DES的S盒 计算随机变量的偏差

    题目 对于DES的S1,计算下列随机变量的偏差 X 2 ⨁ Y 1 ⨁ Y 2 ⨁ Y 3 ⨁ Y 4 {X_2}\bigoplus{Y_1}\bigoplus{Y_2}\bigoplus{Y_3}\ ...

  3. java定义一个盒子类box_定义一个Box(盒子)类,在该类定义中包括数据成员: length(长),width(宽)和height(...

    定义一个Box(盒子)类,在该类定义中包括数据成员: length(长),width(宽)和height( 定义一个Box(盒子)类,在该类定义中包括数据成员: length(长),width(宽)和 ...

  4. Java中实现DES加解密的一个类

    //转byte应该要指定编码方式(不然可能会出错) //PASSWORD_CRYPT_KEY需要为八位字节 package com.global.util;import java.io.Unsuppo ...

  5. python动画精灵梦叶罗丽_精灵梦叶罗丽中出现过多少宝石盒子?灵犀阁的盒子造型最罕见...

    精灵梦叶罗丽第八季已经进入了暑期档的正式播出,不过每当想起要等待一周的时间才能看到下一集,也是有些心塞啊,所以说大家可以利用闲暇的时间回顾一下剧情,在细节中发现里面的一些有趣又好看好玩的事情或者是好看 ...

  6. vue中,获取一个div的高赋值给另一个div (自适应)

    vue中,获取一个div的高赋值给另一个div (自适应) 问题描述: 左侧是video 为了让video不出现黑边 video是16:9的(怎么写成16:9的盒子 下次说), 左侧的高度会随着页面宽 ...

  7. vue中手写一个放大镜功能

    vue中手写一个放大镜功能 有的时候需要对图片进行放大,类似于电商的商品放大功能,于是在这个想法上写了一个放大镜的功能,并且在放大镜的基础上新添加了一些小功能,下面开始吧! 放大镜是封装的组件的形式, ...

  8. javascript案例_如何在JavaScript中使用增强现实-一个案例研究

    javascript案例 by Apurav Chauhan 通过Apurav Chauhan 如何在JavaScript中使用增强现实-一个案例研究 (How to use Augmented Re ...

  9. Spring 如何在一个事务中开启另一个事务?

    Spring项目,需要在一个事务中开启另一个事务. 上面提到的情景可能不常见,但是还是会有的,一旦遇到,如果业务比较复杂,就会很麻烦,但是还是有解决的方案的,比如将一个service方法拆成两个方法, ...

最新文章

  1. 在Ubuntu 14.04和CentOS上安装boost1.55二进制包
  2. 协同工作流引擎,开启流程优化新纪元
  3. 文巾解题 面试题 03.06. 动物收容所
  4. Special Numbers 进制(1100)
  5. python legend位置_关于matplotlib-legend 位置属性 loc 使用说明
  6. 安卓手机运行ios教程_英雄联盟手游傻瓜安装教程,IOS/安卓双端可用!
  7. mcq 队列_MCQ | 量子密码学
  8. linux系统平均价格,简单认识Linux系统平均负载
  9. Data Binding 使用教程一
  10. 一次性输血器行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  11. 免费录屏、最快截图、装X必备、看完工作学习效率直接翻倍
  12. Ajax学习笔记-get请求参数-3
  13. arcgis里面如何删除标记_ArcGIS技术篇——标记符号制作
  14. 【STM32】两轮自平衡小车学习笔记2
  15. 什么是监控报警以及如何实现,超详细讲解
  16. 10万字公安大数据平台建设项目方案
  17. 分享一套永久免费的ChatGPT使用方法
  18. 使用CUPS打印服务
  19. 想要搭建自己的云主机可以怎么做
  20. 反演产品的精度和空间分辨率

热门文章

  1. uniapp 播放视频
  2. 云计算架构自己的理解
  3. 新东方雅思词汇---6.2、重音在词根上,不在前后缀(名词除外)
  4. 台达服务器电源性能怎么样,台达电源怎么样?该怎么选择台达电源?
  5. 3D Touch介绍:电子秤App与快捷操作
  6. LINUX FTP用户的创建
  7. 为什么说冯诺依曼结构是现代计算机的基础,为什么现代计算机被称为冯·诺依曼结构计算机??...
  8. 读书笔记《底层逻辑2·理解商业世界的本质》
  9. Octave4.4.1-64位下载
  10. 获取当前所在地的天气