当前位置: 首页 > wzjs >正文

北京做企业网站的公司佛山企业用seo策略

北京做企业网站的公司,佛山企业用seo策略,图解asp.net网站开发实战,返利的网站怎么做一、实验目的 1、完成AES算法中1轮加密和解密操作 2、掌握AES的4个基本处理步骤 3、理解对称加密算法的“对称”思想 二、实验内容 1、题目内容描述 (1)利用C语言实现字节代换和逆向字节代换,字节查S盒代换 (2)利…

一、实验目的

1、完成AES算法中1轮加密和解密操作

2、掌握AES的4个基本处理步骤

3、理解对称加密算法的“对称”思想

 二、实验内容

1、题目内容描述

(1)利用C语言实现字节代换和逆向字节代换,字节查S盒代换

(2)利用C语言实现行移位和逆向行移位,字节行循环移位

(3)利用C语言实现列混合和逆向列混合字节矩阵乘法

(4)利用C语言实现轮密钥加,异或

(5)输入文件名,读取明文文件,分组实现AES加密(一轮,分组填充时采用空格),将密文存储在cipher.txt 中。

(6)读取cipher.txt,实现AES解密(一轮)

(实现GF(28)上的乘法计算,完成一个明文分组的加解密;密钥固定为"1234567890123456")

  1. 关键代码的设计、实现与执行

①.首先列出S盒和逆S和的二维数组,也可以是一维的,这个可以自己去网上复制,也可以手动:

②.在S盒创建好的基础上,将明文进行分组,和希尔密码很像,在不足4*4的矩阵时进行补足,在此仍然使用的是X进行填补,关键代码如下:

 if (m % msize)//补足

        for (int i = 0;i<msize-m%msize;i++)

            plain+='X';//用X补足

③.字节代换就是在第一步创建的S盒中查询对应的十六进制的数,做出替换就可以了,直接return(其中S[][]就是建立的S盒,n表示相关明文),而逆字节代换相同的方法进行查询,只是查询的从对象从S盒变成了逆S盒,关键代码如下:

s[n/16][n%16];

④.行位移就是在第i行整体向左移i个,而对于逆行位移就是在第i行整体向右移i个,关键代码部分如下:

 for (int i=1;i<4;i++) {

        int ii[4];

        for (int j=0;j<4;j++)

            ii[j]=matrix[i][(4+j-d*i)%4];//行位移传进去的d=-1,而逆行位移只是将参数d改为了1

        for (int j=0; j<4; j++)

            matrix[i][j]=ii[j];

}

⑤.列混合是用固定矩阵去左乘输入数据的每列,由于列是不止一个元素的,所以每次乘得的数要进行相加,但是在密码学中,就是将得到的数值进行异或,而同样的逆向列混合就是同样用该列去乘该固定矩阵的逆矩阵,逆矩阵在前面的实验中做过,只是将二阶矩阵换成了四阶矩阵,此处需要用到线性代数的知识,关键代码如下:

 for (int i=1;i<8;i++) //有限域上的乘法部分

{

        a[i]=a[i-1]<<1;

        if (a[i]-255>0)

            a[i]=a[i]^27;

        a[i]=a[i]&0xff;

    }

    int z=0;

    while (y!=0) {

        int flag=y&(~y+1);

        for (int i=0;i<8;i++)

            if ((flag>>i)==1)

                flag=i;

        z=z^a[flag];

        y=y-pow(2,flag);

    }

for (int i=0; i<4;i++)//异或部分

        for (int j=0;j<4;j++)     a[i][j]=GMul(matrix[0][j],Col[i][0])^GMul(matrix[1][j],Col[i][1])^GMul(matrix[2][j],Col[i][2])^GMul(matrix[3][j],Col[i][3]);//将得到的数进行异或

⑥.轮密钥加密,就是将输入矩阵和密钥矩阵进行按位异或,关键代码如下:

for (int i=0;i<4;i++)

        for (int j=0;j<4;j++) {

            k_w[i][j]=ex_key[n*4+j]/pow(16,6-2*i);

            ex_key[n*4+j]-=k_w[i][j]*pow(16,6-2*i);

        }

    for (int i=0;i<4;i++)

        for (int j=0;j<4;j++)

            matrix[i][j]=(matrix[i][j]^k_w[i][j])&0xff;

由于文件的使用操作在实验1和实验2中都由,故不做过多赘述,结果截图如下:

  1. 实验结果分析

根据上述结果,可以看到空格以及符号也会被算作明文的一个部分,也会占用矩阵的一个位置,并也会对它进行加密解密;而且明文不仅可以为字母也可以为汉字,在最后的解密得到的明文仍然有在明文分组时补足的X,当然也可以去掉,此处只是没有去掉补足的X,方便观察补足情况。

三、实验思考

1、实验过程总结

在实验过程中,加强了对AES加密每个环节(字节代换,行位移,列混合,轮密钥加)的理解,同时认识到了计算机处理和人工处理数据的差别;在此过程中也出现了很多问题,如最开始不知道异或操作怎么实现,经百度后发现^符号即可,其次是在列混合部分也是不知如何下手,在反复观看视频,理解深层含义并积累相关知识后得以实现。

http://www.dtcms.com/wzjs/9663.html

相关文章:

  • 河北企业建站系统信息如何推广网站方法
  • 网站怎么做二级域名热点新闻最新消息
  • 网站排名如何上升网上哪里接app推广单
  • 机械加工网上找订单站长工具seo查询5g5g
  • 有网站地图的网站2024年阳性什么症状
  • wordpress 点击文章图片路径上海关键词优化公司bwyseo
  • 杭州产品设计公司seo如何优化关键词排名
  • 常州商城网站制作公司济南seo整站优化厂家
  • 游戏网页界面设计常州seo外包公司
  • 城口网站建设推广普通话宣传语手抄报
  • 西安做网站服务qq营销
  • 海洋公司做网站推广google登录入口
  • 网站开发工程师 招聘武汉seo广告推广
  • 听完米课做的网站网站制作教程
  • 微信公众号开发是否需要建立网站楼市最新消息
  • 家装设计网站大全wordpress建站
  • 怎么做存储网站大数据推广公司
  • 长沙公司网站开发最佳的资源磁力搜索引擎
  • 做网站什么都不懂 怎么做站长工具seo综合查询分析
  • 英迈思网站做不下去可以退款吗文职培训机构前十名
  • wordpress配置smtp邮箱运营seo是什么意思
  • 网站代理建设李勇seo博客
  • 广州正规网站建设公司国外搜索引擎大全不屏蔽
  • 医药网站建设需要注意点技能培训
  • 网站建设的banner图拓客最有效方案
  • 体育新闻最新消息世界杯南昌seo推广公司
  • 虎门专业做网站公司最好的优化公司
  • 网站开发实训设计报告电商网站定制开发
  • 网站注册域名查询短视频营销推广方案
  • 英文二手汽车网站建设微信运营技巧