密码学
密码学基础
CY_BRYANT
这个作者很懒,什么都没留下…
展开
-
密码算法编程实现
扩展欧几里得算法AESDESELGamalRSADHhttps://github.com/Chenye115/-cryptographygit clone git@github.com:Chenye115/-cryptography.git原创 2020-11-01 09:53:36 · 567 阅读 · 1 评论 -
操作系统实验:Linux内存和进程管理部分源码阅读
一、 实验内容及要求选定某版本的Linux内核源码,研读进程管理和内存管理部分相关源码。在此基础上:1)对Linux进程调度机制及算法进行分析,2)对Linux内存管理机制及算法进行分析,并撰写实验报告总结以上两部分内容。二、 实验目的Linux是一个功能强大的操作系统,同时也是一个自由、免费、开源的软件。源代码的阅读和理解是一项重要的也是必要的基本功。在阅读过程中可以学习到很多编程方法和技巧,对于提高自己的编程水平有很大帮助。通过研读Linux源码,能够掌握操作系统中的一些底层知识知识,也能更加深刻原创 2020-07-17 18:41:48 · 1658 阅读 · 0 评论 -
密码学编程实验:扩展欧几里得算法 C++实现
//密码学实验//扩展欧几里得算法//#include "pch.h"#include <iostream>#include<cmath>#include<cstdio>using namespace std;int exgcd(int a, int b, int& x, int& y)//扩展欧几里得算法{ if (b == 0) { x = 1; y = 0; return a; //到达递归边界开始向上一层返回 }原创 2020-07-17 18:29:37 · 876 阅读 · 0 评论 -
密码学编程实验:ElGamal公钥加密算法 C++实现
在密码学中,ElGamal加密算法是一个基于DH密钥交换的非对称加密算法.EIGamal公开密钥密码体制是基于有限域中离散对数间题的难解性。它所根据的原理是:求解离散对数是困难的,而其逆运算可以应用平方乘的方法有效的计算出来。在相应的群 G中,指数函数是单向函数。ElGamal加密算法由三部分组成:密钥生成、加密和解密。密钥生成密钥生成的步骤如下:Alice利用生成元g产生一个q阶循环群G的有效描述。该循环群需要满足一定的安全性质。Alice从中随机选择一个 x。Alice计算。Alice公原创 2020-07-17 18:25:39 · 5640 阅读 · 1 评论 -
密码学编程实验:Diffie-Hellman交换 C++实现
Diffie-Hellman算法是第一个公开密钥算法,早在 1976 年就发现了。其安全性源于在有限域上计算离散对数,比计算指数更为困难。该算法可以使两个用户之间安全地交换一个密钥,但不能用于加密或解密信息。该算法是一种建立密钥的方法,并非加密方法,但其产生的密钥可用于加密、密钥管理或任何其它的加密方式,这种密钥交换技术的目的在于使两个用户间能安全地交换密钥(KEY)以便用于今后的报文加密。该算法需要公开两个参数:质数 n 和其原根 g,同时通信双方 A 和 B 随机选择自己的私钥 x 和 y,通过交换g原创 2020-07-17 18:21:40 · 5131 阅读 · 0 评论 -
分组密码(一)安全性和攻击复杂度
实际安全性为了评价分组密码的安全性,习惯上通常假设攻击者:已获得密文信道中传输的所有数据;知道除了密钥以外的所有关于加密函数的细节(安全性因此完全依赖于密钥)。针对对称密钥密码最重要的攻击类型:惟密文攻击:没有额外的信息可用已知明文攻击:可得到明文-密文对选择明文攻击:敌手可获得与所选择的明文相对应的密文 。一种变体是自适应选择明文攻击,其明文选择依据此前 的明文-密文对选择密文攻击:敌手可得到他所选的一定数量的密文所对 应的明文-密文对,然后利用这些信息来尝试恢复密钥( 或一些新密文原创 2020-06-16 22:00:48 · 1701 阅读 · 0 评论 -
流密码(二)m序列、Geffe序列生成器、钟控生成器
流密码(二)m序列、Geffe序列、钟控生成器文章目录流密码(二)m序列、Geffe序列、钟控生成器m序列Geffe生成器JK触发器please触发器钟控生成器交错生成器收缩生成器m序列定义:若 C(D)∈Z2[D] 是一个L次本原多项式,则 <L,C(D)> 称 为最大长度LFSR。最大长度LFSR在非零初始状态下的输出称为m序列。(m序列的统计性质) 设s是由长为L的最大长度 LFSR所生成的m序列. s满足Golomb随机性假设。即每个m序列也是伪噪声序列 (pn序列)。原创 2020-06-16 21:04:46 · 3778 阅读 · 0 评论 -
证明:DES解密算法是DES加密算法的逆
证明:由于DES算法是在Feistel网络结构的输入和输出阶段分别初始置换IP和初始逆置换IP-1而构成的,其余DES和Feistel相同,IP和IP–1互逆。所以只需证明Feistel解密算法和加密算法可逆,然后再证IP和IP–1置换后即可证明DES解密算法的确是DES加密算法的逆。根据书本得Feistel解密算法和加密算法的关系,解密过程第一轮的输入等于加密过程第16轮输出左右部分交换的值。最后一轮迭代后密文是LE16||RE16,首先对于加密过程有LE16= LE15,RE16= LE15⊕F(R转载 2020-05-08 18:44:13 · 4999 阅读 · 0 评论 -
现代密码学的公钥密码体制
密码学中需要用到的数学近世代数–群、环、域素数和互素数模运算模指数运算费马定理、欧拉定理、卡米歇尔定理一般素性检验欧几里得算法中国剩余定理离散对数平方剩余双线性映射公钥密码体制公钥密码算法的最大特点是采用两个相关密钥将加密和解密能力分开, 其中一个密 钥是公开的, 称为公开密钥,简称公开钥, 用于加密;另一个密钥是为用户专用, 因而是保 密的, 称为秘密密钥,简称秘密钥,...原创 2020-04-08 18:00:25 · 1938 阅读 · 1 评论 -
古典密码分析(冗余度,唯一解距离,语言统计,重合指数)
冗余度在有意义的英文字母文本中,每个字符所携带的平均信息(每个字符的熵)的估计值等于1.5比特。在语言学上在实际的英文中,平均每个英文字母携带的信息熵是4.7(log26,具体怎么求得在此不详细说明)。那么在英文密码中,每个字符的冗余度就是3.2.经验证据显示,对于有意义消息上的任意简单替代 ,一位熟练的密码分析者只需25个密文字符就能恢复明文。唯一解距离唯一解距离是不受计算限制的敌手...原创 2020-03-29 10:54:42 · 4457 阅读 · 2 评论 -
古典密码特点(换位密码、替代密码)
换位密码我们十分熟悉的凯撒密码就是一种最简单的换位密码。对于一个密钥k,k即为移动的位数。两个或更多的简单换位以各自的周期t1,t2,…ti进行连续的组合称为复合换位。 该定义中的复合换位等价于以t-=lcm(1,t2,…ti)为周期的简单换位。 lcm为最小公倍数。==换位密码有一个致命的缺陷:==虽然简单换位会改变连续字符之 间的依赖,但由于它们保持了每个字符的频率分配 ,所以易于识别。...原创 2020-03-26 22:02:47 · 6900 阅读 · 0 评论 -
分组密码(二)分组密码的运行模式
操作模式电话本ECB模式electronic codebook最简单的运行模式,一次对一个64比特的明文分组加密,每次的加密密钥都相同。密钥取定时,对明文的每一个文组,都有一个唯一确定的密文与之对应。如果消息长于64比特,将其分为长64比特的分组,若在最后一组不足64比特,则需要填充。输入:k比特的密钥K;n比特的明文分组x1,x2,…xt结果:产生密文分组c1,c2,…ct;解密以恢...原创 2020-03-26 21:25:12 · 2527 阅读 · 0 评论 -
Geffe序列生成器及安全性
Geffe序列生成器Geffe序列生成器由三个长度为L1,L2,L3的最长LFSR定义组成,其中L1,L2,L3两两互素其中LFSR2作为控制生成器使用。其非线性组合函数为:f(x1,x2,x3)=x1x2⊕x2x3⊕x3f(x_1,x_2,x_3)=x_1x_2\oplus x_2x_3\oplus x_3f(x1,x2,x3)=x1x2⊕x2x3⊕x3其密钥流周期为 ...原创 2020-03-11 20:13:31 · 2815 阅读 · 0 评论 -
流密码应用-现代密码学第二章
流密码应用现代密码学(第四版)第二章 流密码解答(内心OS:太强大了)1 例 2-3已知线性反馈移位寄存器的初始状态为 {1,0,0,1,1},转移函数为 f(a1,a2,a3,a4,a5)=a1⊕a4,求输出状态和周期。程序法:#include<bits/stdc++.h>#define n 5using namespace std;int main(){ ...转载 2020-03-11 18:50:04 · 9928 阅读 · 0 评论 -
流密码(一)同步流密码、自同步流密码以及线性反馈移位寄存器
流密码文章目录流密码流密码分类同步流密码自同步流密码线性反馈移位寄存器LFSR在这里插入图片描述流密码的基本思想是利用密钥 k 产生一个密钥流 z = z0 z1 ⋯,并使用如下规则对明文 串 x = x0 x1 x2 ⋯加密: y = y0 y1 y2 ⋯ = Ez0 ( x0 ) Ez1 ( x1 ) Ez2 ( x2 )⋯。密钥流由密钥流发生 器 f 产生: zi = f( k,σ i ...原创 2020-03-04 20:44:44 · 9693 阅读 · 0 评论