• 大小: 5MB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2023-08-11
  • 语言: 其他
  • 标签: MD5  DES-CBC  CBC-MAC  DH  

资源简介

密码学实验(全部题目+完整代码:Hash算法MD5,DES-CBC,基于口令的加密,CBC-MAC,数字信封, 数字签名,DH)

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include “NN.C“
#include “RSA.C“
#include “DIGIT.C“
#include “MD2C.C“
#include “MD5C.C“
#include “DESC.C“
#include “PRIME.C“
#include “R_STDLIB.C“
#include “R_RANDOM.C“
#include “R_KEYGEN.C“
#include “R_ENHANC.C“
#include “R_ENCODE.C“
#include “R_DH.C“
// 以十六进制形式显示output中的内容
void shows(char *text unsigned char *output unsigned int len){
printf(“%s: “ text);
for (unsigned int i = 0; i printf(“%x“ output[i]);
printf(“\n“);
}
//给R_DH_PARAMS的成员分配内存空间
void Init_DH_Params(R_DH_PARAMS *params unsigned int bits){
params->prime = new unsigned char[DH_PRIME_LEN(bits)];
params->generator = new unsigned char[DH_PRIME_LEN(bits)];
}

//销毁分配给R_DH_PARAMS的成员的内存空间
void Destory_DH_Params(R_DH_PARAMS *params){
delete[]params->prime;
delete[]params->generator;
}
// 产生DH系统参数
int create_DH_params(R_DH_PARAMS *params int prime_len int subprime_len R_RANDOM_STRUCT *randomStruct){
// 为DH系统参数成员分配空间
Init_DH_Params(params prime_len);

// 产生DH系统参数
int ret = R_GenerateDHParams(params prime_len subprime_len randomStruct);

if (RE_MODULUS_LEN == ret){
printf(“prime length invalid \n“); 
return 0;
}
else if (RE_NEED_RANDOM == ret){
printf(“randomStruct is not seeded \n“); 
return 0;
}
else if (RE_DATA == ret){
printf(“prime bits out of range\n“); 
return 0;
}
return 1;
}
// 产生RSA密钥
int create_RSAkey(char *user R_RSA_PUBLIC_KEY *publicKey R_RSA_PRIVATE_KEY *privateKey unsigned int modul_bitsint useFermat4 R_RANDOM_STRUCT *randomStruct){
R_RSA_PROTO_KEY   protoKey;
int flag;

protoKey.bits = modul_bits;           //设定模数长度
protoKey.useFermat4 = useFermat4;      //设定e
flag = R_GeneratePEMKeys(publicKey privateKey &protoKey randomStruct);   // 产生RSA密钥
if (RE_MODULUS_LEN == flag){
printf(“%s: modulus length invalid\n“ user); 
return 0;
}
else if (RE_NEED_RANDOM == flag){
printf(“%s: randomStruct is not seeded\n“ user); 
return 0;
}
return 1;
}
// 产生用户的公开值、秘密值
int setup_DH_agreement(char *user unsigned char *publicValue unsigned char *privateValueint privateValueLEN R_DH_PARAMS *paramsR_RANDOM_STRUCT *randomStruct){
if (RE_NEED_RANDOM == R_SetupDHAgreement(publicValue privateValue privateValueLEN params randomStruct)){
printf(“%s: randomStruct is not seeded \n“ user); 
return 0;
}
return 1;
}
// 产生共享密钥
int create_agreementkey(unsigned char *Key unsigned char *otherspublicValue unsigned char *privateValue int publicValueLenR_DH_PARAMS *params){
if (RE_DATA == R_ComputeDHAgreedKey(Key otherspublicValue privateValue publicValueLen params))
return 0;
return 1;
}

// 对公开值计算签名
int  sign(char *user unsigned char *publicValue int publicValueLenunsigned char *signature unsigned int *signatureLenR_RSA_PRIVATE_KEY *privateKey){
R_SIGNATURE_CTX context;

if (RE_DIGEST_ALGORITHM == R_SignInit(&context DA_MD5)){
printf(“%s: digestA

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-05-31 11:01  01_实验题目\
     目录           0  2019-05-31 10:51  01_实验题目\ConsoleApplication3\
     文件     2621440  2019-05-31 10:51  01_实验题目\ConsoleApplication3\ConsoleApplication3.sdf
     文件        1003  2019-05-31 10:51  01_实验题目\ConsoleApplication3\ConsoleApplication3.sln
     目录           0  2019-05-31 10:51  01_实验题目\ConsoleApplication3\ConsoleApplication3\
     文件        8045  2019-05-31 10:51  01_实验题目\ConsoleApplication3\ConsoleApplication3\7.cpp
     文件      149597  2019-05-31 10:51  01_实验题目\ConsoleApplication3\ConsoleApplication3\7.exe
     文件      115175  2019-05-31 10:51  01_实验题目\ConsoleApplication3\ConsoleApplication3\7.o
     文件        4093  2019-05-31 10:51  01_实验题目\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.vcxproj
     文件         942  2019-05-31 10:51  01_实验题目\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.vcxproj.filters
     目录           0  2019-05-31 11:00  01_实验题目\实验1 - Hash算法MD5\
     文件        1149  1994-03-21 10:20  01_实验题目\实验1 - Hash算法MD5\GLOBAL.H
     目录           0  2019-05-31 10:52  01_实验题目\实验1 - Hash算法MD5\Hash_MD5\
     目录           0  2019-05-31 10:53  01_实验题目\实验1 - Hash算法MD5\Hash_MD5\Debug\
     文件      258146  2019-05-31 10:52  01_实验题目\实验1 - Hash算法MD5\Hash_MD5\Debug\Hash_MD5.exe
     文件      369332  2019-05-31 10:52  01_实验题目\实验1 - Hash算法MD5\Hash_MD5\Debug\Hash_MD5.ilk
     文件     1999512  2019-05-31 10:53  01_实验题目\实验1 - Hash算法MD5\Hash_MD5\Debug\Hash_MD5.pch
     文件      590848  2019-05-31 10:52  01_实验题目\实验1 - Hash算法MD5\Hash_MD5\Debug\Hash_MD5.pdb
     文件       23214  2019-05-31 10:52  01_实验题目\实验1 - Hash算法MD5\Hash_MD5\Debug\MD5.obj
     文件       74752  2019-05-31 10:52  01_实验题目\实验1 - Hash算法MD5\Hash_MD5\Debug\vc60.idb
     文件      102400  2019-05-31 10:52  01_实验题目\实验1 - Hash算法MD5\Hash_MD5\Debug\vc60.pdb
     文件        1454  2019-05-31 10:51  01_实验题目\实验1 - Hash算法MD5\Hash_MD5\filename.txt
     文件        4303  2019-05-31 10:51  01_实验题目\实验1 - Hash算法MD5\Hash_MD5\Hash_MD5.dsp
     文件         524  2019-05-31 10:51  01_实验题目\实验1 - Hash算法MD5\Hash_MD5\Hash_MD5.dsw
     文件       33792  2019-05-31 10:51  01_实验题目\实验1 - Hash算法MD5\Hash_MD5\Hash_MD5.ncb
     文件       48640  2019-05-31 10:51  01_实验题目\实验1 - Hash算法MD5\Hash_MD5\Hash_MD5.opt
     文件         893  2019-05-31 10:51  01_实验题目\实验1 - Hash算法MD5\Hash_MD5\Hash_MD5.plg
     文件         802  2019-05-31 10:51  01_实验题目\实验1 - Hash算法MD5\Hash_MD5\MD5.CPP
     文件     1928588  2019-05-31 10:52  01_实验题目\实验1 - Hash算法MD5\Hash_MD5\MD5.exe
     文件        1698  1994-03-16 11:34  01_实验题目\实验1 - Hash算法MD5\MD5.H
     文件       10631  2011-04-01 21:03  01_实验题目\实验1 - Hash算法MD5\MD5C.C
............此处省略243个文件信息

评论

共有 条评论