
岛爷札记
文章平均质量分 91
江南无妖
这个作者很懒,什么都没留下…
展开
-
密码学 实现64bit DES C语言
1.Feistel网络结构①明文(输入)块大小(Block Size):64bit~128bit,且是2的倍数;②密钥长度/大小(Key Size):56~256③Number of Rounds:循环次数④Round Function:轮函数,一定是非线性的,不要求可逆明文(Plaintext)长度为2W位(该结构加密的名文bit数长度必须为偶数,比如DES的明文长度为64bit)。①先将2w位的明文分为左半部分(前w位L0)和右半部分(后w位R0)。②将输入的右侧R0,直接输出到输出的左侧为密文的左半部原创 2022-06-18 20:40:11 · 1232 阅读 · 1 评论 -
密码学 实现64bit RSA c语言
1.1 RSA产生公私钥对具体实例讲解如何生成密钥对1.随机选择两个不相等的质数p和q。 alice选择了61和53。(实际应用中,这两个质数越大,就越难破解。)2.计算p和q的乘积n。 n = 61×53 = 3233 n的长度就是密钥长度。3233写成二进制是110010100001,一共有12位,所以这个密钥就是12位。实际应用中,RSA密钥一般是1024位,重要场合则为2048位。3.计算n的欧拉函数φ(n)。称作L 根据公式φ(n) = (p-1)(q-1)原创 2022-06-18 20:34:38 · 736 阅读 · 1 评论 -
密码学 AES算法实现 c语言
最后轮没有列混合初始变换: 明文4*4=16字节=128bit 密钥4*4=128bit 明文和初始密钥 异或字节代换S-Box行移位 列混合乘法 乘2时 左移1位且分为当首位为0时;当首位为1时 两种情况乘3时 将3拆为2+1乘4时 将4拆为2*2轮密钥加子密钥获得(密钥扩展)AES算法主要包括以下几个部分:s盒模型,密钥扩充,轮密钥加,字节代换,行移位,列混合。而本文主要讨论AES-128,进行10轮迭代,在第10轮时少一次列混合。(1)密钥扩充 AES首先将初始密钥输入到一个4*4的原创 2022-06-18 20:31:24 · 4058 阅读 · 1 评论 -
计算机系统基础实验 AttackLab
本文是作者的作业备份,仅作参考,不可照搬抄袭!本实验分为五个阶段,ctarget的三个使用的是CI(code-injection),rtarget的两个阶段使用的是ROP(return-oriented-programming),如表1所示ctarget和rtarget都是用getbuf函数从标准输入读入字符串,getbuf函数定义如下:函数Gets类似于标准库函数gets,从标准输入读入一个字符串(以’\n’或者end-of-file结束),将字符串(带null结束符)存储在指定的目的地址。从这段代码可以原创 2022-06-18 20:24:35 · 3122 阅读 · 0 评论 -
计算机系统基础实验 BombLab
本实验通过要求你使用课程所学知识拆除一个“binary bombs”来增强对程序的机器级表示、汇编语言、调试器和逆向工程等方面原理与技能的掌握。一个“binary bombs”(32位二进制炸弹,下文将简称为炸弹)是一个Linux可执行程序,包含了7个阶段(或层次、关卡)。炸弹运行的每个阶段要求你输入一个特定字符串,你的输入符合程序预期的输入,该阶段的炸弹就被拆除引信即解除了,否则炸弹“爆炸”打印输出 “BOOM!!!”。实验的目标是拆除尽可能多的炸弹层次。 每个炸弹阶段考察了机器级程序语言的一个不同方面,原创 2022-06-18 19:55:08 · 5984 阅读 · 0 评论