![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
密码学
混z
混子一个
展开
-
Miller方法产生、检验素数
有关Miller方法过程设n为被检验的整数,n=m*2^t+1,期中m为n-1的最大奇因子,t>=1。记检测n是否为素数的算法为F(l,k),其中l为正整数,是算法的输入,Pass为布尔型变量。使用该算法来产生一个大素数还需要做改进,因为用它来产生一个200位的大素数就需要300多秒。但是用来检验素数还是不错的。代码实现2000以内的素数如下:char prime[303][4]={ "2","3","5","7","b","d","11","13","17","1d","1f","25原创 2020-12-16 16:18:57 · 450 阅读 · 0 评论 -
C语言实现SHA-1
参考:《密码学引论》第二版 武汉大学出版社SHA-1简介SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。(源自百度百科)具体实现数据填充填充数据的母的是使数据长度与448模512同余(这里是指位数)。若数据本身已经满足上述长度要求,让需要进原创 2020-12-09 17:23:02 · 3090 阅读 · 4 评论 -
C语言实现RSA
1978年美国麻省理工学院的三名密码学者R.L.Rivest, A.Shamir和L.M.Adleman提出了一种基于大合数因子分解困难性的公开密钥密码,简称RSA密码。RSA密码被誉为是一种风格幽雅的公开密钥密码。由于RSA密码即可用于加密,又可用于数字签名,安全、易懂。因此,RSA密码已成为目前应用最广泛的公开密钥密码。许多国家标准化组织,如ISO,ITU和SWIFT等都已接受RSA作为标准。Internet网的E-Mail保密系统CPG以及国际的VISA和MASTER组织的电子商务协议(SET协议原创 2020-12-04 11:02:03 · 3406 阅读 · 3 评论 -
C语言实现大数运算(长整数的加、减、乘、除)
由于整型数的位数有限,因此整型数不能满足大整数(超长整数)的运算要求 。大整数计算是利用字符串来表示大整数,即用字符串的一位字符表示大整数的一位数值,然后根据四则运算规则实现大整数的四则运算。...原创 2020-10-31 21:02:06 · 20491 阅读 · 9 评论 -
C语言实现RC4序列密码
RC4序列密码在密码学中,RC4(来自Rivest Cipher 4的缩写)是一种流加密算法,密钥长度可变。它加解密使用相同的密钥,因此也属于对称加密算法。RC4密码与基于移位寄存器的序列密码不同,它是一种基于非线性数据表变换的序列密码。它以一个足够大的数据表为基础,对表进行非线性变换,产生非线性的密钥序列。非线性变换的依据即输入密钥。由于RC4密码算法简单,软件实现容易,加密速度块,因此得到了广泛的应用。目前RC4可能是商用领域应用最广的序列密码。代码实现#include<stdio.h&原创 2020-10-30 16:50:12 · 3229 阅读 · 5 评论 -
C语言实现AES加解密
C语言实现AES加解密#include<stdio.h>#include<string.h> #include<time.h>#include<windows.h> #define Nb 4 //数据块行数 #define Nk 4 //密码块行数 #define Nr 10 //轮加密次数 unsigned char RoundKey[4*Nb*(Nr+1)]; //轮密钥 unsigned char Key[17];原创 2020-10-28 15:46:31 · 8221 阅读 · 6 评论 -
C语言实现DES,3DES以及基于3DES的文件加密系统
C语言实现3DES文件加密系统DES算法DES算法DES(数据加密标准)是一种分组密码。明文,密文和密钥的分组长度都是64位。DES算法是一种对称加密,通过同一组秘钥进行加密和解密。利用64位秘钥对64位数据进行加密生成一组新的64位数据,其中的转换都是利用统一的表格数组对秘钥和数据转换...原创 2020-10-10 17:42:25 · 3684 阅读 · 12 评论