信息安全课程设计进展

第一周:

一、本周计划完成的任务:

①熟悉需要的语言知识
②并且弄明白SM2算法的原理

二、 本周实际完成情况(代码,文档,程序运行截图...),未完成计划的原因?如何改进?

①Python程序编了一些算是练手吧:
命令行和集成环境都有用到:
1296452-20190512215747788-639974827.png
有的程序一个里面改了很多看结果所以总量看起并不是很多。。。
②对于SM2算法
SM2算法:SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。SM2算法与RSA算法不同的是,SM2算法是基于椭圆曲线上点群离散对数难题,相对于RSA算法,256位的SM2密码强度已经比2048位的RSA密码强度要高。
ECC算法描述:

  1、用户A选定一条适合加密的椭圆曲线Ep(a,b)(如:y2=x3+ax+b),并取椭圆曲线上一点,作为基点G。
  2、用户A选择一个私有密钥k,并生成公开密钥(公钥PB)K=kG。
  3、用户A将Ep(a,b)和点(公钥)K,G传给用户B。
  4、用户B接到信息后 ,将待传输的明文(M)编码到Ep(a,b)上一点M,并产生一个随机整数r(r<n)。加密开始
  5、用户B计算点C1=M+rK;C2=rG。
  6、用户B将C1、C2传给用户A。
  7、用户A接到信息后,计算C1-kC2,结果就是点M。因为C1-kC2=M+rK-k(rG)=M+rK-r(kG)=M
  再对点M进行解码就可以得到明文。

  密码学中,描述一条Fp上的椭圆曲线,常用到六个参量:
  T=(p,a,b,G,n,h)。
  (p 、a 、b 用来确定一条椭圆曲线,G为基点,n为点G的阶,h 是椭圆曲线上所有点的个数m与n相除的整数部分)

  这几个参量取值的选择,直接影响了加密的安全性。参量值一般要求满足以下几个条件:

  1、p 当然越大越安全,但越大,计算速度会变慢,200位左右可以满足一般安全要求;

  2、p≠n×h;

  3、pt≠1 (mod n),1≤t<20;
  4、4a3+27b2≠0 (mod p);
  5、n 为素数;
  6、h≤4。

三、本周遇到的问题与解决过程

①print和eval的区别:
1296452-20190512221317197-224217119.png

②写乘法表时的问题
1296452-20190512221349703-466578024.png

1296452-20190512221434945-1451017542.png

细节问题,前面的print在循环外面;应该每取一个i就打印一次
总结:本周利用零碎时间编了些小程序Python了解更深入一点,实验环境也弄得差不多。但是对SM2的学习没有达到预期目标,并没特别理解。。明天一天没课可以集中时间攻克一下。

第二周:

完成内容:

快速上手指南介绍GmSSL的编译、安装和gmssl命令行工具的基本指令。
下载源代码(zip),解压缩至当前工作目录
$ unzip GmSSL-master.zip
1296452-20190517200702435-1287147957.png

编译与安装

Linux平台 (其他平台的安装过程见编译与安装)

$ ./config no-saf no-sdf no-skf no-sof no-zuc
$ make
$ sudo make install
安装之后可以执行gmssl命令行工具检查是否成功

$ gmssl version
GmSSL 2.0 - OpenSSL 1.1.0d
SM4加密文件

$ gmssl sms4 -e -in -out .sms4
enter sms4-cbc encryption password:
Verifying - enter sms4-cbc encryption password:
解密

$ gmssl sms4 -d -in .sms4
enter sms4-cbc decryption password:
生成SM3摘要

$ gmssl sm3
SM3(yourfile)= 66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0
生成SM2密钥并签名

$ gmssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:sm2p256v1 -out signkey.pem
$ gmssl pkeyutl -sign -pkeyopt ec_scheme:sm2 -inkey signkey.pem -in -out .sig
可以将公钥从signkey.pem中导出并发发布给验证签名的一方

$ gmssl pkey -pubout -in signkey.pem -out vrfykey.pem
$ gmssl pkeyutl -verify -pkeyopt ec_scheme:sm2 -pubin -inkey vrfykey.pem -in -sigfile .sig
生成SM2私钥及证书请求

$ gmssl ecparam -genkey -name sm2p256v1 -text -out user.key
$ gmssl req -new -key user.key -out user.req
查看证书请求内容:

$ gmssl req -in user.req -noout -text -subject

遇到问题:
1296452-20190517204431885-1668100301.png
问题原因:gmssl: relocation error: gmssl: symbol BIO_debug_callback version OPENSSL_1_1_0d not defined in file libcrypto.so.1.1 with link time reference
重定位错误?
参考解决方案 以后
1296452-20190518121133965-386763050.png
但这只是临时的解决方案,每次推出以后再进来还需要输入这一行命令才能成功运行。
关于代码:加解密的代码已有,正在根据原理理解调试中……

第三周

情况似乎有点变化。。周一在给老师汇报进度以后,发现我们之前的理解有点问题。要做的应该是用Python程序调用gmssl的工具,所以说sm2的具体实现在工具箱里面是已经有了的。原来给的链接是用命令行调用的,而我们需要做的是通过写Python程序进行调用。
所以做的方向和之前相比应该做出相应的调整。
参考pyOpenSSL的来实现gmssl。
我实现的sm2的加解密以及签名验签:
1296452-20190526202119249-878119817.png
完成的任务:
1、在Windows环境下重新装了pip和gmssl
1296452-20190526224758291-493401676.png
2、完成调用代码的编写(代码已上传到码云
3、调试成功运行调用代码
(中途因为版本问题3.4版本问题出现了)
1296452-20190526202815462-365889602.png
更换到最新版本问题得以解决
1296452-20190526202119249-878119817.png

转载于:https://www.cnblogs.com/yjtblog/p/10815783.html

一、题目 4 二、摘要 4 三、关键字 4 四、引言 4 五、正文 4 5.1Windows操作系统安全定义 4 5.1.1身份认证(authentication) 5 5.1.2访问控制(authorisation) 6 5.1.3数据保密性(privacy) 7 5.1.4数据完整性(date integrity) 9 5.1.5不可否认性(non-repudiation) 9 5.2Windows金字塔安全架构 9 5.3Windows系统的安全组件 9 5.3.1访问控制的判断(Discretion access control) 10 5.3.2对象重用(Object reuse) 10 5.3.3强制登陆(Mandatory log on) 10 5.3.4审核(Auditing) 10 5.3.5对象的访问控制(Control of access to object) 11 5.4Windows安全子系统的组件 11 5.4.1安全标识符(Security Identifiers) 12 5.4.2访问令牌(Access tokens) 12 5.4.3安全描述符(Security descriptors) 13 5.4.4访问控制列表(Access control lists) 13 5.4.5访问控制项(Access control entries) 13 5.5Windows安全子系统 13 5.6Windows安全子系统流程过程 13 5.6.1 Winlogon and Gina 14 5.6.2本地安全认证(Local Security Authority) 14 5.6.3安全支持提供者的接口(Security Support Provide Interface) 15 5.6.4认证包(Authentication Package) 15 5.6.5安全支持提供者(Security Support Provider) 16 5.6.6网络登陆(Netlogon) 16 5.6.7安全账号管理者(Security Account Manager) 16 5.7Linux安全机制概述 16 5.7.1PAM机制 16 5.7.2入侵检测系统 17 5.7.3加密文件系统 17 5.7.4安全审计 17 5.7.5强制访问控制 18 5.7.6防火墙 18 5.8WindowsXP下的一些常用安全设置 19 5.8.1WindowsXP系统安全补丁升级 19 5.8.2WindowsXP管理防火墙的例外程序 20 5.8.3WindowsXP端口安全设置 20 5.8.4WindowsXP下Internet安全设置 22 六、结论 22 七、参考文献 23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值