实验五:RSA编程实验——使用libTomCrypt库安全0901王宇航09283020实验报告1.写出编程过程中使用到的函数的函数说明:(1)函数定义:intrsa_make_key(prng_state*prng,intwprng,intsize,longe,rsa_key*key);功能说明:生成一个1024bit的RSA密钥参数说明:prng_state*prng---prng状态intwprng---prng标志intsize---密钥长度longe---加密时e的值rsa_key*key---RSA密钥返回值说明:返回值为0表示生成密钥成功,否则生成密钥失败(2)函数定义:intrsa_encrypt_key_ex(constunsignedchar*in,unsignedlonginlen,unsignedchar*out,unsignedlong*outlen,constunsignedchar*lparam,unsignedlonglparamlen,prng_state*prng,intprng_idx,inthash_idx,intpadding,rsa_key*key);功能说明:RSA加密过程,对输入的明文进行加密参数说明:constunsignedchar*in---要加密的明文unsignedlonginlen---明文长度unsignedchar*out---存放加密后的密文unsignedlong*outlen---密文长度constunsignedchar*lparam---lparam参数unsignedlonglparamlen---lparam长度prng_state*prng---prng状态intprng_idx---prng标志inthash_idx---hash标志intpadding---填充方式rsa_key*key---密钥返回值说明:返回值为0表示加密成功,否则加密失败(3)函数定义:intrsa_decrypt_key_ex(constunsignedchar*in,unsignedlonginlen,unsignedchar*out,unsignedlong*outlen,constunsignedchar*lparam,unsignedlonglparamlen,inthash_idx,intpadding,int*stat,rsa_key*key);功能说明:RSA解密过程,对密文进行解密参数说明:constunsignedchar*in---要解密的密文unsignedlonginlen---密文长度unsignedchar*out---存放解密后的明文unsignedlong*outlen---明文长度constunsignedchar*lparam---lparam参数unsignedlonglparamlen---lparam长度inthash_idx---hash标志intpadding---填充方式int*stat---解密后的数据正确与否rsa_key*key---密钥返回值说明:返回值为0表示解密成功,否则解密失败(4)函数定义:intregister_prng(conststructltc_prng_descriptor*prng);功能说明:注册一个伪随机数生成器参数说明:conststructltc_prng_descriptor*prng---一个prng结构体返回值说明:返回值为-1表示注册一个prng失败,否则注册成功(5)函数定义:intregister_hash(conststructltc_hash_descriptor*hash);功能说明:注册一个数学库参数说明:conststructltc_hash_descriptor*hash---一个hash结构体返回值说明:返回值为-1表示注册一个数学库失败,否则注册成功(6)函数定义:intfind_prng(constchar*name);功能说明:在prng表里查找一个prng参数说明:constchar*name---要查找的prng的name返回值说明:返回值为-1表示查找失败;否则返回该prng在prng表里的位置(7)函数定义:intfind_hash(constchar*name);功能说明:在hash表里查找一个hash参数说明:constchar*name---要查找的hash的name返回值说明:返回值为-1表示查找失败;否则返回该hash在hash表里的位置2.写出实现过程中遇到的困难及解决办法:主要困难是这个LibTomCrypt库中的部分函数用法不太明白,在实际应用中有时会不知道怎么写。3.程序运行结果:(1)三次加密机制为RSAES-PKCS-V1_5(2)三次加密机制为RSAES_OAEP对实验进行三次测试,结果表明:同样的明文加密后密文均不相同,而解密后均还原原明文。