![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
密码学
密码学原理以及一些实验
chuxuezheerer
路要一步一步走,你想要的终会有
展开
-
实验五 视频大文件验证
一.实验内容假设某网站托管着一个任何人都可以下载的视频大文件F。下载文件的浏览器需要确保文件 是真实的,然后才能向用户显示视频内容。一种可行的方法是让网站使用抗碰撞散列函数 来散列F的内容,然后通过一些可信信道将得到的散列值h = H(F)分发给用户(稍后我们 将使用数字签名)。浏览器下载整个文件F,检查H(F)是否等于可信的哈希值h;假如相等, 浏览器便将视频显示给用户。然而,这种方法意味着只有在下载好完整的视频之后才能开始播放视频内容。我们本次实 验的目标是构建一个文件认证系统,使得浏览器在下载时可原创 2020-07-06 14:37:23 · 767 阅读 · 0 评论 -
实验三 编程实现CBC和CTR模式下的AES Python实现
文章目录一.实验目的二. 实验内容三.要求四.实验内容(一)CBC模式下的AES1.CBC模式简介2.解密过程:解密过程代码实现3.加密过程加密过程代码实现加密解密代码实现:(二)CTR模式下的AES加密1.CTR模式简介2.加密过程3.CTR解密过程同理CTR模式完整代码实现:一.实验目的1.了解分组密码的结构特点;2.掌握传统分组密码结构AES,以及AES在两种工作模式CBC和CTR下的实现;3.通过使用Python(推荐)或者C,编程分别实现CBC和CTR模式下的AES加密解密。二. 实验内原创 2020-06-15 21:59:03 · 4970 阅读 · 1 评论 -
实验四 RSA中公开的模数N
实验四 RSA中公开的模数N一.实验内容通常,构成獒獓獁模数N的素数p和q应该被独立地产生的。但是,假设一个开发者决定通过 选择一个随机数R,并搜索其附近的两个素数作为p和q。那么,我们来证明这种方法得 到的RSA的模数N=pq能被轻易的分解。(而RSA的安全基础就是假定模数不能被轻易分解!)任务#1模数N是两个素数p和q的乘积,满足∣p−1∣<2N1/4|p-1|<2N^{1/4}∣p−1∣<2N1/4。(模数N请见附件task.txt)任务#2(选做)模数N是两个素数p和q原创 2020-06-23 11:05:21 · 1939 阅读 · 0 评论 -
Many-Time-Pad 攻击(Cryptography-Stanford实验) Python实现
【实验目的】了解流密码的结构特点;掌握One-time Pad的一般具体实现;通过使用Python(推荐)或者C,编程实现一个流密码加密示例的破解,进一步认识在流密码加密中多次使用相同密钥导致的问题。【实验内容】在掌握流密码结构的基础上,通过本实验观察使用相同流密码密钥加密多个明文导致的严重后果。附件ciphertext.txt有11个十六进制编码的密文,它们是使用流密码加密11个明文的结果,所有密文都使用相同的流密码密钥。实验的目标是解密最后一个密文,并提交明文消息。【解密原理】(1原创 2020-05-30 19:23:51 · 1749 阅读 · 0 评论 -
实验二 编程实现离散对数求解 (Python实现)
一.实验内容本周的任务是写一个程序来计算模素数p的离散对数。二.解题思路根据实验文档中提供的思路,令B=q=220B=\sqrt{q}=2^{20}B=q=220,x=x0B+x1x=x_0B+x_1x=x0B+x1,其中x0,x1∈[0,B)x_0,x_1\in[0,B)x0,x1∈[0,B)经过变换有:h=gx0B+x1=(gB)x0⋅gx1(modp) h=g^{x_0B+x_1}=(g^B)^{x_0}·g^{x_1}( mod p)h=gx0B+x1=(gB)x0⋅gx原创 2020-06-07 10:25:18 · 2702 阅读 · 0 评论