第一范文网 - 专业文章范例文档资料分享平台

中南大学现代密码学实验报告 (3)

来源:用户分享 时间:2020-06-23 本文由萌喵幼女 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

S[1]=1,…… ,S[255]=255。同时对密钥key[key_len]的进行填充到随机序列密钥rc4key[256]中,(key_len为key的字节长度,且不大于256)。循环重复用key,直到rc4key的所有字节都被赋值。然后根据密钥re4key去对S盒进行变换。这些预操作可概括如下:

//S盒先初始化为s[0]=0,s[1]=1...s[255]=255

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

S[i]=i;

//初始化序列化密钥

for(i = 0; i < 256; i++) { }

for( j = 0, i = 0; i < 256; i++) { }

j = (rc4key[i] + S[i] + j) % 256;

swap(&S[i], &S[j]); //交换S[i]和S[j]的数值 j = i % key_len ; rc4key[i] = key_data[j];

//根据密钥rc4key,填充S盒

矢量S一旦完成初始化,输人密钥就不再被使用.密钥流的生成是从s[0]到S[255],对每个S[i],根据当前S的值,将S[i]与S中的另一字节置换.当S[255]完成置换后,操作继续重复,从S[0]开始。操作如下:

//生成随机序列密钥

for(counter = 0; counter < buffer_len; counter++)

{ }

i = (i + 1) % 256; j = (S[i] + j) % 256; swap(&S[i], &S[j]);

t = (S[i] + S[j]) % 256; rc4key[counter] = S[t];

这两个过程使用同样的函数即可,加密中,将k的值与下一明文字节异或;解密中,将k的值与下一密文字节异或。操作如下:

//将缓冲区数据和随机系列密钥进行异或,则可进行加密或者解密

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

result[i] = buffer_data[i] ^ rc4key[i];

程序流程图

图1.1

RC4流程图

3.运行结果

首先,输入密钥cryption,输入明文Idolikethisbook,实验结果如图所示。

加密结果1

如果密钥不变,明文变为idolikethisbook,实验结果如图所示。可以看到,当密钥不变,明文做一小部分改变的时候(第一位由‘I’改变为‘i’),只有对应位的密文发生改变。

加密结果2

[问题讨论]

1. 在DES算法中有哪些是弱密钥?哪些是半弱密钥?

2. 改变明文或密钥中的一个比特值可能影响AES值中的多少比特?

3.分析实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。 回答问题 答

1、弱密钥:DES在16迭代中分别使用不同的子密钥来确保DES的安全性,如果存在这样一个秘钥,尤其产生的子密钥是相同的,则称其为弱密钥。即K1=K2=…=K16

半弱密钥:由K产生的子密钥K1,K2,…,K16中存在着重复但是不是完全相同,则称为半弱密钥

2、最多影响128比特 3、

实验二 公钥密码算法实验

[实验目的]

1.掌握密码学中常用的公钥密码算法RSA、ECC的算法原理。 2.掌握RSA、ECC的算法流程和实现方法。

[实验预备]

1.RSA和ECC密码系统所基于的数学难题是什么? 2.RSA和ECC算法的基本原理。

3.公钥密码系统可以取代对称密码系统吗? 4.RSA和ECC的实现过程。

[实验内容]

1. 分析RSA、ECC的实现过程。 2. 用程序设计语言将算法过程编程实现 3. 完成数据的加密运算和解密运算 输入明文:security 输入密钥:cryption 对ASCII码进行加密和解密。

[实验步骤] 1. 预习RSA、ECC算法。 2. 了解大素数的生成、大数的运算、公钥、私钥的生成。 3. 写出算法流程,用程序设计语言将算法过程编程实现。 4. 输入指定的明文和密钥进行实验,验证结果。 写出所编写程序的流程图和运行界面、运行结果。

一、RSA 算法

1. RSA算法及原理

(1)选取长度相等的两个大素数p 和q,计算其乘积: n = pq

然后随机选取加密密钥e,使e 和(p–1)(q–1)互素。 最后用欧几里德扩展算法计算解密密钥d,以满足 ed = 1(mod(p–1) ( q–1)) 即d = e–1 mod((p–1)(q–1)) e 和n 是公钥,d 是私钥

(2)加密公式如下: ci = mi^e(mod n)

(3)解密时,取每一密文分组ci 并计算: mi = ci^d(mod n)

Ci^d =(mi^e)^d = mi^(ed) = mi^[k(p–1)(q–1)+1 ] = mi mi^[k(p–1)(q–1)] = mi *1 = mi (4)消息也可以用d 加密用e 解密 2. RSA算法加密解密过程

发送者 B 将明文信息加密后变成密文信息发送给接受者A,A解密。 (1) 加密过程。发送者 B 将作如下事情: a. 得到确认的接受者 A 的加密公钥公告栏等处得到)

b. 将明文信息表示为整数 c. 计算整数

d. 将整数 c 转换成密文信息.

f. 将密文信息发送给 A. (可以在公开通道中传递, 在不知道解密私钥的情况下第三者无法破解密文信息)

(2) 解密过程。为了将密文信息恢复为明文信息, 接受者 A 将作如下事情: a. 将密文信息转换成整数c. b. 运用解密私钥

恢复整数

.

c. 将整数 c 转换成明文信息. 3.RSA算法实现

。(要求以最有效的方式来表达信息)

(从认证中心或电话本或信息

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新高中教育中南大学现代密码学实验报告 (3)全文阅读和word下载服务。

中南大学现代密码学实验报告 (3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1098596.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top