首页 > 其他分享 >课设总结

课设总结

时间:2022-12-10 20:33:15浏览次数:68  
标签:总结 文件 函数库 课设 FREE SM9 算法 国密

课设总结

一、设计方案及可行性分析

课程题目为基于密码算法库的国密算法支持研究 整体内容围绕国密算法展开,通过调用密码算法库自带的函数或命令行,验证密码算法库对国密算法的支持。
如今随着国密算法以sm2 sm3 sm4等密码算法成为国际标准,越来越多的密码算法库已经可以支持国密算法。如使用较为方便的openssl或其分支以国密命名
的gmssl。因此想要找到支持国密算法的密码库并不是一件难事,团队的目标是尽可能在课设准备时间内找到更多支持国密算法的密码库或者工具包,并验证
其可行性。

二、详细设计思路

  • 首先将通用的密码算法库按支持的语言进行分配,小组总共三个人员,分别负责python ,c,java,当然还有go和jsp语言,go语言和jsp语言支持国密的方
    式比较固定,所以小组采用共同查找资料,并在一台设备上完成的方式。

  • 我在本小组实现的部分是java部分,也参与了c部分,c部分整体调节起来比较繁琐,
    而java因为语言的特性在linux和windows中的操作流程相差不大。

Java:

Java部分找到的支持国密的库为三个,分别为是bouncycastle,crypto-gmsm,Hutool。三个库支持的国密算法都为sm2,sm3,sm4。其中hutool针对Bouncy 
Castle做了简化包装。其中关于国密部分hutool将其整合为SmUtil。在实现java代码过程中,我创建的java项目都是maven,因为创建maven项目可以通过对
pom.xml文件添加dependency,添加依赖可以更加方便的获得我们想要获得的jar包。

实现过程如下:

Bouncycastle



crypto-gmsm:

Hutool:

C:

  • C语言部分,我阅读了很多密码算法库的说明,查找到了很多支持国密算法的c语言库,通过阅读函数库说明,在理论上支持国密的函数库有openssl,gmssl,
    crypt++,SM9_FREE, Gmlib, Libgcrypt,libtomcrypt-gm,tinycrypt,gmalg, 但是在配置函数库时libtomcrypt-gm和gmalg和libgcrypt都因为没
    有无法写出能够调通的测试代码最终失败。C语言部分我参与并完成的函数库有openssl,gmssl,crypt++,和gmlib,SM9_FREE。其中SM9_FREE函数库是
    基于Miracl的函数库,因为 源码关系 Miracl密码库 比较庞大,SM9_FREE只截取了其中最核心的部分,包括大整数运算,Fp,Fp2,Fp4域计算以及Fp
    和Fp^2上椭圆曲线基础计算等功能。 SM9_FREE正如他的名字一样,他主要支持的算法是SM9。Gmlib支持sm2,sm3,sm4 和zuc本质上也参考了crypt++
    openssl。

crypt++:

  • 因为crpyt++库他本质上是一个vs项目,通过运行vs项目我们才能得到.a文件,我们需要将.a文件和.h文件结合起来才能运行成功,因为没有成功在openeuler
    中配置vs,所以并没有成功的将crypt++函数库转移到unix环境中去,只在windows环境中成功运行。

Gmlib:

  • 因为gmlib的函数库需要通过cmake 对应的list文件去生成测试文件,所以在对函数库进行测试的时候可以通过修改cmakelist 文件进而得到想要的test文件
    具体只需要修改add_executable和target_link_libraries 函数即可。

SM9_FREE:

SM9_FREE函数库本身需要通过make函数去生成.a文件。生成.a文件之后只要通过make test 就可以将 自带的SM9.txt文件同.a文件一同编译。生成test 运行./test即可
当然如果直接下载解压SM9_FEEE文件会因为makefile有问题而报错,所以需要对makefile进行修改。具体方法:https://www.cnblogs.com/PiaYie/p/16746335.html

Openssl:

openssl:https://www.cnblogs.com/hzxjkl/p/16828260.html

标签:总结,文件,函数库,课设,FREE,SM9,算法,国密
From: https://www.cnblogs.com/hzxjkl/p/16972217.html

相关文章

  • Java 第三阶段总结
    前言这几次的PTA相对于前面的多边形来说,我觉得更简单了。因为给了对应的类图,只需要弄明白每个类的作用,就很好写了。而且老师给的时间也很充足,不存在没写完的情况,只不过要......
  • BLOG-3对之前发布的6-8次PTA题目集(电信计费)总结
     for(Useru:users)前言:总结之前所涉及到的知识点、题量、难度等情况_____________________________________________________________________________________......
  • 对6-8次PTA题目集总结
    前言:通过了前几次的大作业的洗礼后,来到这一次的大作业,感觉还是比较简单的。没有什么无从下手的地方,仿照着PTA给出的类图很快就有个初步模板了,后面自己慢慢调试就可以解......
  • Python模块fileinput操作文件和目录操作总结
    前言之前介绍Python的pathlib模块可以有效的路径及文件查找等方便操作,本篇介绍一个相对readlines()获取文件内容更高效的用法fileinput模块对一个或者多个文件的内容迭......
  • web自动化(总结)
    目录1、selenium的基础操作1、selenium的元素定位:八大定位(面试)2、selenium的原理(面试)3、driver的方法和属性4、三大等待(面试必问)1、强制等待2、显性等待3、隐形等待5、三大......
  • 作者推荐 | 【分布式技术专题】「架构设计方案」图解学习法总结集群模式下的各种软负
    背景介绍在分布式系统中,负载均衡是非常重要的环节,通过负载均衡将请求派发到网络中的一个或多个节点上进行处理。通常来说,负载均衡分为硬件负载均衡及软件负载均衡。硬件......
  • 作者推荐 | 【分布式技术专题】「架构设计方案」图解学习法总结集群模式下的各种软负
    背景介绍在分布式系统中,负载均衡是非常重要的环节,通过负载均衡将请求派发到网络中的一个或多个节点上进行处理。通常来说,负载均衡分为硬件负载均衡及软件负载均衡。硬件负载......
  • 课设总结报告
    个人报告(20201325夏俊睿)1.个人贡献本人在这四周贡献了OpenSSL、Gmlib、snowland-smx、Node.js+gm-crypto和sm-crypto五个国密算法库的安装、配置和使用。第一周进度:搭......
  • 【转】UDS之时间参数总结篇
    前言UDS:(UnifiedDiagnosticService)统一诊断服务协议。之所以称为统一诊断服务,则是因为该协议是建立在各种传输方式之上的应用层协议,与底层所采用的通信介质都没有关......
  • 金蝶Cosmic虚拟机简单使用与总结
    背景知己知彼简单学习下友商发出来的测试软件看看有否对自己现在的工作有所指导也看看对方的部署方式有啥优缺点当然了仅是测试,不是生产软件可能有失真.注意我没有测试序......