《大数据安全与隐私》课程报告.docxVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《大数据安全与隐私》课程 实验报告 实验一:现代密码学基础技能(阶梯三) 实验原理: 1、Socket通信原理 Socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口,供应用层调用实现进程在网络中的通信。Socket起源于UNIX,在Unix一切皆文件的思想下,进程间通信就被冠名为文件描述符(file desciptor),Socket是一种“打开—读/写—关闭”模式的实现,服务器和客户端各自维护一个“文件”,在建立连接打开后,可以向文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。 在Socket网络通信过程需要分别构建服务端和客户端,服务器与客户端之间通信时,两端都建立了一个Socket对象,然后通过Socket对象对数据进行传输。通常服务器处于一个无限循环,等待客户端的连接。 2、DH密钥协商过程 迪菲-赫尔曼(Diffie–Hellman)密钥协商是在美国密码学家惠特菲尔德·迪菲和马丁·赫尔曼的合作下发明的,发表于 1976 年。它是第一个实用的在非保护信道中创建共享密钥方法。DH 算法可以在一个不安全的信道上建立安全连接,从而解决的不安全信道上信息安全交换的问题。 假设 Client_A 与 Client_B 在不安全的信道上交换信息,他们通过 DH 算法协商出一个密钥,具体流程如下: Client_A 与 Client_B 确定算法协商使用质数 p 的整数模 n 乘法群以及其原根 g Client_A 生成随机数?a∈1,p-1,计算? Client_B 生成随机数?b∈1,p-1,计算?B = Client_A 计算?s = Client_B 计算?s = A 通过上述过程,Client_A 与 Client_B 得到了一个安全的共享密钥 s。 3、AES加密过程 高级加密标准(AES,Advanced Encryption Standard),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES(Data Encryption Standard),已经被多方分析且广为全世界所使用。 严格地说,AES和Rijndael加密法并不完全一样(虽然在实际应用中两者可以互换),因为Rijndael加密法可以支持更大范围的区块和密钥长度:AES的区块长度固定为128比特,密钥长度则可以是128,192或256比特;而Rijndael使用的密钥和区块长度均可以是128,192或256比特。加密过程中使用的密钥是由Rijndael密钥生成方案产生。 AES加密过程在一个4×4的字节矩阵上运作,其初值就是一个明文区块(矩阵中一个元素大小就是明文区块中的一个Byte)。其矩阵的“列数(Row number)”可视情况增加)加密时,各轮AES加密循环(除最后一轮外)均包含4个步骤: (1)AddRoundKey—矩阵中的每一个字节都与该次回合密钥(round key)做XOR运算;每个子密钥由密钥生成方案产生。 (2)SubBytes—透过一个非线性的替换函数,用查找表的方式把每个字节替换成对应的字节。 (3)ShiftRows—将矩阵中的每个横列进行循环式移位。 (4)、MixColumns—为了充分混合矩阵中各个直行的操作。这个步骤使用线性转换来混合每内联的四个字节。最后一个加密循环中省略MixColumns步骤,而以另一个AddRoundKey取代。 4、实验步骤 (1)确定服务端和客户端运行环境,服务端为腾讯云服务器,系统为Linux CentOS7,客户端为本地主机,现有文件1.jpg及2.doc欲发送至客户端。 客户端使用files文件夹接收待传输文件,初始为空。 (2)服务器开启socket监听,开放10870端口等待客户端连接;之后客户端确立连接端口并发起连接。 (3)建立连接后两者进行DH回话密钥协商,根据DH密钥生成AES密钥,客户端使用AES密钥加密文件名信息并发送给服务端,服务端使用生成的 AES密钥进行解密。 (4)客户端以二进制流形式读取文件信息,加密后发送给服务端。服务端收到解密后,依据(3)中文件名信息写入文件并保存在files文件夹下。 (5)确认文件发送完成后客户端主动向服务端发送close信息中断连接,服务端收到信息自动中断监听并关闭连接。 实验结果: 1、实验开始前进行检查,登录腾讯云服务器,发现服务端未保存文件。 2、服务端执行python命令开始监听,随后开启客户端,执行结果如下: 3、运行完毕后检查服务端文件接收情况,结果如下: 传输后图片和doc内容能够正常写入并显示,文件传输成功。 实验总结与心得: 编写文件加密传输程序时,不同于之前使用txt文件作为加密内容,我在客户端直接对

文档评论(0)

t_github + 关注
实名认证
文档贡献者

计算机研究者

1亿VIP精品文档

相关文档