当前位置:首页 » 操作系统 » 算法题破解

算法题破解

发布时间: 2023-08-14 23:34:35

1. DES中S盒算法——解题

        在密码学中,S盒(Substitution-box)是对称密钥算法执行置换计算的基本结构。S盒用在分组密码算法中,是唯一的非线性结构,其S盒的指标的好坏直接决定了密码算法的好坏。 ——网络

S盒有8个盒子,下表是DES算法中S4盒的选择矩阵,如果其输入为101011,求输出结果。

解:已知输入为101011

(1)、取头尾11,进行二进制转换为十进制为3,表示取表格的第3行

(2)、然后中间0101,进行二进制转换为十进制为5,表示取表格的第五列

(3)、(3,5)对应表格中的数字是12,12转换为二进制就是1100

答:如果该盒输入为101011则输出的结果为1100

2. 帮我解决一道C语言算法的问题

这是一个最大子序列和问题。通常用动态规划法解。至于动态规划的数学模型,懒得去查了,直接给你找了一个算法,你凑合看吧。

从整数序列头部开始扫描,假设现扫描到的位置为i,求取从0到i所有元素的和sum[i],sum[i]取最大值的地方即为最大子序列的结束位置,设为a。从结束位置a向前扫描,找到第一个小于零的位置b,b+1就是最大子序列的开始位置。求从b+1到a位置的值即可得到最大子序列和。按此思路该算法时间复杂度为O(m+n),其中m, n分别为最大子序列的长度、给定整数序列的长度。
改进:根据对上述算法的进一步分析,可以知道,最大子序列和中必然不存在前缀子序列小于0的情况,于是设一ThisSum用于指示当前子序列和。改进算法描述如下:从整数序列头部开始扫描,累加序列元素和ThisSum,若ThisSum<0,则停止累加子序列和,将ThisSum清零,并从下一位置重新开始累加ThisSum,否则将ThisSum与当前MaxSum比较,并更新MaxSum。此改进算法时间复杂度仅为O(n),n为给定整数序列的长度。

int MaxSubsequenceSum3(const int A[], int N)

{

int ThisSum, MaxSum, i;

ThisSum = MaxSum = 0;

for(i = 0; i < N; i++)

{

ThisSum += A[i];

if(ThisSum > MaxSum)

MaxSum = ThisSum;

else if(ThisSum < 0)

ThisSum = 0;

}

return MaxSum;

}

3. 异或算法的密钥破解,知道密文和明文 ,可以求密钥吗已知是异或加密的,写个原理也好的。

可以。
比如:明文(如1111)⊕密钥(如1001)得到密文(如0110)
然后拿密文(0110)⊕明文(1111)就得密钥(1001)

热点内容
压缩软件流程 发布:2025-03-10 22:00:43 浏览:300
安卓哪个国家的品牌好 发布:2025-03-10 21:53:16 浏览:12
ftp字符集锦 发布:2025-03-10 21:37:00 浏览:77
如何提取脚本按键 发布:2025-03-10 21:29:04 浏览:221
辽宁省dns服务器怎么填物理机 发布:2025-03-10 21:25:05 浏览:787
云计算机服务器区别 发布:2025-03-10 21:10:21 浏览:235
古代锦衣卫需要哪些配置 发布:2025-03-10 21:06:17 浏览:618
ps样式在的文件夹 发布:2025-03-10 20:50:07 浏览:614
图像压缩编码算法 发布:2025-03-10 20:48:23 浏览:386
堕落解压缩码 发布:2025-03-10 20:46:55 浏览:626